From 78ea6f85c8861847cf25bacd7320abea2654d844 Mon Sep 17 00:00:00 2001 From: Nilesh Simaria Date: Tue, 1 Mar 2022 17:55:50 -0500 Subject: [PATCH] bring in new code of jtimon --- Dockerfile | 22 + LICENSE | 201 + Makefile | 54 + README.md | 220 + alias.go | 50 + alias_test.go | 65 + authentication/authentication.pb.go | 182 + authentication/authentication.proto | 23 + config.go | 371 + config_test.go | 107 + coverage.out | 1159 + defaults.go | 20 + gnmi/gnmi/gnmi.pb.go | 2291 + gnmi/gnmi/gnmi.proto | 458 + gnmi/gnmi_ext/gnmi_ext.pb.go | 322 + gnmi/gnmi_ext/gnmi_ext.proto | 78 + .../GnmiJuniperTelemetryHeader.pb.go | 109 + .../GnmiJuniperTelemetryHeader.proto | 24 + .../GnmiJuniperTelemetryHeaderExtension.pb.go | 196 + .../GnmiJuniperTelemetryHeaderExtension.proto | 43 + gnmi_utils.go | 477 + gnmi_utils_test.go | 1050 + go.mod | 22 + go.sum | 108 + grpc.go | 73 + influx.go | 681 + influx_test.go | 256 + jtimon_test.go | 141 + jtisim/.gitignore | 5 + jtisim/.travis.yml | 6 + jtisim/bgp.go | 33 + jtisim/interfaces.go | 281 + jtisim/lldp.go | 33 + jtisim/server.go | 119 + jtisim/util.go | 10 + kafka-publish.go | 168 + launch-docker-container.sh | 33 + logs.go | 59 + lpserver/.gitignore | 1 + lpserver/lpserver.go | 181 + main.go | 81 + .../iosxr/grpc-proto/mdt_grpc_dialin.pb.go | 1432 + .../iosxr/grpc-proto/mdt_grpc_dialin.proto | 185 + multi-vendor/cisco/iosxr/schema/bgp.json | 77 + .../cisco/iosxr/schema/interfaces.json | 30 + .../iosxr/schema/native-statsd-oper.json | 93 + multi-vendor/cisco/iosxr/schema/wdsysmon.json | 25 + .../iosxr/telemetry-proto/telemetry.pb.go | 758 + .../iosxr/telemetry-proto/telemetry.proto | 182 + multi_vendor.go | 65 + prom.png | Bin 0 -> 212099 bytes prometheus_exporter.go | 192 + sample-config/1.json | 12 + sample-config/2.json | 21 + sample-config/gnmi.json | 28 + statshandler.go | 148 + subscribe_cisco_iosxr.go | 637 + subscribe_cisco_iosxr_test.go | 558 + subscribe_gnmi.go | 529 + subscribe_gnmi_test.go | 704 + subscribe_juniper_junos.go | 248 + subscribe_juniper_junos_test.go | 654 + telemetry/telemetry.pb.go | 1732 + telemetry/telemetry.proto | 366 + tests/data/README.md | 29 + .../cisco-ios-xr/config/xr-all-influx.json | 31 + .../config/xr-all-influx.json.testbytes | Bin 0 -> 691818 bytes .../config/xr-all-influx.json.testexp | 34064 ++++++++++++ .../config/xr-all-influx.json.testmeta | 1 + .../config/xr-all-influx.json.testres | 34064 ++++++++++++ .../cisco-ios-xr/config/xr-all-influx.log | 71 + tests/data/cisco-ios-xr/config/xr-all.json | 18 + .../cisco-ios-xr/config/xr-all.json.testbytes | Bin 0 -> 691818 bytes .../cisco-ios-xr/config/xr-all.json.testexp | 45240 ++++++++++++++++ .../cisco-ios-xr/config/xr-all.json.testmeta | 1 + .../cisco-ios-xr/config/xr-all.json.testres | 45240 ++++++++++++++++ .../config/xr-wdsysmon-influx.json | 31 + .../config/xr-wdsysmon-influx.json.testbytes | Bin 0 -> 183942 bytes .../config/xr-wdsysmon-influx.json.testexp | 17118 ++++++ .../config/xr-wdsysmon-influx.json.testmeta | 1 + .../config/xr-wdsysmon-influx.json.testres | 17118 ++++++ .../config/xr-wdsysmon-influx.log | 67 + .../data/cisco-ios-xr/config/xr-wdsysmon.json | 18 + .../config/xr-wdsysmon.json.testbytes | Bin 0 -> 183942 bytes .../config/xr-wdsysmon.json.testexp | 12216 +++++ .../config/xr-wdsysmon.json.testmeta | 1 + .../config/xr-wdsysmon.json.testres | 12216 +++++ tests/data/cisco-ios-xr/schema/bgp.json | 77 + .../data/cisco-ios-xr/schema/interfaces.json | 30 + .../schema/native-statsd-oper.json | 93 + tests/data/cisco-ios-xr/schema/wdsysmon.json | 25 + tests/data/deadlock-jtisim.json | 23 + tests/data/empty.json | 4 + tests/data/empty.json.testbytes | 1 + tests/data/empty.json.testexp | 0 tests/data/empty.json.testmeta | 1 + tests/data/error.json | 12 + tests/data/file_list.json | 3 + tests/data/file_list_err.json | 3 + tests/data/gnmi.json | 22 + tests/data/jtisim-1.json | 21 + tests/data/jtisim-influx.json | 22 + tests/data/jtisim-no-influx.json | 12 + .../data/juniper-junos/alias/alias-error.txt | 10 + tests/data/juniper-junos/alias/alias.txt | 10 + .../config/interfaces-influx-alias.json | 9 + .../config/interfaces-influx.json | 9 + .../data/juniper-junos/config/interfaces.json | 9 + .../config/interfaces.json.testbytes | Bin 0 -> 59204 bytes .../config/interfaces.json.testexp | 3126 ++ .../config/interfaces.json.testmeta | 1 + .../config/interfaces.json.testres | 3126 ++ .../config/jtisim-alias-interfaces.json | 13 + .../config/jtisim-influx-alias.json | 24 + .../config/jtisim-influx-alias.json.testexp | 2250 + .../config/jtisim-influx-alias.json.testres | 2250 + .../config/jtisim-influx-alias.log | 93 + .../juniper-junos/config/jtisim-influx.json | 23 + .../config/jtisim-influx.json.testexp | 6750 +++ .../config/jtisim-influx.json.testres | 6750 +++ .../juniper-junos/config/jtisim-influx.log | 124 + .../config/jtisim-interfaces-1.json | 17 + .../config/jtisim-interfaces-1.log | 115 + .../config/jtisim-interfaces-2.json | 17 + .../config/jtisim-interfaces-2.log | 115 + .../config/jtisim-interfaces-3.json | 17 + .../config/jtisim-interfaces-3.log | 100 + .../config/jtisim-interfaces-4.json | 13 + .../config/jtisim-interfaces-4.log | 75 + .../config/jtisim-interfaces-6.json | 17 + .../config/jtisim-interfaces-6.log | 82 + .../jtisim-interfaces-file-list-chg.json | 7 + ...tisim-interfaces-file-list-sig-delete.json | 5 + .../jtisim-interfaces-file-list-sig-int.json | 5 + .../jtisim-interfaces-file-list-sig.json | 7 + .../config/jtisim-interfaces-file-list.json | 6 + .../config/jtisim-interfaces.json | 17 + .../config/jtisim-prometheus.json | 14 + .../config/jtisim-prometheus.json.testexp | 1820 + .../config/jtisim-prometheus.json.testres | 1820 + .../config/jtisim-prometheus.log | 85 + tests/data/juniper-junos/config/uint64.json | 15 + .../config/uint64.json.testbytes | 3888 ++ .../juniper-junos/config/uint64.json.testexp | 5632 ++ .../juniper-junos/config/uint64.json.testmeta | 1 + .../juniper-junos/config/uint64.json.testres | 5632 ++ tests/data/noerror.json | 20 + tests/data/noidb.json | 17 + tests/data/r0edge.json | 28 + tests/data/r1edge.json | 27 + tests/simulator/desc/interfaces.json | 19 + testutils.go | 126 + testutils_test.go | 138 + vendor/github.com/Shopify/sarama/.gitignore | 27 + .../github.com/Shopify/sarama/.golangci.yml | 74 + vendor/github.com/Shopify/sarama/CHANGELOG.md | 912 + vendor/github.com/Shopify/sarama/LICENSE | 20 + vendor/github.com/Shopify/sarama/Makefile | 27 + vendor/github.com/Shopify/sarama/README.md | 36 + vendor/github.com/Shopify/sarama/Vagrantfile | 14 + .../github.com/Shopify/sarama/acl_bindings.go | 138 + .../Shopify/sarama/acl_create_request.go | 85 + .../Shopify/sarama/acl_create_response.go | 90 + .../Shopify/sarama/acl_delete_request.go | 58 + .../Shopify/sarama/acl_delete_response.go | 159 + .../Shopify/sarama/acl_describe_request.go | 35 + .../Shopify/sarama/acl_describe_response.go | 87 + .../github.com/Shopify/sarama/acl_filter.go | 78 + vendor/github.com/Shopify/sarama/acl_types.go | 55 + .../sarama/add_offsets_to_txn_request.go | 53 + .../sarama/add_offsets_to_txn_response.go | 45 + .../sarama/add_partitions_to_txn_request.go | 77 + .../sarama/add_partitions_to_txn_response.go | 110 + vendor/github.com/Shopify/sarama/admin.go | 787 + .../Shopify/sarama/alter_configs_request.go | 122 + .../Shopify/sarama/alter_configs_response.go | 97 + .../Shopify/sarama/api_versions_request.go | 25 + .../Shopify/sarama/api_versions_response.go | 89 + .../Shopify/sarama/async_producer.go | 1116 + .../Shopify/sarama/balance_strategy.go | 1071 + vendor/github.com/Shopify/sarama/broker.go | 1388 + vendor/github.com/Shopify/sarama/client.go | 1047 + vendor/github.com/Shopify/sarama/compress.go | 75 + vendor/github.com/Shopify/sarama/config.go | 733 + .../Shopify/sarama/config_resource_type.go | 18 + vendor/github.com/Shopify/sarama/consumer.go | 900 + .../Shopify/sarama/consumer_group.go | 864 + .../Shopify/sarama/consumer_group_members.go | 96 + .../sarama/consumer_metadata_request.go | 34 + .../sarama/consumer_metadata_response.go | 78 + .../Shopify/sarama/control_record.go | 72 + .../github.com/Shopify/sarama/crc32_field.go | 86 + .../sarama/create_partitions_request.go | 121 + .../sarama/create_partitions_response.go | 105 + .../Shopify/sarama/create_topics_request.go | 174 + .../Shopify/sarama/create_topics_response.go | 123 + .../github.com/Shopify/sarama/decompress.go | 63 + .../Shopify/sarama/delete_groups_request.go | 30 + .../Shopify/sarama/delete_groups_response.go | 70 + .../Shopify/sarama/delete_records_request.go | 126 + .../Shopify/sarama/delete_records_response.go | 158 + .../Shopify/sarama/delete_topics_request.go | 48 + .../Shopify/sarama/delete_topics_response.go | 78 + .../sarama/describe_configs_request.go | 112 + .../sarama/describe_configs_response.go | 319 + .../Shopify/sarama/describe_groups_request.go | 30 + .../sarama/describe_groups_response.go | 187 + .../sarama/describe_log_dirs_request.go | 83 + .../sarama/describe_log_dirs_response.go | 219 + vendor/github.com/Shopify/sarama/dev.yml | 10 + .../Shopify/sarama/encoder_decoder.go | 89 + .../Shopify/sarama/end_txn_request.go | 50 + .../Shopify/sarama/end_txn_response.go | 44 + vendor/github.com/Shopify/sarama/errors.go | 369 + .../Shopify/sarama/fetch_request.go | 280 + .../Shopify/sarama/fetch_response.go | 530 + .../sarama/find_coordinator_request.go | 61 + .../sarama/find_coordinator_response.go | 92 + vendor/github.com/Shopify/sarama/go.mod | 34 + vendor/github.com/Shopify/sarama/go.sum | 81 + .../Shopify/sarama/gssapi_kerberos.go | 257 + .../Shopify/sarama/heartbeat_request.go | 47 + .../Shopify/sarama/heartbeat_response.go | 32 + .../sarama/init_producer_id_request.go | 43 + .../sarama/init_producer_id_response.go | 55 + .../Shopify/sarama/join_group_request.go | 163 + .../Shopify/sarama/join_group_response.go | 135 + .../Shopify/sarama/kerberos_client.go | 51 + .../Shopify/sarama/leave_group_request.go | 40 + .../Shopify/sarama/leave_group_response.go | 32 + .../github.com/Shopify/sarama/length_field.go | 99 + .../Shopify/sarama/list_groups_request.go | 24 + .../Shopify/sarama/list_groups_response.go | 69 + vendor/github.com/Shopify/sarama/message.go | 174 + .../github.com/Shopify/sarama/message_set.go | 111 + .../Shopify/sarama/metadata_request.go | 81 + .../Shopify/sarama/metadata_response.go | 321 + vendor/github.com/Shopify/sarama/metrics.go | 43 + .../github.com/Shopify/sarama/mockbroker.go | 399 + .../github.com/Shopify/sarama/mockkerberos.go | 123 + .../Shopify/sarama/mockresponses.go | 990 + .../Shopify/sarama/offset_commit_request.go | 210 + .../Shopify/sarama/offset_commit_response.go | 110 + .../Shopify/sarama/offset_fetch_request.go | 100 + .../Shopify/sarama/offset_fetch_response.go | 197 + .../Shopify/sarama/offset_manager.go | 584 + .../Shopify/sarama/offset_request.go | 156 + .../Shopify/sarama/offset_response.go | 174 + .../Shopify/sarama/packet_decoder.go | 61 + .../Shopify/sarama/packet_encoder.go | 65 + .../github.com/Shopify/sarama/partitioner.go | 217 + .../github.com/Shopify/sarama/prep_encoder.go | 153 + .../Shopify/sarama/produce_request.go | 254 + .../Shopify/sarama/produce_response.go | 204 + .../github.com/Shopify/sarama/produce_set.go | 263 + .../github.com/Shopify/sarama/real_decoder.go | 332 + .../github.com/Shopify/sarama/real_encoder.go | 156 + vendor/github.com/Shopify/sarama/record.go | 116 + .../github.com/Shopify/sarama/record_batch.go | 225 + vendor/github.com/Shopify/sarama/records.go | 204 + vendor/github.com/Shopify/sarama/request.go | 171 + .../Shopify/sarama/response_header.go | 24 + vendor/github.com/Shopify/sarama/sarama.go | 110 + .../sarama/sasl_authenticate_request.go | 29 + .../sarama/sasl_authenticate_response.go | 44 + .../Shopify/sarama/sasl_handshake_request.go | 34 + .../Shopify/sarama/sasl_handshake_response.go | 38 + .../sarama/sticky_assignor_user_data.go | 124 + .../Shopify/sarama/sync_group_request.go | 100 + .../Shopify/sarama/sync_group_response.go | 41 + .../Shopify/sarama/sync_producer.go | 149 + vendor/github.com/Shopify/sarama/timestamp.go | 40 + .../sarama/txn_offset_commit_request.go | 126 + .../sarama/txn_offset_commit_response.go | 83 + vendor/github.com/Shopify/sarama/utils.go | 227 + vendor/github.com/Shopify/sarama/zstd.go | 27 + vendor/github.com/beorn7/perks/LICENSE | 20 + .../beorn7/perks/quantile/exampledata.txt | 2388 + .../beorn7/perks/quantile/stream.go | 316 + vendor/github.com/davecgh/go-spew/LICENSE | 15 + .../github.com/davecgh/go-spew/spew/bypass.go | 145 + .../davecgh/go-spew/spew/bypasssafe.go | 38 + .../github.com/davecgh/go-spew/spew/common.go | 341 + .../github.com/davecgh/go-spew/spew/config.go | 306 + vendor/github.com/davecgh/go-spew/spew/doc.go | 211 + .../github.com/davecgh/go-spew/spew/dump.go | 509 + .../github.com/davecgh/go-spew/spew/format.go | 419 + .../github.com/davecgh/go-spew/spew/spew.go | 148 + .../github.com/eapache/go-resiliency/LICENSE | 22 + .../eapache/go-resiliency/breaker/README.md | 34 + .../eapache/go-resiliency/breaker/breaker.go | 161 + .../eapache/go-xerial-snappy/.gitignore | 24 + .../eapache/go-xerial-snappy/.travis.yml | 7 + .../eapache/go-xerial-snappy/LICENSE | 21 + .../eapache/go-xerial-snappy/README.md | 13 + .../eapache/go-xerial-snappy/fuzz.go | 16 + .../eapache/go-xerial-snappy/snappy.go | 131 + vendor/github.com/eapache/queue/.gitignore | 23 + vendor/github.com/eapache/queue/.travis.yml | 7 + vendor/github.com/eapache/queue/LICENSE | 21 + vendor/github.com/eapache/queue/README.md | 16 + vendor/github.com/eapache/queue/queue.go | 102 + vendor/github.com/golang/protobuf/AUTHORS | 3 + .../github.com/golang/protobuf/CONTRIBUTORS | 3 + vendor/github.com/golang/protobuf/LICENSE | 31 + .../github.com/golang/protobuf/proto/Makefile | 43 + .../github.com/golang/protobuf/proto/clone.go | 229 + .../golang/protobuf/proto/decode.go | 970 + .../golang/protobuf/proto/discard.go | 151 + .../golang/protobuf/proto/encode.go | 1362 + .../github.com/golang/protobuf/proto/equal.go | 300 + .../golang/protobuf/proto/extensions.go | 587 + .../github.com/golang/protobuf/proto/lib.go | 897 + .../golang/protobuf/proto/message_set.go | 311 + .../golang/protobuf/proto/pointer_reflect.go | 484 + .../golang/protobuf/proto/pointer_unsafe.go | 270 + .../golang/protobuf/proto/properties.go | 872 + .../github.com/golang/protobuf/proto/text.go | 854 + .../golang/protobuf/proto/text_parser.go | 895 + .../protoc-gen-go/descriptor/Makefile | 37 + .../protoc-gen-go/descriptor/descriptor.pb.go | 2215 + .../protoc-gen-go/descriptor/descriptor.proto | 849 + .../github.com/golang/protobuf/ptypes/any.go | 139 + .../golang/protobuf/ptypes/any/any.pb.go | 178 + .../golang/protobuf/ptypes/any/any.proto | 149 + .../github.com/golang/protobuf/ptypes/doc.go | 35 + .../golang/protobuf/ptypes/duration.go | 102 + .../protobuf/ptypes/duration/duration.pb.go | 144 + .../protobuf/ptypes/duration/duration.proto | 117 + .../golang/protobuf/ptypes/regen.sh | 43 + .../golang/protobuf/ptypes/timestamp.go | 134 + .../protobuf/ptypes/timestamp/timestamp.pb.go | 160 + .../protobuf/ptypes/timestamp/timestamp.proto | 133 + vendor/github.com/golang/snappy/.gitignore | 16 + vendor/github.com/golang/snappy/AUTHORS | 15 + vendor/github.com/golang/snappy/CONTRIBUTORS | 37 + vendor/github.com/golang/snappy/LICENSE | 27 + vendor/github.com/golang/snappy/README | 107 + vendor/github.com/golang/snappy/decode.go | 237 + .../github.com/golang/snappy/decode_amd64.go | 14 + .../github.com/golang/snappy/decode_amd64.s | 490 + .../github.com/golang/snappy/decode_other.go | 101 + vendor/github.com/golang/snappy/encode.go | 285 + .../github.com/golang/snappy/encode_amd64.go | 29 + .../github.com/golang/snappy/encode_amd64.s | 730 + .../github.com/golang/snappy/encode_other.go | 238 + vendor/github.com/golang/snappy/go.mod | 1 + vendor/github.com/golang/snappy/snappy.go | 98 + vendor/github.com/gorilla/mux/AUTHORS | 8 + vendor/github.com/gorilla/mux/LICENSE | 27 + vendor/github.com/gorilla/mux/README.md | 805 + vendor/github.com/gorilla/mux/doc.go | 306 + vendor/github.com/gorilla/mux/go.mod | 3 + vendor/github.com/gorilla/mux/middleware.go | 74 + vendor/github.com/gorilla/mux/mux.go | 606 + vendor/github.com/gorilla/mux/regexp.go | 388 + vendor/github.com/gorilla/mux/route.go | 736 + vendor/github.com/gorilla/mux/test_helpers.go | 19 + .../github.com/hashicorp/go-uuid/.travis.yml | 12 + vendor/github.com/hashicorp/go-uuid/LICENSE | 363 + vendor/github.com/hashicorp/go-uuid/README.md | 8 + vendor/github.com/hashicorp/go-uuid/go.mod | 1 + vendor/github.com/hashicorp/go-uuid/uuid.go | 83 + vendor/github.com/influxdata/influxdb/LICENSE | 20 + .../influxdb/LICENSE_OF_DEPENDENCIES.md | 62 + .../influxdata/influxdb/client/v2/client.go | 638 + .../influxdata/influxdb/client/v2/udp.go | 112 + .../influxdata/influxdb/models/consistency.go | 48 + .../influxdata/influxdb/models/inline_fnv.go | 32 + .../influxdb/models/inline_strconv_parse.go | 44 + .../influxdata/influxdb/models/points.go | 2387 + .../influxdata/influxdb/models/rows.go | 62 + .../influxdata/influxdb/models/statistic.go | 42 + .../influxdata/influxdb/models/time.go | 74 + .../influxdb/models/uint_support.go | 7 + .../influxdata/influxdb/pkg/escape/bytes.go | 115 + .../influxdata/influxdb/pkg/escape/strings.go | 21 + vendor/github.com/jcmturner/gofork/LICENSE | 27 + .../jcmturner/gofork/encoding/asn1/README.md | 5 + .../jcmturner/gofork/encoding/asn1/asn1.go | 1003 + .../jcmturner/gofork/encoding/asn1/common.go | 173 + .../jcmturner/gofork/encoding/asn1/marshal.go | 659 + .../gofork/x/crypto/pbkdf2/pbkdf2.go | 98 + vendor/github.com/klauspost/compress/LICENSE | 28 + .../klauspost/compress/fse/README.md | 79 + .../klauspost/compress/fse/bitreader.go | 107 + .../klauspost/compress/fse/bitwriter.go | 168 + .../klauspost/compress/fse/bytereader.go | 56 + .../klauspost/compress/fse/compress.go | 684 + .../klauspost/compress/fse/decompress.go | 374 + .../github.com/klauspost/compress/fse/fse.go | 143 + .../klauspost/compress/huff0/.gitignore | 1 + .../klauspost/compress/huff0/README.md | 87 + .../klauspost/compress/huff0/bitreader.go | 115 + .../klauspost/compress/huff0/bitwriter.go | 197 + .../klauspost/compress/huff0/bytereader.go | 54 + .../klauspost/compress/huff0/compress.go | 651 + .../klauspost/compress/huff0/decompress.go | 472 + .../klauspost/compress/huff0/huff0.go | 259 + .../klauspost/compress/snappy/.gitignore | 16 + .../klauspost/compress/snappy/AUTHORS | 15 + .../klauspost/compress/snappy/CONTRIBUTORS | 37 + .../klauspost/compress/snappy/LICENSE | 27 + .../klauspost/compress/snappy/README | 107 + .../klauspost/compress/snappy/decode.go | 237 + .../klauspost/compress/snappy/decode_amd64.go | 14 + .../klauspost/compress/snappy/decode_amd64.s | 482 + .../klauspost/compress/snappy/decode_other.go | 115 + .../klauspost/compress/snappy/encode.go | 285 + .../klauspost/compress/snappy/encode_amd64.go | 29 + .../klauspost/compress/snappy/encode_amd64.s | 730 + .../klauspost/compress/snappy/encode_other.go | 238 + .../klauspost/compress/snappy/runbench.cmd | 2 + .../klauspost/compress/snappy/snappy.go | 98 + .../klauspost/compress/zstd/README.md | 393 + .../klauspost/compress/zstd/bitreader.go | 121 + .../klauspost/compress/zstd/bitwriter.go | 169 + .../klauspost/compress/zstd/blockdec.go | 716 + .../klauspost/compress/zstd/blockenc.go | 837 + .../compress/zstd/blocktype_string.go | 85 + .../klauspost/compress/zstd/bytebuf.go | 127 + .../klauspost/compress/zstd/bytereader.go | 74 + .../klauspost/compress/zstd/decoder.go | 513 + .../compress/zstd/decoder_options.go | 68 + .../klauspost/compress/zstd/enc_dfast.go | 726 + .../klauspost/compress/zstd/enc_fast.go | 656 + .../klauspost/compress/zstd/enc_params.go | 154 + .../klauspost/compress/zstd/encoder.go | 539 + .../compress/zstd/encoder_options.go | 231 + .../klauspost/compress/zstd/framedec.go | 489 + .../klauspost/compress/zstd/frameenc.go | 115 + .../klauspost/compress/zstd/fse_decoder.go | 384 + .../klauspost/compress/zstd/fse_encoder.go | 726 + .../klauspost/compress/zstd/fse_predefined.go | 158 + .../klauspost/compress/zstd/hash.go | 77 + .../klauspost/compress/zstd/history.go | 73 + .../compress/zstd/internal/xxhash/LICENSE.txt | 22 + .../compress/zstd/internal/xxhash/README.md | 58 + .../compress/zstd/internal/xxhash/xxhash.go | 238 + .../zstd/internal/xxhash/xxhash_amd64.go | 13 + .../zstd/internal/xxhash/xxhash_amd64.s | 215 + .../zstd/internal/xxhash/xxhash_other.go | 76 + .../zstd/internal/xxhash/xxhash_safe.go | 11 + .../klauspost/compress/zstd/seqdec.go | 402 + .../klauspost/compress/zstd/seqenc.go | 115 + .../klauspost/compress/zstd/snappy.go | 436 + .../klauspost/compress/zstd/zstd.go | 136 + .../golang_protobuf_extensions/LICENSE | 201 + .../golang_protobuf_extensions/NOTICE | 1 + .../pbutil/decode.go | 75 + .../golang_protobuf_extensions/pbutil/doc.go | 16 + .../pbutil/encode.go | 46 + vendor/github.com/pierrec/lz4/.gitignore | 34 + vendor/github.com/pierrec/lz4/.travis.yml | 24 + vendor/github.com/pierrec/lz4/LICENSE | 28 + vendor/github.com/pierrec/lz4/README.md | 90 + vendor/github.com/pierrec/lz4/block.go | 387 + vendor/github.com/pierrec/lz4/debug.go | 23 + vendor/github.com/pierrec/lz4/debug_stub.go | 7 + vendor/github.com/pierrec/lz4/decode_amd64.go | 8 + vendor/github.com/pierrec/lz4/decode_amd64.s | 375 + vendor/github.com/pierrec/lz4/decode_other.go | 98 + vendor/github.com/pierrec/lz4/errors.go | 30 + .../pierrec/lz4/internal/xxh32/xxh32zero.go | 223 + vendor/github.com/pierrec/lz4/lz4.go | 113 + vendor/github.com/pierrec/lz4/lz4_go1.10.go | 29 + .../github.com/pierrec/lz4/lz4_notgo1.10.go | 29 + vendor/github.com/pierrec/lz4/reader.go | 335 + vendor/github.com/pierrec/lz4/writer.go | 408 + .../prometheus/client_golang/AUTHORS.md | 18 + .../prometheus/client_golang/LICENSE | 201 + .../prometheus/client_golang/NOTICE | 23 + .../client_golang/prometheus/.gitignore | 1 + .../client_golang/prometheus/README.md | 1 + .../client_golang/prometheus/collector.go | 75 + .../client_golang/prometheus/counter.go | 172 + .../client_golang/prometheus/desc.go | 205 + .../client_golang/prometheus/doc.go | 181 + .../prometheus/expvar_collector.go | 119 + .../client_golang/prometheus/fnv.go | 29 + .../client_golang/prometheus/gauge.go | 140 + .../client_golang/prometheus/go_collector.go | 263 + .../client_golang/prometheus/histogram.go | 444 + .../client_golang/prometheus/http.go | 490 + .../client_golang/prometheus/metric.go | 166 + .../prometheus/process_collector.go | 142 + .../client_golang/prometheus/promhttp/http.go | 201 + .../client_golang/prometheus/registry.go | 806 + .../client_golang/prometheus/summary.go | 534 + .../client_golang/prometheus/untyped.go | 138 + .../client_golang/prometheus/value.go | 234 + .../client_golang/prometheus/vec.go | 404 + .../prometheus/client_model/LICENSE | 201 + .../github.com/prometheus/client_model/NOTICE | 5 + .../prometheus/client_model/go/metrics.pb.go | 364 + vendor/github.com/prometheus/common/LICENSE | 201 + vendor/github.com/prometheus/common/NOTICE | 5 + .../prometheus/common/expfmt/decode.go | 429 + .../prometheus/common/expfmt/encode.go | 88 + .../prometheus/common/expfmt/expfmt.go | 38 + .../prometheus/common/expfmt/fuzz.go | 36 + .../prometheus/common/expfmt/text_create.go | 303 + .../prometheus/common/expfmt/text_parse.go | 757 + .../bitbucket.org/ww/goautoneg/README.txt | 67 + .../bitbucket.org/ww/goautoneg/autoneg.go | 162 + .../prometheus/common/model/alert.go | 136 + .../prometheus/common/model/fingerprinting.go | 105 + .../github.com/prometheus/common/model/fnv.go | 42 + .../prometheus/common/model/labels.go | 210 + .../prometheus/common/model/labelset.go | 169 + .../prometheus/common/model/metric.go | 103 + .../prometheus/common/model/model.go | 16 + .../prometheus/common/model/signature.go | 144 + .../prometheus/common/model/silence.go | 106 + .../prometheus/common/model/time.go | 264 + .../prometheus/common/model/value.go | 416 + .../github.com/prometheus/procfs/.gitignore | 1 + .../github.com/prometheus/procfs/.travis.yml | 15 + .../prometheus/procfs/CONTRIBUTING.md | 18 + vendor/github.com/prometheus/procfs/LICENSE | 201 + .../prometheus/procfs/MAINTAINERS.md | 1 + vendor/github.com/prometheus/procfs/Makefile | 71 + vendor/github.com/prometheus/procfs/NOTICE | 7 + vendor/github.com/prometheus/procfs/README.md | 11 + .../github.com/prometheus/procfs/buddyinfo.go | 95 + vendor/github.com/prometheus/procfs/doc.go | 45 + .../prometheus/procfs/fixtures.ttar | 446 + vendor/github.com/prometheus/procfs/fs.go | 82 + .../prometheus/procfs/internal/util/parse.go | 46 + vendor/github.com/prometheus/procfs/ipvs.go | 259 + vendor/github.com/prometheus/procfs/mdstat.go | 151 + .../prometheus/procfs/mountstats.go | 569 + .../github.com/prometheus/procfs/net_dev.go | 216 + .../github.com/prometheus/procfs/nfs/nfs.go | 263 + .../github.com/prometheus/procfs/nfs/parse.go | 317 + .../prometheus/procfs/nfs/parse_nfs.go | 67 + .../prometheus/procfs/nfs/parse_nfsd.go | 89 + vendor/github.com/prometheus/procfs/proc.go | 238 + .../github.com/prometheus/procfs/proc_io.go | 65 + .../prometheus/procfs/proc_limits.go | 150 + .../github.com/prometheus/procfs/proc_ns.go | 68 + .../github.com/prometheus/procfs/proc_stat.go | 188 + vendor/github.com/prometheus/procfs/stat.go | 232 + vendor/github.com/prometheus/procfs/ttar | 389 + vendor/github.com/prometheus/procfs/xfrm.go | 187 + .../github.com/prometheus/procfs/xfs/parse.go | 330 + .../github.com/prometheus/procfs/xfs/xfs.go | 163 + .../github.com/rcrowley/go-metrics/.gitignore | 9 + .../rcrowley/go-metrics/.travis.yml | 20 + vendor/github.com/rcrowley/go-metrics/LICENSE | 29 + .../github.com/rcrowley/go-metrics/README.md | 171 + .../github.com/rcrowley/go-metrics/counter.go | 112 + .../github.com/rcrowley/go-metrics/debug.go | 80 + vendor/github.com/rcrowley/go-metrics/ewma.go | 138 + .../github.com/rcrowley/go-metrics/gauge.go | 120 + .../rcrowley/go-metrics/gauge_float64.go | 125 + .../rcrowley/go-metrics/graphite.go | 113 + .../rcrowley/go-metrics/healthcheck.go | 61 + .../rcrowley/go-metrics/histogram.go | 202 + vendor/github.com/rcrowley/go-metrics/json.go | 31 + vendor/github.com/rcrowley/go-metrics/log.go | 100 + .../github.com/rcrowley/go-metrics/memory.md | 285 + .../github.com/rcrowley/go-metrics/meter.go | 251 + .../github.com/rcrowley/go-metrics/metrics.go | 13 + .../rcrowley/go-metrics/opentsdb.go | 119 + .../rcrowley/go-metrics/registry.go | 373 + .../github.com/rcrowley/go-metrics/runtime.go | 216 + .../rcrowley/go-metrics/runtime_cgo.go | 10 + .../go-metrics/runtime_gccpufraction.go | 9 + .../rcrowley/go-metrics/runtime_no_cgo.go | 7 + .../go-metrics/runtime_no_gccpufraction.go | 9 + .../github.com/rcrowley/go-metrics/sample.go | 616 + .../github.com/rcrowley/go-metrics/syslog.go | 78 + .../github.com/rcrowley/go-metrics/timer.go | 329 + .../rcrowley/go-metrics/validate.sh | 10 + .../github.com/rcrowley/go-metrics/writer.go | 100 + vendor/github.com/spf13/pflag/.gitignore | 2 + vendor/github.com/spf13/pflag/.travis.yml | 21 + vendor/github.com/spf13/pflag/LICENSE | 28 + vendor/github.com/spf13/pflag/README.md | 296 + vendor/github.com/spf13/pflag/bool.go | 94 + vendor/github.com/spf13/pflag/bool_slice.go | 147 + vendor/github.com/spf13/pflag/bytes.go | 105 + vendor/github.com/spf13/pflag/count.go | 96 + vendor/github.com/spf13/pflag/duration.go | 86 + .../github.com/spf13/pflag/duration_slice.go | 128 + vendor/github.com/spf13/pflag/flag.go | 1223 + vendor/github.com/spf13/pflag/float32.go | 88 + vendor/github.com/spf13/pflag/float64.go | 84 + vendor/github.com/spf13/pflag/golangflag.go | 105 + vendor/github.com/spf13/pflag/int.go | 84 + vendor/github.com/spf13/pflag/int16.go | 88 + vendor/github.com/spf13/pflag/int32.go | 88 + vendor/github.com/spf13/pflag/int64.go | 84 + vendor/github.com/spf13/pflag/int8.go | 88 + vendor/github.com/spf13/pflag/int_slice.go | 128 + vendor/github.com/spf13/pflag/ip.go | 94 + vendor/github.com/spf13/pflag/ip_slice.go | 148 + vendor/github.com/spf13/pflag/ipmask.go | 122 + vendor/github.com/spf13/pflag/ipnet.go | 98 + vendor/github.com/spf13/pflag/string.go | 80 + vendor/github.com/spf13/pflag/string_array.go | 103 + vendor/github.com/spf13/pflag/string_slice.go | 149 + vendor/github.com/spf13/pflag/uint.go | 88 + vendor/github.com/spf13/pflag/uint16.go | 88 + vendor/github.com/spf13/pflag/uint32.go | 88 + vendor/github.com/spf13/pflag/uint64.go | 88 + vendor/github.com/spf13/pflag/uint8.go | 88 + vendor/github.com/spf13/pflag/uint_slice.go | 126 + vendor/golang.org/x/crypto/AUTHORS | 3 + vendor/golang.org/x/crypto/CONTRIBUTORS | 3 + vendor/golang.org/x/crypto/LICENSE | 27 + vendor/golang.org/x/crypto/PATENTS | 22 + vendor/golang.org/x/crypto/md4/md4.go | 122 + vendor/golang.org/x/crypto/md4/md4block.go | 89 + vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go | 77 + vendor/golang.org/x/net/AUTHORS | 3 + vendor/golang.org/x/net/CONTRIBUTORS | 3 + vendor/golang.org/x/net/LICENSE | 27 + vendor/golang.org/x/net/PATENTS | 22 + vendor/golang.org/x/net/context/context.go | 56 + vendor/golang.org/x/net/context/go17.go | 73 + vendor/golang.org/x/net/context/go19.go | 21 + vendor/golang.org/x/net/context/pre_go17.go | 301 + vendor/golang.org/x/net/context/pre_go19.go | 110 + vendor/golang.org/x/net/http/httpguts/guts.go | 50 + .../golang.org/x/net/http/httpguts/httplex.go | 348 + vendor/golang.org/x/net/http2/.gitignore | 2 + vendor/golang.org/x/net/http2/Dockerfile | 51 + vendor/golang.org/x/net/http2/Makefile | 3 + vendor/golang.org/x/net/http2/ascii.go | 53 + vendor/golang.org/x/net/http2/ciphers.go | 641 + .../x/net/http2/client_conn_pool.go | 313 + vendor/golang.org/x/net/http2/databuffer.go | 146 + vendor/golang.org/x/net/http2/errors.go | 145 + vendor/golang.org/x/net/http2/flow.go | 52 + vendor/golang.org/x/net/http2/frame.go | 1614 + vendor/golang.org/x/net/http2/go111.go | 30 + vendor/golang.org/x/net/http2/go115.go | 27 + vendor/golang.org/x/net/http2/gotrack.go | 170 + vendor/golang.org/x/net/http2/headermap.go | 87 + vendor/golang.org/x/net/http2/hpack/encode.go | 240 + vendor/golang.org/x/net/http2/hpack/hpack.go | 504 + .../golang.org/x/net/http2/hpack/huffman.go | 229 + vendor/golang.org/x/net/http2/hpack/tables.go | 479 + vendor/golang.org/x/net/http2/http2.go | 385 + vendor/golang.org/x/net/http2/not_go111.go | 21 + vendor/golang.org/x/net/http2/not_go115.go | 31 + vendor/golang.org/x/net/http2/pipe.go | 168 + vendor/golang.org/x/net/http2/server.go | 3021 ++ vendor/golang.org/x/net/http2/transport.go | 2908 + vendor/golang.org/x/net/http2/write.go | 370 + vendor/golang.org/x/net/http2/writesched.go | 248 + .../x/net/http2/writesched_priority.go | 452 + .../x/net/http2/writesched_random.go | 77 + vendor/golang.org/x/net/idna/idna10.0.0.go | 770 + vendor/golang.org/x/net/idna/idna9.0.0.go | 718 + vendor/golang.org/x/net/idna/punycode.go | 203 + vendor/golang.org/x/net/idna/tables10.0.0.go | 4560 ++ vendor/golang.org/x/net/idna/tables11.0.0.go | 4654 ++ vendor/golang.org/x/net/idna/tables12.0.0.go | 4734 ++ vendor/golang.org/x/net/idna/tables13.0.0.go | 4840 ++ vendor/golang.org/x/net/idna/tables9.0.0.go | 4487 ++ vendor/golang.org/x/net/idna/trie.go | 72 + vendor/golang.org/x/net/idna/trieval.go | 119 + .../golang.org/x/net/internal/socks/client.go | 168 + .../golang.org/x/net/internal/socks/socks.go | 317 + .../x/net/internal/timeseries/timeseries.go | 525 + vendor/golang.org/x/net/proxy/dial.go | 54 + vendor/golang.org/x/net/proxy/direct.go | 31 + vendor/golang.org/x/net/proxy/per_host.go | 155 + vendor/golang.org/x/net/proxy/proxy.go | 149 + vendor/golang.org/x/net/proxy/socks5.go | 42 + vendor/golang.org/x/net/trace/events.go | 532 + vendor/golang.org/x/net/trace/histogram.go | 365 + vendor/golang.org/x/net/trace/trace.go | 1130 + vendor/golang.org/x/text/AUTHORS | 3 + vendor/golang.org/x/text/CONTRIBUTORS | 3 + vendor/golang.org/x/text/LICENSE | 27 + vendor/golang.org/x/text/PATENTS | 22 + .../x/text/secure/bidirule/bidirule.go | 336 + .../x/text/secure/bidirule/bidirule10.0.0.go | 12 + .../x/text/secure/bidirule/bidirule9.0.0.go | 15 + .../golang.org/x/text/transform/transform.go | 709 + vendor/golang.org/x/text/unicode/bidi/bidi.go | 359 + .../golang.org/x/text/unicode/bidi/bracket.go | 335 + vendor/golang.org/x/text/unicode/bidi/core.go | 1071 + vendor/golang.org/x/text/unicode/bidi/prop.go | 206 + .../x/text/unicode/bidi/tables10.0.0.go | 1816 + .../x/text/unicode/bidi/tables11.0.0.go | 1888 + .../x/text/unicode/bidi/tables12.0.0.go | 1924 + .../x/text/unicode/bidi/tables13.0.0.go | 1956 + .../x/text/unicode/bidi/tables9.0.0.go | 1782 + .../golang.org/x/text/unicode/bidi/trieval.go | 60 + .../x/text/unicode/norm/composition.go | 512 + .../x/text/unicode/norm/forminfo.go | 278 + .../golang.org/x/text/unicode/norm/input.go | 109 + vendor/golang.org/x/text/unicode/norm/iter.go | 458 + .../x/text/unicode/norm/normalize.go | 609 + .../x/text/unicode/norm/readwriter.go | 125 + .../x/text/unicode/norm/tables10.0.0.go | 7658 +++ .../x/text/unicode/norm/tables11.0.0.go | 7694 +++ .../x/text/unicode/norm/tables12.0.0.go | 7711 +++ .../x/text/unicode/norm/tables13.0.0.go | 7761 +++ .../x/text/unicode/norm/tables9.0.0.go | 7638 +++ .../x/text/unicode/norm/transform.go | 88 + vendor/golang.org/x/text/unicode/norm/trie.go | 54 + vendor/google.golang.org/genproto/LICENSE | 202 + .../googleapis/rpc/status/status.pb.go | 143 + vendor/google.golang.org/grpc/.travis.yml | 24 + vendor/google.golang.org/grpc/AUTHORS | 1 + vendor/google.golang.org/grpc/CONTRIBUTING.md | 32 + vendor/google.golang.org/grpc/LICENSE | 202 + vendor/google.golang.org/grpc/Makefile | 45 + vendor/google.golang.org/grpc/README.md | 45 + vendor/google.golang.org/grpc/backoff.go | 96 + vendor/google.golang.org/grpc/balancer.go | 409 + .../grpc/balancer/balancer.go | 223 + .../grpc/balancer/base/balancer.go | 209 + .../grpc/balancer/base/base.go | 52 + .../grpc/balancer/roundrobin/roundrobin.go | 79 + .../grpc/balancer_conn_wrappers.go | 300 + .../grpc/balancer_v1_wrapper.go | 375 + vendor/google.golang.org/grpc/call.go | 93 + vendor/google.golang.org/grpc/clientconn.go | 1403 + vendor/google.golang.org/grpc/codec.go | 50 + vendor/google.golang.org/grpc/codegen.sh | 17 + .../grpc/codes/code_string.go | 62 + vendor/google.golang.org/grpc/codes/codes.go | 184 + .../grpc/connectivity/connectivity.go | 72 + .../grpc/credentials/credentials.go | 220 + .../grpc/credentials/credentials_util_go17.go | 60 + .../grpc/credentials/credentials_util_go18.go | 38 + .../credentials/credentials_util_pre_go17.go | 57 + vendor/google.golang.org/grpc/doc.go | 24 + .../grpc/encoding/encoding.go | 118 + .../grpc/encoding/gzip/gzip.go | 117 + .../grpc/encoding/proto/proto.go | 110 + vendor/google.golang.org/grpc/go16.go | 70 + vendor/google.golang.org/grpc/go17.go | 71 + vendor/google.golang.org/grpc/grpclb.go | 342 + .../grpclb/grpc_lb_v1/messages/messages.pb.go | 615 + .../grpclb/grpc_lb_v1/messages/messages.proto | 155 + .../google.golang.org/grpc/grpclb_picker.go | 159 + .../grpc/grpclb_remote_balancer.go | 254 + vendor/google.golang.org/grpc/grpclb_util.go | 90 + .../google.golang.org/grpc/grpclog/grpclog.go | 123 + .../google.golang.org/grpc/grpclog/logger.go | 83 + .../grpc/grpclog/loggerv2.go | 195 + vendor/google.golang.org/grpc/interceptor.go | 77 + .../grpc/internal/internal.go | 27 + .../grpc/keepalive/keepalive.go | 65 + .../grpc/metadata/metadata.go | 184 + .../grpc/naming/dns_resolver.go | 290 + vendor/google.golang.org/grpc/naming/go17.go | 34 + vendor/google.golang.org/grpc/naming/go18.go | 28 + .../google.golang.org/grpc/naming/naming.go | 59 + vendor/google.golang.org/grpc/peer/peer.go | 51 + .../google.golang.org/grpc/picker_wrapper.go | 158 + vendor/google.golang.org/grpc/pickfirst.go | 108 + vendor/google.golang.org/grpc/proxy.go | 130 + .../grpc/resolver/dns/dns_resolver.go | 377 + .../grpc/resolver/dns/go17.go | 35 + .../grpc/resolver/dns/go18.go | 29 + .../grpc/resolver/passthrough/passthrough.go | 57 + .../grpc/resolver/resolver.go | 148 + .../grpc/resolver_conn_wrapper.go | 158 + vendor/google.golang.org/grpc/rpc_util.go | 717 + vendor/google.golang.org/grpc/server.go | 1371 + .../google.golang.org/grpc/service_config.go | 226 + .../google.golang.org/grpc/stats/handlers.go | 64 + vendor/google.golang.org/grpc/stats/stats.go | 296 + .../google.golang.org/grpc/status/status.go | 189 + vendor/google.golang.org/grpc/stream.go | 736 + vendor/google.golang.org/grpc/tap/tap.go | 51 + vendor/google.golang.org/grpc/trace.go | 113 + .../grpc/transport/bdp_estimator.go | 140 + .../grpc/transport/control.go | 334 + .../google.golang.org/grpc/transport/go16.go | 51 + .../google.golang.org/grpc/transport/go17.go | 52 + .../grpc/transport/handler_server.go | 447 + .../grpc/transport/http2_client.go | 1386 + .../grpc/transport/http2_server.go | 1210 + .../grpc/transport/http_util.go | 530 + .../google.golang.org/grpc/transport/log.go | 50 + .../grpc/transport/transport.go | 771 + vendor/google.golang.org/grpc/vet.sh | 84 + .../gopkg.in/jcmturner/aescts.v1/.gitignore | 14 + vendor/gopkg.in/jcmturner/aescts.v1/LICENSE | 201 + vendor/gopkg.in/jcmturner/aescts.v1/README.md | 16 + vendor/gopkg.in/jcmturner/aescts.v1/aescts.go | 186 + .../gopkg.in/jcmturner/dnsutils.v1/.gitignore | 14 + .../jcmturner/dnsutils.v1/.travis.yml | 24 + vendor/gopkg.in/jcmturner/dnsutils.v1/LICENSE | 201 + vendor/gopkg.in/jcmturner/dnsutils.v1/srv.go | 95 + vendor/gopkg.in/jcmturner/gokrb5.v7/LICENSE | 201 + .../jcmturner/gokrb5.v7/asn1tools/tools.go | 86 + .../jcmturner/gokrb5.v7/client/ASExchange.go | 189 + .../jcmturner/gokrb5.v7/client/TGSExchange.go | 103 + .../jcmturner/gokrb5.v7/client/cache.go | 110 + .../jcmturner/gokrb5.v7/client/client.go | 241 + .../jcmturner/gokrb5.v7/client/network.go | 224 + .../jcmturner/gokrb5.v7/client/passwd.go | 95 + .../jcmturner/gokrb5.v7/client/session.go | 255 + .../jcmturner/gokrb5.v7/client/settings.go | 69 + .../jcmturner/gokrb5.v7/config/error.go | 30 + .../jcmturner/gokrb5.v7/config/hosts.go | 141 + .../jcmturner/gokrb5.v7/config/krb5conf.go | 726 + .../jcmturner/gokrb5.v7/credentials/ccache.go | 348 + .../gokrb5.v7/credentials/credentials.go | 314 + .../crypto/aes128-cts-hmac-sha1-96.go | 173 + .../crypto/aes128-cts-hmac-sha256-128.go | 135 + .../crypto/aes256-cts-hmac-sha1-96.go | 173 + .../crypto/aes256-cts-hmac-sha384-192.go | 135 + .../gokrb5.v7/crypto/common/common.go | 143 + .../jcmturner/gokrb5.v7/crypto/crypto.go | 175 + .../gokrb5.v7/crypto/des3-cbc-sha1-kd.go | 174 + .../jcmturner/gokrb5.v7/crypto/etype/etype.go | 29 + .../jcmturner/gokrb5.v7/crypto/rc4-hmac.go | 135 + .../gokrb5.v7/crypto/rfc3961/encryption.go | 125 + .../gokrb5.v7/crypto/rfc3961/keyDerivation.go | 178 + .../gokrb5.v7/crypto/rfc3961/nfold.go | 128 + .../gokrb5.v7/crypto/rfc3962/encryption.go | 89 + .../gokrb5.v7/crypto/rfc3962/keyDerivation.go | 58 + .../gokrb5.v7/crypto/rfc4757/checksum.go | 40 + .../gokrb5.v7/crypto/rfc4757/encryption.go | 80 + .../gokrb5.v7/crypto/rfc4757/keyDerivation.go | 55 + .../gokrb5.v7/crypto/rfc4757/msgtype.go | 20 + .../gokrb5.v7/crypto/rfc8009/encryption.go | 128 + .../gokrb5.v7/crypto/rfc8009/keyDerivation.go | 144 + .../jcmturner/gokrb5.v7/gssapi/MICToken.go | 202 + .../jcmturner/gokrb5.v7/gssapi/README.md | 20 + .../gokrb5.v7/gssapi/contextFlags.go | 25 + .../jcmturner/gokrb5.v7/gssapi/gssapi.go | 199 + .../jcmturner/gokrb5.v7/gssapi/wrapToken.go | 235 + .../gokrb5.v7/iana/addrtype/constants.go | 15 + .../gokrb5.v7/iana/adtype/constants.go | 23 + .../gokrb5.v7/iana/asnAppTag/constants.go | 24 + .../gokrb5.v7/iana/chksumtype/constants.go | 32 + .../jcmturner/gokrb5.v7/iana/constants.go | 5 + .../gokrb5.v7/iana/errorcode/constants.go | 155 + .../gokrb5.v7/iana/etypeID/constants.go | 101 + .../gokrb5.v7/iana/flags/constants.go | 36 + .../gokrb5.v7/iana/keyusage/constants.go | 42 + .../gokrb5.v7/iana/msgtype/constants.go | 18 + .../gokrb5.v7/iana/nametype/constants.go | 15 + .../gokrb5.v7/iana/patype/constants.go | 77 + .../gokrb5.v7/kadmin/changepasswddata.go | 23 + .../jcmturner/gokrb5.v7/kadmin/message.go | 114 + .../jcmturner/gokrb5.v7/kadmin/passwd.go | 68 + .../jcmturner/gokrb5.v7/keytab/keytab.go | 466 + .../jcmturner/gokrb5.v7/krberror/error.go | 67 + .../jcmturner/gokrb5.v7/messages/APRep.go | 64 + .../jcmturner/gokrb5.v7/messages/APReq.go | 220 + .../jcmturner/gokrb5.v7/messages/KDCRep.go | 312 + .../jcmturner/gokrb5.v7/messages/KDCReq.go | 432 + .../jcmturner/gokrb5.v7/messages/KRBCred.go | 102 + .../jcmturner/gokrb5.v7/messages/KRBError.go | 83 + .../jcmturner/gokrb5.v7/messages/KRBPriv.go | 108 + .../jcmturner/gokrb5.v7/messages/KRBSafe.go | 61 + .../jcmturner/gokrb5.v7/messages/Ticket.go | 265 + .../jcmturner/gokrb5.v7/pac/client_claims.go | 33 + .../jcmturner/gokrb5.v7/pac/client_info.go | 31 + .../gokrb5.v7/pac/credentials_info.go | 86 + .../jcmturner/gokrb5.v7/pac/device_claims.go | 33 + .../jcmturner/gokrb5.v7/pac/device_info.go | 32 + .../gokrb5.v7/pac/kerb_validation_info.go | 115 + .../jcmturner/gokrb5.v7/pac/pac_type.go | 251 + .../gokrb5.v7/pac/s4u_delegation_info.go | 26 + .../jcmturner/gokrb5.v7/pac/signature_data.go | 79 + .../gokrb5.v7/pac/supplemental_cred.go | 90 + .../jcmturner/gokrb5.v7/pac/upn_dns_info.go | 73 + .../gokrb5.v7/types/Authenticator.go | 100 + .../gokrb5.v7/types/AuthorizationData.go | 123 + .../jcmturner/gokrb5.v7/types/Cryptosystem.go | 55 + .../jcmturner/gokrb5.v7/types/HostAddress.go | 204 + .../gokrb5.v7/types/KerberosFlags.go | 124 + .../jcmturner/gokrb5.v7/types/PAData.go | 155 + .../gokrb5.v7/types/PrincipalName.go | 64 + .../jcmturner/gokrb5.v7/types/TypedData.go | 18 + vendor/gopkg.in/jcmturner/rpc.v1/LICENSE | 201 + .../jcmturner/rpc.v1/mstypes/claims.go | 134 + .../jcmturner/rpc.v1/mstypes/common.go | 10 + .../jcmturner/rpc.v1/mstypes/filetime.go | 52 + .../rpc.v1/mstypes/group_membership.go | 19 + .../rpc.v1/mstypes/kerb_sid_and_attributes.go | 23 + .../jcmturner/rpc.v1/mstypes/reader.go | 109 + .../rpc.v1/mstypes/rpc_unicode_string.go | 13 + .../gopkg.in/jcmturner/rpc.v1/mstypes/sid.go | 32 + .../rpc.v1/mstypes/user_session_key.go | 11 + .../gopkg.in/jcmturner/rpc.v1/ndr/arrays.go | 413 + .../gopkg.in/jcmturner/rpc.v1/ndr/decoder.go | 393 + vendor/gopkg.in/jcmturner/rpc.v1/ndr/error.go | 18 + .../gopkg.in/jcmturner/rpc.v1/ndr/header.go | 116 + vendor/gopkg.in/jcmturner/rpc.v1/ndr/pipe.go | 31 + .../jcmturner/rpc.v1/ndr/primitives.go | 211 + .../gopkg.in/jcmturner/rpc.v1/ndr/rawbytes.go | 61 + .../gopkg.in/jcmturner/rpc.v1/ndr/strings.go | 70 + vendor/gopkg.in/jcmturner/rpc.v1/ndr/tags.go | 69 + vendor/gopkg.in/jcmturner/rpc.v1/ndr/union.go | 57 + vendor/modules.txt | 144 + workers.go | 398 + 902 files changed, 501441 insertions(+) create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 alias.go create mode 100644 alias_test.go create mode 100644 authentication/authentication.pb.go create mode 100644 authentication/authentication.proto create mode 100644 config.go create mode 100644 config_test.go create mode 100644 coverage.out create mode 100644 defaults.go create mode 100644 gnmi/gnmi/gnmi.pb.go create mode 100644 gnmi/gnmi/gnmi.proto create mode 100644 gnmi/gnmi_ext/gnmi_ext.pb.go create mode 100644 gnmi/gnmi_ext/gnmi_ext.proto create mode 100644 gnmi/gnmi_juniper_header/GnmiJuniperTelemetryHeader.pb.go create mode 100644 gnmi/gnmi_juniper_header/GnmiJuniperTelemetryHeader.proto create mode 100644 gnmi/gnmi_juniper_header_ext/GnmiJuniperTelemetryHeaderExtension.pb.go create mode 100644 gnmi/gnmi_juniper_header_ext/GnmiJuniperTelemetryHeaderExtension.proto create mode 100644 gnmi_utils.go create mode 100644 gnmi_utils_test.go create mode 100644 go.mod create mode 100644 go.sum create mode 100644 grpc.go create mode 100644 influx.go create mode 100644 influx_test.go create mode 100644 jtimon_test.go create mode 100644 jtisim/.gitignore create mode 100644 jtisim/.travis.yml create mode 100644 jtisim/bgp.go create mode 100644 jtisim/interfaces.go create mode 100644 jtisim/lldp.go create mode 100644 jtisim/server.go create mode 100644 jtisim/util.go create mode 100644 kafka-publish.go create mode 100755 launch-docker-container.sh create mode 100644 logs.go create mode 100644 lpserver/.gitignore create mode 100644 lpserver/lpserver.go create mode 100644 main.go create mode 100644 multi-vendor/cisco/iosxr/grpc-proto/mdt_grpc_dialin.pb.go create mode 100644 multi-vendor/cisco/iosxr/grpc-proto/mdt_grpc_dialin.proto create mode 100644 multi-vendor/cisco/iosxr/schema/bgp.json create mode 100644 multi-vendor/cisco/iosxr/schema/interfaces.json create mode 100644 multi-vendor/cisco/iosxr/schema/native-statsd-oper.json create mode 100644 multi-vendor/cisco/iosxr/schema/wdsysmon.json create mode 100644 multi-vendor/cisco/iosxr/telemetry-proto/telemetry.pb.go create mode 100644 multi-vendor/cisco/iosxr/telemetry-proto/telemetry.proto create mode 100644 multi_vendor.go create mode 100644 prom.png create mode 100644 prometheus_exporter.go create mode 100644 sample-config/1.json create mode 100644 sample-config/2.json create mode 100644 sample-config/gnmi.json create mode 100644 statshandler.go create mode 100644 subscribe_cisco_iosxr.go create mode 100644 subscribe_cisco_iosxr_test.go create mode 100644 subscribe_gnmi.go create mode 100644 subscribe_gnmi_test.go create mode 100644 subscribe_juniper_junos.go create mode 100644 subscribe_juniper_junos_test.go create mode 100644 telemetry/telemetry.pb.go create mode 100644 telemetry/telemetry.proto create mode 100644 tests/data/README.md create mode 100644 tests/data/cisco-ios-xr/config/xr-all-influx.json create mode 100644 tests/data/cisco-ios-xr/config/xr-all-influx.json.testbytes create mode 100644 tests/data/cisco-ios-xr/config/xr-all-influx.json.testexp create mode 100644 tests/data/cisco-ios-xr/config/xr-all-influx.json.testmeta create mode 100644 tests/data/cisco-ios-xr/config/xr-all-influx.json.testres create mode 100644 tests/data/cisco-ios-xr/config/xr-all-influx.log create mode 100644 tests/data/cisco-ios-xr/config/xr-all.json create mode 100644 tests/data/cisco-ios-xr/config/xr-all.json.testbytes create mode 100644 tests/data/cisco-ios-xr/config/xr-all.json.testexp create mode 100644 tests/data/cisco-ios-xr/config/xr-all.json.testmeta create mode 100644 tests/data/cisco-ios-xr/config/xr-all.json.testres create mode 100644 tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json create mode 100644 tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testbytes create mode 100644 tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testexp create mode 100644 tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testmeta create mode 100644 tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testres create mode 100644 tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.log create mode 100644 tests/data/cisco-ios-xr/config/xr-wdsysmon.json create mode 100644 tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testbytes create mode 100644 tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testexp create mode 100644 tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testmeta create mode 100644 tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testres create mode 100644 tests/data/cisco-ios-xr/schema/bgp.json create mode 100644 tests/data/cisco-ios-xr/schema/interfaces.json create mode 100644 tests/data/cisco-ios-xr/schema/native-statsd-oper.json create mode 100644 tests/data/cisco-ios-xr/schema/wdsysmon.json create mode 100644 tests/data/deadlock-jtisim.json create mode 100644 tests/data/empty.json create mode 100644 tests/data/empty.json.testbytes create mode 100644 tests/data/empty.json.testexp create mode 100644 tests/data/empty.json.testmeta create mode 100644 tests/data/error.json create mode 100644 tests/data/file_list.json create mode 100644 tests/data/file_list_err.json create mode 100644 tests/data/gnmi.json create mode 100644 tests/data/jtisim-1.json create mode 100644 tests/data/jtisim-influx.json create mode 100644 tests/data/jtisim-no-influx.json create mode 100644 tests/data/juniper-junos/alias/alias-error.txt create mode 100644 tests/data/juniper-junos/alias/alias.txt create mode 100644 tests/data/juniper-junos/config/interfaces-influx-alias.json create mode 100644 tests/data/juniper-junos/config/interfaces-influx.json create mode 100644 tests/data/juniper-junos/config/interfaces.json create mode 100644 tests/data/juniper-junos/config/interfaces.json.testbytes create mode 100644 tests/data/juniper-junos/config/interfaces.json.testexp create mode 100644 tests/data/juniper-junos/config/interfaces.json.testmeta create mode 100644 tests/data/juniper-junos/config/interfaces.json.testres create mode 100644 tests/data/juniper-junos/config/jtisim-alias-interfaces.json create mode 100644 tests/data/juniper-junos/config/jtisim-influx-alias.json create mode 100644 tests/data/juniper-junos/config/jtisim-influx-alias.json.testexp create mode 100644 tests/data/juniper-junos/config/jtisim-influx-alias.json.testres create mode 100644 tests/data/juniper-junos/config/jtisim-influx-alias.log create mode 100644 tests/data/juniper-junos/config/jtisim-influx.json create mode 100644 tests/data/juniper-junos/config/jtisim-influx.json.testexp create mode 100644 tests/data/juniper-junos/config/jtisim-influx.json.testres create mode 100644 tests/data/juniper-junos/config/jtisim-influx.log create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-1.json create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-1.log create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-2.json create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-2.log create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-3.json create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-3.log create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-4.json create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-4.log create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-6.json create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-6.log create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-file-list-chg.json create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-file-list-sig-delete.json create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-file-list-sig-int.json create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-file-list-sig.json create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces-file-list.json create mode 100644 tests/data/juniper-junos/config/jtisim-interfaces.json create mode 100644 tests/data/juniper-junos/config/jtisim-prometheus.json create mode 100644 tests/data/juniper-junos/config/jtisim-prometheus.json.testexp create mode 100644 tests/data/juniper-junos/config/jtisim-prometheus.json.testres create mode 100644 tests/data/juniper-junos/config/jtisim-prometheus.log create mode 100644 tests/data/juniper-junos/config/uint64.json create mode 100644 tests/data/juniper-junos/config/uint64.json.testbytes create mode 100644 tests/data/juniper-junos/config/uint64.json.testexp create mode 100644 tests/data/juniper-junos/config/uint64.json.testmeta create mode 100644 tests/data/juniper-junos/config/uint64.json.testres create mode 100644 tests/data/noerror.json create mode 100644 tests/data/noidb.json create mode 100644 tests/data/r0edge.json create mode 100644 tests/data/r1edge.json create mode 100644 tests/simulator/desc/interfaces.json create mode 100644 testutils.go create mode 100644 testutils_test.go create mode 100644 vendor/github.com/Shopify/sarama/.gitignore create mode 100644 vendor/github.com/Shopify/sarama/.golangci.yml create mode 100644 vendor/github.com/Shopify/sarama/CHANGELOG.md create mode 100644 vendor/github.com/Shopify/sarama/LICENSE create mode 100644 vendor/github.com/Shopify/sarama/Makefile create mode 100644 vendor/github.com/Shopify/sarama/README.md create mode 100644 vendor/github.com/Shopify/sarama/Vagrantfile create mode 100644 vendor/github.com/Shopify/sarama/acl_bindings.go create mode 100644 vendor/github.com/Shopify/sarama/acl_create_request.go create mode 100644 vendor/github.com/Shopify/sarama/acl_create_response.go create mode 100644 vendor/github.com/Shopify/sarama/acl_delete_request.go create mode 100644 vendor/github.com/Shopify/sarama/acl_delete_response.go create mode 100644 vendor/github.com/Shopify/sarama/acl_describe_request.go create mode 100644 vendor/github.com/Shopify/sarama/acl_describe_response.go create mode 100644 vendor/github.com/Shopify/sarama/acl_filter.go create mode 100644 vendor/github.com/Shopify/sarama/acl_types.go create mode 100644 vendor/github.com/Shopify/sarama/add_offsets_to_txn_request.go create mode 100644 vendor/github.com/Shopify/sarama/add_offsets_to_txn_response.go create mode 100644 vendor/github.com/Shopify/sarama/add_partitions_to_txn_request.go create mode 100644 vendor/github.com/Shopify/sarama/add_partitions_to_txn_response.go create mode 100644 vendor/github.com/Shopify/sarama/admin.go create mode 100644 vendor/github.com/Shopify/sarama/alter_configs_request.go create mode 100644 vendor/github.com/Shopify/sarama/alter_configs_response.go create mode 100644 vendor/github.com/Shopify/sarama/api_versions_request.go create mode 100644 vendor/github.com/Shopify/sarama/api_versions_response.go create mode 100644 vendor/github.com/Shopify/sarama/async_producer.go create mode 100644 vendor/github.com/Shopify/sarama/balance_strategy.go create mode 100644 vendor/github.com/Shopify/sarama/broker.go create mode 100644 vendor/github.com/Shopify/sarama/client.go create mode 100644 vendor/github.com/Shopify/sarama/compress.go create mode 100644 vendor/github.com/Shopify/sarama/config.go create mode 100644 vendor/github.com/Shopify/sarama/config_resource_type.go create mode 100644 vendor/github.com/Shopify/sarama/consumer.go create mode 100644 vendor/github.com/Shopify/sarama/consumer_group.go create mode 100644 vendor/github.com/Shopify/sarama/consumer_group_members.go create mode 100644 vendor/github.com/Shopify/sarama/consumer_metadata_request.go create mode 100644 vendor/github.com/Shopify/sarama/consumer_metadata_response.go create mode 100644 vendor/github.com/Shopify/sarama/control_record.go create mode 100644 vendor/github.com/Shopify/sarama/crc32_field.go create mode 100644 vendor/github.com/Shopify/sarama/create_partitions_request.go create mode 100644 vendor/github.com/Shopify/sarama/create_partitions_response.go create mode 100644 vendor/github.com/Shopify/sarama/create_topics_request.go create mode 100644 vendor/github.com/Shopify/sarama/create_topics_response.go create mode 100644 vendor/github.com/Shopify/sarama/decompress.go create mode 100644 vendor/github.com/Shopify/sarama/delete_groups_request.go create mode 100644 vendor/github.com/Shopify/sarama/delete_groups_response.go create mode 100644 vendor/github.com/Shopify/sarama/delete_records_request.go create mode 100644 vendor/github.com/Shopify/sarama/delete_records_response.go create mode 100644 vendor/github.com/Shopify/sarama/delete_topics_request.go create mode 100644 vendor/github.com/Shopify/sarama/delete_topics_response.go create mode 100644 vendor/github.com/Shopify/sarama/describe_configs_request.go create mode 100644 vendor/github.com/Shopify/sarama/describe_configs_response.go create mode 100644 vendor/github.com/Shopify/sarama/describe_groups_request.go create mode 100644 vendor/github.com/Shopify/sarama/describe_groups_response.go create mode 100644 vendor/github.com/Shopify/sarama/describe_log_dirs_request.go create mode 100644 vendor/github.com/Shopify/sarama/describe_log_dirs_response.go create mode 100644 vendor/github.com/Shopify/sarama/dev.yml create mode 100644 vendor/github.com/Shopify/sarama/encoder_decoder.go create mode 100644 vendor/github.com/Shopify/sarama/end_txn_request.go create mode 100644 vendor/github.com/Shopify/sarama/end_txn_response.go create mode 100644 vendor/github.com/Shopify/sarama/errors.go create mode 100644 vendor/github.com/Shopify/sarama/fetch_request.go create mode 100644 vendor/github.com/Shopify/sarama/fetch_response.go create mode 100644 vendor/github.com/Shopify/sarama/find_coordinator_request.go create mode 100644 vendor/github.com/Shopify/sarama/find_coordinator_response.go create mode 100644 vendor/github.com/Shopify/sarama/go.mod create mode 100644 vendor/github.com/Shopify/sarama/go.sum create mode 100644 vendor/github.com/Shopify/sarama/gssapi_kerberos.go create mode 100644 vendor/github.com/Shopify/sarama/heartbeat_request.go create mode 100644 vendor/github.com/Shopify/sarama/heartbeat_response.go create mode 100644 vendor/github.com/Shopify/sarama/init_producer_id_request.go create mode 100644 vendor/github.com/Shopify/sarama/init_producer_id_response.go create mode 100644 vendor/github.com/Shopify/sarama/join_group_request.go create mode 100644 vendor/github.com/Shopify/sarama/join_group_response.go create mode 100644 vendor/github.com/Shopify/sarama/kerberos_client.go create mode 100644 vendor/github.com/Shopify/sarama/leave_group_request.go create mode 100644 vendor/github.com/Shopify/sarama/leave_group_response.go create mode 100644 vendor/github.com/Shopify/sarama/length_field.go create mode 100644 vendor/github.com/Shopify/sarama/list_groups_request.go create mode 100644 vendor/github.com/Shopify/sarama/list_groups_response.go create mode 100644 vendor/github.com/Shopify/sarama/message.go create mode 100644 vendor/github.com/Shopify/sarama/message_set.go create mode 100644 vendor/github.com/Shopify/sarama/metadata_request.go create mode 100644 vendor/github.com/Shopify/sarama/metadata_response.go create mode 100644 vendor/github.com/Shopify/sarama/metrics.go create mode 100644 vendor/github.com/Shopify/sarama/mockbroker.go create mode 100644 vendor/github.com/Shopify/sarama/mockkerberos.go create mode 100644 vendor/github.com/Shopify/sarama/mockresponses.go create mode 100644 vendor/github.com/Shopify/sarama/offset_commit_request.go create mode 100644 vendor/github.com/Shopify/sarama/offset_commit_response.go create mode 100644 vendor/github.com/Shopify/sarama/offset_fetch_request.go create mode 100644 vendor/github.com/Shopify/sarama/offset_fetch_response.go create mode 100644 vendor/github.com/Shopify/sarama/offset_manager.go create mode 100644 vendor/github.com/Shopify/sarama/offset_request.go create mode 100644 vendor/github.com/Shopify/sarama/offset_response.go create mode 100644 vendor/github.com/Shopify/sarama/packet_decoder.go create mode 100644 vendor/github.com/Shopify/sarama/packet_encoder.go create mode 100644 vendor/github.com/Shopify/sarama/partitioner.go create mode 100644 vendor/github.com/Shopify/sarama/prep_encoder.go create mode 100644 vendor/github.com/Shopify/sarama/produce_request.go create mode 100644 vendor/github.com/Shopify/sarama/produce_response.go create mode 100644 vendor/github.com/Shopify/sarama/produce_set.go create mode 100644 vendor/github.com/Shopify/sarama/real_decoder.go create mode 100644 vendor/github.com/Shopify/sarama/real_encoder.go create mode 100644 vendor/github.com/Shopify/sarama/record.go create mode 100644 vendor/github.com/Shopify/sarama/record_batch.go create mode 100644 vendor/github.com/Shopify/sarama/records.go create mode 100644 vendor/github.com/Shopify/sarama/request.go create mode 100644 vendor/github.com/Shopify/sarama/response_header.go create mode 100644 vendor/github.com/Shopify/sarama/sarama.go create mode 100644 vendor/github.com/Shopify/sarama/sasl_authenticate_request.go create mode 100644 vendor/github.com/Shopify/sarama/sasl_authenticate_response.go create mode 100644 vendor/github.com/Shopify/sarama/sasl_handshake_request.go create mode 100644 vendor/github.com/Shopify/sarama/sasl_handshake_response.go create mode 100644 vendor/github.com/Shopify/sarama/sticky_assignor_user_data.go create mode 100644 vendor/github.com/Shopify/sarama/sync_group_request.go create mode 100644 vendor/github.com/Shopify/sarama/sync_group_response.go create mode 100644 vendor/github.com/Shopify/sarama/sync_producer.go create mode 100644 vendor/github.com/Shopify/sarama/timestamp.go create mode 100644 vendor/github.com/Shopify/sarama/txn_offset_commit_request.go create mode 100644 vendor/github.com/Shopify/sarama/txn_offset_commit_response.go create mode 100644 vendor/github.com/Shopify/sarama/utils.go create mode 100644 vendor/github.com/Shopify/sarama/zstd.go create mode 100644 vendor/github.com/beorn7/perks/LICENSE create mode 100644 vendor/github.com/beorn7/perks/quantile/exampledata.txt create mode 100644 vendor/github.com/beorn7/perks/quantile/stream.go create mode 100644 vendor/github.com/davecgh/go-spew/LICENSE create mode 100644 vendor/github.com/davecgh/go-spew/spew/bypass.go create mode 100644 vendor/github.com/davecgh/go-spew/spew/bypasssafe.go create mode 100644 vendor/github.com/davecgh/go-spew/spew/common.go create mode 100644 vendor/github.com/davecgh/go-spew/spew/config.go create mode 100644 vendor/github.com/davecgh/go-spew/spew/doc.go create mode 100644 vendor/github.com/davecgh/go-spew/spew/dump.go create mode 100644 vendor/github.com/davecgh/go-spew/spew/format.go create mode 100644 vendor/github.com/davecgh/go-spew/spew/spew.go create mode 100644 vendor/github.com/eapache/go-resiliency/LICENSE create mode 100644 vendor/github.com/eapache/go-resiliency/breaker/README.md create mode 100644 vendor/github.com/eapache/go-resiliency/breaker/breaker.go create mode 100644 vendor/github.com/eapache/go-xerial-snappy/.gitignore create mode 100644 vendor/github.com/eapache/go-xerial-snappy/.travis.yml create mode 100644 vendor/github.com/eapache/go-xerial-snappy/LICENSE create mode 100644 vendor/github.com/eapache/go-xerial-snappy/README.md create mode 100644 vendor/github.com/eapache/go-xerial-snappy/fuzz.go create mode 100644 vendor/github.com/eapache/go-xerial-snappy/snappy.go create mode 100644 vendor/github.com/eapache/queue/.gitignore create mode 100644 vendor/github.com/eapache/queue/.travis.yml create mode 100644 vendor/github.com/eapache/queue/LICENSE create mode 100644 vendor/github.com/eapache/queue/README.md create mode 100644 vendor/github.com/eapache/queue/queue.go create mode 100644 vendor/github.com/golang/protobuf/AUTHORS create mode 100644 vendor/github.com/golang/protobuf/CONTRIBUTORS create mode 100644 vendor/github.com/golang/protobuf/LICENSE create mode 100644 vendor/github.com/golang/protobuf/proto/Makefile create mode 100644 vendor/github.com/golang/protobuf/proto/clone.go create mode 100644 vendor/github.com/golang/protobuf/proto/decode.go create mode 100644 vendor/github.com/golang/protobuf/proto/discard.go create mode 100644 vendor/github.com/golang/protobuf/proto/encode.go create mode 100644 vendor/github.com/golang/protobuf/proto/equal.go create mode 100644 vendor/github.com/golang/protobuf/proto/extensions.go create mode 100644 vendor/github.com/golang/protobuf/proto/lib.go create mode 100644 vendor/github.com/golang/protobuf/proto/message_set.go create mode 100644 vendor/github.com/golang/protobuf/proto/pointer_reflect.go create mode 100644 vendor/github.com/golang/protobuf/proto/pointer_unsafe.go create mode 100644 vendor/github.com/golang/protobuf/proto/properties.go create mode 100644 vendor/github.com/golang/protobuf/proto/text.go create mode 100644 vendor/github.com/golang/protobuf/proto/text_parser.go create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto create mode 100644 vendor/github.com/golang/protobuf/ptypes/any.go create mode 100644 vendor/github.com/golang/protobuf/ptypes/any/any.pb.go create mode 100644 vendor/github.com/golang/protobuf/ptypes/any/any.proto create mode 100644 vendor/github.com/golang/protobuf/ptypes/doc.go create mode 100644 vendor/github.com/golang/protobuf/ptypes/duration.go create mode 100644 vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go create mode 100644 vendor/github.com/golang/protobuf/ptypes/duration/duration.proto create mode 100644 vendor/github.com/golang/protobuf/ptypes/regen.sh create mode 100644 vendor/github.com/golang/protobuf/ptypes/timestamp.go create mode 100644 vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go create mode 100644 vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto create mode 100644 vendor/github.com/golang/snappy/.gitignore create mode 100644 vendor/github.com/golang/snappy/AUTHORS create mode 100644 vendor/github.com/golang/snappy/CONTRIBUTORS create mode 100644 vendor/github.com/golang/snappy/LICENSE create mode 100644 vendor/github.com/golang/snappy/README create mode 100644 vendor/github.com/golang/snappy/decode.go create mode 100644 vendor/github.com/golang/snappy/decode_amd64.go create mode 100644 vendor/github.com/golang/snappy/decode_amd64.s create mode 100644 vendor/github.com/golang/snappy/decode_other.go create mode 100644 vendor/github.com/golang/snappy/encode.go create mode 100644 vendor/github.com/golang/snappy/encode_amd64.go create mode 100644 vendor/github.com/golang/snappy/encode_amd64.s create mode 100644 vendor/github.com/golang/snappy/encode_other.go create mode 100644 vendor/github.com/golang/snappy/go.mod create mode 100644 vendor/github.com/golang/snappy/snappy.go create mode 100644 vendor/github.com/gorilla/mux/AUTHORS create mode 100644 vendor/github.com/gorilla/mux/LICENSE create mode 100644 vendor/github.com/gorilla/mux/README.md create mode 100644 vendor/github.com/gorilla/mux/doc.go create mode 100644 vendor/github.com/gorilla/mux/go.mod create mode 100644 vendor/github.com/gorilla/mux/middleware.go create mode 100644 vendor/github.com/gorilla/mux/mux.go create mode 100644 vendor/github.com/gorilla/mux/regexp.go create mode 100644 vendor/github.com/gorilla/mux/route.go create mode 100644 vendor/github.com/gorilla/mux/test_helpers.go create mode 100644 vendor/github.com/hashicorp/go-uuid/.travis.yml create mode 100644 vendor/github.com/hashicorp/go-uuid/LICENSE create mode 100644 vendor/github.com/hashicorp/go-uuid/README.md create mode 100644 vendor/github.com/hashicorp/go-uuid/go.mod create mode 100644 vendor/github.com/hashicorp/go-uuid/uuid.go create mode 100644 vendor/github.com/influxdata/influxdb/LICENSE create mode 100644 vendor/github.com/influxdata/influxdb/LICENSE_OF_DEPENDENCIES.md create mode 100644 vendor/github.com/influxdata/influxdb/client/v2/client.go create mode 100644 vendor/github.com/influxdata/influxdb/client/v2/udp.go create mode 100644 vendor/github.com/influxdata/influxdb/models/consistency.go create mode 100644 vendor/github.com/influxdata/influxdb/models/inline_fnv.go create mode 100644 vendor/github.com/influxdata/influxdb/models/inline_strconv_parse.go create mode 100644 vendor/github.com/influxdata/influxdb/models/points.go create mode 100644 vendor/github.com/influxdata/influxdb/models/rows.go create mode 100644 vendor/github.com/influxdata/influxdb/models/statistic.go create mode 100644 vendor/github.com/influxdata/influxdb/models/time.go create mode 100644 vendor/github.com/influxdata/influxdb/models/uint_support.go create mode 100644 vendor/github.com/influxdata/influxdb/pkg/escape/bytes.go create mode 100644 vendor/github.com/influxdata/influxdb/pkg/escape/strings.go create mode 100644 vendor/github.com/jcmturner/gofork/LICENSE create mode 100644 vendor/github.com/jcmturner/gofork/encoding/asn1/README.md create mode 100644 vendor/github.com/jcmturner/gofork/encoding/asn1/asn1.go create mode 100644 vendor/github.com/jcmturner/gofork/encoding/asn1/common.go create mode 100644 vendor/github.com/jcmturner/gofork/encoding/asn1/marshal.go create mode 100644 vendor/github.com/jcmturner/gofork/x/crypto/pbkdf2/pbkdf2.go create mode 100644 vendor/github.com/klauspost/compress/LICENSE create mode 100644 vendor/github.com/klauspost/compress/fse/README.md create mode 100644 vendor/github.com/klauspost/compress/fse/bitreader.go create mode 100644 vendor/github.com/klauspost/compress/fse/bitwriter.go create mode 100644 vendor/github.com/klauspost/compress/fse/bytereader.go create mode 100644 vendor/github.com/klauspost/compress/fse/compress.go create mode 100644 vendor/github.com/klauspost/compress/fse/decompress.go create mode 100644 vendor/github.com/klauspost/compress/fse/fse.go create mode 100644 vendor/github.com/klauspost/compress/huff0/.gitignore create mode 100644 vendor/github.com/klauspost/compress/huff0/README.md create mode 100644 vendor/github.com/klauspost/compress/huff0/bitreader.go create mode 100644 vendor/github.com/klauspost/compress/huff0/bitwriter.go create mode 100644 vendor/github.com/klauspost/compress/huff0/bytereader.go create mode 100644 vendor/github.com/klauspost/compress/huff0/compress.go create mode 100644 vendor/github.com/klauspost/compress/huff0/decompress.go create mode 100644 vendor/github.com/klauspost/compress/huff0/huff0.go create mode 100644 vendor/github.com/klauspost/compress/snappy/.gitignore create mode 100644 vendor/github.com/klauspost/compress/snappy/AUTHORS create mode 100644 vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS create mode 100644 vendor/github.com/klauspost/compress/snappy/LICENSE create mode 100644 vendor/github.com/klauspost/compress/snappy/README create mode 100644 vendor/github.com/klauspost/compress/snappy/decode.go create mode 100644 vendor/github.com/klauspost/compress/snappy/decode_amd64.go create mode 100644 vendor/github.com/klauspost/compress/snappy/decode_amd64.s create mode 100644 vendor/github.com/klauspost/compress/snappy/decode_other.go create mode 100644 vendor/github.com/klauspost/compress/snappy/encode.go create mode 100644 vendor/github.com/klauspost/compress/snappy/encode_amd64.go create mode 100644 vendor/github.com/klauspost/compress/snappy/encode_amd64.s create mode 100644 vendor/github.com/klauspost/compress/snappy/encode_other.go create mode 100644 vendor/github.com/klauspost/compress/snappy/runbench.cmd create mode 100644 vendor/github.com/klauspost/compress/snappy/snappy.go create mode 100644 vendor/github.com/klauspost/compress/zstd/README.md create mode 100644 vendor/github.com/klauspost/compress/zstd/bitreader.go create mode 100644 vendor/github.com/klauspost/compress/zstd/bitwriter.go create mode 100644 vendor/github.com/klauspost/compress/zstd/blockdec.go create mode 100644 vendor/github.com/klauspost/compress/zstd/blockenc.go create mode 100644 vendor/github.com/klauspost/compress/zstd/blocktype_string.go create mode 100644 vendor/github.com/klauspost/compress/zstd/bytebuf.go create mode 100644 vendor/github.com/klauspost/compress/zstd/bytereader.go create mode 100644 vendor/github.com/klauspost/compress/zstd/decoder.go create mode 100644 vendor/github.com/klauspost/compress/zstd/decoder_options.go create mode 100644 vendor/github.com/klauspost/compress/zstd/enc_dfast.go create mode 100644 vendor/github.com/klauspost/compress/zstd/enc_fast.go create mode 100644 vendor/github.com/klauspost/compress/zstd/enc_params.go create mode 100644 vendor/github.com/klauspost/compress/zstd/encoder.go create mode 100644 vendor/github.com/klauspost/compress/zstd/encoder_options.go create mode 100644 vendor/github.com/klauspost/compress/zstd/framedec.go create mode 100644 vendor/github.com/klauspost/compress/zstd/frameenc.go create mode 100644 vendor/github.com/klauspost/compress/zstd/fse_decoder.go create mode 100644 vendor/github.com/klauspost/compress/zstd/fse_encoder.go create mode 100644 vendor/github.com/klauspost/compress/zstd/fse_predefined.go create mode 100644 vendor/github.com/klauspost/compress/zstd/hash.go create mode 100644 vendor/github.com/klauspost/compress/zstd/history.go create mode 100644 vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt create mode 100644 vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md create mode 100644 vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go create mode 100644 vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.go create mode 100644 vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s create mode 100644 vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go create mode 100644 vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go create mode 100644 vendor/github.com/klauspost/compress/zstd/seqdec.go create mode 100644 vendor/github.com/klauspost/compress/zstd/seqenc.go create mode 100644 vendor/github.com/klauspost/compress/zstd/snappy.go create mode 100644 vendor/github.com/klauspost/compress/zstd/zstd.go create mode 100644 vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE create mode 100644 vendor/github.com/matttproud/golang_protobuf_extensions/NOTICE create mode 100644 vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/decode.go create mode 100644 vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/doc.go create mode 100644 vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/encode.go create mode 100644 vendor/github.com/pierrec/lz4/.gitignore create mode 100644 vendor/github.com/pierrec/lz4/.travis.yml create mode 100644 vendor/github.com/pierrec/lz4/LICENSE create mode 100644 vendor/github.com/pierrec/lz4/README.md create mode 100644 vendor/github.com/pierrec/lz4/block.go create mode 100644 vendor/github.com/pierrec/lz4/debug.go create mode 100644 vendor/github.com/pierrec/lz4/debug_stub.go create mode 100644 vendor/github.com/pierrec/lz4/decode_amd64.go create mode 100644 vendor/github.com/pierrec/lz4/decode_amd64.s create mode 100644 vendor/github.com/pierrec/lz4/decode_other.go create mode 100644 vendor/github.com/pierrec/lz4/errors.go create mode 100644 vendor/github.com/pierrec/lz4/internal/xxh32/xxh32zero.go create mode 100644 vendor/github.com/pierrec/lz4/lz4.go create mode 100644 vendor/github.com/pierrec/lz4/lz4_go1.10.go create mode 100644 vendor/github.com/pierrec/lz4/lz4_notgo1.10.go create mode 100644 vendor/github.com/pierrec/lz4/reader.go create mode 100644 vendor/github.com/pierrec/lz4/writer.go create mode 100644 vendor/github.com/prometheus/client_golang/AUTHORS.md create mode 100644 vendor/github.com/prometheus/client_golang/LICENSE create mode 100644 vendor/github.com/prometheus/client_golang/NOTICE create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/.gitignore create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/README.md create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/collector.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/counter.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/desc.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/doc.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/fnv.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/gauge.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/go_collector.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/histogram.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/http.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/metric.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/process_collector.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/registry.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/summary.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/untyped.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/value.go create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/vec.go create mode 100644 vendor/github.com/prometheus/client_model/LICENSE create mode 100644 vendor/github.com/prometheus/client_model/NOTICE create mode 100644 vendor/github.com/prometheus/client_model/go/metrics.pb.go create mode 100644 vendor/github.com/prometheus/common/LICENSE create mode 100644 vendor/github.com/prometheus/common/NOTICE create mode 100644 vendor/github.com/prometheus/common/expfmt/decode.go create mode 100644 vendor/github.com/prometheus/common/expfmt/encode.go create mode 100644 vendor/github.com/prometheus/common/expfmt/expfmt.go create mode 100644 vendor/github.com/prometheus/common/expfmt/fuzz.go create mode 100644 vendor/github.com/prometheus/common/expfmt/text_create.go create mode 100644 vendor/github.com/prometheus/common/expfmt/text_parse.go create mode 100644 vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/README.txt create mode 100644 vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go create mode 100644 vendor/github.com/prometheus/common/model/alert.go create mode 100644 vendor/github.com/prometheus/common/model/fingerprinting.go create mode 100644 vendor/github.com/prometheus/common/model/fnv.go create mode 100644 vendor/github.com/prometheus/common/model/labels.go create mode 100644 vendor/github.com/prometheus/common/model/labelset.go create mode 100644 vendor/github.com/prometheus/common/model/metric.go create mode 100644 vendor/github.com/prometheus/common/model/model.go create mode 100644 vendor/github.com/prometheus/common/model/signature.go create mode 100644 vendor/github.com/prometheus/common/model/silence.go create mode 100644 vendor/github.com/prometheus/common/model/time.go create mode 100644 vendor/github.com/prometheus/common/model/value.go create mode 100644 vendor/github.com/prometheus/procfs/.gitignore create mode 100644 vendor/github.com/prometheus/procfs/.travis.yml create mode 100644 vendor/github.com/prometheus/procfs/CONTRIBUTING.md create mode 100644 vendor/github.com/prometheus/procfs/LICENSE create mode 100644 vendor/github.com/prometheus/procfs/MAINTAINERS.md create mode 100644 vendor/github.com/prometheus/procfs/Makefile create mode 100644 vendor/github.com/prometheus/procfs/NOTICE create mode 100644 vendor/github.com/prometheus/procfs/README.md create mode 100644 vendor/github.com/prometheus/procfs/buddyinfo.go create mode 100644 vendor/github.com/prometheus/procfs/doc.go create mode 100644 vendor/github.com/prometheus/procfs/fixtures.ttar create mode 100644 vendor/github.com/prometheus/procfs/fs.go create mode 100644 vendor/github.com/prometheus/procfs/internal/util/parse.go create mode 100644 vendor/github.com/prometheus/procfs/ipvs.go create mode 100644 vendor/github.com/prometheus/procfs/mdstat.go create mode 100644 vendor/github.com/prometheus/procfs/mountstats.go create mode 100644 vendor/github.com/prometheus/procfs/net_dev.go create mode 100644 vendor/github.com/prometheus/procfs/nfs/nfs.go create mode 100644 vendor/github.com/prometheus/procfs/nfs/parse.go create mode 100644 vendor/github.com/prometheus/procfs/nfs/parse_nfs.go create mode 100644 vendor/github.com/prometheus/procfs/nfs/parse_nfsd.go create mode 100644 vendor/github.com/prometheus/procfs/proc.go create mode 100644 vendor/github.com/prometheus/procfs/proc_io.go create mode 100644 vendor/github.com/prometheus/procfs/proc_limits.go create mode 100644 vendor/github.com/prometheus/procfs/proc_ns.go create mode 100644 vendor/github.com/prometheus/procfs/proc_stat.go create mode 100644 vendor/github.com/prometheus/procfs/stat.go create mode 100644 vendor/github.com/prometheus/procfs/ttar create mode 100644 vendor/github.com/prometheus/procfs/xfrm.go create mode 100644 vendor/github.com/prometheus/procfs/xfs/parse.go create mode 100644 vendor/github.com/prometheus/procfs/xfs/xfs.go create mode 100644 vendor/github.com/rcrowley/go-metrics/.gitignore create mode 100644 vendor/github.com/rcrowley/go-metrics/.travis.yml create mode 100644 vendor/github.com/rcrowley/go-metrics/LICENSE create mode 100644 vendor/github.com/rcrowley/go-metrics/README.md create mode 100644 vendor/github.com/rcrowley/go-metrics/counter.go create mode 100644 vendor/github.com/rcrowley/go-metrics/debug.go create mode 100644 vendor/github.com/rcrowley/go-metrics/ewma.go create mode 100644 vendor/github.com/rcrowley/go-metrics/gauge.go create mode 100644 vendor/github.com/rcrowley/go-metrics/gauge_float64.go create mode 100644 vendor/github.com/rcrowley/go-metrics/graphite.go create mode 100644 vendor/github.com/rcrowley/go-metrics/healthcheck.go create mode 100644 vendor/github.com/rcrowley/go-metrics/histogram.go create mode 100644 vendor/github.com/rcrowley/go-metrics/json.go create mode 100644 vendor/github.com/rcrowley/go-metrics/log.go create mode 100644 vendor/github.com/rcrowley/go-metrics/memory.md create mode 100644 vendor/github.com/rcrowley/go-metrics/meter.go create mode 100644 vendor/github.com/rcrowley/go-metrics/metrics.go create mode 100644 vendor/github.com/rcrowley/go-metrics/opentsdb.go create mode 100644 vendor/github.com/rcrowley/go-metrics/registry.go create mode 100644 vendor/github.com/rcrowley/go-metrics/runtime.go create mode 100644 vendor/github.com/rcrowley/go-metrics/runtime_cgo.go create mode 100644 vendor/github.com/rcrowley/go-metrics/runtime_gccpufraction.go create mode 100644 vendor/github.com/rcrowley/go-metrics/runtime_no_cgo.go create mode 100644 vendor/github.com/rcrowley/go-metrics/runtime_no_gccpufraction.go create mode 100644 vendor/github.com/rcrowley/go-metrics/sample.go create mode 100644 vendor/github.com/rcrowley/go-metrics/syslog.go create mode 100644 vendor/github.com/rcrowley/go-metrics/timer.go create mode 100644 vendor/github.com/rcrowley/go-metrics/validate.sh create mode 100644 vendor/github.com/rcrowley/go-metrics/writer.go create mode 100644 vendor/github.com/spf13/pflag/.gitignore create mode 100644 vendor/github.com/spf13/pflag/.travis.yml create mode 100644 vendor/github.com/spf13/pflag/LICENSE create mode 100644 vendor/github.com/spf13/pflag/README.md create mode 100644 vendor/github.com/spf13/pflag/bool.go create mode 100644 vendor/github.com/spf13/pflag/bool_slice.go create mode 100644 vendor/github.com/spf13/pflag/bytes.go create mode 100644 vendor/github.com/spf13/pflag/count.go create mode 100644 vendor/github.com/spf13/pflag/duration.go create mode 100644 vendor/github.com/spf13/pflag/duration_slice.go create mode 100644 vendor/github.com/spf13/pflag/flag.go create mode 100644 vendor/github.com/spf13/pflag/float32.go create mode 100644 vendor/github.com/spf13/pflag/float64.go create mode 100644 vendor/github.com/spf13/pflag/golangflag.go create mode 100644 vendor/github.com/spf13/pflag/int.go create mode 100644 vendor/github.com/spf13/pflag/int16.go create mode 100644 vendor/github.com/spf13/pflag/int32.go create mode 100644 vendor/github.com/spf13/pflag/int64.go create mode 100644 vendor/github.com/spf13/pflag/int8.go create mode 100644 vendor/github.com/spf13/pflag/int_slice.go create mode 100644 vendor/github.com/spf13/pflag/ip.go create mode 100644 vendor/github.com/spf13/pflag/ip_slice.go create mode 100644 vendor/github.com/spf13/pflag/ipmask.go create mode 100644 vendor/github.com/spf13/pflag/ipnet.go create mode 100644 vendor/github.com/spf13/pflag/string.go create mode 100644 vendor/github.com/spf13/pflag/string_array.go create mode 100644 vendor/github.com/spf13/pflag/string_slice.go create mode 100644 vendor/github.com/spf13/pflag/uint.go create mode 100644 vendor/github.com/spf13/pflag/uint16.go create mode 100644 vendor/github.com/spf13/pflag/uint32.go create mode 100644 vendor/github.com/spf13/pflag/uint64.go create mode 100644 vendor/github.com/spf13/pflag/uint8.go create mode 100644 vendor/github.com/spf13/pflag/uint_slice.go create mode 100644 vendor/golang.org/x/crypto/AUTHORS create mode 100644 vendor/golang.org/x/crypto/CONTRIBUTORS create mode 100644 vendor/golang.org/x/crypto/LICENSE create mode 100644 vendor/golang.org/x/crypto/PATENTS create mode 100644 vendor/golang.org/x/crypto/md4/md4.go create mode 100644 vendor/golang.org/x/crypto/md4/md4block.go create mode 100644 vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go create mode 100644 vendor/golang.org/x/net/AUTHORS create mode 100644 vendor/golang.org/x/net/CONTRIBUTORS create mode 100644 vendor/golang.org/x/net/LICENSE create mode 100644 vendor/golang.org/x/net/PATENTS create mode 100644 vendor/golang.org/x/net/context/context.go create mode 100644 vendor/golang.org/x/net/context/go17.go create mode 100644 vendor/golang.org/x/net/context/go19.go create mode 100644 vendor/golang.org/x/net/context/pre_go17.go create mode 100644 vendor/golang.org/x/net/context/pre_go19.go create mode 100644 vendor/golang.org/x/net/http/httpguts/guts.go create mode 100644 vendor/golang.org/x/net/http/httpguts/httplex.go create mode 100644 vendor/golang.org/x/net/http2/.gitignore create mode 100644 vendor/golang.org/x/net/http2/Dockerfile create mode 100644 vendor/golang.org/x/net/http2/Makefile create mode 100644 vendor/golang.org/x/net/http2/ascii.go create mode 100644 vendor/golang.org/x/net/http2/ciphers.go create mode 100644 vendor/golang.org/x/net/http2/client_conn_pool.go create mode 100644 vendor/golang.org/x/net/http2/databuffer.go create mode 100644 vendor/golang.org/x/net/http2/errors.go create mode 100644 vendor/golang.org/x/net/http2/flow.go create mode 100644 vendor/golang.org/x/net/http2/frame.go create mode 100644 vendor/golang.org/x/net/http2/go111.go create mode 100644 vendor/golang.org/x/net/http2/go115.go create mode 100644 vendor/golang.org/x/net/http2/gotrack.go create mode 100644 vendor/golang.org/x/net/http2/headermap.go create mode 100644 vendor/golang.org/x/net/http2/hpack/encode.go create mode 100644 vendor/golang.org/x/net/http2/hpack/hpack.go create mode 100644 vendor/golang.org/x/net/http2/hpack/huffman.go create mode 100644 vendor/golang.org/x/net/http2/hpack/tables.go create mode 100644 vendor/golang.org/x/net/http2/http2.go create mode 100644 vendor/golang.org/x/net/http2/not_go111.go create mode 100644 vendor/golang.org/x/net/http2/not_go115.go create mode 100644 vendor/golang.org/x/net/http2/pipe.go create mode 100644 vendor/golang.org/x/net/http2/server.go create mode 100644 vendor/golang.org/x/net/http2/transport.go create mode 100644 vendor/golang.org/x/net/http2/write.go create mode 100644 vendor/golang.org/x/net/http2/writesched.go create mode 100644 vendor/golang.org/x/net/http2/writesched_priority.go create mode 100644 vendor/golang.org/x/net/http2/writesched_random.go create mode 100644 vendor/golang.org/x/net/idna/idna10.0.0.go create mode 100644 vendor/golang.org/x/net/idna/idna9.0.0.go create mode 100644 vendor/golang.org/x/net/idna/punycode.go create mode 100644 vendor/golang.org/x/net/idna/tables10.0.0.go create mode 100644 vendor/golang.org/x/net/idna/tables11.0.0.go create mode 100644 vendor/golang.org/x/net/idna/tables12.0.0.go create mode 100644 vendor/golang.org/x/net/idna/tables13.0.0.go create mode 100644 vendor/golang.org/x/net/idna/tables9.0.0.go create mode 100644 vendor/golang.org/x/net/idna/trie.go create mode 100644 vendor/golang.org/x/net/idna/trieval.go create mode 100644 vendor/golang.org/x/net/internal/socks/client.go create mode 100644 vendor/golang.org/x/net/internal/socks/socks.go create mode 100644 vendor/golang.org/x/net/internal/timeseries/timeseries.go create mode 100644 vendor/golang.org/x/net/proxy/dial.go create mode 100644 vendor/golang.org/x/net/proxy/direct.go create mode 100644 vendor/golang.org/x/net/proxy/per_host.go create mode 100644 vendor/golang.org/x/net/proxy/proxy.go create mode 100644 vendor/golang.org/x/net/proxy/socks5.go create mode 100644 vendor/golang.org/x/net/trace/events.go create mode 100644 vendor/golang.org/x/net/trace/histogram.go create mode 100644 vendor/golang.org/x/net/trace/trace.go create mode 100644 vendor/golang.org/x/text/AUTHORS create mode 100644 vendor/golang.org/x/text/CONTRIBUTORS create mode 100644 vendor/golang.org/x/text/LICENSE create mode 100644 vendor/golang.org/x/text/PATENTS create mode 100644 vendor/golang.org/x/text/secure/bidirule/bidirule.go create mode 100644 vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go create mode 100644 vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go create mode 100644 vendor/golang.org/x/text/transform/transform.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/bidi.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/bracket.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/core.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/prop.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/trieval.go create mode 100644 vendor/golang.org/x/text/unicode/norm/composition.go create mode 100644 vendor/golang.org/x/text/unicode/norm/forminfo.go create mode 100644 vendor/golang.org/x/text/unicode/norm/input.go create mode 100644 vendor/golang.org/x/text/unicode/norm/iter.go create mode 100644 vendor/golang.org/x/text/unicode/norm/normalize.go create mode 100644 vendor/golang.org/x/text/unicode/norm/readwriter.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables10.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables11.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables12.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables13.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables9.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/norm/transform.go create mode 100644 vendor/golang.org/x/text/unicode/norm/trie.go create mode 100644 vendor/google.golang.org/genproto/LICENSE create mode 100644 vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go create mode 100644 vendor/google.golang.org/grpc/.travis.yml create mode 100644 vendor/google.golang.org/grpc/AUTHORS create mode 100644 vendor/google.golang.org/grpc/CONTRIBUTING.md create mode 100644 vendor/google.golang.org/grpc/LICENSE create mode 100644 vendor/google.golang.org/grpc/Makefile create mode 100644 vendor/google.golang.org/grpc/README.md create mode 100644 vendor/google.golang.org/grpc/backoff.go create mode 100644 vendor/google.golang.org/grpc/balancer.go create mode 100644 vendor/google.golang.org/grpc/balancer/balancer.go create mode 100644 vendor/google.golang.org/grpc/balancer/base/balancer.go create mode 100644 vendor/google.golang.org/grpc/balancer/base/base.go create mode 100644 vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go create mode 100644 vendor/google.golang.org/grpc/balancer_conn_wrappers.go create mode 100644 vendor/google.golang.org/grpc/balancer_v1_wrapper.go create mode 100644 vendor/google.golang.org/grpc/call.go create mode 100644 vendor/google.golang.org/grpc/clientconn.go create mode 100644 vendor/google.golang.org/grpc/codec.go create mode 100644 vendor/google.golang.org/grpc/codegen.sh create mode 100644 vendor/google.golang.org/grpc/codes/code_string.go create mode 100644 vendor/google.golang.org/grpc/codes/codes.go create mode 100644 vendor/google.golang.org/grpc/connectivity/connectivity.go create mode 100644 vendor/google.golang.org/grpc/credentials/credentials.go create mode 100644 vendor/google.golang.org/grpc/credentials/credentials_util_go17.go create mode 100644 vendor/google.golang.org/grpc/credentials/credentials_util_go18.go create mode 100644 vendor/google.golang.org/grpc/credentials/credentials_util_pre_go17.go create mode 100644 vendor/google.golang.org/grpc/doc.go create mode 100644 vendor/google.golang.org/grpc/encoding/encoding.go create mode 100644 vendor/google.golang.org/grpc/encoding/gzip/gzip.go create mode 100644 vendor/google.golang.org/grpc/encoding/proto/proto.go create mode 100644 vendor/google.golang.org/grpc/go16.go create mode 100644 vendor/google.golang.org/grpc/go17.go create mode 100644 vendor/google.golang.org/grpc/grpclb.go create mode 100644 vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages/messages.pb.go create mode 100644 vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages/messages.proto create mode 100644 vendor/google.golang.org/grpc/grpclb_picker.go create mode 100644 vendor/google.golang.org/grpc/grpclb_remote_balancer.go create mode 100644 vendor/google.golang.org/grpc/grpclb_util.go create mode 100644 vendor/google.golang.org/grpc/grpclog/grpclog.go create mode 100644 vendor/google.golang.org/grpc/grpclog/logger.go create mode 100644 vendor/google.golang.org/grpc/grpclog/loggerv2.go create mode 100644 vendor/google.golang.org/grpc/interceptor.go create mode 100644 vendor/google.golang.org/grpc/internal/internal.go create mode 100644 vendor/google.golang.org/grpc/keepalive/keepalive.go create mode 100644 vendor/google.golang.org/grpc/metadata/metadata.go create mode 100644 vendor/google.golang.org/grpc/naming/dns_resolver.go create mode 100644 vendor/google.golang.org/grpc/naming/go17.go create mode 100644 vendor/google.golang.org/grpc/naming/go18.go create mode 100644 vendor/google.golang.org/grpc/naming/naming.go create mode 100644 vendor/google.golang.org/grpc/peer/peer.go create mode 100644 vendor/google.golang.org/grpc/picker_wrapper.go create mode 100644 vendor/google.golang.org/grpc/pickfirst.go create mode 100644 vendor/google.golang.org/grpc/proxy.go create mode 100644 vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go create mode 100644 vendor/google.golang.org/grpc/resolver/dns/go17.go create mode 100644 vendor/google.golang.org/grpc/resolver/dns/go18.go create mode 100644 vendor/google.golang.org/grpc/resolver/passthrough/passthrough.go create mode 100644 vendor/google.golang.org/grpc/resolver/resolver.go create mode 100644 vendor/google.golang.org/grpc/resolver_conn_wrapper.go create mode 100644 vendor/google.golang.org/grpc/rpc_util.go create mode 100644 vendor/google.golang.org/grpc/server.go create mode 100644 vendor/google.golang.org/grpc/service_config.go create mode 100644 vendor/google.golang.org/grpc/stats/handlers.go create mode 100644 vendor/google.golang.org/grpc/stats/stats.go create mode 100644 vendor/google.golang.org/grpc/status/status.go create mode 100644 vendor/google.golang.org/grpc/stream.go create mode 100644 vendor/google.golang.org/grpc/tap/tap.go create mode 100644 vendor/google.golang.org/grpc/trace.go create mode 100644 vendor/google.golang.org/grpc/transport/bdp_estimator.go create mode 100644 vendor/google.golang.org/grpc/transport/control.go create mode 100644 vendor/google.golang.org/grpc/transport/go16.go create mode 100644 vendor/google.golang.org/grpc/transport/go17.go create mode 100644 vendor/google.golang.org/grpc/transport/handler_server.go create mode 100644 vendor/google.golang.org/grpc/transport/http2_client.go create mode 100644 vendor/google.golang.org/grpc/transport/http2_server.go create mode 100644 vendor/google.golang.org/grpc/transport/http_util.go create mode 100644 vendor/google.golang.org/grpc/transport/log.go create mode 100644 vendor/google.golang.org/grpc/transport/transport.go create mode 100644 vendor/google.golang.org/grpc/vet.sh create mode 100644 vendor/gopkg.in/jcmturner/aescts.v1/.gitignore create mode 100644 vendor/gopkg.in/jcmturner/aescts.v1/LICENSE create mode 100644 vendor/gopkg.in/jcmturner/aescts.v1/README.md create mode 100644 vendor/gopkg.in/jcmturner/aescts.v1/aescts.go create mode 100644 vendor/gopkg.in/jcmturner/dnsutils.v1/.gitignore create mode 100644 vendor/gopkg.in/jcmturner/dnsutils.v1/.travis.yml create mode 100644 vendor/gopkg.in/jcmturner/dnsutils.v1/LICENSE create mode 100644 vendor/gopkg.in/jcmturner/dnsutils.v1/srv.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/LICENSE create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/asn1tools/tools.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/client/ASExchange.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/client/TGSExchange.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/client/cache.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/client/client.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/client/network.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/client/passwd.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/client/session.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/client/settings.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/config/error.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/config/hosts.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/config/krb5conf.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/credentials/ccache.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/credentials/credentials.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes128-cts-hmac-sha1-96.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes128-cts-hmac-sha256-128.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes256-cts-hmac-sha1-96.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes256-cts-hmac-sha384-192.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/common/common.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/crypto.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/des3-cbc-sha1-kd.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/etype/etype.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rc4-hmac.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/encryption.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/keyDerivation.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/nfold.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3962/encryption.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3962/keyDerivation.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/checksum.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/encryption.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/keyDerivation.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/msgtype.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc8009/encryption.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc8009/keyDerivation.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/MICToken.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/README.md create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/contextFlags.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/gssapi.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/wrapToken.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/addrtype/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/adtype/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/errorcode/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/etypeID/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/flags/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/keyusage/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/msgtype/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/nametype/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/iana/patype/constants.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/changepasswddata.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/message.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/passwd.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/keytab/keytab.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/krberror/error.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/messages/APRep.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/messages/APReq.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KDCRep.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KDCReq.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBCred.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBError.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBPriv.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBSafe.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/messages/Ticket.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/pac/client_claims.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/pac/client_info.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/pac/credentials_info.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/pac/device_claims.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/pac/device_info.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/pac/kerb_validation_info.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/pac/pac_type.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/pac/s4u_delegation_info.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/pac/signature_data.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/pac/supplemental_cred.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/pac/upn_dns_info.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/types/Authenticator.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/types/AuthorizationData.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/types/Cryptosystem.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/types/HostAddress.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/types/KerberosFlags.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/types/PAData.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/types/PrincipalName.go create mode 100644 vendor/gopkg.in/jcmturner/gokrb5.v7/types/TypedData.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/LICENSE create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/mstypes/claims.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/mstypes/common.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/mstypes/filetime.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/mstypes/group_membership.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/mstypes/kerb_sid_and_attributes.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/mstypes/reader.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/mstypes/rpc_unicode_string.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/mstypes/sid.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/mstypes/user_session_key.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/ndr/arrays.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/ndr/decoder.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/ndr/error.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/ndr/header.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/ndr/pipe.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/ndr/primitives.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/ndr/rawbytes.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/ndr/strings.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/ndr/tags.go create mode 100644 vendor/gopkg.in/jcmturner/rpc.v1/ndr/union.go create mode 100644 vendor/modules.txt create mode 100644 workers.go diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fbef0b5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +# Copyright (c) 2018, Juniper Networks, Inc. +# All rights reserved. + +FROM golang:1.13.4-alpine3.10 as builder +ARG COMMIT +ARG BRANCH +ARG TIME +ARG TAG + +WORKDIR /go/src/app +COPY . . + +RUN GO111MODULE=on CGO_ENABLED=0 go build -mod vendor \ + --ldflags="-X main.jtimonVersion=${TAG}-${COMMIT}-${BRANCH} -X main.buildTime=${TIME}" \ + -o /usr/local/bin/jtimon + +FROM alpine +COPY --from=builder /usr/local/bin/jtimon /usr/local/bin/jtimon + +VOLUME /u +WORKDIR /u +ENTRYPOINT ["/usr/local/bin/jtimon"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0373817 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2022 Juniper Networks + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9157a12 --- /dev/null +++ b/Makefile @@ -0,0 +1,54 @@ +# Copyright (c) 2018, Juniper Networks, Inc. +# All rights reserved. + +BINARY = jtimon +GOARCH = amd64 + +COMMIT=$(shell git rev-parse HEAD) +BRANCH=$(shell git rev-parse --abbrev-ref HEAD) +TIME=$(shell date +%FT%T%z) +TAG=$(shell git describe --abbrev=0) + +GITHUB_USERNAME=Juniper +BUILD_DIR=${GOPATH}/src/github.com/${GITHUB_USERNAME}/${BINARY} +CURRENT_DIR=$(shell pwd) +BUILD_DIR_LINK=$(shell readlink ${BUILD_DIR}) + +all: clean linux darwin test ## clean the previous output, run tests and generate linux, and darwin binaries + +clean: ## clean the build + -rm -f ${BINARY}-* + -rm -f ${BINARY} + + +LDFLAGS=--ldflags="-X main.jtimonVersion=${TAG}-${COMMIT}-${BRANCH} -X main.buildTime=${TIME}" + +linux: ## generate a linux version of the binary + GOOS=linux GOARCH=${GOARCH} go build -mod vendor ${LDFLAGS} -o ${BINARY}-linux-${GOARCH} . + +darwin: ## generate a osx version of the binary + GOOS=darwin GOARCH=${GOARCH} go build -mod vendor ${LDFLAGS} -o ${BINARY}-darwin-${GOARCH} . + +docker: ## build a docker image that can be used to execute the binary + docker build --build-arg COMMIT=${COMMIT} --build-arg BRANCH=${BRANCH} --build-arg TIME=${TIME} --build-arg TAG=${TAG} -t jtimon . + ln -sf launch-docker-container.sh jtimon + @echo "Usage: docker run -ti --rm jtimon --help" + @echo "or simply call the shell script './jtimon --help" + +docker-run: ## run the docker image, output the jtimon help, ensure you previously have run make docker + docker run -ti --rm -v ${PWD}:/root:ro jtimon --help || true + +docker-sh: ## start the docker container and exec into shell, ensure you have previously run make docker + docker run -ti --rm -v ${PWD}:/root --entrypoint=/bin/sh jtimon + +test: ## run the go tests + go vet + go test --covermode=count -v --coverprofile=coverage.out + ## go tool cover --html=coverage.out + go tool cover --func=coverage.out + +help: + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +.PHONY: linux darwin docker docker-run docker-sh test help + diff --git a/README.md b/README.md new file mode 100644 index 0000000..88e92a5 --- /dev/null +++ b/README.md @@ -0,0 +1,220 @@ + +# jtimon + +Junos Telemetry Interface client + +## Setup + +```sh +$ git clone https://github.com/Juniper/jtimon.git +$ cd jtimon +$ make linux or make darwin +$ ./jtimon-linux-amd64 --help or jtimon-darwin-amd64 --help +``` + +Please note that if you use make to build source, it will produce binary with GOOS and GOARCH names e.g. jtimon-darwin-amd64, jtimon-linux-amd64 etc. Building the source using make is recommended as it will insert git-revision, build-time info in the binary. + +To understand what targets are available in make, run the make help command as follows: + +```sh +$ make help +``` + +### Note + +If you are cloning the source and building it, please make sure you have environment variable GOPATH is set correctly. +https://golang.org/doc/code.html#GOPATH + +## Docker container + +Alternatively to building jtimon native, one can build a jtimon Docker container and run it dockerized while passing the local directory to the container to access the json file. + +To build the container: + +```sh +make docker +``` + +Check the resulting image: + +```sh +$ docker images jtimon +REPOSITORY TAG IMAGE ID CREATED SIZE +jtimon latest f1a794609339 7 minutes ago 24.5MB +``` + +Run it: + +```sh +docker run -ti --rm -v ${PWD}:/u:ro jtimon --help +``` + +Or simply by calling ./jtimon, which is a symlink to launch-docker-container.sh, capable of launching the container by name with the current directory mounted into /u: + +```sh +$ ./jtimon +Enter config file name: bla.json +2018/03/02 13:53:44 File error: open bla.json: no such file or directory +``` + +## CLI Options + +``` +$./jtimon-darwin-amd64 --help  ✔  12:33:35  +Usage of ./jtimon-darwin-amd64: + --compression string Enable HTTP/2 compression (gzip) + --config strings Config file name(s) + --config-file-list string List of Config files + --consume-test-data Consume test data + --explore-config Explore full config of JTIMON and exit + --generate-test-data Generate test data + --json Convert telemetry packet into JSON + --log-mux-stdout All logs to stdout + --max-run int Max run time in seconds + --no-per-packet-goroutines Spawn per packet go routines + --pprof Profile JTIMON + --pprof-port int32 Profile port (default 6060) + --prefix-check Report missing __prefix__ in telemetry packet + --print Print Telemetry data + --prometheus Stats for prometheus monitoring system + --prometheus-host string IP to bind Prometheus service to (default "127.0.0.1") + --prometheus-port int32 Prometheus port (default 8090) + --stats-handler Use GRPC statshandler + --version Print version and build-time of the binary and exit +pflag: help requested +``` + +## Config + +To explore what can go in config, please use --explore-config option. + +Except connection details like host, port, etc no other part of the config is mandatory e.g. do not use influx in your config if you dont want to insert data into it. + +``` +$ ./jtimon-linux-amd64 --explore-config [8/1981] +2021/10/02 17:15:22 Version: v2.3.0-7bfd8fdf2fcae1d55079e3d9eceb761be0842eae-master BuildTime 2021-10-02T19:51:16-0400 +2021/10/02 17:15:22 +{ + "port": 0, + "host": "", + "user": "", + "password": "", + "cid": "", + "meta": false, + "eos": false, + "grpc": { + "ws": 0 + }, + "tls": { + "clientcrt": "", + "clientkey": "", + "ca": "", + "servername": "" + }, + "influx": { + "server": "", + "port": 0, + "dbname": "", + "user": "", + "password": "", + "recreate": false, + "measurement": "", + "batchsize": 0, + "batchfrequency": 0, + "http-timeout": 0, + "retention-policy": "", + "accumulator-frequency": 0, + "write-per-measurement": false + }, + "kafka": null, + "paths": [ + { + "path": "", + "freq": 0, + "mode": "" + } + ], + "log": { + "file": "", + "periodic-stats": 0, + "verbose": false + }, + "vendor": { + "name": "", + "remove-namespace": false, + "schema": null, + "gnmi": null + }, + "alias": "", + "password-decoder": "", + "enable-uint": false +} +``` + +I am explaining some config options which are not self-explanatory. + +
+meta : send username and password over gRPC meta instead of invoking LoginCheck() RPC for authentication. 
+Please use SSL/TLS for security. For more details on how to use SSL/TLS, please refer wiki
+https://github.com/Juniper/jtimon/wiki/SSL
+
+ +
+cid : client id. Junos expects unique client ids if multiple clients are subscribing to telemetry streams.
+
+ +
+eos : end of sync. Tell Junos to send end of sync for on-change subscriptions.
+
+ +
+grpc/ws : window size of grpc for slower clients
+
+ +## Kafka Publish + +To publish gRPC/Openconfig JTI data to Kafka, use the following json config. + +``` +$ cat kafka-test-1.json +{ + "host": "2.2.2.2", + "port": 32767, + "user": "username", + "password": "password", + "cid": "cid123", + "kafka": { + "brokers": ["1.1.1.1:9094"], + "topic": "test", + "client-id": "testjtimonmx86" + }, + + "paths": [ + { + "path": "/interfaces", + "freq": 10000 + } + ] +} +``` + +Below are all possible Kafka config options. + +``` +type KafkaConfig struct { + Version string `json:"version"` + Brokers []string `json:"brokers"` + ClientID string `json:"client-id"` + Topic string `json:"topic"` + CompressionCodec int `json:"compression-codec"` + RequiredAcks int `json:"required-acks"` + MaxRetry int `json:"max-retry"` + MaxMessageBytes int `json:"max-message-bytes"` + SASLUser string `json:"sasl-username"` + SASLPass string `json:"sasl-password"` + TLSCA string `json:"tls-ca"` + TLSCert string `json:"tls-cert"` + TLSKey string `json:"tls-key"` + InsecureSkipVerify bool `json:"insecure-skip-verify"` +} +``` diff --git a/alias.go b/alias.go new file mode 100644 index 0000000..4814109 --- /dev/null +++ b/alias.go @@ -0,0 +1,50 @@ +package main + +import ( + "bufio" + "fmt" + "io" + "os" + "strings" +) + +// Alias holds name mapping +type Alias struct { + m map[string]string +} + +// NewAlias is used to create new name mapping from given file +func NewAlias(file string) (*Alias, error) { + f, err := os.Open(file) + + if err != nil { + return nil, err + } + defer f.Close() + m := make(map[string]string) + reader := bufio.NewReader(f) + for { + line, err := reader.ReadString('\n') + if err == io.EOF { + break + } + + tokens := strings.Split(line, ":") + if len(tokens) != 2 { + return nil, fmt.Errorf("alias mapping has syntax error for line (%s)", line) + } + m[strings.TrimSpace(tokens[1])] = strings.TrimSpace(tokens[0]) + } + return &Alias{m: m}, nil +} + +func getAlias(a *Alias, input string) string { + if a == nil { + return input + } + name, ok := a.m[input] + if !ok { + return input + } + return name +} diff --git a/alias_test.go b/alias_test.go new file mode 100644 index 0000000..73e149f --- /dev/null +++ b/alias_test.go @@ -0,0 +1,65 @@ +package main + +import ( + "testing" +) + +func TestNewAlias(t *testing.T) { + tests := []struct { + name string + file string + err bool + count int + m map[string]string + }{ + { + name: "invalid-file", + file: "no-such-file.txt", + err: true, + }, + { + name: "valid-file-syntax error", + file: "tests/data/juniper-junos/alias/alias-error.txt", + err: true, + }, + { + name: "valid-file", + file: "tests/data/juniper-junos/alias/alias.txt", + err: false, + count: 10, + m: map[string]string{ + "no-does-not-exists-in-test-data": "no-does-not-exists-in-test-data", + "/interfaces/interface/subinterfaces/subinterface/state/counters/in-unicast-pkts": "ifl-in-ucast-pkts", + "/interfaces/interface/@name": "physical_interface", + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + alias, err := NewAlias(test.file) + if test.err && err == nil { + t.Errorf("want error, got nil") + } + if !test.err && err != nil { + t.Errorf("%v", err) + } + if !test.err { + if test.count != len(alias.m) { + t.Errorf("count: want %d, got %d", test.count, len(alias.m)) + } + for k, v := range test.m { + r := getAlias(alias, k) + if r != v { + t.Errorf("want %s, got %s", v, r) + } + } + + r := getAlias(nil, "empty-alias") + if r != "empty-alias" { + t.Errorf("nil-alias failed: want empty-alias, got %s", r) + } + } + }) + } +} diff --git a/authentication/authentication.pb.go b/authentication/authentication.pb.go new file mode 100644 index 0000000..479b549 --- /dev/null +++ b/authentication/authentication.pb.go @@ -0,0 +1,182 @@ +// Code generated by protoc-gen-go. +// source: authentication.proto +// DO NOT EDIT! + +/* +Package authentication is a generated protocol buffer package. + +It is generated from these files: + authentication.proto + +It has these top-level messages: + LoginRequest + LoginReply +*/ +package authentication + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The request message containing the user's name, password and client id +type LoginRequest struct { + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName" json:"user_name,omitempty"` + Password string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"` + ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId" json:"client_id,omitempty"` +} + +func (m *LoginRequest) Reset() { *m = LoginRequest{} } +func (m *LoginRequest) String() string { return proto.CompactTextString(m) } +func (*LoginRequest) ProtoMessage() {} +func (*LoginRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *LoginRequest) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +func (m *LoginRequest) GetPassword() string { + if m != nil { + return m.Password + } + return "" +} + +func (m *LoginRequest) GetClientId() string { + if m != nil { + return m.ClientId + } + return "" +} + +// The response message containing the result of login attempt. +// result value of true indicates success and false indicates +// failure +type LoginReply struct { + Result bool `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` +} + +func (m *LoginReply) Reset() { *m = LoginReply{} } +func (m *LoginReply) String() string { return proto.CompactTextString(m) } +func (*LoginReply) ProtoMessage() {} +func (*LoginReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +func (m *LoginReply) GetResult() bool { + if m != nil { + return m.Result + } + return false +} + +func init() { + proto.RegisterType((*LoginRequest)(nil), "authentication.LoginRequest") + proto.RegisterType((*LoginReply)(nil), "authentication.LoginReply") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for Login service + +type LoginClient interface { + LoginCheck(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginReply, error) +} + +type loginClient struct { + cc *grpc.ClientConn +} + +func NewLoginClient(cc *grpc.ClientConn) LoginClient { + return &loginClient{cc} +} + +func (c *loginClient) LoginCheck(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginReply, error) { + out := new(LoginReply) + err := grpc.Invoke(ctx, "/authentication.Login/LoginCheck", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Login service + +type LoginServer interface { + LoginCheck(context.Context, *LoginRequest) (*LoginReply, error) +} + +func RegisterLoginServer(s *grpc.Server, srv LoginServer) { + s.RegisterService(&_Login_serviceDesc, srv) +} + +func _Login_LoginCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LoginRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LoginServer).LoginCheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/authentication.Login/LoginCheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LoginServer).LoginCheck(ctx, req.(*LoginRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Login_serviceDesc = grpc.ServiceDesc{ + ServiceName: "authentication.Login", + HandlerType: (*LoginServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "LoginCheck", + Handler: _Login_LoginCheck_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "authentication.proto", +} + +func init() { proto.RegisterFile("authentication.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 188 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0x49, 0x2c, 0x2d, 0xc9, + 0x48, 0xcd, 0x2b, 0xc9, 0x4c, 0x4e, 0x2c, 0xc9, 0xcc, 0xcf, 0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, + 0x17, 0xe2, 0x43, 0x15, 0x55, 0x4a, 0xe1, 0xe2, 0xf1, 0xc9, 0x4f, 0xcf, 0xcc, 0x0b, 0x4a, 0x2d, + 0x2c, 0x4d, 0x2d, 0x2e, 0x11, 0x92, 0xe6, 0xe2, 0x2c, 0x2d, 0x4e, 0x2d, 0x8a, 0xcf, 0x4b, 0xcc, + 0x4d, 0x95, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0xe2, 0x00, 0x09, 0xf8, 0x01, 0xf9, 0x42, 0x52, + 0x5c, 0x1c, 0x05, 0x89, 0xc5, 0xc5, 0xe5, 0xf9, 0x45, 0x29, 0x12, 0x4c, 0x10, 0x39, 0x18, 0x1f, + 0xa4, 0x31, 0x39, 0x27, 0x13, 0x68, 0x72, 0x7c, 0x66, 0x8a, 0x04, 0x33, 0x44, 0x12, 0x22, 0xe0, + 0x99, 0xa2, 0xa4, 0xc2, 0xc5, 0x05, 0xb5, 0xa5, 0x20, 0xa7, 0x52, 0x48, 0x8c, 0x8b, 0xad, 0x28, + 0xb5, 0xb8, 0x34, 0xa7, 0x04, 0x6c, 0x01, 0x47, 0x10, 0x94, 0x67, 0x14, 0xc8, 0xc5, 0x0a, 0x56, + 0x25, 0xe4, 0x01, 0x55, 0xee, 0x9c, 0x91, 0x9a, 0x9c, 0x2d, 0x24, 0xa3, 0x87, 0xe6, 0x13, 0x64, + 0x07, 0x4b, 0x49, 0xe1, 0x90, 0x05, 0x5a, 0xa4, 0xc4, 0x90, 0xc4, 0x06, 0xf6, 0xb5, 0x31, 0x20, + 0x00, 0x00, 0xff, 0xff, 0xc3, 0x13, 0x69, 0x46, 0x0d, 0x01, 0x00, 0x00, +} diff --git a/authentication/authentication.proto b/authentication/authentication.proto new file mode 100644 index 0000000..ff90ae7 --- /dev/null +++ b/authentication/authentication.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; + +package authentication; + +// The Login service definition. +service Login { + rpc LoginCheck (LoginRequest) returns (LoginReply) {} +} + +// The request message containing the user's name, password and client id +message LoginRequest { + string user_name = 1; + string password = 2; + string client_id = 3; +} + +/* The response message containing the result of login attempt. + * result value of true indicates success and false indicates + * failure + */ +message LoginReply { + bool result = 1; +} diff --git a/config.go b/config.go new file mode 100644 index 0000000..fc3922d --- /dev/null +++ b/config.go @@ -0,0 +1,371 @@ +package main + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io/ioutil" + "log" + "os" + "os/exec" + "reflect" +) + +// ConfigFileList to get the list of config file names +type ConfigFileList struct { + Filenames []string `json:"config_file_list"` +} + +// Config struct +type Config struct { + Port int `json:"port"` + Host string `json:"host"` + User string `json:"user"` + Password string `json:"password"` + CID string `json:"cid"` + Meta bool `json:"meta"` + EOS bool `json:"eos"` + GRPC GRPCConfig `json:"grpc"` + TLS TLSConfig `json:"tls"` + Influx InfluxConfig `json:"influx"` + Kafka *KafkaConfig `json:"kafka"` + Paths []PathsConfig `json:"paths"` + Log LogConfig `json:"log"` + Vendor VendorConfig `json:"vendor"` + Alias string `json:"alias"` + PasswordDecoder string `json:"password-decoder"` + EnableUintSupport bool `json:"enable-uint"` +} + +// GnmiConfig definition +type GnmiConfig struct { + Encoding string +} + +// VendorConfig definition +type VendorConfig struct { + Name string `json:"name"` + RemoveNS bool `json:"remove-namespace"` + Schema []VendorSchema `json:"schema"` + Gnmi *GnmiConfig `json:"gnmi"` +} + +// VendorSchema definition +type VendorSchema struct { + Path string `json:"path"` +} + +//LogConfig is config struct for logging +type LogConfig struct { + File string `json:"file"` + PeriodicStats int `json:"periodic-stats"` + Verbose bool `json:"verbose"` + out *os.File + logger *log.Logger +} + +// APIConfig is config struct for API Server +type APIConfig struct { + Port int `json:"port"` +} + +//GRPCConfig is to specify GRPC params +type GRPCConfig struct { + WS int32 `json:"ws"` +} + +// TLSConfig is to specify TLS params +type TLSConfig struct { + ClientCrt string `json:"clientcrt"` + ClientKey string `json:"clientkey"` + CA string `json:"ca"` + ServerName string `json:"servername"` +} + +// PathsConfig to specify subscription path, reporting-interval (freq), etc,. +type PathsConfig struct { + Path string `json:"path"` + Freq uint64 `json:"freq"` + Mode string `json:"mode"` +} + +// NewJTIMONConfigFilelist to return configfilelist object +func NewJTIMONConfigFilelist(file string) (ConfigFileList, error) { + // Parse config file + configfilelist, err := ParseJSONConfigFileList(file) + return configfilelist, err +} + +// NewJTIMONConfig to return config object +func NewJTIMONConfig(file string) (Config, error) { + // parse config file + config, err := ParseJSON(file) + return config, err +} + +func fillupDefaults(config *Config) { + // fill up defaults + if config.GRPC.WS == 0 { + config.GRPC.WS = DefaultGRPCWindowSize + } + if config.Influx.BatchFrequency == 0 { + config.Influx.BatchFrequency = DefaultIDBBatchFreq + } + if config.Influx.BatchSize == 0 { + config.Influx.BatchSize = DefaultIDBBatchSize + } + if config.Influx.HTTPTimeout == 0 { + config.Influx.HTTPTimeout = DefaultIDBTimeout + } + if config.Influx.AccumulatorFrequency == 0 { + config.Influx.AccumulatorFrequency = DefaultIDBAccumulatorFreq + } +} + +// ParseJSONConfigFileList parses file list config +func ParseJSONConfigFileList(file string) (ConfigFileList, error) { + var configfilelist ConfigFileList + + f, err := ioutil.ReadFile(file) + if err != nil { + return configfilelist, err + } + + if err := json.Unmarshal(f, &configfilelist); err != nil { + return configfilelist, err + } + + return configfilelist, err +} + +// ParseJSON parses JSON encoded config of JTIMON +func ParseJSON(file string) (Config, error) { + var config Config + + f, err := ioutil.ReadFile(file) + if err != nil { + return config, err + } + if err := json.Unmarshal(f, &config); err != nil { + return config, err + } + + fillupDefaults(&config) + + if _, err := ValidateConfig(config); err != nil { + log.Fatalf("Invalid config %v\n", err) + } + + return config, nil +} + +// ValidateConfig for config validation +func ValidateConfig(config Config) (string, error) { + b, err := json.MarshalIndent(config, "", " ") + if err != nil { + return "", err + } + return string(b), nil + +} + +// ExploreConfig of JTIMON +func ExploreConfig() (string, error) { + var config Config + c := "{\"paths\": [{}]}" + config.Kafka = &KafkaConfig{ + Brokers: []string{""}, + } + + if err := json.Unmarshal([]byte(c), &config); err == nil { + if b, err := json.MarshalIndent(config, "", " "); err == nil { + return string(b), nil + } + } + return "", errors.New("something is wrong, this should have not happened") +} + +// IsVerboseLogging returns true if verbose logging is enabled, false otherwise +func IsVerboseLogging(jctx *JCtx) bool { + return jctx.config.Log.Verbose +} + +// GetConfigFiles to get the list of config files +func GetConfigFiles(cfgFile *[]string, cfgFileList string) error { + if len(cfgFileList) != 0 { + configfilelist, err := NewJTIMONConfigFilelist(cfgFileList) + if err != nil { + return fmt.Errorf("%v: [%v]", err, cfgFileList) + } + n := len(configfilelist.Filenames) + if n == 0 { + return fmt.Errorf("%s doesn't have any files", cfgFileList) + } + *cfgFile = configfilelist.Filenames + } else { + n := len(*cfgFile) + if n == 0 { + return fmt.Errorf("can not run without any config file") + } + } + return nil +} + +// DecodePassword will decode the password if decoder util is present in the config +func DecodePassword(jctx *JCtx, config Config) (string, error) { + // Default is the current passsword value + password := config.Password + if len(config.PasswordDecoder) > 0 { + // Run the decode util with the input file as argument + cmd := exec.Command(config.PasswordDecoder, jctx.file) + var stdout, stderr bytes.Buffer + cmd.Stdout = &stdout + cmd.Stderr = &stderr + err := cmd.Run() + outStr, errStr := string(stdout.Bytes()), string(stderr.Bytes()) + if err != nil { + log.Fatalf("cmd.Run() failed with %s:%s\n", err, errStr) + return "", err + } + password = outStr + } + return password, nil +} + +func (jctx *JCtx) isConfigChanged(new Config) bool { + old := jctx.config + switch { + case old.Host != new.Host: + return true + case old.Port != new.Port: + return true + case old.User != new.User: + return true + case old.Password != new.Password: + return true + case old.CID != new.CID: + return true + case old.Alias != new.Alias: + return true + case old.EOS != new.EOS: + return true + case old.Meta != new.Meta: + return true + case old.EnableUintSupport != new.EnableUintSupport: + return true + case old.GRPC.WS != new.GRPC.WS: + return true + case old.Log.File != new.Log.File: + return true + case old.Log.Verbose != new.Log.Verbose: + return true + case old.Log.PeriodicStats != new.Log.PeriodicStats: + return true + } + + if !reflect.DeepEqual(old.Paths, new.Paths) { + return true + } + if !reflect.DeepEqual(old.TLS, new.TLS) { + return true + } + if !reflect.DeepEqual(old.Vendor, new.Vendor) { + return true + } + if !reflect.DeepEqual(old.Influx, new.Influx) { + return true + } + + return false +} + +// HandleConfigChange to check which config changes are allowed +func HandleConfigChange(jctx *JCtx, config Config, restart *bool) error { + // In the config get the decoded password as the running config will + // have the decoded password. + value, err := DecodePassword(jctx, config) + if err != nil { + return err + } + mangledPwd := config.Password // Take a backup of it, it shouldn't appear in logs + config.Password = value + //logConfigChanged := false + // Compare the new config and the running config + + configChanged := jctx.isConfigChanged(config) + if configChanged { + config.Password = mangledPwd // Log only the mangled password + b, err := json.MarshalIndent(config, "", " ") + if err != nil { + return fmt.Errorf("config parsing error (json marshal) for %s: %v", jctx.file, err) + } + + jLog(jctx, fmt.Sprintf("Config is changed for: %s, Running config of JTIMON: \n%s", jctx.file, string(b))) + config.Password = value // Revert back to decoded password + logStop(jctx) + jctx.config = config + logInit(jctx) + if restart != nil { + jLog(jctx, fmt.Sprintf("Restarting worker process to spawn new device connection for: %s", jctx.file)) + *restart = true + } + } else { + jLog(jctx, fmt.Sprintf("No config changed for: %s", jctx.file)) + } + + return nil +} + +// ConfigRead will read the config and init the services. In case of config changes, it will update the existing config +func ConfigRead(jctx *JCtx, init bool, restart *bool) error { + var err error + + config, err := NewJTIMONConfig(jctx.file) + if err != nil { + log.Printf("config parsing error for %s: %v", jctx.file, err) + return fmt.Errorf("config parsing (json unmarshal) error for %s: %v", jctx.file, err) + } + + if init { + jctx.config = config + logInit(jctx) + b, err := json.MarshalIndent(jctx.config, "", " ") + if err != nil { + return fmt.Errorf("config parsing error (json marshal) for %s: %v", jctx.file, err) + } + + jLog(jctx, fmt.Sprintf("Running config of JTIMON:\n %s", string(b))) + // Decode the password if the config has provided the decode util + value, err := DecodePassword(jctx, config) + if err != nil { + return err + } + jctx.config.Password = value + // subscription channel (subch) is used to let go routine receiving telemetry + // data know about certain events like sighup. + jctx.control = make(chan os.Signal) + + go periodicStats(jctx) + influxInit(jctx) + if err := KafkaInit(jctx); err != nil { + log.Printf("KafkaInit error : %v", err) + } + } else { + err := HandleConfigChange(jctx, config, restart) + if err != nil { + return err + } + } + return nil +} + +// StringInSlice to check whether a string in in the slice +func StringInSlice(a string, list []string) bool { + for _, b := range list { + if b == a { + return true + } + } + return false +} diff --git a/config_test.go b/config_test.go new file mode 100644 index 0000000..4acc92d --- /dev/null +++ b/config_test.go @@ -0,0 +1,107 @@ +package main + +import ( + "testing" +) + +func TestNewJTIMONConfig(t *testing.T) { + var xerr error + tests := []struct { + name string + error bool + }{ + {"tests/data/noerror.json", false}, // no error + {"tests/data/error.jso", true}, // file does not exists + {"tests/data/error.json", true}, // syntax error in JSON file + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + _, err := NewJTIMONConfig(test.name) + if err != nil && !test.error { + t.Errorf("NewJTIMONConfig failed, got: %v, want: %v", err, xerr) + } + if err == nil && test.error { + t.Errorf("NewJTIMONConfig failed, got: %v, want error", err) + } + }) + } +} + +func TestNewJTIMONConfigFilelist(t *testing.T) { + var xerr error + tests := []struct { + name string + error bool + }{ + {"tests/data/file_list.json", false}, // no error + {"tests/data/file_list.jso", true}, // file does not exists + {"tests/data/file_list_err.json", true}, // syntax error in JSON file + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + _, err := NewJTIMONConfigFilelist(test.name) + if err != nil && !test.error { + t.Errorf("NewJTIMONConfig failed, got: %v, want: %v", err, xerr) + } + if err == nil && test.error { + t.Errorf("NewJTIMONConfig failed, got: %v, want error", err) + } + }) + } +} + +func TestValidateConfig(t *testing.T) { + tests := []struct { + name string + error bool + }{ + {"tests/data/noerror.json", false}, // no error + {"tests/data/error.jso", true}, // file does not exists + {"tests/data/error.json", true}, // syntax error in JSON file + } + + for _, test := range tests { + t.Run(test.name, func(*testing.T) { + config, err := NewJTIMONConfig(test.name) + if err != nil { + configString, err := ValidateConfig(config) + if err != nil { + t.Errorf("TestValidateConfig failed. Error: %v\nConfig %s\n", err, configString) + } + } + }) + } +} + +func TestExploreConfig(t *testing.T) { + t.Run("explore-config", func(t *testing.T) { + _, err := ExploreConfig() + if err != nil { + t.Errorf("ExploreConfig failed, Error: %v\n", err) + } + }) +} + +func TestStringInSlice(t *testing.T) { + tests := []struct { + name string + value bool + }{ + {"first", false}, + {"two", true}, + {"third", false}, + } + + configfilelist := []string{"one", "two", "three"} + + for _, test := range tests { + t.Run(test.name, func(*testing.T) { + ret := StringInSlice(test.name, configfilelist) + if ret != test.value { + t.Errorf("TeststringInSlice failed") + } + }) + } +} diff --git a/coverage.out b/coverage.out new file mode 100644 index 0000000..fbf1219 --- /dev/null +++ b/coverage.out @@ -0,0 +1,1159 @@ +mode: count +github.com/Juniper/jtimon/alias.go:17.44,20.16 2 25 +github.com/Juniper/jtimon/alias.go:23.2,26.6 4 3 +github.com/Juniper/jtimon/alias.go:38.2,38.26 1 2 +github.com/Juniper/jtimon/alias.go:20.16,22.3 1 22 +github.com/Juniper/jtimon/alias.go:26.6,28.20 2 24 +github.com/Juniper/jtimon/alias.go:32.3,33.23 2 22 +github.com/Juniper/jtimon/alias.go:36.3,36.65 1 21 +github.com/Juniper/jtimon/alias.go:28.20,29.9 1 2 +github.com/Juniper/jtimon/alias.go:33.23,35.4 1 1 +github.com/Juniper/jtimon/alias.go:41.46,42.14 1 88046 +github.com/Juniper/jtimon/alias.go:45.2,46.9 2 2083 +github.com/Juniper/jtimon/alias.go:49.2,49.13 1 212 +github.com/Juniper/jtimon/alias.go:42.14,44.3 1 85986 +github.com/Juniper/jtimon/alias.go:46.9,48.3 1 1871 +github.com/Juniper/jtimon/gnmi_utils.go:75.56,78.31 3 3 +github.com/Juniper/jtimon/gnmi_utils.go:106.2,106.26 1 3 +github.com/Juniper/jtimon/gnmi_utils.go:111.2,111.20 1 3 +github.com/Juniper/jtimon/gnmi_utils.go:78.31,79.14 1 12 +github.com/Juniper/jtimon/gnmi_utils.go:83.3,84.24 2 12 +github.com/Juniper/jtimon/gnmi_utils.go:79.14,80.12 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:84.24,86.4 1 6 +github.com/Juniper/jtimon/gnmi_utils.go:86.9,91.35 4 6 +github.com/Juniper/jtimon/gnmi_utils.go:91.35,96.54 4 9 +github.com/Juniper/jtimon/gnmi_utils.go:101.5,101.27 1 9 +github.com/Juniper/jtimon/gnmi_utils.go:96.54,98.6 1 3 +github.com/Juniper/jtimon/gnmi_utils.go:98.11,100.6 1 6 +github.com/Juniper/jtimon/gnmi_utils.go:106.26,109.3 2 0 +github.com/Juniper/jtimon/gnmi_utils.go:114.52,115.16 1 3 +github.com/Juniper/jtimon/gnmi_utils.go:116.19,117.41 1 1 +github.com/Juniper/jtimon/gnmi_utils.go:118.24,119.46 1 1 +github.com/Juniper/jtimon/gnmi_utils.go:120.10,121.38 1 1 +github.com/Juniper/jtimon/gnmi_utils.go:126.90,127.64 1 5 +github.com/Juniper/jtimon/gnmi_utils.go:131.2,133.38 2 3 +github.com/Juniper/jtimon/gnmi_utils.go:137.2,137.19 1 3 +github.com/Juniper/jtimon/gnmi_utils.go:127.64,129.3 1 2 +github.com/Juniper/jtimon/gnmi_utils.go:133.38,135.3 1 2 +github.com/Juniper/jtimon/gnmi_utils.go:147.159,160.22 2 17 +github.com/Juniper/jtimon/gnmi_utils.go:172.2,172.33 1 17 +github.com/Juniper/jtimon/gnmi_utils.go:203.2,207.25 5 17 +github.com/Juniper/jtimon/gnmi_utils.go:160.22,162.18 1 12 +github.com/Juniper/jtimon/gnmi_utils.go:169.3,169.85 1 12 +github.com/Juniper/jtimon/gnmi_utils.go:162.18,164.24 2 9 +github.com/Juniper/jtimon/gnmi_utils.go:164.24,166.5 1 1 +github.com/Juniper/jtimon/gnmi_utils.go:172.33,176.18 3 35 +github.com/Juniper/jtimon/gnmi_utils.go:180.3,183.31 2 35 +github.com/Juniper/jtimon/gnmi_utils.go:176.18,177.12 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:183.31,185.18 2 31 +github.com/Juniper/jtimon/gnmi_utils.go:185.18,187.5 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:188.9,189.64 1 4 +github.com/Juniper/jtimon/gnmi_utils.go:197.4,197.22 1 4 +github.com/Juniper/jtimon/gnmi_utils.go:189.64,192.5 2 4 +github.com/Juniper/jtimon/gnmi_utils.go:192.10,192.74 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:192.74,195.5 2 0 +github.com/Juniper/jtimon/gnmi_utils.go:197.22,199.5 1 4 +github.com/Juniper/jtimon/gnmi_utils.go:216.140,225.22 2 6 +github.com/Juniper/jtimon/gnmi_utils.go:237.2,237.33 1 6 +github.com/Juniper/jtimon/gnmi_utils.go:242.2,245.25 4 6 +github.com/Juniper/jtimon/gnmi_utils.go:225.22,227.18 1 2 +github.com/Juniper/jtimon/gnmi_utils.go:234.3,234.85 1 2 +github.com/Juniper/jtimon/gnmi_utils.go:227.18,229.24 2 1 +github.com/Juniper/jtimon/gnmi_utils.go:229.24,231.5 1 1 +github.com/Juniper/jtimon/gnmi_utils.go:237.33,240.3 2 6 +github.com/Juniper/jtimon/gnmi_utils.go:256.165,261.25 2 55 +github.com/Juniper/jtimon/gnmi_utils.go:278.2,278.39 1 55 +github.com/Juniper/jtimon/gnmi_utils.go:261.25,265.33 4 146 +github.com/Juniper/jtimon/gnmi_utils.go:269.3,269.101 1 146 +github.com/Juniper/jtimon/gnmi_utils.go:265.33,267.4 1 42 +github.com/Juniper/jtimon/gnmi_utils.go:269.101,270.45 1 4 +github.com/Juniper/jtimon/gnmi_utils.go:270.45,271.21 1 8 +github.com/Juniper/jtimon/gnmi_utils.go:271.21,273.6 1 4 +github.com/Juniper/jtimon/gnmi_utils.go:282.96,288.37 2 38 +github.com/Juniper/jtimon/gnmi_utils.go:364.2,364.20 1 38 +github.com/Juniper/jtimon/gnmi_utils.go:407.2,407.19 1 38 +github.com/Juniper/jtimon/gnmi_utils.go:289.34,290.35 1 8 +github.com/Juniper/jtimon/gnmi_utils.go:291.31,292.32 1 9 +github.com/Juniper/jtimon/gnmi_utils.go:293.32,294.17 1 2 +github.com/Juniper/jtimon/gnmi_utils.go:301.36,302.39 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:303.32,304.35 1 8 +github.com/Juniper/jtimon/gnmi_utils.go:305.35,306.36 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:307.32,308.33 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:309.33,310.34 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:311.33,312.34 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:313.31,314.32 1 4 +github.com/Juniper/jtimon/gnmi_utils.go:315.35,320.19 5 2 +github.com/Juniper/jtimon/gnmi_utils.go:321.33,325.19 4 4 +github.com/Juniper/jtimon/gnmi_utils.go:326.36,337.28 3 1 +github.com/Juniper/jtimon/gnmi_utils.go:360.10,361.35 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:294.17,296.4 1 1 +github.com/Juniper/jtimon/gnmi_utils.go:296.9,296.17 1 1 +github.com/Juniper/jtimon/gnmi_utils.go:296.17,298.4 1 1 +github.com/Juniper/jtimon/gnmi_utils.go:298.9,300.4 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:337.28,339.24 2 3 +github.com/Juniper/jtimon/gnmi_utils.go:340.15,342.20 2 3 +github.com/Juniper/jtimon/gnmi_utils.go:343.17,348.22 5 0 +github.com/Juniper/jtimon/gnmi_utils.go:349.14,351.21 2 0 +github.com/Juniper/jtimon/gnmi_utils.go:352.16,354.23 2 0 +github.com/Juniper/jtimon/gnmi_utils.go:355.16,357.21 2 0 +github.com/Juniper/jtimon/gnmi_utils.go:364.20,368.17 4 8 +github.com/Juniper/jtimon/gnmi_utils.go:373.3,380.17 4 8 +github.com/Juniper/jtimon/gnmi_utils.go:385.3,385.30 1 8 +github.com/Juniper/jtimon/gnmi_utils.go:368.17,371.4 2 0 +github.com/Juniper/jtimon/gnmi_utils.go:380.17,383.4 2 0 +github.com/Juniper/jtimon/gnmi_utils.go:386.20,388.50 2 3 +github.com/Juniper/jtimon/gnmi_utils.go:394.4,394.18 1 3 +github.com/Juniper/jtimon/gnmi_utils.go:399.21,400.24 1 5 +github.com/Juniper/jtimon/gnmi_utils.go:401.11,403.34 2 0 +github.com/Juniper/jtimon/gnmi_utils.go:388.50,390.5 1 1 +github.com/Juniper/jtimon/gnmi_utils.go:390.10,392.5 1 2 +github.com/Juniper/jtimon/gnmi_utils.go:394.18,397.5 2 0 +github.com/Juniper/jtimon/gnmi_utils.go:411.130,420.20 2 11 +github.com/Juniper/jtimon/gnmi_utils.go:443.2,443.18 1 11 +github.com/Juniper/jtimon/gnmi_utils.go:447.2,447.26 1 10 +github.com/Juniper/jtimon/gnmi_utils.go:475.2,475.38 1 10 +github.com/Juniper/jtimon/gnmi_utils.go:420.20,422.19 2 5 +github.com/Juniper/jtimon/gnmi_utils.go:422.19,424.4 1 0 +github.com/Juniper/jtimon/gnmi_utils.go:425.8,427.31 2 6 +github.com/Juniper/jtimon/gnmi_utils.go:438.3,438.19 1 6 +github.com/Juniper/jtimon/gnmi_utils.go:427.31,429.78 2 5 +github.com/Juniper/jtimon/gnmi_utils.go:434.4,435.9 2 5 +github.com/Juniper/jtimon/gnmi_utils.go:429.78,431.13 2 0 +github.com/Juniper/jtimon/gnmi_utils.go:438.19,440.4 1 1 +github.com/Juniper/jtimon/gnmi_utils.go:443.18,445.3 1 1 +github.com/Juniper/jtimon/gnmi_utils.go:447.26,448.31 1 5 +github.com/Juniper/jtimon/gnmi_utils.go:449.29,453.18 4 5 +github.com/Juniper/jtimon/gnmi_utils.go:458.4,458.47 1 5 +github.com/Juniper/jtimon/gnmi_utils.go:462.4,462.32 1 5 +github.com/Juniper/jtimon/gnmi_utils.go:453.18,456.5 2 0 +github.com/Juniper/jtimon/gnmi_utils.go:458.47,460.5 1 5 +github.com/Juniper/jtimon/gnmi_utils.go:464.8,467.17 3 5 +github.com/Juniper/jtimon/gnmi_utils.go:472.3,472.34 1 5 +github.com/Juniper/jtimon/gnmi_utils.go:467.17,470.4 2 0 +github.com/Juniper/jtimon/grpc.go:14.62,18.30 3 23 +github.com/Juniper/jtimon/grpc.go:22.2,24.63 3 0 +github.com/Juniper/jtimon/grpc.go:28.2,28.48 1 0 +github.com/Juniper/jtimon/grpc.go:32.2,38.59 2 0 +github.com/Juniper/jtimon/grpc.go:18.30,20.3 1 23 +github.com/Juniper/jtimon/grpc.go:24.63,26.3 1 0 +github.com/Juniper/jtimon/grpc.go:28.48,30.3 1 0 +github.com/Juniper/jtimon/grpc.go:41.80,44.62 2 23 +github.com/Juniper/jtimon/grpc.go:50.2,50.19 1 23 +github.com/Juniper/jtimon/grpc.go:54.2,54.22 1 23 +github.com/Juniper/jtimon/grpc.go:63.2,66.27 3 23 +github.com/Juniper/jtimon/grpc.go:72.2,72.18 1 23 +github.com/Juniper/jtimon/grpc.go:44.62,46.3 1 23 +github.com/Juniper/jtimon/grpc.go:46.8,48.3 1 0 +github.com/Juniper/jtimon/grpc.go:50.19,52.3 1 23 +github.com/Juniper/jtimon/grpc.go:55.14,58.35 3 2 +github.com/Juniper/jtimon/grpc.go:59.10,60.35 1 21 +github.com/Juniper/jtimon/grpc.go:66.27,68.17 2 0 +github.com/Juniper/jtimon/grpc.go:68.17,70.4 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:29.63,32.18 2 16 +github.com/Juniper/jtimon/subscribe_gnmi.go:59.2,59.24 1 5 +github.com/Juniper/jtimon/subscribe_gnmi.go:33.13,34.34 1 3 +github.com/Juniper/jtimon/subscribe_gnmi.go:35.15,36.27 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:37.12,38.23 1 1 +github.com/Juniper/jtimon/subscribe_gnmi.go:44.14,46.17 2 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:50.3,50.24 1 1 +github.com/Juniper/jtimon/subscribe_gnmi.go:51.28,51.28 0 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:52.21,52.21 0 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:53.14,53.14 0 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:54.10,56.31 2 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:38.23,40.4 1 1 +github.com/Juniper/jtimon/subscribe_gnmi.go:40.9,42.4 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:46.17,49.4 2 7 +github.com/Juniper/jtimon/subscribe_gnmi.go:67.69,73.40 2 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:77.2,77.39 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:107.2,107.8 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:73.40,75.3 1 20 +github.com/Juniper/jtimon/subscribe_gnmi.go:77.39,79.81 2 20 +github.com/Juniper/jtimon/subscribe_gnmi.go:83.3,84.17 2 10 +github.com/Juniper/jtimon/subscribe_gnmi.go:89.3,98.39 3 2 +github.com/Juniper/jtimon/subscribe_gnmi.go:102.3,102.29 1 2 +github.com/Juniper/jtimon/subscribe_gnmi.go:79.81,80.12 1 10 +github.com/Juniper/jtimon/subscribe_gnmi.go:84.17,86.12 2 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:98.39,100.4 1 2 +github.com/Juniper/jtimon/subscribe_gnmi.go:102.29,104.4 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:114.131,115.66 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:119.2,120.16 2 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:126.2,126.44 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:149.2,149.12 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:115.66,117.3 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:120.16,124.3 3 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:126.44,127.39 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:132.3,132.29 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:127.39,130.4 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:132.29,137.4 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:138.8,139.39 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:144.3,144.29 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:139.39,142.4 2 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:144.29,146.4 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:161.109,177.9 6 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:193.2,193.16 1 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:197.2,197.34 1 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:225.2,228.25 4 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:177.9,181.14 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:185.3,190.26 6 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:181.14,184.4 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:193.16,195.3 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:197.34,203.35 5 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:207.3,209.52 3 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:203.35,205.4 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:210.8,223.3 7 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:237.150,244.18 3 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:249.2,249.33 1 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:257.2,257.33 1 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:269.2,270.32 2 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:274.2,275.16 2 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:280.2,280.25 1 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:244.18,247.3 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:249.33,251.17 2 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:251.17,254.4 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:257.33,259.17 2 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:259.17,261.4 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:270.32,272.3 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:275.16,278.3 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:286.72,297.47 3 10 +github.com/Juniper/jtimon/subscribe_gnmi.go:307.2,308.16 2 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:314.2,317.22 2 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:343.2,343.29 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:348.2,352.11 4 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:360.2,360.38 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:381.2,382.16 2 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:387.2,387.12 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:297.47,302.3 4 2 +github.com/Juniper/jtimon/subscribe_gnmi.go:308.16,311.3 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:317.22,318.28 1 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:318.28,319.34 1 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:319.34,321.39 1 8 +github.com/Juniper/jtimon/subscribe_gnmi.go:329.5,329.42 1 6 +github.com/Juniper/jtimon/subscribe_gnmi.go:321.39,323.81 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:323.81,326.7 2 2 +github.com/Juniper/jtimon/subscribe_gnmi.go:329.42,331.84 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:331.84,334.7 2 2 +github.com/Juniper/jtimon/subscribe_gnmi.go:336.10,339.5 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:343.29,346.3 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:352.11,353.22 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:353.22,355.4 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:355.9,357.4 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:360.38,366.33 2 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:369.3,369.33 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:377.3,378.113 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:366.33,368.4 1 2 +github.com/Juniper/jtimon/subscribe_gnmi.go:369.33,370.38 1 4 +github.com/Juniper/jtimon/subscribe_gnmi.go:370.38,372.5 1 2 +github.com/Juniper/jtimon/subscribe_gnmi.go:372.10,374.5 1 2 +github.com/Juniper/jtimon/subscribe_gnmi.go:382.16,385.3 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:395.68,412.36 3 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:424.2,427.38 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:442.2,442.58 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:448.2,449.16 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:454.2,455.16 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:460.2,463.12 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:513.2,513.6 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:412.36,413.43 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:414.15,415.38 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:416.20,417.43 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:418.11,419.39 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:427.38,429.17 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:435.3,438.112 3 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:429.17,433.4 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:442.58,445.3 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:445.8,447.3 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:449.16,452.3 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:455.16,458.3 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:463.12,469.7 3 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:469.7,471.21 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:478.4,478.18 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:496.4,496.23 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:471.21,476.5 4 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:478.18,487.113 3 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:492.5,493.11 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:487.113,490.6 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:496.23,498.82 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:498.82,500.14 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:502.10,503.15 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:503.15,505.83 2 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:505.83,507.7 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:513.6,514.10 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:515.28,516.13 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:524.28,526.18 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:517.24,519.30 1 0 +github.com/Juniper/jtimon/subscribe_gnmi.go:520.22,522.32 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:32.64,37.51 3 1440 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:55.2,56.31 2 1439 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:91.2,91.13 1 1439 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:37.51,45.26 8 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:49.3,50.25 2 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:45.26,47.4 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:50.25,52.4 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:56.31,59.52 2 71129 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:81.3,81.29 1 71186 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:59.52,61.36 2 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:62.37,63.64 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:64.34,65.58 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:66.35,67.60 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:68.35,69.60 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:70.35,71.60 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:72.34,73.58 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:74.36,75.62 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:76.12,77.47 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:81.29,83.4 1 1439 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:83.9,83.46 1 69742 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:83.46,84.54 1 69738 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:84.54,85.21 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:85.21,87.6 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:91.13,93.3 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:103.50,107.22 3 22 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:113.2,115.16 2 22 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:119.2,120.17 2 21 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:124.2,125.24 2 21 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:129.2,131.12 2 20 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:190.2,190.6 1 21 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:107.22,110.3 2 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:110.8,112.3 1 22 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:115.16,117.3 1 1 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:120.17,122.3 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:125.24,127.3 1 40 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:131.12,135.7 2 21 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:135.7,137.21 2 1460 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:142.4,142.18 1 1461 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:148.4,148.20 1 1440 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:156.4,157.16 2 1439 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:163.4,163.57 1 1440 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:168.4,168.23 1 1439 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:175.4,175.13 1 1439 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:183.4,183.23 1 1439 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:137.21,141.5 3 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:142.18,146.5 3 21 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:148.20,149.58 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:149.58,151.6 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:151.11,153.6 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:157.16,158.67 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:158.67,160.6 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:163.57,165.5 1 1440 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:168.23,170.5 1 1439 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:170.10,172.5 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:175.13,176.24 1 40 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:176.24,178.6 1 40 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:178.11,180.6 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:183.23,185.5 1 1439 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:185.10,187.5 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:190.6,191.10 1 21 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:192.28,193.13 1 21 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:201.17,203.25 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:194.24,196.30 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:197.22,199.32 1 21 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:213.69,218.27 4 22 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:224.2,227.47 3 22 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:218.27,223.3 4 22 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:230.63,231.58 1 22 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:247.2,247.12 1 22 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:231.58,234.24 3 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:234.24,239.18 3 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:242.4,242.19 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:239.18,241.5 1 0 +github.com/Juniper/jtimon/subscribe_juniper_junos.go:242.19,244.5 1 0 +github.com/Juniper/jtimon/logs.go:9.35,10.13 1 2570 +github.com/Juniper/jtimon/logs.go:15.2,15.35 1 2571 +github.com/Juniper/jtimon/logs.go:10.13,13.3 2 0 +github.com/Juniper/jtimon/logs.go:15.35,17.3 1 412 +github.com/Juniper/jtimon/logs.go:20.26,21.32 1 22 +github.com/Juniper/jtimon/logs.go:21.32,22.39 1 22 +github.com/Juniper/jtimon/logs.go:25.3,26.31 2 22 +github.com/Juniper/jtimon/logs.go:22.39,24.4 1 22 +github.com/Juniper/jtimon/logs.go:29.26,30.13 1 28 +github.com/Juniper/jtimon/logs.go:34.2,37.12 3 28 +github.com/Juniper/jtimon/logs.go:50.2,50.16 1 28 +github.com/Juniper/jtimon/logs.go:30.13,32.3 1 0 +github.com/Juniper/jtimon/logs.go:37.12,39.17 2 0 +github.com/Juniper/jtimon/logs.go:39.17,41.4 1 0 +github.com/Juniper/jtimon/logs.go:42.8,42.23 1 28 +github.com/Juniper/jtimon/logs.go:42.23,45.17 3 24 +github.com/Juniper/jtimon/logs.go:45.17,47.4 1 0 +github.com/Juniper/jtimon/logs.go:50.16,58.3 4 24 +github.com/Juniper/jtimon/main.go:43.13,45.12 2 0 +github.com/Juniper/jtimon/main.go:51.2,51.11 1 0 +github.com/Juniper/jtimon/main.go:55.2,56.18 2 0 +github.com/Juniper/jtimon/main.go:60.2,60.16 1 0 +github.com/Juniper/jtimon/main.go:70.2,71.16 2 0 +github.com/Juniper/jtimon/main.go:76.2,80.37 4 0 +github.com/Juniper/jtimon/main.go:45.12,46.13 1 0 +github.com/Juniper/jtimon/main.go:46.13,49.4 2 0 +github.com/Juniper/jtimon/main.go:51.11,53.3 1 0 +github.com/Juniper/jtimon/main.go:56.18,58.3 1 0 +github.com/Juniper/jtimon/main.go:60.16,62.17 2 0 +github.com/Juniper/jtimon/main.go:67.3,67.9 1 0 +github.com/Juniper/jtimon/main.go:62.17,64.4 1 0 +github.com/Juniper/jtimon/main.go:64.9,66.4 1 0 +github.com/Juniper/jtimon/main.go:71.16,74.3 2 0 +github.com/Juniper/jtimon/multi_vendor.go:19.59,22.13 2 23 +github.com/Juniper/jtimon/multi_vendor.go:26.2,26.16 1 23 +github.com/Juniper/jtimon/multi_vendor.go:29.2,29.33 1 23 +github.com/Juniper/jtimon/multi_vendor.go:34.2,34.81 1 0 +github.com/Juniper/jtimon/multi_vendor.go:22.13,24.3 1 0 +github.com/Juniper/jtimon/multi_vendor.go:26.16,28.3 1 23 +github.com/Juniper/jtimon/multi_vendor.go:29.33,30.26 1 46 +github.com/Juniper/jtimon/multi_vendor.go:30.26,32.4 1 23 +github.com/Juniper/jtimon/multi_vendor.go:37.32,45.2 1 1 +github.com/Juniper/jtimon/multi_vendor.go:47.30,55.2 1 1 +github.com/Juniper/jtimon/multi_vendor.go:57.24,65.2 1 1 +github.com/Juniper/jtimon/prometheus_exporter.go:23.36,25.2 1 7132 +github.com/Juniper/jtimon/prometheus_exporter.go:41.44,46.2 1 1 +github.com/Juniper/jtimon/prometheus_exporter.go:48.49,50.6 2 1 +github.com/Juniper/jtimon/prometheus_exporter.go:50.6,51.10 1 1824 +github.com/Juniper/jtimon/prometheus_exporter.go:52.20,55.17 3 1820 +github.com/Juniper/jtimon/prometheus_exporter.go:57.17,60.31 3 3 +github.com/Juniper/jtimon/prometheus_exporter.go:65.4,65.17 1 3 +github.com/Juniper/jtimon/prometheus_exporter.go:60.31,61.48 1 3640 +github.com/Juniper/jtimon/prometheus_exporter.go:61.48,63.6 1 1820 +github.com/Juniper/jtimon/prometheus_exporter.go:71.64,74.29 3 1 +github.com/Juniper/jtimon/prometheus_exporter.go:77.2,79.33 2 1 +github.com/Juniper/jtimon/prometheus_exporter.go:74.29,76.3 1 1820 +github.com/Juniper/jtimon/prometheus_exporter.go:79.33,85.3 1 1820 +github.com/Juniper/jtimon/prometheus_exporter.go:89.64,91.2 1 1 +github.com/Juniper/jtimon/prometheus_exporter.go:93.45,96.37 2 1822 +github.com/Juniper/jtimon/prometheus_exporter.go:100.2,105.27 4 1822 +github.com/Juniper/jtimon/prometheus_exporter.go:109.2,109.34 1 1822 +github.com/Juniper/jtimon/prometheus_exporter.go:96.37,98.3 1 5300 +github.com/Juniper/jtimon/prometheus_exporter.go:105.27,107.3 1 5300 +github.com/Juniper/jtimon/prometheus_exporter.go:112.62,118.30 4 40 +github.com/Juniper/jtimon/prometheus_exporter.go:118.30,119.10 1 1980 +github.com/Juniper/jtimon/prometheus_exporter.go:127.3,128.35 2 1940 +github.com/Juniper/jtimon/prometheus_exporter.go:132.3,137.25 4 1940 +github.com/Juniper/jtimon/prometheus_exporter.go:163.3,169.26 2 1820 +github.com/Juniper/jtimon/prometheus_exporter.go:173.3,174.24 2 1820 +github.com/Juniper/jtimon/prometheus_exporter.go:120.30,122.12 2 40 +github.com/Juniper/jtimon/prometheus_exporter.go:123.39,124.12 1 0 +github.com/Juniper/jtimon/prometheus_exporter.go:128.35,130.4 1 1940 +github.com/Juniper/jtimon/prometheus_exporter.go:138.36,139.35 1 0 +github.com/Juniper/jtimon/prometheus_exporter.go:140.33,141.41 1 0 +github.com/Juniper/jtimon/prometheus_exporter.go:142.34,143.42 1 1820 +github.com/Juniper/jtimon/prometheus_exporter.go:144.34,145.42 1 0 +github.com/Juniper/jtimon/prometheus_exporter.go:146.34,148.17 2 0 +github.com/Juniper/jtimon/prometheus_exporter.go:153.33,155.18 2 120 +github.com/Juniper/jtimon/prometheus_exporter.go:158.4,158.25 1 0 +github.com/Juniper/jtimon/prometheus_exporter.go:159.11,160.12 1 0 +github.com/Juniper/jtimon/prometheus_exporter.go:148.17,150.5 1 0 +github.com/Juniper/jtimon/prometheus_exporter.go:150.10,152.5 1 0 +github.com/Juniper/jtimon/prometheus_exporter.go:155.18,156.13 1 120 +github.com/Juniper/jtimon/prometheus_exporter.go:169.26,171.4 1 5290 +github.com/Juniper/jtimon/prometheus_exporter.go:178.34,183.12 3 1 +github.com/Juniper/jtimon/prometheus_exporter.go:191.2,191.10 1 1 +github.com/Juniper/jtimon/prometheus_exporter.go:183.12,189.3 4 1 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:36.96,41.2 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:44.54,46.2 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:48.50,49.58 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:55.2,55.12 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:49.58,54.3 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:71.42,72.15 1 59 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:75.2,75.19 1 41 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:72.15,74.3 1 18 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:79.26,81.2 1 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:83.34,85.32 2 3 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:90.2,90.28 1 3 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:85.32,86.30 1 6 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:86.30,88.4 1 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:93.64,96.22 2 59 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:96.22,97.33 1 40 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:97.33,99.4 1 52 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:103.70,105.16 2 22 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:109.2,111.16 3 22 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:114.2,114.18 1 22 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:105.16,107.3 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:111.16,113.3 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:117.53,120.46 2 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:130.2,130.68 1 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:134.2,134.19 1 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:120.46,123.17 3 6 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:126.3,126.30 1 6 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:123.17,125.4 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:130.68,133.3 2 1 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:139.47,142.16 3 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:145.2,145.29 1 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:175.2,175.20 1 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:142.16,144.3 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:145.29,146.17 1 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:150.3,151.17 2 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:155.3,155.23 1 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:146.17,148.4 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:151.17,153.4 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:155.23,157.18 2 5 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:160.4,160.31 1 5 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:157.18,159.5 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:160.31,162.19 2 20 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:165.5,165.46 1 20 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:162.19,164.6 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:167.9,169.18 2 2 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:172.4,172.45 1 2 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:169.18,171.5 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:178.40,179.29 1 5 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:190.2,190.66 1 5 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:194.2,194.13 1 2 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:179.29,180.10 1 80 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:181.28,182.12 1 62 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:183.27,184.12 1 3 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:185.11,186.14 1 15 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:190.66,192.3 1 3 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:197.118,208.16 5 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:214.2,215.17 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:219.2,220.24 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:224.2,224.6 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:208.16,212.3 3 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:215.17,217.3 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:220.24,222.3 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:224.6,229.20 3 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:233.3,233.17 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:238.3,240.17 3 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:244.3,244.19 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:247.3,250.17 3 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:255.3,256.22 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:287.3,287.30 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:229.20,232.4 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:233.17,237.4 3 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:240.17,242.12 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:244.19,246.4 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:250.17,252.12 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:256.22,258.39 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:258.39,259.32 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:259.32,260.51 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:260.51,261.53 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:261.53,264.8 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:268.9,268.29 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:268.29,270.39 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:270.39,271.32 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:271.32,272.51 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:272.51,273.38 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:280.7,280.82 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:273.38,275.26 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:275.26,277.9 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:287.30,290.4 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:294.66,296.16 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:301.2,305.16 4 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:309.2,309.45 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:313.2,313.6 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:296.16,299.3 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:305.16,307.3 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:309.45,311.3 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:313.6,314.10 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:315.28,316.13 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:324.17,326.25 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:317.24,319.30 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:320.22,322.32 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:331.92,335.26 3 2538 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:340.2,340.10 1 2538 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:335.26,336.28 1 2490 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:336.28,337.9 1 2490 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:344.95,348.26 3 2658 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:353.2,353.10 1 2658 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:348.26,349.31 1 5220 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:349.31,350.9 1 2610 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:356.66,357.39 1 64044 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:358.45,359.51 1 9978 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:360.45,361.51 1 33312 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:362.45,363.51 1 20748 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:364.45,365.51 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:366.45,367.51 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:368.45,369.51 1 6 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:370.43,371.49 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:372.44,373.50 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:374.10,375.12 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:379.91,380.39 1 57466 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:381.45,382.32 1 3463 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:383.45,384.32 1 33241 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:385.45,386.17 1 20750 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:389.3,389.41 1 20749 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:390.45,391.32 1 1 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:392.45,393.32 1 1 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:394.45,395.32 1 7 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:396.43,397.30 1 1 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:398.44,399.31 1 1 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:400.10,401.12 1 1 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:386.17,388.4 1 1 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:405.70,407.31 2 4050 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:412.2,412.11 1 96 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:407.31,408.30 1 5418 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:408.30,410.4 1 3954 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:415.124,436.44 6 2538 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:468.2,468.19 1 2538 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:436.44,437.31 1 10674 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:464.3,464.15 1 10674 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:437.31,438.29 1 17442 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:438.29,442.14 4 9738 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:451.5,451.26 1 9738 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:461.5,461.10 1 9738 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:442.14,444.6 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:444.11,445.36 1 9738 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:445.36,446.18 1 19404 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:446.18,448.8 1 4050 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:451.26,460.6 5 4050 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:464.15,465.9 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:471.114,472.43 1 126 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:472.43,475.21 3 2538 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:478.3,478.64 1 2490 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:475.21,476.12 1 48 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:482.120,485.20 2 120 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:485.20,502.3 2 120 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:510.34,512.2 1 129024 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:514.108,518.26 3 5898 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:518.26,520.15 2 60744 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:535.3,535.28 1 60744 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:520.15,521.32 1 57750 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:521.32,522.26 1 84252 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:522.26,523.18 1 5418 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:530.6,530.24 1 5418 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:523.18,529.7 2 2634 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:536.12,540.31 3 57456 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:545.4,545.20 1 57456 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:551.4,551.20 1 57456 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:558.4,561.30 3 57456 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:564.4,566.22 3 57456 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:568.11,576.29 2 3288 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:579.4,579.62 1 3288 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:540.31,543.5 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:545.20,546.28 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:546.28,549.6 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:551.20,552.28 1 28728 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:552.28,555.6 2 28728 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:561.30,563.5 1 258048 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:576.29,578.5 1 3288 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:584.48,585.8 1 60090 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:593.2,593.41 1 60090 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:585.8,586.30 1 60090 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:586.30,588.19 2 273792 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:588.19,590.5 1 342 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:596.87,597.31 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:597.31,598.28 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:599.12,600.42 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:601.11,608.29 2 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:611.4,611.55 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:608.29,610.5 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:617.86,618.39 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:619.45,620.137 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:621.43,622.135 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:623.45,624.137 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:625.45,626.137 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:627.44,628.136 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:629.45,630.137 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:631.45,632.137 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:633.45,634.137 1 0 +github.com/Juniper/jtimon/subscribe_cisco_iosxr.go:635.10,635.10 0 0 +github.com/Juniper/jtimon/statshandler.go:27.94,29.2 1 21 +github.com/Juniper/jtimon/statshandler.go:31.92,33.2 1 22 +github.com/Juniper/jtimon/statshandler.go:35.75,36.18 1 42 +github.com/Juniper/jtimon/statshandler.go:37.24,37.24 0 21 +github.com/Juniper/jtimon/statshandler.go:38.22,38.22 0 21 +github.com/Juniper/jtimon/statshandler.go:39.10,39.10 0 0 +github.com/Juniper/jtimon/statshandler.go:43.73,47.18 3 1546 +github.com/Juniper/jtimon/statshandler.go:48.23,49.81 1 21 +github.com/Juniper/jtimon/statshandler.go:50.24,50.24 0 21 +github.com/Juniper/jtimon/statshandler.go:51.25,51.25 0 20 +github.com/Juniper/jtimon/statshandler.go:52.24,54.83 2 1439 +github.com/Juniper/jtimon/statshandler.go:55.24,55.24 0 0 +github.com/Juniper/jtimon/statshandler.go:56.18,56.18 0 22 +github.com/Juniper/jtimon/statshandler.go:57.10,57.10 0 22 +github.com/Juniper/jtimon/statshandler.go:61.75,62.20 1 1450 +github.com/Juniper/jtimon/statshandler.go:65.2,65.14 1 1440 +github.com/Juniper/jtimon/statshandler.go:69.2,69.22 1 1440 +github.com/Juniper/jtimon/statshandler.go:62.20,64.3 1 10 +github.com/Juniper/jtimon/statshandler.go:65.14,68.3 2 1438 +github.com/Juniper/jtimon/statshandler.go:72.61,73.20 1 70945 +github.com/Juniper/jtimon/statshandler.go:77.2,77.14 1 70945 +github.com/Juniper/jtimon/statshandler.go:81.2,81.49 1 71183 +github.com/Juniper/jtimon/statshandler.go:73.20,75.3 1 8 +github.com/Juniper/jtimon/statshandler.go:77.14,80.3 2 70949 +github.com/Juniper/jtimon/statshandler.go:84.32,85.20 1 28 +github.com/Juniper/jtimon/statshandler.go:88.2,89.17 2 24 +github.com/Juniper/jtimon/statshandler.go:93.2,94.6 2 21 +github.com/Juniper/jtimon/statshandler.go:85.20,87.3 1 4 +github.com/Juniper/jtimon/statshandler.go:89.17,91.3 1 3 +github.com/Juniper/jtimon/statshandler.go:94.6,101.30 4 2236 +github.com/Juniper/jtimon/statshandler.go:106.3,109.29 2 2218 +github.com/Juniper/jtimon/statshandler.go:115.3,122.14 4 2218 +github.com/Juniper/jtimon/statshandler.go:101.30,103.12 2 0 +github.com/Juniper/jtimon/statshandler.go:109.29,113.4 3 35 +github.com/Juniper/jtimon/statshandler.go:122.14,124.4 1 2217 +github.com/Juniper/jtimon/statshandler.go:128.31,129.20 1 22 +github.com/Juniper/jtimon/statshandler.go:133.2,142.36 8 22 +github.com/Juniper/jtimon/statshandler.go:146.2,147.38 2 22 +github.com/Juniper/jtimon/statshandler.go:129.20,131.3 1 0 +github.com/Juniper/jtimon/statshandler.go:142.36,144.3 1 22 +github.com/Juniper/jtimon/testutils.go:21.34,23.18 2 1 +github.com/Juniper/jtimon/testutils.go:35.2,35.12 1 1 +github.com/Juniper/jtimon/testutils.go:23.18,25.69 2 1 +github.com/Juniper/jtimon/testutils.go:28.3,28.71 1 1 +github.com/Juniper/jtimon/testutils.go:31.3,31.67 1 1 +github.com/Juniper/jtimon/testutils.go:25.69,27.4 1 0 +github.com/Juniper/jtimon/testutils.go:28.71,30.4 1 0 +github.com/Juniper/jtimon/testutils.go:31.67,33.4 1 0 +github.com/Juniper/jtimon/testutils.go:38.31,39.18 1 1 +github.com/Juniper/jtimon/testutils.go:39.18,40.27 1 1 +github.com/Juniper/jtimon/testutils.go:44.3,44.28 1 1 +github.com/Juniper/jtimon/testutils.go:48.3,48.26 1 1 +github.com/Juniper/jtimon/testutils.go:40.27,43.4 2 1 +github.com/Juniper/jtimon/testutils.go:44.28,47.4 2 1 +github.com/Juniper/jtimon/testutils.go:48.26,51.4 2 1 +github.com/Juniper/jtimon/testutils.go:55.48,57.26 2 1 +github.com/Juniper/jtimon/testutils.go:61.2,61.27 1 1 +github.com/Juniper/jtimon/testutils.go:57.26,60.3 2 1 +github.com/Juniper/jtimon/testutils.go:61.27,63.3 1 1 +github.com/Juniper/jtimon/testutils.go:66.111,69.18 2 73097 +github.com/Juniper/jtimon/testutils.go:84.2,86.22 3 4379 +github.com/Juniper/jtimon/testutils.go:89.2,90.25 2 4379 +github.com/Juniper/jtimon/testutils.go:94.2,99.24 4 4379 +github.com/Juniper/jtimon/testutils.go:106.2,107.25 2 4379 +github.com/Juniper/jtimon/testutils.go:111.2,112.10 2 4379 +github.com/Juniper/jtimon/testutils.go:70.22,71.26 1 0 +github.com/Juniper/jtimon/testutils.go:74.3,74.19 1 0 +github.com/Juniper/jtimon/testutils.go:75.22,76.26 1 73108 +github.com/Juniper/jtimon/testutils.go:79.3,79.19 1 4379 +github.com/Juniper/jtimon/testutils.go:80.10,81.9 1 0 +github.com/Juniper/jtimon/testutils.go:71.26,73.4 1 0 +github.com/Juniper/jtimon/testutils.go:76.26,78.4 1 68734 +github.com/Juniper/jtimon/testutils.go:86.22,88.3 1 17691 +github.com/Juniper/jtimon/testutils.go:90.25,93.3 2 17691 +github.com/Juniper/jtimon/testutils.go:99.24,101.21 1 4379 +github.com/Juniper/jtimon/testutils.go:104.3,104.25 1 4379 +github.com/Juniper/jtimon/testutils.go:101.21,102.12 1 0 +github.com/Juniper/jtimon/testutils.go:107.25,110.3 2 4379 +github.com/Juniper/jtimon/testutils.go:115.45,116.30 1 7 +github.com/Juniper/jtimon/testutils.go:122.2,122.74 1 7 +github.com/Juniper/jtimon/testutils.go:125.2,125.14 1 2 +github.com/Juniper/jtimon/testutils.go:116.30,117.25 1 3285 +github.com/Juniper/jtimon/testutils.go:120.3,120.11 1 2012 +github.com/Juniper/jtimon/testutils.go:117.25,119.4 1 1273 +github.com/Juniper/jtimon/testutils.go:122.74,124.3 1 5 +github.com/Juniper/jtimon/workers.go:46.71,55.2 1 9 +github.com/Juniper/jtimon/workers.go:58.34,60.2 1 4 +github.com/Juniper/jtimon/workers.go:63.37,65.2 1 4 +github.com/Juniper/jtimon/workers.go:71.36,73.25 2 9 +github.com/Juniper/jtimon/workers.go:76.2,77.28 2 9 +github.com/Juniper/jtimon/workers.go:73.25,75.3 1 17 +github.com/Juniper/jtimon/workers.go:81.28,83.2 1 8 +github.com/Juniper/jtimon/workers.go:86.48,87.29 1 9 +github.com/Juniper/jtimon/workers.go:87.29,89.3 1 17 +github.com/Juniper/jtimon/workers.go:95.46,97.25 2 5 +github.com/Juniper/jtimon/workers.go:97.25,98.16 1 10 +github.com/Juniper/jtimon/workers.go:98.16,101.4 2 5 +github.com/Juniper/jtimon/workers.go:106.44,107.67 1 22 +github.com/Juniper/jtimon/workers.go:107.67,110.3 2 22 +github.com/Juniper/jtimon/workers.go:113.53,114.20 1 9 +github.com/Juniper/jtimon/workers.go:114.20,120.26 3 5 +github.com/Juniper/jtimon/workers.go:120.26,122.4 1 7 +github.com/Juniper/jtimon/workers.go:126.43,132.77 1 4 +github.com/Juniper/jtimon/workers.go:132.77,133.49 1 4 +github.com/Juniper/jtimon/workers.go:147.3,147.29 1 4 +github.com/Juniper/jtimon/workers.go:133.49,134.31 1 8 +github.com/Juniper/jtimon/workers.go:134.31,140.5 2 3 +github.com/Juniper/jtimon/workers.go:140.10,144.5 2 5 +github.com/Juniper/jtimon/workers.go:147.29,148.62 1 13 +github.com/Juniper/jtimon/workers.go:148.62,153.5 3 5 +github.com/Juniper/jtimon/workers.go:155.8,157.3 1 0 +github.com/Juniper/jtimon/workers.go:160.58,165.6 4 9 +github.com/Juniper/jtimon/workers.go:165.6,166.10 1 13 +github.com/Juniper/jtimon/workers.go:167.23,168.13 1 8 +github.com/Juniper/jtimon/workers.go:185.32,188.22 2 0 +github.com/Juniper/jtimon/workers.go:169.24,171.30 1 4 +github.com/Juniper/jtimon/workers.go:179.22,180.28 1 4 +github.com/Juniper/jtimon/workers.go:183.5,183.11 1 4 +github.com/Juniper/jtimon/workers.go:171.30,173.6 1 4 +github.com/Juniper/jtimon/workers.go:173.11,175.29 1 0 +github.com/Juniper/jtimon/workers.go:175.29,177.7 1 0 +github.com/Juniper/jtimon/workers.go:180.28,182.6 1 10 +github.com/Juniper/jtimon/workers.go:200.88,216.18 7 22 +github.com/Juniper/jtimon/workers.go:220.2,221.16 2 22 +github.com/Juniper/jtimon/workers.go:225.2,225.59 1 22 +github.com/Juniper/jtimon/workers.go:228.2,228.12 1 22 +github.com/Juniper/jtimon/workers.go:274.2,274.15 1 22 +github.com/Juniper/jtimon/workers.go:216.18,218.3 1 0 +github.com/Juniper/jtimon/workers.go:221.16,224.3 2 0 +github.com/Juniper/jtimon/workers.go:225.59,227.3 1 1 +github.com/Juniper/jtimon/workers.go:228.12,229.7 1 22 +github.com/Juniper/jtimon/workers.go:229.7,230.11 1 47 +github.com/Juniper/jtimon/workers.go:231.27,232.16 1 47 +github.com/Juniper/jtimon/workers.go:263.20,269.11 5 0 +github.com/Juniper/jtimon/workers.go:233.23,237.22 3 22 +github.com/Juniper/jtimon/workers.go:240.6,244.12 4 22 +github.com/Juniper/jtimon/workers.go:245.25,253.20 3 3 +github.com/Juniper/jtimon/workers.go:260.26,261.30 1 22 +github.com/Juniper/jtimon/workers.go:237.22,239.7 1 0 +github.com/Juniper/jtimon/workers.go:253.20,255.7 1 0 +github.com/Juniper/jtimon/workers.go:255.12,255.24 1 3 +github.com/Juniper/jtimon/workers.go:255.24,257.7 1 0 +github.com/Juniper/jtimon/workers.go:257.12,259.7 1 3 +github.com/Juniper/jtimon/workers.go:277.47,284.36 2 22 +github.com/Juniper/jtimon/workers.go:290.2,291.16 2 23 +github.com/Juniper/jtimon/workers.go:297.2,297.62 1 23 +github.com/Juniper/jtimon/workers.go:303.2,304.22 2 23 +github.com/Juniper/jtimon/workers.go:311.2,311.9 1 23 +github.com/Juniper/jtimon/workers.go:326.2,326.11 1 22 +github.com/Juniper/jtimon/workers.go:331.2,332.16 2 22 +github.com/Juniper/jtimon/workers.go:341.2,341.31 1 22 +github.com/Juniper/jtimon/workers.go:356.2,356.29 1 22 +github.com/Juniper/jtimon/workers.go:359.2,366.14 5 22 +github.com/Juniper/jtimon/workers.go:284.36,286.3 1 0 +github.com/Juniper/jtimon/workers.go:291.16,295.15 4 0 +github.com/Juniper/jtimon/workers.go:297.62,301.3 3 0 +github.com/Juniper/jtimon/workers.go:304.22,308.3 3 0 +github.com/Juniper/jtimon/workers.go:312.27,313.12 1 1 +github.com/Juniper/jtimon/workers.go:322.10,322.10 0 22 +github.com/Juniper/jtimon/workers.go:314.21,318.10 3 1 +github.com/Juniper/jtimon/workers.go:326.11,328.3 1 0 +github.com/Juniper/jtimon/workers.go:328.8,330.3 1 22 +github.com/Juniper/jtimon/workers.go:332.16,336.15 4 0 +github.com/Juniper/jtimon/workers.go:341.31,342.59 1 22 +github.com/Juniper/jtimon/workers.go:342.59,347.38 5 0 +github.com/Juniper/jtimon/workers.go:352.4,352.16 1 0 +github.com/Juniper/jtimon/workers.go:347.38,349.5 1 0 +github.com/Juniper/jtimon/workers.go:349.10,351.5 1 0 +github.com/Juniper/jtimon/workers.go:356.29,357.92 1 0 +github.com/Juniper/jtimon/workers.go:367.26,370.37 3 0 +github.com/Juniper/jtimon/workers.go:375.3,375.15 1 0 +github.com/Juniper/jtimon/workers.go:376.29,379.14 3 0 +github.com/Juniper/jtimon/workers.go:382.3,382.15 1 0 +github.com/Juniper/jtimon/workers.go:383.22,387.37 4 1 +github.com/Juniper/jtimon/workers.go:392.3,392.15 1 1 +github.com/Juniper/jtimon/workers.go:393.28,396.9 3 21 +github.com/Juniper/jtimon/workers.go:370.37,372.4 1 0 +github.com/Juniper/jtimon/workers.go:372.9,374.4 1 0 +github.com/Juniper/jtimon/workers.go:379.14,381.4 1 0 +github.com/Juniper/jtimon/workers.go:387.37,389.4 1 0 +github.com/Juniper/jtimon/workers.go:389.9,391.4 1 1 +github.com/Juniper/jtimon/config.go:94.67,98.2 2 13 +github.com/Juniper/jtimon/config.go:101.51,105.2 2 37 +github.com/Juniper/jtimon/config.go:107.37,109.25 1 33 +github.com/Juniper/jtimon/config.go:112.2,112.39 1 33 +github.com/Juniper/jtimon/config.go:115.2,115.34 1 33 +github.com/Juniper/jtimon/config.go:118.2,118.36 1 33 +github.com/Juniper/jtimon/config.go:121.2,121.45 1 33 +github.com/Juniper/jtimon/config.go:109.25,111.3 1 33 +github.com/Juniper/jtimon/config.go:112.39,114.3 1 33 +github.com/Juniper/jtimon/config.go:115.34,117.3 1 33 +github.com/Juniper/jtimon/config.go:118.36,120.3 1 33 +github.com/Juniper/jtimon/config.go:121.45,123.3 1 33 +github.com/Juniper/jtimon/config.go:127.67,131.16 3 13 +github.com/Juniper/jtimon/config.go:135.2,135.59 1 12 +github.com/Juniper/jtimon/config.go:139.2,139.28 1 11 +github.com/Juniper/jtimon/config.go:131.16,133.3 1 1 +github.com/Juniper/jtimon/config.go:135.59,137.3 1 1 +github.com/Juniper/jtimon/config.go:143.45,147.16 3 37 +github.com/Juniper/jtimon/config.go:150.2,150.51 1 35 +github.com/Juniper/jtimon/config.go:154.2,156.50 2 33 +github.com/Juniper/jtimon/config.go:160.2,160.20 1 33 +github.com/Juniper/jtimon/config.go:147.16,149.3 1 2 +github.com/Juniper/jtimon/config.go:150.51,152.3 1 2 +github.com/Juniper/jtimon/config.go:156.50,158.3 1 0 +github.com/Juniper/jtimon/config.go:164.52,166.16 2 35 +github.com/Juniper/jtimon/config.go:169.2,169.23 1 35 +github.com/Juniper/jtimon/config.go:166.16,168.3 1 0 +github.com/Juniper/jtimon/config.go:174.38,181.59 4 1 +github.com/Juniper/jtimon/config.go:186.2,186.76 1 0 +github.com/Juniper/jtimon/config.go:181.59,182.67 1 1 +github.com/Juniper/jtimon/config.go:182.67,184.4 1 1 +github.com/Juniper/jtimon/config.go:190.40,192.2 1 72816 +github.com/Juniper/jtimon/config.go:195.66,196.27 1 9 +github.com/Juniper/jtimon/config.go:212.2,212.12 1 9 +github.com/Juniper/jtimon/config.go:196.27,198.17 2 6 +github.com/Juniper/jtimon/config.go:201.3,202.13 2 6 +github.com/Juniper/jtimon/config.go:205.3,205.38 1 6 +github.com/Juniper/jtimon/config.go:198.17,200.4 1 0 +github.com/Juniper/jtimon/config.go:202.13,204.4 1 0 +github.com/Juniper/jtimon/config.go:206.8,208.13 2 3 +github.com/Juniper/jtimon/config.go:208.13,210.4 1 0 +github.com/Juniper/jtimon/config.go:216.64,219.37 2 31 +github.com/Juniper/jtimon/config.go:233.2,233.22 1 31 +github.com/Juniper/jtimon/config.go:219.37,227.17 7 0 +github.com/Juniper/jtimon/config.go:231.3,231.20 1 0 +github.com/Juniper/jtimon/config.go:227.17,230.4 2 0 +github.com/Juniper/jtimon/config.go:236.52,238.9 2 3 +github.com/Juniper/jtimon/config.go:267.2,267.46 1 3 +github.com/Juniper/jtimon/config.go:270.2,270.42 1 3 +github.com/Juniper/jtimon/config.go:273.2,273.48 1 3 +github.com/Juniper/jtimon/config.go:276.2,276.48 1 3 +github.com/Juniper/jtimon/config.go:280.2,280.14 1 3 +github.com/Juniper/jtimon/config.go:239.28,240.14 1 0 +github.com/Juniper/jtimon/config.go:241.28,242.14 1 0 +github.com/Juniper/jtimon/config.go:243.28,244.14 1 0 +github.com/Juniper/jtimon/config.go:245.36,246.14 1 0 +github.com/Juniper/jtimon/config.go:247.26,248.14 1 0 +github.com/Juniper/jtimon/config.go:249.30,250.14 1 0 +github.com/Juniper/jtimon/config.go:251.26,252.14 1 0 +github.com/Juniper/jtimon/config.go:253.28,254.14 1 0 +github.com/Juniper/jtimon/config.go:255.54,256.14 1 0 +github.com/Juniper/jtimon/config.go:257.34,258.14 1 0 +github.com/Juniper/jtimon/config.go:259.36,260.14 1 0 +github.com/Juniper/jtimon/config.go:261.42,262.14 1 0 +github.com/Juniper/jtimon/config.go:263.54,264.14 1 0 +github.com/Juniper/jtimon/config.go:267.46,269.3 1 0 +github.com/Juniper/jtimon/config.go:270.42,272.3 1 0 +github.com/Juniper/jtimon/config.go:273.48,275.3 1 0 +github.com/Juniper/jtimon/config.go:276.48,278.3 1 0 +github.com/Juniper/jtimon/config.go:284.73,288.16 2 3 +github.com/Juniper/jtimon/config.go:291.2,297.19 4 3 +github.com/Juniper/jtimon/config.go:317.2,317.12 1 3 +github.com/Juniper/jtimon/config.go:288.16,290.3 1 0 +github.com/Juniper/jtimon/config.go:297.19,300.17 3 0 +github.com/Juniper/jtimon/config.go:304.3,309.21 6 0 +github.com/Juniper/jtimon/config.go:300.17,302.4 1 0 +github.com/Juniper/jtimon/config.go:309.21,312.4 2 0 +github.com/Juniper/jtimon/config.go:313.8,315.3 1 3 +github.com/Juniper/jtimon/config.go:321.61,325.16 3 31 +github.com/Juniper/jtimon/config.go:330.2,330.10 1 31 +github.com/Juniper/jtimon/config.go:360.2,360.12 1 31 +github.com/Juniper/jtimon/config.go:325.16,328.3 2 0 +github.com/Juniper/jtimon/config.go:330.10,334.17 4 28 +github.com/Juniper/jtimon/config.go:338.3,341.17 3 28 +github.com/Juniper/jtimon/config.go:344.3,351.41 5 28 +github.com/Juniper/jtimon/config.go:334.17,336.4 1 0 +github.com/Juniper/jtimon/config.go:341.17,343.4 1 0 +github.com/Juniper/jtimon/config.go:351.41,353.4 1 0 +github.com/Juniper/jtimon/config.go:354.8,356.17 2 3 +github.com/Juniper/jtimon/config.go:356.17,358.4 1 0 +github.com/Juniper/jtimon/config.go:364.50,365.25 1 16 +github.com/Juniper/jtimon/config.go:370.2,370.14 1 7 +github.com/Juniper/jtimon/config.go:365.25,366.13 1 29 +github.com/Juniper/jtimon/config.go:366.13,368.4 1 9 +github.com/Juniper/jtimon/influx.go:55.96,61.2 1 57456 +github.com/Juniper/jtimon/influx.go:63.44,64.40 1 57456 +github.com/Juniper/jtimon/influx.go:64.40,66.3 1 28728 +github.com/Juniper/jtimon/influx.go:69.35,78.12 7 4 +github.com/Juniper/jtimon/influx.go:78.12,79.22 1 4 +github.com/Juniper/jtimon/influx.go:79.22,81.14 2 439 +github.com/Juniper/jtimon/influx.go:81.14,85.28 4 4 +github.com/Juniper/jtimon/influx.go:172.5,172.24 1 4 +github.com/Juniper/jtimon/influx.go:179.5,179.24 1 4 +github.com/Juniper/jtimon/influx.go:85.28,89.92 2 28728 +github.com/Juniper/jtimon/influx.go:100.6,100.26 1 28728 +github.com/Juniper/jtimon/influx.go:89.92,91.15 2 0 +github.com/Juniper/jtimon/influx.go:92.12,94.21 2 28728 +github.com/Juniper/jtimon/influx.go:94.21,96.16 2 0 +github.com/Juniper/jtimon/influx.go:100.26,102.47 2 4 +github.com/Juniper/jtimon/influx.go:108.7,110.21 3 4 +github.com/Juniper/jtimon/influx.go:114.7,114.21 1 4 +github.com/Juniper/jtimon/influx.go:102.47,104.8 1 4 +github.com/Juniper/jtimon/influx.go:104.13,106.8 1 0 +github.com/Juniper/jtimon/influx.go:110.21,112.16 2 0 +github.com/Juniper/jtimon/influx.go:115.12,119.13 3 28724 +github.com/Juniper/jtimon/influx.go:132.7,132.28 1 28724 +github.com/Juniper/jtimon/influx.go:119.13,124.33 1 26215 +github.com/Juniper/jtimon/influx.go:124.33,126.36 2 26215 +github.com/Juniper/jtimon/influx.go:126.36,128.15 2 45 +github.com/Juniper/jtimon/influx.go:132.28,136.22 3 26170 +github.com/Juniper/jtimon/influx.go:141.8,141.33 1 26170 +github.com/Juniper/jtimon/influx.go:144.8,145.22 2 26170 +github.com/Juniper/jtimon/influx.go:149.8,149.22 1 26170 +github.com/Juniper/jtimon/influx.go:136.22,138.17 2 0 +github.com/Juniper/jtimon/influx.go:141.33,143.9 1 303230 +github.com/Juniper/jtimon/influx.go:145.22,147.17 2 0 +github.com/Juniper/jtimon/influx.go:150.13,155.48 2 2554 +github.com/Juniper/jtimon/influx.go:160.8,162.22 3 2554 +github.com/Juniper/jtimon/influx.go:166.8,167.22 2 2554 +github.com/Juniper/jtimon/influx.go:155.48,157.9 1 2554 +github.com/Juniper/jtimon/influx.go:157.14,159.9 1 0 +github.com/Juniper/jtimon/influx.go:162.22,164.17 2 0 +github.com/Juniper/jtimon/influx.go:172.24,174.72 1 4 +github.com/Juniper/jtimon/influx.go:174.72,176.7 1 4 +github.com/Juniper/jtimon/influx.go:179.24,186.20 2 4 +github.com/Juniper/jtimon/influx.go:191.6,191.31 1 4 +github.com/Juniper/jtimon/influx.go:210.6,210.69 1 4 +github.com/Juniper/jtimon/influx.go:186.20,189.7 2 0 +github.com/Juniper/jtimon/influx.go:191.31,193.34 2 2558 +github.com/Juniper/jtimon/influx.go:193.34,196.35 3 0 +github.com/Juniper/jtimon/influx.go:199.8,200.22 2 0 +github.com/Juniper/jtimon/influx.go:196.35,198.9 1 0 +github.com/Juniper/jtimon/influx.go:200.22,202.9 1 0 +github.com/Juniper/jtimon/influx.go:202.14,204.34 2 0 +github.com/Juniper/jtimon/influx.go:204.34,206.10 1 0 +github.com/Juniper/jtimon/influx.go:210.69,212.7 1 0 +github.com/Juniper/jtimon/influx.go:212.12,214.7 1 4 +github.com/Juniper/jtimon/influx.go:222.32,223.40 1 0 +github.com/Juniper/jtimon/influx.go:227.2,236.12 7 0 +github.com/Juniper/jtimon/influx.go:223.40,225.3 1 0 +github.com/Juniper/jtimon/influx.go:236.12,237.22 1 0 +github.com/Juniper/jtimon/influx.go:237.22,240.14 3 0 +github.com/Juniper/jtimon/influx.go:251.4,251.37 1 0 +github.com/Juniper/jtimon/influx.go:240.14,242.28 2 0 +github.com/Juniper/jtimon/influx.go:247.5,247.76 1 0 +github.com/Juniper/jtimon/influx.go:242.28,246.6 3 0 +github.com/Juniper/jtimon/influx.go:251.37,260.19 3 0 +github.com/Juniper/jtimon/influx.go:265.5,265.36 1 0 +github.com/Juniper/jtimon/influx.go:286.5,286.29 1 0 +github.com/Juniper/jtimon/influx.go:260.19,262.14 2 0 +github.com/Juniper/jtimon/influx.go:265.36,268.38 3 0 +github.com/Juniper/jtimon/influx.go:268.38,270.40 2 0 +github.com/Juniper/jtimon/influx.go:270.40,272.71 2 0 +github.com/Juniper/jtimon/influx.go:278.8,282.10 1 0 +github.com/Juniper/jtimon/influx.go:272.71,274.9 1 0 +github.com/Juniper/jtimon/influx.go:274.14,276.9 1 0 +github.com/Juniper/jtimon/influx.go:286.29,288.69 2 0 +github.com/Juniper/jtimon/influx.go:294.6,298.8 1 0 +github.com/Juniper/jtimon/influx.go:288.69,290.7 1 0 +github.com/Juniper/jtimon/influx.go:290.12,292.7 1 0 +github.com/Juniper/jtimon/influx.go:305.31,306.40 1 4 +github.com/Juniper/jtimon/influx.go:310.2,319.12 7 4 +github.com/Juniper/jtimon/influx.go:306.40,308.3 1 0 +github.com/Juniper/jtimon/influx.go:319.12,320.22 1 4 +github.com/Juniper/jtimon/influx.go:320.22,322.14 2 439 +github.com/Juniper/jtimon/influx.go:322.14,329.19 2 4 +github.com/Juniper/jtimon/influx.go:334.5,334.28 1 4 +github.com/Juniper/jtimon/influx.go:341.5,343.68 2 4 +github.com/Juniper/jtimon/influx.go:329.19,332.6 2 0 +github.com/Juniper/jtimon/influx.go:334.28,336.39 2 160 +github.com/Juniper/jtimon/influx.go:336.39,338.7 1 160 +github.com/Juniper/jtimon/influx.go:343.68,345.6 1 0 +github.com/Juniper/jtimon/influx.go:345.11,347.6 1 4 +github.com/Juniper/jtimon/influx.go:355.76,368.19 3 4004 +github.com/Juniper/jtimon/influx.go:391.2,391.22 1 4005 +github.com/Juniper/jtimon/influx.go:368.19,369.28 1 4003 +github.com/Juniper/jtimon/influx.go:369.28,376.26 3 7425 +github.com/Juniper/jtimon/influx.go:386.4,387.43 2 7425 +github.com/Juniper/jtimon/influx.go:376.26,377.40 1 7426 +github.com/Juniper/jtimon/influx.go:377.40,383.6 3 7429 +github.com/Juniper/jtimon/influx.go:395.51,397.22 2 11 +github.com/Juniper/jtimon/influx.go:400.2,400.11 1 1 +github.com/Juniper/jtimon/influx.go:397.22,399.3 1 10 +github.com/Juniper/jtimon/influx.go:403.61,404.34 1 160 +github.com/Juniper/jtimon/influx.go:408.2,408.19 1 0 +github.com/Juniper/jtimon/influx.go:412.2,412.11 1 0 +github.com/Juniper/jtimon/influx.go:404.34,406.3 1 160 +github.com/Juniper/jtimon/influx.go:408.19,411.3 2 0 +github.com/Juniper/jtimon/influx.go:420.82,425.2 1 160 +github.com/Juniper/jtimon/influx.go:428.72,442.30 11 1456 +github.com/Juniper/jtimon/influx.go:547.2,547.19 1 1456 +github.com/Juniper/jtimon/influx.go:558.2,558.21 1 1456 +github.com/Juniper/jtimon/influx.go:442.30,445.10 2 74736 +github.com/Juniper/jtimon/influx.go:454.3,455.20 2 73533 +github.com/Juniper/jtimon/influx.go:468.3,468.18 1 73403 +github.com/Juniper/jtimon/influx.go:472.3,475.25 3 73401 +github.com/Juniper/jtimon/influx.go:505.3,505.19 1 73187 +github.com/Juniper/jtimon/influx.go:508.3,508.19 1 73224 +github.com/Juniper/jtimon/influx.go:512.3,512.41 1 73076 +github.com/Juniper/jtimon/influx.go:516.3,516.19 1 7760 +github.com/Juniper/jtimon/influx.go:446.30,449.12 3 2059 +github.com/Juniper/jtimon/influx.go:450.39,451.12 1 45 +github.com/Juniper/jtimon/influx.go:455.20,456.34 1 73209 +github.com/Juniper/jtimon/influx.go:456.34,459.5 2 0 +github.com/Juniper/jtimon/influx.go:459.10,463.5 3 73338 +github.com/Juniper/jtimon/influx.go:464.9,466.4 1 0 +github.com/Juniper/jtimon/influx.go:468.18,469.12 1 0 +github.com/Juniper/jtimon/influx.go:476.33,477.33 1 6405 +github.com/Juniper/jtimon/influx.go:478.36,482.26 4 0 +github.com/Juniper/jtimon/influx.go:483.33,484.42 1 9 +github.com/Juniper/jtimon/influx.go:485.34,486.37 1 66489 +github.com/Juniper/jtimon/influx.go:491.34,492.43 1 0 +github.com/Juniper/jtimon/influx.go:493.34,494.34 1 651 +github.com/Juniper/jtimon/influx.go:495.35,496.35 1 0 +github.com/Juniper/jtimon/influx.go:497.35,501.26 4 0 +github.com/Juniper/jtimon/influx.go:502.11,502.11 0 0 +github.com/Juniper/jtimon/influx.go:486.37,488.5 1 1044 +github.com/Juniper/jtimon/influx.go:488.10,490.5 1 65449 +github.com/Juniper/jtimon/influx.go:505.19,507.4 1 0 +github.com/Juniper/jtimon/influx.go:508.19,510.4 1 73239 +github.com/Juniper/jtimon/influx.go:512.41,513.12 1 65299 +github.com/Juniper/jtimon/influx.go:516.19,517.22 1 7760 +github.com/Juniper/jtimon/influx.go:517.22,520.11 3 7600 +github.com/Juniper/jtimon/influx.go:520.11,522.27 1 7600 +github.com/Juniper/jtimon/influx.go:522.27,524.7 1 7600 +github.com/Juniper/jtimon/influx.go:525.11,529.20 3 0 +github.com/Juniper/jtimon/influx.go:533.6,533.29 1 0 +github.com/Juniper/jtimon/influx.go:529.20,531.15 2 0 +github.com/Juniper/jtimon/influx.go:535.10,539.19 3 160 +github.com/Juniper/jtimon/influx.go:543.5,543.28 1 160 +github.com/Juniper/jtimon/influx.go:539.19,541.14 2 0 +github.com/Juniper/jtimon/influx.go:547.19,548.28 1 160 +github.com/Juniper/jtimon/influx.go:548.28,550.18 2 160 +github.com/Juniper/jtimon/influx.go:554.4,554.31 1 160 +github.com/Juniper/jtimon/influx.go:550.18,552.13 2 0 +github.com/Juniper/jtimon/influx.go:558.21,559.45 1 160 +github.com/Juniper/jtimon/influx.go:568.3,568.29 1 160 +github.com/Juniper/jtimon/influx.go:559.45,564.4 1 0 +github.com/Juniper/jtimon/influx.go:564.9,566.4 1 160 +github.com/Juniper/jtimon/influx.go:568.29,570.37 2 0 +github.com/Juniper/jtimon/influx.go:570.37,572.49 2 0 +github.com/Juniper/jtimon/influx.go:572.49,574.6 1 0 +github.com/Juniper/jtimon/influx.go:580.72,581.29 1 56 +github.com/Juniper/jtimon/influx.go:584.2,592.16 3 8 +github.com/Juniper/jtimon/influx.go:595.2,595.11 1 8 +github.com/Juniper/jtimon/influx.go:581.29,583.3 1 48 +github.com/Juniper/jtimon/influx.go:592.16,594.3 1 0 +github.com/Juniper/jtimon/influx.go:598.91,603.48 2 4 +github.com/Juniper/jtimon/influx.go:611.2,611.17 1 4 +github.com/Juniper/jtimon/influx.go:603.48,604.30 1 4 +github.com/Juniper/jtimon/influx.go:607.3,607.25 1 4 +github.com/Juniper/jtimon/influx.go:604.30,606.4 1 0 +github.com/Juniper/jtimon/influx.go:608.8,610.3 1 0 +github.com/Juniper/jtimon/influx.go:614.44,616.2 1 4 +github.com/Juniper/jtimon/influx.go:618.29,624.41 4 28 +github.com/Juniper/jtimon/influx.go:637.2,641.41 5 28 +github.com/Juniper/jtimon/influx.go:651.2,651.14 1 28 +github.com/Juniper/jtimon/influx.go:624.41,625.26 1 4 +github.com/Juniper/jtimon/influx.go:631.3,632.17 2 4 +github.com/Juniper/jtimon/influx.go:625.26,627.18 2 0 +github.com/Juniper/jtimon/influx.go:627.18,629.5 1 0 +github.com/Juniper/jtimon/influx.go:632.17,634.4 1 0 +github.com/Juniper/jtimon/influx.go:641.41,642.37 1 4 +github.com/Juniper/jtimon/influx.go:647.3,648.57 2 4 +github.com/Juniper/jtimon/influx.go:642.37,644.4 1 0 +github.com/Juniper/jtimon/influx.go:644.9,646.4 1 4 +github.com/Juniper/jtimon/influx.go:651.14,653.3 1 4 +github.com/Juniper/jtimon/influx.go:656.79,657.18 1 16 +github.com/Juniper/jtimon/influx.go:667.2,667.18 1 9 +github.com/Juniper/jtimon/influx.go:672.2,672.27 1 9 +github.com/Juniper/jtimon/influx.go:680.2,680.8 1 9 +github.com/Juniper/jtimon/influx.go:657.18,659.29 2 7 +github.com/Juniper/jtimon/influx.go:664.3,664.9 1 7 +github.com/Juniper/jtimon/influx.go:659.29,661.4 1 0 +github.com/Juniper/jtimon/influx.go:661.9,661.37 1 7 +github.com/Juniper/jtimon/influx.go:661.37,663.4 1 0 +github.com/Juniper/jtimon/influx.go:667.18,670.3 2 0 +github.com/Juniper/jtimon/influx.go:672.27,674.3 1 0 +github.com/Juniper/jtimon/influx.go:674.8,674.35 1 9 +github.com/Juniper/jtimon/influx.go:674.35,676.3 1 0 +github.com/Juniper/jtimon/influx.go:676.8,678.3 1 9 +github.com/Juniper/jtimon/kafka-publish.go:35.41,38.21 2 0 +github.com/Juniper/jtimon/kafka-publish.go:46.2,46.22 1 0 +github.com/Juniper/jtimon/kafka-publish.go:52.2,57.27 5 0 +github.com/Juniper/jtimon/kafka-publish.go:61.2,61.21 1 0 +github.com/Juniper/jtimon/kafka-publish.go:88.2,88.42 1 0 +github.com/Juniper/jtimon/kafka-publish.go:94.2,95.16 2 0 +github.com/Juniper/jtimon/kafka-publish.go:99.2,100.12 2 0 +github.com/Juniper/jtimon/kafka-publish.go:38.21,40.17 2 0 +github.com/Juniper/jtimon/kafka-publish.go:43.3,43.22 1 0 +github.com/Juniper/jtimon/kafka-publish.go:40.17,42.4 1 0 +github.com/Juniper/jtimon/kafka-publish.go:46.22,48.3 1 0 +github.com/Juniper/jtimon/kafka-publish.go:48.8,50.3 1 0 +github.com/Juniper/jtimon/kafka-publish.go:57.27,59.3 1 0 +github.com/Juniper/jtimon/kafka-publish.go:61.21,67.20 2 0 +github.com/Juniper/jtimon/kafka-publish.go:75.3,75.40 1 0 +github.com/Juniper/jtimon/kafka-publish.go:82.3,82.23 1 0 +github.com/Juniper/jtimon/kafka-publish.go:67.20,69.18 2 0 +github.com/Juniper/jtimon/kafka-publish.go:72.4,72.28 1 0 +github.com/Juniper/jtimon/kafka-publish.go:69.18,71.5 1 0 +github.com/Juniper/jtimon/kafka-publish.go:75.40,77.18 2 0 +github.com/Juniper/jtimon/kafka-publish.go:77.18,79.5 1 0 +github.com/Juniper/jtimon/kafka-publish.go:82.23,85.4 2 0 +github.com/Juniper/jtimon/kafka-publish.go:88.42,92.3 3 0 +github.com/Juniper/jtimon/kafka-publish.go:95.16,97.3 1 0 +github.com/Juniper/jtimon/kafka-publish.go:104.34,106.22 2 28 +github.com/Juniper/jtimon/kafka-publish.go:110.2,110.48 1 0 +github.com/Juniper/jtimon/kafka-publish.go:114.2,114.12 1 0 +github.com/Juniper/jtimon/kafka-publish.go:106.22,108.3 1 28 +github.com/Juniper/jtimon/kafka-publish.go:110.48,112.3 1 0 +github.com/Juniper/jtimon/kafka-publish.go:117.74,118.67 1 1439 +github.com/Juniper/jtimon/kafka-publish.go:122.2,123.16 2 0 +github.com/Juniper/jtimon/kafka-publish.go:127.2,128.35 2 0 +github.com/Juniper/jtimon/kafka-publish.go:131.2,136.47 3 0 +github.com/Juniper/jtimon/kafka-publish.go:118.67,120.3 1 1439 +github.com/Juniper/jtimon/kafka-publish.go:123.16,125.3 1 0 +github.com/Juniper/jtimon/kafka-publish.go:128.35,130.3 1 0 +github.com/Juniper/jtimon/kafka-publish.go:136.47,138.3 1 0 +github.com/Juniper/jtimon/kafka-publish.go:141.62,143.37 2 0 +github.com/Juniper/jtimon/kafka-publish.go:155.2,155.18 1 0 +github.com/Juniper/jtimon/kafka-publish.go:143.37,145.17 2 0 +github.com/Juniper/jtimon/kafka-publish.go:149.3,150.10 2 0 +github.com/Juniper/jtimon/kafka-publish.go:145.17,148.4 1 0 +github.com/Juniper/jtimon/kafka-publish.go:150.10,153.4 1 0 +github.com/Juniper/jtimon/kafka-publish.go:158.67,160.16 2 0 +github.com/Juniper/jtimon/kafka-publish.go:165.2,167.12 3 0 +github.com/Juniper/jtimon/kafka-publish.go:160.16,163.3 1 0 diff --git a/defaults.go b/defaults.go new file mode 100644 index 0000000..461c7c3 --- /dev/null +++ b/defaults.go @@ -0,0 +1,20 @@ +package main + +const ( + // DefaultGRPCWindowSize is the default GRPC Window Size + DefaultGRPCWindowSize = 1048576 + + // DefaultIDBBatchSize to use if user has not provided in the config + DefaultIDBBatchSize = 1024 * 100 + //DefaultIDBBatchFreq is 2 seconds + DefaultIDBBatchFreq = 2000 + //DefaultIDBAccumulatorFreq is 2 seconds + DefaultIDBAccumulatorFreq = 2000 + //DefaultIDBTimeout is 30 seconds + DefaultIDBTimeout = 30 + + // MatchExpressionXpath is for the pattern matching the xpath and key-value pairs + MatchExpressionXpath = "\\/([^\\/]*)\\[(.*?)+?(?:\\])" + // MatchExpressionKey is for pattern matching the single and multiple key value pairs + MatchExpressionKey = "([A-Za-z0-9-/]*)=(.*?)?(?: and |$)+" +) diff --git a/gnmi/gnmi/gnmi.pb.go b/gnmi/gnmi/gnmi.pb.go new file mode 100644 index 0000000..f233190 --- /dev/null +++ b/gnmi/gnmi/gnmi.pb.go @@ -0,0 +1,2291 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: gnmi.proto + +/* +Package gnmi is a generated protocol buffer package. + +Package gNMI defines a service specification for the gRPC Network Management +Interface. This interface is defined to be a standard interface via which +a network management system ("client") can subscribe to state values, +retrieve snapshots of state information, and manipulate the state of a data +tree supported by a device ("target"). + +This document references the gNMI Specification which can be found at +http://github.com/openconfig/reference/blob/master/rpc/gnmi + +It is generated from these files: + gnmi.proto + +It has these top-level messages: + Notification + Update + TypedValue + Path + PathElem + Value + Error + Decimal64 + ScalarArray + SubscribeRequest + Poll + SubscribeResponse + SubscriptionList + Subscription + QOSMarking + Alias + AliasList + SetRequest + SetResponse + UpdateResult + GetRequest + GetResponse + CapabilityRequest + CapabilityResponse + ModelData +*/ +package gnmi + +import ( + fmt "fmt" + + proto "github.com/golang/protobuf/proto" + + math "math" + + google_protobuf "github.com/golang/protobuf/ptypes/any" + + google_protobuf1 "github.com/golang/protobuf/protoc-gen-go/descriptor" + + gnmi_ext "github.com/Juniper/jtimon/gnmi/gnmi_ext" + + context "golang.org/x/net/context" + + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Encoding defines the value encoding formats that are supported by the gNMI +// protocol. These encodings are used by both the client (when sending Set +// messages to modify the state of the target) and the target when serializing +// data to be returned to the client (in both Subscribe and Get RPCs). +// Reference: gNMI Specification Section 2.3 +type Encoding int32 + +const ( + Encoding_JSON Encoding = 0 + Encoding_BYTES Encoding = 1 + Encoding_PROTO Encoding = 2 + Encoding_ASCII Encoding = 3 + Encoding_JSON_IETF Encoding = 4 +) + +var Encoding_name = map[int32]string{ + 0: "JSON", + 1: "BYTES", + 2: "PROTO", + 3: "ASCII", + 4: "JSON_IETF", +} +var Encoding_value = map[string]int32{ + "JSON": 0, + "BYTES": 1, + "PROTO": 2, + "ASCII": 3, + "JSON_IETF": 4, +} + +func (x Encoding) String() string { + return proto.EnumName(Encoding_name, int32(x)) +} +func (Encoding) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +// SubscriptionMode is the mode of the subscription, specifying how the +// target must return values in a subscription. +// Reference: gNMI Specification Section 3.5.1.3 +type SubscriptionMode int32 + +const ( + SubscriptionMode_TARGET_DEFINED SubscriptionMode = 0 + SubscriptionMode_ON_CHANGE SubscriptionMode = 1 + SubscriptionMode_SAMPLE SubscriptionMode = 2 +) + +var SubscriptionMode_name = map[int32]string{ + 0: "TARGET_DEFINED", + 1: "ON_CHANGE", + 2: "SAMPLE", +} +var SubscriptionMode_value = map[string]int32{ + "TARGET_DEFINED": 0, + "ON_CHANGE": 1, + "SAMPLE": 2, +} + +func (x SubscriptionMode) String() string { + return proto.EnumName(SubscriptionMode_name, int32(x)) +} +func (SubscriptionMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +// Mode of the subscription. +type SubscriptionList_Mode int32 + +const ( + SubscriptionList_STREAM SubscriptionList_Mode = 0 + SubscriptionList_ONCE SubscriptionList_Mode = 1 + SubscriptionList_POLL SubscriptionList_Mode = 2 +) + +var SubscriptionList_Mode_name = map[int32]string{ + 0: "STREAM", + 1: "ONCE", + 2: "POLL", +} +var SubscriptionList_Mode_value = map[string]int32{ + "STREAM": 0, + "ONCE": 1, + "POLL": 2, +} + +func (x SubscriptionList_Mode) String() string { + return proto.EnumName(SubscriptionList_Mode_name, int32(x)) +} +func (SubscriptionList_Mode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 0} } + +// The operation that was associated with the Path specified. +type UpdateResult_Operation int32 + +const ( + UpdateResult_INVALID UpdateResult_Operation = 0 + UpdateResult_DELETE UpdateResult_Operation = 1 + UpdateResult_REPLACE UpdateResult_Operation = 2 + UpdateResult_UPDATE UpdateResult_Operation = 3 +) + +var UpdateResult_Operation_name = map[int32]string{ + 0: "INVALID", + 1: "DELETE", + 2: "REPLACE", + 3: "UPDATE", +} +var UpdateResult_Operation_value = map[string]int32{ + "INVALID": 0, + "DELETE": 1, + "REPLACE": 2, + "UPDATE": 3, +} + +func (x UpdateResult_Operation) String() string { + return proto.EnumName(UpdateResult_Operation_name, int32(x)) +} +func (UpdateResult_Operation) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} } + +// Type of elements within the data tree. +type GetRequest_DataType int32 + +const ( + GetRequest_ALL GetRequest_DataType = 0 + GetRequest_CONFIG GetRequest_DataType = 1 + GetRequest_STATE GetRequest_DataType = 2 + // Data elements marked in the schema as operational. This refers to data + // elements whose value relates to the state of processes or interactions + // running on the device. + GetRequest_OPERATIONAL GetRequest_DataType = 3 +) + +var GetRequest_DataType_name = map[int32]string{ + 0: "ALL", + 1: "CONFIG", + 2: "STATE", + 3: "OPERATIONAL", +} +var GetRequest_DataType_value = map[string]int32{ + "ALL": 0, + "CONFIG": 1, + "STATE": 2, + "OPERATIONAL": 3, +} + +func (x GetRequest_DataType) String() string { + return proto.EnumName(GetRequest_DataType_name, int32(x)) +} +func (GetRequest_DataType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{20, 0} } + +// Notification is a re-usable message that is used to encode data from the +// target to the client. A Notification carries two types of changes to the data +// tree: +// - Deleted values (delete) - a set of paths that have been removed from the +// data tree. +// - Updated values (update) - a set of path-value pairs indicating the path +// whose value has changed in the data tree. +// Reference: gNMI Specification Section 2.1 +type Notification struct { + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"` + Prefix *Path `protobuf:"bytes,2,opt,name=prefix" json:"prefix,omitempty"` + // An alias for the path specified in the prefix field. + // Reference: gNMI Specification Section 2.4.2 + Alias string `protobuf:"bytes,3,opt,name=alias" json:"alias,omitempty"` + Update []*Update `protobuf:"bytes,4,rep,name=update" json:"update,omitempty"` + Delete []*Path `protobuf:"bytes,5,rep,name=delete" json:"delete,omitempty"` + // This notification contains a set of paths that are always updated together + // referenced by a globally unique prefix. + Atomic bool `protobuf:"varint,6,opt,name=atomic" json:"atomic,omitempty"` +} + +func (m *Notification) Reset() { *m = Notification{} } +func (m *Notification) String() string { return proto.CompactTextString(m) } +func (*Notification) ProtoMessage() {} +func (*Notification) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *Notification) GetTimestamp() int64 { + if m != nil { + return m.Timestamp + } + return 0 +} + +func (m *Notification) GetPrefix() *Path { + if m != nil { + return m.Prefix + } + return nil +} + +func (m *Notification) GetAlias() string { + if m != nil { + return m.Alias + } + return "" +} + +func (m *Notification) GetUpdate() []*Update { + if m != nil { + return m.Update + } + return nil +} + +func (m *Notification) GetDelete() []*Path { + if m != nil { + return m.Delete + } + return nil +} + +func (m *Notification) GetAtomic() bool { + if m != nil { + return m.Atomic + } + return false +} + +// Update is a re-usable message that is used to store a particular Path, +// Value pair. +// Reference: gNMI Specification Section 2.1 +type Update struct { + Path *Path `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"` + Value *Value `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` + Val *TypedValue `protobuf:"bytes,3,opt,name=val" json:"val,omitempty"` + Duplicates uint32 `protobuf:"varint,4,opt,name=duplicates" json:"duplicates,omitempty"` +} + +func (m *Update) Reset() { *m = Update{} } +func (m *Update) String() string { return proto.CompactTextString(m) } +func (*Update) ProtoMessage() {} +func (*Update) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +func (m *Update) GetPath() *Path { + if m != nil { + return m.Path + } + return nil +} + +func (m *Update) GetValue() *Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *Update) GetVal() *TypedValue { + if m != nil { + return m.Val + } + return nil +} + +func (m *Update) GetDuplicates() uint32 { + if m != nil { + return m.Duplicates + } + return 0 +} + +// TypedValue is used to encode a value being sent between the client and +// target (originated by either entity). +type TypedValue struct { + // One of the fields within the val oneof is populated with the value + // of the update. The type of the value being included in the Update + // determines which field should be populated. In the case that the + // encoding is a particular form of the base protobuf type, a specific + // field is used to store the value (e.g., json_val). + // + // Types that are valid to be assigned to Value: + // *TypedValue_StringVal + // *TypedValue_IntVal + // *TypedValue_UintVal + // *TypedValue_BoolVal + // *TypedValue_BytesVal + // *TypedValue_FloatVal + // *TypedValue_DecimalVal + // *TypedValue_LeaflistVal + // *TypedValue_AnyVal + // *TypedValue_JsonVal + // *TypedValue_JsonIetfVal + // *TypedValue_AsciiVal + // *TypedValue_ProtoBytes + Value isTypedValue_Value `protobuf_oneof:"value"` +} + +func (m *TypedValue) Reset() { *m = TypedValue{} } +func (m *TypedValue) String() string { return proto.CompactTextString(m) } +func (*TypedValue) ProtoMessage() {} +func (*TypedValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } + +type isTypedValue_Value interface{ isTypedValue_Value() } + +type TypedValue_StringVal struct { + StringVal string `protobuf:"bytes,1,opt,name=string_val,json=stringVal,oneof"` +} +type TypedValue_IntVal struct { + IntVal int64 `protobuf:"varint,2,opt,name=int_val,json=intVal,oneof"` +} +type TypedValue_UintVal struct { + UintVal uint64 `protobuf:"varint,3,opt,name=uint_val,json=uintVal,oneof"` +} +type TypedValue_BoolVal struct { + BoolVal bool `protobuf:"varint,4,opt,name=bool_val,json=boolVal,oneof"` +} +type TypedValue_BytesVal struct { + BytesVal []byte `protobuf:"bytes,5,opt,name=bytes_val,json=bytesVal,proto3,oneof"` +} +type TypedValue_FloatVal struct { + FloatVal float32 `protobuf:"fixed32,6,opt,name=float_val,json=floatVal,oneof"` +} +type TypedValue_DecimalVal struct { + DecimalVal *Decimal64 `protobuf:"bytes,7,opt,name=decimal_val,json=decimalVal,oneof"` +} +type TypedValue_LeaflistVal struct { + LeaflistVal *ScalarArray `protobuf:"bytes,8,opt,name=leaflist_val,json=leaflistVal,oneof"` +} +type TypedValue_AnyVal struct { + AnyVal *google_protobuf.Any `protobuf:"bytes,9,opt,name=any_val,json=anyVal,oneof"` +} +type TypedValue_JsonVal struct { + JsonVal []byte `protobuf:"bytes,10,opt,name=json_val,json=jsonVal,proto3,oneof"` +} +type TypedValue_JsonIetfVal struct { + JsonIetfVal []byte `protobuf:"bytes,11,opt,name=json_ietf_val,json=jsonIetfVal,proto3,oneof"` +} +type TypedValue_AsciiVal struct { + AsciiVal string `protobuf:"bytes,12,opt,name=ascii_val,json=asciiVal,oneof"` +} +type TypedValue_ProtoBytes struct { + ProtoBytes []byte `protobuf:"bytes,13,opt,name=proto_bytes,json=protoBytes,proto3,oneof"` +} + +func (*TypedValue_StringVal) isTypedValue_Value() {} +func (*TypedValue_IntVal) isTypedValue_Value() {} +func (*TypedValue_UintVal) isTypedValue_Value() {} +func (*TypedValue_BoolVal) isTypedValue_Value() {} +func (*TypedValue_BytesVal) isTypedValue_Value() {} +func (*TypedValue_FloatVal) isTypedValue_Value() {} +func (*TypedValue_DecimalVal) isTypedValue_Value() {} +func (*TypedValue_LeaflistVal) isTypedValue_Value() {} +func (*TypedValue_AnyVal) isTypedValue_Value() {} +func (*TypedValue_JsonVal) isTypedValue_Value() {} +func (*TypedValue_JsonIetfVal) isTypedValue_Value() {} +func (*TypedValue_AsciiVal) isTypedValue_Value() {} +func (*TypedValue_ProtoBytes) isTypedValue_Value() {} + +func (m *TypedValue) GetValue() isTypedValue_Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *TypedValue) GetStringVal() string { + if x, ok := m.GetValue().(*TypedValue_StringVal); ok { + return x.StringVal + } + return "" +} + +func (m *TypedValue) GetIntVal() int64 { + if x, ok := m.GetValue().(*TypedValue_IntVal); ok { + return x.IntVal + } + return 0 +} + +func (m *TypedValue) GetUintVal() uint64 { + if x, ok := m.GetValue().(*TypedValue_UintVal); ok { + return x.UintVal + } + return 0 +} + +func (m *TypedValue) GetBoolVal() bool { + if x, ok := m.GetValue().(*TypedValue_BoolVal); ok { + return x.BoolVal + } + return false +} + +func (m *TypedValue) GetBytesVal() []byte { + if x, ok := m.GetValue().(*TypedValue_BytesVal); ok { + return x.BytesVal + } + return nil +} + +func (m *TypedValue) GetFloatVal() float32 { + if x, ok := m.GetValue().(*TypedValue_FloatVal); ok { + return x.FloatVal + } + return 0 +} + +func (m *TypedValue) GetDecimalVal() *Decimal64 { + if x, ok := m.GetValue().(*TypedValue_DecimalVal); ok { + return x.DecimalVal + } + return nil +} + +func (m *TypedValue) GetLeaflistVal() *ScalarArray { + if x, ok := m.GetValue().(*TypedValue_LeaflistVal); ok { + return x.LeaflistVal + } + return nil +} + +func (m *TypedValue) GetAnyVal() *google_protobuf.Any { + if x, ok := m.GetValue().(*TypedValue_AnyVal); ok { + return x.AnyVal + } + return nil +} + +func (m *TypedValue) GetJsonVal() []byte { + if x, ok := m.GetValue().(*TypedValue_JsonVal); ok { + return x.JsonVal + } + return nil +} + +func (m *TypedValue) GetJsonIetfVal() []byte { + if x, ok := m.GetValue().(*TypedValue_JsonIetfVal); ok { + return x.JsonIetfVal + } + return nil +} + +func (m *TypedValue) GetAsciiVal() string { + if x, ok := m.GetValue().(*TypedValue_AsciiVal); ok { + return x.AsciiVal + } + return "" +} + +func (m *TypedValue) GetProtoBytes() []byte { + if x, ok := m.GetValue().(*TypedValue_ProtoBytes); ok { + return x.ProtoBytes + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*TypedValue) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _TypedValue_OneofMarshaler, _TypedValue_OneofUnmarshaler, _TypedValue_OneofSizer, []interface{}{ + (*TypedValue_StringVal)(nil), + (*TypedValue_IntVal)(nil), + (*TypedValue_UintVal)(nil), + (*TypedValue_BoolVal)(nil), + (*TypedValue_BytesVal)(nil), + (*TypedValue_FloatVal)(nil), + (*TypedValue_DecimalVal)(nil), + (*TypedValue_LeaflistVal)(nil), + (*TypedValue_AnyVal)(nil), + (*TypedValue_JsonVal)(nil), + (*TypedValue_JsonIetfVal)(nil), + (*TypedValue_AsciiVal)(nil), + (*TypedValue_ProtoBytes)(nil), + } +} + +func _TypedValue_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*TypedValue) + // value + switch x := m.Value.(type) { + case *TypedValue_StringVal: + b.EncodeVarint(1<<3 | proto.WireBytes) + b.EncodeStringBytes(x.StringVal) + case *TypedValue_IntVal: + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.IntVal)) + case *TypedValue_UintVal: + b.EncodeVarint(3<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.UintVal)) + case *TypedValue_BoolVal: + t := uint64(0) + if x.BoolVal { + t = 1 + } + b.EncodeVarint(4<<3 | proto.WireVarint) + b.EncodeVarint(t) + case *TypedValue_BytesVal: + b.EncodeVarint(5<<3 | proto.WireBytes) + b.EncodeRawBytes(x.BytesVal) + case *TypedValue_FloatVal: + b.EncodeVarint(6<<3 | proto.WireFixed32) + b.EncodeFixed32(uint64(math.Float32bits(x.FloatVal))) + case *TypedValue_DecimalVal: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.DecimalVal); err != nil { + return err + } + case *TypedValue_LeaflistVal: + b.EncodeVarint(8<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.LeaflistVal); err != nil { + return err + } + case *TypedValue_AnyVal: + b.EncodeVarint(9<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AnyVal); err != nil { + return err + } + case *TypedValue_JsonVal: + b.EncodeVarint(10<<3 | proto.WireBytes) + b.EncodeRawBytes(x.JsonVal) + case *TypedValue_JsonIetfVal: + b.EncodeVarint(11<<3 | proto.WireBytes) + b.EncodeRawBytes(x.JsonIetfVal) + case *TypedValue_AsciiVal: + b.EncodeVarint(12<<3 | proto.WireBytes) + b.EncodeStringBytes(x.AsciiVal) + case *TypedValue_ProtoBytes: + b.EncodeVarint(13<<3 | proto.WireBytes) + b.EncodeRawBytes(x.ProtoBytes) + case nil: + default: + return fmt.Errorf("TypedValue.Value has unexpected type %T", x) + } + return nil +} + +func _TypedValue_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*TypedValue) + switch tag { + case 1: // value.string_val + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Value = &TypedValue_StringVal{x} + return true, err + case 2: // value.int_val + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &TypedValue_IntVal{int64(x)} + return true, err + case 3: // value.uint_val + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &TypedValue_UintVal{x} + return true, err + case 4: // value.bool_val + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &TypedValue_BoolVal{x != 0} + return true, err + case 5: // value.bytes_val + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.Value = &TypedValue_BytesVal{x} + return true, err + case 6: // value.float_val + if wire != proto.WireFixed32 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed32() + m.Value = &TypedValue_FloatVal{math.Float32frombits(uint32(x))} + return true, err + case 7: // value.decimal_val + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Decimal64) + err := b.DecodeMessage(msg) + m.Value = &TypedValue_DecimalVal{msg} + return true, err + case 8: // value.leaflist_val + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ScalarArray) + err := b.DecodeMessage(msg) + m.Value = &TypedValue_LeaflistVal{msg} + return true, err + case 9: // value.any_val + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf.Any) + err := b.DecodeMessage(msg) + m.Value = &TypedValue_AnyVal{msg} + return true, err + case 10: // value.json_val + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.Value = &TypedValue_JsonVal{x} + return true, err + case 11: // value.json_ietf_val + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.Value = &TypedValue_JsonIetfVal{x} + return true, err + case 12: // value.ascii_val + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Value = &TypedValue_AsciiVal{x} + return true, err + case 13: // value.proto_bytes + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.Value = &TypedValue_ProtoBytes{x} + return true, err + default: + return false, nil + } +} + +func _TypedValue_OneofSizer(msg proto.Message) (n int) { + m := msg.(*TypedValue) + // value + switch x := m.Value.(type) { + case *TypedValue_StringVal: + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.StringVal))) + n += len(x.StringVal) + case *TypedValue_IntVal: + n += proto.SizeVarint(2<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.IntVal)) + case *TypedValue_UintVal: + n += proto.SizeVarint(3<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.UintVal)) + case *TypedValue_BoolVal: + n += proto.SizeVarint(4<<3 | proto.WireVarint) + n += 1 + case *TypedValue_BytesVal: + n += proto.SizeVarint(5<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.BytesVal))) + n += len(x.BytesVal) + case *TypedValue_FloatVal: + n += proto.SizeVarint(6<<3 | proto.WireFixed32) + n += 4 + case *TypedValue_DecimalVal: + s := proto.Size(x.DecimalVal) + n += proto.SizeVarint(7<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *TypedValue_LeaflistVal: + s := proto.Size(x.LeaflistVal) + n += proto.SizeVarint(8<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *TypedValue_AnyVal: + s := proto.Size(x.AnyVal) + n += proto.SizeVarint(9<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *TypedValue_JsonVal: + n += proto.SizeVarint(10<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.JsonVal))) + n += len(x.JsonVal) + case *TypedValue_JsonIetfVal: + n += proto.SizeVarint(11<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.JsonIetfVal))) + n += len(x.JsonIetfVal) + case *TypedValue_AsciiVal: + n += proto.SizeVarint(12<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.AsciiVal))) + n += len(x.AsciiVal) + case *TypedValue_ProtoBytes: + n += proto.SizeVarint(13<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.ProtoBytes))) + n += len(x.ProtoBytes) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Path encodes a data tree path as a series of repeated strings, with +// each element of the path representing a data tree node name and the +// associated attributes. +// Reference: gNMI Specification Section 2.2.2. +type Path struct { + // Elements of the path are no longer encoded as a string, but rather within + // the elem field as a PathElem message. + Element []string `protobuf:"bytes,1,rep,name=element" json:"element,omitempty"` + Origin string `protobuf:"bytes,2,opt,name=origin" json:"origin,omitempty"` + Elem []*PathElem `protobuf:"bytes,3,rep,name=elem" json:"elem,omitempty"` + Target string `protobuf:"bytes,4,opt,name=target" json:"target,omitempty"` +} + +func (m *Path) Reset() { *m = Path{} } +func (m *Path) String() string { return proto.CompactTextString(m) } +func (*Path) ProtoMessage() {} +func (*Path) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } + +func (m *Path) GetElement() []string { + if m != nil { + return m.Element + } + return nil +} + +func (m *Path) GetOrigin() string { + if m != nil { + return m.Origin + } + return "" +} + +func (m *Path) GetElem() []*PathElem { + if m != nil { + return m.Elem + } + return nil +} + +func (m *Path) GetTarget() string { + if m != nil { + return m.Target + } + return "" +} + +// PathElem encodes an element of a gNMI path, along with any attributes (keys) +// that may be associated with it. +// Reference: gNMI Specification Section 2.2.2. +type PathElem struct { + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Key map[string]string `protobuf:"bytes,2,rep,name=key" json:"key,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *PathElem) Reset() { *m = PathElem{} } +func (m *PathElem) String() string { return proto.CompactTextString(m) } +func (*PathElem) ProtoMessage() {} +func (*PathElem) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } + +func (m *PathElem) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *PathElem) GetKey() map[string]string { + if m != nil { + return m.Key + } + return nil +} + +// Value encodes a data tree node's value - along with the way in which +// the value is encoded. This message is deprecated by gNMI 0.3.0. +// Reference: gNMI Specification Section 2.2.3. +type Value struct { + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Type Encoding `protobuf:"varint,2,opt,name=type,enum=gnmi.Encoding" json:"type,omitempty"` +} + +func (m *Value) Reset() { *m = Value{} } +func (m *Value) String() string { return proto.CompactTextString(m) } +func (*Value) ProtoMessage() {} +func (*Value) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } + +func (m *Value) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func (m *Value) GetType() Encoding { + if m != nil { + return m.Type + } + return Encoding_JSON +} + +// Error message previously utilised to return errors to the client. Deprecated +// in favour of using the google.golang.org/genproto/googleapis/rpc/status +// message in the RPC response. +// Reference: gNMI Specification Section 2.5 +type Error struct { + Code uint32 `protobuf:"varint,1,opt,name=code" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` + Data *google_protobuf.Any `protobuf:"bytes,3,opt,name=data" json:"data,omitempty"` +} + +func (m *Error) Reset() { *m = Error{} } +func (m *Error) String() string { return proto.CompactTextString(m) } +func (*Error) ProtoMessage() {} +func (*Error) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } + +func (m *Error) GetCode() uint32 { + if m != nil { + return m.Code + } + return 0 +} + +func (m *Error) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +func (m *Error) GetData() *google_protobuf.Any { + if m != nil { + return m.Data + } + return nil +} + +// Decimal64 is used to encode a fixed precision decimal number. The value +// is expressed as a set of digits with the precision specifying the +// number of digits following the decimal point in the digit set. +type Decimal64 struct { + Digits int64 `protobuf:"varint,1,opt,name=digits" json:"digits,omitempty"` + Precision uint32 `protobuf:"varint,2,opt,name=precision" json:"precision,omitempty"` +} + +func (m *Decimal64) Reset() { *m = Decimal64{} } +func (m *Decimal64) String() string { return proto.CompactTextString(m) } +func (*Decimal64) ProtoMessage() {} +func (*Decimal64) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } + +func (m *Decimal64) GetDigits() int64 { + if m != nil { + return m.Digits + } + return 0 +} + +func (m *Decimal64) GetPrecision() uint32 { + if m != nil { + return m.Precision + } + return 0 +} + +// ScalarArray is used to encode a mixed-type array of values. +type ScalarArray struct { + // The set of elements within the array. Each TypedValue message should + // specify only elements that have a field identifier of 1-7 (i.e., the + // values are scalar values). + Element []*TypedValue `protobuf:"bytes,1,rep,name=element" json:"element,omitempty"` +} + +func (m *ScalarArray) Reset() { *m = ScalarArray{} } +func (m *ScalarArray) String() string { return proto.CompactTextString(m) } +func (*ScalarArray) ProtoMessage() {} +func (*ScalarArray) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } + +func (m *ScalarArray) GetElement() []*TypedValue { + if m != nil { + return m.Element + } + return nil +} + +// SubscribeRequest is the message sent by the client to the target when +// initiating a subscription to a set of paths within the data tree. The +// request field must be populated and the initial message must specify a +// SubscriptionList to initiate a subscription. The message is subsequently +// used to define aliases or trigger polled data to be sent by the target. +// Reference: gNMI Specification Section 3.5.1.1 +type SubscribeRequest struct { + // Types that are valid to be assigned to Request: + // *SubscribeRequest_Subscribe + // *SubscribeRequest_Poll + // *SubscribeRequest_Aliases + Request isSubscribeRequest_Request `protobuf_oneof:"request"` + // Extension messages associated with the SubscribeRequest. See the + // gNMI extension specification for further definition. + Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension" json:"extension,omitempty"` +} + +func (m *SubscribeRequest) Reset() { *m = SubscribeRequest{} } +func (m *SubscribeRequest) String() string { return proto.CompactTextString(m) } +func (*SubscribeRequest) ProtoMessage() {} +func (*SubscribeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } + +type isSubscribeRequest_Request interface{ isSubscribeRequest_Request() } + +type SubscribeRequest_Subscribe struct { + Subscribe *SubscriptionList `protobuf:"bytes,1,opt,name=subscribe,oneof"` +} +type SubscribeRequest_Poll struct { + Poll *Poll `protobuf:"bytes,3,opt,name=poll,oneof"` +} +type SubscribeRequest_Aliases struct { + Aliases *AliasList `protobuf:"bytes,4,opt,name=aliases,oneof"` +} + +func (*SubscribeRequest_Subscribe) isSubscribeRequest_Request() {} +func (*SubscribeRequest_Poll) isSubscribeRequest_Request() {} +func (*SubscribeRequest_Aliases) isSubscribeRequest_Request() {} + +func (m *SubscribeRequest) GetRequest() isSubscribeRequest_Request { + if m != nil { + return m.Request + } + return nil +} + +func (m *SubscribeRequest) GetSubscribe() *SubscriptionList { + if x, ok := m.GetRequest().(*SubscribeRequest_Subscribe); ok { + return x.Subscribe + } + return nil +} + +func (m *SubscribeRequest) GetPoll() *Poll { + if x, ok := m.GetRequest().(*SubscribeRequest_Poll); ok { + return x.Poll + } + return nil +} + +func (m *SubscribeRequest) GetAliases() *AliasList { + if x, ok := m.GetRequest().(*SubscribeRequest_Aliases); ok { + return x.Aliases + } + return nil +} + +func (m *SubscribeRequest) GetExtension() []*gnmi_ext.Extension { + if m != nil { + return m.Extension + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*SubscribeRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _SubscribeRequest_OneofMarshaler, _SubscribeRequest_OneofUnmarshaler, _SubscribeRequest_OneofSizer, []interface{}{ + (*SubscribeRequest_Subscribe)(nil), + (*SubscribeRequest_Poll)(nil), + (*SubscribeRequest_Aliases)(nil), + } +} + +func _SubscribeRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*SubscribeRequest) + // request + switch x := m.Request.(type) { + case *SubscribeRequest_Subscribe: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Subscribe); err != nil { + return err + } + case *SubscribeRequest_Poll: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Poll); err != nil { + return err + } + case *SubscribeRequest_Aliases: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Aliases); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("SubscribeRequest.Request has unexpected type %T", x) + } + return nil +} + +func _SubscribeRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*SubscribeRequest) + switch tag { + case 1: // request.subscribe + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SubscriptionList) + err := b.DecodeMessage(msg) + m.Request = &SubscribeRequest_Subscribe{msg} + return true, err + case 3: // request.poll + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Poll) + err := b.DecodeMessage(msg) + m.Request = &SubscribeRequest_Poll{msg} + return true, err + case 4: // request.aliases + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(AliasList) + err := b.DecodeMessage(msg) + m.Request = &SubscribeRequest_Aliases{msg} + return true, err + default: + return false, nil + } +} + +func _SubscribeRequest_OneofSizer(msg proto.Message) (n int) { + m := msg.(*SubscribeRequest) + // request + switch x := m.Request.(type) { + case *SubscribeRequest_Subscribe: + s := proto.Size(x.Subscribe) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *SubscribeRequest_Poll: + s := proto.Size(x.Poll) + n += proto.SizeVarint(3<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *SubscribeRequest_Aliases: + s := proto.Size(x.Aliases) + n += proto.SizeVarint(4<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Poll is sent within a SubscribeRequest to trigger the device to +// send telemetry updates for the paths that are associated with the +// subscription. +// Reference: gNMI Specification Section Section 3.5.1.4 +type Poll struct { +} + +func (m *Poll) Reset() { *m = Poll{} } +func (m *Poll) String() string { return proto.CompactTextString(m) } +func (*Poll) ProtoMessage() {} +func (*Poll) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } + +// SubscribeResponse is the message used by the target within a Subscribe RPC. +// The target includes a Notification message which is used to transmit values +// of the path(s) that are associated with the subscription. The same message +// is to indicate that the target has sent all data values once (is +// synchronized). +// Reference: gNMI Specification Section 3.5.1.4 +type SubscribeResponse struct { + // Types that are valid to be assigned to Response: + // *SubscribeResponse_Update + // *SubscribeResponse_SyncResponse + // *SubscribeResponse_Error + Response isSubscribeResponse_Response `protobuf_oneof:"response"` + // Extension messages associated with the SubscribeResponse. See the + // gNMI extension specification for further definition. + Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension" json:"extension,omitempty"` +} + +func (m *SubscribeResponse) Reset() { *m = SubscribeResponse{} } +func (m *SubscribeResponse) String() string { return proto.CompactTextString(m) } +func (*SubscribeResponse) ProtoMessage() {} +func (*SubscribeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } + +type isSubscribeResponse_Response interface{ isSubscribeResponse_Response() } + +type SubscribeResponse_Update struct { + Update *Notification `protobuf:"bytes,1,opt,name=update,oneof"` +} +type SubscribeResponse_SyncResponse struct { + SyncResponse bool `protobuf:"varint,3,opt,name=sync_response,json=syncResponse,oneof"` +} +type SubscribeResponse_Error struct { + Error *Error `protobuf:"bytes,4,opt,name=error,oneof"` +} + +func (*SubscribeResponse_Update) isSubscribeResponse_Response() {} +func (*SubscribeResponse_SyncResponse) isSubscribeResponse_Response() {} +func (*SubscribeResponse_Error) isSubscribeResponse_Response() {} + +func (m *SubscribeResponse) GetResponse() isSubscribeResponse_Response { + if m != nil { + return m.Response + } + return nil +} + +func (m *SubscribeResponse) GetUpdate() *Notification { + if x, ok := m.GetResponse().(*SubscribeResponse_Update); ok { + return x.Update + } + return nil +} + +func (m *SubscribeResponse) GetSyncResponse() bool { + if x, ok := m.GetResponse().(*SubscribeResponse_SyncResponse); ok { + return x.SyncResponse + } + return false +} + +func (m *SubscribeResponse) GetError() *Error { + if x, ok := m.GetResponse().(*SubscribeResponse_Error); ok { + return x.Error + } + return nil +} + +func (m *SubscribeResponse) GetExtension() []*gnmi_ext.Extension { + if m != nil { + return m.Extension + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*SubscribeResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _SubscribeResponse_OneofMarshaler, _SubscribeResponse_OneofUnmarshaler, _SubscribeResponse_OneofSizer, []interface{}{ + (*SubscribeResponse_Update)(nil), + (*SubscribeResponse_SyncResponse)(nil), + (*SubscribeResponse_Error)(nil), + } +} + +func _SubscribeResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*SubscribeResponse) + // response + switch x := m.Response.(type) { + case *SubscribeResponse_Update: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *SubscribeResponse_SyncResponse: + t := uint64(0) + if x.SyncResponse { + t = 1 + } + b.EncodeVarint(3<<3 | proto.WireVarint) + b.EncodeVarint(t) + case *SubscribeResponse_Error: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Error); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("SubscribeResponse.Response has unexpected type %T", x) + } + return nil +} + +func _SubscribeResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*SubscribeResponse) + switch tag { + case 1: // response.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Notification) + err := b.DecodeMessage(msg) + m.Response = &SubscribeResponse_Update{msg} + return true, err + case 3: // response.sync_response + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Response = &SubscribeResponse_SyncResponse{x != 0} + return true, err + case 4: // response.error + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Error) + err := b.DecodeMessage(msg) + m.Response = &SubscribeResponse_Error{msg} + return true, err + default: + return false, nil + } +} + +func _SubscribeResponse_OneofSizer(msg proto.Message) (n int) { + m := msg.(*SubscribeResponse) + // response + switch x := m.Response.(type) { + case *SubscribeResponse_Update: + s := proto.Size(x.Update) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *SubscribeResponse_SyncResponse: + n += proto.SizeVarint(3<<3 | proto.WireVarint) + n += 1 + case *SubscribeResponse_Error: + s := proto.Size(x.Error) + n += proto.SizeVarint(4<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// SubscriptionList is used within a Subscribe message to specify the list of +// paths that the client wishes to subscribe to. The message consists of a +// list of (possibly prefixed) paths, and options that relate to the +// subscription. +// Reference: gNMI Specification Section 3.5.1.2 +type SubscriptionList struct { + Prefix *Path `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"` + Subscription []*Subscription `protobuf:"bytes,2,rep,name=subscription" json:"subscription,omitempty"` + // Whether target defined aliases are allowed within the subscription. + UseAliases bool `protobuf:"varint,3,opt,name=use_aliases,json=useAliases" json:"use_aliases,omitempty"` + Qos *QOSMarking `protobuf:"bytes,4,opt,name=qos" json:"qos,omitempty"` + Mode SubscriptionList_Mode `protobuf:"varint,5,opt,name=mode,enum=gnmi.SubscriptionList_Mode" json:"mode,omitempty"` + // Whether elements of the schema that are marked as eligible for aggregation + // should be aggregated or not. + AllowAggregation bool `protobuf:"varint,6,opt,name=allow_aggregation,json=allowAggregation" json:"allow_aggregation,omitempty"` + // The set of schemas that define the elements of the data tree that should + // be sent by the target. + UseModels []*ModelData `protobuf:"bytes,7,rep,name=use_models,json=useModels" json:"use_models,omitempty"` + // The encoding that the target should use within the Notifications generated + // corresponding to the SubscriptionList. + Encoding Encoding `protobuf:"varint,8,opt,name=encoding,enum=gnmi.Encoding" json:"encoding,omitempty"` + // An optional field to specify that only updates to current state should be + // sent to a client. If set, the initial state is not sent to the client but + // rather only the sync message followed by any subsequent updates to the + // current state. For ONCE and POLL modes, this causes the server to send only + // the sync message (Sec. 3.5.2.3). + UpdatesOnly bool `protobuf:"varint,9,opt,name=updates_only,json=updatesOnly" json:"updates_only,omitempty"` +} + +func (m *SubscriptionList) Reset() { *m = SubscriptionList{} } +func (m *SubscriptionList) String() string { return proto.CompactTextString(m) } +func (*SubscriptionList) ProtoMessage() {} +func (*SubscriptionList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } + +func (m *SubscriptionList) GetPrefix() *Path { + if m != nil { + return m.Prefix + } + return nil +} + +func (m *SubscriptionList) GetSubscription() []*Subscription { + if m != nil { + return m.Subscription + } + return nil +} + +func (m *SubscriptionList) GetUseAliases() bool { + if m != nil { + return m.UseAliases + } + return false +} + +func (m *SubscriptionList) GetQos() *QOSMarking { + if m != nil { + return m.Qos + } + return nil +} + +func (m *SubscriptionList) GetMode() SubscriptionList_Mode { + if m != nil { + return m.Mode + } + return SubscriptionList_STREAM +} + +func (m *SubscriptionList) GetAllowAggregation() bool { + if m != nil { + return m.AllowAggregation + } + return false +} + +func (m *SubscriptionList) GetUseModels() []*ModelData { + if m != nil { + return m.UseModels + } + return nil +} + +func (m *SubscriptionList) GetEncoding() Encoding { + if m != nil { + return m.Encoding + } + return Encoding_JSON +} + +func (m *SubscriptionList) GetUpdatesOnly() bool { + if m != nil { + return m.UpdatesOnly + } + return false +} + +// Subscription is a single request within a SubscriptionList. The path +// specified is interpreted (along with the prefix) as the elements of the data +// tree that the client is subscribing to. The mode determines how the target +// should trigger updates to be sent. +// Reference: gNMI Specification Section 3.5.1.3 +type Subscription struct { + Path *Path `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"` + Mode SubscriptionMode `protobuf:"varint,2,opt,name=mode,enum=gnmi.SubscriptionMode" json:"mode,omitempty"` + SampleInterval uint64 `protobuf:"varint,3,opt,name=sample_interval,json=sampleInterval" json:"sample_interval,omitempty"` + // Indicates whether values that have not changed should be sent in a SAMPLE + // subscription. + SuppressRedundant bool `protobuf:"varint,4,opt,name=suppress_redundant,json=suppressRedundant" json:"suppress_redundant,omitempty"` + // Specifies the maximum allowable silent period in nanoseconds when + // suppress_redundant is in use. The target should send a value at least once + // in the period specified. + HeartbeatInterval uint64 `protobuf:"varint,5,opt,name=heartbeat_interval,json=heartbeatInterval" json:"heartbeat_interval,omitempty"` +} + +func (m *Subscription) Reset() { *m = Subscription{} } +func (m *Subscription) String() string { return proto.CompactTextString(m) } +func (*Subscription) ProtoMessage() {} +func (*Subscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } + +func (m *Subscription) GetPath() *Path { + if m != nil { + return m.Path + } + return nil +} + +func (m *Subscription) GetMode() SubscriptionMode { + if m != nil { + return m.Mode + } + return SubscriptionMode_TARGET_DEFINED +} + +func (m *Subscription) GetSampleInterval() uint64 { + if m != nil { + return m.SampleInterval + } + return 0 +} + +func (m *Subscription) GetSuppressRedundant() bool { + if m != nil { + return m.SuppressRedundant + } + return false +} + +func (m *Subscription) GetHeartbeatInterval() uint64 { + if m != nil { + return m.HeartbeatInterval + } + return 0 +} + +// QOSMarking specifies the DSCP value to be set on transmitted telemetry +// updates from the target. +// Reference: gNMI Specification Section 3.5.1.2 +type QOSMarking struct { + Marking uint32 `protobuf:"varint,1,opt,name=marking" json:"marking,omitempty"` +} + +func (m *QOSMarking) Reset() { *m = QOSMarking{} } +func (m *QOSMarking) String() string { return proto.CompactTextString(m) } +func (*QOSMarking) ProtoMessage() {} +func (*QOSMarking) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } + +func (m *QOSMarking) GetMarking() uint32 { + if m != nil { + return m.Marking + } + return 0 +} + +// Alias specifies a data tree path, and an associated string which defines an +// alias which is to be used for this path in the context of the RPC. The alias +// is specified as a string which is prefixed with "#" to disambiguate it from +// data tree element paths. +// Reference: gNMI Specification Section 2.4.2 +type Alias struct { + Path *Path `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"` + Alias string `protobuf:"bytes,2,opt,name=alias" json:"alias,omitempty"` +} + +func (m *Alias) Reset() { *m = Alias{} } +func (m *Alias) String() string { return proto.CompactTextString(m) } +func (*Alias) ProtoMessage() {} +func (*Alias) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } + +func (m *Alias) GetPath() *Path { + if m != nil { + return m.Path + } + return nil +} + +func (m *Alias) GetAlias() string { + if m != nil { + return m.Alias + } + return "" +} + +// AliasList specifies a list of aliases. It is used in a SubscribeRequest for +// a client to create a set of aliases that the target is to utilize. +// Reference: gNMI Specification Section 3.5.1.6 +type AliasList struct { + Alias []*Alias `protobuf:"bytes,1,rep,name=alias" json:"alias,omitempty"` +} + +func (m *AliasList) Reset() { *m = AliasList{} } +func (m *AliasList) String() string { return proto.CompactTextString(m) } +func (*AliasList) ProtoMessage() {} +func (*AliasList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } + +func (m *AliasList) GetAlias() []*Alias { + if m != nil { + return m.Alias + } + return nil +} + +// SetRequest is sent from a client to the target to update values in the data +// tree. Paths are either deleted by the client, or modified by means of being +// updated, or replaced. Where a replace is used, unspecified values are +// considered to be replaced, whereas when update is used the changes are +// considered to be incremental. The set of changes that are specified within +// a single SetRequest are considered to be a transaction. +// Reference: gNMI Specification Section 3.4.1 +type SetRequest struct { + Prefix *Path `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"` + Delete []*Path `protobuf:"bytes,2,rep,name=delete" json:"delete,omitempty"` + Replace []*Update `protobuf:"bytes,3,rep,name=replace" json:"replace,omitempty"` + Update []*Update `protobuf:"bytes,4,rep,name=update" json:"update,omitempty"` + // Extension messages associated with the SetRequest. See the + // gNMI extension specification for further definition. + Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension" json:"extension,omitempty"` +} + +func (m *SetRequest) Reset() { *m = SetRequest{} } +func (m *SetRequest) String() string { return proto.CompactTextString(m) } +func (*SetRequest) ProtoMessage() {} +func (*SetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } + +func (m *SetRequest) GetPrefix() *Path { + if m != nil { + return m.Prefix + } + return nil +} + +func (m *SetRequest) GetDelete() []*Path { + if m != nil { + return m.Delete + } + return nil +} + +func (m *SetRequest) GetReplace() []*Update { + if m != nil { + return m.Replace + } + return nil +} + +func (m *SetRequest) GetUpdate() []*Update { + if m != nil { + return m.Update + } + return nil +} + +func (m *SetRequest) GetExtension() []*gnmi_ext.Extension { + if m != nil { + return m.Extension + } + return nil +} + +// SetResponse is the response to a SetRequest, sent from the target to the +// client. It reports the result of the modifications to the data tree that were +// specified by the client. Errors for this RPC should be reported using the +// https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto +// message in the RPC return. The gnmi.Error message can be used to add additional +// details where required. +// Reference: gNMI Specification Section 3.4.2 +type SetResponse struct { + Prefix *Path `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"` + // A set of responses specifying the result of the operations specified in + // the SetRequest. + Response []*UpdateResult `protobuf:"bytes,2,rep,name=response" json:"response,omitempty"` + Message *Error `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"` + Timestamp int64 `protobuf:"varint,4,opt,name=timestamp" json:"timestamp,omitempty"` + // Extension messages associated with the SetResponse. See the + // gNMI extension specification for further definition. + Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension" json:"extension,omitempty"` +} + +func (m *SetResponse) Reset() { *m = SetResponse{} } +func (m *SetResponse) String() string { return proto.CompactTextString(m) } +func (*SetResponse) ProtoMessage() {} +func (*SetResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } + +func (m *SetResponse) GetPrefix() *Path { + if m != nil { + return m.Prefix + } + return nil +} + +func (m *SetResponse) GetResponse() []*UpdateResult { + if m != nil { + return m.Response + } + return nil +} + +func (m *SetResponse) GetMessage() *Error { + if m != nil { + return m.Message + } + return nil +} + +func (m *SetResponse) GetTimestamp() int64 { + if m != nil { + return m.Timestamp + } + return 0 +} + +func (m *SetResponse) GetExtension() []*gnmi_ext.Extension { + if m != nil { + return m.Extension + } + return nil +} + +// UpdateResult is used within the SetResponse message to communicate the +// result of an operation specified within a SetRequest message. +// Reference: gNMI Specification Section 3.4.2 +type UpdateResult struct { + // Deprecated timestamp for the UpdateResult, this field has been + // replaced by the timestamp within the SetResponse message, since + // all mutations effected by a set should be applied as a single + // transaction. + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"` + Path *Path `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"` + Message *Error `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"` + Op UpdateResult_Operation `protobuf:"varint,4,opt,name=op,enum=gnmi.UpdateResult_Operation" json:"op,omitempty"` +} + +func (m *UpdateResult) Reset() { *m = UpdateResult{} } +func (m *UpdateResult) String() string { return proto.CompactTextString(m) } +func (*UpdateResult) ProtoMessage() {} +func (*UpdateResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } + +func (m *UpdateResult) GetTimestamp() int64 { + if m != nil { + return m.Timestamp + } + return 0 +} + +func (m *UpdateResult) GetPath() *Path { + if m != nil { + return m.Path + } + return nil +} + +func (m *UpdateResult) GetMessage() *Error { + if m != nil { + return m.Message + } + return nil +} + +func (m *UpdateResult) GetOp() UpdateResult_Operation { + if m != nil { + return m.Op + } + return UpdateResult_INVALID +} + +// GetRequest is sent when a client initiates a Get RPC. It is used to specify +// the set of data elements for which the target should return a snapshot of +// data. The use_models field specifies the set of schema modules that are to +// be used by the target - where use_models is not specified then the target +// must use all schema models that it has. +// Reference: gNMI Specification Section 3.3.1 +type GetRequest struct { + Prefix *Path `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"` + Path []*Path `protobuf:"bytes,2,rep,name=path" json:"path,omitempty"` + Type GetRequest_DataType `protobuf:"varint,3,opt,name=type,enum=gnmi.GetRequest_DataType" json:"type,omitempty"` + Encoding Encoding `protobuf:"varint,5,opt,name=encoding,enum=gnmi.Encoding" json:"encoding,omitempty"` + UseModels []*ModelData `protobuf:"bytes,6,rep,name=use_models,json=useModels" json:"use_models,omitempty"` + // Extension messages associated with the GetRequest. See the + // gNMI extension specification for further definition. + Extension []*gnmi_ext.Extension `protobuf:"bytes,7,rep,name=extension" json:"extension,omitempty"` +} + +func (m *GetRequest) Reset() { *m = GetRequest{} } +func (m *GetRequest) String() string { return proto.CompactTextString(m) } +func (*GetRequest) ProtoMessage() {} +func (*GetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } + +func (m *GetRequest) GetPrefix() *Path { + if m != nil { + return m.Prefix + } + return nil +} + +func (m *GetRequest) GetPath() []*Path { + if m != nil { + return m.Path + } + return nil +} + +func (m *GetRequest) GetType() GetRequest_DataType { + if m != nil { + return m.Type + } + return GetRequest_ALL +} + +func (m *GetRequest) GetEncoding() Encoding { + if m != nil { + return m.Encoding + } + return Encoding_JSON +} + +func (m *GetRequest) GetUseModels() []*ModelData { + if m != nil { + return m.UseModels + } + return nil +} + +func (m *GetRequest) GetExtension() []*gnmi_ext.Extension { + if m != nil { + return m.Extension + } + return nil +} + +// GetResponse is used by the target to respond to a GetRequest from a client. +// The set of Notifications corresponds to the data values that are requested +// by the client in the GetRequest. +// Reference: gNMI Specification Section 3.3.2 +type GetResponse struct { + Notification []*Notification `protobuf:"bytes,1,rep,name=notification" json:"notification,omitempty"` + Error *Error `protobuf:"bytes,2,opt,name=error" json:"error,omitempty"` + // Extension messages associated with the GetResponse. See the + // gNMI extension specification for further definition. + Extension []*gnmi_ext.Extension `protobuf:"bytes,3,rep,name=extension" json:"extension,omitempty"` +} + +func (m *GetResponse) Reset() { *m = GetResponse{} } +func (m *GetResponse) String() string { return proto.CompactTextString(m) } +func (*GetResponse) ProtoMessage() {} +func (*GetResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } + +func (m *GetResponse) GetNotification() []*Notification { + if m != nil { + return m.Notification + } + return nil +} + +func (m *GetResponse) GetError() *Error { + if m != nil { + return m.Error + } + return nil +} + +func (m *GetResponse) GetExtension() []*gnmi_ext.Extension { + if m != nil { + return m.Extension + } + return nil +} + +// CapabilityRequest is sent by the client in the Capabilities RPC to request +// that the target reports its capabilities. +// Reference: gNMI Specification Section 3.2.1 +type CapabilityRequest struct { + // Extension messages associated with the CapabilityRequest. See the + // gNMI extension specification for further definition. + Extension []*gnmi_ext.Extension `protobuf:"bytes,1,rep,name=extension" json:"extension,omitempty"` +} + +func (m *CapabilityRequest) Reset() { *m = CapabilityRequest{} } +func (m *CapabilityRequest) String() string { return proto.CompactTextString(m) } +func (*CapabilityRequest) ProtoMessage() {} +func (*CapabilityRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } + +func (m *CapabilityRequest) GetExtension() []*gnmi_ext.Extension { + if m != nil { + return m.Extension + } + return nil +} + +// CapabilityResponse is used by the target to report its capabilities to the +// client within the Capabilities RPC. +// Reference: gNMI Specification Section 3.2.2 +type CapabilityResponse struct { + SupportedModels []*ModelData `protobuf:"bytes,1,rep,name=supported_models,json=supportedModels" json:"supported_models,omitempty"` + SupportedEncodings []Encoding `protobuf:"varint,2,rep,packed,name=supported_encodings,json=supportedEncodings,enum=gnmi.Encoding" json:"supported_encodings,omitempty"` + GNMIVersion string `protobuf:"bytes,3,opt,name=gNMI_version,json=gNMIVersion" json:"gNMI_version,omitempty"` + // Extension messages associated with the CapabilityResponse. See the + // gNMI extension specification for further definition. + Extension []*gnmi_ext.Extension `protobuf:"bytes,4,rep,name=extension" json:"extension,omitempty"` +} + +func (m *CapabilityResponse) Reset() { *m = CapabilityResponse{} } +func (m *CapabilityResponse) String() string { return proto.CompactTextString(m) } +func (*CapabilityResponse) ProtoMessage() {} +func (*CapabilityResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } + +func (m *CapabilityResponse) GetSupportedModels() []*ModelData { + if m != nil { + return m.SupportedModels + } + return nil +} + +func (m *CapabilityResponse) GetSupportedEncodings() []Encoding { + if m != nil { + return m.SupportedEncodings + } + return nil +} + +func (m *CapabilityResponse) GetGNMIVersion() string { + if m != nil { + return m.GNMIVersion + } + return "" +} + +func (m *CapabilityResponse) GetExtension() []*gnmi_ext.Extension { + if m != nil { + return m.Extension + } + return nil +} + +// ModelData is used to describe a set of schema modules. It can be used in a +// CapabilityResponse where a target reports the set of modules that it +// supports, and within the SubscribeRequest and GetRequest messages to specify +// the set of models from which data tree elements should be reported. +// Reference: gNMI Specification Section 3.2.3 +type ModelData struct { + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Organization string `protobuf:"bytes,2,opt,name=organization" json:"organization,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version" json:"version,omitempty"` +} + +func (m *ModelData) Reset() { *m = ModelData{} } +func (m *ModelData) String() string { return proto.CompactTextString(m) } +func (*ModelData) ProtoMessage() {} +func (*ModelData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } + +func (m *ModelData) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *ModelData) GetOrganization() string { + if m != nil { + return m.Organization + } + return "" +} + +func (m *ModelData) GetVersion() string { + if m != nil { + return m.Version + } + return "" +} + +var E_GnmiService = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf1.FileOptions)(nil), + ExtensionType: (*string)(nil), + Field: 1001, + Name: "gnmi.gnmi_service", + Tag: "bytes,1001,opt,name=gnmi_service,json=gnmiService", + Filename: "gnmi.proto", +} + +func init() { + proto.RegisterType((*Notification)(nil), "gnmi.Notification") + proto.RegisterType((*Update)(nil), "gnmi.Update") + proto.RegisterType((*TypedValue)(nil), "gnmi.TypedValue") + proto.RegisterType((*Path)(nil), "gnmi.Path") + proto.RegisterType((*PathElem)(nil), "gnmi.PathElem") + proto.RegisterType((*Value)(nil), "gnmi.Value") + proto.RegisterType((*Error)(nil), "gnmi.Error") + proto.RegisterType((*Decimal64)(nil), "gnmi.Decimal64") + proto.RegisterType((*ScalarArray)(nil), "gnmi.ScalarArray") + proto.RegisterType((*SubscribeRequest)(nil), "gnmi.SubscribeRequest") + proto.RegisterType((*Poll)(nil), "gnmi.Poll") + proto.RegisterType((*SubscribeResponse)(nil), "gnmi.SubscribeResponse") + proto.RegisterType((*SubscriptionList)(nil), "gnmi.SubscriptionList") + proto.RegisterType((*Subscription)(nil), "gnmi.Subscription") + proto.RegisterType((*QOSMarking)(nil), "gnmi.QOSMarking") + proto.RegisterType((*Alias)(nil), "gnmi.Alias") + proto.RegisterType((*AliasList)(nil), "gnmi.AliasList") + proto.RegisterType((*SetRequest)(nil), "gnmi.SetRequest") + proto.RegisterType((*SetResponse)(nil), "gnmi.SetResponse") + proto.RegisterType((*UpdateResult)(nil), "gnmi.UpdateResult") + proto.RegisterType((*GetRequest)(nil), "gnmi.GetRequest") + proto.RegisterType((*GetResponse)(nil), "gnmi.GetResponse") + proto.RegisterType((*CapabilityRequest)(nil), "gnmi.CapabilityRequest") + proto.RegisterType((*CapabilityResponse)(nil), "gnmi.CapabilityResponse") + proto.RegisterType((*ModelData)(nil), "gnmi.ModelData") + proto.RegisterEnum("gnmi.Encoding", Encoding_name, Encoding_value) + proto.RegisterEnum("gnmi.SubscriptionMode", SubscriptionMode_name, SubscriptionMode_value) + proto.RegisterEnum("gnmi.SubscriptionList_Mode", SubscriptionList_Mode_name, SubscriptionList_Mode_value) + proto.RegisterEnum("gnmi.UpdateResult_Operation", UpdateResult_Operation_name, UpdateResult_Operation_value) + proto.RegisterEnum("gnmi.GetRequest_DataType", GetRequest_DataType_name, GetRequest_DataType_value) + proto.RegisterExtension(E_GnmiService) +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for GNMI service + +type GNMIClient interface { + // Capabilities allows the client to retrieve the set of capabilities that + // is supported by the target. This allows the target to validate the + // service version that is implemented and retrieve the set of models that + // the target supports. The models can then be specified in subsequent RPCs + // to restrict the set of data that is utilized. + // Reference: gNMI Specification Section 3.2 + Capabilities(ctx context.Context, in *CapabilityRequest, opts ...grpc.CallOption) (*CapabilityResponse, error) + // Retrieve a snapshot of data from the target. A Get RPC requests that the + // target snapshots a subset of the data tree as specified by the paths + // included in the message and serializes this to be returned to the + // client using the specified encoding. + // Reference: gNMI Specification Section 3.3 + Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) + // Set allows the client to modify the state of data on the target. The + // paths to modified along with the new values that the client wishes + // to set the value to. + // Reference: gNMI Specification Section 3.4 + Set(ctx context.Context, in *SetRequest, opts ...grpc.CallOption) (*SetResponse, error) + // Subscribe allows a client to request the target to send it values + // of particular paths within the data tree. These values may be streamed + // at a particular cadence (STREAM), sent one off on a long-lived channel + // (POLL), or sent as a one-off retrieval (ONCE). + // Reference: gNMI Specification Section 3.5 + Subscribe(ctx context.Context, opts ...grpc.CallOption) (GNMI_SubscribeClient, error) +} + +type gNMIClient struct { + cc *grpc.ClientConn +} + +func NewGNMIClient(cc *grpc.ClientConn) GNMIClient { + return &gNMIClient{cc} +} + +func (c *gNMIClient) Capabilities(ctx context.Context, in *CapabilityRequest, opts ...grpc.CallOption) (*CapabilityResponse, error) { + out := new(CapabilityResponse) + err := grpc.Invoke(ctx, "/gnmi.gNMI/Capabilities", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *gNMIClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) { + out := new(GetResponse) + err := grpc.Invoke(ctx, "/gnmi.gNMI/Get", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *gNMIClient) Set(ctx context.Context, in *SetRequest, opts ...grpc.CallOption) (*SetResponse, error) { + out := new(SetResponse) + err := grpc.Invoke(ctx, "/gnmi.gNMI/Set", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *gNMIClient) Subscribe(ctx context.Context, opts ...grpc.CallOption) (GNMI_SubscribeClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GNMI_serviceDesc.Streams[0], c.cc, "/gnmi.gNMI/Subscribe", opts...) + if err != nil { + return nil, err + } + x := &gNMISubscribeClient{stream} + return x, nil +} + +type GNMI_SubscribeClient interface { + Send(*SubscribeRequest) error + Recv() (*SubscribeResponse, error) + grpc.ClientStream +} + +type gNMISubscribeClient struct { + grpc.ClientStream +} + +func (x *gNMISubscribeClient) Send(m *SubscribeRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *gNMISubscribeClient) Recv() (*SubscribeResponse, error) { + m := new(SubscribeResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// Server API for GNMI service + +type GNMIServer interface { + // Capabilities allows the client to retrieve the set of capabilities that + // is supported by the target. This allows the target to validate the + // service version that is implemented and retrieve the set of models that + // the target supports. The models can then be specified in subsequent RPCs + // to restrict the set of data that is utilized. + // Reference: gNMI Specification Section 3.2 + Capabilities(context.Context, *CapabilityRequest) (*CapabilityResponse, error) + // Retrieve a snapshot of data from the target. A Get RPC requests that the + // target snapshots a subset of the data tree as specified by the paths + // included in the message and serializes this to be returned to the + // client using the specified encoding. + // Reference: gNMI Specification Section 3.3 + Get(context.Context, *GetRequest) (*GetResponse, error) + // Set allows the client to modify the state of data on the target. The + // paths to modified along with the new values that the client wishes + // to set the value to. + // Reference: gNMI Specification Section 3.4 + Set(context.Context, *SetRequest) (*SetResponse, error) + // Subscribe allows a client to request the target to send it values + // of particular paths within the data tree. These values may be streamed + // at a particular cadence (STREAM), sent one off on a long-lived channel + // (POLL), or sent as a one-off retrieval (ONCE). + // Reference: gNMI Specification Section 3.5 + Subscribe(GNMI_SubscribeServer) error +} + +func RegisterGNMIServer(s *grpc.Server, srv GNMIServer) { + s.RegisterService(&_GNMI_serviceDesc, srv) +} + +func _GNMI_Capabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CapabilityRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GNMIServer).Capabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gnmi.gNMI/Capabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GNMIServer).Capabilities(ctx, req.(*CapabilityRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GNMI_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GNMIServer).Get(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gnmi.gNMI/Get", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GNMIServer).Get(ctx, req.(*GetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GNMI_Set_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GNMIServer).Set(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gnmi.gNMI/Set", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GNMIServer).Set(ctx, req.(*SetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GNMI_Subscribe_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(GNMIServer).Subscribe(&gNMISubscribeServer{stream}) +} + +type GNMI_SubscribeServer interface { + Send(*SubscribeResponse) error + Recv() (*SubscribeRequest, error) + grpc.ServerStream +} + +type gNMISubscribeServer struct { + grpc.ServerStream +} + +func (x *gNMISubscribeServer) Send(m *SubscribeResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *gNMISubscribeServer) Recv() (*SubscribeRequest, error) { + m := new(SubscribeRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +var _GNMI_serviceDesc = grpc.ServiceDesc{ + ServiceName: "gnmi.gNMI", + HandlerType: (*GNMIServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Capabilities", + Handler: _GNMI_Capabilities_Handler, + }, + { + MethodName: "Get", + Handler: _GNMI_Get_Handler, + }, + { + MethodName: "Set", + Handler: _GNMI_Set_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Subscribe", + Handler: _GNMI_Subscribe_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "gnmi.proto", +} + +func init() { proto.RegisterFile("gnmi.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 1951 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x5f, 0x73, 0x23, 0x47, + 0x11, 0xd7, 0x6a, 0xf5, 0x6f, 0x5b, 0xb2, 0x4f, 0x9e, 0xa4, 0x12, 0x9d, 0x73, 0x24, 0xba, 0xad, + 0xdc, 0x45, 0x71, 0x12, 0xf9, 0x30, 0x94, 0x81, 0xa3, 0x02, 0x91, 0xed, 0x3d, 0x5b, 0x20, 0x4b, + 0x66, 0xa4, 0x5c, 0x15, 0x54, 0x51, 0xaa, 0xb1, 0x34, 0xd6, 0x2d, 0x59, 0xed, 0x6e, 0x76, 0x47, + 0xc7, 0x89, 0x37, 0x3e, 0x03, 0x1f, 0x80, 0xaf, 0xc1, 0x47, 0xa0, 0xe0, 0x85, 0x17, 0x8a, 0x27, + 0x1e, 0x28, 0x1e, 0x80, 0xe2, 0x4b, 0xa4, 0x7a, 0x66, 0x76, 0x57, 0x3a, 0xe9, 0xea, 0x7c, 0x79, + 0x9b, 0xe9, 0x5f, 0x77, 0xef, 0xf4, 0x74, 0xcf, 0xaf, 0x5b, 0x02, 0x98, 0xf9, 0x73, 0xb7, 0x1d, + 0x46, 0x81, 0x08, 0x48, 0x01, 0xd7, 0xfb, 0x77, 0x67, 0x41, 0x30, 0xf3, 0xf8, 0xa1, 0x94, 0x5d, + 0x2f, 0x6e, 0x0e, 0x99, 0xbf, 0x54, 0x0a, 0xfb, 0xcd, 0x97, 0xa1, 0x29, 0x8f, 0x27, 0x91, 0x1b, + 0x8a, 0x20, 0xd2, 0x1a, 0xbb, 0xe8, 0x62, 0xcc, 0x5f, 0x08, 0xb5, 0xb7, 0xff, 0x6c, 0x40, 0xad, + 0x1f, 0x08, 0xf7, 0xc6, 0x9d, 0x30, 0xe1, 0x06, 0x3e, 0xb9, 0x07, 0x96, 0x70, 0xe7, 0x3c, 0x16, + 0x6c, 0x1e, 0x36, 0x8c, 0xa6, 0xd1, 0x32, 0x69, 0x26, 0x20, 0x36, 0x94, 0xc2, 0x88, 0xdf, 0xb8, + 0x2f, 0x1a, 0xf9, 0xa6, 0xd1, 0xaa, 0x1e, 0x41, 0x5b, 0x1e, 0xef, 0x8a, 0x89, 0x67, 0x54, 0x23, + 0xe4, 0x6d, 0x28, 0x32, 0xcf, 0x65, 0x71, 0xc3, 0x6c, 0x1a, 0x2d, 0x8b, 0xaa, 0x0d, 0xf9, 0x10, + 0x4a, 0x8b, 0x70, 0xca, 0x04, 0x6f, 0x14, 0x9a, 0x66, 0xab, 0x7a, 0x54, 0x53, 0x96, 0x5f, 0x4a, + 0x19, 0xd5, 0x18, 0xfa, 0x9f, 0x72, 0x8f, 0x0b, 0xde, 0x28, 0x4a, 0xad, 0x35, 0xff, 0x0a, 0x21, + 0xef, 0x40, 0x89, 0x89, 0x60, 0xee, 0x4e, 0x1a, 0xa5, 0xa6, 0xd1, 0xaa, 0x50, 0xbd, 0xb3, 0xff, + 0x60, 0x40, 0x49, 0xb9, 0x23, 0xef, 0x43, 0x21, 0x64, 0xe2, 0x99, 0x3c, 0xff, 0xba, 0x13, 0x29, + 0x27, 0x0f, 0xa0, 0xf8, 0x9c, 0x79, 0x0b, 0xae, 0xa3, 0xa8, 0x2a, 0x85, 0xa7, 0x28, 0x3a, 0xc9, + 0x37, 0x0c, 0xaa, 0x50, 0x62, 0x83, 0xf9, 0x9c, 0x79, 0x32, 0x8e, 0xea, 0x51, 0x5d, 0x29, 0x8d, + 0x96, 0x21, 0x9f, 0x4a, 0x4d, 0x8a, 0x20, 0x79, 0x1f, 0x60, 0xba, 0x08, 0x3d, 0xbc, 0x3e, 0x1e, + 0x37, 0x0a, 0x4d, 0xa3, 0xb5, 0x43, 0x57, 0x24, 0xf6, 0xff, 0x4d, 0x80, 0xcc, 0x86, 0x7c, 0x00, + 0x10, 0x8b, 0xc8, 0xf5, 0x67, 0x63, 0xf4, 0x8c, 0xe7, 0xb3, 0x2e, 0x72, 0xd4, 0x52, 0xb2, 0xa7, + 0xcc, 0x23, 0x77, 0xa1, 0xec, 0xfa, 0x42, 0xa2, 0x78, 0x38, 0xf3, 0x22, 0x47, 0x4b, 0xae, 0x2f, + 0x10, 0x7a, 0x0f, 0x2a, 0x8b, 0x04, 0xc3, 0x33, 0x15, 0x2e, 0x72, 0xb4, 0xbc, 0xc8, 0xc0, 0xeb, + 0x20, 0xf0, 0x24, 0x88, 0xa7, 0xa8, 0x20, 0x88, 0x12, 0x04, 0xbf, 0x03, 0xd6, 0xf5, 0x52, 0xf0, + 0x58, 0xa2, 0xc5, 0xa6, 0xd1, 0xaa, 0x5d, 0xe4, 0x68, 0x45, 0x8a, 0x34, 0x7c, 0xe3, 0x05, 0x4c, + 0x79, 0xc6, 0x4b, 0xcd, 0x23, 0x2c, 0x45, 0x08, 0x1f, 0x41, 0x75, 0xca, 0x27, 0xee, 0x9c, 0x29, + 0xef, 0x65, 0x79, 0x1d, 0x77, 0xd4, 0x75, 0x9c, 0x29, 0xe0, 0xf8, 0xfb, 0x17, 0x39, 0x0a, 0x5a, + 0x0b, 0x6d, 0x8e, 0xa1, 0xe6, 0x71, 0x76, 0xe3, 0xb9, 0xb1, 0xf2, 0x5a, 0x91, 0x46, 0x7b, 0xca, + 0x68, 0x38, 0x61, 0x1e, 0x8b, 0x3a, 0x51, 0xc4, 0x96, 0x17, 0x39, 0x5a, 0x4d, 0x14, 0xd1, 0xee, + 0x10, 0xca, 0xcc, 0x5f, 0x4a, 0x13, 0x4b, 0x9a, 0xbc, 0xdd, 0x56, 0x35, 0xdd, 0x4e, 0x6a, 0xba, + 0xdd, 0xf1, 0xd1, 0xaa, 0xc4, 0xfc, 0xa5, 0x8e, 0xfb, 0x37, 0x71, 0xe0, 0x4b, 0x0b, 0xd0, 0x91, + 0x95, 0x51, 0x82, 0xe0, 0x87, 0xb0, 0x23, 0x41, 0x97, 0x8b, 0x1b, 0xa9, 0x51, 0xd5, 0x1a, 0x55, + 0x14, 0x77, 0xb9, 0xb8, 0xd1, 0xe1, 0xb3, 0x78, 0xe2, 0xba, 0x52, 0xa3, 0xa6, 0x53, 0x52, 0x91, + 0x22, 0x84, 0xef, 0x43, 0x55, 0x7e, 0x7b, 0x2c, 0xef, 0xab, 0xb1, 0xa3, 0x5d, 0x80, 0x14, 0x9e, + 0xa0, 0xec, 0xa4, 0xac, 0xeb, 0xc9, 0x7e, 0x01, 0x05, 0x2c, 0x33, 0x72, 0x0f, 0xca, 0xdc, 0xe3, + 0x73, 0xee, 0x8b, 0x86, 0xd1, 0x34, 0x5b, 0x96, 0xac, 0xaa, 0x44, 0x84, 0x15, 0x1c, 0x44, 0xee, + 0xcc, 0xf5, 0x65, 0x8a, 0x2d, 0xaa, 0x77, 0xc4, 0x86, 0x02, 0xaa, 0x34, 0x4c, 0x59, 0xfb, 0xbb, + 0x59, 0xd9, 0x3a, 0x1e, 0x9f, 0x53, 0x89, 0xa1, 0xad, 0x60, 0xd1, 0x8c, 0x0b, 0x99, 0x65, 0x8b, + 0xea, 0x9d, 0xfd, 0x7b, 0x03, 0x2a, 0x89, 0x2a, 0x21, 0x50, 0xf0, 0xd9, 0x9c, 0xab, 0xfa, 0xa2, + 0x72, 0x4d, 0x3e, 0x06, 0xf3, 0x2b, 0xbe, 0x6c, 0xe4, 0xa5, 0xef, 0x77, 0xd7, 0x7d, 0xb7, 0x7f, + 0xce, 0x97, 0x8e, 0x2f, 0xa2, 0x25, 0x45, 0x9d, 0xfd, 0x63, 0xa8, 0x24, 0x02, 0x52, 0x57, 0x66, + 0xca, 0x13, 0x2e, 0xf1, 0x7d, 0x67, 0x8f, 0xc7, 0xd2, 0x6f, 0xe5, 0x71, 0xfe, 0x87, 0x86, 0xed, + 0x40, 0x51, 0x55, 0x79, 0xaa, 0x82, 0x66, 0xb5, 0xec, 0x39, 0x15, 0xc4, 0x32, 0x54, 0x76, 0xbb, + 0x49, 0x78, 0x8e, 0x3f, 0x09, 0xa6, 0xae, 0x3f, 0xa3, 0x12, 0x7b, 0x9c, 0x6f, 0x18, 0xf6, 0x04, + 0x8a, 0x4e, 0x14, 0x05, 0x11, 0x86, 0x31, 0x09, 0xa6, 0xca, 0xcb, 0x0e, 0x95, 0x6b, 0xd2, 0x80, + 0xf2, 0x9c, 0xc7, 0x31, 0x9b, 0x25, 0xdf, 0x4f, 0xb6, 0xa4, 0x05, 0x85, 0x29, 0x13, 0x4c, 0x3f, + 0xd7, 0xad, 0x75, 0x43, 0xa5, 0x86, 0xfc, 0x48, 0x07, 0xac, 0xb4, 0x76, 0xf1, 0x52, 0xa7, 0xee, + 0xcc, 0x15, 0xb1, 0x66, 0x3c, 0xbd, 0x43, 0x32, 0x0c, 0x23, 0x3e, 0x71, 0x63, 0x37, 0x50, 0xb9, + 0xda, 0xa1, 0x99, 0xc0, 0xfe, 0x11, 0x54, 0x57, 0x2a, 0x99, 0x1c, 0xac, 0xe7, 0x7c, 0x1b, 0x63, + 0x24, 0x0a, 0xf6, 0x3f, 0x0c, 0xa8, 0x0f, 0x17, 0xd7, 0x48, 0xce, 0xd7, 0x9c, 0xf2, 0xaf, 0x17, + 0x3c, 0x16, 0xe4, 0x18, 0xac, 0x38, 0x91, 0x69, 0xea, 0x7a, 0x47, 0x3f, 0x18, 0x25, 0x0e, 0x91, + 0xa1, 0x7b, 0x6e, 0x2c, 0x24, 0x65, 0x24, 0xaa, 0xa4, 0x09, 0x85, 0x30, 0xf0, 0x12, 0x9e, 0x4a, + 0xd8, 0x2e, 0xf0, 0xbc, 0x8b, 0x1c, 0x95, 0x08, 0xf9, 0x04, 0xca, 0x92, 0x85, 0x35, 0x43, 0xa5, + 0xaf, 0xb7, 0x83, 0x42, 0xed, 0x30, 0xd1, 0x20, 0xdf, 0x05, 0x8b, 0xbf, 0x10, 0xdc, 0x97, 0x41, + 0x2b, 0x1a, 0x7e, 0xab, 0x9d, 0xb6, 0x0d, 0x27, 0x81, 0x68, 0xa6, 0x75, 0x62, 0x41, 0x39, 0x52, + 0x41, 0xd8, 0x25, 0x28, 0xe0, 0xa7, 0xed, 0xbf, 0x19, 0xb0, 0xb7, 0x12, 0x61, 0x1c, 0x06, 0x7e, + 0xcc, 0xc9, 0xa7, 0x69, 0x17, 0x50, 0xf1, 0x11, 0x75, 0x8e, 0xd5, 0x0e, 0x84, 0x6f, 0x5b, 0x77, + 0x83, 0x07, 0xb0, 0x13, 0x2f, 0xfd, 0xc9, 0x38, 0xd2, 0xe6, 0x32, 0x42, 0x24, 0xb6, 0x1a, 0x8a, + 0x53, 0xa7, 0x1f, 0x41, 0x91, 0x63, 0xbd, 0xe8, 0xd8, 0x34, 0x9b, 0xcb, 0x12, 0xc2, 0x77, 0x77, + 0x91, 0xa3, 0x0a, 0xff, 0x36, 0x91, 0x01, 0x54, 0x92, 0xaf, 0xdb, 0x7f, 0x32, 0xd3, 0xa4, 0xa5, + 0x99, 0x58, 0xe9, 0x88, 0xc6, 0x2b, 0x3b, 0xe2, 0x31, 0xd4, 0xe2, 0x15, 0x3b, 0xfd, 0x06, 0xc9, + 0x66, 0x6e, 0xe9, 0x9a, 0x1e, 0xf9, 0x00, 0xaa, 0x8b, 0x98, 0x8f, 0x93, 0xd4, 0xc9, 0xe8, 0x29, + 0x2c, 0x62, 0xde, 0xd1, 0xa9, 0xb2, 0xc1, 0xfc, 0x3a, 0x48, 0x72, 0xaa, 0xcb, 0xed, 0x17, 0x83, + 0xe1, 0x25, 0x8b, 0xbe, 0xc2, 0x27, 0x85, 0x20, 0x39, 0x84, 0xc2, 0x1c, 0x1f, 0x51, 0x51, 0xbe, + 0xba, 0xf7, 0xb6, 0x17, 0x54, 0xfb, 0x32, 0x98, 0x72, 0x2a, 0x15, 0xc9, 0x27, 0xb0, 0xc7, 0x3c, + 0x2f, 0xf8, 0xed, 0x98, 0xcd, 0x66, 0x11, 0x9f, 0xc9, 0xa4, 0xe8, 0x56, 0x5b, 0x97, 0x40, 0x27, + 0x93, 0x93, 0x36, 0xe0, 0x79, 0xc6, 0x68, 0xe8, 0xc5, 0x8d, 0xb2, 0x0c, 0x4c, 0x17, 0x17, 0xba, + 0xf4, 0xce, 0x98, 0x60, 0xd4, 0x5a, 0xc4, 0x5c, 0xee, 0x62, 0x72, 0x00, 0x15, 0xae, 0x5f, 0xbc, + 0xec, 0x09, 0x9b, 0x3c, 0x90, 0xe2, 0xe4, 0x3e, 0xd4, 0x54, 0x21, 0xc4, 0xe3, 0xc0, 0xf7, 0x96, + 0xb2, 0x21, 0x54, 0x68, 0x55, 0xcb, 0x06, 0xbe, 0xb7, 0xb4, 0x1f, 0x42, 0x01, 0x1d, 0x13, 0x80, + 0xd2, 0x70, 0x44, 0x9d, 0xce, 0x65, 0x3d, 0x47, 0x2a, 0x50, 0x18, 0xf4, 0x4f, 0x9d, 0xba, 0x81, + 0xab, 0xab, 0x41, 0xaf, 0x57, 0xcf, 0xdb, 0xff, 0x32, 0xa0, 0xb6, 0x1a, 0xf3, 0x6b, 0x27, 0x84, + 0x03, 0x7d, 0x6b, 0x8a, 0xab, 0xb6, 0x3c, 0xc3, 0x95, 0x0b, 0xfb, 0x08, 0xee, 0xc4, 0x6c, 0x1e, + 0x7a, 0x7c, 0xec, 0xfa, 0x82, 0x47, 0x69, 0x7b, 0xa6, 0xbb, 0x4a, 0xdc, 0xd5, 0x52, 0xf2, 0x19, + 0x90, 0x78, 0x11, 0x86, 0x11, 0x8f, 0xe3, 0x71, 0xc4, 0xa7, 0x0b, 0x7f, 0xca, 0x7c, 0xc5, 0xe3, + 0x15, 0xba, 0x97, 0x20, 0x34, 0x01, 0x50, 0xfd, 0x19, 0x67, 0x91, 0xb8, 0xe6, 0x4c, 0x64, 0xae, + 0x8b, 0xd2, 0xf5, 0x5e, 0x8a, 0x24, 0xde, 0xed, 0x87, 0x00, 0x59, 0xee, 0x25, 0x4f, 0xaa, 0xa5, + 0xa6, 0xcf, 0x64, 0x6b, 0x7f, 0x0e, 0x45, 0x59, 0x3f, 0xaf, 0xbd, 0x83, 0x74, 0x90, 0xcb, 0xaf, + 0x0c, 0x72, 0x76, 0x1b, 0xac, 0x94, 0x36, 0xc8, 0xfd, 0x44, 0x45, 0x31, 0x5e, 0x75, 0x85, 0x56, + 0x12, 0xfd, 0xbf, 0x1b, 0x00, 0x43, 0x2e, 0x12, 0x92, 0xbb, 0xcd, 0x7b, 0xc9, 0xa6, 0xc0, 0xfc, + 0x2b, 0xa7, 0xc0, 0x87, 0x48, 0x39, 0xa1, 0xc7, 0x26, 0x5c, 0xb7, 0xcb, 0xf5, 0x81, 0x32, 0x01, + 0x6f, 0x39, 0x77, 0xbe, 0x39, 0x33, 0xd8, 0xff, 0x34, 0xa0, 0x2a, 0xe3, 0xd2, 0x2c, 0x74, 0x9b, + 0xc0, 0xda, 0x19, 0x9b, 0xac, 0x93, 0x80, 0x3e, 0x0e, 0x8f, 0x17, 0x9e, 0xa0, 0xa9, 0x0e, 0xf9, + 0x38, 0x6b, 0x76, 0xe6, 0x56, 0x6e, 0xcb, 0xba, 0xdf, 0xda, 0xdc, 0x5e, 0x78, 0x79, 0x6e, 0xff, + 0x16, 0xf1, 0xfd, 0xd7, 0x80, 0xda, 0xea, 0xb1, 0x48, 0x73, 0xe3, 0x97, 0x81, 0x3c, 0xc1, 0xca, + 0x57, 0x92, 0x82, 0xca, 0xbf, 0xa2, 0xa0, 0xde, 0x20, 0x9c, 0x4f, 0x21, 0x1f, 0xa8, 0x38, 0x76, + 0x8f, 0xee, 0x6d, 0xde, 0x51, 0x7b, 0x10, 0xf2, 0x48, 0x32, 0x10, 0xcd, 0x07, 0xa1, 0xfd, 0x39, + 0x58, 0xa9, 0x80, 0x54, 0xa1, 0xdc, 0xed, 0x3f, 0xed, 0xf4, 0xba, 0x67, 0xf5, 0x1c, 0x12, 0xc3, + 0x99, 0xd3, 0x73, 0x46, 0x48, 0x07, 0x55, 0x28, 0x53, 0xe7, 0xaa, 0xd7, 0x39, 0x75, 0xea, 0x79, + 0x04, 0xbe, 0xbc, 0x3a, 0xeb, 0x8c, 0x9c, 0xba, 0x69, 0xff, 0x35, 0x0f, 0x70, 0xfe, 0x66, 0x25, + 0x9a, 0x85, 0x6a, 0x6e, 0x0d, 0xf5, 0x33, 0x3d, 0xeb, 0x98, 0x32, 0x82, 0xbb, 0x0a, 0xcf, 0xbe, + 0xd1, 0x46, 0x5e, 0xc4, 0xc1, 0x40, 0x8d, 0x3d, 0x6b, 0xb4, 0x58, 0x7c, 0x0d, 0x2d, 0xae, 0x53, + 0x6e, 0xe9, 0xb5, 0x94, 0xbb, 0x96, 0xfb, 0xf2, 0xad, 0x72, 0xff, 0x63, 0xa8, 0x24, 0x07, 0x24, + 0x65, 0x30, 0x3b, 0xbd, 0x9e, 0xba, 0xca, 0xd3, 0x41, 0xff, 0x49, 0xf7, 0xbc, 0x6e, 0x10, 0x0b, + 0x8a, 0xc3, 0x11, 0x5e, 0x5e, 0x9e, 0xdc, 0x81, 0xea, 0xe0, 0xca, 0xa1, 0x9d, 0x51, 0x77, 0xd0, + 0xef, 0xf4, 0xea, 0xa6, 0xfd, 0x47, 0x03, 0xaa, 0xe7, 0x2b, 0x0f, 0xe3, 0x18, 0x6a, 0xfe, 0x4a, + 0x7f, 0xd7, 0x54, 0xb1, 0xa5, 0xf3, 0xd3, 0x35, 0x3d, 0xfc, 0x91, 0xa6, 0xda, 0x7a, 0x7e, 0x7b, + 0xad, 0x6c, 0x6b, 0xea, 0xe6, 0xad, 0xc2, 0x7b, 0x02, 0x7b, 0xa7, 0x2c, 0x64, 0xd7, 0xae, 0xe7, + 0x8a, 0x65, 0x92, 0xf5, 0x35, 0x3f, 0xc6, 0xad, 0xfc, 0xfc, 0xc7, 0x00, 0xb2, 0xea, 0x48, 0x07, + 0xfc, 0x18, 0xea, 0x48, 0xe6, 0x41, 0x24, 0xf8, 0x34, 0x49, 0x93, 0xb1, 0x3d, 0x4d, 0x77, 0x52, + 0x45, 0x9d, 0xac, 0x9f, 0xc2, 0x5b, 0x99, 0x6d, 0x92, 0xf2, 0x58, 0x96, 0xd9, 0x66, 0x4d, 0x90, + 0x54, 0x35, 0x11, 0xc5, 0xd8, 0x34, 0x67, 0xfd, 0xcb, 0xee, 0xf8, 0x39, 0x8f, 0xf4, 0x8d, 0x20, + 0x77, 0x57, 0x51, 0xf6, 0x54, 0x89, 0xd6, 0x23, 0x2d, 0xdc, 0x2a, 0xd2, 0x5f, 0x83, 0x95, 0x1e, + 0x7a, 0xeb, 0xaf, 0x0b, 0x1b, 0x6a, 0x41, 0x34, 0x63, 0xbe, 0xfb, 0x3b, 0x26, 0x92, 0x61, 0xd9, + 0xa2, 0x6b, 0x32, 0x6c, 0x49, 0xeb, 0xa7, 0x4a, 0xb6, 0x07, 0x67, 0x50, 0x49, 0x22, 0xc0, 0xa6, + 0xfd, 0xb3, 0xe1, 0xa0, 0x5f, 0xcf, 0x61, 0x91, 0x9d, 0xfc, 0x72, 0xe4, 0x0c, 0x55, 0xbd, 0x5d, + 0xd1, 0xc1, 0x68, 0x50, 0xcf, 0xe3, 0xb2, 0x33, 0x3c, 0xed, 0x76, 0xeb, 0x26, 0xd9, 0x01, 0x0b, + 0x55, 0xc7, 0x5d, 0x67, 0xf4, 0xa4, 0x5e, 0x38, 0xe8, 0xac, 0x8f, 0x67, 0x72, 0x30, 0x20, 0xb0, + 0x3b, 0xea, 0xd0, 0x73, 0x67, 0x34, 0x3e, 0x73, 0x9e, 0x74, 0xfb, 0x0e, 0x72, 0xc2, 0x0e, 0x58, + 0x83, 0xfe, 0xf8, 0xf4, 0xa2, 0xd3, 0x3f, 0x47, 0x5a, 0xc0, 0xd9, 0xa1, 0x73, 0x79, 0xd5, 0x73, + 0xea, 0xf9, 0xa3, 0x7f, 0x1b, 0x50, 0xc0, 0xab, 0x22, 0x1d, 0xa8, 0xa5, 0x99, 0x75, 0x79, 0x4c, + 0xf4, 0x0f, 0xa6, 0x8d, 0xb2, 0xd9, 0x6f, 0x6c, 0x02, 0xba, 0x0c, 0x0e, 0xc0, 0x3c, 0xe7, 0x82, + 0xd4, 0x5f, 0x7e, 0xfb, 0xfb, 0x7b, 0x2b, 0x92, 0x4c, 0x77, 0x98, 0xe9, 0x0e, 0x37, 0x74, 0x57, + 0x1b, 0xcd, 0x17, 0x60, 0xa5, 0x83, 0x35, 0x59, 0x9f, 0x4c, 0xd2, 0xdf, 0x12, 0xfb, 0xef, 0x6e, + 0xc8, 0x95, 0x75, 0xcb, 0x78, 0x64, 0x3c, 0xfe, 0x02, 0x6a, 0x32, 0xdd, 0x31, 0x8f, 0x9e, 0xbb, + 0x13, 0x4e, 0xee, 0x6d, 0xfc, 0x56, 0x7a, 0xe2, 0x7a, 0x7c, 0x20, 0x6f, 0x31, 0x6e, 0xfc, 0xaf, + 0xac, 0x4b, 0xc8, 0x9f, 0xbb, 0x43, 0x65, 0x71, 0x72, 0xf8, 0x97, 0x9f, 0x14, 0x1f, 0xb5, 0x7f, + 0xd0, 0x7e, 0xf4, 0xab, 0x07, 0x33, 0x57, 0x3c, 0x5b, 0x5c, 0xb7, 0x27, 0xc1, 0xfc, 0x30, 0x08, + 0xb1, 0x62, 0xfd, 0x1b, 0x77, 0x76, 0x88, 0xca, 0xea, 0x6f, 0x28, 0xb9, 0xbc, 0x2e, 0xc9, 0xf5, + 0xf7, 0xbe, 0x09, 0x00, 0x00, 0xff, 0xff, 0x6e, 0xc7, 0x5a, 0xed, 0xcf, 0x12, 0x00, 0x00, +} diff --git a/gnmi/gnmi/gnmi.proto b/gnmi/gnmi/gnmi.proto new file mode 100644 index 0000000..c24687c --- /dev/null +++ b/gnmi/gnmi/gnmi.proto @@ -0,0 +1,458 @@ +// +// Copyright 2016 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +syntax = "proto3"; + +import "google/protobuf/any.proto"; +import "google/protobuf/descriptor.proto"; +import "github.com/Juniper/jtimon/gnmi/gnmi_ext.proto"; + +// Package gNMI defines a service specification for the gRPC Network Management +// Interface. This interface is defined to be a standard interface via which +// a network management system ("client") can subscribe to state values, +// retrieve snapshots of state information, and manipulate the state of a data +// tree supported by a device ("target"). +// +// This document references the gNMI Specification which can be found at +// http://github.com/openconfig/reference/blob/master/rpc/gnmi +package gnmi; + +// Define a protobuf FileOption that defines the gNMI service version. +extend google.protobuf.FileOptions { + // The gNMI service semantic version. + string gnmi_service = 1001; +} + +// gNMI_service is the current version of the gNMI service, returned through +// the Capabilities RPC. +option (gnmi_service) = "0.7.0"; + +option go_package = "github.com/openconfig/gnmi/proto/gnmi"; + +service gNMI { + // Capabilities allows the client to retrieve the set of capabilities that + // is supported by the target. This allows the target to validate the + // service version that is implemented and retrieve the set of models that + // the target supports. The models can then be specified in subsequent RPCs + // to restrict the set of data that is utilized. + // Reference: gNMI Specification Section 3.2 + rpc Capabilities(CapabilityRequest) returns (CapabilityResponse); + // Retrieve a snapshot of data from the target. A Get RPC requests that the + // target snapshots a subset of the data tree as specified by the paths + // included in the message and serializes this to be returned to the + // client using the specified encoding. + // Reference: gNMI Specification Section 3.3 + rpc Get(GetRequest) returns (GetResponse); + // Set allows the client to modify the state of data on the target. The + // paths to modified along with the new values that the client wishes + // to set the value to. + // Reference: gNMI Specification Section 3.4 + rpc Set(SetRequest) returns (SetResponse); + // Subscribe allows a client to request the target to send it values + // of particular paths within the data tree. These values may be streamed + // at a particular cadence (STREAM), sent one off on a long-lived channel + // (POLL), or sent as a one-off retrieval (ONCE). + // Reference: gNMI Specification Section 3.5 + rpc Subscribe(stream SubscribeRequest) returns (stream SubscribeResponse); +} + +// Notification is a re-usable message that is used to encode data from the +// target to the client. A Notification carries two types of changes to the data +// tree: +// - Deleted values (delete) - a set of paths that have been removed from the +// data tree. +// - Updated values (update) - a set of path-value pairs indicating the path +// whose value has changed in the data tree. +// Reference: gNMI Specification Section 2.1 +message Notification { + int64 timestamp = 1; // Timestamp in nanoseconds since Epoch. + Path prefix = 2; // Prefix used for paths in the message. + // An alias for the path specified in the prefix field. + // Reference: gNMI Specification Section 2.4.2 + string alias = 3; + repeated Update update = 4; // Data elements that have changed values. + repeated Path delete = 5; // Data elements that have been deleted. + // This notification contains a set of paths that are always updated together + // referenced by a globally unique prefix. + bool atomic = 6; +} + +// Update is a re-usable message that is used to store a particular Path, +// Value pair. +// Reference: gNMI Specification Section 2.1 +message Update { + Path path = 1; // The path (key) for the update. + Value value = 2 [deprecated=true]; // The value (value) for the update. + TypedValue val = 3; // The explicitly typed update value. + uint32 duplicates = 4; // Number of coalesced duplicates. +} + +// TypedValue is used to encode a value being sent between the client and +// target (originated by either entity). +message TypedValue { + // One of the fields within the val oneof is populated with the value + // of the update. The type of the value being included in the Update + // determines which field should be populated. In the case that the + // encoding is a particular form of the base protobuf type, a specific + // field is used to store the value (e.g., json_val). + oneof value { + string string_val = 1; // String value. + int64 int_val = 2; // Integer value. + uint64 uint_val = 3; // Unsigned integer value. + bool bool_val = 4; // Bool value. + bytes bytes_val = 5; // Arbitrary byte sequence value. + float float_val = 6; // Floating point value. + Decimal64 decimal_val = 7; // Decimal64 encoded value. + ScalarArray leaflist_val = 8; // Mixed type scalar array value. + google.protobuf.Any any_val = 9; // protobuf.Any encoded bytes. + bytes json_val = 10; // JSON-encoded text. + bytes json_ietf_val = 11; // JSON-encoded text per RFC7951. + string ascii_val = 12; // Arbitrary ASCII text. + // Protobuf binary encoded bytes. The message type is not included. + // See the specification at + // github.com/openconfig/reference/blob/master/rpc/gnmi/protobuf-vals.md + // for a complete specification. + bytes proto_bytes = 13; + } +} + +// Path encodes a data tree path as a series of repeated strings, with +// each element of the path representing a data tree node name and the +// associated attributes. +// Reference: gNMI Specification Section 2.2.2. +message Path { + // Elements of the path are no longer encoded as a string, but rather within + // the elem field as a PathElem message. + repeated string element = 1 [deprecated=true]; + string origin = 2; // Label to disambiguate path. + repeated PathElem elem = 3; // Elements of the path. + string target = 4; // The name of the target + // (Sec. 2.2.2.1) +} + +// PathElem encodes an element of a gNMI path, along with any attributes (keys) +// that may be associated with it. +// Reference: gNMI Specification Section 2.2.2. +message PathElem { + string name = 1; // The name of the element in the path. + map key = 2; // Map of key (attribute) name to value. +} + +// Value encodes a data tree node's value - along with the way in which +// the value is encoded. This message is deprecated by gNMI 0.3.0. +// Reference: gNMI Specification Section 2.2.3. +message Value { + option deprecated = true; + bytes value = 1; // Value of the variable being transmitted. + Encoding type = 2; // Encoding used for the value field. +} + +// Encoding defines the value encoding formats that are supported by the gNMI +// protocol. These encodings are used by both the client (when sending Set +// messages to modify the state of the target) and the target when serializing +// data to be returned to the client (in both Subscribe and Get RPCs). +// Reference: gNMI Specification Section 2.3 +enum Encoding { + JSON = 0; // JSON encoded text. + BYTES = 1; // Arbitrarily encoded bytes. + PROTO = 2; // Encoded according to out-of-band agreed Protobuf. + ASCII = 3; // ASCII text of an out-of-band agreed format. + JSON_IETF = 4; // JSON encoded text as per RFC7951. +} + +// Error message previously utilised to return errors to the client. Deprecated +// in favour of using the google.golang.org/genproto/googleapis/rpc/status +// message in the RPC response. +// Reference: gNMI Specification Section 2.5 +message Error { + option deprecated = true; + uint32 code = 1; // Canonical gRPC error code. + string message = 2; // Human readable error. + google.protobuf.Any data = 3; // Optional additional information. +} + +// Decimal64 is used to encode a fixed precision decimal number. The value +// is expressed as a set of digits with the precision specifying the +// number of digits following the decimal point in the digit set. +message Decimal64 { + int64 digits = 1; // Set of digits. + uint32 precision = 2; // Number of digits following the decimal point. +} + +// ScalarArray is used to encode a mixed-type array of values. +message ScalarArray { + // The set of elements within the array. Each TypedValue message should + // specify only elements that have a field identifier of 1-7 (i.e., the + // values are scalar values). + repeated TypedValue element = 1; +} + +// SubscribeRequest is the message sent by the client to the target when +// initiating a subscription to a set of paths within the data tree. The +// request field must be populated and the initial message must specify a +// SubscriptionList to initiate a subscription. The message is subsequently +// used to define aliases or trigger polled data to be sent by the target. +// Reference: gNMI Specification Section 3.5.1.1 +message SubscribeRequest { + oneof request { + SubscriptionList subscribe = 1; // Specify the paths within a subscription. + Poll poll = 3; // Trigger a polled update. + AliasList aliases = 4; // Aliases to be created. + } + // Extension messages associated with the SubscribeRequest. See the + // gNMI extension specification for further definition. + repeated gnmi_ext.Extension extension = 5; +} + +// Poll is sent within a SubscribeRequest to trigger the device to +// send telemetry updates for the paths that are associated with the +// subscription. +// Reference: gNMI Specification Section Section 3.5.1.4 +message Poll { +} + +// SubscribeResponse is the message used by the target within a Subscribe RPC. +// The target includes a Notification message which is used to transmit values +// of the path(s) that are associated with the subscription. The same message +// is to indicate that the target has sent all data values once (is +// synchronized). +// Reference: gNMI Specification Section 3.5.1.4 +message SubscribeResponse { + oneof response { + Notification update = 1; // Changed or sampled value for a path. + // Indicate target has sent all values associated with the subscription + // at least once. + bool sync_response = 3; + // Deprecated in favour of google.golang.org/genproto/googleapis/rpc/status + Error error = 4 [deprecated=true]; + } + // Extension messages associated with the SubscribeResponse. See the + // gNMI extension specification for further definition. + repeated gnmi_ext.Extension extension = 5; +} + +// SubscriptionList is used within a Subscribe message to specify the list of +// paths that the client wishes to subscribe to. The message consists of a +// list of (possibly prefixed) paths, and options that relate to the +// subscription. +// Reference: gNMI Specification Section 3.5.1.2 +message SubscriptionList { + Path prefix = 1; // Prefix used for paths. + repeated Subscription subscription = 2; // Set of subscriptions to create. + // Whether target defined aliases are allowed within the subscription. + bool use_aliases = 3; + QOSMarking qos = 4; // DSCP marking to be used. + // Mode of the subscription. + enum Mode { + STREAM = 0; // Values streamed by the target (Sec. 3.5.1.5.2). + ONCE = 1; // Values sent once-off by the target (Sec. 3.5.1.5.1). + POLL = 2; // Values sent in response to a poll request (Sec. 3.5.1.5.3). + } + Mode mode = 5; + // Whether elements of the schema that are marked as eligible for aggregation + // should be aggregated or not. + bool allow_aggregation = 6; + // The set of schemas that define the elements of the data tree that should + // be sent by the target. + repeated ModelData use_models = 7; + // The encoding that the target should use within the Notifications generated + // corresponding to the SubscriptionList. + Encoding encoding = 8; + // An optional field to specify that only updates to current state should be + // sent to a client. If set, the initial state is not sent to the client but + // rather only the sync message followed by any subsequent updates to the + // current state. For ONCE and POLL modes, this causes the server to send only + // the sync message (Sec. 3.5.2.3). + bool updates_only = 9; +} + +// Subscription is a single request within a SubscriptionList. The path +// specified is interpreted (along with the prefix) as the elements of the data +// tree that the client is subscribing to. The mode determines how the target +// should trigger updates to be sent. +// Reference: gNMI Specification Section 3.5.1.3 +message Subscription { + Path path = 1; // The data tree path. + SubscriptionMode mode = 2; // Subscription mode to be used. + uint64 sample_interval = 3; // ns between samples in SAMPLE mode. + // Indicates whether values that have not changed should be sent in a SAMPLE + // subscription. + bool suppress_redundant = 4; + // Specifies the maximum allowable silent period in nanoseconds when + // suppress_redundant is in use. The target should send a value at least once + // in the period specified. + uint64 heartbeat_interval = 5; +} + +// SubscriptionMode is the mode of the subscription, specifying how the +// target must return values in a subscription. +// Reference: gNMI Specification Section 3.5.1.3 +enum SubscriptionMode { + TARGET_DEFINED = 0; // The target selects the relevant mode for each element. + ON_CHANGE = 1; // The target sends an update on element value change. + SAMPLE = 2; // The target samples values according to the interval. +} + +// QOSMarking specifies the DSCP value to be set on transmitted telemetry +// updates from the target. +// Reference: gNMI Specification Section 3.5.1.2 +message QOSMarking { + uint32 marking = 1; +} + +// Alias specifies a data tree path, and an associated string which defines an +// alias which is to be used for this path in the context of the RPC. The alias +// is specified as a string which is prefixed with "#" to disambiguate it from +// data tree element paths. +// Reference: gNMI Specification Section 2.4.2 +message Alias { + Path path = 1; // The path to be aliased. + string alias = 2; // The alias value, a string prefixed by "#". +} + +// AliasList specifies a list of aliases. It is used in a SubscribeRequest for +// a client to create a set of aliases that the target is to utilize. +// Reference: gNMI Specification Section 3.5.1.6 +message AliasList { + repeated Alias alias = 1; // The set of aliases to be created. +} + +// SetRequest is sent from a client to the target to update values in the data +// tree. Paths are either deleted by the client, or modified by means of being +// updated, or replaced. Where a replace is used, unspecified values are +// considered to be replaced, whereas when update is used the changes are +// considered to be incremental. The set of changes that are specified within +// a single SetRequest are considered to be a transaction. +// Reference: gNMI Specification Section 3.4.1 +message SetRequest { + Path prefix = 1; // Prefix used for paths in the message. + repeated Path delete = 2; // Paths to be deleted from the data tree. + repeated Update replace = 3; // Updates specifying elements to be replaced. + repeated Update update = 4; // Updates specifying elements to updated. + // Extension messages associated with the SetRequest. See the + // gNMI extension specification for further definition. + repeated gnmi_ext.Extension extension = 5; +} + +// SetResponse is the response to a SetRequest, sent from the target to the +// client. It reports the result of the modifications to the data tree that were +// specified by the client. Errors for this RPC should be reported using the +// https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto +// message in the RPC return. The gnmi.Error message can be used to add additional +// details where required. +// Reference: gNMI Specification Section 3.4.2 +message SetResponse { + Path prefix = 1; // Prefix used for paths. + // A set of responses specifying the result of the operations specified in + // the SetRequest. + repeated UpdateResult response = 2; + Error message = 3 [deprecated=true]; // The overall status of the transaction. + int64 timestamp = 4; // Timestamp of transaction (ns since epoch). + // Extension messages associated with the SetResponse. See the + // gNMI extension specification for further definition. + repeated gnmi_ext.Extension extension = 5; +} + +// UpdateResult is used within the SetResponse message to communicate the +// result of an operation specified within a SetRequest message. +// Reference: gNMI Specification Section 3.4.2 +message UpdateResult { + // The operation that was associated with the Path specified. + enum Operation { + INVALID = 0; + DELETE = 1; // The result relates to a delete of Path. + REPLACE = 2; // The result relates to a replace of Path. + UPDATE = 3; // The result relates to an update of Path. + } + // Deprecated timestamp for the UpdateResult, this field has been + // replaced by the timestamp within the SetResponse message, since + // all mutations effected by a set should be applied as a single + // transaction. + int64 timestamp = 1 [deprecated=true]; + Path path = 2; // Path associated with the update. + Error message = 3 [deprecated=true]; // Status of the update operation. + Operation op = 4; // Update operation type. +} + +// GetRequest is sent when a client initiates a Get RPC. It is used to specify +// the set of data elements for which the target should return a snapshot of +// data. The use_models field specifies the set of schema modules that are to +// be used by the target - where use_models is not specified then the target +// must use all schema models that it has. +// Reference: gNMI Specification Section 3.3.1 +message GetRequest { + Path prefix = 1; // Prefix used for paths. + repeated Path path = 2; // Paths requested by the client. + // Type of elements within the data tree. + enum DataType { + ALL = 0; // All data elements. + CONFIG = 1; // Config (rw) only elements. + STATE = 2; // State (ro) only elements. + // Data elements marked in the schema as operational. This refers to data + // elements whose value relates to the state of processes or interactions + // running on the device. + OPERATIONAL = 3; + } + DataType type = 3; // The type of data being requested. + Encoding encoding = 5; // Encoding to be used. + repeated ModelData use_models = 6; // The schema models to be used. + // Extension messages associated with the GetRequest. See the + // gNMI extension specification for further definition. + repeated gnmi_ext.Extension extension = 7; +} + +// GetResponse is used by the target to respond to a GetRequest from a client. +// The set of Notifications corresponds to the data values that are requested +// by the client in the GetRequest. +// Reference: gNMI Specification Section 3.3.2 +message GetResponse { + repeated Notification notification = 1; // Data values. + Error error = 2 [deprecated=true]; // Errors that occurred in the Get. + // Extension messages associated with the GetResponse. See the + // gNMI extension specification for further definition. + repeated gnmi_ext.Extension extension = 3; +} + +// CapabilityRequest is sent by the client in the Capabilities RPC to request +// that the target reports its capabilities. +// Reference: gNMI Specification Section 3.2.1 +message CapabilityRequest { + // Extension messages associated with the CapabilityRequest. See the + // gNMI extension specification for further definition. + repeated gnmi_ext.Extension extension = 1; +} + +// CapabilityResponse is used by the target to report its capabilities to the +// client within the Capabilities RPC. +// Reference: gNMI Specification Section 3.2.2 +message CapabilityResponse { + repeated ModelData supported_models = 1; // Supported schema models. + repeated Encoding supported_encodings = 2; // Supported encodings. + string gNMI_version = 3; // Supported gNMI version. + // Extension messages associated with the CapabilityResponse. See the + // gNMI extension specification for further definition. + repeated gnmi_ext.Extension extension = 4; +} + +// ModelData is used to describe a set of schema modules. It can be used in a +// CapabilityResponse where a target reports the set of modules that it +// supports, and within the SubscribeRequest and GetRequest messages to specify +// the set of models from which data tree elements should be reported. +// Reference: gNMI Specification Section 3.2.3 +message ModelData { + string name = 1; // Name of the model. + string organization = 2; // Organization publishing the model. + string version = 3; // Semantic version of the model. +} diff --git a/gnmi/gnmi_ext/gnmi_ext.pb.go b/gnmi/gnmi_ext/gnmi_ext.pb.go new file mode 100644 index 0000000..f37f605 --- /dev/null +++ b/gnmi/gnmi_ext/gnmi_ext.pb.go @@ -0,0 +1,322 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: gnmi_ext.proto + +/* +Package gnmi_ext is a generated protocol buffer package. + +Package gnmi_ext defines a set of extensions messages which can be optionally +included with the request and response messages of gNMI RPCs. A set of +well-known extensions are defined within this file, along with a registry for +extensions defined outside of this package. + +It is generated from these files: + gnmi_ext.proto + +It has these top-level messages: + Extension + RegisteredExtension + MasterArbitration + Uint128 + Role +*/ +package gnmi_ext + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// RegisteredExtension is an enumeration acting as a registry for extensions +// defined by external sources. +type ExtensionID int32 + +const ( + ExtensionID_EID_UNSET ExtensionID = 0 + // Juniper Telemetry header + ExtensionID_EID_JUNIPER_TELEMETRY_HEADER ExtensionID = 1 + // An experimental extension that may be used during prototyping of a new + // extension. + ExtensionID_EID_EXPERIMENTAL ExtensionID = 999 +) + +var ExtensionID_name = map[int32]string{ + 0: "EID_UNSET", + 1: "EID_JUNIPER_TELEMETRY_HEADER", + 999: "EID_EXPERIMENTAL", +} +var ExtensionID_value = map[string]int32{ + "EID_UNSET": 0, + "EID_JUNIPER_TELEMETRY_HEADER": 1, + "EID_EXPERIMENTAL": 999, +} + +func (x ExtensionID) String() string { + return proto.EnumName(ExtensionID_name, int32(x)) +} +func (ExtensionID) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +// The Extension message contains a single gNMI extension. +type Extension struct { + // Types that are valid to be assigned to Ext: + // *Extension_RegisteredExt + // *Extension_MasterArbitration + Ext isExtension_Ext `protobuf_oneof:"ext"` +} + +func (m *Extension) Reset() { *m = Extension{} } +func (m *Extension) String() string { return proto.CompactTextString(m) } +func (*Extension) ProtoMessage() {} +func (*Extension) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +type isExtension_Ext interface{ isExtension_Ext() } + +type Extension_RegisteredExt struct { + RegisteredExt *RegisteredExtension `protobuf:"bytes,1,opt,name=registered_ext,json=registeredExt,oneof"` +} +type Extension_MasterArbitration struct { + MasterArbitration *MasterArbitration `protobuf:"bytes,2,opt,name=master_arbitration,json=masterArbitration,oneof"` +} + +func (*Extension_RegisteredExt) isExtension_Ext() {} +func (*Extension_MasterArbitration) isExtension_Ext() {} + +func (m *Extension) GetExt() isExtension_Ext { + if m != nil { + return m.Ext + } + return nil +} + +func (m *Extension) GetRegisteredExt() *RegisteredExtension { + if x, ok := m.GetExt().(*Extension_RegisteredExt); ok { + return x.RegisteredExt + } + return nil +} + +func (m *Extension) GetMasterArbitration() *MasterArbitration { + if x, ok := m.GetExt().(*Extension_MasterArbitration); ok { + return x.MasterArbitration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Extension) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Extension_OneofMarshaler, _Extension_OneofUnmarshaler, _Extension_OneofSizer, []interface{}{ + (*Extension_RegisteredExt)(nil), + (*Extension_MasterArbitration)(nil), + } +} + +func _Extension_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Extension) + // ext + switch x := m.Ext.(type) { + case *Extension_RegisteredExt: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.RegisteredExt); err != nil { + return err + } + case *Extension_MasterArbitration: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.MasterArbitration); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Extension.Ext has unexpected type %T", x) + } + return nil +} + +func _Extension_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Extension) + switch tag { + case 1: // ext.registered_ext + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(RegisteredExtension) + err := b.DecodeMessage(msg) + m.Ext = &Extension_RegisteredExt{msg} + return true, err + case 2: // ext.master_arbitration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MasterArbitration) + err := b.DecodeMessage(msg) + m.Ext = &Extension_MasterArbitration{msg} + return true, err + default: + return false, nil + } +} + +func _Extension_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Extension) + // ext + switch x := m.Ext.(type) { + case *Extension_RegisteredExt: + s := proto.Size(x.RegisteredExt) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *Extension_MasterArbitration: + s := proto.Size(x.MasterArbitration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// The RegisteredExtension message defines an extension which is defined outside +// of this file. +type RegisteredExtension struct { + Id ExtensionID `protobuf:"varint,1,opt,name=id,enum=gnmi_ext.ExtensionID" json:"id,omitempty"` + Msg []byte `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (m *RegisteredExtension) Reset() { *m = RegisteredExtension{} } +func (m *RegisteredExtension) String() string { return proto.CompactTextString(m) } +func (*RegisteredExtension) ProtoMessage() {} +func (*RegisteredExtension) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +func (m *RegisteredExtension) GetId() ExtensionID { + if m != nil { + return m.Id + } + return ExtensionID_EID_UNSET +} + +func (m *RegisteredExtension) GetMsg() []byte { + if m != nil { + return m.Msg + } + return nil +} + +// MasterArbitration is used to select the master among multiple gNMI clients +// with the same Roles. The client with the largest election_id is honored as +// the master. +// The document about gNMI master arbitration can be found at +// https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-master-arbitration.md +type MasterArbitration struct { + Role *Role `protobuf:"bytes,1,opt,name=role" json:"role,omitempty"` + ElectionId *Uint128 `protobuf:"bytes,2,opt,name=election_id,json=electionId" json:"election_id,omitempty"` +} + +func (m *MasterArbitration) Reset() { *m = MasterArbitration{} } +func (m *MasterArbitration) String() string { return proto.CompactTextString(m) } +func (*MasterArbitration) ProtoMessage() {} +func (*MasterArbitration) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } + +func (m *MasterArbitration) GetRole() *Role { + if m != nil { + return m.Role + } + return nil +} + +func (m *MasterArbitration) GetElectionId() *Uint128 { + if m != nil { + return m.ElectionId + } + return nil +} + +// Representation of unsigned 128-bit integer. +type Uint128 struct { + High uint64 `protobuf:"varint,1,opt,name=high" json:"high,omitempty"` + Low uint64 `protobuf:"varint,2,opt,name=low" json:"low,omitempty"` +} + +func (m *Uint128) Reset() { *m = Uint128{} } +func (m *Uint128) String() string { return proto.CompactTextString(m) } +func (*Uint128) ProtoMessage() {} +func (*Uint128) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } + +func (m *Uint128) GetHigh() uint64 { + if m != nil { + return m.High + } + return 0 +} + +func (m *Uint128) GetLow() uint64 { + if m != nil { + return m.Low + } + return 0 +} + +// There can be one master for each role. The role is identified by its id. +type Role struct { + Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` +} + +func (m *Role) Reset() { *m = Role{} } +func (m *Role) String() string { return proto.CompactTextString(m) } +func (*Role) ProtoMessage() {} +func (*Role) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } + +func (m *Role) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +func init() { + proto.RegisterType((*Extension)(nil), "gnmi_ext.Extension") + proto.RegisterType((*RegisteredExtension)(nil), "gnmi_ext.RegisteredExtension") + proto.RegisterType((*MasterArbitration)(nil), "gnmi_ext.MasterArbitration") + proto.RegisterType((*Uint128)(nil), "gnmi_ext.Uint128") + proto.RegisterType((*Role)(nil), "gnmi_ext.Role") + proto.RegisterEnum("gnmi_ext.ExtensionID", ExtensionID_name, ExtensionID_value) +} + +func init() { proto.RegisterFile("gnmi_ext.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 377 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0xdf, 0x6a, 0xe2, 0x40, + 0x14, 0xc6, 0x8d, 0x66, 0xd7, 0xf5, 0xb8, 0x86, 0x38, 0x8b, 0x8b, 0xd0, 0x16, 0x24, 0x50, 0xe8, + 0x1f, 0x30, 0x34, 0xbd, 0xe9, 0xad, 0xe2, 0x14, 0x53, 0x34, 0xc8, 0x34, 0x81, 0xb6, 0x37, 0x41, + 0xcd, 0x34, 0x0e, 0x4d, 0x32, 0x12, 0xa7, 0xd4, 0x47, 0xea, 0x9b, 0xf5, 0x35, 0xca, 0x0c, 0x9a, + 0x48, 0xdb, 0xbb, 0xf3, 0xe7, 0x9b, 0xef, 0x7c, 0x3f, 0x18, 0x30, 0xe2, 0x2c, 0x65, 0x21, 0xdd, + 0x8a, 0xfe, 0x3a, 0xe7, 0x82, 0xa3, 0x3f, 0xfb, 0xde, 0x7a, 0xd7, 0xa0, 0x81, 0xb7, 0x82, 0x66, + 0x1b, 0xc6, 0x33, 0x74, 0x0b, 0x46, 0x4e, 0x63, 0xb6, 0x11, 0x34, 0xa7, 0x91, 0xdc, 0x77, 0xb5, + 0x9e, 0x76, 0xd6, 0x74, 0x4e, 0xfa, 0x85, 0x01, 0x29, 0xf6, 0xc5, 0xb3, 0x71, 0x85, 0xb4, 0xf2, + 0xc3, 0x31, 0x9a, 0x00, 0x4a, 0xe7, 0xb2, 0x0d, 0xe7, 0xf9, 0x82, 0x89, 0x7c, 0x2e, 0x18, 0xcf, + 0xba, 0x55, 0xe5, 0x75, 0x54, 0x7a, 0x4d, 0x95, 0x66, 0x50, 0x4a, 0xc6, 0x15, 0xd2, 0x4e, 0xbf, + 0x0e, 0x87, 0xbf, 0xa0, 0x26, 0xa3, 0x7a, 0xf0, 0xef, 0x87, 0xe3, 0xe8, 0x14, 0xaa, 0x2c, 0x52, + 0x39, 0x0d, 0xa7, 0x53, 0x7a, 0x17, 0x02, 0x77, 0x44, 0xaa, 0x2c, 0x42, 0x26, 0xd4, 0xd2, 0x4d, + 0xac, 0x32, 0xfc, 0x25, 0xb2, 0xb4, 0x5e, 0xa0, 0xfd, 0x2d, 0x00, 0xb2, 0x40, 0xcf, 0x79, 0x42, + 0x77, 0xdc, 0xc6, 0x01, 0x37, 0x4f, 0x28, 0x51, 0x3b, 0xe4, 0x40, 0x93, 0x26, 0x74, 0x29, 0xf5, + 0x21, 0x8b, 0x76, 0x58, 0xed, 0x52, 0x1a, 0xb0, 0x4c, 0x5c, 0x39, 0x37, 0x04, 0xf6, 0x2a, 0x37, + 0xb2, 0x6c, 0xa8, 0xef, 0xc6, 0x08, 0x81, 0xbe, 0x62, 0xf1, 0x4a, 0x9d, 0xd0, 0x89, 0xaa, 0x65, + 0xba, 0x84, 0xbf, 0x29, 0x2b, 0x9d, 0xc8, 0xd2, 0xfa, 0x0f, 0xba, 0x3c, 0x89, 0x8c, 0x02, 0xaf, + 0x21, 0x39, 0x2e, 0x02, 0x68, 0x1e, 0xa0, 0xa1, 0x16, 0x34, 0xb0, 0x3b, 0x0a, 0x03, 0xef, 0x1e, + 0xfb, 0x66, 0x05, 0xf5, 0xe0, 0x58, 0xb6, 0x77, 0x81, 0xe7, 0xce, 0x30, 0x09, 0x7d, 0x3c, 0xc1, + 0x53, 0xec, 0x93, 0xc7, 0x70, 0x8c, 0x07, 0x23, 0x4c, 0x4c, 0x0d, 0x75, 0xc0, 0x94, 0x0a, 0xfc, + 0x30, 0xc3, 0xc4, 0x9d, 0x62, 0xcf, 0x1f, 0x4c, 0xcc, 0x8f, 0xfa, 0xf0, 0xf2, 0xe9, 0x3c, 0x66, + 0x62, 0xf5, 0xba, 0xe8, 0x2f, 0x79, 0x6a, 0xf3, 0x35, 0xcd, 0x96, 0x3c, 0x7b, 0x66, 0xb1, 0x2d, + 0xa9, 0x6c, 0xf5, 0x6b, 0xec, 0x3d, 0xe0, 0xe2, 0xb7, 0xea, 0xaf, 0x3f, 0x03, 0x00, 0x00, 0xff, + 0xff, 0x15, 0x34, 0x11, 0x32, 0x57, 0x02, 0x00, 0x00, +} diff --git a/gnmi/gnmi_ext/gnmi_ext.proto b/gnmi/gnmi_ext/gnmi_ext.proto new file mode 100644 index 0000000..671cf49 --- /dev/null +++ b/gnmi/gnmi_ext/gnmi_ext.proto @@ -0,0 +1,78 @@ +// +// Copyright 2018 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +syntax = "proto3"; + +// Package gnmi_ext defines a set of extensions messages which can be optionally +// included with the request and response messages of gNMI RPCs. A set of +// well-known extensions are defined within this file, along with a registry for +// extensions defined outside of this package. +package gnmi_ext; + +option go_package = "github.com/openconfig/gnmi/proto/gnmi_ext"; + +// The Extension message contains a single gNMI extension. +message Extension { + oneof ext { + RegisteredExtension registered_ext = 1; // A registered extension. + // Well known extensions. + MasterArbitration master_arbitration = 2; // Master arbitration extension. + } +} + +// The RegisteredExtension message defines an extension which is defined outside +// of this file. +message RegisteredExtension { + ExtensionID id = 1; // The unique ID assigned to this extension. + bytes msg = 2; // The binary-marshalled protobuf extension payload. +} + +// RegisteredExtension is an enumeration acting as a registry for extensions +// defined by external sources. +enum ExtensionID { + EID_UNSET = 0; + // New extensions are to be defined within this enumeration - their definition + // MUST link to a reference describing their implementation. + + // Juniper Telemetry header + EID_JUNIPER_TELEMETRY_HEADER = 1; + + // An experimental extension that may be used during prototyping of a new + // extension. + EID_EXPERIMENTAL = 999; +} + +// MasterArbitration is used to select the master among multiple gNMI clients +// with the same Roles. The client with the largest election_id is honored as +// the master. +// The document about gNMI master arbitration can be found at +// https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-master-arbitration.md +message MasterArbitration { + Role role = 1; + Uint128 election_id = 2; +} + +// Representation of unsigned 128-bit integer. +message Uint128 { + uint64 high = 1; + uint64 low = 2; +} + +// There can be one master for each role. The role is identified by its id. +message Role { + string id = 1; + // More fields can be added if needed, for example, to specify what paths the + // role can read/write. +} diff --git a/gnmi/gnmi_juniper_header/GnmiJuniperTelemetryHeader.pb.go b/gnmi/gnmi_juniper_header/GnmiJuniperTelemetryHeader.pb.go new file mode 100644 index 0000000..4b6914d --- /dev/null +++ b/gnmi/gnmi_juniper_header/GnmiJuniperTelemetryHeader.pb.go @@ -0,0 +1,109 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: GnmiJuniperTelemetryHeader.proto + +/* +Package GnmiJuniperTelemetryHeader is a generated protocol buffer package. + +It is generated from these files: + GnmiJuniperTelemetryHeader.proto + +It has these top-level messages: + GnmiJuniperTelemetryHeader +*/ +package GnmiJuniperTelemetryHeader + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Present as first gNMI update in all packets +type GnmiJuniperTelemetryHeader struct { + // router name:export IP address + SystemId string `protobuf:"bytes,1,opt,name=system_id,json=systemId" json:"system_id,omitempty"` + // line card / RE (slot number) + ComponentId uint32 `protobuf:"varint,2,opt,name=component_id,json=componentId" json:"component_id,omitempty"` + // PFE (if applicable) + SubComponentId uint32 `protobuf:"varint,3,opt,name=sub_component_id,json=subComponentId" json:"sub_component_id,omitempty"` + // Path contains useful information on identiying which sensor, + // resoruce string and producer the data corresponds to. + // "internal_sensor_name:internal_path:external_path:component" + // e.g.: + // "sensor_1006:/junos/system/linecard/cpu/memory/:/junos/system/linecard/cpu/memory/:PFE" + Path string `protobuf:"bytes,4,opt,name=path" json:"path,omitempty"` + // Sequence number, monotonically increasing for each + // system_id, component_id, sub_component_id + path. + SequenceNumber uint64 `protobuf:"varint,5,opt,name=sequence_number,json=sequenceNumber" json:"sequence_number,omitempty"` +} + +func (m *GnmiJuniperTelemetryHeader) Reset() { *m = GnmiJuniperTelemetryHeader{} } +func (m *GnmiJuniperTelemetryHeader) String() string { return proto.CompactTextString(m) } +func (*GnmiJuniperTelemetryHeader) ProtoMessage() {} +func (*GnmiJuniperTelemetryHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *GnmiJuniperTelemetryHeader) GetSystemId() string { + if m != nil { + return m.SystemId + } + return "" +} + +func (m *GnmiJuniperTelemetryHeader) GetComponentId() uint32 { + if m != nil { + return m.ComponentId + } + return 0 +} + +func (m *GnmiJuniperTelemetryHeader) GetSubComponentId() uint32 { + if m != nil { + return m.SubComponentId + } + return 0 +} + +func (m *GnmiJuniperTelemetryHeader) GetPath() string { + if m != nil { + return m.Path + } + return "" +} + +func (m *GnmiJuniperTelemetryHeader) GetSequenceNumber() uint64 { + if m != nil { + return m.SequenceNumber + } + return 0 +} + +func init() { + proto.RegisterType((*GnmiJuniperTelemetryHeader)(nil), "GnmiJuniperTelemetryHeader") +} + +func init() { proto.RegisterFile("GnmiJuniperTelemetryHeader.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 186 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x70, 0xcf, 0xcb, 0xcd, + 0xf4, 0x2a, 0xcd, 0xcb, 0x2c, 0x48, 0x2d, 0x0a, 0x49, 0xcd, 0x49, 0xcd, 0x4d, 0x2d, 0x29, 0xaa, + 0xf4, 0x48, 0x4d, 0x4c, 0x49, 0x2d, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x57, 0x3a, 0xcc, 0xc8, + 0x25, 0x85, 0x5b, 0x91, 0x90, 0x34, 0x17, 0x67, 0x71, 0x65, 0x71, 0x49, 0x6a, 0x6e, 0x7c, 0x66, + 0x8a, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x67, 0x10, 0x07, 0x44, 0xc0, 0x33, 0x45, 0x48, 0x91, 0x8b, + 0x27, 0x39, 0x3f, 0xb7, 0x20, 0x3f, 0x2f, 0x35, 0xaf, 0x04, 0x24, 0xcf, 0xa4, 0xc0, 0xa8, 0xc1, + 0x1b, 0xc4, 0x0d, 0x17, 0xf3, 0x4c, 0x11, 0xd2, 0xe0, 0x12, 0x28, 0x2e, 0x4d, 0x8a, 0x47, 0x51, + 0xc6, 0x0c, 0x56, 0xc6, 0x57, 0x5c, 0x9a, 0xe4, 0x8c, 0xa4, 0x52, 0x88, 0x8b, 0xa5, 0x20, 0xb1, + 0x24, 0x43, 0x82, 0x05, 0x6c, 0x09, 0x98, 0x2d, 0xa4, 0xce, 0xc5, 0x5f, 0x9c, 0x5a, 0x58, 0x9a, + 0x9a, 0x97, 0x9c, 0x1a, 0x9f, 0x57, 0x9a, 0x9b, 0x94, 0x5a, 0x24, 0xc1, 0xaa, 0xc0, 0xa8, 0xc1, + 0x12, 0xc4, 0x07, 0x13, 0xf6, 0x03, 0x8b, 0x26, 0xb1, 0x81, 0x3d, 0x63, 0x0c, 0x08, 0x00, 0x00, + 0xff, 0xff, 0x37, 0xca, 0x24, 0x58, 0xf0, 0x00, 0x00, 0x00, +} diff --git a/gnmi/gnmi_juniper_header/GnmiJuniperTelemetryHeader.proto b/gnmi/gnmi_juniper_header/GnmiJuniperTelemetryHeader.proto new file mode 100644 index 0000000..c877590 --- /dev/null +++ b/gnmi/gnmi_juniper_header/GnmiJuniperTelemetryHeader.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; + +// Present as first gNMI update in all packets +message GnmiJuniperTelemetryHeader { + // router name:export IP address + string system_id = 1; + + // line card / RE (slot number) + uint32 component_id = 2; + + // PFE (if applicable) + uint32 sub_component_id = 3; + + // Path contains useful information on identiying which sensor, + // resoruce string and producer the data corresponds to. + // "internal_sensor_name:internal_path:external_path:component" + // e.g.: + // "sensor_1006:/junos/system/linecard/cpu/memory/:/junos/system/linecard/cpu/memory/:PFE" + string path = 4; + + // Sequence number, monotonically increasing for each + // system_id, component_id, sub_component_id + path. + uint64 sequence_number = 5; +} diff --git a/gnmi/gnmi_juniper_header_ext/GnmiJuniperTelemetryHeaderExtension.pb.go b/gnmi/gnmi_juniper_header_ext/GnmiJuniperTelemetryHeaderExtension.pb.go new file mode 100644 index 0000000..fd17eb0 --- /dev/null +++ b/gnmi/gnmi_juniper_header_ext/GnmiJuniperTelemetryHeaderExtension.pb.go @@ -0,0 +1,196 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: GnmiJuniperTelemetryHeaderExtension.proto + +/* +Package GnmiJuniperTelemetryHeaderExtension is a generated protocol buffer package. + +It is generated from these files: + GnmiJuniperTelemetryHeaderExtension.proto + +It has these top-level messages: + GnmiJuniperTelemetryHeaderExtension +*/ +package GnmiJuniperTelemetryHeaderExtension + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type GnmiJuniperTelemetryHeaderExtension struct { + // router name:export IP address + SystemId string `protobuf:"bytes,1,opt,name=system_id,json=systemId" json:"system_id,omitempty"` + // line card / RE (slot number) + ComponentId uint32 `protobuf:"varint,2,opt,name=component_id,json=componentId" json:"component_id,omitempty"` + // PFE (if applicable) + SubComponentId uint32 `protobuf:"varint,3,opt,name=sub_component_id,json=subComponentId" json:"sub_component_id,omitempty"` + // Internal sensor name + SensorName string `protobuf:"bytes,4,opt,name=sensor_name,json=sensorName" json:"sensor_name,omitempty"` + // Sensor path in the subscribe request + SubscribedPath string `protobuf:"bytes,5,opt,name=subscribed_path,json=subscribedPath" json:"subscribed_path,omitempty"` + // Internal sensor path in junos + StreamedPath string `protobuf:"bytes,6,opt,name=streamed_path,json=streamedPath" json:"streamed_path,omitempty"` + Component string `protobuf:"bytes,7,opt,name=component" json:"component,omitempty"` + // Sequence number, monotonically increasing for each + SequenceNumber uint64 `protobuf:"varint,8,opt,name=sequence_number,json=sequenceNumber" json:"sequence_number,omitempty"` + // Payload get timestamp in milliseconds + PayloadGetTimestamp int64 `protobuf:"varint,9,opt,name=payload_get_timestamp,json=payloadGetTimestamp" json:"payload_get_timestamp,omitempty"` + // Stream creation timestamp in milliseconds + StreamCreationTimestamp int64 `protobuf:"varint,10,opt,name=stream_creation_timestamp,json=streamCreationTimestamp" json:"stream_creation_timestamp,omitempty"` + // Event timestamp in milliseconds + EventTimestamp int64 `protobuf:"varint,11,opt,name=event_timestamp,json=eventTimestamp" json:"event_timestamp,omitempty"` + // Export timestamp in milliseconds + ExportTimestamp int64 `protobuf:"varint,12,opt,name=export_timestamp,json=exportTimestamp" json:"export_timestamp,omitempty"` + // Subsequence number + SubSequenceNumber uint64 `protobuf:"varint,13,opt,name=sub_sequence_number,json=subSequenceNumber" json:"sub_sequence_number,omitempty"` + // End of marker + Eom bool `protobuf:"varint,14,opt,name=eom" json:"eom,omitempty"` +} + +func (m *GnmiJuniperTelemetryHeaderExtension) Reset() { *m = GnmiJuniperTelemetryHeaderExtension{} } +func (m *GnmiJuniperTelemetryHeaderExtension) String() string { return proto.CompactTextString(m) } +func (*GnmiJuniperTelemetryHeaderExtension) ProtoMessage() {} +func (*GnmiJuniperTelemetryHeaderExtension) Descriptor() ([]byte, []int) { + return fileDescriptor0, []int{0} +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetSystemId() string { + if m != nil { + return m.SystemId + } + return "" +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetComponentId() uint32 { + if m != nil { + return m.ComponentId + } + return 0 +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetSubComponentId() uint32 { + if m != nil { + return m.SubComponentId + } + return 0 +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetSensorName() string { + if m != nil { + return m.SensorName + } + return "" +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetSubscribedPath() string { + if m != nil { + return m.SubscribedPath + } + return "" +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetStreamedPath() string { + if m != nil { + return m.StreamedPath + } + return "" +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetComponent() string { + if m != nil { + return m.Component + } + return "" +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetSequenceNumber() uint64 { + if m != nil { + return m.SequenceNumber + } + return 0 +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetPayloadGetTimestamp() int64 { + if m != nil { + return m.PayloadGetTimestamp + } + return 0 +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetStreamCreationTimestamp() int64 { + if m != nil { + return m.StreamCreationTimestamp + } + return 0 +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetEventTimestamp() int64 { + if m != nil { + return m.EventTimestamp + } + return 0 +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetExportTimestamp() int64 { + if m != nil { + return m.ExportTimestamp + } + return 0 +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetSubSequenceNumber() uint64 { + if m != nil { + return m.SubSequenceNumber + } + return 0 +} + +func (m *GnmiJuniperTelemetryHeaderExtension) GetEom() bool { + if m != nil { + return m.Eom + } + return false +} + +func init() { + proto.RegisterType((*GnmiJuniperTelemetryHeaderExtension)(nil), "GnmiJuniperTelemetryHeaderExtension") +} + +func init() { proto.RegisterFile("GnmiJuniperTelemetryHeaderExtension.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 364 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x41, 0x4f, 0xf2, 0x40, + 0x10, 0x86, 0xd3, 0x0f, 0x3e, 0xa4, 0x03, 0x14, 0x2c, 0x31, 0xd6, 0x68, 0x62, 0x95, 0x03, 0xe5, + 0xc2, 0x41, 0x6f, 0x5e, 0x89, 0x41, 0x3c, 0x10, 0x53, 0xb9, 0x6f, 0xb6, 0xed, 0x44, 0x9a, 0xb0, + 0xbb, 0x75, 0x77, 0x6b, 0xe0, 0x37, 0xfa, 0xa7, 0x4c, 0xb7, 0x94, 0x82, 0x27, 0x6f, 0xcd, 0xf3, + 0x3e, 0x6f, 0x66, 0xa6, 0x2d, 0x4c, 0xe6, 0x9c, 0xa5, 0xaf, 0x39, 0x4f, 0x33, 0x94, 0x2b, 0xdc, + 0x20, 0x43, 0x2d, 0x77, 0x2f, 0x48, 0x13, 0x94, 0xcf, 0x5b, 0x8d, 0x5c, 0xa5, 0x82, 0x4f, 0x33, + 0x29, 0xb4, 0xb8, 0xff, 0x6e, 0xc2, 0xe8, 0x0f, 0xb6, 0x7b, 0x0d, 0xb6, 0xda, 0x29, 0x8d, 0x8c, + 0xa4, 0x89, 0x67, 0xf9, 0x56, 0x60, 0x87, 0xed, 0x12, 0x2c, 0x12, 0xf7, 0x0e, 0xba, 0xb1, 0x60, + 0x99, 0xe0, 0xc8, 0x75, 0x91, 0xff, 0xf3, 0xad, 0xa0, 0x17, 0x76, 0x0e, 0x6c, 0x91, 0xb8, 0x01, + 0x0c, 0x54, 0x1e, 0x91, 0x13, 0xad, 0x61, 0x34, 0x47, 0xe5, 0xd1, 0xec, 0xc8, 0xbc, 0x85, 0x8e, + 0x42, 0xae, 0x84, 0x24, 0x9c, 0x32, 0xf4, 0x9a, 0x66, 0x16, 0x94, 0x68, 0x49, 0x19, 0xba, 0x63, + 0xe8, 0xab, 0x3c, 0x52, 0xb1, 0x4c, 0x23, 0x4c, 0x48, 0x46, 0xf5, 0xda, 0xfb, 0x6f, 0x24, 0xa7, + 0xc6, 0x6f, 0x54, 0xaf, 0xdd, 0x11, 0xf4, 0x94, 0x96, 0x48, 0x59, 0xa5, 0xb5, 0x8c, 0xd6, 0xad, + 0xa0, 0x91, 0x6e, 0xc0, 0x3e, 0x2c, 0xe5, 0x9d, 0x19, 0xa1, 0x06, 0x66, 0x16, 0x7e, 0xe6, 0xc8, + 0x63, 0x24, 0x3c, 0x67, 0x11, 0x4a, 0xaf, 0xed, 0x5b, 0x41, 0x33, 0x74, 0x2a, 0xbc, 0x34, 0xd4, + 0x7d, 0x80, 0x8b, 0x8c, 0xee, 0x36, 0x82, 0x26, 0xe4, 0x03, 0x35, 0xd1, 0x29, 0x43, 0xa5, 0x29, + 0xcb, 0x3c, 0xdb, 0xb7, 0x82, 0x46, 0x38, 0xdc, 0x87, 0x73, 0xd4, 0xab, 0x2a, 0x72, 0x9f, 0xe0, + 0xaa, 0x5c, 0x85, 0xc4, 0x12, 0xa9, 0x4e, 0x05, 0x3f, 0xea, 0x81, 0xe9, 0x5d, 0x96, 0xc2, 0x6c, + 0x9f, 0xd7, 0xdd, 0x31, 0xf4, 0xf1, 0xab, 0x78, 0x8f, 0x75, 0xa3, 0x63, 0x1a, 0x8e, 0xc1, 0xb5, + 0x38, 0x81, 0x01, 0x6e, 0x33, 0x21, 0x8f, 0xcd, 0xae, 0x31, 0xfb, 0x25, 0xaf, 0xd5, 0x29, 0x0c, + 0x8b, 0x6f, 0xf4, 0xfb, 0xe0, 0x9e, 0x39, 0xf8, 0x5c, 0xe5, 0xd1, 0xfb, 0xe9, 0xcd, 0x03, 0x68, + 0xa0, 0x60, 0x9e, 0xe3, 0x5b, 0x41, 0x3b, 0x2c, 0x1e, 0xa3, 0x96, 0xf9, 0xa9, 0x1e, 0x7f, 0x02, + 0x00, 0x00, 0xff, 0xff, 0x14, 0xaa, 0x8f, 0xf3, 0x81, 0x02, 0x00, 0x00, +} diff --git a/gnmi/gnmi_juniper_header_ext/GnmiJuniperTelemetryHeaderExtension.proto b/gnmi/gnmi_juniper_header_ext/GnmiJuniperTelemetryHeaderExtension.proto new file mode 100644 index 0000000..1362f8b --- /dev/null +++ b/gnmi/gnmi_juniper_header_ext/GnmiJuniperTelemetryHeaderExtension.proto @@ -0,0 +1,43 @@ +syntax = "proto3"; + +message GnmiJuniperTelemetryHeaderExtension { + // router name:export IP address + string system_id = 1; + + // line card / RE (slot number) + uint32 component_id = 2; + + // PFE (if applicable) + uint32 sub_component_id = 3; + + // Internal sensor name + string sensor_name = 4; + + // Sensor path in the subscribe request + string subscribed_path = 5; + // Internal sensor path in junos + string streamed_path = 6; + + string component = 7; + + // Sequence number, monotonically increasing for each + uint64 sequence_number = 8; + + // Payload get timestamp in milliseconds + int64 payload_get_timestamp = 9; + + // Stream creation timestamp in milliseconds + int64 stream_creation_timestamp = 10; + + // Event timestamp in milliseconds + int64 event_timestamp = 11; + + // Export timestamp in milliseconds + int64 export_timestamp = 12; + + // Subsequence number + uint64 sub_sequence_number = 13; + + // End of marker + bool eom = 14; +} \ No newline at end of file diff --git a/gnmi_utils.go b/gnmi_utils.go new file mode 100644 index 0000000..1e0401c --- /dev/null +++ b/gnmi_utils.go @@ -0,0 +1,477 @@ +package main + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "math" + "strings" + + gnmi "github.com/Juniper/jtimon/gnmi/gnmi" + gnmi_ext1 "github.com/Juniper/jtimon/gnmi/gnmi_ext" + gnmi_juniper_header "github.com/Juniper/jtimon/gnmi/gnmi_juniper_header" + gnmi_juniper_header_ext "github.com/Juniper/jtimon/gnmi/gnmi_juniper_header_ext" + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes" + google_protobuf "github.com/golang/protobuf/ptypes/any" +) + +const ( + gXPathTokenPathSep = "/" + gXPathTokenIndexBegin = "[" + gXPathTokenIndexEnd = "]" + gXpathTokenMultiIndexSep = "and" + gXPathTokenKVSep = "=" + gXPathTokenValueWrapper = "\"" + + gGnmiModeOnchange = "on-change" + gGnmiModeTgtDefined = "target-defined" + gGnmiModeSample = "sample" + gGnmiJuniperInternalFieldsPrefix = "__" + gGnmiJuniperHeaderFieldName = "__juniper_telemetry_header__" + gGnmiJuniperPublishTsFieldName = "__timestamp__" + gGnmiJuniperHeaderMsgName = "GnmiJuniperTelemetryHeader" + gGnmiJuniperIsyncSeqNumBegin = ((uint64(1)) << 21) + gGnmiJuniperIsyncSeqNumEnd = (((uint64(1)) << 22) - 1) + gGnmiVerboseSensorDetailsDelim = ":" + gGnmiJtimonProducerTsName = "__producer_timestamp__" // TODO: Remove after 3 HealthBot releases, last release was 3.1 ! + gGnmiJtimonDeviceTsName = gDeviceTs // Its value will be same as gGnmiJtimonProducerTsName + gGnmiJtimonExportTsName = "__export_timestamp__" + gGnmiJtimonSyncRsp = "__sync_response__" + gGnmiJtimonIgnoreErrorSubstr = "Ignoring error." + + gGnmiFreqUnits = 1000 * 1000 * 1000 // nano secs + gGnmiFreqMin = 2 * gGnmiFreqUnits + gGnmiFreqToMilli = 1000 * 1000 // milli secs + + gXPathInfluxIndexIdentifier = "@" +) + +type juniperGnmiHeaderDetails struct { + hdr *gnmi_juniper_header.GnmiJuniperTelemetryHeader + hdrExt *gnmi_juniper_header_ext.GnmiJuniperTelemetryHeaderExtension +} + +type jnprXpathDetails struct { + xPaths map[string]interface{} + hdrXpath string + publishTsXpath string +} + +type gnmiParseOutputT struct { + syncRsp bool + prefixPath string + kvpairs map[string]string + xpaths map[string]interface{} + sensorVal string + mName string + jXpaths *jnprXpathDetails + jHeader *juniperGnmiHeaderDetails + inKvs uint64 +} + +// Convert xpath to gNMI path +func xPathTognmiPath(xpath string) (*gnmi.Path, error) { + var gpath gnmi.Path + splits := strings.Split(xpath, gXPathTokenPathSep) + for _, s := range splits[1:] { + if s == "" { + continue + } + + kvSplit := strings.Split(s, gXPathTokenIndexBegin) + if len(kvSplit) == 1 { + gpath.Elem = append(gpath.Elem, &gnmi.PathElem{Name: kvSplit[0]}) + } else { + gpath.Elem = append(gpath.Elem, &gnmi.PathElem{Name: kvSplit[0], Key: map[string]string{}}) + kvpairs := strings.Split(kvSplit[1], gXpathTokenMultiIndexSep) + + pe := gpath.Elem[len(gpath.Elem)-1] + for _, kvpair := range kvpairs { + kvpair = strings.TrimSpace(kvpair) + kv := strings.Split(kvpair, gXPathTokenKVSep) + + idxval := strings.TrimPrefix(kv[1], gXPathTokenValueWrapper) + if idxval[len(idxval)-1:] != gXPathTokenIndexEnd { + idxval = strings.TrimSuffix(idxval, gXPathTokenValueWrapper) + } else { + idxval = strings.TrimSuffix(idxval, gXPathTokenValueWrapper+gXPathTokenIndexEnd) + } + pe.Key[kv[0]] = idxval + } + } + } + + if len(gpath.Elem) == 0 { + msg := fmt.Sprintf("Erroneous path: %v", xpath) + return nil, errors.New(msg) + } + + return &gpath, nil +} + +func gnmiMode(inMode string) gnmi.SubscriptionMode { + switch inMode { + case "on-change": + return gnmi.SubscriptionMode_ON_CHANGE + case "target-defined": + return gnmi.SubscriptionMode_TARGET_DEFINED + default: + return gnmi.SubscriptionMode_SAMPLE + } +} + +// Given subscription mode and inFreq(millisecs), output is gNMI frequency +func gnmiFreq(mode gnmi.SubscriptionMode, inFreq uint64) (gnmi.SubscriptionMode, uint64) { + if (mode == gnmi.SubscriptionMode_ON_CHANGE) || (inFreq == 0) { + return gnmi.SubscriptionMode_ON_CHANGE, 0 + } + + freq := (inFreq * gGnmiFreqUnits) / 1000 + + if freq != 0 && freq < gGnmiFreqMin { + freq = gGnmiFreqMin + } + + return mode, freq +} + +/* + * Parse updates from gNMI response to form: + * 1. Prefix xpath + * 2. kvpairs + * 3. xpaths + * 4. Juniper specific xpaths + */ +func gnmiParseUpdates(parseOrigin bool, prefix *gnmi.Path, updates []*gnmi.Update, parseOutput *gnmiParseOutputT, enableUint bool) (*gnmiParseOutputT, error) { + var ( + prefixPath = parseOutput.prefixPath + kvpairs = parseOutput.kvpairs + xpathValue = parseOutput.xpaths + + xpath string + tmpJXpaths = jnprXpathDetails{xPaths: map[string]interface{}{}} + jXpaths *jnprXpathDetails + + err error + ) + + if prefixPath == "" { + // Prefix cannot have a value but can have keys + if parseOrigin { + prefixPath = prefix.GetOrigin() + if prefixPath != "" { + prefixPath += gGnmiVerboseSensorDetailsDelim + } + } + + prefixPath, kvpairs, _ = gnmiParsePath(prefixPath, prefix.GetElem(), kvpairs, nil) + } + + for _, update := range updates { + var internalFields = map[string]struct{}{} + + path := update.GetPath() + if path == nil { + continue + } + + xpath, kvpairs, internalFields = gnmiParsePath(prefixPath, path.GetElem(), kvpairs, + []string{gGnmiJuniperHeaderFieldName, gGnmiJuniperPublishTsFieldName}) + + if len(internalFields) == 0 { + xpathValue[xpath], err = gnmiParseValue(update.GetVal(), false, enableUint) + if err != nil { + return nil, err + } + } else { + if _, ok := internalFields[gGnmiJuniperHeaderFieldName]; ok { + tmpJXpaths.hdrXpath = xpath + tmpJXpaths.xPaths[xpath], _ = gnmiParseValue(update.GetVal(), false, enableUint) + } else if _, ok := internalFields[gGnmiJuniperPublishTsFieldName]; ok { + tmpJXpaths.publishTsXpath = xpath + tmpJXpaths.xPaths[xpath], _ = gnmiParseValue(update.GetVal(), true, enableUint) + } + + if jXpaths == nil { + jXpaths = &tmpJXpaths + } + } + } + + parseOutput.prefixPath = prefixPath + parseOutput.kvpairs = kvpairs + parseOutput.xpaths = xpathValue + parseOutput.jXpaths = jXpaths + return parseOutput, nil +} + +/* + * Parse deletes from gNMI response to form: + * 1. Prefix + * 2. kvpairs + * 3. xpaths + */ +func gnmiParseDeletes(parseOrigin bool, prefix *gnmi.Path, deletes []*gnmi.Path, parseOutput *gnmiParseOutputT) (*gnmiParseOutputT, error) { + var ( + prefixPath = parseOutput.prefixPath + kvpairs = parseOutput.kvpairs + xpathValue = parseOutput.xpaths + + xpath string + ) + + if prefixPath == "" { + // Prefix cannot have a value but can have keys + if parseOrigin { + prefixPath = prefix.GetOrigin() + if prefixPath != "" { + prefixPath += gGnmiVerboseSensorDetailsDelim + } + } + + prefixPath, kvpairs, _ = gnmiParsePath(prefixPath, prefix.GetElem(), kvpairs, nil) + } + + for _, delete := range deletes { + xpath, kvpairs, _ = gnmiParsePath(prefixPath, delete.GetElem(), kvpairs, nil) + xpathValue[xpath] = nil // How do we propogate deletes? + } + + parseOutput.prefixPath = prefixPath + parseOutput.kvpairs = kvpairs + parseOutput.xpaths = xpathValue + return parseOutput, nil +} + +/* + * Given prefix xpath, parse gNMI paths to form: + * 1. Updated prefix + * 2. Additional kvpairs + * 3. Additional xpaths + * + * Also notify back if any Juniper internal fields (begins with "__") are found. + */ +func gnmiParsePath(prefix string, pes []*gnmi.PathElem, kvpairs map[string]string, lookForInternalFields []string) (string, map[string]string, map[string]struct{}) { + var ( + lookForOutput = map[string]struct{}{} + ) + + for _, pe := range pes { + peName := pe.GetName() + prefix += gXPathTokenPathSep + peName + gnmiKvpairs := pe.GetKey() + for k, v := range gnmiKvpairs { + kvpairs[prefix+gXPathTokenPathSep+gXPathInfluxIndexIdentifier+k] = v + } + + if len(lookForInternalFields) != 0 && strings.HasPrefix(peName, gGnmiJuniperInternalFieldsPrefix) { + for _, lf := range lookForInternalFields { + if peName == lf { + lookForOutput[peName] = struct{}{} + } + } + } + } + + return prefix, kvpairs, lookForOutput +} + +// Convert gNMI value to data types that Influx Line Protocol supports. +func gnmiParseValue(gnmiValue *gnmi.TypedValue, ts bool, enableUint bool) (interface{}, error) { + var ( + value interface{} + jsonVal []byte + ) + + switch gnmiValue.GetValue().(type) { + case *gnmi.TypedValue_StringVal: + value = gnmiValue.GetStringVal() + case *gnmi.TypedValue_IntVal: + value = gnmiValue.GetIntVal() + case *gnmi.TypedValue_UintVal: + if enableUint { + value = gnmiValue.GetUintVal() + } else if !ts { + value = float64(gnmiValue.GetUintVal()) + } else { + value = int64(gnmiValue.GetUintVal()) + } + case *gnmi.TypedValue_JsonIetfVal: + jsonVal = gnmiValue.GetJsonIetfVal() + case *gnmi.TypedValue_JsonVal: + jsonVal = gnmiValue.GetJsonVal() + case *gnmi.TypedValue_ProtoBytes: + value = gnmiValue.GetProtoBytes() + case *gnmi.TypedValue_BoolVal: + value = gnmiValue.GetBoolVal() + case *gnmi.TypedValue_BytesVal: + value = gnmiValue.GetBytesVal() + case *gnmi.TypedValue_AsciiVal: + value = gnmiValue.GetAsciiVal() + case *gnmi.TypedValue_AnyVal: + value = gnmiValue.GetAnyVal() + case *gnmi.TypedValue_DecimalVal: + var floatVal float64 + d64Val := gnmiValue.GetDecimalVal() + value64 := ((float64(d64Val.GetDigits())) / math.Pow10(int(d64Val.GetPrecision()))) + checkAndCeilFloatValues(nil, &value64, &floatVal) + value = floatVal + case *gnmi.TypedValue_FloatVal: + var floatVal float64 + value32 := gnmiValue.GetFloatVal() + checkAndCeilFloatValues(&value32, nil, &floatVal) + value = floatVal + case *gnmi.TypedValue_LeaflistVal: + var ( + saVal interface{} + intVals []int64 + floatVals []float64 + boolVals []bool + stringVals []string + byteVals [][]byte + ) + + vals := gnmiValue.GetLeaflistVal().GetElement() + for _, val := range vals { + saVal, _ = gnmiParseValue(val, false, enableUint) + switch saVal.(type) { + case int64: + intVals = append(intVals, saVal.(int64)) + value = intVals + case float32: + var floatVal float64 + value32 := saVal.(float32) + checkAndCeilFloatValues(&value32, nil, &floatVal) + floatVals = append(floatVals, floatVal) + value = floatVals + case bool: + boolVals = append(boolVals, saVal.(bool)) + value = boolVals + case string: + stringVals = append(stringVals, saVal.(string)) + value = stringVals + case []byte: + byteVals = append(byteVals, saVal.([]byte)) + value = byteVals + } + } + default: + value = gnmiValue.GetStringVal() + } + + if jsonVal != nil { + var dst bytes.Buffer + var decodedValue interface{} + err := json.Compact(&dst, jsonVal) + if err != nil { + errMsg := fmt.Sprintf("Compacting json value failed, error: %v, jsonValue: %v", err, string(jsonVal)) + return nil, errors.New(errMsg) + } + + decoder := json.NewDecoder(strings.NewReader(dst.String())) + /* + * Refer https://tools.ietf.org/html/rfc7159 and https://tools.ietf.org/html/rfc7951 + * for json and json_ietf for representing numbers. + */ + decoder.UseNumber() + err = decoder.Decode(&decodedValue) + if err != nil { + errMsg := fmt.Sprintf("Decoding json value failed, error: %v, jsonValue: %s", err, dst.String()) + return nil, errors.New(errMsg) + } + + switch decodedValue.(type) { + case json.Number: + jsonNumber := decodedValue.(json.Number) + if strings.Contains(jsonNumber.String(), ".") { + value, err = jsonNumber.Float64() + } else { + value, err = jsonNumber.Int64() + } + + if err != nil { + errMsg := fmt.Sprintf("Parsing json number failed, error: %v, jsonNumber: %s", err, jsonNumber.String()) + return nil, errors.New(errMsg) + } + + case bool, string: + value = decodedValue + default: + errMsg := fmt.Sprintf("Not a number/bool/string, jsonValue: %s", dst.String()) + return nil, errors.New(errMsg) + } + } + + return value, nil +} + +// Form Juniper telemetry header either from xpaths(parsed updates) or gNMI extensions +func formJuniperTelemetryHdr(jXpaths *jnprXpathDetails, gnmiExt []*gnmi_ext1.Extension) (*juniperGnmiHeaderDetails, bool, error) { + var ( + jHdrPresent bool + hdrXpathValue interface{} + regExt *gnmi_ext1.RegisteredExtension + juniperHdrDetails juniperGnmiHeaderDetails + errMsg string + ) + + if jXpaths != nil { + hdrXpathValue, jHdrPresent = jXpaths.xPaths[jXpaths.hdrXpath] + if !jHdrPresent { + errMsg = fmt.Sprintf("Juniper header not present in updates") + } + } else { + var extIds []gnmi_ext1.ExtensionID + for _, ext := range gnmiExt { + regExt = ext.GetRegisteredExt() + if (regExt.GetId()) != gnmi_ext1.ExtensionID_EID_JUNIPER_TELEMETRY_HEADER { + extIds = append(extIds, regExt.GetId()) + continue + } + + jHdrPresent = true + break + } + + if !jHdrPresent { + errMsg = fmt.Sprintf("Juniper header extension not present, available extensions: %v", extIds) + } + } + + if !jHdrPresent { + return nil, false, errors.New(errMsg) + } + + if hdrXpathValue != nil { + switch hdrXpathValue.(type) { + case *google_protobuf.Any: + var hdr gnmi_juniper_header.GnmiJuniperTelemetryHeader + anyMsg := hdrXpathValue.(*google_protobuf.Any) + anyMsgName, err := ptypes.AnyMessageName(anyMsg) + if err != nil { + errMsg = fmt.Sprintf("Any message name invalid: %v", err) + return nil, true, errors.New(errMsg) + } + + if anyMsgName == gGnmiJuniperHeaderMsgName { + ptypes.UnmarshalAny(anyMsg, &hdr) // Beware, we parse old headers with new proto. + } + + juniperHdrDetails.hdr = &hdr + } + } else { + var hdr gnmi_juniper_header_ext.GnmiJuniperTelemetryHeaderExtension + err := proto.Unmarshal(regExt.GetMsg(), &hdr) + if err != nil { + errMsg = fmt.Sprintf("Extension message parsing failed: %v", err) + return nil, true, errors.New(errMsg) + } + + juniperHdrDetails.hdrExt = &hdr + } + + return &juniperHdrDetails, true, nil + +} diff --git a/gnmi_utils_test.go b/gnmi_utils_test.go new file mode 100644 index 0000000..1af5e08 --- /dev/null +++ b/gnmi_utils_test.go @@ -0,0 +1,1050 @@ +package main + +import ( + "fmt" + "math" + "reflect" + "testing" + + "github.com/golang/protobuf/proto" + + gnmi "github.com/Juniper/jtimon/gnmi/gnmi" + gnmi_ext1 "github.com/Juniper/jtimon/gnmi/gnmi_ext" + gnmi_juniper_header "github.com/Juniper/jtimon/gnmi/gnmi_juniper_header" + gnmi_juniper_header_ext "github.com/Juniper/jtimon/gnmi/gnmi_juniper_header_ext" + google_protobuf "github.com/golang/protobuf/ptypes/any" +) + +func TestXPathTognmiPath(t *testing.T) { + tests := []struct { + name string + xpath string + err bool + path *gnmi.Path + }{ + { + name: "multi-level-multi-keys", + xpath: "/interfaces/interface[k1=\"foo\"]/subinterfaces/subinterface[k1=\"foo1\" and k2=\"bar1\"]", + err: false, + path: &gnmi.Path{Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + }, + { + name: "multi-level-multi-keys-err", + xpath: "/interfaces/interface[k1=\"foo\"]/subinterfaces/subinterface[k1=\"foo1\" and k2=\"bar1\"]", + err: true, + path: &gnmi.Path{Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1"}}, + }, + }, + }, + { + name: "multi-level-multi-keys-xpath-err", + xpath: "/interfaces/interface[k1=\"foo]/subinterfaces/subinterface[k1=\"foo1\" and k2=\"bar1\"]", + err: true, + path: &gnmi.Path{Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1"}}, + }, + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + gnmiPath, err := xPathTognmiPath(test.xpath) + if !test.err { + if err != nil || !reflect.DeepEqual(*test.path, *gnmiPath) { + var errMsg string + if err == nil { + errMsg = fmt.Sprintf("\nexpected:%v\nGot:%v", *test.path, *gnmiPath) + } else { + errMsg = fmt.Sprintf("Not an error, but got an error: %v", err) + } + t.Errorf(errMsg) + } + } + + if test.err { + if err == nil && reflect.DeepEqual(*test.path, *gnmiPath) { + var errMsg string + errMsg = fmt.Sprintf("want error but got nil\n") + errMsg += fmt.Sprintf("\nexpected:%v\nGot:%v\n", *test.path, *gnmiPath) + t.Errorf(errMsg) + } + } + }) + } +} + +func TestGnmiMode(t *testing.T) { + tests := []struct { + name string + inMode string + err bool + outMode gnmi.SubscriptionMode + }{ + { + name: "gnmi-mode-on-change", + inMode: "on-change", + err: false, + outMode: gnmi.SubscriptionMode_ON_CHANGE, + }, + { + name: "gnmi-mode-sample", + inMode: "", + err: false, + outMode: gnmi.SubscriptionMode_SAMPLE, + }, + { + name: "gnmi-mode-err", + inMode: "target-defined", + err: true, + outMode: gnmi.SubscriptionMode_SAMPLE, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + outMode := gnmiMode(test.inMode) + if !test.err { + if test.outMode != outMode { + var errMsg string + errMsg = fmt.Sprintf("\nexpected:%v\nGot:%v", test.outMode, outMode) + t.Errorf(errMsg) + } + } + + if test.err { + if test.outMode == outMode { + var errMsg string + errMsg = fmt.Sprintf("\nexpected:%v\nGot:%v", test.outMode, outMode) + t.Errorf(errMsg) + } + } + }) + } +} + +func TestGnmiFreq(t *testing.T) { + tests := []struct { + name string + inMode gnmi.SubscriptionMode + inFreq uint64 + err bool + outMode gnmi.SubscriptionMode + outFreq uint64 + }{ + { + name: "gnmi-freq-sample", + inMode: gnmi.SubscriptionMode_SAMPLE, + inFreq: 30000, + err: false, + outMode: gnmi.SubscriptionMode_SAMPLE, + outFreq: 30000000000, + }, + { + name: "gnmi-freq-on-change", + inMode: gnmi.SubscriptionMode_ON_CHANGE, + inFreq: 30, + err: false, + outMode: gnmi.SubscriptionMode_ON_CHANGE, + outFreq: 0, + }, + { + name: "gnmi-freq-sample-taken-as-on-change", + inMode: gnmi.SubscriptionMode_SAMPLE, + inFreq: 0, + err: false, + outMode: gnmi.SubscriptionMode_ON_CHANGE, + outFreq: 0, + }, + { + name: "gnmi-freq-target-defined", + inMode: gnmi.SubscriptionMode_TARGET_DEFINED, + inFreq: 30, + err: false, + outMode: gnmi.SubscriptionMode_TARGET_DEFINED, + outFreq: gGnmiFreqMin, // default + }, + { + name: "gnmi-freq-sample-err", + inMode: gnmi.SubscriptionMode_SAMPLE, + inFreq: 30, + err: true, + outMode: gnmi.SubscriptionMode_SAMPLE, + outFreq: 30000000000, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + outMode, outFreq := gnmiFreq(test.inMode, test.inFreq) + if !test.err { + if test.outMode != outMode && test.outFreq != outFreq { + var errMsg string + errMsg = fmt.Sprintf("\nexpected:(%v, %v)\nGot:(%v, %v)", test.outMode, test.outFreq, outMode, outFreq) + t.Errorf(errMsg) + } + } + + if test.err { + if test.outMode == outMode && test.outFreq == outFreq { + var errMsg string + errMsg = fmt.Sprintf("\nexpected:(%v, %v)\nGot:(%v, %v)", test.outMode, test.outFreq, outMode, outFreq) + t.Errorf(errMsg) + } + } + }) + } +} + +func TestGnmiParseUpdates(t *testing.T) { + tests := []struct { + name string + parseOrigin bool + prefix *gnmi.Path + updates []*gnmi.Update + parseOutput *gnmiParseOutputT + err bool + output *gnmiParseOutputT + enableUint bool + }{ + { + name: "updates-valid-no-prefix", + err: false, + parseOrigin: false, + prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + updates: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_StringVal{StringVal: "Hello"}, + }, + }, + }, + parseOutput: &gnmiParseOutputT{ + kvpairs: map[string]string{}, + xpaths: map[string]interface{}{}, + }, + output: &gnmiParseOutputT{ + prefixPath: "/interfaces/interface/subinterfaces/subinterface", + kvpairs: map[string]string{"/interfaces/interface/@k1": "foo", + "/interfaces/interface/subinterfaces/subinterface/@k1": "foo1", + "/interfaces/interface/subinterfaces/subinterface/@k2": "bar1"}, + xpaths: map[string]interface{}{"/interfaces/interface/subinterfaces/subinterface/state/description": "Hello"}, + }, + enableUint: false, + }, + { + name: "updates-valid-with-prefix", + err: false, + parseOrigin: false, + prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + updates: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_StringVal{StringVal: "Hello"}, + }, + }, + }, + parseOutput: &gnmiParseOutputT{ + prefixPath: "/a/b/c/d", + kvpairs: map[string]string{"/a/b/@k1": "foo", "/a/b/c/d/@k1": "foo1", "/a/b/c/d/@k2": "bar1"}, + xpaths: map[string]interface{}{}, + }, + output: &gnmiParseOutputT{ + prefixPath: "/a/b/c/d", + kvpairs: map[string]string{"/a/b/@k1": "foo", + "/a/b/c/d/@k1": "foo1", + "/a/b/c/d/@k2": "bar1"}, + xpaths: map[string]interface{}{"/a/b/c/d/state/description": "Hello"}, + }, + enableUint: false, + }, + { + name: "updates-valid-with-misc-simple-types", + err: false, + parseOrigin: false, + prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + updates: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "mtu"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_IntVal{IntVal: 1500}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "in-octets"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_UintVal{UintVal: 40000}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "out-octets-dec64"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_DecimalVal{DecimalVal: &gnmi.Decimal64{Digits: 9007199254740992, Precision: 15}}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "out-octets-float"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_FloatVal{FloatVal: 32.45}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "power-inf-float"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_FloatVal{FloatVal: math.MaxFloat32 + 1}, + }, + }, + }, + parseOutput: &gnmiParseOutputT{ + prefixPath: "/a/b/c/d", + kvpairs: map[string]string{"/a/b/@k1": "foo", "/a/b/c/d/@k1": "foo1", "/a/b/c/d/@k2": "bar1"}, + xpaths: map[string]interface{}{}, + }, + output: &gnmiParseOutputT{ + prefixPath: "/a/b/c/d", + kvpairs: map[string]string{"/a/b/@k1": "foo", + "/a/b/c/d/@k1": "foo1", + "/a/b/c/d/@k2": "bar1"}, + xpaths: map[string]interface{}{ + "/a/b/c/d/state/mtu": int64(1500), + "/a/b/c/d/state/counters/in-octets": float64(40000), + "/a/b/c/d/state/counters/out-octets-dec64": float64(9.007199254740992), + "/a/b/c/d/state/counters/out-octets-float": float64(float32(32.45)), // Guess this may not always work.. + "/a/b/c/d/state/counters/power-inf-float": float64(3.40282346638528859811704183484516925440e+38), + }, + }, + enableUint: false, + }, + { + name: "updates-valid-scalar-array", + err: false, + parseOrigin: false, + prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + updates: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "different-mtus"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_LeaflistVal{ + LeaflistVal: &gnmi.ScalarArray{ + Element: []*gnmi.TypedValue{ + { + Value: &gnmi.TypedValue_IntVal{IntVal: 1500}, + }, + { + Value: &gnmi.TypedValue_IntVal{IntVal: 1499}, + }, + { + Value: &gnmi.TypedValue_IntVal{IntVal: 1501}, + }, + }, + }, + }, + }, + }, + }, + parseOutput: &gnmiParseOutputT{ + kvpairs: map[string]string{}, + xpaths: map[string]interface{}{}, + }, + output: &gnmiParseOutputT{ + prefixPath: "/interfaces/interface/subinterfaces/subinterface", + kvpairs: map[string]string{"/interfaces/interface/@k1": "foo", + "/interfaces/interface/subinterfaces/subinterface/@k1": "foo1", + "/interfaces/interface/subinterfaces/subinterface/@k2": "bar1"}, + xpaths: map[string]interface{}{"/interfaces/interface/subinterfaces/subinterface/state/different-mtus": []int64{1500, 1499, 1501}}, + }, + enableUint: false, + }, + { + name: "updates-valid-with-misc-simple-types-json", + err: false, + parseOrigin: false, + prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + updates: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "mtu"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_JsonVal{JsonVal: []byte(`1500`)}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "in-octets"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_JsonVal{JsonVal: []byte(`"40000000000000"`)}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "out-octets-dec64"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_JsonVal{JsonVal: []byte(`9.007199254740992`)}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "enabled"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_JsonVal{JsonVal: []byte(`true`)}, + }, + }, + }, + parseOutput: &gnmiParseOutputT{ + prefixPath: "/a/b/c/d", + kvpairs: map[string]string{"/a/b/@k1": "foo", "/a/b/c/d/@k1": "foo1", "/a/b/c/d/@k2": "bar1"}, + xpaths: map[string]interface{}{}, + }, + output: &gnmiParseOutputT{ + prefixPath: "/a/b/c/d", + kvpairs: map[string]string{"/a/b/@k1": "foo", + "/a/b/c/d/@k1": "foo1", + "/a/b/c/d/@k2": "bar1"}, + xpaths: map[string]interface{}{ + "/a/b/c/d/state/mtu": int64(1500), + "/a/b/c/d/state/counters/in-octets": "40000000000000", + "/a/b/c/d/state/counters/out-octets-dec64": 9.007199254740992, + "/a/b/c/d/state/enabled": true, + }, + }, + enableUint: false, + }, + { + name: "updates-valid-with-misc-simple-types-json_ietf", + err: false, + parseOrigin: false, + prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + updates: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "mtu"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_JsonVal{JsonVal: []byte(`1500`)}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "in-octets"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_JsonVal{JsonVal: []byte(`"40000000000000"`)}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "out-octets-dec64"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_JsonVal{JsonVal: []byte(`"9.007199254740992"`)}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "enabled"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_JsonVal{JsonVal: []byte(`true`)}, + }, + }, + }, + parseOutput: &gnmiParseOutputT{ + prefixPath: "/a/b/c/d", + kvpairs: map[string]string{"/a/b/@k1": "foo", "/a/b/c/d/@k1": "foo1", "/a/b/c/d/@k2": "bar1"}, + xpaths: map[string]interface{}{}, + }, + output: &gnmiParseOutputT{ + prefixPath: "/a/b/c/d", + kvpairs: map[string]string{"/a/b/@k1": "foo", + "/a/b/c/d/@k1": "foo1", + "/a/b/c/d/@k2": "bar1"}, + xpaths: map[string]interface{}{ + "/a/b/c/d/state/mtu": int64(1500), + "/a/b/c/d/state/counters/in-octets": "40000000000000", + "/a/b/c/d/state/counters/out-octets-dec64": "9.007199254740992", + "/a/b/c/d/state/enabled": true, + }, + }, + enableUint: false, + }, + { + name: "updates-valid-no-prefix-with-origin--config--donotParseOrigin", + err: false, + parseOrigin: false, + prefix: &gnmi.Path{ + Origin: "openconfig", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + updates: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_StringVal{StringVal: "Hello"}, + }, + }, + }, + parseOutput: &gnmiParseOutputT{ + kvpairs: map[string]string{}, + xpaths: map[string]interface{}{}, + }, + output: &gnmiParseOutputT{ + prefixPath: "/interfaces/interface/subinterfaces/subinterface", + kvpairs: map[string]string{"/interfaces/interface/@k1": "foo", + "/interfaces/interface/subinterfaces/subinterface/@k1": "foo1", + "/interfaces/interface/subinterfaces/subinterface/@k2": "bar1"}, + xpaths: map[string]interface{}{"/interfaces/interface/subinterfaces/subinterface/state/description": "Hello"}, + }, + enableUint: false, + }, + { + name: "updates-valid-no-prefix-with-origin--config--parseOrigin", + err: false, + parseOrigin: true, + prefix: &gnmi.Path{ + Origin: "openconfig", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + updates: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_StringVal{StringVal: "Hello"}, + }, + }, + }, + parseOutput: &gnmiParseOutputT{ + kvpairs: map[string]string{}, + xpaths: map[string]interface{}{}, + }, + output: &gnmiParseOutputT{ + prefixPath: "openconfig:/interfaces/interface/subinterfaces/subinterface", + kvpairs: map[string]string{"openconfig:/interfaces/interface/@k1": "foo", + "openconfig:/interfaces/interface/subinterfaces/subinterface/@k1": "foo1", + "openconfig:/interfaces/interface/subinterfaces/subinterface/@k2": "bar1"}, + xpaths: map[string]interface{}{"openconfig:/interfaces/interface/subinterfaces/subinterface/state/description": "Hello"}, + }, + enableUint: false, + }, + { + name: "updates-valid-with-misc-simple-types-uint-enabled", + err: false, + parseOrigin: false, + prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + updates: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "mtu"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_IntVal{IntVal: 1500}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "in-octets"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_UintVal{UintVal: 40000}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "out-octets-dec64"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_DecimalVal{DecimalVal: &gnmi.Decimal64{Digits: 9007199254740992, Precision: 15}}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "out-octets-float"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_FloatVal{FloatVal: 32.45}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "counters"}, + {Name: "power-inf-float"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_FloatVal{FloatVal: math.MaxFloat32 + 1}, + }, + }, + }, + parseOutput: &gnmiParseOutputT{ + prefixPath: "/a/b/c/d", + kvpairs: map[string]string{"/a/b/@k1": "foo", "/a/b/c/d/@k1": "foo1", "/a/b/c/d/@k2": "bar1"}, + xpaths: map[string]interface{}{}, + }, + output: &gnmiParseOutputT{ + prefixPath: "/a/b/c/d", + kvpairs: map[string]string{"/a/b/@k1": "foo", + "/a/b/c/d/@k1": "foo1", + "/a/b/c/d/@k2": "bar1"}, + xpaths: map[string]interface{}{ + "/a/b/c/d/state/mtu": int64(1500), + "/a/b/c/d/state/counters/in-octets": uint64(40000), + "/a/b/c/d/state/counters/out-octets-dec64": float64(9.007199254740992), + "/a/b/c/d/state/counters/out-octets-float": float64(float32(32.45)), // Guess this may not always work.. + "/a/b/c/d/state/counters/power-inf-float": float64(3.40282346638528859811704183484516925440e+38), + }, + }, + enableUint: true, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + parseOutput, err := gnmiParseUpdates(test.parseOrigin, test.prefix, test.updates, test.parseOutput, test.enableUint) + if !test.err { + if err != nil || !reflect.DeepEqual(*test.output, *parseOutput) { + var errMsg string + if err == nil { + errMsg = fmt.Sprintf("\nexpected :%v\nGot:%v", *test.output, *parseOutput) + } else { + errMsg = fmt.Sprintf("Not an error, but got an error: %v", err) + } + t.Errorf(errMsg) + } + } + + if test.err { + if err == nil && reflect.DeepEqual(*test.output, *parseOutput) { + var errMsg string + errMsg = fmt.Sprintf("want error but got nil\n") + errMsg += fmt.Sprintf("\nexpected:%v\nGot:%v\n", *test.output, *parseOutput) + t.Errorf(errMsg) + } + } + }) + } +} + +func TestGnmiParseDeletes(t *testing.T) { + tests := []struct { + name string + parseOrigin bool + prefix *gnmi.Path + deletes []*gnmi.Path + parseOutput *gnmiParseOutputT + err bool + output *gnmiParseOutputT + }{ + { + name: "deletes-valid-no-prefix", + err: false, + parseOrigin: false, + prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + deletes: []*gnmi.Path{ + { + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + }, + parseOutput: &gnmiParseOutputT{ + kvpairs: map[string]string{}, + xpaths: map[string]interface{}{}, + }, + output: &gnmiParseOutputT{ + prefixPath: "/interfaces/interface/subinterfaces/subinterface", + kvpairs: map[string]string{"/interfaces/interface/@k1": "foo", + "/interfaces/interface/subinterfaces/subinterface/@k1": "foo1", + "/interfaces/interface/subinterfaces/subinterface/@k2": "bar1"}, + xpaths: map[string]interface{}{"/interfaces/interface/subinterfaces/subinterface/state/description": nil}, + }, + }, + { + name: "deletes-valid-no-prefix-with-origin", + err: false, + parseOrigin: true, + prefix: &gnmi.Path{ + Origin: "dummy", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + deletes: []*gnmi.Path{ + { + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + }, + parseOutput: &gnmiParseOutputT{ + kvpairs: map[string]string{}, + xpaths: map[string]interface{}{}, + }, + output: &gnmiParseOutputT{ + prefixPath: "dummy:/interfaces/interface/subinterfaces/subinterface", + kvpairs: map[string]string{"dummy:/interfaces/interface/@k1": "foo", + "dummy:/interfaces/interface/subinterfaces/subinterface/@k1": "foo1", + "dummy:/interfaces/interface/subinterfaces/subinterface/@k2": "bar1"}, + xpaths: map[string]interface{}{"dummy:/interfaces/interface/subinterfaces/subinterface/state/description": nil}, + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + parseOutput, err := gnmiParseDeletes(test.parseOrigin, test.prefix, test.deletes, test.parseOutput) + if !test.err { + if err != nil || !reflect.DeepEqual(*test.output, *parseOutput) { + var errMsg string + if err == nil { + errMsg = fmt.Sprintf("\nexpected:%v\nGot:%v", *test.output, *parseOutput) + } else { + errMsg = fmt.Sprintf("Not an error, but got an error: %v", err) + } + t.Errorf(errMsg) + } + } + + if test.err { + if err == nil && reflect.DeepEqual(*test.output, *parseOutput) { + var errMsg string + errMsg = fmt.Sprintf("want error but got nil\n") + errMsg += fmt.Sprintf("\nexpected:%v\nGot:%v\n", *test.output, *parseOutput) + t.Errorf(errMsg) + } + } + }) + } +} + +func TestFormJuniperTelemetryHdr(t *testing.T) { + var hdrInputXpath = gnmi_juniper_header.GnmiJuniperTelemetryHeader{ + SystemId: "my-device", ComponentId: 65535, SubComponentId: 0, + Path: "sensor_1:/a/:/z/:my-app", SequenceNumber: 100, + } + + hdrInputXpathBytes, err := proto.Marshal(&hdrInputXpath) + if err != nil { + t.Errorf("Error marshalling header for xpath case: %v", err) + } + + var hdrInputExt = gnmi_juniper_header_ext.GnmiJuniperTelemetryHeaderExtension{ + SystemId: "my-device", ComponentId: 65535, SubComponentId: 0, + SensorName: "sensor_1:/a/:/z/:my-app", StreamedPath: "/a/", SubscribedPath: "/z/", + Component: "my-app", SequenceNumber: 100, + } + + hdrInputExtBytes, err := proto.Marshal(&hdrInputExt) + if err != nil { + t.Errorf("Error marshalling header for xpath case: %v", err) + } + + tests := []struct { + name string + jXpaths *jnprXpathDetails + exts []*gnmi_ext1.Extension + err bool + isJuniper bool + output *juniperGnmiHeaderDetails + }{ + { + name: "juniper-gnmi-header-in-updates-parsed-as-xpaths", + err: false, + jXpaths: &jnprXpathDetails{ + xPaths: map[string]interface{}{"/a/b/c/d/__juniper_telemetry_header__": &google_protobuf.Any{ + TypeUrl: "type.googleapis.com/GnmiJuniperTelemetryHeader", + Value: hdrInputXpathBytes, + }}, + hdrXpath: "/a/b/c/d/__juniper_telemetry_header__", + publishTsXpath: "", + }, + isJuniper: true, + output: &juniperGnmiHeaderDetails{ + hdr: &hdrInputXpath, + }, + }, + { + name: "juniper-gnmi-header-in-extension", + err: false, + exts: []*gnmi_ext1.Extension{ + { + Ext: &gnmi_ext1.Extension_RegisteredExt{ + RegisteredExt: &gnmi_ext1.RegisteredExtension{ + Id: gnmi_ext1.ExtensionID_EID_JUNIPER_TELEMETRY_HEADER, + Msg: hdrInputExtBytes, + }, + }, + }, + }, + isJuniper: true, + output: &juniperGnmiHeaderDetails{ + hdrExt: &hdrInputExt, + }, + }, + { + name: "other-vendor", + err: true, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + outputHdr, isJnpr, err := formJuniperTelemetryHdr(test.jXpaths, test.exts) + if !test.err { + if err != nil || test.isJuniper != isJnpr || !reflect.DeepEqual(*test.output, *outputHdr) { + var errMsg string + if err == nil { + if test.isJuniper == isJnpr { + errMsg = fmt.Sprintf("\nexpected:%v\nGot:%v\n", *test.output, *outputHdr) + } else { + errMsg = fmt.Sprintf("expected jnpr header?%v, Is it present?%v\n", test.isJuniper, isJnpr) + } + } else { + errMsg = fmt.Sprintf("Not an error, but got an error: %v\n", err) + } + t.Errorf(errMsg) + } + } + + if test.err { + if err == nil && test.isJuniper == isJnpr && reflect.DeepEqual(*test.output, *outputHdr) { + var errMsg string + errMsg = fmt.Sprintf("want error but got nil\n") + errMsg += fmt.Sprintf("expected jnpr header?%v, Is it present?%v\n", test.isJuniper, isJnpr) + errMsg += fmt.Sprintf("\nexpected:%v\nGot:%v", *test.output, *outputHdr) + t.Errorf(errMsg) + } + } + }) + } +} + +// The below functions should have been already covered by now, so no need to UT them +func TestGnmiParsePath(t *testing.T) { +} + +func TestGnmiParseValue(t *testing.T) { +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..b2649e0 --- /dev/null +++ b/go.mod @@ -0,0 +1,22 @@ +module github.com/Juniper/jtimon + +go 1.13 + +require ( + github.com/Shopify/sarama v1.26.1 + github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 // indirect + github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect + github.com/golang/protobuf v1.0.0 + github.com/gorilla/mux v1.8.0 + github.com/influxdata/influxdb v1.5.2 + github.com/matttproud/golang_protobuf_extensions v1.0.0 // indirect + github.com/prometheus/client_golang v0.8.0 + github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5 // indirect + github.com/prometheus/common v0.0.0-20180413074202-d0f7cd64bda4 // indirect + github.com/prometheus/procfs v0.0.0-20180408092902-8b1c2da0d56d // indirect + github.com/spf13/pflag v1.0.1 + golang.org/x/net v0.0.0-20210917221730-978cfadd31cf + golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a // indirect + google.golang.org/genproto v0.0.0-20180413175816-7fd901a49ba6 // indirect + google.golang.org/grpc v1.11.3 +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..6a35780 --- /dev/null +++ b/go.sum @@ -0,0 +1,108 @@ +github.com/Shopify/sarama v1.26.1 h1:3jnfWKD7gVwbB1KSy/lE0szA9duPuSFLViK0o/d3DgA= +github.com/Shopify/sarama v1.26.1/go.mod h1:NbSGBSSndYaIhRcBtY9V0U7AyH+x71bG668AuWys/yU= +github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= +github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/frankban/quicktest v1.7.2 h1:2QxQoC1TS09S7fhCPsrvqYdvP1H5M1P1ih5ABm3BTYk= +github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/protobuf v1.0.0 h1:lsek0oXi8iFE9L+EXARyHIjU5rlWIhhTkjDz3vHhWWQ= +github.com/golang/protobuf v1.0.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/influxdata/influxdb v1.5.2 h1:8aMxqeraY0u+2KCbuyv0F8AJolFZnrEUJaJEhavAr/4= +github.com/influxdata/influxdb v1.5.2/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= +github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= +github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/klauspost/compress v1.9.8 h1:VMAMUUOh+gaxKTMk+zqbjsSjsIcUcL/LF4o63i82QyA= +github.com/klauspost/compress v1.9.8/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= +github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/matttproud/golang_protobuf_extensions v1.0.0 h1:YNOwxxSJzSUARoD9KRZLzM9Y858MNGCOACTvCW9TSAc= +github.com/matttproud/golang_protobuf_extensions v1.0.0/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/pierrec/lz4 v2.4.1+incompatible h1:mFe7ttWaflA46Mhqh+jUfjp2qTbPYxLB2/OyBppH9dg= +github.com/pierrec/lz4 v2.4.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.8.0 h1:1921Yw9Gc3iSc4VQh3PIoOqgPCZS7G/4xQNVUp8Mda8= +github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5 h1:cLL6NowurKLMfCeQy4tIeph12XNQWgANCNvdyrOYKV4= +github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/common v0.0.0-20180413074202-d0f7cd64bda4 h1:rPmL0pCWefiqV7RjMYuBUrLbMJmNVjRKz82caELPTUQ= +github.com/prometheus/common v0.0.0-20180413074202-d0f7cd64bda4/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/procfs v0.0.0-20180408092902-8b1c2da0d56d h1:RCcsxyRr6+/pLg6wr0cUjPovhEhSNOtPh0SOz6u3hGU= +github.com/prometheus/procfs v0.0.0-20180408092902-8b1c2da0d56d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 h1:dY6ETXrvDG7Sa4vE8ZQG4yqWg6UnOcbqTAahkV813vQ= +github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/spf13/pflag v1.0.1 h1:aCvUg6QPl3ibpQUxyLkrEkCHtPqYJL4x9AuhqVqFis4= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72 h1:+ELyKg6m8UBf0nPFSqD0mi7zUfwPyXo23HNjMnXPz7w= +golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210917221730-978cfadd31cf h1:R150MpwJIv1MpS0N/pc+NhTM8ajzvlmxlY5OYsrevXQ= +golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a h1:WXEvlFVvvGxCJLG6REjsT03iWnKLEWinaScsxF2Vm2o= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20180413175816-7fd901a49ba6 h1:VrRtqEIrO5wUzNwL/A2WTNUtDuAtvb3KPK3OrUriLqI= +google.golang.org/genproto v0.0.0-20180413175816-7fd901a49ba6/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/grpc v1.11.3 h1:yy64MFk0j8qZbdXVA0MaSE+s/+6nCUdiyf1uNSjAz0c= +google.golang.org/grpc v1.11.3/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/jcmturner/aescts.v1 v1.0.1 h1:cVVZBK2b1zY26haWB4vbBiZrfFQnfbTVrE3xZq6hrEw= +gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= +gopkg.in/jcmturner/dnsutils.v1 v1.0.1 h1:cIuC1OLRGZrld+16ZJvvZxVJeKPsvd5eUIvxfoN5hSM= +gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= +gopkg.in/jcmturner/goidentity.v3 v3.0.0 h1:1duIyWiTaYvVx3YX2CYtpJbUFd7/UuPYCfgXtQ3VTbI= +gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= +gopkg.in/jcmturner/gokrb5.v7 v7.5.0 h1:a9tsXlIDD9SKxotJMK3niV7rPZAJeX2aD/0yg3qlIrg= +gopkg.in/jcmturner/gokrb5.v7 v7.5.0/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= +gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU= +gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/grpc.go b/grpc.go new file mode 100644 index 0000000..a61e7df --- /dev/null +++ b/grpc.go @@ -0,0 +1,73 @@ +package main + +import ( + "crypto/tls" + "crypto/x509" + "fmt" + "io/ioutil" + + "google.golang.org/grpc" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/encoding/gzip" +) + +func getSecurityOptions(jctx *JCtx) (grpc.DialOption, error) { + var bs []byte + var err error + + if jctx.config.TLS.CA == "" { + return grpc.WithInsecure(), nil + } + + certificate, _ := tls.LoadX509KeyPair(jctx.config.TLS.ClientCrt, jctx.config.TLS.ClientKey) + certPool := x509.NewCertPool() + if bs, err = ioutil.ReadFile(jctx.config.TLS.CA); err != nil { + return nil, fmt.Errorf("[%s] failed to read ca cert: %s", jctx.config.Host, err) + } + + if ok := certPool.AppendCertsFromPEM(bs); !ok { + return nil, fmt.Errorf("[%s] failed to append certs", jctx.config.Host) + } + + transportCreds := credentials.NewTLS(&tls.Config{ + Certificates: []tls.Certificate{certificate}, + ServerName: jctx.config.TLS.ServerName, + RootCAs: certPool, + }) + + return grpc.WithTransportCredentials(transportCreds), nil +} + +func getGPRCDialOptions(jctx *JCtx, vendor *vendor) ([]grpc.DialOption, error) { + var opts []grpc.DialOption + + if securityOpt, err := getSecurityOptions(jctx); err == nil { + opts = append(opts, securityOpt) + } else { + return nil, err + } + + if *stateHandler { + opts = append(opts, grpc.WithStatsHandler(&statshandler{jctx: jctx})) + } + + switch *compression { + case "gzip": + compressionOpts := grpc.WithDefaultCallOptions(grpc.UseCompressor(gzip.Name)) + opts = append(opts, compressionOpts) + jLog(jctx, "compression = gzip") + default: + jLog(jctx, "compression = none") + } + + ws := jctx.config.GRPC.WS + opts = append(opts, grpc.WithInitialWindowSize(ws)) + + if vendor.dialExt != nil { + opt := vendor.dialExt(jctx) + if opt != nil { + opts = append(opts, opt) + } + } + return opts, nil +} diff --git a/influx.go b/influx.go new file mode 100644 index 0000000..bc5e502 --- /dev/null +++ b/influx.go @@ -0,0 +1,681 @@ +package main + +import ( + "fmt" + "log" + "math" + "reflect" + "regexp" + "strings" + "sync" + "time" + + na_pb "github.com/Juniper/jtimon/telemetry" + "github.com/influxdata/influxdb/client/v2" +) + +// InfluxCtx is run time info of InfluxDB data structures +type InfluxCtx struct { + sync.Mutex + influxClient *client.Client + batchWCh chan []*client.Point + batchWMCh chan *batchWMData + accumulatorCh chan (*metricIDB) + reXpath, reKey *regexp.Regexp +} + +type batchWMData struct { + measurement string + points []*client.Point +} + +// InfluxConfig is the config of InfluxDB +type InfluxConfig struct { + Server string `json:"server"` + Port int `json:"port"` + Dbname string `json:"dbname"` + User string `json:"user"` + Password string `json:"password"` + Recreate bool `json:"recreate"` + Measurement string `json:"measurement"` + BatchSize int `json:"batchsize"` + BatchFrequency int `json:"batchfrequency"` + HTTPTimeout int `json:"http-timeout"` + RetentionPolicy string `json:"retention-policy"` + AccumulatorFrequency int `json:"accumulator-frequency"` + WritePerMeasurement bool `json:"write-per-measurement"` +} + +type metricIDB struct { + tags map[string]string + fields map[string]interface{} + ts uint64 +} + +func newMetricIDB(tags map[string]string, fields map[string]interface{}, ts uint64) *metricIDB { + return &metricIDB{ + tags: tags, + fields: fields, + ts: ts, + } +} + +func (m *metricIDB) accumulate(jctx *JCtx) { + if jctx.influxCtx.influxClient != nil { + jctx.influxCtx.accumulatorCh <- m + } +} + +func pointAcculumator(jctx *JCtx) { + deviceTs := gDeviceTs + freq := jctx.config.Influx.AccumulatorFrequency + accumulatorCh := make(chan *metricIDB, 1024*10) + jctx.influxCtx.accumulatorCh = accumulatorCh + jLog(jctx, fmt.Sprintln("Accumulator frequency:", freq)) + + ticker := time.NewTicker(time.Duration(freq) * time.Millisecond) + + go func() { + for range ticker.C { + n := len(accumulatorCh) + if n != 0 { + jLog(jctx, fmt.Sprintf("Accumulated points : %d\n", n)) + var lastPoint *client.Point + var points []*client.Point + for i := 0; i < n; i++ { + m := <-accumulatorCh + + // validate the point + if pt, err := client.NewPoint("tmpmeasure", m.tags, m.fields, time.Now()); err != nil { + jLog(jctx, fmt.Sprintf("pointAcculumator: Could not get TmpPoint: %v\n", err)) + continue + } else { + _, err := pt.Fields() + if err != nil { + jLog(jctx, fmt.Sprintf("addIDB: Could not get fields of the TmpPoint: %v\n", err)) + continue + } + } + + if lastPoint == nil { + mName := "" + if jctx.config.Influx.Measurement != "" { + mName = jctx.config.Influx.Measurement + } else { + mName = m.tags["sensor"] + } + + m.fields[deviceTs] = int64(m.ts) + pt, err := client.NewPoint(mName, m.tags, m.fields, time.Now()) + if err != nil { + jLog(jctx, fmt.Sprintf("pointAcculumator: Could not get NewPoint (first point): %v\n", err)) + continue + } + lastPoint = pt + } else { + // let's see if we can merge + var fieldFound = false + eq := reflect.DeepEqual(m.tags, lastPoint.Tags()) + if eq { + // tags are equal so most likely we will be able to merge. + // we would also need to see if the field is not already part of the point, + // if it is then we can merge because in 'config false' world of yang, keys + // are optional inside list so instead of losing the point we'd not merge. + for mk := range m.fields { + lastKV, _ := lastPoint.Fields() + if _, ok := lastKV[mk]; ok { + fieldFound = true + break + } + } + } + if eq && !fieldFound { + // We can merge + lastKV, err := lastPoint.Fields() + name := lastPoint.Name() + if err != nil { + jLog(jctx, fmt.Sprintf("addIDB: Could not get fields of the last point: %v\n", err)) + continue + } + // get the fields from last point for merging + for k, v := range lastKV { + m.fields[k] = v + } + pt, err := client.NewPoint(name, m.tags, m.fields, time.Now()) + if err != nil { + jLog(jctx, fmt.Sprintf("addIDB: Could not get NewPoint (merging): %v\n", err)) + continue + } + lastPoint = pt + } else { + // lastPoint tags and current point tags differes so we can not merge. + // toss current point into the slice (points) and handle current point + // by creating new *client.Point + mName := "" + if jctx.config.Influx.Measurement != "" { + mName = jctx.config.Influx.Measurement + } else { + mName = m.tags["sensor"] + } + m.fields[deviceTs] = int64(m.ts) + pt, err := client.NewPoint(mName, m.tags, m.fields, time.Now()) + if err != nil { + jLog(jctx, fmt.Sprintf("pointAcculumator: Could not get NewPoint (first point): %v\n", err)) + continue + } + points = append(points, lastPoint) + lastPoint = pt + } + } + } + + if len(points) > 0 { + // See if we need to add lastPoint we are processing + if eq := reflect.DeepEqual(points[len(points)-1], lastPoint); !eq { + points = append(points, lastPoint) + } + } + + if len(points) > 0 { + bp, err := client.NewBatchPoints(client.BatchPointsConfig{ + Database: jctx.config.Influx.Dbname, + Precision: "ns", + RetentionPolicy: jctx.config.Influx.RetentionPolicy, + }) + + if err != nil { + jLog(jctx, fmt.Sprintf("NewBatchPoints failed, error: %v\n", err)) + return + } + + for _, p := range points { + bp.AddPoint(p) + if jctx.config.Log.Verbose { + jLog(jctx, fmt.Sprintf("\n\nPoint Name = %s\n", p.Name())) + jLog(jctx, fmt.Sprintf("tags are following ....")) + for k, v := range p.Tags() { + jLog(jctx, fmt.Sprintf("%s = %s", k, v)) + } + fields, err := p.Fields() + if err != nil { + jLog(jctx, fmt.Sprintf("%v", err)) + } else { + jLog(jctx, fmt.Sprintf("fields are following ....")) + for k, v := range fields { + jLog(jctx, fmt.Sprintf("%s = %s", k, v)) + } + } + } + } + if err := (*jctx.influxCtx.influxClient).Write(bp); err != nil { + jLog(jctx, fmt.Sprintf("Batch DB write failed: %v", err)) + } else { + jLog(jctx, fmt.Sprintln("Batch write successful! Number of points written post merge logic: ", len(points))) + } + + } + } + } + }() +} + +func dbBatchWriteM(jctx *JCtx) { + if jctx.influxCtx.influxClient == nil { + return + } + + batchSize := jctx.config.Influx.BatchSize + batchMCh := make(chan *batchWMData, batchSize/4) + jctx.influxCtx.batchWMCh = batchMCh + + // wake up periodically and perform batch write into InfluxDB + bFreq := jctx.config.Influx.BatchFrequency + jLog(jctx, fmt.Sprintln("batch size:", batchSize, "batch frequency:", bFreq)) + + ticker := time.NewTicker(time.Duration(bFreq) * time.Millisecond) + go func() { + for range ticker.C { + m := map[string][]*batchWMData{} + n := len(batchMCh) + if n != 0 { + jLog(jctx, fmt.Sprintln("#elements in the batchMCh channel : ", n)) + for i := 0; i < n; i++ { + d := <-batchMCh + v := m[d.measurement] + m[d.measurement] = append(v, d) + } + jLog(jctx, fmt.Sprintln("#elements in the measurement map : ", len(m))) + + } + + for measurement, data := range m { + jLog(jctx, fmt.Sprintf("measurement: %s, data len: %d", measurement, len(data))) + + bp, err := client.NewBatchPoints(client.BatchPointsConfig{ + Database: jctx.config.Influx.Dbname, + Precision: "ns", + RetentionPolicy: jctx.config.Influx.RetentionPolicy, + }) + + if err != nil { + jLog(jctx, fmt.Sprintf("NewBatchPoints failed, error: %v", err)) + continue + } + + for j := 0; j < len(data); j++ { + packet := data[j].points + k := 0 + for k = 0; k < len(packet); k++ { + bp.AddPoint(packet[k]) + if len(bp.Points()) >= batchSize { + jLog(jctx, fmt.Sprintf("Attempt to write %d points in %s", len(bp.Points()), measurement)) + if err := (*jctx.influxCtx.influxClient).Write(bp); err != nil { + jLog(jctx, fmt.Sprintf("Batch DB write failed for measurement %s: %v", measurement, err)) + } else { + jLog(jctx, fmt.Sprintln("Batch write successful for measurement: ", measurement)) + } + + bp, err = client.NewBatchPoints(client.BatchPointsConfig{ + Database: jctx.config.Influx.Dbname, + Precision: "ns", + RetentionPolicy: jctx.config.Influx.RetentionPolicy, + }) + } + } + } + if len(bp.Points()) > 0 { + jLog(jctx, fmt.Sprintf("Attempt to write %d points in %s", len(bp.Points()), measurement)) + if err := (*jctx.influxCtx.influxClient).Write(bp); err != nil { + jLog(jctx, fmt.Sprintf("Batch DB write failed for measurement %s: %v", measurement, err)) + } else { + jLog(jctx, fmt.Sprintln("Batch write successful for measurement: ", measurement)) + } + + bp, err = client.NewBatchPoints(client.BatchPointsConfig{ + Database: jctx.config.Influx.Dbname, + Precision: "ns", + RetentionPolicy: jctx.config.Influx.RetentionPolicy, + }) + } + } + } + }() +} + +func dbBatchWrite(jctx *JCtx) { + if jctx.influxCtx.influxClient == nil { + return + } + + batchSize := jctx.config.Influx.BatchSize + batchCh := make(chan []*client.Point, batchSize) + jctx.influxCtx.batchWCh = batchCh + + // wake up periodically and perform batch write into InfluxDB + bFreq := jctx.config.Influx.BatchFrequency + jLog(jctx, fmt.Sprintln("batch size:", batchSize, "batch frequency:", bFreq)) + + ticker := time.NewTicker(time.Duration(bFreq) * time.Millisecond) + go func() { + for range ticker.C { + n := len(batchCh) + if n != 0 { + bp, err := client.NewBatchPoints(client.BatchPointsConfig{ + Database: jctx.config.Influx.Dbname, + Precision: "ns", + RetentionPolicy: jctx.config.Influx.RetentionPolicy, + }) + + if err != nil { + jLog(jctx, fmt.Sprintf("NewBatchPoints failed, error: %v\n", err)) + return + } + + for i := 0; i < n; i++ { + packet := <-batchCh + for j := 0; j < len(packet); j++ { + bp.AddPoint(packet[j]) + } + } + + jLog(jctx, fmt.Sprintf("Batch processing: #packets:%d #points:%d\n", n, len(bp.Points()))) + + if err := (*jctx.influxCtx.influxClient).Write(bp); err != nil { + jLog(jctx, fmt.Sprintf("Batch DB write failed: %v", err)) + } else { + jLog(jctx, fmt.Sprintln("Batch write successful! Post batch write available points: ", len(batchCh))) + } + } + } + }() +} + +// Takes in XML path with predicates and returns list of tags+values +// along with a final XML path without predicates +func spitTagsNPath(jctx *JCtx, xmlpath string) (string, map[string]string) { + // reXpath regex splits the given xmlpath string into element-name and its + // keyvalue pairs + // Example : + // foo/bar/interfaces[name = ge-/0/0/0] + // Regex will split the string into the following groups + // group 0 /interfaces[name = 'ge-/0/0/0' and unit = ' 0'] + // group 1 interfaces + // group 2 name = 'ge-/0/0/0' and unit = ' 0' + subs := jctx.influxCtx.reXpath.FindAllStringSubmatch(xmlpath, -1) + tags := make(map[string]string) + + // Given XML path, this will spit out final path without predicates + if len(subs) > 0 { + for _, sub := range subs { + tagKeyPrefix := strings.Split(xmlpath, sub[0])[0] + // From the key value pairs extract the key and value + // the first and second group will contain the key and value + // respectively. + keyValues := jctx.influxCtx.reKey.FindAllStringSubmatch(sub[2], -1) + + if len(keyValues) > 0 { + for _, keyValue := range keyValues { + tagKey := tagKeyPrefix + "/" + strings.TrimSpace(sub[1]) + + "/@" + strings.TrimSpace(keyValue[1]) + tagValue := strings.Replace(strings.TrimSpace(keyValue[2]), "'", "", -1) + // Store as key value pairs + tags[getAlias(jctx.alias, tagKey)] = tagValue + } + } + // Remove the key value pairs from the given xpath + xmlpath = strings.Replace(xmlpath, sub[0], "/"+strings.TrimSpace(sub[1]), 1) + xmlpath = getAlias(jctx.alias, xmlpath) + } + } + + return xmlpath, tags +} + +// SubscriptionPathFromPath to extract subscription path from path +func SubscriptionPathFromPath(path string) string { + tokens := strings.Split(path, ":") + if len(tokens) == 4 { + return tokens[2] + } + return "" +} + +func mName(ocData *na_pb.OpenConfigData, cfg Config) string { + if cfg.Influx.Measurement != "" { + return cfg.Influx.Measurement + } + + if ocData != nil { + path := ocData.Path + return SubscriptionPathFromPath(path) + } + return "" +} + +type row struct { + tags map[string]string + fields map[string]interface{} +} + +func newRow(tags map[string]string, fields map[string]interface{}) (*row, error) { + return &row{ + tags: tags, + fields: fields, + }, nil +} + +// A go routine to add one telemetry packet in to InfluxDB +func addIDB(ocData *na_pb.OpenConfigData, jctx *JCtx, rtime time.Time) { + deviceTs := gDeviceTs + cfg := jctx.config + + prefix := "" + prefixXmlpath := "" + var prefixTags map[string]string + var tags map[string]string + var xmlpath string + prefixTags = nil + + points := make([]*client.Point, 0) + rows := make([]*row, 0) + + for _, v := range ocData.Kv { + kv := make(map[string]interface{}) + + switch { + case v.Key == "__prefix__": + prefix = v.GetStrValue() + prefixXmlpath, prefixTags = spitTagsNPath(jctx, prefix) + continue + case strings.HasPrefix(v.Key, "__"): + continue + } + + key := v.Key + if key[0] != '/' { + if strings.Contains(key, "[") { + key = prefix + v.Key + xmlpath, tags = spitTagsNPath(jctx, key) + } else { + xmlpath = prefixXmlpath + key + tags = prefixTags + xmlpath = getAlias(jctx.alias, xmlpath) + } + } else { + xmlpath, tags = spitTagsNPath(jctx, key) + } + + if tags == nil { + continue + } + + tags["device"] = cfg.Host + tags["sensor"] = ocData.Path + + switch v.Value.(type) { + case *na_pb.KeyValue_StrValue: + kv[xmlpath] = v.GetStrValue() + case *na_pb.KeyValue_DoubleValue: + var floatVal float64 + val := v.GetDoubleValue() + checkAndCeilFloatValues(nil, &val, &floatVal) + kv[xmlpath] = floatVal + case *na_pb.KeyValue_IntValue: + kv[xmlpath] = float64(v.GetIntValue()) + case *na_pb.KeyValue_UintValue: + if jctx.config.EnableUintSupport { + kv[xmlpath] = v.GetUintValue() + } else { + kv[xmlpath] = float64(v.GetUintValue()) + } + case *na_pb.KeyValue_SintValue: + kv[xmlpath] = float64(v.GetSintValue()) + case *na_pb.KeyValue_BoolValue: + kv[xmlpath] = v.GetBoolValue() + case *na_pb.KeyValue_BytesValue: + kv[xmlpath] = v.GetBytesValue() + case *na_pb.KeyValue_FloatValue: + var floatVal float64 + value32 := v.GetFloatValue() + checkAndCeilFloatValues(&value32, nil, &floatVal) + kv[xmlpath] = floatVal + default: + } + + if *genTestData { + testDataPoints(jctx, GENTESTEXPDATA, tags, kv) + } + if *conTestData { + testDataPoints(jctx, GENTESTRESDATA, tags, kv) + } + + if jctx.influxCtx.influxClient == nil { + continue + } + + if len(kv) != 0 { + if len(rows) != 0 { + lastRow := rows[len(rows)-1] + eq := reflect.DeepEqual(tags, lastRow.tags) + if eq { + // We can merge + for k, v := range kv { + lastRow.fields[k] = v + } + } else { + // Could not merge as tags are different + kv[deviceTs] = int64(ocData.Timestamp) + rw, err := newRow(tags, kv) + if err != nil { + jLog(jctx, fmt.Sprintf("addIDB: Could not get NewRow (no merge): %v", err)) + continue + } + rows = append(rows, rw) + } + } else { + // First row for this sensor + kv[deviceTs] = int64(ocData.Timestamp) + rw, err := newRow(tags, kv) + if err != nil { + jLog(jctx, fmt.Sprintf("addIDB: Could not get NewRow (first row): %v", err)) + continue + } + rows = append(rows, rw) + } + } + } + if len(rows) > 0 { + for _, row := range rows { + pt, err := client.NewPoint(mName(ocData, jctx.config), row.tags, row.fields, rtime) + if err != nil { + jLog(jctx, fmt.Sprintf("addIDB: Could not get NewPoint : %v", err)) + continue + } + points = append(points, pt) + } + } + + if len(points) > 0 { + if jctx.config.Influx.WritePerMeasurement { + jctx.influxCtx.batchWMCh <- &batchWMData{ + measurement: mName(ocData, jctx.config), + points: points, + } + } else { + jctx.influxCtx.batchWCh <- points + } + + if IsVerboseLogging(jctx) { + jLog(jctx, fmt.Sprintf("Sending %d points to batch channel for path: %s\n", len(points), ocData.Path)) + for i := 0; i < len(points); i++ { + jLog(jctx, fmt.Sprintf("Tags: %+v\n", points[i].Tags())) + if f, err := points[i].Fields(); err == nil { + jLog(jctx, fmt.Sprintf("KVs : %+v\n", f)) + } + } + } + } +} + +func getInfluxClient(cfg Config, timeout time.Duration) *client.Client { + if cfg.Influx.Server == "" { + return nil + } + addr := fmt.Sprintf("http://%v:%v", cfg.Influx.Server, cfg.Influx.Port) + c, err := client.NewHTTPClient(client.HTTPConfig{ + Addr: addr, + Username: cfg.Influx.User, + Password: cfg.Influx.Password, + Timeout: timeout, + }) + + if err != nil { + log.Printf("Failed to get influxdb client: %v\n", err) + } + return &c +} + +func queryIDB(clnt client.Client, cmd string, db string) (res []client.Result, err error) { + q := client.Query{ + Command: cmd, + Database: db, + } + if response, err := clnt.Query(q); err == nil { + if response.Error() != nil { + return res, response.Error() + } + res = response.Results + } else { + return res, err + } + return res, nil +} + +func closeInfluxClient(clnt client.Client) { + _ = clnt.Close() +} + +func influxInit(jctx *JCtx) { + cfg := jctx.config + jLog(jctx, "invoking getInfluxClient for init") + + c := getInfluxClient(cfg, time.Duration(10*cfg.Influx.HTTPTimeout)*time.Second) // high timeout for init + + if cfg.Influx.Server != "" && c != nil { + if cfg.Influx.Recreate { + _, err := queryIDB(*c, fmt.Sprintf("DROP DATABASE \"%s\"", cfg.Influx.Dbname), cfg.Influx.Dbname) + if err != nil { + log.Printf("influxInit failed to drop table %v\n", err) + } + } + _, err := queryIDB(*c, fmt.Sprintf("CREATE DATABASE \"%s\"", cfg.Influx.Dbname), cfg.Influx.Dbname) + if err != nil { + log.Printf("influxInit failed to create database: %v\n", err) + } + } + + jLog(jctx, "invoking getInfluxClient") + jctx.influxCtx.influxClient = getInfluxClient(cfg, time.Duration(cfg.Influx.HTTPTimeout)*time.Second) + jctx.influxCtx.reXpath = regexp.MustCompile(MatchExpressionXpath) + jctx.influxCtx.reKey = regexp.MustCompile(MatchExpressionKey) + if cfg.Influx.Server != "" && c != nil { + if cfg.Influx.WritePerMeasurement { + dbBatchWriteM(jctx) + } else { + dbBatchWrite(jctx) + } + pointAcculumator(jctx) + jLog(jctx, "Successfully initialized InfluxDB Client") + } + + if c != nil { + closeInfluxClient(*c) + } +} + +func checkAndCeilFloatValues(val32 *float32, val64 *float64, cieled *float64) { + if val32 != nil { + *cieled = float64(*val32) + if math.IsInf(*cieled, 1) { + *cieled = math.MaxFloat64 + } else if math.IsInf(*cieled, -1) { + *cieled = -math.MaxFloat64 + } + return + } + + if val64 == nil { + *cieled = 0 + return + } + + if math.IsInf(*val64, 1) { + *cieled = math.MaxFloat64 + } else if math.IsInf(*val64, -1) { + *cieled = -math.MaxFloat64 + } else { + *cieled = *val64 + } + + return +} diff --git a/influx_test.go b/influx_test.go new file mode 100644 index 0000000..0eb12cc --- /dev/null +++ b/influx_test.go @@ -0,0 +1,256 @@ +package main + +import ( + "fmt" + "math" + "math/big" + "reflect" + "regexp" + "testing" +) + +func TestSpitTagsNPath(t *testing.T) { + jctx := &JCtx{ + influxCtx: InfluxCtx{ + reXpath: regexp.MustCompile(MatchExpressionXpath), + reKey: regexp.MustCompile(MatchExpressionKey), + }, + } + + tests := []struct { + name string + input string + xmlpath string + tags map[string]string + }{ + { + "path-without-tags", + "/path/without/tags", + "/path/without/tags", + map[string]string{}, + }, + { + "ifd-admin-status", + "/interfaces/interface[name='ge-0/0/0']/state/admin-status/", + "/interfaces/interface/state/admin-status/", + map[string]string{ + "/interfaces/interface/@name": "ge-0/0/0", + }, + }, + { + "ifl-admin-status", + "/interfaces/interface[name='ge-0/0/0']/subinterfaces/subinterface[index='9']/state/admin-status", + "/interfaces/interface/subinterfaces/subinterface/state/admin-status", + map[string]string{ + "/interfaces/interface/@name": "ge-0/0/0", + "/interfaces/interface/subinterfaces/subinterface/@index": "9", + }, + }, + { + "cmerror", + "/junos/chassis/cmerror/counters[name='/fpc/1/pfe/0/cm/0/CM0/0/CM_CMERROR_FABRIC_REMOTE_PFE_RATE']/error", + "/junos/chassis/cmerror/counters/error", + map[string]string{ + "/junos/chassis/cmerror/counters/@name": "/fpc/1/pfe/0/cm/0/CM0/0/CM_CMERROR_FABRIC_REMOTE_PFE_RATE", + }, + }, + { + "events", + "/junos/events/event[id='SYSTEM' and type='3' and facility='5']/attributes[key='message']/", + "/junos/events/event/attributes/", + map[string]string{ + "/junos/events/event/@id": "SYSTEM", + "/junos/events/event/@type": "3", + "/junos/events/event/@facility": "5", + "/junos/events/event/attributes/@key": "message", + }, + }, + { + "events-2", + "/junos/rpm/history-results/history-test-results/history-single-test-results[owner='orlando' and test-name='orlando']/", + "/junos/rpm/history-results/history-test-results/history-single-test-results/", + map[string]string{ + "/junos/rpm/history-results/history-test-results/history-single-test-results/@owner": "orlando", + "/junos/rpm/history-results/history-test-results/history-single-test-results/@test-name": "orlando", + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + gotxmlpath, gottags := spitTagsNPath(jctx, test.input) + if gotxmlpath != test.xmlpath { + t.Errorf("splitTagsNPath xmlpath failed, got: %s, want: %s", gotxmlpath, test.xmlpath) + } + if !reflect.DeepEqual(gottags, test.tags) { + t.Errorf("splitTagsNPath tags failed, got: %v, want: %v", gottags, test.tags) + } + }) + } +} + +func TestSubscriptionPathFromPath(t *testing.T) { + tests := []struct { + name string + input string + exp string + }{ + { + "empty", + "", + "", + }, + { + "lacpd", + "sensor_1008:/lacp/:/lacp/:lacpd", + "/lacp/", + }, + { + "l2cpd", + "sensor_1009:/lldp/:/lldp/:l2cpd", + "/lldp/", + }, + { + "xmlproxyd", + "sensor_1000_5_1:/interfaces/:/interfaces/:xmlproxyd", + "/interfaces/", + }, + { + "pfe-ifd", + "sensor_1000_1_1:/junos/system/linecard/interface/:/interfaces/:PFE", + "/interfaces/", + }, + { + "arp-mib2d", + "sensor_1002:/arp-information/ipv4/:/arp-information/ipv4/:mib2d", + "/arp-information/ipv4/", + }, + { + "pfe-ifl", + "sensor_1000_1_2:/junos/system/linecard/interface/logical/usage/:/interfaces/:PFE", + "/interfaces/", + }, + { + "pfe-firewall", + "sensor_1004:/junos/system/linecard/firewall/:/junos/system/linecard/firewall/:PFE", + "/junos/system/linecard/firewall/", + }, + { + "pfe-npu-memory", + "sensor_1018:/junos/system/linecard/npu/memory/:/junos/system/linecard/npu/memory/:PFE", + "/junos/system/linecard/npu/memory/", + }, + { + "mib2d-ifindex", + "sensor_1006:/interfaces/interface/state/ifindex/:/interfaces/interface/state/ifindex/:mib2d", + "/interfaces/interface/state/ifindex/", + }, + { + "rpd", + "sensor_1010:/network-instances/network-instance/mpls/:/network-instances/network-instance/mpls/:rpd", + "/network-instances/network-instance/mpls/", + }, + } + + for _, test := range tests { + got := SubscriptionPathFromPath(test.input) + if got != test.exp { + t.Errorf("SubscriptionPathFromPath failed, got: %s, want: %s", got, test.exp) + } + } + +} + +func TestCheckAndCeilFloatValues(t *testing.T) { + + inf64PracticalMaxLowerBound := math.MaxFloat64 - 9.979e291 + inf64PracticalMaxUpperBound := math.MaxFloat64 + 9.979e291 + val64PracticalNonMax := math.MaxFloat64 - 9.98e291 + val32Max := float32(math.MaxFloat32) + negInf64PracticalMaxLowerBound := -(math.MaxFloat64 - 9.979e291) + negInf64PracticalMaxUpperBound := -(math.MaxFloat64 + 9.979e291) + val64PracticalNonMin := -(math.MaxFloat64 - 9.98e291) + val32Min := float32(-math.MaxFloat32) + zero32 := float32(0) + zero64 := float64(0) + tests := []struct { + name string + val32 *float32 + val64 *float64 + expected float64 + }{ + { + name: "PracticalMaxLowerBoun", + val32: nil, + val64: &inf64PracticalMaxLowerBound, + expected: math.MaxFloat64, + }, + { + name: "PracticalMaxUpperBound", + val32: nil, + val64: &inf64PracticalMaxUpperBound, + expected: math.MaxFloat64, + }, + { + name: "PracticalNonMax", + val32: nil, + val64: &val64PracticalNonMax, + expected: val64PracticalNonMax, + }, + { + name: "Float32", + val32: &val32Max, + val64: nil, + expected: float64(val32Max), + }, + { + name: "negInf64PracticalMaxLowerBound", + val32: nil, + val64: &negInf64PracticalMaxLowerBound, + expected: -math.MaxFloat64, + }, + { + name: "negInf64PracticalMaxUpperBound", + val32: nil, + val64: &negInf64PracticalMaxUpperBound, + expected: -math.MaxFloat64, + }, + { + name: "PracticalNonMin", + val32: nil, + val64: &val64PracticalNonMin, + expected: val64PracticalNonMin, + }, + { + name: "Float32Min", + val32: &val32Min, + val64: nil, + expected: float64(val32Min), + }, + { + name: "Zero32", + val32: &zero32, + val64: nil, + expected: float64(zero32), + }, + { + name: "Zero64", + val32: nil, + val64: &zero64, + expected: float64(zero64), + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + var output float64 + checkAndCeilFloatValues(test.val32, test.val64, &output) + diff := uint64(big.NewFloat(output).Cmp(big.NewFloat(test.expected))) + if diff != 0 { + var errMsg string + errMsg = fmt.Sprintf("\nNot equal, expected :%v\nGot :%v, diff: %v", test.expected, output, diff) + t.Errorf(errMsg) + } + }) + } +} diff --git a/jtimon_test.go b/jtimon_test.go new file mode 100644 index 0000000..79fd36b --- /dev/null +++ b/jtimon_test.go @@ -0,0 +1,141 @@ +package main + +import ( + "bytes" + "fmt" + "io/ioutil" + "log" + "net/http" + "os" + "strings" + "testing" + "time" + + js "github.com/Juniper/jtimon/jtisim" + lps "github.com/Juniper/jtimon/lpserver" + + flag "github.com/spf13/pflag" +) + +func TestMain(m *testing.M) { + flag.Parse() + + go func() { + host := "127.0.0.1" + port := 50051 + + jtisim := js.NewJTISim(host, int32(port), false, "tests/simulator/desc") + if err := jtisim.Start(); err != nil { + log.Printf("can not start jti simulator: %v", err) + } + }() + + go func() { + s := lps.NewLPServer("127.0.0.1", 50052) + s.StartServer() + }() + fmt.Println("TestMain - waiting 3s for JTISIM and Influx Store to come up") + time.Sleep(3 * time.Second) + fmt.Println("TestMain - done waiting") + + os.Exit(m.Run()) +} + +func compareResults(jctx *JCtx) error { + testRes := jctx.testRes + + if testRes == nil { + return fmt.Errorf("testRes is nil") + } + ret, err := testRes.Seek(0, 0) + if ret != 0 { + return fmt.Errorf("can not seek testRes") + } + if err != nil { + return err + } + + testExp, err := os.Open(jctx.file + ".testexp") + if err != nil { + return err + } + defer testExp.Close() + + r, err := ioutil.ReadAll(testRes) + if err != nil { + return err + } + e, err := ioutil.ReadAll(testExp) + if err != nil { + return err + } + + if !bytes.Equal(r, e) { + return fmt.Errorf("test failed: content of %s does not match with content of %s", + jctx.file+".testres", jctx.file+".testexp") + } + + return nil +} + +type storeType int + +const ( + STOREOPEN = iota + STORECLOSE +) + +func influxStore(host string, port int, op storeType, name string) error { + url := "" + switch op { + case STOREOPEN: + url = fmt.Sprintf("http://%s:%d/store/open", host, port) + case STORECLOSE: + url = fmt.Sprintf("http://%s:%d/store/close", host, port) + } + + s := fmt.Sprintf(`{"name":"%s"}`, name) + req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(s))) + req.Header.Set("Content-Type", "application/json") + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return err + } + defer resp.Body.Close() + ioutil.ReadAll(resp.Body) + return nil +} + +func prometheusCollect(host string, port int, jctx *JCtx) error { + var f *os.File + var err error + + if f, err = os.Create(jctx.file + ".testres"); err != nil { + return err + } + defer f.Close() + + url := fmt.Sprintf("http://%s:%d/metrics", host, port) + + var resp *http.Response + if resp, err = http.Get(url); err != nil { + return err + } + defer resp.Body.Close() + + var body []byte + if body, err = ioutil.ReadAll(resp.Body); err != nil { + return err + } + + strs := strings.Split(string(body), "\n") + for _, str := range strs { + if strings.HasPrefix(str, "_interfaces_interface") { + f.WriteString(str + "\n") + } + } + + return nil +} diff --git a/jtisim/.gitignore b/jtisim/.gitignore new file mode 100644 index 0000000..61a61b8 --- /dev/null +++ b/jtisim/.gitignore @@ -0,0 +1,5 @@ +jtisim +launch +.vscode +debug +cmd/cmd diff --git a/jtisim/.travis.yml b/jtisim/.travis.yml new file mode 100644 index 0000000..fcd57a4 --- /dev/null +++ b/jtisim/.travis.yml @@ -0,0 +1,6 @@ + language: go + go: + - "1.10" + script: + - go get -v ./... + - go build ./... \ No newline at end of file diff --git a/jtisim/bgp.go b/jtisim/bgp.go new file mode 100644 index 0000000..7fd344f --- /dev/null +++ b/jtisim/bgp.go @@ -0,0 +1,33 @@ +package jtisim + +import ( + "log" + "time" + + tpb "github.com/Juniper/jtimon/telemetry" +) + +func (s *server) streamBGP(ch chan *tpb.OpenConfigData, path *tpb.Path) { + pname := path.GetPath() + freq := path.GetSampleFrequency() + log.Println(pname, freq) + + seq := uint64(0) + for { + kv := []*tpb.KeyValue{ + {Key: "__prefix__", Value: &tpb.KeyValue_StrValue{StrValue: "/bgp"}}, + {Key: "state/foo", Value: &tpb.KeyValue_UintValue{UintValue: 1111}}, + } + + d := &tpb.OpenConfigData{ + SystemId: "jtisim", + ComponentId: 2, + Timestamp: uint64(MakeMSTimestamp()), + SequenceNumber: seq, + Kv: kv, + } + ch <- d + time.Sleep(time.Duration(freq) * time.Millisecond) + seq++ + } +} diff --git a/jtisim/interfaces.go b/jtisim/interfaces.go new file mode 100644 index 0000000..3c7c9a7 --- /dev/null +++ b/jtisim/interfaces.go @@ -0,0 +1,281 @@ +package jtisim + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "log" + "math/rand" + "os" + "time" + + tpb "github.com/Juniper/jtimon/telemetry" +) + +// IDesc Interface description structrue +type IDesc struct { + Desc Description `json:"desc"` + IFD IFDCounters `json:"ifd-counters"` + IFL IFLCounters `json:"ifl-counters"` +} + +// Description of interfaces +type Description struct { + Media string `json:"media"` + FPC int `json:"fpc"` + PIC int `json:"pic"` + PORT int `json:"port"` + Logical int `json:"logical"` +} + +// IFDCounters of interfaces +type IFDCounters struct { + INPkts int32 `json:"in-pkts"` + INOctets int32 `json:"in-octets"` + AdminStatus bool `json:"admin-status"` + OperStatus bool `json:"oper-status"` +} + +// IFLCounters of interfaces +type IFLCounters struct { + INUnicastPkts int32 `json:"in-unicast-pkts"` + INMulticastPkts int32 `json:"in-multicast-pkts"` +} + +func parseInterfacesJSON(dir string) *IDesc { + file, err := ioutil.ReadFile(dir + "/interfaces.json") + if err != nil { + log.Fatalf("%v", err) + os.Exit(1) + } + + var iDesc IDesc + if err := json.Unmarshal(file, &iDesc); err != nil { + panic(err) + } + return &iDesc +} + +type interfaces struct { + desc *IDesc + ifds []*ifd +} +type ifd struct { + name string + inPkts uint64 + inOctets uint64 + adminStatus string + operStatus string + ifls []*ifl +} + +type ifl struct { + index int + inUPkts uint64 + inMPkts uint64 +} + +func generateIList(idesc *IDesc) *interfaces { + fpc := idesc.Desc.FPC + pic := idesc.Desc.PIC + port := idesc.Desc.PORT + media := idesc.Desc.Media + logical := idesc.Desc.Logical + + interfaces := &interfaces{ + desc: idesc, + ifds: make([]*ifd, fpc*pic*port), + } + + cnt := 0 + for i := 0; i < fpc; i++ { + for j := 0; j < pic; j++ { + for k := 0; k < port; k++ { + name := fmt.Sprintf("%s-%d/%d/%d", media, i, j, k) + ifd := &ifd{ + name: name, + } + ifd.ifls = make([]*ifl, logical) + + for index := 0; index < logical; index++ { + ifl := ifl{ + index: index, + } + ifd.ifls[index] = &ifl + } + + interfaces.ifds[cnt] = ifd + cnt++ + + } + } + } + return interfaces +} + +func getRandom(num int32, random bool) int32 { + if random == false { + return 100 + } + r := rand.New(rand.NewSource(time.Now().UnixNano())) + return r.Int31n(num) +} + +func (s *server) streamInterfaces(ch chan *tpb.OpenConfigData, path *tpb.Path) { + sysID := fmt.Sprintf("jtisim:%s:%d", s.jtisim.host, s.jtisim.port) + pname := path.GetPath() + freq := path.GetSampleFrequency() + log.Println(pname, freq) + + nsFreq := time.Duration(freq) * 1000000 + iDesc := parseInterfacesJSON(s.jtisim.descDir) + interfaces := generateIList(iDesc) + + seq := uint64(0) + + for { + ifds := interfaces.ifds + start := time.Now() + for _, ifd := range ifds { + prefixV := fmt.Sprintf("/interfaces/interface[name='%s']/", ifd.name) + + rValue := getRandom(interfaces.desc.IFD.INPkts, s.jtisim.random) + inp := ifd.inPkts + uint64((uint32(rValue) * (freq / 1000))) + ifd.inPkts = inp + + rValue = getRandom(interfaces.desc.IFD.INOctets, s.jtisim.random) + ino := ifd.inOctets + uint64((uint32(rValue) * (freq / 1000))) + ifd.inOctets = ino + + ops := "UP" + ads := "DOWN" + + kv := []*tpb.KeyValue{ + {Key: "__prefix__", Value: &tpb.KeyValue_StrValue{StrValue: prefixV}}, + {Key: "name", Value: &tpb.KeyValue_StrValue{StrValue: ifd.name}}, + {Key: "state/oper-status", Value: &tpb.KeyValue_StrValue{StrValue: ops}}, + {Key: "state/admin-status", Value: &tpb.KeyValue_StrValue{StrValue: ads}}, + {Key: "state/counters/in-pkts", Value: &tpb.KeyValue_UintValue{UintValue: inp}}, + {Key: "state/counters/in-octets", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "init_time", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/counters/carrier-transitions", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/counters/last-clear", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/counters/out-octets", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/counters/out-pkts", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/counters/out-unicast-pkts", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/description", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/enabled", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/high-speed", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/ifindex", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/last-change", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/mtu", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/name", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/parent_ae_name", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/type", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + } + + d := &tpb.OpenConfigData{ + SystemId: sysID, + ComponentId: 1, + Timestamp: uint64(MakeMSTimestamp()), + SequenceNumber: seq, + Kv: kv, + SyncResponse: false, + Path: "sensor_1000_1_1:/junos/system/linecard/interface/:/interfaces/:PFE", + } + seq++ + ch <- d + + for _, ifl := range ifd.ifls { + prefixVifl := fmt.Sprintf("/interfaces/interface[name='%s']/subinterfaces/subinterface[index='%d']/", ifd.name, ifl.index) + + rValue := getRandom(interfaces.desc.IFL.INUnicastPkts, s.jtisim.random) + inup := ifl.inUPkts + uint64((uint32(rValue) * (freq / 1000))) + ifl.inUPkts = inup + + rValue = getRandom(interfaces.desc.IFL.INMulticastPkts, s.jtisim.random) + inmp := ifl.inMPkts + uint64((uint32(rValue) * (freq / 1000))) + ifl.inMPkts = inmp + name := fmt.Sprintf("%s.%d", ifd.name, ifl.index) + + kvifl := []*tpb.KeyValue{ + {Key: "__prefix__", Value: &tpb.KeyValue_StrValue{StrValue: prefixVifl}}, + {Key: "index", Value: &tpb.KeyValue_UintValue{UintValue: uint64(ifl.index)}}, + {Key: "state/name", Value: &tpb.KeyValue_StrValue{StrValue: name}}, + {Key: "state/counters/in-unicast-pkts", Value: &tpb.KeyValue_UintValue{UintValue: inup}}, + {Key: "state/counters/in-multicast-pkts", Value: &tpb.KeyValue_UintValue{UintValue: inmp}}, + {Key: "state/oper-status", Value: &tpb.KeyValue_StrValue{StrValue: ops}}, + {Key: "state/admin-status", Value: &tpb.KeyValue_StrValue{StrValue: ads}}, + {Key: "ipv4/addresses/address/ipv4/state/mtu", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/addresses/address/ipv4/unnumbered/interface-ref/state/interface", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/addresses/address/ipv4/unnumbered/interface-ref/state/subinterface", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/addresses/address/ipv4/unnumbered/state/enabled", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/addresses/address/state/ip", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/addresses/address/state/origin", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/addresses/address/state/prefix-length", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/@ip", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/ipv4/state/enabled", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/ipv4/state/mtu", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/ipv4/unnumbered/interface-ref/state/interface", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/ipv4/unnumbered/interface-ref/state/subinterface", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/ipv4/unnumbered/state/enabled", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/state/expiry", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/state/host-name", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/state/interface-name", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/state/ip", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/state/is-publish", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/state/link-layer-address", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/state/logical-router-id", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/state/neighbor-state", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/state/origin", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/neighbors/neighbor/state/table-id", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/state/enabled", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/state/mtu", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/unnumbered/interface-ref/state/interface", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/unnumbered/interface-ref/state/subinterface", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv4/unnumbered/state/enabled", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/addresses/address/@ip", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/addresses/address/ipv6/state/enabled", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/addresses/address/ipv6/state/mtu", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/addresses/address/ipv6/unnumbered/interface-ref/state/interface", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/addresses/address/ipv6/unnumbered/interface-ref/state/subinterface", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/addresses/address/ipv6/unnumbered/state/enabled", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/addresses/address/state/ip", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/addresses/address/state/origin", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/addresses/address/state/prefix-length", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/addresses/address/state/status", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/state/enabled", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/state/mtu", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/unnumbered/interface-ref/state/interface", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/unnumbered/interface-ref/state/subinterface", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "ipv6/unnumbered/state/enabled", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/counters/in-octets", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/counters/in-pkts", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/counters/out-octets", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/counters/out-pkts", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/description", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/enabled", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/ifindex", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/index", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + {Key: "state/last-change", Value: &tpb.KeyValue_UintValue{UintValue: ino}}, + } + + d := &tpb.OpenConfigData{ + SystemId: sysID, + ComponentId: 1, + Timestamp: uint64(MakeMSTimestamp()), + SequenceNumber: seq, + Kv: kvifl, + SyncResponse: false, + Path: "sensor_1013_1_1:/junos/system/linecard/interface/logical/usage/:/interfaces/:PFE", + } + seq++ + ch <- d + + } + + } //finish one wrap + wrapDuration := time.Since(start) + time.Sleep(nsFreq - wrapDuration) + } +} diff --git a/jtisim/lldp.go b/jtisim/lldp.go new file mode 100644 index 0000000..db829b3 --- /dev/null +++ b/jtisim/lldp.go @@ -0,0 +1,33 @@ +package jtisim + +import ( + "log" + "time" + + tpb "github.com/Juniper/jtimon/telemetry" +) + +func (s *server) streamLLDP(ch chan *tpb.OpenConfigData, path *tpb.Path) { + pname := path.GetPath() + freq := path.GetSampleFrequency() + log.Println(pname, freq) + + seq := uint64(0) + for { + kv := []*tpb.KeyValue{ + {Key: "__prefix__", Value: &tpb.KeyValue_StrValue{StrValue: "/lldp"}}, + {Key: "state/foo", Value: &tpb.KeyValue_UintValue{UintValue: 2222}}, + } + + d := &tpb.OpenConfigData{ + SystemId: "jtisim", + ComponentId: 3, + Timestamp: uint64(MakeMSTimestamp()), + SequenceNumber: seq, + Kv: kv, + } + ch <- d + time.Sleep(time.Duration(freq) * time.Millisecond) + seq++ + } +} diff --git a/jtisim/server.go b/jtisim/server.go new file mode 100644 index 0000000..9471fca --- /dev/null +++ b/jtisim/server.go @@ -0,0 +1,119 @@ +package jtisim + +import ( + "fmt" + "log" + "net" + "strings" + + apb "github.com/Juniper/jtimon/authentication" + tpb "github.com/Juniper/jtimon/telemetry" + "golang.org/x/net/context" + "google.golang.org/grpc" + // server size compression + _ "google.golang.org/grpc/encoding/gzip" + "google.golang.org/grpc/metadata" +) + +// JTISim is JTI Simulator +type JTISim struct { + host string + port int32 + random bool + descDir string +} + +// NewJTISim to create new jti simulator +func NewJTISim(host string, port int32, random bool, descDir string) *JTISim { + return &JTISim{ + host: host, + port: port, + random: random, + descDir: descDir, + } +} + +// Start the simulator +func (s *JTISim) Start() error { + if lis, err := net.Listen("tcp", fmt.Sprintf("%s:%d", s.host, s.port)); err == nil { + grpcServer := grpc.NewServer() + authServer := &authServer{} + + apb.RegisterLoginServer(grpcServer, authServer) + tpb.RegisterOpenConfigTelemetryServer(grpcServer, &server{s}) + + grpcServer.Serve(lis) + } else { + return err + } + return nil +} + +type server struct { + jtisim *JTISim +} +type authServer struct { +} + +func (s *authServer) LoginCheck(ctx context.Context, req *apb.LoginRequest) (*apb.LoginReply, error) { + // allow everyone + rep := &apb.LoginReply{ + Result: true, + } + return rep, nil +} + +func (s *server) TelemetrySubscribe(req *tpb.SubscriptionRequest, stream tpb.OpenConfigTelemetry_TelemetrySubscribeServer) error { + md, ok := metadata.FromIncomingContext(stream.Context()) + if ok { + log.Println("Client metadata:") + log.Println(md) + } + + // send metadata to client + header := metadata.Pairs("jtisim", "yes") + stream.SendHeader(header) + + plist := req.GetPathList() + ch := make(chan *tpb.OpenConfigData) + for _, path := range plist { + pname := path.GetPath() + switch { + case strings.HasPrefix(pname, "/interfaces"): + go s.streamInterfaces(ch, path) + case strings.HasPrefix(pname, "/bgp"): + go s.streamBGP(ch, path) + case strings.HasPrefix(pname, "/lldp"): + go s.streamLLDP(ch, path) + default: + log.Fatalf("Sensor (%s) is not yet supported", pname) + } + } + + for { + select { + case data := <-ch: + if err := stream.Send(data); err != nil { + return err + } + case <-stream.Context().Done(): + return stream.Context().Err() + } + } +} + +func (s *server) CancelTelemetrySubscription(ctx context.Context, req *tpb.CancelSubscriptionRequest) (*tpb.CancelSubscriptionReply, error) { + return nil, nil +} + +func (s *server) GetTelemetrySubscriptions(ctx context.Context, req *tpb.GetSubscriptionsRequest) (*tpb.GetSubscriptionsReply, error) { + return nil, nil +} + +func (s *server) GetTelemetryOperationalState(ctx context.Context, req *tpb.GetOperationalStateRequest) (*tpb.GetOperationalStateReply, error) { + return nil, nil +} + +func (s *server) GetDataEncodings(ctx context.Context, req *tpb.DataEncodingRequest) (*tpb.DataEncodingReply, error) { + return nil, nil +} diff --git a/jtisim/util.go b/jtisim/util.go new file mode 100644 index 0000000..3e20808 --- /dev/null +++ b/jtisim/util.go @@ -0,0 +1,10 @@ +package jtisim + +import ( + "time" +) + +// MakeMSTimestamp timestamp in ms for JTI +func MakeMSTimestamp() int64 { + return time.Now().UnixNano() / int64(time.Millisecond) +} diff --git a/kafka-publish.go b/kafka-publish.go new file mode 100644 index 0000000..50cc0ab --- /dev/null +++ b/kafka-publish.go @@ -0,0 +1,168 @@ +package main + +import ( + "crypto/tls" + "crypto/x509" + "fmt" + "io/ioutil" + "time" + + na_pb "github.com/Juniper/jtimon/telemetry" + "github.com/Shopify/sarama" + "github.com/golang/protobuf/proto" +) + +// KafkaConfig type +type KafkaConfig struct { + Version string `json:"version"` + Brokers []string `json:"brokers"` + ClientID string `json:"client-id"` + Topic string `json:"topic"` + CompressionCodec int `json:"compression-codec"` + RequiredAcks int `json:"required-acks"` + MaxRetry int `json:"max-retry"` + MaxMessageBytes int `json:"max-message-bytes"` + SASLUser string `json:"sasl-username"` + SASLPass string `json:"sasl-password"` + TLSCA string `json:"tls-ca"` + TLSCert string `json:"tls-cert"` + TLSKey string `json:"tls-key"` + InsecureSkipVerify bool `json:"insecure-skip-verify"` + producer *sarama.SyncProducer +} + +// KafkaConnect to connect to kafka bus +func KafkaConnect(k *KafkaConfig) error { + c := sarama.NewConfig() + + if k.Version != "" { + version, err := sarama.ParseKafkaVersion(k.Version) + if err != nil { + return err + } + c.Version = version + } + + if k.ClientID != "" { + c.ClientID = k.ClientID + } else { + c.ClientID = "JTIMON" + } + + c.Producer.RequiredAcks = sarama.RequiredAcks(k.RequiredAcks) + c.Producer.Compression = sarama.CompressionCodec(k.CompressionCodec) + c.Producer.Retry.Max = k.MaxRetry + c.Producer.Return.Successes = true + + if k.MaxMessageBytes > 0 { + c.Producer.MaxMessageBytes = k.MaxMessageBytes + } + + if k.TLSCert != "" { + tlsConfig := &tls.Config{ + InsecureSkipVerify: k.InsecureSkipVerify, + Renegotiation: tls.RenegotiateNever, + } + + if k.TLSCA != "" { + pool, err := getCertPool([]string{k.TLSCA}) + if err != nil { + return err + } + tlsConfig.RootCAs = pool + } + + if k.TLSCert != "" && k.TLSKey != "" { + err := loadCert(tlsConfig, k.TLSCert, k.TLSKey) + if err != nil { + return err + } + } + + if tlsConfig != nil { + c.Net.TLS.Config = tlsConfig + c.Net.TLS.Enable = true + } + } + + if k.SASLUser != "" && k.SASLPass != "" { + c.Net.SASL.User = k.SASLUser + c.Net.SASL.Password = k.SASLPass + c.Net.SASL.Enable = true + } + + p, err := sarama.NewSyncProducer(k.Brokers, c) + if err != nil { + return err + } + + k.producer = &p + return nil +} + +// KafkaInit to initialize Kafka +func KafkaInit(jctx *JCtx) error { + cfg := jctx.config + if cfg.Kafka == nil { + return nil + } + + if err := KafkaConnect(cfg.Kafka); err != nil { + return err + } + + return nil +} + +func addKafka(ocData *na_pb.OpenConfigData, jctx *JCtx, rtime time.Time) { + if jctx.config.Kafka == nil || jctx.config.Kafka.producer == nil { + return + } + + b, err := proto.Marshal(ocData) + if err != nil { + jLog(jctx, fmt.Sprintf("Kafka proto marsha error: %v", err)) + } + + topic := "healthbot" + if jctx.config.Kafka.Topic != "" { + topic = jctx.config.Kafka.Topic + } + m := &sarama.ProducerMessage{ + Topic: topic, + Value: sarama.ByteEncoder(b), + } + p := *jctx.config.Kafka.producer + if _, _, err := p.SendMessage(m); err != nil { + jLog(jctx, fmt.Sprintf("Kafka SendMessage failed (topic = %s), error: %v", topic, err)) + } +} + +func getCertPool(certFiles []string) (*x509.CertPool, error) { + pool := x509.NewCertPool() + for _, certFile := range certFiles { + pem, err := ioutil.ReadFile(certFile) + if err != nil { + return nil, fmt.Errorf( + "could not read certificate %q: %v", certFile, err) + } + ok := pool.AppendCertsFromPEM(pem) + if !ok { + return nil, fmt.Errorf( + "could not parse any PEM certificates %q: %v", certFile, err) + } + } + return pool, nil +} + +func loadCert(config *tls.Config, certFile, keyFile string) error { + cert, err := tls.LoadX509KeyPair(certFile, keyFile) + if err != nil { + return fmt.Errorf( + "could not load keypair %s:%s: %v", certFile, keyFile, err) + } + + config.Certificates = []tls.Certificate{cert} + config.BuildNameToCertificate() + return nil +} diff --git a/launch-docker-container.sh b/launch-docker-container.sh new file mode 100755 index 0000000..f81fcb7 --- /dev/null +++ b/launch-docker-container.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +name=$(basename $0) +if [ ".$name" = ".launch-docker-container.sh" ]; then + cat <> 31)))) + case *TelemetryField_Sint64Value: + n += proto.SizeVarint(10<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(uint64(x.Sint64Value<<1) ^ uint64((int64(x.Sint64Value) >> 63)))) + case *TelemetryField_DoubleValue: + n += proto.SizeVarint(11<<3 | proto.WireFixed64) + n += 8 + case *TelemetryField_FloatValue: + n += proto.SizeVarint(12<<3 | proto.WireFixed32) + n += 4 + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// TelemetryGPBTable contains a repeated number of TelemetryRowGPB, +// each of which represents content from a subtree instance in the +// the YANG model. For example; a TelemetryGPBTable might contain +// the interface statistics of a collection of interfaces. +type TelemetryGPBTable struct { + Row []*TelemetryRowGPB `protobuf:"bytes,1,rep,name=row" json:"row,omitempty"` +} + +func (m *TelemetryGPBTable) Reset() { *m = TelemetryGPBTable{} } +func (m *TelemetryGPBTable) String() string { return proto.CompactTextString(m) } +func (*TelemetryGPBTable) ProtoMessage() {} +func (*TelemetryGPBTable) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } + +func (m *TelemetryGPBTable) GetRow() []*TelemetryRowGPB { + if m != nil { + return m.Row + } + return nil +} + +// +// TelemetryRowGPB, in conjunction with the Telemetry encoding_path and +// model_version, unambiguously represents the root of a subtree in +// the YANG model, and content from that subtree encoded in serialised +// GPB messages. For example; a TelemetryRowGPB might contain the +// interface statistics of one interface. Per encoding-path .proto +// messages are required to decode keys/content pairs below. +type TelemetryRowGPB struct { + // + // timestamp at which the data for this instance of the TelemetryRowGPB + // message was generated by an MDT-capable device - encoded as + // milliseconds since the epoch. When included, this is typically + // different from the msg_timestamp in the containing Telemetry message. + Timestamp uint64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"` + // + // keys: if the encoding-path includes one or more list elements, and/or + // ends in a list element, the keys field is a GPB encoded message that + // contains the sequence of key values for each such list element in the + // encoding-path traversed starting from the root. The set of keys + // unambiguously identifies the instance of data encoded in the + // TelemetryRowGPB message. Corresponding protobuf message definition will + // be required to decode the byte stream. The encoding_path field in + // Telemetry message, together with model_version field should be + // sufficient to identify the corresponding protobuf message. + Keys []byte `protobuf:"bytes,10,opt,name=keys,proto3" json:"keys,omitempty"` + // + // content: the content field is a GPB encoded message that contains the + // data for the corresponding encoding-path. A separate decoding pass + // would be performed by consumer with the content field as a GPB message + // and the matching .proto used to decode the message. Corresponding + // protobuf message definition will be required to decode the byte + // stream. The encoding_path field in Telemetry message, together with + // model_version field should be sufficient to identify the corresponding + // protobuf message. The decoded combination of keys (when present) and + // content, unambiguously represents an instance of the data set, as + // defined in the Yang model, identified by the encoding-path in the + // containing Telemetry message. + Content []byte `protobuf:"bytes,11,opt,name=content,proto3" json:"content,omitempty"` +} + +func (m *TelemetryRowGPB) Reset() { *m = TelemetryRowGPB{} } +func (m *TelemetryRowGPB) String() string { return proto.CompactTextString(m) } +func (*TelemetryRowGPB) ProtoMessage() {} +func (*TelemetryRowGPB) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } + +func (m *TelemetryRowGPB) GetTimestamp() uint64 { + if m != nil { + return m.Timestamp + } + return 0 +} + +func (m *TelemetryRowGPB) GetKeys() []byte { + if m != nil { + return m.Keys + } + return nil +} + +func (m *TelemetryRowGPB) GetContent() []byte { + if m != nil { + return m.Content + } + return nil +} + +func init() { + proto.RegisterType((*Telemetry)(nil), "telemetry.Telemetry") + proto.RegisterType((*TelemetryField)(nil), "telemetry.TelemetryField") + proto.RegisterType((*TelemetryGPBTable)(nil), "telemetry.TelemetryGPBTable") + proto.RegisterType((*TelemetryRowGPB)(nil), "telemetry.TelemetryRowGPB") +} + +func init() { proto.RegisterFile("telemetry.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 546 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x84, 0x94, 0x41, 0x6f, 0x9b, 0x40, + 0x10, 0x85, 0xb3, 0xb1, 0x6b, 0x9b, 0x01, 0xc7, 0xf2, 0x46, 0x95, 0xb6, 0x55, 0xa4, 0x12, 0xe7, + 0xc2, 0xa1, 0xb2, 0x5a, 0x27, 0x4a, 0x7b, 0xad, 0xa5, 0xd6, 0xc9, 0xcd, 0xda, 0x58, 0xbd, 0x55, + 0x08, 0xcc, 0xc6, 0x41, 0x01, 0x16, 0xb1, 0xeb, 0x44, 0xfe, 0x77, 0xbd, 0xf7, 0x4f, 0x55, 0xb3, + 0x80, 0xc1, 0x6d, 0xa4, 0xdc, 0xe0, 0xcd, 0x37, 0x4f, 0xc3, 0xcc, 0x13, 0x30, 0xd2, 0x22, 0x11, + 0xa9, 0xd0, 0xc5, 0x6e, 0x9a, 0x17, 0x52, 0x4b, 0x6a, 0xed, 0x85, 0xc9, 0xef, 0x0e, 0x58, 0xab, + 0xfa, 0x8d, 0xba, 0x60, 0x67, 0x32, 0x12, 0x7e, 0x1c, 0xf9, 0x4a, 0x17, 0x8c, 0xb8, 0xc4, 0xb3, + 0x6e, 0x8e, 0xb8, 0x85, 0xe2, 0x6d, 0x74, 0xa7, 0x0b, 0xfa, 0x09, 0x4e, 0xd5, 0x36, 0x54, 0xeb, + 0x22, 0xce, 0x75, 0x2c, 0xb3, 0x9a, 0xec, 0x18, 0x92, 0xf0, 0x71, 0xbb, 0x58, 0x76, 0x5c, 0xc0, + 0x50, 0x64, 0x6b, 0x19, 0xc5, 0xd9, 0xc6, 0xcf, 0x03, 0xfd, 0xc0, 0x7a, 0xc8, 0x72, 0xa7, 0x16, + 0x97, 0x81, 0x7e, 0x40, 0x68, 0x2d, 0x93, 0x44, 0xac, 0x2b, 0x53, 0x36, 0x70, 0x89, 0xd7, 0xe5, + 0x4e, 0x23, 0xde, 0x46, 0x74, 0x06, 0x6f, 0x5b, 0x90, 0xd2, 0x41, 0xa1, 0x7d, 0x1d, 0xa7, 0x82, + 0x59, 0x06, 0x3e, 0x6d, 0x8a, 0x77, 0x58, 0x5b, 0xc5, 0xa9, 0x40, 0xe3, 0x54, 0x6d, 0x0c, 0xa6, + 0x74, 0x90, 0xe6, 0x0c, 0x4a, 0xe3, 0x54, 0x6d, 0x56, 0xb5, 0x46, 0xbf, 0x02, 0x44, 0x81, 0x0e, + 0xfc, 0x4d, 0x1e, 0x3e, 0x3e, 0x31, 0xdb, 0xed, 0x78, 0xf6, 0xec, 0xdd, 0xb4, 0xd9, 0xda, 0x7e, + 0x41, 0x3f, 0x62, 0x91, 0x44, 0xdc, 0x42, 0x78, 0x81, 0x2c, 0xfd, 0x02, 0x83, 0xba, 0x93, 0x39, + 0x2e, 0xf1, 0xec, 0xd9, 0xd9, 0x4b, 0x7d, 0x8b, 0xe5, 0x7c, 0x15, 0x84, 0x89, 0xe0, 0xfd, 0xaa, + 0x95, 0x4e, 0xa1, 0x35, 0xae, 0x2f, 0xb2, 0xa8, 0xfc, 0x92, 0xa1, 0x99, 0x6e, 0xdc, 0x94, 0xbe, + 0x67, 0x11, 0xce, 0x39, 0xb7, 0xa0, 0x5f, 0x5d, 0x66, 0x7e, 0x02, 0x4e, 0x7b, 0xcb, 0x93, 0x3f, + 0x1d, 0x38, 0x39, 0x9c, 0x90, 0x9e, 0x81, 0xd5, 0x7c, 0x31, 0x31, 0x9e, 0x8d, 0x40, 0x29, 0x74, + 0xb3, 0x20, 0x15, 0xec, 0xd8, 0x1c, 0xc2, 0x3c, 0xd3, 0x73, 0xb0, 0xc3, 0x9d, 0x16, 0xca, 0x7f, + 0x0a, 0x92, 0xad, 0x60, 0x5d, 0x97, 0x78, 0xce, 0xcd, 0x11, 0x07, 0x23, 0xfe, 0x44, 0x8d, 0x5e, + 0x80, 0xa3, 0x74, 0x81, 0x67, 0x2c, 0x99, 0x37, 0x55, 0x3a, 0xec, 0x52, 0x2d, 0xa1, 0x0f, 0x00, + 0xa1, 0x94, 0x49, 0x85, 0xe0, 0xa9, 0x07, 0x18, 0x20, 0xd4, 0xf6, 0x2e, 0xdb, 0x38, 0xd3, 0x97, + 0xb3, 0x0a, 0xe9, 0xbb, 0xc4, 0x1b, 0xa2, 0x4b, 0xa9, 0x1e, 0x40, 0xd7, 0x57, 0x15, 0x64, 0xd2, + 0x50, 0x43, 0xd7, 0x57, 0xcd, 0x3c, 0x6d, 0x27, 0x4c, 0xc1, 0xd8, 0xcc, 0x73, 0xe8, 0xa4, 0xda, + 0x4e, 0x78, 0x7e, 0x5a, 0x43, 0x2d, 0xa7, 0x48, 0x6e, 0xc3, 0x44, 0x54, 0x90, 0xed, 0x12, 0x8f, + 0x20, 0x54, 0xaa, 0x25, 0x74, 0x0e, 0xf6, 0x7d, 0x22, 0x03, 0x5d, 0x31, 0x78, 0xed, 0x63, 0xdc, + 0x90, 0x11, 0x4b, 0xe4, 0x33, 0xf4, 0xee, 0x71, 0xff, 0x8a, 0x8d, 0x5e, 0xcb, 0x50, 0x05, 0xce, + 0x47, 0x30, 0x34, 0x7e, 0x7e, 0xb8, 0xf3, 0xf5, 0x2e, 0x17, 0x93, 0x6f, 0x30, 0xfe, 0x2f, 0x36, + 0xf4, 0x23, 0x74, 0x0a, 0xf9, 0xcc, 0x88, 0x71, 0x7d, 0xff, 0x92, 0x2b, 0x97, 0xcf, 0x8b, 0xe5, + 0x9c, 0x23, 0x36, 0xf9, 0x05, 0xa3, 0x7f, 0xf4, 0xd7, 0x03, 0xf1, 0x28, 0x76, 0xca, 0x2c, 0xc7, + 0xe1, 0xe6, 0x99, 0x32, 0xe8, 0xaf, 0x65, 0xa6, 0x45, 0xa6, 0xcd, 0x3a, 0x1c, 0x5e, 0xbf, 0x86, + 0x3d, 0xf3, 0x13, 0xb9, 0xfc, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xcd, 0x43, 0x6f, 0x37, 0x57, 0x04, + 0x00, 0x00, +} diff --git a/multi-vendor/cisco/iosxr/telemetry-proto/telemetry.proto b/multi-vendor/cisco/iosxr/telemetry-proto/telemetry.proto new file mode 100644 index 0000000..d3ec3ff --- /dev/null +++ b/multi-vendor/cisco/iosxr/telemetry-proto/telemetry.proto @@ -0,0 +1,182 @@ +/* ---------------------------------------------------------------------------- + * + * August 2016 + * + * Copyright (c) 2016 by Cisco Systems, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ---------------------------------------------------------------------------- + */ + +syntax = "proto3"; +package telemetry; + +// Telemetry message is the outermost payload message used to stream +// telemetry in a Model Driven Telemetry (MDT) system. MDT provides a +// mechanism for an external entity to subscribe to a data set defined in +// a Yang model and receive periodic or event-based updates of the data +// set from an MDT-capable device. +message Telemetry { + // + // node_id_str is a string encoded unique node ID of the MDT-capable + // device producing the message. (node_id_uuid alternative is not currently + // produced in IOS-XR) + oneof node_id { + string node_id_str = 1; + // bytes node_id_uuid = 2; + } + // + // subscription_id_str is the name of the subscription against which + // this content is being produced. (subscription_id alternative is not + // currently produced in IOS-XR) + oneof subscription { + string subscription_id_str = 3; + // uint32 subscription_id = 4; + } + // + // sensor_path is not currently produced in IOS-XR + // string sensor_path = 5; + // + // encoding_path is the Yang path leading to the content in this message. + // The Yang tree encoded in the content section of this message is rooted + // at the point described by the encoding_path. + string encoding_path = 6; + // + // model_version is not currently produced in IOS-XR + // string model_version = 7; + // + // collection_id identifies messages belonging to a collection round. + // Multiple message may be generated from a collection round. + uint64 collection_id = 8; + // + // collection_start_time is the time when the collection identified by + // the collection_id begins - encoded as milliseconds since the epoch. + // If a single collection is spread over multiple Telemetry Messages, + // collection_start_time may be encoded in the first Telemetry Message + // for the collection only. + uint64 collection_start_time = 9; + // + // msg_timestamp is the time when the data encoded in the Telemetry + // message is generated - encoded as milliseconds since the epoch. + uint64 msg_timestamp = 10; + // + // data_gpbkv contains the payload data if data is being encoded in the + // self-describing GPB-KV format. + repeated TelemetryField data_gpbkv = 11; + // + // data_gpb contains the payload data if data is being encoded as + // serialised GPB messages. + TelemetryGPBTable data_gpb = 12; + // + // collection_end_time is the timestamp when the last Telemetry message + // for a collection has been encoded - encoded as milliseconds since the + // epoch. If a single collection is spread over multiple Telemetry + // messages, collection_end_time is encoded in the last Telemetry Message + // for the collection only. + uint64 collection_end_time = 13; + // + // heartbeat_sequence_number is not currently produced in IOS-XR + // uint64 heartbeat_sequence_number = 14; // not produced +} + +// +// TelemetryField messages are used to export content in the self +// describing GPB KV form. The TelemetryField message is sufficient to +// decode telemetry messages for all models. KV-GPB encoding is very +// similar in concept, to JSON encoding +message TelemetryField { + // + // timestamp represents the starting time of the generation of data + // starting from this key, value pair in this message - encoded as + // milliseconds since the epoch. It is encoded when different from the + // msg_timestamp in the containing Telemetry Message. This field can be + // omitted if the value is the same as a TelemetryField message up the + // hierarchy within the same Telemetry Message as well. + uint64 timestamp = 1; + // + // name: string encoding of the name in the key, value pair. It is + // the corresponding YANG element name. + string name = 2; + // + // value_by_type, if present, for the corresponding YANG element + // represented by the name field in the same TelemetryField message. The + // value is encoded to the matching type as defined in the YANG model. + // YANG models often define new types (derived types) using one or more + // base types. The types included in the oneof grouping is sufficient to + // represent such derived types. Derived types represented as a Yang + // container are encoded using the nesting primitive defined in this + // encoding proposal. + oneof value_by_type { + bytes bytes_value = 4; + string string_value = 5; + bool bool_value = 6; + uint32 uint32_value = 7; + uint64 uint64_value = 8; + sint32 sint32_value = 9; + sint64 sint64_value = 10; + double double_value = 11; + float float_value = 12; + } + // + // The Yang model may include nesting (e.g hierarchy of containers). The + // next level of nesting, if present, is encoded, starting from fields. + repeated TelemetryField fields = 15; +} + +// TelemetryGPBTable contains a repeated number of TelemetryRowGPB, +// each of which represents content from a subtree instance in the +// the YANG model. For example; a TelemetryGPBTable might contain +// the interface statistics of a collection of interfaces. +message TelemetryGPBTable { + repeated TelemetryRowGPB row = 1; +} + +// +// TelemetryRowGPB, in conjunction with the Telemetry encoding_path and +// model_version, unambiguously represents the root of a subtree in +// the YANG model, and content from that subtree encoded in serialised +// GPB messages. For example; a TelemetryRowGPB might contain the +// interface statistics of one interface. Per encoding-path .proto +// messages are required to decode keys/content pairs below. +message TelemetryRowGPB { + // + // timestamp at which the data for this instance of the TelemetryRowGPB + // message was generated by an MDT-capable device - encoded as + // milliseconds since the epoch. When included, this is typically + // different from the msg_timestamp in the containing Telemetry message. + uint64 timestamp = 1; + // + // keys: if the encoding-path includes one or more list elements, and/or + // ends in a list element, the keys field is a GPB encoded message that + // contains the sequence of key values for each such list element in the + // encoding-path traversed starting from the root. The set of keys + // unambiguously identifies the instance of data encoded in the + // TelemetryRowGPB message. Corresponding protobuf message definition will + // be required to decode the byte stream. The encoding_path field in + // Telemetry message, together with model_version field should be + // sufficient to identify the corresponding protobuf message. + bytes keys = 10; + // + // content: the content field is a GPB encoded message that contains the + // data for the corresponding encoding-path. A separate decoding pass + // would be performed by consumer with the content field as a GPB message + // and the matching .proto used to decode the message. Corresponding + // protobuf message definition will be required to decode the byte + // stream. The encoding_path field in Telemetry message, together with + // model_version field should be sufficient to identify the corresponding + // protobuf message. The decoded combination of keys (when present) and + // content, unambiguously represents an instance of the data set, as + // defined in the Yang model, identified by the encoding-path in the + // containing Telemetry message. +bytes content = 11; +} \ No newline at end of file diff --git a/multi_vendor.go b/multi_vendor.go new file mode 100644 index 0000000..dab2c55 --- /dev/null +++ b/multi_vendor.go @@ -0,0 +1,65 @@ +package main + +import ( + "fmt" + + "google.golang.org/grpc" +) + +var vendors = []*vendor{newGNMI(), newJuniperJUNOS(), newCiscoIOSXR()} + +type vendor struct { + name string + loginCheckRequired bool + sendLoginCheck func(*JCtx, *grpc.ClientConn) error + dialExt func(*JCtx) grpc.DialOption + subscribe func(*grpc.ClientConn, *JCtx) SubErrorCode +} + +func getVendor(jctx *JCtx, tryGnmi bool) (*vendor, error) { + name := jctx.config.Vendor.Name + + if tryGnmi { + name = "gnmi" + } + // juniper-junos is default + if name == "" { + name = "juniper-junos" + } + for _, vendor := range vendors { + if name == vendor.name { + return vendor, nil + } + } + return nil, fmt.Errorf("support for vendor [%s] has not implemented yet", name) +} + +func newJuniperJUNOS() *vendor { + return &vendor{ + name: "juniper-junos", + loginCheckRequired: true, + sendLoginCheck: loginCheckJunos, + dialExt: nil, + subscribe: subscribeJunos, + } +} + +func newCiscoIOSXR() *vendor { + return &vendor{ + name: "cisco-iosxr", + loginCheckRequired: false, + sendLoginCheck: nil, + dialExt: dialExtensionXR, + subscribe: subscribeXR, + } +} + +func newGNMI() *vendor { + return &vendor{ + name: "gnmi", + loginCheckRequired: false, + sendLoginCheck: nil, + dialExt: nil, + subscribe: subscribegNMI, + } +} diff --git a/prom.png b/prom.png new file mode 100644 index 0000000000000000000000000000000000000000..0a8113b14ea17418f928d183342457c24ab5f7e2 GIT binary patch literal 212099 zcmagFV|Zmj)GnBg*Wbh=mT~R}`@v#>r_vVtj<@ULH8wFEE@xzj6lTe(=1#y@9Jb?;AW6Ape@*Cn!4A z{`!3LPoZPvNI?KQh<8F{OvwtmwPIUq7goXrgT?*jY?tYf8Ld zQ7SG)zm)NS{3~$CD#msPWjr4B%tamc%ixo^&%c0&&)d>cm_U9J2qfvCQCbv&A2aM# z^4gbVMnaP;ecVTP=0`w>pcPuvxQ>e21n0^9_Ls>9F6u$gIPSt1?-#3!9d68;@5u{T zz93ycN6_Q8UR;`-Nd3S2I)tn71XkidDnugDv1hm$cYJL^=`XBrr*>4CT-;j6mFuMR=3J}YS{STymKEk;3IQ;AlvaJC&-4Rv* z>tS%iSH$Vhp=)UKY0N?5$>Yc4Z#yaR6fH;294DVu?eJh^&H`lw@Bu#bU>45p#!9cY z-&sEb#T44u@*%|X;n@NSnS|e(z}^19U9R9g2O6S$QwL{|1f%{1xfB#@NIMGMVaT}x zBmIk;3$gOAqXQaSu=5UDJ3Jr=;DF2r8EgpI4Y|Jqksd+}i>yR~TMSzvwDz0C^m_v_ z%qYQaD0l%Z6>d~GpC>#E5S!s)`OGKu_fX=7@Ur1* zh6F2+=6|Q_k?|4h0`_;=9iX$Ju7jd?rJu1kAPs`-`=54%o`3QMf`!B|p|}ph8j;jS z5TQj5l8}<4j|oNnmM$i=65~nW9VNbne~I~PWQk2N3~Le&>JKq&PiIe;l_e~NREf3f zcQL#&3}f0)zt*Ht$FYfM8ES0UUGcckw&iGr)d{s5)c?CR5N9a3#w%Y`Pxf!{^0`)wjzEgr{p_FPQ*GuH5PEVFxlcu3q zOsf4&n6Q;FW{T8^#2qk6X-|Tcr0}~gA$&BC+6e<9iuPv|Y3W5Feo3>^mCBYw6plSy;mF@(_x(@Kn~xWGPn zQ9Q^ja2)&?ssX``q1<4mYp1AR7>Y7fGZa4*I@BB903##nDoQHK8zbun5v@@&VlsI0 z5)FZJXW_jyiEqKC@Kt|yC?%GFVps}NGDHd|6_I*x312~B}skoqD;O(j}Bi?&+kgIVLM_`u^GYnf{sa1N;NSgA|fpEJ~~$E)s4$ zyHqCK6xWpSl-raeJ$p@wHeSnFGodAVi`E+4+FJ{6i{RPGS;*UMKsj&1cm;#7o{o7KL_&b-FlehO)_ zUMQ?ji~yAy2+CE((IDi(gz*S zL|)2Br+ILTW5cSg^Yl?uO^RLSrPR9MWz0q5h4rO)+6hCXo|EZVeNPzwNN>O2OyDWX zM|STTOu(bVf)c*lIa%uvcenkJqWU)x%nrMtd?!l}@P-^Sq1 z{e<#__C!gDO9&!#CEU+V&Bfze@2=Mu(D&|sU8S*Q=nCV%vb*dV>lz5(LqAa2yIWZP zqj9j_iJ^bi<8nPGG0~g`m&*S3O|W%azi;HT^V8-X2)zUT4j~PZ3zZ24K)gUKgsOqB zM0!QJK+7h2XA)%;#h)XjA;A5ijsD6!NncHD%d|o6qw+ijTLSARDnl;7!q!ORWZdy~ z>pLM)NLSQY^s0VRtJ${qDqWH?MhmP<)F0AvrNPA`z|_P0NZB8$IFKEzHyJk`?x@}P z*hu4})F-j0TM}p`e)P=t)fL*X?Dl=%dTxLm2`LQG@X_#t`;sfvF!tOVA@3_Ll2REn z8bhKENj^zt1?Lt@%r|K{J9Dk_4hieG-QB@mXMbCYiS`jyt57_PT1aK%v33JQJ`4&* zgwGMo$;=DZAnAEq=Unjo?bJC(TDsQ#;u|2_PeV#a+CaL*TjT_6ay5^6s)$h}<0P&2 zYB@VE9VO7`>QuHRwo=%A*kzrz2H9P=h1=OrDUYosvcCr(BfG9DuNGc>61ee>`wza4 zel^&X4NXJv_8s3i0S+>cFc1Bv_K!B7$1ckD@=D!?F3-l>#s!=4+H~r>?Bn-y&%jrM zVuE&iWS%&Fupl_YZ(r-QTzk##72bXnf9!n(5A_bw!!&=t5V&a}FF4Szkg*cUa9W*i zjEC`r@kZt*sASZj2GW1svVI*0!ULm9rE|s$2igZt!}AE>_~%{_&eJk!N-8%h?IoZj zV5%Uhc&)2#tgTaQ?#_3395+`Q%1t&$HsjhB@D?@Lm~fpG0?_x+8U12ETds?NV~;A; zDi38X3Tf5h(tax0H#%I_t+k7}35jNt~o>!>rcu0zM;EmedXjP5+{`rYRKmm99@=N5o^0NZwR z=c>!Zt@^%wY9G6smMi;aYwzZq-TdZSQ}MBIoym0xFTlNa%WS*H(|)xlxA%8%;Ai>g z-)~!gPCgFa>^J03|5^G~^Uwu+l2D;m zQ4x-dU^Rh4VcTiv0^1^l3c&paR)YtYxKJ&Ti^_I>ZUOsFnfoxy+6bOM4Hxi-9;|+* z0k9UFFKYwwhv&FVO&3i$SsoL6I|d_D zdt);O4?Bl{#w{2ap9jysq@9_I5wVAzEx?(_gP-(2Tk!l#|3@(+De-?cak1ei)s#~t z7O{6SBW7n{V_+f`fF~v<=5sPN=TR0F|8Mxe96zb0i;DvfBcr>!JA*qbgT0dlBQrNQ zHzN}ZBMS@tzZUe)o&Xmk4|;$z*?$T7UvfmvoK2jp99*pI0mT0y*T~r3)rFsw^glZK z-_L)I)6B!_|MUcK{_ko1n;_$V)G#tLFfsmb+5ez?|53`LXysvMt0`(_X9jTo*M|Tz z2Nx6He**p=RsW~U{{hwdA5bRt{~PpwRQ)%UkMTdI@IR*XU+eXsrT-R80G^NWe=oiO zyurL3HW=71Fey$5h z9Cnb93(I9Kb?#Ckk^UCys_sSeraA5e*;aIa4>OiP5jQt)AVRG~Y8W5jme(}xoD7hA z$gjh<+NJssI=}n#tV1ITH2NMwMQ$#vQ`ns9PCTzO)_T^tXHyYJE6jOEFt$9`lFlw8 zak`}XbxErSyydt#{T8E!uBGQezWI^31wEEvDslR~^5^J$B_6XBEdtD$CmHuZd8!cx z2)Z&+Vp#moEZ+{*W-CV=PgRl2`t4Syn}k7*yt&i9vUX)j$j`m7UTw$Nm84r$X<&b4 zIl};rUXm#DK0Xm`rc1Y^yu7@Gm2$G^FH&OE->{O946bYA66ODY@HZ=D4wq}})w&(vvAFD_hwv{aNkkCP_al#&>$^2+E%Er=L2pmj zMK;T|gMxL>e0P(q5s{Ie7oaq-{~T1{2+}tdFM!bqXWmwi_x|g{c{;ZZMSp)kUw>9k zxyzQix|vw#nVA`dGGh%af&NJafs~`Brnw|!cSL~F7pwGLp(L;RKfRm(zw3RYUtUZJ zU{pp5YWLyAU0ymJx3$Y{s%av`$|uz3C-{3w#sBfcwK(#h(w7yblVMlLc1~~>lsfst zVKVk45hPBLmD6Cx*Of^+LJ9V50|#XCc{4*>T>E@IBp2RoBX%% zH~2ge5B1N&vP&lZnkwHYNEL|STBZ>Y85kgpJg;ctuXjTAF}{Pd>of~(9vkF$FSKE$ z#r(`|vZS~B`~LFl_J?!>)L;ndkoEp$+qQU**8`QHtIWJ8)-9rndbFQ%L+_*3$F%J*!-7(|faIF8% zMu#(LnPP#k$6loP$x;n1i^X(xksE<)iMFvZ>34jt0N=Mq5*8LTTi64(VFvfB4JzGs zrtvgJMgazpOKBXfSawQ^C)&4o6bH64Zs|6&tMVou={EZ78XNcf#ZyxXPKJ^aZD~zX zz)97QZmi8>N$2P4AyB-;Ww$WQ2l!Dj6M#)M#NYWWptLzaT?Eg#T-7C zaeEvOdrZ}ZY_hiS$RJL~WD+bN3S`V{p3)iws=Vx?qv6E1QYU>*w;SHKEb|A3evZja zbs7_NnwG-8Eht(OjkOFnaFjz;Aq)B|Iv|dBMj9$AleL_0CJPsxh-h94YSkU==>ej( zh36@PkT#o?%<6qjiNzdU(NL2yPTZ?di-PztrOC;WEP{n6PAx)*@~AG($Prm+;9<4N zIzz_NZSB2`NN-K$RpYJt8&6W*p%t_H!~Dsdvig2v=F0u)e1qGiwrmCq)KD~*0ulm^ z$(0%d*mkEYZL8gSSa~@W38np3ce!2{$Js(fl61%8(Bougl*|Ms83h;X?Xpcozrs7R zXVp@Gf#UDbXNDdo-K z;d7Dh2r2C3MYNtlZppo76Qck9xgdO9@7lc2<>zv#To%(#EI^fbX(qsQu)?*g*W>Hs zDYmhh&7Q!xs#~ZGBxiQ9?eA_l7?IHK1WF_c_jws$GM|Jg*J|oC>QyRSqiOYQ18nx6 zEmk!EHhKQNLL(gOS3EXL)s{=uINGhYQemAJZZ8bz_|$ui`Q*Q0J)#1NUMByk%3mU9 zQK{3;(_Rnn91jaC{O%Zt0Gz(L34;CpeF^d`>ZCBaPEX6)DAIC>V7Pe?K9bUGN>&Zi zO>7aduxX-+$~1d_@5eV8D@xQR7d5!lqG3Df!?7foBJo(^ma|1$r#V0B!Lx(2s;p#; z*m8vBgkQ!i7Gt5h+|6yUiAm`7Pw{zj{>CWL~u8^2%YSp zM|WDx40uPwQ4{BsNp06+x^vsLr~z+CMv_Lp{PI@022Y)sxOmjfiin~-Euv=M;MliwIWyscy|0i_+l+Gvcv;nfmQxB`eO%fPK*>J_P3|kh+OIIfzN2{v-4Yng>6X- z-<-KM0WW>=#yL*!T2dD3&tXpSD21q4@YJxzs;BR zhF5Df7D9N!c%oS^R*Hocu@;W5Hd$=abUGi)x1F%SqvFMTJvab#O$N~BCtnizM){aX zPtQkltpwk1ATSyA>AFX_;`y^zY^p>f(RSG90s_Dq)QIr};)w*m4=45%q%s=B<@vqB z>2y!3ue4V1PEk~e!c^%KbJJ5QuyD2x@;R%;v zyD_yOE$yef(6iV_D7AB3;r@+=B54w*d_d$t$$T0LzBc4)aLsYRicXs23xJrk-}z+m z#`^uJL~=s}wtqksr&!@Yt&4kHPzDfU-Ue_Vi7F=EUHXyTml0GS!DLx_kFgQS7ef$E zYQ-@ga?^OIv{VZ?(=Bz19~k3bcifX^duKfqUL9XV$sEF^OhHpk8lBg$+9d9(70?D~ zoA4b^Qz|G3_)(Gs*1!ey^$}&VSp{8fcF}G{R=yS&VlLjR&CeCf;HIzqSX6Z`Kto?k z;Yg>{t>4AV;m6Y>X%fDG?=&4lyI5_4$zU-PmdeEU6mIu?^Pgamef3}loNOtN5~`zLcRxY9ZrMsoMGmah_4TKgnqG6zNb+`1`<2>d+x6NB>6<%zyzn^uH8AUXUdb<} zIFQASEO?IUSizdMeCK{Sz{}fy!eE);{{A)=Qgtjp8+#3ZHB63P0~g*#_ZOMBvA}=( zC^b|Ef`X88v$ql59x*-6i(uIBL?)$rJa2`E$X-D+d|7--m;=wZ8dgugSi%40Jgbe_ zM((H2$2^$nEKXQEzj@y(R@yo8U~^mL{#@ilyYn8}-d<8QW>ah>DBpoIF=dI(;-mIF zU&^CbDY7{V<4GN~}klbgOvN@cvwx$nTzPipPTo z*on(3#b#hz@>2L6=eP8!s3(nt#sZBs-Pgjjn1}nVIO2;b$yu7}7EPD;p~3yBAdVJ7 zPsGbSkLKCu1lGsR!;#{o=Bq$#hYZ^hLnr%D^#YTDXwGWf6pUN`3jL>11}G@qK zGUl&>CN*}4{m)nbdNf9)oVf1~@LGqf2IMMTfFie=tlBUkZ+=2i_$O-MYnjCYvarP% zYZ0*_JJ~;DyRzW;V@3rIIZiq#{fVP?@>EErS`}T>lxF zad;-XO`%BmcPcgMuPl}Mpm{tt%K#01Pbi(akQ?kU+Lq#@c1qRg|Lh5!(Bz@+Mz?OMk zou(NtZkBNwEqY|c{{z%DHIz5+C1@=%8_t@S`gT@ZNvGh9?45?=Vv z!g@8W;_~)H#ASmO2}At03|hDEYZ*UA;HZry;8mwPTQ@5uHM$P!eKyQ7fly9*>J`=K zGg;~NN63{r$%Th|6iWmU4c>efIo5b!(PeDp%5rOSwYLkN&VwOnJc+s8Ev0J%){LpC zm+QU8sV3J&?Fcu(5z=~TOv%NFhHiSv9Hvrz_l-1J>s#$AcOO6x2F5eZi^*wlMVRzL z?6V_ipyT_`^zuh$=dqhodn4sON*8g8STmK_2tD-?Lc3PK|3xp%8Jall-(1}M$qg8~)IiA>>@0lE+C{sFI-?3s7ret(y?&lA2$ z$=r$4S?uz7G|n79dtc_YuQy~5-Sq1Nbo@%QE7g01Wr_lB29_AJRe{&WnUo? zC?|z4txc4eM7`VkO^%Mh1-?;-I0t+`UT|_!ja!$q6YWkvpzHlFetykK|dM;ry|c&7e?zB>F)%T86*llHWSN}qvmYpf$y_P~1r zf!b9TKeZ54bTn$xTx-2tgIfo6n642zRZp!fauT@}>xI>;J)Veh;*&XpIAaCF)KzHm z4fpxDfCxjR8yI%GPTt(C?EaqCe0wZXPh;qRtY%!=ewyshhnrCD5bh2^cZMOI6FKkbc+g4z9?OCzWvkyBhpiU>B;$r^1j&Puo`eGD#+}zJ$YUsLe3nc6~0s>Snc( zsk>g+_oqj@@Wa>F4zW*vFSC6%o z7BBREKH_H~Gy_E87(4`h&8nTSThkpSzo6AEGws5#5VBJaNN0uA-K?b(&6vw6Jm=`i z3>RHm3VP+{fFfLbtP0YtHTn!%wQv`Qou#LzNr9L5*reKjp?6bcwJbydrzI;@8m+{!`MWXiccwG*X z`ZRZ<4Y$%*?H*$#W?+^**f^wCt4g#p4oh4Po@hwygFOTbH~&>6&uIIw%89=-CRIoT zQMHw9soI@Ux=?5w*#bso2TR9#m^|m%*Op>|787Uo2K1>E9E5@Qgii(Ol zEvcM><^M%@B=?pwo;g}n!yxc^PcM3aIJh|K&(ysg-hSbY!-{D)6hq=l_l|B1H2J$g zqS^7uhLhq{a9LHiA8MY0;(Uxvf%Jy4ED}|ywa-NN>O;+v;`1%fcLVN|x(zhJX<+mc zzkVw8Z4@n$=<9q&E_t8cB~^ha_Tdd}rdGoHLXVw5CvH=ubfz=?UWy3+-H)fVZiT{> z-FgS3Oo++1SgPBUR=d6Zz+joqM$YPk(eh>wfhTjP7OMVUTwyMC zDdzkc-|$p3n*lM~Wi!rWb<*?15xL=7F$mT@bjnqc8R=q4lo37Z9oVg{OJzkCW-Kcg6KYwOz?_@n_-2+^a zn*3n_PWlm{Gb^LhVdHf9FrBZKpM%mDZ%4Ss z9`*C*q;OAlMvJ;Nm+%;N0i4heB-i4dFDecxj1eaar2JIQD=+8xF>mjj&E6*XxL91| zXWNA;jy_F0lnqc8(N|5!aG*x0jDMKn@6FS&|jdAzbwUC zFT>A}qx|fn7kcE*dv5}rPr|56Ub3+O)fJCgtGX%n$B*))5~7Oz%M>Bkn}_F&{wigV zuIpx<-ckg}C9xR$p$`9|N>#bJ3u}A*64+;Bx;;F8u zTKvBPnZ`P73}meeei?2#?)m>;_^(!WD)I6wCu z>)!;d5h#}?>@xrQlQX@;fVg#VSUcG~$1hL7&whDl&`$|*mibLh`aD9)`K8%7ap~5o zHX!b=$a3fphc9ZOvJRnztZuf)3!%RV8)ux}#Go=TJHg3yg^EA}@?2i`T92l6#vimz zlnS|Mxv<^O@`B{5t*O_aA1NC6W%4=JQv0y>7RyZ*3d{PE>Lt~TvZj2uCFX|LMSFH@ zWQ=wVF1Clt+3S+)_+mst1%>Q0^?ER>_OtMU@>wyo6LB+elEp=bL$a}XOPSN_Ci~)# z&-MCT@d5;~={iqJC9c?Rz%GfGVxaQ@lCUfz!I2I9`|Ua7UaaR9&S;L|?L>U?V6?oH z^I=T@A;12QEn=lKH+1?BFjwr0bx8%U`xR;R3ZyMqT+yx$yvcM-;|8m=_Q<$yuN4!cFWm9=K8;F}wV1~~%nrJGc@ zi(Nwuzju(t?&1x&9q;J+Qo}4YDJeLudNqp9Do%=HvfJ^b5F|TJL`mJ@&^m#jQZmct zz*5S3Lf0mYrF!OwDZ@SfEMZny-EhN7nIelD=TbJz>-0tJ&1AE#ZVQ=s>+^Rax(~cf z>jjEB9%8&6+idPsOp)gj<6GO8_gI|KO=Ij%)dmBVh4bMs7T+EEpWB|t1UDHvd>p)P z7ZLy5MQb?m?J<`fN>~iKD0fl0d1a0&4sIbdf*Gjk3K@A$p-19wJPNW%oMPnIX-^+P zP()MTx+EdPmxq4uHmB%+PPTiS{?I3I0xQDo3vbl=5qu0{N59!>h4tZ{UK@}+tnj=3 za)RVgH3*=9idhB~G6DuJ6pjq%;cgpA_7y_S8TT&*6y|Zi<0Qj841G$AFrAvY^7e_o zvzt%}bSbWrYUCIc0^dc3i_WkWcuL=Ipttmjtba9$2Q{v%T6z$gwt?{H%kc-5uXYCm zEt?5>@a&vF0@K2)(LZtzDJadv-i~qcA=Rr{L)5qeFzq#tN5X6vEN=2T2Md*|u< zYUo`9yyLo(tPPK0OX?j6T1v#<{WHWJFX-b?z#AB7jx`N~TKN4dIO$0Ler<=)xFGlN z0Ip6f9L`O2APh;VgqVJ-j9h2%`pcI@{nIam$AHgxpK+dsU4&qfBq!bOZMA;F;LC5!5xVm0_pk?8V%u*&NjBS1S?PB2R5 zk8x|Lx3rS3%J`#M`ddIb59bI{_sdo`#K-eT&#x;)`{n~L^#kFY{e(ebjK&KmZA#-` zT%|rUFyXc2ID55^1$N-N5(ow-%tXOjslQwj(NO%B1? zr=#!ZKi6s>n{sB#EOa&mS~9xvw*N++J2KooL_y6=IdFQ)#(lm^B>V0CaPerw-mO{i z-__8W$sN`VzJ0kF&@h>4y4F0fUdcrqmqT?oK^~5M#cWs*oW9ZyYB1f1Bf+{a7=SMH zO6Yoao0fcUz5|aeq{lF}-@jgLYB+1d;9IUlm;NzouJl*3x9E}2VeHvxxqnh70qid& zoVB1M+j99!-0SSeTU$BN6JO0?6^25$?8oJtO z*V);0aJ!HRt-uxA=c*qJy%&=BX1Bnz%`r8}+3o3oBr$~V;T+Upi{B)*uPNgZ@C66x zdKx=TZ$olBT8GX5X>ry@-R=uAKqO?tDPuSmd8=jIub_EqxX%)dh?nw6r1-fxuwlga zbs=$SVNfiv5%+qNw-CNvB7h&i@p8AjRw3vB;^`{Obhx=jlDz2%68z*RtGyN_{1ceY zbucv`PVJ|Dvqc%UMR&kMKJyVSh#wz4KRqt(!s5Pls8L2$4kX9#%X7f~JL>iF9 zty&SXscyB;qil*Da>A3u=1Rg+8|09m)QAUw_VhCla8u?0vtLX&}Hl z29f5J?T)9=?sbz5c?_1+d_|(I1aj z9bezQZ)E9#)Br6CSTX_7*5uz2KaPAt!*aSvRn!F-{xY+AE5${wLWp@r%!7)yqiiVi zL<^#{lxi%f$8Uyu&f!+rj_DF>sV25)Tz&4Lbh}LrQ5wUh!PSPOe=HV$?}I@i48a;3 zy?b1@=PfqMc>zNt8Sd>*b?OCaI0!PY?v)Ike?JCFXx}ECXnovXa*1v$3~nK~JDiCl z<`C`EdaUmnQ=7$MFMxCpxMlQy97Ze!$QNgR#wz4eNPh81}zUc)pU=fx)D#>%m^*IH$b@7<#4R;o?U5eZ0=T z(0+;={_FVbhRvMdoA#_E=w%EOCd0wG}Fi`J^O znjobvq=J|3z?VNrW!pq(9J1Qnr_E`mm$1v|B_c;_3|hyC2%k@{`PB zsKl(g%_Y*fCuWNDv3s~{vQdlUBse}@F6X624+v_F0f~Nhy+w(KN?pl~-_;&Nl}=V` zkhS4NC=`nUc=so&$U>q(vs!$;=sLgrY3*7j;T4ZTy+na7%-OY0YV3in(+H+BV0Lz? z;Q(>s(&zsE{*Zcg-1BX!TXj*F#UPvjhm*%}+vIDuMbfootHi1Nv$m=CpBXu1a%3(v zYNAhb3{4?^iVo+b=&W%2YzI$wnoL=H!-!vDL8QA;Qz}wmG#sb0M9v&I#0x0NMbKMc z^+b(>mqQVMlLiaF#2Vv*j?~SV(IbejfA`k$#a0LYZFe{3_Y)jJP@r%jxMyBlV2mI# zkN?|k5N~+LDRbj9;eK+7A+}!~nl~`mK;U>5-|_q$Ehl_XbuB9%oCue`a!r6ABlUO7 zH^EY$85iN$4wX-*mj|=1wK`z*qiWXuIW6M-*gLyt6LQE2Tc;dK1^Me4y$YglT6lXP zdg|xC18?T{jCU6%r-Ym#rIovNx|io?7~EcNVCx0mB~z*+|LBPK5f){!uyWUWRAb+js{6Y(u;n$%L=sv zfp;Y{t*$oFBWa;ru?e!P<2(L~9}TvL2JIixu9+vs4KHtUquFgg#xr`9ReiCy%9GAP zcY%;D*i1-_?9`;i8ng*e_CED!I>>Ee4-|`5b#s^Pxa;3C3cu5eE3r6St@(fZaT{** z)jB~n*Pe4@D_wMUv^RdjGV6^bMSVU~QUj9H64Fj7Z;#RMa7cun{w zUA%Lm8M&Mo10XiObXkx%6P=9lJ#U!!Zv>NRo>7PWI#9ZRpU5tFXa&bNIF?GZx`V4t z_03i|OP_8iz(jX(+ev2IEi{QOy{YcCW6ksv_pH(adf)qhtt~=E`b$jkZYCN;n=hCN z>k?t$!q-xw^Ch;&4x+qK^lWn7GX?K|9@-`3^HE%Ebi?jjbxpx5+>e}mDrkCw9$p;4 zGc~5eS14t6Wy^$aYSv+h5WTcVC(xY1@@iDq=y-eJSYJQZsB|jYPnH)e4uYYf7mfvNyKlq60iM)6R(j;d#T!FOmbhy zy;l}XIa6h3M0+_W(AMD`t}L2bs|2GdvJTMgjW-5`hiYg6D^naVov_W{>+u@+&vu?4 zrw%qX@le&Fm2EgLbFbw}nEM66bHyZmuqO4~;TrBmY_?0)+S9VpP0Zzl%$UFU;?X?C zjmI1L_vmxWlcwJs^2{Gl_L?xg6+{a(uVhzxUlJ94j*omLeR{#C@wcRWE5XMx?rM+o zintBzsKi%RH(s6sTb~V}&fj`HUM1m+VD>7gQsMzL3WBjW_#ez4>qMu$YYSCRYHGmy z54W~$=A2I{I^UM$x&J0-?I;QV+4PPt;wfwCChKM4??E-Z4$x@>M2c~KaF*T4w7#Ke$_tUp{;_*mq;azy%FQ_PJJ(oKUp-Xvw?p|K4L<|jAIqnaa z{KboWt$X=dY^p6esm>+rqv^p?5`DQm89m<0zX?jhR#`jV>hN4prt}R#5)<@s!3Xx} zfD@C=O*5XDS$ajT3Xt!-w%C|vQvveKek<2#vtMk!R0+kUve`;gv2U zE)3!~=%PFRbIqY$>kChUkf=PoxX+TQ!h*4qP9{;cQz2-zmB^iGo%NyBpc_SZR zkvmdPZlOhPWI)^~U%q1|PLx z_|E?km|8veYc2)8-kpv3jDzP5%fxy3VU|G$ycP}7qi3g5R&pGy8O#iuQDRCBX3y+i zLTY5Nb&5YUGwE94Y-a3fq}!qf`PUk#Bi1fkTqzK<9{2zk>#2Q|Urm=sfpFG1vehMc4(a3ou-Vk453>Qa=Kx@+nz z2@?5!Tn5o65Cq;q7VRwn?O>WwGx}Fjl^Nypj*0R!b?z}9`2ZX3B-L(FsAKB2xka8} z=}94SVJliHD-*YDCAK|Zv#H|Tqt5xzl_78N1A~8qv1U7?JRM^&N4g$QLJ~tUG}in- zxv51V&1|B~AEakU^N4WUJfNdT1Cj%}4z!A`Rt`>wVT*iu(Gh-Nm_1L%i?c`n4kRHg z=s2Caaz2O^M(B|`0OfO`f(tTahS=G>qoBKnj-v=PUv4F+a4N=NPWSvsJQ2rEr)BKO z2+z`@_`OSv82CvJoO!MNt=Hp~b>9&&W+Fj`&K_Z359i&clDSR2(U~S3{jxRpJ7(4K zR~#C!P~%Nnl0&CeCGlOUTJ`&eAeIOL35si#4YG(9LYfe>vVl9WNtuFLs-Y8)Ut0^c zbgzG8gy(EuQS}E?`y*b_bO1#wyBG<0+FSW61DSF-LY}Om?dj zy1rE;#>jRk<^a|X<~HV~xZn@$DLf@qqtZIZi+izR-A&=?I;6oR=T+Ke;oB!XhlI78 zQNcFFVj(rtr+pZSJ3JqZrcvo}A!z(pRDd}VM!)0QaynIE?F{zB5?D$9Ny2QlLANeW z)HUkzljk|)+I5pxN`LD6@A}(vag%F~j{w+deN45x=e@j~%v(L$a z-5s9vj!1lJ@MF7<=JKtYKQFmLRxn4MVVIe5TjQb8OqcXGGwKYo=7en`vs#L_6l68Z z%#&Ufq9+Nehb+oWd|(W-|J|cXjdn}p4p1Kof5ATPu7d$zH6B9$`S7=BUjsZQUBtg@ zVWf@w=ldN{FwC@jC!5n=zdl^K*XIQiX@ooWj?JEOm|iS9D|v}EL3va}A8AY#YjJeP z##3rdhxYqB?;j6WvWyr>!9>)GP$tq83bHvR5$!H##T=JB%3KfdyQ3JjD)YN3XmGQh zeu{sL1HNV=+DBE#WB2`|Ym?s&=X@Vqu@We!b04Qmu;nW_$BepzK~T|-N0Zz!FAjV; z69h3AL*vB%e(wTd5E$x{@!>VjU2FLpNZ9jM@lgFxt-IF_!J-LCa?wwtBwft1dhNx8O3LK*;hzH}#_fJMTh#$iu(B+|_OG-+5gLXMO7^X)CWXMI=FC!qsWIXb75Fa@=5(`%9 z0)O)U8Io2hn-F_e0&4SZsW~-9N7ZdX*aCE-qWfcqt10-zI(^=gZQ$4H3Mfq7u#F?^ zCnRc?`}~Nq9eJU3M^!Fiz%>!*ecPwP`E70T6t*b34c-EOiYqTjs5VR*>zy=L$-%U9!Ig)v{ zJ0-nH=fsYNpDbYg$9!3#d37*uu#hm)%+cH^s(DJKd;Wp$?H3e88#eQz&8*3Bs-gr$ z&7q09{WPCU{vm;vTG2h3C)kHwWsMr<9MRO&WO|Q+g6OK&KSQDg9*2M9C1lvU*@Q=D~t}S7$t=UBYQUk)@ z^4nOrtiHYZyw^YQIsGV)uVn-gtAgV>B3!BehhU1{i0V44&ZP*0$k&b?e zlMDEg2z4~RPo*)64ypmm^EXI#?22NxQ3_18(;4&{()TJgiXj`#kxHA=jT2(A?0c{i z_vNUx>Ik+j)Yju{*lN~!;Ga%@F)uZccWgmtoa@sRB3_NaB)W$^ttq7#)T{nnXj(;2 zgc)6Rz7L;{xSb!ne<fGz7t7 zOx9*zPvq-r<(pb!h8)nwjzb<_eY~MIUs8=P`lGT>z?ghS@pCy)>3is_(${QGX2XMs zRkUpBgT)`tv^=dqsowu?z3WV!;btjzpN%y)i<5<#U2bHbr8Tujz_p+kR$*qhM{-pv z%X1_!(d}5JXzT4)7@;e10Z`O=U#*Oq^)0@#x^Gx;8G!U?`vG?Rk&fm^0jQ*C7Q2*X zxcdYhR~6%-hzsW%N<#7iK3YbAor0Q<0YX(4u-B zR6VpV{d=a6)B9%?$?REeekskikN#AMm^Vst73`TtZ3O9%^RDUv(UPcq?fvcQg=)Z> zbMIQNzug~jYakSBKYnW&`jUK;a^hHeswOzZmN((&{mnRuL@pYYfwpIPM6WXz1&dR1 zA?MLTM`^QX?U?kwK-g;n6hJMpmndT%+{ODf^W^gnj07%}gtLy1&+mzjsX0FAYNSLI zY-MaU=~t8W)IP_TJyZ-k4zShtQy8TRT-XO4Awd_;T}4}X?M24Q2j(?Wl^P}uA)j*6 zD91@r@iC8tDOXlplg_JR)ot@nQTT^ll(PYhK@M*uc$4G2aL4=$0;7Nmm9}q7&-6oa zn{N$YhNQUnv_&_d+wGgg#ml328E#+(k|b_s+>yK-LF|%XH14szjExrJfp$hXp2?J| z98nAfvVMQ?>^hEyJL>$}CQjQ3El^K(W9YdrDz}Tvbm5i%0eIzt4`$cb z$5^Q(KsG~wz+^b)Z!9g0?fsaU$occ_Q7Z5>c0xt6)b1So`Bz1EN|G>@Mq#R-L~#_;E(&)5Zf=iz?pU8x%%~8d zW=)=ESS|Y;3lT1blnSv2Rrdi^$jXd(0!gmdn3rRT!vIa}Mz{4jJtEsGPriGzortXj ze|qy5#DfWZvi+DASc7TmseOmI6=;hWz#&*s6ESOZ zk=%$hU4TXWf{FpnAgkz|e>e21afF4D=h8V7=K9w~#LK>Mu9cg6#9XA?1W))n7@t#D z>~XF<^Yw3_jAZM+A~k^CJZi4sHCdc?R;Cseek+>U3IY*kefwG~g@getRmz{~QLIwq zE28G|)@poUeh)e$Sh1$H-F(+7_rn{#^Uvqo9HxHXM8V-AY+f(4Ajx=xAnPEik?(>?8*(`jWidnvVr3)NUcdPv9_fYMV(*E zB`5nE{d5h(_DKAz&VxE~r zXmrEL$A3dRx^UOwnneFX5^Nv|hhdF@e&V{{aTUAu#fLAEp}Y)vE_a zja6z8VUF_8&D$;n!Nt1(lG96jx)9`u-3hND(EiivhDA85(@8&h%s<$B);j%%T%V4- zky~fq2a9s#i+%(!LA-2rPbWreU{R>*6gPQyVrEjk`oGXgXQWUh9J`hDF*jpzYQ^w9 zMjIo0Bd<;N6pu1Sl-j7m58$iJ)r46bRZHigtj@@xk36gAUmTRH`Bk51157TBUl=U< z9McmJ85-3P4yaEeJpH8T_4;KEp{#=54P6y)Yms8dK#qp-x~opzN@f(PtfC_L@r>Fu ziuSK9QbyjW36QgN+>|_Nzf($TV6(!6Ol^Nekh5*y1Py!b4+ed{~%sne@9~oDmeAw*@y-%yN|b!%jOW;Prik``nJsFR4$!TAI{oA|(TQu)4y`Fd9_%f4a30}H6Uvy*NL)(-Fll_+` zFJB0o$b1$axjnDIC`Ep!CzxLb;!Ko{77D3BnZj48`xhUEZhhK|{+iH-Ij` zu3_3dPj92o$PO2k4L92zkN=1*6bsd)3M|CsB(~7>1Him@wUSLhtr986_ zlNB7Ftxs=eM0H12yq=nE9$tqZ7sS>KA1ai_*x@|?270`|WxhX|{d;s{C&y8kl)XM& z+yf|zFg8Hs%}7WATxD`Z0Xbpy)5*I{8PgFjzL7I9{A8okt`(XqS!^smV3AKz#EUY)P)auK>!pP?s0VbL0wBrxylG_C9IST;VmOTCgy(I2M>Y zb;nX`xg_>nw|i`w{shH~*OC59#2uDo6nKzL$*mCv+&D5dC_d-$pF~7`uDYYY7V43L z!>XQvMsb4-W_wCE5nO_m26mTg+Rvg0*{coeC(LO}b>ByJzAd#%z*xj^kl-M>F4tQl zi4;h@F9%30>o*xK&s6fhZ;oJ)?MV;N!-S*o!lLMG{xNdwuaW0LGB%Ta+ha*qwddlQKf)-3G=?C^s0zPzfd8^os;EWHx{5boj^yRC4^1U?5QZ+ znL({|SR#wgIXg~nXGHL_1l&4pqt#L0pj4)BU{Yp&GCzvoS7;Mf)rBo)SY*)qbjMe| z^Y|@N$>Qe<-Z7)cRvstQYPb7NUmDb?dlUFgbMN))NLc=E_x|9lH?)h4$xoTo#T{AF zrv}NS=KgJ_*cj=Njn4xk7%29HISo>JnNMY;OjW?FjgVnFna&cIMf$6Iw-w6sX5nyL z65L7TT!NQwuZO!3bnD|8+#T8wZ|ig&wEF-ngSh!`-cg=N!4@4GJhdAZ+xnkGW2uA^ zLmoy&uK=R^p(nDx9{QX-Yy*Q7Jo(}QkL1}@q0PqiM_KxZg1v4_InwImJ8i~#sc+{b z6JM=#tSME&TqQ1hm{mcy>PSggi-nAx&xh3PCrMM`uBmEuKV?*@N(_3jl;{ol!HGq! z28R<;`q-qX)@qtFCIxFlCSXUVaaa6xmp2Prlm~vbG%o6L1ClBOD2uT2HHrrh#@La) zpTP4Cr#ezOj+i14rhQTDgHQ;dM~tbpRS@Kss{Han9nj;7D5}hn0Ogu@ZKf?(H0Byv zW(6kL8pV+237@)AIN^zYAM!<^cwJufm>mW2w|y}6`SWcgMiwkU-rADTyNe3>w)jBr z;WK;o_^R`(5)T@x1O|S6^h?kZDw%Jwp9PGwCF;X2@5~5HOIpGi*?(^wn><%K?Gkq4 z)GZ^;2{(u!p7H zP3Ni+Sf@9{BhK~EH%eOtpMQMX_pCQk$aWGSIXrQDe>{2+$7TjUgcCMOn=MRs2;cMM zocNI=VTRc7=7f7t2$+62iUc0HWY?%IA0(g!kakD$dhrc~E}Q6Y0oZ6(C6ZJ3Lt`i) zUIb60TA1GI9%FnIh&8cM<(`#K&RP?b4Tyb)<&Z4b5^joP)0$yi;rp7iR4|+!CQ;7Y ziuHjpEtt_@Px%CvW0uw)3I_MViOSd}5ninIwo<1@ndo7xvT5a*=vzu5?F4@!T^y)S zT5V1`U`?;L_X-gt5#$T9P_`w#+CwJpSDld8q8SyrvzSKO2rPxBlcy$SCuf2TukgsM zc*?Fw5A^n3+Fq|*r#ADOi5U;y#We6vFt>%Pinf}?vFDUI%V7RRE?>azY@GSuEP#p# zl&|U{p#ZFWTiiRLtdTrER3QyYfnELAn6c&eD*MHwDVGU{k{Y)wX#@w8pm#|>_FLc_ z%h3B?sBIzi1sB3C*L{u+o;x&S+Kqrpk+lL_=M2u3k^8Zt@>V8eN?0elE4{O#2Ey;O z-J2VPXSxT~r3X9c?8fQ+(CPgpJVP%MAa@Y%G`#!6%6*jz)j_(Rcm1rBy>iw|YQ-4m zc5#`|&`|jG>7wFFFO2D&=J-ARL5}6o`$lKiQ^5^(XAp$RY@tuihXLq7yGEAPt0unv z9F_`O_a|C+f`lozqLOxyI}Wi!&tcfod~$=yv`H}x7Awqm zB3vyNux0Msciu$bd0DcEp$Dp&EXC`D=84OJjI>V&*AacoMihhD&HRzb8@wZNz|^QU z(acwolb~uCs?bb@acb!BECzD`+LhQ_9dshiv^=U8mum0Ha)+WfeS1_D{z>F#U|`@% zmf3)&uS&HR#>MYmTpY_>Y);2g9GsNJkVt)Q0JL#Ro<%CB8N#ber5|+0u^wxUK^?(J zX@Q~!eMtpgI2ek@F9S~NfzYDiQ%T6898<{3bU&9@nO*y(@j`a>UemGjFf{v;=>-P;DCW@I@piGBhb8zXerbnl<5?fBA)%+QF4gL+V zV%xt7EBTz!4W4W}CZtN!SeX{DxGv#yE@mEB^B^S0cX0!*EY2FmTz$ymKreyU zsU?90P9kEnPg+ZOvsJe9q;h-Kb|Z{KdEZM+@1XyH&Xs_ z5dpE@4MTbslFZ*;k*C~bOpeis!bhDQ9S{e6dzw3Bp1j=cfLtE-y4!Ga(?(gUNsz;% z+raDH-8Sp9E=N|g3sQesr6jt?W9=>h6ASm6!&zyiMD?tG)PhNKt*&@`7%N4v5}!aHi91c zydx#;nq%#b3`jN)p8eYn0f!mK&z<;0GmvyBH(S1FhHWJ*URF$g*4r^Im^l`@c1AI?|}cz8B~tBHBq<_hV< zqaA!cO`0u%th1H(QOT2DMV>}>ezIBh0C~*9h;qxJY+tb2#7JxLEQp`Og4NJ03wvdj z`D7&UQHDFdECYz2w^VcwIZP6#TZoo9z{)_qwgulsz0FFgew?H&H91`(2m2Xpi$Ssi z$m)KE=_HR;O7}Vg$mJ4-yW&iW7C^G4FUO5(enTBnoJ$^Z8j{b!U<_6)l!WB=D6~0? zRB)(l8w)~b@a9iXD>ZTq!E{E#k=FFL?lKRBHhX;O{Qg+A+|3%ii>ctnL`U}1V5#4G zPbMr?7ED8fN~)4={|JwVrJQf}Zg*p4sYOq;bJSJjVFfm|c42V=bY%ssRgXGWW5rBE zff6$81}G55tUFDB<5b?DVCcLVY;RfDsa|)KQC}rTIua>TC0GL$<%an863wdPLD`=Y zDL2c#?obzrgM3Cn6nc4^ZnmRXp*&$BPMDx{2>PLIzdl|{8D5PwdnccKQyYG-I1q=l zR5EQfPj!RP{kAwKHTHTQ*Cu6STbo~Ih1QQ8GX355azWR*9@N2l5_yH&o)#rMy`6Q{ zkjlj|qSfsV+^TsH1=rB*2%$=@ACzL_&tSD0`8ymh{9sU44%Y4%qF}Wf|9z^k))k%C zIEfDa0Pm*r?1G|f+Msd{^QARtdY&qEGp>pH(@jbp#VC8TqbE|bG0D@>5oRorB4}nt zUSL0LNmbg4)_kcldR5ok4}nOO^G28v4Zl*y=YvJtOa<6QLsm^1?Qqb9H5ZV7AC5v5 zSOSbSvO*=sQdzF(IH-v8FsTK3w=^-I1Sc@>cPD?GWDzQNFZ8&vIypoXG{9y;5~+1Z zW3AmKhQrQO6$Pd_28LoPxTVQ$-6(%KSoeD|+4=bv+Hba_xXu0$(dqpN%gRcSN@l#e z(F@1J__j@KW0_1Qy>PmDV3jD)ji)ttQ7NI%0z~vwQX_efhN19KRvJIxHWa7AbT^kX zT@`Mqoe2}X;P;Vq`}WMj3JOu^`UgpuS(zrRNRAtp5N$NU2b$hYv52I-s{v!Jvxs#I zkGirormVnsj#OhG8^e9VA^OvmXwnZEoey~6Y)bKE3W%y(#3LGy(Rj7Gd5HUNMzDsZ ziT+%cqk|m)I=vA@d7Rw@Bk2SJL&Pm>z80QTaS)D(BA;j)G*+CB$9HXHM0*797_Ok@ zjdF{&kpZFyQC*$dX0{^Trk+*}A3~W1rKrI}c!?QJ_08OoUP$NWSS@Ho4U4+QM0T3l z@)mS+Q5DpA1U(V3K2I3Q6jJX<98pk5MS3Y^{xO5$2t2cCt}9TP3X&jz-(Z? zQ07ynL_fc&C!5Q!#h*Hc6{RBCTn-sLmdzJhIvva1Wk`vxe8E>fqmFcWT~)x5Jij;3 z3ur6!gkm|ptWwc+&eo?^H_FUw_4I5eG}J&NP&*~T4`%Q9-M6Wzv(*|_P*tJnXVwG_h)bhRa|$mP>9{uKw7Mwz1V{+ZEgxmqt`$#FOl zIsn~sxz;2Ufl8yOE&;2=yKeeThABHJK#usHss@v5PJ@x8yw;IUNy-9!Ty?bDuuXk- zqoTFEgU)ZR-;`|oyuUrITyn9ed4_BiJr${iD#bFPWx1?fm??X-gZ7Unl{7d+`Q%_k z)XQaYJwZ$7yyBh~L^T{uI}eNDMWIDRNq&-#$su!^OsN8G)4nZvSI|LQM8&9(T+&j5 z%C~X%^roU1Q7*un_-XO>L{xv=TvszeK+sp`&~Qa%SVe!XWshlFJ!okqg+)gfU)G|| zHQW6I7-|p?WvSW8Nb6*Ah1c<3?HsWhnb48z@-(sI1wZ)<$2ag@HGUddRPOp+p?qTW z-iRyrr?ilX1qM(myYR$lj0TuvY5 zn4?g)$J>92k_cGqMgjI|4-r9F$K(Ff<19eiMY6D|UU){4wd%SstU)OYQQv0QnRyz^ zdqf6IJK}SNjGu8R8 zMl+0dhx4M<_=)9>Yk3X}omvsiLN!F$BV`p!nFCQ0FfgKl*`#PrKGYtw2|=`${mPi< z)dokM$)C1*BfFGGvrU;dFu*}CZ90p2YYSUp9kvG!3a1MT^U>=`A!q;bY*}9AXhEc} z8}@lS16Dv!1}`SG51$~N?qZ)m9vBfgk0B4HfSN)86vs3R`AsRQ8+%vIR^5*ezTaVT z-LI%5qx<4`+=fMT<~UD+`>uXLO|lq!XMM|K3Rr8BpH9|jp52{@-JfQ@Ny~`^0G*I& zRe}}})3xsfRTj*(ZJj}d+>A17NpXO512NaEdlz}OclruMa>~C5VfaxHt?Ap`dN%fV zLBWa2*=8rSK5~xE8A}=bZ8QrAyZbK796q1iZlslcpC4~_4`(WMgK#;Q{n0JQBLta5LUXGR7ICg0l(HLb z5e5`4^6Zt&<}GfxNf|r=Gx-N*2EX3HIzBWHC5!9O-xf%ux`zT|cyk5WRGJ~^6qObZ zZ+@=1k6}wDS_jJUeJpIb4!k^CF6z_vkV&Wdl0dJzmR#)pI2agCC=PGpNeP++xe9A3 zk(`8gDTySd2!i3eeHzw(X1X6BF@=n>r zj-?n%kz$}lFF)EJii^gk&c_ZTNl|SJ(J9s> zdAe=vu9_-{8U}AS6u1(17jwLvM-t)$tf@`Il7FrBT{AQMm%tq>jRLvJ4w0hXvcV$D zAQ4bdg}Ezx({`IPcE{tkU=x^1B@8(AkdSIL%iX{H!r%i}Lw2Za@rCGX?|zcHRH-5{ zFC~`^-+nEJ@fY$|X}J(?vbjcYZ6P~#!VwIj9>TGI+RTu)K3bhw=mvhO7Osxf>o9 zE?pl#6((130bND8m-YA9t16o_`Ar2@m_*e>B$u*mc3y71gkBtgc#7ZeM#Sp~npyE= zYhU%Y2fR#>HOO=G>MG^?xBDgchZ1P}(e!#TU@6gRtx;CQO8ZVN^^*)nT;pTWoPxew zEwN^=JPvbcf#&^U^it_wl$d6@H%oH7F*Qp#KEp;0gYtER_-ySYt}LN)WIw={wY4b) zzp3$y^jGvyVRH3grNs&PX8IXJD?lIZ29>JHr+sK!fs0epWs-qNi95Z?KDhNS?*qDk zo{EYbSP0V}oWnT!kW?;mqWinXSYRDS^?yV^nbe>UqVL$BsIf~#LT91i^8kJFRnMN}q}Hy$-= zTCi}%G26z(Q3}OXlvp?mQgay-G?LU((UBEGtIU#^nXrl?qxo~P^-cK|!yXdB^6}CN zhl{dfqyt97e-q?Js@*QnB`q>oiag_W)GCXXv?Lb~I<6u+{R3D;*K(_ab`3~!`f`lw zDR6d7yh=9^Ep}zLIE1qM>-{f-E`po!GeR>CtV>`i+GT57~Kc`{OUr<%B(r}Nw z7G#m~_9c3bhpAdFr`X2JolO2eM?V`~j+^4!{_nKK|6no3umcrax?vU9s!RkLmYXw* zoF<@$6b}3*CL1Os;ee!|kN^VXy_ZAZeAbj;@HvOImJE!`90xM^QpRztm1nd%2C=|x_s7BU9~`5<6U77T8nFcRIkB7 zV{BZIL&S4nDI%*s5IJ-Qe7o@KhmvHkSN&@~!_!mvOX1{{?h>5#3IS~JlS{%pr+)eO zf)a6tKrZ`mq~wZhlli(CNn2)nNL4cBqhiT8G6UM`Np74v;{tJ?E{gu>1F^m`wA@%n zu91k!2f1}gi%j>9aY1}{B<6BqIYnSOrP#P5U-9zaX5>S4BWR9tdYNu3225gSiOe0L zQ}3T+UPKge*I4(JMn5HJ^64sm2>$)$_xVZxk`9lT<6B6q0^SsvUjlas4xd#M18FCm zQrbgjR_M&2Lii-Ierrh=7JiPj*q=C|pxaLO3jR#MODlVCmZbazGWdj#bUGri5ukMM zP_HV8QYcsVM=I=b<#bI-O}r#Omcq64MKb)Q23D-Nj>b|}DWU2Wm#o}V1*lKGOP*Pvck1Qhiqf5CX0rxNuj^-QT zaad@Bxs=y<7LKUFf)WoVS*emLsKEmo z94wmBDV}=OAtYJx1J@z~xfA%ED(P@~iQ?0=VUS_Wi$8=9ce-wI8^fF%_|fuwxOaP)pXPM$Gl>2 z??K4iTW5(g7?6!PGDcOJ-C6y8>stjtakhoRn0EKhkA)m?t5zVpmx7p+#~M)hEJ&3E zt~w;OD^Dl&E4!6(Rl~BiT2b?CmCmh>sx~baU_OhR7w?oBs9)tN9yt6@BE_4Sqtl9P za}?anKv1ibxmgC2gU8FwDDecOS{rx?qdw^$^CwkAAGf8?guDiaV}@9pDjv0J8dFKd zsm6_zZ#5{%Fb_}Y5eJkN2PevFUj*ro_$cXQ;)^KFQPFl=F_{%f1{Jc?tLNsM>{ZdG zzjx4HoAu-u=S)@@V4=VLw_kJWCib9WSJ#kI74`w0aLg`}pJ46KFhMKVK|6Y3M=?%Wes9qXb{ZEL! z|2>9e64ttHi*(+J`lQ+iv5;)Dt#Oi^@?LHCgx%)I4K_TCv(r#Bk^B!B!2jJMt_+Cx z>p8tm;Rx2zESPhnot~m1bvW8D4`vH03zGjaQ~0~R9mJo_C=_7CjJQRGGe1KcqqO@v z)wNI)LH^&yNKzn6Du5KhK7xAm2zXd?os2!Ax=Vkm;5`6Wq- z6dA3I#OyHspKOh51CmH{Ar0am1|zY@T{w&dukP`GLo5HcS&4ySxPZJ5JcNgckQ7IJ z4fA7Qwgh@XkX#M;n%6izQKp_>&0aVC9>S zRxAO+$P1JmxtZJh!*B{4#>a>6_Vyv~Y2EN&|AhjQXk?NQ6wH6#h=>;PeE$f^4?(8< zKYJ|J4*mu>%WHu2ml1SFWWkD$I@0Itga8YM#Qv;L8%xnu4A8d($OiE(XUNIKZ|S3T z7BOMcaS+_n-y(RWo=B}C`YjOcT&+yT@j%xb!Af-Dt1Es_!)_>nEPEeF3TUyM8v+gc ztJa@R9F{8>iJAUS1NnWS0`Za}^&FOt{~l!B>L|uCIcMI^LI@L``8FytrweOQARth;X^0iaflk!gBppwb7#7W)oF)`&o6k zIFfMD)0RgFaiaV@G$chKnNqjImSMcaNMQoualheKr_1^E=Gz#@Q)UI3jVxGw@^0Hx zk+`x&hbU}2_wI78+&9_(ijcp*GT-96gF4O+q%5$Qe`0jNzTQh5Uh4y)8l(ixIXAPq zFu<6#!<({$TwGZ88Z?s%smpB{;Z%%rit7mSLqPl_zy}HRg@*@1A{5q=xJ9iAVG+4QN(?h zh2#HA@_)Bz`-C9>_R8v?kbr|R9SU@C#q}|#|G$;{_bu`sAeNSmO=_u$#NQ1^A=J*Q z+FdLKrsk0XN*NI2j z1~I(Qn2WU{n6ZUeF=c@*saI6`)(i?#S^Y&5iTBi;Fs46wB=|qX59Bw3Fx}seA9c#A z?)A`KEO|W8ZVSDitk{8fLeYtimS=fXIMb7s5fpoX`MFk&~I|__|RsBK@7>b0)C@DjTxY) zm|aQfMqi$j-Rmx9g5S}qdzVC|oNgou8?hmnp@$F_6N>;U)61kRD}pB%OwdT#VnHl|GB8(jx}j6ttSj~Jg6ed zgP5h;z*vDOTmG(~s;IdlzMn%eoXs6C?~on4wVNMJ%x|{?E0+^rf4#n`c zj=Vf0_iZ--K$^I90P?9oy(M3y9nILN zkZV}aX^kL%64-M64B*8B%aY}YEmI;8%Ls1NWFC5OYjwLjx`Z^0`L@23=#JrtnGrr^EybB@#ZPjK_b;I1YW$98D8rsh#-~*l6hG zmhoAMyX|61Mhc;=SnDJm9Yz;NMyqVsA%90&9+Wy-c#VqMUXtFBmTtQhz%V zrKB&NV>sd#MAHzMdlM>{3@VHrneRSX-qfU^q&umiA|qvb!2lAF;La~3h&J1w5@|1z z6clDH$Y~2Quaj^8s3`vhiT=R3!Co7;p;fZ@H6{uBA4>h#dkUNAi#g=4?m_)tnGY1U z%x$kcM<_-$6k9hYK^)#~Jp|Rc3*B5wOA-s$YL-7$ilzHFV#jXj?6tsMwfjKE zs6pu5NKh1ct+GTTFJu2TTs0Z%VoC*=x**#xuitb#$leHecNn&4Fb6d{jfKaJrcQ{g z`ZZSL9f!g8H!e0+$y_uzlUP_=j`Cq8Ya=ZKGp4n4ff7w`;SisT2pBY&Hs}T2NrJuU z4y3-!W?8wEN|Z(AYi%^7hRS`8;MOUzn(AOrCKj zX;krSm}9CB)}AaixmxI>RE~r|@*Ye8pKuS8aNh=>`wC27@uZvo9Ibq$or8s@tM;># zkC0a(Z20zEs5IuO?zLCs%=QU!=GZW9j~s>V$%fyVnx|w)OfV1_qhrj^3 zu41DrB->^?OGvHJ*-F4Ba7O#@p#P84`SCITteWFgB&_RfD`!0J46PVT7YolH$&5G+ zAynlmltnh9hLi`FiZ3EB^#`4zQy`Z7d%SiS$p=`mDciE^l_a*q!jFMEa^ z_K5)1^&5zCO?Y2AJ;!-h6Z$P@rguEE!DQa6!CdVq#u2MT8_X!F(I_a2!E|eLG^?K!xf-3UV095 zi@kkdRTS(TBV$}z5-4ocarI;L$T-<-b^#6{x%Qv=x$EgqlRTt+MX@kG1AQ_V@FO zl$pZl*KS%S#E_?<-E0M~UK+_R0G9E$M;8mxQS{K1`-ri@wlk$Z^j5SQd)w5LS3RXp z-z=RZxW4iA>|Ux?Fm&E!`8k;%dbqx5a&Cj>-SITszGPA)9of45?Qr!7!|`5!{7npe4raFAY(q3}ve7z!j{>B(ED-G}5+4%Hte?CCIn|1GR zqJNjFT@4vaW&B5!n)w4kPJ1zOsu)mqgIAWHCgu`rJ!x1Mi{rjvKEE=Ug=m`W_;?De zy04CF%JR&>&Etjo$?X9JByPQayEWR#1Kse&44nO#%rL&Cx^B@|9ky>#Wi0~~$P?#R&2}`)TRzlz zrW9aiBHmakNK9(`J9rf>4>dl$;d%E~Z+6&3)LSfD-_)%^QP%7HIYa;lri#B%p&!x_ zxEhm@w~`Q@TkKmwo<$0o-u4Zsf(1%vskU9bZ_{H(HVULALtjRU2-HBC%0)!5IKn>f zb+B;){h;!E@>Ikv(qAb|8B@l!W4S}5jRS}Wtk!fFkh4ublnEmdn*$Tbrx+}o9*Z^% zG{k00T#<|dRx0AKCXJ`XVAP3DB`_wo+c;jvygw&zpMkmTr#18BJz-K4&`;YfSRYxh zD=u12d5tBLP#mx=T&jc^56AnsbtHRY(yl7rVQ%JfO!hI_O+YXUZtgmxMyQVK^=F26 zp0wBDG1VX5YRZBEPci(tw8PdC-knDZYpVgRZ5}N57-l1_woqnyBriK^|9G?5Y_;dE~9nC-12W{^srCH6CZqBbXd(Y!2;TCCY7L&*5c<*yrZnr~L z9Cd{)Bskojv6WE5=D#Uf)Hw-FQp6C#d6$vLkWRk;$SAY6K=lgTVr$V~3$3xM$XqM4 z`pMTyb*v=P?n&30YpIKTX!v_*mu<@(t3tJ=i)N^N(cte%eb|CBNY^Pc!Pa)yx=8+~n z3B$=8$9vT_*ivx>FqTJB%*O)z86_=Ujq{2l<)WpWoN2z*!_xGub@Vn|Ijr=Pk&UL}uT(i(!8he3xIPMYTIvXZqglxb|pR*N$}x zB1-0mF)vp^Z5O50ujtB*7#x%QusWRJ$gF4qp7+G}21Hr?)%>W?;-m6NYjid@&UPo$ zLTsrncle%~jWBlJV(0!7$cCAO=pqs8{?6_FnF*GkXnW%1vZ%VeXBEF6{@SqTlm{eN zmiuooil3AiD(&)B%CC6xV)2M^hrGFaP@Q%Hcj&z~v^@hdh{Q+f<12X^Qkb1qFD38idrHqfPH@z zNi7it4hFCKpwsHj8JpJ=9T*&@vM*k8TC$FN?%ZssLA8zf(Db2}WdQ#H0BO2}6QpUY zWGDhNn4Ng^jFPhBL)ee zMWi>zZnbU2SRBa|C8T|%@}1I-XaYTCdaQ#)uUB~byY92n`LB>tae)Pvl8>qxlkJ~} z!2<^$=rMyQBKu>!h>#ZT1a zh@uCEmix))r+y@;lQxH~zqMgC`3AE^;g2Qy=P_SGrFQr_**x&4szchRCX$a!Y(P#t z&Nw(12trq<@$pJ1B#OqWtm-&M2~7&T7viH9_=5;O)$v>euu;p!-dp!8^7ozc2-%+6 zwJ;j(;F@5#A$(tr2)Bhl=2n>d448~_lk{N?KR%6Ra}e5Kb*Uj0ygzU3W?d;P-T_`s z68sj-fP8`T!-zOI-Cj1S7fBnaA|ANsHXWjfo$W-19+yLG;Xs+8NXX*zP>w9mZEcV< z_wVK1luWpg@e0O?H7R*_>D>qv6h#hhqoxy-zZ|~iEXZD!O#!|A zlBjUewD4=N%gsCn+X|@7VA)03O6{@wff!D2X3rP2hnauK*bLP5#~aaxOAOgc`st?F zSHRIzoBnLMk|WM()b-JHf1X^)-_XZ|NM z)&~Y}8ho%C@65i>UE5`E5-{{FU|kB?NG^m{>9)_LVW;RfsY;*}qpDXU#$||)Z%Xk~ z(Z-Jw-!0ek6c;TH3e z6ye*y_G13M7W`f|@iPF0Gb<_JqO5DT;W=luQ&{WvTA%%v%{MiCUT>_rC@{Fd4E~;( zH{yE5r3ou}q);aZi080n(V+-G#)LCKrQoE*cEtDk#nSwzoYAUS zM>FJw7{+?bi#R)jCCHdacUbOAJzRQ@rBF*FBuBz+Avn4YRDP+bBK*hb{aSoLl`dUx z8VDTs;{dfZ#tIM_9Nq9z0Y#z@_tKa1k6%`zd)Gc0K^~dbe_rCNit8g5S%8OCKm5Cf z^TRKj-u1|h2?_>zgt!EAe15S>Y@s+21^kcRPhVmFL>&g7S_G2DEWtYms_2Qa0*~u1G|vlJa8;19(ZeJikt@E3Q+Y96-`xQO^k!^-XWd`b zLBEFD6F+}T9TP#;71G}e8qjIRZWQ_ZX`x(2iB)(L*?#Rfi$n01M#?Ga<1jiP)t<{k z6>|^m*K*Ki=GocB4-o_z6#jvYe(0Sj`HB<^292wzIAj<5P*>nq@R7AY^*0$s)HAJ+ zu6%j$A;vC{m6B8ij*8e>U`^$*-~z3HNczllw@R?@I`O{#-A)?m?;uI<{cP8x zs5;8GF-(i68PwJjoWJhH#E>tipxd-GoS6>O|E$w3sTv?AD{!1ldWjID8AS=M`TcbO zF@yA-vNYh+mIphvdRjn-H)82|-MC~P>g4+$3kzs96Efm0>7l3$wz$mn;K0I+RslRU z6O)yhXX~xRz@jl==|Ob>dT0k`b>%S%*3|ZGXtX#%gpv~OkzML`CEh2q1*QAjR_|O} zL}H!s!>6%ArvrbF;!woH?YKmnEW>g&J_9f2t{!-;{h$$u^JRH!Ps1a3Y?XBo1Kego zBKCqCvFQAVPXDG%ZuM|A$w%cg`N@2IVwlQ1z0Jgwe_Ud(8(Y4aHt~Gd45PP5OOxTQ z!7q-}N_Q4e10C)u>~;TSCY|B0PcB4Ob(5R9NFM@1TQJlFlBsdH)7wWXxg9~oZ8-;o zBBkM8kb*)ep-WB^qi*=RLR$3*Qurt)lJ#ro2|;X?I#0b#BA z3M7q7-1}_Dw>s7RrW8f+C+pAs{%B627LvO1fn76jb$snuX?tScOJLgB^#0+VP#>Kn zES2qn*`w7CzCH1Qd(AhGn$!7!{7d)v?uTKCu-^R8-Sb@r-X31Un(w;zp?}#W1zL(8 zDn(3j=kw336rcV(03-L^7%7RiNb5;Gp&j?SZ{1%mO0x+c%MI{9r&rr3hjCMqe2_}7 zVH_g2HU+$>7Ri?Wbw;|1S1>|cF~rzBuBvr6teA}OZY*FN8f>oaZv9iiq`q^3A%OnE zFeG|FAHqtf5ta9c701LF(H5KATp%ER-0pjm>^}lCzoJm{g&ruBCMCHsZBohJ%)U;c z4onbFSL-T!$6QCI*(A}FL|j)afShk1wLYWCpKI`YcI^r)@XsDu*k;F5OIQ&xqqSKM*hK4*7+b?_CT;6*I9Uu9~h+)DZ>7*<=0<@LVhu@-YJkEMW(E z1VU9S=!8P!hDQzku>8wwIM=z(s&^bRcJtAx?Y8&WriIO zi|q7BY?=B6O3|dT6V!ssrp}GgRT<5tmarA3Bw2b4a%O%(NC(_vs%3P1K*?06ZdRDr zG`^CB!v}rSqAFxT6sK4gmw~m1Xw&bfmD?U08+~Psl0Rm!!%bl|jYo&8ZLuw~YDeWi zM4&yKlf?|PwXp1ki|JReZ9RZdPm5!C`1!vWd&lrfn`UizVkZ-uE7nYG+cqaFwvCA< zww;M>+qP}n#+!TZcR%~t`*^?O_|~uWqp#||s;m3zs3_=)9NB2i`a-^lW{pxdy>DW;;8#I-M$ zdLwoBpNqht2OCjf1|g%3c2{H8JLKe7FcMp40%m+vIF6Tat6A)oTBA^V?a$SluKNA* zZuX!f^XIBs@Hz{~C~Nv4A0Y*hvc~3lr`2RCc1G62j8XN21L4OQL0;K1(|wFva@xSM z;nq>?Xp_%FQd6Y~)XO@E5B?(!Z$>NJWOzm(y%#6{eXo<_=_-E25H)$AGBmXgTiatd zTE6tB+DE7jl4q214X;{19)D22ZzwCrqfoC59gWPt)=MZIp>KcQ}xHfw68OedOlAGANP~~lI!X3gTFRhesnKx z!#3#7?#dXfvjoRm3QPj;-g4F3x0x@zsuAo>YZkJ2-w<=NFE&*kNBo+Kip7 z$6WCIc1R)!-XIK3qvCX3E+D~;yhB_NxATIEK;MK`$(DzbtxOqSF+Afhr^5od#U{LH~kA{y7epqyCf-7?;b+J1Ul(a&_-D+5^wC z)P)EtDzzn1bEf8sv-MkFsNP4WiTVNu=zbL84vEPo^3d^??vg3(8@R^A<@Rym1k2T@zOR>+XU}=L#hlnGPserN-nPCWL7o|U= zeO~;s6*2QiLYv)j*`QE1u3NCkgfu+kotTx)ww%J39{-dp5nY@Y5dZatZ^(icQ*<9* zlRmXeeoEk0ePe4S*S_8ChbG4KILLNlgyGg`){ltcu-5Ui7*;{+gpM0&St#im$!()W zuWP=p>hwl$Zmk4-Rx#zE@_a|1#|fH3Yqdi?78k~4|Ao>VY$k=0ZdfQfmqo2Q9t>=Y z^d}fK<)KhhDVf=ni&d<(k%~i!_e?^=4Pu?ka>Op)y6*%=#=SPt{SDpEZmv_Ui^0Jb z>R}oEIE$K@suN8P489iemY6 z1~Qc0L(r~N!9!_%)=vfMXn09u@5HNOqlWGU(@`6A>you=xda5&M8Q#ctl7cCAo%m^ zgzHE#igt7>61v#ilAZ!|%l#?Q&ti`VHL~O-2== zg>yeqVm-C;ALq{3(bFpJp7|C)U=|0ADtv{j_QVDelxCFgjOSBMj@3U7S<*L* zY>u?Ij1-go{U1Ay401M0G;EC`>lhz(R=d@yvu)N3bB!FnsNxa!o`|*z<2Fmw*^7%3 zZ4`A5H)B$n(>c7;sakYK9q#e4STv!F0!N<(LG>zU19wUA%}~1DZwHfbi)&cHIG0_; z6XZVfUlM$M-XHK@DRpJjq2x;2A!uHX`lmMpMJ zgZSBigFqO?Uvv}Z9;ae#=;m`NenU-Y?5OnHs=kjWE@27CnN3f5lBu{+ZG ziP-#(6U%8fH@#HHf_8rC1-}~v6=Tmpz}I1d64}IZO|dN%OVY*|q9o3NMu33%c_69c z%F(v!uUgG*JA~`EnAzEQWs69q0OxoW`0DCkiH_gmEO^_n&cOZTb*9csNT>H2W>Bo` zOh}W6@U9;g`b`@9(tmTIVsNFs!}W-_(|%BASbNXqom5^8sAhBsuXgelp`C$@T&ko! z@8;e_%t)RXV2{&+iM72vgit|G9~#D`N2oa&unwlN!8jr?0_4}Bq-GUSHFG=hHA`(u z>*Tt(0@L+=Ebj3D@B?47|LL*Qnp-eYi%Q`2mMLzMrM+W=%4)DGjx>pu z+}HFW$o2qs(`7&LET@NgZbtlbR!r3>t!Eu7#74TN@y_Pen-UoR!FZ>hDq``+I56YS zX6_GFNw>b|LPg%nX-y%ZdkR|l0i)FGgU!6J_KfIM#z>iFec*@&M8gve9hQ2fGD*=C z)(5lF?lq=Q-x=~aT;u^U+oY-jFSc0^9#m~UoJ~?9(&ZzJX+arko%yEN!JxyQ;a&{m z2u8O;KZQMZyytVO@FGN^s_S+u!V?pfG09Nq$LGfb2S&wFL=riRTI6D1*35~v?ke4A zyZshsy3BcC2+%J$kZA=WIdswZvitTkBw(fSN9wfO=j!C@bld{&PM0J(Pd^au$7wf) zuVM9G#yw`)o3r{aW>lt$LQi_l!EbjC%D~~0**OzP^n-5e(~rxL{N(FilOjvLZE0<8 zo?>K8?vFY48Wu(fd>$@yE9Sk->A;H7=8^S2N66(}D4xUH@F088)(Rk|^VdNpQM~N~ zIjE&d(A|C@eAV2df!qBt!^N75oa^6QRwD3|%x`7@@hf?KUu76)p{9L118N3Kj(C4B6u)UPnBeG3S7qzZ>q`Y)(@!QNQ;Ae@FDB)AtL}>#IiDF zxZ1=l?~jOw@B3rb8>+Nyy4Z=t?Dp#^ehtx*0}VpVnTx~wg_*41J!@WNSf7nWBme*aJ8YblqQ%FZYQ#^lLD8=I9l>#~+ni*sK$=}^ zSvatPDsX2%xE4DrbFYh@jsOQB8$D8OT;?<*EuVHYKXh3VIiyd*A{9;V>#1ZF%suz( zLP`8J)>%ymBeGLTLbj@`H<9i$C?W=6<;G)BtBBSL$E*3tfIi9@a2HU!)W+13yfcgg zP%2sZY_)i_7Wrl9tTkxuG-g3^UCo8<_+qH(@e7^AWwR?}_e0&gnM1V~%%do1AZBSW zE`1Ju%559jp4r}J>emq`dDqe$Zp)b>3v;6i3t$JU0&CvY_RjPU?8#N_oNwJ9}~8pVH1p!pzvIxI4kfw_L#oeqw*d2*E>T zQz6n%k`z$Hnx_my6gT_3KxW7&1I~&~!Fx5jhk}g_b6dfVl(ayCfF*dczcYamku5eX zUmK@z5%JwGiuV<5n;G%BL2>21-0(W`!qBaJL}bsXL~qzX|Lx!uqH;7|{GtS<=f@0> zPbtaoJLf_VVeCmT91k`TEPNR=2Ria!@rnUwEpX6t_e(5*2YhY<@2Ga@tZKQO>%QfF z-i_SC+~K*TY1b`whdZvDbBsB-30A1<=QS_!!oyxA8ousH7V)5JbLgJ%pGbFb2g3adC)su@>JA2GEdut8Szd8)gHN`%|o50 zXy74f-FejD#s;s?=i?oZ^{lz9j_&vbgf`g)U-w;emIIpq2NVnMnIJ~k0W6mmr{Sv`12QHjkE>--LCPMiu-wozpc*uVw%4Ktd zl3ufhi5|7S!AS4#Qw-9G^XFFw@*WZXWL<$-wb<-ws0V2#zS|LvJ77F+4>F18Xo*uC z9)M0$bu<`aq-xyP)4yx!^dmzPVH#JYc{!gof+g=C8w{o615RRap4Sod0%{AWYX9oA zN)IHLe)j&MgNp}RLLduUgUi$=>HOS&rc%G#+`L+6>z4d8?)L|{M#Sg-_qsQDqC>qE z2oiabEmT)A6>T>QXQGaopu3Q$s(=!RuNPIdTj1J&2$KA;2QbCgx8I!ljCr-Q-jMa= zIK(103xDX)v_}{Hp^~Rvt?E7e;4pCjF`i(h$(3XG;qCdnZ2b{3@yPurb3~I#XL!>K zzT?%2=>y*&wRq8HN!oGG$>i#rD7a4FAN0*%VDC3J=;BUtJA0Bcu+!8YV0Yul;^E*&7vc^yqH=?Yv+XygWVJPV7l2(R`K_V(yg$ctd}#$ zt893^jSh@gFI+&h(wOu-U@})$nIWv7N9nNZ_4KtVe%rU(j_2?P^QnS*+}NIRhTtR> zQ4u?H2O4HlwD;Hh-l|_BOkx@#dBik+4uAhP`3yyKsb+-FflcNA=uVh2V|UGEp^t%H z{2j)e`-#CBds77Ed93BXQ0@YlcEP+U4FCE|77_E6h#{%rP(+cc{xqO~4L0nRf#ZP` zU?8tWNR~@ZfXs~8Dc|s}3Eyps6V#TzF4U_D+>YFT3K)pam6MwK{`XqkBCh!%?<1Z6 z-Hq!&d#NJtl)A zF$+$wEN*O{l!cFnGowizp={Z~3J4?glv5KiJ&^@6dkC3F&(SVbi3xlU0V}l@DTdLe z{>F3DmmpY(jm9v-9KAD3X<$tLLN%NB%Zc36?C9mMJ4U5D%#GwA53M3`7*8$x61iz! zsX?PhK0Zu4WI4>1Xb0;TqJ#D&wUD!^GM<8lnXPuUte(vw#uMIDW#be%g-B+vkdxbY zHMy zgp!Jr@Aw^N1!#QA=es5E44f)VSLtre`L>nXFg_T0Ul$#=D3lSczjpF&v4X?S!zAzD z$r5XS0!ONO0Ux5OFLR_mAiI+`K8sAwJ*r5UGWjJnQreYGhSJnwgJ3 z)jS`OwwmQan^v3e2if>K&FsNU^Rw>Eblv&3-A&Ilx28kdtDJA0g>{*mt4?RUf@=s+ zmM3$J9C+NO#RYTdcxxUMAZ7PozPf z8YICXSJv>iFsQs2>&>mA?ek5bB4A{KOPq)Tu|bX3_e7Nah92j;OUej|4V$+>9=EyN zkHL-c=*0sBM#}5TZON(xLAyoP1JETAL=I_r?YWdk4evBsTS=}8fB>G#d}jWF3%%{L zv4GRHVu`M|hSkB%(!G|Q0>tqC=(cj3b(?cwy?au)#)FNn3pD@`gyHE@P+w~vSzqs* zYN53JkUBemcnJoDWWfLVfnH&7^jE^xC9JEVlP}By6EY@H7lY0&3xrVfv8Y{)G?mL@ zYdhBWOtdhDu>eAwFcm^=P&G8Wg~VEPq%>H7@DB%JMRz!xZct@JBrRB7RjZ7oftRJj z2YHf4!a17?p;n^RKPQHP`i6J0v!I0)>eq7AqO+xl;7HPl*0fk+kGGIWsk{(qb4{+X z;N8Nnf?^&f_FxizJT;2uC!?X7&Pc*=bB7xwH2L37(TjItJX!H^ z!$$1O`(AzO~EV?C4Ri$=$vHu>nFpvMn(R}zeCMzFL$fEh% zP!$C9!F%ZR34*!eHhXvlUQ81yL>DgGsv@xB9vTZYtCXKyB}6e5bSNH)Mrs7*M^Z)G zcHN5NqG++?`G}+g#mJA+@r4l@8X2?u#zZ+YyU~@xocj{(p?7(ipqmr5<%b2w_Y)!S zWo)+Sm_ol?3&xin&^COBsc_E@c6KAdQ=CXgE6@tpI0-pIpQi{n9NCBQW05Sh=#v^z z<$cY>!BOs8T9dSyc(L@P`|5EqtCGB}@|0>FUBca$1k60bL^1KmBvGR1cz$H$MKqAS z$N-zn3;GdwYXqv82Lj$mjE|1J9a%ZS5$PlQS_uKUp5`@paPS6Nx>oZ`8X32~l!ZR5 zV$c1N4r66rJ_%y*3wV$OO|UGG+!$m#7-Tp;U*0se>O8yMGrxn{4L@KUhD(7yP4kKd z@|9MI?uoT3zXldn0#0ELmy{BLoub8<$F@pqef?;_Jxw|9UV(&;@-sn>$iHL_O! ztB{!;^+@39K~IO^D74Bk#X`K8wzLja)QG7;Jt71oq$*82DaL=ZV19pZss)!uk(t3w zSrllg?U%Svg^B*e_UdAiXE_0D-TN_=;D`9^uM48>p)NxL_2tqPd4cl!J_2}7sNZg9 zwx?f6E$5EwI)1}8wn@NGOMLm+vbNT%c+TUiJrfBS4aV)<nP3NLL9iTJt7d9 zh0pEo?C(_@X*y@derNVjMfRxXu0z1QVqZ|Op(~x@QDQ8hY@BE>5549D4w?o*!pMrj ziA&*Vu?fkkS*4wj1+(!(;4266MTXzXBC255IOlrntLmXB1TLma%}7!6FwTAJy&~8D z+-&~=7|xO9X`{slsQwZl%P%)C=B|jVe5t&ObZdtbjUMm^6hQl!xMWAwv@- z8Bfahl|ozu>HC{p239d`K{RK7xilt?6#a|G!wOT?GqkW?%NiD6^Uu72gLtD<94Dk+ z2xlgk#tMHm`7i!emyQH~O37fDL>j@RaGY|!uKcXrfJ#XKDax0a5pY9zHS7#hG*BnW zFWyYXPEt=GzY&ZnvjLg1hB1mB^c)3f0(P&<4u%)SO_`i$KK;MsesvlJ4!f}gPx zl{$PoH91EU)lIp)KUVVJ2xEf3(Zt`_jlD^keBhEtzJJI3{e{Nb1@ga>eE&WLPu+Ys zUl~VIj|_@V^hMwTjV2BKUStAZLgHCrA`^WA?c19AyIf{Jp^JrKxrY3vsZ=hVS@++h z&l7z`DoCRY=k?X|d`eZxW7WT=vxS66a;t^p$3Cp@337C`7LRwVCiEOR2>SDwv$K8K zI7$9LbQbgE-(j`k+c=`s%U`seuUY+1uVDjKJ}o>-nWdx4sNKd5L1k*_o5-iC5HlGr zvAh_#D|{HbB7S$0K_EX1^w3f{B)0@LxOvj=)-ijQR^0{B_T3egvOfzFs z{zsVjojlt(rC74uPg5&fs$}!NT(3SiB|gW!RIgCj8~|P-{TpIB2fl)lSAr7!B>Z>y zI;YSN2sqzRl&ad=z_d~akz6V6uc4kWfT%*QE~{)L=~n`Q^-owG05q`3ZtElY?g6btqTj{fH7>?eUoDVdmCO(bZ$zIgokZ zk*O%~C7)WhtFk(YGLR-x$^iD?bR&Q|MXhw!{=3c(sxKz4>l{&YxyFrYa9{d6Wl+pPzk%{iS>=K;W@w2XazGqb^3aux5bD}U)g`z<*BjD+|EHn;@BVxth4@84CF)c8aK6ZYQ>M%a1s946Uy~Wo zwa)*w25HAk&K0JUj)UINLFWO{NtHsnx|x*WB|!>`aQ`1~v4te@n*#gv{*8f%k1vb7 zsq~+0DlJ?T4axtU5MNG;Y&v5&#cZ*XTTKZF9A;n748-Q<`ds!MCM(7f2oF8 z-U0kX@Sw-&;NXB7HTL|>a+q2IO@hTml#Jq^5%cfEOyP(h@R#HntdQP%KVyKRQ+xr0 z>FH~l)tm-$t~uN#Pt7sO|1ygI7W^Mw7EyvEHdmeH(}U8)s(0k&k|F=!S>sDcI zFos4(R12}o%gZBdYDqe_ob2qBn~{-`_iYg9rI~^FMNJ^3Sd1YmI3WJr-#Ut={>_O0 z*Lc5!vWWbqps~Q4moKHmqncMfi2a8rD3~1!esgnUyE}j&VrEz~N6R?z%SaJ%cxX8^ zHbH`ymv_X4EUZXvTEf?m_DWlAZpvLns93rlhE}f{2PXm&bs(zLS$Bc)`+f`yV~yUw z?-BoQJ1%S>7)AC~jg6Hk!Ip|792}g=R90>wIX3-3jVsQ8{y!v4ToBF;vZe>?u)vil ze!@@seX`2CYhdo>k3>-oi_mx=wbS+RyC~SOrCE>j@IJ1)&6*0Wmy?g7vGLAAxmIXb z+J2BWAwHc#H!K$$8yhlOzxs$vBy<)B-Jse(}&lXy3u|h<2 zNaKjnTEOb?+u;NLcXnqy%}qWm*$ABO>_s6N%M0P)G4Za7BS2HME6DNkuq1LtWTxri zJmMqUdDyqZ0TxZmOnRu*37<%?U$@Z-X#!s1PGI?`5J&Ko?=!vwec2DS*Ze_h`nlDm zs$M9ls4-btdimUzmX=%R=Q{ay2f`*3khxlmB~hpG@n~0r-1G_8T0P2fk9J$mqGDpX z$oIq_bB@8`;XTJp-A!1|Fm2<+MA_IY^;Z5D>n)V4ED8l9)Ae-q5=gncX*f=BEp1vX zF*d&lsHlpcwst4=ZA^lYHhmgxeXOkUc%0Lj{hp7US3W$Hr(ams{``dwYv> z`veOYiGLD(qf3P{=nMX3Yv-(5qh0U5j<0g|)@F$9e7;;5e@~R~I8s59N#!N+N7pK7YtpNrS3!%VUrj+m zL@N=NwDxLQe@ZAxqUQ~igLgEyo)lN9R0bBmwkp-3mNZ$O1_D3hHV|`h$8b&{(9Z1H zKCLwd<#^Z`saF=Lq!}-Hxr+715Gm{(<;nTUnGq8YTswZ^POHfwp=&6XGgS@{5(x#c zys&y;8 z_?S5q`PDzE_3O?If)MjGVMscp`@RS~ui&6-x)*%`n5fI4qY591&l^!?F+H@<+BLX4 zG3H0ze#h0AG;Rz#Fd_I+ja)sXu-sd$-=@9RiM;ApJN>u( z(#mVOhSH1R{@uTzqf*JEySMxV3Ai7@G-_|*z!gCt?4#v^D8mWfT?{E(WEO5Em?-xB zZJnCUUJ*#Yb2aSHgn^C_;egr{2NxRaTWLlysVgXLPVf1~O~b=F{`{^mSk&z0vh!-} zNXj@bYg;$oe9oCY8rpM_@oM*G3ErmF;O9V9m^rwsA!eluq;}^kVwb|N z(1q@=H+3(t+7kf{$cbO8C<}(`t;`u+3 z@@TK&#ak2#xWFkWNHirV%t2a5tt>cZ9iG}~Gp|e0tt96HvNjQ&`(OC!c})8HaJMd; zUvCwKnh_W8>gzf-n5b8?NIU-TNBQdvtdBjvla)lmO#=FefTKQb*w_#BEi1R0-&~b6 z9vaEr7sH6jUd*ebbo&C!HsA;Q<4xhsmMiOeRaP)-Es^t?V9qq2Ec0&g*KqzG4^3Z@ zq-2;B%6{D~fZa?wIJa*Y10jCxLh)(FRH9sAL}EOgh)i3#*VVavGW53XrOkF5R35M1 zFw|*5Vw<&vL<1EY7iafyrV*(;b4Y*bhrp+u4=8qRK|VHd4?~}VP@;Ac?pf10OzF**WtE`-Eg<6I{un| zyerJ8tX3oJAjCMozo9x?ssfhSnF^Mr)nE^-`1*~oT>>reFTy-&*^=Tt=J>|D`}_Ob zH1aQ96;o@pJ8FDiskP*;pV=P42>8mLYSsqNcfBm>j4o*2#!tzrSqNzcOK>|r9=;fg z&8=gWHz9iBM{e$gVWL?ZkMY=zZT@#J7K%TpeJl=evg6H)xo@sa0~$ZB&E1@ufrB0o zM}KxHWU25YJ1_IdW@2&&uX>~4;v2&881Q=kAoz;;hG;UTG+M1TpsqTf^{{=uZ%5WA zaa~7!5h{Pq_m7UoEp-aw<32sj`T!3rc%~E%Ga0-ze^FG(iZn6VZ=fSk$Y$mQ{n48$ zF_Mx_zxu9$|BNYxgOBf@P`Y5SAs6=ZJ*2p)&?L%WaP;MuFsG{5E$GMnt_J&ZyI;m2 zA=D3*f!Cxq4m1Z=G_x`lQMoslaZz|vqbStU!mZ+{9m(;R2$9z-b(h5+;IW;@&-?C9 zlAfGtCSJ|J&L}ettU>$Sn(N!yAKSZyguS7+?sq=k$Q>R9rAE$ytD#ORRIraPM%uFves)OV)Na!?C$IM;G0s{VQS*HC> z=FE|4zAt@5Rz4OdX6CeV{`Gp{n9-a?uv~{264}mRZL6OjIw}j(dt=lZ-*LRf^?g#B zm1?k75oouY3X%s&vmi#tG%3dy)eQI8W6A7wU2X)VYROWdT|g6W@C3>A zcR5=JzD8DLMfGl{{|Ne?&h3gQ$Ng!$T|ZRU`PS)k#GomATZhjpTLy9L}<1R#Jlhn z;nCnXd~il-OD115Lp@{-#3n7F$sFC2y+WsBA<7XInJ zdz?g0wV3bVvAC`8I{m(kSF14V?ds{NCIZrXwn(cP3LU1kFbsH|N}EvXBpT(a;&58t z)L=t2xUlJlh%r?Ze^p3k9CKVB&j<2NGqj4fU$5=*B(VR2S_E2DiEKkq`9sR~A6Z*Z zndtO~&U@H&>P>+s69^3g<;9T5M9A+)=hr&_$PId(ho0!DEpC@+TUeZEYQ{Z=`^^&T z{g-=$0}hhO|5c$ysn}vEf7Eo9yh!ri*bQ^^uVo!Zty@VvYM1rt(oGQwG3^a0tKM=@ zOgWSase7~C+#F=PsFXcNtcF6GI37Y{p>7vMWhC=8xroH&F9V9 z3bMKcP`9*y=4Ox)4&!%iRVJUMLid8Cx3_nqLP^{B`GI|HpBgL#W z8BG%7sESjL>`bdVUfH4DU9(}SGBhHgT5-jub!@wJA2=onxCk;9DKuJH**M^|>)h{p zkAD3@)0!H?M#qbRW$NCz(;yr(SUxwW+`mrHD1?0&|7VxwtNN>^ipeOzSxar&_T)~( zHuVJSLHRROOVTRNnmn#%$6M6@3Upt^Qt7rj)9ti_FA@K%vGa_?-fsap2z)%u%q6``)cuZdOr8fIr2Ne z&yO1mGV8SL?4Fk-6@G6~Xk9#Ju%KJqzd#T4om#73s!-Y+uYoz-?w5lRu1!&VH8Vn2 z2T$0pulr74w077F>`yLdgwcEf8!^lw?H1*g?YRNW>!hfhsgY9g((%wDLgP35>E+() zo2Nq4^TZ$)!tuUV8`-X|io)qujq5N|qg{%Cimt0-!sx34R8W<}Em2Gb2k{Q?@2?Zs zc9&HkrqZCLqfo3=BY;m<|LdvX2l+UWF-ZF$*Jo(272XIUHgp63M(Pnj?Tb`na!Cru!snE=T#b2%}>qnz9P5jV8^5lT)phYWX z@VgAih{39g4rrb#JT6(io`Q8N1~>6(k;{SlQ^z1Xf!2di;c@MI&39FF?P=x{66Zwp zAt{~`%Bb`=&R-)-8$*%Yz6n}>)eh$Zb*U^%EmO5bsJYY-ry6d;=XfmV$lz`Vz|~4A zyX_fSJey6>cF?i*iJG}TwdIVg1MoOL_4qjzWW@C$EY*(3^&vcs5S^Dhye3j!Db_0( zOzhI{{7S9}lypI-dD2Gv)4xL|b4=naYns#ps@?|~@&=bAi$qLWH92<6YHlS z(9d&muvm;V4bc1Pe57>rd(=}n-;BOuwH?n4 zgFb#&Bv^KL?8z!b5WcxzS8v-UkWnq61N9DC{h zJAunmM?nYfJAK?FpcM>ALy346SoC!U(+>oNYT)Fs-wP(mGcj8155t_U28xL!s_T%= zBzV34?fC9@)@BLb{>076eakExD>7KW>HRlo3;s`(=;K|Fm!204g^wPd#|H#+iyK%{ zqoqJp%2zF=(uu6#a94XRm!_X#G3NunY~wtxUK8llu>_s6r$%ZK3hMF0lnBbJN$y-$ zfO*V8Ke@9BWnddWbPGu759JWsE3uBAc>(kMn{OAU_KgF>;z7!kl`K~);&+ ze%+Z-)2%WxP`A%}4mKB2WyuVcX~wFg^N!64!%+!>#$*_aNsVr6H7wJMdOi_MCKLJ- z=^UZrP4u?5wsYs)?vvl|q>V6q zo4pg>jn5rLdNX-mC9bUd!YRIPf7$UJvg3U*M0CDf4hkBGpl=Mm3yx!Vw_s)s>WIqA zV7fkQ6_L0xJ@7i+u-O4oB(Sq}JPz0JIS)1YNGXICvOLq?5+PKw{Tl|vTks(WUjTH{ z7od$qa0T>VySFtweWF1ih)*+LB>3zcZW4C?0WMNmkNR;->m@|^JnzYwa@+xF-*3Fj z-0Z(as>2U{eJT04N1$J;Ca|XG36d%bVzUdWM8C?rq#U0gMJeRI?)dN#c2D;%PQM8F zr1RoS0atL5B98N*UAZ;kd%70Xsvd7t`u5-hw04}PtdP$k!{xtl(9^_>KYs`NY1q-d zAQ_%BwhAMAL{e3(F6Xrr2<*}$!9)RPZzO%%+)><$L{$5;AE!yy{JT?#1Q49@S`3BN z2EE8@JJ_&>`?KYG76F7@Q476=e|@4cw36rra+GM;jbc4`7;R2mKb7H6P5pDV*mkk@ z`+21D3mm}+`n>X*4E8q`^21^zoy`8o<8=xvvcP7_cmQvnG6VgXz277eH>2FRDk#sD ziq{!j=hz*sw!zz{;l@2vb0@LP`FP@*AntuXFZ2Uu!M^k5EX!kCA~@WcqnIExlAoJZ z_pocrUiHS!LJ47FgYwRV2Dn+Fg^}UHr~QOh^Ii(PC0>;9ofDNX`2dzUsH`-D4_jMp zrFy}r?Z6OGeM_y!4-Pu^Oe6T=TWZp%KiY9B+0KIKeYCoc7=%;+>^Y+vDRafhyHu}7 zKFpa-IANcmO{|U+OE635x?g`dHCVHB%ra0&z^F$GTkOx)${K*?#WOb8+ww==H6xZV z=Yvzh{H#I%0ejh1z2cpvbt|zrr3d^h=t`w@ysTVun8%eH$0;?2%Uf;Hj zi|=<3)S~KnwL`5FCaYThX-P2}z8o551`dSKZA0q6u01y?(1I!`8tESv7(wq=3wEcy z3=4;O?;M$)G&>F#G#!&t=3}!&GM7q*=-d_3PJBEx??=}DMtM>8=Y?oB#ZWp@nLXpe zg_2u)>|(EbjA$GoA-iE_wdRY=qmAp?m@h;iNd1XsoZF0>gk*5;i~@f9E5GtCx5EJE zQG|}cs(OAKRuRvm0XtM|*qom29agn+O(fBypv^1waUic+1cS8EV99>#n1}o?4Mz^qBK!ix9VlcBWEOpRRgPr63-I^#XI9?L@A{JttnXvSYcW zxsvx})mU0N>$qo`4$ztcxS|weAvav-dExzRggIliqOU({c!t=VkwDFZhs$;*U>G~h zQW-`;m(INn;u`A#(;;>R7m=#X=rA>t7xxxEtM2g=1hM0N$bDL9+2)y|N(rv1xkSDN zHhwUjj(c4j?m{o(ivJV(t?Gc0vBs5X2@sWIdIrW29505Kj_bsK*&tSR3i=#exM}R2 z!PN?QvTU-?be$Oz@;|S>IXoB77pJa=d*S_w;pMk<4|e`@g=)m9wvd}37U~PHg4N+7 zNPhUPO?wx)w~nK!S;aP0JA{&U`U|^>U_v*dIHTZW?|2%^$`ADCXW=ky~NoHgex7`8Bfsbs|5GtLp0pm@o^o>sR{5*PUv* zCGoNZ6UZQPEFL$!)Y-g@Q1FY-gklSkn|SvB@~Td7K`^2V;_Us_H;kv4czh@dNq5(p zZ(YO5HF3rN+`V4XRC^7|rqZ5?UU)6H^lRAZ^lusq*lV1ZQ2nx3w=~u0U;8TD2Y_KX zhPiSnZaXcFO*uc$3PFBpsDgpv`vPr=Q!8;}(WM z;IW~>AR%Qcwboy>wLI@u6+wq7JNvb$gSRA@SAZt|>lbr($QJ>*#ql`DGVSxKmQBmK ziiWE})BuEsCVA|XIAvF5pUeJUv!*~U$YatQ+TETr^7AL=V#h1axM;Xvv6msVsMW5B`pY#w^eYux560tO3JVJ<9xm3yz5o^}jx2UN(CX^y*zCl?$*pdG zvTo$Yl-rWxZz1&|cY$5sd^q9RHQnPy7uqK%$Sg!ga~b-~EU5Vv6;5dw%g7K~)B?pM z!O)3OI`zFZ%3|`wnG)FRpH+2ph!2%J%eCpuKIaPHh0L0nykFNXC0zG*cOxD*y_BR} z^YR?*9pk~JWRCU*w{r)@x0s{yJ_g`?<2~bT5=C)wWwUrAzWMMeZdzm~1h7Osb|cKcc1%;^y^WJ(7AOo%~Pl&3R})?@mS)ArnytRPPx zJT*QPD<^^)2gm}qF(Pwwgm?;sN)W5f#({iVnV|}lUXvFZ?+HaiVQzkYkpj)%X=A6= z5bDY0N`(F@-#6}AZhKORWni2z1%s6NO)@%8D|oD~R(#x%f0o?)%Bit`8J{ME*bN<# zpl|CG4^*t=RD$s~&Nb~7yO3&N|H+>nM=f9~IMH;+I%Mn)@MI*@-xI~q6rT*OwfS8* zz`Z-?j@;R53A%yX@DjrhITx~c91+Ci!AcO8WonvD+~A1d)1jD@yT<8W3uUcEH+(gg)Ni49ZUd#~k{u?B+fS2(wu(3OrqW=yvNf+E zF(ytyl-&4JHxJWI(#ffYTEJk8+%lqtY+p|}tY!zVr<}WJl#+-dgY^O$?lB=bC6P24 z77ot0F$jUqP<%a!oZBnwF5Hr;u)%*|mkdRcL;iWpa9;O8k+5M%Sepcf8zxIsHnBOWX-bjtx?o45K`eB(1Z6 z1LT;iNAUXuuO}ymSk>u;28x`0H^86Ra=f#ln>(VD;vY8QYx`3 zb)HN~*xjmlW{g@>JhuEpkdEkqYVts%EUK3c)XmXf=64-j*p^@1G+? z*e;kto;5QB!#UkRFx>vr=<~e?Y`@y5$P1=%@0p8(H{l4Uc%4mEmS1HGglmx;x`21E zySU>=kKnubleKSA`6$_T48n7b!C10tX0vV3Kpk3rC?C3;11SWd5c7b%=)e>KSviDR zULqQ~0Wr)+%?10fso;$(^Bg1^*4Gy7;zd{q=nd=)O?P67TW(d_Wdt}VJ!Z1!p_GiU z5M4{aKoG)PyG_hwyU<)C?ryc17FEB*W+OeBR8RU|?1N4634MLKEhU%u|*L{ z+1KbOUANn0j0{aUp)A`c$A6C#j3cc3m7Pi1!d)1$$2Yg6( zQ?E8hKqTb&)7AB@4lv4pPGAbg*IB?W9+c{%RUJxuG}enb+xfSCfR;13g5gqiT3YEz zUd7OV?X9eY;M6NIg@RCi?sY04t?}I6wh0a<_|3H4Smp!pe<*v$z+U2IOLWI}cCusJ zwr%a$wr$(CZQHi~adw>S*mfr8ynD}mbMDN%Hy`^$|I}SwT~%w<+B}mIBuuU_m>pWN zlAlU=*Vas6RlJe8)y_2xOt9jCB|w=tEUQxZon04`eqa?42__?{2hLeqZN1~AhM#BV zRHrAdt0x0zd&@QC|B_SnQAB_9FwFL-BS5WAOwj>SIw!vly@u~SZt#469!RU}8=Oa$ zOLztgcig>-&qgXrIZIOjcB2utpC}pX=4g}?RBwC|>3X@|e)|XH!$Z#+Kufb5e_NMF z50Q)e4vo$%y=h*eyqEr(E%na+6;jQ>zV~x#>l*xq#Q|w=2~BL~Bi#QYCpc2uP~)kV z#3zG>6gJJ@W%_lma%mQMn=a&i=uWoi(I1Q)4wE_Vl>o-Dt=E2g&ow7Io2J_m4WB}g zG)7Y?U+ThA$_tLsbIe-~$)uhYcO_Panz1+27Xg!59NDfRF7fU3W`C4~rb8x^RpMg5 zDND@S2DC%9AasNiF9C>NbCe`la;grH8fb9`u=2t0&vW%EYg)jkxTw$xh`zmq!9b< zj86%tUiE1?MmUL#r+tDdFn>Rsa^SPbm=xu(yGM{dw7b0wOR!X=Pz1f5HlGc-)pApq zWz;QHfx-+tUjC_dpWI=|%ubv&`xT}5sdqP}dVQB}F!lM7FKIqOtw_J0J#EH%?b&o! zmDa{_Gc9#fhhGv;!!YYKSY0G_YyLYLqGUuhUT;C(?g3te&wZwdyyg0~ZnPciWVN0P zO2`8|PLB%a&nG)RLlyCE0+`J0u#-c2Sc-|faIja$ntu>g3wz*mU?<|`6MjaU+OETZ z4z^5T(2%HU$a{9?O0i44xegBjLaW4>@YcOJe;lp(VG}~U+}_Y7A93;7>+yow(Xed^ z)!z91W=Z1DQVQY_K6CN!#KOD-9@$DH;rz-d6pi4)NDFKeNp*!8aUxtUKR`BNp)Db0 z`qvm)M5n=31xFEsGi*5+&5jIGTXYXihykd%m_1}oFL>pn?kJ6cfqR)ZU%j6(-b*N_ zfJ=InIE=+Jkv?+Z4LQT%YS8jQ{bo_qW+(Gt!J2QJKiNP6FB@H>3Mj*6lYa7E%A8=r zv!4bqq>uc*3$oJf$x)~Ta9=`9^q3JqmcFr@dJ!4|o)~4VCU#W!7e)G);8RS4FTCR5 z?rnoaHAgt*^kE9F6%`E5pEui~g6eYi6n;!R<(HYf776FWiAo{8P=#NZC$t~8_>E$o ziN?G6p&hz)q;UoMi-lt3XtP>@?CZq$R!d^pf$(~#jMO_(V>ux4J}$U69tkemy?PX% z4{dz)9%mxX8rgIM#siguW3%Z4=gaQ2AH?CvyG)P97`Y9&(?y)d#^V|^*ndga=nr*` zi(eAT%g6Ll=JLbAVjA#robaTxHVQSe^oQ6N9#DwWg9=z-aR4$Nt<&Rp8xqK{oGB-x z1x>3s+MUj1Kst`h4hI>0Ki;+vcTgG1U=aO2I**6Ynw{?t;?0DGs$ugF@Gj7`x-uwv zj!-vD>9W?sQQr27K0oi7jA9}#M-omTkuUV-o=wMQ7#Esx72gnuC-+a5{S6a-v`^NR zE*)Zc?odbX)12B*!5;FZ)QEv`r8Ue!M&u?{wn|Q5Z2gQq!BH3^-KB<@IWy?!@}Ha@ z51pWtW;9mKLXT9xd&2L+dpU#}^J^b9qkua8jF={+nVd;u7DWTTKLrS5+J-(}s`3i| zXDBtXHDhhbC=spkT%e!@3@I-ObadBP`)Ib|r!laC=+7J%svrLYV!XZ5Ebj?IQF=z2V zSn)9J`vT>-gEqP32qS~rvpaWQbGC{5@AAm-Xmbb23s5H(*^B1a`^ds%CAMUTgD1nE zFGjVZd_``~L;$SFhtz3zfeF&DF1Kgp%MQyOGJFyB)?hD@gm9*2}Qa{^I67)hSQ={&K?rWv?;^_)C*;8WfcD9z>V zzYair0GNW>%xs0ke1Xi|5`B25enpNH?A~rDw+i#Q&X(oxkLDV=#5PV9%HBdE8C%i= zHkG5?+ci1xPo>R5EN4(CCw2MmM=>(^9#8iIc9SN^EymUv`=$f8f*T~9;rO$KT1Sw8 z6q80T?De>7>zA3|!ttcWv+|J^C%ZeW?MpS&PDili_%~wz^uv&#pukT^z~?=C(W<&B z&(c$wr|ZQiAw1ko1z=69ZXZjj#H6Pk559We$btl_Ky*@>MNh~MLjB=n3a_$=-^sOB z)~E4@e&z#+u^vq$3_|kpv*}KuutSdsqPC^>c2AE1#g!=4&EbXld&<-K zK0sFzkmV6s(2a-D!~L!G;;jU`)!Yi{4F6#Lp<%bDROo64&+_W`721zO3xbhJKabP`UW}-+b`)kL4)UozDrQ zZYa1Ah@zE{Vct<@OGHZDI1a5gjB{S1*VNnsi7vbC_w;+mf=Rw#@^Et#1108ApS`2S zVq8YP@Aiy+15LnixLkz2ytr|_?-d-j_epv7UG6Xbpm(}nfm;$jTy5(r8tpb=v)5*X zEH*J$7p0_7c1hNdqdu{`$JM^zcA^7*V@fDZ0yiL~_k~JhXK|>FVB5oGxp8)p-u-ps7)cx!45`culq-~z_^{{5Qiraz2Ge`) z6V`<5!c%G&VFA&FnM3dOb8ond*o+aW5|J2>zNqA$sARw*Lvd*b1kqGztUgYXIGDi1 zI#hKbNu7*#o{Cam8#} zRH-92f6LFajRgV+hV~%NpWjfSVmHPYXP@(FirTCI@uhwx`P0SQ?_%G7XFrgMb2>=3 z9qxC!#2F0*%gnhhxIZSFM}N2ET<;{1jA%m1a1R;WLdFM+DQZ{Eaj&A7)|yE4MsNTJ zClzAR>z?2h$&3*2#d3w26VTTI%hmosMkduw2?}*u)rNlGN>UxjAkOzud8P_KAH-CE z&E`tjQcn-zYX&Dk&`-$iKv9_(Z0M?zjGeHRr^{oIw}}XUEg_PTlk{GVe(E^e@h zy3Ee5&wY2s{*H>RN$>Mfo`{8=s^tcjPVHGuvXWILym$9Rr_7YW4->tOS6;t4AuwX2 zkNF8Z3V3LgRHn?9r+(d@%lceUeYfID`F>3>f0e1TO~^u8t3C6Gx%UXwgzS!2!~YIT zN^upyjEcJr1(YzzO%4#n*opDXxqkJazAf$7i39YSl17vm_{a!s@udhC3Gi1dy|5kC z3rYEi%>5{4S$eCNGJiaIGy!$gya+#a{POhGj7n4u@0ZEItB4vD?{Z0z{cIJ3FjZ&2 zlE`4$5S!u=l`^lg>m~28k7{B~>UR*MEcG)(3{5fmq~i6a04On$05z7BH=LR!5c3;U zi!|G1-!(cwjz*$@6#LBfItSw5DDI>;kTw<83FB^ySnT#NTqI7WvS>J+4fIY*UWz-@ zl-QcsP`SSbu_l6|Vv8BCsYR;X@+bumU=Bi{RzNGy<8HYyZOTRPQX9`dC^TP-XXn$Z zP}?|=Iy$D-;1ww~j?Trg-t5xg@}Jqg=z&^w&4*5*Ike%nB4sK@AkEqTaEPrQh-!3z zh&|?o?$&G{43YI?v3nQ-@fNQX;}jMUZ2PdR+cg4@Nt7?vg}KC#F4dav*2Pj&*rqKE z#D_9PiTBZGQ@L~i+%k+A;}XHGsb#cw4M4>C5|^9aSWg5_g-|kQOf4`}Q`zvtLcUO7 zvK7DPN+^F7aMXyPzsfUaOs0I*C9$$c&(|jYL`w)kYLt7HA5Ih|!yXT>K`-Aes~Wf& z(_14pQU8)6&MRmhMFQ+x(YFBzvTg;B1@$45whLPvHV@Pzz&w{0^m9}zwB>%)Z&B0+ zz6#=1H#=Jdggg|~yH8teOwEvWj9|7j<;+P-tFf7D=+_JtVx(si03qXD)aFF5m-<#;c~0{BxTrumMtb?N4o?gu`8H{UlkaE8+@#9dtz(57^FeR|UIPLXi)zA~ z*<}cX3=s@flR2`{o0yO=f$?xSqiL)gOTD%&NDD<#g?-xJUrKRXt0ja1#mG4JTgRM0 z{i41SLd@4U33-8!iY0knhRO;cshBPSB4)0{08_pg0QOf$d7JVtv$k@4lv_yw;|m@W z5=?|m;zPPY1w{42Ra{*Oeq@#A^I#7AWscNl>{pE!Y%WhD$mRg4-u~{1=z)zE>ZS`7 z=^1)nbyoYS5i-liU`9Kn;FF{~Z_io5lly#^drC^bL&X?b!Rmuv{ z9*-}jc#=0cJ~j;sH_76*pJ&Q{8$`Fc^P(@FA2v7bP7Ffk|JrHE8rIm^oQ1j_7JC1> zxg_j*)#ER=l7d#c<}t?$hJVAYc4~@cXS}PItd`xkaKSL|B@Zk{T*DZ;KgSZR`hB5i z;dQaN-g|kVO^hdAq=39f!w~#CMd#Ps04QUz1LP5tLzvVuVszIne4QOy{8I4V@!DQK54UUZh zj11N+ftN-y4&##f($m7#_x#>MH?7EHf;7>654486siNd_aqg1r$V{K2tPJotKTAC7 ziR~J#=Z5lh6Em6?Bri;bDxev_Uc4=!`=6OROxg+`V+-A9!|9zArCg}xbs5(V_e;Kv zVof-!Ee+DvC;$W=det?lCfZGZ#IBS*$U-mx8ZT!r@wq=kaXb_C^egWiPP#Q#-wJH6 z(2|+E?~Mwbr7mA?tK0UerR)25>=B5gRHU$oRtfzqJvjl1X-F<)?M1nO`=XVW^*Z+W5r!X4(Y(>Am{K*)ZFlZ? z9m(lOeruj;PXVTS?6{)_!_B9%+_WcLCGd!4?zrCJ%s;yWOReUB14QFFz0O6j*Dbf_v2e?Yv1Eiaw#-UXUddw!! zwSR=W1M)-Ty(w#Tncq^GMcralAY@>ZJm0=GLrR#~)u5N5qn!C&nBUtv+9M7R6!)WU^j1H5SOxqR zgS_T5sOsp5k|!|1+FP&x%*)Xe9)mD$D~s~RNkSrg6H6swKVUFKt{dcp^e2RGd(&mk zTzo_aaBA0=f|_|&y|fBNqlqt|4$l~BbaZqQmLZth7sMC*-Am7X!&n5^?YJ#1FIaSB zEC!4zEZt{xcjqbH>#xHmRo!ADMj)7Wrf)v81IC@SXJoXt1V}eS`2t=qxcEh)V!xR= z8(}e|kL>m9P+xwdc%^~UU~L}9h}HYb^6v3?b{b^MtnBf02b%4w#a4T^+W1NU{Wd`x z2l{(3r@UKDC6_KbZLYPI9Jz^ zO{M>2#Oc(QmJusB6)mw+AmVs(Ki+J)LiHj5keRjrmJ6AyG)34HV|mT?csGs8YCs$OWI@0y zn?^k`aWXkmZFroQ(w@MpFK-;+Y9Y2F=HrMCEKV%Td?G2_giQBWa@uDNsKZ7$wEdTbR)wjy3#|F3Ztr3g?ogyvx97&svnMwK+L|R=hBXL~!sF z`YT5V*D2u@;I2h|T*CS!8UZpImM>K5w>ch!z+|0DvjIIC*Y8%OYuo;LFllyT!YNT{ zAxUOwCfIr%#KqH|^(#`)fRrJza%vA*R!O@mOKX?EsBq&;fobgv$@F(D@l9P@NLv!H zlj0k_1pDL^@u0sP==KC*uS~SZ-plAfQP|5t;*J;`5Hiy^w5^HwCwQ5=qIe8h2zK}w zGZ^MA%AhZebpZXPgxo5-YLxHK?5Z7I^CM(=@e;4L>L>+FE;+^2zZ-Gej+8SwMZ7yC zbht3JBjTi8nC@dvF>n01>FgD%a{A+zD}!k+7Nv6^#uABC-G3}^+O!tGLpf@MBigz= znM;X?!yMJS9w&gd4N<14WM>>0f(xq2pOS2K_O9ZWq(;1J}^M zjMkdBgw;(NS=^w)qGzN8xhevhJ}UNHogWCkCn?M0 zA6^=Z4RJ^L;V6iCDLqx1*MS;-L)Q43T`S0D(oK{rhml*|xb_?}-;L;4?D2tMGrglo zX>x~FWmfljaCyY>sp(cD=k@y#pUdxPXQl^+v6yp}*xC&w3jLaj0p>&~r0H!SHN`ib zDIiaOrS5YQj@vJv_n%HM2c(tzB3bYiX$e_t{3ep$bOGT^$V4qYogg@F9i$BA$}P8V zCMZg=++3KGrgUVXxPW)bk4!W8mxc&EYe}B| zU+W5@ZI+Df(dKvyvkd^Ov7(tP?M)-$2gO_IaFPt!byjRQTyfb#k4p1mr#ssB@`y*f zn+*_61nk(5)MW#yd-JOGMZ{Qy6!TVEm2*!Tk`rk2=X-v$O5CIb=6w~~q3|dtEg~x; zlz4Zwr%7DYd2UV=ZSm+<0WM^(j``OsX^()SYAzc9sp!PD{*l}Ir?c9@^ZRkdcA995_h>&oPzcjB zayXZ?!Arm22IPIf6K)>8bdO@BA$hSHzlCIm2l!?IT>*Ubc2>f|LSeZXK3b-vs0ces<-_>Lx{Txs7Bq0HL2zmYO1IbfpD zgW1h&>~`AiF%uu_i~W{khzHnwu*w3s@H~7#%fEF@9j^4HKAJF~qG=Vnfk$}ZTMu`` z)E}v!4P*yq*3sZPTtne@mH!}~B1H^Z00D9jR-T=a(L_*eDVQ{EsE&FGU07sUA%}+! zWBVodhfEq@C)T?To9*oC2A8tbs(4?}aHG;9L_BpyTfXtp%WXt1!m}dVEpi2QeJLA6 zS^<%bRN!wsu|;R2cJ~8f~i+xc0q^u+)CLJ$(Z+y-IFF&fkv7 z`LN^GO|8u?f01l728Zg!X3xIK_sgeBr&~i&O&`T&I+HDReN2$-@`@T!Daat>g845e zGqIYKpOJ-z(w^lANv6T!=EZiUU{MDeE<>5O$HTYW!Jn~O0EN|`o=91TN5D|WJ0~wM z(i_4%3DN}8U}*AoFCN|Ma)ASKUdOBJ)z;7NRNC-tq;G!`n+}Wky*s@$5v;h7UbDtEf+4<(r4i zW7IH8j>xQyag^rLR*;Co#Cn5Ijr)^7xW?%Wt1fY*n2aI|yjrAfG(>~;Ru>pmnhpNg z?L7Q34Nnr%^60tC7NTinP=1nj1STNMg;?vLYkOlc7YW7XaWgpI$zMjcrf56T!zFj> zH*dV}v~_g)ido)6j&30*18kT4EzNCZk%(yvN zv`o=!TH2wA5a%&m(RjWc5kK%Wi-^aj2#jl5T;Rmwn9^4y*Zuii66u2cfUUIAX_yeX zSmP&R2##*K#`(mt3^ZJ9P11T){>bvs>?R&~N%knE;uC+S^B;!#h{~t2)sPYIm4J8A z0$I-^LM047HN4wEK2Q%|Mtj-^?%m@tNlYqqH`l`{A$Lvf0@?QG10 z0Lopq(U6c)WEs~|62hG=T?!qg5VG=*Rw$wysPl{qtym+bQmpwb{8jX)CE@@uwOv)Y zKA6fJ6pCOVDr_?RY3NW!iQ_LX8u!O*xHZchVKGGI;heBP= zM|{Zge0o1}e(gmUYO)4)P!oERZku)PR}Rr%$PCs4uht*GgX-TM+``S!PDzEdW;@(&A5-$w0zmE9px%LT3n5 zpGfutMi6G>dG;!RtzqCoD$GK8tjpNXKMlzu)|>g&&#y`pzOTc1 zfWn#EZ8a6eNNJRZn=UBOWsfqZPZlkB!3k#S$r%7cWwPeE)wP-~>6p@5eTKYa@ocf3|czOPGHhrgudSQX&~Zqp_aNikcgtaRF5 z<%7;42@Y42xeNXIB7wQw`rWFm&{Yz+=4@QNHzBrik+IqAyrbwZx%?1(e=uwP+BCuY_lQZBAFg!jPN; zL$YGg=-(7r_n5`Yvdry+>_$hXM6?fWk09B)IyuvGHTI6#oy~6)F!7T5mf8s6ss?qF zk7Qk}CXBq#_IT+iRQ;O!>jTXPAP2@H71Je1cj;(20Ni>P5vgx60tP%;Rr*0# zM_XIl>I8P3{gLSA%cTQ|)M4O!#9OW=?>83-r9dzdtsF%J+Q_T=5aiJB78_FQcoTOS zNtH$B8-);xnZZOyT1`eW;>MN`sXHcPVUd9o{kYbAU%vqnoV>2MwC~R#>Xa10*|B(D z;E$>eWlOHMx#HOEb-8wAGPP5nRpJ`~Ph4GLd`bvAS|(jduJq=3JgZGyF}i%A;&Sa* z^(TY8J@L(ynJC{q93!i9;E-#q`&Bht02#}`7~!GybpG!$Yn63Ok6aNXSCS_z;%H)O ziCg{Y)Jcnd-qHEcRPRPUqgKE%Z&`%IM*c`JanDcPh-#K$Z@74Zh6Ja_^Mwq)pI%NU z0Fl$wDu$88kMx^hSp26Z-DR*Vj-~bS74gIr69A;W*>44zi=kvsx z5&>3y)rCcHz^0{OQ6~Yn0r@v8`(|ok|9ZbGSgpkitf8SnJi8iQZSq?%SIEKwGX|F@ zruz*+GTQ_&WLm@wuGd9pbN7RsQql3HqP!jku8zS_)Ziw;_}S&qiks6Q?SR_;FbeuD zy{f<2;z45^cIVkXb|J3{D!(qIdc@1+h8;=B`T0J3C0UBI2q$XW(=`MpyNj>WleS=7 z{lft6f+(h}A%4;ozXy`(Qp~#tp3MPwAe0U+^>&xr#5zs8218HMi*y+6z_!0&NCH3@ z$GG@B2#Z4k+KdyRx=z^}){e@I*sWR9Ka&P)wOOa*k=O7zL?j1G_4Ky4_Xh{TWu_kw zLg{Ao>O>Kn>xn+ zoK&m#z*}DKdU#XK7g0xY(0b>ZLoxGa(TLoJxZXGbS7HL+y6buTAtiPtOq4(U5nRC`^h>bj37vNv{}u z%Y8HS5<*8Q?5ahw{9?RsF#Q*qzI88>r-5R89DnIeU}t~nJtX|(UF#wQcp}k5a^x}r zg9(H;ITFLypC{knjKL!>JW!U7s7Zj*r(tl| zvOw5&y5B5NS0s7UNrKyd;W}`FoR2Y&J3M+Dj?7&ofVm z@O_Zu78Ev*FJfhDrvY*HuX1S9nVt@N(ni(t?F2mh5`quB%dp}~g!uAGnXp6HB(Uvm{$1BI#ttQX9z#Yi#*_FF?lC@1Ph(BX>A7QCPzHdUi7N<+^Zgt3m7 z2!o;K7UpZ>SCPR*hN8lHyy-)Kx(vv2a_1llA&m9^=9=2MQJE{s%d4-9_J!i6oP=3o zMV;n`Cu^b*?=tc|A;1Z8K5$Gkj679BQ%dm_a4lZ4gxZ-^MzJjf>C3?@W_mlNn9Wxt z|B3TD#P>efu+q*fur(sWChn;BUZP}9<1Se?Owwvj0Eau0ODp3NKd4g}(~DKp$okw5IbO8WB4c{9cwMptARaUnr!1M^%kWMi!W81d z?h=|?e8HxT3)xGFb~n2{mH%av+xgqadmA5FuV{}sozc2Tj+{?5uD_xgM{`<2YS$Q&?QY zsa`t<0W{p3hZm;x8(=P10T6SWMbRu@^93QhzQ|3rr?*efG-SZ{>i+}a2nl*g1e%8KO0nN?ub)fc?eUcG z>#+0boN9%Bmwk$vl_V|EUptoBkN1)b%$M|X_!NaIUdZN$Q(!gCi_-TryxR?PfCr;tl)(>G4sM z{cfvstOP`UtNXRzf8Et-q_wThjTbuuJfA)@2ITMvKp@WPb8rwqO4kG0x}&E-vck(u zvb|;P&9(arDvBLjaxD;*QGaE-m(0VhIT3!b^gwH%D$Q8DGd`#!TPJbP9#dBH5C35N z21=RuTc`{MfVMs86~A3}XGFo#JWCPkJ-%mbFRU1>-Ivfe$AuC#!Q9mm;;(jNN&Kx3 zOEp+pXII9-sL7)n_O+Y7zUtTK2T3*IBf;VEF}d-006m(QLl*>YUSQDu^sM^Mko7^! z4bMzvNxlS%F0ALVz%5a$Bo&M|=@~PTT?Y8#l_e(iDMzUMpRp3Q^xqVe9l?78Ss91Q z6q^rISburrxp{c5w`X~4P>*aj^sMo6lAcM@|5#=Byf%UZ21I)0$?^^NJbaxnSO zaMoKF?wVX$li&+2-{jd;4fjt<7M{4+=yW6N&LRul={QM4K&`08r&Mt@5;${PW4#Le zvu{O2M&nR7fMR2PV3BAvEl4{{YixCTWvzZ0;4TQ4@}_ASe@I8`8k=Autf4B+;M}qZ zUj}bra-11&{5&)vVj|1^H7IMQrpp)KA=4rj8A%Z%#O>#RH5~oVR}CJ zz+)I3zU8O0K8h8UuUgP~h_|>UdD`AVd|i;t@I0|GhSaUxg zmT<0*L%`VMv_e92+(iQg#?Nr9vm~JxuHQ~S@KfW~MUZT%+a?j6u4_*>kBKRw2B{hC zQMaDV@8KGWl&sx{+7^9mC82A?2$FY?&+{}JkpI^BHnL7sW4SM`SeXmfYSAg#eM2G4 zS?l~pXfqoch&)Q~NSOfEhme7Zdcdt?C5xrbUusP?rG$Pq$Qy zK>^XXhLz{AF=KHk2u&uqiPgzaO8Pau0bUhwD%yuu% zsW&J{-!_{>=d!+{s};;8GKxObHu9KAPtv}-yuoKSu0%csNVl|mcwccR~b10D{ z`Wx9|_Z}({of)_UFBJ5Tiuu)Th( z=T16hXENd-LE)HQMbGSo%E?JWL>EYXS9czkQ-3Y4^fpGqT*K`xLzk969e`yLcE^%= zXi(BUaIDfqnwC0Ia+t<(d3B{ryHjr7F3D-b=BqY&aK6?U77>v!p_+5Ywvw-0sd7L^ zC2g?GBpc!Pt=KG6GcL)}P*8yMaLHw7wFFMH{f_RE$kEV1g>g?CwkCJgo3z{qAMK6A z_?N~F0h9lo&oM0aU>!~A^NWW!mN{;bETz&s$o9j;t@A>d#?fVonBn<3TUq7=-vKEC z+MGp4UhvA_u6VV$_-BUMyUnUr5j8Dgei%;rTq(%2d%98j$vkSHJJy}wTQ+i=ZM}pP zE5hi2(PQ+Ge=zOTq^UlP<)k@u(yFSe^#Fy(Rkfx_S{B%o@^XaI2=&UxL^4%^Uh*i^ zli{JYWADXUW2uoxtT!>krXrv&CEI`$Z~$#aoc8j8!0s-|nNnr1`bE;Y;r_RH{1p$= zeIn+yuM}lMJi&u4NNi&SV!cTeQlgm6Hh*D}g5m)E z1X+fY5|j-_Sn3u86=Mx|`Bp)`QD`72iL00pzoO!YBa*fz7S_Q+9xH2|9yxv=9+&H- zhy`Xk1rb&}wwD>=!^Hwtx2J2UA&&=osO&%Bi3n&h}0LRlKN=&7!zm5OlaNF|C;DOgP$Nk_5RZ;h}_btjIs*ZFcF4 zF;ZBC&Th`Y&{V5u-(FG%bbV;$!0xX!IpD>Tz> z+f_&hr!{{NC;=G(jSSy)b5p^{Euf#aPCK8Hq^XsVD#>Xp%EHU;zqNI%WVU{alvjNV z^2G1*4lrDVtE^!WBRO-4R*tq6&`czAm?tEdK5Q>_(|vIKUg{YG>PCFKlNBD_5+p)l z{_${Rj*DrS?@%&5;Jn3R!BW<=DzG&*uWe`+t71^-lNMuZ%t?hl^AQIpt z1|kI}X3Dl`qU@3^9k@YSU78f7CLN(!83Qz2c%~1lxH@ z)z@C`Uorg?GO$(h(Mjn@zRa15#*&5j;hBzyJu(AdVVwJZ$a3SU5B*m;ZD6b;(RJvH zvCHF(Tg{npBTTH*8QskdaSingk;Ap0$TIN8jBIeS5oJ`c*ddd4sX8lDb2^gm%dN45 zR6zRf)av0YIbKXHWXk*d`xGhno>x08yp~BM8VxZV(enA&bTYzzqb;_`SvbaRhI0b) z@-0H`(S}B|@IkDj0>1{Kd1!3GJ)^oa1+`yrG|wqmaDo06?==SZj~O8Uj-z!8b3U2W7KEZ7_AI2Plz>QZ78Ui#RNhR z2FzypNhoRwknpM_0>0W`IDu1@(W4q-=a!Lw#@9Ki`wsdBFqhp7`-@Ai#S2|rKN8+5 zDl01wV#D39sJ)zBT~m8rI!JCh|1?{YMPt;kJ?Xv&6nWoefG@{5<^)Qm(>+5^fpPx5CsTHf7%Yk!#_gr@xF<+x=UHdLK8lBG^c) zhH&}AuWuUb0B@+h0c~bFvVPSW9~wiwD0!f?wmWdH(pHsuE@dcfZsBs#{!E^NY<`S4;VQlOgr{@yLbh=Mmt8dzt?6$r0Y@gIBhh7N zU5@!RR|jidU8pd{?PO4fg^Zgn1R~M6PTizW%4_LG50YDN64FzEV*uaiobmTWhbd6| z#f(=eNc3G>H9w7*tjIMG8-QJ3fD&MQP%;<*sr5bSoNQOVs+EGE)DyqR`N)X|=@rtdbH;aY=V-Y}4=V8#dfJ>~(pO zS2wnw{LfnLZ`vs*CegR)QnmzuY0OiET_x zrAmKRxb{5FT6UYo|0`bkk7C*XG%LS0zMfo2A}-Kj`@1%TYkKX_I|%`I z#fK*<$3NHLzmBgr{3_;^!GBD!1TGq{f&!#M-AD3S+kncF$=(LG4d~0f&A9VcG>*W93<)u3)C`-?g?)-Zj!5(r_ z%57x&~ zM8{X?%kTAu(2tMszuo@7dba;K5<6df{Gr#UQBUM%)PH{z|NBAgRuJW(j>KHyEEVGZ zkFU>vp87wB@_z#c`k9Ui_JJ<&FVFLT+VX#`nIMm{knS_=fAPBf@7IWrs0TU*kub-H zto?sAT^=wHGCtHtAvF6?^8f$60r~%ciu?bx-G5u{Z+txx*i~gef|~!@>VLP0f4d11 z^cxci8W=|y-t&KT9(kgDk_os_Y~lq%|82zoY5I2=NL18h!W#$NnW96&8w1*eV@HMy z)?3HOF>hCl$Ek}Owk2s)O&s82*RW1AiP~^pl48G~cNjFsvBhALi{VmI5&CeqMG6`L z2FWav$MrOLW~I+)%S*}lIsY)t5_~&KO3Z)!1Sbd&{e=7_+y^baNRcK4b+XY%>tJ%v z=5z;ivcBs17wSs@U8z)dxZZG-vf1o>wcc$noQ!hwOSku?H(=#Ul52WC7fj`lUtvZ_ zPo0Yz%xC=>io5BiE!QX9)s?Ti`mMC4KsWtL8;V+HR8i057n6UqzEzYrAw4r%`TDS@ zp#V34_AkMi2Jd+IguEy)*r$?D^^A|_Z&J?Sj)EK-2@2u1QpCEv{gYu=$-IWfAQG5( zaf>3t-FcinjuA2)ehUle*T)lofB`b0dg681Rz1t`rf8Q4-utCk6 zuIGM9>q1Jcs4L~n}GY-C4$4@dRy1AE+R zdTp~?nNpY6(U#$x$a-9#D4!;L76%ydmLG@on(F$d|G3vVI|(D*V5+12k^wHdkHoO! z&4dm0U=@#u9n8*bWq98usB^3vyeQyiN1kDUdx8dETG8EYT&$7%!0|lx-FwY{eR}9c z*|(W-HfG+syN!q{sD7Hz=v&RPYd!O1GtW&91}l%%ND>#`ROA1=bi?|3BV5+Ch)v(- zRVE97b!?IQ#y7lB3KF3aQUnlt|8+i|1H$vZkM9xt`y?r4aI;l(wX=CA(#72(^71j& z2y^|oLXyT}3v5GXH88*zOGsBnv#wD!V!B;+JvcDVGEiNF50pEV7FfPLBg)UC@oQ0_ z4a<$AB`3_ccU83VkpxV^?X8&O`uLh~D`yp$EVVn5BUDo!4@;A%s)=#su8{Umxq8;6 z8pr2C=kw>B%ryC}b2<-i)(cApGTH9?*6{P}Uax#rjIqLD%(&8)&>MaFw4KA+@2L$1 z@tZHI;gzZLF~R}sT4=nf_a*?-v|EYR3W*AL$d<<^*S)tpCwNN*2G(Cu!Hbb(3bjR6 z8*Rh!`?4dcbu|k>;Y7d@ch&nWEOCfjpK7gn?D%?1Gc90+#Ahjb8tbgdTv0-R+UNc0 ziQS`d4^+Gsh|b{M@K!5NYB0jF;QET~Fppjjw8y8lR(+>jiaY70+QS3KZc#wgd!{RLn-M3smRoL_^PA&#?Dc@SN9$2wxbmZrJ{3^grV`$B+9OxUSV^d;-NQ9) z;CzHXZR$JgjH}|!0s=?s6T)zzB~vpnZk%g)II|exWUS(rw=kIYtfgDH3@riSTF}=> zGZ3gnd0W<>Y{JW}VnU+}b46_HC4QFL%d}DL19qUlmZ=m6I0x%e-Df@8RB94>>RuvA zQOEQInQorl#HwwzyPY*OTP#Pw%;bf2&Zqp+PEAv8*5PioCqTpgO;9(va@{~tJHz9w zu(IkUeAc@d@fY$OJMdcu(e#F2?Ly}|J(;PV@Jrq6Zh5;`w8|2;Qd3A1tMQ7j6I-cg zy>RI%gZV7Nx0?lRrpbAB@eUi)lV4UX#7H{x8jPAtddL%n((Z^sUiC`7azON5?bU_q zoX-_Smrjaa!q4b^T`@<>w)AT7UM_VPSbZiDc=`oItS3kTM6f7#qy}mNF_JC!4T{c} z3l4%WJD^&X3OsTGfFTsh7pQ;Ay+o4!?p%8=CN&WuU$IPCAvREGWpUbJ-8sKHiT(lM zlIj-o;$*w+j}msij0s;?(~6$IekWQRGOu!^=Lb+z*n2;Qt+Gu#qqLz(%GsyttVdV>{H`zl2EnC8sP{xD~FW!_9~^ zkCY>P_McC?M@5=>N3BZ#fHRTvg{bxAMnPiUGSe2P>awcR#S#mUatE3wNg)8jdfG0s zHEjoWeqQlX`NP;TNi z`D8woNrr@55s1)>oa3$l57fxKB?LFynECwCp4r<>lOFo*&P1vbTX;stWXq&%9%s~& zbrvXNk+nMVhrv!fUih~HFRiGpU=A$R{Ut}X>x=t%a13wA`$n@$shJ*dTZ)-e_@*$_s9pp_bs3cFW#rAa~0}_PXqiI9l)M^yrdShjV(& zYSq|4T3&|4;vocdCbGzu{@p2-qe{EPW@|`?x!|C=ok#$XK;59 z?hNiQ*bJBRRo%L0?|n|a-=C+tp6;&Y-PNmmt!2u)^E>YR-Kt;7ZkR+8yeKeqt!^ow z2zMK~IBM<;z*tw=`8#R&Z}k=p7WU;w^S##sLQOOut_cuA?pTL&PJK1GXtcZTd%}g)s&LYsp8*18>Db;N-7kI|4KK8p<;p0*3Z&EudmZkjcTdcx53LOrFSR{r87zo* z!Gb^O{e`n5vhHXs)>sLsGQTW2Zk-)%9lHo03+w`$NT^#8$d;_XSTO;mEV-M2(VL07 z6_q`Gag7-{1GqZ=$29}=qo<9h$}?~FP%#7;6&&L++V3x3-jm_yq+1=G{`< z^{YT>+$%)R<2br5IvV{DeW$-ZUc%+0a7NX6Q|be}k4NVxyJD?`;ofl-WPiDiv)7>O z!49fwr13w_-}ClOMe8Ao?OMyM@eK-^!zqQi-_w^Gtg!rTE&YUKwEE+X!=G3GHx~dG z4$ZJr8Z@V3X|QgFU+X!>w+k#L&W5DlY_m@N3QRw=3n$`Z6+=z!nDmCBu9|;!whm<| z3<$~~E-*c>ZvO}$9lP+q_qBx)nTu1YLH;&1I+f1tcVC3pwKkILFln-~Dfe+qxA#|k zCZL*Psxd+aam??16fv?+v`CIE7Y9ZpKSbOqFx-WTUz3G;CjM^EfF_K$_n%;ASoLz- z*h3%~*T@+zzZ9j!6d4Lb>uPB9uJRQlhceFp?!^eyv%ee%!imTZbiyMC&qgAvF{gI*6V9cKS9{r>l|@HamYP>YoEVj9@_NpHJCjfSK*2NfPWni8Yaq-4p1m9SBiM5QvBtrie4D1vagyF~C-Ab115rN+D zSI394#$Jez7+2G&^-g1&RcQ9JS^Osx9r0EKc*Ffx@3%#dOFANyZ z|83Y>G2jMn%gc?;e$tn{q`WsjN!Ef`jyRX{s4W{6V3@sbF+;f?mGlGItTBMuLVya| zM?zgZ>JOj60e%Z2*)HyX+e3 zt;c(_%}((vh1)3uW0j?~rxf{X`I_S!DX7Pr!^1;UD`V$0m=(MfeU3$IaUc?UuiWzd z7n=puUlR-BJK0$a%7)CGsTi7SX(l(8PwytJU+$a5+x=N7>!oh+6tVLFlX@R%1#4@Gv-*+>cLOy|h) z(V3CT>(A=aWSU@}(hD-X?o#vU?!(wz)m!9BL0=@GG}JUaGz86T)eZ2auCel~?)p}h zWH=pAHl5!fEUfe<>+!Q1UjmrOw&dI$-(Kq0%ZItN~d?NA8`U$#QU|= zQ)#ZxpX7tkyANr^-rIYFOUAMwTvd;WvCfV5A0dzJfs7Lqc~jeWdux$%j_n$<6t%*= z`IWVif>Gy1F{7H({Ys~~SHFIIxb|*J3r3H+QgYI?JOYPF$^ta_7-Se-y zv8X~R61A4~B-b9_oVdLNDI>@N=~jEUkkciqCO)1;?^_ou8y3j-xKC|A*#GnyvEC^G zikf6LlYxOA8b9wku@gC6r`%snnMzn~#u|_R2^bJ){k(`nafB?i8Lbj|)~DZ2x1;vk z{cA&sm+>rB+Pt^#?r6t&Sh15@csNB^Dg((x&ev0hSEJL_v!w6`nq)L5Rb6pe)Su#( zGV8})gc>#y>$l;IyGwdCFtTNon{LHLCe*fFT^U zEziToTF{v}^ueKHi90+{G&{scjpLJNfRL6GQ#T8^JtCpU<2GQ+pbX;{h0Z33BZu%^ zgnLdOvn!7nl|>|P4UyTRzS|k)Z?~3aH`=++gy#WXWErmf8@Z=iX1*GQWa+h2_A*QL z4xE;+C>6MAD?0{tvI#+2WQZB>45M0#;uXf=kq zBPo3X>P!mGXKWTe3RxV%4GUN;u3J^D%XN##s7y%en<+xim= zn{ec{)w?r3%x~(RtbI+|MlFQ-_C6(KKW=2ngIz*>(Cf<6rceP9|E$TK2_nX84cI)q?XI0;EiWvu>|9u;KgL-BBu8 zzDo8z;sjado8de$5f4A#j646AyWh7jv|>SS;8Hso%T|ZPnYv|vGWC2tQpR_eZ_aZa57nAqHeup zpB%}Itn%xP-4@@r^G^Lj+QUCGEg&?JG6Fk6d?Uhr&)?}wEfTS0HUDk5q{*7j##WmK zdO&SS6q|i}L~p}pzlFfWOrgx8TCFXTR{#PL$LMjN8}t zSOZ_p7GtDxyxqv5!^EDY<#@v48mtfs%gIs9>jTMvz7cXRLdkYV?dV(bxV(Yq>P zq))PHY#3=ogBdGyLlxF}tf6y1YT6Sog$*;{QrGA;%8BBmYH%fp--dk@^9JMBPl~{| zv{^V03k%P-xmV5yAKSwB1jusH(`6*OXy(~0LyhV5SsQ;dl@5~FdZE-kc*@OZpph1;QqJ4vY0 zcQ`d>>;*D)p9TTd`OELXxnDddqFU{zsh70G^*bAL%9l90lGI}Q!Hv0p)MR%V?03zB=w5PT(ZB7roWpu_o!jbbYqS-q^jq+#?lr?sJic0PjG zNSh){5LBe(ITbIiP0&+WMo3m$A+6<&!Qdw;2C>&JDbX()xAIe$)>}?f&AK_~K1~o6 zkrs&hb5?nY>?WWFelr8f$PB4)C%wtrqPW!cncR?zHrZOmS$mpMYVO_|pP-`qE7<%~ zl*d}-QZPU)DU!k150k1Pm(%Q=;BjUEJ&~u3)cOsJp%$;PAy*~d!P+M;_@DIBTL*R& zA&;n@W*l-=9gT2e29+NtP71@WC5{#E^8F56+v1Y_GRAP1a<%z&z4J7d``Xxq<{sYm zE9ZT?<<4a}262~{$0a+H^wtu=y^~sr;6A%VHk6Luieyz^7y{%5Gu_{3ss#JX@e$xU zeo~Aer&7I)DcO9haUHdk?{wVtz+>jEH+yWcBf{)WHXvM_ibyqBkbCG*PpH?9wbZ@6 z*pj|Iflk+P0mkG%z?2%@c3$HySM_w8XBA3*7WdYp-+ax9mE2K?PY+*v*p?N3;XnUw@{B#lEWdgD;|&sp3XDr#bZ)2d zEb*ya+H7-_%x%e7$ea_`_I}hRy1CF~(H|d-_P=96ysk)T-U^ZH#-GR&3>Afwuxc_1 zNFW84oS8&1wBDhm5nh&W4V+`p+juWt>o056pr|j6g`_1Ee4hhRhKgaOc6Eo##}nrQ z%f(^}R>Ek)YbT>rRrqA2l!|NAvY2d2$XVpG($?&A;)2tud`+)2R(8UsjL8&~%RiQ- zvhX3ArJL2AUC3{y2k*kd&U0jaRmNEYJw~<#MaQ;{tWj&y8{q{g1=z#cq ztWoCmm%`N&G7h!hJopgUzPYJ9y4gDRDectm(?Sb%Bjdp%aGk>hmEa8l)>~xc;GmxO zJ5$5**or_?HJ?ID3t(N&g`H=Lr=f?9)|~DF^{|kz((`lmuHh-{2PYd_R|ewu?~@7` zNEm6>k=kKamR4S#3x*Pt5=L9dUS0^l-Alm9$k9kE^z!aj7H80DXIoR{a&hF)0u<35 zX9t!^5YcSVDk#p@ixK9gN{@*Q@O?SIK zL^d^Jm*~4juC)|qE4=PbZu37!gx%@!xr*OYAS9*8M0*d|Vpj|5db(txIw_nf*H?>j z^&ASa+Wn(18o1?O6bJD09jiTT;Zt}n>w5^ps-i?vs_V>ur%;1SE3Yrru9RBva>IJ* zgucDnRRV=q1z)$kw}HLUC4a9%=8*sxwg9%M+%$adxgih!?S=Pw!RyovY#*By zfPU@J*iett|GAeIo)vbM{#~g2%hhwCknlzt>I{6r7cTzWas?GubhIU0R8J=y~|rhHo7sfVCuq-#9sTmjZppuiFapecl)pAtu@#=WLVa zSy4T|W6-OTAxg<10#sr4fCc{y_7#q4a-?3}5Or1R&mcEzVyc-r{Ut;^)}sM< zv7I|hJ%mityfzU5`}Wn9;@%h_T7hxX>Ggyd%;<4xa~k9`E!+DqCiAx2j?XZW%NT*~3w?v7uF0xTNO1-%n|%I&+nE;; zQMBAbCGD!nIR)Z6$10945LZ2sz5csK897|Vn(Mmf0AyRvi2OsP{cWhHbMbn*O~r_# z9df@8UzQd6l2QnxZiLETrL65o@Z%+{<$-DuAIGR>@D4mZmOCV;IKFVR>)9XL9qi}~ z0a=F|ce|TX!lAAYMf4p?ymF(%9`O=OhEtDAYamddOe(QS?To#{Xkklienx+FR82J9 z&#H%E%0{A}YB%?VHuE8_Sa-Y^@ftcO~LEX~iwQlctM=#fJvqZtf%I1A| zta3K_pv(BkPCSmVAcYLA26BkOm8rUXUfRvKhQ*2_Ub3V*+Rq7TvQ^_DZWtX~cN~{J zTOO4%E8tY=#5YDPl0h)0yGKdOm>pOmxe%Tn>&^CE!5cEcbNPh$dIBqDE zw+Z?B^j|EkEnCb0VzH*s_!e=5Xg{6wmh7KYfXK^aYA;c?4BV%B1T^4Rx%K|Os|@LG zG3=uEwxSn?+iPNx6a9*ta-3*;iYZ`6N{$V*ji)EG!2F4ZtjZH7g)D2c6F~Pnz5fz z#2RAtE=O0tHuK3#Bg=$4U@3|m5FKegt2|*jk`{hcXxy=^t8lhl!>*LWYgFVAZL@K% zcPu47B$nh_fp}letfn!O!vThwsU$^P3bd>T!+onIIqZvb;X{DxUWF=u+rbUa$YkmR$3aGHL7(zIO~2Bd z{Q`mM_oN`|*Wec_FF5GdgvLwcFb!6ELKD1M3vJHTyKF??@jHT2x88l4wjXmbnU?`? zM7&)SSXp^KVYmUossr4(&h zdxt~tiX05{bH{>J>LgbTxX?Thr@%B-OMh~%7*LH|z+yjC0#c)pm>S)_kFJ$<{rr{M4^K4ep z4Rpy)n%Jc}1scQHP6xb{sw6n8trVx@Y2^fQ^05}F-kVL+)0Zp z@U3yOb$Qd@R4>5RZI&TD1+;$w>=#Blg+8T}3j1syJDo?m{zPH*v%WVS;8+YH>_0VQ z_~sq28#{(!R|k)h8I37GMt3dIVSC<&0!tT=dGP8;Lvy=Q#aa5sQ<1vve9%uMeV?(#86JR7oB0 z_gw7-1sS${yg4X!woH9t(~0a#$%uD0H)Hm7Xu(zFjLMvwK&`z+s&6^Mg*fD}++B7& z#cE)%dX+RpEEVP&wt3*&XVTqm=N!Xxz1z$o>!lP64;~jR@|Z z6>My7zJaLl0b)+n*~*&*(m)jrh#&3ZJj6hsbv9PNg7$u2RNkqJ-wh8KC*y`!N2P9i zTWu+tHY6~fD~%QEryK3Jg-&jWxq;@{V;-m>`=cxDXb~l@^B>azdl=f zbM~24+X0V^ZLb<0|<7cr-3m4`cCdYDo*Gbo%)o7m=(ymo0S4lPN zXM4?)c_?29IMNoSXBMK%QR5e8(mC*ohcV5$zBzp)y95~r=a;hgWU5I+{9he}VKg3{ z*xWwOF?@J(%^iB;H>z1>D@b=oF)ZZOwQ`TqW#R956fOFCL}^4@|SwQ)x*i9X=QtHsz?ZDzOXUP9!6Dv7OCW)JFR&J%0RUNsTn3Y9i^Ucz=|jGpVH zr{TDEe?B~Fbqphn!+YnFB69roEHeYKxJce0&#-oEafW>qqf@L@dunB))-hvr56Kjl z#m}iV{oDfzY4*r3!q0kf+$xh+ov=t{duIEAxNelPD=}35c*d$SAecudE3I#aYf1nkIiU}^6)^HfgSnQIAcYm4>-ch_tfja;P@kz_Wtc7ekRs6+Nps4MM zixJn=IHk`Ita4=yy-N$R$i?OIm40B|{0`$za7@q}QoMK5sLKPEHk|*p{#`HJ_23jo*9v6}6rxrS7Wz`#qisBN_kJ?wicH-41%{eIDEepa67kJp zo+Fp#iS8ngRMHu={Od~lBmgyVW(zDH(v1j_a%F$DR3$m9bLE2dd|&##%7FWXgQNyg z0^SkdH3cf=&77#m0taz8?rjS7@p7Uc2HDv02t!LP(*2p8CcJ5cWxkf-V&RUe)zIg7jZsYF2LID;vcp2+y zy)!&11t-T;c%w!%W~rrb`nDt@HH))wBllfDuTL9Kn~}lS5TgsvrPM-Nd1YrmWb{8KhvIQ?BfbjAw%5nB^7BVg;SXNR)Frr- zy>uK1;%RzN@Fen>#Jpo5BZnr`zJn6mYcuL>x{?!0BZPjt@zMrz^4K$--ZoY+&bA|_ z?rPrXhA47muk#Uq}ZnWgI(C+tHJY~8gb>yN?*(=TdMUbR4s0(0!3e_Spj@qcmI37jMqNE<&Y z-)kf*u+*J;3*S&wX8Mx!^Vj|0yhW9_LvgLRm<)B=78}m*vo6OgXsVer?V`4NuHkm$ ziBnzy9E-C{qsl$)XPW{iic$391JoVNCD8MX@V)#bB*8#|B?Yz1Vu^a2armRItoT37GnkdJwjwaptV;$g6DF=y{U)GwHkW*?GNd zo*}nEx~6o|aWD^1&A6Q!00{Y;nfm;WPPKN}Wy1^v#(~(3K{myfXl2_GNDktF$9$k% z`hcrj`<3tGb)ZbG|7l-@j~l_RMVQe%o^+GGYLNLW*)z%DEo;ZDa>G{G^)xa~BoS-h zD%ZaHw|?7Yei(;NOC8GU4Y8)cwZ^e=7D8fVD8FW3+Lf^VrS|iFWZZ5fpsh?q%%K;9 ztX6XfTmz?;+`u+7Rj$oaxD~Bzc1yS+x=(LbjoK-N^J+HGiJejtZTl0a$1WS{RPbfP zuREcoMC+FhA+83+pEe5K>fB0V`V6W29-#2$%>!JQ7eZ2rfI(8G*E{4Kn|4j-C5|Tb zBSUTr{?52xKA>;3wF5&d{J+%O5`N5@_i-)EhO8s=E>vm;fTjEaOf^0Ykw^{_r=p|By0e^kh5344n49O~IcTuNlR4 z7$}ZPmq*$H%;>N@GN_)krH+O3%TgKJggU8{I#lY_(c@^m-q@RTwbz4av@;!Ab`nu@ zC_>T1hnhN}7w~cKdqR{SxFNRUYY#4E++zug#pnS;vjKRmqld>ZS;JSqra6ffR{rcU zv5^#ZYFUR`<=#0*Z-+O5w5LnR0~g17f;;#(6CN}a2zhKtv^ z0d0V*Gi`5MO{$6%Z1{d^nCWaJ_D-KiO@adRI^}n9mGt^~qSYZ%yP&3+`$1 zFPeE`mUE-}X51(IQ?Z9;Pf9Ua$6qi4;yPd(+x(vGlaJM^l=oFc!**!15%8PxJ!=qW%r_K8 zpOSebANLaq^W-{wqHcl6S9xgy3}03Hp#lD{;c5iYns(p=kv~O$UW;!7BYDSHW1-aw z&Z}{li@cEymo!dLw1eFeu(9@4D*ePMB~{2c;#>fd5*8P8EpVK)LFD&Uf9Rq?>-q7l z@2&Y|gSXje|1Yj*m9yy8du+LVQ4g;~f4VitrUE)LWdYzyZB){RA4+WTy88=@ox|wp zb{7#bRWV+xLv7Gf?Yw;ekfyC6hKUR_h^)3xpA-+!Y69=tlkC4o> z9erT8m-Nm>dS)c5*K)8fHiRd+z`{w?5M8jani@RPNbY3$c6iUV$;zGI$X|idPTpZl zsh<*xdRI(}lnz;pT9X}JYB|YZHU!^xUb}H8Si9Be~Uf)V~h7_2ot+8HUlBc zcD(@aB?OI%i9G#vVZrrsXeK|EI(t&V5#m@32C45y6ZUAr05%``id;OZEuSx_IqYV4 z7t$KpZq9gL6g}mu=JctDN7L6%;twfMcRAnv6|gtbV#sXVM`!lnv=@=CD52zg_K!Ul zW^oZYm#kV-FQBdQ)PbX#&g9wVParJ=k&fL*CE6dY?v{Q*t{oi2W|j9>VB=kYg2La? zrl5EpwfmG?BK+JiI~BwEQp^HI2&eIqKkunjcB9+s8xcWYe9Q5_1r|-Q%S9k}3%u*r z_T_wYsW;y-0p}*f9iOh%|WC4?1$>n*<+g? z*U96{4cM;n*^oZ?&uRmIMH4Holhb3>q@ROFkMsU?(b2eyyziXK2CqJS?zloP@^o!~ z{U0H$wx{RA#nx7GBlIvCLqHUh?jdE}_jv#Imfjm{9)$;&@&2E@4W0b=I9n!%TkYP62Gq9m8cugVhm zlF(cE2(xV8EfU%xJEi%yYV|vsk+{NGk23ku$H$*?`AXEC38>m&Sb#Ne@@DG;)+4cx z=-9i5p)U&=%*Lp%w{iE4$f4Nd}6@#zd)!QdT=Wsw`d5yNY&lfM}5@f{wup0Qf(s)uP`6k>>@ z$8fg0%+~*$H|pM>OgQ;^3&*^K;zC}tto>!|?{RHCJ194b0i50X<_#TYjMWuvi^LK}!$6kK!8n#|mnPk~q6&VfRP-LN8q%-F;WLy!Z3_s}x5W z=U+F#zXf@&Zlyuema{?&Zss}hR^C5s+j!sPH*h*l+sG!w3hm?Zm`5-~!l#Mtli(~kU_4*7Bz6)7xZ0;7wn*NkXE&AY!ggK5 zGE+kp#vX|xLH-&FG|ci;uL&4D67N9c?9vkB8c}fthmY*7I8bx(kklR8oEufU#wsNf zXKF=|;9LLkNtmjKzl+R5S>6}A z*d9ec)i;(Idg|zphWB)bECQP-ZcyR#z%38j39PQ;@m~SYM``J&H0ydL8bH|}O;B;8 ze80v--k+{l6F=q99|lu!QwN-I`my;J^%!yu?tcp&YYTff22;0xJd){&vcLD`OAuL| z_W_jD08iO(f$;9S^~oUE&#(Fpbqu9xb?TD&lQs3S>NbYXPXhgL`Ugd-RYocQvj7eW zVd~$8Aq=|}UBP&J^C59-kE-qIv=7ArkhvK_$>5pqtE_Np`0C7)s@1}Wk{idK?$}|> zpRbtr5;Jc<|oKOsV{&WnP(S#2VOZmC(|O!wYiq` zSBMq6|AX>~OP8lW{Ntp?)K{4*$80>_awK?ymyrTBL_Awv;$wi@q{)l|-ARdOLaZ^v zg4k>(%GUgn`W)FQ`mSK~7PxS&uyNXJYh%8i4)B*JgOVVWs=nYz>@Oz@@(zX3u~ose z_Z3J0hu9x3WAk30dZub*`tF6#2a~UREjsj2tgxMiZzC_Dm-j|eCq2|9MjeTzDVtPF zaDD{|>c@@jmMbz_qw&BtLn&n9H8E`Q|Dmob`rI|8 zsbXf;w?%v1Ar0!5s-QS;U;nnbwaB&ZN^h=ltT?_lBjyQgT$<@62J3m{zy@&zp5x&e zZ&vrE_+RZ4_!vpG)ruQydwup*n`WMTGNV*Be^Fd4GOOVB)k`Hly_Q2Pm=V}ERB)Wl z?x6Zs+E|^N^zuZ+IBTdlp=2pKJyeKUWuz1Xawn5peC?AiX4-?Hm?g5X#7b4jrdy42 zI9Glt(8kMgy(A-;f1^4`EBLmOhR1-H`10^odrI=^WAr6v9__jf zP<5JoJHo4UIHC|BXe@ZrxZ287P&#i&4aYG)K4qbFKYW>bS_9oW&qsJ8z+QIzB_o&h zSMb5wvcyH{upK$cr?GE(gyJU`B~hcqox6Y}7j>=OJHs_7P=NXpakBim@KA&e?#Bh! zOK6ZUM$JW2kPV-f1}aPmqyUym!c>XsIJAZ#)?#=c3z{GY59KZ!+aj||fWXC2&1sX> z8yo1%VqalBVue(`|FjflwX-i^RtEh{!J)CpCKv-qpI)TVKtm^)~P zDafmWg@Wt698U%elaC(}I?ujt1BN1Ucs16Y;j~ki(A;wKsd9>io2&nAn0=X!e$4rA z(!~(}Q3TE}p$E#xZzqvA=#d&it7Fk=HCbDkg>1ihHHj?p)3_YRPSw?Ic&&Vvs?R+Q z=IqAyMvM6i&26*Poj~?ug6?h}i%WjRPq1W>zpPCuPh{KR!~K^6?`9uu^GZyEdx&NP zc#jjc*?VJhy1kuM*{gREyFZ9)s#`Tq5_Mm*&iAn0`4=z3`M9W8qEQKY_HBLs7B`XJ zcv88uwx2U>36ztOYJ8)atV7D6mxgwHSu0gC}oaJ>uyTV zHFxhFKx1=fXV38L;SabB1rIyZ`mCOU9O;L)k8OG;HY|{$emQoC!imrKh zy<2c?ZFQBM$dT4g20BsU32Di{69JGvH^CPdbgpd2hzy7>sb|{$Uzl8>`Lf@cC%9vY zhhMJFIjO;|V3#4Enm7+HPYc6c=U`_a=UUjG`4z7#L2=3Z?)Gz~T(r^*KUqRGTW4Ys zwJqVnK|ecOWVBb`u}~<7|D=fOb`M@ymxvtqmKMA6@V5CUso%fB@S0bbR?oLv*?-p8 z!bC1jA(e;7v;s$Z-{$gd2f?~BvQPPX12QZ|oqa0J^2Y;GjPW(cwA$kWC+qR@59WIJ zav=O{B?{%(S)JtG%da6ju+a`Qo1d3cYoaE$rz@8PqnWN;@U(OWUgJ2Fn1JZ)avu^R zTVs32t=QEYeJ3dDYW+7l>gPSZ9OxCgaQ@H?#ORPUo|P9??Z>W**`>IQZuL%w=}^Xa z2-2yr`HSiuvul$L?^6Q&tKV==p5rHkPelGGheg z;7EoRYi=yI=e%t9Js?Y4|Bd@1vQRFdRXh9C z6O{HAUEm-Lz}#IGCC<4cc4HPByX^MLcJpF%33lk9r%(Y*GuuBFDiR!a%ewjC%r#Ct z6Y!dBb(7kk<4-?C#Yavfef!ubu)#(tf9cBI396{X;V?3p){hE$4jdfnrqHsEEpsfu#q*CJA4*4odA&DrtzV({PtWaIcc{#+|h7h#0JLypntw zU~XrJRL?N2d7P7b@yDmleQe|O6pZ?F=6&uvt<2?g>?B_|F|G^QG*9>+5%f6UdgxiUnO_0XKM%I2{te5Y_-cYUVru;}s(NKfhe%RH@I^H1+OUJ&pj z{|Eg4hRXlfWO!-pE2>sF`S?HJ`mbXrR8g;la=w^72X+MR6#Q%7e@?E%{zXP=@n*21 zi~nEf|Ic}Ukg;W73}R65x|^U8W&SI-{&RH4>j^s=PET|1v*dpm>hAqgozRnVHR#1Z zAn+aO-5>sMg>|M@JQgy<|HQGt7}gH@BcY3i@oM#dlkLA_%a26lpOJer`S4@_wd9M* z`S<>R2erqDB$nBdH9zsyNm>eyPa&!ox>qxH#Asn9$n>8a{_k4#0(BYVHm7q`=l=(g zN+gKb#FK~4OQMW_;NaH|xsLgLLh*ms;s2oHnboN;5>&#_Y5$|^-{$V^A^E%*q~bRX zlcn?zHo5x;y1r9Mm@bFwBmF=7`JVxNSLz_XS(M?){-3-5```5`bOO2m$uj@@AXK5| z?;J;?^Ht1hGHWC{0sk(kf8{;n9~3|TBNsZ~_YqwGsB4ru9rO5n)iMb}AJHR~|8s%( z7c>|<#Nrxp{*8zK2K-qw1TcTyOSsNRyQT$G|1)Vx-#Pxe8iw6>>FWFgT@y(!(kt!c z!>9j2OcLmXA9=sccgl}#s{MmaU^TuqA@p?A6-f98<#RW98L4%pb%@S{VRn)k+9QGY zXAW!IzZtibf5-P%wnGdq2By^K*OfpgCfiz8G#ZbgS9w3QO-3KB;!9)g(|=o4`~xQ> zuu-pGB-DQ`m5vv&>LiG|{kG+-(nBWl;8+2@Tl|}Ji{C&aIu`^Z9_hT1PZq@f6m&iR z;={m;gsw`w09sC2Weh2RD((d=&H3?DToOfaLdNmO*m@3c`8Lc?T^*gW;W)v)deIjb zaK^v&ICuHtdo-36vpWNSn3T7)}WRo6CU0}5LB^5nM z$l61>g0rCb*7L5$elksXO{f!e+~k`+63Pdb-W_%FS*0i3diB4lS_cyY%|`EY(f+&??Er0jsw`E zkK7E&IG)QBDb#~F{3pf;(6gKlLPQdLRU6M(O=P;@*H zuh(Frh_McESy zN;Lu}a^4#BLG^PFUQeE6Fg_{!@URf`(2dE~!P^1Oa%5T;l0?oKRiZ&-$+0hG3vt+@ z479SDJeV#ieyqCHl5-}nrZiUb24yjddzyQP<2YV6e9wZ%$Fm^{{u^CHl2uS0m~cGp&HXU;UymRxj9>Kx8wJsg%&78GOAn>+xMp zon~5NSU6eu;CwzUrx^<0ZpG)O*&ydTPZkSm`?-m!yYysh;opO|Su6IR4!mD145#J( zO#m!KysDA=-`2+3obS@JqOL!pDNbX6l#Y(y(4=Wbk}5xZM9B{9#84s)(|Nd+z)Z+{ zciH!bjl?{vUI%GXl#i5uEWC?MA1CS0fVaDLXJ(T7XL9bL(hncsz^4jxK%B}e&dD?y z&el9%lry8I1i{%l1tB;TvBhf7VGTO3NywOZ^9$bfRKK=k-Y)Pg%B7NXwr(6D`$_XQ ze=5{O*CP!vrz7LdGi5<(QSUJz?|eGLLz2vq^mEAAPacg+iq+fG1NZfNC5W_wNe|hk zhNb2q)BAT6ou+x^+}^JXRs=?Ds3JedcjZ28G~0A~-$f*UH0AXvP=3yr%0c?Wq{%8Z1o4z&sDR13U-Sr*W;3mPHG0!VlS2{9kUrJrjqhqsT%Gx9 zsP&$Hn1@gknZ+#w#UOI%HPMRUQb8HPn^B`WBz;8(q%T7V9*fUBU9(>p=+o!J<+ABm zi$C}gJYnOgKSaM3=0EJDt2-FlWV=|Qr={!rSy3IU*!)3hslsf!aATEL&>Ju*#1<~% z=*MjOL7)`vEs55elcx3`cO|J)%Fz2#Dq%$uWPC1AzEV4k%dEUFEDw;4y@ zNhBJl7U()JPoUK_+2)8`|MoFR!LdmSFG1stN$+OzR~Q7jE8!!+ws~eQ_Hyh0<^oW| zkm+j-95Aew)~u_vYB9GWB5F?$7HVfyOmm^knT2~DinX@8lhzN9dbAg5D7LUm&r$!Z zr1|qV?fZHCdVH?s=ND)(ZKyWq1nY9+5D9hHG&Tx%c$?rDy=?AL zMykuf5l<$g24`S=sa{}V4TwsT)pfCX{Y7bN*r3gdn@HjK-E5i0c%Ye!nVv|{)^z-$ z8v~!L!-rmc)?Sw+S>wQS-IZ>fpEGtk+2-U#12~><2{6LRevBN3M!1#D+yv(3bHENC zse?KP3B-z514r-lU+blWZudy;F}=*|Yb(2@z1~$UuUG5MLb8cr!HB4;8W_;%Z1{kI z6Cq&&vo?>?_)ulquAz@rRA~!`>aYxbHB#qz`HMVTs{w4naHEAz$Hb`@q?M@3bBenC zB+uX0{eGRn0Y)n$-DwbZ!RGA~W8bj&`o}<}iF+(XF=~bhn^duiadA9DpgN%4EuF`W zm?*f%8dEk#_S4A_MMNOl;0<}WEGAX*n-IkoaDy@j4 zR48TA37m4Rn+^N+$ujiFN{eZT??~o{Upv8aa<#po>VajzLX8Ee0fjtUPwo>E7@t6( zB8A3oTymb)FvxxO0jtu%iPtoN0G}nWURCZy9VtAmo`s2OZ} zJ{O>C_>=nLV^Oq`P``Dy5_EFKLnR?&NH-s`2rM#0di|`98zQh%1&S#;gVi4?+^6CC zu{H=Q&Ac$)uD@#eX=fz}Ux7jQHL_k3J3dei+%5pWSOXt5F2w@mP-`Scy_6M8Y{;Vw zMx6HNfdb{5(E5~)#JozWyEYo%3X#9cwb~S+bpsE#NDQ3EgqiwQ zgh-pyBP8-&TmFvOPfKIUjuar3E9vgh%L{Auh|AT(gk}j?AgcrotCbvLjb3zW11KQ0 zjFB99y)*UbWYnIt=O%B2M|^Fn0s8^wwSS551!S@lw}+5Md7FsNaEt=J250b`Ik{zCk$GbBZxaA? zxzU1C4n7JB{y}a$Nm68Ic<{6KXPel&S)-+geoCu{T~Dj&;tlPf_VP<29$pkd!%2NG z)9SOauOkJFC~01{fCceHjll|VCaN|t^`NfG#!+vhH!mQ0O>Ch+Fm z*|ToJ@M`M73JO-aWQ$|hlFL*xP`KREx+@xwAe8@#;kC}Qy|ND=;8yrj%$qq*q}u|w z+gnas0C%haZ{8k0(=O+q^VDv4^_yR#hY6Oa8S{^M$h1zUI*+60%CE&D*vumbsnCSr zva=O}#3oP~Us)2ciXDj|CDau&LMYz$1c>U}D=`z-OM*XO+l0L~JEe%D)!k_$0bp-S z7K_1(#pLgs$y)mXbU3UAK zhVUi2*xl9mbZlf1Z?T~4-LRdQ zO2V?y8>ErTg1m6^Xl<$8+yR5#A=*!@LN^g#kl(T)>!vtoq#@}_yr3L#4!=QXBXD57 z&UiLfFo)eKT|vM;$y-7Je-`+nP^0q0T4weo1FEA%l@&`>FMlaocyLVL9R~8Mw#isZ z2a~c&G;TT74;XWkA?`^h%6o@OL-YysXpCvRfD%FYk5tvrJ1H3WZoG)4iM7>gj?)+h zTddePgAX9scc_jb;j(Q`CpCiS=f6w0tGXzwAF#GX#^)@2X%U_-v|ooOasvsw%Yj2B9}=U?uhiwR8XFR>8b*k7Dhey6V~BJ(?p@Kt1H=-SRunV3av zLK24I?dS6vnH2jpQfUqm5>8^Z8m7(OMZ7$?;oggEB2!#{G^L|y?zrtHKqH#8Z7@%w zs$%VX2aLU+S=p3gu^VT^hPR&t9~AOfr%*Kkbcz-iHKhW1P*iROY?`E2x9q<6s6Vv8 zEW3sIxESa_;053v@YdL)oY*A_?owH)hZ_qKYqf;sf;n8?6Zrp6p8S7ygER6eWZ>dN zX(F1jL}l(CbyTbsv9>L`{ZZ6{Ik6S5c%SjXd{HJ$UM=0ClGzl!^mMN$X;yr+Ijx!q zQC9MiY2y=VKA!@yZ@O?7*lSK{3b$nA+k7J=UgP~luxM8G3&aea?b?vy4Wy7ZB6aa? znQg)@)I(I#GO`WK5HUq7N>Z5I365ol9Qj_ACH{7X9^rFw2H&jA*q{Sq~MBOwX2})Kjn$Owo$ir(zg~gZ?on z73h-{%-|GnH@-Ex>HM(thFDlw_E)xPh2`ewcxfg0N&VGS1CmEP&t(p6EfBAEI=L7H@(gpRmkf93 z3b~j*BgN_jgnxp|{fspBlGgZodK-0)al_)kvJTE=Ji<(J?@f5H!&w(8{)paaV2l_x zE9%GvSBb?SzmTwmC=)F(VOrIi&Cs& zF$uz=%P}Kdl=RsA_1#4AmjF5^ilx*r`qRs8hadhZA~@umEN=o{6>scZ=vV$j?r6s~ zNZ;}blC|bpPv8nlubBQqOZ`rF^|E0*S2 z12QZi(pKiH5F%06uN~B_5uKZ&ITnmg`4A8&V94O~V?c9~01MS`cuW5W6RYxQn1ByL zq~p|Et56*`7&(DF-G(6&`WXiAt#`j)MOFYH6|$QIn{AVTgXhzZX1lOD)*OVIlTmzaO~2e*UL=zkqEN7T9%d%{ z^W0K@z?fNB#GBYCIgfbS0#>nGddxLubPu@3D50-~BLPY%p46I)QBVgc!+!J|6%AJT z9y>5y;v#KmgIbb#mN|+{_DiFzMBe^DG@jV9Nhk53XO)4gRB9*b7bk20;Ql&ZF8~_* zVlSx|D<&J`T`DIUg0P2PNU%t4(?tw{-LG3FQR^H@u`kjggm4uz59?^f>(j*MCl`fnW9r2I*VBxe9cH zr295<-N&79Oav82rNj;{;?I*zsE%6(OV;@t=Tl}c-c(t>* zit|b@)v`qW(-h;`OYqIo43r$5GNwFQz07U!)gIQz2=9ufs5rhXSYcsf4M4tr2WpwQ zc`Q~`%`QfnrTI`YK0qCUGl=RBF&O8 zgEV$kBcf?CVNOZvR(jo;MrRDa#)y=J%nQ%anNhb~VNN#vlF=)-q)dbukaqBzV-l=e z-#@^+@7#&^Y-%da0G3za(Dd?$8FDXY8XWpB;TY&4D zsMtWSenzyv1AUW&8lvl{r5-Yis*O@eNgQs@_s3Sl%@il<$AOokvI5ITO{E&)=<=}Z zCn9m%CBR1w-;hCF)J|Mj=)Q{==!JL>@OhQ@b^ZhXM7aMPH z?=mc2b9`x~6cflkeyWH_lFZag z(70|S&sJB1)d!FCVSo4tE9q2+Dai+S)$^7{WxRF{>kjq!o57srI6c~X2MOStB_~WU;>;5hwu0ev%sfM&}IHk zgvM-;_1P{NDFQL*enp?Ey5TqnM$48!S+UpS4JpPd_x0_bzl73dbroU5l-U8 zUzz5;{ojDWvv#A15?J&wV`_~pdhekPQ7;|w-X&Hk!=rW;zfeHI7*yY$Kh!EN{T3qs z9D%Yg-s=DTRUtw2i%iz!!(Mw3z_#7tGmDUftlapo_{&~<1es*s29LQkw{d$Gg*g6u zyDfHD6_A^vJQS_-ZkB5>$vaj;L%W%f%*}07j_BEN-xs#tS5|Jy0T&0Sq!3b^_<1ic zDrVK9J+kCE!r}j*u6^y+--ZykyeUD8LwJLSzpzFx;3H*QrwI7$8#$Uk)-gZlss9_r z@i$-`0jBCqH~#us4Q+lzqVnT<6&GXwzsQ`m@V4xgLc{&e54-2mAOCwiYz^SB_&FI% zrT)e{S82lNHeGXOI%~c#`76VklMnaEt&y(D(FESkwEn7l7*YsaS z{&lU!mKyBS89VsJ%QUoqd1;of2aM>89?=P51257`DZHnJJAWjnpW-eO-*LO%{@B0r z!mcR8uwo@1Yr?^Ce^ag3XitwKDQtazb2wy7c6uVQ$A5&CJ)zEC4|51h1aDy{DdZO@dDbIMcs z0#)-IX)wk5+K?gQ@aL|i;P+#t(<`5x%qeX?$0^f1Z*y+EncOVo(J-ZV-{kk{&rHsS zk6zTMLE6k5dx_xXK3(uKVOq5c*}b-hakj<5#gUKX7h{h4VF`QfCHYm*rAS#zA8hq& zc`b#2!i){4hW;@XUX_RN-}bdV#TA^s)+0?T8ja9cr;UK;9OQo%BKTd<>XobI;d7a{ zmUg+{MNESqf48`<49E^YHtGcLdDm;3tN}yBg7+iYo|Zw|ZX*hb1TNdi&cEQ})Ah>e zh2_4|V|AWMDr?$C2|Jg~uVIi=2tYPz4hvOhTY;X|a{|>g%Lt~1s`d6q%ilPsj9&1L zWB3reeOq&CbkLzbWqfFpEn8kUuWbcbfl+519$rb+6LjP(3=Uts?ZbQ4nf^yNhV$WQ zcp8Foigw<-CnyncIzL|DKRmP%7E2mCI(s?Qsyf@LSRH-Gb!{F(r+XWL!L2Yb&BF?) zB5}>jcdjrK$m!=>2rc*03LsDsBcr^!of03&d3l7)@v=<-CNg}IpuH_tP-gX>3ueJ6 zQUlcKP)5aX!3dINavV)^7@r5lGyB9CH%O+SiaT(PXZ>!4$*R3Cl*7Z z5#g6{$09fpV_+~iW*erE_7)p`D|~tQgQ8wPMQ(XxZ}6J3mM>1vssKoSLJ%U49`Eat zA$MJE3_Zz;mmi%xDcIl(^n#ByWwe8fE>ZaIRk2uVpbs|@?({YF`(S}&ibxI>fHH2a zP2X6PQ1{OY%)Sm!<2}k3lbIO>=c)8m*Aip&fakTHNe!LG(bn9dcY7KpU#sCG8;+(6 z#%e-~PbqxT!%3@J+5&Y6O39?>!iY#N(5XR7D)k1zUvQ^PJ;hP6V@tDJ?}n_Y{BSG* z>v4zIEAK9o=}v*0gYtdbN^4^s#4wu?IEH;S*Ef~ZaICIl=>qP)61BG*Wp!l9Ogbj>Ci+TD*^aeuD%MJ3%(xLu;j8#wQ{0b={kIS#dY zj4id6PQUOh1HVn`h9OkG?Cy4;n^2$|bVr!-!Jw}OkK)1LqH}X<_{vW;84ZmY%FaiI zbs*aI^`Fny2ei1OP0`0JCjx%Bc0UScvONBz?zL-MDtB|m!H`Vckk*bu4o{BnJe?wb z+j~xZ#!>V3(Cf7p-59bgK>#`ZA?;xvhU$i-tIar8qbu;H-|x>8E0Xl7s@|qO$V-W` zIttGV1D~2-Tf50?!~itou$=UE{(f3h<4A0RTZ2IonE)STjYp~A6o@hCg|50(^&&~T z;IXNucvJ;U?y zX@dOyzx&evzUs&T^HlPg1!rehj@$>#5l%3PNtJcBx5WAtJ}Nv#lpcKb?&YnBVe7TL zOtGS0*hn0G!qehE$pPGJBA*AIv(K9rWNKe7h?|_{Y=fne+6Z}~uRS@N?=5&T+)Oja zb3ia(4bF+ALg4rga7}i(3fVpn?nJIToXXi{Lkr==-e;>VZj`za-cA}Z>oCj9{9z4VvH~5BV+7i{|BIJwWcB zR6E5!(wy!dT*UGbJ)OwMefSq|fJ(ZU1v)4zRxyYh{)dYyMrhnBgO>v5=R{BcV|sRf zE_7&CbYkRLCtOd8n_Ys{#vy$deEPX@7r_<0yu8RGKeW1!lX~1eLI7xpqogZY8gT2_ zupTr=lQZ-NNRjLFPzucB=&Rn zu^v?j9xi69-H~V%ktiLoEuxA}aJoiq;$m{nz>b0~YC5|3Zhz9IoaGQt(nc5cStF0wIe&ENlal;o=*1+g`(c(6c>$KyUi zqoP9oz3dlI$bR(YeIiFSe2u6r4W{MHngwhurbo)k zQ#p4>DD!Unz&Gz0{28Di0o0P1nm*nB*o}Fq0A}%;2kZ&Q^fNA_@r!NJKIhn0IXN4n z48%MAo38-BKnLK(@Cb3^c10Wp;$pqangC+wLQ1RO6wgtr`3toTb8zCGsF(KIp zTLG@AA<_=!6$Ac=2k|M=$R_%CYDB&vI>c{f@ck9uId&UJcB>7I5wpoOXiBofP)cUNg(*QaIPZXLoql+dDR{3iAx zN2a@7wX&?32r29kFQ8v^5j`xaD!E>KNseAdB9=I8q?YKBlZlo--HN~O79In3Hn$quz1S7NqTF|Po+Dfp zxZZpxU-RxS8dt@eM=GkTi!kIq+$rY?TaXFBQbY<^Ec~MIL6CF9u>ka8`Qf;nVxMMF zAetjB&(g%Qmv$AUzo%UJQ1^NAX_qd2`wF<^teI9}euQ@oA` zA{l!Ut9l!nmpDPIIAwV9CAs!0yvw*^sQWKV#h==u5zp@wFs`Bfsq>r{&BtvyCGPvi zq0L(?4)`b~4ANS|ls!7dhloUT?j%N8K*C#|6j);h= zU8y29KI{QS;)2MuMN|!RM|j~bqnm@dg|oC0*;fcHktH%^l(z^L`V8gv0yq7r|L+yN z|1;Lel73?blXvr~m|5RN$g(*SCXe;Fi2?1uUDp46^nc`vmQ~S?lr1k9@9!-*Rzm+8 zanA<&V(?o;zmL`^M$TiEr!w*XBN%y_r^`R!J*!(|iu_4m28h+aeEeG)0$;s#3WIBO zuH5hqh{OhwhU+h}3}ZdbhMYpx+7 z*j50)6mF@9{c14}2a?ZSF6I;CF7%nf>Q`uqvf*q%&49)zzE^`S?~YeserYn{O%Y^7 z*&OUxrWBkn9SqhZA`=e&MD@^-I9i#<{&7F(<6FzzpM3k``=#~5NsTil%?=U#`BZ2C z=hkuSRA`n|=%1#7ZRnfvj6!?37r-D~@@A(ltN7;YZ*bAR8A$`(sSkD$rWQcPAQzvI znj}bTy9?{e6XSBBbegynF_ZbOeFu4C^=R^2t=*n>@S_2OyJW`P&hqXqc^d(rE{J8^ zy*hfKzu558Cm?WRtsyrL$p=cGne*>qEx^6n0N|vIFh> znp~!Z}vr9o@5V3OrU+-7qG za?(%**n^389uOvE?l!uK&ESavJphlWl-&v@yVzr#$>uvvj^{`&$=9xUwxUoJ3p{*Y z_7kqjc5!9D(MgPCxC?(O*mN1>!02*qKMzcBd$G}c|0!{Zsh1hEp&A{pD`;rRxNq(S z_uWN{G&Q%KjaNWD90@!7n?xCj1c5v>(Si6s+b&yrIe#)iNGEPn!D>?kZuw1}fU9S( znI{cn9#}T2v%T!~Q77Ay-l{HPD{iIfCs|l(&CSRzlGHqvp)UF|y8}2{qSZ9#7vCSv zQAB!v6>mbiv;#Wi6mJk%?@Mx+(A6FXzihcpc}!m|5-+EBANLP3cl3ohmsd4>FBoI3EH%)HD5wja$>bxU%p#2n?|S44tRwmr!@}r3TW-HIU5`$WIl8Oxar=^ zsMJ_VTrl*&ZK9CYjmf?$d?VZ$H5FBGX^B#W5Xozhb+BzJIfaB*NKs7QcaQK9k@#G* zB&4T2G!(z+_5Ra=+asZ&!DaigG;2yKv_1f!v)cNO%Z2&ecfhQvVY$|4d=T^^mQcRy z>QftZ)@QsPOSu6x+ph=N;`%pp>a-#TT#+)^nC4vbPMfS-L_HNGQRYK{jSmS9R*P^W z6%YkTHwPEG;+_*oCs#_%ErOI2;ZwW1p_X?Qx^KYOdsQ--r4z|Fl~Bx4W1GxZDEu#A z;6D8OhaW5KN_v_o#e9*HrZ4cQ2V&W4IH!b<0tvrPd^K)hSG$u>LpYVD`LWb%n;~(v zsJifA=L!r-?ED7O5|@;b^Ykn+IP4idDOsf(G<#rEQWSir@juE zL3ON)+HD&*nqxMLT5xJBc!T6Nt&-ufq3kw?s@#$r0qxh^<%urQV0feCmLpvCOZ$Cd zm!9;hTk%k^cOtS;k649O*0@rHOrf&Lpk-(+?bnI*hU%uHXtqg}AxBr#?2`yt%G+ue zScl?y@TL{}ea<{LCp{rLono&S1f+Z7YHS3V@boa6^NZXZbFxGD7a8}4( z@b7TqvHW3tmcPOiH)i#V%q{);%_D96ke}{;mq0j2Am|W(qO^SSb3N4x1f6rFpq3un zm^bBuRUbCqlJnrpBCo+8-8i(KIKx(C1|7pRd>IETOce=Hx;dw0xI4zar&-L?YS@HN z){3Y4)Qc!ww{uXg(nhK|I;h}tb~TBf!e|^SVpQ)?W3;H!Ik%a;z|rdoXbx52(&;Ka zXUJimn@#>={9Pf#5v-;%wrUBG&3l8tfX{xo)l?oar?6>x{6w7J1e?B`K+U(@{dpBh zP**bbHOBxIcaU{_4%Ioccu*JU{@7W-vp-iO+wmPq5u(%d(LQ3oKuP(gUWXkIqP}XN zq(DdZxf9--;jUY$qCu#enLk${h&un}V(6#>C9k+$4F0^8UC%^u7;eeck5XYIO>TFA zAQp5W6=WBZcLjrarghuvozPgN-l^>5Y*{w?MPWT(&7tILHyx1UChbLzhEI2J#GPSqZM!v@{#{Vc{MSBXzDExjsX(s*R5OKzKShOX$qH)qFV zjTV(=64}bcLpf>H*E{r6CutEyTWGl{CrRqe{kR}U> z$VJ0gH9u@O0!6M>Y_{_|Ho;CD)`^>&RHoZ~_(Mw@DQtj59r{CCCO|zzaeMcg>KDD7 zdZ#}A<s`WUm}12L_3y;9i5&@h`RSjDZl%rf=!pp%Ab?rIRCvYcF2fbu;HdxcP4 zn9i1K|E5L2?z6U(M}{az*tXF8(`rsq zf;xU)$>L57(RL9d)aDaSicxrFkH0Rpj3a`IH{(_L4`4@p&LbbnVLu)+80D zYJ{Cn&pHd=R%O&T4HEaPE*>RflJ=7E$k+-iC#+2l11$J4{w|I`fu z8tl-}CMOhiq*f$co``$!>YkdQTiS2f^L!u#o#aSs)NL3m*YA{L(4;iTfe`43m9mji zsnJt;RqdQNAXF3i(g_+^^y>qIF`ZFLahc$6opIINr!c|<)Dt@_yH&ec4QODyF9kEE zsuB_JH*JPj$`Or=SIxUmq|nKM)W98ha1WmW(iO8+yGs>=VSJ6$e4S>=NMxhb`t55= z+l7@@cFz$UOPC+(ad9b=hE~^}ZY!K%E!DzW&=;lCn^SvEc(+p}RKAIg_JBuvQJrisPi&ki z=*h5_+Erp$ggd8t`JL}7TK#6HRZq;WwVg7OcIc8fie(a!D7H!)QL=&$?2Vr@%^ zPotKLDG^niPp43xh_WW3b*I; zj}f!Yz|mt_ehtpq3x0d~n#n4X5HkKSKut4D3>>QBc(DhYu-KT7S@< zRUXkD+n*^f&$OH}nTy^9R%{IJ{aVLTp0@Xvq;+-hymB1CnbC}~EBE6N?wU!n8pp`e zH0ry=AGgKrcC3t#Fifb>rMH<#OkJrp?u$P^8^>^zM|Z{ZfqTOHAkSTYz{?MQPV}( z1pM-tWK)raq;48ZQ_>1EBARZk52Pyda?E8^Jvn0<+pmIUsgJDJRXCx%lB6ESs{SZ91oRJW{o)A$jx z- z{+qw}uWNqAw6^Cj#RU8iuvZ(GW4NS$Bo=Hc_9@+szCurm*BI`kg_+X2gEFU3)5)Od zC>nnvrGBkD97}d>UtE6e*$o&Xp%x~)F)NeIMhN7c2dZ=usu_R>HQQ;ml)Izm_Jx4Z z>35VSSL{d%ep*;N{*q_5oor4Ex|E3==U*r4a;OKu4co#|l1Ok-jeRlhM200ggVn&b zy$t$MSjL1WKeK9m!>s?6$aPH_@TK5a8wh%<*c>`VGs-qKed1)O$b67pmy)pjRTxI} zunxnfTS8aCWYENhve7Pz2i&tr>hF~M`gLM~!+Dc$v@8jl))9r=U^Poz1FpHce5s>f zYjHR3Gobt*Wz@p=ll%7TUiQCV_^mm7tS@XN>;=^@nSr#9!es*C}{xNUQ7bGH?a z{l5&bcs1vXDUCUPkH9TfL(ByaE!rNuP<3r&s^Nx|bmv>{m0|5KB|y++`=_cVJW_FO z?360>LpBO^P&pvT;&gV#Hm1t1yggqC`K>{MhYxnh+$%TrNF<&(Y5%g1yp-?ugRgzpgsJm7w#ULU6Hq}xk{+EbDDPI1Dd(!Ez@17O4 zwaU}Q%q>}+6js*F2qs@-B{$wz_Fikun8=doe(2McFWlS19QPT2nUa)TK#L(|A2q(u zJ6+_(=2?@Z^mINuQfdZ}mU@%Y+!w6qf-Nbn{B0`5i}u;>@gtyGZf73zX;kKNIXKhN zoT8fyOa4+t|6!nxhN_yJ({dw_V8ByJw5d=zu#3AzC5lwY>0%gu0YbL~Myf+(CNq@{ z8dA0%lHVX;8}7TUxq8pl5FD0mI+#}7U21YM!Xe_7C-)7wPDM{UdVDz2$uGqTraSCVKiLLWGm4{#q6&00Im3f`Y8fNjlN?2Gpwv}v}lAYV8y4W#D zv59}83s~3IOnX&fw#xC!^`Wm#`C?Z2rg0(R0<-Z-V!cnJ);*{fz)J?%G#4(HHklr8 z^_Ey9;k7|%sU833PBE!+H1`9PW9ZybRHty&Zi1eiX+h<9q}R-pWTRm2_RS5Wco<+c zUOHZ=Cs?kHpBH22G^?qUm$O`)*AJ_rGRQ)HXp*!zznsHT%ZHLjXD5&FjK{2nfuCQx zHZ*+w)Sh0CPVy*ue{E{Mm9LT$vl*!<{c;t1X6Yu8gI<5^QwyQLqQRT#*`TG+J^Fk_)#5*E?BLN*e-t z_fz62X*1ZBynTp3>sk(0=UQwTfvmM_BoM6uB85I*|NYBK+xlsBQC@^zq zHZaXUJTX)WTHt10ui=ruCsbtu(Y8jvG4Gs2#~GvlN`A3dZbjO{avh#;Y(4&48lvVr zt^!P0H&c+wo&YP)L`Jw*FTw6w7I<^pWo~fS4DFKML5&6;PvL}JO$Th`1r^SJ1+1Pg z2Ow~w1f#&)s8G%2h^j-3%%%Jhlk4mwIbLPf;t=YWj%~p2)$;{^G>3_#)y%I>@sJvQ zsZp~I)3Bi$!KW2-P#``=`!Zi9hE4}1IVV9ACxG%GBc7FB*1XcfNSS651>3W0A!H;l zIfP2>F_tQyY?~EnO7?L!5lT%T6Z?Ia(EA73;~}D>#&LbmV8_RTmfKy&iOXC6_Lj7g zvd|7^pE6IEaZpZ)61mSM*EfRufWZsG!tV{=Dc0^=-PTkUm;nnI(&d~JbEoGMJ$>;O z`xEu2ON7wP)zpKQ7Q1TR-MO3Vt_y1rACOm+ZzQROQ;;L9CA;X}ruZQM+0mgfV#s85 z7S~m?$QxRAJ^y&S>i*d>na$hfk=kYMe!SIl{yM$s^{%PI}}k?$T^lNt=v zeY7r^8CiR@nt0P3k`@~nKxpmULqnxrA~v&E>dK_5p_fmxP8m&+z5}@#|0)abvq=N@ zG+#{$>+U$*kGzbN6*fiHHbJzjtc)|UTo%=vEL;RvkBARHEnVF6vK~wY zX6iEr(s*&ebRS-!>UG?`14l2HJ05#Lq>tEAFLPIDUy2S){2n!-w7Vw;EP6=!$RB+<6oGWKoWs&(Hrhs>ZecBO z8dULG)j#6m^D2X%ELD!2<%;7ES&sv$QLjUFqFxmkJl8$6`;p)kPE!x*`};Uv4l}^S z?OA5T5F3<@L3}B)L{-Tt;(+cJx#0#W-FqM2rg5U>(5O**Khu!cx#jV0MMo2`B!khM zg~YhZeC{Vd0Fwz#pgU^JF$y{X5Ee*y(Dmq`f7_+0G5>*)-=(c5sU-RwFszM%qY=vM zu9?jcJZ{?>y!#sQBR>Hdy^ixXjV4qF~ zF-dy3{CCIOsD^3|{-*z~1)%ug@+jF%50?|9%}1CwPUePlx@?5h1dKY!JfU4*U*9f1 z;LeYFxC--GlLnn$9E^fjyv`o0Je$j#65MWb+gzyfRRav-4h{@FFj+I92X-B3EEJ^@ zWbh3}#V|Th1(&@t3CUt+3cHdnwf;ian)nQsp_2xRXRPK6SRU=H$;2>As{2>&9z@so zD50{^7xChk;o{0WTdw=P{o^6QL-9Ps!jJYUWgY> zWUFS55kyRW=-V@=q8oO|(IVfgyvX%(Kbb+>+3XCu!)WBlwy;?O=Ff(P64EwZMYY{W z@QxM_ZKw%ZmVosq^Whq7D+`~H%Ko>Y+3(<4?ho7%Vr9T%XLkq~`f)Kd1i{_4Q^gqg z&4s<2Rg=?cegnN82NgYT+V;Y#X)uig$mx@?bDyc>sA}ERuHW$;qzch_i-1tK~b1`Ut2Zilr7TfDF&VgP?39CSG2Vz&*G=$KnPe7L|ksHnY*(p;wU4X4juCjCeP zByPPZ?hpau*NE%@&@6Rmt2!<|j5$a#m*M5BxjUt~dW4X!&JOGnfwI z-LH}Jl|Pm}zJtljxHW9;A0m<41>k+m4rWEccHzm{7w)^ao0!wJIcT*U%CH>Ma`*-n zoy?Nd;nYn9Je_5>i9d8~U%hzloN~#(bMs|f=-Ig|27}41@wAbAuVt_07l!LQKV02q zEx*)ANDVS`HTup~9kf~_O;@Z8)M=QsdgR~j&cV5#712uYv`^i-^tdu0MeFOc?-Rrb?+LHQ%t5gZw7_gsE! zs+?c6jie?V|DQBWtqMFW3~9~e=cjZ_@e<1Fzf0w}tLD2r;&ivp=m_Ut#;G;zuu`k_+vg`cH-E38oxffeW$Aeb9H)-MJd~i&SCI}21`%OO0R5g0q-kSZ+h1WhO!5us2rxu z0A7aQiY|GIu@y1Q#716qW>W7=ena?9^;02=PVqt>^CtICyw;hVUvMGCf(fM1`+n_y zY$!6I#0b_%4j9x`F4olY}qmX#4O)jWo5OSrga(Q9boREC^5q2K2lEPz**S?Nkvmc zR-|mu72v#Tu2|GpV<~V{hq660dl`cmC_WJcr6ytTI_`slMzu?6RSzl#W}9i}W~HVc zIcC{29L8(pt$a)b${taA7cU~GoWbWD20vl(-#V^qS9U2wMcqC3tvZ*SQxC+whOMHC z0)A+ec~9|v6`V(Pem1iF$3QL@z46RLx|AO4y6SW{-jo5{ADi)Tn8vA_GpR=SjXU>C!M!8lkpa_hD4zqEVvgz z314W%(}HFmmM~u=(|4oI_5S>~=+Ef-d|}$>QxqR+8~=+3{rwLQI$06-ySraS#lI?d zFYwj-@|S%D*shxK#5u9&-)Y@2ogAZ}fGbfR)4BUVO}+dMRJ+vg@1*5gru}qMY1u?8 z)M7V$rr`B+n3*SXr0z|qCoT{}gYk<*Z`9uv-h4@DF-fpWZo;2q-JMvVd*S$Xu1`ZG zx*h%2mT$i&EysAsN^ze@eYTERxjG@Ju|LygaYkQV2GT33Uz)S#%f`TBCkA63@|BwV$qG+*F~sY6#eFnKq&=lL8k;l7s(4q8g;e!52e4K(hEM zd!wDhuP_DPn(L7@{2_w=$I8$__+3*sh(B5<6Abld$5sW3lKqZ5h+kj2g|JbqY4trKZ_ z)42YUi9oIZj;pe1v3T-+}yS z@*F8T@sZ=%gk%sJ>)?h0 zXb*+*CMoxx`JwF{&+245^;~{bj+Nf5eoUH2d`e2u)vR{!U6KX8Aq96EQ%(x*Q6%w= zlh%@MtrX>DQ@(f4YC=qt%49thpIu+RT5z`6tA^KNLME`6jTg8#HBTU`0<^Ems4TkA z84MaL@_R4au60K7(?INk?@wltXm|j&910nUVlf@X19GEpx&JS`EKs1qN9o-_s*mb>j+d6EWh3zi%67S5v*}P)Aywow=SVf4&)*f zVBJh9RDS<;yl;^5k1eYv`e33-R0oKLg@oaa1Z4(pA$Je$H046E7H1^GMYPwjO1rx~ zvp>~aW_`41%VkF-mVcIfdb;6fDL~YZ8`w#QL&xN8H|y+K#5#`S6CwP1c#9ajP(347xdD?h`Nw_azEva1vB{F&0^55B}y${~P05 z;0-t1rpqj$0ZbkSIww1~(@y-N*QK`C3Zkx@qhpo(`Obs@E!`(yUo>`yjc`mOT54*= zuU}yWNWE#EX|o^VhccdMx=;7NIPGr_=B3n7<|mr`aKd%Asi;7U}9oo zjfqvb=M*8!5Qg4&?O}TM>h)A)vG%kwCU+48+*}sqt^l~jg&x9g?k0jAB<d>fWg z{BjZD^4z07+O|+1pyT51(%xec5-yS8|6u-i{7Gb+{WJp244U?(i;_ab$?IRQ>mki^ zr-e_TQ@V`=R&2pkR(7h!7m=urC;BOQT6!45;Qox?%)*8Lx_~M>s$TbP_zjU$?j5|d zvaar-F(C?jJwJQVr7O%O*DBNH{NaaZiOnoa*leT=(TU~%#n@NJMb&K$3sQm#Dxn}H z-H6huNK1DkA=2F?2q@hkAe}>vl)w;!A|Xh}5JO3K4mH4hXT10QzI&hNk@x#=esj*= zd-Yy>t+m&2r&Y`{^hwm4<`}pyVtu~3eYr*$xS^Q6=TWeC;7uXEAO-A4|HP|`WQjM~ z3pg3IqASx8L07n`cr*jmzkPcD4DAmzyz;wYSG|0w5h!sjtX@_5;xd*052XApwF646 z1T+&=2hLn*!|T|LKQc060G70b|3Nuhd6|forAJI2$Zor7c4vg0UA7q~o+Gv(gs=zA zh{@Z{d;X332KB^&Y4}Nr3Sn|i_|Qam`(Vq;`a3OB4!6C$ywbQ|1xZJdyS4oc3;R=H zm$m}U=im%jV+4(12(#KI&2;*?)U>#_Y$L2W@1C2(=4fuEKhza!bbjhv-Y;7p{;vMq z5S9qdhkue18lS#Fap}CIm|g(uX#_2B9(uI1Lk5nQP_KRLBYcjxN58(qt$p1~9v3#^ z5^(#Y;6GExKrE1(m&0)7cA65WF=0ln21)Up_@yw1;i(NGYHRpcSU=(ttoO5;r7Irz4R6i7QS@BVd?5yRk`gWKd zlvdZ z<^~Quj@j+IxYVOOU*hC|JE}xfzqT667^3jnI6Ov?6pIB+7*Evdi9(mu71NKT9Kz~^ zp+dUC@i7}asO8ziW$hhUKhIq^OY^te)eF?C6Ycs4>Cbf=^KHhOC5q{+wT_av=9Sva@Sv%Lt4 zSj4KNh4*<7K>C+irlONS{z*giYVhOIa+33ZNG?*){TwGbP0j`0|%gb9g zeP{Y-X$Cw6Y%CY& zTr`k=JXwE7Dgu1!8pSjT?5~YXN`uEx_xIQ_>_@JPW`3K5!&}BmBT&uLRfuWGyR_p&?}XXqjWkn}F(8mdWu@r`-0;kVsOam)_i~qan@701@eXL)1fE zmr1NT2fAQ4%pYl$5k&JZD0=ta47Z48f~Tcq?Yaf5T=T z5}*9;CY83;^d?gx6e@2vWSJHfRXfy?b{f?1Wv9{aI*Fc`aA%NAr`_h!xn!H0IjTnw z;`q)$ZDy}ZJ|dOMVNWNcTY=SWx4ySA%5F0oYjoSV{8JQm6_@-I%R-yatVvL75C_?6 z9Up7riXi3SoD<<%j#C)l2Mgxy~Pv0nL?FKrR5oSZH7 zI9~Ywym1jpwBFktdgG12SAFw_YZPh7ytba`NbsFK(@!S7Pki*f!(~D;=Vk3BVuj9a zW%X$f7Jl{51n=es`vi-NLs)m%cB-D;MFdK@-&=V$2O*x3+Xzi87Dv5q0{W{5EYTKR zY(a4+FPDi)#5~_`pPL4;XB8Ma1=xEmbrqI-dk$Yr?j3+v+l-q_pa#c*uep#}km+qo zU$cZ|d;D`J;Oj`JBF0+~$u;97e@EVwsRQZh(YmAgz-NRO6PGXKjIPVE4(CQOlx z&GV#$JyBa*OCYg)2C0dAS7UBbK!(R^P}j}l5W2Rem>TY)tdv;-OYzmGfRQkpA$BD` z%Z4RWCX~}7smxy$h0Ge1#JQwc=>_q+SHue#_FIV0S+suFrqojMkD~J7RL(QV=3+2n zc;ei|#D>qWLmKz=U`xUj%_B}wfx>P#FY2*L>op5Y zOXGtD^S6KU6cCJa*s*HG5f@i+f95ejTWH z%Phnoon{u?lDT|PheS`0nHMggE$_1~{%ly7|z4esR z@mFD#BK0gf3zIc9xW_cx1 zFW<~%ozIB%PNrhCEB^=iijS_3q4e;agg9kmy$>16h2%}D$3J?i=tIMX8q z>QbDIM$-6QhGkAJ?#l^rdPw8G6LfFf$$oY;!=s}P?pN~X{)aiEFx@KUMs+(9yP zx(Z2`ic?_PJSTPmL3_j+)<(mwl3AES&&YvX0V_Lu4UBWi0qy{P7jtUcudJ<9nRvpzLeJ{SO zLYYq3;8DM3_*mCTa?ZyN+;>^mO(%oDoO5nl^pJnK;W=?B(_<+zZ*ixcF}g-#>Lr8D zwN9gud#qIa}!PU!xe6!9yNZzc5yyP$QPF9oqzVSzs#~LPJ!&8c8*!Ye} zxl^W&jpVU!)||&;bpMX?p15}47cjh0|C@bp8t<0ShnN^`X=&-k4TFEK?gvcqYT8>e z31>~i&DBlKD4Gn*R%7|$U*gq7fhhH6lo$2%1K}4NmKRD-V7fG&3a?KM`Z+F{^oKZA zhEmQ83gKGdn4p!gfV4-=y2JvF0aaRkA7GYHKLrQh?IYfG3k5hfn|1KEYutwpS=EIl zh;nmY|GL2iH|2Qya)d9{)fVcxPKUwYMjKeE1+^ax zFRx+vj3(|3L>6q=ab*hKa@Kv;DPy%=rmKjNY39TKW?^2;$mDyw8u>dBj`zO^@=0o& zTva>c9?x8RN^6!W&D#+iy`?z=Y1_BQhIUpQt#D9i8<+^=MB%glu*{oGKej7prUDh! zv0FiwarD(&rU49h3j+;ttd zvqonX%R5581+^#dPuacS?i^0~@&(B1)@<)`TlA+DsvbQtxqf&g$|`73fGZM-Nuv1@ zcHN%xxpp)O+bpKqMdP8N0nkUem58$w;8-7a#Qwp7J}^l@K4lcV?TfG#*K_P_JR!&{qT_#6RU83hxYbhlD{U))RH+mbu6t9##cxUsi*y z_A;nflV*KwJ?saM{r6MOE^8{!E~}s;o8Uvu*;Vcf=jmq?xt@^IZB$_vhurXHBrXCx z{A)|T`RH=ru32;K@+Nhm&x+#Uv8A8nMu0Q8t~1W?rg;ulr@PPog`VKCfAgMR1DQTK zFEYS;ijWRiTO?oTTxTqxlUAJ)@NKvYwNJ;xb;kHX@vLq@xnAwk*-+*S!qrFu$}s zzVGN%zRs6LOhQ}&HwfqBsJn<^f8-YYsvo#l}H5q+7v*c`8U| zUva=u-<{Lnv8)yW;Uh~fE*l9lJ%IbGuW$kv3WRh%KkwluneepTY!6|*p%p`&GGAU+ z=QOC++)_7^JT;ZWZ~)Ws8I%v8nTJOiF?kq#2FmVSOK#j_WM*004^ai*!wLP<>Dxdn zu<#~*h{2e9}y`ET*zx^%1X^SMu$Z<@F^^L2p4F z2B&WxPe+fo!!$zu1*)Z$%K~%-BQQPu!tNdBg|KK<*RZgGKucX;yYEw!YBuiIu4ixA z*0AKcWpv%=YFqXkzP{bsF<}j=T^5bCrK9FR&A+q|t28QgPR7aHXIK|j?!SfQJ9$_q z)U$MewMvAE_K?cZ_eXecWwO404(d;7Yr9n~8b@0Lp34oBKAD=1FR*S>b4KE0Wox>bvzHzN(J z=WgEo=Yx>_o50UTImv@V3ds|{mc45Eo~3Z;8om^9OHt?h%$Ab}T0&`<>T< zFXx-nvJR!-zizb^wXR4-f@DO7Ru>sJHkOQfLn$%fKq3Hw+-`K6YsI)l{#3Tv=Qz24 zWuurC2Aq3gQQM z@ZJUopApYA&bB`trOR3)SwDYHd}rqL&~Tv3LRCXcYkgQ*T+`3bZ-r3xI=UYFNW{5k ztYP*+kc{Zz`?psAoStZvA_#ubPCtpSj1Y2JPF%MZSIvN)1yLa9@^JiYV=j)~;f#KI zO_4yo9W!6$3*>GXZ*Q+KCVTk$|Csa&fPrJuHYuJ(ZNoNWk@!{b z%}tW-^2EZ4rXRWI&~9h^QM~^Zr%%9s-W(fOKpRq=^4vQFVNS3deFd6$G$xpVH|gu5 zGo<3ZPrU>Gm&x1EnT3>4^Jn=_5SHEoxWj*}Zv1^N!E^f|!--tAZF`UbDwX+TD(H90 zBl|r;Fm^%=CqbLfPO}G47?4Tcuu;)iQ8dq^brp58)dRUx{E2h9Lqd%*FJipaBnp^t zehOWL;x`NO<5n#DV`Aip(MDeL)?P!;BYbVpr36&WSxZiG zN8^NKJAC;Hq~|8@0=AO&i*JUHTL5TCVd9|X)FcB|+s`zLeVatoy+W&Bq509*h_rpo zrR8Ot=VJ%mvJgGmeEEyv1SDdT3BxVR@17fi2@z2jZGF;gJa){~?ty|0=60shEuA%H zX>Q;OdRV{NA>|kNW4$1t>l8*nNW`#Qmvjj`NQSP+(rWwqS6dp?<1L+(QbgkzGndt8 z9`yxI)UH8(cR1IH*QxMoS-YNHfDn-gWQW3d>=W|W^}s51>ecqFrn~_EjXH0qE<10} zF3q1W_HA|MKUX`%Bmc}$_y^2DhE3bo(=EZ%mCwsrE7UiG**Sptvic3`>>96$686;c zbC`mL8Ag6du3Pt%sH_Xqh?QcWwC;MWmJ;H30%JVj1*a8@5TEKWDJRf0DgPYE+B|(? z{BCQa4ZFR>^%ys5w27hmsjtLAkSzl?g=R~k3X*MOF@mzNL4lN&p@M=Zo|W*;mMV+b zX^)PTa zKM%9o7Eu;y)R(2=?(zq-z0I|N%P}q7g`E{`gFKsE&FVg%sebIf11_9s=EA{L=Y=Ap zE(bH&P8Z8YZ;kHebB$NGxs_(rvK84r6c^1m9v3i>lP53U(Vey*u;wS`yh7VrlSn=j zC(KQ{O*aJ__U^UK{8UrN_26#1Z&5at%i%@ni4k71uck=~hTQ{hsvb&BUCQR@@gr|6 z?SO|q9;T+HifNUI6!WHX6?f>B9#Gd^B(m1_1j$@5y*%Cy@HbC!Ua>6ssfm|N*NCsd z>sj(2iHn`n4y5+_!FXINO-F#636j&BaB%iwmEvs1&ttrq@bEZ5dmY>EZv5GL06jvh zebCwuxCDXliAWnAg_Zs~WVv{U9hf+v?Xn%EwrE*&IHIgzM`d}KCGMqf0~9sPhE6nt zrGaF~Bx+>G5S+wt7E$|!ERiE8B^j=5snAt?k)QcQhbY4PzwQ6GP6o#~#sN zXJqz~OY=R7VGCQ+?as8FkmoJXtCA+Kvn_ai%R`XcD!i0cRq0uFruM{)wEv0~hg{f! zk~&W38|l8DNduh{7g-1jQ zIP_3&`fB@>OHZQi=RhA!&z2&015qQ!=bL61!%!%A=hh7os;p1hMJ))a9eO!z@56Fs z#52Pvi^mfMpJ&dF_)#xB?)RQ7`sp<_j6LmN?Iq(_HP@91K#qG}{CF!Nd~DA;aC{t) zzXdHFy$Dp8LE;Mc)C@;2|5O-0dDh%ybKHDFeYOpbUT+2EY{rdz3zz)!re=>7So#H5 z%{-Fes9r+e45S*uF|~Xk#X4mAT=P9)N!7aNZeb}|IcNd%E0xq=gT74V^0sFB+fVfF zh2jRuY_s#MVMGo0O!~m90)jB|=jj%vIlzb1B5*MR%@qjb8%92)mDMpG>3Xxg`@!f# zBx)(4 zyPHVWd+yN=pVU8QoG#oEO)kSYdnp_(*fRlWy*GC?J<$ys7Nl5GzAec;$j@ z0mqMOgIo!gY3?4L@E|7pSAxdjwmx|hAeQ0%2g+}t89*#nV|^r5zRMVlSvqD==3F`# zsqCkhp-+=9h%?NZI12Ab5+t8H;`81x+hP~Z$)P)|-OjHtAkaz#v9587dL>MyGne&> zN#=yx-a9HSbwOYjv?scD25VgSp6nbhbFr0y$(xVHs5dop+GC=QSdqDtPhHhtq_<$& z@l`cMf=sI7zv^czH$UwbyQ-SW(d@=JmF(BMcZbS*#-$kZnFk>=wWhV*Q}z&b)%>K> zWHn-)S`LBM4(?D3XyVRMkj$F+nPvG;qud`>R^$o9Tcb7=nxObLjz{uez8khkX+KJ5 z!t+@PgLii5 z1|Vw>rxXs)X4Et_5=+fHaeDP?MpR9Z4YF`eol_jt_L66C5=Zy53z%9}-{!o>vSxy+P%nVE)rBy70 zx=3W8lv>ySVmnP8u%Ohgi|Pko&U(A`@3_v{O|`vgSEcYTZV}~dN$?s0t@}ZZknO0! z{s6Bo8jR5n5VDPo%X+~Hy+(D_0L#c|PFTCu~d==wm7qnmPJd$(hc zQ2FxxjL>e2n7}T@g~<|i&9Psp@)b>P0x6VQ$GBa3vap}aBnOX_TeKGIdh@Yqc{Nbf zI!Q(I;rPT*C0AI0NV*M&@2^!_44pkCIg#U>CIIT4%It_u`&x3YjRPJ zxo~n?FnGt-Jod2qJpD$rhFu>-8n;)cWQVVDG-GB{V$fP`5mj&(7ogq%L`OnKjsC}K6(VD=L)v3g#^OO zO?(HV7Qo`e$Nt_gl`qPk4yftWllD{O2&bJb{-GM`_g-U992i^t@q1`!=o29y;ADEP zxes$^I4)XPgC5WLK!C%8P|L)R(X=$yQJs-TJUksn85;IZQ#)W)PtQ3FD6h&273Wm` z17+fk_xf6_U$ucSoCy&f{nVm|02}N`pG|&$4Tybimah%52!5PwgDGYgT3nZ?(ds?1H4YOZ4 z;vK1N(n*nzjLBzNE7(-`I)S&?3S$QHT>ycaUw`u|Y~2W)vb4ovy2 zKK(eaj;>lUa&aFrrg)DK3t9`+7vqSZF5W}r)5NFS zD5vd6U8w95T>+wNV`~9p>r;+bWO$Dn-rW6TUE;q^-b@6+e3sM*bDaMrR4~9i@F{S_ zGer4HyaTB?1|CZ6Yk?bUL}R^c=o7At5!e$2E?l zQW@6J5?;~E%vp%?)xSQ_55_70Sfq*ENleCDxAQrlq+0aIuf{X`jW3_1yKesjRs*{<{q<3saHHM=4 zA$+53(JBz(38Y4-4IBijM?Znd9K|QE@u>N)0aiydyr)}%u4XUa>wZ#b#pcE{{iN`I16F-adZV&mD2NH9Z zcwd6F{ys47?nf!O`$g$kaVU0tW^3EcKSvLDMl5&yj^wCz-~vWlsP$X$0TU>&b(C~< z^%$IIqwVu)WfOY#;r2rzPGpMg25SqmpHml&;ZFzGjZlcY`&<&LXC~vCwB~dKHOitY zAvicTn0^!EIvyTAYyIZ0wPI4QL_|%_zes{&AUy$oZ@+N`#(MY6{ z(l`@A7E&VA&^6;F19#1Vpzq0Npi)yoQu1A;C@t+X=@=@?_}Lp<_}>WrMrZ-~xh|%9 zYcjvs=>1o1^Wddr;hi{sf|4duP3(xJ`S;ZE{4nZ?<>?>t16XNkX^Zd0&vW(=<7P3~ zTVh|E91RUK;BGL(8A5zS^B21*#+;J=z5;MJ1;KI;BrUqOEUtiHCU%9)VW&QC7IHe>D%5VNP2zv{f86Zv7w8CFi@$@9=&3KCnDZ3$;)7o`Nz3!LAj-7b^Oatc3 z&x7rO(Gv#h>U1cCF^a)5%kK-^_n>!X)&XW5(EQ15OgDEnB}aeV-1w^)=l~h&Cpx=B z;qvIOyWumE5Ak?Od}^W;Iz(^SRGR!#eRtdM>NW}VkAE6)w{%sg3tt`EvGb^mme9t8 z$h2j6%&@R&mF-ehSq(ETNVbLDWAd)Uc3}`Ikt7V^;~#GP<-3{ipxpbxC?Bc9yCNIO zbH|3GeH#WV&-f3J(3Xgp6l--%tvh%zZ?{jKcAAg7!Tt!gg*IQq@C;#(ZbklS`h%7J zl%GF;?h^lmHA>f=*F-_j?HlZeu7RvksiC=>9^_Dy$~bLxdTPD>}4v*t5sI_R$2B_ zdHo7wq8Aj@FHu5|X3EMjR+;==;7Z&z2g_w7nMY?&(>Y_Lxlqnn!l$#fW)pY#qjypZT2(DR8-^ zN|XpVO01ijF_iP3Y6R?N+n&D2|MhB*F?M}qC*>W9Tl`aQ#rR43P?0IzlCAZ-)?sl5 z2u$ilkkwfz5bkoFQJ= zF4SCOv1bTTx_BCru!OWe%g2y&Qu8d<%EdA7dW!)$mJHb}VNYBg(i0S&)>qUb`keSS z`ms3bw14W>V_hAcH#fNoeIA9ZAICu7Q2JbKA)Rv;K`&H4oe7RA?5!LuO-P-tukdLX zMunxg^&Bj=tx(4mH&Q1*p2|{}9I%V~{z;CwcVwZ3^LoUQ<# zS*P19n+Sh6%20XY;^q8R&FbaPIIAaB1*Qk`x>GOk(}fV>dNW#5u{}a=b;lk zg~%SNhQM1e_s#KFBPC}2bjq4^BeR9xob-O5{Efe4JW*c9U!0Fv?)vtwT!yeoX~x?$ z8|VdIQ#pSQ%IYHMF^UZrhtt$S^D~334E@hHWt5ap^TyB`K^|G0`;CXcPw#jembiXU5ob18JQmyFxEWNt@ zzqztK1T{d8$XArz7-O11Qrv24+IdKhDdh6H2m&KOn;NK>j=^23wCSLbqT`NKz znmMzfPw7{I*mM|eAx{=!EJjN-WinhOM7^euF77^fVAYKkzwMR3VmH(rHOcACEG(Lz z;gyoC>|SJmbZIbsuCRmUwMeB4@oF|Va0-E^UXV4cOdy=wGwQnU8-|6tNoxxEzqOk= zQ{}-DA{!7Dr}AE<4GR;z+jYD%>u~tOd%I!9yepPABkN62c`2y~vy4P!5DBH&PKL#FHISwf8Rg+`7Ik8e(gkSWElP-4{T@Sy_^T(F!Ql07fmPA{3??qIG<$& z{q%8AljqtCGt~6}WOP&AKHm>5zbLVmEsa#w25*u`8YkHIEHP59B!Me)=m)Es zY)cJG=U;LgItp+5h08~ca=7gHm1UL1oPz5_);eEmZCLA2O>3@otwhgUlnJQQh>00> z#83xlV9ND_)KpYVOo=a~wIp?FZ`&0R2r)9LCNGcPr@jrV@jseS$#WMteqz%5%~Ucl zF_Ab=3xPn)Oh(;*{CsF=s0rL#A1}bJEzKZRcbit1ZVI+i+R!aupb-_HN~uZP4jBmP zS&Ea!Iq-qSe}66Hacn!gTj@qPmPA>^f3z%q`o$EM8c-I zFH?#v`T(s8-hs2iW)VR@Re(x%lWeENJto;nmi;w-x&8JjwNLfMyt5<$>Vx7jmEEfWoU<4YFAY*T{_Cq75h4S1v zX%kfmd|CFmUY=?#&vYqqW9P2d+6}?|dwF%$e_;oWi64do<`26Ihz|KLprdQ#V zP$Z@Bm#K@K87uk-J%cTJH+H=GCIl4vkxUW`+SDkqKGn-*sT9k8b{V zMQ;v@9>enr8N!majlA0RjV_E}&9Pr>txi??8tF9HX1Z1yUgf1B+pA}m8)ud;&UK(~ zPGjqP@02|dybKU%hxjNIjCYD|hJm2htu zF-SX176g@NHIpprCf%szi-fI9w@@BWYZ20;(r z^45B%g(eFd;YDRrpnLHQmym9Lf-G0dNvsd}fpy6CS)Vc{_9hh*|I z%lL@E`8dKji`nkv1~qTpw{N_u5o(cbz3kc4<^w{i(X=K-~^mirc~CKp7RhM~Pwyg&m-ujnI%yFaTk7n}(O_lkm#JJX&X zuHi1Vo%`~tPr8P&@}51DYZB}H8sQ(a2K8~@nsgf>a!Zry&+yotdo~EYj(CS>m*S_e zog6`Rzc}=BI@5|_2HXD9>|!8h(zI%6uJ=t6tr0mbsT}Xe`u3T;l0zEcJZ)nk=IajS zDdYKftdZ0ElO+$FFA{A}m$#-Yw&{kK)Omvqn<1@T(vz zm&XbqYERHhjUxZYJLC<1bJhEUES4o(%3WkIC{2+$tfw;uUQscX7NTau{#V~;Tq+xJ zFEaU3=J0uyLN!hUl`B6!&u3At0Kf??QO(SK(Vv%_a(RKIpw`;h%F&bV6_NRs%o*E+ z9V5FCIl*J65&u-fHaWzBoj06&tLCvNalw-0FJ`k7ke=>&x6csw*3(q(viHN|QEz`> z^YHLQ=5K#~B{TE$$?Ko7GSq$}Ck?z_d%|2su3v6y2Q1l+rBXg%Sa~U*i0$Rjo^;JJi%*?*EsfKu63u2fKWMc z{3HEoUn?p}@Cob(0kvrH7&z{rh*N{Dqu)?@ZqP$YSEWXY5{#CFPrdu2E|xZqkRS3 zU$y5butCTt$&Q{y|MsHsUk|;Tv_uxJ!jD|cW5#aEbL18*NIV&2Su=#QNFjLEOv%#k zs9@H?ofR50Z$g-osQR|c>t^tyV$KG3m|QG>C~$GaBNS#-j5DVgyK8J5;t1Z?H3crj ztBu~CKFHq66}ya5P@}#m5xZ@sl&}}JVbM&!ygu6T(CfsyAGepIv(8rqeq=CqhZ`)R zrIma>PZ$tOD;erZ01_X8&WBR4$BBf8ud_bL^9DYAC=<1j(yf%l{L!&DgC}p4H@5!ga&YW}g zpkO77;1P_oSlrRQj>?s3F1G$gg`?^^&&t&sM`#Sv#UtT#Qqs+A#3h#OBO57J8HY)V&b`A~-CMkBs#DCWth5gUG?a>;SzC{Yk&t;G zNPI7XHpqxYW->s5ukG!m7Z*yq$*DDSE{Kv@kF&>!>^9LGI=+VsRU=>RHIdzD3m4y^ zdvY0#cRjpVD7aIJ>IZU_pwM6|pUukH@x4!a(rBL^<$eL}RecJx-*`5~;?9 z1tC^RNMQg~$jLCp96lJd_RpPRh&j}KV%bkLQ7bFvkors3fu~|YkqQJ8CgVz!X4n53 z3<1DX!r;|>-$%P97i-YrD!a_iSnz*w`pL$v*<1Ovw&xeak4@p74QDRlzk`7B1i$`~ z0c&8si|ie1BH@n8CuS6?jDJOFvmrv|du4v- zA=jKUKil=t3YT*VjB8h|-%96bjwjqtdNuR$1oT=NIC*#ONRA7hDM~E;H9r5JC7gj@ zFgaXkYNx*m{aqjaL!#d1VUG~GyNWv>3cu~XQt~LVfRoUzSDjZ?ssJ8`MCsd}Eylp_ zjaPQTk(m2%O>&&F(&TSP@c*Kc#EtsMJDaP)-_x(2EnAa@^?85LNTiH0Rx-Qp(DotF z8?p=Nmp)~;fNmW~WE%*4Q1Qo)A2*Kd>c!9mc^iiH;eyfnW;hz1V3oHg)X#10(H-zU zzIZ!MeHmK6S=IB+_ybW2P4`Dkxnqf3GBt@+0(^Y*VVehNy#3Z7CIYPrE%;@6wep28 zQ-5vDKYWi)RhV4IFooVCk7GqY_QxYaT}UjTGZn4BFuz~!^3A0?v^3|`w-z4;2} zar)rNYfr9RA390_$5vz-3GgC~1}1&XbB10&v^_b%BSQ8LlP03;hw%!o?TIH&!U=%i z-0!bd&OY3lt5GY)*wp!Lc{XXXvtGRVopp0e2A=9}DcYeWB<9-QEZtZ1ebrV$%3<$%M(5p$u3`KNxJJ}~g{I+SfQIelKN;H#aN`xp zU^Q_g8l}*@KZ)N zV0ue}UHb6qsjNx5w{M>SH0ZPSutu8(B9s^5e_-CLVy0c)sO!p~k0(kIA8}{v=Kyme zT4Z-+03w~ME})H1>m)#Zn>y+Ow9Pmtp}9n|b$X$R>jq3bW+%*+0w0Bs(D&NcmAtz& z{msYECD)X5b!wNG(d}vGpa9+h!hPsM+cI{E^E&4ZRd@8f;sEpk_Mb-iF;e1$)KIGr z;~P`y)n)|*DF6uYvVbXq`!j{n^q#*_e#*BWjhw12r1d!+lwAL3@}Y`n3(vtCZ%4h6gMA%7e`5K5V>1N z^wB?#H>4ofLN9J}17LaWWW*4fNPz%haG%H7pm{xZkLFSz+{=uX@&RoO(*R>^!CC4+ zx*PNvBDuox;-R0=>Ew^k0gk^Myh)6SCO!yQCm#++--_an0`%~y;_86o)OKhT;gp#zL(C_9HgL@yr!EYH3PCr1Bn1dPX~q6Eh8zo$)o`0kW*$6v=pWQQV2MO z>v^qlg0W|wv`W9XKs+#7%>E)yzr~CU5Hsj4W(;5~ku^ZI;`W9tQkuZ;NI(*ZK8FFr z#`9@GIKblp0^l*%X8|<0pW^^(Nk_?PqFF}`kU{LZla2)TBvb519G2{Q12jbedkCzl zmhOY@_PPvkDm{;q`M0^Z222UC4mEmBe_+y+sn#$Cl^gU`(n_|T>yg(mkM7OM5hH6^ zc+q~KH=q^A^xyr_GMJcirQLCZU9kXYsE(m@7yRVA^<`G`w5^I zH@s;Dr#5TfTY0QAD8_Px6N!v2x?5Zery5=abz*4|Az zK)jEv6s*yk&j~9a-kRYHXheN(5TUk4Ge>aH43GjC5OKE?ORsh5h(3DNkNAy#1$u`G z)&SV_{NGZo4(tz#|08V;0E-tF;pn!>0J|#zcF%QT*1uqimZcJ`+5-XY!p0SVv73Kc z0WI7|fN)QN6+!5hwgU;*DxplYN4S#NZnyKt6cS|dLm$J?fIoi(08aaAnGr3iAYcbA zw7!iGNIf4}u@(Ch#am&hLMwdy-&^WSU>oJJwjYts_QM4A-u|sxSY-@oy|(6(M^h2& zIq(XeR0Ue}P8dJGLUlUVyT>@-;+``93WyDCKuep+bHL`@plHXCdK9?$R=O}85Wt%N z?VY5B)fE65XO{z@mgAtm*d^hJ9nMzQ4Lxq5gr}c)y8VL2s5}e><{p=QJMNIzQKOv4obJW zE5D<%KRc_U7aRcuL!CdyjsPYWxcJ3R6m%brst?-M`rT812D~!IjA4pWrMCqZ!3uh$ zqE7W?C^&TokHd|k(!&~E8F;9;K)L%n*nQur^c@!{gtlE-GR;T<8X{9#%8 zn1@Kl>|X#>glMQ_gw@a)cmS{Omosmi&_!=^Pzk5eF?S{~%ehS>EXV)Z`Tv;rZ(IOa z0Tcq2SezLGk31H?7Z&va6Y--b(vMK1Mo(l3C}qF&Lp1BLo@eLR;tthGPum;VtM3)5 z4eOA8P(Zpyg)XPLciurwIqjlNsber;ckcAsLgXQL6VBu`H1hEds8cJPn9-$R0~EmI zYf+?~Xp3_MSc0iMN)TWPJ{p?@ERp8LHdsBec(ZSgxFet7tA0`!OYA$*x3bie!S$t) zY!6C_%Z28q44_JsgFg#P^Vt}9bxqC8UTSmW2Llk&3<#sA&mfaQ^VuCeeGUl-IA?w| zoO9d)nk`i%_zzyEr)AV+v^2IQ_EMY|UiWd#>bNLe_0w&!2`n2w@NT41{vJ>bwPF5k zlRN?R=M)=E`!Or3hMYlQ2a|`5ndJg#Jh^KD$@~cMVg@e9(hv~?FRJJ?Fr$G`%C2`i zfkb{ci`>e?&CH3H1F5NMv!50ie-Y-3<#K;`CNDN|_VGAgC~i^r1M1%g$-X;)YgSa= ztD&y#=2rfck1q}MGVyn8w-wFVz3WlxXxt+J;pO<3%&^lAJPuq8|BxuBTOC;io+$F6 z#r9_@8E4+9K&3)H>nl;6i7w!r8EGO4I)wJbcb5&&2Rv@T-pp=tnD_5DkW-}RPf)@+ zVMqCST4+PjfZmb~ww_r5D+Q_mRF=&7DGI2;8fLqu{;i#fvQ6Grr8F zyH2qd-it5b(4l8~*r-z%gc9MdY&^QJ(ZnlK&oKo}IyyURzy4PByBOvw4D_^Mp26Fl zXo`}LLE`t_!8nRyzTzHeeCz??fO?Scw@1^4F+sLrd^Pqu*DnOdtWxxv>F5pTO`4cE#Bp+VW%>bS+6=C zjO>VapFLmAH&7(%yiD*iowifo$aNT9qjKw$5251hFiWH(3lx7mbDyR1qgl51<)(qW zx4vu2M&YmmT4#O-#CU=5aD7rO4bv%n!huaMLakjm!^{P~Zy$ZDGd*2q9Gn-daRU&4 zFB!8wf&Faeo7NQ~h0Qa0Bz8bx@w$sZHh_%X-|Dmr0VDcT)RLc3V)VIGm&vD>%CWdr z^7xe8Yxwk_?uB;cDo47Oiow77wB{q88k9u5^VUntLZm-`_Jii<0#8u-O)Tz)wj%2~ zi{n+OwWWbgw`y6HwydfI?HhCgV21bQR0a))=0gNu{^PA-qW{2FB?j^RvB_=eb!d{k zK|Z_Ad5;5ak9zp~Wr4-{sza(uQC-~U*+erzGE8Ac>3GY(xy2Dd9pckA2Qn!`;sWw! zp>>M3!fvUFVn#(rK}s5piGE#M*v$g&yz9o3oSp9{cxVn^ywAsVF!+c<*tn7$GBhH4 zlqVU&@;2nBC|dqAHd)=@t8T8G>dVV?<#tcfNcblbi+*Nqa=k6>BXIc=7Njio1uhaO;)y z9;*z7Hz{>lo|1I%3ycLQQEqeU(gko^v|lN>OUsU&a2B`VfWUm~_9ixXl>gO2HR}9F z|C^~y2$l}^NdLQmrC_GKO5fu_Gga5(% zy=(BHSfX~pL-ob)_oM(d==|uMc@%k2eFVqrlzGNTf4bSDD6nJ`RW6Ns z{ZRL`qE)&&MUZ8ZkPB&C-b(zb*xft~ft<>6v*gU2qzqfUVYhtu?(J23e?TU=yJ~%r zcYa~?0G3@PehgkGO9mBHA*4}x&^!ZT;nMTV!c&0qV}6d_K}G%!eE7Ur4LWg@W?Q}) zizpD4WcAclvvHCQWEe#Mes;<+tG4DmS2xf@eEVEZ8N7di zKky@4NRu~cLBfIZo0pAT2-u~*$>3~=VwZwFy2V_Qe#AC_9p=63$@Xr9t#BgK&pBW1 z<*$d4<2kKAW;*8XpAw)vm8qBAf?jFXD>Fpc#(o}wHB7y}sr{dZfsdSf#*j(xf@eRX zIU?_=m|ipElJ~?J`f(x?K+?Tdj+UU90s9eRBYf~NaMV}HMy~l#xj%Ylj91RXoR&QT zQOW3ozLb6?hezD_od^+V*&0DPblMw~{uuuA0u5yUZPxvf9mG^4&TtUjAr%FFj{Myt5z#i( z?fsW+gpU~ro!bWc^@i3P^EYtwXg2RL@X$(0Whq7FGl|o+sAkE$R10Z1?+G)V`jwfK z+#v-8AKyK!BZA8oHP#(VSKnB4)h{#ovPkIYUqVM8ITc3=9S91rX(=Q>02;=Hh`DIe zQk`2&r0uN9=yWp;pT^ffPG>hN;!Q7lB-j4j(0vPU$sld%^cmCq5XA{3Q;vyR26T3M zTRTjC|G1wyF+;y=`vIP;`#$Dl#j?uzSm=3~QJ+0IeSuy6jKH zI8}zOqc-M!zzP^$(_uDaXm&`A zb{gHHX}7O(W{J_upR73^d?WlCa@Hnka^Vl|jXU3QqcL1)&c;-gB{~H6;CJ%|^3|XQ zIy2W>iV#+z-kO{wsGNvInE0ufu+W^i}K z$%SSf;Ugbr(1GRRHF1+g-mn5J%B|t}iWqDIYI;y*ggS0RFd=bZLFy0vxO+nO zHhS^PmOKN4ZArAcjoRVi$MO8KZ8k%$1i9;?qFS}gQbp28AXfL=wy{fXp)(sQE1%kqg9i7}aXg}zH^7@?$L>ZVpVdlnz*$%ucmz0tq zlXRAp=nPg7k9HlM<3dex8@6Y8%QHwUxEDx)Gs!-A_CtLXLEIr#YsA1oBh8~eXlgUy z(JoN_zsDUDt-v!<&CF{Wj_Z)=(_PX&i7n*U^rxqaNBt@98{6e|w2eB;G10C%bUXjh zUA%0sm`bX-CzYZEU^_^{T{7s5ZDwaqIGE6$P$Jr6IDyT4yTCN~X&P+ULG0p-SO!JD z5BwX*Qw**1(>PF=_XTJjJp}$3Yz`B&wmd|H!QcphKnRuG?5^;oMG4&8ljS1BAtl7PK2!}Yjzcp_ZC?S>4VBIB*!lYs7^o-H zH=+cfe4Yj1-80>RirF}MfOU&be(-@TujdQu8d?&|>-5m>iS*q_A}xI;!(A^8sRu$T zevB#o`;T@vkuka^$4y_`H}jcLN@bBwXq|=b>jb%}dsWq5Hc`V~Esd*jHf>{P#rQH9 z{+h(jq@sI#>7*e&$E?~_+J(~0*`1z6lS>6b3<5mQ#m2AZEX6X4gNy%sBPNM;XyEo& zjg{-)<}hRJ==8{?6;yXH0=JUXmeV6b301E!OyYrxodU6myF z;TL{?CLpXp0wuNwg>VumHupnZ>SoUjSc3+ra0@|miiHn4(kfDX{91~dc_@xJsQayS zKi^;J@)d)~5h#TsN0%bJ2x&UsYo|rA5Bcje5rtf4PA&|>6l%{%QA0pZ;=)un`dhwc z5~>upzNG48(qQhG(iGM$ByB5vZX>)JS8uZ9W3jQJC`G$YHI)*L(3+!9vGwkfp_Hs& zSRM~PgyOiV>ZmvI>D6i#YICSj7lzyzvDgU*rz?YfivY!tO#~!oOnEfC}xJB$|uEtHiU$dI< zvd>*YaB2nA8844NU(G?EA+Ze2BVHVS9$;+JxDk^vC4Z_%Dm=dwidee277b2z+tAoM zLG88Vk3O`G_oPXpw4aB~WjUev{zV&v@!!+8rXlVd>ocJD9;{7+PP*T;_JB6yE>=>t zu4|QIaMAI@3WyHsKvie7K8$Fo^cea0OgzTSHT`tFZ1Tmq(dzy7%|i!o(vn%hS+Xzo zU~i?wK2?ojeStHw6~XBGS><=5X&q){j$1k-$=v7tu$_tM1eYwmrz^M5{~by4c>G5F z89yp-?4?V2%EM4M#zy$j%~Lm1R><_osnL0Xba!7(YcK$lVwAC58?)oAe897+BN_^HU)rg zF7G5az@s){f%wgfvuO>;a9KHF<;fN6|G8q7rSy#C+@zNtkw8;qeY*7Ck)zqnm+_f z=PF`;yotr9_BE+xO#cZ*y;Vr9s=coZAr2VeWVWa4hJi#ndGCWewdqm+oleKz`D^^; zMB^PE122O;%=35ME$tVr!o1 zZEv{dwr309avC)>*a>uZ{L3Cqmo8&{FdzS?wNwCJJlci40RlYaG@!hEU_PQJ7JrAe_4lW&NyPIWYTSHSj4h^_PQ^wXB<~s_oWnP@Y$Q-1A0yT{pHzxB!A&-=YbI6H+S9-=a+M=h)HKU=Z-)T7=4t;zL2K4dznmcw>x3wg`$dN_} zmMI6R0+3^00Ej7}s`Xru-i2NRcsAdjy@4ep^P|QxUuEj3b--&xgpucYJFZAyv15~votN()c~Q{z;#TfpV z52ey^L5UdQksjF@t^F>tvkJwkc@y8+b}uGfmD8WtHQ#3xHzq>O-q+u8RVlimOdq*} zPr+^!c7^J+-;ns{df(m~1g@`eLl5e&X~C&Y(qJGOcrwDd*{oey!mk@&KCIQEu+-dv zG>$l(AJwIE!!fD$v5(&+-RV>_DEmKaj3y-A{GYw$f)l>ATTi0}R?+c3UoF`Zd;~}1 z50*s&I=5@?XT!SLc2vceh}jpJ?YO5!2{sH}gmm!%#=%D0sYH?lU=sx z>Dk)h`{tY+119!_vH_aJ0!XD9wP2HjIuOz20GeW!EdpYP8KKZ?{U3oVvA#$t854;L z?I4l^hhu?jbA}K^y%LIjY58c??{gHBoXRregl?0jgKGArBX%!TwOK>!VkeKzO6cG_ zN-0Ah`hv6XAvo*4w;*`w^Sl-!ec#*$Yl1-z;;T)j#jTcg46mA8+7#Ui*x2RKlnzKcbC%|s_D1cdfA{o_6yA= z6p3T2Iixj{=|%US|9cz`0!$|y(4&+0=ao@8D{xUmoU^z z;&#qBJE|g(u%8f?cmTSze7tF#^X&!Qlpqfw*j?sOjmkS2uLISFHlQ}N;eQRla6NYP z*fydrOHTHiY|MC$M7>6_@^Puh71eaJGiAm>rKiJ!3G{GEXf9!3G;FYu%pP(XC&@Ck z7FB>0fXM(H%Kv#9;9IMr;Fr5RVc!4i9c>?+l)tVuvqgy#6%BVm6z+HXM?sSgyEiU+ zGF95M^@=G5J{Uk3Dedx30ZJylPr!~fuNJQak7W)}RMN!GFzM}VEQr_1`<^T`$)a&m zn+(PZ*g~nka=$E6a2nF(5q>MA6Z%zk-CT_+5My5wZJ!H zdWlZO=s@^=1`yNrLvMko0ggn4d$r0}fLRL+Vtf#D*!y$5!85Z54N6E59?Bec4RuZ> z|Aa5e&H{Y;&iFD<)K13OQ9paN9MTU;zWd-CHIGcTVlRg{c)%#RgOl({6GcFo>Io56 zO*Zn7i0@kjww``x2?bzRsO@Xa!c;-PdDJ#lA&A-C?=|!8ySnj{wdnPsmw8AtVO6CZxv#L)o4ZBw&8Kh{f-gVJyRQ>gt z`+OgKs3S%qSf{DFmBQNZcmDIj|HJ{g*~nir0|yG{yWl|@4;S8nCl7_Y>8FC&L(k2q zPfKT1ptkoYW*B?l5Lcg=f`kjG8JT6*KUK;Mx4kCDT?YH}M@~;V=^BkMN;Z!L&)rYi z(mdEOJXrE)n1Td)qnt125Mfo%*uAeV?wz-cAv!S=yiMs#aYibRa_+kbL*}J%t)JMX zb4`WjGv6cNW&aE0KOjM~VsRdlzvr<)0HOOHFGo8s<2$$!J1d=w^b;w&7S))<-WPwN z$5Z1i&y^u+y6s;&BBIFlF`JVpGC{|B0dsNPy$fXrpRktm?+~bvg4<2cEy(g z!-5(lh{UIBFCgk6u+C^eH1mm_r`~nNL48?u!{MyDFDoX5ex`ocmzu$Bje>6gsXF>>HwiPh<*5tXNrP<( zd5Wm+@hhwN-JJ9&CAcEliN5jSf&TqgjvfkJ?D5T0K_o)%-8OfmRCUThL?Yr+t#%*S zy;q`Uqwlv*?=~vGZM(ZG0x_PT!?iMG+48z-GTjBna6+Z=Uf_#{54!5>^IGV&MvsJ` zM3u;(brbSwfk8-4UPTGSq(ZpGroCbAK6trA9$l!b9Ecn!p>)yH*y7_VE7=j33Fi+n z617GWOyPC9?WT!r*xb48Pd_BcUr)@WdhO~qZT6LI&#MNwv~_P`hmp4IxN*i3B+vj+ z#hgC+s46WmBw7E)JvfQ2J{czoNP*Liw)p498Nmk5U*WJ$G%#lTocQCSNKO%KmG=BJf-}A*vH3KJW?v#M5q(oOm>KJLqnuPKX@jF8S1*WhR-Xc`e zdt5oot39Res2IN9af8=NXt`?C0<`n5ZqGRGZ_X5Vv01I;2@kFO5wAvRf(R(!uCUR1 zq*d=cEm9@~rZ|_|%IwiQMd}EN|9>{DHEnpGT{@9p$>wwy3n0OK$}YgAc~f!XIb}@} z0)(5%5|4SD_Xv{~oyJADH(_{GG3BES2UafTUVg7_#s4|i_*PPR>Y-Y~B{0(&17Xvs+;JZ}=uZ=3u#{;cNH zxA07izRu8>-Hpsj0m#{V%=2a2f}N zPP+BEE}WE`e@9BG}y;O)neVc4dAI93m)$WBI`lse_@qSn8uK zbX>p40<6RM!4{Y_o)ZeGH+IyBHHOuhxu{-IMNaeJ4u%dcM{1oV`|{Yl?k;iCzh61W z3v|zb5QXT4u0kM^cAdbGACAMel>;f=S%o=uIYmyIhY8)UtqU`m2oI^xfAz2cdj3a4 z(W@%**J-rU84*Gv7HcEzA8l;d+!w<0m*afRWnMbU|JGqDN+P(N(kY=dxQ&4QmTegu z>B?d_G`*IV+#a?H8vS!MCfIrGI?V>|l?fVdI!tRYHVL#e?MXj0?fka6JnMGa#X&UI z6$Co2x7C!lIolw$joKO-s(`yK1oppx)uj6G-_Hq{Z77;JE9d&DXWJ$bH=}*l`L19g zuP{v)SY-KpNjX^)|5{da1bH8qFoo2!{B( zl^aXw1-#EA!+(Vw5Ww{98P3|P_dCSiJXp@d9}N-^%WY+%xVACjyIB?IoAC z%EVA7G^d&{_SZw*072rgd>+5urC+i{5doT$AG5s2BSNqc847EUeyosPviEJEi+AX* zc${`3v$Aw(TE>n*AeN8Vsry;{-HQqwtK!7LzU&?e25 z{CMjL^BUACwS%{gJW^fXvthhV$8tHxtwDlVXX1#PkF0p=qt~_ zV>VF(eYpft7M?249a$=R+v=%HQ|o!iJ3{>cP09Tp_k#wA{CM;fK*zc0o)@X$n1-SG zulWwA{}@{Ee(@JxEUUD^x9e`F2~=BChZBZ&7OS8qom5Rt3YuGP`V5g9ADjNxA*p0Q zC{G_7044O<$7HdmKuTD%cr~Zaky$7^XrS-&8H|qr&DJ8e*afBS*|??UcBE$u%snK+ zZ;T83O8@UJfbRqKIoUyLwYPNrx(M8?_IUxFsI8n`Lgnjoug1w$xPx8VL1H_})o~%XcH!^*FOI10AKBiFDNZ{^Dj#&8^;B^MZ#qr)ZT8OX*31u1^r_X%5^Wwft789P zBos`J00K+ch45~Xp2*uqlO)O}B@>ga+V<0(&@s$4WQ$r>*IJD>kBLHL!}&5-2xW9r z;;L}Uu5^d7H?ksg=t&IRXn-V*Uy?Owc)cuF-!8L8DfE4<-okm{E73ZqF#1M5LBT@` z%vsDU@-OT-YuS$iV6FN{zeUfVV2*qpy>LbgwDHU4cpHin!Hd#Pv6`iSBM-fPxck>= z@UGEpeGqrK_HqIMz&e#HA9hwuYJ^rv5Gg7P6H#WPj82|M3fj6|1H}~O=1o)3N z6s^1vF|>`J9<0upPjWjjTH)Za)9F5Q@)vC6RBjT}T$v$bI;7O6t^Qjt+4Cg>(Q+}05m+SGK zYj-M;ZfXg;AdtGVuRXFa_Jp*WK=p;JyURr51OI?=L~iL$tk4%3!)H*GcobbjODmcn zf-LgjSWo4J6hrirm%!SSKD1ajRnzPc)X;Fj$e*H{IPEmJImqP>cl9sl`iW-Obe^T> zGGThV$#RctY%DQEKJ1OTg0G3w_W`S3U7qYDu7iP(Ed5F0mO)GDAXhB0Nq=h%d1aAB z8{eGq6V9S@7?C5&lg6-XV!a5(mY?isN@SQb>^sqrR)&=gNY=!QX`sl1m=%wD_on&Z zubKv%qV?7@D$uXv^)gu9kyT%OSu$NZl8sg__Q^AV;l~8A-GuB#|=tODJ(H+{MfWOLCFRfdVD&!VQ~Sq zP+3@d$07{&rf=mQNtBpcTegn2=3aI$&Ra6H+eAZ{jQc=1rNa(}bdKe8(ZPE{&+<2*CP+A`;KdrUy5p z?Apf~R-^7hVPJX`2y&l`hqn9^-+cosvg5tI1RY6~@#UCHt~i)BI8}KR6U=9-L@3eVCBe9I)zYCMak| zgy#9=TjV#h7*Pk!1!mKO7zcUGy2q>*e0DniAs3k&U!5}LC`+MDY(~_tOmjdLX=caJ z1<@bqnjpo$RxSc`?>{2u!Uwgz4f>3jS>JUFTI$N+>}L(PUr zu2lgar`zNn*~l}6PS4tg_qJw(Li~CLz8jS#&&w`1DP=)x?HfX0fOe$NgbEEqNu@YP zi9-*z2E=2PtHc<0?XEKQ#E&HhM1w^*r*OSeBSk%eiGdI3cWAw**LDDs$)xXbQiV<= z3RY`!MJJZh=Zkel_hT@rm%OT%iv5Nu`pXVK`17~$B}C`=&I5)2^J16AV>tCkH2=I) zVnO9?X|&vWP3mjc?4fE;*-{eFVRz2s@RQH(K<4xt%xjOqv)+DlLR+?j)Jnt`BK}74 znDgF|G!<<>dxy{4Ob7mOJnZ2=7&|_d)mO^|Lbtr6e(9P&?NNi|uFcg~6_unj;3PY# zA50z>_dIh3RwCsC`Q~uX<;|-mN+#O*ARjsE$`f!6ITO91wGd=j2G@{y;eGwjTc{0K z2=hw8O39ztXh-ma!k7S5lkmAmbn=huNbImb!!%mN2qD2!%HuQVjAn$Dt3m9BZw3Ms zMcY*nul1J;I&QB9<6ORuG=}rwg>m~;dt3zBb@LkbMv8y*jBhA8@HjZwNC+10OVi`# z5w5ojc&EG-1}sQwesgc4{{gkgTI-1c^`m#UW8kVNa1Q{jlQO+K9R_LKCd6B$;_U$t zn0NUeI`zPJ0I2qsxx3K-EupaiUZME?uVJshzQalE`^~VVpIbwY(TTzbnC%TRpD&dk z{FNNh0MdPKYOzs9LDj2`ggi7CeNI4o{vz5tfyoB(9N|R3m7V4#noJs?bnOt=436)>u-+*Vy+si5epyCKR)>;;*hcP zNkTA#jpvZd>m-%^Onp9~Q! z(_Z@*k(6C3W3BZ#8L`rFj}g0ADo^NuB8jqp(~%oQw@|pTW779#>ueBvNBZ{G(rqJ& zqZq~Gu4h%I?$oB*Y>mn012H#3l5Dke6?V-GOs8+@v+uZx7k%}4(mxY6{9+-e&DR@} zDmL$hKl?u>;{TzP%?O0l%cqz}eLk#+Z{&J@Ly2O?do-I9!&aX2xWZIKfUW@u_5y=C zU`mOWqpe(z8aVkuUF;f+1aePE>LGC8KMPqQUhT^MnZ7KK4CTM~=b6lkEt8x-T=(|wp0n(>f3cN^ zLdh5`2&sly{dc5ld%pRTr$^E5tJ{dF8J8Wp6}ZFNrH>`(_<4vfA{JounN{WH-5b7? zfb$W(RSMDpJHsm-MO=DAvf#7b{Al5@p~KWQQ^Rw2$0y;cG(JC7&?E_ghW6(N4)Db| zzj-9+^yD&37N$1C{o-D?plo?P%Qx56K_$X>z;dcFCqpkB}G7k1B~BILsH^<`U{#qk&Q$dITrM z7YOb(@{VR}C)VuaP+VX!9>4b|#D>M5-q)miLxly(a>8gyq5%tulWJgg!#dphEUU*&r_R)8mRR-R(a7tQyiX_jsSZZUm&!| z2n7VGU>;y{AgU^RZ+rzp-Nrn8CO&+A63jt5U?%GQB0oJ(O zk4}9q;1RNXM2Vp9FrCV?{gv}zUz|8Ewb4v-^Qp^MLb4Yg#yft%dk3t|tkw*3b7p5E zNDo#$d970M1a#G!@2!tdZ4N_E%_7NF-m^j;x^cxH`M~O;sk{MbdWh}z8TW4e1nS$8 zDj)OfbalVt!(5sGlo)sX#gBpv17ofAXHUzN*@Vb3Ojp18U!^5BjWs9?aB#POkSnwF?Yf5AXThU=t z%@uu%VLl$y>{iRz`EW_AcS@Xs=PMV~zSMajt6-;Z-p5=EX8dZtgu1^3IJY_a`}OFS zoh8cv$RQxtp&<)Gaps>ka=3lnm5ZvUnU`@lNC78M*13fSsA#xn$DXxsR7~a51bHnA zxco7<psC67xdn83 z096Dw){R@9@;Y)WstGJKTYUe$`>9oeQATe14S#W$f!q3=V1)tG3s0;> z`u%}UOXd!Rc>W!lfsRt@H+OyWE>zFo9CDeC{quI!PAqn5X3q|*(FSZ-Vd(nh>RM38y)t@E{R$0SR8px( zi?K1N2U)40-Y|X90K6_9d#;-({r@-+KAFkQ@r`D2IYx{jSD3V9QJ&UdK)J2O<aV-UGcajqIdHLF`{^p4{^<)wTXu(ynO@h&S508FvhE7@}+Kgy`Q73pA z@XdHAfmk7m_a1E3*AhRY;AxnVb`PblPJ24Hq?1Ihqy`L=Gn;aC7{a?uK;Y(|>rUVB zNdDNc%q=W_YS2gXQ5y7^i?|(x*(m3|-FQNFO2Iu(Uu(bBM=!>Dp5u_1;?YdnwZowe zh)7k)(b!k7A(ffT$}5HJU$b!?#-6e6ZxL>)-d}YnanC*q>rof|-Wvf`xj34HPL7)P zE^c@{@v@7b96uZARo35}gKbH)T)@j!QJ(2}BD=o{PI}t>qpiKFnIpw6Hy{XkX~W(> zc}I3EoINsRDn5_K$L9`uod;gq?U8KA(&Ix1#v5ww!W!bkf$>Z^CL4HrmAB=uP6Ij} zFxwCg zp!!7%YYbIr09Z4;fU(Jy;?j7~DCI%?~0rEim zdh#4$W38rP*ofoPbp~GUhC`}#9w(y9<12+aCS$+_fNqX4f7d#|cXtMgLQJP^gn9FK zI@I*FE)ZjMX!Qr$_d#q@-|g`D%#)&#jbW6&j-mH>_8+q>b$nALGc^c2{ULBy&|c(7 zS`QsQbaoIIs_hq5oPhlfDy~Rgu1H9?=hqslHcV-+>-e0_Rfg!FJWv)^@qFX$uaeZ~ za%BLpR*C#bjz0$ab>k_=dH3WLP!W7Gj=LkQls`OYG}qr!>s(B`=mxw+R|r!RBMEi~ z@#@;F1mHN%ovsBXy`wZd=F~eMA@q2zAA>dliI}$;?~9V}unfzqw3#i&iaf{P$*dnQ z#{cj+vZ7kI=kxIKp0CwOBO7XRzkoo)I(qz%1PLf!;zh5$m#Wmnq7#(eht5PBHuqTF zT#E$b+O6y zH&qC|lAU}qK|*S;r&6!*itXZXn=TasP}RF9Jb-U!0bJEva!1=8WfPeL6JvctHi&ro zP!PW1_j1O7t{--vZIlc_9?i$tkJvdrb`L~;2G2db;Z6*zE?~LJe?Mo@(!>OCPZ25Y zp%+QKh~hDE5W)7xw)e`U0htv3vE86KA~#LhvA7%bkK?`TA$6;#naFp!>C&?ghej*( z%{LE{A45SWAuO*pmmRH&a1Tg@q~d?8oF6!~eM9*^;om(5y#gA3*$VuA8Sa}2^^k?G z;cKQz)uVoH?Yw@3Ey<2F5|>Xh*1=+}gi`Cq<~- zE1RL0?P5tnNl({)yHqPG|KT>EDwrLx^>}Ld4s%9cfRQJ4>`(|JT~D;ltM8f2*JTdb z;!x9Zw-1@>!-U=Nk#zaK<}81bt(rAY_wk>=EC#jOd=J}>2=(8ad<*V~kU04B)<(%0 zP+wVSq99@oS*meB@oNAe1!+O?80nt^XqhARA$1SlT+^jY0pW%>W*K+5n4pJeP0UyCZ2mjJjW)+N=fi&7wZdcOQAY{4OLp5qesrW1#haag1%s##(#jQtx+N z`|Zmo(Z$XDoCjK`H7Rh82KY`o7zk2$HYL+k(S&F<9?A15h+~ zaSylC^!ItpUv!rkxZ}iu|KL|EF+JOhhLLGVHbN%+MhBiBALSmX=Q3>qc29~lA@?9B`K3>(M^968*I2#b`o^m%J3EK5 zZY!%$CCkaCg+f9;zY<4SX4NqCzP6Imn?crWs6$sR0Ix~uT&bdR+vAcLxCZihx)@17 zx{XHh8%@76Dg}K<0~qLH>+MG7s?^v8&I+2-u*5859APfk30JhbHGU zigLVHL55gmGX<+U?oBf}DtoDAJ*?MsLd(c!;CTC`bQ7-eT+1K*V?E^GjWG6WLyQB1 zl&#@;or|P_)sdJ(_js@!i6eRC)I?iQ>AHD03Ee8Ghd9?+Idu| zHL^`8ZtLNtilo;L3yu)6yeRz7LGW7bM>gn~&}O@l7@>~N(qD3DXdTFdhXP%)G+eFVg+%QQ^uSA*BW#KD?YT(w$T|QK5i3N+{8+1!IgJ}fSK@Z%Ezqc$)u$ueI7zz`! zAWV2vb5*_s#s4LnE}qOqfYXyXa4$rY?!@*V?9ZHhc@;%#caD=Ve{GL8{VNIs*gSDK zszpCqX?K@o;|P8ns&tC!u$UFuOor%IOnCgK`($0GsnyE{yyub5-_j)?{dML0=GcFm z5}{Nd15!@I!nGGy0+bdAH46}Z2i~iz&IPVIz{^aaVau};T4u0*M{QwLIDC3T3#Zu$ z?PV7voq}G2vjcj$4|47LH<0gH%`TN<{UlhfnDix55m$_Kxm$!rFS@$B$> z^}9(E(JSZz%eG}1sU26ksHv5@U7_lPi+y~=t$`Mdi+W%o>uOu1(rkGs1-h3T8FX>j z_fJ)0MeMY+yA$7BA5E93OV+a#M8F3xM;^$uH_woFb3*v>HvWAug1~?v<$)WRaRprI zm%i=b9Xr5I?@oO_M&9a;n%;64{qi@~K<0t5IpPVwv?z#6eD?rT)VZOyAmd1o_mbr< zWAM`|^m@#}*#kTE$f{QiR^{|;79agpzwBlfmwMYf$j2W)ld%e#Rl{%zN`A>9z*DOH zb*!bQ_b>3VxBDkh#e$0P!by}Zu^}HcsJ>-sBy$+J=X_WhEQQ8G`yw-pb_5~M6!BlV zUcfxx4ZL;*M5e%B2UK=Y5YAOT^Z>i&3eBDJKJs>w*LPtKnvN?B0Tt{36r*MEQvy@q zGYqM>72V^?waR<&61yf-8{?=!w0L!9W9-rhnD?bBrM^3ziRcU2;bu_dzO4qWztK^^_9@zE3QX!T{Fk%*a$b6)1wO-XfFKkJe67Io-I=2KQTbTnLgD-Lv6p^* z*1wX1DU|P;Np!MZSMYso`UvJE9*6pw!Rd^)0wVN=?ym-zf1*{m*a(zA#FjX4zbOL z-^W!tYMr~-K5AVzZF@iTA*?ry8j_k`;`P)0ZnB!H(Y{Zoj!Rz-^aqZYd9RYf$gomz|Ya8-eHdai4(kODa_Do4-hhAC~^yOaIbB zKnM~Y=4N4Xt_vm=((j3ho?WKE$y-XHRJFVO#T9%W{R~qRKm*eb(YJZCc9kK7dCBK^ z+kuF`8SnFQ$VA(mhfl#QSPGcI2d(JC$ww~Kfz`;G0o*sUe;kIbtC83RMFE^A0R7bL z=Zc^SJYu#@LNU|PjNProwjun6N<9`>oMC)W_fv+tknO?;J(7fs`HN|u1$z{(08;KA zj^}pcW|ycP2o78^UIV$aHZz4=Dxw-r#r+jt!jS}1$Ns1peL8|mC(nhnND1!}Lv6!B zo3!6^2iCB&T425ezM{oX4xZlKnSF=+Cy=fQd_kbqJ*j;gbjMC3rYN0lquF}na4jr; z9kTA%{9fCSHN5z`R@|JQ`|$YsZw9w?Qgt?a@k~|RA9Q|+`BJFY7sC5uGuIU#t%k!U zDe!xVL}ZJJkOuvYnMrjLZmhFBAN0GMlWqRH1F9tSRwv#6uesUR9^wo4mUE zNHhQyYun^Qa81nrMSXa*!xZ$Vv*b>4u4AX8Ip}j5aok4wUU`stbAsL!*3v;kkm`9m z)n3NhfI``D=c8;dsb{t_;iSrBdo)0+LY-eg4J{o5 zPax;wKifw)zUDKw`OPTiYlD=V>stQbyD|3ke@@+D*(aV;UXXd|bJj;j1I(CEk1-_6 z3QF$gXP?+%wmnBv+_|e=w-^Q)#)5Tl<%OR^I5@9k;1<80c9k5pCk+65oq#}=E0d!? zsvsc0=n`tZhn?Yz)WMT+XXZ=t!CFdNU7Aq2h>?(L1zvSKjDx}3wVHNDC;(sb>e#hJ zBcx=kO^o0>a}$zBk1FD2jZxwrr?;tPHJH4v1Vzj7UCab}{3c8fIlJ%vj#SwrxP$kA z+1??U)=V@E7VN*Scl>C#0k*%pz8?QdU0veor<`x}hzj-+VQCk07qi8sVbrOI=*W=h z5Pn@fc*$IK!&~<{wuaMl4b=RG)@}^4_RWs&_FADIzOG_hs_UPP4H3uRgET|K7G#Fy zPBGKv|L_kkISeaSw`B2^$jTbW?1V7rkzSH++=S_o*8!UsXsPZKJ!Y5} z4b({oiechs=A&N-Uj|C|HW9^t8vA-UYvG_>Jl%NBIABgo=xDJi#x6a1I=M>KlM`^F zUf)S0?b(>cIsWo-ZX6S12b3xf9{0okNBO2Pz<0tl8`e2M$8NvB-DWUzRKD4iIm4G+ zJAsR(c7Om{|kw&ae^>Erbso7067lCaWC znFZ3RhEDT@zI5bxipgyj+gv=<-<5*bmRei7M@F9XEozZ91GtVNbm8uQ>)Jk6+SF{ps<)WE2EH7?h)G#jAyq+JXZ=1a~?RmrkBh3+$#+HaNOLa&(gFs++qyG`)tL@D}~O9bPM zHSYl)^(ijeKV=}U1pCY`7k1mb_F-nxNm??WH_PmaJ+mIEkyRZ-Da853a)?>eC=RON zyB4EroK7pdr)AB9lwhvQ2MIP23+JDkBgAc*oz>}+x;BfPsVXmD^DV!qeRo|iHIvm) zp;PfKqdTP7E1!->{}acTFhOoKy1WrCC0g_u6B7u&I${Ue0}EgiS(P z5GLQB5}+20b1|Zo%qUb zo{wF+>Db{YY5c&^RY%663JS_?ZNUN6ePuiE=4J6M$8U_9y^&)as6>m`0qk)OzHUhE zLsmvB!y1?{hyIFY$MP7NxN+9rqL zg}*!NrFS$e8Hri{>l4drw%yuc^F|)g_!EK39f!m!ZPkeCoQ|Y&8 z6@djlh{O9$^C$+U^7}D|J4ABT(7|_HJ0coE=~j&<4LgxlHq36!S)W$fvbq1soA1DT z&v?xYH%pVNqCVYcDJu_l>Ao{xY+}4fmBFrQE2aKXg;fqeo!MzOXw!gJiyc{UWj17P zdYnAf^I*O+z-1 zu)@l|DA^gaUrYB@QAfy4J!$H7$I!_-T-^0Jq%NKscJib+!%{fm#{;Qh$7ZF@8i$pb zvYq)|Yn7vTqMgXYReInKC!x(MmLFpu+L!iR-`yv=S=n0{M@rE-s1Au+EmBd?$~SH{&c$@sQBI{Y59B)SN%q*{uZnB5!PHR-+nrd?WtJa9)<_FoBlo&) z6r|&FF*Kd-)9`*O4D#bsK4K&Nkw|A0htvSBk;PHI6;K635$Edu8 zET#B$H2uqP%9%<1Z?tff5+aH*k*1s}nKLSXCAbE+*>g>SZ8WhBD_^it{`GY8jmh~MM{rk3sn@)_x#1}AR_z?2lnW5gDenvQiGNpFoU{1! zjIr~=ehF33`J(Yx#dpan?;e}_t(U9EFNEaZV~BX@EF~YOgg1RCCeb)D6L#B}doV>! zK{z}$#(`^%>MGgPYdVTjHLQ0U?~}fO_xU5Z>Qt)u#jS%R9T}5N@2RLsO}3tAE$ zO^uJ&+5EL>bUh@BY)hZO?;|ct3SAm94?K6HIb}*Kui1H_c9dunltxDC#g#qM++JBi zVLN9ml}iz^zsT5~(KS)DE%*n!;5C&ejK^LM~yDcfbysQ#_94_uRxAb{qIv;PrL9I8;_osbE~yAt}Zb_ zKh-Y1X*u*2&4vf`+&VwGhSde}nm4K(Wxom%>t;~sbIb*ymvc|KbZCHL_t~3XR6N}v z2)|lRI%R{A4z<^bQwneAGaiqfZu&2IG4U{%ZPZo&@ziZ%R^F*^AqX#eN@b!o*8lhu z7r7x*C8Mk5bwObwr-mv1wp*HXy!iRE)i)8S8AEs%j?jVSEof9?U{nNDcfT@1`4i&_ z^(hf?+zg!${5d+QZuK})$sAp^w`mELxc;L4-|&WHmCx{W)n~Lw+_Z+B`Nk^3VgrY$ z+Jc^MB`>~6NYiW!yTAVam(PWcFx-i+^UhSWWx`(BSJb2Ng$NgrnC%%k61)PQHEim- z5DZqWNcZrzagv_dM{9xO7-3j&Swj*r8c~%cW~h)dkaHirKB_r}m{lP)+uP-nIPAJ-Tr6;3eL0JiAvC z4sXsNA27P24@~9L6YfdqwzefM_|E@_v$qb5a_j!a1yK-GKoA5e1qqRoZls1r#6ySD zNOue=BHbVzlA?gp9ZGjgm(ndg%rNuYH$Knz`aRF}ecwOc>s-ephnf4{d-eLPwbve8 zh!(vxdAKUp-*D3m$|q;825nm`W1_E(1@5jN>N;D#nOpiXKPe-IegFPmbt(rxJ%biL z)1nBjJdEyEwY4=WXIrF9r$@1~_pTzwrDh!aP^?y5^d+mg0m~OROpA()+c(p=v59b0 z+Bb89GnoTzWAXub0SKzQQR~5#Bzx{P+2KLc6{+>~@nKbO_j=OzvcXE1Y7M$Sc zK>=t_lZk4ZKXL`}4XAikQ)Zft>yN7Jd2&|cpXtJogJ|qK?Ku{i*N?!F#~*Yp>CCT# zA9_Q6q>O~_)O@WSjA(i8g_YsEta7spvn%l4l0&^?kb90L#+aHz&dm^>R7duyX44nNjt|8LsmhrNx6GC`VS|56_?4J2BmXO_S64^-=RS`n$=hjK9I1q&uY4 z3cgB3R_yV*;U_B0ogoaUo>p|yVS@N7JY19tN=MD<)FgVsxYi=-;WMW2!<_tg#3cA~ zg4|}6OR1VZbKydk(Q~kjczsv~r?_hJ+ES6~u2jL}QEVwKGDqK4xeVbo<$OQqC=uU% z{u3sb;yWz7GVOOA5hJQS??TVVqTEGg{mbr@XAc-p@ORwOx}0^~l8HSV@@ueW=rM3O zS<%?bXvxhoP>itG%_=pmpIfQeY(K&NGJ}j7L3d%)LQf`*>_yuYl^<~@<}MLCW7b)KGm zYQN`cl5;L!SMxZ_E&I}0;Ylm{&C(XTkLu#QWp6o*nhm2vEQt1U?pVGl^Q+)in!}ei z)Tz7O-DEr%Dwb%jHYek6!5wik<4UdXS<(h~dtEa$uw1TF`Sa-Rr*&Egt*~%ds{D}4C<^Tn-u3c}^E3LtuOPw$ufTgNM-GJ+ zPp)-cXumB516fFw>1;C^W+&^$shXwp|JicV(K;Ze!>r|y@7kD;Jt?IYF=@72+WnI0 zS^e<=m-pPkM&enacEuwTAS}_>c5I*884Zw3e!=sX^2ofmQvS>S-w4}4 zrYIC~*F}u@wNUKmAADYh%5Bh~ATYS(|zU;msgAorrHx>CV9N+G#zEgx4AC(Ai=cK$1?Kh$R&js zcG|0s^mz=h5XKpopYocI3=gsWB|(fp@Tk`ZcIO*?^c~jcB9u2m2O-R-nZTYYbb($P z3H@*i3PIKP%*|b47QT@d!_)#fsrp%~dcfwiD~za!aDm`s$y5hZ|~4EipHjPd1sg0XENcdkbS!cKCc zsmrOuoIo#Huw|WygFjuNkDetIK`eNWa_$VX(D7F8;7M0IhxUrwAj?qu$!>~HGq%ZU zPN5(XtzMCF`dYoSFpaWTLw*co^PZ1UX+`w3)AHC*Fx%d(d`%_d2=>wyI7?2Q@3$Pr zIRu?aqw@vfPWNRzb_M$x2r6*dj4H_eE%0xWMw7uvvaU2TV#u%XO4p}pGyS(>^#RY1`e=$kK)Tv?>%I#A@2aWA@f&9;snfgNf#{l6&M-j70(`|y@Lbj2S zaR$>;{N$G&FUAD*w#5Gu{ZoZW+C|fGJ6t+U&c|SP#w)DCmHNZM$e)7&Cm)kcwq;Vw zqgu=H74_{kTwT7qdH3Jcd|dK@Z-Y!%H=fV_ISv(;V>A7CJC1A2bRLEMrI2D{LslHi zVd`=ufjaoT>Q$+7KpqzR#Wq=_PC>4bgQ_2DFT+&pG(N4PWW0HFve@pdaa-h|=H-X+ z9^t`@()5S6_97pYypz4HbVum}#Cwo?ZKS?`h)>Il5o*IMCuYi84@g+eBWu`cA3nDL zJpLFs<;&=Q?>CSNtUjZYmkNIesL(TX+$N zp})JECM4XigjEn`m>G~uPeMEC^Tp;jYoAkKM^vh{AtAc+S6$*{byY2jD)(oJ8Dh$b zzbECw?UtCy^uiXUk2%JG>vvhjDdMWX5nePh?Bf8JG5y387Nl}Sc%fI^vT+{0sDMiT z_P~hmWjum|17APzc&cnmg)cYE3QYG?v)3$KvK zu!M`a?Q52uPErcH%za5j^#*TG56HNX_jGiKcdbhK#yFW93jaDcM(oe`8*<*h8d$kt zbIxCT5{{uL+o*dF?}s};33*qI)_C-w$5pJaKxPfXoJ8(&4uU48ZRUp#mt*dpL5t0T zMV~DS`c+wsL`gG zxe%RlURNCf{+%r9sIlg#XOGVph`VDLF!7tZ8Bc_!*9K>r&7$(!b9%~d+ z)px77n=y@1R}Vffe;JX=Jdu7(t=l&3i}LUQ*in%6IqLhu^eHfb&RymW{t{duVrhTA zmSn0U{+MO>;hn$J8=|iP6WBGJvjdqxTVOV3XD9Koa2kj$tf$NfUz!5|KG51Ok_w#@ zjcKL*?FH8|+NH?UuJ0oa_cYNt&R&jEVbV6xVH1uj`e10M_h{?>Zrs&Q{+=6=*TTHV9g++rPpgjGiE?T&Vda9^P#P1%o!J=!Oel=_qw|v3^_lew(cN zl?B%E6_=-WBZ3sCovC>4Y!bVtI%&TPC6cMVOs>-s_LP>i~{o-KOSvruMrpM95Gt)TA)id^wH2z**J|3OypY)s|4C@g8MT(RZCEP-t%Ym z@_avk?}z;6NtPXFo%%5u*z%L~6USsVcql~#_oHKaL3g8ak)}1*DTlMK2jy#G%$n)v zkGShBy{3iEVTKKw8GP!Uq7{d!C*{2=h#Kl^ye93$^8&TIkE;ACiZ^142;_uh7WB8o z81);A9Z%#ZxGGD*~gcZ`x z8F${f8dVWnA}&I}QdfX23QT4e0pR6dqcIG?bQtUW5t)D14akToXBadxSSX)*!@Ds} zglexSKjpv;>bIR-DTNA#g=A(axD7e%gf6}u%pdN>C$gh()ulZH`;y(wrUz@wzb5c! zB3y*C69}TajGvCC+_q|g+$(=>@7QKnJX(s5Em9FnPnV0mv3mUn)7bR zt|Ny#`afT;I<<6`r^3$3fi~4m=STE2_Z~5#}T_iwg ztdP|T`wi(%8n6h0rKMo@t~=dO*I^X?XC*WTGl%ftGl>F!WPO5R`Dl}1s_JJE`T2%} zEmu#G^v4_v?G!G#gLzF}h<0NHLFTh)q`=&4a=qu~lnzuNkL7lolk(r9K-~Dz}RRm6gNUt(H}x5le+}J??&k)NQdcv&Dd$UqJ!T*wSLk2qx3$ zJ}>;VCY0y@D-~D9C=yK#{N0F|v#-=P2cHp(IV)hX{J?hx<5P(6{6WO;QV%8&S*ciCgJV=Qc%URz1xq$?D#L|^%|GbE42KDd zs^C2-frofIR2XNX+;_ygVotm*c^d!N3cIAMIJga?+){`Y4@bmkdufG6LbOvl9<~b^ z0Po#Mw&wo$l`Nf_$gh`B#QuLk;}#?Q#A=!fzN$Y~u*%K%`pl0TF{##tAtn%*Q^sG9 zcZZ5JFFzDvowC$LKo>gJWmc!DjAd z-)j(SW5~F-t1bC}#eF!Z9dgQ0pqBe;A3D1p91KFmhyMAgcsNQe$xS6quG%d+G-<1` zm;jJgZZ@@ySbmLn%Rtg=zs^t}1Bm4~+=s4O)TL3R5o3PPHZLq)FkEl6VczFoYdP=j zeWIlV-pX~H1K)1rj#j!Q-z)b>gqWqy{L-?vKnk%aB?mPN_!mJ~L|iGjlf|75h+qE1 zlaob@VG$gJc#1>8#8qq|?2VB}{N1T4n9l%tWD&}n3lMHH(+KWu4@0Ygg1|kkWKFzx z(f})nmAGDXpX=~SZv0!31cYCE)G7o?$b*1b{>A0J4Z-1HlTSb9=YSDf0O3lt*{gVi zFBgbUg=l_Ww#{#W4Hb4KGB2(Q+6|=IjIJr^v6%OHc@Nb+gA?D212~S7QqgjmL~^;f z0xS}z8B*t0P|VNyTlNd|gBK7j#CjR0?o{mZm! z8%)q})2Rwg`IVaKcvbfhi5l>=rBL(do^gDZ`VAa^L~^ruGF+jxFvK7+e_p4*|-?IS5HUnRP zI3~{6fe0t`0WeYTg*ug3>Aqif#}ny6xq|Js1vGmm`U{|qreKv6$Q5o-36u`+dg>fM zJUsJc7bNXTMj0||pFq(2nI?$m7bf4;ns#GSjJMU2T9p=n!r(*N6UaOYGJXj<06t~z zem8_*W&e&30Ph~PN@^;J9;U;Pzex0k>@}K{?i9(*{@N~qg-%TfA0E8{rZ!1Sfg~=Q z*xVC3K9vh>mpU&rSlI{6zw(vFD*Oh0|7T(&^nD-b`&^Hg?9`2L?(pXB!%}F#fUSe9{^;#g$RTtM0e%^-5wGEs5tdXG^WvEl^IG9GXcGQLS>z&?~G!}jYVaX*n0xp zWa%z&DEl2BG9d5L3X=MuxFwJnFu#{jH4LJ%T(G*W|8VpRIeE^F7(qtFUoiqY1X-)x z#lRr!Qt3azcVfYa4G`lJF$V+HB7K*T4so#wlz@;zB0RVKyFm0{UG1GA4%d1ah=7oYnpZMQ4OKdiP*ZJS3 zjey1iJAz1Rt*t{A2*(xwnxhczKz;9>5o{`d{e1jr%wLW}k}yjfA%HASau?jjaQ%x;77E#8>|(4a5&()nDaCaTGu?DF3)C&2_m z)NcDUYzC2D92id@A8SC=T}Wceg+b*$V?z%95EGT#Y7Uuh0kGPo@GlE+-schra79b# zDi^;N=pj!Z64FAF^AYGs(9bz$ZOoGz~bR0YYgxD36J%?1bE zA5_lzyR;0TLs}4ti(>MC_WHH#1IjJgoPk@)8b}1@r|8lf*u&=t12f1xHodim#*E@Xcy2?|uo2D==0y>V z#p*j#fT40ArO~IRS{9^W1J9p>eLwSx^ z1U~L`1zofG5&?&(oXtm2qd)|m1ez8rC<@|cG%!9=lvqW=*T03ID5JADbu9Cw4B^D<^W5MNvotdOzwB zcn~@iw-{>GZ2&qC|JcU`G>pN2AcG9RAaoE|rN?WY`wyZ|2J4_XENL6ED0q;Art`{EuFA zGGSnkXPqIq>>FUc$~z;x`0=rLMMRCGrPW5v$p<4Ie`DzTcr_2e3T>Iopf&_LEwI&B z?O{J363P0%|4>||OB&q}!H!tawTpz#)Sf*9(j3Gr{q$tYm2HDtu+Zhl1 zwzM6^cjk10WGJY0?=3Uf+p};=o69~vfK{%ob^Zj>lqq4@00S6La(aB%*yc6FPIz(o z9Uxcj?LCmXF$1~!h-bVgL`;%jOrSSp!3nucdEl^~7XHQEY=P+3{8ro}+OL-|-r^f= zt5N!5z)%|dw3(m( z(c<_s(hVC=`yTtmhFdAa3NqQ@ZQOR)ku;m z)j>ukTn$u8WtlaAH-C%AAWIiQ?f)|R>bKF?*SavRBm0*Z;OT%BTS#qfMLx>^W_%X& zH9#7=_szc)3OW8J^h9`xKiCWa>%f;1*B26%7@$_LhkZ?3CXV>R3UW5TZ@JFwZt#X(okC~vr=URTYy`T2j}8ts!a+)7iB$v37(*apoj1Ko6~XO zu#_=jQ3Ghf9&$VazvMU|f?EUGnzATm2a3nSxsS?0T$&>_Kh$3af}vRqz}2a7UL8wl z!(;g9Nt%^3{1RGS4sbdqCQHiD-^YNOJ`YM9c(7>Yzgm@E^jV}^K`?G6= z1AOL{JMiKAd|odE{QUveDSRCc=>XBb1R$}9#3~Wkjo%f3|1&yCY~|t*?2(tC z6s0iMjgfi1mIZBB4fq|Im8k9Sy>~>TU}P;DXZc8p5#}sm&={O-_WO(>NLY&ec zIU$oBa^*kkBU>x^R$D9U)9~f{h7GE=dM<_Q1rVYGLO^C31Pf&al>6-igSi*M4Fe;d zo&EEFf?_fSFH?bUi(v+69Td%3g+?a(*#W{d-H^$pj6JxSizkk|v92~{B1^9PR3=A3 zUE=fCuZi+PJ?rc2wXn?L zxQrvNn-!%pC~mpvy*PLL)fTdRUteFpd*X6vb_3Lh1n_S%Ac%{EKncZvNw5+Hr-0_F z!V*uPvAW$4d6xVf&AT8o% zU1z4zlEWhv8=Ke3qeyKQn!LL+e|JXpF0}>~ujDJIp4s5oFNzFtV6Qz}8ob&_a&7I0 zu#?!K_bR;Ov`^Jzv7~-?WHlOt*s~qD+Ju|2ibd@|R#TvyA8EL_;n3}N6_J4&^o`p0 zzIP_Jzp&;-n|ubUDBWu77OC=i{Zs%pH6DGNj4o_UBv&a6Kf6p zvvBp`iie+w1PvWwG;Y_`rLL>hVvh2t4@i#CYG=N~1q2FnabCG9vIzYHhd%aBj1aYL zE?(|^b6WhMcq-lki)DU-zHzR2WNMf}KON@8p1m_!Dn-Vwmvng2K5aj-315D7k>~gw zh3?+GU6Sz6g1}?`xtAP+j7T5E=P@C}Bjb{??S&E_#7R{8$L8 zDM0U1A{G|@d~|{I_5qOJz~|IRvAu>vmD<%5tBxjr)t`OUX55^C`XQ>GFW;HHOj)Cy zbDIfp{MJg<@cUCy(;7`o!eL&SW0T%v+?D%;yJf{fH78zQiRS!AMf$FauH5;B&$L%vF;{oU9je5wYteVZJ;TdEwp-kv63W-cG7>NhllL`NC5u^gp zeK?fAQ3klg0a90hXW8;}VgB2BluCC8{~#{F2FoRKhLZBj#0L1*M&P6_6CThN0!sNa z)MF8unG2DVLL6X&242>XslWj#C~eobYfZxevUJy)#GN6l9$W;RgEW|m2=32)_yiP- zFC%psB8v?n2GE550<<`R;%4X&_U#S4XbklYA1GQIhWN+y(`VDt7mH=LfN%J3>j)K8 z%f{v5gUmHHly1zJvd%Z{MC z&F_J=iZ|TKBvpaxgXN}!&>jn*=!S(K7s?B~0IG5-bI$??JBHZejWQ|Na>>~PP)8KM zUI8%z6c%UqDg`>#vD77==0v&U+%X4z0CYs|5S#xigaSfEbuH43PYxgsP(}F6LEUkd zAhq@pD5hLCbX>vy4p@ZCr1APqAwW(<@zo_ZfSgHdLWH>w_XMHwFi3A;{3l0Lpr)9D zEcluVN|{?yP7OD)moYb)8=!8HcX~iz4z3_8;2>QKl@p5~?1!SG4k!XO&Nq^Q;t3uQ zPYk__jig(ILq4%8!sRy$9pZu3vah(bKOdy*^ANgxylQa+E5pAn8T=0jgaZ-i9l1Iv z4K@LE8N?3z2dD!F7U*~d9d8~xK@oGHxv2hkmjR?ebO2-tAT8dn;Qe!xVTUjv`UlBB zp1>8wK$wTz`*ao1GusB@4PtSubunxje4f)Ni4+~th1ML$PfIu;knP@w?%5_X01EDI zytS6mo@3>ToLdlt_sRRAGD+^=hgR+nR*oy=55!S} zem`^pRlx1RT^A1szp2)1{v4g5|I=g}l8TWx5{OkzRRG-z;6bubm>lDLc6qOL0eEJb zL!Ktyner>dk)lcWSfae9UD!ej+0+RLSMGZX0ih!XD})K0$!yoLQ6!JV$mwA$4eyo; zQc;3cNziEmQSbgIatGr1B9NMZ`@%Yr5<@sWMk}ibnEKnF+e1|VAe|l>0i(bqUTJ|a z^&5}Za|!>Xq~tAyBieJRi%))I+t9<9A+tvMpD19(4d@pQR}jtn9aNC9*-r&EFgxN9 zS-4S%ZAuSultid(+r}dxpc;^X-q#U=vWc6lfb<{UUjjkT38FDl)CNLOB4z?`6LXWL zer$py>=)fFE#RP==L>(rp504%m<1Ji(o^LrdO-O_Hy|)7#~mgYuMtlF>dFcsqNoZpVnWn>UW1$>n0^UH)0M*?WEAKkDt_)XRopxxM6Ws2bM zEo)FzfXkfQ&wY)7jrvi3>DJa3fhGS26b6DD$bs4M4c~YGe&EyswoU8ZC5~+YmY?&V z*y~OL$a)y415JGH1jIB5@pVFGnaExZ&`__<Ib^&D8_0vHoVyF2v<4 z08hM1luN|N^=FJ;*f+h9hAT=RPf95fZ0|7ybS21*s)Dt?0(%gD^_>;`l}-U{fmtTC z35qFhU^$ALOLE~@W3j05XM4U3zhV#FW!=ICR`2kimaqc4q1|2`IF5WqBxJ_k0>eWn zoA%>pk5M^_r;^{TLgG zXW9NS#&!-x)zYevX(o5_ggkXLQt-0mVF94d911s2khTv)nj?&E-)v-~ySueW1%-JM zEuzrt24h7b?SBSY{C{`TXoA<3Fu@_m^A`9xLdp0a6CKi6-KaQox zLAHhmfr~f+Dv7|y8~|nN%ESieFC?S^#zA~bWDbOzazGL3snOXkVh9`t;`}mJ9Z~@Z zxmkP*%t(!27ds@Ze!vYurISk%FaTG3BX$nrGZw^WW~~Qr-emhp?=VY0$O9w%iT(ks z33;=;!4LKXPDawMtdF_@nw9}E>KQHo6Ewgl9DQHX8_xPL;mdiq+u*<;)Q_mk5D3D- zC3NWrY+u*Kv#@(R(B)IJ|EovT&@gzMm!|{!MIpCzgH;slmKoYDX^sjMU~Yole#*o; z0?}0VV?g8oSP%Kvz0%E11(q+&+-$FC>VF0L(?cE!0ok6vryq&%QUIy{)t%@k3`p%p zH3h}1L=0f<(b;!1sydu!)kJ8_QEKi+3aUUmvmvb=ZW*-!d#wOp9$6|l1fPEm!q9gC zsuN&MWe^A6H+`b!uo9hrAPVXaHaNKdFIxv*iS3nS!3l7J5u_yOqk*#;SUmfQ>8J@i}jQM*80!Q=j8Hl&{ z#dRR$bNL~Nt7IZr+%3NL~Ayl+8uYcmzUs<-ixs_Lu z{idk?#+auLv(;3!V&u;BLy}eY4+q3cI z{L_<~-g&$Ce9v3vwg@`QySjd*Ce3U7n8nH+`C_nt)kQV+M1*1dn5i43`1R>RtHK~9 zanGz>)BR%H6Zzw!+8m)O>RF~4-wP7U>HY90-lO#iQS&dI}5YPFXLU^}Vs2 zYF7N^K&=(m6t9}ZP|&oKnP=pve~wFh@uk@>w~@(G=7=h529W*^$T1(>V3>m_Tn4Z` zbN}|w5K)71W_vK64{YX6Z4*M})lGU>3Q{xG^Q^s;pXHs`39T%SM)iDWqK&P~Gw+fo zZ~VO2`NSfq0}Lc`T;G2{A@2S2-cPcS)8n3{h`}CoCz=5leQv&CX{S76+iB`OIMsvT*qZH_OiyHbM?EVV0WgTrk!6%=}x!%uzsjta1B z2fJ4@eH4YFsO3o`l$PjSk~uLZf)}E+aUldBa+~_MNc|gq(Z$v^7gm;Qm=Br0s&%@m zT?bpXa@ytJIN;MWxehyTQp+hPimGJv*1!PWQ*Le4d2^!2*SZ%*zkAZFosc&8EH*)u zxyONXtHR%OH$P;)4lPg|Jz3G%Rh_ZK&^A)E+ znmeSow3_7LW$KTMWA{oxlr;BHHH+;Cbh=u{+BBb+QhA{`x=$y(OcRuvPS+f#>%|{d zmXk9q3?5}4w-}JLcG?Wfg~4=^Xl;fimy$6R3i;_iyB1&GqYq;Xxd$Uo+w1cR%Ks6X zCX_cvf@@eCjXQ5^*Vw-vm1!APIkZ1 z2c`TJebk?SFE@~zTCjBab9Kb}gwML42qH6+$6+dCy@?|4X?vUTYM22#xNJ1JB1L#V z6SJEbm#M1Lprqov*BtJNHE#Dor@`wxX%{$2_`AM3kAE=Du+nL@AU)N|5FsRZe11PK zcPu?@+Eb-!dx4GDY%GARa8{>czjCEyFFEX&I8Q>$QOvF1Zy1xp4&#*kU#b4GXRPv^ z=kPv6n&`Q_CaAVO9t^vv;BBHCMDMX>%LwRK$kqL_!7#w8?P3d>jvR)6v^Hoq8K`)7 z;u1U!RUEvRZkSPLKVEZAzB}A{ zjcoW~37K|mm>@qZ)42S21w~a7w@=5DWFvgEORuIvk+q&XC1@^WP^4?X4LQlx2ijm1H`NF4141LW>=3y3CxrJJ z)Jp)YH8y_rkI+KOt!oU4tx8zk{|c2MHv-JXaofUK*R z6@70Yp+uTc@ofyFZeYvN@d)$ND2_#F1GF8@KGE-tVm$rQ&eGW0P+vSw`XNKXz~XC3 zCYuv`(+`82R5lFp2Fr7*@LEo=BmDv-B@efJbpSzO3LGNH{X7l)WC(Z zo=qGXxy?sDd^}sZu-6QaVq-*j>(sMzXDbwtjqN!VAchwJ^^y-SJ~bv~S_*NpVXx!C z*u<3dUNwa=&IgdQg>SZ_^-nK;kUixw6MA|Oe(L+s2B#~gf3Wv=wO5-LOi0OpDWUA( zYG&CQX7R%GTsN!+NsG)8Obil(DHXggO42f)8ESASUbmn!A9htTL_ActuW6}zV?T#p*3KjY!Pb{y4$(1V0J#Q6u-|ZkwYVr2VHTf=hA(udry%(*wr9%LqMAqku_o3a@X|3+ zfNP{}Bu18upS&5ir~orWI7Bg3^De2@$d#xfshwFF##1i?ALNiRY4kn++yXftf@`@b z)Feo?9m(ytKqRBv0?-biIsa~719+-6R%6o1P;0k@84Ni(4aX38VjVB4M@<&SR@8924->d4_6M%oz;uGV(S-)g69hk3 zDoJqdY%xEDYco+JOxx{Zjam8aH_bO6HTI&{Px`BIU1EZQYB-`oq1@Vl5_8s2PRf^v{5g3`r9L1FwEr!D17tEiUmvZ z%~7##R8XX~j(dBmNryHEdsl6?Oo*}@DwBmu)bf57Iaei7HhEt`iGU(wsv3?E^<3Q^ zs=AR=aG*_=;DO4s=N#5w>vvdxO1Ne1h$1@%r-mOV!$CJ*LDkHg-S`E|e20;@DeO8X z$rt=z`N&N;xX4pFnKXDXV+7+mJi{^9b<)O;UGSfYYUE=_lYyy?8`-x-{vshk?Qtv!1h6L_5?WD``N?38c!c+Z~M|z(J!s@-Kq03zB z>Ra@vAzD*6e)RBsHfr7oW+s57K9je>(oxMf*miYAj@eXbRiE9mONd*rpWCNT zQ&Q8s=;_c@{3ktm-fBpWxsek+Tis+5#(aJujLg)em`NxMqBzijr57Q0i@S&K)=B28 zx&LVrQ+J}!ac1En@2DKoFbk`>yZWms@=g&a`3O^zlWnb%f#aKldeP-YW3Qawa&ayq zv*IaI1fqy1o+>I;qox^VgU>_S)0}d|ELz}7MCI_Pq$(FJ! z=^m}kw?l%;OVB^lYLHR+7KkD5?zc*tYXOEcETa9VKQaax-|LuA*$5tOlax)7avve{ z!ZK*pRfQ+WO1B2RL)gyOEmC)yn_9!uYCFj|jvG=PP68PT*MkR5&Bo^5R%FNd_@0QL z!*pMc5=Yco3wuc#oS%QORvDITAQS6+`c@^q(mogIB->$0^V561^cWTfFT}79WjmxI z+=|i2lVF6H<-)eb_hVWU@{SoUI zgatO91Ell3gu-Db#+#OFau>Da6u-k{`#1*pl6|Z)GZC4CGuioMgDQG|N`lFv&5~KR z&y#+zkIKjP!bzhY)r{{0C;&y4**6!xSuJ?0hj2EzLU%1j#@b>}FkdHR)_a|nqtIqhQ7(d+y9<~ux={brwO zyv2gqN&1;1EzQ%IMqOS8)g~2@v!03`!97my8&;Y24BLx3Hqt|7}*Mpy=&ntv6 z>G%yvhMls6KCW4?h{Wg*EA14jpHK00o{{oAMrX}l}W8! z?^oy{HC|7D-!7wb0q+&WN%l7tdfsWlCF`%`3z_JHf^D~F3!|2wju6j6i0wk|xzgD1 zsT=Vs=D&?0`zd7uq@-80rzs2I5yq7>G ze)P-duwyND^ljd*y5S69am5=4`N1fqg^e+rqcq>`a(;#aiP47vt57mEy587s|1mc^oxw!P^Km4a0(m3tu;Slu4iUnGKm?+;2)uB1^MgEN;ocS=FA zj#SRCeux04*A@bOX#v*cO+}Rgu;mhh?Iw(^_GzQ;j!YrB?}?RTmk1GjOSF2%ym$S( zS(;Ofx5~48f`IOhq%fshRx~8uMD=9%WObb>dA-r$k)Ma^5y#IKg!hmh2kcHx34LUi zAVnw?659OaF;qQ&E8WxIuEIFir-Z!LJOlFr?w|}S&NX;7YEHJ%+Ht&lTpSeH^^2vl zFg3rKkDNKZzVG7(TMsmnQV5o301iKr)6E%7R?R1NBl|}=mb6$@7e{=cZs(dlNx{8CpWP>ShlC^jja7|IShZEN zPdT+^4mq+Q-KV6nX1-=sP4~ItoC=J5gU42i?67g)h=Y)D)lEbs`GMT#skRjPee>GREd6-=;d1F0{Q2`^0AEtYGL?O--FxSE8QwEk}Ku zIU$eleW3@7%SCC!PvW5d{KaDWlsaXV5!B~EHnz7GV*O^rH5bQ+{L>90Bd*hg{a>8= zo#N8eeCdn#I?P>3Ba-J;U?`pvgq7o)p=2|ie)YbWapSA?(Y*)Do6Xa+zI~{AS=gOT zr;pCg!xmv=Un}g(mp^ZnXJ9*4c*9nl(x2{SAa@J=q_J2q>KWKC{)O}XkLQ5UqL)}~ zCn5)hr&IMcs_+69pCnwft?W@&o4VhrWtb&o+!w1-7;IV^A{48WxW1wKWi9?E>`cQ%e*?W|&( z=M(ICCRR0CHEZlGW}58HyX`Kj&S~aPcw)J3aWrwjX*dT}xx!Sg#S6@Doa}lxUNz(} zpy3q2U*T$%Jzr6|5Wc2N&q z0$ZVWon8Vs^7m^W+DYSIWfLm=0u$la$Mm>L>N?_1OoW10X{g)ttBjLxbBv0~dJdA^ z>X*x^lDc)GZMxIHTHRFDOgQ~(D%NUVJ9;fAVyuMI$8{~;O}4_%dBkJ2-YoxHIej!` zUb(2$UGH$>g;L|7CwevZ;Z{LTy!diU;jE34ba>dafi&-!hh?GKg+3^X)n{yjZa)-D z7WpaWV7PiJ?A>`ou#?z9;DcM^YosEW9gGtE`rDFRda0xAz2V}mxS939HpJH^1u{K! zwTI!$F{6RVg^Mwj`vrl_Y(gvC7iwiOISoUoW+OC}ZW?7TkF@^kz(zg*A+x(gbmi`u zo;IDItye{uO*iUpUxPQEd6tA=f^+)tr##hzMc&9#Zyc%|)rtxIl7k&D*I6u3X81^d z&^wHLORD2&qZwaqCGOm!qA1|-o#o_5eI)+P-t2a=f=M&qtxu1*$8*_ro{V^P|FXkE z&otNk3310N>?Mt!?jv<2jXn^)#X`5j+I8}8c;Vkb!%aMqLyVYJ=0etB^;xPf#-JnU zv#=Go?8tdJ!dtfW!`f*6$#Bdwf<9({M53N0EJ0vqe+Gl?xrA)l#NA;gVs}J}8&nWM zC~}U(O9Hu77K1;W9dTk%MJNX9_U#HxyA8qmlDlgRK)JsWZ1bu|ZnQQZYd>D|I$I?U zgT3LJ7s-_MHETY4s+cqQM8G;fb+j<;=;O+37BOiy%+`?(2zo-lW$ym1M61!gsr8k< zDR!ik^@NO->#+EC`rt%4nLXWQ0IG>IAcnNoJZV+A3`hS}>#|@0^->OdqXm^qXZODM zYyE>iBH2&exJz8K*DKs!>vmyYhcRD3w4Juhw_CR>ukc`E`K1eyIVYfB_%Sgnl$Cx2ErCJox&G_VpJ?bj zR6#HkvE|2HvVsEYW2YyugK))wSR=5gT5 zcy}JEsr>*)dkNjVE~e|X;P9xU6T!h}jy}lB+6t%@MB zZ~LnRT^}g6aKa{G*O2<#iy`lCb2`h;bYh)& za3gMcta>5IE0cT!)FYe;(NM)S8|s#kjK7%Zd=@4C_>UohB{-c3R+j_{rl#P?6F3Hk z_YRy|p#5w=LV@#;BTIe4=AxajsFh-`UcO^oDY&8A{>n0D$;2J%?!kkG4m6Y=I}I8c z!RXWk4xFMb?t|xngTjD%VRyD5#w~%`8km%FblsnsAXi!cG&_;oWsaHYD#DkPP7G?b zkYom&c>Vn9P+rpHH1Xl&H98F*=x+9VQ2AMQc}WV|Z#p+WV zaoTw#q3j4U>CAJ?3ZYY?IP)4=4?DewDOe)@e>5Gk$Z1kf%;>1|6E|piU`~U z4$6??1dCHi_YTp)c7QK3|UZ2mw4jOA`b@hu(b zykT7g^cDHGG@=0#;4MJ4SIBaz|0=E-dx75mq#W@3riW;)(O*YjiEKX7k8-FX>6m#t z36q7prNvT%%F_ac9BISPlY77F6jF%GJR9^#h zb|@u^dX0|zrIZo+D*|t8aO3?FY>9J2f~$?pZ3U9aE|ij20Yj65Y6YkkxCip5YNNOJ z0@6O9D{rR1hUoc}904M%2t59402$5QU*FW&S z?~9YmSq?yo-ZKMmuPEG#CT8@@6OqH5y2Qmeiiwqy5g|1UUvy#%u6H6Pc)ss zRCUeaKkvIf3nsGxvnB$;-AzNwOW-RJb_pOj)mgd5*q>f4^=xdKj!`4bVXhna8S%$w zRnpUHTu)`;7tfQ7K@EZf8U$mbQMVjuyYH&L&2tNm_8iPsqQ_^S2h~~**iMP`>yQVw zyV?8?NV?YwxggprKFz?QrqJ)ODz4MFuz(5j6UZ=woEK=OZh+0ztA~|Adl=Wa3P6RE z@Ys~;P&X-nyB`F=y;HIxlMy_52WI$v6CnUd&q#C_1FZGF+kWaQ!<5$aJRUyp1)ZUO z7#f8T!39-p3)oxFA#;*EO}zKN_Ni$D7G8Cdg^J@&LSoia2@xr=vGHA6wR`XtDcY7+(c9+DnxxGK1NU}(mK&Ae zTunUk;N>@9O16$n_6W^uDWjbq7N3&!fD)}K(6#N|%Yy);w*eJXh?gV_fP;l#|FsQ6 z1mLFM;E!ef+mQmInt&VHY=hAUfMOYh0alRbc|~#&>g}T_7KVoJy@Mc+7{FqLd&44+ z0Xy^31d!Bdw6Xq#n~*ot^dyHgr~ZD*%CV=&o>t^gP_ zQ;u_LKSEI~eH87kA}e_lD2b?G7K;B}vT$&}{XL-cjqN=^=+GwXpEE1;+iCH}t+9J- z;moiwt+A)Gxr$95NNiC!0$yiG6dVC)!PAQK*J{T72Alcz!(b9Bog3)d<|8;jLCpkn z$S6f-!htHdr;+@9F$iGa3NR2?2~E#{Xs6QNbsVdi0Rf}K=0~Q30clQ$JiY31s8o&)kB06+`3w{I}$9y$MK>d)T{Q{6#& z95n;EDwh&6{9rI>4^;jfK4ldJnjBN1*TPp|;6(eCwmRb`j&!rV$-d6o#s zxUrEDBgl(40A4RY^KqwzVC3cUgZ5C$Kn8T~(LsdBcn3g4nnL60XDI`8)xBwYtCq^% zTDR?*!)Rd1kSwtlt2t{8@lRcCLT`XZO6zt#G@t_NgIPgb?NX1x6E(mrr8_!tqZ29I z1KmMB9QJy2a-Q*Qv-J(AGprdWmBTbduMTy=HYJs z;&VzG63#}bf%SY?`vme&-S>X50qqSOKS!s5=DZWk8(Hc0BLz?X&t{9gNuTGmbGH!3 zuOuOF?XJlo%v@{$SB6X{1ptW59soE7EV}HV$Pm7ho-1l~Y_Jgb--$MzoByD3(125< z1S@f5U;AW}qFJhs;en`eUlYLHzYUe?h!g+|K-WQfDMzSmXx{kz0qfDdTr?mY(E`H} z>#c1d=TrvJDB9(vF&A_((%_5p-q(mT*8g?^dN936ownsyKo(XZWfK_7Wdj*`k#ecG z6Mg=ydp8rjGsrh$0)0_|@}>V*echupDLNw5r#ADzlrYzO#YAMY1Hr_Yo9l1kruk42 zPH1Ja4R(a)ZURd2-5*M@rnX6;6v_}9A=K-0D$D_b07?YM#7M|HjOLq`q z$N8!1*6k8rB)-68bQ}z_jsFtz`uU$$I@iD(+J7p#O-lhr{cSsR-?f3K5@_55Hb*^> zVfDqcKmo@DJ-?MhM359eMzw+S$iQMOXvUJ7Ol0}*c~4lKv<{&@cLL>>5by;wbWXwa zsHS00DUI46f)0WXwB1pLIV0eS9>Be(%PDd&r==jRS?V;XlNQLug8cH=KuQ6iMt|FP zC^MI^8SXso{s^QY`AHdoW0Ys*EQ2S5z!<69Q^<*8HIRcgyqt3k{;mrCJ~icFd1~`t zy#QF$Q20Klsp@o(yLddU1mlvIV66eGC$NaP&?_#*aXi0m_CEZ9!24;6++MTwTRv zj7A3Jau&)I$v;h?{#zLF{|5^IaviB`&)9s16!2LRV52)^c_eT`13W++bJHF`+D{D- zV+kDe0nm4f0n;h3;DM~KfYtvsobwG6S!;I(OoH?KC_e_;DJsCSh_qKw0LT;B12(e_ zO#zDh9pIcuW`*Jc=qFDW2t~p1h*&DY)MJr5R6rYDB9;K4iwX7?6`1CA+u zQXh~5eKGloH<8Ww-T-9A`LJdIxmRS^0O(MJ0H|$0R3eR&FhJ?0Uti+ExD`m!gn>z# z)7Vq@6wp>9F!fBUNG3q{OT^Lwg8okh3E+J9h8`%dlc%x(pjQTf5&CgE~ zU=%zUtpp@&6UZo_gC3QCBjHZESN;Yxh)rWVpoeDQl@w#r?MQ@6Q!bbi*@7t{Bm6Sn7&x;kx~5T_J!l~JYl zu2-garCAXx2hTqHYkepQ-~RaIhFgC%^VsOvr0B1bs(c;Ku#d)t z65_XcajU(iH}!WZ^wTd31zU^Qo|rxd(yEFn?IJU_g|GE8LPm}wT%lu3lx06dliw!Y z?n)H(t8I`HE<8cB)-bB-zlKOH?);jCLxi3pjq;@RlrO!t>c zherpKT(qvq64fp)N>=ZJZcEB^`qlLF4!__e`*v4DLVPuteBZsn^Rjhzc6(vvX1+q+ zRX)&UyT8}(9pBMKgwFq=Dq2L0ixn+0np5xR?AL8q`PK;t<&}!Q(wk@+ zwi?_uDSfdqBeS3~ko!ZmzduKy@VhpXMuggpU>S3gSk|$V@yP0S!`HAJp5en~h0Q$Z zt$l^1#69&u@k55`muGD+cJ1D>QS;d`>S<`WHSYNsCnyF1ov`V zqEf7WcfqHJxHXJ8T*LAySv0?G*}e{eGFP;m_rXQQb2F0FfR`HboxPjo)fy^0_KbKt z+Y(t5Y52ZOSu_sYS#X))5rz*q%L?F-I%b(V&N&0EE+=4h-;YlLb>0DwGszkVs6^Sh zs6>q*hkRvc0b>e%Z5aLj?O#b1syDL8oc3iOH(N}MrPRCgj}Cg@OlKS{idyfUu3RjI z)}Oa$PCpMN@jT|h4%G{*Aq#u`MRCTL!)js8-JhWwIeHv3r)1%nkikV`lHn#vtx!c{9dT!?I7>z@TPyjF+afw=pFC-h znk*RgxZ<&fxvzl}ptZ#s{GP`p;OJ19GRfo!sU#U-Hb1w@ImowV&whq3m==?joINjc zQWtQ@n!W$2|MTT9FHb|4wdZ3?w|VfA1jSLVFU()mwcSTDz`ZW(=Irc8PMG>(kx5pZ zo;*HByugcwetZ+P`4;{9P9;o`4D&Tt*WpyTRvuTfkbB+lRu=@d8RR;~azylZO>kBx zMYBZ-866f^NDGq~Nz1LZ|*lcllsymy7p={F; zU8@0$Ddc$S`ONsWh$RH$UtCDq`(BXoz=qs> zB$wlRnoXHncSQ28=+tEO-A zHg@(OtaJ}1+EMnRb=p7=voEo+F?eB;VMY@E{LXG6M`t>~QEq}3ps zXkKJ#ei@rxskeZUwQxy-M1_wFJ}eMAGy!pN#8(jR3~KQ?u)F!#b>}rP$~_{Kd%`s6 zr=-`%CVkx$XxGEECV}Yu~55DLM0Od-?V_R zZpoUQgR>_|RvJp`QYBlZf-AlhYQ`S={+E+@M1Mdd52f}YHHmhxVKF7eCZ)hwtSP>N zsqv^Qse5>FGRDreth4cydlx%@0@<^9jFEx0vFd?X<1pi{mu95Q1MS~%ey>xWCVOP^ z?@ZbbCiyn_@H(z|QYA4y7kZzi>&)S$CxF|x&iQSU{brQhsH;mLu^zYHjKJ2V-*v2R z)xC@-?B-FpyxIGm7(=s-VypM%tJ3ji_nNeLjjc8%yCow8Vx zC{!M|LkdwmC`1)hf&$v05V^`q{eZl?bOsTVxW}Dk0@n|uatfCvv=HXCYxj!LYO=lU zg4Q1mkb1*XT5ThRyiyjt$|6vlbZrxGN&IvFa9ZqKByA!J9+MIdTauL0D$otGj!s*33MOrCuZi_L(eE!;wJ znqVYOS8s2Q7U6{TN6xFoPuW2Hf)u6fvZ<^`OJ1aZuD)OvG#xV&bYQp5N4#|v~B0|d^NO6;w9 zF(p6{nWchzQ3sMA9%Y{gx5d0z61r&()Q2G^hMya&MP^L z1hmJ+k{bYRjla)hy7|^f`?t=oQS;emY2FefZ-{%4`TEjAA{N_TZeoZHKw6J?4o9$9 zLt&DV9xUU=z)d-7ZA~HBk3sAi>?=V|6(4KZ$u4o@+`Ma@4n%B^LLw2zUI-5OpVmvx z7FfI8ijH|J{ptuk{+Ck(z5lx!?9P}P>MvW-B)EZqVBT*4*-2#)&E9yP__Lh9?hMO8Ec z$9J&JtW$S@F_Ioo$-v%^>+ScH{?d%`{*ZD%7gD#Al~Jh=;=P^THER3`QK4x z!NDv@fWc-~b0$Lk0PXa>7X@GBs(kVe2?HkpLyoARnqyx&Z&wc2m0BT+e|~tw)+Wuz zks*geTEE5beb+0YTpEKnw~L5oarl8-tBy!M8qx${qcV|}&Lt5BRPO*30vHF%>Q>li zZ3d8cSc+2D2s+CmPUN+eAUE8o;u8`G>rjH;z${;viA5z3L#|PM2@!rFZilmY2>U~> zBNER?y7u$Yy>;Rjb58aUZwdXFc4wrCIZyBllZW-a%MAt5PzNLna$jE71}SH^%yhS{ zh_JUGk)#v=SS4>GqblcBjDnMI`TXmH!k@vC;e!yE^vy)$;Zh{xGLq*Qu<@-F*Ud`8 zjhI4PvB(=KQJ_p;zJgza+kP_u52)FaRzRMt~K!E-Y5!t~~7>?vr9Y7OM zVP`4*$MVBA)u&OmtLLI>cd3zB@I1~GQjb{9ECkR2Wa9-eMk9K`EK)8K0gEV^hn8=K9FY^i>JT;EcAf{N z3Ko4XIm06{&jMl~ALO?nBl6TZD;_!GGtd^WjDDB@hyH9Mas+5Tgd^#P4oK6-%;Kjz zIPTdKJ|SF12MT9br@G*kGE2cEAUfWD<6=m3ut0R~yp{a|5}St(KnD*~QRO};N8(I? z)##RbI~R{_Px$SGNughrWHjFP6%%+PAZGHQfo$ec4+Y0HXvF~l7cz|FLINA(cZwLH zBCAmXA9@}GxC-CVx6=dIsje%N(^9U&oe(9E5`Y_t0ntid&C@`lZwsOyn0^3q+kf>1 zAi9?kY1*9Nm74B1a_i?*kYI1>F96=lO%OI$}Zo4;M2{*c~KM9Ug&fnhh>&27xR0 z0@-9rNb_WIM z#vvJ;MGQ#Io15?NK{yG*0VZW-z3T*rv9|y%1O9DDX(Ek6C1sig&dW`JlIi528ii0O zxyXRG)G7mN)K?Iz4xXg50Jx})+kfXn!odi@q0|0N*-Lq;aHmC{_whcD&I6?KVJQKg zQ@wQAq}Ja^LJ>g=8Ugn3K+5xkMrMB*~IduZkC$h7HXMJuK3m}?^g z_S*YsUhlo{RqDXWkk!wsjfskjHQ`?I5SaeN zBE0co0rTELetJ2)Kom(zBb;%{NWZg-SNum}k@g6}qnjl8OFHq7Np3@V|s^?>Di5va&ixjxI1U%(;7bU zh232CrHM->k7tg70Mem0K7LsSV!ZgK2EGi_R4|p=Z?zm4IN7#Cs8nocBPA8v-*di| z83L2^9-@r=(SEyxkXRCT+usV`FQcZ$Mt|$Lgs%GTCgKSe)&k~Rq={lE$3pKx&+8BPG+j5$#yzo0!icWHt# zD>k(ruv*^w^grBHSJCdijr7MIl8oeIN9;9_9j}N`M13II4n;zC2Y@W{Oy1p}Ccmut zhN0lLaFxq%hITiX7?NX%VmRMTm29SK_t2HAtr| zYZ~d;?AA@r6ZGEIZm#%Px;@n)Pe}yhwzU<7I=UgiMyzF)s5(7#CqWg^i zQW93N$9Lh)m$S4jWW&Z`@=Q;{wM0EbG`DJCg;K zMfI-#wUD}=_Z7^&V)V+z`{)rSpXatICv$u~x5d|RQ}f95);39^-t9fy_uS5{_7z85 z=DhrZXRCYj6gNG$h=H@nqt_c(+cz1G^rMPp$0{yWQw9GB&g{{5TqHTR$M_lI24i2lnxc9 zmZ^sjLd<5^h+Gi+9!;=~@9thcghTU^TW?d=#}?swCQnI0qb&Uhn3r6v*&(VnQ!V&+ zX-`a7FOH0DU5>Ob8DafX*85w-bOkGD%=R-nIjK=i{LV-d+#T8$D5U;mVAJ;jE?+(D z7-Z}TU8A>Llcvw~s^ zI(E&Uk9HTk=A9{NHE6s96}dU4ftr5pHtw`9vje>&<-S?Q3TJAT4q z{Ze%-7p~Z@M@44s)j&FJO~a`Q$PgI=2oC=wA{>4$BvHs@GYl7iz*5NiDL45V^LFeI zx76x!NVgNoJpBIRaK#ScSd)9^;{C?=ZW9ENzg~4ci#X0XS=%h2j8gsWeY!?i=Lsmm z(PNUSBc?C=druDrM_z2@bJ5*=>=S-hf$$ECoG3z|X^HG({2F%ICcLb@hDILI8|N(| zdaM&pQ6%^;(whDJ>wG5zyZP#xE_0*mUF5b|z8X1_NCRCr5T?994L^fawcfgERl&~}8Kvft$aqO-Rvav@ zFT&UJuJpVq?3#`-7j_QYyCJJBbj7W=7iMb_Zmj%tzwMoyf?k#Y6E7l^ptdd{^@-yg z$*fKF?Zz$0F0Wp(W{9`o{gFpPRMd8eD9+x8BvA1eRm1bN%kyr0g6PD)o@9qUmpz=y zoHtv*tL5d-edMb0zy2ej`+0Aw05*V-g7?^df)PuHo;Sb3H?LdQxJu8(_&u_FP7}!K zm`<$Y<7?f(Wcm+e=>5a5Tc;P{qQz}aDIToPATTe#t(PEK2twNA=38N{w*v^#{${V% znH)azZI@n0TELP$iH-3w5sxx?{&f0z<^tfh#VF8s7G(;A9c#1$9;DDH>Pk|46XGJ6hqNJJ+7DHQahs3<%N6h-KBSKzvY_{u~`)qbrrIb)p z8|1(JlSSgb6Z?FU`kJl)1?jBGKtugUl4;`jr>?E`FJ~d~$VOX?p_T|*yruv${oU@} z3v+I0{(BP>&%z?IYFr+kz0OETSc0B=A#wU(YE6jTqeTiRR;Sjb-VLXx9whkm2Cu%j z$HXYR^(WgukjGNY)VP2`t|YEm@voI>7dvm1WnqB%r(JpwnPAb}x|I`ou+p8Ba5UP- z)xPOR;4l-K@bzLBVmD>uUCI0s_%Q; z`N&&CyPKI7ftPV}l0#i*XljZ<#-%rRe5=+Te%Jyl^%;W>2rYUO|HzR5EWX$_x)MLO z2kCvc(RpzeBj!IlG@ySdzv&igw!ahp>cL;f8YCyRgBTtzGD0e$8>)(n_ZTj0 z;oGCPKQnHpGnOOaTagiOQffyN=Vz?H)9>Bywq>`Meh3F|z{` z_g!ic{!2XLAehWSDT z8Muo-2Ihf5+;9I*=SYCSu-havz1%FlRDiXVDwJaV2NBMrLjnGB z?_Yn~zsC`KYa@IiIZCSVmTFe`Yu$*T0qftO9hi#!yQ3`{aI8F(4e^gIpgnau_-XG_jC4^O1OR}TLT@&5a-fAuBxJ!<~^rOSl(|qwxcJ{eUm_~_RPH1eb-zP3fd2mj z>}gV+XutiUuC~5~e!NDmP5kF)+`(7ieMoKd%zei~NUa21!~Ktk`wF($=iUkVxR1=G zG2J!N`QD2GhnAF45^O7D5bZMO)yY}T%o3=;CFJ(~dg{eejDGPda}w=x>-_^Swb@lE zZgfeF^6KiQJl5}dw=b;m2M^;1Wi8Ml22CH{pQOupN#Nza~mp#8pl zdCT}~%wvr&1b?&6ks-Dx^JPz_8(UIcH1mD6syQkqyW}A;V)~(hNhYCG+*9VLJ~H=( zn>8NlvxTLGI&XKI(P~kAyHcwVjJ5q+_D31d_%#Qqwz{pE^f^-|9WBGoFa=4qMV#;{ z;$u|b6n@Gc>uE5p^1%&(E7@LT3XNoz9mo!uL%nOxY8jmjcP5)PAa@mLq4NVHB{h$tv%IaJAr75eA_vU&t2X6$-xhVJpv|qv z>23u`t$L_)r69Z*aKCSG|k_0&zO9$ybi`p z9_Nl0q5OwG3_^9+RMvoqhzbTdINNu4DoNhi4?X@^Xngk`n^SpE^LeH7m5$x@O9=e&EqQuY$1BN(xD|vDU zHmLzq$ykNVvZ@C~T93v^dJ<;16Z@Aab-bJy0$e>`CZ6O88)}PURT!}6ncCMtOJ~F% z@lE%SPHe!G&RR;SL|o!G#b%e;%%TVLqD@79w%AtJ)wC(;M0XvXT$RK&u8Kt(R#-MP zxpA!-xjDshRQpU-=l0Ag(l^J>i;)N{4{mr7{fr=u)fjX4GPpw$8d+!-$$9vOj6a3! ztnwaQR&Q z8|xvlj(*gs9Y@L+@s3=1x{=A=G(I*GoUTtV(I$y|JjFd$x(z~0!D=Sl5{dWvE`f0k-`TQvQ+wA+ju!WJ<5Uii~c>xiGs>fogT zAvR{-pSYS?11#-J9}dZ&q)rdKMIImM@_WX+^j8r|bd-k2Z>*D;R z<(XqLw*3W5!!&HFFS#P;BCdk(7a5a5zi!F$ky*4A#3fmGRa@S}K=av0nGhC}rQH31 z_bH3V^XSd&=GhXC9JBa>m56cz+iv8LXHypo0@t*Rwrn}NyJRnCw;_J0U!&>R)2esC zxOT;5BJ#6!4M)T2V{?LTS5E7OPcb5%AJ9dZFxE)%iiotSQJ$Na(X4j7sI~G%c&ylP z!gNuLyV&U*J9|!rIlIH7Gcoo%9LQnYAD-Cuh3Zo0IpA2d@(bLqY zR1zt#2vqBT_^m>me#H|}CCM=9i2828_&+~+y_CAvujPPA1ckd!{PB-4pd#_fa*uxmFe-SGCNPMyhbhf1K1f26F-s_V~Y*K8P+#gJJ)H(7;nh9aVb zPb#+_C-nM?;B~%yAm7-!$UsBXy7y4r=8W2cnzs0|)&4W~8TofpOr8NXLMcJv8H#NY zF8=FNQlu>A0~?)~(`zx#w$obK2^D4vmwAf$l!-1wi6Ks>h>{ak{qZBi>e#!9DTz`O?kA_=t7eDUy5ly5 zO*YikG%A`posOXywf9TccxBCvw?07ms79&swiuV~_GPU7^+d-=u2Slo}+49jrn=e{uFeMXorcpA1)RDqvbb^ByF+VYc% zR&oGkz6rw@|5^f>0}3l?0TJ2QC+nPxdaSfu%bse?KT5+A_#)}%ex5&=6!bJ?XPTZs zaX$TJ;dt^b7yH#`Vr|c^=sx?OUcsR?r}0W7EM}uq?ZPuY7>_qCs%IVx3``a;VB$4* zWq@P7p++wexBNx0S#t%aKlfltg0w+XJmG3{ z0bbYWEI_?x@3`fS%m zRhPHXTD$lfMi#$9a6G+7#HNJOmx)CgyL#@<>PC~n=8vCxGOKEZ%GST6?wsOy#AC}F zScl?y6dRS4lHFf6BdDyRkH!Ke;itJS>1U4Sx@LvOHq>q1o0vqQ#aDlQjAJ!tVR_g^ zG`p`-O%fH?7k+EIUq08?xuuyq$6BuB{K+`6g>=a~^MVln`F5f3SCe(S-RF;&rFUxi z;Gg?#zHPg_uGG+d-NDctAxxp;8I@nbm_WPM&$^=ONR#qgB6pl=Qk7zfJW<5$xK6)( zQ+zaH{q2OY?NnvIb^Cby;Kr+NldrEeBCF5v3`fZY!cwoSHk+;vplKa9q7E|hM&#kL z_oy2?UkMNLk6%yl)*Ius>^YfncBVP^Zcg(&B9xG1GZOBNjTSv2yr@>M%Z&ehHwmPm7L6EGp9!A6;JFX5q?ELN_eGn;5Q__Bq zmkL=vO_8`ekI3uOr0Yva(B40K&km2mB&5u=ZS6RFeqnP>#7U8GXJO1qz^Jct8UuYI zL*7kjXv~1uArupv^E&Uc)=S@uIlGgG49(;{xo2AZP&D+jk257Gj9);#2X6omtWK7-DsY!!69;Iw`C3m8SNoad?;9;t7>)$>p$W$JFRPIlhzcDXGqgN=KAX zNnUn6G5x$>WGHO@e6)>m_3Wio_2!p#-;@@;k+!Gs^4a%XqvWPx@?Ec)q>Kqn0}rU} zTBbiIHaCuNnOj$g8Fw?u1YxBFh-dcXL{YW>QD6PoP0X@n$mtpBm^N?M;*d_4f7q?}d@ub6$+O(~HE=qQ-TAsCNyvv;Spc~!z#gno)ZlN|u{A&kKy$4+* zBSN3B26Zjg#p;d2vitDT5|f!fs^am5E%P?dk$ManKpw&saw^yrydF$Ghi3()`J5P@e%`QZb=v->E8{*d&$2KwIHTjYKC8Q6IZQ z-v=+=m1Q2pWz`OW5luZ%xy=U~Pkyil;n{u?-P(?G{__2ybob*ca?m6&Nmv z&tT*H+mSejm6q85kbj&ciypc+Elik!=-3$g7Lm4v+S^k!V6rS)$B_{TZTC5^ul$`# z$RQZWx9;l|$}{%v-#NWX>^B^wY8tH(Z|zil;_QYYH8X4SyM*WL)@dAZ%LBId2x?9{ z1|zZ|>ea59FIA`3Ct~c5jKx0!!Xi*Oog1y{n)I^Sex3-EL4%$)+@a~L`O0ed;5T`K z%4*)H4^KwfeydazC3q;PeZHZ!k843&{Y`K|EEz7Z8qoDAJZn~|%l=Q5LmAW106u}v zaA)bjp&50g9IL)i2_Sqp#T1JBB80rF~U9 zr}y5Mq?@u#9B$0^BF5eClKMHUf2?>aU-~q3tG1sg8%^i8Ip5(PSvMp+>mqgSx;RSK zhSPn$j?NI3*zqLo|oS14uYjRebAmVLL=e$0IMpV^GOEeA zl0W{ov&XbL!#s# zFsrPliDFXl@|{U9l>5HgDxs!sj``OS5~iCEHZxy1GsF15ey+5g*=f@J!hLEi+)AXC!g<6()oHr(8()ib!}M{6xtF>%S151r=sV-g=6;78mFEyj zGq$j$t7+Mx7~3B+k$fFgc{FDE>9$oW#LBx=Jvg_0Q8Li#RH^sIhSa=rvq=!c%j)>q zpZfLqn(2H2zlvk?xtd>631{^)gOuO3mIRAh)&*qHJ5aEKL;s%j zwqcy*JlHfLgL!Nchdbm-RM+S&`HJTm(LVL+r%_h@kXw-#6FMxQDy=iHNm}`FXw>u1 z<>mrSrhLbB^W%i4tlg_;uHE`^Xyd<<#*fX4}@kha1WFynj zm-oPLxojIK5B4g;^XdtYZZXEFtJuTx>^}OiO)%3llDCC=*QWaMZL!7da*;B*XKGEQ z!)y|F3QtYkl|B4bTwR4|>=)VMwfHFU){1Pb=^qZPIR%IUdE=n6%VE#dx6qlYKV|EW z$_9(L@_q4y=H`|@QE$dW`IE^hOdTmd8flU4_Elf8;ya0W?u^(A_eTZDaV@Nr445$3 zn2g3y?o8Gms*jSp@=JVX4YZ}=U2sYFs`b)bv^~6aZAn-k;kiyqcM6PPwEsO6m8SuX zKjL0A5EB|BiP!z;ak<3bXLqCAdo^gSPZldW_L8(#lA8ez-9<_&v^OC}mlUr_FeX0z|3@ZOj%KOV)|NhL|A%^({0bQLe_4|S5<;Y&Q5 z7~{F!U|8d~v|$OJAEJ29pBlP9PtTf+7v@xIGzOanZhf%Y?E+r*x}de6HS!%_A~5`i z?q$OH&8a4rkrrj8Tmx;m-Ge#`&i!jh`f;_3dC-fB#~N71a}O;^oBLjGsgjrF5y#id z_U0YSF7(et?NuEd{et>OeV}^ayd!B-^A+1i zEfI>XyJHsPU!bSLUNN^maan!Z;Z3nl)h#nYR=W`b&NgQ>;qq+3LrjL=%3tu-Yqfgq zNv^p&+Qa9mejbU+{@P|WCv8VKhR|2QwH^lMch_TSkj8|l2S!5a(|$xuZJjwLRt+eX zHr6I~&V+N%z*fkYS8hLS&K6I8a(LgaITPv2CumHSvg|fYBILz*RsKdWuVg-{<3>r+ z%<>KIwzpe(sXeqNKIN*mXCU3Se6HnlN{>T-WA?qi$E~q4?-DT^G$?cKN(VPN5k8}g z3a;MsSj&qFV)>OpBuVg3kE#z4nAvQSwEz|*OyZl0+gt6mc_tO z1|rsZl6QZN(}jEEF(%!_sHZmY`q6k^b$Y!kpU{o(7CnP==BZ1C_Y3DMW2Nxwep4Lo z4~+OJTsj|;b!L-)sCCd#t6a1dm!|9iboiX?D&@hK4?V0ES+tl)vp zvfo5f=$Oxw3$l5j;p&U7@K<*8mdw?Knvz!G)tRH#*|3kf`sdrJM-q(rnPh95*{MyX z>hkvr#^PKsQKnPwPPVpx|6TRt1CR&PMW#v6N;Z@*YY@7)QKppp@SqBsHiTpR!FHFX zOVbX0x>hlaz}ca-oWGQr)}}t+G27bx!#8Hq{NADTA0EO9P2mY>%Yj4RmUl&mG1j&u z5Q07Jf}66zLqf(|5&9u-nunjH{XwRm|Ia-gDhMh+UEGD_Q@D?ap7`b4dyx`enC5#w zV4Jfu&@JXeICe%H&CkUX?+%HFXs?&MA#dGEnjGIrc==eMS{|qoN6Zy8724vXLOT?k zb=RI-Fn2ZJG%Myl$Bf?P8%%>LuE}+5ov!~Rn@?NQCcd;u)MF*vE*ar-Mw{65*C-4b z!R`vhNT-!!mR`-ZwrFDDox7ap$bLV{DPcyGao0E%Gx#{xxSGYDkf1Ri|AKToGup^z zntVu55&CZX_Uli&i%!KE8})iDLb6-3h6bgNv`)8lXdhX+XfHKG;F?Hdwu!G)V<8*aIckd0$QwGyk_`~SvZUSF1B;I z@_~*~i&t0abP1Gd?59Ck7VbQe7US9mQ$1c|z|n^g(~+$Wn3ajg+_b}6+Wvc|sd~frP$A?{^mw_USzlpRW+A^b(+FWMP+~UoMLiDqL zmSIT??JZ?j$FH`CMBL*aF*a#=DwtR5uX7sZRf3;(FOX_AUXL+Q(Rf()K2Q|D#N*!qPSpI;a4Ua_Pzd7_mL zk)h6~KOS>vMc-2|S5}N7aWpgw<&`PyGEy&Q5 zUL}ZGmLW;nDyBRG)B=K!n5C$8aixE|q;uzSW!LY?=V~vNcH&1T$V-QhUZo#KyL`%F z4dl+1_;#Zir>ZOYAWNMx!rZ9i3)vWdo~zIVN$5Mv#6@AkN2{wWFC+PVm;{O~pfLlc z{$)DW#(Hl~k2d~nfB&x?*Z({40!kQkQ1b^Nn{F*PD^U5%y|KvSz7=X0WgF3VYon5$pX3GlU5p&v;MwK zT6=a^xoo70QF>kYlJdtnt2ouLq?_lM3k>0yokCALc?dBCba2CrrURuXll+f;JEH^Sq?8l*qiPlG7nJzP{71FV0Zx_}J6=LWPXAIWwRR(oSqX zGi!8h&F%H_GyA=84HP2$?);X+lvs7QLJH^)Yn4_{EoTS9bnf}A8P7bTyH`S6jd`EB z9~=LW8Y-T|S7=i?2py4DORfQky!2na0NxX)*~NDZ?VEPLov5JW=56p>>R=7b znT@#G(sWh{pJPTX?Ptf5;~73M=fH?Wv4lLq59csQ&7x9aQEFtK^_@C%_i~XDl30CT#M^B$3o+n_0KJSCd{p*ZBI^(yC*-pxqTl2j}7;a z!+q+G=f72btg((3X9%15Q7XxF0oRR3u|!OLH~ANfzV5`>dlP;p(o^C%bmKwYB=r*a zI|sJz+z<{NJWv8QkuU%BG1u(wToB;Y^Nxvz)dZET2#0xmRI}!pAwL++9NOKyhoKc!8q9U4sUKTXB~V2oNY1 z++8p4`?tr=b3fcO?l>RL7#Vv+*PeT=HP_CZzcuGnFa4XJQ4?V_97_m!D_j&>{C&HB zJQMX(|M54Nhw1;Z;q8x~{Z%L}jQoAZ0be2fHE>=;q_NKEd5K@#`ziGw|&p(Nza_y8C|; z=UN3r9UYW|BJ+Rx42{GeC0Y(kiFuL|oKF+sef1*|dysItOJS8>)hRVuLHC<_-rsb~ z-KE?W@Y(ivaVV)(SL^)zv!VHHD>m7)<#Jv$aQ6x^oOQg?B|d+%U8eg$ZBX%Q%$GOt z(*ah@e&&VzxBSB%%V$(W_ABpSM!(Jc{&rV`$DTp?Wtv5upaSZ3y8Cai9nBAa<<2T~ zRZb3n$DL{az@1smfg-RVy#5c&MW5b{S})I5PB(vje;YL8L4}CJ)S>Q6w|s5d?kx8@PiC?PaJDW$=7r?>RKU&rx)&XI z5NSCaVOFFOC4ddR`;Nv7bmEL71;1gMag2AO2M-dpycGC6UEBjX7G`Zu9~7_S;NgXv_%s~b z9(Wa$Zb}|~$xZ=?xwzVUX`42{SzG=WI?42}p^muGK1&mh%1^%}Rq~Y1M1B5r(K&o# z8^v1H1FcW#irIGl1CQpy_#KbdKHT2kI+FdGxNpUS!pJ4 zThrp{W9H#wVVn_mjpRwHnuX<+kha=$YpG)DZay{uJY!r zq#F=^(4um3!7@xTgF{i1F&~+pU$d2t-YXBDBRxE8#WEW3efM)H8ME>^vz0 zqiPIRqD)S>LF$i6Bk$4k@J8+bVw~Y?xfR*xPq>EoahsApturz6piWrok{t;+`Sm9J z+J%p#cBK>Y#JP>?ADQ&{C{0`R2eV4(l4Y~9S^*E{(1)QE63ctsyY`m)G;5E#xJNB7 z#)5K21#g~EGJa0Oy1z6RGi=VfWO>GHW#-zQ%?gkfa0iW)Fr=H!+%Yl%-<0|)c)c@j z!JE|AKX7HDR!O^9WlIIF2bl@09)5kdGI_>67f7y<}PM#bve`A3OLnx;i;uM{w9 zN^mEAY3hDt8|r!nah>emG{r?74f^!wCZy#@A~pz0*_Nw*6jmY(IK0Q3-;Z3Kk4WsY z4I8<~VW_y@vkf&Q`}>`Y3q8;F5;-DmsnUCbQZJI}^7}-EuSvRbt?yjz4yc)YfvBpi zIN5HA?uW~2A99=ka1ca-xL1~(Jr`q@iRn9EnuzxjY`VdU45Ta6Q1{d7yG)?&cM6$8N&c(OE!W z$I+>!S);Gm-)F17H{tf_;_jFY>wPHt89Bo1QP#!pFmzJlu%eE2f4YSE7dFV9@B#xI+qscZE-216nN4%joAdUu(eD-z9gu}4OUvU_`D<6p>< z$XTsZ$Z&LY_R@1qj_I;WWhZ_x#a*&Gb*VIX zSv=fI+Pk?aO}5HgdlGqF*I9n%^XQG{k;#kr*G@lCovO z%5rHWC;iajmQ*V*gaxokflZbQT9rmFq=EXtmn4;m$#R)%04YOT(iU+ZKvSC>Uc?*j zw^5wQ*q2?rdM5cl$+e9eULBaU2ph=k{$v4EJR&Q~CT}qRtxK_Mk6(fy?HP}=+K+Sf znV`aTz&&%HfG)|Fxbxo*q{PkBcuq-0+b@I`vgvJD#f&4U*th4%otXS|%i{zbUME#-ipcX_Qvquk_p}2jw%0G5g&!Sz-L6%h^ zTgIT&6;HctZQHwoE$AEyi%sdas8nWw_CnRL-e6e_>0fP=ZMjEPYmznAvhjksKt)ox zAO$8t^J7^mvK{6K)sCK|7S|#0uGqZbKnszK%WpxWTEwFjx@=#U6eLUS*#m{U7W&03 zS3k~v$oER4;XPP5ta=fYtw2%7aO~w?UsbAm``Wrw`H6Ay{RZg&#Zz!;#W;_u{9Sd@mVa^%IL7>1R>Y$hzCU zBx>3l8nw9KGj8nt_FR5CEwO*fotPF`e;OuCoA+x_YhviM%v8wQEb)+~_k0Lj3Sddc zGx^-KtE>B5yRvJ!#rL+X&m+KiYsYI$Px&=CxMhATX*v8l-sSC;Zzpv}b@GpVAMoY8 zoeIBITF zrG-8kcDi34_R1i$O+{4r|wF9bUnn^u0Mye5_VfWhyB9Dx!z3)FLX@0--)|;m*e)UcxyyGn-AljJ-H!)Q@+u7%x4#j(2-<6{!!1q0 zb_-W^Ny;QrJ2V>!F%II^%S)Jfv8%oH+AC#(BqKAR_n7!KpJ5~Mmwgr<1K|iWaqlQ^ zTR?t=E2;je+!{abih|fYV#~74Id(f(v_UFq`iu2i5Ch<=U_$Nq>B){}h0F0{B$yzB zw?)uHLod*RKe77T@&OlqQfuj`uGT88EHs42lbU_>Dui{TBPWcyUIt}_`@goP78R3pcjZ0suUmrGEPFamVACpdCW9CjipeH<2 zk`yJR;V6wOrzo0>bfoMYiU(3PvbQHPD{s%;`^<|x+>Y4nngBIun0kz-cAwZdA6w^ z?%WQNy)0o(u3TiO^D0w`!%xPs)T~ceil-|M24l%g4n2}{Qrp@vryWzHzs1(e-EI9` z+0pbxYyY^u!Gd40&v)%U6LLBbHrNfp(L+)9y!NAckRxS zH+h=<$QP#kcl-1Wx6=HmpjWktAt;t}GrD%f&4Yl{Ae^RG^~@C`c6h{i*CgrheV2=> zzS;HT(F>KwdGQ|(`8Zx7$UTNXK!zV{zn308-FS%aok|{_ioge(3VgGY+?(ITZZJe=xIDs!jQ$wNYP?eB|Yb=hkLCJ)-$t(^TU z)6a62=g|3b`{B%X`6e7nCNeLlrIcju!z_pr6>+8XS3e#5h?k(qps?0FpZad#^UbH2 zLA`Sef{i-vuyk5JrNyykQ~6(-$xqw|6{>pnhz%5!?b;(hEC)@rnb@Tl(# z&s%fhI6p{$Dp03t+V7_%sR>w3H3cox#O79PaY}P!U+Ymy>eFx$E@4KV(YAA2d|9w4oeh=$qmF_g+}A2|vJACT zRo9{k8-3%Nf8zxx`nFEE`x2R0TiT&IfXdSqO% z%vL|RSHcbZ9E)?ilo!4Jy8Xt`?=s|Y+qe7W&yT-$={op47|n0^!+58i4Zs0S(6bDi zS*L#F);MMB)EVyz-@AwPCEak>NtHp2TJ2-dHdUKLYn!o>b6K9PlVAUl-j;U*QCGBu zZf{N4rQmd@5326Hsa_!gu#^mD7*&`^1vyO=O-z}PGgV|J%LJqZ)g%wIn_;Kt9vAHo zH;GC_1s!{S2*PX#bhrwB6kJE)4I^mkzyWu1l#jJ?+s;aohjNHT|71trA3J);EltE6 zSFS|hcVSkM=wPve>mO~caD2YMr{}N!>MfcM12&L#Je#;^-al<`lvk8AS#J z$cOKgz+7fY_j{*1`d8q%$mm(pkHggIW)25oNrsz@{Y3KvD8UF3`zm>cpsayl#ULxm z{>T%9SahIn9{Lcu%or*eG91A|5hbGM@*g4pe+n3KXnd3ym(*t<(p|jX-2gT8Iq400 zVhjI#q}*~wB9~5%`)SDxa=mDY+LR}6;<1tRhdNY@vssQ4`iEKEp>y0!0ig&x2n*Ha z&lhBCihj_Yp4WkpB*ngNuBSWg#pqPbY4SN5SRnRk$bt`5uWJ7NAx7ODp40PvC}?R_ z_R(9rc(IY`Akz8U2d7s@^E(1kIHpeLPhZo$bN>z#$=9TWDiWJ%EuU=F+J`7|a=QVgXOU671zy08$ zNM1E% zMpxLEoEB&VY4y@$qj6}o#xP4%;xzgV2D5Hfd{x#km7XZ&(Kbzru|?HZ9K6@sJXjs7JI`c4;6KXkQ<_uQ5sLvBihaq6IJZMxdWBlT2SNgD~vY4 zw{bPd*LKk9t?Lkha+E6aU7|wxi&=Q!pDn%!L~OWZ3q04F3|K zx0PmLB_Jp3gJZg0IS?gi8v7006r;1(ThA+l*cmYP$)&3zviOiD9lay%^r?T)OZPQc zwBp#?4A>wHYVEE~0voMr_6l#Wal~y_P z9(pV14vCZO&{y2?aN)q$3QtVp4>?AtWL&>Xiv`6f-1HVyk&!fAEjGOkpLJR0_RUAl ze~sgT_k=t5xsn-Kxi@X7ov|lH)x&nP)>zs;9WE4O3 z&u-&@>k1VzQ`ziagByQ%Pt@Qo3LDX#vSx45Za=e3rpZ{=tCwjLsO;uPof z6m3t}KI=Ky6E_NIKH++H?Zy95*+os6*!t)yUBF#z;&{vlC=i5%&%k(u#@8x`{+E0KNX_u3ll>F1=iKyF_ z65L?4hx-b|YxQE};n-~YZ`5_F?rL+C4_AYu*Xnz|jwppY6M4kSeZ_l$=npgcZ#WK> zW3G#T=tGsK*(c=zIKrFrJ9b~d*#2qtaH$hxm>@egb04<-P>qnn?rMkh7jZRsp7)#b zS8k;TKR@?z>kz}RgXhMBJi}Z@-c;4thFgMj&Wn$HdX2tcF8;P%^Kv$jxv$9zb_d7V zdU&8?fDFp%GCzgiq9kOfkmOx9Rn=abkC_6PerOTcj8DW%s{q9NrkM(nhjY7RQoShtGCTWl@cXMr zW${`XWG|Xq^4?~B8G_IgKc21nYQI%hu@$dTuWH<+J(@^ID~*s^ntS~aJ1ja(^{Qe2 zMYHjc8_)ZA2CkQ8Ob)3ht*N;b?-vue2-n+2@P%P7OIKj_k){t7kI0kCA|na`3#6jU z1^`LRFZA88T+NWX-RUmTm!wUP?Mx!?7Q z%ex!yFLQsw zcs%6~c)UOrq&N&Oe~Gpskdese;}2RQFWt#qV$XR&wz|CdC0pkDh?3GR5sx{!=e;Go z0HM`#12~%>$|$YEEetUAGgw*%WHP^G1j$fgJSvz{8z{;GkX)fR2Q+n;m$g;u@@TX zcD&-Lw~`Ckks_lV{M62A5xG#dEX^*UKYluaVo_z9PF&sCZ?Q`MO4Rh%M=K$-!-m() zuGe`dS=8RzIOs}k-|}oZfo>bt`|8yz*ym9;^7Jh;kq?mukEg$z+#Ed;5-r|qQ{fyE zUG7>qHf}oOa4kr{O29sBthq)#l%%J8No!KEW8sWSbX+BSRd#LPvZuKFC@W#xr?rWn z-^F_TQiLqf>o6rkZ`DFh*l_3M2U;|TS-`)v@n{F4g`S_nWlGY(_f zDOw|+Br-KY-j9|^OQ#Z@9C2wngA8{+zj_ea`Q&H$Tj=akk$^;<9n;|t9gdft=FAiF zWpzR4RK)XZ#N8sqQ(BN-WVj|5`SXvQ=Cun>m-4o^CfCPzsA{2+*K>RTF({+9p>ctZ zOETa25W8p~{3nb)#{oQ{STHc2W!QE#_btBnEoez?{ðVbf%|I}oxu-^f-E!&W9| zsXkVqCqA$raT}Ch&lii#`=&nx24i%Et{ zK@AZ08Xg@dns#?luF{9*Zo@fp`(WBP!ymd>FoTKdZ~M9|O?mazHSOAi2y<**fNq>E z^#QbpP@{;TsNS6Zzi!>Tdxtr`)egv?KV+D5e_fO3`F8F@8pQ|C9Aa^GM2~W``x!^i z^Oow$6RtJ1y8~N$mN5bd^7kyvx_3mnv$Jhh(g+>QEd;qj{ax$rxSm_U{i-eD6U4-n zx~*>{1(Q{NxGL9NR|+B~F3vbPaCv=QO@3Qb%;C0sH&KB+esZ;QBZpQ?nxeu6`GDM#3B?d!9}qM`{Vyert@E| z{mr=+${&fWP(~8>?UV;)xHtVNpxdnR?6~a3*ocn)AICn(7Q3B@VoI$ZA zVfYMM+GA{Ve|@<{=Aa8d=S+{qe)08;qOZYAP?S=TmypC55jdrFV0lV%6)Y_T`@m>Zzrje_V|EU3|CY?tFC( z{z04Oc=_|JJ7W4m9~80K{hkfampk}uMwQauZ>WvDi;^9M=}{+}F8M{owtFtd!~VrH zI~i_);OOYz9$R%TOt6LHv!szr$pCQH3tvhvI=?(aay_LgW?N{GN*qS5Dc*(4H_m`B z2r0I{`0|CV%`nKW$XgLanGEo$B$Z@7H2KB9s~8b=$4j;BC4=B5ZUU}vT~4dB;kV^F z3-ol_+P^r*x1A8D`BDZ+%Z`OdM)n&xM;ZA|G!frX;dohtEunR5kC;BXSG#^8ti_nn zJCO`|cp;=)k<7;<>hD#EAJ~frselSFzpy$b1G=lFaFwP8YH^W{^T3eqn%im7NwyZ& zfJ5(Gk9m#A6rq0SwCz2TDp||%p2`#>LjmNBj!|x@tm)_TD~-N6$F%P9scJn`1DR7r zgJ2&iQp^_l(QGH@yFs5_T1c{k<)P>|BN<$|V(UgxF29h@?oU-R2?A>YqO7%S?NScuPw*Jy=Uu}(xWGEDwvHMmRMM(iJYfBpUOg{;d7o7Zq^_xP|kZoX)? zioFQyogq6_ycb~c76=lIV4S%%P-vj#I~Tb?dg*Psv_6C|en0j&_!&WlKfjiDD(UKx z^KSV6yddw__uA0&RuWl`mR@)H`yPyM^i`UaKVZLVj!*9xSQH7`O>91Q*r67;eKEi9 zz}MpG(P0_urMLn7Iij1>!sALmFh<1)R?-wHXEpt4Fd0tMR2H5}-^_L2bjJptIXW`f zsL_b$2P0yJF3|t;o?_Tb@-+ZKdDkzNF)dBg=XepLf%!I>|kpfO8shevJ;Pt=n?L45z5_>mgwnUxHB!NC%Ks6LcGI15j1$8#5PvpuMD*?)R^_=NSW1DceT zC35SN-aY}{UF;gEYK7dY-Be|N?&pBgC4au2J)N5@KsIcrRSV~LxA@ugvQ>MN6!!3l zP$KG_do`;(SItPZRoYiAmm{4zhi)Q)QHhX6Fd-#qqf8k%EfU?&@E zcNKTnqA#R9z$A`%O49Lh*wm%IUAig|=IyqZR^$2W``m77o9FheIBH9jdCa;0Q!OYp zx1H&;(iDnlE_mOU`9s1HTloc%s9N4!&@&NB=mcCO%=@bfF( z)_9eFRd%{7PxHHjKb3qdfxgxkle_?8fys5lmTbj3LAA`1vQ}zw+;tnQsO8(aX7j@{ z&MHdehFJ)X&?K^Ca_B~OAZ{4OsJn`1ZKKb=0NTP0RO+gU+k^JArkoYPo0B^u z4!57bXGkLtNOyzYaPFS2RMV}sQ&-ea^`6|M(DgKQ4m96eF1DTdg;U`#+;~ViS|I$W zjJi@qS)7u#)dwFOx{k@gwBPNZGU z7Q&OPByn(e&SxD^w+SsbX@)+I8OV^U=P!LACxBhI2p(Vpnb?_wv>(~=?N(&Ki5Y)+ zgq%=ybJbr6XF>Gy?wg^}#kEcFN@0&UJ46BU;>oM2kDG=KHB4{;=nNIG-=xrfByI8m zO7O{4|Ay#xekXH`3siwIZA5fe~6{DiIO!`{uveKr=JjBn?nEK8>9B}DKrO+^_V7vjh3kD1)o~$zM3dR^} zl8&o<}7rN?lF zYKfe;=|#s~&E`~V>Rl~wNX*YqYys-|m|0F?lO9Rmj)61V)63$4$vVRN44?GJ?RI5} zpx0sAXO}g&)|YnGo~A!B4B(0ljY4zk;8~6w4&l6kcI>7a+X&@N+G?&XKWH}$nDue= z)G7-N2<&I#4Un9yp*pShJXMtfLEWgw&k5^k?dIN-678P4Bj>h|<#Wn|t}Qd1p|dd{ z8{Z98%|K0=yg2|z;?>E%X5cW+X4g)u!y@{9*5zJRh!68Q!l!;XARtUcEpI$%i%jJT z-Ei${Q*JrL?|CwTL=TZNQ#5YA^G*6?q520^{CGBpU#kkw3R+VL(ZRIW z1*AB-6)b24%MMBnPkCJGvGp`{<5(RiWV(}&dscz8XfMzES~i?f{Q@FZWw$v)8mH~E zO!d0zFz?hRmHDh9G9mS7!z@-$8JPV-6#Ihl{Q@!{vt3+CUqwR*w!WMnP_3q-t61~! zw8&`BwNxK)$Zj+S8^?HhVo(adL3-;OhtxbFF039A$MOvf5l?sTy1g0T)xUW!6GkTc zvBGnlM)v|vi`Vm$Bjg4(x~Qo`TN}#ZsV=VWKGD@!$lp&0orI)QOH^KQ+$LUg>E(oh1Z&;V`qe`>*`8gDqUvQ(~r%+58r z|1K4Cl}BCBNMAtP=wXXXw!%}{lX{uJQ;w-EI5#tFnc zT-Q}8x(`uWY0iLDGd~u(*p7FHH|a}l7QxZ>xq1x*Phc5V382&|qzM)y(sqvARXcu0 zY{tScj(gIZonFe zylUqeCD1gvEKwLVQ--z*%C<1wBv}`~eu{Z&TU=c+R-=oEcITfLJ*+?dlCGF)gNO`$ z(SKxfQXEcZP@-87|5tmR=kS|2k5=+5MxsYt2~oQiw8yJ>yx3SeERs9Ep(@X zss`IWrwYvk_P3`YzRV>0?Nu4glhEt4Vd7gy&kBAsu-jLp4F^ z^N_u`Y*r^PHsfFA1n(+A{r(`3Eb+#KurH`?RB0jGp^?S)RjIm@1~dv&b^7BP3#*=ojECrc1r1K1%;vu4&KS-i%EnjY-voa*(s1{NMhKWv zU>u+8w2W&w1wsVM)H?HSix!_*noN@b+^p?0aaFVshQ|#@R)f;FjP;t9bu}7_mZJ76 z{g=jwmic$xIn+@m-v$<&4&2G>EXl2^?OAlE`&eRd&!*jwKeGJ@r!=n!M4klB!ItF?+a*#7K4}NdovOrc=&dTlKEDcX zaVM&=@==jmb3_Ujln2dORRxANgK)V2D}VurybvHd_(AIY9$DjCeoq z#SKz8=R1LQyuw~-`lRS%F|TIi@2>#oxBZw0qBpls24y&d`H4%_j=x=(o>gdY>b7F) zWrc0VaD1xSvQv{<#ip!q^UBQl4lf#z0YG~zW01G!-&bkt8HDl{fI=f=ICft*k~hY2 z{ifT7@tfq?ULNy6I96ziJlnQW7eR|uog|oI!C;^%AB_#95^;1=dAiBy6!JRZQ{z(Q zeoAA)b&Yv2=92Uzi?~~11Y*fG1roy}fE8=##IB`g!kNkZ8@{4jlL}+Pz90`d&dpbT z&hqe}wvNF`_Nn{o6SozttbL!fDwN{DRE_G565*I{_#2L%ZiYgdE2cNw3kP}L28>ed zIy*e4{(z&teObRV5a9f{W=mtdULo~jWN>XV{)z`wXJJL-!)NP0g7H#+gVst@$=51O zMV((-W6c|6rE!#h`ecU3byCNihP(ThK9%RXp)HlmR7(K64FEDSqI=)F{UT{otXd{w zQeU&b5Uby)a^U6d^=FsuP!KLZqi%QQz?LPf4tCkvtf^tP=}?8K@Wia>CW`&Lmc<-I zUETWdml3q$@=5L>5`TA*75LL@I*{4Yxc+dS6aJFX6j=Ed3R1At{ zFOosjt3#_x8$vUiJIke(RsfK@M#f%`IaOS`u zX@QwvGmQ2NR|Bv4%U+e+dQPt!Sn9qA7{f&r8mrZ@*6vK|c;;^{5?yX#HfUHvKd8mJA zt{k6NvAWsODTdB= zG#dwPMTU)XZj(=Y1+KNwX>Jl_ZC(94wy;vPI_*J1X0KY>A5-q=h}_z~<>*g#Fs?vJ z(onJhRU`wii|0)^BiZFwrunzMZTf$JPN|(a2L_=xEO9e_$GU@X(EX{o(F~c;$8m;M zw}ugw5t*byJ>tQ=8lEO}_(?E>sEJNBWuM=#;i*K{aY4y)?F;+flzxQ61T!*UD-L zUDZ@+{BV4NxR{=V`5Y&U`yTG-0DvnD3IQpnyRVJ9h5p1NAXQWmNB!btl z%>Y_!2FuF1)B13?(&kpo4Z>aMG&+cZ;#E0Q7_n4GC39|=amPZ{Z3b4lnlXd7reJZ> zIP-J3CMlp_&Bs&3^*R51r>l+mJMg|`9nn#waGLc?BaP}z18``VI+e(&5|wl5W)jd5 zGVcLb_!b}J`s{d}5N)Hj&D63j&0c?Iww#0(1rKDQ>L0tDx;d{IG0)>U7N?p;8x(lp zR+8zKL%QIC4g>WwxIm#geHf!~;IJy9*c^=;f$GDVc@GQq{)Jxqi7vkG^w;g?5!c_d zQolA(pE{hiYwmYAc+%tV@aAa8%@gV2wuT%mDyE{3z7pY7aiHLtEH4wIV zLH;@PG-WDbLF@{BV#s`z>cTP{FjB>Y;$>WYX}JbSbJCxj$332`G0pPht;Q~T`#V?1 ze`+42Mxsb>9&}{r22Eu~_!>)On^Giin$xF_=Z3qxEKHP3bA;;}Sqv?E03&g^Kq)65 z-(&IXtlMc0nhu}o*1Rru z*8M6s7S)SVzhET(P;L)qf5kXl$=6rp*3<7^PF5W;V^i&&F|%r~5dw-pY=9yJGF++7 zL_bND=e;`nEPbpkNAlA>oEvEKZjD) zDfSY-L6-(qSQnOCnKP$Z>9WqGM2=;P9TY*W_Exp|pp>e(P!2J4Y{TZN9};IRQ=E>^ zV??0`GDrwe)%DPpJ`w#~cM$rxvGpV3XTK#G<2PDi@uH&lu~L{)8u<~riyGhRT|*}A zD**MGu%UVmJWw=W){tlfY0#Fc)b2O9dQtL`p{|6p%1{?$R&LFZ}3NqB7cBC?bJy7T0|dEGhVq*VO8(Zn38pqq{Mv-=7Kd_ugSE15@q zcaH-ieIX2-r51mLR9QuOEhAyx>f6aCVYOJnd&ew4rY zC@>V4R%Rb@YBBvyrgOxH*;s@new>wg96F67t_+n(&dacycG!{G2{ zuh|+K&Vx11Vi4z7b6S`R%zt&%IqCFO^p@}Y`A)SYtj*d>$FaM#9@e2D7*wwYx@0}+MVi(9!@D5LTXo8+G6PxfSGkKB zuPA}4Hl}-@3e?Zd6QZ z{u<47VpGpfTbEwLhNg^PjP_kvf3idG%D4Z9p-EXq@8?27*|&xF{Dbl|jNCl_!}$Dk zNet&%60YX2qe7>6T-#}=W@mo#(br^o9J;}S*u_0akwn3u3yH0ox^doiu`sKj3&>U9 zph0t{^py;PBv*iG1|BMCxcDoWZT5P6A%f5Be$K~!TChc-t<|_I0-lH<(-me z40dcfCl#$tmlT|-;bjG0%YQqEUt(~le#jn^y4avfCna{ zHfD{z*KgX&sfW!9{wmILaHj~H+Czw7Gx4}>(if%;w*0Wyv;UQC)qIAx1=0j8ldzh>q96!dyx`5Ak zD|DA^2YL85wNp-0|3$*5FpfLLa-aMTI`zByp$?-xc#D49G*7LqOb z*IVcRxEmq4_w=Xq<$)((fA7%vT~q(|bj;qvc=+AUFYG7%i@%zD|MO+UN56Yx&Em_ZR7YH~y`lXL}g3E{1NY zN7L;8bm?5Un2q7cL&<)Xxo>VSQ9q9zGT%Itl$JDW7vOU>Mx9 zmbR&sJ2*J7C}Q3Cn}3P_Gu5BMlrRj)ToKmuTcrOeg%RoFrxM9u$-YXy`;&ZscnQgu z*ieY{brDtm;?3~8ZuzUo1L3XVk^ZlFgWt3NLx1i?KO^6QM=w1XQ*>rZ(?E)_>!uaE z6QNNV^Fy1<`%4>dyrjL+t1rRr2{S3tZBo3k&VdWl9m2AVezh$$EO?E-}NY; zrB3V9GlKs?CJ7P$%v#hWk@)p<)C;hi-u%sKKGdmg088T8))woak23qbuat87Ua@l3 zTK|+F_(m$daz`hpOI$m*PSbR_gZb0tcx_I@_;Kvmrtp?ir+_PRKNTU45g#-t~*}m`l*cjjN zOIjdFp>ZkP=XEe=E=BT)Pt>a$mD95J1eB2~Kq@I46D5i|5yvTRWSDhKhGl8?s@ z6L|D%mh_Bvd2(239^%kI!_%w5s~h`eq=4hp+Rw-Mpj+wr%XJ(YpW6U$0xNiE)cSr| z$r#YoeiIw2KbB15;iYKjFwYUTrcTpq2w@hh{e-G%0M1m^lw#WSP2TtyA=vOCRL717 zwH}q-k;gkC-s1r>zhdG`gKw5&H#`?fptKv~-!Z?VeD^bMHmri0Yc2wO&X&~T1zi$+ z%EjbwVVAWY7i;B1Fz0gbQtgJ>6X?&eMAW2P%Xn^P=jzGH_eh_$A#QcUtJ%lus7>sg zG23AKlg7d>x|=E_s^+onWvI;K>iwG$_pecFF-&W)ofw!F#Xl$shh{6LaF+aTe~W5y zr%0t;fAus+ESgc&x-C1U!496VGo&&fLU2^NOFi;IS4ikh9Hkr<#`; z*)o?$5p?MzNsXAuPbLg3-fxPSZ%+z>W|dHaC7iokRSVIdT!%5@*m2hOMu{#qPJIhi zsXVRIIIM1caJOI}eRs6tX24DWDMyVJym#Izd*-CWk5!Iztrix?HFE*uJSGhj$mRxD1`sY~GgLJmIIorlg6UZz`f|wm>&} z`8S`eW7fZd&m*FZHMG_MOM%)5QPOgG_s~QHB%F6|ZuK5Vb9^3EVT7LK;c>4a`P- z({lLJ50|wl*EEgI=&FlP4h@{%$M@AaYVoow>}akJ5ugKz@Nu9x%TfF)-mRW8H7FK+ z9K~)Yk>z*OpDvnXQkE`YeY`_<^b?SObhx8jQ1Y8(Y0H~ZhWy+`%=lj}JxsPaS;0Hd z@C>?UlT0w)_E}kayxVVa49Lq=-%sO*qVdzQ+n9l~272xt0pjr|*$r&u%L#`<2eD+( zLl|hBEHrVhMgj^yeR%|u>eVkQbulGPRqwCmddv=dCF*~=NfzBCpe&-NHQYW6BFyI~D+iE_&1 z;j}@fTVDFiV@6>lyT!WX`F`^5xN$%0e{iwb!SQ*ykG;q%OW~A891=f=4PUP>JiK$V zq<^cOl;p4Z2s2v-Ea{i&y7@5p?Ddc?FMG2+o6t!qrA{47;@)M&g+O^CLsK-mK;pn-{l9vJ< z0YdSPP&U2)r?4xJhqC?pOq4xknGohFl5NPtBMb)BSW`lFm7O#(mdG-rq=*^23iGoi zdt~3$gX|$>jVzOGEE(&Vd8haNqvZFwUw_^AXD;WQ>s;r2&vqHD=*=Lis6v%}j^$kL z-C4nEZtE4it>0Itj2qs9QMyf3Zu8rJLcQ)Q=6eDfd@y4yStBjC73@IR+{>{&r zd_Re()qf@LV2*R_Y=QY}g(jHHB*unOE<4@rb2wHtUAcnU8QJOYA1NE{>iV=0P=P-o zU3we0F$Ghl#1BlN``Z$!IyDnl*@G(-YUPkSXA0h;zEH=ICLSxL<5*SD96vnliFP8U0H-1d9Sk6ybhdkQr=t|zsP(%5_0 zElx=N8mn$>RBc*R=HA2ZI=!XhHB(?C=vSj^(X&;ev{8fl6P1~ z_DTfzRFI<-ijDyFbq}jq^Su*0MEuaJR(IiXN>Dv{`uN>7CBXoaAW{L0UDz8~+->TK z@*@%5Vfp+2AP0^#WcxLxuDv%mncz)`=ONd|VD)$!VgieS@=B33xP@zaK!TUdXsZJY z$+fD!HVf`l|21o{t|(98yYbpbmO#g;)1+?SH0~k1Ri-{i+?Sw`Xsn+k_1f2m+yANG zA=9F1tM$Ycmx|8*a%!nXMQEo|kKSIgpk9VKR(MM*WMf2rcxz?kVVanJSee-ey zV_)wZ#7`i7pZ6Iq^OT*al(PJMwl2NE8v<0acfs%mU!aouK$OEreL1H_`}Rj`yfGLr zkF$e^%=A|X#JHW8RkS+?LZlr@4O$f|y*$%jo)YY$k?r>bS>b+0K_A%;GH^ki!K9U1 z%J+y`nM2y+({2YZz47CPRhx?9zAd*={R({AgZ|j!AFt3exR z-%A-f&ckIy4}hAG)!vh`>5A| z6%9mIqwzQ-(lDtN46FtbUdR#gXEJKpQ9$zl%LPGm8;1J*zNJ6;!%wnizV4iCQzr}K zQ=3NKxK@LDs9Q1yz9xf!^*K}m$8T=usHwwOF(#A~lamLP4cM&9t3U4ZCx_o9Y!l@? zKLM3sLKL;N|EB65PL5>n~PEZrQ!O^DJm^M813fAF=u%70XsNtlAJtn zT^ok(|I%gpMGX!)1E&+e)5HxZ8=9FDp3Vn+o zJr^(UJKrT)@O&AtEac-|J)%9N;>iumkqP$637;EHtYs4OPrZ?ni zepNpQ(pv?fL%6TNAa$gz58F}{%+f~~a&#+XG*z}$%i`Gz)|b>(g9`4tZzm@P?cNJS zb+wkt+C_D#6vZM_m}P#PZ5#B=TM76#pu!xUu%=<;rNIo8d5;c54IRnOX$+B{)$m)mu76O?gjy)pIes-p^$^)Wks zpodDltYF<-_(RjFO$=zivhi@)BlFdBLc?pb&RsEHteb4}EBL*#iBk!4(C$Hk79zDm zvkY&&#AtW59(4to49gDnohS@#nv5)kf6cKWGGeb79{;|r;uK#ltJeXpymg~CCQC}D zQa%$O_6QM8+N5q@mN`2w(365&Ha2%bl?Ip;GGgbPKg%WD+xuX+@b^xIHX$f`dfds& zbGvpkXOj?5tiXr(b1+Mu6Q$@ju2h!FI?Dv@|Mbc}**8bL>T%Q4HiyLJh z==*4P9`O7 z-Ok1bTVb?;tpPu1%I=MI`oO25=e|FJAYQw8&S9}(Z2?ItSUq*wPI)_)+S6gWJA#jQ zY5roqOpX9cPk+>%7~c(BXr5Bt)-i0j(Sfg6bU_l&EN^$1v|E!exLa_y<%TEs1O%?g z+;kguf3X`^KsBm7ckYh}f8Z74CL=2;hm*Kz@8^^nkIxni-bDW+UF?jDADeB+&f4^| ze4^5ML2!KK7%H}%;a>k1M{4g&^+0&=9yKnfIRsHCP<_oqa8dQW6r zV6WO~`g>!DiL#{R&?LGT(_LL9`Oe&Zb0v#lQy$zjdx7urJ>m=BtBhb>+r9qa>>eqf zhiXMzhR5f(_i`-izw|s|Daw4Nk^2{`zJWw9f#2#BOSpkWBHy19{vJkXX2#?QvCgP# z9yS;r37sO&)6i(EMaUCBY9sizjPT}7CLAiMt$VYV0DkOd=Dz|$swhr(CJ85-m%Hjb zsN$9Gl~a!vmy>~cYa({7-_AP*?ocgGq%InE4pmS;%oMJi!K9oXk9Tj%D5iJMbLqd? zuoqKLqNc7rvbwI3URB}XH{Kg6vDKo_5;(>6E73gsl++AbTSpa6O+ov#I;`iqpV}}- zxpR-~^x`)cXX;*9JRoS+t;GgK26+@Gj8k<2Ri+>BN_my~n>ad~2nG@jNE3U^0(Q>N zeD3O+5L8MU`@h{si`U-ye5wEI#+z-KM9Y1>jpJWC`y^Wp-OfvENt%wOjj^epm2f4! zX}fjq`UosA$2Bx^cqVGrr)aS%)KAIcHi9s#ku{#)+ThnTBRO{)OnDtQ%XtSj-l?tGBS>ouP9jvDJL|2b@{ld z;HyzCLF8C&j0)695VCk@+#J!bpd4T-9a&`7sKd|CaWqXc?}?gpZ2NK|V2WyGh>25K z@xM&Jpzb9?8$jiN@%s)#Aqwns z0fFi*dgMQUlQ;iG`su&|LqxWjkni;#<}%X1)^g3A8g(ugauv1Qk}nqQ+jP1{OI_DR z-3S~>TzUXlaWqDXOd^ziCiik$Ag7}R>NOS9PTF0cpl^->T81kqN1VT+eO$f0lPUQV zSDB4OU#BqwXaIq3RN!SgkGnIBm=U(N^YsY>f~rmn4E(&$B_@|ao3k8jfRelh(MRrC zf9ZWTuHfzD1c)g4Ja6e@)LHuSRW*T$!Y5y{n1Ox3nsr~S`vu?q4P1o`i*r6bo$xi@ zdPe025Pv#Q+xee~cS}DZ87Oh2XSl;?G5xhsAHm!E zX8-Tn#rIWnc3KI~&o4qJF92n01u8|DtYk2^z&_$ZXZlFWESrFXJBX|s1L*HT-|>7U zQ4WSfBK$7kq%K1UpY}~7#!l1p11RXL_q1>p>YLT?1P*7kg>W=mrevet4WQGQ z%s9^}bVPhMZWLu@IHLU+3pI~o2V#uDzCjO#3QlEUzYolo0GPuKZ9d>``eHt0{= z_hIQ41~i<;pY^05ASEV!&ZjJp3zS|4zIwogIue|?=13+%(fI*FDUf0?7eO{OWmhy( z`J4nD0c&R_k!UzXjwPl;>kL@@S)pn+;1Ky=p4IBNKN2!=819=-U;L)yLvq7om>*bw z+3`cz3yThy5xfA!t)xw++blK7=b@Z`11_}ZqRr542;Q{Gw3l7tU3T=3%ZDB7mrdVc z1Wl!3TXZzSo2OKOya)FjM6Z62n?)#8EjBs?1=u9yybq$^*&j;795RUm`ap|KMq(Z_ z0&%6`*k2g*_cEw`6JQ~RMl)Y>fK=5l)l!zwzzqfMJD4|gMkgijFB}l&kf^t5%VHKg zq9{x6<@667-tWtGBxw7%^yR!xky>`-?;rfh;NKHZ+u`Bw;>`d2;2?P&F7H35`IUu6_I;cV*u5_Shj7$*G z^4rWnMu&@|-A;;GFG2MI(SqNhHBz6sn*rvZB3U$G)`U1r+I*c>D3|d}INHxL*c%41( ze^_hm>vxj@VT2O_fv;ab%>xX%I#Qgt2uN?3^+`qgtAAc^J7C30=iy)dXTev_1jKDD1CLQ4eW5845bH|Lwkz)es~tE*i4nx| zI7}map%bcf;i4O$?bBDWiIhY+GXX2=1O_e=!2Kdz%8><7Pmo~-5R|?xG|I@xNc)Oz zd0x*BAjW$z)Y8+YHDnK5EyO4}J_+#VB?Jcp*~~ocUW_4xpk4zB+}O-Oi{irw8+9MB z<*QksrF0-+Kg{P4YHGSJe!m5n!EMZE zZZOPKBlFf;eOUb}VAl(R^8)2e6XTW?<@wMV14egi{o}`^i6@Db z2_#EJq9&qzxU$7sL_D{4e{+-pn+{6?Y$!NBLhDgHJd*QFK;qLVsrxfWHE61Q#;094 zs{H>9qL#QSUwR~?!L&_W%Ty;-rv_tkh<>b>bkAM1#BWiwvEk5tJ4Hm zZm^^-yV;~O%pnT2iR@06Cv9%J4wpDgQ0`UFpDQpcelPI2jg;X_JJ&pq)1QHDNtPX> zgqr(4Xo)0+AfQpx>?ZP&%TNa%8jrG%(X+zlo6(F|qkg#!&sLca^ddLSuUvVOAY&UO zPAY){nH;*2U1IXiWz@YM$|I`fbP3Y{NjFi{TG5QjvDEPM+l3{ikYAY6ZzBQ)ZCSz3JtM|<)McC83}2d+9VGg6p`e9IClJE yff0aDj#Z)j2`RoC9k#v;!+2PpuVHF0^=SEk;mDvu$rn1>kIv<*mkKp+h5Qe67BD6N literal 0 HcmV?d00001 diff --git a/prometheus_exporter.go b/prometheus_exporter.go new file mode 100644 index 0000000..1fd9acf --- /dev/null +++ b/prometheus_exporter.go @@ -0,0 +1,192 @@ +package main + +import ( + "fmt" + "net/http" + "regexp" + "sort" + "strconv" + "strings" + "sync" + "time" + + na_pb "github.com/Juniper/jtimon/telemetry" + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promhttp" +) + +var ( + promNameRegex = regexp.MustCompile(`[^a-zA-Z0-9_]`) +) + +// Prometheus does not like special characters, handle them. +func promName(input string) string { + return promNameRegex.ReplaceAllString(input, "_") +} + +type jtimonMetric struct { + mapKey string + metricName string + metricLabels map[string]string + metricValue float64 + metricExpiration time.Time +} + +type jtimonPExporter struct { + m map[string]*jtimonMetric + mu sync.Mutex + ch chan *jtimonMetric +} + +func newJTIMONPExporter() *jtimonPExporter { + return (&jtimonPExporter{ + ch: make(chan *jtimonMetric), + m: map[string]*jtimonMetric{}, + }) +} + +func (c *jtimonPExporter) processJTIMONMetric() { + ticker := time.NewTicker(time.Minute).C + for { + select { + case s := <-c.ch: + c.mu.Lock() + c.m[s.mapKey] = s + c.mu.Unlock() + + case <-ticker: + ageLimit := time.Now().Add(-time.Minute) + c.mu.Lock() + for k, metric := range c.m { + if ageLimit.After(metric.metricExpiration) { + delete(c.m, k) + } + } + c.mu.Unlock() + } + } +} + +// Collect implements prometheus.Collector +func (c *jtimonPExporter) Collect(ch chan<- prometheus.Metric) { + c.mu.Lock() + metrics := make([]*jtimonMetric, 0, len(c.m)) + for _, metric := range c.m { + metrics = append(metrics, metric) + } + c.mu.Unlock() + + for _, metric := range metrics { + ch <- prometheus.MustNewConstMetric( + prometheus.NewDesc(metric.metricName, "JTIMON Metric", []string{}, metric.metricLabels), + prometheus.UntypedValue, + metric.metricValue, + ) + } +} + +// Describe implements prometheus.Describe +func (c *jtimonPExporter) Describe(ch chan<- *prometheus.Desc) { + prometheus.NewGauge(prometheus.GaugeOpts{Name: "Dummy", Help: "Dummy"}).Describe(ch) +} + +func getMapKey(metric *jtimonMetric) string { + labels := make([]string, 0, len(metric.metricLabels)) + + for k := range metric.metricLabels { + labels = append(labels, k) + } + + sort.Strings(labels) + + mapKey := make([]string, 0, len(metric.metricLabels)*2+1) + mapKey = append(mapKey, metric.metricName) + + for _, l := range labels { + mapKey = append(mapKey, l, metric.metricLabels[l]) + } + + return fmt.Sprintf("%q", mapKey) +} + +func addPrometheus(ocData *na_pb.OpenConfigData, jctx *JCtx) { + exporter := jctx.pExporter + cfg := jctx.config + + prefix := "" + + for _, v := range ocData.Kv { + switch { + case v.Key == "__prefix__": + prefix = v.GetStrValue() + continue + case strings.HasPrefix(v.Key, "__"): + continue + } + + key := v.Key + if !strings.HasPrefix(key, "/") { + key = prefix + v.Key + } + + field, tags := spitTagsNPath(jctx, key) + tags["device"] = cfg.Host + + var fieldValue float64 + + switch v.Value.(type) { + case *na_pb.KeyValue_DoubleValue: + fieldValue = v.GetDoubleValue() + case *na_pb.KeyValue_IntValue: + fieldValue = float64(v.GetIntValue()) + case *na_pb.KeyValue_UintValue: + fieldValue = float64(v.GetUintValue()) + case *na_pb.KeyValue_SintValue: + fieldValue = float64(v.GetSintValue()) + case *na_pb.KeyValue_BoolValue: + boolValue := v.GetBoolValue() + if boolValue { + fieldValue = 1 + } else { + fieldValue = 0 + } + case *na_pb.KeyValue_StrValue: + floatVal, err := strconv.ParseFloat(v.GetStrValue(), 64) + if err != nil { + continue + } + fieldValue = floatVal + default: + continue + } + + metric := &jtimonMetric{ + metricName: promName(field), + metricExpiration: time.Now(), + metricValue: fieldValue, + metricLabels: map[string]string{}, + } + for k, v := range tags { + metric.metricLabels[promName(k)] = v + } + + metric.mapKey = getMapKey(metric) + exporter.ch <- metric + } +} + +func promInit() *jtimonPExporter { + + c := newJTIMONPExporter() + prometheus.MustRegister(c) + + go func() { + go c.processJTIMONMetric() + + addr := fmt.Sprintf("%s:%d", *promHost, *promPort) + http.Handle("/metrics", promhttp.Handler()) + fmt.Println(http.ListenAndServe(addr, nil)) + }() + + return c +} diff --git a/sample-config/1.json b/sample-config/1.json new file mode 100644 index 0000000..f66abc1 --- /dev/null +++ b/sample-config/1.json @@ -0,0 +1,12 @@ +{ + "host": "host-or-ip", + "port": 50051, + "cid": "your-cid", + "paths": [{ + "path": "/interfaces", + "freq": 2000 + }], + "log": { + "file": "jtimon.log" + } +} diff --git a/sample-config/2.json b/sample-config/2.json new file mode 100644 index 0000000..946b998 --- /dev/null +++ b/sample-config/2.json @@ -0,0 +1,21 @@ +{ + "host": "host-or-ip", + "port": 50051, + "cid": "mac1", + "paths": [{ + "path": "/interfaces", + "freq": 2000 + }], + "influx": { + "server": "127.0.0.1", + "port": 8086, + "dbname": "db", + "user": "influx", + "password": "influxdb", + "recreate": true, + "measurement": "m" + }, + "log": { + "file": "jtimon.log" + } +} diff --git a/sample-config/gnmi.json b/sample-config/gnmi.json new file mode 100644 index 0000000..8b39560 --- /dev/null +++ b/sample-config/gnmi.json @@ -0,0 +1,28 @@ +{ + + "cid": "test1", + "host": "host-or-ip", + "user": "user", + "password": "pwd", + "eos": true, + "vendor": { + "gnmi": { + "encoding": "protobuf" + } + }, + "port": 50051, + "paths": [ + { + "freq": 30000, + "path": "/interfaces/interface/state/" + }, + { + "freq": 30000, + "path": "/interfaces/" + }, + { + "freq": 30000, + "path": "/interfaces/interface/subinterfaces/subinterface/state/" + } + ] +} diff --git a/statshandler.go b/statshandler.go new file mode 100644 index 0000000..0f1df87 --- /dev/null +++ b/statshandler.go @@ -0,0 +1,148 @@ +package main + +import ( + "fmt" + "sync" + "time" + + na_pb "github.com/Juniper/jtimon/telemetry" + "golang.org/x/net/context" + "google.golang.org/grpc/stats" +) + +type statsCtx struct { + sync.Mutex // guarding following stats + startTime time.Time + totalIn uint64 + totalKV uint64 + totalInPayloadLength uint64 + totalInPayloadWireLength uint64 + totalInHeaderWireLength uint64 +} + +type statshandler struct { + jctx *JCtx +} + +func (h *statshandler) TagConn(ctx context.Context, info *stats.ConnTagInfo) context.Context { + return ctx +} + +func (h *statshandler) TagRPC(ctx context.Context, info *stats.RPCTagInfo) context.Context { + return ctx +} + +func (h *statshandler) HandleConn(ctx context.Context, s stats.ConnStats) { + switch s.(type) { + case *stats.ConnBegin: + case *stats.ConnEnd: + default: + } +} + +func (h *statshandler) HandleRPC(ctx context.Context, s stats.RPCStats) { + h.jctx.stats.Lock() + defer h.jctx.stats.Unlock() + + switch s.(type) { + case *stats.InHeader: + h.jctx.stats.totalInHeaderWireLength += uint64(s.(*stats.InHeader).WireLength) + case *stats.OutHeader: + case *stats.OutPayload: + case *stats.InPayload: + h.jctx.stats.totalInPayloadLength += uint64(s.(*stats.InPayload).Length) + h.jctx.stats.totalInPayloadWireLength += uint64(s.(*stats.InPayload).WireLength) + case *stats.InTrailer: + case *stats.End: + default: + } +} + +func updateStats(jctx *JCtx, ocData *na_pb.OpenConfigData, needLock bool) { + if !*stateHandler { + return + } + if needLock { + jctx.stats.Lock() + defer jctx.stats.Unlock() + } + jctx.stats.totalIn++ +} + +func updateStatsKV(jctx *JCtx, needLock bool, count uint64) { + if !*stateHandler { + return + } + + if needLock { + jctx.stats.Lock() + defer jctx.stats.Unlock() + } + jctx.stats.totalKV = jctx.stats.totalKV + count +} + +func periodicStats(jctx *JCtx) { + if !*stateHandler { + return + } + pstats := jctx.config.Log.PeriodicStats + if pstats == 0 { + return + } + + headerCounter := 0 + for { + tickChan := time.NewTicker(time.Second * time.Duration(pstats)).C + <-tickChan + + // Do nothing if we haven't heard back anything from the device + + jctx.stats.Lock() + if jctx.stats.totalIn == 0 { + jctx.stats.Unlock() + continue + } + + s := fmt.Sprintf("\n") + + // print header + if headerCounter%100 == 0 { + s += "+------------------------------+--------------------+--------------------+--------------------+--------------------+\n" + s += "| Timestamp | KV | Packets | Bytes | Bytes(wire) |\n" + s += "+------------------------------+--------------------+--------------------+--------------------+--------------------+\n" + } + + s += fmt.Sprintf("| %s | %18v | %18v | %18v | %18v |\n", time.Now().Format(time.UnixDate), + jctx.stats.totalKV, + jctx.stats.totalIn, + jctx.stats.totalInPayloadLength, + jctx.stats.totalInPayloadWireLength) + jctx.stats.Unlock() + headerCounter++ + if s != "" { + jLog(jctx, fmt.Sprintf("%s\n", s)) + } + } +} + +func printSummary(jctx *JCtx) { + if !*stateHandler { + return + } + + endTime := time.Since(jctx.stats.startTime) + + s := fmt.Sprintf("\nCollector Stats for %s:%d (Run time : %s)\n", jctx.config.Host, jctx.config.Port, endTime) + s += fmt.Sprintf("%-12v : in-packets\n", jctx.stats.totalIn) + s += fmt.Sprintf("%-12v : data points (KV pairs)\n", jctx.stats.totalKV) + + s += fmt.Sprintf("%-12v : in-header wirelength (bytes)\n", jctx.stats.totalInHeaderWireLength) + s += fmt.Sprintf("%-12v : in-payload length (bytes)\n", jctx.stats.totalInPayloadLength) + s += fmt.Sprintf("%-12v : in-payload wirelength (bytes)\n", jctx.stats.totalInPayloadWireLength) + if uint64(endTime.Seconds()) != 0 { + s += fmt.Sprintf("%-12v : throughput (bytes per seconds)\n", jctx.stats.totalInPayloadLength/uint64(endTime.Seconds())) + } + + s += fmt.Sprintf("\n") + jLog(jctx, fmt.Sprintf("\n%s\n", s)) +} diff --git a/subscribe_cisco_iosxr.go b/subscribe_cisco_iosxr.go new file mode 100644 index 0000000..cb0c037 --- /dev/null +++ b/subscribe_cisco_iosxr.go @@ -0,0 +1,637 @@ +package main + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "strconv" + "strings" + "syscall" + "unicode" + + pb "github.com/Juniper/jtimon/multi-vendor/cisco/iosxr/grpc-proto" + "github.com/Juniper/jtimon/multi-vendor/cisco/iosxr/telemetry-proto" + "github.com/golang/protobuf/proto" + "google.golang.org/grpc" +) + +const ( + //CISCOGPBKV gRPC GPBKV encoding + CISCOGPBKV = 3 +) + +// cisco-iosxr needs per RPC credentials +type loginCreds struct { + Username string + Password string + requireTLS bool +} + +// Method of the Per RPC Credentials +func (c *loginCreds) GetRequestMetadata(context.Context, ...string) (map[string]string, error) { + return map[string]string{ + "username": c.Username, + "password": c.Password, + }, nil +} + +// Method of the Per RPC Credentials +func (c *loginCreds) RequireTransportSecurity() bool { + return c.requireTLS +} + +func dialExtensionXR(jctx *JCtx) grpc.DialOption { + if jctx.config.User != "" && jctx.config.Password != "" { + return grpc.WithPerRPCCredentials(&loginCreds{ + Username: jctx.config.User, + Password: jctx.config.Password, + requireTLS: false}) + } + return nil +} + +// type schema holds schemas from all of the files. JTIMON +// supports multi-file JSON schema +type schema struct { + nodes [][]*schemaNode +} + +// schemaNode holds individual JSON schema +type schemaNode struct { + Name string `json:"name"` + Key bool `json:"key"` + Kids []*schemaNode `json:"kids"` +} + +func (snode *schemaNode) String() string { + if snode.Key { + return snode.Name + "[key]" + } + return snode.Name +} + +// create new schema +func newSchema() *schema { + return &schema{} +} + +func (s *schema) String() string { + buf := new(bytes.Buffer) + for _, nodes := range s.nodes { + for _, node := range nodes { + swalk(node, "", buf) + } + } + return string(buf.Bytes()) +} + +func swalk(node *schemaNode, indent string, buf *bytes.Buffer) { + buf.WriteString(fmt.Sprintf("%s%s\n", indent, fmt.Sprintf("%s", node))) + + if node.Kids != nil { + for _, kid := range node.Kids { + swalk(kid, indent+" ", buf) + } + } +} + +func getXRSchemaNode(jctx *JCtx, name string) ([]*schemaNode, error) { + f, err := ioutil.ReadFile(name) + if err != nil { + return nil, fmt.Errorf("Could not read vendor schema file: %s", name) + } + + node := []*schemaNode{} + err = json.Unmarshal(f, &node) + if err != nil { + return nil, fmt.Errorf("Could not unmarshal JSON schema for file: %s", name) + } + return node, nil +} + +func getXRSchemaPaths(jctx *JCtx) ([]string, error) { + paths := []string{} + + for _, s := range jctx.config.Vendor.Schema { + name := s.Path + fmt.Println("name:", name) + if name == "" { + return nil, fmt.Errorf("Vendor schema is missing") + } + paths = append(paths, name) + } + + // pick up the path location from ENV variable + if envPath, found := os.LookupEnv("MV_CISCO_IOSXR_SCHEMA"); found { + paths = append(paths, envPath) + fmt.Println("envPath:", envPath) + } + return paths, nil +} + +// Load schemas. Schema helps to identify keys which are needed +// as tags +func getXRSchema(jctx *JCtx) (*schema, error) { + schema := newSchema() + paths, err := getXRSchemaPaths(jctx) + if err != nil { + return nil, err + } + for _, name := range paths { + if name == "" { + return nil, fmt.Errorf("Vendor schema is missing") + } + + fileInfo, err := os.Stat(name) + if err != nil { + return nil, err + } + + if fileInfo.IsDir() { + files, err := filepath.Glob(name + "/*.json") + if err != nil { + return nil, err + } + for _, file := range files { + node, err := getXRSchemaNode(jctx, file) + if err != nil { + return nil, err + } + schema.nodes = append(schema.nodes, node) + } + } else { + node, err := getXRSchemaNode(jctx, name) + if err != nil { + return nil, err + } + schema.nodes = append(schema.nodes, node) + } + } + return schema, nil +} + +func transformPath(path string) string { + mfunc := func(r rune) rune { + switch { + case unicode.IsLetter(r): + return r + case unicode.IsDigit(r): + return r + default: + return '_' + } + } + + if _, found := os.LookupEnv("MV_CISCO_IOSXR_XFORM_PATH"); found { + return "hbot" + strings.Map(mfunc, path) + } + + return path +} + +func handleOnePath(schema *schema, id int64, path string, conn *grpc.ClientConn, jctx *JCtx, datach chan<- struct{}) { + c := pb.NewGRPCConfigOperClient(conn) + + jLog(jctx, fmt.Sprintf("path transformation: %s --> %s", path, transformPath(path))) + subsArg := pb.CreateSubsArgs{ + ReqId: id, + Encode: CISCOGPBKV, + Subidstr: transformPath(path), + } + + stream, err := c.CreateSubs(context.Background(), &subsArg) + if err != nil { + jLog(jctx, fmt.Sprintf("Could not create subscription: %v (retry)", err)) + datach <- struct{}{} + return + } + + hdr, errh := stream.Header() + if errh != nil { + jLog(jctx, fmt.Sprintf("Failed to get header for stream: %v", errh)) + } + + jLog(jctx, fmt.Sprintf("gRPC headers from host %s:%d\n", jctx.config.Host, jctx.config.Port)) + for k, v := range hdr { + jLog(jctx, fmt.Sprintf(" %s: %s\n", k, v)) + } + + for { + // Go Routine which actually starts the streaming connection and receives the data + jLog(jctx, fmt.Sprintf("Receiving telemetry data from %s:%d\n", jctx.config.Host, jctx.config.Port)) + + d, err := stream.Recv() + if err == io.EOF { + datach <- struct{}{} + return + } + if err != nil { + jLog(jctx, fmt.Sprintf("%v.CreateSubs(_) = _, %v", conn, err)) + datach <- struct{}{} + return + } + message := new(telemetry.Telemetry) + err = proto.Unmarshal(d.GetData(), message) + if err != nil { + jLog(jctx, fmt.Sprintf("Can not unmarshal proto message:\n%q\n", message)) + continue + } + if *genTestData { + generateTestData(jctx, d.GetData()) + } + jLog(jctx, fmt.Sprintf("Received telemetry data from %v (vendor - cisco)", jctx.config.Host)) + + path := message.GetEncodingPath() + if path == "" { + jLog(jctx, "Device did not send encoding path - ignoring this message") + continue + } + + ePath := strings.Split(path, "/") + if len(ePath) == 1 { + jLog(jctx, fmt.Sprintf("The message matched with top-level subscription %s\n", ePath)) + for _, nodes := range schema.nodes { + for _, node := range nodes { + if strings.Compare(ePath[0], node.Name) == 0 { + for _, fields := range message.GetDataGpbkv() { + parentPath := []string{node.Name} + processTopLevelMsg(jctx, node, fields, parentPath, message.GetMsgTimestamp()) + } + } + } + } + } else if len(ePath) >= 2 { + jLog(jctx, fmt.Sprintf("Multi level path %s", ePath)) + for _, nodes := range schema.nodes { + for _, node := range nodes { + if strings.Compare(ePath[0], node.Name) == 0 { + if jctx.config.Vendor.RemoveNS { + strs := strings.Split(ePath[0], ":") + if len(strs) == 2 { + ePath[0] = strs[1] + } + } + + processMultiLevelMsg(jctx, node, ePath, message, message.GetMsgTimestamp()) + } + } + } + + } + + if jctx.config.Log.Verbose { + jLog(jctx, fmt.Sprintf("%q", message)) + printFields(jctx, message.GetDataGpbkv(), nil) + } + } +} + +func subscribeXR(conn *grpc.ClientConn, jctx *JCtx) SubErrorCode { + schema, err := getXRSchema(jctx) + if err != nil { + jLog(jctx, fmt.Sprintf("%s", err)) + return SubRcConnRetry + } + + jLog(jctx, fmt.Sprintf("%s", schema)) + + datach := make(chan struct{}) + id, err := strconv.ParseInt(jctx.config.CID, 10, 64) + if err != nil { + jLog(jctx, fmt.Sprintf("can not convert CID - %s to int64", jctx.config.CID)) + } + + for index, path := range jctx.config.Paths { + go handleOnePath(schema, id+int64(index), path.Path, conn, jctx, datach) + } + + for { + select { + case s := <-jctx.control: + switch s { + case syscall.SIGHUP: + // config has been updated restart the streaming + return SubRcSighupRestart + case os.Interrupt: + // we are done + return SubRcSighupNoRestart + } + case <-datach: + // data is not received, retry the connection + return SubRcConnRetry + } + } +} + +func getKeysFromMessage(jctx *JCtx, f *telemetry.TelemetryField) *telemetry.TelemetryField { + fields := f.GetFields() + + var k *telemetry.TelemetryField + for _, k = range fields { + if k.GetName() == "keys" { + break + } + } + return k +} + +// find the content in our message +func getContentFromMessage(jctx *JCtx, f *telemetry.TelemetryField) *telemetry.TelemetryField { + fields := f.GetFields() + + var c *telemetry.TelemetryField + for _, c = range fields { + if c.GetName() == "content" { + break + } + } + return c +} + +func getFieldStringValue(field *telemetry.TelemetryField) string { + switch field.GetValueByType().(type) { + case *telemetry.TelemetryField_StringValue: + return fmt.Sprintf("%s", field.GetStringValue()) + case *telemetry.TelemetryField_Uint32Value: + return fmt.Sprintf("%d", field.GetUint32Value()) + case *telemetry.TelemetryField_Uint64Value: + return fmt.Sprintf("%d", field.GetUint64Value()) + case *telemetry.TelemetryField_Sint32Value: + return fmt.Sprintf("%d", field.GetSint32Value()) + case *telemetry.TelemetryField_Sint64Value: + return fmt.Sprintf("%d", field.GetSint64Value()) + case *telemetry.TelemetryField_DoubleValue: + return fmt.Sprintf("%f", field.GetDoubleValue()) + case *telemetry.TelemetryField_BoolValue: + return fmt.Sprintf("%v", field.GetBoolValue()) + case *telemetry.TelemetryField_BytesValue: + return fmt.Sprintf("%v", field.GetBytesValue()) + default: + return "" + } +} + +func getFieldValueInterface(field *telemetry.TelemetryField, enableUint bool) interface{} { + switch field.GetValueByType().(type) { + case *telemetry.TelemetryField_StringValue: + return field.GetStringValue() + case *telemetry.TelemetryField_Uint32Value: + return field.GetUint32Value() + case *telemetry.TelemetryField_Uint64Value: + if enableUint { + return field.GetUint64Value() + } + return float64(field.GetUint64Value()) + case *telemetry.TelemetryField_Sint32Value: + return field.GetSint32Value() + case *telemetry.TelemetryField_Sint64Value: + return field.GetSint64Value() + case *telemetry.TelemetryField_DoubleValue: + return field.GetDoubleValue() + case *telemetry.TelemetryField_BoolValue: + return field.GetBoolValue() + case *telemetry.TelemetryField_BytesValue: + return field.GetBytesValue() + default: + return "" + } +} + +func getKeyValue(keys *telemetry.TelemetryField, name string) string { + fields := keys.GetFields() + for _, field := range fields { + if name == field.GetName() { + return getFieldStringValue(field) + } + } + return "" +} + +func multiLevelMsgTags(jctx *JCtx, node *schemaNode, ePath []string, m *telemetry.TelemetryField) ([]keyInfo, *schemaNode) { + savedNode := node + tags := []keyInfo{ + { + key: "device", + value: jctx.config.Host, + }, + { + key: "sensor", + value: strings.Join(ePath, "/"), + }, + { + key: "vendor", + value: "cisco", + }, + } + + keys := getKeysFromMessage(jctx, m) + + matched := false + node = savedNode + for index, pathElement := range ePath[1:] { + for _, n := range node.Kids { + if n.Name == pathElement { + matchedName := "" + matched = true + node = n + if n.Key { + matchedName = n.Name + } else { + for _, kid := range node.Kids { + if kid.Key { + matchedName = kid.Name + } + } + } + if matchedName != "" { + v := getKeyValue(keys, matchedName) + k := strings.Join(ePath[:index+1+1], "/") + k = "/" + k + "/" + fmt.Sprintf("@%s", matchedName) + tag := keyInfo{ + key: k, + value: v, + } + tags = append(tags, tag) + } + break + } + } + if !matched { + break + } + } + return tags, node +} + +func processMultiLevelMsg(jctx *JCtx, node *schemaNode, ePath []string, message *telemetry.Telemetry, ts uint64) { + for _, m := range message.GetDataGpbkv() { + tags, matchedNode := multiLevelMsgTags(jctx, node, ePath, m) + content := getContentFromMessage(jctx, m) + if content == nil { + continue + } + walk(jctx, matchedNode, content.GetFields(), ePath, tags, ts) + } +} + +func processTopLevelMsg(jctx *JCtx, node *schemaNode, field *telemetry.TelemetryField, parentPath []string, ts uint64) { + content := getContentFromMessage(jctx, field) + + if content != nil { + // let's start processing this message content + tags := []keyInfo{ + { + key: "device", + value: jctx.config.Host, + }, + { + key: "sensor", + value: parentPath[0], + }, + { + key: "vendor", + value: "cisco", + }, + } + walk(jctx, node, content.GetFields(), parentPath, tags, ts) + } +} + +type keyInfo struct { + key string + value string +} + +func (k keyInfo) String() string { + return fmt.Sprintf("key=%s value=%s", k.key, k.value) +} + +func walk(jctx *JCtx, n *schemaNode, f []*telemetry.TelemetryField, p []string, tags []keyInfo, ts uint64) { + var matchedNode *schemaNode + newTags := tags + + for _, field := range f { + name := field.GetName() + if n != nil { + for _, node := range n.Kids { + if name == node.Name { + if node.Key { + kinfo := keyInfo{ + key: fmt.Sprintf("%s@%s", getParentPath(p, jctx.config.Vendor.RemoveNS), name), + value: getFieldStringValue(field), + } + newTags = append(tags, kinfo) + } + matchedNode = node + } + } + } + + switch field.GetFields() { + case nil: + + k := getParentPath(p, jctx.config.Vendor.RemoveNS) + field.GetName() + v := getFieldStringValue(field) + if jctx.config.Log.Verbose { + jLog(jctx, fmt.Sprintf("\nTAGS: %v\n", newTags)) + jLog(jctx, fmt.Sprintf("\nPOINT: %s = %s\n", k, v)) + } + + if *genTestData { + if jctx.testExp != nil { + jctx.testExp.WriteString(fmt.Sprintf("TAGS: %v\n", newTags)) + jctx.testExp.WriteString(fmt.Sprintf("POINT: %s = %s\n", k, v)) + } + } + if *conTestData { + if jctx.testRes != nil { + jctx.testRes.WriteString(fmt.Sprintf("TAGS: %v\n", newTags)) + jctx.testRes.WriteString(fmt.Sprintf("POINT: %s = %s\n", k, v)) + } + } + + tagsM := make(map[string]string) + fieldsM := make(map[string]interface{}) + + for _, t := range newTags { + tagsM[t.key] = t.value + } + fieldsM[k] = getFieldValueInterface(field, jctx.config.EnableUintSupport) + m := newMetricIDB(tagsM, fieldsM, ts) + m.accumulate(jctx) + + default: + var q []string + // we need new parent path so that when recursion winds down we get the + // correct parent path. It's recursive code so when it calls itself, + // pushes parent to the end of the slice, we dont need to pop it + // ourselves since its copy (newParentPath), when we wind down the recursion + // it will automatically removed. + + if field.GetName() != "" { + q = append(p, field.GetName()) + } + walk(jctx, matchedNode, field.GetFields(), q, newTags, ts) + } + } +} + +func getParentPath(p []string, ns bool) string { + if ns { + for index, path := range p { + s := strings.Split(path, ":") + if len(s) == 2 { + p[index] = s[1] + } + } + } + return "/" + strings.Join(p, "/") + "/" +} + +func printFields(jctx *JCtx, fields []*telemetry.TelemetryField, parentPath []string) { + for _, field := range fields { + switch field.GetFields() { + case nil: + printOneField(jctx, field, parentPath) + default: + // we need new parent path so that when recursion winds down we get the + // correct parent path. It's recursive code so when it calls itself, + // pushes parent to the end of the slice, we dont need to pop it + // ourselves since its copy (newParentPath), when we wind down the recursion + // it will automatically removed. + var newParentPath []string + if field.GetName() != "" { + newParentPath = append(parentPath, field.GetName()) + } + printFields(jctx, field.GetFields(), newParentPath) + } + } +} + +// print one field (or one leaf). A leaf carries data. +func printOneField(jctx *JCtx, field *telemetry.TelemetryField, parentPath []string) { + switch field.GetValueByType().(type) { + case *telemetry.TelemetryField_StringValue: + jLog(jctx, fmt.Sprintf("%s%s: %s\n", getParentPath(parentPath, jctx.config.Vendor.RemoveNS), field.GetName(), field.GetStringValue())) + case *telemetry.TelemetryField_BoolValue: + jLog(jctx, fmt.Sprintf("%s%s: %v\n", getParentPath(parentPath, jctx.config.Vendor.RemoveNS), field.GetName(), field.GetBoolValue())) + case *telemetry.TelemetryField_Uint32Value: + jLog(jctx, fmt.Sprintf("%s%s: %v\n", getParentPath(parentPath, jctx.config.Vendor.RemoveNS), field.GetName(), field.GetUint32Value())) + case *telemetry.TelemetryField_Uint64Value: + jLog(jctx, fmt.Sprintf("%s%s: %v\n", getParentPath(parentPath, jctx.config.Vendor.RemoveNS), field.GetName(), field.GetUint64Value())) + case *telemetry.TelemetryField_BytesValue: + jLog(jctx, fmt.Sprintf("%s%s: %v\n", getParentPath(parentPath, jctx.config.Vendor.RemoveNS), field.GetName(), field.GetBytesValue())) + case *telemetry.TelemetryField_Sint32Value: + jLog(jctx, fmt.Sprintf("%s%s: %v\n", getParentPath(parentPath, jctx.config.Vendor.RemoveNS), field.GetName(), field.GetSint32Value())) + case *telemetry.TelemetryField_Sint64Value: + jLog(jctx, fmt.Sprintf("%s%s: %v\n", getParentPath(parentPath, jctx.config.Vendor.RemoveNS), field.GetName(), field.GetSint64Value())) + case *telemetry.TelemetryField_DoubleValue: + jLog(jctx, fmt.Sprintf("%s%s: %v\n", getParentPath(parentPath, jctx.config.Vendor.RemoveNS), field.GetName(), field.GetDoubleValue())) + default: + } +} diff --git a/subscribe_cisco_iosxr_test.go b/subscribe_cisco_iosxr_test.go new file mode 100644 index 0000000..ca2466c --- /dev/null +++ b/subscribe_cisco_iosxr_test.go @@ -0,0 +1,558 @@ +package main + +import ( + "fmt" + "io/ioutil" + "os" + "reflect" + "strconv" + "strings" + "testing" + "time" + + "github.com/Juniper/jtimon/multi-vendor/cisco/iosxr/telemetry-proto" + "github.com/golang/protobuf/proto" + flag "github.com/spf13/pflag" +) + +func TestTransformPath(t *testing.T) { + tests := []struct { + name string + setEnv bool + input string + output string + }{ + { + name: "noenv1", + setEnv: false, + input: "/interfaces", + output: "/interfaces", + }, + { + name: "env1", + setEnv: true, + input: "/interfaces", + output: "hbot_interfaces", + }, + { + name: "noenv2", + setEnv: false, + input: "/interfaces/interfaces", + output: "/interfaces/interfaces", + }, + { + name: "env2", + setEnv: true, + input: "/interfaces/interface", + output: "hbot_interfaces_interface", + }, + { + name: "env3", + setEnv: true, + input: "/interfaces/interface[name=\"xe-0/0/0\"]/state/mtu", + output: "hbot_interfaces_interface_name__xe_0_0_0___state_mtu", + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + if test.setEnv { + os.Setenv("MV_CISCO_IOSXR_XFORM_PATH", "yes") + defer os.Unsetenv("MV_CISCO_IOSXR_XFORM_PATH") + } + op := transformPath(test.input) + if op != test.output { + t.Errorf("got: %s, want: %s", op, test.output) + } + }) + } +} + +func TestXRInflux(t *testing.T) { + host := "127.0.0.1" + port := 50052 + + tt := []struct { + name string + config string + jctx *JCtx + }{ + { + name: "xr-all", + config: "tests/data/cisco-ios-xr/config/xr-all-influx.json", + jctx: &JCtx{ + file: "tests/data/cisco-ios-xr/config/xr-all-influx.json", + }, + }, + { + name: "xr-wdsysmon", + config: "tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json", + jctx: &JCtx{ + file: "tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json", + }, + }, + } + + for _, test := range tt { + t.Run(test.name, func(t *testing.T) { + if err := influxStore(host, port, STOREOPEN, test.config+".testres"); err != nil { + t.Errorf("influxStore(open) failed: %v", err) + } + + jctx := test.jctx + err := ConfigRead(jctx, true, nil) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + + schema, err := getXRSchema(jctx) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + + sizeFileContent, err := ioutil.ReadFile(jctx.file + ".testmeta") + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + + data, err := os.Open(jctx.file + ".testbytes") + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + defer data.Close() + + testRes, err := os.Create(jctx.file + ".testres") + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + defer testRes.Close() + jctx.testRes = testRes + + sizes := strings.Split(string(sizeFileContent), ":") + for _, size := range sizes { + if size != "" { + n, err := strconv.ParseInt(size, 10, 64) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + d := make([]byte, n) + bytesRead, err := data.Read(d) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + if int64(bytesRead) != n { + t.Errorf("want %d got %d from testbytes", n, bytesRead) + } + message := new(telemetry.Telemetry) + err = proto.Unmarshal(d, message) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + path := message.GetEncodingPath() + if path == "" { + continue + } + + ePath := strings.Split(path, "/") + if len(ePath) == 1 { + for _, nodes := range schema.nodes { + for _, node := range nodes { + if strings.Compare(ePath[0], node.Name) == 0 { + for _, fields := range message.GetDataGpbkv() { + parentPath := []string{node.Name} + processTopLevelMsg(jctx, node, fields, parentPath, message.GetMsgTimestamp()) + } + } + } + } + } else if len(ePath) >= 2 { + for _, nodes := range schema.nodes { + for _, node := range nodes { + if strings.Compare(ePath[0], node.Name) == 0 { + processMultiLevelMsg(jctx, node, ePath, message, message.GetMsgTimestamp()) + } + } + } + + } + } + } + + // we will need to give LPServer some time to process all the points + time.Sleep(time.Duration(8) * time.Second) + if err := influxStore(host, port, STORECLOSE, test.config+".testres"); err != nil { + t.Errorf("influxStore(close) failed: %v", err) + } + + if err := compareResults(jctx); err != nil { + t.Log(err) + } + }) + } +} + +func TestXRTagsPoints(t *testing.T) { + flag.Parse() + *conTestData = true + + tt := []struct { + name string + config string + jctx *JCtx + }{ + { + name: "xr-all", + config: "tests/data/cisco-ios-xr/config/xr-all.json", + jctx: &JCtx{ + file: "tests/data/cisco-ios-xr/config/xr-all.json", + }, + }, + { + name: "xr-wdsysmon", + config: "tests/data/cisco-ios-xr/config/xr-wdsysmon.json", + jctx: &JCtx{ + file: "tests/data/cisco-ios-xr/config/xr-wdsysmon.json", + }, + }, + } + + for _, test := range tt { + t.Run(test.name, func(t *testing.T) { + jctx := test.jctx + err := ConfigRead(jctx, true, nil) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + + schema, err := getXRSchema(jctx) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + + sizeFileContent, err := ioutil.ReadFile(jctx.file + ".testmeta") + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + + data, err := os.Open(jctx.file + ".testbytes") + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + defer data.Close() + + testRes, err := os.Create(jctx.file + ".testres") + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + defer testRes.Close() + jctx.testRes = testRes + + sizes := strings.Split(string(sizeFileContent), ":") + for _, size := range sizes { + if size != "" { + n, err := strconv.ParseInt(size, 10, 64) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + d := make([]byte, n) + bytesRead, err := data.Read(d) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + if int64(bytesRead) != n { + t.Errorf("want %d got %d from testbytes", n, bytesRead) + } + message := new(telemetry.Telemetry) + err = proto.Unmarshal(d, message) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + path := message.GetEncodingPath() + if path == "" { + continue + } + + ePath := strings.Split(path, "/") + if len(ePath) == 1 { + for _, nodes := range schema.nodes { + for _, node := range nodes { + if strings.Compare(ePath[0], node.Name) == 0 { + for _, fields := range message.GetDataGpbkv() { + parentPath := []string{node.Name} + processTopLevelMsg(jctx, node, fields, parentPath, message.GetMsgTimestamp()) + } + } + } + } + } else if len(ePath) >= 2 { + for _, nodes := range schema.nodes { + for _, node := range nodes { + if strings.Compare(ePath[0], node.Name) == 0 { + processMultiLevelMsg(jctx, node, ePath, message, message.GetMsgTimestamp()) + } + } + } + + } + } + + } + if err := compareResults(jctx); err != nil { + t.Errorf("%v", err) + } + }) + } +} +func TestXRSchema(t *testing.T) { + + tt := []struct { + name string + schemaPath string + schemaStr string + }{ + { + name: "directory", + schemaPath: "tests/data/cisco-ios-xr/schema", + schemaStr: `openconfig-bgp:bgp + neighbors + neighbor + neighbor-address[key] + afi-safis + afi-safi + afi-safi-name[key] + openconfig-rib-bgp:bgp-rib + afi-safis + afi-safi-name[key] + afi-safi + afi-safi-name[key] + ipv4-unicast + neighbors + neighbor + neighbor-address[key] + openconfig-interfaces:interfaces + interface + name[key] + subinterfaces + subinterface + index[key] + Cisco-IOS-XR-infra-statsd-oper:infra-statistics + interfaces + interface + interface-name[key] + protocols + protocol + protocol-name[key] + cache + protocols + protocol + protocol-name[key] + total + protocols + protocol + protocol-name[key] + latest + protocols + protocol + protocol-name[key] + Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring + cpu-utilization + node-name[key] + process-cpu + process-name[key]`, + }, + { + name: "file", + schemaPath: "tests/data/cisco-ios-xr/schema/interfaces.json", + schemaStr: `openconfig-interfaces:interfaces + interface + name[key] + subinterfaces + subinterface + index[key]`, + }, + { + name: "env", + schemaPath: "", + schemaStr: `openconfig-interfaces:interfaces + interface + name[key] + subinterfaces + subinterface + index[key]`, + }, + } + + for _, test := range tt { + t.Run(test.name, func(t *testing.T) { + var jctx *JCtx + if test.schemaPath == "" { + os.Setenv("MV_CISCO_IOSXR_SCHEMA", "tests/data/cisco-ios-xr/schema/interfaces.json") + defer os.Unsetenv("MV_CISCO_IOSXR_SCHEMA") + jctx = &JCtx{ + config: Config{ + Vendor: VendorConfig{ + Name: "cisco-iosxr", + RemoveNS: true, + }, + }, + } + } else { + jctx = &JCtx{ + config: Config{ + Vendor: VendorConfig{ + Name: "cisco-iosxr", + RemoveNS: true, + Schema: []VendorSchema{ + {test.schemaPath}, + }, + }, + }, + } + } + + if schema, err := getXRSchema(jctx); err != nil { + t.Errorf("error %v for %s", err, test.schemaPath) + } else { + got := fmt.Sprintf("%s", schema) + if compareString(got, test.schemaStr) == false { + t.Errorf("want: \n%s\n, got: \n%s\n", test.schemaStr, got) + } + } + }) + } +} + +func Test_getFieldValueInterface(t *testing.T) { + type args struct { + field *telemetry.TelemetryField + enableUint bool + } + tests := []struct { + name string + args args + want interface{} + }{ + { + "unsigned-data-and-uint-enabled", + args{ + field: &telemetry.TelemetryField{ + ValueByType: &telemetry.TelemetryField_Uint64Value{ + Uint64Value: uint64(1), + }, + }, + enableUint: true, + }, + uint64(1), + }, + { + "unsigned-data-and-uint-disabled", + args{ + field: &telemetry.TelemetryField{ + ValueByType: &telemetry.TelemetryField_Uint64Value{ + Uint64Value: uint64(1), + }, + }, + enableUint: false, + }, + float64(1), + }, + { + "string", + args{ + field: &telemetry.TelemetryField{ + ValueByType: &telemetry.TelemetryField_StringValue{ + StringValue: "test", + }, + }, + enableUint: false, + }, + "test", + }, + { + "uint32", + args{ + field: &telemetry.TelemetryField{ + ValueByType: &telemetry.TelemetryField_Uint32Value{ + Uint32Value: uint32(1), + }, + }, + enableUint: false, + }, + uint32(1), + }, + { + "sint32", + args{ + field: &telemetry.TelemetryField{ + ValueByType: &telemetry.TelemetryField_Sint32Value{ + Sint32Value: int32(1), + }, + }, + enableUint: false, + }, + int32(1), + }, + { + "sint64", + args{ + field: &telemetry.TelemetryField{ + ValueByType: &telemetry.TelemetryField_Sint64Value{ + Sint64Value: int64(1), + }, + }, + enableUint: false, + }, + int64(1), + }, + { + "double", + args{ + field: &telemetry.TelemetryField{ + ValueByType: &telemetry.TelemetryField_DoubleValue{ + DoubleValue: float64(1), + }, + }, + enableUint: false, + }, + float64(1), + }, + { + "bool", + args{ + field: &telemetry.TelemetryField{ + ValueByType: &telemetry.TelemetryField_BoolValue{ + BoolValue: true, + }, + }, + enableUint: false, + }, + true, + }, + { + "bytes", + args{ + field: &telemetry.TelemetryField{ + ValueByType: &telemetry.TelemetryField_BytesValue{ + BytesValue: []byte("test"), + }, + }, + enableUint: false, + }, + []byte("test"), + }, + { + "default", + args{ + field: nil, + enableUint: false, + }, + "", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := getFieldValueInterface(tt.args.field, tt.args.enableUint); !reflect.DeepEqual(got, tt.want) { + t.Errorf("getFieldValueInterface() = %v, want %v", got, tt.want) + } + }) + } +} diff --git a/subscribe_gnmi.go b/subscribe_gnmi.go new file mode 100644 index 0000000..6620ad1 --- /dev/null +++ b/subscribe_gnmi.go @@ -0,0 +1,529 @@ +package main + +import ( + "errors" + "fmt" + "io" + "os" + "strconv" + "strings" + "syscall" + "time" + + "google.golang.org/grpc/codes" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + + gnmi "github.com/Juniper/jtimon/gnmi/gnmi" + google_protobuf "github.com/golang/protobuf/ptypes/any" + "github.com/influxdata/influxdb/client/v2" + "golang.org/x/net/context" + + "google.golang.org/grpc" +) + +// Only for unit test and coverage purposes +var gGnmiUnitTestCoverage bool + +// Convert data to float64, Prometheus sampling is only in float64 +func convToFloatForPrometheus(v interface{}) (float64, error) { + var fieldValue float64 + + switch v.(type) { + case int64: + fieldValue = float64(v.(int64)) + case float64: + fieldValue = v.(float64) + case bool: + if v.(bool) == true { + fieldValue = 1 + } else { + fieldValue = 0 + } + + case string: + floatVal, err := strconv.ParseFloat(v.(string), 64) + if err != nil { + errmsg := fmt.Sprintf("Unable to convert string val \"%v\"", v) + return 0, errors.New(errmsg) + } + fieldValue = floatVal + case *google_protobuf.Any: + case []interface{}: + case []byte: + default: + errMsg := fmt.Sprintf("Unsupported type %T", v) + return 0, errors.New(errMsg) + } + + return fieldValue, nil +} + +/* + * Publish metrics to Prometheus. Below is the terminology: + * 1. Field - Metric + * 2. Tags - Labels + */ +func publishToPrometheus(jctx *JCtx, parseOutput *gnmiParseOutputT) { + var ( + promKvpairs = map[string]string{} + alias = jctx.alias + ) + + for k, v := range parseOutput.kvpairs { + promKvpairs[promName(getAlias(alias, k))] = v + } + + for p, v := range parseOutput.xpaths { + splits := strings.Split(p, gXPathTokenPathSep) + if strings.HasPrefix(splits[len(splits)-1], gGnmiJuniperInternalFieldsPrefix) { + continue + } + + floatVal, err := convToFloatForPrometheus(v) + if err != nil { + jLog(jctx, fmt.Sprintf("Value conversion failed for %v, error: %v", p, err)) + continue + } + + metric := &jtimonMetric{ + metricName: promName(getAlias(alias, p)), + metricExpiration: time.Now(), + metricValue: floatVal, + metricLabels: promKvpairs, + } + + metric.mapKey = getMapKey(metric) + + if *print || IsVerboseLogging(jctx) { + jLog(jctx, fmt.Sprintf("metricName: %v, metricValue: %v, metricLabels: %v, mapKey: %v \n", metric.metricName, metric.metricValue, metric.metricLabels, metric.mapKey)) + } + + if !gGnmiUnitTestCoverage { + exporter.ch <- metric + } + } + + return +} + +/* + * Publish parsed output to Influx. Make sure there are only inegers, + * floats and strings. Influx Line Protocol doesn't support other types + */ +func publishToInflux(jctx *JCtx, mName string, prefixPath string, kvpairs map[string]string, xpaths map[string]interface{}) error { + if !gGnmiUnitTestCoverage && jctx.influxCtx.influxClient == nil { + return nil + } + + pt, err := client.NewPoint(mName, kvpairs, xpaths, time.Now()) + if err != nil { + msg := fmt.Sprintf("New point creation failed for (key: %v, xpaths: %v): %v", kvpairs, xpaths, err) + jLog(jctx, msg) + return errors.New(msg) + } + + if jctx.config.Influx.WritePerMeasurement { + if *print || IsVerboseLogging(jctx) { + msg := fmt.Sprintf("New point (per measurement): %v", pt.String()) + jLog(jctx, msg) + } + + if !gGnmiUnitTestCoverage { + jctx.influxCtx.batchWMCh <- &batchWMData{ + measurement: mName, + points: []*client.Point{pt}, + } + } + } else { + if *print || IsVerboseLogging(jctx) { + msg := fmt.Sprintf("New point: %v", pt.String()) + jLog(jctx, msg) + } + + if !gGnmiUnitTestCoverage { + jctx.influxCtx.batchWCh <- []*client.Point{pt} + } + } + + return nil +} + +/* + * Extract the following from gNMI response and already parsed output: + * 1. Juniper telemetry header, if it is a Juniper packet + * 2. Value for the tag "sensor" + * 3. Measuremnet name + * 4. Timestamps: + * a) Producer timestamp + * b) Export timestamp - Only available in Juniper packet, the time at which device(?? actually NA) published + */ +func gnmiParseHeader(rsp *gnmi.SubscribeResponse, parseOutput *gnmiParseOutputT) (*gnmiParseOutputT, error) { + var ( + juniperHdrDetails *juniperGnmiHeaderDetails + ok bool + err error + + verboseSensorDetails, mName string + ) + + prefixPath := parseOutput.prefixPath + jXpaths := parseOutput.jXpaths + xpathVal := parseOutput.xpaths + + // Identify the measurement name + // Try using the proper gnmi_ext.proto's path in gnmi.proto, now it is manually edited + juniperHdrDetails, ok, err = formJuniperTelemetryHdr(jXpaths, rsp.GetExtension()) + if !ok { + // Not a juniper packet, take prefix as the path subscribed + ps := rsp.GetUpdate().GetTimestamp() + // Specifically added for Cisco, the device sends spurious messages with timestamp 0 + if ps == 0 { + errMsg := fmt.Sprintf("Invalid message, producer timestamp is 0") + return nil, errors.New(errMsg) + } + parseOutput.sensorVal = prefixPath + parseOutput.mName = prefixPath + gXPathTokenPathSep // To be compatible with that of OC + tsInMillisecs := (ps / gGnmiFreqToMilli) + xpathVal[prefixPath+gXPathTokenPathSep+gGnmiJtimonProducerTsName] = tsInMillisecs + xpathVal[gGnmiJtimonDeviceTsName] = tsInMillisecs + return parseOutput, nil + } + + if err != nil { + return parseOutput, err + } + + if juniperHdrDetails.hdr != nil { + var hdr = juniperHdrDetails.hdr + verboseSensorDetails = hdr.GetPath() + splits := strings.Split(verboseSensorDetails, gGnmiVerboseSensorDetailsDelim) + + mName = splits[2] // Denotes subscribed path + if jXpaths.publishTsXpath != "" { + xpathVal[prefixPath+gXPathTokenPathSep+gGnmiJtimonExportTsName] = jXpaths.xPaths[jXpaths.publishTsXpath] + } + + tsInMillisecs := (rsp.GetUpdate().GetTimestamp() / gGnmiFreqToMilli) + xpathVal[prefixPath+gXPathTokenPathSep+gGnmiJtimonProducerTsName] = tsInMillisecs + xpathVal[gGnmiJtimonDeviceTsName] = tsInMillisecs + } else { + var hdr = juniperHdrDetails.hdrExt + verboseSensorDetails = hdr.GetSensorName() + gGnmiVerboseSensorDetailsDelim + + hdr.GetStreamedPath() + gGnmiVerboseSensorDetailsDelim + + hdr.GetSubscribedPath() + gGnmiVerboseSensorDetailsDelim + + hdr.GetComponent() + + mName = hdr.GetSubscribedPath() + xpathVal[prefixPath+gXPathTokenPathSep+gGnmiJtimonExportTsName] = hdr.GetExportTimestamp() + + tsInMillisecs := (rsp.GetUpdate().GetTimestamp() / gGnmiFreqToMilli) + xpathVal[prefixPath+gXPathTokenPathSep+gGnmiJtimonProducerTsName] = tsInMillisecs + xpathVal[gGnmiJtimonDeviceTsName] = tsInMillisecs + } + + parseOutput.jHeader = juniperHdrDetails + parseOutput.sensorVal = verboseSensorDetails + parseOutput.mName = mName + return parseOutput, nil +} + +/* + * Extract the following from gNMI response and already parsed output: + * 1. Tags aka kvpairs + * 2. Fields aka xpaths + * 3. Juniper telemery header, "sensor" value and measurement name + */ +func gnmiParseNotification(parseOrigin bool, rsp *gnmi.SubscribeResponse, parseOutput *gnmiParseOutputT, enableUint bool) (*gnmiParseOutputT, error) { + var ( + errMsg string + err error + ) + + notif := rsp.GetUpdate() + if notif == nil { + errMsg = fmt.Sprintf("Not any of error/sync/update !!") + return parseOutput, errors.New(errMsg) + } + + if len(notif.GetUpdate()) != 0 { + parseOutput, err = gnmiParseUpdates(parseOrigin, notif.GetPrefix(), notif.GetUpdate(), parseOutput, enableUint) + if err != nil { + errMsg = fmt.Sprintf("gnmiParseUpdates failed: %v", err) + return parseOutput, errors.New(errMsg) + } + } + + if len(notif.GetDelete()) != 0 { + parseOutput, err = gnmiParseDeletes(parseOrigin, notif.GetPrefix(), notif.GetDelete(), parseOutput) + if err != nil { + return parseOutput, err + } + } + + /* + * Update in-kvs immediately after we form xpaths from the rsp because + * down the line xpaths will get updated with additional jtimon specific + * fields to be written to influx + */ + parseOutput.inKvs += uint64(len(parseOutput.xpaths)) + if parseOutput.jXpaths != nil { + parseOutput.inKvs += uint64(len(parseOutput.jXpaths.xPaths)) + } + + parseOutput, err = gnmiParseHeader(rsp, parseOutput) + if err != nil { + errMsg = fmt.Sprintf("gnmiParseHeader failed: %v", err) + return parseOutput, errors.New(errMsg) + } + + return parseOutput, nil +} + +/* + * Parse gNMI response and publish to Influx and Prometheus + */ +func gnmiHandleResponse(jctx *JCtx, rsp *gnmi.SubscribeResponse) error { + var ( + tmpParseOp = gnmiParseOutputT{kvpairs: map[string]string{}, xpaths: map[string]interface{}{}} + parseOutput = &tmpParseOp + err error + + hostname = jctx.config.Host + ":" + strconv.Itoa(jctx.config.Port) + ) + + // Update packet stats + updateStats(jctx, nil, true) + if syncRsp := rsp.GetSyncResponse(); syncRsp { + jLog(jctx, fmt.Sprintf("gNMI host: %v, received sync response", hostname)) + parseOutput.syncRsp = true + jctx.receivedSyncRsp = true + return nil + } + + /* + * Extract prefix, tags, values and juniper speecific header info if present + */ + parseOutput, err = gnmiParseNotification(!jctx.config.Vendor.RemoveNS, rsp, parseOutput, jctx.config.EnableUintSupport) + if err != nil { + jLog(jctx, fmt.Sprintf("gNMI host: %v, parsing notification failed: %v", hostname, err.Error())) + return err + } + + // Update kv stats + updateStatsKV(jctx, true, parseOutput.inKvs) + + // Ignore all packets till sync response is received. + if !jctx.config.EOS { + if !jctx.receivedSyncRsp { + if parseOutput.jHeader != nil { + // For juniper packets, ignore only the packets which are numbered in initial sync sequence range + if parseOutput.jHeader.hdr != nil { + if parseOutput.jHeader.hdr.GetSequenceNumber() >= gGnmiJuniperIsyncSeqNumBegin && + parseOutput.jHeader.hdr.GetSequenceNumber() <= gGnmiJuniperIsyncSeqNumEnd { + errMsg := fmt.Sprintf("%s. Dropping initial sync packet, seq num: %v", gGnmiJtimonIgnoreErrorSubstr, parseOutput.jHeader.hdr.GetSequenceNumber()) + return errors.New(errMsg) + } + } + + if parseOutput.jHeader.hdrExt != nil { + if parseOutput.jHeader.hdrExt.GetSequenceNumber() >= gGnmiJuniperIsyncSeqNumBegin && + parseOutput.jHeader.hdrExt.GetSequenceNumber() <= gGnmiJuniperIsyncSeqNumEnd { + errMsg := fmt.Sprintf("%s. Dropping initial sync packet, seq num: %v", gGnmiJtimonIgnoreErrorSubstr, parseOutput.jHeader.hdrExt.GetSequenceNumber()) + return errors.New(errMsg) + } + } + } else { + errMsg := fmt.Sprintf("%s. Dropping initial sync packet", gGnmiJtimonIgnoreErrorSubstr) + return errors.New(errMsg) + } + } + } + + if parseOutput.mName == "" { + jLog(jctx, fmt.Sprintf("gNMI host: %v, measurement name extraction failed", hostname)) + return errors.New("Measurement name extraction failed") + } + + parseOutput.kvpairs["device"] = jctx.config.Host + parseOutput.kvpairs["sensor"] = parseOutput.sensorVal + parseOutput.xpaths["vendor"] = "gnmi" + + if *prom { + if *noppgoroutines { + publishToPrometheus(jctx, parseOutput) + } else { + go publishToPrometheus(jctx, parseOutput) + } + } + + if *print || IsVerboseLogging(jctx) { + var ( + jxpaths map[string]interface{} + jGnmiHdr string + ) + + if parseOutput.jXpaths != nil { + jxpaths = parseOutput.jXpaths.xPaths + } + if parseOutput.jHeader != nil { + if parseOutput.jHeader.hdr != nil { + jGnmiHdr = "updates header{" + parseOutput.jHeader.hdr.String() + "}" + } else { + jGnmiHdr = "extension header{" + parseOutput.jHeader.hdrExt.String() + "}" + } + } + + jLog(jctx, fmt.Sprintf("prefix: %v, kvpairs: %v, xpathVal: %v, juniperXpathVal: %v, juniperhdr: %v, measurement: %v, rsp: %v\n\n", + parseOutput.prefixPath, parseOutput.kvpairs, parseOutput.xpaths, jxpaths, jGnmiHdr, parseOutput.mName, *rsp)) + } + + err = publishToInflux(jctx, parseOutput.mName, parseOutput.prefixPath, parseOutput.kvpairs, parseOutput.xpaths) + if err != nil { + jLog(jctx, fmt.Sprintf("Publish to Influx fails: %v\n\n", parseOutput.mName)) + return err + } + + return err +} + +// subscribe routine constructs the subscription paths and calls +// the function to start the streaming connection. +// +// In case of SIGHUP, the paths are formed again and streaming +// is restarted. +func subscribegNMI(conn *grpc.ClientConn, jctx *JCtx) SubErrorCode { + var ( + subs gnmi.SubscriptionList + sub = gnmi.SubscribeRequest_Subscribe{Subscribe: &subs} + req = gnmi.SubscribeRequest{Request: &sub} + err error + + hostname = jctx.config.Host + ":" + strconv.Itoa(jctx.config.Port) + ctx context.Context + ) + + // 1. Form request + + // Support only STREAM + subs.Mode = gnmi.SubscriptionList_STREAM + + // PROTO encoding + if jctx.config.Vendor.Gnmi != nil { + switch jctx.config.Vendor.Gnmi.Encoding { + case "json": + subs.Encoding = gnmi.Encoding_JSON + case "json_ietf": + subs.Encoding = gnmi.Encoding_JSON_IETF + default: + subs.Encoding = gnmi.Encoding_PROTO + } + } + + // Is isync needed? + subs.UpdatesOnly = !jctx.config.EOS + + // Form paths + for _, p := range jctx.config.Paths { + gp, err := xPathTognmiPath(p.Path) + if err != nil { + jLog(jctx, fmt.Sprintf("gNMI host: %v, Invalid path: %v", hostname, err)) + // To make worker absorb any further config changes + return SubRcConnRetry + } + + mode := gnmiMode(p.Mode) + mode, freq := gnmiFreq(mode, p.Freq) + + subs.Subscription = append(subs.Subscription, &gnmi.Subscription{Path: gp, Mode: mode, SampleInterval: freq}) + } + + // 2. Subscribe + if jctx.config.User != "" && jctx.config.Password != "" { + md := metadata.New(map[string]string{"username": jctx.config.User, "password": jctx.config.Password}) + ctx = metadata.NewOutgoingContext(context.Background(), md) + } else { + ctx = context.Background() + } + gNMISubHandle, err := gnmi.NewGNMIClient(conn).Subscribe(ctx) + if err != nil { + jLog(jctx, fmt.Sprintf("gNMI host: %v, subscribe handle creation failed, err: %v", hostname, err)) + return SubRcConnRetry + } + + err = gNMISubHandle.Send(&req) + if err != nil { + jLog(jctx, fmt.Sprintf("gNMI host: %v, send request failed: %v", hostname, err)) + return SubRcConnRetry + } + + datach := make(chan SubErrorCode) + + // 3. Receive rsp + go func() { + var ( + rsp *gnmi.SubscribeResponse + ) + + jLog(jctx, fmt.Sprintf("gNMI host: %v, receiving data..", hostname)) + for { + rsp, err = gNMISubHandle.Recv() + if err == io.EOF { + printSummary(jctx) + jLog(jctx, fmt.Sprintf("gNMI host: %v, received eof", hostname)) + datach <- SubRcConnRetry + return + } + + if err != nil { + jLog(jctx, fmt.Sprintf("gNMI host: %v, receive response failed: %v", hostname, err)) + sc, _ := status.FromError(err) + + /* + * Unavailable is just a cover-up for JUNOS, ideally the device is expected to return: + * 1. Unimplemented if RPC is not available yet + * 2. InvalidArgument is RPC is not able to honour the input + */ + if sc.Code() == codes.Unimplemented || sc.Code() == codes.InvalidArgument || sc.Code() == codes.Unavailable { + datach <- SubRcRPCFailedNoRetry + return + } + + datach <- SubRcConnRetry + return + } + + if *noppgoroutines { + err = gnmiHandleResponse(jctx, rsp) + if err != nil && strings.Contains(err.Error(), gGnmiJtimonIgnoreErrorSubstr) { + jLog(jctx, fmt.Sprintf("gNMI host: %v, parsing response failed: %v", hostname, err)) + continue + } + } else { + go func() { + err = gnmiHandleResponse(jctx, rsp) + if err != nil && strings.Contains(err.Error(), gGnmiJtimonIgnoreErrorSubstr) { + jLog(jctx, fmt.Sprintf("gNMI host: %v, parsing response failed: %v", hostname, err)) + } + }() + } + } + }() + + for { + select { + case s := <-jctx.control: + switch s { + case syscall.SIGHUP: + // config has been updated restart the streaming + return SubRcSighupRestart + case os.Interrupt: + // we are done + return SubRcSighupNoRestart + } + case subCode := <-datach: + // return the subcode, proper action will be taken by caller + return subCode + } + } +} diff --git a/subscribe_gnmi_test.go b/subscribe_gnmi_test.go new file mode 100644 index 0000000..5708a22 --- /dev/null +++ b/subscribe_gnmi_test.go @@ -0,0 +1,704 @@ +package main + +import ( + "fmt" + "reflect" + "strings" + "testing" + + gnmi "github.com/Juniper/jtimon/gnmi/gnmi" + gnmi_ext1 "github.com/Juniper/jtimon/gnmi/gnmi_ext" + gnmi_juniper_header "github.com/Juniper/jtimon/gnmi/gnmi_juniper_header" + gnmi_juniper_header_ext "github.com/Juniper/jtimon/gnmi/gnmi_juniper_header_ext" + "github.com/golang/protobuf/proto" + google_protobuf "github.com/golang/protobuf/ptypes/any" +) + +func TestConvToFloatForPrometheus(t *testing.T) { + tests := []struct { + name string + input interface{} + err bool + output float64 + }{ + { + name: "int", + input: 100, + err: true, + }, + { + name: "uint", + input: 100, + err: true, + }, + { + name: "int64", + input: int64(100), + err: false, + output: float64(100), + }, + { + name: "bool", + input: true, + err: false, + output: float64(1), + }, + { + name: "string", + input: "100", + err: false, + output: float64(100), + }, + { + name: "string-err", + input: "helloe", + err: true, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + output, err := convToFloatForPrometheus(test.input) + if !test.err { + if err != nil || !reflect.DeepEqual(test.output, output) { + var errMsg string + errMsg = fmt.Sprintf("\nexpected:%v\nGot:%v", test.output, output) + t.Errorf(errMsg) + } + } + + if test.err { + if err == nil && reflect.DeepEqual(test.output, output) { + var errMsg string + errMsg = fmt.Sprintf("\nexpected:%v\nGot:%v", test.output, output) + t.Errorf(errMsg) + } + } + }) + } +} + +func TestGnmiHandleResponse(t *testing.T) { + *noppgoroutines = true + *prom = true + gGnmiUnitTestCoverage = true + + var hdrInputExt = gnmi_juniper_header_ext.GnmiJuniperTelemetryHeaderExtension{ + SystemId: "my-device", ComponentId: 65535, SubComponentId: 0, + SensorName: "sensor_1", SequenceNumber: 1, SubscribedPath: "/interfaces/", + StreamedPath: "/interfaces/", Component: "mib2d", + } + + hdrInputExtBytes, err := proto.Marshal(&hdrInputExt) + if err != nil { + t.Errorf("Error marshalling header for ext case: %v", err) + } + + var hdrInputXpath = gnmi_juniper_header.GnmiJuniperTelemetryHeader{ + SystemId: "my-device", ComponentId: 65535, SubComponentId: 0, + Path: "sensor_1:/interfaces/:/interfaces/:mib2d", SequenceNumber: 1, + } + + hdrInputXpathBytes, err := proto.Marshal(&hdrInputXpath) + if err != nil { + t.Errorf("Error marshalling header for xpath case: %v", err) + } + + var hdrInputExtIsync = gnmi_juniper_header_ext.GnmiJuniperTelemetryHeaderExtension{ + SystemId: "my-device", ComponentId: 65535, SubComponentId: 0, + SensorName: "sensor_1", SequenceNumber: gGnmiJuniperIsyncSeqNumBegin, SubscribedPath: "/interfaces/", + StreamedPath: "/interfaces/", Component: "mib2d", + } + + hdrInputExtIsyncBytes, err := proto.Marshal(&hdrInputExtIsync) + if err != nil { + t.Errorf("Error marshalling header for ext isync case: %v", err) + } + + var hdrInputXpathIsync = gnmi_juniper_header.GnmiJuniperTelemetryHeader{ + SystemId: "my-device", ComponentId: 65535, SubComponentId: 0, + Path: "sensor_1:/interfaces/:/interfaces/:mib2d", SequenceNumber: gGnmiJuniperIsyncSeqNumEnd, + } + + hdrInputXpathIsyncBytes, err := proto.Marshal(&hdrInputXpathIsync) + if err != nil { + t.Errorf("Error marshalling header for xpath isync case: %v", err) + } + + tests := []struct { + name string + jctx *JCtx + rsp *gnmi.SubscribeResponse + err bool + }{ + { + name: "rsp-valid-sync", + err: false, + jctx: &JCtx{ + config: Config{ + Host: "127.0.0.1", + Port: 32767, + Log: LogConfig{ + Verbose: true, + }, + }, + }, + rsp: &gnmi.SubscribeResponse{ + Response: &gnmi.SubscribeResponse_SyncResponse{ + SyncResponse: true, + }, + }, + }, + { + name: "rsp-valid-updates", + err: false, + jctx: &JCtx{ + config: Config{ + Host: "127.0.0.1", + Port: 32767, + Log: LogConfig{ + Verbose: true, + }, + }, + }, + rsp: &gnmi.SubscribeResponse{ + Extension: []*gnmi_ext1.Extension{ + { + Ext: &gnmi_ext1.Extension_RegisteredExt{ + RegisteredExt: &gnmi_ext1.RegisteredExtension{ + Id: gnmi_ext1.ExtensionID_EID_JUNIPER_TELEMETRY_HEADER, + Msg: hdrInputExtBytes, + }, + }, + }, + }, + Response: &gnmi.SubscribeResponse_Update{ + Update: &gnmi.Notification{ + Timestamp: 1589476296083000000, + Prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + Update: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_StringVal{StringVal: "Hello"}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "mtu"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_IntVal{IntVal: 1500}, + }, + }, + }, + }, + }, + }, + }, + { + name: "rsp-valid-deletes", + err: false, + jctx: &JCtx{ + config: Config{ + Host: "127.0.0.1", + Port: 32767, + Log: LogConfig{ + Verbose: true, + }, + }, + }, + rsp: &gnmi.SubscribeResponse{ + Response: &gnmi.SubscribeResponse_Update{ + Update: &gnmi.Notification{ + Timestamp: 1589476296083000000, + Prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + Update: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "__juniper_telemetry_header__"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_AnyVal{ + AnyVal: &google_protobuf.Any{ + TypeUrl: "type.googleapis.com/GnmiJuniperTelemetryHeader", + Value: hdrInputXpathBytes, + }, + }, + }, + }, + }, + Delete: []*gnmi.Path{ + { + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + }, + }, + }, + }, + }, + { + name: "rsp-check-not-expecting-eos-juniper-isync-packet-ext", + err: false, + jctx: &JCtx{ + config: Config{ + Host: "127.0.0.1", + Port: 32767, + Log: LogConfig{ + Verbose: true, + }, + }, + }, + rsp: &gnmi.SubscribeResponse{ + Extension: []*gnmi_ext1.Extension{ + { + Ext: &gnmi_ext1.Extension_RegisteredExt{ + RegisteredExt: &gnmi_ext1.RegisteredExtension{ + Id: gnmi_ext1.ExtensionID_EID_JUNIPER_TELEMETRY_HEADER, + Msg: hdrInputExtIsyncBytes, + }, + }, + }, + }, + Response: &gnmi.SubscribeResponse_Update{ + Update: &gnmi.Notification{ + Timestamp: 1589476296083000000, + Prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + Update: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_StringVal{StringVal: "Hello"}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "mtu"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_IntVal{IntVal: 1500}, + }, + }, + }, + }, + }, + }, + }, + { + name: "rsp-check-not-expecting-eos-juniper-isync-packet-xpath", + err: false, + jctx: &JCtx{ + config: Config{ + Host: "127.0.0.1", + Port: 32767, + Log: LogConfig{ + Verbose: true, + }, + }, + }, + rsp: &gnmi.SubscribeResponse{ + Response: &gnmi.SubscribeResponse_Update{ + Update: &gnmi.Notification{ + Timestamp: 1589476296083000000, + Prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + Update: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "__juniper_telemetry_header__"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_AnyVal{ + AnyVal: &google_protobuf.Any{ + TypeUrl: "type.googleapis.com/GnmiJuniperTelemetryHeader", + Value: hdrInputXpathIsyncBytes, + }, + }, + }, + }, + }, + Delete: []*gnmi.Path{ + { + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + }, + }, + }, + }, + }, + { + name: "rsp-valid-sync-ipv6", + err: false, + jctx: &JCtx{ + config: Config{ + Host: "[::1]", + Port: 32767, + Log: LogConfig{ + Verbose: true, + }, + }, + }, + rsp: &gnmi.SubscribeResponse{ + Response: &gnmi.SubscribeResponse_SyncResponse{ + SyncResponse: true, + }, + }, + }, + { + name: "rsp-valid-updates-ipv6", + err: false, + jctx: &JCtx{ + config: Config{ + Host: "[::1]", + Port: 32767, + Log: LogConfig{ + Verbose: true, + }, + }, + }, + rsp: &gnmi.SubscribeResponse{ + Extension: []*gnmi_ext1.Extension{ + { + Ext: &gnmi_ext1.Extension_RegisteredExt{ + RegisteredExt: &gnmi_ext1.RegisteredExtension{ + Id: gnmi_ext1.ExtensionID_EID_JUNIPER_TELEMETRY_HEADER, + Msg: hdrInputExtBytes, + }, + }, + }, + }, + Response: &gnmi.SubscribeResponse_Update{ + Update: &gnmi.Notification{ + Timestamp: 1589476296083000000, + Prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + Update: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_StringVal{StringVal: "Hello"}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "mtu"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_IntVal{IntVal: 1500}, + }, + }, + }, + }, + }, + }, + }, + { + name: "rsp-valid-deletes-ipv6", + err: false, + jctx: &JCtx{ + config: Config{ + Host: "[::1]", + Port: 32767, + Log: LogConfig{ + Verbose: true, + }, + }, + }, + rsp: &gnmi.SubscribeResponse{ + Response: &gnmi.SubscribeResponse_Update{ + Update: &gnmi.Notification{ + Timestamp: 1589476296083000000, + Prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + Update: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "__juniper_telemetry_header__"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_AnyVal{ + AnyVal: &google_protobuf.Any{ + TypeUrl: "type.googleapis.com/GnmiJuniperTelemetryHeader", + Value: hdrInputXpathBytes, + }, + }, + }, + }, + }, + Delete: []*gnmi.Path{ + { + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + }, + }, + }, + }, + }, + { + name: "rsp-check-not-expecting-eos-juniper-isync-packet-ext-ipv6", + err: false, + jctx: &JCtx{ + config: Config{ + Host: "[::1]", + Port: 32767, + Log: LogConfig{ + Verbose: true, + }, + }, + }, + rsp: &gnmi.SubscribeResponse{ + Extension: []*gnmi_ext1.Extension{ + { + Ext: &gnmi_ext1.Extension_RegisteredExt{ + RegisteredExt: &gnmi_ext1.RegisteredExtension{ + Id: gnmi_ext1.ExtensionID_EID_JUNIPER_TELEMETRY_HEADER, + Msg: hdrInputExtIsyncBytes, + }, + }, + }, + }, + Response: &gnmi.SubscribeResponse_Update{ + Update: &gnmi.Notification{ + Timestamp: 1589476296083000000, + Prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + Update: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_StringVal{StringVal: "Hello"}, + }, + }, + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "mtu"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_IntVal{IntVal: 1500}, + }, + }, + }, + }, + }, + }, + }, + { + name: "rsp-check-not-expecting-eos-juniper-isync-packet-xpath-ipv6", + err: false, + jctx: &JCtx{ + config: Config{ + Host: "[::1]", + Port: 32767, + Log: LogConfig{ + Verbose: true, + }, + }, + }, + rsp: &gnmi.SubscribeResponse{ + Response: &gnmi.SubscribeResponse_Update{ + Update: &gnmi.Notification{ + Timestamp: 1589476296083000000, + Prefix: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "interfaces"}, + {Name: "interface", Key: map[string]string{"k1": "foo"}}, + {Name: "subinterfaces"}, + {Name: "subinterface", Key: map[string]string{"k1": "foo1", "k2": "bar1"}}, + }, + }, + Update: []*gnmi.Update{ + { + Path: &gnmi.Path{ + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "__juniper_telemetry_header__"}, + }, + }, + Val: &gnmi.TypedValue{ + Value: &gnmi.TypedValue_AnyVal{ + AnyVal: &google_protobuf.Any{ + TypeUrl: "type.googleapis.com/GnmiJuniperTelemetryHeader", + Value: hdrInputXpathIsyncBytes, + }, + }, + }, + }, + }, + Delete: []*gnmi.Path{ + { + Origin: "", + Elem: []*gnmi.PathElem{ + {Name: "state"}, + {Name: "description"}, + }, + }, + }, + }, + }, + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + err := gnmiHandleResponse(test.jctx, test.rsp) + if !test.err { + if err != nil && strings.Contains(err.Error(), gGnmiJtimonIgnoreErrorSubstr) { + err = nil + } + if err != nil { + var errMsg string + errMsg = fmt.Sprintf("didn't expect error:%v", err) + t.Errorf(errMsg) + } + } + + if test.err { + if err == nil { + var errMsg string + errMsg = fmt.Sprintf("expected error") + t.Errorf(errMsg) + } + } + }) + } + + gGnmiUnitTestCoverage = false + *prom = false + *noppgoroutines = false +} + +// For the below function, better change jtisim? +func TestSubscribegNMI(t *testing.T) { +} + +// The below functions should have been already covered by now, so no need to UT them +func TestPublishToPrometheus(t *testing.T) { + +} + +func TestPublishToInflux(t *testing.T) { + +} + +func TestGnmiParseHeader(t *testing.T) { + +} + +func TestGnmiParseNotification(t *testing.T) { + +} diff --git a/subscribe_juniper_junos.go b/subscribe_juniper_junos.go new file mode 100644 index 0000000..f0e274a --- /dev/null +++ b/subscribe_juniper_junos.go @@ -0,0 +1,248 @@ +package main + +import ( + "fmt" + "io" + "strings" + "time" + + "encoding/json" + "os" + "syscall" + + auth_pb "github.com/Juniper/jtimon/authentication" + na_pb "github.com/Juniper/jtimon/telemetry" + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + "google.golang.org/grpc" + "google.golang.org/grpc/metadata" +) + +// SubErrorCode to define the type of errors +type SubErrorCode int + +// Error Codes for Subscribe Send routines +const ( + SubRcConnRetry = iota + SubRcSighupRestart + SubRcSighupNoRestart + SubRcRPCFailedNoRetry +) + +func handleOnePacket(ocData *na_pb.OpenConfigData, jctx *JCtx) { + updateStats(jctx, ocData, true) + + s := "" + + if *print || (IsVerboseLogging(jctx) && !*print) { + s += fmt.Sprintf("system_id: %s\n", ocData.SystemId) + s += fmt.Sprintf("component_id: %d\n", ocData.ComponentId) + s += fmt.Sprintf("sub_component_id: %d\n", ocData.SubComponentId) + s += fmt.Sprintf("path: %s\n", ocData.Path) + s += fmt.Sprintf("sequence_number: %d\n", ocData.SequenceNumber) + s += fmt.Sprintf("timestamp: %d\n", ocData.Timestamp) + s += fmt.Sprintf("sync_response: %v\n", ocData.SyncResponse) + if ocData.SyncResponse { + s += "Received sync_response\n" + } + + del := ocData.GetDelete() + for _, d := range del { + s += fmt.Sprintf("Delete: %s\n", d.GetPath()) + } + } + + prefixSeen := false + for _, kv := range ocData.Kv { + updateStatsKV(jctx, true, 1) + + if *print || (IsVerboseLogging(jctx) && !*print) { + s += fmt.Sprintf(" key: %s\n", kv.Key) + switch value := kv.Value.(type) { + case *na_pb.KeyValue_DoubleValue: + s += fmt.Sprintf(" double_value: %v\n", value.DoubleValue) + case *na_pb.KeyValue_IntValue: + s += fmt.Sprintf(" int_value: %d\n", value.IntValue) + case *na_pb.KeyValue_UintValue: + s += fmt.Sprintf(" uint_value: %d\n", value.UintValue) + case *na_pb.KeyValue_SintValue: + s += fmt.Sprintf(" sint_value: %d\n", value.SintValue) + case *na_pb.KeyValue_BoolValue: + s += fmt.Sprintf(" bool_value: %v\n", value.BoolValue) + case *na_pb.KeyValue_StrValue: + s += fmt.Sprintf(" str_value: %s\n", value.StrValue) + case *na_pb.KeyValue_BytesValue: + s += fmt.Sprintf(" bytes_value: %s\n", value.BytesValue) + default: + s += fmt.Sprintf(" default: %v\n", value) + } + } + + if kv.Key == "__prefix__" { + prefixSeen = true + } else if !strings.HasPrefix(kv.Key, "__") { + if !prefixSeen && !strings.HasPrefix(kv.Key, "/") { + if *prefixCheck { + s += fmt.Sprintf("Missing prefix for sensor: %s\n", ocData.Path) + } + } + } + } + if s != "" { + jLog(jctx, s) + } +} + +// subSendAndReceive handles the following +// - Opens up a stream for receiving the telemetry data +// - Handles SIGHUP by terminating the current stream and requests the +// caller to restart the streaming by setting the corresponding return +// code +// - In case of an error, Set the error code to restart the connection. +func subSendAndReceive(conn *grpc.ClientConn, jctx *JCtx, + subReqM na_pb.SubscriptionRequest) SubErrorCode { + + var ctx context.Context + c := na_pb.NewOpenConfigTelemetryClient(conn) + if jctx.config.Meta { + md := metadata.New(map[string]string{"username": jctx.config.User, "password": jctx.config.Password}) + ctx = metadata.NewOutgoingContext(context.Background(), md) + } else { + ctx = context.Background() + } + stream, err := c.TelemetrySubscribe(ctx, &subReqM) + + if err != nil { + return SubRcConnRetry + } + + hdr, errh := stream.Header() + if errh != nil { + jLog(jctx, fmt.Sprintf("Failed to get header for stream: %v", errh)) + } + + jLog(jctx, fmt.Sprintf("gRPC headers from host %s:%d\n", jctx.config.Host, jctx.config.Port)) + for k, v := range hdr { + jLog(jctx, fmt.Sprintf(" %s: %s", k, v)) + } + + datach := make(chan struct{}) + + go func() { + // Go Routine which actually starts the streaming connection and receives the data + jLog(jctx, fmt.Sprintf("Receiving telemetry data from %s:%d\n", jctx.config.Host, jctx.config.Port)) + + for { + ocData, err := stream.Recv() + if err == io.EOF { + printSummary(jctx) + datach <- struct{}{} + return + } + if err != nil { + jLog(jctx, fmt.Sprintf("%v.TelemetrySubscribe(_) = _, %v", conn, err)) + datach <- struct{}{} + return + } + + if *genTestData { + if ocDataM, err := proto.Marshal(ocData); err == nil { + generateTestData(jctx, ocDataM) + } else { + jLog(jctx, fmt.Sprintf("%v", err)) + } + } + + rtime := time.Now() + if *outJSON { + if b, err := json.MarshalIndent(ocData, "", " "); err == nil { + jLog(jctx, fmt.Sprintf("%s\n", b)) + } + } + + if *print || *stateHandler || IsVerboseLogging(jctx) { + handleOnePacket(ocData, jctx) + } + + // to influxdb + if *noppgoroutines { + addIDB(ocData, jctx, rtime) + } else { + go addIDB(ocData, jctx, rtime) + } + + // to prometheus + if *prom { + if *noppgoroutines { + addPrometheus(ocData, jctx) + } else { + go addPrometheus(ocData, jctx) + } + } + // to kafka + if *noppgoroutines { + addKafka(ocData, jctx, rtime) + } else { + go addKafka(ocData, jctx, rtime) + } + } + }() + for { + select { + case s := <-jctx.control: + switch s { + case syscall.SIGHUP: + // config has been updated restart the streaming + return SubRcSighupRestart + case os.Interrupt: + // we are done + return SubRcSighupNoRestart + } + case <-datach: + // data is not received, retry the connection + return SubRcConnRetry + } + } +} + +// subscribe routine constructs the subscription paths and calls +// the function to start the streaming connection. +// +// In case of SIGHUP, the paths are formed again and streaming +// is restarted. +func subscribeJunos(conn *grpc.ClientConn, jctx *JCtx) SubErrorCode { + var subReqM na_pb.SubscriptionRequest + var additionalConfigM na_pb.SubscriptionAdditionalConfig + + cfg := &jctx.config + for i := range cfg.Paths { + var pathM na_pb.Path + pathM.Path = cfg.Paths[i].Path + pathM.SampleFrequency = uint32(cfg.Paths[i].Freq) + subReqM.PathList = append(subReqM.PathList, &pathM) + } + additionalConfigM.NeedEos = jctx.config.EOS + subReqM.AdditionalConfig = &additionalConfigM + + return subSendAndReceive(conn, jctx, subReqM) +} + +func loginCheckJunos(jctx *JCtx, conn *grpc.ClientConn) error { + if jctx.config.User != "" && jctx.config.Password != "" { + user := jctx.config.User + pass := jctx.config.Password + if !jctx.config.Meta { + lc := auth_pb.NewLoginClient(conn) + dat, err := lc.LoginCheck(context.Background(), + &auth_pb.LoginRequest{UserName: user, + Password: pass, ClientId: jctx.config.CID}) + if err != nil { + return fmt.Errorf("[%s] Could not login: %v", jctx.config.Host, err) + } + if !dat.Result { + return fmt.Errorf("[%s] LoginCheck failed", jctx.config.Host) + } + } + } + return nil +} diff --git a/subscribe_juniper_junos_test.go b/subscribe_juniper_junos_test.go new file mode 100644 index 0000000..99b2dfa --- /dev/null +++ b/subscribe_juniper_junos_test.go @@ -0,0 +1,654 @@ +package main + +import ( + "fmt" + "io/ioutil" + "os" + "strconv" + "strings" + "testing" + "time" + + na_pb "github.com/Juniper/jtimon/telemetry" + "github.com/golang/protobuf/proto" + flag "github.com/spf13/pflag" +) + +func TestJTISIMSigHup(t *testing.T) { + flag.Parse() + *noppgoroutines = true + *stateHandler = true + *prefixCheck = true + + config := "tests/data/juniper-junos/config/jtisim-interfaces-file-list-sig.json" + total := 3 // this file has three workers config + + err := GetConfigFiles(configFiles, config) + if err != nil { + t.Errorf("config parsing error: %s", err) + } + + // create and start workers group with three workers + workers := NewJWorkers(*configFiles, config, 0) + workers.StartWorkers() + + // run them for 4 seconds + time.Sleep(time.Duration(4) * time.Second) + + wx := workers.m + testsx := []struct { + config string + totalIn uint64 + }{ + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-1.json", + totalIn: 40, // after 2nd sighup its new worker + }, + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-2.json", + totalIn: 40, // after 2nd sighup its new worker + }, + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-3.json", + totalIn: 80, // this worker was running from beginning (it got two sighup though) + }, + } + + for _, test := range testsx { + if v, ok := wx[test.config]; !ok { + t.Errorf("workers map is missing entry for worker %s", test.config) + } else { + fmt.Println("[1] ----- ", test.config, v.jctx.stats.totalIn) + } + } + + // we should have three workers + if len(workers.m) != total { + t.Errorf("workers does not match: want %d got %d", total, len(workers.m)) + } + + // change fileList + workers.fileList = "tests/data/juniper-junos/config/jtisim-interfaces-file-list-sig-delete.json" + total = 1 // two deleted so we end up with only one worker config + workers.SIGHUPWorkers() // send sighup + + // run updated workers for six seconds + time.Sleep(time.Duration(6) * time.Second) + // we should have only one worker + if len(workers.m) != total { + t.Errorf("after sighup, workers does not match: want %d got %d", total, len(workers.m)) + } + + wy := workers.m + testsy := []struct { + config string + totalIn uint64 + }{ + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-3.json", + totalIn: 80, // this worker was running from beginning (it got two sighup though) + }, + } + + for _, test := range testsy { + if v, ok := wy[test.config]; !ok { + t.Errorf("workers map is missing entry for worker %s", test.config) + } else { + fmt.Println("[2] ----- ", test.config, v.jctx.stats.totalIn) + } + } + + // change file list again, bring back all three workers again + workers.fileList = "tests/data/juniper-junos/config/jtisim-interfaces-file-list-sig.json" + total = 3 // another sighup, we should have three workers now + workers.SIGHUPWorkers() + + // run the stest for 4 seconds. this includes two new workers and one existing worker + time.Sleep(time.Duration(4) * time.Second) + if len(workers.m) != total { + t.Errorf("after sighup, workers does not match: want %d got %d", total, len(workers.m)) + } + + workers.EndWorkers() // end all workers, this will retain workers map for us to peek data for test + workers.Wait() // this should not block as we have stopped all workers + + w := workers.m + tests := []struct { + config string + totalIn uint64 + }{ + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-1.json", + totalIn: 40, // after 2nd sighup its new worker + }, + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-2.json", + totalIn: 40, // after 2nd sighup its new worker + }, + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-3.json", + // this worker was running from beginning, it got two SIGHUPs but it's + // config wasnt changed so it should not attempt to re-established the + // connection with JTISIM. Total run time was 4 + 6 + 4 = 14seconds, + // hence it must have received data twice since freq of subscription for + // this worker is 10 seconds. + totalIn: 80, + }, + } + + for _, test := range tests { + if v, ok := w[test.config]; !ok { + t.Errorf("workers map is missing entry for worker %s", test.config) + } else { + if v.jctx.stats.totalIn != test.totalIn { + t.Errorf("totalIn mismatch for %s, want %d got %d", test.config, test.totalIn, v.jctx.stats.totalIn) + } + } + } +} + +// Same as TestJTISIMSigHupChanged, with config change for +// worker-3. +func TestJTISIMSigHupChanged(t *testing.T) { + flag.Parse() + *noppgoroutines = true + *stateHandler = true + *prefixCheck = true + + config := "tests/data/juniper-junos/config/jtisim-interfaces-file-list-sig.json" + total := 3 // this file has three workers config + + err := GetConfigFiles(configFiles, config) + if err != nil { + t.Errorf("config parsing error: %s", err) + } + + // create and start workers group with three workers + workers := NewJWorkers(*configFiles, config, 0) + workers.StartWorkers() + + // run them for 4 seconds + time.Sleep(time.Duration(4) * time.Second) + + wx := workers.m + testsx := []struct { + config string + totalIn uint64 + }{ + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-1.json", + totalIn: 40, // after 2nd sighup its new worker + }, + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-2.json", + totalIn: 40, // after 2nd sighup its new worker + }, + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-3.json", + totalIn: 80, // this worker was running from beginning (it got two sighup though) + }, + } + + for _, test := range testsx { + if v, ok := wx[test.config]; !ok { + t.Errorf("workers map is missing entry for worker %s", test.config) + } else { + fmt.Println("[1] ----- ", test.config, v.jctx.stats.totalIn) + } + } + + // we should have three workers + if len(workers.m) != total { + t.Errorf("workers does not match: want %d got %d", total, len(workers.m)) + } + + // change fileList + workers.fileList = "tests/data/juniper-junos/config/jtisim-interfaces-file-list-sig-delete.json" + total = 1 // two deleted so we end up with only one worker config + workers.SIGHUPWorkers() // send sighup + + // run updated workers for six seconds + time.Sleep(time.Duration(6) * time.Second) + // we should have only one worker + if len(workers.m) != total { + t.Errorf("after sighup, workers does not match: want %d got %d", total, len(workers.m)) + } + + wy := workers.m + testsy := []struct { + config string + totalIn uint64 + }{ + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-3.json", + totalIn: 80, // this worker was running from beginning (it got two sighup though) + }, + } + + for _, test := range testsy { + if v, ok := wy[test.config]; !ok { + t.Errorf("workers map is missing entry for worker %s", test.config) + } else { + fmt.Println("[2] ----- ", test.config, v.jctx.stats.totalIn) + } + } + + // change file list again, bring back all three workers again with changed + // config for worker-3 + workers.fileList = "tests/data/juniper-junos/config/jtisim-interfaces-file-list-chg.json" + total = 3 // another sighup, we should have three workers now + workers.SIGHUPWorkers() + + // run the stest for 4 seconds. this includes two new workers and one existing worker + time.Sleep(time.Duration(4) * time.Second) + if len(workers.m) != total { + t.Errorf("after sighup, workers does not match: want %d got %d", total, len(workers.m)) + } + + workers.EndWorkers() // end all workers, this will retain workers map for us to peek data for test + workers.Wait() // this should not block as we have stopped all workers + + w := workers.m + tests := []struct { + config string + totalIn uint64 + }{ + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-1.json", + totalIn: 40, // after 2nd sighup its new worker + }, + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-2.json", + totalIn: 40, // after 2nd sighup its new worker + }, + { + config: "tests/data/juniper-junos/config/jtisim-interfaces-6.json", + // we started this worker as part of config change test in which + // jtisim-interfaces-3.json's config is changed so its being deleted + // and jtisim-interfaces-6.json is introduced. It got chance to run + // only for last 4 seconds so it must have received data only once. + totalIn: 40, + }, + } + + for _, test := range tests { + if v, ok := w[test.config]; !ok { + t.Errorf("workers map is missing entry for worker %s", test.config) + } else { + if v.jctx.stats.totalIn != test.totalIn { + t.Errorf("totalIn mismatch for %s, want %d got %d", test.config, test.totalIn, v.jctx.stats.totalIn) + } + } + } +} +func TestJTISIMSigInt(t *testing.T) { + flag.Parse() + *noppgoroutines = true + *stateHandler = true + *prefixCheck = true + + config := "tests/data/juniper-junos/config/jtisim-interfaces-file-list-sig.json" + total := 3 + runTime := 15 // if you change runTime, you will have to change totalIn and totalKV as well + totalIn := uint64(80) // for 12 seconds + totalKV := uint64(3960) // for 12 seconds + + err := GetConfigFiles(configFiles, config) + if err != nil { + t.Errorf("config parsing error: %s", err) + } + + workers := NewJWorkers(*configFiles, config, 0) + workers.StartWorkers() + + if len(workers.m) != total { + t.Errorf("workers does not match: want %d got %d", total, len(workers.m)) + } + + time.Sleep(time.Duration(runTime) * time.Second) + workers.EndWorkers() + workers.Wait() // this should not block as we have stopped all workers + + for _, w := range workers.m { + jctx := w.jctx + if totalIn != jctx.stats.totalIn { + t.Errorf("totalIn failed for config : %s wanted %v got %v", jctx.file, totalIn, jctx.stats.totalIn) + } + if totalKV != jctx.stats.totalKV { + t.Errorf("totalKV failed for config : %s wanted %v got %v", jctx.file, totalKV, jctx.stats.totalKV) + } + } +} + +func TestJTISIMRetrySigInt(t *testing.T) { + flag.Parse() + *noppgoroutines = true + *stateHandler = true + *prefixCheck = true + + config := "tests/data/juniper-junos/config/jtisim-interfaces-file-list-sig-int.json" + total := 1 + runTime := 10 + retryTime := 10 + + err := GetConfigFiles(configFiles, config) + if err != nil { + t.Errorf("config parsing error: %s", err) + } + + workers := NewJWorkers(*configFiles, config, 0) + workers.StartWorkers() + + if len(workers.m) != total { + t.Errorf("workers does not match: want %d got %d", total, len(workers.m)) + } + + time.Sleep(time.Duration(runTime) * time.Second) + workers.EndWorkers() + // Wait for the signal to be consumed as the worker may be already waiting + // in retry Timer + time.Sleep(time.Duration(retryTime+5) * time.Second) + + for _, w := range workers.m { + jctx := w.jctx + // Check the the interrupt in the control channel is received. + select { + case s := <-jctx.control: + switch s { + case os.Interrupt: + t.Errorf("Interrupt signal is not handled at connection for %s", jctx.file) + } + default: + } + } +} + +func TestPrometheus(t *testing.T) { + flag.Parse() + tests := []struct { + name string + config string + total int + maxRun int64 + }{ + { + name: "influx-1", + config: "tests/data/juniper-junos/config/jtisim-prometheus.json", + maxRun: 6, + total: 1, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + host := "127.0.0.1" + port := 8090 + + *noppgoroutines = true + *stateHandler = true + *prom = true + exporter = promInit() + + defer func() { + *prom = false + exporter = nil + }() + + configFiles = &[]string{test.config} + + err := GetConfigFiles(configFiles, "") + if err != nil { + t.Errorf("config parsing error: %s", err) + } + + workers := NewJWorkers(*configFiles, test.config, test.maxRun) + workers.StartWorkers() + workers.Wait() + + if len(workers.m) != test.total { + t.Errorf("workers does not match: want %d got %d", test.total, len(workers.m)) + } + + if len(workers.m) != 1 { + t.Errorf("cant't run prometheus test for more than one worker") + } + + if w, ok := workers.m[test.config]; !ok { + t.Errorf("could not found worker for config %s", test.config) + } else { + jctx := w.jctx + if err := prometheusCollect(host, port, jctx); err != nil { + t.Errorf("%v", err) + } else { + if jctx.testRes, err = os.Open(test.config + ".testres"); err != nil { + t.Errorf("could not open %s", test.config+".testres") + } else { + if err := compareResults(jctx); err != nil { + t.Errorf("%v", err) + } + jctx.testRes.Close() + } + } + } + }) + } +} +func TestInflux(t *testing.T) { + flag.Parse() + host := "127.0.0.1" + port := 50052 + tests := []struct { + name string + config string + total int + maxRun int64 + }{ + { + name: "influx-1", + config: "tests/data/juniper-junos/config/jtisim-influx.json", + maxRun: 25, + total: 1, + }, + { + name: "influx-alias", + config: "tests/data/juniper-junos/config/jtisim-influx-alias.json", + maxRun: 8, + total: 1, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + *noppgoroutines = true + configFiles = &[]string{test.config} + err := GetConfigFiles(configFiles, "") + if err != nil { + t.Errorf("config parsing error: %s", err) + } + if err := influxStore(host, port, STOREOPEN, test.config+".testres"); err != nil { + t.Errorf("influxStore(open) failed: %v", err) + } + + workers := NewJWorkers(*configFiles, test.config, test.maxRun) + workers.StartWorkers() + workers.Wait() + if err := influxStore(host, port, STORECLOSE, test.config+".testres"); err != nil { + t.Errorf("influxStore(close) failed: %v", err) + } + + if len(workers.m) != test.total { + t.Errorf("workers does not match: want %d got %d", test.total, len(workers.m)) + } + + for _, w := range workers.m { + jctx := w.jctx + if jctx.testRes, err = os.Open(test.config + ".testres"); err != nil { + t.Errorf("could not open %s", test.config+".testres") + } else { + if err := compareResults(jctx); err != nil { + t.Errorf("%v", err) + } + jctx.testRes.Close() + } + } + }) + } +} +func TestJTISIMMaxRun(t *testing.T) { + tests := []struct { + name string + config string + total int + maxRun int64 + totalIn uint64 + totalKV uint64 + compression string + }{ + { + name: "multi-file-list-1", + config: "tests/data/juniper-junos/config/jtisim-interfaces-file-list.json", + total: 2, + maxRun: 25, // if you change maxRun, please change totalIn and totalKV as well + totalIn: 120, // for 25 seconds + totalKV: 5940, // for 25 seconds + compression: "gzip", + }, + { + name: "multi-file-list-1", + config: "tests/data/juniper-junos/config/jtisim-interfaces-file-list.json", + total: 2, + maxRun: 25, // if you change maxRun, please change totalIn and totalKV as well + totalIn: 120, // for 25 seconds + totalKV: 5940, // for 25 seconds + compression: "", + }, + } + + for _, test := range tests { + t.Run(test.name+test.compression, func(t *testing.T) { + flag.Parse() + *noppgoroutines = true + *stateHandler = true + *prefixCheck = true + *compression = test.compression + + err := GetConfigFiles(configFiles, test.config) + if err != nil { + t.Errorf("config parsing error: %s", err) + } + + workers := NewJWorkers(*configFiles, test.config, test.maxRun) + workers.StartWorkers() + workers.Wait() + + if len(workers.m) != test.total { + t.Errorf("workers does not match: want %d got %d", test.total, len(workers.m)) + } + + for _, w := range workers.m { + jctx := w.jctx + if test.totalIn != jctx.stats.totalIn { + t.Errorf("totalIn failed for config : %s wanted %v got %v", jctx.file, test.totalIn, jctx.stats.totalIn) + } + if test.totalKV != jctx.stats.totalKV { + t.Errorf("totalKV failed for config : %s wanted %v got %v", jctx.file, test.totalKV, jctx.stats.totalKV) + } + switch test.compression { + case "gzip": + if jctx.stats.totalInPayloadWireLength >= jctx.stats.totalInPayloadLength { + t.Errorf("gzip compression failed: totalInPayloadWireLength = %v totalInPayloadLength = %v", + jctx.stats.totalInPayloadWireLength, jctx.stats.totalInPayloadLength) + } + case "": + if jctx.stats.totalInPayloadWireLength != jctx.stats.totalInPayloadLength { + t.Errorf("no compression failed: totalInPayloadWireLength = %v totalInPayloadLength = %v", + jctx.stats.totalInPayloadWireLength, jctx.stats.totalInPayloadLength) + } + + } + } + }) + } +} + +func TestVMXTagsPoints(t *testing.T) { + flag.Parse() + *conTestData = true + *noppgoroutines = true + + tests := []struct { + name string + config string + jctx *JCtx + }{ + { + name: "interfaces", + config: "tests/data/juniper-junos/config/interfaces.json", + jctx: &JCtx{ + file: "tests/data/juniper-junos/config/interfaces.json", + }, + }, + { + name: "interfaces_uint64", + config: "tests/data/juniper-junos/config/uint64.json", + jctx: &JCtx{ + file: "tests/data/juniper-junos/config/uint64.json", + }, + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + jctx := test.jctx + err := ConfigRead(jctx, true, nil) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + + sizeFileContent, err := ioutil.ReadFile(jctx.file + ".testmeta") + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + + data, err := os.Open(jctx.file + ".testbytes") + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + defer data.Close() + + testRes, err := os.Create(jctx.file + ".testres") + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + defer testRes.Close() + jctx.testRes = testRes + + sizes := strings.Split(string(sizeFileContent), ":") + for _, size := range sizes { + if size != "" { + n, err := strconv.ParseInt(size, 10, 64) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + d := make([]byte, n) + bytesRead, err := data.Read(d) + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + if int64(bytesRead) != n { + t.Errorf("want %d got %d from testbytes", n, bytesRead) + } + ocData := new(na_pb.OpenConfigData) + err = proto.Unmarshal(d, ocData) + + if err != nil { + t.Errorf("error %v for test config %s", err, test.config) + } + addIDB(ocData, jctx, time.Now()) + } + } + if err := compareResults(jctx); err != nil { + t.Errorf("%v", err) + } + }) + } +} diff --git a/telemetry/telemetry.pb.go b/telemetry/telemetry.pb.go new file mode 100644 index 0000000..850d2e6 --- /dev/null +++ b/telemetry/telemetry.pb.go @@ -0,0 +1,1732 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: telemetry.proto + +/* +Package telemetry is a generated protocol buffer package. + +It is generated from these files: + telemetry.proto + +It has these top-level messages: + SubscriptionRequest + SubscriptionInput + Collector + Path + SubscriptionAdditionalConfig + SubscriptionReply + SubscriptionResponse + OpenConfigData + KeyValue + TypedValue + ScalarArray + Delete + Eom + CancelSubscriptionRequest + CancelSubscriptionReply + GetSubscriptionsRequest + GetSubscriptionsReply + GetOperationalStateRequest + GetOperationalStateReply + DataEncodingRequest + DataEncodingReply +*/ +package telemetry + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Result of the operation +type ReturnCode int32 + +const ( + ReturnCode_SUCCESS ReturnCode = 0 + ReturnCode_NO_SUBSCRIPTION_ENTRY ReturnCode = 1 + ReturnCode_UNKNOWN_ERROR ReturnCode = 2 +) + +var ReturnCode_name = map[int32]string{ + 0: "SUCCESS", + 1: "NO_SUBSCRIPTION_ENTRY", + 2: "UNKNOWN_ERROR", +} +var ReturnCode_value = map[string]int32{ + "SUCCESS": 0, + "NO_SUBSCRIPTION_ENTRY": 1, + "UNKNOWN_ERROR": 2, +} + +func (x ReturnCode) String() string { + return proto.EnumName(ReturnCode_name, int32(x)) +} +func (ReturnCode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +// Verbosity Level +type VerbosityLevel int32 + +const ( + VerbosityLevel_DETAIL VerbosityLevel = 0 + VerbosityLevel_TERSE VerbosityLevel = 1 + VerbosityLevel_BRIEF VerbosityLevel = 2 +) + +var VerbosityLevel_name = map[int32]string{ + 0: "DETAIL", + 1: "TERSE", + 2: "BRIEF", +} +var VerbosityLevel_value = map[string]int32{ + "DETAIL": 0, + "TERSE": 1, + "BRIEF": 2, +} + +func (x VerbosityLevel) String() string { + return proto.EnumName(VerbosityLevel_name, int32(x)) +} +func (VerbosityLevel) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +// Encoding Type Supported +type EncodingType int32 + +const ( + EncodingType_UNDEFINED EncodingType = 0 + EncodingType_XML EncodingType = 1 + EncodingType_JSON_IETF EncodingType = 2 + EncodingType_PROTO3 EncodingType = 3 +) + +var EncodingType_name = map[int32]string{ + 0: "UNDEFINED", + 1: "XML", + 2: "JSON_IETF", + 3: "PROTO3", +} +var EncodingType_value = map[string]int32{ + "UNDEFINED": 0, + "XML": 1, + "JSON_IETF": 2, + "PROTO3": 3, +} + +func (x EncodingType) String() string { + return proto.EnumName(EncodingType_name, int32(x)) +} +func (EncodingType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } + +// Subscription modes supported +type SubscriptionMode int32 + +const ( + SubscriptionMode_LONG_LIVED SubscriptionMode = 0 + SubscriptionMode_ONE_OFF SubscriptionMode = 1 + SubscriptionMode_POLL SubscriptionMode = 2 +) + +var SubscriptionMode_name = map[int32]string{ + 0: "LONG_LIVED", + 1: "ONE_OFF", + 2: "POLL", +} +var SubscriptionMode_value = map[string]int32{ + "LONG_LIVED": 0, + "ONE_OFF": 1, + "POLL": 2, +} + +func (x SubscriptionMode) String() string { + return proto.EnumName(SubscriptionMode_name, int32(x)) +} +func (SubscriptionMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } + +// Message sent for a telemetry subscription request +type SubscriptionRequest struct { + // Data associated with a telemetry subscription + Input *SubscriptionInput `protobuf:"bytes,1,opt,name=input" json:"input,omitempty"` + // List of data models paths and filters + // which are used in a telemetry operation. + PathList []*Path `protobuf:"bytes,2,rep,name=path_list,json=pathList" json:"path_list,omitempty"` + // The below configuration is not defined in Openconfig RPC. + // It is a proposed extension to configure additional + // subscription request features. + AdditionalConfig *SubscriptionAdditionalConfig `protobuf:"bytes,3,opt,name=additional_config,json=additionalConfig" json:"additional_config,omitempty"` +} + +func (m *SubscriptionRequest) Reset() { *m = SubscriptionRequest{} } +func (m *SubscriptionRequest) String() string { return proto.CompactTextString(m) } +func (*SubscriptionRequest) ProtoMessage() {} +func (*SubscriptionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *SubscriptionRequest) GetInput() *SubscriptionInput { + if m != nil { + return m.Input + } + return nil +} + +func (m *SubscriptionRequest) GetPathList() []*Path { + if m != nil { + return m.PathList + } + return nil +} + +func (m *SubscriptionRequest) GetAdditionalConfig() *SubscriptionAdditionalConfig { + if m != nil { + return m.AdditionalConfig + } + return nil +} + +// Data associated with a telemetry subscription +type SubscriptionInput struct { + // List of optional collector endpoints to send data for + // this subscription. + // If no collector destinations are specified, the collector + // destination is assumed to be the requester on the rpc channel. + CollectorList []*Collector `protobuf:"bytes,1,rep,name=collector_list,json=collectorList" json:"collector_list,omitempty"` +} + +func (m *SubscriptionInput) Reset() { *m = SubscriptionInput{} } +func (m *SubscriptionInput) String() string { return proto.CompactTextString(m) } +func (*SubscriptionInput) ProtoMessage() {} +func (*SubscriptionInput) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +func (m *SubscriptionInput) GetCollectorList() []*Collector { + if m != nil { + return m.CollectorList + } + return nil +} + +// Collector endpoints to send data specified as an ip+port combination. +type Collector struct { + // IP address of collector endpoint + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + // Transport protocol port number for the collector destination. + Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` +} + +func (m *Collector) Reset() { *m = Collector{} } +func (m *Collector) String() string { return proto.CompactTextString(m) } +func (*Collector) ProtoMessage() {} +func (*Collector) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } + +func (m *Collector) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +func (m *Collector) GetPort() uint32 { + if m != nil { + return m.Port + } + return 0 +} + +// Data model path +type Path struct { + // Data model path of interest + // Path specification for elements of OpenConfig data models + Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"` + // Regular expression to be used in filtering state leaves + Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"` + // If this is set to true, the target device will only send + // updates to the collector upon a change in data value + SuppressUnchanged bool `protobuf:"varint,3,opt,name=suppress_unchanged,json=suppressUnchanged" json:"suppress_unchanged,omitempty"` + // Maximum time in ms the target device may go without sending + // a message to the collector. If this time expires with + // suppress-unchanged set, the target device must send an update + // message regardless if the data values have changed. + MaxSilentInterval uint32 `protobuf:"varint,4,opt,name=max_silent_interval,json=maxSilentInterval" json:"max_silent_interval,omitempty"` + // Time in ms between collection and transmission of the + // specified data to the collector platform. The target device + // will sample the corresponding data (e.g,. a counter) and + // immediately send to the collector destination. + // + // If sample-frequency is set to 0, then the network device + // must emit an update upon every datum change. + SampleFrequency uint32 `protobuf:"varint,5,opt,name=sample_frequency,json=sampleFrequency" json:"sample_frequency,omitempty"` + // EOM needed for each walk cycle of this path? + // For periodic sensor, applicable for each complete reap + // For event sensor, applicable when initial dump is over + // (same as EOS) + // This feature is not implemented currently. + NeedEom bool `protobuf:"varint,6,opt,name=need_eom,json=needEom" json:"need_eom,omitempty"` + // To denote if the path is from OC, IETF + // or some other standards + Origin string `protobuf:"bytes,100,opt,name=origin" json:"origin,omitempty"` + // Allow the target to decide if the updates need to be sent + // periodically or on-change for the leaves under this path. + // If this is set to true and sample_frequency is non-zero, + // then whichever leaves support on-change will be + // streamed on change and other leaves will be streamed + // at the cadence requested as per sample_frequency. + // If this is set to true and sample_frequency is zero, + // then it will be considered as on-change only. + // If this is set to false, then the streaming will be + // will be periodic if sample_frequency is non-zero + // and will be on-change if sample_frequency is zero. + TargetDefined bool `protobuf:"varint,101,opt,name=target_defined,json=targetDefined" json:"target_defined,omitempty"` +} + +func (m *Path) Reset() { *m = Path{} } +func (m *Path) String() string { return proto.CompactTextString(m) } +func (*Path) ProtoMessage() {} +func (*Path) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } + +func (m *Path) GetPath() string { + if m != nil { + return m.Path + } + return "" +} + +func (m *Path) GetFilter() string { + if m != nil { + return m.Filter + } + return "" +} + +func (m *Path) GetSuppressUnchanged() bool { + if m != nil { + return m.SuppressUnchanged + } + return false +} + +func (m *Path) GetMaxSilentInterval() uint32 { + if m != nil { + return m.MaxSilentInterval + } + return 0 +} + +func (m *Path) GetSampleFrequency() uint32 { + if m != nil { + return m.SampleFrequency + } + return 0 +} + +func (m *Path) GetNeedEom() bool { + if m != nil { + return m.NeedEom + } + return false +} + +func (m *Path) GetOrigin() string { + if m != nil { + return m.Origin + } + return "" +} + +func (m *Path) GetTargetDefined() bool { + if m != nil { + return m.TargetDefined + } + return false +} + +// Configure subscription request additional features. +type SubscriptionAdditionalConfig struct { + // limit the number of records sent in the stream + LimitRecords int32 `protobuf:"varint,1,opt,name=limit_records,json=limitRecords" json:"limit_records,omitempty"` + // limit the time the stream remains open + LimitTimeSeconds int32 `protobuf:"varint,2,opt,name=limit_time_seconds,json=limitTimeSeconds" json:"limit_time_seconds,omitempty"` + // EOS needed for this subscription? + NeedEos bool `protobuf:"varint,3,opt,name=need_eos,json=needEos" json:"need_eos,omitempty"` + // Subscription mode (long-lived, one_off or poll) + Mode SubscriptionMode `protobuf:"varint,4,opt,name=mode,enum=telemetry.SubscriptionMode" json:"mode,omitempty"` +} + +func (m *SubscriptionAdditionalConfig) Reset() { *m = SubscriptionAdditionalConfig{} } +func (m *SubscriptionAdditionalConfig) String() string { return proto.CompactTextString(m) } +func (*SubscriptionAdditionalConfig) ProtoMessage() {} +func (*SubscriptionAdditionalConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } + +func (m *SubscriptionAdditionalConfig) GetLimitRecords() int32 { + if m != nil { + return m.LimitRecords + } + return 0 +} + +func (m *SubscriptionAdditionalConfig) GetLimitTimeSeconds() int32 { + if m != nil { + return m.LimitTimeSeconds + } + return 0 +} + +func (m *SubscriptionAdditionalConfig) GetNeedEos() bool { + if m != nil { + return m.NeedEos + } + return false +} + +func (m *SubscriptionAdditionalConfig) GetMode() SubscriptionMode { + if m != nil { + return m.Mode + } + return SubscriptionMode_LONG_LIVED +} + +// 1. Reply data message sent out using out-of-band channel. +type SubscriptionReply struct { + // Response message to a telemetry subscription creation or + // get request. + Response *SubscriptionResponse `protobuf:"bytes,1,opt,name=response" json:"response,omitempty"` + // List of data models paths and filters + // which are used in a telemetry operation. + PathList []*Path `protobuf:"bytes,2,rep,name=path_list,json=pathList" json:"path_list,omitempty"` +} + +func (m *SubscriptionReply) Reset() { *m = SubscriptionReply{} } +func (m *SubscriptionReply) String() string { return proto.CompactTextString(m) } +func (*SubscriptionReply) ProtoMessage() {} +func (*SubscriptionReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } + +func (m *SubscriptionReply) GetResponse() *SubscriptionResponse { + if m != nil { + return m.Response + } + return nil +} + +func (m *SubscriptionReply) GetPathList() []*Path { + if m != nil { + return m.PathList + } + return nil +} + +// Response message to a telemetry subscription creation or get request. +type SubscriptionResponse struct { + // Unique id for the subscription on the device. This is + // generated by the device and returned in a subscription + // request or when listing existing subscriptions + SubscriptionId uint32 `protobuf:"varint,1,opt,name=subscription_id,json=subscriptionId" json:"subscription_id,omitempty"` +} + +func (m *SubscriptionResponse) Reset() { *m = SubscriptionResponse{} } +func (m *SubscriptionResponse) String() string { return proto.CompactTextString(m) } +func (*SubscriptionResponse) ProtoMessage() {} +func (*SubscriptionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } + +func (m *SubscriptionResponse) GetSubscriptionId() uint32 { + if m != nil { + return m.SubscriptionId + } + return 0 +} + +// 2. Telemetry data send back on the same connection as the +// subscription request. +type OpenConfigData struct { + // router name:export IP address + SystemId string `protobuf:"bytes,1,opt,name=system_id,json=systemId" json:"system_id,omitempty"` + // line card / RE (slot number) + ComponentId uint32 `protobuf:"varint,2,opt,name=component_id,json=componentId" json:"component_id,omitempty"` + // PFE (if applicable) + SubComponentId uint32 `protobuf:"varint,3,opt,name=sub_component_id,json=subComponentId" json:"sub_component_id,omitempty"` + // Path specification for elements of OpenConfig data models + Path string `protobuf:"bytes,4,opt,name=path" json:"path,omitempty"` + // Sequence number, monotonically increasing for each + // system_id, component_id, sub_component_id + path. + SequenceNumber uint64 `protobuf:"varint,5,opt,name=sequence_number,json=sequenceNumber" json:"sequence_number,omitempty"` + // timestamp (milliseconds since epoch) + Timestamp uint64 `protobuf:"varint,6,opt,name=timestamp" json:"timestamp,omitempty"` + // List of key-value pairs + Kv []*KeyValue `protobuf:"bytes,7,rep,name=kv" json:"kv,omitempty"` + // For delete. If filled, it indicates delete + Delete []*Delete `protobuf:"bytes,8,rep,name=delete" json:"delete,omitempty"` + // If filled, it indicates end of marker for the + // respective path in the list. + Eom []*Eom `protobuf:"bytes,9,rep,name=eom" json:"eom,omitempty"` + // If filled, it indicates end of sync for complete subscription + SyncResponse bool `protobuf:"varint,10,opt,name=sync_response,json=syncResponse" json:"sync_response,omitempty"` +} + +func (m *OpenConfigData) Reset() { *m = OpenConfigData{} } +func (m *OpenConfigData) String() string { return proto.CompactTextString(m) } +func (*OpenConfigData) ProtoMessage() {} +func (*OpenConfigData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } + +func (m *OpenConfigData) GetSystemId() string { + if m != nil { + return m.SystemId + } + return "" +} + +func (m *OpenConfigData) GetComponentId() uint32 { + if m != nil { + return m.ComponentId + } + return 0 +} + +func (m *OpenConfigData) GetSubComponentId() uint32 { + if m != nil { + return m.SubComponentId + } + return 0 +} + +func (m *OpenConfigData) GetPath() string { + if m != nil { + return m.Path + } + return "" +} + +func (m *OpenConfigData) GetSequenceNumber() uint64 { + if m != nil { + return m.SequenceNumber + } + return 0 +} + +func (m *OpenConfigData) GetTimestamp() uint64 { + if m != nil { + return m.Timestamp + } + return 0 +} + +func (m *OpenConfigData) GetKv() []*KeyValue { + if m != nil { + return m.Kv + } + return nil +} + +func (m *OpenConfigData) GetDelete() []*Delete { + if m != nil { + return m.Delete + } + return nil +} + +func (m *OpenConfigData) GetEom() []*Eom { + if m != nil { + return m.Eom + } + return nil +} + +func (m *OpenConfigData) GetSyncResponse() bool { + if m != nil { + return m.SyncResponse + } + return false +} + +// Simple Key-value, where value could be one of scalar types +type KeyValue struct { + // Key + Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` + // One of possible values + // + // Types that are valid to be assigned to Value: + // *KeyValue_DoubleValue + // *KeyValue_IntValue + // *KeyValue_UintValue + // *KeyValue_SintValue + // *KeyValue_BoolValue + // *KeyValue_StrValue + // *KeyValue_BytesValue + // *KeyValue_FloatValue + // *KeyValue_LeaflistValue + Value isKeyValue_Value `protobuf_oneof:"value"` +} + +func (m *KeyValue) Reset() { *m = KeyValue{} } +func (m *KeyValue) String() string { return proto.CompactTextString(m) } +func (*KeyValue) ProtoMessage() {} +func (*KeyValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } + +type isKeyValue_Value interface{ isKeyValue_Value() } + +type KeyValue_DoubleValue struct { + DoubleValue float64 `protobuf:"fixed64,5,opt,name=double_value,json=doubleValue,oneof"` +} +type KeyValue_IntValue struct { + IntValue int64 `protobuf:"varint,6,opt,name=int_value,json=intValue,oneof"` +} +type KeyValue_UintValue struct { + UintValue uint64 `protobuf:"varint,7,opt,name=uint_value,json=uintValue,oneof"` +} +type KeyValue_SintValue struct { + SintValue int64 `protobuf:"zigzag64,8,opt,name=sint_value,json=sintValue,oneof"` +} +type KeyValue_BoolValue struct { + BoolValue bool `protobuf:"varint,9,opt,name=bool_value,json=boolValue,oneof"` +} +type KeyValue_StrValue struct { + StrValue string `protobuf:"bytes,10,opt,name=str_value,json=strValue,oneof"` +} +type KeyValue_BytesValue struct { + BytesValue []byte `protobuf:"bytes,11,opt,name=bytes_value,json=bytesValue,proto3,oneof"` +} +type KeyValue_FloatValue struct { + FloatValue float32 `protobuf:"fixed32,12,opt,name=float_value,json=floatValue,oneof"` +} +type KeyValue_LeaflistValue struct { + LeaflistValue *ScalarArray `protobuf:"bytes,13,opt,name=leaflist_value,json=leaflistValue,oneof"` +} + +func (*KeyValue_DoubleValue) isKeyValue_Value() {} +func (*KeyValue_IntValue) isKeyValue_Value() {} +func (*KeyValue_UintValue) isKeyValue_Value() {} +func (*KeyValue_SintValue) isKeyValue_Value() {} +func (*KeyValue_BoolValue) isKeyValue_Value() {} +func (*KeyValue_StrValue) isKeyValue_Value() {} +func (*KeyValue_BytesValue) isKeyValue_Value() {} +func (*KeyValue_FloatValue) isKeyValue_Value() {} +func (*KeyValue_LeaflistValue) isKeyValue_Value() {} + +func (m *KeyValue) GetValue() isKeyValue_Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *KeyValue) GetKey() string { + if m != nil { + return m.Key + } + return "" +} + +func (m *KeyValue) GetDoubleValue() float64 { + if x, ok := m.GetValue().(*KeyValue_DoubleValue); ok { + return x.DoubleValue + } + return 0 +} + +func (m *KeyValue) GetIntValue() int64 { + if x, ok := m.GetValue().(*KeyValue_IntValue); ok { + return x.IntValue + } + return 0 +} + +func (m *KeyValue) GetUintValue() uint64 { + if x, ok := m.GetValue().(*KeyValue_UintValue); ok { + return x.UintValue + } + return 0 +} + +func (m *KeyValue) GetSintValue() int64 { + if x, ok := m.GetValue().(*KeyValue_SintValue); ok { + return x.SintValue + } + return 0 +} + +func (m *KeyValue) GetBoolValue() bool { + if x, ok := m.GetValue().(*KeyValue_BoolValue); ok { + return x.BoolValue + } + return false +} + +func (m *KeyValue) GetStrValue() string { + if x, ok := m.GetValue().(*KeyValue_StrValue); ok { + return x.StrValue + } + return "" +} + +func (m *KeyValue) GetBytesValue() []byte { + if x, ok := m.GetValue().(*KeyValue_BytesValue); ok { + return x.BytesValue + } + return nil +} + +func (m *KeyValue) GetFloatValue() float32 { + if x, ok := m.GetValue().(*KeyValue_FloatValue); ok { + return x.FloatValue + } + return 0 +} + +func (m *KeyValue) GetLeaflistValue() *ScalarArray { + if x, ok := m.GetValue().(*KeyValue_LeaflistValue); ok { + return x.LeaflistValue + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*KeyValue) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _KeyValue_OneofMarshaler, _KeyValue_OneofUnmarshaler, _KeyValue_OneofSizer, []interface{}{ + (*KeyValue_DoubleValue)(nil), + (*KeyValue_IntValue)(nil), + (*KeyValue_UintValue)(nil), + (*KeyValue_SintValue)(nil), + (*KeyValue_BoolValue)(nil), + (*KeyValue_StrValue)(nil), + (*KeyValue_BytesValue)(nil), + (*KeyValue_FloatValue)(nil), + (*KeyValue_LeaflistValue)(nil), + } +} + +func _KeyValue_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*KeyValue) + // value + switch x := m.Value.(type) { + case *KeyValue_DoubleValue: + b.EncodeVarint(5<<3 | proto.WireFixed64) + b.EncodeFixed64(math.Float64bits(x.DoubleValue)) + case *KeyValue_IntValue: + b.EncodeVarint(6<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.IntValue)) + case *KeyValue_UintValue: + b.EncodeVarint(7<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.UintValue)) + case *KeyValue_SintValue: + b.EncodeVarint(8<<3 | proto.WireVarint) + b.EncodeZigzag64(uint64(x.SintValue)) + case *KeyValue_BoolValue: + t := uint64(0) + if x.BoolValue { + t = 1 + } + b.EncodeVarint(9<<3 | proto.WireVarint) + b.EncodeVarint(t) + case *KeyValue_StrValue: + b.EncodeVarint(10<<3 | proto.WireBytes) + b.EncodeStringBytes(x.StrValue) + case *KeyValue_BytesValue: + b.EncodeVarint(11<<3 | proto.WireBytes) + b.EncodeRawBytes(x.BytesValue) + case *KeyValue_FloatValue: + b.EncodeVarint(12<<3 | proto.WireFixed32) + b.EncodeFixed32(uint64(math.Float32bits(x.FloatValue))) + case *KeyValue_LeaflistValue: + b.EncodeVarint(13<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.LeaflistValue); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("KeyValue.Value has unexpected type %T", x) + } + return nil +} + +func _KeyValue_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*KeyValue) + switch tag { + case 5: // value.double_value + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Value = &KeyValue_DoubleValue{math.Float64frombits(x)} + return true, err + case 6: // value.int_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &KeyValue_IntValue{int64(x)} + return true, err + case 7: // value.uint_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &KeyValue_UintValue{x} + return true, err + case 8: // value.sint_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeZigzag64() + m.Value = &KeyValue_SintValue{int64(x)} + return true, err + case 9: // value.bool_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &KeyValue_BoolValue{x != 0} + return true, err + case 10: // value.str_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Value = &KeyValue_StrValue{x} + return true, err + case 11: // value.bytes_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.Value = &KeyValue_BytesValue{x} + return true, err + case 12: // value.float_value + if wire != proto.WireFixed32 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed32() + m.Value = &KeyValue_FloatValue{math.Float32frombits(uint32(x))} + return true, err + case 13: // value.leaflist_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ScalarArray) + err := b.DecodeMessage(msg) + m.Value = &KeyValue_LeaflistValue{msg} + return true, err + default: + return false, nil + } +} + +func _KeyValue_OneofSizer(msg proto.Message) (n int) { + m := msg.(*KeyValue) + // value + switch x := m.Value.(type) { + case *KeyValue_DoubleValue: + n += proto.SizeVarint(5<<3 | proto.WireFixed64) + n += 8 + case *KeyValue_IntValue: + n += proto.SizeVarint(6<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.IntValue)) + case *KeyValue_UintValue: + n += proto.SizeVarint(7<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.UintValue)) + case *KeyValue_SintValue: + n += proto.SizeVarint(8<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(uint64(x.SintValue<<1) ^ uint64((int64(x.SintValue) >> 63)))) + case *KeyValue_BoolValue: + n += proto.SizeVarint(9<<3 | proto.WireVarint) + n += 1 + case *KeyValue_StrValue: + n += proto.SizeVarint(10<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.StrValue))) + n += len(x.StrValue) + case *KeyValue_BytesValue: + n += proto.SizeVarint(11<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.BytesValue))) + n += len(x.BytesValue) + case *KeyValue_FloatValue: + n += proto.SizeVarint(12<<3 | proto.WireFixed32) + n += 4 + case *KeyValue_LeaflistValue: + s := proto.Size(x.LeaflistValue) + n += proto.SizeVarint(13<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type TypedValue struct { + // Scalararray representation + // + // Types that are valid to be assigned to Value: + // *TypedValue_LeaflistDoubleValue + // *TypedValue_LeaflistIntValue + // *TypedValue_LeaflistUintValue + // *TypedValue_LeaflistSintValue + // *TypedValue_LeaflistBoolValue + // *TypedValue_LeaflistStrValue + // *TypedValue_LeaflistBytesValue + // *TypedValue_LeaflistFloatValue + Value isTypedValue_Value `protobuf_oneof:"value"` +} + +func (m *TypedValue) Reset() { *m = TypedValue{} } +func (m *TypedValue) String() string { return proto.CompactTextString(m) } +func (*TypedValue) ProtoMessage() {} +func (*TypedValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } + +type isTypedValue_Value interface{ isTypedValue_Value() } + +type TypedValue_LeaflistDoubleValue struct { + LeaflistDoubleValue float64 `protobuf:"fixed64,1,opt,name=leaflist_double_value,json=leaflistDoubleValue,oneof"` +} +type TypedValue_LeaflistIntValue struct { + LeaflistIntValue int64 `protobuf:"varint,2,opt,name=leaflist_int_value,json=leaflistIntValue,oneof"` +} +type TypedValue_LeaflistUintValue struct { + LeaflistUintValue uint64 `protobuf:"varint,3,opt,name=leaflist_uint_value,json=leaflistUintValue,oneof"` +} +type TypedValue_LeaflistSintValue struct { + LeaflistSintValue int64 `protobuf:"zigzag64,4,opt,name=leaflist_sint_value,json=leaflistSintValue,oneof"` +} +type TypedValue_LeaflistBoolValue struct { + LeaflistBoolValue bool `protobuf:"varint,5,opt,name=leaflist_bool_value,json=leaflistBoolValue,oneof"` +} +type TypedValue_LeaflistStrValue struct { + LeaflistStrValue string `protobuf:"bytes,6,opt,name=leaflist_str_value,json=leaflistStrValue,oneof"` +} +type TypedValue_LeaflistBytesValue struct { + LeaflistBytesValue []byte `protobuf:"bytes,7,opt,name=leaflist_bytes_value,json=leaflistBytesValue,proto3,oneof"` +} +type TypedValue_LeaflistFloatValue struct { + LeaflistFloatValue float32 `protobuf:"fixed32,8,opt,name=leaflist_float_value,json=leaflistFloatValue,oneof"` +} + +func (*TypedValue_LeaflistDoubleValue) isTypedValue_Value() {} +func (*TypedValue_LeaflistIntValue) isTypedValue_Value() {} +func (*TypedValue_LeaflistUintValue) isTypedValue_Value() {} +func (*TypedValue_LeaflistSintValue) isTypedValue_Value() {} +func (*TypedValue_LeaflistBoolValue) isTypedValue_Value() {} +func (*TypedValue_LeaflistStrValue) isTypedValue_Value() {} +func (*TypedValue_LeaflistBytesValue) isTypedValue_Value() {} +func (*TypedValue_LeaflistFloatValue) isTypedValue_Value() {} + +func (m *TypedValue) GetValue() isTypedValue_Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *TypedValue) GetLeaflistDoubleValue() float64 { + if x, ok := m.GetValue().(*TypedValue_LeaflistDoubleValue); ok { + return x.LeaflistDoubleValue + } + return 0 +} + +func (m *TypedValue) GetLeaflistIntValue() int64 { + if x, ok := m.GetValue().(*TypedValue_LeaflistIntValue); ok { + return x.LeaflistIntValue + } + return 0 +} + +func (m *TypedValue) GetLeaflistUintValue() uint64 { + if x, ok := m.GetValue().(*TypedValue_LeaflistUintValue); ok { + return x.LeaflistUintValue + } + return 0 +} + +func (m *TypedValue) GetLeaflistSintValue() int64 { + if x, ok := m.GetValue().(*TypedValue_LeaflistSintValue); ok { + return x.LeaflistSintValue + } + return 0 +} + +func (m *TypedValue) GetLeaflistBoolValue() bool { + if x, ok := m.GetValue().(*TypedValue_LeaflistBoolValue); ok { + return x.LeaflistBoolValue + } + return false +} + +func (m *TypedValue) GetLeaflistStrValue() string { + if x, ok := m.GetValue().(*TypedValue_LeaflistStrValue); ok { + return x.LeaflistStrValue + } + return "" +} + +func (m *TypedValue) GetLeaflistBytesValue() []byte { + if x, ok := m.GetValue().(*TypedValue_LeaflistBytesValue); ok { + return x.LeaflistBytesValue + } + return nil +} + +func (m *TypedValue) GetLeaflistFloatValue() float32 { + if x, ok := m.GetValue().(*TypedValue_LeaflistFloatValue); ok { + return x.LeaflistFloatValue + } + return 0 +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*TypedValue) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _TypedValue_OneofMarshaler, _TypedValue_OneofUnmarshaler, _TypedValue_OneofSizer, []interface{}{ + (*TypedValue_LeaflistDoubleValue)(nil), + (*TypedValue_LeaflistIntValue)(nil), + (*TypedValue_LeaflistUintValue)(nil), + (*TypedValue_LeaflistSintValue)(nil), + (*TypedValue_LeaflistBoolValue)(nil), + (*TypedValue_LeaflistStrValue)(nil), + (*TypedValue_LeaflistBytesValue)(nil), + (*TypedValue_LeaflistFloatValue)(nil), + } +} + +func _TypedValue_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*TypedValue) + // value + switch x := m.Value.(type) { + case *TypedValue_LeaflistDoubleValue: + b.EncodeVarint(1<<3 | proto.WireFixed64) + b.EncodeFixed64(math.Float64bits(x.LeaflistDoubleValue)) + case *TypedValue_LeaflistIntValue: + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.LeaflistIntValue)) + case *TypedValue_LeaflistUintValue: + b.EncodeVarint(3<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.LeaflistUintValue)) + case *TypedValue_LeaflistSintValue: + b.EncodeVarint(4<<3 | proto.WireVarint) + b.EncodeZigzag64(uint64(x.LeaflistSintValue)) + case *TypedValue_LeaflistBoolValue: + t := uint64(0) + if x.LeaflistBoolValue { + t = 1 + } + b.EncodeVarint(5<<3 | proto.WireVarint) + b.EncodeVarint(t) + case *TypedValue_LeaflistStrValue: + b.EncodeVarint(6<<3 | proto.WireBytes) + b.EncodeStringBytes(x.LeaflistStrValue) + case *TypedValue_LeaflistBytesValue: + b.EncodeVarint(7<<3 | proto.WireBytes) + b.EncodeRawBytes(x.LeaflistBytesValue) + case *TypedValue_LeaflistFloatValue: + b.EncodeVarint(8<<3 | proto.WireFixed32) + b.EncodeFixed32(uint64(math.Float32bits(x.LeaflistFloatValue))) + case nil: + default: + return fmt.Errorf("TypedValue.Value has unexpected type %T", x) + } + return nil +} + +func _TypedValue_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*TypedValue) + switch tag { + case 1: // value.leaflist_double_value + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Value = &TypedValue_LeaflistDoubleValue{math.Float64frombits(x)} + return true, err + case 2: // value.leaflist_int_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &TypedValue_LeaflistIntValue{int64(x)} + return true, err + case 3: // value.leaflist_uint_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &TypedValue_LeaflistUintValue{x} + return true, err + case 4: // value.leaflist_sint_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeZigzag64() + m.Value = &TypedValue_LeaflistSintValue{int64(x)} + return true, err + case 5: // value.leaflist_bool_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &TypedValue_LeaflistBoolValue{x != 0} + return true, err + case 6: // value.leaflist_str_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Value = &TypedValue_LeaflistStrValue{x} + return true, err + case 7: // value.leaflist_bytes_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.Value = &TypedValue_LeaflistBytesValue{x} + return true, err + case 8: // value.leaflist_float_value + if wire != proto.WireFixed32 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed32() + m.Value = &TypedValue_LeaflistFloatValue{math.Float32frombits(uint32(x))} + return true, err + default: + return false, nil + } +} + +func _TypedValue_OneofSizer(msg proto.Message) (n int) { + m := msg.(*TypedValue) + // value + switch x := m.Value.(type) { + case *TypedValue_LeaflistDoubleValue: + n += proto.SizeVarint(1<<3 | proto.WireFixed64) + n += 8 + case *TypedValue_LeaflistIntValue: + n += proto.SizeVarint(2<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.LeaflistIntValue)) + case *TypedValue_LeaflistUintValue: + n += proto.SizeVarint(3<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.LeaflistUintValue)) + case *TypedValue_LeaflistSintValue: + n += proto.SizeVarint(4<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(uint64(x.LeaflistSintValue<<1) ^ uint64((int64(x.LeaflistSintValue) >> 63)))) + case *TypedValue_LeaflistBoolValue: + n += proto.SizeVarint(5<<3 | proto.WireVarint) + n += 1 + case *TypedValue_LeaflistStrValue: + n += proto.SizeVarint(6<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.LeaflistStrValue))) + n += len(x.LeaflistStrValue) + case *TypedValue_LeaflistBytesValue: + n += proto.SizeVarint(7<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.LeaflistBytesValue))) + n += len(x.LeaflistBytesValue) + case *TypedValue_LeaflistFloatValue: + n += proto.SizeVarint(8<<3 | proto.WireFixed32) + n += 4 + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type ScalarArray struct { + Element []*TypedValue `protobuf:"bytes,1,rep,name=element" json:"element,omitempty"` +} + +func (m *ScalarArray) Reset() { *m = ScalarArray{} } +func (m *ScalarArray) String() string { return proto.CompactTextString(m) } +func (*ScalarArray) ProtoMessage() {} +func (*ScalarArray) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } + +func (m *ScalarArray) GetElement() []*TypedValue { + if m != nil { + return m.Element + } + return nil +} + +// Message indicating delete for a particular path +type Delete struct { + Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"` +} + +func (m *Delete) Reset() { *m = Delete{} } +func (m *Delete) String() string { return proto.CompactTextString(m) } +func (*Delete) ProtoMessage() {} +func (*Delete) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } + +func (m *Delete) GetPath() string { + if m != nil { + return m.Path + } + return "" +} + +// Message indicating EOM for a particular path +type Eom struct { + Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"` +} + +func (m *Eom) Reset() { *m = Eom{} } +func (m *Eom) String() string { return proto.CompactTextString(m) } +func (*Eom) ProtoMessage() {} +func (*Eom) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } + +func (m *Eom) GetPath() string { + if m != nil { + return m.Path + } + return "" +} + +// Message sent for a telemetry subscription cancellation request +type CancelSubscriptionRequest struct { + // Subscription identifier as returned by the device when + // subscription was requested + SubscriptionId uint32 `protobuf:"varint,1,opt,name=subscription_id,json=subscriptionId" json:"subscription_id,omitempty"` +} + +func (m *CancelSubscriptionRequest) Reset() { *m = CancelSubscriptionRequest{} } +func (m *CancelSubscriptionRequest) String() string { return proto.CompactTextString(m) } +func (*CancelSubscriptionRequest) ProtoMessage() {} +func (*CancelSubscriptionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } + +func (m *CancelSubscriptionRequest) GetSubscriptionId() uint32 { + if m != nil { + return m.SubscriptionId + } + return 0 +} + +// Reply to telemetry subscription cancellation request +type CancelSubscriptionReply struct { + // Return code + Code ReturnCode `protobuf:"varint,1,opt,name=code,enum=telemetry.ReturnCode" json:"code,omitempty"` + // Return code string + CodeStr string `protobuf:"bytes,2,opt,name=code_str,json=codeStr" json:"code_str,omitempty"` +} + +func (m *CancelSubscriptionReply) Reset() { *m = CancelSubscriptionReply{} } +func (m *CancelSubscriptionReply) String() string { return proto.CompactTextString(m) } +func (*CancelSubscriptionReply) ProtoMessage() {} +func (*CancelSubscriptionReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } + +func (m *CancelSubscriptionReply) GetCode() ReturnCode { + if m != nil { + return m.Code + } + return ReturnCode_SUCCESS +} + +func (m *CancelSubscriptionReply) GetCodeStr() string { + if m != nil { + return m.CodeStr + } + return "" +} + +// Message sent for a telemetry get request +type GetSubscriptionsRequest struct { + // Subscription identifier as returned by the device when + // subscription was requested + // --- or --- + // 0xFFFFFFFF for all subscription identifiers + SubscriptionId uint32 `protobuf:"varint,1,opt,name=subscription_id,json=subscriptionId" json:"subscription_id,omitempty"` +} + +func (m *GetSubscriptionsRequest) Reset() { *m = GetSubscriptionsRequest{} } +func (m *GetSubscriptionsRequest) String() string { return proto.CompactTextString(m) } +func (*GetSubscriptionsRequest) ProtoMessage() {} +func (*GetSubscriptionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } + +func (m *GetSubscriptionsRequest) GetSubscriptionId() uint32 { + if m != nil { + return m.SubscriptionId + } + return 0 +} + +// Reply to telemetry subscription get request +type GetSubscriptionsReply struct { + // List of current telemetry subscriptions + SubscriptionList []*SubscriptionReply `protobuf:"bytes,1,rep,name=subscription_list,json=subscriptionList" json:"subscription_list,omitempty"` +} + +func (m *GetSubscriptionsReply) Reset() { *m = GetSubscriptionsReply{} } +func (m *GetSubscriptionsReply) String() string { return proto.CompactTextString(m) } +func (*GetSubscriptionsReply) ProtoMessage() {} +func (*GetSubscriptionsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } + +func (m *GetSubscriptionsReply) GetSubscriptionList() []*SubscriptionReply { + if m != nil { + return m.SubscriptionList + } + return nil +} + +// Message sent for telemetry agent operational states request +type GetOperationalStateRequest struct { + // Per-subscription_id level operational state can be requested. + // + // Subscription identifier as returned by the device when + // subscription was requested + // --- or --- + // 0xFFFFFFFF for all subscription identifiers including agent-level + // operational stats + // --- or --- + // If subscription_id is not present then sent only agent-level + // operational stats + SubscriptionId uint32 `protobuf:"varint,1,opt,name=subscription_id,json=subscriptionId" json:"subscription_id,omitempty"` + // Control verbosity of the output + Verbosity VerbosityLevel `protobuf:"varint,2,opt,name=verbosity,enum=telemetry.VerbosityLevel" json:"verbosity,omitempty"` +} + +func (m *GetOperationalStateRequest) Reset() { *m = GetOperationalStateRequest{} } +func (m *GetOperationalStateRequest) String() string { return proto.CompactTextString(m) } +func (*GetOperationalStateRequest) ProtoMessage() {} +func (*GetOperationalStateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } + +func (m *GetOperationalStateRequest) GetSubscriptionId() uint32 { + if m != nil { + return m.SubscriptionId + } + return 0 +} + +func (m *GetOperationalStateRequest) GetVerbosity() VerbosityLevel { + if m != nil { + return m.Verbosity + } + return VerbosityLevel_DETAIL +} + +// Reply to telemetry agent operational states request +type GetOperationalStateReply struct { + // List of key-value pairs where + // key = operational state definition + // value = operational state value + Kv []*KeyValue `protobuf:"bytes,1,rep,name=kv" json:"kv,omitempty"` +} + +func (m *GetOperationalStateReply) Reset() { *m = GetOperationalStateReply{} } +func (m *GetOperationalStateReply) String() string { return proto.CompactTextString(m) } +func (*GetOperationalStateReply) ProtoMessage() {} +func (*GetOperationalStateReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } + +func (m *GetOperationalStateReply) GetKv() []*KeyValue { + if m != nil { + return m.Kv + } + return nil +} + +// Message sent for a data encoding request +type DataEncodingRequest struct { +} + +func (m *DataEncodingRequest) Reset() { *m = DataEncodingRequest{} } +func (m *DataEncodingRequest) String() string { return proto.CompactTextString(m) } +func (*DataEncodingRequest) ProtoMessage() {} +func (*DataEncodingRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } + +// Reply to data encodings supported request +type DataEncodingReply struct { + EncodingList []EncodingType `protobuf:"varint,1,rep,packed,name=encoding_list,json=encodingList,enum=telemetry.EncodingType" json:"encoding_list,omitempty"` +} + +func (m *DataEncodingReply) Reset() { *m = DataEncodingReply{} } +func (m *DataEncodingReply) String() string { return proto.CompactTextString(m) } +func (*DataEncodingReply) ProtoMessage() {} +func (*DataEncodingReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } + +func (m *DataEncodingReply) GetEncodingList() []EncodingType { + if m != nil { + return m.EncodingList + } + return nil +} + +func init() { + proto.RegisterType((*SubscriptionRequest)(nil), "telemetry.SubscriptionRequest") + proto.RegisterType((*SubscriptionInput)(nil), "telemetry.SubscriptionInput") + proto.RegisterType((*Collector)(nil), "telemetry.Collector") + proto.RegisterType((*Path)(nil), "telemetry.Path") + proto.RegisterType((*SubscriptionAdditionalConfig)(nil), "telemetry.SubscriptionAdditionalConfig") + proto.RegisterType((*SubscriptionReply)(nil), "telemetry.SubscriptionReply") + proto.RegisterType((*SubscriptionResponse)(nil), "telemetry.SubscriptionResponse") + proto.RegisterType((*OpenConfigData)(nil), "telemetry.OpenConfigData") + proto.RegisterType((*KeyValue)(nil), "telemetry.KeyValue") + proto.RegisterType((*TypedValue)(nil), "telemetry.TypedValue") + proto.RegisterType((*ScalarArray)(nil), "telemetry.ScalarArray") + proto.RegisterType((*Delete)(nil), "telemetry.Delete") + proto.RegisterType((*Eom)(nil), "telemetry.Eom") + proto.RegisterType((*CancelSubscriptionRequest)(nil), "telemetry.CancelSubscriptionRequest") + proto.RegisterType((*CancelSubscriptionReply)(nil), "telemetry.CancelSubscriptionReply") + proto.RegisterType((*GetSubscriptionsRequest)(nil), "telemetry.GetSubscriptionsRequest") + proto.RegisterType((*GetSubscriptionsReply)(nil), "telemetry.GetSubscriptionsReply") + proto.RegisterType((*GetOperationalStateRequest)(nil), "telemetry.GetOperationalStateRequest") + proto.RegisterType((*GetOperationalStateReply)(nil), "telemetry.GetOperationalStateReply") + proto.RegisterType((*DataEncodingRequest)(nil), "telemetry.DataEncodingRequest") + proto.RegisterType((*DataEncodingReply)(nil), "telemetry.DataEncodingReply") + proto.RegisterEnum("telemetry.ReturnCode", ReturnCode_name, ReturnCode_value) + proto.RegisterEnum("telemetry.VerbosityLevel", VerbosityLevel_name, VerbosityLevel_value) + proto.RegisterEnum("telemetry.EncodingType", EncodingType_name, EncodingType_value) + proto.RegisterEnum("telemetry.SubscriptionMode", SubscriptionMode_name, SubscriptionMode_value) +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for OpenConfigTelemetry service + +type OpenConfigTelemetryClient interface { + // Request an inline subscription for data at the specified path. + // The device should send telemetry data back on the same + // connection as the subscription request. + TelemetrySubscribe(ctx context.Context, in *SubscriptionRequest, opts ...grpc.CallOption) (OpenConfigTelemetry_TelemetrySubscribeClient, error) + // Terminates and removes an exisiting telemetry subscription + CancelTelemetrySubscription(ctx context.Context, in *CancelSubscriptionRequest, opts ...grpc.CallOption) (*CancelSubscriptionReply, error) + // Get the list of current telemetry subscriptions from the + // target. This command returns a list of existing subscriptions + // not including those that are established via configuration. + GetTelemetrySubscriptions(ctx context.Context, in *GetSubscriptionsRequest, opts ...grpc.CallOption) (*GetSubscriptionsReply, error) + // Get Telemetry Agent Operational States + GetTelemetryOperationalState(ctx context.Context, in *GetOperationalStateRequest, opts ...grpc.CallOption) (*GetOperationalStateReply, error) + // Return the set of data encodings supported by the device for + // telemetry data + GetDataEncodings(ctx context.Context, in *DataEncodingRequest, opts ...grpc.CallOption) (*DataEncodingReply, error) +} + +type openConfigTelemetryClient struct { + cc *grpc.ClientConn +} + +func NewOpenConfigTelemetryClient(cc *grpc.ClientConn) OpenConfigTelemetryClient { + return &openConfigTelemetryClient{cc} +} + +func (c *openConfigTelemetryClient) TelemetrySubscribe(ctx context.Context, in *SubscriptionRequest, opts ...grpc.CallOption) (OpenConfigTelemetry_TelemetrySubscribeClient, error) { + stream, err := grpc.NewClientStream(ctx, &_OpenConfigTelemetry_serviceDesc.Streams[0], c.cc, "/telemetry.OpenConfigTelemetry/telemetrySubscribe", opts...) + if err != nil { + return nil, err + } + x := &openConfigTelemetryTelemetrySubscribeClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type OpenConfigTelemetry_TelemetrySubscribeClient interface { + Recv() (*OpenConfigData, error) + grpc.ClientStream +} + +type openConfigTelemetryTelemetrySubscribeClient struct { + grpc.ClientStream +} + +func (x *openConfigTelemetryTelemetrySubscribeClient) Recv() (*OpenConfigData, error) { + m := new(OpenConfigData) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *openConfigTelemetryClient) CancelTelemetrySubscription(ctx context.Context, in *CancelSubscriptionRequest, opts ...grpc.CallOption) (*CancelSubscriptionReply, error) { + out := new(CancelSubscriptionReply) + err := grpc.Invoke(ctx, "/telemetry.OpenConfigTelemetry/cancelTelemetrySubscription", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *openConfigTelemetryClient) GetTelemetrySubscriptions(ctx context.Context, in *GetSubscriptionsRequest, opts ...grpc.CallOption) (*GetSubscriptionsReply, error) { + out := new(GetSubscriptionsReply) + err := grpc.Invoke(ctx, "/telemetry.OpenConfigTelemetry/getTelemetrySubscriptions", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *openConfigTelemetryClient) GetTelemetryOperationalState(ctx context.Context, in *GetOperationalStateRequest, opts ...grpc.CallOption) (*GetOperationalStateReply, error) { + out := new(GetOperationalStateReply) + err := grpc.Invoke(ctx, "/telemetry.OpenConfigTelemetry/getTelemetryOperationalState", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *openConfigTelemetryClient) GetDataEncodings(ctx context.Context, in *DataEncodingRequest, opts ...grpc.CallOption) (*DataEncodingReply, error) { + out := new(DataEncodingReply) + err := grpc.Invoke(ctx, "/telemetry.OpenConfigTelemetry/getDataEncodings", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for OpenConfigTelemetry service + +type OpenConfigTelemetryServer interface { + // Request an inline subscription for data at the specified path. + // The device should send telemetry data back on the same + // connection as the subscription request. + TelemetrySubscribe(*SubscriptionRequest, OpenConfigTelemetry_TelemetrySubscribeServer) error + // Terminates and removes an exisiting telemetry subscription + CancelTelemetrySubscription(context.Context, *CancelSubscriptionRequest) (*CancelSubscriptionReply, error) + // Get the list of current telemetry subscriptions from the + // target. This command returns a list of existing subscriptions + // not including those that are established via configuration. + GetTelemetrySubscriptions(context.Context, *GetSubscriptionsRequest) (*GetSubscriptionsReply, error) + // Get Telemetry Agent Operational States + GetTelemetryOperationalState(context.Context, *GetOperationalStateRequest) (*GetOperationalStateReply, error) + // Return the set of data encodings supported by the device for + // telemetry data + GetDataEncodings(context.Context, *DataEncodingRequest) (*DataEncodingReply, error) +} + +func RegisterOpenConfigTelemetryServer(s *grpc.Server, srv OpenConfigTelemetryServer) { + s.RegisterService(&_OpenConfigTelemetry_serviceDesc, srv) +} + +func _OpenConfigTelemetry_TelemetrySubscribe_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(SubscriptionRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(OpenConfigTelemetryServer).TelemetrySubscribe(m, &openConfigTelemetryTelemetrySubscribeServer{stream}) +} + +type OpenConfigTelemetry_TelemetrySubscribeServer interface { + Send(*OpenConfigData) error + grpc.ServerStream +} + +type openConfigTelemetryTelemetrySubscribeServer struct { + grpc.ServerStream +} + +func (x *openConfigTelemetryTelemetrySubscribeServer) Send(m *OpenConfigData) error { + return x.ServerStream.SendMsg(m) +} + +func _OpenConfigTelemetry_CancelTelemetrySubscription_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CancelSubscriptionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OpenConfigTelemetryServer).CancelTelemetrySubscription(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/telemetry.OpenConfigTelemetry/CancelTelemetrySubscription", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OpenConfigTelemetryServer).CancelTelemetrySubscription(ctx, req.(*CancelSubscriptionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OpenConfigTelemetry_GetTelemetrySubscriptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSubscriptionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OpenConfigTelemetryServer).GetTelemetrySubscriptions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/telemetry.OpenConfigTelemetry/GetTelemetrySubscriptions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OpenConfigTelemetryServer).GetTelemetrySubscriptions(ctx, req.(*GetSubscriptionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OpenConfigTelemetry_GetTelemetryOperationalState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetOperationalStateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OpenConfigTelemetryServer).GetTelemetryOperationalState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/telemetry.OpenConfigTelemetry/GetTelemetryOperationalState", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OpenConfigTelemetryServer).GetTelemetryOperationalState(ctx, req.(*GetOperationalStateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OpenConfigTelemetry_GetDataEncodings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DataEncodingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OpenConfigTelemetryServer).GetDataEncodings(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/telemetry.OpenConfigTelemetry/GetDataEncodings", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OpenConfigTelemetryServer).GetDataEncodings(ctx, req.(*DataEncodingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _OpenConfigTelemetry_serviceDesc = grpc.ServiceDesc{ + ServiceName: "telemetry.OpenConfigTelemetry", + HandlerType: (*OpenConfigTelemetryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "cancelTelemetrySubscription", + Handler: _OpenConfigTelemetry_CancelTelemetrySubscription_Handler, + }, + { + MethodName: "getTelemetrySubscriptions", + Handler: _OpenConfigTelemetry_GetTelemetrySubscriptions_Handler, + }, + { + MethodName: "getTelemetryOperationalState", + Handler: _OpenConfigTelemetry_GetTelemetryOperationalState_Handler, + }, + { + MethodName: "getDataEncodings", + Handler: _OpenConfigTelemetry_GetDataEncodings_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "telemetrySubscribe", + Handler: _OpenConfigTelemetry_TelemetrySubscribe_Handler, + ServerStreams: true, + }, + }, + Metadata: "telemetry.proto", +} + +func init() { proto.RegisterFile("telemetry.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 1531 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x57, 0xcd, 0x72, 0xdb, 0xc8, + 0x11, 0x26, 0x48, 0x4a, 0x24, 0x9a, 0x3f, 0x02, 0x47, 0x96, 0x4d, 0xc9, 0x4a, 0x2c, 0x43, 0x71, + 0x59, 0x56, 0x39, 0xb2, 0x8b, 0x4e, 0x55, 0xca, 0xe5, 0x54, 0x5c, 0x12, 0x49, 0x49, 0x8c, 0x69, + 0x52, 0x19, 0x52, 0x4e, 0x72, 0x42, 0x81, 0xc0, 0x48, 0x42, 0x19, 0x7f, 0xc1, 0x0c, 0x55, 0xe6, + 0xc5, 0x8f, 0xb1, 0xef, 0xb0, 0x0f, 0xb1, 0x8f, 0xb0, 0x6f, 0xb2, 0xa7, 0x3d, 0xef, 0x61, 0x6b, + 0x06, 0x3f, 0x1c, 0xca, 0xa4, 0xbd, 0x3e, 0x09, 0xf8, 0xfa, 0xeb, 0x9e, 0x9e, 0xfe, 0xba, 0xd5, + 0x20, 0x6c, 0x30, 0xe2, 0x12, 0x8f, 0xb0, 0x68, 0x76, 0x14, 0x46, 0x01, 0x0b, 0x90, 0x9a, 0x01, + 0xfa, 0xcf, 0x0a, 0x6c, 0x8e, 0xa6, 0x13, 0x6a, 0x45, 0x4e, 0xc8, 0x9c, 0xc0, 0xc7, 0xe4, 0xff, + 0x53, 0x42, 0x19, 0x6a, 0xc1, 0x9a, 0xe3, 0x87, 0x53, 0xd6, 0x54, 0xf6, 0x94, 0x83, 0x4a, 0x6b, + 0xf7, 0x68, 0x1e, 0x43, 0xa6, 0xf7, 0x38, 0x07, 0xc7, 0x54, 0xf4, 0x1c, 0xd4, 0xd0, 0x64, 0x37, + 0x86, 0xeb, 0x50, 0xd6, 0xcc, 0xef, 0x15, 0x0e, 0x2a, 0xad, 0x0d, 0xc9, 0xef, 0xc2, 0x64, 0x37, + 0xb8, 0xcc, 0x19, 0x7d, 0x87, 0x32, 0x34, 0x86, 0x86, 0x69, 0xdb, 0x0e, 0x8f, 0x62, 0xba, 0x86, + 0x15, 0xf8, 0x57, 0xce, 0x75, 0xb3, 0x20, 0x4e, 0x7b, 0xba, 0xe2, 0xb4, 0xe3, 0x8c, 0xdf, 0x16, + 0x74, 0xac, 0x99, 0x77, 0x10, 0xfd, 0x02, 0x1a, 0x5f, 0xe4, 0x87, 0xde, 0x40, 0xdd, 0x0a, 0x5c, + 0x97, 0x58, 0x2c, 0x88, 0xe2, 0xec, 0x14, 0x91, 0xdd, 0x3d, 0xe9, 0x9c, 0x76, 0x4a, 0xc0, 0xb5, + 0x8c, 0xcb, 0xf3, 0xd4, 0x5f, 0x83, 0x9a, 0xd9, 0x50, 0x13, 0x4a, 0xa6, 0x6d, 0x47, 0x84, 0x52, + 0x51, 0x18, 0x15, 0xa7, 0xaf, 0x08, 0x41, 0x31, 0x0c, 0x22, 0x7e, 0x6f, 0xe5, 0xa0, 0x86, 0xc5, + 0xb3, 0xfe, 0x43, 0x1e, 0x8a, 0xfc, 0xd6, 0xc2, 0x68, 0xb2, 0x9b, 0xc4, 0x47, 0x3c, 0xa3, 0xfb, + 0xb0, 0x7e, 0xe5, 0xb8, 0x8c, 0x44, 0xc2, 0x45, 0xc5, 0xc9, 0x1b, 0xfa, 0x2b, 0x20, 0x3a, 0x0d, + 0x43, 0x1e, 0xd4, 0x98, 0xfa, 0xd6, 0x8d, 0xe9, 0x5f, 0x13, 0x5b, 0x14, 0xa6, 0x8c, 0x1b, 0xa9, + 0xe5, 0x32, 0x35, 0xa0, 0x23, 0xd8, 0xf4, 0xcc, 0x4f, 0x06, 0x75, 0x5c, 0xe2, 0x33, 0xc3, 0xf1, + 0x19, 0x89, 0x6e, 0x4d, 0xb7, 0x59, 0x14, 0x69, 0x34, 0x3c, 0xf3, 0xd3, 0x48, 0x58, 0x7a, 0x89, + 0x01, 0x3d, 0x03, 0x8d, 0x9a, 0x5e, 0xe8, 0x12, 0xe3, 0x2a, 0xe2, 0x5a, 0xfb, 0xd6, 0xac, 0xb9, + 0x26, 0xc8, 0x1b, 0x31, 0x7e, 0x9a, 0xc2, 0x68, 0x1b, 0xca, 0x3e, 0x21, 0xb6, 0x41, 0x02, 0xaf, + 0xb9, 0x2e, 0xce, 0x2f, 0xf1, 0xf7, 0x6e, 0xe0, 0xf1, 0xe4, 0x83, 0xc8, 0xb9, 0x76, 0xfc, 0xa6, + 0x1d, 0x27, 0x1f, 0xbf, 0xa1, 0x27, 0x50, 0x67, 0x66, 0x74, 0x4d, 0x98, 0x61, 0x93, 0x2b, 0xc7, + 0x27, 0x76, 0x93, 0x08, 0xc7, 0x5a, 0x8c, 0x76, 0x62, 0x50, 0xff, 0x49, 0x81, 0xdd, 0xaf, 0x09, + 0x8b, 0xf6, 0xa1, 0xe6, 0x3a, 0x9e, 0xc3, 0x8c, 0x88, 0x58, 0x41, 0x64, 0xc7, 0xd5, 0x5e, 0xc3, + 0x55, 0x01, 0xe2, 0x18, 0x43, 0xcf, 0x01, 0xc5, 0x24, 0xe6, 0x78, 0xc4, 0xa0, 0xc4, 0x0a, 0x7c, + 0x9b, 0x8a, 0x6a, 0xae, 0x61, 0x4d, 0x58, 0xc6, 0x8e, 0x47, 0x46, 0x31, 0x2e, 0xdd, 0x86, 0x26, + 0xd5, 0x4c, 0x6e, 0x43, 0xd1, 0x0b, 0x28, 0x7a, 0x81, 0x4d, 0x44, 0xd1, 0xea, 0xad, 0x87, 0x2b, + 0xba, 0xef, 0x7d, 0x60, 0x13, 0x2c, 0x88, 0xfa, 0xe7, 0xc5, 0x2e, 0xc3, 0x24, 0x74, 0x67, 0xe8, + 0x0d, 0x94, 0x23, 0x42, 0xc3, 0xc0, 0xa7, 0x24, 0x99, 0x9a, 0x47, 0x2b, 0x22, 0xe1, 0x84, 0x86, + 0x33, 0x87, 0xef, 0x9b, 0x1d, 0xfd, 0x2d, 0xdc, 0x5b, 0x16, 0x0f, 0x3d, 0x85, 0x0d, 0x2a, 0xe1, + 0x86, 0x63, 0x8b, 0x4c, 0x6a, 0xb8, 0x2e, 0xc3, 0x3d, 0x5b, 0xff, 0x25, 0x0f, 0xf5, 0x61, 0x48, + 0xfc, 0xb8, 0xdc, 0x1d, 0x93, 0x99, 0xe8, 0x21, 0xa8, 0x74, 0x46, 0x19, 0xf1, 0x52, 0x2f, 0x15, + 0x97, 0x63, 0xa0, 0x67, 0xa3, 0xc7, 0x50, 0xb5, 0x02, 0x2f, 0x0c, 0x7c, 0xd1, 0x64, 0x76, 0xd2, + 0xe5, 0x95, 0x0c, 0xeb, 0xd9, 0xe8, 0x00, 0x34, 0x3a, 0x9d, 0x18, 0x0b, 0xb4, 0x42, 0x76, 0x78, + 0x5b, 0x62, 0xa6, 0xd3, 0x50, 0x94, 0xa6, 0x81, 0x67, 0x1e, 0xf7, 0x1d, 0x31, 0xfc, 0xa9, 0x37, + 0x21, 0x91, 0xe8, 0xca, 0x22, 0xae, 0xa7, 0xf0, 0x40, 0xa0, 0x68, 0x17, 0x54, 0x2e, 0x37, 0x65, + 0xa6, 0x17, 0x8a, 0xae, 0x2c, 0xe2, 0x39, 0x80, 0xf6, 0x21, 0xff, 0xf1, 0xb6, 0x59, 0x12, 0xf5, + 0xdb, 0x94, 0xea, 0xf7, 0x8e, 0xcc, 0x3e, 0x98, 0xee, 0x94, 0xe0, 0xfc, 0xc7, 0x5b, 0xf4, 0x0c, + 0xd6, 0x6d, 0xe2, 0x12, 0x46, 0x9a, 0x65, 0x41, 0x6c, 0x48, 0xc4, 0x8e, 0x30, 0xe0, 0x84, 0x80, + 0xf6, 0xa0, 0xc0, 0xbb, 0x5f, 0x15, 0xbc, 0xba, 0xc4, 0xeb, 0x06, 0x1e, 0xe6, 0x26, 0xde, 0xa9, + 0x74, 0xe6, 0x5b, 0x46, 0x26, 0x3d, 0x88, 0xde, 0xaa, 0x72, 0x30, 0xd5, 0x45, 0xff, 0x35, 0x0f, + 0xe5, 0x34, 0x05, 0xa4, 0x41, 0xe1, 0x23, 0x99, 0x25, 0x25, 0xe6, 0x8f, 0x68, 0x1f, 0xaa, 0x76, + 0x30, 0x9d, 0xb8, 0xc4, 0xb8, 0xe5, 0x0c, 0x71, 0x73, 0xe5, 0x3c, 0x87, 0x2b, 0x31, 0x1a, 0xbb, + 0xfd, 0x09, 0x54, 0xc7, 0x67, 0x09, 0x83, 0x5f, 0xbc, 0x70, 0x9e, 0xc3, 0x65, 0xc7, 0x67, 0xb1, + 0xf9, 0x11, 0xc0, 0x74, 0x6e, 0x2f, 0xf1, 0xc2, 0x9c, 0xe7, 0xb0, 0x3a, 0x95, 0x09, 0x74, 0x4e, + 0x28, 0xef, 0x29, 0x07, 0x88, 0x13, 0xa8, 0x4c, 0x98, 0x04, 0x81, 0x9b, 0x10, 0x54, 0x7e, 0x0d, + 0x4e, 0xe0, 0x58, 0x96, 0x01, 0x65, 0x51, 0x62, 0xe7, 0xd7, 0x54, 0x79, 0x06, 0x94, 0x45, 0xb1, + 0xf9, 0x31, 0x54, 0x26, 0x33, 0x46, 0x68, 0x42, 0xa8, 0xec, 0x29, 0x07, 0xd5, 0xf3, 0x1c, 0x06, + 0x01, 0x66, 0x94, 0x2b, 0x37, 0x30, 0xd3, 0x24, 0xaa, 0x7b, 0xca, 0x41, 0x9e, 0x53, 0x04, 0x18, + 0x53, 0xde, 0x42, 0xdd, 0x25, 0xe6, 0x15, 0x9f, 0x83, 0x84, 0x55, 0x13, 0xb3, 0x74, 0x5f, 0x9e, + 0x25, 0xcb, 0x74, 0xcd, 0xe8, 0x38, 0x8a, 0xcc, 0xd9, 0x79, 0x0e, 0xd7, 0x52, 0xbe, 0x08, 0x70, + 0x52, 0x82, 0x35, 0xe1, 0xa7, 0xff, 0x58, 0x00, 0x18, 0xcf, 0x42, 0x62, 0xc7, 0x81, 0xff, 0x06, + 0x5b, 0x59, 0xe0, 0x85, 0x6a, 0x2b, 0x49, 0xb5, 0x37, 0x53, 0x73, 0x47, 0xaa, 0xfa, 0x11, 0xa0, + 0xcc, 0x6b, 0x5e, 0xbd, 0x7c, 0x52, 0x7e, 0x2d, 0xb5, 0xf5, 0xd2, 0x22, 0xbe, 0x84, 0x2c, 0x8c, + 0x21, 0xe9, 0x51, 0x48, 0xf4, 0x68, 0xa4, 0xc6, 0x4b, 0x67, 0x99, 0x87, 0x24, 0x50, 0x31, 0x11, + 0x28, 0xf3, 0x18, 0x2d, 0xf5, 0x90, 0x14, 0x5b, 0x4b, 0x14, 0xcb, 0x3c, 0x4e, 0x32, 0xe5, 0xe4, + 0x5b, 0xcc, 0x25, 0x5c, 0x4f, 0x24, 0xcc, 0x6e, 0x31, 0x4a, 0xa5, 0x6c, 0xc1, 0xbd, 0xf9, 0x09, + 0x92, 0xa6, 0xa5, 0x44, 0xd3, 0x2c, 0xda, 0xc9, 0x5c, 0x5b, 0xd9, 0x47, 0x16, 0xb9, 0x9c, 0x88, + 0x9c, 0xf9, 0x9c, 0x66, 0x62, 0xcf, 0xb5, 0xfa, 0x27, 0x54, 0x24, 0x51, 0xd1, 0x0b, 0x28, 0x09, + 0xb1, 0xfd, 0x74, 0x53, 0x6f, 0x49, 0xea, 0xcf, 0x35, 0xc5, 0x29, 0x4b, 0xdf, 0x85, 0xf5, 0x78, + 0x72, 0x97, 0xad, 0x5a, 0x7d, 0x1b, 0x0a, 0x7c, 0x69, 0x2d, 0x33, 0x75, 0x60, 0xbb, 0x6d, 0xfa, + 0x16, 0x71, 0x97, 0x7d, 0x04, 0xfd, 0xe1, 0x7f, 0xa7, 0x06, 0x3c, 0x58, 0x16, 0x85, 0x6f, 0x85, + 0x67, 0x50, 0xb4, 0xf8, 0x6e, 0x51, 0xc4, 0x6e, 0x91, 0xef, 0x81, 0x09, 0x9b, 0x46, 0x7e, 0x5b, + 0x6c, 0x15, 0x4e, 0xe1, 0x1b, 0x8a, 0xff, 0xe5, 0x0a, 0x25, 0xdf, 0x04, 0x25, 0xfe, 0x3e, 0x62, + 0x91, 0x7e, 0x02, 0x0f, 0xce, 0x08, 0x93, 0xa3, 0xd3, 0xef, 0x4e, 0x72, 0x02, 0x5b, 0x5f, 0xc6, + 0xe0, 0x29, 0xf6, 0xa0, 0xb1, 0x10, 0x41, 0xfa, 0x42, 0xda, 0x5d, 0xb9, 0xc1, 0x42, 0x77, 0x86, + 0x35, 0xd9, 0x4d, 0x2c, 0xa6, 0xcf, 0xb0, 0x73, 0x46, 0xd8, 0x30, 0x24, 0x91, 0x19, 0xef, 0xf3, + 0x11, 0x33, 0x19, 0xf9, 0xde, 0x54, 0xd1, 0xdf, 0x41, 0xbd, 0x25, 0xd1, 0x24, 0xa0, 0x0e, 0x9b, + 0x89, 0x52, 0xd4, 0x5b, 0xdb, 0x52, 0x26, 0x1f, 0x52, 0x5b, 0x9f, 0xdc, 0x12, 0x17, 0xcf, 0xb9, + 0xfa, 0x5b, 0x68, 0x2e, 0x3d, 0x9f, 0x5f, 0x33, 0xde, 0x0d, 0xca, 0x57, 0x77, 0x83, 0xbe, 0x05, + 0x9b, 0x7c, 0x1b, 0x76, 0x7d, 0x2b, 0xb0, 0x1d, 0xff, 0x3a, 0xc9, 0x5c, 0xff, 0x37, 0x34, 0x16, + 0x61, 0x1e, 0xf0, 0x1f, 0x50, 0x23, 0x09, 0x30, 0xaf, 0x59, 0xbd, 0xf5, 0x40, 0x5e, 0x13, 0x89, + 0x9d, 0xf7, 0x2c, 0xae, 0xa6, 0x6c, 0x5e, 0xaa, 0xc3, 0x33, 0x80, 0x79, 0x07, 0xa0, 0x0a, 0x94, + 0x46, 0x97, 0xed, 0x76, 0x77, 0x34, 0xd2, 0x72, 0x68, 0x1b, 0xb6, 0x06, 0x43, 0x63, 0x74, 0x79, + 0x32, 0x6a, 0xe3, 0xde, 0xc5, 0xb8, 0x37, 0x1c, 0x18, 0xdd, 0xc1, 0x18, 0xff, 0x4f, 0x53, 0x50, + 0x03, 0x6a, 0x97, 0x83, 0x77, 0x83, 0xe1, 0x7f, 0x06, 0x46, 0x17, 0xe3, 0x21, 0xd6, 0xf2, 0x87, + 0x2d, 0xa8, 0x2f, 0x16, 0x04, 0x01, 0xac, 0x77, 0xba, 0xe3, 0xe3, 0x5e, 0x5f, 0xcb, 0x21, 0x15, + 0xd6, 0xc6, 0x5d, 0x3c, 0xea, 0x6a, 0x0a, 0x7f, 0x3c, 0xc1, 0xbd, 0xee, 0xa9, 0x96, 0x3f, 0x3c, + 0x86, 0xaa, 0x9c, 0x1a, 0xaa, 0x81, 0x7a, 0x39, 0xe8, 0x74, 0x4f, 0x7b, 0x83, 0x6e, 0x47, 0xcb, + 0xa1, 0x12, 0x14, 0xfe, 0xfb, 0xbe, 0xaf, 0x29, 0x1c, 0xff, 0xd7, 0x68, 0x38, 0x30, 0x7a, 0xdd, + 0xf1, 0xa9, 0x96, 0xe7, 0x81, 0x2f, 0xf0, 0x70, 0x3c, 0x7c, 0xa5, 0x15, 0x0e, 0x5f, 0x83, 0x76, + 0xf7, 0xeb, 0x08, 0xd5, 0x01, 0xfa, 0xc3, 0xc1, 0x99, 0xd1, 0xef, 0x7d, 0x10, 0x71, 0x2a, 0x50, + 0x1a, 0x0e, 0xba, 0xc6, 0xf0, 0xf4, 0x54, 0x53, 0x50, 0x19, 0x8a, 0x17, 0xc3, 0x7e, 0x5f, 0xcb, + 0xb7, 0x7e, 0x2b, 0xc0, 0xe6, 0xfc, 0xeb, 0x63, 0x9c, 0x56, 0x0b, 0x8d, 0x00, 0x65, 0xa5, 0x4b, + 0x62, 0x4f, 0x08, 0xfa, 0xf3, 0xca, 0x1e, 0x14, 0xda, 0xec, 0xc8, 0x9d, 0xb1, 0xf8, 0x4d, 0xa3, + 0xe7, 0x5e, 0x2a, 0xc8, 0x81, 0x87, 0x96, 0x98, 0xcd, 0xf1, 0x9d, 0xd0, 0x22, 0x08, 0xfa, 0x8b, + 0xfc, 0x1b, 0x60, 0xd5, 0x7f, 0x82, 0x1d, 0xfd, 0x1b, 0xac, 0xd0, 0x9d, 0xe9, 0x39, 0x64, 0xc1, + 0xf6, 0x35, 0x61, 0x4b, 0xcf, 0xa1, 0x48, 0x0e, 0xb1, 0x62, 0x96, 0x77, 0xf6, 0xbe, 0xca, 0x89, + 0x0f, 0x71, 0x61, 0x57, 0x3e, 0xe4, 0x6e, 0xaf, 0xa3, 0x27, 0x8b, 0x31, 0x56, 0xcc, 0xe2, 0xce, + 0xfe, 0xb7, 0x68, 0xf1, 0x69, 0x18, 0x34, 0xfe, 0xdd, 0x2e, 0xf5, 0x3e, 0x5d, 0x10, 0x64, 0xc9, + 0xb0, 0xec, 0xec, 0xae, 0xb4, 0x8b, 0x98, 0x93, 0x75, 0xf1, 0x2b, 0xf4, 0xd5, 0xef, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x8d, 0x33, 0xda, 0x09, 0x98, 0x0e, 0x00, 0x00, +} diff --git a/telemetry/telemetry.proto b/telemetry/telemetry.proto new file mode 100644 index 0000000..45101c9 --- /dev/null +++ b/telemetry/telemetry.proto @@ -0,0 +1,366 @@ +// +// Copyrights (c) 2016, Juniper Networks, Inc. +// All rights reserved. +// + +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// +// Nitin Kumar 04/07/2016 +// Abbas Sakarwala 04/07/2016 +// +// This file defines the Openconfig Telemetry RPC APIs (for gRPC). +// +// https://github.com/openconfig/public/blob/master/release/models/rpc/openconfig-rpc-api.yang +// +// Version 1.0 +// + +syntax = "proto3"; + +package telemetry; + +// Interface exported by Agent +service OpenConfigTelemetry { + // Request an inline subscription for data at the specified path. + // The device should send telemetry data back on the same + // connection as the subscription request. + rpc telemetrySubscribe(SubscriptionRequest) returns (stream OpenConfigData) {} + + // Terminates and removes an exisiting telemetry subscription + rpc cancelTelemetrySubscription(CancelSubscriptionRequest) returns (CancelSubscriptionReply) {} + + // Get the list of current telemetry subscriptions from the + // target. This command returns a list of existing subscriptions + // not including those that are established via configuration. + rpc getTelemetrySubscriptions(GetSubscriptionsRequest) returns (GetSubscriptionsReply) {} + + // Get Telemetry Agent Operational States + rpc getTelemetryOperationalState(GetOperationalStateRequest) returns (GetOperationalStateReply) {} + + // Return the set of data encodings supported by the device for + // telemetry data + rpc getDataEncodings(DataEncodingRequest) returns (DataEncodingReply) {} +} + +// Message sent for a telemetry subscription request +message SubscriptionRequest { + // Data associated with a telemetry subscription + SubscriptionInput input = 1; + + // List of data models paths and filters + // which are used in a telemetry operation. + repeated Path path_list = 2; + + // The below configuration is not defined in Openconfig RPC. + // It is a proposed extension to configure additional + // subscription request features. + SubscriptionAdditionalConfig additional_config = 3; +} + +// Data associated with a telemetry subscription +message SubscriptionInput { + // List of optional collector endpoints to send data for + // this subscription. + // If no collector destinations are specified, the collector + // destination is assumed to be the requester on the rpc channel. + repeated Collector collector_list = 1; +} + +// Collector endpoints to send data specified as an ip+port combination. +message Collector { + // IP address of collector endpoint + string address = 1; + + // Transport protocol port number for the collector destination. + uint32 port = 2; +} + +// Data model path +message Path { + // Data model path of interest + // Path specification for elements of OpenConfig data models + string path = 1; + + // Regular expression to be used in filtering state leaves + string filter = 2; + + // If this is set to true, the target device will only send + // updates to the collector upon a change in data value + bool suppress_unchanged = 3; + + // Maximum time in ms the target device may go without sending + // a message to the collector. If this time expires with + // suppress-unchanged set, the target device must send an update + // message regardless if the data values have changed. + uint32 max_silent_interval = 4; + + // Time in ms between collection and transmission of the + // specified data to the collector platform. The target device + // will sample the corresponding data (e.g,. a counter) and + // immediately send to the collector destination. + // + // If sample-frequency is set to 0, then the network device + // must emit an update upon every datum change. + uint32 sample_frequency = 5; + + // EOM needed for each walk cycle of this path? + // For periodic sensor, applicable for each complete reap + // For event sensor, applicable when initial dump is over + // (same as EOS) + // This feature is not implemented currently. + bool need_eom = 6; + + // To denote if the path is from OC, IETF + // or some other standards + string origin = 100; + + // Allow the target to decide if the updates need to be sent + // periodically or on-change for the leaves under this path. + // If this is set to true and sample_frequency is non-zero, + // then whichever leaves support on-change will be + // streamed on change and other leaves will be streamed + // at the cadence requested as per sample_frequency. + // If this is set to true and sample_frequency is zero, + // then it will be considered as on-change only. + // If this is set to false, then the streaming will be + // will be periodic if sample_frequency is non-zero + // and will be on-change if sample_frequency is zero. + bool target_defined = 101; +} + +// Configure subscription request additional features. +message SubscriptionAdditionalConfig { + // limit the number of records sent in the stream + int32 limit_records = 1; + + // limit the time the stream remains open + int32 limit_time_seconds = 2; + + // EOS needed for this subscription? + bool need_eos = 3; + + // Subscription mode (long-lived, one_off or poll) + SubscriptionMode mode = 4; +} + +// Reply to inline subscription for data at the specified path is done in +// two-folds. +// 1. Reply data message sent out using out-of-band channel. +// 2. Telemetry data send back on the same connection as the +// subscription request. + +// 1. Reply data message sent out using out-of-band channel. +message SubscriptionReply { + // Response message to a telemetry subscription creation or + // get request. + SubscriptionResponse response = 1; + + // List of data models paths and filters + // which are used in a telemetry operation. + repeated Path path_list = 2; +} + +// Response message to a telemetry subscription creation or get request. +message SubscriptionResponse { + // Unique id for the subscription on the device. This is + // generated by the device and returned in a subscription + // request or when listing existing subscriptions + uint32 subscription_id = 1; +} + +// 2. Telemetry data send back on the same connection as the +// subscription request. +message OpenConfigData { + // router name:export IP address + string system_id = 1; + + // line card / RE (slot number) + uint32 component_id = 2; + + // PFE (if applicable) + uint32 sub_component_id = 3; + + // Path specification for elements of OpenConfig data models + string path = 4; + + // Sequence number, monotonically increasing for each + // system_id, component_id, sub_component_id + path. + uint64 sequence_number = 5; + + // timestamp (milliseconds since epoch) + uint64 timestamp = 6; + + // List of key-value pairs + repeated KeyValue kv = 7; + + // For delete. If filled, it indicates delete + repeated Delete delete = 8; + + // If filled, it indicates end of marker for the + // respective path in the list. + repeated Eom eom = 9; + + // If filled, it indicates end of sync for complete subscription + bool sync_response = 10; +} + +// Simple Key-value, where value could be one of scalar types +message KeyValue { + // Key + string key = 1; + + // One of possible values + oneof value { + double double_value = 5; + int64 int_value = 6; + uint64 uint_value = 7; + sint64 sint_value = 8; + bool bool_value = 9; + string str_value = 10; + bytes bytes_value = 11; + float float_value = 12; + ScalarArray leaflist_value = 13; + } +} + +message TypedValue { + // Scalararray representation + oneof value { + double leaflist_double_value = 1; + int64 leaflist_int_value = 2; + uint64 leaflist_uint_value = 3; + sint64 leaflist_sint_value = 4; + bool leaflist_bool_value = 5; + string leaflist_str_value = 6; + bytes leaflist_bytes_value = 7; + float leaflist_float_value = 8; + } +} + +message ScalarArray { + repeated TypedValue element = 1; +} + + +// Message indicating delete for a particular path +message Delete { + string path = 1; +} + +// Message indicating EOM for a particular path +message Eom { + string path = 1; +} + +// Message sent for a telemetry subscription cancellation request +message CancelSubscriptionRequest { + // Subscription identifier as returned by the device when + // subscription was requested + uint32 subscription_id = 1; +} + +// Reply to telemetry subscription cancellation request +message CancelSubscriptionReply { + // Return code + ReturnCode code = 1; + + // Return code string + string code_str = 2; +}; + +// Result of the operation +enum ReturnCode { + SUCCESS = 0; + NO_SUBSCRIPTION_ENTRY = 1; + UNKNOWN_ERROR = 2; +} + +// Message sent for a telemetry get request +message GetSubscriptionsRequest { + // Subscription identifier as returned by the device when + // subscription was requested + // --- or --- + // 0xFFFFFFFF for all subscription identifiers + uint32 subscription_id = 1; +} + +// Reply to telemetry subscription get request +message GetSubscriptionsReply { + // List of current telemetry subscriptions + repeated SubscriptionReply subscription_list = 1; +} + +// Message sent for telemetry agent operational states request +message GetOperationalStateRequest { + // Per-subscription_id level operational state can be requested. + // + // Subscription identifier as returned by the device when + // subscription was requested + // --- or --- + // 0xFFFFFFFF for all subscription identifiers including agent-level + // operational stats + // --- or --- + // If subscription_id is not present then sent only agent-level + // operational stats + uint32 subscription_id = 1; + + // Control verbosity of the output + VerbosityLevel verbosity = 2; +} + +// Verbosity Level +enum VerbosityLevel { + DETAIL = 0; + TERSE = 1; + BRIEF = 2; +} + +// Reply to telemetry agent operational states request +message GetOperationalStateReply { + // List of key-value pairs where + // key = operational state definition + // value = operational state value + repeated KeyValue kv = 1; +} + +// Message sent for a data encoding request +message DataEncodingRequest { +} + +// Reply to data encodings supported request +message DataEncodingReply { + repeated EncodingType encoding_list = 1; +} + +// Encoding Type Supported +enum EncodingType { + UNDEFINED = 0; + XML = 1; + JSON_IETF = 2; + PROTO3 = 3; +} + +// Subscription modes supported +enum SubscriptionMode { + LONG_LIVED = 0; + ONE_OFF = 1; + POLL = 2; +} \ No newline at end of file diff --git a/tests/data/README.md b/tests/data/README.md new file mode 100644 index 0000000..c4c695f --- /dev/null +++ b/tests/data/README.md @@ -0,0 +1,29 @@ +## How to generate test data + + +``` +$ cd $GOPATH/src/github.com/Juniper/jtimon +$ ./jtimon-darwin-amd64 --config tests/data/cisco-ios-xr/config/xr-all.json --generate-test-data +$ ./jtimon-darwin-amd64 --config tests/data/cisco-ios-xr/config/xr-wdsysmon.json --generate-test-data + +$ ls tests/data/cisco-ios-xr/schema/ +bgp.json interfaces.json native-statsd-oper.json wdsysmon.json + +$ ls tests/data/cisco-ios-xr/config/ +xr-all.json xr-all.json.testexp xr-wdsysmon.json xr-wdsysmon.json.testexp xr-wdsysmon.json.testres +xr-all.json.testbytes xr-all.json.testmeta xr-wdsysmon.json.testbytes xr-wdsysmon.json.testmeta +``` + +- .json is JTIMON config file +- .testmeta is produced with --generate-test-data +- .testbytes is proto encoded messages from router for testing. Its produced with --generate-test-data +- .testexp is produced when you run with --generate-test-data to hold expected results +- .testres is produced on "make test" (basically when we run the test) + +There should be no diff between .testres and .testexp at all, otherwise test fails. + + +For Junos, use --no-per-packet-goroutines when generate test data. +``` +$ ./jtimon-darwin-amd64 --config tests/data/juniper-junos/config/interfaces.json --no-per-packet-goroutines --generate-test-data +``` diff --git a/tests/data/cisco-ios-xr/config/xr-all-influx.json b/tests/data/cisco-ios-xr/config/xr-all-influx.json new file mode 100644 index 0000000..10bd521 --- /dev/null +++ b/tests/data/cisco-ios-xr/config/xr-all-influx.json @@ -0,0 +1,31 @@ +{ + "host": "172.27.113.191", + "port": 32767, + "user": "admin", + "password": "admin", + "vendor": { + "name": "cisco-iosxr", + "remove-namespace": true, + "schema" : [{ + "path": "tests/data/cisco-ios-xr/schema/" + }] + }, + "cid": "1001", + "paths": [{ + "path": "SUB_JTIMON_ALL", + "freq": 10000 + }], + "influx" : { + "server": "127.0.0.1", + "port": 50052, + "dbname": "test-db", + "user": "influx", + "password": "influxdb", + "recreate": false, + "measurement": "test-m" + }, + "log": { + "file": "tests/data/cisco-ios-xr/config/xr-all-influx.log", + "verbose": false + } +} diff --git a/tests/data/cisco-ios-xr/config/xr-all-influx.json.testbytes b/tests/data/cisco-ios-xr/config/xr-all-influx.json.testbytes new file mode 100644 index 0000000000000000000000000000000000000000..79ddf411e1bfcfd4e787e0f5ae92a015cb3cea8a GIT binary patch literal 691818 zcmeEvdw5jUxp!s~$c8|G%^j--t*4gHk<27$R>FMXQGucVzFqz4j znLycpS!+F3t5!=}S}$$2A}Cr#M1|tP+Nwp5mnsN&sc@K|m(kUUbaqC4+o}Z@eP!k1rOTIHG=IsGh@9?KQ}J}F zGtm`l@9Le4{;QgI{g11^{KH=y{n-yx-=Bco=sv&MuQ&ulz1+=%{*XjcX05!sxQ zQ?<{@W3zBPkxqs54`$UZYFjyf!IH&oUtY9O`+__r+t=Hh&g9gNP+aL%+7rn{E}>>; zja{*P)yhQ|typyKibZW-)=uvC#1TuQ3(kucJ7Ip?vZe@}F!De9)IK$>0AO(>IikGlN}*+%D+{ie;0So z)5gjp`+CtwEnEKk;1{*8$)j=^C6z^BY3JwfGF~2?OvjaE2z}i0)Kfw2B)LAL_M~%a zKaXa-Tt|-Um)slBBJ%jIj1pHn`;sAemN^B!;H3N)OqM6~s%j>GK>v*`-_)K8$fK0b zL?{dYm(_L$WGVj+ZZ|gncPORwsIz98jqFPe03DR#C{Nveri^%Zv_g9 zwT4D6;SIQp^1yvj9+T)@(;VtcCE`jpr%jh@K_1XA)9U5XslJ|21_WHq&I@+qpVWPW z=Yie?1I1TI@k{K5fb=u-Kz~OK^g)x1Fo=aQx^GhGBrPNTciKEHXR=N+<#9^Ke;|-T zi4Er6YM}P5x)-8Y*zB-CukpA6gM(eYte>z$YGKGiL{eWk%ZUwOL)lvL{ ztn!0qusB=gvkbe1t@2r=t#Va2{z=Z_a1zBky-6k4na=dgji-Bh(oB2p)_wmEWLhnkIN5-*ZRYUNrfeReeEYSeqt~ z%BqoO58lA@y{2;rW8xy11=%c|+U3wXIyVwC#+B#mic? zFUmD&+F+VXqT|b#>^@!_J06gpHiPjt1;!y07$*}jreZKc zOA;xyp;gIrG_)ntIY4KtfzB7r=**zeF<%C=P7HCscdaWxR0UH$3ZE)8;W0p|g4rg9 zpus^Z2n0))FI=@`5kX)RLEu@p2-K0^THQFiQ3JC}WTDYK+L`odX<0Bvu9XS-fmf>--f9VRons!NpSS(xCJQGXn2XGH}!+1D_)Z zOacT#=PIk!(9(3STg|kmK@K!v9~bI@E^AoQ+CW_ie|PjH(OL)#gY)gnAqg0UO96&U zg3@zl82(JbaKr?|Ddcy~Krk#q05n8ldC`EDh6<=f#-t5jFw4g@{nS?DR4`f%Xr<8z zb9p@cVz(_H2EUp9}odfDvxptyKwvUjY?e#ymKM#eq~Nc+sgJ4OxfCDZUuAisE`KD-by$+q~Bu<_6+l2 zPo$MUZ~VjOa zGNOx$j4;$AWj&!veA8(PlM#941zjz>#O92xw}ZU=8N zQ-$BjZsKg$4*rwB3=JMk+$-k6yEJj(kfVtU56r~%dsp`|z-ZzK2!C`7LTM8hVK;FR z7bY%JMiaLIo47+}5L}wL2#bk}RKmnve5XE(J8T}FOA{9RtvIO&kH?Ew><)HgV1DCa&3q ziEA#SiMs)txOdDTxHNIiEGDkG5+?5AyYyMyyXN7!G;z)4FmcwKx)*O|6GsOBXSahl znYhC5WH)iPYb#*l(BQ$u{lz?ZmnN>+*~B#u%*6G3SNAf&XyOP6@3{q`w27O;ZsO*+ zFmZFrXyR@H69Ee93pOTD5q0*3&!E^9C2v!fJ2iT9LnkWxeMd)PmVY=d%&UD4G!g89^Q>{IL;A= zIUaDB;|7Ov&LOt~4nGV^-?|xPZ5T-!-wqaH$v-mj#Z|9 z-jrTm*@OF70=roG<1)bI+Msla8JFV}j{>JsagL`ETuvmReR{NFLo}0)L%s)uCy@X@ zi2ot+U9-(h+CWFWI9;r{{DyK+D&8MnkAnSRZt-n1CjHMXsEDN%(MAn?FJ$aznaBPG zdhB$#p9Kdx1Pa}-xO6nnS#Zw6*0bg}pS7T5*q?jp7^w&S1!I>5rAy5?yidsn_+cp7 zIEl!{l*ZZcvj-IPw<78k^jGQ&${`aNh?>}qLFqeYAg-j02Pg~$#B>701PTaZKK2b* zIEvi7a)L54_RoOyUuJwDK-$QFd)0)`OoGpJjL*`p9uzaBznR?{T?Hmr`;~!{H9~l) zl7hUl9*CT7Fo#byYA){UUPRn_YOsJvu~!1pcg+AiNdW+9U6g=KBLIxY0Kk~@VSgKp zaZfiJkI~dg{a@~Wc&w&iQtTfA=?e1z-=qfkN7DcSJUxW%Bs{>ykO!G;XlZCoXCM$9 zM%xOJ_eu4e+Gb<8C!2>mzCbA?;@9mh-9rFOqX)vD*nbc-{8pGOp!nx0u?<1#O7r+H zqb$HDrtw3Jy*~b#c>MYB&R&BjQ7Es{(UVAN4;v6Pn;|$Yf0Y%A26XX!baBH4OHnw# z+pj7UG}90?-{T4m*#EDs@Cwa}Xy|JzTtkDus!Y(#h+Q9)t~NvST}o>HVUik%%GV#| zDaE8_Nvn>{BZk;m6HJPV4O~sYVfnH$q4PN;IM0hS|PYaoP>a%j3EwccUZXksv zrD~5Eu$*nyrqk)k7rv@N&o3~p&6{9X-{T&U|3j?Isr_4-1@l|ak1m|49zu^;K0g-;*%LfaAX=9GUGU4AYv618WDOrnin99l2+{I#b+EWSxN5s2+z_l z1B|+_)d6zO_@Z-r62L#1PRPs7&ZYjWns*!IeEn3vM-;!r9tcXC%&2dqQ2!~QZrngK zLiC*`Fz*KBlc^`3=nSbS`vbzl=jQ*=o-iH_kbo3V_o1Je)h5d0AeXkKF%tgIP-h0x zzO(bHw5jq$_^?NbhkBL1tXeoQMV8?}T2BtssLvlP951?LVX&v1@Cj-R6gJ zyt*)_{A)G+FpRZ_Pgr*stoj7r~MNWFp~_ygF)|%htisbp>=4oJVvKyz0yKo zc2;mz6jI&m;E87Fk0iOeC)d~VMjbksgskyUyjw|isV$d%v|Jl!wm?_ZKao~IFNA@QWSWYZYH^?Xrd2uU;G)%Tj!=Lxpx|4;g57s)! z!u>VU9qWLT1sH83-2V6-Uj*er^p^xQ{F&p29o4j-)t#AxB!^Kv~G*{ROUlttEf%g)&= z8^d!WjdPnDW57i=OY*>YyXZ`IFe5w1J4nuhHPX{&$+?Y^oa>n+=WUzhyl9o2(Wp!g z5|YOQ+CzrXp+6l`vh&`PNZV-HIrvEJaFU&8BzLm&oa8J!&sRcrwgjDI2R^$vKcK+ZbJKw62_M2trU2697zYMdNh<2Z0NCss_`@|lH*~>jN|J2j`^UlA5 ziqR(I=F_-X5HwfR=eK2MA9@~(7i6Z%Y1VE)$a=|iTEfA8+*2dHVwQoQQQY$b2JVSy zf3k7Ub5`!5CMfqC5<`8+(|Xv~L5@=MD_UysI)lu4jdh0czMtif<80TE4cltTS!Sw; zMDm*L;u%Y1ZX>LH9Au`-oy=4@$jrBEq{C*J`3q$?Knf_gMDdkylU9%dS9W8PWhGp* zaQTJHV0fmrF#fRL)$q}e9c;&Nm4XtMV*pZcd5v_`ECnA@Qt$?Y6f|qUHf+J5Nx@H? zd?MRuTVPtj9J~TCElnXe^g9Wi;^YmvzBbPlF6}`bXL~?Pg2M_1Rwgz_h!crSaWDus z1f{pkqHqP}r~D^uD;O(T@FC!Bg;7h=>E3p5l{acH8=gmF6U?+|&89nZYn6BuJS&>4lrFwSj~E1!)XO>-H5Q*z z@euyo|G`M{co4V4gTQx-;+GiAe}8}<1cZU;52E-iw^4hRQg*TT$enhq-gmNVy-6sD@A`1x&*}{ek_2=xk z67N=L>!}CvbTVuFHFq@R70d~R!=c7==G_6i0{^4`lqi0Q-5HejVv$=yMD8@X-q_K> z9grqECFh(dkIjD>K5GnWp=k7++DqALS*~wi2VMW5Ya?z?i8Et*VH+J1H|S3xLjs?P z+Fim~kh_pSi+lo2i1J_CG7VxA>h%nY4kf4HUXcHF=)+e>;K(89qZ!fEWoh#miRe9Z|F)pnWJ(aIm!xq=}%Em!_g9ootn%dfi4XUA1H-ZuB}B z(o_kYcu3RW+NMgN#6z0Sx@h=I6Xf3$t()t{HdWAaS3-(*K_?h&xt9}kPPbX^Dg9*B zmN4UosYw(VTgxQsxeYhJCP9Me`1};fm|h(`vQJNhrRGw9y!Y?B11R1qf3iNG+IDXk zwRJRRR807hR5t2256jwZunb!?sDb_)4$1(v-6mh z(`P(Tkgs!@p_*i!s8-Kk5!ImLml14hH~&B1zyA|w^Z)YY`(#);(@W_$4xDW>{)aXP zxEueIn2di_4D8rpZ{*qR*EJBx8G($IFPowNv&CuSmjw}bIr9Zy@|826@Ff9_l`osY zmu*qb!Si@A&HIVh-8%2jS37by@2`s8Vc0QNzHA1Pu|TEsC6wth_;QkMx%B*FL4er4 zSlT%PrN~iBrKhTGe&@Q9METb18_Vi<1_SmdZ$#PTW1=LGu@YsIuZfbcocV$%`O2A3 zh?0QDN|a50BTAU?zv0dFM@pIg7bwP@Xk*OxtI=vM?=UpHi&nmb)2#cnBTDjRx%X)c zps^bNh_8)5UrFSq zHP~!^yy7?_gAyK}*@_D^pl8gb*!9j*z};8-KDvC=1o&Cm47U*3E{ zpZw*`C-g~xW2H~5sQ#kQ?&CTaIM*F&=U8{hs2G$D^(5Lu`99pH;zL`Y_z?a*QT!5n zs8+i4mwIoAlZl&os%`Ia1nwvDgIYSb!|v>?g4hsig1l4xAZvx8ljIpx1x!JhfNJBy#JV4xT2@G}YdM z%2Q6KL3nT?g?_Qo`WhZXp;0>gLU?%i4Ag`jhJgTqZ$>@W6R9q8olz+Y4#H^h1&OXy zI#c-RaLD*Jr9GX=p*ulmb^^BX0}552`k_!y3Z8y(&z6Yx~v-Dr6vTn6Q>;BV+V4^6r=3AkS_qolHlTq3QH5T2y6 z2EIXQPb3k-ok^t&&hM|T4xpV?TKw@ zP-l=?q0U~^`AyF1{2N1^3q?n*#Q>=yWI~CB68o2vFV-tf4xE#Z9OKK$2Mi@{B%JKN z9@UN1EPI+mNWsoeAKY3E^BL<*`+*-lf9zFzc=nAiM_^`0M{$4a&})wd&{WDkX*Tl9 zs$k|(Y|{PGz73Pnl-7QWlJo8wG&v-*xcvND%)8OdT+F-6Iq&{J*YTO9=G_5^rY$n( z4#b}EtlQ1ndP=vQ!iAufu022(H4wHYcTTZ{HA73`QVM-?QH6#k!`{@nPN=h3M(d&6 zgS(8z>U?S`b-n_cb)Q^Jp&$KddF*M=D&3@s3AmVm`*#A4O9%{n0*1I#qP4v9mX(|1H(^C5I(Ry3<4XnA%b$a)_Twg|=u0||wXL;Ri zCYV}mNyA3mpl?YZ`{8Y{C0&xKuSQN(j+Z|-@J&AbPT$SWG zDdYHS{sJ zYxQ;qt^R{mtG5WP)}x}t{M#?{ZNS+|JSFD>+7+8(m#Z@#S|yeEE0uaPlaAi9H*XE_WGUzA;#c zFP|un!?DH2_i*YSt4)(9^{UEhX!5HEbfd1dqzf%9%&8;!fLz?T7F1b3mJeK^E<@4T z=!WEw`MR<4sCFgQu{P0>>jp)DDClHb>3}cKshKrOvSk$P64a3^(GfTYrpx%Zk@w@} zx{R7kkO1YDc1nCF*$u?e&qLV$1gtx>79N=n%Zu?g&F!z8Xkd^{1P1{|jzg=FI1-eu@dk9W zChUZ3TMRH?>kZ~60dt52=Igw{91$=x!MxrZ%wYkudzg;}r5|CKy={I8`|R3q0MtMB z3N_l15Kyx~{S&WHBR8>tng!~gdV?DK?gZ3sq3*t3$JyDT@^y|5l`b` zxeNR%_=iOC3(DKS0ZV|$+ZTEJx-U!Q50x{2hEBscI99ayDcKmz`uD0Lpafw zC^5S?QzZI|0z0C>j=sOA7slb6OT;D7*Q0KWL|?g%Y_E!XS^0uaqQH)~dRd$keLbqQ zNc4pQ75Q=D=b78T{y z7G6y4Qmfr1`g+!Ck?1S5T4?p4Yqh&XUyoWX5`D!!7B1uA-_R3YEX_I57xjH1TFsaQ zN-wBI-ag)^7Hynhdr!1+N~%i62*3s}Lyzapx=TGagSKe+!BXY+sf z@_n+UK=vC4&bArYk|^JL z9W|MDSS4|?`e4BB^G1|SJ|;>687omX`I;#C%9$^SlCPZkgeVDUtVG%5H==|I{|;}a zKT^u{zd$jjz3=J!)o5vwCqkoDsg*C`G%H_@D9M*N@TPoxSpbdI_(yzg{P{|nFN{Bd zjFX)C#P}1?SdD+gZ^nPKVf^Wzn_`40xAhrAJG zxD-*oLJ_6Cq41IY*NuSvEjv}-y1mxoh`nmZg*Hd*u0sQG#By3+-fv*XYRAH*`SKuz zo^0F4)E%IgBioi|*a8n{oR{c=4pq5D zxo$O+Qge;7(f`6{hM}%|iCwrCDbsKF$!@!8jH6F>?>Gx>q7$uMfZ-(1u`8TdbGrfF zDo^0~c0X>L0USrE8~(&u7J2gnd2TV}?R-y)>a)E$$O<8(@D)#RIq%PLS$Xa`bqKCJ zfkYqmN}{M>#(+q4{k0<&+7q2~65ZpKL{WVjzmq5dkDWvjczz~P{!-@)66G&%J|R&896O03 zMfD$v61dn&6v5?%L|wXbZ?LaKEAP$)$J$fgNEDZYDnX)yQP!an!N}lPBe1d3Cx*?> z^vPe|d_kZ5<;^GbNq}RePpqi^qR(!Om2-dFIM2dEiBwL_bSiO3Q13~!8)cSE)rane z>O=SkMez&jbNd`-E79kcN{}}fEE9GAMcsd1bqaa+xrI7~M1e(}LQ>r#-$$!Z??R|^ z3iU5JL7v)~QF=rfVSZ(VIoBzSLECDg&Z2E~FOpfI#Jx~ERP>&A@<|Ngw$((5Mce9Z zE|iZf*AuyGQ1FN#>JYB`4F(Rv@o|x4q2o?E&THO{yXbLgTkTP|McZo8wwkEDQ9=;( zUo^V)-stvJ`NXWLxhAHX0=!pzv>Z0pr#qg6=&0qIei?-F7LP1cW z%^n-)m7#65N0Jt8t3})DOj_vlY4S`nX(km|$;BBucyMi7?NOUW+iKCaTKKyYJ^cLL zyq3|>wwma)Xj`2lH4X#9H8wh)i3``*1Z9nqNJ74MGLc&s>P#wK`bJ2-&cPi@P6_3B z>a@!Sx9-|jd)8`{a6$LZbE*{jj0EAN)-DY1Jy~l@s(Vhdq^}=*q*gmgp3&2n%q8Mz zDwB6g8%5Qs(DC+6TIp~;9@J*YQ|#C4PVH)R%zmwYOlY+%v|6urFeJ6wUE6BUT8$#W zOKJ7fPFlU)L972@)#@!mt97%L>xQm_xun`*GiyK`5cSckWDt{BZ5|wibzWa;bt=6! z70UOZaXJn5?C>U)v29f^v>M=>EDuetcGtGrqgIQy)uL^+Xj}auRGS~TmyC1U>Tayk z&f(^(c!rzn%a9E8yfp=w-va^W&+GBzQT!5nHYn|P8DPFKSZKCZwz|aHGM9*gI!wvSUz$EEyB>~;Sl0ibVG;UYE{};c~rZS>R6lT$aMo> zOpwPWVTA!-4#E0slw`{&s8Ci%u0%)R9AH-b+sOOza$QDECdhKI<#-@=C@3Akm@>xv zZW@LNkE0RZed(7tVZ1jey@)Y(6^JQh*QM+p4N5O#Tv<2U8@1ah@tq`(vug0s&qK86 z1pFzjy+@{_;(#{I?XRF{V317&2LVPt2CI=c5|m!?26VF~?1XDu3^2dy4dx~RbBG1z z!`@(y2$-2*{$Fn}hXu^;VLld={)A!nw)-XQvuncvP`~CCYP2OGpk{&kb+1q(Ke2$C z1?o4vL5-bv0&2HVcfYCQ?Ceqbcb*=VE;XfQ5^?9u{jK0w!M`MmUr^@$yI2H7=Dx@h z)T1^<22nXPh{}+;PZXHZi%0LLI<<$>bIRJ+<)9J>72RO%5T`pD@mYGDg1(Vxk8hyv zP&__D_n+FYC-?3@KB7uQJ&E{;3hbnoA#C%0LpX>qEOc=y}b}b z0w2S1s7eoSlL>e#@NTp`5-wA7=*p?`#JG~lB;bCzjFQSGa*4G5b*{r9hH&OSQDXMp zi5qJR+n3WETG8$N^uevwfSomd@qr&bf9zFzXSEw&jzDfW-GJ>|hhBR$P%?^fX3;3d zm-cO#jHJQ?QH#ud5%L7e?^?%)VCKF@-4>bqB6DA4?jPb4@q{yoxMl8pRB4g9FEaN< zmhZsh7t4^j?@^;g=Dx_>7n%D!Vv@OL?t9c`k-0B2_eJJD&n#b#nfpYiy~Qrkj&G+N z-v`D!O1i#8zF16ZS=DtU*7Mc5krA6jG zpM5Oenfre(5@-GmE^+3$bWTam&X;+~8h@EG`0s^4bNo}H_$78{Q2G!DnlF)SR;%l> zQ1$>?7Laapp_J02&YHNit0%W8*WEaKMYM5tYjjoP?2_%k2cwheG>8m$E}K@i0t1}! z8r)8t6Dxq%t%iIpWRtH7c9I-h0i13LN*`lATtIL-!KR0!+7>Tc3A#5lw6FhY{PJlZ zNE1ORFHJ>J@@?B-9?~?pw&}AfO@3$!e7&J{bKTgc3R><;NYSpK^a-}y%LzKC+bs8# z^AcT9;s;Hl)J#gv=|;S?89y8-1RcXv$CCB)+=iQ9lOW`HytVS*yn{#fp^#%by!emz z{(W}Bc5fI(g6C(A;M8N7QPrbpQF}p_TE}`U=*}{UNT`>4nW35_kIma)yyUK)zapx=TGagS zKe+!BXY+sf@_n*p_xz0mXWNYbq0IsA#{VQH<6jj6JN9>Ph zxOINpN^LMa5KMfjXII$yvWgKhkTU`qD_=H4w=|2K)$5QgUA1K8@CJ>$ocV$;`O2A3 z_>zFe%9qVBo3?l9~aD_=H)#k4@B^W_1GFYTQqo_{O|5Zf0^J4Zl# z2fb8!su~q7Fs+m7N)qK;uWy8s!R7OOfdM=2jVPOZOq2vNR-$b3HBs`FGhYxTUpey$ zQ4-KtiL%LWLWwJFrHJwsiYO=Bi1Nt(>qfx-mYphZ-Ck>P#9p=I zLYpIY*P#J8VmWyg?>DexwPWGZe0h*UPqv|_J3wu-4Af4AUX}myk?r;}N>}e2teHlC z{Un0Oh0Ry$d_kH7GETzg6VfE0v65!khoniMVkOP6C(`^l0uH$RZ)7DL|7_oS#k+na-|5JC!H@dTIi{v4N; z=blrC;K~z7^m4BxiW2MxM561j9qCA-Z(G-%=tL`t!bwAbLi4x%0Nfarn|45X;#ZICKE+3NU6<$dc)wA$Bi4ySGNfd$SXAhz0S8#;$G+^COXeM)p;1gU2cgIi!Qg>LW60&-j(Qb zE4ti%#=G2l)NRq_R`l=?%V<{-UnM7`#(?M9}^`%y)(rZ&8qfolTJ-~!voyC3d;I8$;;av%bx66K*?z-H1)@l?0 zUP`NQoZRzKn|2K>(EL z7)-m?D!sj63*lop4q4dnHkp8EA$T`h9toGJIdtVzd1742WD;<{Tt-P{6S+iM|2k;D zqpX2%fX+fmWH&pLN*A2pUkjgsd&*pDwYx629<^F@xfNY*MVH&5+2wY<9?b0=ZN8FY zw0Vb;Q$iUfr<$7E-UspJ_!mU+OYGU8w83S3`Nm+O)mquA5^K}sNxiDFI)o>w#xUkp zX+Ry+5j?fkhX}`}%aiqE`PF%T^l%7Gn$Zo(A@g-(Xq__6DV&VoY7d2nt+X;(9bF z-GFgr58Jw(65dJjIIDCW{XEPG96I$KnU2cV*`%t!QkQ{27T+OCAImIkl_; zd?YB{j~+NkHuy>O(>4P7F0; z?x(=mEymq<=>R)BRKCv9q0*(M)J!7ooVULn{3`f|MDYvC+y51Q^dfIx(NmoK~J|==8QXQ~2JG6r#hH&0KQDXKDpc`uoyO+}( z`q1tC^uevw5J+N;UVPw3&mVi$-d63#mm?7VN_SuT)}hxP4U~*woLQ8mU)r}}GEyH8 zL@o06MHnO4-a!v|;+1gljIm&5)oqctFY@+9-u}?c+xJM0$sRG>Pc6sc-#BfiJl*j$(jsqPR{UMjP?~$KH z-oD7&7kT?bG;g2iw72ju+VMTv!AJ63!TD_F!e zR*jDJvxg<}_JwP#60R|qxqw$AuW^y7_tk;ebH==zU8_ajeicgMAsHW;v|hDZY-)i* zz!n}xCDD~iX9^_;;E+)zKxt2B^b}i2jUs6F`*#-!Gry2an0dZvQ+9U#FH`FN{Sab~e?%0& z#O@4A58@E>C34MbbzN3F4b@|V%=JzMoct-JN1ZisX;)8fQLejj_KIlZ?AGY2#@Qvi zfDc9k(`o&dU@2S9FlW35w*lwG3gC6CAzusGEWoh z#miQL?hOs?>pu>^eA)-nL{Q30Q&E(B+bx)fG!3q8`m9QmA9?{_Z)n|IH@2yQmb(&C zv@0k*f-U!Qg3jqS%RS}1L>JWdL6ayolTvfK5if1V4+je2#!zj}lJE1}hMQlLAlP`k zwLs^*gGctEU}HM4_>cGgeRlvpGbadbyElvq;^pUx;Ir$msGWmNuSapB*!M@*L#lNw zc7yILJ5)~!#I_pveU%wM-x~P44bV6V-SD^e+~v#Z+oBt!1?~^V2=5HK0+h+U^Z4PiZ{wFaR|Ed_+vB$lU zXR~&q6|^ynqZc$^v})Pn*7PiyjTd!|?b%f@yO5$YofheE!MwCrHCQ1SsD^WK2nkf0onJB%g9vV@SFLB6C z`S`K`8msY-_}cjMl{8-%e*zgNIrE9}C!nz!|A^m=|7OGZv#ydN{j8FT+x%^3I@w5oNd(QNBVE%`#9Q6?#?v%SX1`3n*Q^Z?I+>{Wa?d zA{RDasq+PC6393Sn@>oSfW}IiVIPtvfr^zh!=6a<vU+R28qWtB} zCnQRMV<%ChsQx2S0v9`pBDj1=qKCYaD5_-PcM>Jwv6CnQ&(9>vU+R28qWtB}CnQRM zV<%ChsQx2S0v9`pBDlPes7rV54fd62<=wg9So@PV62*mMN|5MqO{xIL8i9?KJ~3>5 zrceIz<_r4dFK<4fPXZh(ePTuR7kzdg)w#gAvF*QesW@cR3d)9h679~NZ6AQLL-?0O z@eAr~`zEF-(b<;Dj5l}369q>_X+mD533+$6{Y|a(4pv~%3R5ozTqtiLlsJVN8=N3d z?aYY!{ygjZA327S4Ec59IZ!LThn1MMU0$OmT4Ab2cUwW!f~a{BHOE$%A9&Mk(F#)( z`WLM*hh{6xkG-k1XoV?SVTx9mL$Vd-r`|MLw89jvFhwiOA=e7?pWd`tw89jvFomm( zr>l(DG8&rZU9$1$&;D_S#@;j!rN@a@n4%qzXvf2+9S_%5m{)k!Y80AXN~@odAn?pu z=it33Yi;Q_&qi6pcuNFszglS&tS++SaSfv>4u zYPGvom{)n#Y7{G4N~@oC((3IFTKxyBR&NnnU4_h=(CSR4Pv0GfM&qO#Mtfgpr9P&(8s~YAQFcN`u)Ru0uxNgVF8jOXd=BC7ZKNE8%=N-kwP-9sL~# zgKoc`+#8PBuO-J|9!iXT2WcxWBFTDTw=TT~R2Orlh$K^TN+`$EJ@)2nTqDW4f2ixS zbDa4yE^+1^2!o80Q%wzRAB4zq{M}Lf5_>i%{RA79l9A;bgN62LWvfK2O_L|}s>!V0keCUj|HXMFwEX|v4wqhZ8!kx&0e8KTZ;l}7O3y=3N_mA5m2*0eU~?=u@hcE z?H1~8jI*;VWfd1!N|%~aGl{r!uKo`2sNkOv#V;sV|6cs;OL|ma5Mwn#5wcY002>=YC7`>LqK3X1ox>owFH?T zKbPL%tIhms-#t+)J?>4TMd=Mudc)tPH~8xGDe{Sq!{eXwbGN` zv{{ti5T!Rn=?#=yz*nnhmeT4VH0&y()WH~(-gp}8w6~xo+VMSE9-q(u$(xmV4~%z6 z(m#B(-j<}lbG#)lZ(XoE=g;3zF$QO!}H8QxY zA=yjpVfCM+&r7FWCh1=jD9+T^1dvug=T)mk>5VFszJmompDri@O~4HJYg22Gwfg?L z;#z%w9n$I-ylS;5y&<$ZkrEZ;2U)A1ZZEFYPq!njKIl!WMd=N}(taSMUI%^WdR4buGX9&HUn~bbUDyaroH;z#{ zdJ?G+x~?xfE4V5O>;5_zeun-?lB;`ieJ$_Qp@T_O8YJGWq`K6WpFOc0O~pIZY&?_b zMP-&|RcZGHWhtJ9@NPAeg`=b3_UU*IN;AzvZiVskXo#iCe}a4n`qVu{xdB$gsd@=E zxRUY!ppS#3O`P@g>ip-H^8@7WrdoK&)dv*<;O<5^7i9mVUuC>MMIMdEnN*d`tVxl^ za7!p02{oR*vN1e2(m1!dF$QiE$b}B|rAV<9^z*=(qOVLs9f>TIpz6TmKuOT%^K@Sd z@?cOW#xAds{(%J{;!+Ss=LO;MfVPK{gog}CpwAdmqJYXknneNCd>lri0L3p|iGp7H z(m@oyeVblymsu3H1WSnmoH3+C0o4vPivlVXIE+LADki!T1-)RRRTOHa|I#HPc5#h# z4VDRaJQ1O3;1S9?+;3P1ib!}$#2YrAcw&zOPyCAJ32cuEPw3THD3-{Rfjf>sQS36h z+IBkm+`K11t-*(vS0h+?fC4 z7x_PK)&J<;sJ}Q*aQHO6O~PCwo10xUk?z+p1H!)~ieFG7-5vT*gLtEw)#|#eHWhiV zVYYx~Ss{JqGh$g^GHEVFDyp1eho?xS1I_kD&_1t~QyCKJhysg5I-nU;rZ2w>A&M4? zqJ{lc3g@NHWk{qW>MRoJL=S5bNiZno{>zX^N0eA3(ovO*^+=)`5iK-2o)OVPZd-cr zB5Ie3bR{DIA(76bZi_@Z5hf%O>4s(^okx`xiFDL*TLk@ypg)|cTG*^L>bU_lC(Bdy z186rkoysLreQ0v8XUk)9=9)<7QKLm7ok*k;iFAY5!`fXUokwjJiF6{7P9)L|(L_3; z(;|^B2Ngb012Bze?z-Lba*c6Kr1PxRB9Ts{+=!GLekt!Rwc1@GooB5U ziF87%g;o!`R=Z22^QhG#kxnGiiA1^~*~7YfOOZHpnM$N<@9Le4{;Qg|3u3}=e;1{< zMDa`PijmS?`Ul!b5)=OMh(co9TO;IADK*j64fVLQ+AAYuDgRDukjLl$4k;ZS88w@o zH74A6X5*RRM)Y4qyDFH^iu;^AHVelgNlnjfQ)ksJYFjyf!IH&oUtY9O`+__r+t=F* z6~CbvcwFhljb9ULcGlPx%U7*jbkT}M=dM`P_GQ>q={kN~vAxTms_xJ3`&*WQV>-@^4k> z-^HEtAX#o?A7uAIb)@x=9sHv9HF;DnqolG3EbaXKT_A-gnT{*T5c;^~si%UFSY4k{ zd(t_zpGTv2&(x3Wm)slBBJ%jI3}gXx_9dZMJ0vB-7o3#;0$8Q?s*spS4&Z&9Z)#5k zIXw@=6wr!>MfAe2gFOO8> zxx^ZER!uI`r)sCjQg24>Oneg_%9sM&Edfo!kEkW6wL1L%+4&nzlt(Ka(9b)U$f_N) zMszC4tO^O0#)Bgtb^l7&1n0z!8PotWiS`gtsu27QiuDjE)^t)oEdv4Hdq8l)%_NTX#Eb*!dFM}3(~(&%xHbq^iN02L8d;%VExlGSdRf%`06NrK~@?6 zWlVQCTjjG1yM?XtS*5LVRrm2CBRq-XonFZM>r7{Q=El=Kz3CK8PO`u~kHaW8{aK&X z;g{GILFrEY17nmQQwsDJD3EajP-I;4VB`uVzPh0ikvgemFvnb8;9vCKe+^$-vF4of z8(QJJGfFa{sT~a$Br>@^CE2h7kxa&R!+NsI%7=~u!qq5Nc52h=r^sKt3 zIZfv@&R@_tXU;h=-;jDbyYPHLZe85gy1b$7-`Z9#TH1C-!{TMF+80Sh1$r)#hlETh zTE9HMt!;4|Oz(n;jxS%b`*>~actHA<8H~3nFbPKV}McxvrSx7qQOBb2n0))FI=@` z5kX)RLEvt;2-K0^S`7s+G%&kF78=c?ok@?DmIY(vn(0QxWnj+2<~fZE7PKy06e%eK zvj_mE^bf$2#mg48&R?+*W{0{ETr9;d4NCWz5qOW1fuklFfP8FS1||Ulp>vhhYG`R1 zl>uo_gB)nUJ}%S)UDmLqwSl@4{_f~Ys;B@!k=vI;5-<#x0t}Y~rF+dV{F#E`hzW*M z$nTtiV9@KJG(=%}(SX9a6i|zdNgKXkmXB%rsjbGTV6+<0N~00x@_6{gZd*PO)&mGH z1*C0e5cW_YJY)i4Ecvw~Q2Cce?H9(wm(Am?UN(C^tkv+)$jP+Kqr>BAyQg1J%HFXm z`z04|85#Q|Al+vk-Z5%;FPVmS0{O)g_2GqxArCFkCH)>_uxFSDdm^p;dE*~GFE8Ll zZ(5E=i*5a-WbpU99XzdwAmaJKFJ2g3v3#j^w=sIBM_v5d!GH3Xp}~W8KVTkw|Jn_{ z4c!WT4nKLvaz~962%k5Lz~p>kBy1Cw153g!kjKQuUERyTzYt^ZGzTJV7hS$$CE>cu z2?!6m1);Pp3R8sd(!_;bn7A;oqcJJs#`xII{|KA7on{bRnz%5Fi3`J2&lrVn&<4T8 z?ZzhV*XH55G;v`=%Q>1j>rKn?Xo-mHGjaXi)x8Wbnm7W&Znq$mHgOSl6Blt|;v!`#Sf zn7E7Y)Ms&zn1|=m#6`+s;;c7yFW#(E*h|Uaf9rPeCKFfqo$Mygc5MYr92z{BxZjxv z@6yCYoK0M0U?#5LySkSFMiWOsc+@QjrA=HDyNPRZVd9#~XySf~P2A&V5L}wLCKeOd zR0$Ke8=JV_n}_Gp#5I+}#943ZUc8x292xu*ZU=8NafRQ>ZsKg$R=~ue!Gno=(mZ&V zCa%fZ#5E1f#Pxeu_cFj};s^-;;}(R{Ca#&?#5KDxam{5kaW`NS_p})VmnN>6#l$sN z!o*#Cmp+So#ymWiCa$?0CeC_O_u|cL;>h5ibvt;Ii7Wh0b`xj2wgM&&4IWI~AIyVy zY2uolO*j6vAX4}=zW5L#S-&{9Saeu+Uizz>9T*g-hQ z1qkPq5rmBZ!gqqwK{E({rS|AvGwsnqX-IufAcQ;t=+LL)Z-t<=n5i9pmsaM;sy^aEQ3Up`1?LEf|MCa>Sv@ z0}f4Ya44te=Pr!HA&xjSd%&UD4G!g89^Q>{ILr};IUaDB;|7Ov&LOt~4nGV^|7*tK z+rdIC`9~(cm`eC!9O4T-e2J{0o-sIrJ(#QCo6^fGdvG61U>7TYTn4yY8WCXr2n}E6|uA;+Ngo=g^c|y^Vq*YkDU(pv*197K%pBJmyYH+3(i^Cde;2r zvlf&L`*SZHBlV!aVC=G>bj*yy`;=^eABK_*qwQDYZ1~v&3i?|Sbqe|`^#$dS2@FI{ z?8cz3m)Zk&Z7_#VHEJ&I>t00MdTOwM zNU>J}(pzQ#o}>VPv@S|OrV#+fV*p^x`LMqY#<-`OjmK!}r2a2=KRi}bFe&zrfb_O` zfNxR*{G(}r0G__wItdSOF-SqOp{1cUoq<4b7;P&=-Y3;>YMYJWo@^fO_yVPnh+nt2 zbPoYAjow=D#QuYz;kQEYKZ<{z659}z-ZhW^GRgvcVj4fh*z4n;iN~K0@9Z^r5{2^W zoeQ;x4G5ae5S*63$_hmTx_CZnd)RQnQWVbb_N&SS%`^nfpSeN<_Wx@uyh5`g8v5D_ z*U;dvDibs_V%G3&q!qh)@fin8R+4)@!n5?t0HbaUkaGeco!et{XQO-ILeAIkA?NG+ zf6;Tk@JsB0p!5s<10&~aBZc};0d?bEnh~P!G=X_HAfHS@=> zpwMy__uOk~jD-I))R}=sx~L25RCyvK*!C##P_NRLRSO58WfL4o>&amn^*QvLgU|m% zX>W&=bK^GnYAICC&**r>_V3X_(r$^N-4Dbj%o5F^r`)ablP;DKYW*1)&Yy@ijx`r)Jb{=c?XkkjM|@W3pcAom>DFqyG= zWDVyA!)L9GG|g>po;wGcM^3dj7~XTqj;+=9ZlY7LteJWdzx_&tG(MqQNPf3Q+GUoB zk0_aVlR+lJTA|_epvc5#r)JX+(lP;&|45f{v+0Z9y?-Q>SD+3Gr zP+r`4wGySJVX|Es{<^=`oh*F+AZoE|Z7q9$jr53F7H+L6tT}&DoCB&SR*Xzi`a9i>OKDo;_y0aU|ftMUhHq~Dt*=Qc`mu4j^*w{4R1 zqE&L}F6Nc!ZO$k=qPIEJomidA&U5T-4zlx9C1eNMo;%1+*_)v=%8qD;PGrZi8Tz+s zr02}C^DZ@e`Co?FOGLYGaA&l8om!yZL(g97>DkLW{|d}b&s}al?K3-bacF{`wa;6~ zddW10O*qV2?x~UXn`Pi<6!-jqfqNp_pKRRooRxd13CjJ3#84kX(5Su~nq*oIB_nIV zpVBbkb{EC*Ev9#1w!DbgNH2K!{w&joBImx>GF=n;4({W#8`}z1byk@&+uWSs@ zjYQ@)!rI3{W=L6Edcxu)GgS^U^X(exC9}-@g|ZtU1(aK&_)54*D@cK>RnH`OjP9t` zYYz5hXVolRe&I40ULANhGUg8@xwNNmGitaVuafU-+BvjAdkQ(;VKE`KM~>O|uBV)W`@(c+4aMMg-5Y zzGSjdyWOyju=k-)j%1T|=!L8XtP;QS<8z)9;ryJt-_jql^R~k*dItt#5Hg)mo0r}L znr&D~*bRCDHXz>B?-s=`vD<^v2Uv!HBv-5Jvc>m&KBeLz{I~z}A-4zdBs>UwwM+o(NDDZAMFabEv?*7klrt(LB0k%F-HdrArlK6_U)UfHtl z39gEwNe#W~K_B(I=5h3!iQOL5(41ZYJMH{A@Aho2k*;HV`j(wRvA>g6I^s%}I4Fbt ztd6SlpO<-W5PM4+=QcOSAl6_Uh=pnP|A52l$o2lt9W~OA*<|H!l%)_mI`+_lAucV? zAYXySv^YtNbVWBOrH3#euH2>-Hi2Tlg^LM%p;~$vKlI5&3oN@T+bN4D zc32?6f^YB%p87`S^50?kjs94jcUZomClQ4fFK>giGH3w@nI(EmNVX${Jf(9BpCqy{ z)yoz(T&O>1$CY@uIvcVhbLn_GnKk~JJ37)Bo)Zd(LyhOm`ybd9c=LTdSqHzw?t~O6 z{R3?Y5xLXkdSgcicR-rxl$>*-JU0Jj_^dIgg`&}OYAkgp~srtGF zdTNIB0~zRPnU@vxA--jZe2nKO)|2rX+jcf*yb3+K1_Q5&6~OCOL%tTW$=777eAO(C zE@{&S1E;YS!0DEt^f#=B3kXgp*z|Bz+u~&_^)@Nm5YRrf(j08<18E{C<)x`8N+(-o zs9v{GOIIyfi5tBRhBQ?ICmzx?xVEVhDDjY{vo0F`(ggYUMC<0du}u}U+?9}`T|wy| z*m5r?=$vk|+*A6=s4Zc}4^xvUFt(OS)MX#s@|pw*qT};ZBx8ED>*zi`5tf=uZQO9> z!vPd;l|NaZPhE0f7`1gYW>if0)#KT>b&e#FtY`C#Dj!E`Jv$iNYT)-(X8e3>;O{m- z<0N#$-`aDRGe4OAO@^GE$E=(_BFA%>nMl|0GA_k7z}Pk{4FvUljv8cJT*#P$H`xYxe6J2;_`F z#>$t?(Er)uwDHS=h`XHmf-m{XnNRqVfX2#~%`ls`DCgjLyqMpti zUyUd|?=UpHi&nmb)2#cnBTDjRx%X)cps^bNh_8)5UrFSqHP~!^yy72M>zSs^OZVZkS2kQld$=OGzn;|q#5=hX%eVdNi*z;G(QeG zl4iSwG}qfnv%TV^xg#ijACqPq*|t2x7QQmWF?=O_X1KAj6mh;tnSQ%ZcH2#39DTBT z$606-ojAc_{NW_eu`8TdbGrfFDo^0~c0X>L0USrE8~(&u7J2gnd2TV}?R-y)>a)E$ z$O<8(@D)#RIq%PLS$Xa`bqKCJfkc1cl|&;0CDHZQqJ|ds#pm1BwI@2!N}_Pm5Fk+k z9y^I5@cc}o{H4wpB+6gjd_tlGICc_6it0ZSC2+BmD1ys}B)Y*Xi8cuml?Zt3B#OZE zGl}w-I$w||e|hr>i4x%0Nfarn|45X;#ZICKE-xhN(w%#QeI;6XcP=>AZt_N=5jXDK z;hHcFjx_=sD}7?v{7j$x<;@rL$zR@lLZ1XUR{F$>>M#22{+Z4N&UJ^{Io2IADh6dk zJ&E>EJl%&{MPyCIhn|AsLqFGlPZYnz9;%gY!(??baWhY~?LCgb{X~9HOXqgjot;$> z8)8k6cd8#`tuSh$KXIWYWFa7CJ@p zKl{`^HI)BcFQ}*|(~}eRnpfxp^Lf+d$r(VMR5vP=Rf1c?59xyLD~`utfVpm{8kI|` z9ZuJtAW!X8GKt(er-P@-Gff3Wq4Jc|X%HTqNTFY>W-{pv8Z119LZfte4-XHYfts+x zFwi;h&8X*kBGpB%GwMgdK^QH*AkmddX9_{_L_7rq)khU4HyhquWDJQa91S{@0PL3u0q z8~V=2l}si9_seCJR5pQnH=zUYB$YMr4N7|=i4g8gDqZlgy{^u+dQ~exJFCXisSfz+ zL@KU^aCfMrs$>j}gUe5rr{bbmi7cF)OQibHy>p2kwdL=xp)94-T<+)mp z!@qIbOnJKFX-Iy!!)P$7hzBcUM6)ZIL;5RqPqhy4|d;r*zvXTnJj}+5>b^ z17T}&=M+m=Gqe;grO+oARcL53>`k5PggT35bOn~tSe;KTrOrQuX5A+jQ|MoRw(J{NbDPUU?0LDqj5=M7SlrI?y4y@Jwb+ub#Fq52AKnIA(j}StC&+7DgsFcL zhz&%mQNBeft%m;CcCCKzNyN+Msw8@YY})I6@R8CkGVk+mq1Cvn7)Y-X`eDR*h(MEy z1e&WAx!YxTo*1JY^~0A5O~p^v#;tG7F7wcf~_*6J-ntM#ZTG5_|<{M)5gA80SG z)d$)Kpw&2xm)2@0KbZ&z72%+$xhOp+5aFQKaL}DULUV6!p6~8WMWW4Da*Q@Ny1JU; z%b$k$a{LRT_$BsiP}<@$zIPako?AJ4qgA)nF(~G)10(Kc%(s<7u$G7;n?ue%m1qvWegz zz{qiEH4;aH(!Jh*Zq|gIaBYhL=KH+C+$3NQvA}%4H<%*=W+s>)@CI{O!0aC8V?k*L zhS}TZm$1*S4F^E|Yp+nF9SH$73)ByJg&Mhu1=K81@Ad{Y_T34n-9p`saduAM|2jv9 zN|%~aGl{s7MQrk`JOh3e{6nJn1?BDk21|g*+o$?Mi2Naux36S#A>BQx=iBoNQ7%K? zK2cysC!W}M5g7;m%{UmsdHY12UHOZJ5(_2vuM!X8ynUj??3)uJZ(r2Q67{n9&%1dg z96;W_N8J{A`*I!GYZc}1^7YyLRxgX!GMaPVzDJc7dHYZaGGBd1RKJ6$D}PnL|^1oJpK(m;lN&kF!Lm2vS)L%d!f-- z8k&Sm^x7&oBy&oO8uGP}O};AFM{;ZhaJnTZJ%jad0m116 zTc<{~!KBqQ%<<>rsCW2C4nu?<2+or)hq-k(%(`Qwh{Lm8kdPD2xy0J|awA_`D zqFq7hd2G3t6Lj3S11n+14+jc0lb~m5`#PB88I${Ymwj-{YZCMdv-j%Vb#x!<6-L)m z+_>S&hXb~v=a<|UMr~E|6FKnJ+gqddYt!osyBl;t7F6z$p&miH|8+N(v)|B<5yK5;hx-??(1 zY$<#H#(}eK#{baf0C(emlB4lQv?4oI(2Ic`+wYA$o1v9o#XS&Ad`U$E(0p0N2pPy3 zfsB^8;s2vI z(;q2i`d^?J)86;={c5x{$rGW`s?^GtaGI4bN0j8te!YtPR!IajR^uP>wejaGX}&Q2 zeC5n1#-D)3YWyR9Gya>I3^MxY-Tb`ZI+`AVHHNRvRuN!WZsngldf z(hU2MGznC!q#5=^njeQ8NweKTn(OVP*h80uN`Lm*|2HRk=mE zZZ(rqbB(jn|H5a6p{{$0UAPx1({K05Zo6rWqfd74I16o}6Rll<;Uv$oE1Xz!y8+%R zPvH4>KW>`=97m}e{=``pdGiB#ZZYKTd{2t%v%NXU3L&KM6;E(E@6T~rc|spJtGBW8 zD^DQNH@%W5%CH|0iLSqPq$7#GZC!h!6Rji)Ck+7-CE&4>C<4#VB+6gvd_ki8<;^D~ zN`PZ0QKYE;BT)huJBcE=d`P12cqLI((8BK|O2A_$Q3Rf!NtD0T`GQ3G%bQO~lmN$0 zqDWEwN1_BSb`nK!c_C4k?%W&fE78ikbHTCpo;MQ3^#3|I2Rs@^DI1+NafT_rxJ$*^`1n#bD!Hk zK=mQ~gQEBa^|}2Rvz6#`O9hySKDVOJ?PsIU?QaYP7L74`QC0s!qO(w9p~Pk-9>R?= z2@8wHn9yB3ABw7He%7GfW>UH!-%?BHcrP>zXoG{zK- zF+-xD@Q0Arf0{fq%cJeqsq%^D`(UauO1icD@T29h6F1%QBt%Co&wjK#_OvnQW~FP< z7*jOH%oHjJiqZTw^X<=(%f*=~=5$ zgm$TRx6hzj=+?6B?>$*-%ffk1vgErSe56)8NuJTum&_&N$itX-N*h&}s?hQFOj_x1 zJ|5I&$W!ds>rU-zbj*IOeoSb!EVNork5<+wi6o?bClk4Kq0Xez<=7rzkhR)fV@%Il zjY39CY4y`iTD{#ttN&ot>McU6b+eW0hBjrnq}pLKYan7L$Wwcj43ask&4Yum&g)C9 zPNmnTLiwf@PN%`19cE(ezlICzg;oO!(2jgaYPGw@m>#uSG{zK-F~vR>pM5OOjWJ_S z8tdv1DKv1Jt@_NwrCmL!^i1RI7174ot1mt5^lbVXSjKX zl2bw%=y_{uZ~GhsnB$)i#V@gEgVH}-2AFRQ7MiVG5v^l%7Gm(dNK+UsazoRIGLDqpS#{;oLLFqWgl+k8y8iojuqY>VH>6bWR zyf-La{Nd4`{o@SHRa~`@U6-tyab=C2Y1D3~#CMWB&Z@ysm}rVT0e?zs@5j?n zaX_2q)>5J3^y$GtHW3^I7`Y6sM&d|Ny3`xc&6=_xn*_`u7MTCb8_W>_ zGZW0;^#*fT!0aC8V?pUk470b*Y+;{W8xDZ_dtRYNJB$Kq7O1cG3N_mH5m2*0{e5px zV_&?0+AY-G*XlSsC-DC}PmfBMno=`~xO3+I^Wa#)za)xZQ0D%Ru?UFFeQG5ql72-( zV0jV(|IXJ{8-vV!qQI^^Omt9$*l)pJ9<#E8j~3El?U7pGQ-x@&u7u)z45GM1I7B{? z7=R*GD<3&$R*OcnQ|QtF@!Vsi4wEBGjFUd>~~Ca=v}qvk{w&C0Xu8_ z;=2bA9DCK?is|iFA`k#ecWgTL>W7a8N=7lxEE>hQ=fH-^9`{s5=DrAd0_AtD3cc^Y^4YF3d%iQ;@)gp6WXtk)E z#c%%YlB?Zi?t9c~k-0BeT4e6?*~cnF=04GC#w<{JK`kQ5#H8C_lkTCKxxb-EocTAn z#F^*PIVCweU$rS~{AJ4E-wT1}_@_kiOYD}Q^a~tlzJOE+Il)#TWK`SYWh*l)AI)C*ZjqM6bw_wY?oS<{M&2mpU zFVO|1MNoMsHIq_vx)CpJ#t#PyvCC6z5z3c+aLa2FL@tlF77(1b>*zidxlBhXZ`^R@ z!vXkgO#WoO5Y#32g;79xo~^(E2w#&lXLevJcPJH8kAhC|#E!1)fXYTP)Paa?HSqf? zGk(4`@OK-aaT2=WZ|%9unIBC5CPU87V^&U|@jyYo&Si#bk~}tVgF`8$N1atYe??S# zwW#?&a`eC_&gTC+SMHN7oA7TOINN6Y4{Z)`H~uF%8h^T9EKLQnEm^s^b$;7QZ7(HqQ0L!PS<=~)1yzSl)g@sU(KOA_ zv)1wg&Nj)=Gh6JFjH*h@nJ@T~ublaWF9~R@eAx`MX^V2!ER8N{8@4KWhhfK9`LY?5 z-vX7+mj@{0Wp7CF{9{3Y*uGfWIRe5&X#4e4H41|;8L+yNMETb1sKltlDv6%~yUiO> zHu;z+31qB9+2m`YsAWFV+<`beMps^BVli!FECj6Vdnf^#A)Bgg+m=kT&{r9WU zEIUtxMs;{AU&3itz8q1KFZ=Z>a^lMZXspIR;%np2SJHf8{0U^7#A^s`DTZu7UD>1gxgmNn8t4K|w}uei;BFeq*DMwH=FMEMFul#^{l`S^kB zM!?RQohmnOueCU0ui9~;%@Mon&;T541BYo-yPsvpuW>>zSs^OZVZkS2kQld$=OGzn;|q#5=hX%eVdNi*z;G(QeGl4iSw zG}qfnv%TV^xg#jug-NrGY+IgT3tySx7`_rdGYs{lOGF~RNSS`SPj=f)V;p_5d&gO5 z6P-B0;*^DxJjbqZV$JOac&j{t=iB|bZ3b{0rEd5WXIbRU59GPUkhk+aDXP!*=I%7$ z`idvGocHIrtURIrl-1i<`IRS-=-pmP6y@m;h(y<4JJOLv-?pwj(TP?Pg_DK=i4ySG zNfd$SXAB@&-*YPEFq5E(`>tY6PI@N zpv?5f*(;)rvstX)MX;oHq2p@y!vh!L?%(D}Wc2&>(o_3$nPBuL|nn*ulrC zd%LcL&i!rMIo2IYq;hJeQ;DnDP*0-Wxy$W7C_aRLPZYnPF1P=Ut%T@uOT~Ga8()fA z!d;@<7N>4oW$1Fd8!NEra;w+*o+8VnYPC>e(W=^9&}ayExg|=>+6l8!6J2iAPzR~; zFNj(YHLs%o9J}0l)NRq_R`l=?^KMS_Zq8k9J*u?max1#riY~W9vdgVUjTT*QMVDLA z<#xz*x%H^cqRXx5ax1#r4$&^RM5jfU+gvuJ*KiM@d?@1V&bz>b`@0vG80j@ebIKFs zsht_2(>!(BW#_z~1fcu#^sE|Br#e7l6REfwA_X*%__q8c5PPmx@~qV;QG#x@Qyp{+&c1H zv-Ck&<@Kdjr_yUvp?m>or_;cM;UdpQlUb-K9nZvx=L^0C>c-$RgjPFs>EPw?cB$3w zy4-r!Y81I$N~@oC((3IFTKxyBR&NnnU4_h=&}z}UdbOG>m}_@kZar$X=yEH%+=?!@ zL$=E;(Q470V_y<2YdVukSCOtY1K-Gc^EK2w;xze0$7Qmy)H)9T z#%VK)t)}%;x*skQZN8FYw0Vb;Q$iUfr<$7Ez5wy%_!mU+OYGU8^gEaFJVO08pD`ZrOlA1P)F!WpH&*PaMq9IEku6wa2Z+yqZ^V#=Ih4FquP~J z$J#_kt{dcNf;={vRyyFzAy$8ll580Tbpq?imFNhZ1FK*B+sOOza$QDECWu6~91q0y z2BpUsLVg9VE^$2?lpe>pvPWUwP6_WMd7M?cpmfy~r;eE)PebJ+ZBkWBr6SM*6&z&o z9Y>4r?n}SqL4c8u+A6?Dg3=yuKsRffD4>UnmEZt#l{3swdV{%1z#MXIjzOBA@&~?=)cd?a zjorioYS&O73QGGi)QrA6fw5bRyD`Ad>HA;j=uqiWQ)(s=ch1}24}KN=L!$TvReG%eRbhl*)=j{_EX7?D2ynT_kk2a4) zaB?WeGdP)J-o8iO7J2(3Z(ro?56!%Nk18$l_C?;l$lD)yxDzI4ZsAU`Ck!_j>jYfn z?Tfs9k+(nO^7cLQv&h>QdHW*AcPK8SA;XvGw6}PYQn`Q+jCaWJJ$$s@mf^c|yd}eT z&&%~9!&l@2raFvL0T2OBLUG&sIy==&s1s5F`Z6lAtpJqi7$mf>ReF0NFB(3E0nnM?xim&+)rY$BIP>$`N5WtYhYy!NnMX85|x+xM*1 zB5%J6Mg5ZyaZU?3SQ(1c#U}APpo>ur-hz)wX!qN@yB6yHWFL`(S8;NKneRK`e@rZ@UHakfyDW;xt9}kPPbX^Dd#1+pr#1w z{;OtEYEC!erOo)^K%q#>6x%%UvJY-~O#+9veO9^a=)M}5SdONqj2kyx`EUR}Gfylp zxi5@->3NO<|2ce3(wx)LuNKy$i2(Ma=G|XVqGlc{7s*g$BevDR@2kxC`PRVSZGgr} z=!UzFe%9qVBo3@ZZ&C=+SHf=A(0#43iXSXsGHl$|%PA+B7^ZqL5 zd4Cn7>A%CUW2}7H4BupdO6SW16jJs^6wf~vgdc8SEbSZt0U|V5PgUC-@O34L@~ziV zY0>ieDu5{8^+uFUJ|;>687omX`I;#C%9$^SlCPZkgeVDUtVG%5H==|I|6jeC{zxg) z{{qFB6KxL0_p1@5+jf_&d^jLn;(A_#$Qc?LOIU zH;r-h$?hFzp-pt+1dH*9lPc}Q-fn=m$`g3L-H+R50LM}4hCgwZMc({Co?8rgJKvL{ z`fP9R&i~)uw}(kloq1393``9J0~A*=>VWHR!e>i&&!FRco9E#o8X}ht118&>{qodw z*UZ$?(>>eW1F`>dv+9?)X5$6@j1t{Qyg)E9gdG(WQH&_EiXmVCHGl^28Z|K*SHt(7 zI;W~nU8cLL=Jd=sb>vC9r*2*KtM`3>=e*~==x}}26I}M|b4+HQ(A>-HZ5;ZUCy?l0 zy^<)(&>s+quDfxxEs4Hko_nGL%_Is34FeJ-;JGJJ1fHKsl)cpXf<)QNn@>oT0Oy`W zk)ryKLoT z0Oy`Wk)ryKL{;8-KDxus7G zo1f{Ey}bE?KH1BgPw0~X=axRPqWX_Mufue(ggA1~v#jn-TH4u-GSkCzR>Z<{7RFW$ zlL8~t-6W$k3WEX1H$%Jz*N#mZ0=%Gv2Ej`!$l_4GhENa34L(j?|E?;beZ`?~GO0ME zr1NsNLrOp;v2LZ^zO(INC_9AjB!)jwXWJXGec+vKsR%D)U0_~6m{%HQRm!Xaoo&}) z1?HV?d1qVR*|ub7TUJW^`YDv`%dWB3p<3Zqti)~`YlREEvn}sz%RAd9rM!eY+p^Me zhn;N$ui;Gs|gp*=aO%w!IhY zH1BMi2Tuby7v=>}CKTzDnk20)i-mUi8kXAk^-OVEN0#d}OPyxg*>twt#lbbBqk z+MfGRGXisetq=CrTGHV53#Nqg!@FvEziQsu_H)qLmK9Sw)M{s)Z8v+>Y810wPOD$A z)9OAOt^T!Ht2cA4R-3EmyRw;lJ_Y^M&D9;D1q?7|kCa6VsWv;$6KD3OSEn;;(;>ZM zfz4qsFu|Q+a7RnHDioyVt@9vzV~|_tIn-)roo#>aO{;llTi)5$@11Q~vGn#^?_(Nz zvbR>)g0-4=w&hc4vfK=G%_GSMC6bJFXIrex_HpLRn8cZ@kv3Uq^k-;jdjulO@o&fQ zNBqU0(1#66*~s#HgT*$773-i;m@ZE4k)_okJTBEA1KMpv!)s~}9?gc(Bf`Ej#3|}N z%{HJoBeDyPlhFmqF5`LQ#JYAVom{IV^If1$6UA{UXvYmd4pI7Rq*O~C)CR04XQDlL zgpBWv{5?Ue&&nwU`bMTe7F$jS;s=7l!x&RX!M+?QN=cjwh#_8`E>J8c%=*Mq{N-hgf{+)n{L zQmh06m{Dsd8<=-^gSm;r9CB=qL7I1ZgE`7!b_Mej-e8V!n4QCXDk$v2Fne2J<@VXJ z;Q*+A>%b)JBIpLPhoOvVV$dg#G7vOTz#Ia&vW&U{aKAonrY0jPoc?TA|*>%eWnWov~$F1 z>W-w6gW?%^CEbexF7hZ(0hiujmaG3eZz|1m^?9y7&(()`ZzkHzG*|yMZyL>W^?9y7 z&(%kT>)7Ztqg?$H-n5zL>hoNEp4ZDVua{NHJIK|41M9T6ND|udZI{*i@C2Kz-s2}4 zELpwVCz!H&_q@`;vwFGv+ehwihxva$43w^_^TR+KwEA7ITFrCyt5Cc@2@WTvI{2a% zxPf2^52K=VrZd@MLNe^qbBLw(Og4`OJCH>|BIfn9;$jeeFV|`my>L#}p~tN)=lt>(GQ{**?I0QKm;u!@78f(us4%)y{6M#U^ia^sjSrz3uuRIm2JA zRr6kfFmn7uG5is)6@KvXiMu{KAHLj-zg$}*+@^jjL`aj!v&EXU)Gg1RdYRG*`RAxR zq?}F5dFTuY|00Dtag+knt#7v^3(r;;llLF17DwgskT_2t@CC6Ze`Sw6doqM$N+G2q zg#KzxMc1UHbR*Q67%L^am2?Q5*PELiTor?9UOha1mfj?Y)!q5tmUrvXPWSzd|xC$wo#Ls~e z&5g&Yu2EDxlsYi}-5TLXSP-HP1!0UP2+srxdnifRp-TdN#IOCswE&p9Vw|3JV#T-2An!GoSWWy)NP(f$HRnpBHi#zr1PlKJduuKaUS#s z1jc94US`oaJfCSIokxx4iF7=XjwjL$yF@yV+RPK_cp@E7q#LG*bVR3lA{}pfix?LM z&%BWyLILJc(i%xgk?ts!ca1p=&Ucnb=UJDoJc zTG9Wi=KT(0!k>8TBxJ$G@JIZ*(ZVz8hQeqP6aMk2Vq)9dqr|$jtaNrkC6Zj>)ls6L z{Z(ibCurY8QZkv9bGg}LBjF3e7evD7f6>DCgIZSH7sPQn*bhl+YHpi6yM9sI%J~bH zEN=VCqDu;YCr-`v_Vhrl6DWg{kb1CdLy>c{$E{etYUQGDtypyFibZW-fvENV4ji>K zw&1c@sRQP>Eo+Lx0i)GU3OSsi0byp~QW+zT#>N1?$3>wV?o{fObA`VVYfw-c3Q1eG zeC6Ux7cZQ@a`EzI_>5JtOXja!)KXpeq9|ysWJ(@cQ!&Jic4<<3lA zfq4F8s4J67s+EBMp$h$XRmVI?mK)s**?mwP_|xYPf2r^du`ZvL(m4cH;d1RNkiwJ7 zB&1XbZEkt~`5@FZYRJmnnY`T3t5I8Ls{7Sbei#6+?KS1bN@;rW1ACv_;H9QO+MQz7iNhf11XH`wGPu!S6JwR4z4-usb!FN!sqo7!K z?@$#Bf5dMN2piN5x?=rnpr}}DXyg=czkTSb;A5SY2B@gY`Oqh0l)RkNClW&}RheDGIEI z2MpF)3ar&8u>O$-Yndys8pQ@0tgLLo3O|(>iTXW&v|Ys{hCkxJ4G24oAU#civ~9p3 zT}gq|Z35|^XpmyAK$;~^&_Dupvlpqy)#vKkrG9up>m;Cs&yL{_q<_1OXno%FPesc{ zrk=rIJ?9y$Hvp`?>e(^;fvhtARw=7|p>DUZRlcyiRj%s#?-EaVHpM$VkoVV-$#%CU zGTl9yGz?C1z&&rmQ?7qpv^8sWkAyVrj6!ED-10Efe zDj03zq7scZQb8bCy8Mz=OBN9X?k5P`?-YT0aVWN%7F1prE1z7mpv zVYnJ#_)bvRWQ5^83WnDWFw7$NIRn9<)VO zs}apK!Z4P{k6-Gtl>=cNfbeoa*lYx04+X*w0|?{D-Ht-#U&4hS>n~q4K5zB1IrCwz zh98X_Ov^mlJ%P4+>IvoSom*x9&Q+U7$3F=O4;UZs6!my78y@dWa>tX@#|sfd9$KJE z`Y-f{J>U4SXVJ>98UM&-nt+$QXeC}Pw)Iz&hyS_Lho==0L|l9L#h1iZEMHo9P=9*6 zS6%wt!GH7DqK60Ve$e>v{cAV)HdHJ01^ni1%N>O&5dOv}0#mfYNZ2MU2bP3OAdiWI zt2&o~za_@rZVW`&F1CEdO2T#DB_RC5DG23lQG_CVhbAuKz{Ev>9rZyGGseeu{#I<_ zerW{3p^1yQF>w(X>gi9R8ni($aXYbz+iH9~hbAtfYdJ#`XTE49UM(?kLlYMX*_yb>z)W1fS9LA}E=?Q(;bEsBls9ov_a-jt zz{Eu>XyR_eChid<2o6nL)QyRY4uy%k>H&2Wx83-74ozIN5+=@kQRm|Ab_jbldH6@2 zKD@!i74Or%iL;zL1SSqWJeau0j1TY7#6|5*Ty$V2uHUOVmjRb1j)3sEQxM9VxF+`| zuE~LkYpS4$yB(XjokkEGnz$x6Ca!5HOx#Xv;+`-*o#>P@#t4E#6W8p<#5E6viM#4&>L~76Rbj~nm7W&3r;~OZ{p^< zH*s?vn7FwWG;w!=i33U4#}0%G-GgwU0}w8(APE17LDBMfn9@_<8=6C5h(`S}^f;T48BG<(3I*$EDnoE|=i zad?#>4s$)=FxLqVl^jEE0UT}#3P+7N{9CXXOa768FQyT`7?1cu4PPR&sC_y|xDV#) z_oDRl${O6~Ca}vbe_RW=+!z#&8F4vH@hEUA73X*!!R0Ix+NVYXgci`~fuhrdt>O2zBL>rk*Cj4fU>V$%QEf{IvL5epZ<_d=fiLgTal z9sTTdxSt6JIs^(`u(WhE&s}iwB?~W{-+bYMvSEMDrDL=j^cRd@8x($T#NkhrY=9qz zk`2A>S9lKG_JD%^R>bUr{>uG8C1e5vQ4{}BP&i=(;@>Ib0SZF_aRyP6i4+jTd>kCG zaFn?C&MZ~G61`CJ~e>EVSG6Jxd0szvwC;^#H0GNOQfM?di z{%+Hs`wXM;7(*S@|LM*j&#ft#9RDmJylH&Ex2OmFo#6oiJaxKtHh#dxAO)$$md1t9 zqrDM5$U=y`Ps!gdY}6n39OL6oC{hZE_;q?o=MVtXsI3Lh>OTk??iGUnQT+4N_-#Sq zE#vcFOId(V49^cS_UiM`#LusVclPK!i9&hR&V_|1bO@S_5S*u-Wrm^=ojf14J#4&U zDGKLz`coBxW;%lA9j4HL{r|=auh6WBg}$-EF*Nw6Dg@1p_#HvvT_ZH#qon3DgVaD& zzWOR>m6Dnz3sr1(>0)C}FexcEa5e$Q&5uzjgTnhpXnsHm4$NFAKAAxTN2H-4BaTBlB4$CM5ut~pngC&x3Z*Vydc@%-E6F(@ z;ZgdvfKe9)$UXs(&h05SxTSjFLeAG)kn?p~1v!R4;tvOff8U9c!1SE2dnwd!2h{az z74#5&y8+A}0^&K;8;8cVGUCl_}>Pe9m_QIo?8)OP4M2iyNyYHx>>bNw>-X!x@eji8F#CyL|X=tMR_ z%2~iK!Ua%Dq3J%Ri<8k->y30>uj1zYWxNe9179PCKjJsm2zMJ_#%Zbz}E}KWzFm5n>;mT-JYjbn!TxcFS&Dvo2 z`tNPqQf=)fIu*;Bp%?MvN28>V5#2)ado{wnMw$4Cl8Lum$V8-2Y&bnAGVx2hX48+* zG69kQNSAT5>0R$VG#bh)&=T?J57v!l(pXk+F=`SZP25S-9yi zYO!l>E&EW7@PJVk?x`uxIe%E=+&)AKAUWdQMN7F_HEw=FM9PK8>~T3eOd zN)K;Uo~DcgsD{H<<&V?|Ta1!(A0;_=xRRWAERu7?EID)+^P%W%?oxJmZ*!{_7zf*!pz(4&`k{~nl~9=qIq-sg7YV$%dYXC1eY`I2D_tJsWMeo-UrG|IqT6!+Zh zf_tKc-&?q6znOce0m?(V#84X{XjGjJO*Tx2QqeWwPiY+RJjhmReojlxI9h7d{sd@# zNyflhYkSM|M{R^=p8n{gTFc=u?L}8Ljdr!Gvl{JQv@#rNjYeC;F!!;M8B(R195hr|bqu0p*q`Jriy!6s5q?tY@+~R&`XXH3xfhvuiF{{`F<>c=h1j z$Qm~aVs&@Ex5YXe{^Vnu+3-k}0(#EFRtmmbBkVRx!JjE9c+-UxG#4J#ZNZ>P!2@3}>(UoePcF~O9?+67**g2(KEWA@Otmox>x05x zqbOWQ`6>Sj%L+w5GAK&xbDC76sbwGW|_R9{l=@l4=LCAJMZQdNU1~f;vlCT=|4lF?YR=rvb zf5bNhh2LQr0+L)UUzsbt=JP*PJcR$&e=t%kUc|fbBJkB>_#+PE-}mv0fG`mCMU)=p zh6^uJ%Ffq*?B_q9x3!=DsTMwTBL$Jdvy>DRefEwNTgBp6)gEsX$=dtyh z@zov?`nu3FV7rw+`_-O}HNq$E-o9yNkgxA#q+~+M5eH?kpV?8hw%z0{VZAnpy(Qt+ z=5QQh4aS357)JjO+suv}ukZY{MmX(GR{la+3cjLa4J{bv(y|Zv3QVTOPFieNbU<3J zenJiUaW=Y$6ue3cU&FB z*8!~BY^V{w@9wReJoKi~2VbW_QG~szyiy#I=<7G8k;ms}o#w-8;YK%7(p1<**@hu- zHu9AjTKp_S2&e0FpHvICx_R%-g=eVu&evkBYqOuDwV3}13b*5z54m}&bINALNKByM%#DF+*n+~xFJnlz7Jp1*Qm#T%k@k^gVw7|5g(nnc5zQO_t7C455?P7DZ zmHi6K2KBYtJNExcO(F^{Ufu?2WzYf+GE3B$kX$l^Jf*PIqHR%fFx1Nx7hI^Xa}rXb zOP&MSk@-v_lgjDeTE|4gk-4ErBow}Q-XCC9;JT;P22J=Q{yE?<|pldmae`KnnOThdk-44lRd0Zto& z!mU^j7Z9AzwCG`7+u~&_)ix=GVW53zra9Q!2hv1P(xj;*O6Qnms6n++OIIyfi5tBR zhBOTYPAsHpaBb62pu|F&F8tQWmnO)+CtBC)#5N6~`fPPR;!ezQ9W5L+ip+ee`kIclo(e6_{zTwj(b-+trXiu#?wfZgqlD4Tptlms%j zMA_tPqGT&)z934ra^@4FB%rw^$|k=NB@FoQ^=A5`$FAC+#3I=uZ=%jN%MvACy+6cGoKiL0-9UnAN8B@->4gZx3i>Z zKeMFLHh=2{wl+Uunj`IKwAlQ_klXx6g2F~`L>VbZl&?}mImJShw;Z`?6u3C8RJpMa z)!d{fm+x)+y2TOu_^|;vVj0cGAJVaNYsVtx`SLJ@p7UTZsM|`-%HMvf53Ok$*Dr54 zI9MZ%KtC?*AaY@|l{#OL<|eGDjD*c6q)9+?OPUcMk|u%5EonwPk>)xp zX|@kJX>JP&4`5wvBg>ZOTf$dn*oLn}E{KG~<%shLW%{i?*{yeuwe`s!7;mCYbl^mj z@rQ#v$F4A9%|0ExRi41}?Rwl+9XN(kH}Z+IBJ$=3^4zS;+vT1V)n{vSkQG8m;j5nD zvR|KLGV|PX?l7Er0*U^@D~U!2N}}s-L=7#hlh1d|b5C@jnMC2BVL+k;JohAu!1FVS zvX?qvkSKe3^9hL(;M|iaQdIwuD1pm8i6XdsNTPjSNwkTRs6fDTPofAsKa(hXsq+Pi zvX?iXkSGDpJ&7Vk^&g26xZIN{g3AkuI&|l*x6VX|-kl4MwMV>>Xw->2ccdmvgJX@r z=9WG&Y<{Ls_VVTn`eZL}KA}$noLlIa!C z44o~`pekruD-ywes*F_taJbVOd!VZstj)7lBJ=c|V zCpk~A9|b$%Y4Hh4XF8KD-a72ke@$x7Wb^1s(3zcpt=~Yg>QiqzssAJZMGkE5?dU*F z-z6p0o0ZW;04T%0Tqw6z>gj=>hRv`a-01LUN`bcme~l4G!)Z|73cf?%`Gl0sDsa7g zR!Zj-)Vm4ofHx_vfnSi?l@vm_BPDghW@}xYJJhOHfObw!WYS6aX(gSIL%2IsN|v&^ z#=+_5h|_RUEF}jA=aqCXx^`aamRmkOiL#W=6VEbUM=OX$%5$}xhX2MFW{PLn9)=_s z9}?fID{zP?u*2$MT%C3O=IRVG>o0Z2$qxfp=eHQE^OL$d7mJRXivdza$hZ=7CH5~T z-^7TMUq8i`lMm@i944IXydKq$s8RNGn~;L*zqf5mHH>G>Bklc9zIy7YH9Y(Aqfr>y z(NWxQym`&;02)eJ2hDnZSrv>tN)5WNdHJ>}Xh>_lMA>n74H_JhQJgluE|w-Sj;Hy! zn~%F$jk`Zob$n*Iad#C&)0P->SH<^v*6rrPI!d?g!iAuft~EdxH4ru@cTP2hHA73` zateJ;Nri?c!`{@no~tvTMi0R>8msfU<<$8uXx4pBDTO}r(en5Uo>jW3zz5)b0Pf!b zI9qaN=M;O+vqnb?KcGn3uJ%F>O52+U-|zmtg`yP`Mc;j1S&9Yqo!F?rAgQ`r zh<@}3>qc{}2D8PNue24jk-mJzY8t&?*Xd?Y=}q*w+iofieV46M>EkCFEZH|O=Qfsy z*z-z51$DX_vAC7xRks;uYQ7{r6id>lZn+PZq{}k(2IMs^!PFZ9@quVH%C{(|)zBZ? zs?{ItMZ9dRN}@K%roG;Wca?XMc^`jst;Su&KzjAi4?WI<2bv5?pov4Rey+Z>RzFui zAgx9L;N`R$`j}g_y3ab-ww6J!;(pqij zC*$FuJRB4?7p2DpJRH;<4!ZqTH1=lZ`R>|TBHDZqH z3zA*N^TvsF?NU0qR!Qc&KoKAcI+c-<@Z%7gzeY;6)WIr2JvkHYfn#8}jPH&7JwdF` z$|;2eD7Tyr#1908Utvrg#Rzg-9pZW-DD1|#x)0mhL<#R?alBc&w$6f(@`-pWEg?5d zhoSETi&XX7s&A0RcRVe=JFot-2LVP-Ewcc>9u%JS26S`behTQ3VkH>Bj3(YTFz@jO za}$R-v??XzRU0Z{+iE7Zta&Y^Y# z^?t8VBNrxz+6~kPyg`lqN*rp(P#+5lFJY)%=6-UFonqXD0k%)y|3`)nl}83)5SZ=a~MBcD81Vy?vgRpMcsw@;MV{Q?lr+voMNc)cw4<8D?72avb#QMY;C zzF1Gzvw8VDtv;LI>SeK-Ml;Ua_o&i5Zyzc_YSnjm^*e~V@>lgcw%W`rdNB@p`yMr# z=k4QoM$XWjp$Ar=7Bh6&Y(Qsu`yREK=k24gd0zgGm%n4n)B`Vn2N}LZr@e)T(T;DP zw+~9rN8fz(?Xi@+!(2dTdHbHVn&<6vrsfSIYeohZG8p}YFu$=zQ5NZBL zh&0Fd62l+y2ZF+DIMRHHy9QHdiQ}{%3#FxQdG^@Fu`8OtwQAYoh4b5176zk_>2#Y$ zUO0lVVyVN7@fzGdoRfwCuX}X)y2PD)4PhTil%L;#JG`Mv5Ne=#rR8cvP&kS8Z~?*T zOiQOmsx#Cu&_261dX+{Aq=}%UNmEIbeA_gbg)|MWZTh@QlOI|F-=S+=s}tKagqC|K zr0B7r@D{e*%LzKp+kuraoKn{HME|{;OxVk|Xy+P$3UDUjZZ_)Alnrr-gYv3Q$L1QFz zBj4IHmoq<@{`++~yUew6`iuvP@^z_es3w~y)7A4=#0p1Cn*a6h9R9@K{ICE1LD5w9 z{>?)dS&aX&jREGy|7=_1k7z}-tDqMLJN5@}B{+?!GQhA8&Nj-m?#NkZi%wV*F?!y&U`_XY~{=+L`gt%OO#E1BT5+Xf9%cl zN6VT1mng=x_C5VmHJX}eM5wnaHS;ALX6DOLW%;twD@8@n+#3I=uZ=%jN%MvACy+6c zGoKiL0-9UnAN8B@->4gZx3i>ZKeMFLHh=2{wl+Uunj`IKwAlQ_klXx6g2JcXh%!=+ zC|{+B(%Mk?mLoTf0vD&1DmV7knjEq3ZTq^#5&QVD0XSkAc@-bhv2$z3BIWt=Fom9I zS;tfzpq5bvYNtXkV7~oSA6nBi&dYB&I9MZ%KtC?*AaY@|l{#OLCV`BRu=#{E321If zGvY(iBv82}&4?$`{5WJwn(ZdiTxTWC_8}+DZ9(B*cb~lLv-1mWWZCk3OW@&*%al&& zP?cYl?~=1=IUk;b{zWc`K<)f8t8hms({J_3ZoPA?txxvAcoS`+1I=B4;ULekD~wpP zPX}+6C-8i`9=BBoj-k|zeB!K#y!nAVH|z3txhF;S+1earg%DEsswcSY*XNkbJolVC z3}>D|qStsOQIugnAQD}7<7itFeaAfaL2&Buc<@PofAsKa(hXsq+PivX?iX zkSGDpJ&7Vk^&g26xZIN{g3E^_`aQ2CiV9lzokR(E?nxAZ=VuaSFLk~kQTFoY6A~rB zxhGMisQx2S0+)LdMR0i`QHSo__12l_(7SWNvGyO{NEFwPDMO-zQPyE7f|0?oMqqPG zpBOej(vdb0sz^@i1|%IWxyBr}&~w%p)3a8i z2<>w1Zug;D=;pHRAMCBQWZ~==O!=;dchwfo7H4$#rt(Sxc^EaPv|fd&3hi&tW~8M3 z{$OE-IMsT->eQ}A`>f}x`?yw%T&vaeXlae4q#*4(rR1*+b)=+D+x7s1tkupMV|vzV z6f#;)t6#9w>OLE-{94%~rk(+LYx}a?)bfK*Y`zr}ao#By(n)2RmV&*PC9Q z&a6#`w5Anyhrya1W@7BWh7%jORs#yqj(k{ZwX?>U9<`b`#^jAL`8pPxbu7k>G2?sn zd3A^s8aU5VeP+_q&TdqCCOl_FEIemnY!wurF_5%fky3RwW@?yJWvLvX@&Z0e9sH{7 zWF0g+9&}fg7<8-q`WbYqcgCYk_*B{%-R19y7AbrMyrXSR^lwN4G@whuR7#WLJH zi5hceq35lkz3qn(V2*DghCkvj28G)k2AJO)EH+!KSRMbuba8TzEUgaV;i>)@^Hl3V z?a?9w;1OZp8R8UmpJpPor-xl=xQs4n*IuVEPONK}(#f?-GT#Nmzlq|w6gUjv$01mM zjg)Gsg9>H!^&50vq}k-sO1^;tQkka=Ls=|KEgQ1~In)TPb7e*_{toAgVfMC|&F!;e!vRp=;}vSO!pNa^1ND7gp+?I-9BMaE-|r1-?2G46 zJB7Myql&Y=N9CI=Ju01YTFxp7`^^16gJT8XNeq9W%>4(j2=L5(Y9_~%etAM*WfB5E zW$UVqL*_nFU`HM%Iw*p#w_q=iQQ5&q3+b@dNGOq$HAWl_r^$JA<}`6q zLds?pxL!UhrE^MN$*5+^aX7><&fF(T?B1REquSzn$8?+CRo8!S+m>p;&K$qE|H)TR z9ksS%di-b<0$}NmO>ew;&F(XYMQA!!mQ9=(M+B2ioyH#l}tc@C2J2-{U75EIGd0Czx`4_q@_j z);q>?e0etD(7V4`xyG1g?t9j1p1EIz!v0D8ayFyZtp+zKU(|vnJPd-;na*U3>B-@g^>6{f=}b$dp1QWh%T_{l9;nYV47AU# z25F_W52T5pq)AgrlziJZn1wVAu5J3fN|PU&0^gx)U8@t@G=!FWD5U7IpztuZ+{+0% zU$j{6sh268P~r!bS(CGAIjOa1AP&c*rAOY!4dC*`5I90H=bb81zAw}Ru}bH;#+k5zUCS~ z-x~M_b1aaF~^j&1Wsp3Q!p1A&|o z$lUT}Gc-Rm$yvkV*cHv+TDoe<%Eb%kx2-H3phOP(ZJ0(JRp{+%0|=^WD^&kBRC$Hf zeC;Sw_toj`A@KopmB&GoGhgr}TRHOyUlP#V@?|rOrcKIOvoyA(ZN#eN zPjx%ymM@#Z44I%(`SK8DysV93ezQ9W5L?aH_E8Y7Mcc3Et5GMbO+D|ERBxKU+!jh4CklF_JT%7=HqqTjL+~ zoAKYM8-KU6q-a00q|!Ej>jkzpKVh09?P#>v{KSyk{6~VqPH#jRDMysAQbak$LX@{0 zxoH%*IIVNbjeWHyN9=pszHV{EK7MQfj#x$xvWIl++}g27dA>YMq37JIIMFaGfBUIE zYgM!x4i45xBhZfvJBVD^Y^BZ@q)8xSBy2t*O#+%*(v0|!GznC0Ni*V!G(Qg6l4iS! zG}l>4vwg@(b6Ze&5|d^dS++di623CSHhd*=K?Lf$mx)9?LYaQ6Pj>5_V{Lu12gaLd z6CF6wD|qEC4xQB*HuKqR{E#?iJU`i^<-i4HWAC>%5lNR)u*oOT@CaJeT@1eXs<^l7goiptaYokR(E?nxAZ=VuaS zFLk~kQTFoY6A~rBxhGMisQx2S0+)LdMR0i`QHSo__12l_(7SWNv9{YAiQ;NdWk__S z<_CadjlkxXJ~3>5rcd_r<_r2{FK<4fPXe4<`oxOrFZ%3yM&$zg{kcXDyqxWj z5^^rot+d;Bx&0W558?ZX;Sbd1_P;S%@h-Pie2KB~C9fsi$-8Ya>b6yZF1JL1d6!$Y z&UZ2Ylq)fBRc$OyH;lX75+!!q2{T;aU2f%2lGOO;M9qnsRndQjU2Z+B|0PEKUf zNsw42osdJMOgR$YmJNaUetr4by;h?DZMxN#U1h<2s1&-nhUy1)~Cs zymvJ;=gxO!Gx>a~*eW)pRh@-W^`KilQdY@dN#1LY-U+k3-t_8pW^Fp8S60?aI#SmF z6NZb+>P=>$mTe-NAf7My6{uH%kKkHu*ByYB!`q=&JL_`mnX6I6XgRHZ!A`6DY_$5< zX06`LwYmzKHLlgXclByHUo_Xwy4-ryYTo6Rce&+VZij7`TcXvx%PpTu^FjASX^o_$ zpi@{1O=~(*QfG;lTmxUodg~-AT7RB+mhCiIpC+A#|Hc<)mYPkghjcw(BHDZi_~ zQIVDMGVFsE&gwqRLP&WjM0TM$FuEYwWjt@3Sl2G4lWUb^z6<1NqBt&_8~J;JSf7e6K2KLQaRPb0kZ>Mt|G z_&`wj4aV3}ST&bjhq8MjC>+4Jx{q|-M2YWYalBcBx6XnD4x4U>H%v#R0WF$~S`6ED z#Ht=-6Tv`$(K>+HNW2~tUh)QXbAj6l$F>+?{;fBdn>frNH!vUe26L3d>1-e8V! zn4QCXDk!{yVRpajg$llM`|Q|o0MxH~g&Hj|a;V)vebg(|Xw`>9?FQ;&-k`>=cn-Bw zsJo7b{IZIU zV4b(WS65({PCPm|!oC-@U4IvIdpOn4Xy_OXQ32h(sl1Xv_?hE$zy%8X+q2-J>~BA~ zPp#*Z-qWzpdM??=Ll}9m6O`2Ze6PF2pVZaak-wNLv7WOJuO54Hjob|@F4^9+)e^x9 z30RX(MY7+=W1G@RJ@grXB5v>Y-i{7A8|r|i&EBkxay$Si!#)VmT`TqUK%6IRhW${I z9{x-z@K)fjG2&=AP0ph;r-_piQZ}o=_3~LMom28kMjdrHR^nk?hJy^M-7ik?G90`N z2a1R0xdx#;%UlD7WjH+QHZQ}$%W&{A9K*8=hews>WjJ^l4qk?1;L(eioS8*0#-Gz? z(QXIeybK2~!@!KGA7!p-Z&m+b&`M;R!Yg`^Qf- zSQ7TPPcS9y?|G$xC+u_g_vgU<&1y;7VZy$%G8~?@nwR0ILP6oyis}h`=tr=!evv$*QYLkQznSqx3o;#jK59uGLyznVgW7HFC1WSs4z`TFuLF zaIIF-yqf$VbG5TF93Hirm*L79mnG2<*Zh3ZH+u~&_!*k$Yx!&I+wQcD=I!c!~ zLCLpWN?AzL$Ztx@LYn;0gY*tv>sp;?oxfU+#vcm`?_XC zU2--p=T#$K-i#j)6pOS>wNzI9bkjX21qcwGV96g?cj{mb6!IKHr5tR#{`MyVux+e% zu$mBXpf7@APc@DLUjh6~%9zu!UJXXEsS(qF0?Dz@L7Ok5`Yotjq>BO&@hw5&1B~C- zT;u0k1OK278Y7__`PQDfocY1@->=KrWv-ReXFO1puS;D+HCY^|*ub#gmRybPH z{I7fW@F(`>|IY6p6iw@OZyvhHV*HP73@|tTXWJToL@RdHf2!hO$Nub%Je&PG2Ld@G zkh$f{=7OL3lC7Nif-l+1nNRqVfaaDjn_)CCODo83Wx*g9F-J_=Tp>8aB5)o8`kFi)y4OO$WFfl7~MXQ8xLFC}F_=S8t|2TF&&pL^0+hi-Yk` z)rh1tBGk%b&olES9A@UrQDynEU#}t~zAS>~*7!$#ZT#6vnlFq$fsB!y`Na4W(A*mT zsNanLM&0Up}N`=hluz%Jb!63O&1e zX?CLw)W3nAmB0N|A6nBi&dYB&I9MZ%KtC?*AaY@|l{#OLCV`BRu=#{E321IfGvY(i zBv82}&4?$`{5WJwn(ZdiTxTWC_8}+DZ9(B$Oqy+E+46i#_{t31@Ri5~s66^vW>@Uk z#jz`zzqM-F;)V0uRu+y>rr+w5-FoL(kWDLZ9vE+;O?2QylktaxJjbpuV$D7syj7mS z^X+=vRvkEoQaAF6vm)~52lCvk%iHCi6xC;Ia}Vfnebp0O_Um&@W}bV_9fmVcAkpi* zk|;{)9T17GyK%HFiN0f=d!hr)Bnk%&0}>_RxhGKso}WpSz0~=FMA^%mPe_yi=bl87 zqWX_S30&?;6v5>~68(W!5=9yGekV}^o_i8S;Q5(E*-M=-NR++2`GiCXaPCPIDXRZS zl)&YlL=jwGNYtS_cfEBcI`r;baID?zjYM(5iZUcRQiGAfu|{BXOP?4vKhr0BdGiH* zvX?iX&?f=TEq!7|^&frSis@hpapaz7S>2now6hy!ribUOh=u1YjIA0b1xBX3Nk(V1 zpa+g`hIkFG9h)=+ctHsbf|pj1#i4u+p&pJKe4M&4NcN3wzsaQHkX|b&7wT5p?K|6k z3T21zoy715>TJ6n+Xvp+mWuE)cE{rdM|o*NoUbtOCLXLi+d?bM|HKN+TVeK~I{w8< z16+xDduqEQ5_kAl&w(5MYc$TfMYProV zcYU-RmcmOY^pTI2$6u%wHhEKN-U^eq!t`@1Ot#w0ZU7FgFdy)y(YzHVZ-wdaR+wyc zdR94xe!31C&y^tPr|aS`)(Q`L(`McZlefa;tuRq5OtxA*vz%6!okl||%wJ-i=B+UE z;AsHo!n^>=gd%<1lB5?NcYpW56eF_+TJQ97_jhI7-%ML!_IcH6lp;~C!R5ha$5a@omThR zX!WnnTD_TTbrmve`L1jxpHCIL#D+BM2rKAkiqm?etdhTytYqZqov?V?n_ivHtWAgX zjs@llk#G&Y<*eRcwm}?|$R>zC8;*cFP`Gyt=j#5u?hJgX+M!lEYlZo!H?8KaFnKFX zzqi6<#nRhvy^m?=$=+JwajexLcLCxwN!!=&v#a!HE)-l<0A8Tll&S30-J8lQ2{d;x zGs`@6e|t6~CHvbyL!4?oU!5*j6=0wBT(XZ(r8zxAa^*y6jijWYS6>PZfI3oACyZ74 zYl=5;dVcF9(@3(eovJR|$C)o<5@)VP+GL^8pP`}cXAoJAe>;Xh;x7h;UD&XcjV!-6 zSZs4xu?`xA>Eh%bSy~;!qfY%Xz@&g#p!Q&!6GD#&`_2%jsQWZG8;Ua`yU;ipU6AZD zo;OacYnRf=wMsJI1rjt-9G3#41wRfQeb-2-mO7{nSWnJGd*B$bg!tab-xI|8tejGa zEVi5u#1908Utvrg1^aSb9pZW-DD1|#x{tryL<#R?alBc&?wtkJ!=_8-wbN0_NQ+dV z+!VV`Y1M-)zT;`}-FfwwJqR%JPMZbz^`P*KH=vsf_ftTR6f401W;EBffq9QNn437v zA;;zzr1?2-Fh@Deu3&!N8_W?7vvZhF1%-VWW^XI3+&()t902u;UZF=fg!msEi5T`8-WxKcXhw47BE_PP3h z1&<28g&6)ox%x-&OE2qD;m+BR77zt4Jv=8jrUQdt2Lgnw9%k^vfIFyDk?i;JwNoEO zL{uPG|5dEOj@)-#iMbNfp%-AXuq9JE)0u2Bb^}b79&RDEXR>(|!wn8+;#|}tFpB=h zULPrO1#JRH&{S)4Fo9F8DTz#Iaf9%g{Y|>0)j(rM6@+4BS zl+|atFhDs+oTlzbDmf^gkyp~aDBvQGa*uH74Q9Fer@W~&&(-I-`aD;E;2};}o0;b7 zzwJ$7 z)qDIzgC(nX`vmZe(&+_zUTNT2y?hPJNA7Qj`F|S%rK{>}2*jZR$A@0En&;|Qp?H51 z98OAg@RezB1Mx*Is2JVM`s)=T%k}~0i!wcO8rH=- zlun#8-XSIATx+q(+Z_GtoLq0a{zuO6S8LV0(-20Ee<+4O;L#&N=i3E8K|*RvRg@q(0RSN*}+vYaO2g( z<7eqjf>_<1?`?Uv9__@_r7kJmDYtBWZaJD+C*@ostMufROnP=z;lF~SkjOxIx17zv z-a5E^CXtu(xp~M-2rfYgjnuXvm!LWm4^d@9R>PsBqhyGx7=ktjNrtxh@M>+l>G%M- zx}jB+n2%)$NDVxO4ffCJ)$EmJSR6LYAF#g>d;m24Iq7DUNj3x-r1PXg7 zN!X!F0)51=5(QKS(kKe3=Hmzw1t@;$NEFoCmo}nsk4I7194sdaaKx|@1ynoGC<>@h z;0O{0sF>(T6x4!=W>KgWHe#N*sz&&k8=i>LG_Z@Z4iD+pfg%!?67i;mCyws1;fbHq zJb~>o;R&@G3&j!|893tztqY-nQ7HWk)?aMap%MR_!lj@f){9!-9Vbk`}{lQz>I9Qa*FyGbcWC@-lO(Kq4JcV4g_Fo8IzD!h=$( zumXv6M2UGK9aZX7Ek{}d(-Gd;gI5b5>~f?Go8EfVZJtQS!-RMu-SAAL^Qh81kq&v; zdC;Gnkd-wus&vd}(OzcJ6-cD>sL?!;jwjObM7m*@NasJZm*iq~lu6 zwR+IC+F2rR>FMXQGucVzFqz4j znLycpS!+F3t5!=}S}$$2A}Cr#M1|tP+Nwp5mnsN&sc@K|m(kUUbaqC4+o}Z@eP!k1rOTIHG=IsGh@9?KQ}J}F zGtm`l@9Le4{;QgI{g11^{KH=y{n-yx-=Bco=sv&MuQ&ulz1+=%{*XjcX05!sxQ zQ?<{@W3zBPkxqs54`$UZYFjyf!IH&oUtY9O`+__r+t=Hh&g9gNP+aL%+7rn{E}>>; zja{*P)yhQ|typyKibZW-)=uvC#1TuQ3(kucJ7Ip?vZe@}F!De9)IK$>0AO(>IikGlN}*+%D+{ie;0So z)5gjp`+CtwEnEKk;1{*8$)j=^C6z^BY3JwfGF~2?OvjaE2z}i0)Kfw2B)LAL_M~%a zKaXa-Tt|-Um)slBBJ%jIj1pHn`;sAemN^B!;H3N)OqM6~s%j>GK>v*`-_)K8$fK0b zL?{dYm(_L$WGVj+ZZ|gncPORwsIz98jqFPe03DR#C{Nveri^%Zv_g9 zwT4D6;SIQp^1yvj9+T)@(;VtcCE`jpr%jh@K_1XA)9U5XslJ|21_WHq&I@+qpVWPW z=Yie?1I1TI@k{K5fb=u-Kz~OK^g)x1Fo=aQx^GhGBrPNTciKEHXR=N+<#9^Ke;|-T zi4Er6YM}P5x)-8Y*zB-CukpA6gM(eYte>z$YGKGiL{eWk%ZUwOL)lvL{ ztn!0qusB=gvkbe1t@2r=t#Va2{z=Z_a1zBky-6k4na=dgji-Bh(oB2p)_wmEWLhnkIN5-*ZRYUNrfeReeEYSeqt~ z%BqoO58lA@y{2;rW8xy11=%c|+U3wXIyVwC#+B#mic? zFUmD&+F+VXqT|b#>^@!_J06gpHiPjt1;!y07$*}jreZKc zOA;xyp;gIrG_)ntIY4KtfzB7r=**zeF<%C=P7HCscdaWxR0UH$3ZE)8;W0p|g4rg9 zpus^Z2n0))FI=@`5kX)RLEu@p2-K0^THQFiQ3JC}WTDYK+L`odX<0Bvu9XS-fmf>--f9VRons!NpSS(xCJQGXn2XGH}!+1D_)Z zOacT#=PIk!(9(3STg|kmK@K!v9~bI@E^AoQ+CW_ie|PjH(OL)#gY)gnAqg0UO96&U zg3@zl82(JbaKr?|Ddcy~Krk#q05n8ldC`EDh6<=f#-t5jFw4g@{nS?DR4`f%Xr<8z zb9p@cVz(_H2EUp9}odfDvxptyKwvUjY?e#ymKM#eq~Nc+sgJ4OxfCDZUuAisE`KD-by$+q~Bu<_6+l2 zPo$MUZ~VjOa zGNOx$j4;$AWj&!veA8(PlM#941zjz>#O92xw}ZU=8N zQ-$BjZsKg$4*rwB3=JMk+$-k6yEJj(kfVtU56r~%dsp`|z-ZzK2!C`7LTM8hVK;FR z7bY%JMiaLIo47+}5L}wL2#bk}RKmnve5XE(J8T}FOA{9RtvIO&kH?Ew><)HgV1DCa&3q ziEA#SiMs)txOdDTxHNIiEGDkG5+?5AyYyMyyXN7!G;z)4FmcwKx)*O|6GsOBXSahl znYhC5WH)iPYb#*l(BQ$u{lz?ZmnN>+*~B#u%*6G3SNAf&XyOP6@3{q`w27O;ZsO*+ zFmZFrXyR@H69Ee93pOTD5q0*3&!E^9C2v!fJ2iT9LnkWxeMd)PmVY=d%&UD4G!g89^Q>{IL;A= zIUaDB;|7Ov&LOt~4nGV^-?|xPZ5T-!-wqaH$v-mj#Z|9 z-jrTm*@OF70=roG<1)bI+Msla8JFV}j{>JsagL`ETuvmReR{NFLo}0)L%s)uCy@X@ zi2ot+U9-(h+CWFWI9;r{{DyK+D&8MnkAnSRZt-n1CjHMXsEDN%(MAn?FJ$aznaBPG zdhB$#p9Kdx1Pa}-xO6nnS#Zw6*0bg}pS7T5*q?jp7^w&S1!I>5rAy5?yidsn_+cp7 zIEl!{l*ZZcvj-IPw<78k^jGQ&${`aNh?>}qLFqeYAg-j02Pg~$#B>701PTaZKK2b* zIEvi7a)L54_RoOyUuJwDK-$QFd)0)`OoGpJjL*`p9uzaBznR?{T?Hmr`;~!{H9~l) zl7hUl9*CT7Fo#byYA){UUPRn_YOsJvu~!1pcg+AiNdW+9U6g=KBLIxY0Kk~@VSgKp zaZfiJkI~dg{a@~Wc&w&iQtTfA=?e1z-=qfkN7DcSJUxW%Bs{>ykO!G;XlZCoXCM$9 zM%xOJ_eu4e+Gb<8C!2>mzCbA?;@9mh-9rFOqX)vD*nbc-{8pGOp!nx0u?<1#O7r+H zqb$HDrtw3Jy*~b#c>MYB&R&BjQ7Es{(UVAN4;v6Pn;|$Yf0Y%A26XX!baBH4OHnw# z+pj7UG}90?-{T4m*#EDs@Cwa}Xy|JzTtkDus!Y(#h+Q9)t~NvST}o>HVUik%%GV#| zDaE8_Nvn>{BZk;m6HJPV4O~sYVfnH$q4PN;IM0hS|PYaoP>a%j3EwccUZXksv zrD~5Eu$*nyrqk)k7rv@N&o3~p&6{9X-{T&U|3j?Isr_4-1@l|ak1m|49zu^;K0g-;*%LfaAX=9GUGU4AYv618WDOrnin99l2+{I#b+EWSxN5s2+z_l z1B|+_)d6zO_@Z-r62L#1PRPs7&ZYjWns*!IeEn3vM-;!r9tcXC%&2dqQ2!~QZrngK zLiC*`Fz*KBlc^`3=nSbS`vbzl=jQ*=o-iH_kbo3V_o1Je)h5d0AeXkKF%tgIP-h0x zzO(bHw5jq$_^?NbhkBL1tXeoQMV8?}T2BtssLvlP951?LVX&v1@Cj-R6gJ zyt*)_{A)G+FpRZ_Pgr*stoj7r~MNWFp~_ygF)|%htisbp>=4oJVvKyz0yKo zc2;mz6jI&m;E87Fk0iOeC)d~VMjbksgskyUyjw|isV$d%v|Jl!wm?_ZKao~IFNA@QWSWYZYH^?Xrd2uU;G)%Tj!=Lxpx|4;g57s)! z!u>VU9qWLT1sH83-2V6-Uj*er^p^xQ{F&p29o4j-)t#AxB!^Kv~G*{ROUlttEf%g)&= z8^d!WjdPnDW57i=OY*>YyXZ`IFe5w1J4nuhHPX{&$+?Y^oa>n+=WUzhyl9o2(Wp!g z5|YOQ+CzrXp+6l`vh&`PNZV-HIrvEJaFU&8BzLm&oa8J!&sRcrwgjDI2R^$vKcK+ZbJKw62_M2trU2697zYMdNh<2Z0NCss_`@|lH*~>jN|J2j`^UlA5 ziqR(I=F_-X5HwfR=eK2MA9@~(7i6Z%Y1VE)$a=|iTEfA8+*2dHVwQoQQQY$b2JVSy zf3k7Ub5`!5CMfqC5<`8+(|Xv~L5@=MD_UysI)lu4jdh0czMtif<80TE4cltTS!Sw; zMDm*L;u%Y1ZX>LH9Au`-oy=4@$jrBEq{C*J`3q$?Knf_gMDdkylU9%dS9W8PWhGp* zaQTJHV0fmrF#fRL)$q}e9c;&Nm4XtMV*pZcd5v_`ECnA@Qt$?Y6f|qUHf+J5Nx@H? zd?MRuTVPtj9J~TCElnXe^g9Wi;^YmvzBbPlF6}`bXL~?Pg2M_1Rwgz_h!crSaWDus z1f{pkqHqP}r~D^uD;O(T@FC!Bg;7h=>E3p5l{acH8=gmF6U?+|&89nZYn6BuJS&>4lrFwSj~E1!)XO>-H5Q*z z@euyo|G`M{co4V4gTQx-;+GiAe}8}<1cZU;52E-iw^4hRQg*TT$enhq-gmNVy-6sD@A`1x&*}{ek_2=xk z67N=L>!}CvbTVuFHFq@R70d~R!=c7==G_6i0{^4`lqi0Q-5HejVv$=yMD8@X-q_K> z9grqECFh(dkIjD>K5GnWp=k7++DqALS*~wi2VMW5Ya?z?i8Et*VH+J1H|S3xLjs?P z+Fim~kh_pSi+lo2i1J_CG7VxA>h%nY4kf4HUXcHF=)+e>;K(89qZ!fEWoh#miRe9Z|F)pnWJ(aIm!xq=}%Em!_g9ootn%dfi4XUA1H-ZuB}B z(o_kYcu3RW+NMgN#6z0Sx@h=I6Xf3$t()t{HdWAaS3-(*K_?h&xt9}kPPbX^Dg9*B zmN4UosYw(VTgxQsxeYhJCP9Me`1};fm|h(`vQJNhrRGw9y!Y?B11R1qf3iNG+IDXk zwRJRRR807hR5t2256jwZunb!?sDb_)4$1(v-6mh z(`P(Tkgs!@p_*i!s8-Kk5!ImLml14hH~&B1zyA|w^Z)YY`(#);(@W_$4xDW>{)aXP zxEueIn2di_4D8rpZ{*qR*EJBx8G($IFPowNv&CuSmjw}bIr9Zy@|826@Ff9_l`osY zmu*qb!Si@A&HIVh-8%2jS37by@2`s8Vc0QNzHA1Pu|TEsC6wth_;QkMx%B*FL4er4 zSlT%PrN~iBrKhTGe&@Q9METb18_Vi<1_SmdZ$#PTW1=LGu@YsIuZfbcocV$%`O2A3 zh?0QDN|a50BTAU?zv0dFM@pIg7bwP@Xk*OxtI=vM?=UpHi&nmb)2#cnBTDjRx%X)c zps^bNh_8)5UrFSq zHP~!^yy7?_gAyK}*@_D^pl8gb*!9j*z};8-KDvC=1o&Cm47U*3E{ zpZw*`C-g~xW2H~5sQ#kQ?&CTaIM*F&=U8{hs2G$D^(5Lu`99pH;zL`Y_z?a*QT!5n zs8+i4mwIoAlZl&os%`Ia1nwvDgIYSb!|v>?g4hsig1l4xAZvx8ljIpx1x!JhfNJBy#JV4xT2@G}YdM z%2Q6KL3nT?g?_Qo`WhZXp;0>gLU?%i4Ag`jhJgTqZ$>@W6R9q8olz+Y4#H^h1&OXy zI#c-RaLD*Jr9GX=p*ulmb^^BX0}552`k_!y3Z8y(&z6Yx~v-Dr6vTn6Q>;BV+V4^6r=3AkS_qolHlTq3QH5T2y6 z2EIXQPb3k-ok^t&&hM|T4xpV?TKw@ zP-l=?q0U~^`AyF1{2N1^3q?n*#Q>=yWI~CB68o2vFV-tf4xE#Z9OKK$2Mi@{B%JKN z9@UN1EPI+mNWsoeAKY3E^BL<*`+*-lf9zFzc=nAiM_^`0M{$4a&})wd&{WDkX*Tl9 zs$k|(Y|{PGz73Pnl-7QWlJo8wG&v-*xcvND%)8OdT+F-6Iq&{J*YTO9=G_5^rY$n( z4#b}EtlQ1ndP=vQ!iAufu022(H4wHYcTTZ{HA73`QVM-?QH6#k!`{@nPN=h3M(d&6 zgS(8z>U?S`b-n_cb)Q^Jp&$KddF*M=D&3@s3AmVm`*#A4O9%{n0*1I#qP4v9mX(|1H(^C5I(Ry3<4XnA%b$a)_Twg|=u0||wXL;Ri zCYV}mNyA3mpl?YZ`{8Y{C0&xKuSQN(j+Z|-@J&AbPT$SWG zDdYHS{sJ zYxQ;qt^R{mtG5WP)}x}t{M#?{ZNS+|JSFD>+7+8(m#Z@#S|yeEE0uaPlaAi9H*XE_WGUzA;#c zFP|un!?DH2_i*YSt4)(9^{UEhX!5HEbfd1dqzf%9%&8;!fLz?T7F1b3mJeK^E<@4T z=!WEw`MR<4sCFgQu{P0>>jp)DDClHb>3}cKshKrOvSk$P64a3^(GfTYrpx%Zk@w@} zx{R7kkO1YDc1nCF*$u?e&qLV$1gtx>79N=n%Zu?g&F!z8Xkd^{1P1{|jzg=FI1-eu@dk9W zChUZ3TMRH?>kZ~60dt52=Igw{91$=x!MxrZ%wYkudzg;}r5|CKy={I8`|R3q0MtMB z3N_l15Kyx~{S&WHBR8>tng!~gdV?DK?gZ3sq3*t3$JyDT@^y|5l`b` zxeNR%_=iOC3(DKS0ZV|$+ZTEJx-U!Q50x{2hEBscI99ayDcKmz`uD0Lpafw zC^5S?QzZI|0z0C>j=sOA7slb6OT;D7*Q0KWL|?g%Y_E!XS^0uaqQH)~dRd$keLbqQ zNc4pQ75Q=D=b78T{y z7G6y4Qmfr1`g+!Ck?1S5T4?p4Yqh&XUyoWX5`D!!7B1uA-_R3YEX_I57xjH1TFsaQ zN-wBI-ag)^7Hynhdr!1+N~%i62*3s}Lyzapx=TGagSKe+!BXY+sf z@_n+UK=vC4&bArYk|^JL z9W|MDSS4|?`e4BB^G1|SJ|;>687omX`I;#C%9$^SlCPZkgeVDUtVG%5H==|I{|;}a zKT^u{zd$jjz3=J!)o5vwCqkoDsg*C`G%H_@D9M*N@TPoxSpbdI_(yzg{P{|nFN{Bd zjFX)C#P}1?SdD+gZ^nPKVf^Wzn_`40xAhrAJG zxD-*oLJ_6Cq41IY*NuSvEjv}-y1mxoh`nmZg*Hd*u0sQG#By3+-fv*XYRAH*`SKuz zo^0F4)E%IgBioi|*a8n{oR{c=4pq5D zxo$O+Qge;7(f`6{hM}%|iCwrCDbsKF$!@!8jH6F>?>Gx>q7$uMfZ-(1u`8TdbGrfF zDo^0~c0X>L0USrE8~(&u7J2gnd2TV}?R-y)>a)E$$O<8(@D)#RIq%PLS$Xa`bqKCJ zfkYqmN}{M>#(+q4{k0<&+7q2~65ZpKL{WVjzmq5dkDWvjczz~P{!-@)66G&%J|R&896O03 zMfD$v61dn&6v5?%L|wXbZ?LaKEAP$)$J$fgNEDZYDnX)yQP!an!N}lPBe1d3Cx*?> z^vPe|d_kZ5<;^GbNq}RePpqi^qR(!Om2-dFIM2dEiBwL_bSiO3Q13~!8)cSE)rane z>O=SkMez&jbNd`-E79kcN{}}fEE9GAMcsd1bqaa+xrI7~M1e(}LQ>r#-$$!Z??R|^ z3iU5JL7v)~QF=rfVSZ(VIoBzSLECDg&Z2E~FOpfI#Jx~ERP>&A@<|Ngw$((5Mce9Z zE|iZf*AuyGQ1FN#>JYB`4F(Rv@o|x4q2o?E&THO{yXbLgTkTP|McZo8wwkEDQ9=;( zUo^V)-stvJ`NXWLxhAHX0=!pzv>Z0pr#qg6=&0qIei?-F7LP1cW z%^n-)m7#65N0Jt8t3})DOj_vlY4S`nX(km|$;BBucyMi7?NOUW+iKCaTKKyYJ^cLL zyq3|>wwma)Xj`2lH4X#9H8wh)i3``*1Z9nqNJ74MGLc&s>P#wK`bJ2-&cPi@P6_3B z>a@!Sx9-|jd)8`{a6$LZbE*{jj0EAN)-DY1Jy~l@s(Vhdq^}=*q*gmgp3&2n%q8Mz zDwB6g8%5Qs(DC+6TIp~;9@J*YQ|#C4PVH)R%zmwYOlY+%v|6urFeJ6wUE6BUT8$#W zOKJ7fPFlU)L972@)#@!mt97%L>xQm_xun`*GiyK`5cSckWDt{BZ5|wibzWa;bt=6! z70UOZaXJn5?C>U)v29f^v>M=>EDuetcGtGrqgIQy)uL^+Xj}auRGS~TmyC1U>Tayk z&f(^(c!rzn%a9E8yfp=w-va^W&+GBzQT!5nHYn|P8DPFKSZKCZwz|aHGM9*gI!wvSUz$EEyB>~;Sl0ibVG;UYE{};c~rZS>R6lT$aMo> zOpwPWVTA!-4#E0slw`{&s8Ci%u0%)R9AH-b+sOOza$QDECdhKI<#-@=C@3Akm@>xv zZW@LNkE0RZed(7tVZ1jey@)Y(6^JQh*QM+p4N5O#Tv<2U8@1ah@tq`(vug0s&qK86 z1pFzjy+@{_;(#{I?XRF{V317&2LVPt2CI=c5|m!?26VF~?1XDu3^2dy4dx~RbBG1z z!`@(y2$-2*{$Fn}hXu^;VLld={)A!nw)-XQvuncvP`~CCYP2OGpk{&kb+1q(Ke2$C z1?o4vL5-bv0&2HVcfYCQ?Ceqbcb*=VE;XfQ5^?9u{jK0w!M`MmUr^@$yI2H7=Dx@h z)T1^<22nXPh{}+;PZXHZi%0LLI<<$>bIRJ+<)9J>72RO%5T`pD@mYGDg1(Vxk8hyv zP&__D_n+FYC-?3@KB7uQJ&E{;3hbnoA#C%0LpX>qEOc=y}b}b z0w2S1s7eoSlL>e#@NTp`5-wA7=*p?`#JG~lB;bCzjFQSGa*4G5b*{r9hH&OSQDXMp zi5qJR+n3WETG8$N^uevwfSomd@qr&bf9zFzXSEw&jzDfW-GJ>|hhBR$P%?^fX3;3d zm-cO#jHJQ?QH#ud5%L7e?^?%)VCKF@-4>bqB6DA4?jPb4@q{yoxMl8pRB4g9FEaN< zmhZsh7t4^j?@^;g=Dx_>7n%D!Vv@OL?t9c`k-0B2_eJJD&n#b#nfpYiy~Qrkj&G+N z-v`D!O1i#8zF16ZS=DtU*7Mc5krA6jG zpM5Oenfre(5@-GmE^+3$bWTam&X;+~8h@EG`0s^4bNo}H_$78{Q2G!DnlF)SR;%l> zQ1$>?7Laapp_J02&YHNit0%W8*WEaKMYM5tYjjoP?2_%k2cwheG>8m$E}K@i0t1}! z8r)8t6Dxq%t%iIpWRtH7c9I-h0i13LN*`lATtIL-!KR0!+7>Tc3A#5lw6FhY{PJlZ zNE1ORFHJ>J@@?B-9?~?pw&}AfO@3$!e7&J{bKTgc3R><;NYSpK^a-}y%LzKC+bs8# z^AcT9;s;Hl)J#gv=|;S?89y8-1RcXv$CCB)+=iQ9lOW`HytVS*yn{#fp^#%by!emz z{(W}Bc5fI(g6C(A;M8N7QPrbpQF}p_TE}`U=*}{UNT`>4nW35_kIma)yyUK)zapx=TGagS zKe+!BXY+sf@_n*p_xz0mXWNYbq0IsA#{VQH<6jj6JN9>Ph zxOINpN^LMa5KMfjXII$yvWgKhkTU`qD_=H4w=|2K)$5QgUA1K8@CJ>$ocV$;`O2A3 z_>zFe%9qVBo3?l9~aD_=H)#k4@B^W_1GFYTQqo_{O|5Zf0^J4Zl# z2fb8!su~q7Fs+m7N)qK;uWy8s!R7OOfdM=2jVPOZOq2vNR-$b3HBs`FGhYxTUpey$ zQ4-KtiL%LWLWwJFrHJwsiYO=Bi1Nt(>qfx-mYphZ-Ck>P#9p=I zLYpIY*P#J8VmWyg?>DexwPWGZe0h*UPqv|_J3wu-4Af4AUX}myk?r;}N>}e2teHlC z{Un0Oh0Ry$d_kH7GETzg6VfE0v65!khoniMVkOP6C(`^l0uH$RZ)7DL|7_oS#k+na-|5JC!H@dTIi{v4N; z=blrC;K~z7^m4BxiW2MxM561j9qCA-Z(G-%=tL`t!bwAbLi4x%0Nfarn|45X;#ZICKE+3NU6<$dc)wA$Bi4ySGNfd$SXAhz0S8#;$G+^COXeM)p;1gU2cgIi!Qg>LW60&-j(Qb zE4ti%#=G2l)NRq_R`l=?%V<{-UnM7`#(?M9}^`%y)(rZ&8qfolTJ-~!voyC3d;I8$;;av%bx66K*?z-H1)@l?0 zUP`NQoZRzKn|2K>(EL z7)-m?D!sj63*lop4q4dnHkp8EA$T`h9toGJIdtVzd1742WD;<{Tt-P{6S+iM|2k;D zqpX2%fX+fmWH&pLN*A2pUkjgsd&*pDwYx629<^F@xfNY*MVH&5+2wY<9?b0=ZN8FY zw0Vb;Q$iUfr<$7E-UspJ_!mU+OYGU8w83S3`Nm+O)mquA5^K}sNxiDFI)o>w#xUkp zX+Ry+5j?fkhX}`}%aiqE`PF%T^l%7Gn$Zo(A@g-(Xq__6DV&VoY7d2nt+X;(9bF z-GFgr58Jw(65dJjIIDCW{XEPG96I$KnU2cV*`%t!QkQ{27T+OCAImIkl_; zd?YB{j~+NkHuy>O(>4P7F0; z?x(=mEymq<=>R)BRKCv9q0*(M)J!7ooVULn{3`f|MDYvC+y51Q^dfIx(NmoK~J|==8QXQ~2JG6r#hH&0KQDXKDpc`uoyO+}( z`q1tC^uevw5J+N;UVPw3&mVi$-d63#mm?7VN_SuT)}hxP4U~*woLQ8mU)r}}GEyH8 zL@o06MHnO4-a!v|;+1gljIm&5)oqctFY@+9-u}?c+xJM0$sRG>Pc6sc-#BfiJl*j$(jsqPR{UMjP?~$KH z-oD7&7kT?bG;g2iw72ju+VMTv!AJ63!TD_F!e zR*jDJvxg<}_JwP#60R|qxqw$AuW^y7_tk;ebH==zU8_ajeicgMAsHW;v|hDZY-)i* zz!n}xCDD~iX9^_;;E+)zKxt2B^b}i2jUs6F`*#-!Gry2an0dZvQ+9U#FH`FN{Sab~e?%0& z#O@4A58@E>C34MbbzN3F4b@|V%=JzMoct-JN1ZisX;)8fQLejj_KIlZ?AGY2#@Qvi zfDc9k(`o&dU@2S9FlW35w*lwG3gC6CAzusGEWoh z#miQL?hOs?>pu>^eA)-nL{Q30Q&E(B+bx)fG!3q8`m9QmA9?{_Z)n|IH@2yQmb(&C zv@0k*f-U!Qg3jqS%RS}1L>JWdL6ayolTvfK5if1V4+je2#!zj}lJE1}hMQlLAlP`k zwLs^*gGctEU}HM4_>cGgeRlvpGbadbyElvq;^pUx;Ir$msGWmNuSapB*!M@*L#lNw zc7yILJ5)~!#I_pveU%wM-x~P44bV6V-SD^e+~v#Z+oBt!1?~^V2=5HK0+h+U^Z4PiZ{wFaR|Ed_+vB$lU zXR~&q6|^ynqZc$^v})Pn*7PiyjTd!|?b%f@yO5$YofheE!MwCrHCQ1SsD^WK2nkf0onJB%g9vV@SFLB6C z`S`K`8msY-_}cjMl{8-%e*zgNIrE9}C!nz!|A^m=|7OGZv#ydN{j8FT+x%^3I@w5oNd(QNBVE%`#9Q6?#?v%SX1`3n*Q^Z?I+>{Wa?d zA{RDasq+PC6393Sn@>oSfW}IiVIPtvfr^zh!=6a<vU+R28qWtB} zCnQRMV<%ChsQx2S0v9`pBDj1=qKCYaD5_-PcM>Jwv6CnQ&(9>vU+R28qWtB}CnQRM zV<%ChsQx2S0v9`pBDlPes7rV54fd62<=wg9So@PV62*mMN|5MqO{xIL8i9?KJ~3>5 zrceIz<_r4dFK<4fPXZh(ePTuR7kzdg)w#gAvF*QesW@cR3d)9h679~NZ6AQLL-?0O z@eAr~`zEF-(b<;Dj5l}369q>_X+mD533+$6{Y|a(4pv~%3R5ozTqtiLlsJVN8=N3d z?aYY!{ygjZA327S4Ec59IZ!LThn1MMU0$OmT4Ab2cUwW!f~a{BHOE$%A9&Mk(F#)( z`WLM*hh{6xkG-k1XoV?SVTx9mL$Vd-r`|MLw89jvFhwiOA=e7?pWd`tw89jvFomm( zr>l(DG8&rZU9$1$&;D_S#@;j!rN@a@n4%qzXvf2+9S_%5m{)k!Y80AXN~@odAn?pu z=it33Yi;Q_&qi6pcuNFszglS&tS++SaSfv>4u zYPGvom{)n#Y7{G4N~@oC((3IFTKxyBR&NnnU4_h=(CSR4Pv0GfM&qO#Mtfgpr9P&(8s~YAQFcN`u)Ru0uxNgVF8jOXd=BC7ZKNE8%=N-kwP-9sL~# zgKoc`+#8PBuO-J|9!iXT2WcxWBFTDTw=TT~R2Orlh$K^TN+`$EJ@)2nTqDW4f2ixS zbDa4yE^+1^2!o80Q%wzRAB4zq{M}Lf5_>i%{RA79l9A;bgN62LWvfK2O_L|}s>!V0keCUj|HXMFwEX|v4wqhZ8!kx&0e8KTZ;l}7O3y=3N_mA5m2*0eU~?=u@hcE z?H1~8jI*;VWfd1!N|%~aGl{r!uKo`2sNkOv#V;sV|6cs;OL|ma5Mwn#5wcY002>=YC7`>LqK3X1ox>owFH?T zKbPL%tIhms-#t+)J?>4TMd=Mudc)tPH~8xGDe{Sq!{eXwbGN` zv{{ti5T!Rn=?#=yz*nnhmeT4VH0&y()WH~(-gp}8w6~xo+VMSE9-q(u$(xmV4~%z6 z(m#B(-j<}lbG#)lZ(XoE=g;3zF$QO!}H8QxY zA=yjpVfCM+&r7FWCh1=jD9+T^1dvug=T)mk>5VFszJmompDri@O~4HJYg22Gwfg?L z;#z%w9n$I-ylS;5y&<$ZkrEZ;2U)A1ZZEFYPq!njKIl!WMd=N}(taSMUI%^WdR4buGX9&HUn~bbUDyaroH;z#{ zdJ?G+x~?xfE4V5O>;5_zeun-?lB;`ieJ$_Qp@T_O8YJGWq`K6WpFOc0O~pIZY&?_b zMP-&|RcZGHWhtJ9@NPAeg`=b3_UU*IN;AzvZiVskXo#iCe}a4n`qVu{xdB$gsd@=E zxRUY!ppS#3O`P@g>ip-H^8@7WrdoK&)dv*<;O<5^7i9mVUuC>MMIMdEnN*d`tVxl^ za7!p02{oR*vN1e2(m1!dF$QiE$b}B|rAV<9^z*=(qOVLs9f>TIpz6TmKuOT%^K@Sd z@?cOW#xAds{(%J{;!+Ss=LO;MfVPK{gog}CpwAdmqJYXknneNCd>lri0L3p|iGp7H z(m@oyeVblymsu3H1WSnmoH3+C0o4vPivlVXIE+LADki!T1-)RRRTOHa|I#HPc5#h# z4VDRaJQ1O3;1S9?+;3P1ib!}$#2YrAcw&zOPyCAJ32cuEPw3THD3-{Rfjf>sQS36h z+IBkm+`K11t-*(vS0h+?fC4 z7x_PK)&J<;sJ}Q*aQHO6O~PCwo10xUk?z+p1H!)~ieFG7-5vT*gLtEw)#|#eHWhiV zVYYx~Ss{JqGh$g^GHEVFDyp1eho?xS1I_kD&_1t~QyCKJhysg5I-nU;rZ2w>A&M4? zqJ{lc3g@NHWk{qW>MRoJL=S5bNiZno{>zX^N0eA3(ovO*^+=)`5iK-2o)OVPZd-cr zB5Ie3bR{DIA(76bZi_@Z5hf%O>4s(^okx`xiFDL*TLk@ypg)|cTG*^L>bU_lC(Bdy z186rkoysLreQ0v8XUk)9=9)<7QKLm7ok*k;iFAY5!`fXUokwjJiF6{7P9)L|(L_3; z(;|^B2Ngb012Bze?z-Lba*c6Kr1PxRB9Ts{+=!GLekt!Rwc1@GooB5U ziF87%g;o!`R=Z22^QhG#kxnGiiA1^~*~7YfOOZHpnM$N<@9Le4{;Qg|3u3}=e;1{< zMDa`PijmS?`Ul!b5)=OMh(co9TO;IADK*j64fVLQ+AAYuDgRDukjLl$4k;ZS88w@o zH74A6X5*RRM)Y4qyDFH^iu;^AHVelgNlnjfQ)ksJYFjyf!IH&oUtY9O`+__r+t=F* z6~CbvcwFhljb9ULcGlPx%U7*jbkT}M=dM`P_GQ>q={kN~vAxTms_xJ3`&*WQV>-@^4k> z-^HEtAX#o?A7uAIb)@x=9sHv9HF;DnqolG3EbaXKT_A-gnT{*T5c;^~si%UFSY4k{ zd(t_zpGTv2&(x3Wm)slBBJ%jI3}gXx_9dZMJ0vB-7o3#;0$8Q?s*spS4&Z&9Z)#5k zIXw@=6wr!>MfAe2gFOO8> zxx^ZER!uI`r)sCjQg24>Oneg_%9sM&Edfo!kEkW6wL1L%+4&nzlt(Ka(9b)U$f_N) zMszC4tO^O0#)Bgtb^l7&1n0z!8PotWiS`gtsu27QiuDjE)^t)oEdv4Hdq8l)%_NTX#Eb*!dFM}3(~(&%xHbq^iN02L8d;%VExlGSdRf%`06NrK~@?6 zWlVQCTjjG1yM?XtS*5LVRrm2CBRq-XonFZM>r7{Q=El=Kz3CK8PO`u~kHaW8{aK&X z;g{GILFrEY17nmQQwsDJD3EajP-I;4VB`uVzPh0ikvgemFvnb8;9vCKe+^$-vF4of z8(QJJGfFa{sT~a$Br>@^CE2h7kxa&R!+NsI%7=~u!qq5Nc52h=r^sKt3 zIZfv@&R@_tXU;h=-;jDbyYPHLZe85gy1b$7-`Z9#TH1C-!{TMF+80Sh1$r)#hlETh zTE9HMt!;4|Oz(n;jxS%b`*>~actHA<8H~3nFbPKV}McxvrSx7qQOBb2n0))FI=@` z5kX)RLEvt;2-K0^S`7s+G%&kF78=c?ok@?DmIY(vn(0QxWnj+2<~fZE7PKy06e%eK zvj_mE^bf$2#mg48&R?+*W{0{ETr9;d4NCWz5qOW1fuklFfP8FS1||Ulp>vhhYG`R1 zl>uo_gB)nUJ}%S)UDmLqwSl@4{_f~Ys;B@!k=vI;5-<#x0t}Y~rF+dV{F#E`hzW*M z$nTtiV9@KJG(=%}(SX9a6i|zdNgKXkmXB%rsjbGTV6+<0N~00x@_6{gZd*PO)&mGH z1*C0e5cW_YJY)i4Ecvw~Q2Cce?H9(wm(Am?UN(C^tkv+)$jP+Kqr>BAyQg1J%HFXm z`z04|85#Q|Al+vk-Z5%;FPVmS0{O)g_2GqxArCFkCH)>_uxFSDdm^p;dE*~GFE8Ll zZ(5E=i*5a-WbpU99XzdwAmaJKFJ2g3v3#j^w=sIBM_v5d!GH3Xp}~W8KVTkw|Jn_{ z4c!WT4nKLvaz~962%k5Lz~p>kBy1Cw153g!kjKQuUERyTzYt^ZGzTJV7hS$$CE>cu z2?!6m1);Pp3R8sd(!_;bn7A;oqcJJs#`xII{|KA7on{bRnz%5Fi3`J2&lrVn&<4T8 z?ZzhV*XH55G;v`=%Q>1j>rKn?Xo-mHGjaXi)x8Wbnm7W&Znq$mHgOSl6Blt|;v!`#Sf zn7E7Y)Ms&zn1|=m#6`+s;;c7yFW#(E*h|Uaf9rPeCKFfqo$Mygc5MYr92z{BxZjxv z@6yCYoK0M0U?#5LySkSFMiWOsc+@QjrA=HDyNPRZVd9#~XySf~P2A&V5L}wLCKeOd zR0$Ke8=JV_n}_Gp#5I+}#943ZUc8x292xu*ZU=8NafRQ>ZsKg$R=~ue!Gno=(mZ&V zCa%fZ#5E1f#Pxeu_cFj};s^-;;}(R{Ca#&?#5KDxam{5kaW`NS_p})VmnN>6#l$sN z!o*#Cmp+So#ymWiCa$?0CeC_O_u|cL;>h5ibvt;Ii7Wh0b`xj2wgM&&4IWI~AIyVy zY2uolO*j6vAX4}=zW5L#S-&{9Saeu+Uizz>9T*g-hQ z1qkPq5rmBZ!gqqwK{E({rS|AvGwsnqX-IufAcQ;t=+LL)Z-t<=n5i9pmsaM;sy^aEQ3Up`1?LEf|MCa>Sv@ z0}f4Ya44te=Pr!HA&xjSd%&UD4G!g89^Q>{ILr};IUaDB;|7Ov&LOt~4nGV^|7*tK z+rdIC`9~(cm`eC!9O4T-e2J{0o-sIrJ(#QCo6^fGdvG61U>7TYTn4yY8WCXr2n}E6|uA;+Ngo=g^c|y^Vq*YkDU(pv*197K%pBJmyYH+3(i^Cde;2r zvlf&L`*SZHBlV!aVC=G>bj*yy`;=^eABK_*qwQDYZ1~v&3i?|Sbqe|`^#$dS2@FI{ z?8cz3m)Zk&Z7_#VHEJ&I>t00MdTOwM zNU>J}(pzQ#o}>VPv@S|OrV#+fV*p^x`LMqY#<-`OjmK!}r2a2=KRi}bFe&zrfb_O` zfNxR*{G(}r0G__wItdSOF-SqOp{1cUoq<4b7;P&=-Y3;>YMYJWo@^fO_yVPnh+nt2 zbPoYAjow=D#QuYz;kQEYKZ<{z659}z-ZhW^GRgvcVj4fh*z4n;iN~K0@9Z^r5{2^W zoeQ;x4G5ae5S*63$_hmTx_CZnd)RQnQWVbb_N&SS%`^nfpSeN<_Wx@uyh5`g8v5D_ z*U;dvDibs_V%G3&q!qh)@fin8R+4)@!n5?t0HbaUkaGeco!et{XQO-ILeAIkA?NG+ zf6;Tk@JsB0p!5s<10&~aBZc};0d?bEnh~P!G=X_HAfHS@=> zpwMy__uOk~jD-I))R}=sx~L25RCyvK*!C##P_NRLRSO58WfL4o>&amn^*QvLgU|m% zX>W&=bK^GnYAICC&**r>_V3X_(r$^N-4Dbj%o5F^r`)ablP;DKYW*1)&Yy@ijx`r)Jb{=c?XkkjM|@W3pcAom>DFqyG= zWDVyA!)L9GG|g>po;wGcM^3dj7~XTqj;+=9ZlY7LteJWdzx_&tG(MqQNPf3Q+GUoB zk0_aVlR+lJTA|_epvc5#r)JX+(lP;&|45f{v+0Z9y?-Q>SD+3Gr zP+r`4wGySJVX|Es{<^=`oh*F+AZoE|Z7q9$jr53F7H+L6tT}&DoCB&SR*Xzi`a9i>OKDo;_y0aU|ftMUhHq~Dt*=Qc`mu4j^*w{4R1 zqE&L}F6Nc!ZO$k=qPIEJomidA&U5T-4zlx9C1eNMo;%1+*_)v=%8qD;PGrZi8Tz+s zr02}C^DZ@e`Co?FOGLYGaA&l8om!yZL(g97>DkLW{|d}b&s}al?K3-bacF{`wa;6~ zddW10O*qV2?x~UXn`Pi<6!-jqfqNp_pKRRooRxd13CjJ3#84kX(5Su~nq*oIB_nIV zpVBbkb{EC*Ev9#1w!DbgNH2K!{w&joBImx>GF=n;4({W#8`}z1byk@&+uWSs@ zjYQ@)!rI3{W=L6Edcxu)GgS^U^X(exC9}-@g|ZtU1(aK&_)54*D@cK>RnH`OjP9t` zYYz5hXVolRe&I40ULANhGUg8@xwNNmGitaVuafU-+BvjAdkQ(;VKE`KM~>O|uBV)W`@(c+4aMMg-5Y zzGSjdyWOyju=k-)j%1T|=!L8XtP;QS<8z)9;ryJt-_jql^R~k*dItt#5Hg)mo0r}L znr&D~*bRCDHXz>B?-s=`vD<^v2Uv!HBv-5Jvc>m&KBeLz{I~z}A-4zdBs>UwwM+o(NDDZAMFabEv?*7klrt(LB0k%F-HdrArlK6_U)UfHtl z39gEwNe#W~K_B(I=5h3!iQOL5(41ZYJMH{A@Aho2k*;HV`j(wRvA>g6I^s%}I4Fbt ztd6SlpO<-W5PM4+=QcOSAl6_Uh=pnP|A52l$o2lt9W~OA*<|H!l%)_mI`+_lAucV? zAYXySv^YtNbVWBOrH3#euH2>-Hi2Tlg^LM%p;~$vKlI5&3oN@T+bN4D zc32?6f^YB%p87`S^50?kjs94jcUZomClQ4fFK>giGH3w@nI(EmNVX${Jf(9BpCqy{ z)yoz(T&O>1$CY@uIvcVhbLn_GnKk~JJ37)Bo)Zd(LyhOm`ybd9c=LTdSqHzw?t~O6 z{R3?Y5xLXkdSgcicR-rxl$>*-JU0Jj_^dIgg`&}OYAkgp~srtGF zdTNIB0~zRPnU@vxA--jZe2nKO)|2rX+jcf*yb3+K1_Q5&6~OCOL%tTW$=777eAO(C zE@{&S1E;YS!0DEt^f#=B3kXgp*z|Bz+u~&_^)@Nm5YRrf(j08<18E{C<)x`8N+(-o zs9v{GOIIyfi5tBRhBQ?ICmzx?xVEVhDDjY{vo0F`(ggYUMC<0du}u}U+?9}`T|wy| z*m5r?=$vk|+*A6=s4Zc}4^xvUFt(OS)MX#s@|pw*qT};ZBx8ED>*zi`5tf=uZQO9> z!vPd;l|NaZPhE0f7`1gYW>if0)#KT>b&e#FtY`C#Dj!E`Jv$iNYT)-(X8e3>;O{m- z<0N#$-`aDRGe4OAO@^GE$E=(_BFA%>nMl|0GA_k7z}Pk{4FvUljv8cJT*#P$H`xYxe6J2;_`F z#>$t?(Er)uwDHS=h`XHmf-m{XnNRqVfX2#~%`ls`DCgjLyqMpti zUyUd|?=UpHi&nmb)2#cnBTDjRx%X)cps^bNh_8)5UrFSqHP~!^yy72M>zSs^OZVZkS2kQld$=OGzn;|q#5=hX%eVdNi*z;G(QeG zl4iSwG}qfnv%TV^xg#ijACqPq*|t2x7QQmWF?=O_X1KAj6mh;tnSQ%ZcH2#39DTBT z$606-ojAc_{NW_eu`8TdbGrfFDo^0~c0X>L0USrE8~(&u7J2gnd2TV}?R-y)>a)E$ z$O<8(@D)#RIq%PLS$Xa`bqKCJfkc1cl|&;0CDHZQqJ|ds#pm1BwI@2!N}_Pm5Fk+k z9y^I5@cc}o{H4wpB+6gjd_tlGICc_6it0ZSC2+BmD1ys}B)Y*Xi8cuml?Zt3B#OZE zGl}w-I$w||e|hr>i4x%0Nfarn|45X;#ZICKE-xhN(w%#QeI;6XcP=>AZt_N=5jXDK z;hHcFjx_=sD}7?v{7j$x<;@rL$zR@lLZ1XUR{F$>>M#22{+Z4N&UJ^{Io2IADh6dk zJ&E>EJl%&{MPyCIhn|AsLqFGlPZYnz9;%gY!(??baWhY~?LCgb{X~9HOXqgjot;$> z8)8k6cd8#`tuSh$KXIWYWFa7CJ@p zKl{`^HI)BcFQ}*|(~}eRnpfxp^Lf+d$r(VMR5vP=Rf1c?59xyLD~`utfVpm{8kI|` z9ZuJtAW!X8GKt(er-P@-Gff3Wq4Jc|X%HTqNTFY>W-{pv8Z119LZfte4-XHYfts+x zFwi;h&8X*kBGpB%GwMgdK^QH*AkmddX9_{_L_7rq)khU4HyhquWDJQa91S{@0PL3u0q z8~V=2l}si9_seCJR5pQnH=zUYB$YMr4N7|=i4g8gDqZlgy{^u+dQ~exJFCXisSfz+ zL@KU^aCfMrs$>j}gUe5rr{bbmi7cF)OQibHy>p2kwdL=xp)94-T<+)mp z!@qIbOnJKFX-Iy!!)P$7hzBcUM6)ZIL;5RqPqhy4|d;r*zvXTnJj}+5>b^ z17T}&=M+m=Gqe;grO+oARcL53>`k5PggT35bOn~tSe;KTrOrQuX5A+jQ|MoRw(J{NbDPUU?0LDqj5=M7SlrI?y4y@Jwb+ub#Fq52AKnIA(j}StC&+7DgsFcL zhz&%mQNBeft%m;CcCCKzNyN+Msw8@YY})I6@R8CkGVk+mq1Cvn7)Y-X`eDR*h(MEy z1e&WAx!YxTo*1JY^~0A5O~p^v#;tG7F7wcf~_*6J-ntM#ZTG5_|<{M)5gA80SG z)d$)Kpw&2xm)2@0KbZ&z72%+$xhOp+5aFQKaL}DULUV6!p6~8WMWW4Da*Q@Ny1JU; z%b$k$a{LRT_$BsiP}<@$zIPako?AJ4qgA)nF(~G)10(Kc%(s<7u$G7;n?ue%m1qvWegz zz{qiEH4;aH(!Jh*Zq|gIaBYhL=KH+C+$3NQvA}%4H<%*=W+s>)@CI{O!0aC8V?k*L zhS}TZm$1*S4F^E|Yp+nF9SH$73)ByJg&Mhu1=K81@Ad{Y_T34n-9p`saduAM|2jv9 zN|%~aGl{s7MQrk`JOh3e{6nJn1?BDk21|g*+o$?Mi2Naux36S#A>BQx=iBoNQ7%K? zK2cysC!W}M5g7;m%{UmsdHY12UHOZJ5(_2vuM!X8ynUj??3)uJZ(r2Q67{n9&%1dg z96;W_N8J{A`*I!GYZc}1^7YyLRxgX!GMaPVzDJc7dHYZaGGBd1RKJ6$D}PnL|^1oJpK(m;lN&kF!Lm2vS)L%d!f-- z8k&Sm^x7&oBy&oO8uGP}O};AFM{;ZhaJnTZJ%jad0m116 zTc<{~!KBqQ%<<>rsCW2C4nu?<2+or)hq-k(%(`Qwh{Lm8kdPD2xy0J|awA_`D zqFq7hd2G3t6Lj3S11n+14+jc0lb~m5`#PB88I${Ymwj-{YZCMdv-j%Vb#x!<6-L)m z+_>S&hXb~v=a<|UMr~E|6FKnJ+gqddYt!osyBl;t7F6z$p&miH|8+N(v)|B<5yK5;hx-??(1 zY$<#H#(}eK#{baf0C(emlB4lQv?4oI(2Ic`+wYA$o1v9o#XS&Ad`U$E(0p0N2pPy3 zfsB^8;s2vI z(;q2i`d^?J)86;={c5x{$rGW`s?^GtaGI4bN0j8te!YtPR!IajR^uP>wejaGX}&Q2 zeC5n1#-D)3YWyR9Gya>I3^MxY-Tb`ZI+`AVHHNRvRuN!WZsngldf z(hU2MGznC!q#5=^njeQ8NweKTn(OVP*h80uN`Lm*|2HRk=mE zZZ(rqbB(jn|H5a6p{{$0UAPx1({K05Zo6rWqfd74I16o}6Rll<;Uv$oE1Xz!y8+%R zPvH4>KW>`=97m}e{=``pdGiB#ZZYKTd{2t%v%NXU3L&KM6;E(E@6T~rc|spJtGBW8 zD^DQNH@%W5%CH|0iLSqPq$7#GZC!h!6Rji)Ck+7-CE&4>C<4#VB+6gvd_ki8<;^D~ zN`PZ0QKYE;BT)huJBcE=d`P12cqLI((8BK|O2A_$Q3Rf!NtD0T`GQ3G%bQO~lmN$0 zqDWEwN1_BSb`nK!c_C4k?%W&fE78ikbHTCpo;MQ3^#3|I2Rs@^DI1+NafT_rxJ$*^`1n#bD!Hk zK=mQ~gQEBa^|}2Rvz6#`O9hySKDVOJ?PsIU?QaYP7L74`QC0s!qO(w9p~Pk-9>R?= z2@8wHn9yB3ABw7He%7GfW>UH!-%?BHcrP>zXoG{zK- zF+-xD@Q0Arf0{fq%cJeqsq%^D`(UauO1icD@T29h6F1%QBt%Co&wjK#_OvnQW~FP< z7*jOH%oHjJiqZTw^X<=(%f*=~=5$ zgm$TRx6hzj=+?6B?>$*-%ffk1vgErSe56)8NuJTum&_&N$itX-N*h&}s?hQFOj_x1 zJ|5I&$W!ds>rU-zbj*IOeoSb!EVNork5<+wi6o?bClk4Kq0Xez<=7rzkhR)fV@%Il zjY39CY4y`iTD{#ttN&ot>McU6b+eW0hBjrnq}pLKYan7L$Wwcj43ask&4Yum&g)C9 zPNmnTLiwf@PN%`19cE(ezlICzg;oO!(2jgaYPGw@m>#uSG{zK-F~vR>pM5OOjWJ_S z8tdv1DKv1Jt@_NwrCmL!^i1RI7174ot1mt5^lbVXSjKX zl2bw%=y_{uZ~GhsnB$)i#V@gEgVH}-2AFRQ7MiVG5v^l%7Gm(dNK+UsazoRIGLDqpS#{;oLLFqWgl+k8y8iojuqY>VH>6bWR zyf-La{Nd4`{o@SHRa~`@U6-tyab=C2Y1D3~#CMWB&Z@ysm}rVT0e?zs@5j?n zaX_2q)>5J3^y$GtHW3^I7`Y6sM&d|Ny3`xc&6=_xn*_`u7MTCb8_W>_ zGZW0;^#*fT!0aC8V?pUk470b*Y+;{W8xDZ_dtRYNJB$Kq7O1cG3N_mH5m2*0{e5px zV_&?0+AY-G*XlSsC-DC}PmfBMno=`~xO3+I^Wa#)za)xZQ0D%Ru?UFFeQG5ql72-( zV0jV(|IXJ{8-vV!qQI^^Omt9$*l)pJ9<#E8j~3El?U7pGQ-x@&u7u)z45GM1I7B{? z7=R*GD<3&$R*OcnQ|QtF@!Vsi4wEBGjFUd>~~Ca=v}qvk{w&C0Xu8_ z;=2bA9DCK?is|iFA`k#ecWgTL>W7a8N=7lxEE>hQ=fH-^9`{s5=DrAd0_AtD3cc^Y^4YF3d%iQ;@)gp6WXtk)E z#c%%YlB?Zi?t9c~k-0BeT4e6?*~cnF=04GC#w<{JK`kQ5#H8C_lkTCKxxb-EocTAn z#F^*PIVCweU$rS~{AJ4E-wT1}_@_kiOYD}Q^a~tlzJOE+Il)#TWK`SYWh*l)AI)C*ZjqM6bw_wY?oS<{M&2mpU zFVO|1MNoMsHIq_vx)CpJ#t#PyvCC6z5z3c+aLa2FL@tlF77(1b>*zidxlBhXZ`^R@ z!vXkgO#WoO5Y#32g;79xo~^(E2w#&lXLevJcPJH8kAhC|#E!1)fXYTP)Paa?HSqf? zGk(4`@OK-aaT2=WZ|%9unIBC5CPU87V^&U|@jyYo&Si#bk~}tVgF`8$N1atYe??S# zwW#?&a`eC_&gTC+SMHN7oA7TOINN6Y4{Z)`H~uF%8h^T9EKLQnEm^s^b$;7QZ7(HqQ0L!PS<=~)1yzSl)g@sU(KOA_ zv)1wg&Nj)=Gh6JFjH*h@nJ@T~ublaWF9~R@eAx`MX^V2!ER8N{8@4KWhhfK9`LY?5 z-vX7+mj@{0Wp7CF{9{3Y*uGfWIRe5&X#4e4H41|;8L+yNMETb1sKltlDv6%~yUiO> zHu;z+31qB9+2m`YsAWFV+<`beMps^BVli!FECj6Vdnf^#A)Bgg+m=kT&{r9WU zEIUtxMs;{AU&3itz8q1KFZ=Z>a^lMZXspIR;%np2SJHf8{0U^7#A^s`DTZu7UD>1gxgmNn8t4K|w}uei;BFeq*DMwH=FMEMFul#^{l`S^kB zM!?RQohmnOueCU0ui9~;%@Mon&;T541BYo-yPsvpuW>>zSs^OZVZkS2kQld$=OGzn;|q#5=hX%eVdNi*z;G(QeGl4iSw zG}qfnv%TV^xg#jug-NrGY+IgT3tySx7`_rdGYs{lOGF~RNSS`SPj=f)V;p_5d&gO5 z6P-B0;*^DxJjbqZV$JOac&j{t=iB|bZ3b{0rEd5WXIbRU59GPUkhk+aDXP!*=I%7$ z`idvGocHIrtURIrl-1i<`IRS-=-pmP6y@m;h(y<4JJOLv-?pwj(TP?Pg_DK=i4ySG zNfd$SXAB@&-*YPEFq5E(`>tY6PI@N zpv?5f*(;)rvstX)MX;oHq2p@y!vh!L?%(D}Wc2&>(o_3$nPBuL|nn*ulrC zd%LcL&i!rMIo2IYq;hJeQ;DnDP*0-Wxy$W7C_aRLPZYnPF1P=Ut%T@uOT~Ga8()fA z!d;@<7N>4oW$1Fd8!NEra;w+*o+8VnYPC>e(W=^9&}ayExg|=>+6l8!6J2iAPzR~; zFNj(YHLs%o9J}0l)NRq_R`l=?^KMS_Zq8k9J*u?max1#riY~W9vdgVUjTT*QMVDLA z<#xz*x%H^cqRXx5ax1#r4$&^RM5jfU+gvuJ*KiM@d?@1V&bz>b`@0vG80j@ebIKFs zsht_2(>!(BW#_z~1fcu#^sE|Br#e7l6REfwA_X*%__q8c5PPmx@~qV;QG#x@Qyp{+&c1H zv-Ck&<@Kdjr_yUvp?m>or_;cM;UdpQlUb-K9nZvx=L^0C>c-$RgjPFs>EPw?cB$3w zy4-r!Y81I$N~@oC((3IFTKxyBR&NnnU4_h=&}z}UdbOG>m}_@kZar$X=yEH%+=?!@ zL$=E;(Q470V_y<2YdVukSCOtY1K-Gc^EK2w;xze0$7Qmy)H)9T z#%VK)t)}%;x*skQZN8FYw0Vb;Q$iUfr<$7Ez5wy%_!mU+OYGU8^gEaFJVO08pD`ZrOlA1P)F!WpH&*PaMq9IEku6wa2Z+yqZ^V#=Ih4FquP~J z$J#_kt{dcNf;={vRyyFzAy$8ll580Tbpq?imFNhZ1FK*B+sOOza$QDECWu6~91q0y z2BpUsLVg9VE^$2?lpe>pvPWUwP6_WMd7M?cpmfy~r;eE)PebJ+ZBkWBr6SM*6&z&o z9Y>4r?n}SqL4c8u+A6?Dg3=yuKsRffD4>UnmEZt#l{3swdV{%1z#MXIjzOBA@&~?=)cd?a zjorioYS&O73QGGi)QrA6fw5bRyD`Ad>HA;j=uqiWQ)(s=ch1}24}KN=L!$TvReG%eRbhl*)=j{_EX7?D2ynT_kk2a4) zaB?WeGdP)J-o8iO7J2(3Z(ro?56!%Nk18$l_C?;l$lD)yxDzI4ZsAU`Ck!_j>jYfn z?Tfs9k+(nO^7cLQv&h>QdHW*AcPK8SA;XvGw6}PYQn`Q+jCaWJJ$$s@mf^c|yd}eT z&&%~9!&l@2raFvL0T2OBLUG&sIy==&s1s5F`Z6lAtpJqi7$mf>ReF0NFB(3E0nnM?xim&+)rY$BIP>$`N5WtYhYy!NnMX85|x+xM*1 zB5%J6Mg5ZyaZU?3SQ(1c#U}APpo>ur-hz)wX!qN@yB6yHWFL`(S8;NKneRK`e@rZ@UHakfyDW;xt9}kPPbX^Dd#1+pr#1w z{;OtEYEC!erOo)^K%q#>6x%%UvJY-~O#+9veO9^a=)M}5SdONqj2kyx`EUR}Gfylp zxi5@->3NO<|2ce3(wx)LuNKy$i2(Ma=G|XVqGlc{7s*g$BevDR@2kxC`PRVSZGgr} z=!UzFe%9qVBo3@ZZ&C=+SHf=A(0#43iXSXsGHl$|%PA+B7^ZqL5 zd4Cn7>A%CUW2}7H4BupdO6SW16jJs^6wf~vgdc8SEbSZt0U|V5PgUC-@O34L@~ziV zY0>ieDu5{8^+uFUJ|;>687omX`I;#C%9$^SlCPZkgeVDUtVG%5H==|I|6jeC{zxg) z{{qFB6KxL0_p1@5+jf_&d^jLn;(A_#$Qc?LOIU zH;r-h$?hFzp-pt+1dH*9lPc}Q-fn=m$`g3L-H+R50LM}4hCgwZMc({Co?8rgJKvL{ z`fP9R&i~)uw}(kloq1393``9J0~A*=>VWHR!e>i&&!FRco9E#o8X}ht118&>{qodw z*UZ$?(>>eW1F`>dv+9?)X5$6@j1t{Qyg)E9gdG(WQH&_EiXmVCHGl^28Z|K*SHt(7 zI;W~nU8cLL=Jd=sb>vC9r*2*KtM`3>=e*~==x}}26I}M|b4+HQ(A>-HZ5;ZUCy?l0 zy^<)(&>s+quDfxxEs4Hko_nGL%_Is34FeJ-;JGJJ1fHKsl)cpXf<)QNn@>oT0Oy`W zk)ryKLoT z0Oy`Wk)ryKL{;8-KDxus7G zo1f{Ey}bE?KH1BgPw0~X=axRPqWX_Mufue(ggA1~v#jn-TH4u-GSkCzR>Z<{7RFW$ zlL8~t-6W$k3WEX1H$%Jz*N#mZ0=%Gv2Ej`!$l_4GhENa34L(j?|E?;beZ`?~GO0ME zr1NsNLrOp;v2LZ^zO(INC_9AjB!)jwXWJXGec+vKsR%D)U0_~6m{%HQRm!Xaoo&}) z1?HV?d1qVR*|ub7TUJW^`YDv`%dWB3p<3Zqti)~`YlREEvn}sz%RAd9rM!eY+p^Me zhn;N$ui;Gs|gp*=aO%w!IhY zH1BMi2Tuby7v=>}CKTzDnk20)i-mUi8kXAk^-OVEN0#d}OPyxg*>twt#lbbBqk z+MfGRGXisetq=CrTGHV53#Nqg!@FvEziQsu_H)qLmK9Sw)M{s)Z8v+>Y810wPOD$A z)9OAOt^T!Ht2cA4R-3EmyRw;lJ_Y^M&D9;D1q?7|kCa6VsWv;$6KD3OSEn;;(;>ZM zfz4qsFu|Q+a7RnHDioyVt@9vzV~|_tIn-)roo#>aO{;llTi)5$@11Q~vGn#^?_(Nz zvbR>)g0-4=w&hc4vfK=G%_GSMC6bJFXIrex_HpLRn8cZ@kv3Uq^k-;jdjulO@o&fQ zNBqU0(1#66*~s#HgT*$773-i;m@ZE4k)_okJTBEA1KMpv!)s~}9?gc(Bf`Ej#3|}N z%{HJoBeDyPlhFmqF5`LQ#JYAVom{IV^If1$6UA{UXvYmd4pI7Rq*O~C)CR04XQDlL zgpBWv{5?Ue&&nwU`bMTe7F$jS;s=7l!x&RX!M+?QN=cjwh#_8`E>J8c%=*Mq{N-hgf{+)n{L zQmh06m{Dsd8<=-^gSm;r9CB=qL7I1ZgE`7!b_Mej-e8V!n4QCXDk$v2Fne2J<@VXJ z;Q*+A>%b)JBIpLPhoOvVV$dg#G7vOTz#Ia&vW&U{aKAonrY0jPoc?TA|*>%eWnWov~$F1 z>W-w6gW?%^CEbexF7hZ(0hiujmaG3eZz|1m^?9y7&(()`ZzkHzG*|yMZyL>W^?9y7 z&(%kT>)7Ztqg?$H-n5zL>hoNEp4ZDVua{NHJIK|41M9T6ND|udZI{*i@C2Kz-s2}4 zELpwVCz!H&_q@`;vwFGv+ehwihxva$43w^_^TR+KwEA7ITFrCyt5Cc@2@WTvI{2a% zxPf2^52K=VrZd@MLNe^qbBLw(Og4`OJCH>|BIfn9;$jeeFV|`my>L#}p~tN)=lt>(GQ{**?I0QKm;u!@78f(us4%)y{6M#U^ia^sjSrz3uuRIm2JA zRr6kfFmn7uG5is)6@KvXiMu{KAHLj-zg$}*+@^jjL`aj!v&EXU)Gg1RdYRG*`RAxR zq?}F5dFTuY|00Dtag+knt#7v^3(r;;llLF17DwgskT_2t@CC6Ze`Sw6doqM$N+G2q zg#KzxMc1UHbR*Q67%L^am2?Q5*PELiTor?9UOha1mfj?Y)!q5tmUrvXPWSzd|xC$wo#Ls~e z&5g&Yu2EDxlsYi}-5TLXSP-HP1!0UP2+srxdnifRp-TdN#IOCswE&p9Vw|3JV#T-2An!GoSWWy)NP(f$HRnpBHi#zr1PlKJduuKaUS#s z1jc94US`oaJfCSIokxx4iF7=XjwjL$yF@yV+RPK_cp@E7q#LG*bVR3lA{}pfix?LM z&%BWyLILJc(i%xgk?ts!ca1p=&Ucnb=UJDoJc zTG9Wi=KT(0!k>8TBxJ$G@JIZ*(ZVz8hQeqP6aMk2Vq)9dqr|$jtaNrkC6Zj>)ls6L z{Z(ibCurY8QZkv9bGg}LBjF3e7evD7f6>DCgIZSH7sPQn*bhl+YHpi6yM9sI%J~bH zEN=VCqDu;YCr-`v_Vhrl6DWg{kb1CdLy>c{$E{etYUQGDtypyFibZW-fvENV4ji>K zw&1c@sRQP>Eo+Lx0i)GU3OSsi0byp~QW+zT#>N1?$3>wV?o{fObA`VVYfw-c3Q1eG zeC6Ux7cZQ@a`EzI_>5JtOXja!)KXpeq9|ysWJ(@cQ!&Jic4<<3lA zfq4F8s4J67s+EBMp$h$XRmVI?mK)s**?mwP_|xYPf2r^du`ZvL(m4cH;d1RNkiwJ7 zB&1XbZEkt~`5@FZYRJmnnY`T3t5I8Ls{7Sbei#6+?KS1bN@;rW1ACv_;H9QO+MQz7iNhf11XH`wGPu!S6JwR4z4-usb!FN!sqo7!K z?@$#Bf5dMN2piN5x?=rnpr}}DXyg=czkTSb;A5SY2B@gY`Oqh0l)RkNClW&}RheDGIEI z2MpF)3ar&8u>O$-Yndys8pQ@0tgLLo3O|(>iTXW&v|Ys{hCkxJ4G24oAU#civ~9p3 zT}gq|Z35|^XpmyAK$;~^&_Dupvlpqy)#vKkrG9up>m;Cs&yL{_q<_1OXno%FPesc{ zrk=rIJ?9y$Hvp`?>e(^;fvhtARw=7|p>DUZRlcyiRj%s#?-EaVHpM$VkoVV-$#%CU zGTl9yGz?C1z&&rmQ?7qpv^8sWkAyVrj6!ED-10Efe zDj03zq7scZQb8bCy8Mz=OBN9X?k5P`?-YT0aVWN%7F1prE1z7mpv zVYnJ#_)bvRWQ5^83WnDWFw7$NIRn9<)VO zs}apK!Z4P{k6-Gtl>=cNfbeoa*lYx04+X*w0|?{D-Ht-#U&4hS>n~q4K5zB1IrCwz zh98X_Ov^mlJ%P4+>IvoSom*x9&Q+U7$3F=O4;UZs6!my78y@dWa>tX@#|sfd9$KJE z`Y-f{J>U4SXVJ>98UM&-nt+$QXeC}Pw)Iz&hyS_Lho==0L|l9L#h1iZEMHo9P=9*6 zS6%wt!GH7DqK60Ve$e>v{cAV)HdHJ01^ni1%N>O&5dOv}0#mfYNZ2MU2bP3OAdiWI zt2&o~za_@rZVW`&F1CEdO2T#DB_RC5DG23lQG_CVhbAuKz{Ev>9rZyGGseeu{#I<_ zerW{3p^1yQF>w(X>gi9R8ni($aXYbz+iH9~hbAtfYdJ#`XTE49UM(?kLlYMX*_yb>z)W1fS9LA}E=?Q(;bEsBls9ov_a-jt zz{Eu>XyR_eChid<2o6nL)QyRY4uy%k>H&2Wx83-74ozIN5+=@kQRm|Ab_jbldH6@2 zKD@!i74Or%iL;zL1SSqWJeau0j1TY7#6|5*Ty$V2uHUOVmjRb1j)3sEQxM9VxF+`| zuE~LkYpS4$yB(XjokkEGnz$x6Ca!5HOx#Xv;+`-*o#>P@#t4E#6W8p<#5E6viM#4&>L~76Rbj~nm7W&3r;~OZ{p^< zH*s?vn7FwWG;w!=i33U4#}0%G-GgwU0}w8(APE17LDBMfn9@_<8=6C5h(`S}^f;T48BG<(3I*$EDnoE|=i zad?#>4s$)=FxLqVl^jEE0UT}#3P+7N{9CXXOa768FQyT`7?1cu4PPR&sC_y|xDV#) z_oDRl${O6~Ca}vbe_RW=+!z#&8F4vH@hEUA73X*!!R0Ix+NVYXgci`~fuhrdt>O2zBL>rk*Cj4fU>V$%QEf{IvL5epZ<_d=fiLgTal z9sTTdxSt6JIs^(`u(WhE&s}iwB?~W{-+bYMvSEMDrDL=j^cRd@8x($T#NkhrY=9qz zk`2A>S9lKG_JD%^R>bUr{>uG8C1e5vQ4{}BP&i=(;@>Ib0SZF_aRyP6i4+jTd>kCG zaFn?C&MZ~G61`CJ~e>EVSG6Jxd0szvwC;^#H0GNOQfM?di z{%+Hs`wXM;7(*S@|LM*j&#ft#9RDmJylH&Ex2OmFo#6oiJaxKtHh#dxAO)$$md1t9 zqrDM5$U=y`Ps!gdY}6n39OL6oC{hZE_;q?o=MVtXsI3Lh>OTk??iGUnQT+4N_-#Sq zE#vcFOId(V49^cS_UiM`#LusVclPK!i9&hR&V_|1bO@S_5S*u-Wrm^=ojf14J#4&U zDGKLz`coBxW;%lA9j4HL{r|=auh6WBg}$-EF*Nw6Dg@1p_#HvvT_ZH#qon3DgVaD& zzWOR>m6Dnz3sr1(>0)C}FexcEa5e$Q&5uzjgTnhpXnsHm4$NFAKAAxTN2H-4BaTBlB4$CM5ut~pngC&x3Z*Vydc@%-E6F(@ z;ZgdvfKe9)$UXs(&h05SxTSjFLeAG)kn?p~1v!R4;tvOff8U9c!1SE2dnwd!2h{az z74#5&y8+A}0^&K;8;8cVGUCl_}>Pe9m_QIo?8)OP4M2iyNyYHx>>bNw>-X!x@eji8F#CyL|X=tMR_ z%2~iK!Ua%Dq3J%Ri<8k->y30>uj1zYWxNe9179PCKjJsm2zMJ_#%Zbz}E}KWzFm5n>;mT-JYjbn!TxcFS&Dvo2 z`tNPqQf=)fIu*;Bp%?MvN28>V5#2)ado{wnMw$4Cl8Lum$V8-2Y&bnAGVx2hX48+* zG69kQNSAT5>0R$VG#bh)&=T?J57v!l(pXk+F=`SZP25S-9yi zYO!l>E&EW7@PJVk?x`uxIe%E=+&)AKAUWdQMN7F_HEw=FM9PK8>~T3eOd zN)K;Uo~DcgsD{H<<&V?|Ta1!(A0;_=xRRWAERu7?EID)+^P%W%?oxJmZ*!{_7zf*!pz(4&`k{~nl~9=qIq-sg7YV$%dYXC1eY`I2D_tJsWMeo-UrG|IqT6!+Zh zf_tKc-&?q6znOce0m?(V#84X{XjGjJO*Tx2QqeWwPiY+RJjhmReojlxI9h7d{sd@# zNyflhYkSM|M{R^=p8n{gTFc=u?L}8Ljdr!Gvl{JQv@#rNjYeC;F!!;M8B(R195hr|bqu0p*q`Jriy!6s5q?tY@+~R&`XXH3xfhvuiF{{`F<>c=h1j z$Qm~aVs&@Ex5YXe{^Vnu+3-k}0(#EFRtmmbBkVRx!JjE9c+-UxG#4J#ZNZ>P!2@3}>(UoePcF~O9?+67**g2(KEWA@Otmox>x05x zqbOWQ`6>Sj%L+w5GAK&xbDC76sbwGW|_R9{l=@l4=LCAJMZQdNU1~f;vlCT=|4lF?YR=rvb zf5bNhh2LQr0+L)UUzsbt=JP*PJcR$&e=t%kUc|fbBJkB>_#+PE-}mv0fG`mCMU)=p zh6^uJ%Ffq*?B_q9x3!=DsTMwTBL$Jdvy>DRefEwNTgBp6)gEsX$=dtyh z@zov?`nu3FV7rw+`_-O}HNq$E-o9yNkgxA#q+~+M5eH?kpV?8hw%z0{VZAnpy(Qt+ z=5QQh4aS357)JjO+suv}ukZY{MmX(GR{la+3cjLa4J{bv(y|Zv3QVTOPFieNbU<3J zenJiUaW=Y$6ue3cU&FB z*8!~BY^V{w@9wReJoKi~2VbW_QG~szyiy#I=<7G8k;ms}o#w-8;YK%7(p1<**@hu- zHu9AjTKp_S2&e0FpHvICx_R%-g=eVu&evkBYqOuDwV3}13b*5z54m}&bINALNKByM%#DF+*n+~xFJnlz7Jp1*Qm#T%k@k^gVw7|5g(nnc5zQO_t7C455?P7DZ zmHi6K2KBYtJNExcO(F^{Ufu?2WzYf+GE3B$kX$l^Jf*PIqHR%fFx1Nx7hI^Xa}rXb zOP&MSk@-v_lgjDeTE|4gk-4ErBow}Q-XCC9;JT;P22J=Q{yE?<|pldmae`KnnOThdk-44lRd0Zto& z!mU^j7Z9AzwCG`7+u~&_)ix=GVW53zra9Q!2hv1P(xj;*O6Qnms6n++OIIyfi5tBR zhBOTYPAsHpaBb62pu|F&F8tQWmnO)+CtBC)#5N6~`fPPR;!ezQ9W5L+ip+ee`kIclo(e6_{zTwj(b-+trXiu#?wfZgqlD4Tptlms%j zMA_tPqGT&)z934ra^@4FB%rw^$|k=NB@FoQ^=A5`$FAC+#3I=uZ=%jN%MvACy+6cGoKiL0-9UnAN8B@->4gZx3i>Z zKeMFLHh=2{wl+Uunj`IKwAlQ_klXx6g2F~`L>VbZl&?}mImJShw;Z`?6u3C8RJpMa z)!d{fm+x)+y2TOu_^|;vVj0cGAJVaNYsVtx`SLJ@p7UTZsM|`-%HMvf53Ok$*Dr54 zI9MZ%KtC?*AaY@|l{#OL<|eGDjD*c6q)9+?OPUcMk|u%5EonwPk>)xp zX|@kJX>JP&4`5wvBg>ZOTf$dn*oLn}E{KG~<%shLW%{i?*{yeuwe`s!7;mCYbl^mj z@rQ#v$F4A9%|0ExRi41}?Rwl+9XN(kH}Z+IBJ$=3^4zS;+vT1V)n{vSkQG8m;j5nD zvR|KLGV|PX?l7Er0*U^@D~U!2N}}s-L=7#hlh1d|b5C@jnMC2BVL+k;JohAu!1FVS zvX?qvkSKe3^9hL(;M|iaQdIwuD1pm8i6XdsNTPjSNwkTRs6fDTPofAsKa(hXsq+Pi zvX?iXkSGDpJ&7Vk^&g26xZIN{g3AkuI&|l*x6VX|-kl4MwMV>>Xw->2ccdmvgJX@r z=9WG&Y<{Ls_VVTn`eZL}KA}$noLlIa!C z44o~`pekruD-ywes*F_taJbVOd!VZstj)7lBJ=c|V zCpk~A9|b$%Y4Hh4XF8KD-a72ke@$x7Wb^1s(3zcpt=~Yg>QiqzssAJZMGkE5?dU*F z-z6p0o0ZW;04T%0Tqw6z>gj=>hRv`a-01LUN`bcme~l4G!)Z|73cf?%`Gl0sDsa7g zR!Zj-)Vm4ofHx_vfnSi?l@vm_BPDghW@}xYJJhOHfObw!WYS6aX(gSIL%2IsN|v&^ z#=+_5h|_RUEF}jA=aqCXx^`aamRmkOiL#W=6VEbUM=OX$%5$}xhX2MFW{PLn9)=_s z9}?fID{zP?u*2$MT%C3O=IRVG>o0Z2$qxfp=eHQE^OL$d7mJRXivdza$hZ=7CH5~T z-^7TMUq8i`lMm@i944IXydKq$s8RNGn~;L*zqf5mHH>G>Bklc9zIy7YH9Y(Aqfr>y z(NWxQym`&;02)eJ2hDnZSrv>tN)5WNdHJ>}Xh>_lMA>n74H_JhQJgluE|w-Sj;Hy! zn~%F$jk`Zob$n*Iad#C&)0P->SH<^v*6rrPI!d?g!iAuft~EdxH4ru@cTP2hHA73` zateJ;Nri?c!`{@no~tvTMi0R>8msfU<<$8uXx4pBDTO}r(en5Uo>jW3zz5)b0Pf!b zI9qaN=M;O+vqnb?KcGn3uJ%F>O52+U-|zmtg`yP`Mc;j1S&9Yqo!F?rAgQ`r zh<@}3>qc{}2D8PNue24jk-mJzY8t&?*Xd?Y=}q*w+iofieV46M>EkCFEZH|O=Qfsy z*z-z51$DX_vAC7xRks;uYQ7{r6id>lZn+PZq{}k(2IMs^!PFZ9@quVH%C{(|)zBZ? zs?{ItMZ9dRN}@K%roG;Wca?XMc^`jst;Su&KzjAi4?WI<2bv5?pov4Rey+Z>RzFui zAgx9L;N`R$`j}g_y3ab-ww6J!;(pqij zC*$FuJRB4?7p2DpJRH;<4!ZqTH1=lZ`R>|TBHDZqH z3zA*N^TvsF?NU0qR!Qc&KoKAcI+c-<@Z%7gzeY;6)WIr2JvkHYfn#8}jPH&7JwdF` z$|;2eD7Tyr#1908Utvrg#Rzg-9pZW-DD1|#x)0mhL<#R?alBc&w$6f(@`-pWEg?5d zhoSETi&XX7s&A0RcRVe=JFot-2LVP-Ewcc>9u%JS26S`behTQ3VkH>Bj3(YTFz@jO za}$R-v??XzRU0Z{+iE7Zta&Y^Y# z^?t8VBNrxz+6~kPyg`lqN*rp(P#+5lFJY)%=6-UFonqXD0k%)y|3`)nl}83)5SZ=a~MBcD81Vy?vgRpMcsw@;MV{Q?lr+voMNc)cw4<8D?72avb#QMY;C zzF1Gzvw8VDtv;LI>SeK-Ml;Ua_o&i5Zyzc_YSnjm^*e~V@>lgcw%W`rdNB@p`yMr# z=k4QoM$XWjp$Ar=7Bh6&Y(Qsu`yREK=k24gd0zgGm%n4n)B`Vn2N}LZr@e)T(T;DP zw+~9rN8fz(?Xi@+!(2dTdHbHVn&<6vrsfSIYeohZG8p}YFu$=zQ5NZBL zh&0Fd62l+y2ZF+DIMRHHy9QHdiQ}{%3#FxQdG^@Fu`8OtwQAYoh4b5176zk_>2#Y$ zUO0lVVyVN7@fzGdoRfwCuX}X)y2PD)4PhTil%L;#JG`Mv5Ne=#rR8cvP&kS8Z~?*T zOiQOmsx#Cu&_261dX+{Aq=}%UNmEIbeA_gbg)|MWZTh@QlOI|F-=S+=s}tKagqC|K zr0B7r@D{e*%LzKp+kuraoKn{HME|{;OxVk|Xy+P$3UDUjZZ_)Alnrr-gYv3Q$L1QFz zBj4IHmoq<@{`++~yUew6`iuvP@^z_es3w~y)7A4=#0p1Cn*a6h9R9@K{ICE1LD5w9 z{>?)dS&aX&jREGy|7=_1k7z}-tDqMLJN5@}B{+?!GQhA8&Nj-m?#NkZi%wV*F?!y&U`_XY~{=+L`gt%OO#E1BT5+Xf9%cl zN6VT1mng=x_C5VmHJX}eM5wnaHS;ALX6DOLW%;twD@8@n+#3I=uZ=%jN%MvACy+6c zGoKiL0-9UnAN8B@->4gZx3i>ZKeMFLHh=2{wl+Uunj`IKwAlQ_klXx6g2JcXh%!=+ zC|{+B(%Mk?mLoTf0vD&1DmV7knjEq3ZTq^#5&QVD0XSkAc@-bhv2$z3BIWt=Fom9I zS;tfzpq5bvYNtXkV7~oSA6nBi&dYB&I9MZ%KtC?*AaY@|l{#OLCV`BRu=#{E321If zGvY(iBv82}&4?$`{5WJwn(ZdiTxTWC_8}+DZ9(B*cb~lLv-1mWWZCk3OW@&*%al&& zP?cYl?~=1=IUk;b{zWc`K<)f8t8hms({J_3ZoPA?txxvAcoS`+1I=B4;ULekD~wpP zPX}+6C-8i`9=BBoj-k|zeB!K#y!nAVH|z3txhF;S+1earg%DEsswcSY*XNkbJolVC z3}>D|qStsOQIugnAQD}7<7itFeaAfaL2&Buc<@PofAsKa(hXsq+PivX?iX zkSGDpJ&7Vk^&g26xZIN{g3E^_`aQ2CiV9lzokR(E?nxAZ=VuaSFLk~kQTFoY6A~rB zxhGMisQx2S0+)LdMR0i`QHSo__12l_(7SWNvGyO{NEFwPDMO-zQPyE7f|0?oMqqPG zpBOej(vdb0sz^@i1|%IWxyBr}&~w%p)3a8i z2<>w1Zug;D=;pHRAMCBQWZ~==O!=;dchwfo7H4$#rt(Sxc^EaPv|fd&3hi&tW~8M3 z{$OE-IMsT->eQ}A`>f}x`?yw%T&vaeXlae4q#*4(rR1*+b)=+D+x7s1tkupMV|vzV z6f#;)t6#9w>OLE-{94%~rk(+LYx}a?)bfK*Y`zr}ao#By(n)2RmV&*PC9Q z&a6#`w5Anyhrya1W@7BWh7%jORs#yqj(k{ZwX?>U9<`b`#^jAL`8pPxbu7k>G2?sn zd3A^s8aU5VeP+_q&TdqCCOl_FEIemnY!wurF_5%fky3RwW@?yJWvLvX@&Z0e9sH{7 zWF0g+9&}fg7<8-q`WbYqcgCYk_*B{%-R19y7AbrMyrXSR^lwN4G@whuR7#WLJH zi5hceq35lkz3qn(V2*DghCkvj28G)k2AJO)EH+!KSRMbuba8TzEUgaV;i>)@^Hl3V z?a?9w;1OZp8R8UmpJpPor-xl=xQs4n*IuVEPONK}(#f?-GT#Nmzlq|w6gUjv$01mM zjg)Gsg9>H!^&50vq}k-sO1^;tQkka=Ls=|KEgQ1~In)TPb7e*_{toAgVfMC|&F!;e!vRp=;}vSO!pNa^1ND7gp+?I-9BMaE-|r1-?2G46 zJB7Myql&Y=N9CI=Ju01YTFxp7`^^16gJT8XNeq9W%>4(j2=L5(Y9_~%etAM*WfB5E zW$UVqL*_nFU`HM%Iw*p#w_q=iQQ5&q3+b@dNGOq$HAWl_r^$JA<}`6q zLds?pxL!UhrE^MN$*5+^aX7><&fF(T?B1REquSzn$8?+CRo8!S+m>p;&K$qE|H)TR z9ksS%di-b<0$}NmO>ew;&F(XYMQA!!mQ9=(M+B2ioyH#l}tc@C2J2-{U75EIGd0Czx`4_q@_j z);q>?e0etD(7V4`xyG1g?t9j1p1EIz!v0D8ayFyZtp+zKU(|vnJPd-;na*U3>B-@g^>6{f=}b$dp1QWh%T_{l9;nYV47AU# z25F_W52T5pq)AgrlziJZn1wVAu5J3fN|PU&0^gx)U8@t@G=!FWD5U7IpztuZ+{+0% zU$j{6sh268P~r!bS(CGAIjOa1AP&c*rAOY!4dC*`5I90H=bb81zAw}Ru}bH;#+k5zUCS~ z-x~M_b1aaF~^j&1Wsp3Q!p1A&|o z$lUT}Gc-Rm$yvkV*cHv+TDoe<%Eb%kx2-H3phOP(ZJ0(JRp{+%0|=^WD^&kBRC$Hf zeC;Sw_toj`A@KopmB&GoGhgr}TRHOyUlP#V@?|rOrcKIOvoyA(ZN#eN zPjx%ymM@#Z44I%(`SK8DysV93ezQ9W5L?aH_E8Y7Mcc3Et5GMbO+D|ERBxKU+!jh4CklF_JT%7=HqqTjL+~ zoAKYM8-KU6q-a00q|!Ej>jkzpKVh09?P#>v{KSyk{6~VqPH#jRDMysAQbak$LX@{0 zxoH%*IIVNbjeWHyN9=pszHV{EK7MQfj#x$xvWIl++}g27dA>YMq37JIIMFaGfBUIE zYgM!x4i45xBhZfvJBVD^Y^BZ@q)8xSBy2t*O#+%*(v0|!GznC0Ni*V!G(Qg6l4iS! zG}l>4vwg@(b6Ze&5|d^dS++di623CSHhd*=K?Lf$mx)9?LYaQ6Pj>5_V{Lu12gaLd z6CF6wD|qEC4xQB*HuKqR{E#?iJU`i^<-i4HWAC>%5lNR)u*oOT@CaJeT@1eXs<^l7goiptaYokR(E?nxAZ=VuaS zFLk~kQTFoY6A~rBxhGMisQx2S0+)LdMR0i`QHSo__12l_(7SWNv9{YAiQ;NdWk__S z<_CadjlkxXJ~3>5rcd_r<_r2{FK<4fPXe4<`oxOrFZ%3yM&$zg{kcXDyqxWj z5^^rot+d;Bx&0W558?ZX;Sbd1_P;S%@h-Pie2KB~C9fsi$-8Ya>b6yZF1JL1d6!$Y z&UZ2Ylq)fBRc$OyH;lX75+!!q2{T;aU2f%2lGOO;M9qnsRndQjU2Z+B|0PEKUf zNsw42osdJMOgR$YmJNaUetr4by;h?DZMxN#U1h<2s1&-nhUy1)~Cs zymvJ;=gxO!Gx>a~*eW)pRh@-W^`KilQdY@dN#1LY-U+k3-t_8pW^Fp8S60?aI#SmF z6NZb+>P=>$mTe-NAf7My6{uH%kKkHu*ByYB!`q=&JL_`mnX6I6XgRHZ!A`6DY_$5< zX06`LwYmzKHLlgXclByHUo_Xwy4-ryYTo6Rce&+VZij7`TcXvx%PpTu^FjASX^o_$ zpi@{1O=~(*QfG;lTmxUodg~-AT7RB+mhCiIpC+A#|Hc<)mYPkghjcw(BHDZi_~ zQIVDMGVFsE&gwqRLP&WjM0TM$FuEYwWjt@3Sl2G4lWUb^z6<1NqBt&_8~J;JSf7e6K2KLQaRPb0kZ>Mt|G z_&`wj4aV3}ST&bjhq8MjC>+4Jx{q|-M2YWYalBcBx6XnD4x4U>H%v#R0WF$~S`6ED z#Ht=-6Tv`$(K>+HNW2~tUh)QXbAj6l$F>+?{;fBdn>frNH!vUe26L3d>1-e8V! zn4QCXDk!{yVRpajg$llM`|Q|o0MxH~g&Hj|a;V)vebg(|Xw`>9?FQ;&-k`>=cn-Bw zsJo7b{IZIU zV4b(WS65({PCPm|!oC-@U4IvIdpOn4Xy_OXQ32h(sl1Xv_?hE$zy%8X+q2-J>~BA~ zPp#*Z-qWzpdM??=Ll}9m6O`2Ze6PF2pVZaak-wNLv7WOJuO54Hjob|@F4^9+)e^x9 z30RX(MY7+=W1G@RJ@grXB5v>Y-i{7A8|r|i&EBkxay$Si!#)VmT`TqUK%6IRhW${I z9{x-z@K)fjG2&=AP0ph;r-_piQZ}o=_3~LMom28kMjdrHR^nk?hJy^M-7ik?G90`N z2a1R0xdx#;%UlD7WjH+QHZQ}$%W&{A9K*8=hews>WjJ^l4qk?1;L(eioS8*0#-Gz? z(QXIeybK2~!@!KGA7!p-Z&m+b&`M;R!Yg`^Qf- zSQ7TPPcS9y?|G$xC+u_g_vgU<&1y;7VZy$%G8~?@nwR0ILP6oyis}h`=tr=!evv$*QYLkQznSqx3o;#jK59uGLyznVgW7HFC1WSs4z`TFuLF zaIIF-yqf$VbG5TF93Hirm*L79mnG2<*Zh3ZH+u~&_!*k$Yx!&I+wQcD=I!c!~ zLCLpWN?AzL$Ztx@LYn;0gY*tv>sp;?oxfU+#vcm`?_XC zU2--p=T#$K-i#j)6pOS>wNzI9bkjX21qcwGV96g?cj{mb6!IKHr5tR#{`MyVux+e% zu$mBXpf7@APc@DLUjh6~%9zu!UJXXEsS(qF0?Dz@L7Ok5`Yotjq>BO&@hw5&1B~C- zT;u0k1OK278Y7__`PQDfocY1@->=KrWv-ReXFO1puS;D+HCY^|*ub#gmRybPH z{I7fW@F(`>|IY6p6iw@OZyvhHV*HP73@|tTXWJToL@RdHf2!hO$Nub%Je&PG2Ld@G zkh$f{=7OL3lC7Nif-l+1nNRqVfaaDjn_)CCODo83Wx*g9F-J_=Tp>8aB5)o8`kFi)y4OO$WFfl7~MXQ8xLFC}F_=S8t|2TF&&pL^0+hi-Yk` z)rh1tBGk%b&olES9A@UrQDynEU#}t~zAS>~*7!$#ZT#6vnlFq$fsB!y`Na4W(A*mT zsNanLM&0Up}N`=hluz%Jb!63O&1e zX?CLw)W3nAmB0N|A6nBi&dYB&I9MZ%KtC?*AaY@|l{#OLCV`BRu=#{E321IfGvY(i zBv82}&4?$`{5WJwn(ZdiTxTWC_8}+DZ9(B$Oqy+E+46i#_{t31@Ri5~s66^vW>@Uk z#jz`zzqM-F;)V0uRu+y>rr+w5-FoL(kWDLZ9vE+;O?2QylktaxJjbpuV$D7syj7mS z^X+=vRvkEoQaAF6vm)~52lCvk%iHCi6xC;Ia}Vfnebp0O_Um&@W}bV_9fmVcAkpi* zk|;{)9T17GyK%HFiN0f=d!hr)Bnk%&0}>_RxhGKso}WpSz0~=FMA^%mPe_yi=bl87 zqWX_S30&?;6v5>~68(W!5=9yGekV}^o_i8S;Q5(E*-M=-NR++2`GiCXaPCPIDXRZS zl)&YlL=jwGNYtS_cfEBcI`r;baID?zjYM(5iZUcRQiGAfu|{BXOP?4vKhr0BdGiH* zvX?iX&?f=TEq!7|^&frSis@hpapaz7S>2now6hy!ribUOh=u1YjIA0b1xBX3Nk(V1 zpa+g`hIkFG9h)=+ctHsbf|pj1#i4u+p&pJKe4M&4NcN3wzsaQHkX|b&7wT5p?K|6k z3T21zoy715>TJ6n+Xvp+mWuE)cE{rdM|o*NoUbtOCLXLi+d?bM|HKN+TVeK~I{w8< z16+xDduqEQ5_kAl&w(5MYc$TfMYProV zcYU-RmcmOY^pTI2$6u%wHhEKN-U^eq!t`@1Ot#w0ZU7FgFdy)y(YzHVZ-wdaR+wyc zdR94xe!31C&y^tPr|aS`)(Q`L(`McZlefa;tuRq5OtxA*vz%6!okl||%wJ-i=B+UE z;AsHo!n^>=gd%<1lB5?NcYpW56eF_+TJQ97_jhI7-%ML!_IcH6lp;~C!R5ha$5a@omThR zX!WnnTD_TTbrmve`L1jxpHCIL#D+BM2rKAkiqm?etdhTytYqZqov?V?n_ivHtWAgX zjs@llk#G&Y<*eRcwm}?|$R>zC8;*cFP`Gyt=j#5u?hJgX+M!lEYlZo!H?8KaFnKFX zzqi6<#nRhvy^m?=$=+JwajexLcLCxwN!!=&v#a!HE)-l<0A8Tll&S30-J8lQ2{d;x zGs`@6e|t6~CHvbyL!4?oU!5*j6=0wBT(XZ(r8zxAa^*y6jijWYS6>PZfI3oACyZ74 zYl=5;dVcF9(@3(eovJR|$C)o<5@)VP+GL^8pP`}cXAoJAe>;Xh;x7h;UD&XcjV!-6 zSZs4xu?`xA>Eh%bSy~;!qfY%Xz@&g#p!Q&!6GD#&`_2%jsQWZG8;Ua`yU;ipU6AZD zo;OacYnRf=wMsJI1rjt-9G3#41wRfQeb-2-mO7{nSWnJGd*B$bg!tab-xI|8tejGa zEVi5u#1908Utvrg1^aSb9pZW-DD1|#x{tryL<#R?alBc&?wtkJ!=_8-wbN0_NQ+dV z+!VV`Y1M-)zT;`}-FfwwJqR%JPMZbz^`P*KH=vsf_ftTR6f401W;EBffq9QNn437v zA;;zzr1?2-Fh@Deu3&!N8_W?7vvZhF1%-VWW^XI3+&()t902u;UZF=fg!msEi5T`8-WxKcXhw47BE_PP3h z1&<28g&6)ox%x-&OE2qD;m+BR77zt4Jv=8jrUQdt2Lgnw9%k^vfIFyDk?i;JwNoEO zL{uPG|5dEOj@)-#iMbNfp%-AXuq9JE)0u2Bb^}b79&RDEXR>(|!wn8+;#|}tFpB=h zULPrO1#JRH&{S)4Fo9F8DTz#Iaf9%g{Y|>0)j(rM6@+4BS zl+|atFhDs+oTlzbDmf^gkyp~aDBvQGa*uH74Q9Fer@W~&&(-I-`aD;E;2};}o0;b7 zzwJ$7 z)qDIzgC(nX`vmZe(&+_zUTNT2y?hPJNA7Qj`F|S%rK{>}2*jZR$A@0En&;|Qp?H51 z98OAg@RezB1Mx*Is2JVM`s)=T%k}~0i!wcO8rH=- zlun#8-XSIATx+q(+Z_GtoLq0a{zuO6S8LV0(-20Ee<+4O;L#&N=i3E8K|*RvRg@q(0RSN*}+vYaO2g( z<7eqjf>_<1?`?Uv9__@_r7kJmDYtBWZaJD+C*@ostMufROnP=z;lF~SkjOxIx17zv z-a5E^CXtu(xp~M-2rfYgjnuXvm!LWm4^d@9R>PsBqhyGx7=ktjNrtxh@M>+l>G%M- zx}jB+n2%)$NDVxO4ffCJ)$EmJSR6LYAF#g>d;m24Iq7DUNj3x-r1PXg7 zN!X!F0)51=5(QKS(kKe3=Hmzw1t@;$NEFoCmo}nsk4I7194sdaaKx|@1ynoGC<>@h z;0O{0sF>(T6x4!=W>KgWHe#N*sz&&k8=i>LG_Z@Z4iD+pfg%!?67i;mCyws1;fbHq zJb~>o;R&@G3&j!|893tztqY-nQ7HWk)?aMap%MR_!lj@f){9!-9Vbk`}{lQz>I9Qa*FyGbcWC@-lO(Kq4JcV4g_Fo8IzD!h=$( zumXv6M2UGK9aZX7Ek{}d(-Gd;gI5b5>~f?Go8EfVZJtQS!-RMu-SAAL^Qh81kq&v; zdC;Gnkd-wus&vd}(OzcJ6-cD>sL?!;jwjObM7m*@NasJZm*iq~lu6 zwR+IC+F2r6K?OA=LCi%2okD>bAV7Ez2!=r=5QfORP9A!>mi|d&>C(oM zKl{tmFFxpR);##?rq@4xO8;+PcyQZ+hpw&uWaaAJ><}-Biy$thjv70>ND4Pd8495lLN+$(|;7fro??1+88 zw8Dw~emZvSsQrIx6+sa1`xnnWVC-#amUuy)m;bF(hmXB|_#Z2lgG2d0IrYx5!-jtv z`X?SRb@bT#hX2_>IcDt0{ePPYbKKa`Gk;V#=OLV?n|G$(H3Mhe+j%_e6wjD4&w&Qb zCL+yzth1TObD^@%(aJi9dF?FerB0G`)tYT3Qq9LoSHGL*L-XOemdNu}wQ9$xReM_) zCq>wrT;a->Kl4+&gNQXBGu=t#foAfXy}aSOf$RgyOg|-JK{Mrf$5%Yh5_v9A-gKn$ zrbDvSYlg8#dVz=pO_arL&9n7AyZ``ABnd^77)ZAhk-n@}?R{$1{@=3S^7BkN&{v2! z^D)mBBF{I}7xqWWJn!~{31_hPI~_mLwz_fwvt31GgJ%FgS6=l1kp|}6gY#9lt=DhM zvAj?3V&z*OP`>pp@hz_*=UBJ5vLSydgWb4L(1cK--AqJ-YngYtE5g{xC-hq0QY)38 zNt~E4J#1T@R1g#()RAjCf zIC+pw81eiCA{eyS5NtB`l)YXgVnN5sg7P*+5xqnt!e3sbcbJ!nIBPoN zU9H+g1cK2s&hj#*Kx zw`P9c$}N%M1|rlY3hE;Y>hM9@&~Y=_p?$Y-9V1D;g~$ifnqg~^)AA*U&~=$@b)wBM zonf_GiD+L@t9q1L)kFJeU47j7F_8(bMQ6QO(BdNWd z_VtGJN}X^;G3f*=1J8-vUMzeXZZ{Ebu8S)Blj}?7qmtFvh-fg}dabssXd~14;hD!R zfZX1iihYGh2Gfkx%>>GxBW|t}%nzEqw&PnJ><2_JnE%8R?LcmxY)SRqL@roY>L-lq zQ~U{$=sPODeoDpHV*)peCY_d>7mhD|!*1p~QX&jnp%KiUCt|{2R)pPPN}7fpx#Mhw zZDqlih-fgFN&j`fx}%_8CqluH;RRV1%URd<1+4u5FUo#P`P+w-zm4U+I4{bD%nP@$ zrQ92dbTDpo13#4Vq0MSH6S?4WmTeK`0mTM(FA)qDRr2aKUDmR#t6@(Ov0$YjY?-yN zmp{yNdk7@`h+(1v#4AJ~xD%z3TnOnah2Ic~U~N_QoY)Um+MWDWA{i`&MX5xp)K$y3 zn}`Ghl^eNPw;_GEZDXH)jmQNTQLZ;8oC?lTjs7i>44%7#q9aIM9j5jWnc!yFlFF~2 z$%Cg%+$$^0V%_hEbkN7D%PQabtG_+fl?m1G(Pm?6F)SO-?V!`W<*wf+k z4I&P_K#TnmKJ_M%3T``bo;fYO5uWxD-p&joR!Nk~Ge{>3(nvRLoK7TzeqP?O%SEHb z&(9!Y!Sha*hmI@9YaL0?Btk)NFQK|}h&6V@RYWRyYL(mKGIMt%Vp&%4EF#*a>Kyh7 zbq+g9O1@=LwY+`oGrEy2qOK+~!tJpvuU3FPIr!uj3$7v3L6_^MQSO9^6X?Y7Y$6rh zh1{^I_UdzpIPl=QuYB+NUsPag>jbOH4}Xz+jIqV`b!H%V7J9YZ;Ku*(b>nZVB zBHt!;==qpB^t>+!+ZiN$nMk-%5q?w=9uelDl$xuMI?{xzKguhYKodsGCej!YZYC1K zlWi2{sk2gwI|%;gzvt4wdL zt<*0N(O}U|?%Cuz%X8E6%G7qJwf^J0?F)vDK3$%8&zgjY8GlIH}J~KO$nmCifzc7WbgYq?Zt+K3! z%CZ($L0mej20etOz-*R8k!(BWGnDIypzx}+Dr#mTqN2WmeuUQ z)-;yeT!JM=zF4~jm?~gGe?P zdo8yrDeNFp&Bb2J%hw53dp$xVgZ3&rAKQ^7728Rqg7xcuN!{qGeY9q#<&G#Xsqp?7 zkqL&by=BZa$xFq4-J-UO2sgJyG{fmrH8U-DOr{rzOz`X)TizqQL=siR%xa(AENBw>dd5WXr)*D1J*!ksp zUeb$;va{B>I9>HAUReSP7yDA0REAnj@nRw#-laQIKkdkgRnoqOS=-uND_i+~*B_RT9KBgzN@Rmonn7!} z^0X~PB)IFuMXD`!5?B@4~Sa8|ADAvis4MZMTS96Uf z%WXs)csC%u1ZFmMSDi$eyTS?e?zf#t1edJvG|o@!#Oe7OX9p1ne)p}8bmS$yBJJt- zWIKsia0iK&<#Cc|OFc$Jn%lRgiJq#H$g_=E`W2A~X5`hNj)_9o$X+2b!P~5TcMrB2 z|La6F=;ej=Zg=&kd8c#Oo;DEunnV{bn@&+moyj~_pWa(*8i+C9k4f=g0=+V;6GB*&B;2F6T;vSUxP1W6diDb~X z!c=K9(F{Rkv@7>q;WmTt7$=g%C+81$HeFY_98A1i3yQZY5&PbsbApN*!45AacQ+ zD`|dF+I5_A+RwP$ys4GEhlmElgeZeWPA3r=&zVy*wiBVCdv%JkN7**a<8dMu+=fJ) zPnuh$WyePLbe&{*SKf5UgKz5*=$Aw?n10!w2VA$5m*mU~Xy>v82K4-Act9{D$XtVd zABqYI7yT&@3Z4zUu5|bs(+s{rM1nPkK_YKbeUnH9W9P6-+Z^4tfrtg~OoO~qUvXs{ zw5gO`LS%z!Rwv1e*zJn=v1zo8b%KRmSG>z!*xEz{gI{BqCjJWJYrK?*1Rpp`H-iW? zNpWkGi+#Ihy1x97bPiZQfbS6LV0AYN2 z;OBq6uz1e?ERP3fEmZ-@`jqgBzvE%SWed87nCSMu=kdVLE|=*E)@!EQ{)tDWZ*>k= zFNO}TocrBlhYe0NjnF^wUsoN#1JcX(UIlbeGwn{z`?L9I1E?sgxso6N+go zlL;S^(c##xt z)bP??LwbE0GU&Kh1Sc+@djHrF`+jN3h^>7;9Xoc^{y(*fAc*(ia*?pjrJ69?g8Lvxdk6H#M)FB|UlYlIZ5+ zO+>2sSm~SZ;jJ3Xko;yZZ&>GN{D_DJ%_JF#E`Qxc6ui9lqBv=YqX?rzw4UtHvM@OiT{T44vjPBh>h(OSbEPLA5kKuWd-tvtc z+s}2E=S4)E`IzSlA`fi2kym$47$-&8nshpTq-}N80%rR@kqxFwzJ6N1ok#;ylfjAB zEOSjC%lq^oRo>~YD78Q*v{&6&D^)f2e8RNVO?6UDbQ|`^J~tDo;C|eYqsh^D`3s9T9-_~Wa{q{C-IoiJ}BQo-fRjSIuui8#=|Q>mK- z`gO`3L?U?q9F^}sq{-BF|9meI44&(TU}pF0kBL}t1+ySGWoPau5@8pQ^pWKOA`X03 zB&R69S?qR;+E6Ql5u0}dz46p_ZqoWk?N}bWzjQ4 zGU)Q{TsIQDO2mPoN=9~vaVxPTo_mN`@Q%DM^k9wb>lX9UbXYrMWBP%>NE2TEWScS5OiHI=7b^||j?cTPF$OS)x zvXE8ASlegt1Q8786vK99x2=zhPZP1A|BL)|Kf71X^&AljCKRDXG5=>DtTDr>9y=)u zJwyb8sk{g(OgL`j%06V)A$JhTU@G4->T3@Zap3M#>O1?Hw1CL8OzT9-M~HMVD9Ax0 zO_Ip+=6oj+3kHQO53L>N|3!qtb%;*&F2)g?S?sloh=wnk!?-XzynjJNf`hOntCzsA zSK3@&5QqYcDI)MVkrBFC(UXBmLZwIUJV}It+5JF1+@yMjNCl&+Ydrpaj)()ZtbOM* z*Z-p07k^CzgD%y7YGE$k^F%0Ut-j8QJtuvM2nOR;)r=k{Y61VdW~37wqao$hI+5(t zP~NB$saiPWrSCZ(;-$!Q@ud^Y@9x~%kqq~~fQSUUWztZ*Y51JoF{%#hiEOYCSRI|s zmcp+QndatIhNEvJBEc<2rkh%m<4r^;Xs5mohrTzwl!yc`R>Qz=8?!^FiA3-OQ7Sf0 zm6gbTyPDeet|g+u^$S-@6{f9g@OOWh7trDQd7=rG=_a+Ge1t~?lVEdt#e+l~nAXiU zE>$D@D=YrjEFaNCsCgOgl1X zKv#l(K}3RKROa?-p2vwiuvk2LO4<`dENCXnl(Z*_JTOZzr=&ea#DS|eddAh$L@fBd z*=JlmLqvk<`M#o}ZC28=L^OCb9x-C)IU*D6k=ff<(F?6NxW6RAL9h2yCvtnSbnoca zonI5NV9H+Ze=_7ClV{_F)}nu&2nH8(rs%s_7ES@@M?8u?CNvWwYQ#s+dv7=}HsI(K{mSY!J ze`7YJMYAC-nwlMH(Ug|H_?YT_d|z4G@3*B@3fO~AHMNFs5(#0%noXShv}Lob=Ks=k z@T7|Me@`dk!Rl2i3TMXA{*1bbj044)M4~yDKn$u?L@Ky)R<*p{7pLYDY5G z?Q9|vO!-Dj{hmX_f(>AM)8w!z)!diT*mkZVV!_}w5xKFs6K*FW!Ln!`1%ZC=b=N=ga+!Gn z-M`R)PWu<0g>>O~u}YNR(HBM@KE|1;4Y%RC19)V*G-F5(R{kwJ;Y_AWh)kXHDy_Q1 z4hoa}=yyp2y|cnE+bxs0(eju5#mVwwBWZm0A3oRk=TjT|{nAL}f&WSJ4;H~*sRq$h zKfXL^^@=bGr`#e;;*$OU(a@cLw-b?I1;;9K z_z;n3UJ3rA3k~SWI)Q95kb8(g@H?|y@?1bv$kVy(9AqHBLd2PmdA1OFU}qSRfxL17 zvoR$q|8N<|2Z)w}Irrd#&wNt6g{XT28$-mmyoRX0ySGjDhGNbnq?FFg2(kRxlX*@Bd7~$t< zil6Qv8VSZHtN1BX;SdLe&Uji_hobEw8VWY?45d$PqC_tc!Jxf{V5TPPi$pBwSXNEe zmxx68%QG}tUnb(f9VY9xEJA9#iAZpVX-W^|aQ3aCjQ3k28O+gThnYpd_V+|I7#L;~ zuziyV2KT>_0=B0Sb-|#Il~Vyn3fP`bB!eGhewl~^x0=zKy6cHp zuy=bFP2F!1xu8RZdEWCw{di&n5eXL2Z8E=`h(IuU##vsFTGb(?l@nRI}(0 zUr{Gl7?)E^toiZvL@xM1e3UNo4MZrJB>A@e-ZM;nL>-wAAEXT(Hw#2U&@Egi)^B-l zA@aerX4qQfh#rY4?6$2=v>B!|tad9AO}C59Rqgu6L?*bBGt8B1Cu1rR!*^->-eeAY z|7JFIyh5}age!{4{%iITPYrhy;pV!ivOl@LOcPKy1FsR$V7MJIj@GCrk}jAJZH?;=$!B5}sM>F0@jYK*aH)a_sa5Iq$E@yd87&TPjULqJQs*D~g@DvdXRtjwT z{Vx->>>!X$zyB2?5ZsAG@4+*~5r0D@g87&1Ik6wCwC~!l63JjGEJ|f;Osb`rb`z0c zpsFS>G^FpgZS2#p5xL+Z&N>$2w?r~{?k*p?cH3S3C}0nf32ugPHpK6UbkN5t5hUOF ztG_+-R)1xaW+XS@Aj%3to4`p6&s9gNOq!&|-hY%jq|XRB+pg^UP^!z4z0I zBC0TAl|-pLgLJYWjV6_!pH3u$eqP?Odr@eqt)4-|g6Ex4vsun0LP2jYp}I1z%-9WA z5vky*Rc?#R%zebfn6rpz|5xK#RudWF_E?rz%j;36CzYJs@*S)p(m|ISIj7}pA{E?) z%sDOR5OLtabzk}3oYS(lPO#ZVqO2o=!92B^tRZ97)J}A6%}ggaCewLDCYYV}?c_z4 z@pJ2mTrlPfm)J_Ud^a%Xx?e~{gHNPp&i*iNU%o+PgJ%->MzSkht1VGm>RE z(MBQ?{0`G33cbm)tHW@p%ZOaiq3lDGrt3tiLW3dBbW80>#%FgM5eaU9Rju2c0(3W# z2|81?az-e4jEDryRHdI$u4@jvh)l3!so74Qems!Vbla-&|16OYs;vfLJA;HT6A3q} z>)4N~>)0d0Jd{#%6;el)vk-dTeMCOE z)!GNi{U;F#7Oky=ec}TE@qKx=@8sKjh8qgjh5Ul-TwKq=cbJLHASh$Zoh=OiVWYSF@dx>vcVqHUogTbjK%h=K%-nB%c zX_aL)RF<{43gXgHHJF?sEulr0M3J;eo6k_LBZ9)K(yFML^}4#x{ojaC@C27m7M&!n zE+&IKms`_VX7TBFe*aD+gxQUsbltGuz8!jjcD?I~XfURg6^_7|YI7qIX)aE7f@5*A ztwboe70HZh758r<;=lmA?;6q%^CAnI3hrhi9L!0p;-YQh+$}^Z*cVe#Nob7&uP_=# z?;w)R#a_#0h?=w-s#V-Uq?(JpmOG>D^$3v++NTVeWoA@Ap9ln3E=|)UFjww^I+59X8A`=W!RjTLadC+Z2kw$%c7ZJ(e z4ACm8m#=WDHe=~LS*g>ji-~x6m+naYv?C{0N&6aRZEJI_Y_b>T{;+)H=*{|4A{(sI z3|h05r)?o3!CfaVQe6?5u9c@{>^R>g^1%Emms+F@A9Ku>+3yjt;Ies9tdoTsh&-^a z<{C|w+lV;uZa{ho%xvneI*BrOg%j%CZ#$6)E?MDeoS)W-)AKdX4k8Zx?pqz{$V+-f z+S4y{cM`GS4iYWP<0R3RdW?uPw{J}oJyj=>7s@4^-qn6ZB!U@vHK=2v&`I1YL?(Ef zweRl1RJA#b4a!0TmlM3$ZgwTPDy(V*W~f*vj1EOP@937(NlA?`t` z-&Ebbmq-SED@tT&$T60zW8$pKb%`=KS1M{X?{`Kb(|t|y>YpDQ!9B75ei4C6PHzqF!!pi3w>3R-k2s zMj@3GwW{AE;=%nhb-Tmv8HIHv5et3-X)BDR_GPxUeV<4LQ^j<|=JW$16x^KhG)x>r z&*|#gk&Mos9}$O9d{FK}fV>6|*DRu-N$nO{qUg5Ff6r6OddR&O1V2}bpavM?!+ z#w}icE|Cj1Z+$5#U)n26omVGO+O*_&=M#zG+GT}P&3Lq|-Is}6Fe4sRl+2KD0g(#c z5tMshS02fgnS$|Z;jTaDr3x^jr$MG)1N{827Z%UipXKqutfeX-S)USK@pn8dxNJe! z5EI@0_dFi>+2t}l!FtVf+duKB^sUa}N_*zu%DLY?cG%!V(+K?&|8>;?JRrSn?^Qqt zHPi0YOr9HmMdZ<0!I6sRkV-kSH=&reGMV6_l}rlgCMFPGw05d^US#rUO&~*dHj-ZV zrt}Py^|Er*S-)5|)2&`65`N*TOAa`6dh_m0uYY=K@z}xR!DK#l#MoP7=^Jg77bc%P zbjk5cjz9U7&o7xeLyF9YNat8l-t8PUc6gB#Zq)G7UPF3)8Zzj(R|F?6o_hb-5&M2= zg%kVzbnMts`~TD`f*{`aFY5OkMg$0@oo?!#Ga>--d(*CD;56O5qw>n#Z|B9MbxNFT zOnv_c8Z@il!K0avb=DAh;HKuav!o{vUJ`x5yopFPA1i(HJ-k(e8Is@ZQ%dphy+UkD{Zf)t|1cX z^yml`vftumiP63L2oVT+k!4T&`Y}8&(p$cfWBa+jIlPF7GavI@LF9ogH}dMv3FD*) zTa!-5kF>3>TEJ}IC$hm*$=4TR+le$VH5r^}%`(^YvAjpf9!KJkqYj2zUbc?ofo$diC{SYQm(V_ZA2Vg$*o>p_>O4$n})iT zNQOVYicC6uCe#V@HX;>VzTCJlyq$;x{X3PqNuZw(+(9IQ_s>!J{zIBfZTHXj62aiP zZU|;}zy6qr1y?W&a#MEZej*We@kk$89w6etXGL;~@|)!zY?s|7qCsCDzNnkb&CU2> zA{dOFLELhhSu$>HeUB2U@LnUADpFmwzbtx&NCsWLo$E$|SBW?CAShw;<<;2 z1@FlFLJ!u+zHTuuO@}3f!tEL}A~q9&prPC_^~B2q*X;VejK~Gsi!wiN8gBaGfmgoDA|7w5{PCD}NY-cF=~d!ZL(Su7#T zn)eaG;FFoW7mJ2vEGcOz8fh`x14KIbNy*DfL#{0z!MRvBY$pTQGEFql&e+m+q6J}y2@#De}W z^3(n7UM=EtL@1b0gcim8pM9{#45xbRq%8Ch5eTO8BB(IoxRERSka_gkK_r8ze9Ne> zJxs)byHBa_>}S#fA~S)l&%hob(!ro02aPmIBFmfeokT1c6tXfTub9q4^3M{6Gz~e+l=w?Mv222T+ZjFDE z2nDnIfqb}0^$d{;Mpf5%{QDdc2WDCO&S$RwMYS*fng|A6s{ho&T)gLrP|#X^ofCUb z`VtWg#;vLuJxtUB{&&qtCpbn!%ByuE*{7krQ72NhaK@9Ob3VjNk>}z|Cz#*exwRu1 z?tK9f33kh*p?K5qIlE(29o7@sU?H$NI-4zpUn4Tj&8rMY-$+D)TZ~LMwI;`#h)~c@ zeH{*cZ+IyY30|y*f!{V}hfWiT;0dBsY@8}9k^Ocxwe4L?M1$)Wu9PZFTi4+4{xC0~ z!}aq-6Dre9YCri1j|e8g=JbjOi8wH=n{CM5&p*nu6KoN+47q!V$O9whsDW}jh*0pH zHjMSq(*;w~Z?T)i;u$eaOP3Hk*Q35HRb+pBpVC-T5z@#raOPY|)7 znJiP%o+R?XEWwodsv{ z)G=d64y8>>O@*1t3CE2cJ@ZGUodCBSySVxrvmq^-4QbKT>`05IwDiTtRPW>a%F=$n zEv-_(9(1ayHGGpu2qV^P;@qb#n`Jfsm!^X!RjmJeIuQ?6uToJsGmiFW)J! z;Wk`%0FO+UW(>)}%D-hNoXK~`d!jM@2v34cFQDgwESg%ak9MF zNE)C0htDk1tPJy&{alDYpod_@u*@Em`^}jipN) zOaAOH&%F4czq#SXQW@`*{@=dv;I;z~y}A06sSgaa@{ZhJEAOx+$Dex2KrL^2+ksdu zZ_#MAyhT&9spT!2(g#pOo^Ii*<*i##YI&Q8H1nzQY$o!+U4Eom-c};je5`c!yLsVn zK0MbFd0-Yakb+v_icaRtl<^KC)_lx#Cy@u5X|%}UPl;I2Ocs&DXNf#8d9{lizCc8R zCbEbeZha3g06-H-LLoOAy7TXLA`-0NSVayWA`;Cj!GCn20XHz z3y2DNI+vY;4CGgcIP)>j79tPq3SrbOi*E(7@h(NZwy9$fI5Pl~q?b#Gu} zi1?P*5Y>0Lx3VFBsl1Y@1^EY|386w`N-x5-94Vg3lwZVDqr@|rDvXe7qQ$;(*W@PYdf%v|U6) z!6u%e^r=mh=mjDewAT>K)MR~;hy@+Xs>%8ikqCczh9>LFL>#!oWZjlUNNqO}3GOgW z>46;1zBQEbeoG{SIlAmHvk2J!o`?nm!)yY!ZxX@a{x?#<_B5g{81%7nD&R-~+tZ0; z@Pmvz+ic~vL?jrpOikS{6LH{HGg?!3JrN7`ZqK5r`z<0Dbf_@Tdw!@NPi!C}!6Ld% z=64ej2u9C1%S&1Ec9b+-J#==O2nL;M7X9HX>g4KAEwSdu*Auzm1MyM1$Ttw7WRm3D z_IuAT^$~SsK75ciblfZu2|>4Tomju+y@kjJ)0$yxkt2E}rm)+#I?-mB&am38L^Rzl zHdnRl9}}72O3pA>uAPjjL=4}h?R%3s?ERbB)bR?@ZV;|0Ci}11M?5v$O@y24qRRf{ z`Z7&G-3+`&M1$dWpn09?9^5mJG!`()Uty>HvRrrh(K^B61@k{5J&tCkqG8r zvggEpu+qM3ze*&7rLZWKu`#KZV%kkaf`O`}^`n42L?*Zy!r2hNBho=1t3;4|=db?u)X$x)60YA9x!|5NdS=DzL@apS5qr7^ z=nWzcyg-Zn5%WggBvQd`C(bjcrS;xVBZ{cPh*c7$@(j|+f;5^`ettTU4ElL_$L>X; zrM7wo5euGoM$Kk9lL!U9y@cw@xH4lmTt%dUr&hTwE;IKL6JyRIqWxcuXIV{Tgxh0T zUM;Ujot{*3a?5wHhDZlpZseSnvx!u27c%FxoI}Kc2iJY&dvi|9+B(5z8;P=x2nO@i zYO;omRZ~0BxivGL;FwJ35t(3i+P9MzS;o(;Cvw40OU+lWYT1FUM@<`kg2iA>O$s+BWB!DB=uXr?OtjB;Ib*hOT59ZSu2 z>h$A*oTl4WjsItfd{AvQ2-_JXe3?kNQC-J=R9(j&5$2(knyZjH(uAvtQq0hVeH|`9 zxS2=@PqtB*r_M?#>dbD%X(A(B=58eV&MudVVxOB4UByn{y8RWU#n#MAVPrvi~cOoIoZv3R{ zhW+;K&l-Ve-jZ02H1VqkbamK zS=dx?HxuDtPFfWgZ4>8iAyUDq}5QZ;tnF!Tn z8D+0Wh-A=SW#?l%vZP`=iBzzD-7l#dUA2$a%(UDQgN-I;L4?Gngr&`T~H^J zjQ)w6<2_w*SWjevL8?mi+&mAuO)1i-AaxOu49*a(qI&rXr)o2{-KAVi#KXIEN9v~? zIk8IG*Dz~an`>p0y)gHOPSak(ks%Qewn+Ihy{0$XjvX7iMG^ZM5MWWYnte( zI*GhcF5&d9_A4S0%*d-j9TSDFk-b7>g11@w?jCG4>(_~B(8~+!-R|m7^G@fmJ#8W^ zi|8WpQ@zIxy>hmK%H!4%`EW5k5K(@cuGGauD(Lrp5!pzWrZy6ppx+nr1}YD{UM5Fm z>1j}lco`85`h6wn(bCN_HxQBF8MzeV9+dh`)!loEWYD+5R8~=LMbrY`S3gs#nRXGG zV0p?5((zCk=?NkbbSW>JOpByEQI+>bitMZgFUZ5%@IZCGALtd>c|J(*aXx8om6jbF+0%8B=k!}3{O?AtZd_2q}8bHMrme1}K} ztGiJc_f|S_S(ONLuj;zc$Hpy0J{W1M3cZsj-niP5rioPWv{AJ)Or&x-ZaiGLoX7>c zXDU%^8JyefwMS@;UQs7r>W({}n-*mST1IFTQaMqp`aL2Z+&@#dJM5lOSXUCU;3tr_ z!boagW?S3$iBvFEOh;@^KOjQE%_&dA#4+@ouC5))=s3T3XshA$ z3G;EqSwt+D<`1V3+pdXM6T#qBUbIZgU8b?t5Seg?o%oe<^s|XP(9!z>SEiB9sS|2t z;aQXUwL~cBO;uVdLRM<^))ARtRG%mdlk#ZX;^pTOxnT3wmy+_Oy|UDKbrPjbOOAIw zkqE9`Ryfs+N6XrMnaBk*;z32p3<(zyso)(!x%YMDk(^Zl>aIWMr3x^jr$MG)1N{82 z7Z%UipXKqutfeX-S)USK@pn8dxNJe!5EI@0_dFi>+2t}l!FtVf+duKB^sUa}N_*zu z%DLY?cG%!V(+K?&|8>;?JRrSn?^QqtHPi0YOr9HmMdZ<0!I6sRkV-kSH=&reGMV6_ zl}rlgCMFPGw05d^US#rUO&~*dHj-ZVrt}Py^|Er*S-)5|)2&`65`N*TOAa{n))#kg zdi~Q=i^mQg4<_@eBgWnuOW$atyfFFXp-YZma{S4se16H)8B%0EL^{Wc@^0s-vBQg` zaHEEo_8QXb(~v>Oy&^bq@zndrj@b80E1cNxr(?&C+W)6k5d`tRe^I~ZFd{%G?Q~P` zoDl(t-Xth0v512;9Voh3ba@RH~Y z=1oMZ`B>?j@8PW)%#i$MFK<}qXZ(nW1oG*Q2!QLox%L?l=WSZRATbq$e7r$2u+ z9NW+J&EZ8vocWmN3L+0|xsg|QP8cUe*qU@Yexz-6)dFVwK9LQkO1{1j+fJl`smb6( zYnHjDkL7)OkSgzVSCm?y6WXh8td&ZNZ(%%P+Ulk{sV2G&`(vM*iBxdE^F{yG=)Aav zNCdb;q62m=-;W- zO#=OV;0_`Yynl|$_aD+^YP)~Fmk0*Wbwe<-`}M~}EVzPMkejkI_Y;Y*i%0s%@&FMB zJ}Z(_l;14(V7u%t5e@qK@I~EZZf?d86Tx8Y4C0p4%#v|q>wA<)h4&h{RFUec{bkWJ zL^9~|?OZn!yh_A@p{g55DY=zc63;zEEO2I^mZZ@+zY)R%VG&x*1V4h2A|C2y;w9XV@XL%(MXHg9w5@ePf}jW zNbb-u)N^(aq2MIJz|Epbr{(5_BO@z3H!Gz!!&sfe9ws8f5Zev>aHu}5xONe_;Ac=4 zvdS21`wX5Sg29|(*skoh^>OiOA{O+2k)Q5o_i7QJBSOK1BD5&x|LlV`W;oSjCuO0B zh(Iuv7eR#y$BkUshs>kT4k8&$=1N@I`YN7iNd|FNjER5VmCX5*YSM zo68FVQD8Ae1Rf_cLN_aVGGI!mbZh*RL@1cu59Gs5s%MB)Fsi!7zvqg(wB%}Fm6@N=wYH3@V{$DI>9j-QeLeS$vzF` zjXII4g)^QMo%11HiaZxzI>G$z&aEBEaPJFad>31`C1J(b;S% z{2GyIZeC?L`bHuW++t+9sWmy?M1+EN>g#amd&5hKNbq7c4E(k+J9L^z1Wyp9V&ha< ziR`zlscr9CA{t!3aHUjX+PVgR_lJ1_9j>1znoyZ;Qv1nActkJ>Hm6rSNW_6@-E2ed ze*RIOonVWoWysw_L>?G1M-7zQL4<K$QLKv}T6X!l{*(|I1zcd{@ zsbc-#(}{SndXEr9f;VjT-f+Y=eGxVU| zHAD1h3y}`Stv;PasQ+>z)!diT*mkZVV!_}w5xKFs6K*FW!Ln!`1%ZC=b=N=ga+!Gn z-M`R)PWu<0g>>O~u}YNR(HBM@KE|1;4Y%RC19)V*G-F5(R{kwJ;Y_AWh)kW^E3LZ! E4*}Lb00000 literal 0 HcmV?d00001 diff --git a/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testexp b/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testexp new file mode 100644 index 0000000..78a9fb1 --- /dev/null +++ b/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testexp @@ -0,0 +1,17118 @@ +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=0)] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1547)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2097)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2101)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = inotifywait] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2116)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=inotifywait] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2117)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2131)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2150)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2157)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2236)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2243)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2262)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2267)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2274)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2297)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3472)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3473)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3493)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3499)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-aux] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-aux] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-con] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-con] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3653)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3655)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = correlatord] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=correlatord] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3657)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3660)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpa_fm_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpa_fm_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = chkpt_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3678)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=chkpt_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3693)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3694)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3696)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bag_schema_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3704)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bag_schema_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3711)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3712)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3713)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lcp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3722)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lcp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3727)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3730)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3739)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = issudir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3740)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=issudir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3743)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr_global] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr_global] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3753)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = invmgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3769)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=invmgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3770)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_data_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3775)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_data_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wdsysmon_fd_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3776)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wdsysmon_fd_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3777)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3787)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_sc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_sc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_exec_launcher] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_exec_launcher] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3857)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = parser_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3872)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=parser_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3886)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nvgen_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3911)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nvgen_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3918)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_verifier] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3948)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_verifier] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3951)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3965)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3978)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3998)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4030)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4042)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4067)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4592)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = placed] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=placed] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifindex_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifindex_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_pa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4598)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_pa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = alarm-logger] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4599)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=alarm-logger] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4600)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_mgmt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4601)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_mgmt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4602)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = locald_DLRSC] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4604)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=locald_DLRSC] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4605)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ncd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4606)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ncd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nd_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nd_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_fo] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4608)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_fo] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_ping_reply] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4609)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_ping_reply] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_cli_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_cli_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4611)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_master] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4612)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_master] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4613)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4614)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_show_users_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4615)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_show_users_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4616)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4617)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4619)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4620)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4626)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4627)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4633)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4635)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policymgr_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policymgr_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4674)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4679)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_lsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_lsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4710)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eigrp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4720)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eigrp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = isis_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4742)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=isis_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4768)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lisp_xr_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lisp_xr_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mldp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4780)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mldp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4793)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdl_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4796)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdl_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospfv3_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospfv3_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rip_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rip_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4817)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shelf_mgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4845)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shelf_mgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5010)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5134)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5363)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5369)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = kim] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5425)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=kim] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ztp_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5426)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ztp_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_verifyd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_verifyd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = telemetry_encoder] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=telemetry_encoder] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ethernet_stats_controller_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ethernet_stats_controller_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = python_process_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=python_process_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_services] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_services] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_epe] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_epe] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_distrib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_distrib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5444)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5463)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5465)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_gl_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5466)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_gl_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5467)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5469)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policy_repository] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5470)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policy_repository] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5475)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5485)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5487)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_g] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_g] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = intf_mgbl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5495)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=intf_mgbl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ema_server_sdr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5502)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ema_server_sdr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5508)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5510)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsub_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5511)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsub_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5517)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5518)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pppoe_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5520)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pppoe_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sconbkup] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5522)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sconbkup] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_assembler] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5527)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_assembler] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5528)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shcfghistory-edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shcfghistory-edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5537)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5541)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5542)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5544)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5546)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5562)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_aps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5574)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_aps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = raw_ip] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5583)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=raw_ip] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5587)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5591)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_app] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5603)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_app] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-vty] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-vty] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5629)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vi_config_replicator] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vi_config_replicator] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5662)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcl_secure_mode] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5667)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcl_secure_mode] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_fm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_fm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_policy_dir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5706)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_policy_dir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_mp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_mp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_pp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5726)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_pp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cepki] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5729)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cepki] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5765)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5773)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_counter] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_counter] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_generic] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5794)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_generic] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5798)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_none] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_none] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_stats] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5803)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_stats] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_syslog] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5813)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_syslog] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_test] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_test] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_timer] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5828)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_timer] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = object_tracking] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=object_tracking] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = call_home] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5839)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=call_home] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = http_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5856)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=http_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5860)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = smartlicserver] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5865)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=smartlicserver] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6326)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = redstatsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=redstatsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7065)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7066)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7068)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7069)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = hostname_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7070)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=hostname_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7071)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipodwdm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7073)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipodwdm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7074)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_cfg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7076)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_cfg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = linux_nto_misc_showd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7077)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=linux_nto_misc_showd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = local_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7078)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=local_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_vpn_mib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7079)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_vpn_mib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7081)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pak_capture_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7082)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pak_capture_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pam_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7083)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pam_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7085)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7086)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7089)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7090)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7092)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_collector] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7187)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_collector] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wanphy_proc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wanphy_proc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = snmppingd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=snmppingd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = schema_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=schema_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2tp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2tp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmpp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmpp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xtc_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7434)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xtc_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_ldp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_ldp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vservice_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vservice_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rt_check_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rt_check_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7440)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_mgbl_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_mgbl_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9173)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9352)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9897)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = emsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=emsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10818)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=16943)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bpm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30011)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bpm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_uv] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_uv] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30013)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30062)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = loopback_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30064)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=loopback_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=29)] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1654)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1670)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2202)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2227)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2246)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2253)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2339)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2356)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2393)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3478)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3479)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3501)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3535)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3622)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3645)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3650)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3651)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3652)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3659)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3661)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3672)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3685)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3705)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3723)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3744)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3747)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3751)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3761)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpc_rm_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpc_rm_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3786)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3792)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_main] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_main] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3806)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3816)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4308)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4310)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4311)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4312)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4313)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4314)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4316)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4318)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sint_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4319)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sint_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4320)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tunnel_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4322)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tunnel_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4328)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4331)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4335)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4337)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4341)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4350)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4361)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4368)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4370)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4373)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4382)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4383)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4385)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4390)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_notify] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4405)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_notify] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ixdb_gc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4551)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ixdb_gc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4686)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4821)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4822)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4823)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4824)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4825)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4827)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpdc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4829)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpdc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_exec_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_exec_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iphc_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iphc_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4832)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4834)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4835)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4836)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4837)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4838)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4840)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_uidb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4841)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_uidb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dp_launcher] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dp_launcher] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_logrotate] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4844)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_logrotate] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4846)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4887)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = diag_capture] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=diag_capture] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vpe] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6394)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vpe] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6398)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_stats_edm_sunstone] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6399)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_stats_edm_sunstone] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6400)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6401)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6402)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6403)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6404)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6406)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6407)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6408)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6409)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_if_driver] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6410)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_if_driver] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6550)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6565)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6580)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10445)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=11904)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23324)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=0)] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1547)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2097)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2101)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = inotifywait] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2116)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=inotifywait] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2117)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2131)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2150)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2157)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2236)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2243)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2262)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2267)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2274)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2297)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3472)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3473)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3493)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3499)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-aux] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-aux] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-con] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-con] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3653)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3655)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = correlatord] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=correlatord] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3657)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3660)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpa_fm_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpa_fm_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = chkpt_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3678)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=chkpt_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3693)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3694)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3696)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bag_schema_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3704)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bag_schema_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3711)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3712)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3713)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lcp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3722)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lcp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3727)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3730)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3739)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = issudir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3740)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=issudir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3743)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr_global] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr_global] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3753)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = invmgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3769)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=invmgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3770)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_data_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3775)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_data_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wdsysmon_fd_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3776)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wdsysmon_fd_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3777)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3787)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_sc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_sc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_exec_launcher] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_exec_launcher] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3857)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = parser_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3872)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=parser_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3886)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nvgen_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3911)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nvgen_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3918)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_verifier] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3948)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_verifier] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3951)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3965)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3978)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3998)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4030)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4042)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4067)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4592)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = placed] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=placed] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifindex_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifindex_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_pa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4598)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_pa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = alarm-logger] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4599)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=alarm-logger] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4600)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_mgmt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4601)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_mgmt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4602)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = locald_DLRSC] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4604)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=locald_DLRSC] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4605)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ncd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4606)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ncd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nd_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nd_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_fo] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4608)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_fo] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_ping_reply] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4609)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_ping_reply] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_cli_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_cli_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4611)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_master] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4612)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_master] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4613)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4614)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_show_users_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4615)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_show_users_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4616)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4617)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4619)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4620)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4626)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4627)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4633)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4635)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policymgr_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policymgr_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4674)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4679)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_lsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_lsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4710)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eigrp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4720)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eigrp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = isis_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4742)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=isis_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4768)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lisp_xr_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lisp_xr_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mldp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4780)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mldp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4793)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdl_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4796)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdl_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospfv3_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospfv3_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rip_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rip_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4817)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shelf_mgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4845)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shelf_mgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5010)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5134)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5363)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5369)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = kim] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5425)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=kim] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ztp_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5426)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ztp_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_verifyd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_verifyd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = telemetry_encoder] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=telemetry_encoder] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ethernet_stats_controller_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ethernet_stats_controller_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = python_process_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=python_process_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_services] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_services] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_epe] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_epe] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_distrib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_distrib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5444)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5463)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5465)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_gl_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5466)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_gl_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5467)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5469)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policy_repository] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5470)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policy_repository] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5475)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5485)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5487)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_g] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_g] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = intf_mgbl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5495)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=intf_mgbl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ema_server_sdr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5502)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ema_server_sdr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5508)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5510)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsub_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5511)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsub_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5517)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5518)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pppoe_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5520)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pppoe_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sconbkup] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5522)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sconbkup] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_assembler] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5527)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_assembler] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5528)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shcfghistory-edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shcfghistory-edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5537)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5541)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5542)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5544)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5546)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5562)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_aps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5574)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_aps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = raw_ip] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5583)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=raw_ip] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5587)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5591)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_app] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5603)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_app] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-vty] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-vty] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5629)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vi_config_replicator] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vi_config_replicator] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5662)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcl_secure_mode] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5667)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcl_secure_mode] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_fm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_fm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_policy_dir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5706)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_policy_dir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_mp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_mp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_pp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5726)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_pp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cepki] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5729)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cepki] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5765)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5773)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_counter] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_counter] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_generic] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5794)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_generic] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5798)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_none] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_none] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_stats] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5803)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_stats] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_syslog] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5813)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_syslog] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_test] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_test] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_timer] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5828)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_timer] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = object_tracking] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=object_tracking] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = call_home] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5839)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=call_home] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = http_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5856)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=http_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5860)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = smartlicserver] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5865)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=smartlicserver] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6326)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = redstatsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=redstatsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7065)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7066)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7068)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7069)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = hostname_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7070)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=hostname_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7071)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipodwdm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7073)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipodwdm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7074)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_cfg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7076)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_cfg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = linux_nto_misc_showd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7077)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=linux_nto_misc_showd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = local_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7078)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=local_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_vpn_mib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7079)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_vpn_mib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7081)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pak_capture_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7082)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pak_capture_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pam_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7083)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pam_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7085)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7086)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7089)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7090)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7092)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_collector] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7187)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_collector] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wanphy_proc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wanphy_proc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = snmppingd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=snmppingd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = schema_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=schema_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2tp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2tp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmpp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmpp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xtc_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7434)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xtc_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_ldp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_ldp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vservice_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vservice_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rt_check_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rt_check_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7440)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_mgbl_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_mgbl_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9173)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9352)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9897)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = emsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=emsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10818)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=16943)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bpm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30011)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bpm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_uv] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_uv] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30013)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30062)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = loopback_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30064)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=loopback_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=29)] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1654)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1670)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2202)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2227)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2246)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2253)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2339)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2356)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2393)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3478)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3479)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3501)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3535)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3622)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3645)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3650)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3651)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3652)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3659)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3661)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3672)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3685)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3705)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3723)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3744)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3747)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3751)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3761)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpc_rm_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpc_rm_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3786)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3792)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_main] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_main] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3806)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3816)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4308)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4310)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4311)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4312)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4313)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4314)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4316)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4318)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sint_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4319)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sint_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4320)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tunnel_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4322)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tunnel_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4328)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4331)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4335)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4337)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4341)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4350)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4361)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4368)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4370)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4373)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4382)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4383)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4385)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4390)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_notify] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4405)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_notify] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ixdb_gc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4551)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ixdb_gc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4686)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4821)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4822)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4823)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4824)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4825)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4827)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpdc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4829)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpdc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_exec_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_exec_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iphc_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iphc_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4832)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4834)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4835)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4836)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4837)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4838)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4840)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_uidb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4841)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_uidb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dp_launcher] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dp_launcher] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_logrotate] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4844)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_logrotate] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4846)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4887)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = diag_capture] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=diag_capture] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vpe] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6394)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vpe] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6398)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_stats_edm_sunstone] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6399)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_stats_edm_sunstone] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6400)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6401)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6402)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6403)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6404)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6406)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6407)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6408)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6409)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_if_driver] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6410)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_if_driver] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6550)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6565)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6580)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10445)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=11904)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23324)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=0)] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1547)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2097)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2101)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = inotifywait] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2116)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=inotifywait] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2117)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2131)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2150)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2157)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2236)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2243)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2262)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2267)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2274)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2297)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3472)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3473)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3493)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3499)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-aux] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-aux] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-con] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-con] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3653)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3655)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = correlatord] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=correlatord] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3657)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3660)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpa_fm_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpa_fm_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = chkpt_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3678)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=chkpt_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3693)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3694)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3696)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bag_schema_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3704)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bag_schema_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3711)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3712)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3713)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lcp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3722)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lcp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3727)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3730)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3739)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = issudir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3740)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=issudir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3743)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr_global] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr_global] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3753)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = invmgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3769)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=invmgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3770)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_data_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3775)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_data_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wdsysmon_fd_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3776)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wdsysmon_fd_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3777)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3787)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_sc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_sc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_exec_launcher] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_exec_launcher] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3857)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = parser_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3872)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=parser_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3886)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nvgen_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3911)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nvgen_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3918)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_verifier] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3948)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_verifier] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3951)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3965)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3978)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3998)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4030)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4042)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4067)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4592)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = placed] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=placed] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifindex_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifindex_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_pa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4598)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_pa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = alarm-logger] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4599)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=alarm-logger] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4600)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_mgmt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4601)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_mgmt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4602)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = locald_DLRSC] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4604)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=locald_DLRSC] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4605)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ncd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4606)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ncd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nd_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nd_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_fo] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4608)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_fo] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_ping_reply] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4609)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_ping_reply] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_cli_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_cli_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4611)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_master] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4612)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_master] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4613)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4614)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_show_users_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4615)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_show_users_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4616)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4617)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4619)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4620)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4626)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4627)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4633)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4635)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policymgr_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policymgr_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4674)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4679)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_lsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_lsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4710)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eigrp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4720)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eigrp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = isis_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4742)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=isis_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4768)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lisp_xr_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lisp_xr_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mldp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4780)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mldp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4793)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdl_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4796)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdl_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospfv3_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospfv3_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rip_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rip_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4817)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shelf_mgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4845)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shelf_mgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5010)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5134)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5363)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5369)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = kim] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5425)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=kim] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ztp_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5426)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ztp_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_verifyd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_verifyd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = telemetry_encoder] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=telemetry_encoder] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ethernet_stats_controller_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ethernet_stats_controller_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = python_process_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=python_process_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_services] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_services] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_epe] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_epe] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_distrib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_distrib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5444)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5463)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5465)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_gl_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5466)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_gl_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5467)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5469)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policy_repository] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5470)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policy_repository] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5475)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5485)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5487)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_g] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_g] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = intf_mgbl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5495)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=intf_mgbl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ema_server_sdr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5502)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ema_server_sdr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5508)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5510)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsub_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5511)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsub_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5517)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5518)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pppoe_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5520)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pppoe_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sconbkup] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5522)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sconbkup] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_assembler] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5527)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_assembler] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5528)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shcfghistory-edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shcfghistory-edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5537)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5541)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5542)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5544)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5546)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5562)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_aps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5574)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_aps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = raw_ip] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5583)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=raw_ip] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5587)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5591)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_app] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5603)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_app] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-vty] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-vty] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5629)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vi_config_replicator] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vi_config_replicator] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5662)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcl_secure_mode] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5667)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcl_secure_mode] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_fm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_fm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_policy_dir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5706)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_policy_dir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_mp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_mp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_pp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5726)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_pp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cepki] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5729)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cepki] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5765)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5773)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_counter] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_counter] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_generic] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5794)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_generic] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5798)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_none] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_none] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_stats] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5803)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_stats] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_syslog] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5813)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_syslog] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_test] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_test] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_timer] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5828)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_timer] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = object_tracking] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=object_tracking] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = call_home] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5839)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=call_home] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = http_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5856)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=http_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5860)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = smartlicserver] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5865)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=smartlicserver] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6326)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = redstatsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=redstatsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7065)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7066)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7068)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7069)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = hostname_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7070)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=hostname_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7071)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipodwdm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7073)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipodwdm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7074)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_cfg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7076)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_cfg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = linux_nto_misc_showd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7077)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=linux_nto_misc_showd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = local_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7078)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=local_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_vpn_mib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7079)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_vpn_mib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7081)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pak_capture_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7082)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pak_capture_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pam_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7083)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pam_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7085)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7086)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7089)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7090)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7092)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_collector] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7187)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_collector] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wanphy_proc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wanphy_proc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = snmppingd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=snmppingd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = schema_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=schema_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2tp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2tp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmpp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmpp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xtc_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7434)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xtc_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_ldp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_ldp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vservice_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vservice_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rt_check_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rt_check_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7440)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_mgbl_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_mgbl_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9173)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9352)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9897)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = emsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=emsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10818)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=16943)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bpm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30011)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bpm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_uv] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_uv] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30013)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30062)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = loopback_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30064)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=loopback_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=29)] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1654)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1670)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2202)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2227)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2246)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2253)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2339)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2356)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2393)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3478)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3479)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3501)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3535)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3622)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3645)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3650)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3651)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3652)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3659)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3661)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3672)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3685)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3705)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3723)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3744)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3747)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3751)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3761)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpc_rm_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpc_rm_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3786)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3792)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_main] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_main] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3806)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3816)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4308)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4310)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4311)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4312)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4313)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4314)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4316)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4318)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sint_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4319)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sint_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4320)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tunnel_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4322)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tunnel_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4328)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4331)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4335)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4337)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4341)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4350)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4361)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4368)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4370)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4373)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4382)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4383)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4385)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4390)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_notify] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4405)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_notify] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ixdb_gc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4551)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ixdb_gc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4686)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4821)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4822)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4823)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4824)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4825)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4827)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpdc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4829)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpdc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_exec_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_exec_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iphc_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iphc_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4832)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4834)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4835)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4836)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4837)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4838)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4840)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_uidb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4841)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_uidb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dp_launcher] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dp_launcher] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_logrotate] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4844)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_logrotate] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4846)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4887)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = diag_capture] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=diag_capture] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vpe] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6394)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vpe] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6398)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_stats_edm_sunstone] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6399)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_stats_edm_sunstone] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6400)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6401)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6402)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6403)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6404)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6406)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6407)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6408)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6409)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_if_driver] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6410)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_if_driver] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6550)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6565)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6580)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10445)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=11904)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23324)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ma] +] diff --git a/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testmeta b/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testmeta new file mode 100644 index 0000000..d7b3047 --- /dev/null +++ b/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testmeta @@ -0,0 +1 @@ +61314:61314:61314: \ No newline at end of file diff --git a/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testres b/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testres new file mode 100644 index 0000000..78a9fb1 --- /dev/null +++ b/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.json.testres @@ -0,0 +1,17118 @@ +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=0)] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1547)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2097)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2101)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = inotifywait] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2116)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=inotifywait] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2117)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2131)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2150)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2157)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2236)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2243)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2262)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2267)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2274)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2297)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3472)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3473)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3493)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3499)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-aux] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-aux] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-con] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-con] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3653)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3655)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = correlatord] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=correlatord] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3657)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3660)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpa_fm_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpa_fm_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = chkpt_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3678)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=chkpt_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3693)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3694)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3696)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bag_schema_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3704)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bag_schema_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3711)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3712)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3713)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lcp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3722)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lcp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3727)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3730)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3739)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = issudir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3740)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=issudir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3743)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr_global] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr_global] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3753)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = invmgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3769)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=invmgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3770)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_data_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3775)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_data_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wdsysmon_fd_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3776)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wdsysmon_fd_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3777)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3787)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_sc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_sc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_exec_launcher] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_exec_launcher] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3857)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = parser_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3872)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=parser_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3886)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nvgen_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3911)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nvgen_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3918)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_verifier] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3948)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_verifier] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3951)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3965)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3978)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3998)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4030)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4042)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4067)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4592)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = placed] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=placed] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifindex_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifindex_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_pa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4598)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_pa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = alarm-logger] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4599)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=alarm-logger] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4600)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_mgmt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4601)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_mgmt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4602)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = locald_DLRSC] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4604)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=locald_DLRSC] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4605)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ncd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4606)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ncd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nd_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nd_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_fo] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4608)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_fo] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_ping_reply] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4609)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_ping_reply] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_cli_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_cli_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4611)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_master] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4612)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_master] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4613)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4614)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_show_users_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4615)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_show_users_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4616)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4617)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4619)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4620)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4626)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4627)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4633)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4635)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policymgr_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policymgr_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4674)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4679)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_lsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_lsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4710)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eigrp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4720)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eigrp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = isis_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4742)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=isis_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4768)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lisp_xr_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lisp_xr_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mldp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4780)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mldp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4793)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdl_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4796)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdl_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospfv3_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospfv3_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rip_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rip_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4817)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shelf_mgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4845)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shelf_mgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5010)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5134)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5363)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5369)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = kim] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5425)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=kim] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ztp_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5426)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ztp_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_verifyd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_verifyd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = telemetry_encoder] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=telemetry_encoder] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ethernet_stats_controller_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ethernet_stats_controller_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = python_process_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=python_process_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_services] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_services] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_epe] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_epe] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_distrib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_distrib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5444)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5463)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5465)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_gl_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5466)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_gl_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5467)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5469)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policy_repository] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5470)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policy_repository] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5475)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5485)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5487)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_g] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_g] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = intf_mgbl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5495)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=intf_mgbl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ema_server_sdr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5502)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ema_server_sdr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5508)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5510)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsub_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5511)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsub_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5517)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5518)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pppoe_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5520)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pppoe_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sconbkup] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5522)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sconbkup] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_assembler] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5527)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_assembler] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5528)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shcfghistory-edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shcfghistory-edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5537)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5541)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5542)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5544)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5546)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5562)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_aps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5574)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_aps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = raw_ip] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5583)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=raw_ip] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5587)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5591)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_app] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5603)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_app] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-vty] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-vty] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5629)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vi_config_replicator] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vi_config_replicator] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5662)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcl_secure_mode] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5667)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcl_secure_mode] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_fm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_fm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_policy_dir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5706)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_policy_dir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_mp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_mp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_pp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5726)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_pp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cepki] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5729)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cepki] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5765)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5773)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_counter] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_counter] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_generic] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5794)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_generic] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5798)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_none] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_none] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_stats] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5803)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_stats] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_syslog] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5813)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_syslog] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_test] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_test] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_timer] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5828)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_timer] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = object_tracking] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=object_tracking] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = call_home] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5839)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=call_home] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = http_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5856)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=http_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5860)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = smartlicserver] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5865)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=smartlicserver] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6326)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = redstatsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=redstatsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7065)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7066)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7068)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7069)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = hostname_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7070)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=hostname_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7071)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipodwdm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7073)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipodwdm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7074)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_cfg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7076)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_cfg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = linux_nto_misc_showd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7077)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=linux_nto_misc_showd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = local_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7078)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=local_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_vpn_mib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7079)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_vpn_mib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7081)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pak_capture_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7082)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pak_capture_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pam_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7083)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pam_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7085)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7086)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7089)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7090)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7092)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_collector] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7187)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_collector] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wanphy_proc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wanphy_proc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = snmppingd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=snmppingd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = schema_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=schema_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2tp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2tp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmpp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmpp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xtc_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7434)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xtc_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_ldp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_ldp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vservice_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vservice_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rt_check_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rt_check_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7440)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_mgbl_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_mgbl_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9173)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9352)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9897)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = emsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=emsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10818)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=16943)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bpm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30011)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bpm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_uv] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_uv] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30013)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30062)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = loopback_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30064)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=loopback_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=29)] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1654)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1670)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2202)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2227)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2246)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2253)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2339)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2356)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2393)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3478)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3479)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3501)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3535)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3622)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3645)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3650)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3651)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3652)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3659)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3661)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3672)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3685)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3705)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3723)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3744)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3747)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3751)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3761)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpc_rm_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpc_rm_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3786)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3792)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_main] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_main] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3806)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3816)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4308)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4310)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4311)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4312)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4313)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4314)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4316)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4318)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sint_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4319)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sint_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4320)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tunnel_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4322)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tunnel_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4328)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4331)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4335)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4337)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4341)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4350)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4361)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4368)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4370)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4373)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4382)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4383)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4385)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4390)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_notify] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4405)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_notify] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ixdb_gc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4551)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ixdb_gc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4686)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4821)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4822)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4823)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4824)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4825)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4827)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpdc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4829)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpdc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_exec_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_exec_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iphc_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iphc_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4832)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4834)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4835)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4836)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4837)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4838)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4840)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_uidb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4841)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_uidb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dp_launcher] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dp_launcher] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_logrotate] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4844)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_logrotate] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4846)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4887)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = diag_capture] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=diag_capture] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vpe] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6394)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vpe] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6398)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_stats_edm_sunstone] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6399)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_stats_edm_sunstone] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6400)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6401)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6402)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6403)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6404)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6406)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6407)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6408)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6409)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_if_driver] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6410)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_if_driver] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6550)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6565)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6580)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10445)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=11904)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23324)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=0)] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1547)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2097)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2101)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = inotifywait] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2116)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=inotifywait] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2117)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2131)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2150)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2157)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2236)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2243)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2262)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2267)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2274)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2297)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3472)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3473)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3493)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3499)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-aux] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-aux] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-con] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-con] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3653)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3655)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = correlatord] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=correlatord] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3657)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3660)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpa_fm_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpa_fm_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = chkpt_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3678)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=chkpt_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3693)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3694)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3696)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bag_schema_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3704)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bag_schema_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3711)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3712)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3713)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lcp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3722)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lcp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3727)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3730)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3739)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = issudir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3740)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=issudir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3743)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr_global] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr_global] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3753)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = invmgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3769)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=invmgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3770)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_data_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3775)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_data_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wdsysmon_fd_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3776)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wdsysmon_fd_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3777)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3787)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_sc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_sc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_exec_launcher] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_exec_launcher] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3857)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = parser_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3872)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=parser_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3886)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nvgen_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3911)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nvgen_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3918)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_verifier] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3948)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_verifier] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3951)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3965)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3978)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3998)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4030)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4042)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4067)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4592)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = placed] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=placed] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifindex_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifindex_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_pa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4598)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_pa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = alarm-logger] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4599)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=alarm-logger] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4600)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_mgmt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4601)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_mgmt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4602)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = locald_DLRSC] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4604)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=locald_DLRSC] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4605)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ncd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4606)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ncd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nd_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nd_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_fo] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4608)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_fo] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_ping_reply] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4609)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_ping_reply] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_cli_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_cli_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4611)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_master] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4612)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_master] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4613)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4614)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_show_users_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4615)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_show_users_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4616)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4617)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4619)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4620)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4626)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4627)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4633)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4635)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policymgr_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policymgr_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4674)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4679)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_lsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_lsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4710)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eigrp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4720)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eigrp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = isis_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4742)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=isis_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4768)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lisp_xr_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lisp_xr_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mldp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4780)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mldp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4793)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdl_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4796)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdl_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospfv3_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospfv3_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rip_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rip_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4817)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shelf_mgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4845)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shelf_mgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5010)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5134)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5363)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5369)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = kim] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5425)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=kim] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ztp_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5426)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ztp_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_verifyd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_verifyd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = telemetry_encoder] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=telemetry_encoder] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ethernet_stats_controller_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ethernet_stats_controller_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = python_process_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=python_process_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_services] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_services] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_epe] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_epe] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_distrib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_distrib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5444)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5463)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5465)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_gl_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5466)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_gl_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5467)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5469)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policy_repository] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5470)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policy_repository] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5475)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5485)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5487)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_g] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_g] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = intf_mgbl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5495)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=intf_mgbl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ema_server_sdr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5502)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ema_server_sdr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5508)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5510)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsub_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5511)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsub_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5517)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5518)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pppoe_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5520)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pppoe_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sconbkup] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5522)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sconbkup] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_assembler] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5527)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_assembler] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5528)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shcfghistory-edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shcfghistory-edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5537)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5541)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5542)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5544)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5546)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5562)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_aps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5574)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_aps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = raw_ip] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5583)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=raw_ip] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5587)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5591)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_app] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5603)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_app] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-vty] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-vty] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5629)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vi_config_replicator] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vi_config_replicator] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5662)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcl_secure_mode] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5667)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcl_secure_mode] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_fm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_fm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_policy_dir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5706)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_policy_dir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_mp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_mp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_pp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5726)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_pp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cepki] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5729)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cepki] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5765)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5773)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_counter] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_counter] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_generic] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5794)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_generic] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5798)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_none] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_none] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_stats] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5803)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_stats] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_syslog] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5813)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_syslog] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_test] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_test] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_timer] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5828)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_timer] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = object_tracking] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=object_tracking] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = call_home] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5839)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=call_home] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = http_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5856)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=http_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5860)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = smartlicserver] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5865)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=smartlicserver] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6326)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = redstatsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=redstatsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7065)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7066)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7068)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7069)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = hostname_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7070)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=hostname_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7071)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipodwdm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7073)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipodwdm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7074)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_cfg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7076)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_cfg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = linux_nto_misc_showd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7077)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=linux_nto_misc_showd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = local_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7078)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=local_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_vpn_mib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7079)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_vpn_mib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7081)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pak_capture_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7082)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pak_capture_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pam_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7083)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pam_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7085)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7086)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7089)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7090)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7092)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_collector] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7187)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_collector] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wanphy_proc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wanphy_proc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = snmppingd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=snmppingd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = schema_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=schema_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2tp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2tp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmpp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmpp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xtc_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7434)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xtc_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_ldp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_ldp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vservice_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vservice_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rt_check_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rt_check_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7440)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_mgbl_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_mgbl_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9173)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9352)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9897)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = emsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=emsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10818)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=16943)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bpm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30011)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bpm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_uv] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_uv] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30013)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30062)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = loopback_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30064)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=loopback_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=29)] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1654)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1670)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2202)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2227)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2246)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2253)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2339)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2356)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2393)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3478)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3479)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3501)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3535)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3622)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3645)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3650)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3651)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3652)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3659)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3661)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3672)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3685)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3705)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3723)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3744)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3747)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3751)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3761)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpc_rm_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpc_rm_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3786)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3792)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_main] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_main] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3806)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3816)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4308)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4310)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4311)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4312)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4313)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4314)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4316)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4318)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sint_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4319)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sint_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4320)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tunnel_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4322)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tunnel_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4328)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4331)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4335)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4337)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4341)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4350)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4361)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4368)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4370)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4373)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4382)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4383)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4385)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4390)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_notify] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4405)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_notify] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ixdb_gc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4551)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ixdb_gc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4686)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4821)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4822)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4823)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4824)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4825)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4827)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpdc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4829)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpdc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_exec_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_exec_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iphc_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iphc_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4832)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4834)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4835)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4836)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4837)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4838)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4840)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_uidb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4841)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_uidb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dp_launcher] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dp_launcher] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_logrotate] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4844)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_logrotate] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4846)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4887)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = diag_capture] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=diag_capture] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vpe] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6394)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vpe] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6398)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_stats_edm_sunstone] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6399)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_stats_edm_sunstone] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6400)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6401)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6402)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6403)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6404)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6406)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6407)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6408)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6409)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_if_driver] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6410)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_if_driver] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6550)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6565)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6580)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10445)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=11904)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23324)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=0)] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1547)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2097)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2101)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = inotifywait] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2116)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=inotifywait] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2117)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2131)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2150)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2157)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2236)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2243)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2262)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2267)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2274)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2297)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3472)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3473)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3493)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3499)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-aux] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-aux] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-conaux-con] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-conaux-con] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3653)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3655)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = correlatord] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=correlatord] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3657)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3660)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpa_fm_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpa_fm_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = chkpt_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3678)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=chkpt_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3693)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3694)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3696)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bag_schema_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3704)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bag_schema_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3711)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3712)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3713)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lcp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3722)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lcp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3727)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3730)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3739)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = issudir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3740)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=issudir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3743)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr_global] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr_global] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3753)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = invmgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3769)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=invmgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3770)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_data_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3775)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_data_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wdsysmon_fd_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3776)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wdsysmon_fd_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_nc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3777)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_nc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3787)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_shared_sc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_shared_sc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_exec_launcher] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_exec_launcher] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3857)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = parser_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3872)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=parser_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d_admin] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3886)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d_admin] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nvgen_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3911)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nvgen_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nrssvr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3918)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nrssvr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_verifier] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3948)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_verifier] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3951)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3965)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3978)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3998)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4030)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4042)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4067)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4592)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = placed] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4596)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=placed] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifindex_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifindex_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_pa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4598)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_pa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = alarm-logger] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4599)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=alarm-logger] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4600)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_mgmt] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4601)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_mgmt] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4602)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = locald_DLRSC] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4604)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=locald_DLRSC] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4605)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ncd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4606)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ncd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nd_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nd_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_fo] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4608)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_fo] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nsr_ping_reply] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4609)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nsr_ping_reply] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rmf_cli_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rmf_cli_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4611)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_master] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4612)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_master] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4613)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4614)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_show_users_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4615)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_show_users_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4616)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4617)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4619)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4620)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_arm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4621)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_arm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4626)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_daemon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4627)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_daemon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4633)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4635)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policymgr_rp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policymgr_rp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4674)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4679)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_lsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4702)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_lsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4710)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eigrp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4720)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eigrp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = isis_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4742)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=isis_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4768)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lisp_xr_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lisp_xr_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mldp_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4780)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mldp_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4793)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdl_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4796)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdl_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospfv3_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospfv3_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rip_policy_reg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rip_policy_reg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4817)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shelf_mgr_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4845)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shelf_mgr_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5010)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5134)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5363)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5369)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = kim] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5425)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=kim] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ztp_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5426)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ztp_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tty_verifyd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tty_verifyd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = telemetry_encoder] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=telemetry_encoder] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ethernet_stats_controller_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ethernet_stats_controller_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = python_process_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=python_process_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_services] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_services] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp_epe] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp_epe] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rump] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rump] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_distrib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_distrib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5444)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5463)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_connected] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5465)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_connected] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_gl_cfg] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5466)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_gl_cfg] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5467)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_mpa] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5469)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_mpa] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = policy_repository] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5470)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=policy_repository] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5475)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5485)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5487)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_g] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_g] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = intf_mgbl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5495)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=intf_mgbl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ema_server_sdr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5502)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ema_server_sdr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5508)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5510)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsub_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5511)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsub_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5517)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2rib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5518)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2rib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pppoe_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5520)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pppoe_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sconbkup] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5522)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sconbkup] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_assembler] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5527)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_assembler] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5528)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shcfghistory-edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5536)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shcfghistory-edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5537)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5541)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5542)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5544)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5546)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5562)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5568)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_aps] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5574)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_aps] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = raw_ip] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5583)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=raw_ip] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5587)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5591)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5594)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5597)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ip_app] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5603)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ip_app] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cinetd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5610)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cinetd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = devc-vty] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5618)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=devc-vty] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5629)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tftp_fs] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5638)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tftp_fs] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vi_config_replicator] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vi_config_replicator] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5656)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5662)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tcl_secure_mode] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5667)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tcl_secure_mode] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = lpts_fm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=lpts_fm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_policy_dir] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5706)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_policy_dir] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_mp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5708)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_mp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipsec_pp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5726)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipsec_pp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cepki] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5729)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cepki] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_monitor] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5765)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_monitor] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_config] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5773)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_config] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_counter] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_counter] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_generic] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5794)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_generic] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_nd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5798)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_nd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_none] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_none] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_stats] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5803)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_stats] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_syslog] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5813)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_syslog] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_test] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5820)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_test] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_timer] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5828)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_timer] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = object_tracking] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=object_tracking] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = call_home] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5839)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=call_home] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = http_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5856)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=http_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5860)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = smartlicserver] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5865)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=smartlicserver] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6326)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6490)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bcdls] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6636)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bcdls] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = redstatsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=redstatsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7065)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crypto_edm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7066)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crypto_edm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = domain_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7068)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=domain_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7069)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = hostname_sync] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7070)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=hostname_sync] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7071)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipodwdm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7073)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipodwdm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_acl_act_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7074)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_acl_act_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_acl_cfg_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7076)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_acl_cfg_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = linux_nto_misc_showd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7077)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=linux_nto_misc_showd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = local_sock] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7078)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=local_sock] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_vpn_mib] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7079)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_vpn_mib] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7081)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pak_capture_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7082)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pak_capture_partner] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pam_manager] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7083)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pam_manager] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7085)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7086)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7089)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7090)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7092)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pm_collector] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7187)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pm_collector] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = wanphy_proc] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7427)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=wanphy_proc] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = snmppingd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7428)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=snmppingd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instmgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7429)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instmgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = schema_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7430)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=schema_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2tp_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7431)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2tp_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmpp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7432)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmpp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7433)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xtc_agent] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7434)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xtc_agent] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_ldp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7435)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_ldp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vservice_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7436)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vservice_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7437)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rt_check_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7439)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rt_check_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = es_acl_mgr] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7440)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=es_acl_mgr] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_mgbl_proxy] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=7750)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_mgbl_proxy] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9173)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9352)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_static] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=9897)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_static] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = emsd] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10063)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=emsd] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_server] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10818)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_server] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = perl] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=16943)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=perl] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bpm] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30011)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bpm] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf_uv] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30012)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf_uv] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ospf] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30013)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ospf] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bgp] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30062)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bgp] +] +TAGS: [ +0 [/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name = 0/RP0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = loopback_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=30064)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=loopback_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [device = 172.27.113.191] +2 [sensor = system-monitoring/cpu-utilization] +3 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/total-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/total-cpu-one-minute=%!s(int64=29)] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = init] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=init] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1654)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1670)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cgroup_oom] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=1695)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cgroup_oom] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2202)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dbus-daemon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2227)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dbus-daemon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sshd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2246)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sshd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rpcbind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2253)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rpcbind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rngd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rngd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2339)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = xinetd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2356)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=xinetd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = crond] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=2393)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=crond] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3478)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dsr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3479)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dsr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3497)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3500)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dev_inotify_hdlr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3501)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dev_inotify_hdlr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ds] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3535)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ds] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = processmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3622)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=processmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = shmwin_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3643)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=shmwin_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_invmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3645)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_invmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vm-monitor] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3646)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vm-monitor] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dumper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3647)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dumper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3648)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslogd_helper] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3649)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslogd_helper] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = syslog_dev] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3650)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=syslog_dev] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3651)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = packet] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3652)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=packet] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3658)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ltrace_sync] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3659)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ltrace_sync] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = resmon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3661)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=resmon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sld] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3664)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sld] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_svr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3671)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_svr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eem_ed_sysmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3672)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eem_ed_sysmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = enf_broker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3675)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=enf_broker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssh_key_client] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3685)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssh_key_client] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = gsp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=gsp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = meminfo_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3705)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=meminfo_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3723)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tamfs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3744)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tamfs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aipc_cleaner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3747)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aipc_cleaner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rdsfs_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3751)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rdsfs_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysdb_mc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3761)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysdb_mc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3774)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpc_rm_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3779)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpc_rm_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cerrno_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3786)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cerrno_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_stats_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3792)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_stats_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cfgmgr-lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cfgmgr-lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = early_fast_discard_main] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3800)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=early_fast_discard_main] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = media_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3806)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=media_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfs_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3809)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfs_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sdr_instagt] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3812)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sdr_instagt] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = subdb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=3816)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=subdb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ifmgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4308)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ifmgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4310)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = calv_alarm_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4311)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=calv_alarm_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fsm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4312)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fsm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fwd_driver_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4313)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fwd_driver_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mempool_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4314)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mempool_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = rsi_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4316)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=rsi_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sh_proc_mem_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4318)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sh_proc_mem_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sint_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4319)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sint_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sysmgr_show_proc_all_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4320)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sysmgr_show_proc_all_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = tunnel_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4322)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=tunnel_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = aib] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4328)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=aib] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_adj] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4331)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_adj] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4332)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4335)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4337)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_nd] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4341)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_nd] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4350)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv4_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4361)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv4_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4364)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4368)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pifibm_server_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4370)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pifibm_server_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = procfind] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4373)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=procfind] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ipv6_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4382)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ipv6_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bfd_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4383)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bfd_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = debug_d] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4385)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=debug_d] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iedged] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4390)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iedged] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = timezone_notify] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4405)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=timezone_notify] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ixdb_gc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4551)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ixdb_gc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cdm_rs] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4686)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cdm_rs] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = udp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4690)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=udp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = accounting_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4821)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=accounting_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = daps] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4822)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=daps] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2fib_mgr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4823)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2fib_mgr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4824)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_fwd_show_proxy] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4825)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_fwd_show_proxy] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = statsd_manager_l] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4826)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=statsd_manager_l] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = mpls_io] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4827)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=mpls_io] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ntpdc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4829)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ntpdc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_exec_agent] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4830)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_exec_agent] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = iphc_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4831)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=iphc_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = nfma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4832)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=nfma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = session_mon] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4833)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=session_mon] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = clns] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4834)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=clns] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = arp] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4835)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=arp] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fhrp_output] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4836)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fhrp_output] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2snoop] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4837)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2snoop] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bundlemgr_local] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4838)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bundlemgr_local] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = showd_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4840)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=showd_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_uidb_svr] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4841)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_uidb_svr] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dp_launcher] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4843)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dp_launcher] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = dpa_logrotate] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4844)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=dpa_logrotate] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = plat_sl_client_lc] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4846)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=plat_sl_client_lc] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=4887)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = bash] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5701)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=bash] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = diag_capture] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=5799)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=diag_capture] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vpe] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=29)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6394)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vpe] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = cmp_edm] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6398)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=cmp_edm] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = fib_stats_edm_sunstone] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6399)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=fib_stats_edm_sunstone] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = imaedm_server] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6400)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=imaedm_server] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = netio_debug_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6401)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=netio_debug_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6402)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pbr_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6403)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pbr_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = pfilter_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6404)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=pfilter_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = qos_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6406)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=qos_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6407)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = spio_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6408)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=spio_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ssm_process] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6409)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ssm_process] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sunstone_if_driver] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6410)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sunstone_if_driver] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6550)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ma] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_caps_partner] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6565)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_caps_partner] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = ether_sock] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6567)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=ether_sock] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = eth_intf_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6580)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=eth_intf_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ea] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=6607)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ea] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10438)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=10445)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = sleep] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=11904)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=sleep] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = l2vpn_checker] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23324)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=l2vpn_checker] +] +TAGS: [ +0 [/system-monitoring/cpu-utilization/@node-name = 0/0/CPU0] +1 [/system-monitoring/cpu-utilization/process-cpu/@process-name = vlan_ma] +2 [device = 172.27.113.191] +3 [sensor = system-monitoring/cpu-utilization] +4 [vendor = cisco] +] +FIELDS: [ +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute=%!s(int64=0)] +[/system-monitoring/cpu-utilization/process-cpu/process-id=%!s(int64=23325)] +[/system-monitoring/cpu-utilization/process-cpu/process-name=vlan_ma] +] diff --git a/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.log b/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.log new file mode 100644 index 0000000..1c18270 --- /dev/null +++ b/tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.log @@ -0,0 +1,67 @@ +Running config of JTIMON: + { + "port": 32767, + "host": "172.27.113.191", + "user": "admin", + "password": "admin", + "cid": "1001", + "meta": false, + "eos": false, + "grpc": { + "ws": 1048576 + }, + "tls": { + "clientcrt": "", + "clientkey": "", + "ca": "", + "servername": "" + }, + "influx": { + "server": "127.0.0.1", + "port": 50052, + "dbname": "test-db", + "user": "influx", + "password": "influxdb", + "recreate": false, + "measurement": "test-m", + "batchsize": 102400, + "batchfrequency": 2000, + "http-timeout": 30, + "retention-policy": "", + "accumulator-frequency": 2000, + "write-per-measurement": false + }, + "kafka": null, + "paths": [ + { + "path": "sub_wdsysmon-fd", + "freq": 10000, + "mode": "" + } + ], + "log": { + "file": "tests/data/cisco-ios-xr/config/xr-wdsysmon-influx.log", + "periodic-stats": 0, + "verbose": false + }, + "vendor": { + "name": "cisco-iosxr", + "remove-namespace": true, + "schema": [ + { + "path": "tests/data/cisco-ios-xr/schema/" + } + ], + "gnmi": null + }, + "alias": "", + "password-decoder": "", + "enable-uint": false +} +invoking getInfluxClient for init +invoking getInfluxClient +batch size: 102400 batch frequency: 2000 +Accumulator frequency: 2000 +Successfully initialized InfluxDB Client +Accumulated points : 6108 +Batch write successful! Number of points written post merge logic: 1224 diff --git a/tests/data/cisco-ios-xr/config/xr-wdsysmon.json b/tests/data/cisco-ios-xr/config/xr-wdsysmon.json new file mode 100644 index 0000000..607b2a5 --- /dev/null +++ b/tests/data/cisco-ios-xr/config/xr-wdsysmon.json @@ -0,0 +1,18 @@ +{ + "host": "172.27.113.191", + "port": 32767, + "user": "admin", + "password": "admin", + "vendor": { + "name": "cisco-iosxr", + "remove-namespace": true, + "schema" : [{ + "path": "tests/data/cisco-ios-xr/schema/" + }] + }, + "cid": "1001", + "paths": [{ + "path": "sub_wdsysmon-fd", + "freq": 10000 + }] +} diff --git a/tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testbytes b/tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testbytes new file mode 100644 index 0000000000000000000000000000000000000000..f30a6165187afb097181aefd79c01b125eb62533 GIT binary patch literal 183942 zcmd6wd$1i6K?OA=LCi%2okD>bAV7Ez2!=r=5QfORP9A!>mi|d&>C(oM zKl{tmFFxpR);##?rq@4xO8;+PcyQZ+hpw&uWaaAJ><}-Biy$thjv70>ND4Pd8495lLN+$(|;7fro??1+88 zw8Dw~emZvSsQrIx6+sa1`xnnWVC-#amUuy)m;bF(hmXB|_#Z2lgG2d0IrYx5!-jtv z`X?SRb@bT#hX2_>IcDt0{ePPYbKKa`Gk;V#=OLV?n|G$(H3Mhe+j%_e6wjD4&w&Qb zCL+yzth1TObD^@%(aJi9dF?FerB0G`)tYT3Qq9LoSHGL*L-XOemdNu}wQ9$xReM_) zCq>wrT;a->Kl4+&gNQXBGu=t#foAfXy}aSOf$RgyOg|-JK{Mrf$5%Yh5_v9A-gKn$ zrbDvSYlg8#dVz=pO_arL&9n7AyZ``ABnd^77)ZAhk-n@}?R{$1{@=3S^7BkN&{v2! z^D)mBBF{I}7xqWWJn!~{31_hPI~_mLwz_fwvt31GgJ%FgS6=l1kp|}6gY#9lt=DhM zvAj?3V&z*OP`>pp@hz_*=UBJ5vLSydgWb4L(1cK--AqJ-YngYtE5g{xC-hq0QY)38 zNt~E4J#1T@R1g#()RAjCf zIC+pw81eiCA{eyS5NtB`l)YXgVnN5sg7P*+5xqnt!e3sbcbJ!nIBPoN zU9H+g1cK2s&hj#*Kx zw`P9c$}N%M1|rlY3hE;Y>hM9@&~Y=_p?$Y-9V1D;g~$ifnqg~^)AA*U&~=$@b)wBM zonf_GiD+L@t9q1L)kFJeU47j7F_8(bMQ6QO(BdNWd z_VtGJN}X^;G3f*=1J8-vUMzeXZZ{Ebu8S)Blj}?7qmtFvh-fg}dabssXd~14;hD!R zfZX1iihYGh2Gfkx%>>GxBW|t}%nzEqw&PnJ><2_JnE%8R?LcmxY)SRqL@roY>L-lq zQ~U{$=sPODeoDpHV*)peCY_d>7mhD|!*1p~QX&jnp%KiUCt|{2R)pPPN}7fpx#Mhw zZDqlih-fgFN&j`fx}%_8CqluH;RRV1%URd<1+4u5FUo#P`P+w-zm4U+I4{bD%nP@$ zrQ92dbTDpo13#4Vq0MSH6S?4WmTeK`0mTM(FA)qDRr2aKUDmR#t6@(Ov0$YjY?-yN zmp{yNdk7@`h+(1v#4AJ~xD%z3TnOnah2Ic~U~N_QoY)Um+MWDWA{i`&MX5xp)K$y3 zn}`Ghl^eNPw;_GEZDXH)jmQNTQLZ;8oC?lTjs7i>44%7#q9aIM9j5jWnc!yFlFF~2 z$%Cg%+$$^0V%_hEbkN7D%PQabtG_+fl?m1G(Pm?6F)SO-?V!`W<*wf+k z4I&P_K#TnmKJ_M%3T``bo;fYO5uWxD-p&joR!Nk~Ge{>3(nvRLoK7TzeqP?O%SEHb z&(9!Y!Sha*hmI@9YaL0?Btk)NFQK|}h&6V@RYWRyYL(mKGIMt%Vp&%4EF#*a>Kyh7 zbq+g9O1@=LwY+`oGrEy2qOK+~!tJpvuU3FPIr!uj3$7v3L6_^MQSO9^6X?Y7Y$6rh zh1{^I_UdzpIPl=QuYB+NUsPag>jbOH4}Xz+jIqV`b!H%V7J9YZ;Ku*(b>nZVB zBHt!;==qpB^t>+!+ZiN$nMk-%5q?w=9uelDl$xuMI?{xzKguhYKodsGCej!YZYC1K zlWi2{sk2gwI|%;gzvt4wdL zt<*0N(O}U|?%Cuz%X8E6%G7qJwf^J0?F)vDK3$%8&zgjY8GlIH}J~KO$nmCifzc7WbgYq?Zt+K3! z%CZ($L0mej20etOz-*R8k!(BWGnDIypzx}+Dr#mTqN2WmeuUQ z)-;yeT!JM=zF4~jm?~gGe?P zdo8yrDeNFp&Bb2J%hw53dp$xVgZ3&rAKQ^7728Rqg7xcuN!{qGeY9q#<&G#Xsqp?7 zkqL&by=BZa$xFq4-J-UO2sgJyG{fmrH8U-DOr{rzOz`X)TizqQL=siR%xa(AENBw>dd5WXr)*D1J*!ksp zUeb$;va{B>I9>HAUReSP7yDA0REAnj@nRw#-laQIKkdkgRnoqOS=-uND_i+~*B_RT9KBgzN@Rmonn7!} z^0X~PB)IFuMXD`!5?B@4~Sa8|ADAvis4MZMTS96Uf z%WXs)csC%u1ZFmMSDi$eyTS?e?zf#t1edJvG|o@!#Oe7OX9p1ne)p}8bmS$yBJJt- zWIKsia0iK&<#Cc|OFc$Jn%lRgiJq#H$g_=E`W2A~X5`hNj)_9o$X+2b!P~5TcMrB2 z|La6F=;ej=Zg=&kd8c#Oo;DEunnV{bn@&+moyj~_pWa(*8i+C9k4f=g0=+V;6GB*&B;2F6T;vSUxP1W6diDb~X z!c=K9(F{Rkv@7>q;WmTt7$=g%C+81$HeFY_98A1i3yQZY5&PbsbApN*!45AacQ+ zD`|dF+I5_A+RwP$ys4GEhlmElgeZeWPA3r=&zVy*wiBVCdv%JkN7**a<8dMu+=fJ) zPnuh$WyePLbe&{*SKf5UgKz5*=$Aw?n10!w2VA$5m*mU~Xy>v82K4-Act9{D$XtVd zABqYI7yT&@3Z4zUu5|bs(+s{rM1nPkK_YKbeUnH9W9P6-+Z^4tfrtg~OoO~qUvXs{ zw5gO`LS%z!Rwv1e*zJn=v1zo8b%KRmSG>z!*xEz{gI{BqCjJWJYrK?*1Rpp`H-iW? zNpWkGi+#Ihy1x97bPiZQfbS6LV0AYN2 z;OBq6uz1e?ERP3fEmZ-@`jqgBzvE%SWed87nCSMu=kdVLE|=*E)@!EQ{)tDWZ*>k= zFNO}TocrBlhYe0NjnF^wUsoN#1JcX(UIlbeGwn{z`?L9I1E?sgxso6N+go zlL;S^(c##xt z)bP??LwbE0GU&Kh1Sc+@djHrF`+jN3h^>7;9Xoc^{y(*fAc*(ia*?pjrJ69?g8Lvxdk6H#M)FB|UlYlIZ5+ zO+>2sSm~SZ;jJ3Xko;yZZ&>GN{D_DJ%_JF#E`Qxc6ui9lqBv=YqX?rzw4UtHvM@OiT{T44vjPBh>h(OSbEPLA5kKuWd-tvtc z+s}2E=S4)E`IzSlA`fi2kym$47$-&8nshpTq-}N80%rR@kqxFwzJ6N1ok#;ylfjAB zEOSjC%lq^oRo>~YD78Q*v{&6&D^)f2e8RNVO?6UDbQ|`^J~tDo;C|eYqsh^D`3s9T9-_~Wa{q{C-IoiJ}BQo-fRjSIuui8#=|Q>mK- z`gO`3L?U?q9F^}sq{-BF|9meI44&(TU}pF0kBL}t1+ySGWoPau5@8pQ^pWKOA`X03 zB&R69S?qR;+E6Ql5u0}dz46p_ZqoWk?N}bWzjQ4 zGU)Q{TsIQDO2mPoN=9~vaVxPTo_mN`@Q%DM^k9wb>lX9UbXYrMWBP%>NE2TEWScS5OiHI=7b^||j?cTPF$OS)x zvXE8ASlegt1Q8786vK99x2=zhPZP1A|BL)|Kf71X^&AljCKRDXG5=>DtTDr>9y=)u zJwyb8sk{g(OgL`j%06V)A$JhTU@G4->T3@Zap3M#>O1?Hw1CL8OzT9-M~HMVD9Ax0 zO_Ip+=6oj+3kHQO53L>N|3!qtb%;*&F2)g?S?sloh=wnk!?-XzynjJNf`hOntCzsA zSK3@&5QqYcDI)MVkrBFC(UXBmLZwIUJV}It+5JF1+@yMjNCl&+Ydrpaj)()ZtbOM* z*Z-p07k^CzgD%y7YGE$k^F%0Ut-j8QJtuvM2nOR;)r=k{Y61VdW~37wqao$hI+5(t zP~NB$saiPWrSCZ(;-$!Q@ud^Y@9x~%kqq~~fQSUUWztZ*Y51JoF{%#hiEOYCSRI|s zmcp+QndatIhNEvJBEc<2rkh%m<4r^;Xs5mohrTzwl!yc`R>Qz=8?!^FiA3-OQ7Sf0 zm6gbTyPDeet|g+u^$S-@6{f9g@OOWh7trDQd7=rG=_a+Ge1t~?lVEdt#e+l~nAXiU zE>$D@D=YrjEFaNCsCgOgl1X zKv#l(K}3RKROa?-p2vwiuvk2LO4<`dENCXnl(Z*_JTOZzr=&ea#DS|eddAh$L@fBd z*=JlmLqvk<`M#o}ZC28=L^OCb9x-C)IU*D6k=ff<(F?6NxW6RAL9h2yCvtnSbnoca zonI5NV9H+Ze=_7ClV{_F)}nu&2nH8(rs%s_7ES@@M?8u?CNvWwYQ#s+dv7=}HsI(K{mSY!J ze`7YJMYAC-nwlMH(Ug|H_?YT_d|z4G@3*B@3fO~AHMNFs5(#0%noXShv}Lob=Ks=k z@T7|Me@`dk!Rl2i3TMXA{*1bbj044)M4~yDKn$u?L@Ky)R<*p{7pLYDY5G z?Q9|vO!-Dj{hmX_f(>AM)8w!z)!diT*mkZVV!_}w5xKFs6K*FW!Ln!`1%ZC=b=N=ga+!Gn z-M`R)PWu<0g>>O~u}YNR(HBM@KE|1;4Y%RC19)V*G-F5(R{kwJ;Y_AWh)kXHDy_Q1 z4hoa}=yyp2y|cnE+bxs0(eju5#mVwwBWZm0A3oRk=TjT|{nAL}f&WSJ4;H~*sRq$h zKfXL^^@=bGr`#e;;*$OU(a@cLw-b?I1;;9K z_z;n3UJ3rA3k~SWI)Q95kb8(g@H?|y@?1bv$kVy(9AqHBLd2PmdA1OFU}qSRfxL17 zvoR$q|8N<|2Z)w}Irrd#&wNt6g{XT28$-mmyoRX0ySGjDhGNbnq?FFg2(kRxlX*@Bd7~$t< zil6Qv8VSZHtN1BX;SdLe&Uji_hobEw8VWY?45d$PqC_tc!Jxf{V5TPPi$pBwSXNEe zmxx68%QG}tUnb(f9VY9xEJA9#iAZpVX-W^|aQ3aCjQ3k28O+gThnYpd_V+|I7#L;~ zuziyV2KT>_0=B0Sb-|#Il~Vyn3fP`bB!eGhewl~^x0=zKy6cHp zuy=bFP2F!1xu8RZdEWCw{di&n5eXL2Z8E=`h(IuU##vsFTGb(?l@nRI}(0 zUr{Gl7?)E^toiZvL@xM1e3UNo4MZrJB>A@e-ZM;nL>-wAAEXT(Hw#2U&@Egi)^B-l zA@aerX4qQfh#rY4?6$2=v>B!|tad9AO}C59Rqgu6L?*bBGt8B1Cu1rR!*^->-eeAY z|7JFIyh5}age!{4{%iITPYrhy;pV!ivOl@LOcPKy1FsR$V7MJIj@GCrk}jAJZH?;=$!B5}sM>F0@jYK*aH)a_sa5Iq$E@yd87&TPjULqJQs*D~g@DvdXRtjwT z{Vx->>>!X$zyB2?5ZsAG@4+*~5r0D@g87&1Ik6wCwC~!l63JjGEJ|f;Osb`rb`z0c zpsFS>G^FpgZS2#p5xL+Z&N>$2w?r~{?k*p?cH3S3C}0nf32ugPHpK6UbkN5t5hUOF ztG_+-R)1xaW+XS@Aj%3to4`p6&s9gNOq!&|-hY%jq|XRB+pg^UP^!z4z0I zBC0TAl|-pLgLJYWjV6_!pH3u$eqP?Odr@eqt)4-|g6Ex4vsun0LP2jYp}I1z%-9WA z5vky*Rc?#R%zebfn6rpz|5xK#RudWF_E?rz%j;36CzYJs@*S)p(m|ISIj7}pA{E?) z%sDOR5OLtabzk}3oYS(lPO#ZVqO2o=!92B^tRZ97)J}A6%}ggaCewLDCYYV}?c_z4 z@pJ2mTrlPfm)J_Ud^a%Xx?e~{gHNPp&i*iNU%o+PgJ%->MzSkht1VGm>RE z(MBQ?{0`G33cbm)tHW@p%ZOaiq3lDGrt3tiLW3dBbW80>#%FgM5eaU9Rju2c0(3W# z2|81?az-e4jEDryRHdI$u4@jvh)l3!so74Qems!Vbla-&|16OYs;vfLJA;HT6A3q} z>)4N~>)0d0Jd{#%6;el)vk-dTeMCOE z)!GNi{U;F#7Oky=ec}TE@qKx=@8sKjh8qgjh5Ul-TwKq=cbJLHASh$Zoh=OiVWYSF@dx>vcVqHUogTbjK%h=K%-nB%c zX_aL)RF<{43gXgHHJF?sEulr0M3J;eo6k_LBZ9)K(yFML^}4#x{ojaC@C27m7M&!n zE+&IKms`_VX7TBFe*aD+gxQUsbltGuz8!jjcD?I~XfURg6^_7|YI7qIX)aE7f@5*A ztwboe70HZh758r<;=lmA?;6q%^CAnI3hrhi9L!0p;-YQh+$}^Z*cVe#Nob7&uP_=# z?;w)R#a_#0h?=w-s#V-Uq?(JpmOG>D^$3v++NTVeWoA@Ap9ln3E=|)UFjww^I+59X8A`=W!RjTLadC+Z2kw$%c7ZJ(e z4ACm8m#=WDHe=~LS*g>ji-~x6m+naYv?C{0N&6aRZEJI_Y_b>T{;+)H=*{|4A{(sI z3|h05r)?o3!CfaVQe6?5u9c@{>^R>g^1%Emms+F@A9Ku>+3yjt;Ies9tdoTsh&-^a z<{C|w+lV;uZa{ho%xvneI*BrOg%j%CZ#$6)E?MDeoS)W-)AKdX4k8Zx?pqz{$V+-f z+S4y{cM`GS4iYWP<0R3RdW?uPw{J}oJyj=>7s@4^-qn6ZB!U@vHK=2v&`I1YL?(Ef zweRl1RJA#b4a!0TmlM3$ZgwTPDy(V*W~f*vj1EOP@937(NlA?`t` z-&Ebbmq-SED@tT&$T60zW8$pKb%`=KS1M{X?{`Kb(|t|y>YpDQ!9B75ei4C6PHzqF!!pi3w>3R-k2s zMj@3GwW{AE;=%nhb-Tmv8HIHv5et3-X)BDR_GPxUeV<4LQ^j<|=JW$16x^KhG)x>r z&*|#gk&Mos9}$O9d{FK}fV>6|*DRu-N$nO{qUg5Ff6r6OddR&O1V2}bpavM?!+ z#w}icE|Cj1Z+$5#U)n26omVGO+O*_&=M#zG+GT}P&3Lq|-Is}6Fe4sRl+2KD0g(#c z5tMshS02fgnS$|Z;jTaDr3x^jr$MG)1N{827Z%UipXKqutfeX-S)USK@pn8dxNJe! z5EI@0_dFi>+2t}l!FtVf+duKB^sUa}N_*zu%DLY?cG%!V(+K?&|8>;?JRrSn?^Qqt zHPi0YOr9HmMdZ<0!I6sRkV-kSH=&reGMV6_l}rlgCMFPGw05d^US#rUO&~*dHj-ZV zrt}Py^|Er*S-)5|)2&`65`N*TOAa`6dh_m0uYY=K@z}xR!DK#l#MoP7=^Jg77bc%P zbjk5cjz9U7&o7xeLyF9YNat8l-t8PUc6gB#Zq)G7UPF3)8Zzj(R|F?6o_hb-5&M2= zg%kVzbnMts`~TD`f*{`aFY5OkMg$0@oo?!#Ga>--d(*CD;56O5qw>n#Z|B9MbxNFT zOnv_c8Z@il!K0avb=DAh;HKuav!o{vUJ`x5yopFPA1i(HJ-k(e8Is@ZQ%dphy+UkD{Zf)t|1cX z^yml`vftumiP63L2oVT+k!4T&`Y}8&(p$cfWBa+jIlPF7GavI@LF9ogH}dMv3FD*) zTa!-5kF>3>TEJ}IC$hm*$=4TR+le$VH5r^}%`(^YvAjpf9!KJkqYj2zUbc?ofo$diC{SYQm(V_ZA2Vg$*o>p_>O4$n})iT zNQOVYicC6uCe#V@HX;>VzTCJlyq$;x{X3PqNuZw(+(9IQ_s>!J{zIBfZTHXj62aiP zZU|;}zy6qr1y?W&a#MEZej*We@kk$89w6etXGL;~@|)!zY?s|7qCsCDzNnkb&CU2> zA{dOFLELhhSu$>HeUB2U@LnUADpFmwzbtx&NCsWLo$E$|SBW?CAShw;<<;2 z1@FlFLJ!u+zHTuuO@}3f!tEL}A~q9&prPC_^~B2q*X;VejK~Gsi!wiN8gBaGfmgoDA|7w5{PCD}NY-cF=~d!ZL(Su7#T zn)eaG;FFoW7mJ2vEGcOz8fh`x14KIbNy*DfL#{0z!MRvBY$pTQGEFql&e+m+q6J}y2@#De}W z^3(n7UM=EtL@1b0gcim8pM9{#45xbRq%8Ch5eTO8BB(IoxRERSka_gkK_r8ze9Ne> zJxs)byHBa_>}S#fA~S)l&%hob(!ro02aPmIBFmfeokT1c6tXfTub9q4^3M{6Gz~e+l=w?Mv222T+ZjFDE z2nDnIfqb}0^$d{;Mpf5%{QDdc2WDCO&S$RwMYS*fng|A6s{ho&T)gLrP|#X^ofCUb z`VtWg#;vLuJxtUB{&&qtCpbn!%ByuE*{7krQ72NhaK@9Ob3VjNk>}z|Cz#*exwRu1 z?tK9f33kh*p?K5qIlE(29o7@sU?H$NI-4zpUn4Tj&8rMY-$+D)TZ~LMwI;`#h)~c@ zeH{*cZ+IyY30|y*f!{V}hfWiT;0dBsY@8}9k^Ocxwe4L?M1$)Wu9PZFTi4+4{xC0~ z!}aq-6Dre9YCri1j|e8g=JbjOi8wH=n{CM5&p*nu6KoN+47q!V$O9whsDW}jh*0pH zHjMSq(*;w~Z?T)i;u$eaOP3Hk*Q35HRb+pBpVC-T5z@#raOPY|)7 znJiP%o+R?XEWwodsv{ z)G=d64y8>>O@*1t3CE2cJ@ZGUodCBSySVxrvmq^-4QbKT>`05IwDiTtRPW>a%F=$n zEv-_(9(1ayHGGpu2qV^P;@qb#n`Jfsm!^X!RjmJeIuQ?6uToJsGmiFW)J! z;Wk`%0FO+UW(>)}%D-hNoXK~`d!jM@2v34cFQDgwESg%ak9MF zNE)C0htDk1tPJy&{alDYpod_@u*@Em`^}jipN) zOaAOH&%F4czq#SXQW@`*{@=dv;I;z~y}A06sSgaa@{ZhJEAOx+$Dex2KrL^2+ksdu zZ_#MAyhT&9spT!2(g#pOo^Ii*<*i##YI&Q8H1nzQY$o!+U4Eom-c};je5`c!yLsVn zK0MbFd0-Yakb+v_icaRtl<^KC)_lx#Cy@u5X|%}UPl;I2Ocs&DXNf#8d9{lizCc8R zCbEbeZha3g06-H-LLoOAy7TXLA`-0NSVayWA`;Cj!GCn20XHz z3y2DNI+vY;4CGgcIP)>j79tPq3SrbOi*E(7@h(NZwy9$fI5Pl~q?b#Gu} zi1?P*5Y>0Lx3VFBsl1Y@1^EY|386w`N-x5-94Vg3lwZVDqr@|rDvXe7qQ$;(*W@PYdf%v|U6) z!6u%e^r=mh=mjDewAT>K)MR~;hy@+Xs>%8ikqCczh9>LFL>#!oWZjlUNNqO}3GOgW z>46;1zBQEbeoG{SIlAmHvk2J!o`?nm!)yY!ZxX@a{x?#<_B5g{81%7nD&R-~+tZ0; z@Pmvz+ic~vL?jrpOikS{6LH{HGg?!3JrN7`ZqK5r`z<0Dbf_@Tdw!@NPi!C}!6Ld% z=64ej2u9C1%S&1Ec9b+-J#==O2nL;M7X9HX>g4KAEwSdu*Auzm1MyM1$Ttw7WRm3D z_IuAT^$~SsK75ciblfZu2|>4Tomju+y@kjJ)0$yxkt2E}rm)+#I?-mB&am38L^Rzl zHdnRl9}}72O3pA>uAPjjL=4}h?R%3s?ERbB)bR?@ZV;|0Ci}11M?5v$O@y24qRRf{ z`Z7&G-3+`&M1$dWpn09?9^5mJG!`()Uty>HvRrrh(K^B61@k{5J&tCkqG8r zvggEpu+qM3ze*&7rLZWKu`#KZV%kkaf`O`}^`n42L?*Zy!r2hNBho=1t3;4|=db?u)X$x)60YA9x!|5NdS=DzL@apS5qr7^ z=nWzcyg-Zn5%WggBvQd`C(bjcrS;xVBZ{cPh*c7$@(j|+f;5^`ettTU4ElL_$L>X; zrM7wo5euGoM$Kk9lL!U9y@cw@xH4lmTt%dUr&hTwE;IKL6JyRIqWxcuXIV{Tgxh0T zUM;Ujot{*3a?5wHhDZlpZseSnvx!u27c%FxoI}Kc2iJY&dvi|9+B(5z8;P=x2nO@i zYO;omRZ~0BxivGL;FwJ35t(3i+P9MzS;o(;Cvw40OU+lWYT1FUM@<`kg2iA>O$s+BWB!DB=uXr?OtjB;Ib*hOT59ZSu2 z>h$A*oTl4WjsItfd{AvQ2-_JXe3?kNQC-J=R9(j&5$2(knyZjH(uAvtQq0hVeH|`9 zxS2=@PqtB*r_M?#>dbD%X(A(B=58eV&MudVVxOB4UByn{y8RWU#n#MAVPrvi~cOoIoZv3R{ zhW+;K&l-Ve-jZ02H1VqkbamK zS=dx?HxuDtPFfWgZ4>8iAyUDq}5QZ;tnF!Tn z8D+0Wh-A=SW#?l%vZP`=iBzzD-7l#dUA2$a%(UDQgN-I;L4?Gngr&`T~H^J zjQ)w6<2_w*SWjevL8?mi+&mAuO)1i-AaxOu49*a(qI&rXr)o2{-KAVi#KXIEN9v~? zIk8IG*Dz~an`>p0y)gHOPSak(ks%Qewn+Ihy{0$XjvX7iMG^ZM5MWWYnte( zI*GhcF5&d9_A4S0%*d-j9TSDFk-b7>g11@w?jCG4>(_~B(8~+!-R|m7^G@fmJ#8W^ zi|8WpQ@zIxy>hmK%H!4%`EW5k5K(@cuGGauD(Lrp5!pzWrZy6ppx+nr1}YD{UM5Fm z>1j}lco`85`h6wn(bCN_HxQBF8MzeV9+dh`)!loEWYD+5R8~=LMbrY`S3gs#nRXGG zV0p?5((zCk=?NkbbSW>JOpByEQI+>bitMZgFUZ5%@IZCGALtd>c|J(*aXx8om6jbF+0%8B=k!}3{O?AtZd_2q}8bHMrme1}K} ztGiJc_f|S_S(ONLuj;zc$Hpy0J{W1M3cZsj-niP5rioPWv{AJ)Or&x-ZaiGLoX7>c zXDU%^8JyefwMS@;UQs7r>W({}n-*mST1IFTQaMqp`aL2Z+&@#dJM5lOSXUCU;3tr_ z!boagW?S3$iBvFEOh;@^KOjQE%_&dA#4+@ouC5))=s3T3XshA$ z3G;EqSwt+D<`1V3+pdXM6T#qBUbIZgU8b?t5Seg?o%oe<^s|XP(9!z>SEiB9sS|2t z;aQXUwL~cBO;uVdLRM<^))ARtRG%mdlk#ZX;^pTOxnT3wmy+_Oy|UDKbrPjbOOAIw zkqE9`Ryfs+N6XrMnaBk*;z32p3<(zyso)(!x%YMDk(^Zl>aIWMr3x^jr$MG)1N{82 z7Z%UipXKqutfeX-S)USK@pn8dxNJe!5EI@0_dFi>+2t}l!FtVf+duKB^sUa}N_*zu z%DLY?cG%!V(+K?&|8>;?JRrSn?^QqtHPi0YOr9HmMdZ<0!I6sRkV-kSH=&reGMV6_ zl}rlgCMFPGw05d^US#rUO&~*dHj-ZVrt}Py^|Er*S-)5|)2&`65`N*TOAa{n))#kg zdi~Q=i^mQg4<_@eBgWnuOW$atyfFFXp-YZma{S4se16H)8B%0EL^{Wc@^0s-vBQg` zaHEEo_8QXb(~v>Oy&^bq@zndrj@b80E1cNxr(?&C+W)6k5d`tRe^I~ZFd{%G?Q~P` zoDl(t-Xth0v512;9Voh3ba@RH~Y z=1oMZ`B>?j@8PW)%#i$MFK<}qXZ(nW1oG*Q2!QLox%L?l=WSZRATbq$e7r$2u+ z9NW+J&EZ8vocWmN3L+0|xsg|QP8cUe*qU@Yexz-6)dFVwK9LQkO1{1j+fJl`smb6( zYnHjDkL7)OkSgzVSCm?y6WXh8td&ZNZ(%%P+Ulk{sV2G&`(vM*iBxdE^F{yG=)Aav zNCdb;q62m=-;W- zO#=OV;0_`Yynl|$_aD+^YP)~Fmk0*Wbwe<-`}M~}EVzPMkejkI_Y;Y*i%0s%@&FMB zJ}Z(_l;14(V7u%t5e@qK@I~EZZf?d86Tx8Y4C0p4%#v|q>wA<)h4&h{RFUec{bkWJ zL^9~|?OZn!yh_A@p{g55DY=zc63;zEEO2I^mZZ@+zY)R%VG&x*1V4h2A|C2y;w9XV@XL%(MXHg9w5@ePf}jW zNbb-u)N^(aq2MIJz|Epbr{(5_BO@z3H!Gz!!&sfe9ws8f5Zev>aHu}5xONe_;Ac=4 zvdS21`wX5Sg29|(*skoh^>OiOA{O+2k)Q5o_i7QJBSOK1BD5&x|LlV`W;oSjCuO0B zh(Iuv7eR#y$BkUshs>kT4k8&$=1N@I`YN7iNd|FNjER5VmCX5*YSM zo68FVQD8Ae1Rf_cLN_aVGGI!mbZh*RL@1cu59Gs5s%MB)Fsi!7zvqg(wB%}Fm6@N=wYH3@V{$DI>9j-QeLeS$vzF` zjXII4g)^QMo%11HiaZxzI>G$z&aEBEaPJFad>31`C1J(b;S% z{2GyIZeC?L`bHuW++t+9sWmy?M1+EN>g#amd&5hKNbq7c4E(k+J9L^z1Wyp9V&ha< ziR`zlscr9CA{t!3aHUjX+PVgR_lJ1_9j>1znoyZ;Qv1nActkJ>Hm6rSNW_6@-E2ed ze*RIOonVWoWysw_L>?G1M-7zQL4<K$QLKv}T6X!l{*(|I1zcd{@ zsbc-#(}{SndXEr9f;VjT-f+Y=eGxVU| zHAD1h3y}`Stv;PasQ+>z)!diT*mkZVV!_}w5xKFs6K*FW!Ln!`1%ZC=b=N=ga+!Gn z-M`R)PWu<0g>>O~u}YNR(HBM@KE|1;4Y%RC19)V*G-F5(R{kwJ;Y_AWh)kW^E3LZ! E4*}Lb00000 literal 0 HcmV?d00001 diff --git a/tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testexp b/tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testexp new file mode 100644 index 0000000..01b48e2 --- /dev/null +++ b/tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testexp @@ -0,0 +1,12216 @@ +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1547 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1567 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2097 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2101 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = inotifywait +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2116 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2117 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2131 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2150 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2157 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2236 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2243 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2262 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2267 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2274 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2297 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3472 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3473 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3493 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3499 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-aux +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-con +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3653 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3655 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = correlatord +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3657 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3660 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpa_fm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = chkpt_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3678 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3693 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3694 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3695 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3696 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bag_schema_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3704 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3711 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3712 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3713 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lcp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3722 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3727 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3730 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3739 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = issudir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3740 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3743 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr_global +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3753 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = invmgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3769 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3770 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_data_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3775 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wdsysmon_fd_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3776 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3777 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3787 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_sc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3826 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_exec_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3830 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3831 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3843 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3857 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = parser_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3872 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3886 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nvgen_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3911 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3918 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_verifier +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3948 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3951 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3965 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3978 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3998 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4030 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4042 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4067 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4592 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = placed +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifindex_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_pa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4598 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = alarm-logger +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4599 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4600 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_mgmt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4601 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4602 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = locald_DLRSC +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4604 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4605 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ncd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4606 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nd_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4607 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_fo +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4608 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_ping_reply +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4609 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_cli_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4611 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_master +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4612 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4613 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4614 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_show_users_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4615 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4616 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4617 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4619 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4620 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4626 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4627 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4633 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4635 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policymgr_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4674 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4679 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4701 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_lsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4710 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eigrp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4720 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = isis_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4742 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4768 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lisp_xr_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4774 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mldp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4780 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4793 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdl_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4796 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospfv3_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4809 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rip_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4812 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4817 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shelf_mgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4845 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5010 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5134 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5363 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5364 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5369 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = kim +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5425 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ztp_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5426 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_verifyd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = telemetry_encoder +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ethernet_stats_controller_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = python_process_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_services +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_epe +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_distrib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5444 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5463 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5465 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_gl_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5466 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5467 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5469 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policy_repository +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5470 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5475 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5485 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5487 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_g +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = intf_mgbl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5495 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5497 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ema_server_sdr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5502 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5508 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5510 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsub_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5511 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5517 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5518 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pppoe_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5520 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sconbkup +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5522 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_assembler +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5527 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5528 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shcfghistory-edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5537 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5541 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5542 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5544 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5546 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5562 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_aps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5574 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = raw_ip +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5583 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5587 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5591 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_app +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5603 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-vty +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5629 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vi_config_replicator +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5662 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcl_secure_mode +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5667 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_fm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5690 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_policy_dir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5706 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_mp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_pp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5726 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cepki +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5729 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5765 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5773 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_counter +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5779 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_generic +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5794 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5798 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_none +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5800 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_stats +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5803 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_syslog +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5813 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_test +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_timer +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5828 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = object_tracking +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5833 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = call_home +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5839 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = http_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5856 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5860 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = smartlicserver +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5865 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6326 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = redstatsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7065 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7066 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7068 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7069 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = hostname_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7070 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7071 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipodwdm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7073 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7074 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_cfg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7076 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = linux_nto_misc_showd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7077 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = local_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7078 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_vpn_mib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7079 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7081 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pak_capture_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7082 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pam_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7083 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7085 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7086 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7089 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7090 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7092 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_collector +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7187 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wanphy_proc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = snmppingd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = schema_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2tp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmpp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xtc_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7434 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_ldp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vservice_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rt_check_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7440 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_mgbl_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9173 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9352 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9897 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = emsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10818 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 16943 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bpm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30011 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_uv +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30013 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30062 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = loopback_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30064 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1654 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1670 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1695 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2202 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2227 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2246 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2253 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2339 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2356 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2393 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3478 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3479 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3497 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3501 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3535 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3622 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3645 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3650 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3651 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3652 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3659 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3661 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3672 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3685 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3705 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3723 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3744 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3747 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3751 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3761 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3774 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpc_rm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3779 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3786 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3792 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_main +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3800 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3806 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3809 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3812 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3816 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4308 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4310 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4311 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4312 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4313 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4314 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4316 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4318 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sint_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4319 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4320 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tunnel_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4322 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4328 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4331 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4335 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4337 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4341 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4350 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4361 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4364 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4368 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4370 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4373 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4382 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4383 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4385 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4390 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_notify +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4405 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ixdb_gc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4551 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4686 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4690 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4821 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4822 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4823 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4824 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4825 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4826 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4827 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpdc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4829 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_exec_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4830 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iphc_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4831 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4832 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4833 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4834 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4835 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4836 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4837 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4838 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4840 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_uidb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4841 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dp_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4843 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_logrotate +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4844 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4846 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4887 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = diag_capture +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vpe +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6394 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6398 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_stats_edm_sunstone +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6399 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6400 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6401 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6402 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6403 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6404 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6406 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6407 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6408 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6409 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_if_driver +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6410 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6550 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6565 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6567 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6580 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6607 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10438 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10445 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 11904 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23324 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1547 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1567 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2097 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2101 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = inotifywait +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2116 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2117 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2131 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2150 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2157 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2236 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2243 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2262 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2267 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2274 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2297 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3472 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3473 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3493 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3499 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-aux +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-con +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3653 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3655 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = correlatord +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3657 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3660 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpa_fm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = chkpt_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3678 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3693 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3694 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3695 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3696 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bag_schema_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3704 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3711 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3712 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3713 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lcp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3722 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3727 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3730 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3739 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = issudir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3740 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3743 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr_global +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3753 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = invmgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3769 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3770 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_data_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3775 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wdsysmon_fd_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3776 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3777 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3787 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_sc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3826 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_exec_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3830 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3831 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3843 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3857 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = parser_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3872 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3886 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nvgen_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3911 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3918 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_verifier +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3948 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3951 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3965 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3978 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3998 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4030 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4042 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4067 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4592 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = placed +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifindex_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_pa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4598 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = alarm-logger +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4599 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4600 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_mgmt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4601 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4602 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = locald_DLRSC +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4604 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4605 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ncd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4606 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nd_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4607 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_fo +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4608 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_ping_reply +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4609 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_cli_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4611 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_master +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4612 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4613 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4614 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_show_users_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4615 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4616 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4617 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4619 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4620 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4626 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4627 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4633 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4635 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policymgr_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4674 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4679 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4701 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_lsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4710 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eigrp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4720 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = isis_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4742 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4768 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lisp_xr_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4774 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mldp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4780 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4793 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdl_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4796 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospfv3_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4809 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rip_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4812 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4817 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shelf_mgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4845 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5010 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5134 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5363 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5364 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5369 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = kim +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5425 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ztp_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5426 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_verifyd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = telemetry_encoder +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ethernet_stats_controller_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = python_process_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_services +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_epe +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_distrib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5444 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5463 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5465 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_gl_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5466 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5467 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5469 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policy_repository +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5470 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5475 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5485 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5487 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_g +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = intf_mgbl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5495 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5497 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ema_server_sdr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5502 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5508 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5510 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsub_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5511 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5517 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5518 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pppoe_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5520 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sconbkup +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5522 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_assembler +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5527 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5528 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shcfghistory-edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5537 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5541 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5542 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5544 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5546 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5562 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_aps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5574 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = raw_ip +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5583 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5587 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5591 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_app +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5603 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-vty +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5629 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vi_config_replicator +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5662 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcl_secure_mode +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5667 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_fm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5690 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_policy_dir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5706 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_mp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_pp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5726 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cepki +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5729 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5765 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5773 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_counter +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5779 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_generic +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5794 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5798 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_none +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5800 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_stats +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5803 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_syslog +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5813 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_test +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_timer +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5828 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = object_tracking +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5833 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = call_home +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5839 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = http_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5856 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5860 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = smartlicserver +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5865 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6326 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = redstatsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7065 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7066 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7068 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7069 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = hostname_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7070 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7071 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipodwdm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7073 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7074 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_cfg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7076 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = linux_nto_misc_showd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7077 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = local_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7078 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_vpn_mib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7079 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7081 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pak_capture_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7082 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pam_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7083 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7085 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7086 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7089 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7090 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7092 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_collector +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7187 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wanphy_proc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = snmppingd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = schema_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2tp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmpp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xtc_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7434 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_ldp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vservice_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rt_check_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7440 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_mgbl_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9173 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9352 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9897 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = emsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10818 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 16943 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bpm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30011 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_uv +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30013 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30062 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = loopback_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30064 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1654 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1670 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1695 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2202 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2227 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2246 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2253 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2339 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2356 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2393 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3478 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3479 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3497 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3501 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3535 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3622 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3645 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3650 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3651 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3652 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3659 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3661 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3672 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3685 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3705 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3723 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3744 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3747 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3751 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3761 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3774 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpc_rm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3779 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3786 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3792 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_main +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3800 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3806 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3809 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3812 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3816 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4308 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4310 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4311 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4312 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4313 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4314 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4316 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4318 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sint_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4319 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4320 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tunnel_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4322 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4328 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4331 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4335 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4337 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4341 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4350 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4361 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4364 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4368 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4370 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4373 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4382 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4383 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4385 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4390 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_notify +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4405 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ixdb_gc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4551 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4686 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4690 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4821 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4822 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4823 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4824 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4825 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4826 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4827 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpdc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4829 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_exec_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4830 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iphc_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4831 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4832 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4833 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4834 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4835 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4836 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4837 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4838 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4840 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_uidb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4841 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dp_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4843 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_logrotate +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4844 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4846 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4887 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = diag_capture +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vpe +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6394 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6398 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_stats_edm_sunstone +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6399 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6400 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6401 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6402 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6403 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6404 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6406 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6407 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6408 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6409 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_if_driver +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6410 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6550 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6565 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6567 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6580 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6607 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10438 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10445 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 11904 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23324 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1547 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1567 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2097 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2101 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = inotifywait +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2116 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2117 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2131 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2150 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2157 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2236 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2243 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2262 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2267 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2274 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2297 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3472 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3473 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3493 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3499 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-aux +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-con +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3653 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3655 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = correlatord +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3657 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3660 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpa_fm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = chkpt_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3678 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3693 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3694 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3695 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3696 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bag_schema_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3704 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3711 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3712 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3713 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lcp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3722 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3727 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3730 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3739 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = issudir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3740 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3743 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr_global +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3753 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = invmgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3769 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3770 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_data_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3775 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wdsysmon_fd_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3776 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3777 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3787 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_sc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3826 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_exec_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3830 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3831 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3843 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3857 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = parser_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3872 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3886 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nvgen_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3911 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3918 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_verifier +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3948 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3951 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3965 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3978 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3998 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4030 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4042 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4067 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4592 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = placed +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifindex_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_pa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4598 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = alarm-logger +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4599 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4600 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_mgmt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4601 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4602 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = locald_DLRSC +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4604 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4605 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ncd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4606 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nd_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4607 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_fo +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4608 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_ping_reply +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4609 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_cli_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4611 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_master +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4612 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4613 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4614 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_show_users_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4615 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4616 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4617 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4619 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4620 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4626 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4627 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4633 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4635 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policymgr_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4674 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4679 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4701 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_lsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4710 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eigrp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4720 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = isis_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4742 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4768 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lisp_xr_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4774 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mldp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4780 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4793 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdl_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4796 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospfv3_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4809 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rip_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4812 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4817 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shelf_mgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4845 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5010 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5134 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5363 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5364 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5369 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = kim +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5425 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ztp_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5426 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_verifyd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = telemetry_encoder +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ethernet_stats_controller_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = python_process_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_services +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_epe +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_distrib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5444 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5463 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5465 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_gl_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5466 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5467 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5469 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policy_repository +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5470 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5475 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5485 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5487 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_g +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = intf_mgbl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5495 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5497 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ema_server_sdr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5502 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5508 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5510 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsub_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5511 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5517 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5518 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pppoe_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5520 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sconbkup +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5522 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_assembler +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5527 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5528 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shcfghistory-edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5537 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5541 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5542 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5544 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5546 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5562 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_aps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5574 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = raw_ip +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5583 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5587 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5591 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_app +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5603 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-vty +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5629 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vi_config_replicator +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5662 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcl_secure_mode +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5667 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_fm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5690 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_policy_dir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5706 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_mp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_pp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5726 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cepki +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5729 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5765 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5773 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_counter +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5779 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_generic +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5794 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5798 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_none +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5800 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_stats +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5803 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_syslog +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5813 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_test +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_timer +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5828 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = object_tracking +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5833 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = call_home +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5839 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = http_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5856 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5860 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = smartlicserver +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5865 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6326 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = redstatsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7065 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7066 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7068 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7069 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = hostname_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7070 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7071 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipodwdm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7073 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7074 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_cfg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7076 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = linux_nto_misc_showd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7077 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = local_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7078 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_vpn_mib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7079 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7081 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pak_capture_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7082 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pam_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7083 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7085 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7086 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7089 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7090 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7092 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_collector +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7187 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wanphy_proc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = snmppingd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = schema_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2tp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmpp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xtc_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7434 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_ldp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vservice_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rt_check_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7440 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_mgbl_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9173 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9352 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9897 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = emsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10818 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 16943 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bpm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30011 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_uv +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30013 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30062 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = loopback_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30064 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1654 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1670 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1695 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2202 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2227 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2246 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2253 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2339 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2356 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2393 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3478 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3479 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3497 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3501 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3535 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3622 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3645 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3650 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3651 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3652 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3659 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3661 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3672 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3685 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3705 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3723 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3744 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3747 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3751 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3761 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3774 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpc_rm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3779 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3786 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3792 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_main +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3800 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3806 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3809 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3812 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3816 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4308 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4310 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4311 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4312 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4313 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4314 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4316 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4318 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sint_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4319 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4320 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tunnel_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4322 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4328 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4331 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4335 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4337 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4341 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4350 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4361 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4364 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4368 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4370 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4373 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4382 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4383 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4385 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4390 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_notify +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4405 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ixdb_gc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4551 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4686 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4690 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4821 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4822 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4823 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4824 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4825 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4826 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4827 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpdc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4829 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_exec_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4830 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iphc_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4831 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4832 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4833 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4834 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4835 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4836 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4837 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4838 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4840 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_uidb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4841 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dp_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4843 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_logrotate +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4844 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4846 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4887 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = diag_capture +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vpe +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6394 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6398 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_stats_edm_sunstone +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6399 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6400 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6401 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6402 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6403 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6404 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6406 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6407 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6408 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6409 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_if_driver +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6410 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6550 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6565 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6567 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6580 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6607 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10438 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10445 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 11904 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23324 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 diff --git a/tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testmeta b/tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testmeta new file mode 100644 index 0000000..d7b3047 --- /dev/null +++ b/tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testmeta @@ -0,0 +1 @@ +61314:61314:61314: \ No newline at end of file diff --git a/tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testres b/tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testres new file mode 100644 index 0000000..01b48e2 --- /dev/null +++ b/tests/data/cisco-ios-xr/config/xr-wdsysmon.json.testres @@ -0,0 +1,12216 @@ +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1547 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1567 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2097 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2101 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = inotifywait +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2116 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2117 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2131 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2150 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2157 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2236 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2243 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2262 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2267 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2274 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2297 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3472 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3473 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3493 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3499 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-aux +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-con +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3653 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3655 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = correlatord +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3657 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3660 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpa_fm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = chkpt_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3678 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3693 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3694 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3695 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3696 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bag_schema_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3704 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3711 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3712 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3713 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lcp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3722 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3727 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3730 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3739 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = issudir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3740 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3743 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr_global +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3753 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = invmgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3769 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3770 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_data_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3775 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wdsysmon_fd_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3776 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3777 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3787 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_sc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3826 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_exec_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3830 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3831 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3843 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3857 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = parser_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3872 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3886 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nvgen_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3911 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3918 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_verifier +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3948 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3951 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3965 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3978 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3998 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4030 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4042 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4067 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4592 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = placed +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifindex_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_pa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4598 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = alarm-logger +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4599 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4600 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_mgmt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4601 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4602 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = locald_DLRSC +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4604 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4605 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ncd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4606 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nd_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4607 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_fo +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4608 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_ping_reply +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4609 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_cli_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4611 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_master +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4612 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4613 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4614 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_show_users_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4615 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4616 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4617 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4619 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4620 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4626 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4627 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4633 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4635 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policymgr_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4674 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4679 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4701 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_lsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4710 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eigrp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4720 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = isis_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4742 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4768 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lisp_xr_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4774 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mldp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4780 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4793 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdl_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4796 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospfv3_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4809 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rip_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4812 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4817 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shelf_mgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4845 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5010 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5134 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5363 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5364 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5369 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = kim +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5425 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ztp_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5426 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_verifyd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = telemetry_encoder +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ethernet_stats_controller_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = python_process_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_services +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_epe +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_distrib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5444 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5463 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5465 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_gl_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5466 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5467 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5469 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policy_repository +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5470 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5475 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5485 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5487 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_g +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = intf_mgbl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5495 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5497 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ema_server_sdr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5502 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5508 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5510 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsub_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5511 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5517 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5518 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pppoe_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5520 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sconbkup +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5522 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_assembler +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5527 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5528 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shcfghistory-edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5537 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5541 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5542 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5544 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5546 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5562 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_aps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5574 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = raw_ip +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5583 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5587 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5591 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_app +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5603 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-vty +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5629 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vi_config_replicator +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5662 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcl_secure_mode +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5667 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_fm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5690 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_policy_dir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5706 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_mp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_pp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5726 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cepki +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5729 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5765 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5773 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_counter +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5779 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_generic +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5794 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5798 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_none +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5800 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_stats +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5803 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_syslog +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5813 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_test +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_timer +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5828 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = object_tracking +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5833 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = call_home +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5839 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = http_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5856 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5860 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = smartlicserver +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5865 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6326 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = redstatsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7065 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7066 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7068 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7069 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = hostname_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7070 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7071 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipodwdm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7073 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7074 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_cfg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7076 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = linux_nto_misc_showd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7077 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = local_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7078 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_vpn_mib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7079 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7081 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pak_capture_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7082 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pam_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7083 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7085 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7086 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7089 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7090 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7092 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_collector +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7187 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wanphy_proc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = snmppingd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = schema_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2tp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmpp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xtc_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7434 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_ldp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vservice_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rt_check_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7440 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_mgbl_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9173 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9352 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9897 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = emsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10818 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 16943 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bpm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30011 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_uv +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30013 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30062 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = loopback_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30064 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1654 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1670 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1695 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2202 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2227 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2246 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2253 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2339 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2356 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2393 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3478 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3479 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3497 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3501 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3535 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3622 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3645 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3650 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3651 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3652 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3659 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3661 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3672 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3685 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3705 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3723 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3744 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3747 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3751 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3761 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3774 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpc_rm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3779 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3786 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3792 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_main +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3800 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3806 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3809 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3812 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3816 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4308 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4310 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4311 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4312 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4313 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4314 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4316 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4318 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sint_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4319 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4320 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tunnel_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4322 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4328 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4331 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4335 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4337 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4341 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4350 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4361 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4364 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4368 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4370 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4373 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4382 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4383 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4385 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4390 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_notify +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4405 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ixdb_gc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4551 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4686 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4690 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4821 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4822 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4823 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4824 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4825 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4826 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4827 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpdc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4829 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_exec_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4830 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iphc_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4831 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4832 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4833 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4834 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4835 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4836 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4837 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4838 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4840 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_uidb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4841 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dp_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4843 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_logrotate +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4844 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4846 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4887 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = diag_capture +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vpe +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6394 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6398 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_stats_edm_sunstone +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6399 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6400 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6401 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6402 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6403 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6404 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6406 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6407 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6408 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6409 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_if_driver +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6410 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6550 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6565 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6567 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6580 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6607 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10438 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10445 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 11904 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23324 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1547 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1567 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2097 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2101 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = inotifywait +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2116 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2117 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2131 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2150 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2157 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2236 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2243 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2262 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2267 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2274 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2297 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3472 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3473 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3493 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3499 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-aux +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-con +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3653 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3655 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = correlatord +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3657 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3660 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpa_fm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = chkpt_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3678 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3693 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3694 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3695 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3696 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bag_schema_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3704 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3711 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3712 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3713 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lcp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3722 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3727 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3730 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3739 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = issudir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3740 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3743 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr_global +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3753 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = invmgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3769 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3770 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_data_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3775 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wdsysmon_fd_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3776 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3777 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3787 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_sc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3826 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_exec_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3830 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3831 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3843 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3857 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = parser_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3872 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3886 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nvgen_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3911 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3918 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_verifier +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3948 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3951 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3965 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3978 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3998 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4030 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4042 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4067 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4592 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = placed +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifindex_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_pa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4598 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = alarm-logger +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4599 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4600 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_mgmt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4601 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4602 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = locald_DLRSC +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4604 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4605 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ncd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4606 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nd_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4607 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_fo +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4608 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_ping_reply +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4609 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_cli_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4611 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_master +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4612 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4613 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4614 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_show_users_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4615 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4616 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4617 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4619 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4620 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4626 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4627 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4633 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4635 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policymgr_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4674 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4679 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4701 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_lsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4710 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eigrp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4720 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = isis_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4742 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4768 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lisp_xr_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4774 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mldp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4780 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4793 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdl_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4796 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospfv3_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4809 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rip_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4812 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4817 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shelf_mgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4845 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5010 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5134 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5363 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5364 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5369 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = kim +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5425 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ztp_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5426 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_verifyd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = telemetry_encoder +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ethernet_stats_controller_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = python_process_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_services +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_epe +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_distrib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5444 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5463 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5465 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_gl_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5466 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5467 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5469 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policy_repository +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5470 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5475 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5485 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5487 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_g +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = intf_mgbl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5495 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5497 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ema_server_sdr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5502 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5508 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5510 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsub_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5511 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5517 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5518 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pppoe_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5520 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sconbkup +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5522 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_assembler +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5527 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5528 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shcfghistory-edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5537 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5541 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5542 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5544 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5546 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5562 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_aps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5574 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = raw_ip +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5583 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5587 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5591 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_app +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5603 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-vty +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5629 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vi_config_replicator +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5662 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcl_secure_mode +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5667 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_fm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5690 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_policy_dir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5706 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_mp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_pp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5726 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cepki +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5729 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5765 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5773 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_counter +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5779 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_generic +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5794 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5798 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_none +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5800 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_stats +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5803 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_syslog +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5813 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_test +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_timer +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5828 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = object_tracking +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5833 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = call_home +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5839 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = http_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5856 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5860 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = smartlicserver +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5865 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6326 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = redstatsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7065 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7066 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7068 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7069 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = hostname_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7070 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7071 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipodwdm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7073 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7074 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_cfg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7076 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = linux_nto_misc_showd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7077 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = local_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7078 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_vpn_mib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7079 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7081 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pak_capture_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7082 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pam_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7083 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7085 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7086 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7089 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7090 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7092 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_collector +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7187 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wanphy_proc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = snmppingd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = schema_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2tp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmpp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xtc_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7434 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_ldp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vservice_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rt_check_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7440 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_mgbl_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9173 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9352 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9897 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = emsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10818 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 16943 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bpm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30011 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_uv +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30013 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30062 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = loopback_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30064 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1654 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1670 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1695 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2202 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2227 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2246 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2253 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2339 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2356 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2393 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3478 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3479 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3497 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3501 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3535 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3622 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3645 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3650 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3651 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3652 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3659 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3661 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3672 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3685 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3705 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3723 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3744 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3747 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3751 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3761 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3774 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpc_rm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3779 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3786 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3792 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_main +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3800 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3806 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3809 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3812 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3816 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4308 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4310 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4311 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4312 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4313 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4314 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4316 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4318 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sint_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4319 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4320 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tunnel_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4322 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4328 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4331 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4335 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4337 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4341 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4350 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4361 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4364 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4368 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4370 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4373 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4382 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4383 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4385 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4390 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_notify +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4405 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ixdb_gc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4551 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4686 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4690 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4821 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4822 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4823 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4824 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4825 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4826 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4827 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpdc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4829 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_exec_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4830 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iphc_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4831 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4832 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4833 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4834 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4835 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4836 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4837 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4838 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4840 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_uidb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4841 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dp_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4843 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_logrotate +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4844 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4846 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4887 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = diag_capture +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vpe +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6394 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6398 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_stats_edm_sunstone +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6399 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6400 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6401 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6402 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6403 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6404 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6406 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6407 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6408 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6409 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_if_driver +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6410 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6550 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6565 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6567 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6580 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6607 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10438 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10445 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 11904 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23324 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1547 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1567 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2097 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2101 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = inotifywait +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2116 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=inotifywait] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2117 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2131 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2150 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2157 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2236 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2243 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2262 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2267 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2274 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2297 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3472 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3473 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3493 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3499 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-aux +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-aux] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-conaux-con +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-conaux-con] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3653 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3655 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = correlatord +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=correlatord] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3657 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3660 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpa_fm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpa_fm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = chkpt_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3678 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=chkpt_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3693 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3694 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3695 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3696 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bag_schema_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3704 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bag_schema_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3711 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3712 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3713 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lcp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3722 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lcp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3727 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3730 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3739 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = issudir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3740 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=issudir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3743 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr_global +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr_global] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3753 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = invmgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3769 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=invmgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3770 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_data_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3775 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_data_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wdsysmon_fd_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3776 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wdsysmon_fd_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_nc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3777 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_nc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3787 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_shared_sc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_shared_sc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3826 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_exec_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3830 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_exec_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3831 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3843 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3857 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = parser_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3872 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=parser_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d_admin +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3886 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d_admin] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nvgen_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3911 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nvgen_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nrssvr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3918 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nrssvr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_verifier +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3948 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_verifier] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3951 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3965 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3978 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3998 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4030 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4042 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4067 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4592 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = placed +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4596 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=placed] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifindex_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifindex_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_pa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4598 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_pa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = alarm-logger +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4599 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=alarm-logger] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4600 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_mgmt +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4601 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_mgmt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4602 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = locald_DLRSC +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4604 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=locald_DLRSC] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4605 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ncd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4606 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ncd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nd_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4607 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nd_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_fo +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4608 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_fo] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nsr_ping_reply +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4609 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nsr_ping_reply] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rmf_cli_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rmf_cli_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4611 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_master +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4612 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_master] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4613 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4614 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_show_users_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4615 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_show_users_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4616 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4617 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4619 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4620 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_arm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4621 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_arm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4626 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4627 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4633 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4635 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policymgr_rp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policymgr_rp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4646 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4671 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4674 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4679 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4701 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_lsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4702 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_lsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4710 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eigrp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4720 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eigrp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = isis_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4742 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=isis_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4768 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lisp_xr_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4774 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lisp_xr_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mldp_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4780 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mldp_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4793 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdl_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4796 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdl_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospfv3_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4809 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospfv3_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rip_policy_reg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4812 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rip_policy_reg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4817 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shelf_mgr_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4845 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shelf_mgr_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5010 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5134 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5363 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5364 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5369 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = kim +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5425 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=kim] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ztp_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5426 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ztp_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tty_verifyd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tty_verifyd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = telemetry_encoder +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=telemetry_encoder] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ethernet_stats_controller_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ethernet_stats_controller_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = python_process_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=python_process_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_services +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_services] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp_epe +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp_epe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rump +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rump] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_distrib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_distrib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5444 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5463 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_connected +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5465 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_connected] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_gl_cfg +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5466 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_gl_cfg] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5467 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_mpa +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5469 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_mpa] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = policy_repository +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5470 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=policy_repository] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5475 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5485 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5487 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_g +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_g] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = intf_mgbl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5495 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=intf_mgbl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5497 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ema_server_sdr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5502 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ema_server_sdr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5508 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5510 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsub_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5511 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsub_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5517 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2rib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5518 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2rib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pppoe_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5520 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pppoe_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sconbkup +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5522 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sconbkup] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_assembler +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5527 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_assembler] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5528 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shcfghistory-edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5536 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shcfghistory-edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5537 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5541 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5542 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5544 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5546 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5562 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5568 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_aps +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5574 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_aps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = raw_ip +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5583 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=raw_ip] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5587 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5591 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5594 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5597 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ip_app +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5603 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ip_app] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5610 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = devc-vty +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5618 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=devc-vty] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5629 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tftp_fs +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5638 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tftp_fs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vi_config_replicator +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5643 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vi_config_replicator] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5656 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5662 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tcl_secure_mode +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5667 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tcl_secure_mode] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = lpts_fm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5690 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=lpts_fm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_policy_dir +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5706 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_policy_dir] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_mp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5708 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_mp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipsec_pp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5726 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipsec_pp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cepki +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5729 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cepki] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5765 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_config +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5773 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_config] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_counter +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5779 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_counter] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_generic +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5794 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_generic] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5798 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_none +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5800 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_none] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_stats +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5803 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_stats] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_syslog +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5813 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_syslog] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_test +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5820 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_test] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_timer +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5828 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_timer] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = object_tracking +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5833 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=object_tracking] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = call_home +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5839 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=call_home] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = http_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5856 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=http_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5860 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = smartlicserver +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5865 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=smartlicserver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6326 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6490 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bcdls +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6636 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bcdls] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = redstatsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=redstatsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7065 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crypto_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7066 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crypto_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = domain_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7068 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=domain_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7069 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = hostname_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7070 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=hostname_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7071 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipodwdm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7073 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipodwdm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_acl_act_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7074 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_acl_act_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_acl_cfg_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7076 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_acl_cfg_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = linux_nto_misc_showd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7077 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=linux_nto_misc_showd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = local_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7078 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=local_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_vpn_mib +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7079 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_vpn_mib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7081 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pak_capture_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7082 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pak_capture_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pam_manager +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7083 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pam_manager] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7085 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7086 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7089 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7090 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7092 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pm_collector +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7187 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pm_collector] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = wanphy_proc +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7427 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=wanphy_proc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = snmppingd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7428 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=snmppingd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7429 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = schema_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7430 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=schema_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2tp_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7431 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2tp_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmpp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7432 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmpp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7433 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xtc_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7434 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xtc_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_ldp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7435 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_ldp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vservice_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7436 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vservice_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7437 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7438 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rt_check_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7439 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rt_check_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = es_acl_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7440 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=es_acl_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_mgbl_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 7750 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_mgbl_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9173 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9352 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_static +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 9897 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_static] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = emsd +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10063 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=emsd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_server +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10818 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = perl +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 16943 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=perl] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bpm +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30011 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bpm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf_uv +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30012 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf_uv] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ospf +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30013 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ospf] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bgp +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30062 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bgp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = loopback_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 30064 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization key=vendor value=cisco key=/Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization/@node-name value=0/RP0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=loopback_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0] +POINT: /system-monitoring/cpu-utilization/total-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = init +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=init] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1654 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1670 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cgroup_oom +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 1695 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cgroup_oom] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2202 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dbus-daemon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2227 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dbus-daemon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sshd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2246 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sshd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rpcbind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2253 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rpcbind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rngd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rngd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2339 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = xinetd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2356 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=xinetd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = crond +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 2393 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=crond] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3478 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dsr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3479 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dsr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3497 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3500 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dev_inotify_hdlr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3501 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dev_inotify_hdlr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ds +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3535 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ds] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = processmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3622 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=processmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = shmwin_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3643 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=shmwin_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_invmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3645 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_invmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vm-monitor +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3646 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vm-monitor] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dumper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3647 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dumper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3648 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslogd_helper +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3649 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslogd_helper] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = syslog_dev +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3650 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=syslog_dev] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3651 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = packet +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3652 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=packet] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3658 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ltrace_sync +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3659 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ltrace_sync] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = resmon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3661 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=resmon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sld +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3664 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sld] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_svr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3671 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_svr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eem_ed_sysmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3672 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eem_ed_sysmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = enf_broker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3675 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=enf_broker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssh_key_client +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3685 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssh_key_client] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = gsp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=gsp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = meminfo_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3705 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=meminfo_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3723 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tamfs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3744 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tamfs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aipc_cleaner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3747 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aipc_cleaner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rdsfs_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3751 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rdsfs_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysdb_mc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3761 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysdb_mc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3774 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpc_rm_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3779 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpc_rm_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cerrno_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3786 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cerrno_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_stats_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3792 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_stats_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cfgmgr-lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cfgmgr-lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = early_fast_discard_main +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3800 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=early_fast_discard_main] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = media_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3806 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=media_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfs_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3809 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfs_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sdr_instagt +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3812 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sdr_instagt] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = subdb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 3816 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=subdb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ifmgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4308 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ifmgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4310 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = calv_alarm_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4311 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=calv_alarm_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fsm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4312 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fsm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fwd_driver_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4313 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fwd_driver_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mempool_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4314 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mempool_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = rsi_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4316 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=rsi_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sh_proc_mem_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4318 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sh_proc_mem_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sint_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4319 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sint_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sysmgr_show_proc_all_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4320 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sysmgr_show_proc_all_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = tunnel_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4322 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=tunnel_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = aib +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4328 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=aib] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_adj +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4331 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_adj] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4332 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4335 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4337 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_nd +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4341 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_nd] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4350 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv4_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4361 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv4_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4364 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4368 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pifibm_server_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4370 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pifibm_server_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = procfind +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4373 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=procfind] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ipv6_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4382 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ipv6_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bfd_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4383 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bfd_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = debug_d +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4385 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=debug_d] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iedged +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4390 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iedged] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = timezone_notify +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4405 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=timezone_notify] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ixdb_gc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4551 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ixdb_gc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cdm_rs +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4686 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cdm_rs] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = udp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4690 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=udp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = accounting_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4821 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=accounting_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = daps +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4822 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=daps] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2fib_mgr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4823 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2fib_mgr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4824 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_fwd_show_proxy +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4825 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_fwd_show_proxy] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = statsd_manager_l +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4826 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=statsd_manager_l] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = mpls_io +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4827 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=mpls_io] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ntpdc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4829 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ntpdc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_exec_agent +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4830 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_exec_agent] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = iphc_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4831 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=iphc_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = nfma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4832 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=nfma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = session_mon +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4833 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=session_mon] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = clns +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4834 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=clns] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = arp +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4835 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=arp] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fhrp_output +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4836 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fhrp_output] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2snoop +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4837 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2snoop] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bundlemgr_local +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4838 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bundlemgr_local] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = showd_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4840 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=showd_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_uidb_svr +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4841 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_uidb_svr] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dp_launcher +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4843 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dp_launcher] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = dpa_logrotate +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4844 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=dpa_logrotate] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = plat_sl_client_lc +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4846 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=plat_sl_client_lc] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 4887 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = bash +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5701 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=bash] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = diag_capture +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 5799 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=diag_capture] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vpe +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6394 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vpe] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 29 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = cmp_edm +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6398 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=cmp_edm] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = fib_stats_edm_sunstone +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6399 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=fib_stats_edm_sunstone] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = imaedm_server +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6400 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=imaedm_server] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = netio_debug_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6401 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=netio_debug_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6402 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pbr_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6403 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pbr_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = pfilter_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6404 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=pfilter_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = qos_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6406 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=qos_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6407 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = spio_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6408 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=spio_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ssm_process +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6409 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ssm_process] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sunstone_if_driver +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6410 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sunstone_if_driver] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6550 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_caps_partner +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6565 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_caps_partner] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = ether_sock +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6567 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=ether_sock] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = eth_intf_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6580 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=eth_intf_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ea +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 6607 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ea] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10438 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 10445 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = sleep +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 11904 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=sleep] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = l2vpn_checker +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23324 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=l2vpn_checker] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-name = vlan_ma +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-id = 23325 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-one-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-five-minute = 0 +TAGS: [key=device value=172.27.113.191 key=sensor value=system-monitoring/cpu-utilization key=vendor value=cisco key=/system-monitoring/cpu-utilization/@node-name value=0/0/CPU0 key=/system-monitoring/cpu-utilization/process-cpu/@process-name value=vlan_ma] +POINT: /system-monitoring/cpu-utilization/process-cpu/process-cpu-fifteen-minute = 0 diff --git a/tests/data/cisco-ios-xr/schema/bgp.json b/tests/data/cisco-ios-xr/schema/bgp.json new file mode 100644 index 0000000..74b01f0 --- /dev/null +++ b/tests/data/cisco-ios-xr/schema/bgp.json @@ -0,0 +1,77 @@ +[ + { + "name" : "openconfig-bgp:bgp", + "kids": [ + { + "name": "neighbors", + "kids": [ + { + "name": "neighbor", + "kids": [ + { + "name": "neighbor-address", + "key": true + }, + { + "name": "afi-safis", + "kids": [ + { + "name": "afi-safi", + "kids": [ + { + "name": "afi-safi-name", + "key": true + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "name" : "openconfig-rib-bgp:bgp-rib", + "kids": [ + { + "name": "afi-safis", + "kids": [ + { + "name": "afi-safi-name", + "key": true + }, + { + "name": "afi-safi", + "kids": [ + { + "name": "afi-safi-name", + "key": true + }, + { + "name": "ipv4-unicast", + "kids": [ + { + "name": "neighbors", + "kids": [ + { + "name": "neighbor", + "kids": [ + { + "name": "neighbor-address", + "key": true + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } +] \ No newline at end of file diff --git a/tests/data/cisco-ios-xr/schema/interfaces.json b/tests/data/cisco-ios-xr/schema/interfaces.json new file mode 100644 index 0000000..eb7f93b --- /dev/null +++ b/tests/data/cisco-ios-xr/schema/interfaces.json @@ -0,0 +1,30 @@ +[ + { + "name": "openconfig-interfaces:interfaces", + "kids": [ + { + "name": "interface", + "kids": [ + { + "name": "name", + "key": true + }, + { + "name": "subinterfaces", + "kids": [ + { + "name": "subinterface", + "kids": [ + { + "name": "index", + "key": true + } + ] + } + ] + } + ] + } + ] + } +] \ No newline at end of file diff --git a/tests/data/cisco-ios-xr/schema/native-statsd-oper.json b/tests/data/cisco-ios-xr/schema/native-statsd-oper.json new file mode 100644 index 0000000..46dc748 --- /dev/null +++ b/tests/data/cisco-ios-xr/schema/native-statsd-oper.json @@ -0,0 +1,93 @@ +[ + { + "name": "Cisco-IOS-XR-infra-statsd-oper:infra-statistics", + "kids": [ + { + "name": "interfaces", + "kids": [ + { + "name": "interface", + "kids": [ + { + "name": "interface-name", + "key": true + }, + { + "name" : "protocols", + "kids": [ + { + "name": "protocol", + "kids": [ + { + "name": "protocol-name", + "key" : true + } + ] + } + ] + }, + { + "name" : "cache", + "kids": [ + { + "name": "protocols", + "kids": [ + { + "name" : "protocol", + "kids" : [ + { + "name" : "protocol-name", + "key" : true + } + ] + } + ] + } + ] + }, + { + "name" : "total", + "kids": [ + { + "name": "protocols", + "kids": [ + { + "name" : "protocol", + "kids" : [ + { + "name" : "protocol-name", + "key" : true + } + ] + } + ] + } + ] + }, + { + "name" : "latest", + "kids": [ + { + "name": "protocols", + "kids": [ + { + "name" : "protocol", + "kids" : [ + { + "name" : "protocol-name", + "key" : true + } + ] + } + ] + } + ] + } + ] + } + ] + }, + {} + ] + } +] \ No newline at end of file diff --git a/tests/data/cisco-ios-xr/schema/wdsysmon.json b/tests/data/cisco-ios-xr/schema/wdsysmon.json new file mode 100644 index 0000000..23d4ce4 --- /dev/null +++ b/tests/data/cisco-ios-xr/schema/wdsysmon.json @@ -0,0 +1,25 @@ +[ + { + "name": "Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring", + "kids": [ + { + "name": "cpu-utilization", + "kids": [ + { + "name": "node-name", + "key": true + }, + { + "name": "process-cpu", + "kids": [ + { + "name": "process-name", + "key": true + } + ] + } + ] + } + ] + } +] \ No newline at end of file diff --git a/tests/data/deadlock-jtisim.json b/tests/data/deadlock-jtisim.json new file mode 100644 index 0000000..c0af44b --- /dev/null +++ b/tests/data/deadlock-jtisim.json @@ -0,0 +1,23 @@ +{ + "host": "127.0.0.1", + "port": 50051, + "cid": "my-client-id", + "influx" : { + "server" : "127.0.0.1", + "port" : 8086, + "dbname" : "ks", + "measurement" : "/test_interfaces/", + "recreate" : true, + "user" : "influx", + "password" : "influxdb", + "BatchFrequency": 1000 + }, + "paths": [{ + "path": "/interfaces", + "freq": 2000 + }], + "log": { + "file": "tests/data/deadlock-jtisim.log", + "periodic-stats" : 1 + } +} diff --git a/tests/data/empty.json b/tests/data/empty.json new file mode 100644 index 0000000..a361a0c --- /dev/null +++ b/tests/data/empty.json @@ -0,0 +1,4 @@ +{ + "paths": [{}] +} + diff --git a/tests/data/empty.json.testbytes b/tests/data/empty.json.testbytes new file mode 100644 index 0000000..64c570d --- /dev/null +++ b/tests/data/empty.json.testbytes @@ -0,0 +1 @@ +this is test data \ No newline at end of file diff --git a/tests/data/empty.json.testexp b/tests/data/empty.json.testexp new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/empty.json.testmeta b/tests/data/empty.json.testmeta new file mode 100644 index 0000000..b949dcf --- /dev/null +++ b/tests/data/empty.json.testmeta @@ -0,0 +1 @@ +17: \ No newline at end of file diff --git a/tests/data/error.json b/tests/data/error.json new file mode 100644 index 0000000..07f40fc --- /dev/null +++ b/tests/data/error.json @@ -0,0 +1,12 @@ +{ + "host": "127.0.0.1", + "port": 50051, + "cid": "my-client-id", + "log" : { + "file" : "/tmp/jtisim-b.log" + } + "paths": [{ + "path": "/interfaces", + "freq": 4000 + }] +} diff --git a/tests/data/file_list.json b/tests/data/file_list.json new file mode 100644 index 0000000..b46b42d --- /dev/null +++ b/tests/data/file_list.json @@ -0,0 +1,3 @@ +{ +"config_file_list" : ["/home/balasank/Downloads/jtimon_config_events", "/home/balasank/Downloads/jtimon_config" ] +} diff --git a/tests/data/file_list_err.json b/tests/data/file_list_err.json new file mode 100644 index 0000000..e972df7 --- /dev/null +++ b/tests/data/file_list_err.json @@ -0,0 +1,3 @@ +{ +"config_file_list" : ["/home/balasank/Downloads/jtimon_config_events", "/home/balasank/Downloads/jtimon_config", ] +} diff --git a/tests/data/gnmi.json b/tests/data/gnmi.json new file mode 100644 index 0000000..af8c6a5 --- /dev/null +++ b/tests/data/gnmi.json @@ -0,0 +1,22 @@ +{ + "host": "nms5-mx480-b.englab.juniper.net", + "port": 32767, + "user": "", + "password": "", + "vendor": { + "gnmi": { + "encoding": "protobuf" + } + }, + "paths": [{ + "path": "/interfaces", + "freq": 15000 + }, + { + "path": "/junos/events", + "freq": 0 + }], + "log" : { + "verbose": true + } +} diff --git a/tests/data/jtisim-1.json b/tests/data/jtisim-1.json new file mode 100644 index 0000000..45d8057 --- /dev/null +++ b/tests/data/jtisim-1.json @@ -0,0 +1,21 @@ +{ + "host": "127.0.0.1", + "port": 50051, + "influx" : { + "server" : "127.0.0.1", + "port" : 8086, + "dbname" : "TEST", + "measurement" : "jtisim", + "recreate" : true, + "user" : "influx", + "password" : "influxdb" + }, + "log" : { + "file" : "tests/data/jtisim-1.log", + "verbose": false + }, + "paths": [{ + "path": "/interfaces", + "freq": 2000 + }] +} diff --git a/tests/data/jtisim-influx.json b/tests/data/jtisim-influx.json new file mode 100644 index 0000000..4f6798b --- /dev/null +++ b/tests/data/jtisim-influx.json @@ -0,0 +1,22 @@ +{ + "host": "127.0.0.1", + "port": 50051, + "influx" : { + "server" : "127.0.0.1", + "port" : 8086, + "dbname" : "TEST", + "measurement" : "jtisim", + "recreate" : false, + "user" : "influx", + "password" : "influxdb", + "batchfrequency" : 1000 + }, + "log" : { + "file" : "tests/data/jtisim-influx.log", + "verbose": false + }, + "paths": [{ + "path": "/interfaces", + "freq": 2000 + }] +} diff --git a/tests/data/jtisim-no-influx.json b/tests/data/jtisim-no-influx.json new file mode 100644 index 0000000..01cc907 --- /dev/null +++ b/tests/data/jtisim-no-influx.json @@ -0,0 +1,12 @@ +{ + "host": "127.0.0.1", + "port": 50051, + "log" : { + "file" : "tests/data/jtisim-1-no-influx.log", + "verbose": false + }, + "paths": [{ + "path": "/interfaces", + "freq": 2000 + }] +} diff --git a/tests/data/juniper-junos/alias/alias-error.txt b/tests/data/juniper-junos/alias/alias-error.txt new file mode 100644 index 0000000..1718a0c --- /dev/null +++ b/tests/data/juniper-junos/alias/alias-error.txt @@ -0,0 +1,10 @@ +ifd : /interfaces/interface/name +physical_interface /interfaces/interface/@name +ifd-admin-status : /interfaces/interface/state/admin-status +ifd-oper-status : /interfaces/interface/state/oper-status +ifd-in-pkts:/interfaces/interface/state/counters/in-pkts +ifd-in-octets:/interfaces/interface/state/counters/in-octets +ifl:/interfaces/interface/subinterfaces/subinterface/index +logical-interface-index:/interfaces/interface/subinterfaces/subinterface/@index +ifl-in-ucast-pkts:/interfaces/interface/subinterfaces/subinterface/state/counters/in-unicast-pkts +ifl-in-mcast-pkts:/interfaces/interface/subinterfaces/subinterface/state/counters/in-multicast-pkts diff --git a/tests/data/juniper-junos/alias/alias.txt b/tests/data/juniper-junos/alias/alias.txt new file mode 100644 index 0000000..c5a361f --- /dev/null +++ b/tests/data/juniper-junos/alias/alias.txt @@ -0,0 +1,10 @@ +ifd : /interfaces/interface/name +physical_interface : /interfaces/interface/@name +ifd-admin-status : /interfaces/interface/state/admin-status +ifd-oper-status : /interfaces/interface/state/oper-status +ifd-in-pkts:/interfaces/interface/state/counters/in-pkts +ifd-in-octets:/interfaces/interface/state/counters/in-octets +ifl:/interfaces/interface/subinterfaces/subinterface/index +logical-interface-index:/interfaces/interface/subinterfaces/subinterface/@index +ifl-in-ucast-pkts:/interfaces/interface/subinterfaces/subinterface/state/counters/in-unicast-pkts +ifl-in-mcast-pkts:/interfaces/interface/subinterfaces/subinterface/state/counters/in-multicast-pkts diff --git a/tests/data/juniper-junos/config/interfaces-influx-alias.json b/tests/data/juniper-junos/config/interfaces-influx-alias.json new file mode 100644 index 0000000..b9a4b71 --- /dev/null +++ b/tests/data/juniper-junos/config/interfaces-influx-alias.json @@ -0,0 +1,9 @@ +{ + "host": "10.102.177.53", + "port": 50051, + "cid": "mac1", + "paths": [{ + "path": "/interfaces", + "freq": 2000 + }] +} diff --git a/tests/data/juniper-junos/config/interfaces-influx.json b/tests/data/juniper-junos/config/interfaces-influx.json new file mode 100644 index 0000000..b9a4b71 --- /dev/null +++ b/tests/data/juniper-junos/config/interfaces-influx.json @@ -0,0 +1,9 @@ +{ + "host": "10.102.177.53", + "port": 50051, + "cid": "mac1", + "paths": [{ + "path": "/interfaces", + "freq": 2000 + }] +} diff --git a/tests/data/juniper-junos/config/interfaces.json b/tests/data/juniper-junos/config/interfaces.json new file mode 100644 index 0000000..f1d28a0 --- /dev/null +++ b/tests/data/juniper-junos/config/interfaces.json @@ -0,0 +1,9 @@ +{ + "host": "10.102.177.53", + "port": 50051, + "cid": "mac1", + "paths": [{ + "path": "/interfaces", + "freq": 10000 + }] +} diff --git a/tests/data/juniper-junos/config/interfaces.json.testbytes b/tests/data/juniper-junos/config/interfaces.json.testbytes new file mode 100644 index 0000000000000000000000000000000000000000..d997368470142ed602c3ba3d0095f667f4899a64 GIT binary patch literal 59204 zcmeI5du$v>8Nlthd3c?NlQ@n84NU^Y2)LK+oG&9q!c80!k%sDMsY--S_ZZvT+)KB2 zmV*GfOiTqP8I|ZOu0`yLY>L z`x@__&*x56Mak{X+933s|Y93*}TQ@jm-JB7HWMy17;?DX9uh zDb)&27gAaHvnrR0h61m!0$-5!=n9n6C-bFrE;Ws-Rxd{-DU~W$@RU54N+tK`e{20` zA1|g0c>i!-k%zw-L0csWeqj|yswc}hxw=%H!4SZ4ms}{Qr{z`lRZ!x zZId>$w{lp?R^&2~AlU_PZeSndVmgz@xx?L!kK`%2n8S04E6|X%g}s%|735-w{Jo|m zSKV+O+OAbwD&va&!JzgapH`}&>`b~ijT5hIKpaBnl&lY-p|l^NR|h8apSgt2m!dv| zhSGk7UK5zmf8Bt-ZZPk|j^<5;R%)5L-769Ozm8Kw+&@g4W|P#%jFDMqSEE-@YhMj* z5cbsy{Xw?Et=)!Zs0P&xa(Q+vlFsESSW#ebQ~!2cF7F?XjU>Xc=twv=J|5mXO04M< z(mJ)t%E^t!$IyefvS(~03gvNex;m5C1%u*x_MlXer{!XD&DXAyZ zvw^V(-DT9pw*u5fT+@I_7wJqkhY&P50*xTh2x1!9rPIiO)k|Q5mU@}*wpGjyO<|-p zV0`YqE;)H{JTpa`4mn>5!xG%Cr~;bokCODcn0OhbHpA$qmzEf?nRy! zNKPC(_|Q*LLIHvwTPwF#!cNuvs&$Q&1%147(k8&p}JUnG%-dL zvDrA5&VzMrH>@3c$!JPn_cO0-3vxug#c0b)kPSiy4ZBfwJPZ>{I7ZrSo6dlHVJ{eYFd1p)-uWuXdppwaH$Ko_dRYPu=UMrw#_$Q#*I1(5V&}Gt3pAb{ZO| z=E`(AeWfYd9s`@rn=p5+y!5NM%>lr$cORT!BkjjpbyL;BcR zQJ^B~svvMvqWe%ZX0NE-&5GJsw+QxC0jcVrYge4A_Qk>@dq-?l#U4AWDi%dijK(p_ z#L(0jf-Yv;r<_!!epNuKdSKnkRF%aBlG>|i`?(B%dR1kj2(|J~DR+#(=qhHRCs>Xs+)qi?gp{h=BOtv;{VZPRfTDHXPRELKn zoHSj*WY$?^3=K;Aadg%NxxnY}^5n8y=8@Xu-;v^e#O@7JYz|#l(_B)U;-yg9kI-v_ z6q-ZVWe8yV&^0OUM{KEmV$-04*N$y6aS%J_N9?{J#pW<^T%bGAeA_oBLx(#2h`v2A z(f`5~E@q;8+p|D!;bN%F-`>qokgf1-!yZ=A$%*D^1?Qa`64sz=#{u0Q$2#z6=>u4? zTSg+++3weT#~?&$DTIKKH~Fzv!5Q_5ofxZ@p%_#drWg|wV~k&nj$Q2X1g$wcgI&1Z z5R0CIpfx5z>jd4dun$`6UbIusmtbScxa}t$J#y?TsiPA&O(vb<);!V9z#1V7k^3|P zHxN-vH0!jMUGSRo+{f1-PLudPNcW0E+E_DK%0Z&oU^wqm=) z!bw>UnYU<}*IJtOEy3kk!@$h3Q>Y5rfHpIMf zM6NiE$XqSqG#qR02#ZM?hvUXGyW!a0CF#uJ81hD1W{#aY7LOWyvXJ#89|vl*76g_p4lIy0EX)dr;bs)ccDegz^+k?|KET=iFe5xwj58&={ zlj45lzT7T-!w;tpg5_-ONp4?W!+UL%n{K)+UT&W4ye4ny{Wi)?bHf%d_oyE`|6d#B zrn};cmwU{Q+#j@2Zh8`B@pAK=Olh+758Ehr+;*krXaYSDdNl-T9G$W#Qm&x4o^yjChU=R zuuR!(sYVbON`!G3@;F^du0Dom0UW_mD~l|mUD`>9daXc%C}pd-swB>x`RUvJXs0x2 z`d)aWd;*?7`@*HIa9Y9qv)}}QR>RMpcywVs970eJ8Pvanyh5vZ=k|+($ctng=mDOX zsiXXt&pzfT|C#6AU|0Na{2CJnr1B?!55f9sN$->iqfB{hqYN zv5CuduFSCkUVrZQ_c%4c`%lgX(f}O&O3ftpG7@oEgO;l6rCN?33kUe!Z0xp+Z#}f# z!N&f0?=#)bHpXgj7`kZ{UL@lfx|w9|VJj*>$4KL~-a190MRn8Fw$s?KRC?pFHn!E} zMbjKzLyJZSTrElcC4D3KYH1#}mufkhR?TVmP^)3J%gaRjTzB-N`(Co7qRpSCpL<{H zzRoK0w$@c&=4cT?MdL=n2`U;t|4vZR2nA43(F7H3*z3}WEV&>*#xBj;3V6mAsSQq@ zprTpg(;yYY@-&7O7fw*o7(CS@U9!HOZ%RBCR5W|mq@bd~B5WyGeVv-=)=KZ#)Kdi& zP0zP%P<$H5RsC)WH$SygEs$fULEX1RdOhQo6 znqgZlp`x7?R5S~G-Lj;joflLz3svb+Tg!%u_K4I9ep6dngA98{wkzyWTb)Qnds$G? zEP7RRIa1O7A*g8d8XV$w3o079>OxN>=;Fx{5>zw~_bHkDJ3&Q@@JG=E70u`6S$wBZ zwA_Y8X736r+M=&Z6I3)3E*4a@i0R%eK}93CFzPp;_1C(2peYC{8d>ZLDjM8pCa7pQ zV!m$A^%k;vJg9!%o@)_(Z>@)mG+#se0o}ki1r?1E zBk29Jt4rkmS+LPw_908GURc;<#{LN^8l;`OM&X(|wxFWn$dbn41QkuCb-HwK)0_>> zCa7qO=-+~hw)Fj5P|?f_a*OG^xqk~P+9LY*@}i;vE8^GpTeBj5%Rcwcig=5`CA_gB ze!*(zU`2E=7ww^6x^U4xTG?E*^G~^O(G~<3O&_SWPO_+9tF$t>Xy-2d*pZ9&^C#W7 zXczBUaOR@Dx2(BnZ$J9HBNy$(r`@<{-Wq^oj9qD5w7c$o$B~QnhAS71)!@KIqg8l7 zIw8SDgRH{+!-Ub`%0*i$y>WC66;>|$&8(}f6UxOh7X7jI|D#oOZ)&uV}1w(dp2MXMziV0W-Z zv?Y4>!bDq|2j-mVLT2Ct!ac;J37#8Hn&y>lL0&h=b5g)7-B1I?Ii((t2rio7q7~Db zJkA~NLR*>+NOZNTr&90O)Kdi)EubvU0jkHbh(0-`2hjLC=@I-|u~;i)a0Tbo7qkqk zF1SA~WPYVSVLIlY26IHm+5$Ot8Uz>3%UK9|(}3xM>@M?#yre0^zW8v0izc{e=&B{+ zqP-}%XckzYWywW5E4XMDs#=y@v}e`{E?V(KD4#wF`PAuLu7VXMxmmBOOcW)e;9st1 zYb_O~u=e0h$0n{lasbv`o7jVyl2Q#70rZ{R7z5`sIuedCLK|6hvsbEQ86J{zaDsWa zG{8P9VtINdQ)0>7IN6(=oH%fJ;+mtAkZ7!aC7vtGm6M6bS7@)IF1a|xM&g6sd$d$1YQgnY}@p) zogH>}%>4W+b8-Sy8K$Qo{G>O|2AQ02s@uRjsWq51O5?ABizY?sET{{wTE$NFM_}r# zLM>FQ4GLPH)IKMC0bmuj(l9>;(P1qQeUVNTDek9F3ND)9qS2|}|4xG7qBSNS$GjB5 zMXTbo>WmuJ30F6C)Vxl};X-YWCZbr5#%5O5fZ_1R8djQPFm58uTSy8>Tr|N& zTN0Wp7;2nn`fj#!!9{b=qG|F)mKhgqRrFsMtXUENW}ka!Mf`{r@WzTb$6n^}r8=04 zcKRt7F4|ppTpUDRASN7e9iG@d+NEXCW=l14%?;VD36-){TvZa6&p!5cKiVk`vZ$5* zjq(Y2e&+d0TOnO}hv{*tR@G|w!>?SpXx}69bJzllxuG@z!n`P|m2sLjiOsRYr5(a^ zGON4KJ>*tI<3v}>t~rjOy-a|9gw)#ImL za^#{t`WrVcnzshv=vOO^i+16MmmRrix8C@C iUhCDc0X)%Wp1NJRXiKFxj; 2560MB +MEMORY = 3072 + +Vagrant.configure("2") do |config| + config.vm.box = "ubuntu/bionic64" + + config.vm.provision :shell, path: "vagrant/provision.sh" + + config.vm.network "private_network", ip: "192.168.100.67" + + config.vm.provider "virtualbox" do |v| + v.memory = MEMORY + end +end diff --git a/vendor/github.com/Shopify/sarama/acl_bindings.go b/vendor/github.com/Shopify/sarama/acl_bindings.go new file mode 100644 index 0000000..50b689d --- /dev/null +++ b/vendor/github.com/Shopify/sarama/acl_bindings.go @@ -0,0 +1,138 @@ +package sarama + +//Resource holds information about acl resource type +type Resource struct { + ResourceType AclResourceType + ResourceName string + ResourcePatternType AclResourcePatternType +} + +func (r *Resource) encode(pe packetEncoder, version int16) error { + pe.putInt8(int8(r.ResourceType)) + + if err := pe.putString(r.ResourceName); err != nil { + return err + } + + if version == 1 { + if r.ResourcePatternType == AclPatternUnknown { + Logger.Print("Cannot encode an unknown resource pattern type, using Literal instead") + r.ResourcePatternType = AclPatternLiteral + } + pe.putInt8(int8(r.ResourcePatternType)) + } + + return nil +} + +func (r *Resource) decode(pd packetDecoder, version int16) (err error) { + resourceType, err := pd.getInt8() + if err != nil { + return err + } + r.ResourceType = AclResourceType(resourceType) + + if r.ResourceName, err = pd.getString(); err != nil { + return err + } + if version == 1 { + pattern, err := pd.getInt8() + if err != nil { + return err + } + r.ResourcePatternType = AclResourcePatternType(pattern) + } + + return nil +} + +//Acl holds information about acl type +type Acl struct { + Principal string + Host string + Operation AclOperation + PermissionType AclPermissionType +} + +func (a *Acl) encode(pe packetEncoder) error { + if err := pe.putString(a.Principal); err != nil { + return err + } + + if err := pe.putString(a.Host); err != nil { + return err + } + + pe.putInt8(int8(a.Operation)) + pe.putInt8(int8(a.PermissionType)) + + return nil +} + +func (a *Acl) decode(pd packetDecoder, version int16) (err error) { + if a.Principal, err = pd.getString(); err != nil { + return err + } + + if a.Host, err = pd.getString(); err != nil { + return err + } + + operation, err := pd.getInt8() + if err != nil { + return err + } + a.Operation = AclOperation(operation) + + permissionType, err := pd.getInt8() + if err != nil { + return err + } + a.PermissionType = AclPermissionType(permissionType) + + return nil +} + +//ResourceAcls is an acl resource type +type ResourceAcls struct { + Resource + Acls []*Acl +} + +func (r *ResourceAcls) encode(pe packetEncoder, version int16) error { + if err := r.Resource.encode(pe, version); err != nil { + return err + } + + if err := pe.putArrayLength(len(r.Acls)); err != nil { + return err + } + for _, acl := range r.Acls { + if err := acl.encode(pe); err != nil { + return err + } + } + + return nil +} + +func (r *ResourceAcls) decode(pd packetDecoder, version int16) error { + if err := r.Resource.decode(pd, version); err != nil { + return err + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Acls = make([]*Acl, n) + for i := 0; i < n; i++ { + r.Acls[i] = new(Acl) + if err := r.Acls[i].decode(pd, version); err != nil { + return err + } + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/acl_create_request.go b/vendor/github.com/Shopify/sarama/acl_create_request.go new file mode 100644 index 0000000..da1cdef --- /dev/null +++ b/vendor/github.com/Shopify/sarama/acl_create_request.go @@ -0,0 +1,85 @@ +package sarama + +//CreateAclsRequest is an acl creation request +type CreateAclsRequest struct { + Version int16 + AclCreations []*AclCreation +} + +func (c *CreateAclsRequest) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(c.AclCreations)); err != nil { + return err + } + + for _, aclCreation := range c.AclCreations { + if err := aclCreation.encode(pe, c.Version); err != nil { + return err + } + } + + return nil +} + +func (c *CreateAclsRequest) decode(pd packetDecoder, version int16) (err error) { + c.Version = version + n, err := pd.getArrayLength() + if err != nil { + return err + } + + c.AclCreations = make([]*AclCreation, n) + + for i := 0; i < n; i++ { + c.AclCreations[i] = new(AclCreation) + if err := c.AclCreations[i].decode(pd, version); err != nil { + return err + } + } + + return nil +} + +func (c *CreateAclsRequest) key() int16 { + return 30 +} + +func (c *CreateAclsRequest) version() int16 { + return c.Version +} + +func (c *CreateAclsRequest) requiredVersion() KafkaVersion { + switch c.Version { + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } +} + +//AclCreation is a wrapper around Resource and Acl type +type AclCreation struct { + Resource + Acl +} + +func (a *AclCreation) encode(pe packetEncoder, version int16) error { + if err := a.Resource.encode(pe, version); err != nil { + return err + } + if err := a.Acl.encode(pe); err != nil { + return err + } + + return nil +} + +func (a *AclCreation) decode(pd packetDecoder, version int16) (err error) { + if err := a.Resource.decode(pd, version); err != nil { + return err + } + if err := a.Acl.decode(pd, version); err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/acl_create_response.go b/vendor/github.com/Shopify/sarama/acl_create_response.go new file mode 100644 index 0000000..f5a5e9a --- /dev/null +++ b/vendor/github.com/Shopify/sarama/acl_create_response.go @@ -0,0 +1,90 @@ +package sarama + +import "time" + +//CreateAclsResponse is a an acl reponse creation type +type CreateAclsResponse struct { + ThrottleTime time.Duration + AclCreationResponses []*AclCreationResponse +} + +func (c *CreateAclsResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(c.ThrottleTime / time.Millisecond)) + + if err := pe.putArrayLength(len(c.AclCreationResponses)); err != nil { + return err + } + + for _, aclCreationResponse := range c.AclCreationResponses { + if err := aclCreationResponse.encode(pe); err != nil { + return err + } + } + + return nil +} + +func (c *CreateAclsResponse) decode(pd packetDecoder, version int16) (err error) { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + c.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + c.AclCreationResponses = make([]*AclCreationResponse, n) + for i := 0; i < n; i++ { + c.AclCreationResponses[i] = new(AclCreationResponse) + if err := c.AclCreationResponses[i].decode(pd, version); err != nil { + return err + } + } + + return nil +} + +func (c *CreateAclsResponse) key() int16 { + return 30 +} + +func (c *CreateAclsResponse) version() int16 { + return 0 +} + +func (c *CreateAclsResponse) requiredVersion() KafkaVersion { + return V0_11_0_0 +} + +//AclCreationResponse is an acl creation response type +type AclCreationResponse struct { + Err KError + ErrMsg *string +} + +func (a *AclCreationResponse) encode(pe packetEncoder) error { + pe.putInt16(int16(a.Err)) + + if err := pe.putNullableString(a.ErrMsg); err != nil { + return err + } + + return nil +} + +func (a *AclCreationResponse) decode(pd packetDecoder, version int16) (err error) { + kerr, err := pd.getInt16() + if err != nil { + return err + } + a.Err = KError(kerr) + + if a.ErrMsg, err = pd.getNullableString(); err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/acl_delete_request.go b/vendor/github.com/Shopify/sarama/acl_delete_request.go new file mode 100644 index 0000000..15908ea --- /dev/null +++ b/vendor/github.com/Shopify/sarama/acl_delete_request.go @@ -0,0 +1,58 @@ +package sarama + +//DeleteAclsRequest is a delete acl request +type DeleteAclsRequest struct { + Version int + Filters []*AclFilter +} + +func (d *DeleteAclsRequest) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(d.Filters)); err != nil { + return err + } + + for _, filter := range d.Filters { + filter.Version = d.Version + if err := filter.encode(pe); err != nil { + return err + } + } + + return nil +} + +func (d *DeleteAclsRequest) decode(pd packetDecoder, version int16) (err error) { + d.Version = int(version) + n, err := pd.getArrayLength() + if err != nil { + return err + } + + d.Filters = make([]*AclFilter, n) + for i := 0; i < n; i++ { + d.Filters[i] = new(AclFilter) + d.Filters[i].Version = int(version) + if err := d.Filters[i].decode(pd, version); err != nil { + return err + } + } + + return nil +} + +func (d *DeleteAclsRequest) key() int16 { + return 31 +} + +func (d *DeleteAclsRequest) version() int16 { + return int16(d.Version) +} + +func (d *DeleteAclsRequest) requiredVersion() KafkaVersion { + switch d.Version { + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/acl_delete_response.go b/vendor/github.com/Shopify/sarama/acl_delete_response.go new file mode 100644 index 0000000..6529565 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/acl_delete_response.go @@ -0,0 +1,159 @@ +package sarama + +import "time" + +//DeleteAclsResponse is a delete acl response +type DeleteAclsResponse struct { + Version int16 + ThrottleTime time.Duration + FilterResponses []*FilterResponse +} + +func (d *DeleteAclsResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(d.ThrottleTime / time.Millisecond)) + + if err := pe.putArrayLength(len(d.FilterResponses)); err != nil { + return err + } + + for _, filterResponse := range d.FilterResponses { + if err := filterResponse.encode(pe, d.Version); err != nil { + return err + } + } + + return nil +} + +func (d *DeleteAclsResponse) decode(pd packetDecoder, version int16) (err error) { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + d.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + n, err := pd.getArrayLength() + if err != nil { + return err + } + d.FilterResponses = make([]*FilterResponse, n) + + for i := 0; i < n; i++ { + d.FilterResponses[i] = new(FilterResponse) + if err := d.FilterResponses[i].decode(pd, version); err != nil { + return err + } + } + + return nil +} + +func (d *DeleteAclsResponse) key() int16 { + return 31 +} + +func (d *DeleteAclsResponse) version() int16 { + return int16(d.Version) +} + +func (d *DeleteAclsResponse) requiredVersion() KafkaVersion { + return V0_11_0_0 +} + +//FilterResponse is a filter response type +type FilterResponse struct { + Err KError + ErrMsg *string + MatchingAcls []*MatchingAcl +} + +func (f *FilterResponse) encode(pe packetEncoder, version int16) error { + pe.putInt16(int16(f.Err)) + if err := pe.putNullableString(f.ErrMsg); err != nil { + return err + } + + if err := pe.putArrayLength(len(f.MatchingAcls)); err != nil { + return err + } + for _, matchingAcl := range f.MatchingAcls { + if err := matchingAcl.encode(pe, version); err != nil { + return err + } + } + + return nil +} + +func (f *FilterResponse) decode(pd packetDecoder, version int16) (err error) { + kerr, err := pd.getInt16() + if err != nil { + return err + } + f.Err = KError(kerr) + + if f.ErrMsg, err = pd.getNullableString(); err != nil { + return err + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + f.MatchingAcls = make([]*MatchingAcl, n) + for i := 0; i < n; i++ { + f.MatchingAcls[i] = new(MatchingAcl) + if err := f.MatchingAcls[i].decode(pd, version); err != nil { + return err + } + } + + return nil +} + +//MatchingAcl is a matching acl type +type MatchingAcl struct { + Err KError + ErrMsg *string + Resource + Acl +} + +func (m *MatchingAcl) encode(pe packetEncoder, version int16) error { + pe.putInt16(int16(m.Err)) + if err := pe.putNullableString(m.ErrMsg); err != nil { + return err + } + + if err := m.Resource.encode(pe, version); err != nil { + return err + } + + if err := m.Acl.encode(pe); err != nil { + return err + } + + return nil +} + +func (m *MatchingAcl) decode(pd packetDecoder, version int16) (err error) { + kerr, err := pd.getInt16() + if err != nil { + return err + } + m.Err = KError(kerr) + + if m.ErrMsg, err = pd.getNullableString(); err != nil { + return err + } + + if err := m.Resource.decode(pd, version); err != nil { + return err + } + + if err := m.Acl.decode(pd, version); err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/acl_describe_request.go b/vendor/github.com/Shopify/sarama/acl_describe_request.go new file mode 100644 index 0000000..5222d46 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/acl_describe_request.go @@ -0,0 +1,35 @@ +package sarama + +//DescribeAclsRequest is a secribe acl request type +type DescribeAclsRequest struct { + Version int + AclFilter +} + +func (d *DescribeAclsRequest) encode(pe packetEncoder) error { + d.AclFilter.Version = d.Version + return d.AclFilter.encode(pe) +} + +func (d *DescribeAclsRequest) decode(pd packetDecoder, version int16) (err error) { + d.Version = int(version) + d.AclFilter.Version = int(version) + return d.AclFilter.decode(pd, version) +} + +func (d *DescribeAclsRequest) key() int16 { + return 29 +} + +func (d *DescribeAclsRequest) version() int16 { + return int16(d.Version) +} + +func (d *DescribeAclsRequest) requiredVersion() KafkaVersion { + switch d.Version { + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/acl_describe_response.go b/vendor/github.com/Shopify/sarama/acl_describe_response.go new file mode 100644 index 0000000..12126e5 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/acl_describe_response.go @@ -0,0 +1,87 @@ +package sarama + +import "time" + +//DescribeAclsResponse is a describe acl response type +type DescribeAclsResponse struct { + Version int16 + ThrottleTime time.Duration + Err KError + ErrMsg *string + ResourceAcls []*ResourceAcls +} + +func (d *DescribeAclsResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(d.ThrottleTime / time.Millisecond)) + pe.putInt16(int16(d.Err)) + + if err := pe.putNullableString(d.ErrMsg); err != nil { + return err + } + + if err := pe.putArrayLength(len(d.ResourceAcls)); err != nil { + return err + } + + for _, resourceAcl := range d.ResourceAcls { + if err := resourceAcl.encode(pe, d.Version); err != nil { + return err + } + } + + return nil +} + +func (d *DescribeAclsResponse) decode(pd packetDecoder, version int16) (err error) { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + d.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + kerr, err := pd.getInt16() + if err != nil { + return err + } + d.Err = KError(kerr) + + errmsg, err := pd.getString() + if err != nil { + return err + } + if errmsg != "" { + d.ErrMsg = &errmsg + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + d.ResourceAcls = make([]*ResourceAcls, n) + + for i := 0; i < n; i++ { + d.ResourceAcls[i] = new(ResourceAcls) + if err := d.ResourceAcls[i].decode(pd, version); err != nil { + return err + } + } + + return nil +} + +func (d *DescribeAclsResponse) key() int16 { + return 29 +} + +func (d *DescribeAclsResponse) version() int16 { + return int16(d.Version) +} + +func (d *DescribeAclsResponse) requiredVersion() KafkaVersion { + switch d.Version { + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/acl_filter.go b/vendor/github.com/Shopify/sarama/acl_filter.go new file mode 100644 index 0000000..fad5558 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/acl_filter.go @@ -0,0 +1,78 @@ +package sarama + +type AclFilter struct { + Version int + ResourceType AclResourceType + ResourceName *string + ResourcePatternTypeFilter AclResourcePatternType + Principal *string + Host *string + Operation AclOperation + PermissionType AclPermissionType +} + +func (a *AclFilter) encode(pe packetEncoder) error { + pe.putInt8(int8(a.ResourceType)) + if err := pe.putNullableString(a.ResourceName); err != nil { + return err + } + + if a.Version == 1 { + pe.putInt8(int8(a.ResourcePatternTypeFilter)) + } + + if err := pe.putNullableString(a.Principal); err != nil { + return err + } + if err := pe.putNullableString(a.Host); err != nil { + return err + } + pe.putInt8(int8(a.Operation)) + pe.putInt8(int8(a.PermissionType)) + + return nil +} + +func (a *AclFilter) decode(pd packetDecoder, version int16) (err error) { + resourceType, err := pd.getInt8() + if err != nil { + return err + } + a.ResourceType = AclResourceType(resourceType) + + if a.ResourceName, err = pd.getNullableString(); err != nil { + return err + } + + if a.Version == 1 { + pattern, err := pd.getInt8() + + if err != nil { + return err + } + + a.ResourcePatternTypeFilter = AclResourcePatternType(pattern) + } + + if a.Principal, err = pd.getNullableString(); err != nil { + return err + } + + if a.Host, err = pd.getNullableString(); err != nil { + return err + } + + operation, err := pd.getInt8() + if err != nil { + return err + } + a.Operation = AclOperation(operation) + + permissionType, err := pd.getInt8() + if err != nil { + return err + } + a.PermissionType = AclPermissionType(permissionType) + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/acl_types.go b/vendor/github.com/Shopify/sarama/acl_types.go new file mode 100644 index 0000000..c10ad7b --- /dev/null +++ b/vendor/github.com/Shopify/sarama/acl_types.go @@ -0,0 +1,55 @@ +package sarama + +type ( + AclOperation int + + AclPermissionType int + + AclResourceType int + + AclResourcePatternType int +) + +// ref: https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/acl/AclOperation.java +const ( + AclOperationUnknown AclOperation = iota + AclOperationAny + AclOperationAll + AclOperationRead + AclOperationWrite + AclOperationCreate + AclOperationDelete + AclOperationAlter + AclOperationDescribe + AclOperationClusterAction + AclOperationDescribeConfigs + AclOperationAlterConfigs + AclOperationIdempotentWrite +) + +// ref: https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/acl/AclPermissionType.java +const ( + AclPermissionUnknown AclPermissionType = iota + AclPermissionAny + AclPermissionDeny + AclPermissionAllow +) + +// ref: https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/resource/ResourceType.java +const ( + AclResourceUnknown AclResourceType = iota + AclResourceAny + AclResourceTopic + AclResourceGroup + AclResourceCluster + AclResourceTransactionalID +) + +// ref: https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/resource/PatternType.java +const ( + AclPatternUnknown AclResourcePatternType = iota + AclPatternAny + AclPatternMatch + AclPatternLiteral + AclPatternPrefixed +) diff --git a/vendor/github.com/Shopify/sarama/add_offsets_to_txn_request.go b/vendor/github.com/Shopify/sarama/add_offsets_to_txn_request.go new file mode 100644 index 0000000..fc227ab --- /dev/null +++ b/vendor/github.com/Shopify/sarama/add_offsets_to_txn_request.go @@ -0,0 +1,53 @@ +package sarama + +//AddOffsetsToTxnRequest adds offsets to a transaction request +type AddOffsetsToTxnRequest struct { + TransactionalID string + ProducerID int64 + ProducerEpoch int16 + GroupID string +} + +func (a *AddOffsetsToTxnRequest) encode(pe packetEncoder) error { + if err := pe.putString(a.TransactionalID); err != nil { + return err + } + + pe.putInt64(a.ProducerID) + + pe.putInt16(a.ProducerEpoch) + + if err := pe.putString(a.GroupID); err != nil { + return err + } + + return nil +} + +func (a *AddOffsetsToTxnRequest) decode(pd packetDecoder, version int16) (err error) { + if a.TransactionalID, err = pd.getString(); err != nil { + return err + } + if a.ProducerID, err = pd.getInt64(); err != nil { + return err + } + if a.ProducerEpoch, err = pd.getInt16(); err != nil { + return err + } + if a.GroupID, err = pd.getString(); err != nil { + return err + } + return nil +} + +func (a *AddOffsetsToTxnRequest) key() int16 { + return 25 +} + +func (a *AddOffsetsToTxnRequest) version() int16 { + return 0 +} + +func (a *AddOffsetsToTxnRequest) requiredVersion() KafkaVersion { + return V0_11_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/add_offsets_to_txn_response.go b/vendor/github.com/Shopify/sarama/add_offsets_to_txn_response.go new file mode 100644 index 0000000..c88c1f8 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/add_offsets_to_txn_response.go @@ -0,0 +1,45 @@ +package sarama + +import ( + "time" +) + +//AddOffsetsToTxnResponse is a response type for adding offsets to txns +type AddOffsetsToTxnResponse struct { + ThrottleTime time.Duration + Err KError +} + +func (a *AddOffsetsToTxnResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(a.ThrottleTime / time.Millisecond)) + pe.putInt16(int16(a.Err)) + return nil +} + +func (a *AddOffsetsToTxnResponse) decode(pd packetDecoder, version int16) (err error) { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + a.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + kerr, err := pd.getInt16() + if err != nil { + return err + } + a.Err = KError(kerr) + + return nil +} + +func (a *AddOffsetsToTxnResponse) key() int16 { + return 25 +} + +func (a *AddOffsetsToTxnResponse) version() int16 { + return 0 +} + +func (a *AddOffsetsToTxnResponse) requiredVersion() KafkaVersion { + return V0_11_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/add_partitions_to_txn_request.go b/vendor/github.com/Shopify/sarama/add_partitions_to_txn_request.go new file mode 100644 index 0000000..8d4b42e --- /dev/null +++ b/vendor/github.com/Shopify/sarama/add_partitions_to_txn_request.go @@ -0,0 +1,77 @@ +package sarama + +//AddPartitionsToTxnRequest is a add paartition request +type AddPartitionsToTxnRequest struct { + TransactionalID string + ProducerID int64 + ProducerEpoch int16 + TopicPartitions map[string][]int32 +} + +func (a *AddPartitionsToTxnRequest) encode(pe packetEncoder) error { + if err := pe.putString(a.TransactionalID); err != nil { + return err + } + pe.putInt64(a.ProducerID) + pe.putInt16(a.ProducerEpoch) + + if err := pe.putArrayLength(len(a.TopicPartitions)); err != nil { + return err + } + for topic, partitions := range a.TopicPartitions { + if err := pe.putString(topic); err != nil { + return err + } + if err := pe.putInt32Array(partitions); err != nil { + return err + } + } + + return nil +} + +func (a *AddPartitionsToTxnRequest) decode(pd packetDecoder, version int16) (err error) { + if a.TransactionalID, err = pd.getString(); err != nil { + return err + } + if a.ProducerID, err = pd.getInt64(); err != nil { + return err + } + if a.ProducerEpoch, err = pd.getInt16(); err != nil { + return err + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + a.TopicPartitions = make(map[string][]int32) + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + + partitions, err := pd.getInt32Array() + if err != nil { + return err + } + + a.TopicPartitions[topic] = partitions + } + + return nil +} + +func (a *AddPartitionsToTxnRequest) key() int16 { + return 24 +} + +func (a *AddPartitionsToTxnRequest) version() int16 { + return 0 +} + +func (a *AddPartitionsToTxnRequest) requiredVersion() KafkaVersion { + return V0_11_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/add_partitions_to_txn_response.go b/vendor/github.com/Shopify/sarama/add_partitions_to_txn_response.go new file mode 100644 index 0000000..eb4f23e --- /dev/null +++ b/vendor/github.com/Shopify/sarama/add_partitions_to_txn_response.go @@ -0,0 +1,110 @@ +package sarama + +import ( + "time" +) + +//AddPartitionsToTxnResponse is a partition errors to transaction type +type AddPartitionsToTxnResponse struct { + ThrottleTime time.Duration + Errors map[string][]*PartitionError +} + +func (a *AddPartitionsToTxnResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(a.ThrottleTime / time.Millisecond)) + if err := pe.putArrayLength(len(a.Errors)); err != nil { + return err + } + + for topic, e := range a.Errors { + if err := pe.putString(topic); err != nil { + return err + } + if err := pe.putArrayLength(len(e)); err != nil { + return err + } + for _, partitionError := range e { + if err := partitionError.encode(pe); err != nil { + return err + } + } + } + + return nil +} + +func (a *AddPartitionsToTxnResponse) decode(pd packetDecoder, version int16) (err error) { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + a.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + a.Errors = make(map[string][]*PartitionError) + + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + + m, err := pd.getArrayLength() + if err != nil { + return err + } + + a.Errors[topic] = make([]*PartitionError, m) + + for j := 0; j < m; j++ { + a.Errors[topic][j] = new(PartitionError) + if err := a.Errors[topic][j].decode(pd, version); err != nil { + return err + } + } + } + + return nil +} + +func (a *AddPartitionsToTxnResponse) key() int16 { + return 24 +} + +func (a *AddPartitionsToTxnResponse) version() int16 { + return 0 +} + +func (a *AddPartitionsToTxnResponse) requiredVersion() KafkaVersion { + return V0_11_0_0 +} + +//PartitionError is a partition error type +type PartitionError struct { + Partition int32 + Err KError +} + +func (p *PartitionError) encode(pe packetEncoder) error { + pe.putInt32(p.Partition) + pe.putInt16(int16(p.Err)) + return nil +} + +func (p *PartitionError) decode(pd packetDecoder, version int16) (err error) { + if p.Partition, err = pd.getInt32(); err != nil { + return err + } + + kerr, err := pd.getInt16() + if err != nil { + return err + } + p.Err = KError(kerr) + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/admin.go b/vendor/github.com/Shopify/sarama/admin.go new file mode 100644 index 0000000..dd63484 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/admin.go @@ -0,0 +1,787 @@ +package sarama + +import ( + "errors" + "fmt" + "math/rand" + "strconv" + "sync" + "time" +) + +// ClusterAdmin is the administrative client for Kafka, which supports managing and inspecting topics, +// brokers, configurations and ACLs. The minimum broker version required is 0.10.0.0. +// Methods with stricter requirements will specify the minimum broker version required. +// You MUST call Close() on a client to avoid leaks +type ClusterAdmin interface { + // Creates a new topic. This operation is supported by brokers with version 0.10.1.0 or higher. + // It may take several seconds after CreateTopic returns success for all the brokers + // to become aware that the topic has been created. During this time, listTopics + // may not return information about the new topic.The validateOnly option is supported from version 0.10.2.0. + CreateTopic(topic string, detail *TopicDetail, validateOnly bool) error + + // List the topics available in the cluster with the default options. + ListTopics() (map[string]TopicDetail, error) + + // Describe some topics in the cluster. + DescribeTopics(topics []string) (metadata []*TopicMetadata, err error) + + // Delete a topic. It may take several seconds after the DeleteTopic to returns success + // and for all the brokers to become aware that the topics are gone. + // During this time, listTopics may continue to return information about the deleted topic. + // If delete.topic.enable is false on the brokers, deleteTopic will mark + // the topic for deletion, but not actually delete them. + // This operation is supported by brokers with version 0.10.1.0 or higher. + DeleteTopic(topic string) error + + // Increase the number of partitions of the topics according to the corresponding values. + // If partitions are increased for a topic that has a key, the partition logic or ordering of + // the messages will be affected. It may take several seconds after this method returns + // success for all the brokers to become aware that the partitions have been created. + // During this time, ClusterAdmin#describeTopics may not return information about the + // new partitions. This operation is supported by brokers with version 1.0.0 or higher. + CreatePartitions(topic string, count int32, assignment [][]int32, validateOnly bool) error + + // Delete records whose offset is smaller than the given offset of the corresponding partition. + // This operation is supported by brokers with version 0.11.0.0 or higher. + DeleteRecords(topic string, partitionOffsets map[int32]int64) error + + // Get the configuration for the specified resources. + // The returned configuration includes default values and the Default is true + // can be used to distinguish them from user supplied values. + // Config entries where ReadOnly is true cannot be updated. + // The value of config entries where Sensitive is true is always nil so + // sensitive information is not disclosed. + // This operation is supported by brokers with version 0.11.0.0 or higher. + DescribeConfig(resource ConfigResource) ([]ConfigEntry, error) + + // Update the configuration for the specified resources with the default options. + // This operation is supported by brokers with version 0.11.0.0 or higher. + // The resources with their configs (topic is the only resource type with configs + // that can be updated currently Updates are not transactional so they may succeed + // for some resources while fail for others. The configs for a particular resource are updated automatically. + AlterConfig(resourceType ConfigResourceType, name string, entries map[string]*string, validateOnly bool) error + + // Creates access control lists (ACLs) which are bound to specific resources. + // This operation is not transactional so it may succeed for some ACLs while fail for others. + // If you attempt to add an ACL that duplicates an existing ACL, no error will be raised, but + // no changes will be made. This operation is supported by brokers with version 0.11.0.0 or higher. + CreateACL(resource Resource, acl Acl) error + + // Lists access control lists (ACLs) according to the supplied filter. + // it may take some time for changes made by createAcls or deleteAcls to be reflected in the output of ListAcls + // This operation is supported by brokers with version 0.11.0.0 or higher. + ListAcls(filter AclFilter) ([]ResourceAcls, error) + + // Deletes access control lists (ACLs) according to the supplied filters. + // This operation is not transactional so it may succeed for some ACLs while fail for others. + // This operation is supported by brokers with version 0.11.0.0 or higher. + DeleteACL(filter AclFilter, validateOnly bool) ([]MatchingAcl, error) + + // List the consumer groups available in the cluster. + ListConsumerGroups() (map[string]string, error) + + // Describe the given consumer groups. + DescribeConsumerGroups(groups []string) ([]*GroupDescription, error) + + // List the consumer group offsets available in the cluster. + ListConsumerGroupOffsets(group string, topicPartitions map[string][]int32) (*OffsetFetchResponse, error) + + // Delete a consumer group. + DeleteConsumerGroup(group string) error + + // Get information about the nodes in the cluster + DescribeCluster() (brokers []*Broker, controllerID int32, err error) + + // Close shuts down the admin and closes underlying client. + Close() error +} + +type clusterAdmin struct { + client Client + conf *Config +} + +// NewClusterAdmin creates a new ClusterAdmin using the given broker addresses and configuration. +func NewClusterAdmin(addrs []string, conf *Config) (ClusterAdmin, error) { + client, err := NewClient(addrs, conf) + if err != nil { + return nil, err + } + return NewClusterAdminFromClient(client) +} + +// NewClusterAdminFromClient creates a new ClusterAdmin using the given client. +// Note that underlying client will also be closed on admin's Close() call. +func NewClusterAdminFromClient(client Client) (ClusterAdmin, error) { + //make sure we can retrieve the controller + _, err := client.Controller() + if err != nil { + return nil, err + } + + ca := &clusterAdmin{ + client: client, + conf: client.Config(), + } + return ca, nil +} + +func (ca *clusterAdmin) Close() error { + return ca.client.Close() +} + +func (ca *clusterAdmin) Controller() (*Broker, error) { + return ca.client.Controller() +} + +func (ca *clusterAdmin) refreshController() (*Broker, error) { + return ca.client.RefreshController() +} + +// isErrNoController returns `true` if the given error type unwraps to an +// `ErrNotController` response from Kafka +func isErrNoController(err error) bool { + switch e := err.(type) { + case *TopicError: + return e.Err == ErrNotController + case *TopicPartitionError: + return e.Err == ErrNotController + case KError: + return e == ErrNotController + } + return false +} + +// retryOnError will repeatedly call the given (error-returning) func in the +// case that its response is non-nil and retriable (as determined by the +// provided retriable func) up to the maximum number of tries permitted by +// the admin client configuration +func (ca *clusterAdmin) retryOnError(retriable func(error) bool, fn func() error) error { + var err error + for attempt := 0; attempt < ca.conf.Admin.Retry.Max; attempt++ { + err = fn() + if err == nil || !retriable(err) { + return err + } + Logger.Printf( + "admin/request retrying after %dms... (%d attempts remaining)\n", + ca.conf.Admin.Retry.Backoff/time.Millisecond, ca.conf.Admin.Retry.Max-attempt) + time.Sleep(ca.conf.Admin.Retry.Backoff) + continue + } + return err +} + +func (ca *clusterAdmin) CreateTopic(topic string, detail *TopicDetail, validateOnly bool) error { + if topic == "" { + return ErrInvalidTopic + } + + if detail == nil { + return errors.New("you must specify topic details") + } + + topicDetails := make(map[string]*TopicDetail) + topicDetails[topic] = detail + + request := &CreateTopicsRequest{ + TopicDetails: topicDetails, + ValidateOnly: validateOnly, + Timeout: ca.conf.Admin.Timeout, + } + + if ca.conf.Version.IsAtLeast(V0_11_0_0) { + request.Version = 1 + } + if ca.conf.Version.IsAtLeast(V1_0_0_0) { + request.Version = 2 + } + + return ca.retryOnError(isErrNoController, func() error { + b, err := ca.Controller() + if err != nil { + return err + } + + rsp, err := b.CreateTopics(request) + if err != nil { + return err + } + + topicErr, ok := rsp.TopicErrors[topic] + if !ok { + return ErrIncompleteResponse + } + + if topicErr.Err != ErrNoError { + if topicErr.Err == ErrNotController { + _, _ = ca.refreshController() + } + return topicErr + } + + return nil + }) +} + +func (ca *clusterAdmin) DescribeTopics(topics []string) (metadata []*TopicMetadata, err error) { + controller, err := ca.Controller() + if err != nil { + return nil, err + } + + request := &MetadataRequest{ + Topics: topics, + AllowAutoTopicCreation: false, + } + + if ca.conf.Version.IsAtLeast(V1_0_0_0) { + request.Version = 5 + } else if ca.conf.Version.IsAtLeast(V0_11_0_0) { + request.Version = 4 + } + + response, err := controller.GetMetadata(request) + if err != nil { + return nil, err + } + return response.Topics, nil +} + +func (ca *clusterAdmin) DescribeCluster() (brokers []*Broker, controllerID int32, err error) { + controller, err := ca.Controller() + if err != nil { + return nil, int32(0), err + } + + request := &MetadataRequest{ + Topics: []string{}, + } + + if ca.conf.Version.IsAtLeast(V0_10_0_0) { + request.Version = 1 + } + + response, err := controller.GetMetadata(request) + if err != nil { + return nil, int32(0), err + } + + return response.Brokers, response.ControllerID, nil +} + +func (ca *clusterAdmin) findBroker(id int32) (*Broker, error) { + brokers := ca.client.Brokers() + for _, b := range brokers { + if b.ID() == id { + return b, nil + } + } + return nil, fmt.Errorf("could not find broker id %d", id) +} + +func (ca *clusterAdmin) findAnyBroker() (*Broker, error) { + brokers := ca.client.Brokers() + if len(brokers) > 0 { + index := rand.Intn(len(brokers)) + return brokers[index], nil + } + return nil, errors.New("no available broker") +} + +func (ca *clusterAdmin) ListTopics() (map[string]TopicDetail, error) { + // In order to build TopicDetails we need to first get the list of all + // topics using a MetadataRequest and then get their configs using a + // DescribeConfigsRequest request. To avoid sending many requests to the + // broker, we use a single DescribeConfigsRequest. + + // Send the all-topic MetadataRequest + b, err := ca.findAnyBroker() + if err != nil { + return nil, err + } + _ = b.Open(ca.client.Config()) + + metadataReq := &MetadataRequest{} + metadataResp, err := b.GetMetadata(metadataReq) + if err != nil { + return nil, err + } + + topicsDetailsMap := make(map[string]TopicDetail) + + var describeConfigsResources []*ConfigResource + + for _, topic := range metadataResp.Topics { + topicDetails := TopicDetail{ + NumPartitions: int32(len(topic.Partitions)), + } + if len(topic.Partitions) > 0 { + topicDetails.ReplicaAssignment = map[int32][]int32{} + for _, partition := range topic.Partitions { + topicDetails.ReplicaAssignment[partition.ID] = partition.Replicas + } + topicDetails.ReplicationFactor = int16(len(topic.Partitions[0].Replicas)) + } + topicsDetailsMap[topic.Name] = topicDetails + + // we populate the resources we want to describe from the MetadataResponse + topicResource := ConfigResource{ + Type: TopicResource, + Name: topic.Name, + } + describeConfigsResources = append(describeConfigsResources, &topicResource) + } + + // Send the DescribeConfigsRequest + describeConfigsReq := &DescribeConfigsRequest{ + Resources: describeConfigsResources, + } + describeConfigsResp, err := b.DescribeConfigs(describeConfigsReq) + if err != nil { + return nil, err + } + + for _, resource := range describeConfigsResp.Resources { + topicDetails := topicsDetailsMap[resource.Name] + topicDetails.ConfigEntries = make(map[string]*string) + + for _, entry := range resource.Configs { + // only include non-default non-sensitive config + // (don't actually think topic config will ever be sensitive) + if entry.Default || entry.Sensitive { + continue + } + topicDetails.ConfigEntries[entry.Name] = &entry.Value + } + + topicsDetailsMap[resource.Name] = topicDetails + } + + return topicsDetailsMap, nil +} + +func (ca *clusterAdmin) DeleteTopic(topic string) error { + if topic == "" { + return ErrInvalidTopic + } + + request := &DeleteTopicsRequest{ + Topics: []string{topic}, + Timeout: ca.conf.Admin.Timeout, + } + + if ca.conf.Version.IsAtLeast(V0_11_0_0) { + request.Version = 1 + } + + return ca.retryOnError(isErrNoController, func() error { + b, err := ca.Controller() + if err != nil { + return err + } + + rsp, err := b.DeleteTopics(request) + if err != nil { + return err + } + + topicErr, ok := rsp.TopicErrorCodes[topic] + if !ok { + return ErrIncompleteResponse + } + + if topicErr != ErrNoError { + if topicErr == ErrNotController { + _, _ = ca.refreshController() + } + return topicErr + } + + return nil + }) +} + +func (ca *clusterAdmin) CreatePartitions(topic string, count int32, assignment [][]int32, validateOnly bool) error { + if topic == "" { + return ErrInvalidTopic + } + + topicPartitions := make(map[string]*TopicPartition) + topicPartitions[topic] = &TopicPartition{Count: count, Assignment: assignment} + + request := &CreatePartitionsRequest{ + TopicPartitions: topicPartitions, + Timeout: ca.conf.Admin.Timeout, + } + + return ca.retryOnError(isErrNoController, func() error { + b, err := ca.Controller() + if err != nil { + return err + } + + rsp, err := b.CreatePartitions(request) + if err != nil { + return err + } + + topicErr, ok := rsp.TopicPartitionErrors[topic] + if !ok { + return ErrIncompleteResponse + } + + if topicErr.Err != ErrNoError { + if topicErr.Err == ErrNotController { + _, _ = ca.refreshController() + } + return topicErr + } + + return nil + }) +} + +func (ca *clusterAdmin) DeleteRecords(topic string, partitionOffsets map[int32]int64) error { + if topic == "" { + return ErrInvalidTopic + } + partitionPerBroker := make(map[*Broker][]int32) + for partition := range partitionOffsets { + broker, err := ca.client.Leader(topic, partition) + if err != nil { + return err + } + if _, ok := partitionPerBroker[broker]; ok { + partitionPerBroker[broker] = append(partitionPerBroker[broker], partition) + } else { + partitionPerBroker[broker] = []int32{partition} + } + } + errs := make([]error, 0) + for broker, partitions := range partitionPerBroker { + topics := make(map[string]*DeleteRecordsRequestTopic) + recordsToDelete := make(map[int32]int64) + for _, p := range partitions { + recordsToDelete[p] = partitionOffsets[p] + } + topics[topic] = &DeleteRecordsRequestTopic{PartitionOffsets: recordsToDelete} + request := &DeleteRecordsRequest{ + Topics: topics, + Timeout: ca.conf.Admin.Timeout, + } + + rsp, err := broker.DeleteRecords(request) + if err != nil { + errs = append(errs, err) + } else { + deleteRecordsResponseTopic, ok := rsp.Topics[topic] + if !ok { + errs = append(errs, ErrIncompleteResponse) + } else { + for _, deleteRecordsResponsePartition := range deleteRecordsResponseTopic.Partitions { + if deleteRecordsResponsePartition.Err != ErrNoError { + errs = append(errs, errors.New(deleteRecordsResponsePartition.Err.Error())) + } + } + } + } + } + if len(errs) > 0 { + return ErrDeleteRecords{MultiError{&errs}} + } + //todo since we are dealing with couple of partitions it would be good if we return slice of errors + //for each partition instead of one error + return nil +} + +// Returns a bool indicating whether the resource request needs to go to a +// specific broker +func dependsOnSpecificNode(resource ConfigResource) bool { + return (resource.Type == BrokerResource && resource.Name != "") || + resource.Type == BrokerLoggerResource +} + +func (ca *clusterAdmin) DescribeConfig(resource ConfigResource) ([]ConfigEntry, error) { + var entries []ConfigEntry + var resources []*ConfigResource + resources = append(resources, &resource) + + request := &DescribeConfigsRequest{ + Resources: resources, + } + + if ca.conf.Version.IsAtLeast(V1_1_0_0) { + request.Version = 1 + } + + if ca.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 2 + } + + var ( + b *Broker + err error + ) + + // DescribeConfig of broker/broker logger must be sent to the broker in question + if dependsOnSpecificNode(resource) { + id, _ := strconv.Atoi(resource.Name) + b, err = ca.findBroker(int32(id)) + } else { + b, err = ca.findAnyBroker() + } + if err != nil { + return nil, err + } + + _ = b.Open(ca.client.Config()) + rsp, err := b.DescribeConfigs(request) + if err != nil { + return nil, err + } + + for _, rspResource := range rsp.Resources { + if rspResource.Name == resource.Name { + if rspResource.ErrorMsg != "" { + return nil, errors.New(rspResource.ErrorMsg) + } + for _, cfgEntry := range rspResource.Configs { + entries = append(entries, *cfgEntry) + } + } + } + return entries, nil +} + +func (ca *clusterAdmin) AlterConfig(resourceType ConfigResourceType, name string, entries map[string]*string, validateOnly bool) error { + var resources []*AlterConfigsResource + resources = append(resources, &AlterConfigsResource{ + Type: resourceType, + Name: name, + ConfigEntries: entries, + }) + + request := &AlterConfigsRequest{ + Resources: resources, + ValidateOnly: validateOnly, + } + + var ( + b *Broker + err error + ) + + // AlterConfig of broker/broker logger must be sent to the broker in question + if dependsOnSpecificNode(ConfigResource{Name: name, Type: resourceType}) { + id, _ := strconv.Atoi(name) + b, err = ca.findBroker(int32(id)) + } else { + b, err = ca.findAnyBroker() + } + if err != nil { + return err + } + + _ = b.Open(ca.client.Config()) + rsp, err := b.AlterConfigs(request) + if err != nil { + return err + } + + for _, rspResource := range rsp.Resources { + if rspResource.Name == name { + if rspResource.ErrorMsg != "" { + return errors.New(rspResource.ErrorMsg) + } + } + } + return nil +} + +func (ca *clusterAdmin) CreateACL(resource Resource, acl Acl) error { + var acls []*AclCreation + acls = append(acls, &AclCreation{resource, acl}) + request := &CreateAclsRequest{AclCreations: acls} + + if ca.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 1 + } + + b, err := ca.Controller() + if err != nil { + return err + } + + _, err = b.CreateAcls(request) + return err +} + +func (ca *clusterAdmin) ListAcls(filter AclFilter) ([]ResourceAcls, error) { + request := &DescribeAclsRequest{AclFilter: filter} + + if ca.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 1 + } + + b, err := ca.Controller() + if err != nil { + return nil, err + } + + rsp, err := b.DescribeAcls(request) + if err != nil { + return nil, err + } + + var lAcls []ResourceAcls + for _, rAcl := range rsp.ResourceAcls { + lAcls = append(lAcls, *rAcl) + } + return lAcls, nil +} + +func (ca *clusterAdmin) DeleteACL(filter AclFilter, validateOnly bool) ([]MatchingAcl, error) { + var filters []*AclFilter + filters = append(filters, &filter) + request := &DeleteAclsRequest{Filters: filters} + + if ca.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 1 + } + + b, err := ca.Controller() + if err != nil { + return nil, err + } + + rsp, err := b.DeleteAcls(request) + if err != nil { + return nil, err + } + + var mAcls []MatchingAcl + for _, fr := range rsp.FilterResponses { + for _, mACL := range fr.MatchingAcls { + mAcls = append(mAcls, *mACL) + } + } + return mAcls, nil +} + +func (ca *clusterAdmin) DescribeConsumerGroups(groups []string) (result []*GroupDescription, err error) { + groupsPerBroker := make(map[*Broker][]string) + + for _, group := range groups { + controller, err := ca.client.Coordinator(group) + if err != nil { + return nil, err + } + groupsPerBroker[controller] = append(groupsPerBroker[controller], group) + } + + for broker, brokerGroups := range groupsPerBroker { + response, err := broker.DescribeGroups(&DescribeGroupsRequest{ + Groups: brokerGroups, + }) + if err != nil { + return nil, err + } + + result = append(result, response.Groups...) + } + return result, nil +} + +func (ca *clusterAdmin) ListConsumerGroups() (allGroups map[string]string, err error) { + allGroups = make(map[string]string) + + // Query brokers in parallel, since we have to query *all* brokers + brokers := ca.client.Brokers() + groupMaps := make(chan map[string]string, len(brokers)) + errors := make(chan error, len(brokers)) + wg := sync.WaitGroup{} + + for _, b := range brokers { + wg.Add(1) + go func(b *Broker, conf *Config) { + defer wg.Done() + _ = b.Open(conf) // Ensure that broker is opened + + response, err := b.ListGroups(&ListGroupsRequest{}) + if err != nil { + errors <- err + return + } + + groups := make(map[string]string) + for group, typ := range response.Groups { + groups[group] = typ + } + + groupMaps <- groups + }(b, ca.conf) + } + + wg.Wait() + close(groupMaps) + close(errors) + + for groupMap := range groupMaps { + for group, protocolType := range groupMap { + allGroups[group] = protocolType + } + } + + // Intentionally return only the first error for simplicity + err = <-errors + return +} + +func (ca *clusterAdmin) ListConsumerGroupOffsets(group string, topicPartitions map[string][]int32) (*OffsetFetchResponse, error) { + coordinator, err := ca.client.Coordinator(group) + if err != nil { + return nil, err + } + + request := &OffsetFetchRequest{ + ConsumerGroup: group, + partitions: topicPartitions, + } + + if ca.conf.Version.IsAtLeast(V0_10_2_0) { + request.Version = 2 + } else if ca.conf.Version.IsAtLeast(V0_8_2_2) { + request.Version = 1 + } + + return coordinator.FetchOffset(request) +} + +func (ca *clusterAdmin) DeleteConsumerGroup(group string) error { + coordinator, err := ca.client.Coordinator(group) + if err != nil { + return err + } + + request := &DeleteGroupsRequest{ + Groups: []string{group}, + } + + resp, err := coordinator.DeleteGroups(request) + if err != nil { + return err + } + + groupErr, ok := resp.GroupErrorCodes[group] + if !ok { + return ErrIncompleteResponse + } + + if groupErr != ErrNoError { + return groupErr + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/alter_configs_request.go b/vendor/github.com/Shopify/sarama/alter_configs_request.go new file mode 100644 index 0000000..26c275b --- /dev/null +++ b/vendor/github.com/Shopify/sarama/alter_configs_request.go @@ -0,0 +1,122 @@ +package sarama + +//AlterConfigsRequest is an alter config request type +type AlterConfigsRequest struct { + Resources []*AlterConfigsResource + ValidateOnly bool +} + +//AlterConfigsResource is an alter config resource type +type AlterConfigsResource struct { + Type ConfigResourceType + Name string + ConfigEntries map[string]*string +} + +func (a *AlterConfigsRequest) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(a.Resources)); err != nil { + return err + } + + for _, r := range a.Resources { + if err := r.encode(pe); err != nil { + return err + } + } + + pe.putBool(a.ValidateOnly) + return nil +} + +func (a *AlterConfigsRequest) decode(pd packetDecoder, version int16) error { + resourceCount, err := pd.getArrayLength() + if err != nil { + return err + } + + a.Resources = make([]*AlterConfigsResource, resourceCount) + for i := range a.Resources { + r := &AlterConfigsResource{} + err = r.decode(pd, version) + if err != nil { + return err + } + a.Resources[i] = r + } + + validateOnly, err := pd.getBool() + if err != nil { + return err + } + + a.ValidateOnly = validateOnly + + return nil +} + +func (a *AlterConfigsResource) encode(pe packetEncoder) error { + pe.putInt8(int8(a.Type)) + + if err := pe.putString(a.Name); err != nil { + return err + } + + if err := pe.putArrayLength(len(a.ConfigEntries)); err != nil { + return err + } + for configKey, configValue := range a.ConfigEntries { + if err := pe.putString(configKey); err != nil { + return err + } + if err := pe.putNullableString(configValue); err != nil { + return err + } + } + + return nil +} + +func (a *AlterConfigsResource) decode(pd packetDecoder, version int16) error { + t, err := pd.getInt8() + if err != nil { + return err + } + a.Type = ConfigResourceType(t) + + name, err := pd.getString() + if err != nil { + return err + } + a.Name = name + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + if n > 0 { + a.ConfigEntries = make(map[string]*string, n) + for i := 0; i < n; i++ { + configKey, err := pd.getString() + if err != nil { + return err + } + if a.ConfigEntries[configKey], err = pd.getNullableString(); err != nil { + return err + } + } + } + return err +} + +func (a *AlterConfigsRequest) key() int16 { + return 33 +} + +func (a *AlterConfigsRequest) version() int16 { + return 0 +} + +func (a *AlterConfigsRequest) requiredVersion() KafkaVersion { + return V0_11_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/alter_configs_response.go b/vendor/github.com/Shopify/sarama/alter_configs_response.go new file mode 100644 index 0000000..3893663 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/alter_configs_response.go @@ -0,0 +1,97 @@ +package sarama + +import "time" + +//AlterConfigsResponse is a reponse type for alter config +type AlterConfigsResponse struct { + ThrottleTime time.Duration + Resources []*AlterConfigsResourceResponse +} + +//AlterConfigsResourceResponse is a reponse type for alter config resource +type AlterConfigsResourceResponse struct { + ErrorCode int16 + ErrorMsg string + Type ConfigResourceType + Name string +} + +func (a *AlterConfigsResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(a.ThrottleTime / time.Millisecond)) + + if err := pe.putArrayLength(len(a.Resources)); err != nil { + return err + } + + for i := range a.Resources { + pe.putInt16(a.Resources[i].ErrorCode) + err := pe.putString(a.Resources[i].ErrorMsg) + if err != nil { + return nil + } + pe.putInt8(int8(a.Resources[i].Type)) + err = pe.putString(a.Resources[i].Name) + if err != nil { + return nil + } + } + + return nil +} + +func (a *AlterConfigsResponse) decode(pd packetDecoder, version int16) error { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + a.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + responseCount, err := pd.getArrayLength() + if err != nil { + return err + } + + a.Resources = make([]*AlterConfigsResourceResponse, responseCount) + + for i := range a.Resources { + a.Resources[i] = new(AlterConfigsResourceResponse) + + errCode, err := pd.getInt16() + if err != nil { + return err + } + a.Resources[i].ErrorCode = errCode + + e, err := pd.getString() + if err != nil { + return err + } + a.Resources[i].ErrorMsg = e + + t, err := pd.getInt8() + if err != nil { + return err + } + a.Resources[i].Type = ConfigResourceType(t) + + name, err := pd.getString() + if err != nil { + return err + } + a.Resources[i].Name = name + } + + return nil +} + +func (a *AlterConfigsResponse) key() int16 { + return 32 +} + +func (a *AlterConfigsResponse) version() int16 { + return 0 +} + +func (a *AlterConfigsResponse) requiredVersion() KafkaVersion { + return V0_11_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/api_versions_request.go b/vendor/github.com/Shopify/sarama/api_versions_request.go new file mode 100644 index 0000000..b33167c --- /dev/null +++ b/vendor/github.com/Shopify/sarama/api_versions_request.go @@ -0,0 +1,25 @@ +package sarama + +//ApiVersionsRequest ... +type ApiVersionsRequest struct { +} + +func (a *ApiVersionsRequest) encode(pe packetEncoder) error { + return nil +} + +func (a *ApiVersionsRequest) decode(pd packetDecoder, version int16) (err error) { + return nil +} + +func (a *ApiVersionsRequest) key() int16 { + return 18 +} + +func (a *ApiVersionsRequest) version() int16 { + return 0 +} + +func (a *ApiVersionsRequest) requiredVersion() KafkaVersion { + return V0_10_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/api_versions_response.go b/vendor/github.com/Shopify/sarama/api_versions_response.go new file mode 100644 index 0000000..bb1f0b3 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/api_versions_response.go @@ -0,0 +1,89 @@ +package sarama + +//ApiVersionsResponseBlock is an api version reponse block type +type ApiVersionsResponseBlock struct { + ApiKey int16 + MinVersion int16 + MaxVersion int16 +} + +func (b *ApiVersionsResponseBlock) encode(pe packetEncoder) error { + pe.putInt16(b.ApiKey) + pe.putInt16(b.MinVersion) + pe.putInt16(b.MaxVersion) + return nil +} + +func (b *ApiVersionsResponseBlock) decode(pd packetDecoder) error { + var err error + + if b.ApiKey, err = pd.getInt16(); err != nil { + return err + } + + if b.MinVersion, err = pd.getInt16(); err != nil { + return err + } + + if b.MaxVersion, err = pd.getInt16(); err != nil { + return err + } + + return nil +} + +//ApiVersionsResponse is an api version response type +type ApiVersionsResponse struct { + Err KError + ApiVersions []*ApiVersionsResponseBlock +} + +func (r *ApiVersionsResponse) encode(pe packetEncoder) error { + pe.putInt16(int16(r.Err)) + if err := pe.putArrayLength(len(r.ApiVersions)); err != nil { + return err + } + for _, apiVersion := range r.ApiVersions { + if err := apiVersion.encode(pe); err != nil { + return err + } + } + return nil +} + +func (r *ApiVersionsResponse) decode(pd packetDecoder, version int16) error { + kerr, err := pd.getInt16() + if err != nil { + return err + } + + r.Err = KError(kerr) + + numBlocks, err := pd.getArrayLength() + if err != nil { + return err + } + + r.ApiVersions = make([]*ApiVersionsResponseBlock, numBlocks) + for i := 0; i < numBlocks; i++ { + block := new(ApiVersionsResponseBlock) + if err := block.decode(pd); err != nil { + return err + } + r.ApiVersions[i] = block + } + + return nil +} + +func (r *ApiVersionsResponse) key() int16 { + return 18 +} + +func (r *ApiVersionsResponse) version() int16 { + return 0 +} + +func (r *ApiVersionsResponse) requiredVersion() KafkaVersion { + return V0_10_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/async_producer.go b/vendor/github.com/Shopify/sarama/async_producer.go new file mode 100644 index 0000000..9b15cd1 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/async_producer.go @@ -0,0 +1,1116 @@ +package sarama + +import ( + "encoding/binary" + "fmt" + "sync" + "time" + + "github.com/eapache/go-resiliency/breaker" + "github.com/eapache/queue" +) + +// AsyncProducer publishes Kafka messages using a non-blocking API. It routes messages +// to the correct broker for the provided topic-partition, refreshing metadata as appropriate, +// and parses responses for errors. You must read from the Errors() channel or the +// producer will deadlock. You must call Close() or AsyncClose() on a producer to avoid +// leaks: it will not be garbage-collected automatically when it passes out of +// scope. +type AsyncProducer interface { + + // AsyncClose triggers a shutdown of the producer. The shutdown has completed + // when both the Errors and Successes channels have been closed. When calling + // AsyncClose, you *must* continue to read from those channels in order to + // drain the results of any messages in flight. + AsyncClose() + + // Close shuts down the producer and waits for any buffered messages to be + // flushed. You must call this function before a producer object passes out of + // scope, as it may otherwise leak memory. You must call this before calling + // Close on the underlying client. + Close() error + + // Input is the input channel for the user to write messages to that they + // wish to send. + Input() chan<- *ProducerMessage + + // Successes is the success output channel back to the user when Return.Successes is + // enabled. If Return.Successes is true, you MUST read from this channel or the + // Producer will deadlock. It is suggested that you send and read messages + // together in a single select statement. + Successes() <-chan *ProducerMessage + + // Errors is the error output channel back to the user. You MUST read from this + // channel or the Producer will deadlock when the channel is full. Alternatively, + // you can set Producer.Return.Errors in your config to false, which prevents + // errors to be returned. + Errors() <-chan *ProducerError +} + +// transactionManager keeps the state necessary to ensure idempotent production +type transactionManager struct { + producerID int64 + producerEpoch int16 + sequenceNumbers map[string]int32 + mutex sync.Mutex +} + +const ( + noProducerID = -1 + noProducerEpoch = -1 +) + +func (t *transactionManager) getAndIncrementSequenceNumber(topic string, partition int32) int32 { + key := fmt.Sprintf("%s-%d", topic, partition) + t.mutex.Lock() + defer t.mutex.Unlock() + sequence := t.sequenceNumbers[key] + t.sequenceNumbers[key] = sequence + 1 + return sequence +} + +func newTransactionManager(conf *Config, client Client) (*transactionManager, error) { + txnmgr := &transactionManager{ + producerID: noProducerID, + producerEpoch: noProducerEpoch, + } + + if conf.Producer.Idempotent { + initProducerIDResponse, err := client.InitProducerID() + if err != nil { + return nil, err + } + txnmgr.producerID = initProducerIDResponse.ProducerID + txnmgr.producerEpoch = initProducerIDResponse.ProducerEpoch + txnmgr.sequenceNumbers = make(map[string]int32) + txnmgr.mutex = sync.Mutex{} + + Logger.Printf("Obtained a ProducerId: %d and ProducerEpoch: %d\n", txnmgr.producerID, txnmgr.producerEpoch) + } + + return txnmgr, nil +} + +type asyncProducer struct { + client Client + conf *Config + + errors chan *ProducerError + input, successes, retries chan *ProducerMessage + inFlight sync.WaitGroup + + brokers map[*Broker]*brokerProducer + brokerRefs map[*brokerProducer]int + brokerLock sync.Mutex + + txnmgr *transactionManager +} + +// NewAsyncProducer creates a new AsyncProducer using the given broker addresses and configuration. +func NewAsyncProducer(addrs []string, conf *Config) (AsyncProducer, error) { + client, err := NewClient(addrs, conf) + if err != nil { + return nil, err + } + return newAsyncProducer(client) +} + +// NewAsyncProducerFromClient creates a new Producer using the given client. It is still +// necessary to call Close() on the underlying client when shutting down this producer. +func NewAsyncProducerFromClient(client Client) (AsyncProducer, error) { + // For clients passed in by the client, ensure we don't + // call Close() on it. + cli := &nopCloserClient{client} + return newAsyncProducer(cli) +} + +func newAsyncProducer(client Client) (AsyncProducer, error) { + // Check that we are not dealing with a closed Client before processing any other arguments + if client.Closed() { + return nil, ErrClosedClient + } + + txnmgr, err := newTransactionManager(client.Config(), client) + if err != nil { + return nil, err + } + + p := &asyncProducer{ + client: client, + conf: client.Config(), + errors: make(chan *ProducerError), + input: make(chan *ProducerMessage), + successes: make(chan *ProducerMessage), + retries: make(chan *ProducerMessage), + brokers: make(map[*Broker]*brokerProducer), + brokerRefs: make(map[*brokerProducer]int), + txnmgr: txnmgr, + } + + // launch our singleton dispatchers + go withRecover(p.dispatcher) + go withRecover(p.retryHandler) + + return p, nil +} + +type flagSet int8 + +const ( + syn flagSet = 1 << iota // first message from partitionProducer to brokerProducer + fin // final message from partitionProducer to brokerProducer and back + shutdown // start the shutdown process +) + +// ProducerMessage is the collection of elements passed to the Producer in order to send a message. +type ProducerMessage struct { + Topic string // The Kafka topic for this message. + // The partitioning key for this message. Pre-existing Encoders include + // StringEncoder and ByteEncoder. + Key Encoder + // The actual message to store in Kafka. Pre-existing Encoders include + // StringEncoder and ByteEncoder. + Value Encoder + + // The headers are key-value pairs that are transparently passed + // by Kafka between producers and consumers. + Headers []RecordHeader + + // This field is used to hold arbitrary data you wish to include so it + // will be available when receiving on the Successes and Errors channels. + // Sarama completely ignores this field and is only to be used for + // pass-through data. + Metadata interface{} + + // Below this point are filled in by the producer as the message is processed + + // Offset is the offset of the message stored on the broker. This is only + // guaranteed to be defined if the message was successfully delivered and + // RequiredAcks is not NoResponse. + Offset int64 + // Partition is the partition that the message was sent to. This is only + // guaranteed to be defined if the message was successfully delivered. + Partition int32 + // Timestamp can vary in behaviour depending on broker configuration, being + // in either one of the CreateTime or LogAppendTime modes (default CreateTime), + // and requiring version at least 0.10.0. + // + // When configured to CreateTime, the timestamp is specified by the producer + // either by explicitly setting this field, or when the message is added + // to a produce set. + // + // When configured to LogAppendTime, the timestamp assigned to the message + // by the broker. This is only guaranteed to be defined if the message was + // successfully delivered and RequiredAcks is not NoResponse. + Timestamp time.Time + + retries int + flags flagSet + expectation chan *ProducerError + sequenceNumber int32 +} + +const producerMessageOverhead = 26 // the metadata overhead of CRC, flags, etc. + +func (m *ProducerMessage) byteSize(version int) int { + var size int + if version >= 2 { + size = maximumRecordOverhead + for _, h := range m.Headers { + size += len(h.Key) + len(h.Value) + 2*binary.MaxVarintLen32 + } + } else { + size = producerMessageOverhead + } + if m.Key != nil { + size += m.Key.Length() + } + if m.Value != nil { + size += m.Value.Length() + } + return size +} + +func (m *ProducerMessage) clear() { + m.flags = 0 + m.retries = 0 +} + +// ProducerError is the type of error generated when the producer fails to deliver a message. +// It contains the original ProducerMessage as well as the actual error value. +type ProducerError struct { + Msg *ProducerMessage + Err error +} + +func (pe ProducerError) Error() string { + return fmt.Sprintf("kafka: Failed to produce message to topic %s: %s", pe.Msg.Topic, pe.Err) +} + +// ProducerErrors is a type that wraps a batch of "ProducerError"s and implements the Error interface. +// It can be returned from the Producer's Close method to avoid the need to manually drain the Errors channel +// when closing a producer. +type ProducerErrors []*ProducerError + +func (pe ProducerErrors) Error() string { + return fmt.Sprintf("kafka: Failed to deliver %d messages.", len(pe)) +} + +func (p *asyncProducer) Errors() <-chan *ProducerError { + return p.errors +} + +func (p *asyncProducer) Successes() <-chan *ProducerMessage { + return p.successes +} + +func (p *asyncProducer) Input() chan<- *ProducerMessage { + return p.input +} + +func (p *asyncProducer) Close() error { + p.AsyncClose() + + if p.conf.Producer.Return.Successes { + go withRecover(func() { + for range p.successes { + } + }) + } + + var errors ProducerErrors + if p.conf.Producer.Return.Errors { + for event := range p.errors { + errors = append(errors, event) + } + } else { + <-p.errors + } + + if len(errors) > 0 { + return errors + } + return nil +} + +func (p *asyncProducer) AsyncClose() { + go withRecover(p.shutdown) +} + +// singleton +// dispatches messages by topic +func (p *asyncProducer) dispatcher() { + handlers := make(map[string]chan<- *ProducerMessage) + shuttingDown := false + + for msg := range p.input { + if msg == nil { + Logger.Println("Something tried to send a nil message, it was ignored.") + continue + } + + if msg.flags&shutdown != 0 { + shuttingDown = true + p.inFlight.Done() + continue + } else if msg.retries == 0 { + if shuttingDown { + // we can't just call returnError here because that decrements the wait group, + // which hasn't been incremented yet for this message, and shouldn't be + pErr := &ProducerError{Msg: msg, Err: ErrShuttingDown} + if p.conf.Producer.Return.Errors { + p.errors <- pErr + } else { + Logger.Println(pErr) + } + continue + } + p.inFlight.Add(1) + } + + version := 1 + if p.conf.Version.IsAtLeast(V0_11_0_0) { + version = 2 + } else if msg.Headers != nil { + p.returnError(msg, ConfigurationError("Producing headers requires Kafka at least v0.11")) + continue + } + if msg.byteSize(version) > p.conf.Producer.MaxMessageBytes { + p.returnError(msg, ErrMessageSizeTooLarge) + continue + } + + handler := handlers[msg.Topic] + if handler == nil { + handler = p.newTopicProducer(msg.Topic) + handlers[msg.Topic] = handler + } + + handler <- msg + } + + for _, handler := range handlers { + close(handler) + } +} + +// one per topic +// partitions messages, then dispatches them by partition +type topicProducer struct { + parent *asyncProducer + topic string + input <-chan *ProducerMessage + + breaker *breaker.Breaker + handlers map[int32]chan<- *ProducerMessage + partitioner Partitioner +} + +func (p *asyncProducer) newTopicProducer(topic string) chan<- *ProducerMessage { + input := make(chan *ProducerMessage, p.conf.ChannelBufferSize) + tp := &topicProducer{ + parent: p, + topic: topic, + input: input, + breaker: breaker.New(3, 1, 10*time.Second), + handlers: make(map[int32]chan<- *ProducerMessage), + partitioner: p.conf.Producer.Partitioner(topic), + } + go withRecover(tp.dispatch) + return input +} + +func (tp *topicProducer) dispatch() { + for msg := range tp.input { + if msg.retries == 0 { + if err := tp.partitionMessage(msg); err != nil { + tp.parent.returnError(msg, err) + continue + } + } + // All messages being retried (sent or not) have already had their retry count updated + if tp.parent.conf.Producer.Idempotent && msg.retries == 0 { + msg.sequenceNumber = tp.parent.txnmgr.getAndIncrementSequenceNumber(msg.Topic, msg.Partition) + } + + handler := tp.handlers[msg.Partition] + if handler == nil { + handler = tp.parent.newPartitionProducer(msg.Topic, msg.Partition) + tp.handlers[msg.Partition] = handler + } + + handler <- msg + } + + for _, handler := range tp.handlers { + close(handler) + } +} + +func (tp *topicProducer) partitionMessage(msg *ProducerMessage) error { + var partitions []int32 + + err := tp.breaker.Run(func() (err error) { + var requiresConsistency = false + if ep, ok := tp.partitioner.(DynamicConsistencyPartitioner); ok { + requiresConsistency = ep.MessageRequiresConsistency(msg) + } else { + requiresConsistency = tp.partitioner.RequiresConsistency() + } + + if requiresConsistency { + partitions, err = tp.parent.client.Partitions(msg.Topic) + } else { + partitions, err = tp.parent.client.WritablePartitions(msg.Topic) + } + return + }) + + if err != nil { + return err + } + + numPartitions := int32(len(partitions)) + + if numPartitions == 0 { + return ErrLeaderNotAvailable + } + + choice, err := tp.partitioner.Partition(msg, numPartitions) + + if err != nil { + return err + } else if choice < 0 || choice >= numPartitions { + return ErrInvalidPartition + } + + msg.Partition = partitions[choice] + + return nil +} + +// one per partition per topic +// dispatches messages to the appropriate broker +// also responsible for maintaining message order during retries +type partitionProducer struct { + parent *asyncProducer + topic string + partition int32 + input <-chan *ProducerMessage + + leader *Broker + breaker *breaker.Breaker + brokerProducer *brokerProducer + + // highWatermark tracks the "current" retry level, which is the only one where we actually let messages through, + // all other messages get buffered in retryState[msg.retries].buf to preserve ordering + // retryState[msg.retries].expectChaser simply tracks whether we've seen a fin message for a given level (and + // therefore whether our buffer is complete and safe to flush) + highWatermark int + retryState []partitionRetryState +} + +type partitionRetryState struct { + buf []*ProducerMessage + expectChaser bool +} + +func (p *asyncProducer) newPartitionProducer(topic string, partition int32) chan<- *ProducerMessage { + input := make(chan *ProducerMessage, p.conf.ChannelBufferSize) + pp := &partitionProducer{ + parent: p, + topic: topic, + partition: partition, + input: input, + + breaker: breaker.New(3, 1, 10*time.Second), + retryState: make([]partitionRetryState, p.conf.Producer.Retry.Max+1), + } + go withRecover(pp.dispatch) + return input +} + +func (pp *partitionProducer) backoff(retries int) { + var backoff time.Duration + if pp.parent.conf.Producer.Retry.BackoffFunc != nil { + maxRetries := pp.parent.conf.Producer.Retry.Max + backoff = pp.parent.conf.Producer.Retry.BackoffFunc(retries, maxRetries) + } else { + backoff = pp.parent.conf.Producer.Retry.Backoff + } + if backoff > 0 { + time.Sleep(backoff) + } +} + +func (pp *partitionProducer) dispatch() { + // try to prefetch the leader; if this doesn't work, we'll do a proper call to `updateLeader` + // on the first message + pp.leader, _ = pp.parent.client.Leader(pp.topic, pp.partition) + if pp.leader != nil { + pp.brokerProducer = pp.parent.getBrokerProducer(pp.leader) + pp.parent.inFlight.Add(1) // we're generating a syn message; track it so we don't shut down while it's still inflight + pp.brokerProducer.input <- &ProducerMessage{Topic: pp.topic, Partition: pp.partition, flags: syn} + } + + defer func() { + if pp.brokerProducer != nil { + pp.parent.unrefBrokerProducer(pp.leader, pp.brokerProducer) + } + }() + + for msg := range pp.input { + if pp.brokerProducer != nil && pp.brokerProducer.abandoned != nil { + select { + case <-pp.brokerProducer.abandoned: + // a message on the abandoned channel means that our current broker selection is out of date + Logger.Printf("producer/leader/%s/%d abandoning broker %d\n", pp.topic, pp.partition, pp.leader.ID()) + pp.parent.unrefBrokerProducer(pp.leader, pp.brokerProducer) + pp.brokerProducer = nil + time.Sleep(pp.parent.conf.Producer.Retry.Backoff) + default: + // producer connection is still open. + } + } + + if msg.retries > pp.highWatermark { + // a new, higher, retry level; handle it and then back off + pp.newHighWatermark(msg.retries) + pp.backoff(msg.retries) + } else if pp.highWatermark > 0 { + // we are retrying something (else highWatermark would be 0) but this message is not a *new* retry level + if msg.retries < pp.highWatermark { + // in fact this message is not even the current retry level, so buffer it for now (unless it's a just a fin) + if msg.flags&fin == fin { + pp.retryState[msg.retries].expectChaser = false + pp.parent.inFlight.Done() // this fin is now handled and will be garbage collected + } else { + pp.retryState[msg.retries].buf = append(pp.retryState[msg.retries].buf, msg) + } + continue + } else if msg.flags&fin == fin { + // this message is of the current retry level (msg.retries == highWatermark) and the fin flag is set, + // meaning this retry level is done and we can go down (at least) one level and flush that + pp.retryState[pp.highWatermark].expectChaser = false + pp.flushRetryBuffers() + pp.parent.inFlight.Done() // this fin is now handled and will be garbage collected + continue + } + } + + // if we made it this far then the current msg contains real data, and can be sent to the next goroutine + // without breaking any of our ordering guarantees + + if pp.brokerProducer == nil { + if err := pp.updateLeader(); err != nil { + pp.parent.returnError(msg, err) + pp.backoff(msg.retries) + continue + } + Logger.Printf("producer/leader/%s/%d selected broker %d\n", pp.topic, pp.partition, pp.leader.ID()) + } + + pp.brokerProducer.input <- msg + } +} + +func (pp *partitionProducer) newHighWatermark(hwm int) { + Logger.Printf("producer/leader/%s/%d state change to [retrying-%d]\n", pp.topic, pp.partition, hwm) + pp.highWatermark = hwm + + // send off a fin so that we know when everything "in between" has made it + // back to us and we can safely flush the backlog (otherwise we risk re-ordering messages) + pp.retryState[pp.highWatermark].expectChaser = true + pp.parent.inFlight.Add(1) // we're generating a fin message; track it so we don't shut down while it's still inflight + pp.brokerProducer.input <- &ProducerMessage{Topic: pp.topic, Partition: pp.partition, flags: fin, retries: pp.highWatermark - 1} + + // a new HWM means that our current broker selection is out of date + Logger.Printf("producer/leader/%s/%d abandoning broker %d\n", pp.topic, pp.partition, pp.leader.ID()) + pp.parent.unrefBrokerProducer(pp.leader, pp.brokerProducer) + pp.brokerProducer = nil +} + +func (pp *partitionProducer) flushRetryBuffers() { + Logger.Printf("producer/leader/%s/%d state change to [flushing-%d]\n", pp.topic, pp.partition, pp.highWatermark) + for { + pp.highWatermark-- + + if pp.brokerProducer == nil { + if err := pp.updateLeader(); err != nil { + pp.parent.returnErrors(pp.retryState[pp.highWatermark].buf, err) + goto flushDone + } + Logger.Printf("producer/leader/%s/%d selected broker %d\n", pp.topic, pp.partition, pp.leader.ID()) + } + + for _, msg := range pp.retryState[pp.highWatermark].buf { + pp.brokerProducer.input <- msg + } + + flushDone: + pp.retryState[pp.highWatermark].buf = nil + if pp.retryState[pp.highWatermark].expectChaser { + Logger.Printf("producer/leader/%s/%d state change to [retrying-%d]\n", pp.topic, pp.partition, pp.highWatermark) + break + } else if pp.highWatermark == 0 { + Logger.Printf("producer/leader/%s/%d state change to [normal]\n", pp.topic, pp.partition) + break + } + } +} + +func (pp *partitionProducer) updateLeader() error { + return pp.breaker.Run(func() (err error) { + if err = pp.parent.client.RefreshMetadata(pp.topic); err != nil { + return err + } + + if pp.leader, err = pp.parent.client.Leader(pp.topic, pp.partition); err != nil { + return err + } + + pp.brokerProducer = pp.parent.getBrokerProducer(pp.leader) + pp.parent.inFlight.Add(1) // we're generating a syn message; track it so we don't shut down while it's still inflight + pp.brokerProducer.input <- &ProducerMessage{Topic: pp.topic, Partition: pp.partition, flags: syn} + + return nil + }) +} + +// one per broker; also constructs an associated flusher +func (p *asyncProducer) newBrokerProducer(broker *Broker) *brokerProducer { + var ( + input = make(chan *ProducerMessage) + bridge = make(chan *produceSet) + responses = make(chan *brokerProducerResponse) + ) + + bp := &brokerProducer{ + parent: p, + broker: broker, + input: input, + output: bridge, + responses: responses, + stopchan: make(chan struct{}), + buffer: newProduceSet(p), + currentRetries: make(map[string]map[int32]error), + } + go withRecover(bp.run) + + // minimal bridge to make the network response `select`able + go withRecover(func() { + for set := range bridge { + request := set.buildRequest() + + response, err := broker.Produce(request) + + responses <- &brokerProducerResponse{ + set: set, + err: err, + res: response, + } + } + close(responses) + }) + + if p.conf.Producer.Retry.Max <= 0 { + bp.abandoned = make(chan struct{}) + } + + return bp +} + +type brokerProducerResponse struct { + set *produceSet + err error + res *ProduceResponse +} + +// groups messages together into appropriately-sized batches for sending to the broker +// handles state related to retries etc +type brokerProducer struct { + parent *asyncProducer + broker *Broker + + input chan *ProducerMessage + output chan<- *produceSet + responses <-chan *brokerProducerResponse + abandoned chan struct{} + stopchan chan struct{} + + buffer *produceSet + timer <-chan time.Time + timerFired bool + + closing error + currentRetries map[string]map[int32]error +} + +func (bp *brokerProducer) run() { + var output chan<- *produceSet + Logger.Printf("producer/broker/%d starting up\n", bp.broker.ID()) + + for { + select { + case msg, ok := <-bp.input: + if !ok { + Logger.Printf("producer/broker/%d input chan closed\n", bp.broker.ID()) + bp.shutdown() + return + } + + if msg == nil { + continue + } + + if msg.flags&syn == syn { + Logger.Printf("producer/broker/%d state change to [open] on %s/%d\n", + bp.broker.ID(), msg.Topic, msg.Partition) + if bp.currentRetries[msg.Topic] == nil { + bp.currentRetries[msg.Topic] = make(map[int32]error) + } + bp.currentRetries[msg.Topic][msg.Partition] = nil + bp.parent.inFlight.Done() + continue + } + + if reason := bp.needsRetry(msg); reason != nil { + bp.parent.retryMessage(msg, reason) + + if bp.closing == nil && msg.flags&fin == fin { + // we were retrying this partition but we can start processing again + delete(bp.currentRetries[msg.Topic], msg.Partition) + Logger.Printf("producer/broker/%d state change to [closed] on %s/%d\n", + bp.broker.ID(), msg.Topic, msg.Partition) + } + + continue + } + + if bp.buffer.wouldOverflow(msg) { + if err := bp.waitForSpace(msg); err != nil { + bp.parent.retryMessage(msg, err) + continue + } + } + + if err := bp.buffer.add(msg); err != nil { + bp.parent.returnError(msg, err) + continue + } + + if bp.parent.conf.Producer.Flush.Frequency > 0 && bp.timer == nil { + bp.timer = time.After(bp.parent.conf.Producer.Flush.Frequency) + } + case <-bp.timer: + bp.timerFired = true + case output <- bp.buffer: + bp.rollOver() + case response, ok := <-bp.responses: + if ok { + bp.handleResponse(response) + } + case <-bp.stopchan: + Logger.Printf( + "producer/broker/%d run loop asked to stop\n", bp.broker.ID()) + return + } + + if bp.timerFired || bp.buffer.readyToFlush() { + output = bp.output + } else { + output = nil + } + } +} + +func (bp *brokerProducer) shutdown() { + for !bp.buffer.empty() { + select { + case response := <-bp.responses: + bp.handleResponse(response) + case bp.output <- bp.buffer: + bp.rollOver() + } + } + close(bp.output) + for response := range bp.responses { + bp.handleResponse(response) + } + close(bp.stopchan) + Logger.Printf("producer/broker/%d shut down\n", bp.broker.ID()) +} + +func (bp *brokerProducer) needsRetry(msg *ProducerMessage) error { + if bp.closing != nil { + return bp.closing + } + + return bp.currentRetries[msg.Topic][msg.Partition] +} + +func (bp *brokerProducer) waitForSpace(msg *ProducerMessage) error { + Logger.Printf("producer/broker/%d maximum request accumulated, waiting for space\n", bp.broker.ID()) + + for { + select { + case response := <-bp.responses: + bp.handleResponse(response) + // handling a response can change our state, so re-check some things + if reason := bp.needsRetry(msg); reason != nil { + return reason + } else if !bp.buffer.wouldOverflow(msg) { + return nil + } + case bp.output <- bp.buffer: + bp.rollOver() + return nil + } + } +} + +func (bp *brokerProducer) rollOver() { + bp.timer = nil + bp.timerFired = false + bp.buffer = newProduceSet(bp.parent) +} + +func (bp *brokerProducer) handleResponse(response *brokerProducerResponse) { + if response.err != nil { + bp.handleError(response.set, response.err) + } else { + bp.handleSuccess(response.set, response.res) + } + + if bp.buffer.empty() { + bp.rollOver() // this can happen if the response invalidated our buffer + } +} + +func (bp *brokerProducer) handleSuccess(sent *produceSet, response *ProduceResponse) { + // we iterate through the blocks in the request set, not the response, so that we notice + // if the response is missing a block completely + var retryTopics []string + sent.eachPartition(func(topic string, partition int32, pSet *partitionSet) { + if response == nil { + // this only happens when RequiredAcks is NoResponse, so we have to assume success + bp.parent.returnSuccesses(pSet.msgs) + return + } + + block := response.GetBlock(topic, partition) + if block == nil { + bp.parent.returnErrors(pSet.msgs, ErrIncompleteResponse) + return + } + + switch block.Err { + // Success + case ErrNoError: + if bp.parent.conf.Version.IsAtLeast(V0_10_0_0) && !block.Timestamp.IsZero() { + for _, msg := range pSet.msgs { + msg.Timestamp = block.Timestamp + } + } + for i, msg := range pSet.msgs { + msg.Offset = block.Offset + int64(i) + } + bp.parent.returnSuccesses(pSet.msgs) + // Duplicate + case ErrDuplicateSequenceNumber: + bp.parent.returnSuccesses(pSet.msgs) + // Retriable errors + case ErrInvalidMessage, ErrUnknownTopicOrPartition, ErrLeaderNotAvailable, ErrNotLeaderForPartition, + ErrRequestTimedOut, ErrNotEnoughReplicas, ErrNotEnoughReplicasAfterAppend: + if bp.parent.conf.Producer.Retry.Max <= 0 { + bp.parent.abandonBrokerConnection(bp.broker) + bp.parent.returnErrors(pSet.msgs, block.Err) + } else { + retryTopics = append(retryTopics, topic) + } + // Other non-retriable errors + default: + if bp.parent.conf.Producer.Retry.Max <= 0 { + bp.parent.abandonBrokerConnection(bp.broker) + } + bp.parent.returnErrors(pSet.msgs, block.Err) + } + }) + + if len(retryTopics) > 0 { + if bp.parent.conf.Producer.Idempotent { + err := bp.parent.client.RefreshMetadata(retryTopics...) + if err != nil { + Logger.Printf("Failed refreshing metadata because of %v\n", err) + } + } + + sent.eachPartition(func(topic string, partition int32, pSet *partitionSet) { + block := response.GetBlock(topic, partition) + if block == nil { + // handled in the previous "eachPartition" loop + return + } + + switch block.Err { + case ErrInvalidMessage, ErrUnknownTopicOrPartition, ErrLeaderNotAvailable, ErrNotLeaderForPartition, + ErrRequestTimedOut, ErrNotEnoughReplicas, ErrNotEnoughReplicasAfterAppend: + Logger.Printf("producer/broker/%d state change to [retrying] on %s/%d because %v\n", + bp.broker.ID(), topic, partition, block.Err) + if bp.currentRetries[topic] == nil { + bp.currentRetries[topic] = make(map[int32]error) + } + bp.currentRetries[topic][partition] = block.Err + if bp.parent.conf.Producer.Idempotent { + go bp.parent.retryBatch(topic, partition, pSet, block.Err) + } else { + bp.parent.retryMessages(pSet.msgs, block.Err) + } + // dropping the following messages has the side effect of incrementing their retry count + bp.parent.retryMessages(bp.buffer.dropPartition(topic, partition), block.Err) + } + }) + } +} + +func (p *asyncProducer) retryBatch(topic string, partition int32, pSet *partitionSet, kerr KError) { + Logger.Printf("Retrying batch for %v-%d because of %s\n", topic, partition, kerr) + produceSet := newProduceSet(p) + produceSet.msgs[topic] = make(map[int32]*partitionSet) + produceSet.msgs[topic][partition] = pSet + produceSet.bufferBytes += pSet.bufferBytes + produceSet.bufferCount += len(pSet.msgs) + for _, msg := range pSet.msgs { + if msg.retries >= p.conf.Producer.Retry.Max { + p.returnError(msg, kerr) + return + } + msg.retries++ + } + + // it's expected that a metadata refresh has been requested prior to calling retryBatch + leader, err := p.client.Leader(topic, partition) + if err != nil { + Logger.Printf("Failed retrying batch for %v-%d because of %v while looking up for new leader\n", topic, partition, err) + for _, msg := range pSet.msgs { + p.returnError(msg, kerr) + } + return + } + bp := p.getBrokerProducer(leader) + bp.output <- produceSet +} + +func (bp *brokerProducer) handleError(sent *produceSet, err error) { + switch err.(type) { + case PacketEncodingError: + sent.eachPartition(func(topic string, partition int32, pSet *partitionSet) { + bp.parent.returnErrors(pSet.msgs, err) + }) + default: + Logger.Printf("producer/broker/%d state change to [closing] because %s\n", bp.broker.ID(), err) + bp.parent.abandonBrokerConnection(bp.broker) + _ = bp.broker.Close() + bp.closing = err + sent.eachPartition(func(topic string, partition int32, pSet *partitionSet) { + bp.parent.retryMessages(pSet.msgs, err) + }) + bp.buffer.eachPartition(func(topic string, partition int32, pSet *partitionSet) { + bp.parent.retryMessages(pSet.msgs, err) + }) + bp.rollOver() + } +} + +// singleton +// effectively a "bridge" between the flushers and the dispatcher in order to avoid deadlock +// based on https://godoc.org/github.com/eapache/channels#InfiniteChannel +func (p *asyncProducer) retryHandler() { + var msg *ProducerMessage + buf := queue.New() + + for { + if buf.Length() == 0 { + msg = <-p.retries + } else { + select { + case msg = <-p.retries: + case p.input <- buf.Peek().(*ProducerMessage): + buf.Remove() + continue + } + } + + if msg == nil { + return + } + + buf.Add(msg) + } +} + +// utility functions + +func (p *asyncProducer) shutdown() { + Logger.Println("Producer shutting down.") + p.inFlight.Add(1) + p.input <- &ProducerMessage{flags: shutdown} + + p.inFlight.Wait() + + err := p.client.Close() + if err != nil { + Logger.Println("producer/shutdown failed to close the embedded client:", err) + } + + close(p.input) + close(p.retries) + close(p.errors) + close(p.successes) +} + +func (p *asyncProducer) returnError(msg *ProducerMessage, err error) { + msg.clear() + pErr := &ProducerError{Msg: msg, Err: err} + if p.conf.Producer.Return.Errors { + p.errors <- pErr + } else { + Logger.Println(pErr) + } + p.inFlight.Done() +} + +func (p *asyncProducer) returnErrors(batch []*ProducerMessage, err error) { + for _, msg := range batch { + p.returnError(msg, err) + } +} + +func (p *asyncProducer) returnSuccesses(batch []*ProducerMessage) { + for _, msg := range batch { + if p.conf.Producer.Return.Successes { + msg.clear() + p.successes <- msg + } + p.inFlight.Done() + } +} + +func (p *asyncProducer) retryMessage(msg *ProducerMessage, err error) { + if msg.retries >= p.conf.Producer.Retry.Max { + p.returnError(msg, err) + } else { + msg.retries++ + p.retries <- msg + } +} + +func (p *asyncProducer) retryMessages(batch []*ProducerMessage, err error) { + for _, msg := range batch { + p.retryMessage(msg, err) + } +} + +func (p *asyncProducer) getBrokerProducer(broker *Broker) *brokerProducer { + p.brokerLock.Lock() + defer p.brokerLock.Unlock() + + bp := p.brokers[broker] + + if bp == nil { + bp = p.newBrokerProducer(broker) + p.brokers[broker] = bp + p.brokerRefs[bp] = 0 + } + + p.brokerRefs[bp]++ + + return bp +} + +func (p *asyncProducer) unrefBrokerProducer(broker *Broker, bp *brokerProducer) { + p.brokerLock.Lock() + defer p.brokerLock.Unlock() + + p.brokerRefs[bp]-- + if p.brokerRefs[bp] == 0 { + close(bp.input) + delete(p.brokerRefs, bp) + + if p.brokers[broker] == bp { + delete(p.brokers, broker) + } + } +} + +func (p *asyncProducer) abandonBrokerConnection(broker *Broker) { + p.brokerLock.Lock() + defer p.brokerLock.Unlock() + + bc, ok := p.brokers[broker] + if ok && bc.abandoned != nil { + close(bc.abandoned) + } + + delete(p.brokers, broker) +} diff --git a/vendor/github.com/Shopify/sarama/balance_strategy.go b/vendor/github.com/Shopify/sarama/balance_strategy.go new file mode 100644 index 0000000..56da276 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/balance_strategy.go @@ -0,0 +1,1071 @@ +package sarama + +import ( + "container/heap" + "math" + "sort" + "strings" +) + +const ( + // RangeBalanceStrategyName identifies strategies that use the range partition assignment strategy + RangeBalanceStrategyName = "range" + + // RoundRobinBalanceStrategyName identifies strategies that use the round-robin partition assignment strategy + RoundRobinBalanceStrategyName = "roundrobin" + + // StickyBalanceStrategyName identifies strategies that use the sticky-partition assignment strategy + StickyBalanceStrategyName = "sticky" + + defaultGeneration = -1 +) + +// BalanceStrategyPlan is the results of any BalanceStrategy.Plan attempt. +// It contains an allocation of topic/partitions by memberID in the form of +// a `memberID -> topic -> partitions` map. +type BalanceStrategyPlan map[string]map[string][]int32 + +// Add assigns a topic with a number partitions to a member. +func (p BalanceStrategyPlan) Add(memberID, topic string, partitions ...int32) { + if len(partitions) == 0 { + return + } + if _, ok := p[memberID]; !ok { + p[memberID] = make(map[string][]int32, 1) + } + p[memberID][topic] = append(p[memberID][topic], partitions...) +} + +// -------------------------------------------------------------------- + +// BalanceStrategy is used to balance topics and partitions +// across members of a consumer group +type BalanceStrategy interface { + // Name uniquely identifies the strategy. + Name() string + + // Plan accepts a map of `memberID -> metadata` and a map of `topic -> partitions` + // and returns a distribution plan. + Plan(members map[string]ConsumerGroupMemberMetadata, topics map[string][]int32) (BalanceStrategyPlan, error) + + // AssignmentData returns the serialized assignment data for the specified + // memberID + AssignmentData(memberID string, topics map[string][]int32, generationID int32) ([]byte, error) +} + +// -------------------------------------------------------------------- + +// BalanceStrategyRange is the default and assigns partitions as ranges to consumer group members. +// Example with one topic T with six partitions (0..5) and two members (M1, M2): +// M1: {T: [0, 1, 2]} +// M2: {T: [3, 4, 5]} +var BalanceStrategyRange = &balanceStrategy{ + name: RangeBalanceStrategyName, + coreFn: func(plan BalanceStrategyPlan, memberIDs []string, topic string, partitions []int32) { + step := float64(len(partitions)) / float64(len(memberIDs)) + + for i, memberID := range memberIDs { + pos := float64(i) + min := int(math.Floor(pos*step + 0.5)) + max := int(math.Floor((pos+1)*step + 0.5)) + plan.Add(memberID, topic, partitions[min:max]...) + } + }, +} + +// BalanceStrategyRoundRobin assigns partitions to members in alternating order. +// Example with topic T with six partitions (0..5) and two members (M1, M2): +// M1: {T: [0, 2, 4]} +// M2: {T: [1, 3, 5]} +var BalanceStrategyRoundRobin = &balanceStrategy{ + name: RoundRobinBalanceStrategyName, + coreFn: func(plan BalanceStrategyPlan, memberIDs []string, topic string, partitions []int32) { + for i, part := range partitions { + memberID := memberIDs[i%len(memberIDs)] + plan.Add(memberID, topic, part) + } + }, +} + +// BalanceStrategySticky assigns partitions to members with an attempt to preserve earlier assignments +// while maintain a balanced partition distribution. +// Example with topic T with six partitions (0..5) and two members (M1, M2): +// M1: {T: [0, 2, 4]} +// M2: {T: [1, 3, 5]} +// +// On reassignment with an additional consumer, you might get an assignment plan like: +// M1: {T: [0, 2]} +// M2: {T: [1, 3]} +// M3: {T: [4, 5]} +// +var BalanceStrategySticky = &stickyBalanceStrategy{} + +// -------------------------------------------------------------------- + +type balanceStrategy struct { + name string + coreFn func(plan BalanceStrategyPlan, memberIDs []string, topic string, partitions []int32) +} + +// Name implements BalanceStrategy. +func (s *balanceStrategy) Name() string { return s.name } + +// Plan implements BalanceStrategy. +func (s *balanceStrategy) Plan(members map[string]ConsumerGroupMemberMetadata, topics map[string][]int32) (BalanceStrategyPlan, error) { + // Build members by topic map + mbt := make(map[string][]string) + for memberID, meta := range members { + for _, topic := range meta.Topics { + mbt[topic] = append(mbt[topic], memberID) + } + } + + // Sort members for each topic + for topic, memberIDs := range mbt { + sort.Sort(&balanceStrategySortable{ + topic: topic, + memberIDs: memberIDs, + }) + } + + // Assemble plan + plan := make(BalanceStrategyPlan, len(members)) + for topic, memberIDs := range mbt { + s.coreFn(plan, memberIDs, topic, topics[topic]) + } + return plan, nil +} + +// AssignmentData simple strategies do not require any shared assignment data +func (s *balanceStrategy) AssignmentData(memberID string, topics map[string][]int32, generationID int32) ([]byte, error) { + return nil, nil +} + +type balanceStrategySortable struct { + topic string + memberIDs []string +} + +func (p balanceStrategySortable) Len() int { return len(p.memberIDs) } +func (p balanceStrategySortable) Swap(i, j int) { + p.memberIDs[i], p.memberIDs[j] = p.memberIDs[j], p.memberIDs[i] +} +func (p balanceStrategySortable) Less(i, j int) bool { + return balanceStrategyHashValue(p.topic, p.memberIDs[i]) < balanceStrategyHashValue(p.topic, p.memberIDs[j]) +} + +func balanceStrategyHashValue(vv ...string) uint32 { + h := uint32(2166136261) + for _, s := range vv { + for _, c := range s { + h ^= uint32(c) + h *= 16777619 + } + } + return h +} + +type stickyBalanceStrategy struct { + movements partitionMovements +} + +// Name implements BalanceStrategy. +func (s *stickyBalanceStrategy) Name() string { return StickyBalanceStrategyName } + +// Plan implements BalanceStrategy. +func (s *stickyBalanceStrategy) Plan(members map[string]ConsumerGroupMemberMetadata, topics map[string][]int32) (BalanceStrategyPlan, error) { + // track partition movements during generation of the partition assignment plan + s.movements = partitionMovements{ + Movements: make(map[topicPartitionAssignment]consumerPair), + PartitionMovementsByTopic: make(map[string]map[consumerPair]map[topicPartitionAssignment]bool), + } + + // prepopulate the current assignment state from userdata on the consumer group members + currentAssignment, prevAssignment, err := prepopulateCurrentAssignments(members) + if err != nil { + return nil, err + } + + // determine if we're dealing with a completely fresh assignment, or if there's existing assignment state + isFreshAssignment := false + if len(currentAssignment) == 0 { + isFreshAssignment = true + } + + // create a mapping of all current topic partitions and the consumers that can be assigned to them + partition2AllPotentialConsumers := make(map[topicPartitionAssignment][]string) + for topic, partitions := range topics { + for _, partition := range partitions { + partition2AllPotentialConsumers[topicPartitionAssignment{Topic: topic, Partition: partition}] = []string{} + } + } + + // create a mapping of all consumers to all potential topic partitions that can be assigned to them + // also, populate the mapping of partitions to potential consumers + consumer2AllPotentialPartitions := make(map[string][]topicPartitionAssignment, len(members)) + for memberID, meta := range members { + consumer2AllPotentialPartitions[memberID] = make([]topicPartitionAssignment, 0) + for _, topicSubscription := range meta.Topics { + // only evaluate topic subscriptions that are present in the supplied topics map + if _, found := topics[topicSubscription]; found { + for _, partition := range topics[topicSubscription] { + topicPartition := topicPartitionAssignment{Topic: topicSubscription, Partition: partition} + consumer2AllPotentialPartitions[memberID] = append(consumer2AllPotentialPartitions[memberID], topicPartition) + partition2AllPotentialConsumers[topicPartition] = append(partition2AllPotentialConsumers[topicPartition], memberID) + } + } + } + + // add this consumer to currentAssignment (with an empty topic partition assignment) if it does not already exist + if _, exists := currentAssignment[memberID]; !exists { + currentAssignment[memberID] = make([]topicPartitionAssignment, 0) + } + } + + // create a mapping of each partition to its current consumer, where possible + currentPartitionConsumers := make(map[topicPartitionAssignment]string, len(currentAssignment)) + unvisitedPartitions := make(map[topicPartitionAssignment]bool, len(partition2AllPotentialConsumers)) + for partition := range partition2AllPotentialConsumers { + unvisitedPartitions[partition] = true + } + var unassignedPartitions []topicPartitionAssignment + for memberID, partitions := range currentAssignment { + var keepPartitions []topicPartitionAssignment + for _, partition := range partitions { + // If this partition no longer exists at all, likely due to the + // topic being deleted, we remove the partition from the member. + if _, exists := partition2AllPotentialConsumers[partition]; !exists { + continue + } + delete(unvisitedPartitions, partition) + currentPartitionConsumers[partition] = memberID + + if !strsContains(members[memberID].Topics, partition.Topic) { + unassignedPartitions = append(unassignedPartitions, partition) + continue + } + keepPartitions = append(keepPartitions, partition) + } + currentAssignment[memberID] = keepPartitions + } + for unvisited := range unvisitedPartitions { + unassignedPartitions = append(unassignedPartitions, unvisited) + } + + // sort the topic partitions in order of priority for reassignment + sortedPartitions := sortPartitions(currentAssignment, prevAssignment, isFreshAssignment, partition2AllPotentialConsumers, consumer2AllPotentialPartitions) + + // at this point we have preserved all valid topic partition to consumer assignments and removed + // all invalid topic partitions and invalid consumers. Now we need to assign unassignedPartitions + // to consumers so that the topic partition assignments are as balanced as possible. + + // an ascending sorted set of consumers based on how many topic partitions are already assigned to them + sortedCurrentSubscriptions := sortMemberIDsByPartitionAssignments(currentAssignment) + s.balance(currentAssignment, prevAssignment, sortedPartitions, unassignedPartitions, sortedCurrentSubscriptions, consumer2AllPotentialPartitions, partition2AllPotentialConsumers, currentPartitionConsumers) + + // Assemble plan + plan := make(BalanceStrategyPlan, len(currentAssignment)) + for memberID, assignments := range currentAssignment { + if len(assignments) == 0 { + plan[memberID] = make(map[string][]int32, 0) + } else { + for _, assignment := range assignments { + plan.Add(memberID, assignment.Topic, assignment.Partition) + } + } + } + return plan, nil +} + +// AssignmentData serializes the set of topics currently assigned to the +// specified member as part of the supplied balance plan +func (s *stickyBalanceStrategy) AssignmentData(memberID string, topics map[string][]int32, generationID int32) ([]byte, error) { + return encode(&StickyAssignorUserDataV1{ + Topics: topics, + Generation: generationID, + }, nil) +} + +func strsContains(s []string, value string) bool { + for _, entry := range s { + if entry == value { + return true + } + } + return false +} + +// Balance assignments across consumers for maximum fairness and stickiness. +func (s *stickyBalanceStrategy) balance(currentAssignment map[string][]topicPartitionAssignment, prevAssignment map[topicPartitionAssignment]consumerGenerationPair, sortedPartitions []topicPartitionAssignment, unassignedPartitions []topicPartitionAssignment, sortedCurrentSubscriptions []string, consumer2AllPotentialPartitions map[string][]topicPartitionAssignment, partition2AllPotentialConsumers map[topicPartitionAssignment][]string, currentPartitionConsumer map[topicPartitionAssignment]string) { + initializing := false + if len(sortedCurrentSubscriptions) == 0 || len(currentAssignment[sortedCurrentSubscriptions[0]]) == 0 { + initializing = true + } + + // assign all unassigned partitions + for _, partition := range unassignedPartitions { + // skip if there is no potential consumer for the partition + if len(partition2AllPotentialConsumers[partition]) == 0 { + continue + } + sortedCurrentSubscriptions = assignPartition(partition, sortedCurrentSubscriptions, currentAssignment, consumer2AllPotentialPartitions, currentPartitionConsumer) + } + + // narrow down the reassignment scope to only those partitions that can actually be reassigned + for partition := range partition2AllPotentialConsumers { + if !canTopicPartitionParticipateInReassignment(partition, partition2AllPotentialConsumers) { + sortedPartitions = removeTopicPartitionFromMemberAssignments(sortedPartitions, partition) + } + } + + // narrow down the reassignment scope to only those consumers that are subject to reassignment + fixedAssignments := make(map[string][]topicPartitionAssignment) + for memberID := range consumer2AllPotentialPartitions { + if !canConsumerParticipateInReassignment(memberID, currentAssignment, consumer2AllPotentialPartitions, partition2AllPotentialConsumers) { + fixedAssignments[memberID] = currentAssignment[memberID] + delete(currentAssignment, memberID) + sortedCurrentSubscriptions = sortMemberIDsByPartitionAssignments(currentAssignment) + } + } + + // create a deep copy of the current assignment so we can revert to it if we do not get a more balanced assignment later + preBalanceAssignment := deepCopyAssignment(currentAssignment) + preBalancePartitionConsumers := make(map[topicPartitionAssignment]string, len(currentPartitionConsumer)) + for k, v := range currentPartitionConsumer { + preBalancePartitionConsumers[k] = v + } + + reassignmentPerformed := s.performReassignments(sortedPartitions, currentAssignment, prevAssignment, sortedCurrentSubscriptions, consumer2AllPotentialPartitions, partition2AllPotentialConsumers, currentPartitionConsumer) + + // if we are not preserving existing assignments and we have made changes to the current assignment + // make sure we are getting a more balanced assignment; otherwise, revert to previous assignment + if !initializing && reassignmentPerformed && getBalanceScore(currentAssignment) >= getBalanceScore(preBalanceAssignment) { + currentAssignment = deepCopyAssignment(preBalanceAssignment) + currentPartitionConsumer = make(map[topicPartitionAssignment]string, len(preBalancePartitionConsumers)) + for k, v := range preBalancePartitionConsumers { + currentPartitionConsumer[k] = v + } + } + + // add the fixed assignments (those that could not change) back + for consumer, assignments := range fixedAssignments { + currentAssignment[consumer] = assignments + } +} + +// Calculate the balance score of the given assignment, as the sum of assigned partitions size difference of all consumer pairs. +// A perfectly balanced assignment (with all consumers getting the same number of partitions) has a balance score of 0. +// Lower balance score indicates a more balanced assignment. +func getBalanceScore(assignment map[string][]topicPartitionAssignment) int { + consumer2AssignmentSize := make(map[string]int, len(assignment)) + for memberID, partitions := range assignment { + consumer2AssignmentSize[memberID] = len(partitions) + } + + var score float64 + for memberID, consumerAssignmentSize := range consumer2AssignmentSize { + delete(consumer2AssignmentSize, memberID) + for _, otherConsumerAssignmentSize := range consumer2AssignmentSize { + score += math.Abs(float64(consumerAssignmentSize - otherConsumerAssignmentSize)) + } + } + return int(score) +} + +// Determine whether the current assignment plan is balanced. +func isBalanced(currentAssignment map[string][]topicPartitionAssignment, sortedCurrentSubscriptions []string, allSubscriptions map[string][]topicPartitionAssignment) bool { + sortedCurrentSubscriptions = sortMemberIDsByPartitionAssignments(currentAssignment) + min := len(currentAssignment[sortedCurrentSubscriptions[0]]) + max := len(currentAssignment[sortedCurrentSubscriptions[len(sortedCurrentSubscriptions)-1]]) + if min >= max-1 { + // if minimum and maximum numbers of partitions assigned to consumers differ by at most one return true + return true + } + + // create a mapping from partitions to the consumer assigned to them + allPartitions := make(map[topicPartitionAssignment]string) + for memberID, partitions := range currentAssignment { + for _, partition := range partitions { + if _, exists := allPartitions[partition]; exists { + Logger.Printf("Topic %s Partition %d is assigned more than one consumer", partition.Topic, partition.Partition) + } + allPartitions[partition] = memberID + } + } + + // for each consumer that does not have all the topic partitions it can get make sure none of the topic partitions it + // could but did not get cannot be moved to it (because that would break the balance) + for _, memberID := range sortedCurrentSubscriptions { + consumerPartitions := currentAssignment[memberID] + consumerPartitionCount := len(consumerPartitions) + + // skip if this consumer already has all the topic partitions it can get + if consumerPartitionCount == len(allSubscriptions[memberID]) { + continue + } + + // otherwise make sure it cannot get any more + potentialTopicPartitions := allSubscriptions[memberID] + for _, partition := range potentialTopicPartitions { + if !memberAssignmentsIncludeTopicPartition(currentAssignment[memberID], partition) { + otherConsumer := allPartitions[partition] + otherConsumerPartitionCount := len(currentAssignment[otherConsumer]) + if consumerPartitionCount < otherConsumerPartitionCount { + return false + } + } + } + } + return true +} + +// Reassign all topic partitions that need reassignment until balanced. +func (s *stickyBalanceStrategy) performReassignments(reassignablePartitions []topicPartitionAssignment, currentAssignment map[string][]topicPartitionAssignment, prevAssignment map[topicPartitionAssignment]consumerGenerationPair, sortedCurrentSubscriptions []string, consumer2AllPotentialPartitions map[string][]topicPartitionAssignment, partition2AllPotentialConsumers map[topicPartitionAssignment][]string, currentPartitionConsumer map[topicPartitionAssignment]string) bool { + reassignmentPerformed := false + modified := false + + // repeat reassignment until no partition can be moved to improve the balance + for { + modified = false + // reassign all reassignable partitions (starting from the partition with least potential consumers and if needed) + // until the full list is processed or a balance is achieved + for _, partition := range reassignablePartitions { + if isBalanced(currentAssignment, sortedCurrentSubscriptions, consumer2AllPotentialPartitions) { + break + } + + // the partition must have at least two consumers + if len(partition2AllPotentialConsumers[partition]) <= 1 { + Logger.Printf("Expected more than one potential consumer for partition %s topic %d", partition.Topic, partition.Partition) + } + + // the partition must have a consumer + consumer := currentPartitionConsumer[partition] + if consumer == "" { + Logger.Printf("Expected topic %s partition %d to be assigned to a consumer", partition.Topic, partition.Partition) + } + + if _, exists := prevAssignment[partition]; exists { + if len(currentAssignment[consumer]) > (len(currentAssignment[prevAssignment[partition].MemberID]) + 1) { + sortedCurrentSubscriptions = s.reassignPartition(partition, currentAssignment, sortedCurrentSubscriptions, currentPartitionConsumer, prevAssignment[partition].MemberID) + reassignmentPerformed = true + modified = true + continue + } + } + + // check if a better-suited consumer exists for the partition; if so, reassign it + for _, otherConsumer := range partition2AllPotentialConsumers[partition] { + if len(currentAssignment[consumer]) > (len(currentAssignment[otherConsumer]) + 1) { + sortedCurrentSubscriptions = s.reassignPartitionToNewConsumer(partition, currentAssignment, sortedCurrentSubscriptions, currentPartitionConsumer, consumer2AllPotentialPartitions) + reassignmentPerformed = true + modified = true + break + } + } + } + if !modified { + return reassignmentPerformed + } + } +} + +// Identify a new consumer for a topic partition and reassign it. +func (s *stickyBalanceStrategy) reassignPartitionToNewConsumer(partition topicPartitionAssignment, currentAssignment map[string][]topicPartitionAssignment, sortedCurrentSubscriptions []string, currentPartitionConsumer map[topicPartitionAssignment]string, consumer2AllPotentialPartitions map[string][]topicPartitionAssignment) []string { + for _, anotherConsumer := range sortedCurrentSubscriptions { + if memberAssignmentsIncludeTopicPartition(consumer2AllPotentialPartitions[anotherConsumer], partition) { + return s.reassignPartition(partition, currentAssignment, sortedCurrentSubscriptions, currentPartitionConsumer, anotherConsumer) + } + } + return sortedCurrentSubscriptions +} + +// Reassign a specific partition to a new consumer +func (s *stickyBalanceStrategy) reassignPartition(partition topicPartitionAssignment, currentAssignment map[string][]topicPartitionAssignment, sortedCurrentSubscriptions []string, currentPartitionConsumer map[topicPartitionAssignment]string, newConsumer string) []string { + consumer := currentPartitionConsumer[partition] + // find the correct partition movement considering the stickiness requirement + partitionToBeMoved := s.movements.getTheActualPartitionToBeMoved(partition, consumer, newConsumer) + return s.processPartitionMovement(partitionToBeMoved, newConsumer, currentAssignment, sortedCurrentSubscriptions, currentPartitionConsumer) +} + +// Track the movement of a topic partition after assignment +func (s *stickyBalanceStrategy) processPartitionMovement(partition topicPartitionAssignment, newConsumer string, currentAssignment map[string][]topicPartitionAssignment, sortedCurrentSubscriptions []string, currentPartitionConsumer map[topicPartitionAssignment]string) []string { + oldConsumer := currentPartitionConsumer[partition] + s.movements.movePartition(partition, oldConsumer, newConsumer) + + currentAssignment[oldConsumer] = removeTopicPartitionFromMemberAssignments(currentAssignment[oldConsumer], partition) + currentAssignment[newConsumer] = append(currentAssignment[newConsumer], partition) + currentPartitionConsumer[partition] = newConsumer + return sortMemberIDsByPartitionAssignments(currentAssignment) +} + +// Determine whether a specific consumer should be considered for topic partition assignment. +func canConsumerParticipateInReassignment(memberID string, currentAssignment map[string][]topicPartitionAssignment, consumer2AllPotentialPartitions map[string][]topicPartitionAssignment, partition2AllPotentialConsumers map[topicPartitionAssignment][]string) bool { + currentPartitions := currentAssignment[memberID] + currentAssignmentSize := len(currentPartitions) + maxAssignmentSize := len(consumer2AllPotentialPartitions[memberID]) + if currentAssignmentSize > maxAssignmentSize { + Logger.Printf("The consumer %s is assigned more partitions than the maximum possible", memberID) + } + if currentAssignmentSize < maxAssignmentSize { + // if a consumer is not assigned all its potential partitions it is subject to reassignment + return true + } + for _, partition := range currentPartitions { + if canTopicPartitionParticipateInReassignment(partition, partition2AllPotentialConsumers) { + return true + } + } + return false +} + +// Only consider reassigning those topic partitions that have two or more potential consumers. +func canTopicPartitionParticipateInReassignment(partition topicPartitionAssignment, partition2AllPotentialConsumers map[topicPartitionAssignment][]string) bool { + return len(partition2AllPotentialConsumers[partition]) >= 2 +} + +// The assignment should improve the overall balance of the partition assignments to consumers. +func assignPartition(partition topicPartitionAssignment, sortedCurrentSubscriptions []string, currentAssignment map[string][]topicPartitionAssignment, consumer2AllPotentialPartitions map[string][]topicPartitionAssignment, currentPartitionConsumer map[topicPartitionAssignment]string) []string { + for _, memberID := range sortedCurrentSubscriptions { + if memberAssignmentsIncludeTopicPartition(consumer2AllPotentialPartitions[memberID], partition) { + currentAssignment[memberID] = append(currentAssignment[memberID], partition) + currentPartitionConsumer[partition] = memberID + break + } + } + return sortMemberIDsByPartitionAssignments(currentAssignment) +} + +// Deserialize topic partition assignment data to aid with creation of a sticky assignment. +func deserializeTopicPartitionAssignment(userDataBytes []byte) (StickyAssignorUserData, error) { + userDataV1 := &StickyAssignorUserDataV1{} + if err := decode(userDataBytes, userDataV1); err != nil { + userDataV0 := &StickyAssignorUserDataV0{} + if err := decode(userDataBytes, userDataV0); err != nil { + return nil, err + } + return userDataV0, nil + } + return userDataV1, nil +} + +// filterAssignedPartitions returns a map of consumer group members to their list of previously-assigned topic partitions, limited +// to those topic partitions currently reported by the Kafka cluster. +func filterAssignedPartitions(currentAssignment map[string][]topicPartitionAssignment, partition2AllPotentialConsumers map[topicPartitionAssignment][]string) map[string][]topicPartitionAssignment { + assignments := deepCopyAssignment(currentAssignment) + for memberID, partitions := range assignments { + // perform in-place filtering + i := 0 + for _, partition := range partitions { + if _, exists := partition2AllPotentialConsumers[partition]; exists { + partitions[i] = partition + i++ + } + } + assignments[memberID] = partitions[:i] + } + return assignments +} + +func removeTopicPartitionFromMemberAssignments(assignments []topicPartitionAssignment, topic topicPartitionAssignment) []topicPartitionAssignment { + for i, assignment := range assignments { + if assignment == topic { + return append(assignments[:i], assignments[i+1:]...) + } + } + return assignments +} + +func memberAssignmentsIncludeTopicPartition(assignments []topicPartitionAssignment, topic topicPartitionAssignment) bool { + for _, assignment := range assignments { + if assignment == topic { + return true + } + } + return false +} + +func sortPartitions(currentAssignment map[string][]topicPartitionAssignment, partitionsWithADifferentPreviousAssignment map[topicPartitionAssignment]consumerGenerationPair, isFreshAssignment bool, partition2AllPotentialConsumers map[topicPartitionAssignment][]string, consumer2AllPotentialPartitions map[string][]topicPartitionAssignment) []topicPartitionAssignment { + unassignedPartitions := make(map[topicPartitionAssignment]bool, len(partition2AllPotentialConsumers)) + for partition := range partition2AllPotentialConsumers { + unassignedPartitions[partition] = true + } + + sortedPartitions := make([]topicPartitionAssignment, 0) + if !isFreshAssignment && areSubscriptionsIdentical(partition2AllPotentialConsumers, consumer2AllPotentialPartitions) { + // if this is a reassignment and the subscriptions are identical (all consumers can consumer from all topics) + // then we just need to simply list partitions in a round robin fashion (from consumers with + // most assigned partitions to those with least) + assignments := filterAssignedPartitions(currentAssignment, partition2AllPotentialConsumers) + + // use priority-queue to evaluate consumer group members in descending-order based on + // the number of topic partition assignments (i.e. consumers with most assignments first) + pq := make(assignmentPriorityQueue, len(assignments)) + i := 0 + for consumerID, consumerAssignments := range assignments { + pq[i] = &consumerGroupMember{ + id: consumerID, + assignments: consumerAssignments, + } + i++ + } + heap.Init(&pq) + + for { + // loop until no consumer-group members remain + if pq.Len() == 0 { + break + } + member := pq[0] + + // partitions that were assigned to a different consumer last time + var prevPartitionIndex int + for i, partition := range member.assignments { + if _, exists := partitionsWithADifferentPreviousAssignment[partition]; exists { + prevPartitionIndex = i + break + } + } + + if len(member.assignments) > 0 { + partition := member.assignments[prevPartitionIndex] + sortedPartitions = append(sortedPartitions, partition) + delete(unassignedPartitions, partition) + if prevPartitionIndex == 0 { + member.assignments = member.assignments[1:] + } else { + member.assignments = append(member.assignments[:prevPartitionIndex], member.assignments[prevPartitionIndex+1:]...) + } + heap.Fix(&pq, 0) + } else { + heap.Pop(&pq) + } + } + + for partition := range unassignedPartitions { + sortedPartitions = append(sortedPartitions, partition) + } + } else { + // an ascending sorted set of topic partitions based on how many consumers can potentially use them + sortedPartitions = sortPartitionsByPotentialConsumerAssignments(partition2AllPotentialConsumers) + } + return sortedPartitions +} + +func sortMemberIDsByPartitionAssignments(assignments map[string][]topicPartitionAssignment) []string { + // sort the members by the number of partition assignments in ascending order + sortedMemberIDs := make([]string, 0, len(assignments)) + for memberID := range assignments { + sortedMemberIDs = append(sortedMemberIDs, memberID) + } + sort.SliceStable(sortedMemberIDs, func(i, j int) bool { + ret := len(assignments[sortedMemberIDs[i]]) - len(assignments[sortedMemberIDs[j]]) + if ret == 0 { + return sortedMemberIDs[i] < sortedMemberIDs[j] + } + return len(assignments[sortedMemberIDs[i]]) < len(assignments[sortedMemberIDs[j]]) + }) + return sortedMemberIDs +} + +func sortPartitionsByPotentialConsumerAssignments(partition2AllPotentialConsumers map[topicPartitionAssignment][]string) []topicPartitionAssignment { + // sort the members by the number of partition assignments in descending order + sortedPartionIDs := make([]topicPartitionAssignment, len(partition2AllPotentialConsumers)) + i := 0 + for partition := range partition2AllPotentialConsumers { + sortedPartionIDs[i] = partition + i++ + } + sort.Slice(sortedPartionIDs, func(i, j int) bool { + if len(partition2AllPotentialConsumers[sortedPartionIDs[i]]) == len(partition2AllPotentialConsumers[sortedPartionIDs[j]]) { + ret := strings.Compare(sortedPartionIDs[i].Topic, sortedPartionIDs[j].Topic) + if ret == 0 { + return sortedPartionIDs[i].Partition < sortedPartionIDs[j].Partition + } + return ret < 0 + } + return len(partition2AllPotentialConsumers[sortedPartionIDs[i]]) < len(partition2AllPotentialConsumers[sortedPartionIDs[j]]) + }) + return sortedPartionIDs +} + +func deepCopyPartitions(src []topicPartitionAssignment) []topicPartitionAssignment { + dst := make([]topicPartitionAssignment, len(src)) + for i, partition := range src { + dst[i] = partition + } + return dst +} + +func deepCopyAssignment(assignment map[string][]topicPartitionAssignment) map[string][]topicPartitionAssignment { + copy := make(map[string][]topicPartitionAssignment, len(assignment)) + for memberID, subscriptions := range assignment { + copy[memberID] = append(subscriptions[:0:0], subscriptions...) + } + return copy +} + +func areSubscriptionsIdentical(partition2AllPotentialConsumers map[topicPartitionAssignment][]string, consumer2AllPotentialPartitions map[string][]topicPartitionAssignment) bool { + curMembers := make(map[string]int) + for _, cur := range partition2AllPotentialConsumers { + if len(curMembers) == 0 { + for _, curMembersElem := range cur { + curMembers[curMembersElem]++ + } + continue + } + + if len(curMembers) != len(cur) { + return false + } + + yMap := make(map[string]int) + for _, yElem := range cur { + yMap[yElem]++ + } + + for curMembersMapKey, curMembersMapVal := range curMembers { + if yMap[curMembersMapKey] != curMembersMapVal { + return false + } + } + } + + curPartitions := make(map[topicPartitionAssignment]int) + for _, cur := range consumer2AllPotentialPartitions { + if len(curPartitions) == 0 { + for _, curPartitionElem := range cur { + curPartitions[curPartitionElem]++ + } + continue + } + + if len(curPartitions) != len(cur) { + return false + } + + yMap := make(map[topicPartitionAssignment]int) + for _, yElem := range cur { + yMap[yElem]++ + } + + for curMembersMapKey, curMembersMapVal := range curPartitions { + if yMap[curMembersMapKey] != curMembersMapVal { + return false + } + } + } + return true +} + +// We need to process subscriptions' user data with each consumer's reported generation in mind +// higher generations overwrite lower generations in case of a conflict +// note that a conflict could exist only if user data is for different generations +func prepopulateCurrentAssignments(members map[string]ConsumerGroupMemberMetadata) (map[string][]topicPartitionAssignment, map[topicPartitionAssignment]consumerGenerationPair, error) { + currentAssignment := make(map[string][]topicPartitionAssignment) + prevAssignment := make(map[topicPartitionAssignment]consumerGenerationPair) + + // for each partition we create a sorted map of its consumers by generation + sortedPartitionConsumersByGeneration := make(map[topicPartitionAssignment]map[int]string) + for memberID, meta := range members { + consumerUserData, err := deserializeTopicPartitionAssignment(meta.UserData) + if err != nil { + return nil, nil, err + } + for _, partition := range consumerUserData.partitions() { + if consumers, exists := sortedPartitionConsumersByGeneration[partition]; exists { + if consumerUserData.hasGeneration() { + if _, generationExists := consumers[consumerUserData.generation()]; generationExists { + // same partition is assigned to two consumers during the same rebalance. + // log a warning and skip this record + Logger.Printf("Topic %s Partition %d is assigned to multiple consumers following sticky assignment generation %d", partition.Topic, partition.Partition, consumerUserData.generation()) + continue + } else { + consumers[consumerUserData.generation()] = memberID + } + } else { + consumers[defaultGeneration] = memberID + } + } else { + generation := defaultGeneration + if consumerUserData.hasGeneration() { + generation = consumerUserData.generation() + } + sortedPartitionConsumersByGeneration[partition] = map[int]string{generation: memberID} + } + } + } + + // prevAssignment holds the prior ConsumerGenerationPair (before current) of each partition + // current and previous consumers are the last two consumers of each partition in the above sorted map + for partition, consumers := range sortedPartitionConsumersByGeneration { + // sort consumers by generation in decreasing order + var generations []int + for generation := range consumers { + generations = append(generations, generation) + } + sort.Sort(sort.Reverse(sort.IntSlice(generations))) + + consumer := consumers[generations[0]] + if _, exists := currentAssignment[consumer]; !exists { + currentAssignment[consumer] = []topicPartitionAssignment{partition} + } else { + currentAssignment[consumer] = append(currentAssignment[consumer], partition) + } + + // check for previous assignment, if any + if len(generations) > 1 { + prevAssignment[partition] = consumerGenerationPair{ + MemberID: consumers[generations[1]], + Generation: generations[1], + } + } + } + return currentAssignment, prevAssignment, nil +} + +type consumerGenerationPair struct { + MemberID string + Generation int +} + +// consumerPair represents a pair of Kafka consumer ids involved in a partition reassignment. +type consumerPair struct { + SrcMemberID string + DstMemberID string +} + +// partitionMovements maintains some data structures to simplify lookup of partition movements among consumers. +type partitionMovements struct { + PartitionMovementsByTopic map[string]map[consumerPair]map[topicPartitionAssignment]bool + Movements map[topicPartitionAssignment]consumerPair +} + +func (p *partitionMovements) removeMovementRecordOfPartition(partition topicPartitionAssignment) consumerPair { + pair := p.Movements[partition] + delete(p.Movements, partition) + + partitionMovementsForThisTopic := p.PartitionMovementsByTopic[partition.Topic] + delete(partitionMovementsForThisTopic[pair], partition) + if len(partitionMovementsForThisTopic[pair]) == 0 { + delete(partitionMovementsForThisTopic, pair) + } + if len(p.PartitionMovementsByTopic[partition.Topic]) == 0 { + delete(p.PartitionMovementsByTopic, partition.Topic) + } + return pair +} + +func (p *partitionMovements) addPartitionMovementRecord(partition topicPartitionAssignment, pair consumerPair) { + p.Movements[partition] = pair + if _, exists := p.PartitionMovementsByTopic[partition.Topic]; !exists { + p.PartitionMovementsByTopic[partition.Topic] = make(map[consumerPair]map[topicPartitionAssignment]bool) + } + partitionMovementsForThisTopic := p.PartitionMovementsByTopic[partition.Topic] + if _, exists := partitionMovementsForThisTopic[pair]; !exists { + partitionMovementsForThisTopic[pair] = make(map[topicPartitionAssignment]bool) + } + partitionMovementsForThisTopic[pair][partition] = true +} + +func (p *partitionMovements) movePartition(partition topicPartitionAssignment, oldConsumer, newConsumer string) { + pair := consumerPair{ + SrcMemberID: oldConsumer, + DstMemberID: newConsumer, + } + if _, exists := p.Movements[partition]; exists { + // this partition has previously moved + existingPair := p.removeMovementRecordOfPartition(partition) + if existingPair.DstMemberID != oldConsumer { + Logger.Printf("Existing pair DstMemberID %s was not equal to the oldConsumer ID %s", existingPair.DstMemberID, oldConsumer) + } + if existingPair.SrcMemberID != newConsumer { + // the partition is not moving back to its previous consumer + p.addPartitionMovementRecord(partition, consumerPair{ + SrcMemberID: existingPair.SrcMemberID, + DstMemberID: newConsumer, + }) + } + } else { + p.addPartitionMovementRecord(partition, pair) + } +} + +func (p *partitionMovements) getTheActualPartitionToBeMoved(partition topicPartitionAssignment, oldConsumer, newConsumer string) topicPartitionAssignment { + if _, exists := p.PartitionMovementsByTopic[partition.Topic]; !exists { + return partition + } + if _, exists := p.Movements[partition]; exists { + // this partition has previously moved + if oldConsumer != p.Movements[partition].DstMemberID { + Logger.Printf("Partition movement DstMemberID %s was not equal to the oldConsumer ID %s", p.Movements[partition].DstMemberID, oldConsumer) + } + oldConsumer = p.Movements[partition].SrcMemberID + } + + partitionMovementsForThisTopic := p.PartitionMovementsByTopic[partition.Topic] + reversePair := consumerPair{ + SrcMemberID: newConsumer, + DstMemberID: oldConsumer, + } + if _, exists := partitionMovementsForThisTopic[reversePair]; !exists { + return partition + } + var reversePairPartition topicPartitionAssignment + for otherPartition := range partitionMovementsForThisTopic[reversePair] { + reversePairPartition = otherPartition + } + return reversePairPartition +} + +func (p *partitionMovements) isLinked(src, dst string, pairs []consumerPair, currentPath []string) ([]string, bool) { + if src == dst { + return currentPath, false + } + if len(pairs) == 0 { + return currentPath, false + } + for _, pair := range pairs { + if src == pair.SrcMemberID && dst == pair.DstMemberID { + currentPath = append(currentPath, src, dst) + return currentPath, true + } + } + + for _, pair := range pairs { + if pair.SrcMemberID == src { + // create a deep copy of the pairs, excluding the current pair + reducedSet := make([]consumerPair, len(pairs)-1) + i := 0 + for _, p := range pairs { + if p != pair { + reducedSet[i] = pair + i++ + } + } + + currentPath = append(currentPath, pair.SrcMemberID) + return p.isLinked(pair.DstMemberID, dst, reducedSet, currentPath) + } + } + return currentPath, false +} + +func (p *partitionMovements) in(cycle []string, cycles [][]string) bool { + superCycle := make([]string, len(cycle)-1) + for i := 0; i < len(cycle)-1; i++ { + superCycle[i] = cycle[i] + } + for _, c := range cycle { + superCycle = append(superCycle, c) + } + for _, foundCycle := range cycles { + if len(foundCycle) == len(cycle) && indexOfSubList(superCycle, foundCycle) != -1 { + return true + } + } + return false +} + +func (p *partitionMovements) hasCycles(pairs []consumerPair) bool { + cycles := make([][]string, 0) + for _, pair := range pairs { + // create a deep copy of the pairs, excluding the current pair + reducedPairs := make([]consumerPair, len(pairs)-1) + i := 0 + for _, p := range pairs { + if p != pair { + reducedPairs[i] = pair + i++ + } + } + if path, linked := p.isLinked(pair.DstMemberID, pair.SrcMemberID, reducedPairs, []string{pair.SrcMemberID}); linked { + if !p.in(path, cycles) { + cycles = append(cycles, path) + Logger.Printf("A cycle of length %d was found: %v", len(path)-1, path) + } + } + } + + // for now we want to make sure there is no partition movements of the same topic between a pair of consumers. + // the odds of finding a cycle among more than two consumers seem to be very low (according to various randomized + // tests with the given sticky algorithm) that it should not worth the added complexity of handling those cases. + for _, cycle := range cycles { + if len(cycle) == 3 { + return true + } + } + return false +} + +func (p *partitionMovements) isSticky() bool { + for topic, movements := range p.PartitionMovementsByTopic { + movementPairs := make([]consumerPair, len(movements)) + i := 0 + for pair := range movements { + movementPairs[i] = pair + i++ + } + if p.hasCycles(movementPairs) { + Logger.Printf("Stickiness is violated for topic %s", topic) + Logger.Printf("Partition movements for this topic occurred among the following consumer pairs: %v", movements) + return false + } + } + return true +} + +func indexOfSubList(source []string, target []string) int { + targetSize := len(target) + maxCandidate := len(source) - targetSize +nextCand: + for candidate := 0; candidate <= maxCandidate; candidate++ { + j := candidate + for i := 0; i < targetSize; i++ { + if target[i] != source[j] { + // Element mismatch, try next cand + continue nextCand + } + j++ + } + // All elements of candidate matched target + return candidate + } + return -1 +} + +type consumerGroupMember struct { + id string + assignments []topicPartitionAssignment +} + +// assignmentPriorityQueue is a priority-queue of consumer group members that is sorted +// in descending order (most assignments to least assignments). +type assignmentPriorityQueue []*consumerGroupMember + +func (pq assignmentPriorityQueue) Len() int { return len(pq) } + +func (pq assignmentPriorityQueue) Less(i, j int) bool { + // order asssignment priority queue in descending order using assignment-count/member-id + if len(pq[i].assignments) == len(pq[j].assignments) { + return strings.Compare(pq[i].id, pq[j].id) > 0 + } + return len(pq[i].assignments) > len(pq[j].assignments) +} + +func (pq assignmentPriorityQueue) Swap(i, j int) { + pq[i], pq[j] = pq[j], pq[i] +} + +func (pq *assignmentPriorityQueue) Push(x interface{}) { + member := x.(*consumerGroupMember) + *pq = append(*pq, member) +} + +func (pq *assignmentPriorityQueue) Pop() interface{} { + old := *pq + n := len(old) + member := old[n-1] + *pq = old[0 : n-1] + return member +} diff --git a/vendor/github.com/Shopify/sarama/broker.go b/vendor/github.com/Shopify/sarama/broker.go new file mode 100644 index 0000000..d27ebd2 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/broker.go @@ -0,0 +1,1388 @@ +package sarama + +import ( + "crypto/tls" + "encoding/binary" + "fmt" + "io" + "net" + "sort" + "strconv" + "strings" + "sync" + "sync/atomic" + "time" + + metrics "github.com/rcrowley/go-metrics" +) + +// Broker represents a single Kafka broker connection. All operations on this object are entirely concurrency-safe. +type Broker struct { + conf *Config + rack *string + + id int32 + addr string + correlationID int32 + conn net.Conn + connErr error + lock sync.Mutex + opened int32 + responses chan responsePromise + done chan bool + + registeredMetrics []string + + incomingByteRate metrics.Meter + requestRate metrics.Meter + requestSize metrics.Histogram + requestLatency metrics.Histogram + outgoingByteRate metrics.Meter + responseRate metrics.Meter + responseSize metrics.Histogram + requestsInFlight metrics.Counter + brokerIncomingByteRate metrics.Meter + brokerRequestRate metrics.Meter + brokerRequestSize metrics.Histogram + brokerRequestLatency metrics.Histogram + brokerOutgoingByteRate metrics.Meter + brokerResponseRate metrics.Meter + brokerResponseSize metrics.Histogram + brokerRequestsInFlight metrics.Counter + + kerberosAuthenticator GSSAPIKerberosAuth +} + +// SASLMechanism specifies the SASL mechanism the client uses to authenticate with the broker +type SASLMechanism string + +const ( + // SASLTypeOAuth represents the SASL/OAUTHBEARER mechanism (Kafka 2.0.0+) + SASLTypeOAuth = "OAUTHBEARER" + // SASLTypePlaintext represents the SASL/PLAIN mechanism + SASLTypePlaintext = "PLAIN" + // SASLTypeSCRAMSHA256 represents the SCRAM-SHA-256 mechanism. + SASLTypeSCRAMSHA256 = "SCRAM-SHA-256" + // SASLTypeSCRAMSHA512 represents the SCRAM-SHA-512 mechanism. + SASLTypeSCRAMSHA512 = "SCRAM-SHA-512" + SASLTypeGSSAPI = "GSSAPI" + // SASLHandshakeV0 is v0 of the Kafka SASL handshake protocol. Client and + // server negotiate SASL auth using opaque packets. + SASLHandshakeV0 = int16(0) + // SASLHandshakeV1 is v1 of the Kafka SASL handshake protocol. Client and + // server negotiate SASL by wrapping tokens with Kafka protocol headers. + SASLHandshakeV1 = int16(1) + // SASLExtKeyAuth is the reserved extension key name sent as part of the + // SASL/OAUTHBEARER intial client response + SASLExtKeyAuth = "auth" +) + +// AccessToken contains an access token used to authenticate a +// SASL/OAUTHBEARER client along with associated metadata. +type AccessToken struct { + // Token is the access token payload. + Token string + // Extensions is a optional map of arbitrary key-value pairs that can be + // sent with the SASL/OAUTHBEARER initial client response. These values are + // ignored by the SASL server if they are unexpected. This feature is only + // supported by Kafka >= 2.1.0. + Extensions map[string]string +} + +// AccessTokenProvider is the interface that encapsulates how implementors +// can generate access tokens for Kafka broker authentication. +type AccessTokenProvider interface { + // Token returns an access token. The implementation should ensure token + // reuse so that multiple calls at connect time do not create multiple + // tokens. The implementation should also periodically refresh the token in + // order to guarantee that each call returns an unexpired token. This + // method should not block indefinitely--a timeout error should be returned + // after a short period of inactivity so that the broker connection logic + // can log debugging information and retry. + Token() (*AccessToken, error) +} + +// SCRAMClient is a an interface to a SCRAM +// client implementation. +type SCRAMClient interface { + // Begin prepares the client for the SCRAM exchange + // with the server with a user name and a password + Begin(userName, password, authzID string) error + // Step steps client through the SCRAM exchange. It is + // called repeatedly until it errors or `Done` returns true. + Step(challenge string) (response string, err error) + // Done should return true when the SCRAM conversation + // is over. + Done() bool +} + +type responsePromise struct { + requestTime time.Time + correlationID int32 + packets chan []byte + errors chan error +} + +// NewBroker creates and returns a Broker targeting the given host:port address. +// This does not attempt to actually connect, you have to call Open() for that. +func NewBroker(addr string) *Broker { + return &Broker{id: -1, addr: addr} +} + +// Open tries to connect to the Broker if it is not already connected or connecting, but does not block +// waiting for the connection to complete. This means that any subsequent operations on the broker will +// block waiting for the connection to succeed or fail. To get the effect of a fully synchronous Open call, +// follow it by a call to Connected(). The only errors Open will return directly are ConfigurationError or +// AlreadyConnected. If conf is nil, the result of NewConfig() is used. +func (b *Broker) Open(conf *Config) error { + if !atomic.CompareAndSwapInt32(&b.opened, 0, 1) { + return ErrAlreadyConnected + } + + if conf == nil { + conf = NewConfig() + } + + err := conf.Validate() + if err != nil { + return err + } + + b.lock.Lock() + + go withRecover(func() { + defer b.lock.Unlock() + + dialer := net.Dialer{ + Timeout: conf.Net.DialTimeout, + KeepAlive: conf.Net.KeepAlive, + LocalAddr: conf.Net.LocalAddr, + } + + if conf.Net.TLS.Enable { + b.conn, b.connErr = tls.DialWithDialer(&dialer, "tcp", b.addr, conf.Net.TLS.Config) + } else if conf.Net.Proxy.Enable { + b.conn, b.connErr = conf.Net.Proxy.Dialer.Dial("tcp", b.addr) + } else { + b.conn, b.connErr = dialer.Dial("tcp", b.addr) + } + if b.connErr != nil { + Logger.Printf("Failed to connect to broker %s: %s\n", b.addr, b.connErr) + b.conn = nil + atomic.StoreInt32(&b.opened, 0) + return + } + b.conn = newBufConn(b.conn) + + b.conf = conf + + // Create or reuse the global metrics shared between brokers + b.incomingByteRate = metrics.GetOrRegisterMeter("incoming-byte-rate", conf.MetricRegistry) + b.requestRate = metrics.GetOrRegisterMeter("request-rate", conf.MetricRegistry) + b.requestSize = getOrRegisterHistogram("request-size", conf.MetricRegistry) + b.requestLatency = getOrRegisterHistogram("request-latency-in-ms", conf.MetricRegistry) + b.outgoingByteRate = metrics.GetOrRegisterMeter("outgoing-byte-rate", conf.MetricRegistry) + b.responseRate = metrics.GetOrRegisterMeter("response-rate", conf.MetricRegistry) + b.responseSize = getOrRegisterHistogram("response-size", conf.MetricRegistry) + b.requestsInFlight = metrics.GetOrRegisterCounter("requests-in-flight", conf.MetricRegistry) + // Do not gather metrics for seeded broker (only used during bootstrap) because they share + // the same id (-1) and are already exposed through the global metrics above + if b.id >= 0 { + b.registerMetrics() + } + + if conf.Net.SASL.Enable { + b.connErr = b.authenticateViaSASL() + + if b.connErr != nil { + err = b.conn.Close() + if err == nil { + Logger.Printf("Closed connection to broker %s\n", b.addr) + } else { + Logger.Printf("Error while closing connection to broker %s: %s\n", b.addr, err) + } + b.conn = nil + atomic.StoreInt32(&b.opened, 0) + return + } + } + + b.done = make(chan bool) + b.responses = make(chan responsePromise, b.conf.Net.MaxOpenRequests-1) + + if b.id >= 0 { + Logger.Printf("Connected to broker at %s (registered as #%d)\n", b.addr, b.id) + } else { + Logger.Printf("Connected to broker at %s (unregistered)\n", b.addr) + } + go withRecover(b.responseReceiver) + }) + + return nil +} + +// Connected returns true if the broker is connected and false otherwise. If the broker is not +// connected but it had tried to connect, the error from that connection attempt is also returned. +func (b *Broker) Connected() (bool, error) { + b.lock.Lock() + defer b.lock.Unlock() + + return b.conn != nil, b.connErr +} + +//Close closes the broker resources +func (b *Broker) Close() error { + b.lock.Lock() + defer b.lock.Unlock() + + if b.conn == nil { + return ErrNotConnected + } + + close(b.responses) + <-b.done + + err := b.conn.Close() + + b.conn = nil + b.connErr = nil + b.done = nil + b.responses = nil + + b.unregisterMetrics() + + if err == nil { + Logger.Printf("Closed connection to broker %s\n", b.addr) + } else { + Logger.Printf("Error while closing connection to broker %s: %s\n", b.addr, err) + } + + atomic.StoreInt32(&b.opened, 0) + + return err +} + +// ID returns the broker ID retrieved from Kafka's metadata, or -1 if that is not known. +func (b *Broker) ID() int32 { + return b.id +} + +// Addr returns the broker address as either retrieved from Kafka's metadata or passed to NewBroker. +func (b *Broker) Addr() string { + return b.addr +} + +// Rack returns the broker's rack as retrieved from Kafka's metadata or the +// empty string if it is not known. The returned value corresponds to the +// broker's broker.rack configuration setting. Requires protocol version to be +// at least v0.10.0.0. +func (b *Broker) Rack() string { + if b.rack == nil { + return "" + } + return *b.rack +} + +//GetMetadata send a metadata request and returns a metadata response or error +func (b *Broker) GetMetadata(request *MetadataRequest) (*MetadataResponse, error) { + response := new(MetadataResponse) + + err := b.sendAndReceive(request, response) + + if err != nil { + return nil, err + } + + return response, nil +} + +//GetConsumerMetadata send a consumer metadata request and returns a consumer metadata response or error +func (b *Broker) GetConsumerMetadata(request *ConsumerMetadataRequest) (*ConsumerMetadataResponse, error) { + response := new(ConsumerMetadataResponse) + + err := b.sendAndReceive(request, response) + + if err != nil { + return nil, err + } + + return response, nil +} + +//FindCoordinator sends a find coordinate request and returns a response or error +func (b *Broker) FindCoordinator(request *FindCoordinatorRequest) (*FindCoordinatorResponse, error) { + response := new(FindCoordinatorResponse) + + err := b.sendAndReceive(request, response) + + if err != nil { + return nil, err + } + + return response, nil +} + +//GetAvailableOffsets return an offset response or error +func (b *Broker) GetAvailableOffsets(request *OffsetRequest) (*OffsetResponse, error) { + response := new(OffsetResponse) + + err := b.sendAndReceive(request, response) + + if err != nil { + return nil, err + } + + return response, nil +} + +//Produce returns a produce response or error +func (b *Broker) Produce(request *ProduceRequest) (*ProduceResponse, error) { + var ( + response *ProduceResponse + err error + ) + + if request.RequiredAcks == NoResponse { + err = b.sendAndReceive(request, nil) + } else { + response = new(ProduceResponse) + err = b.sendAndReceive(request, response) + } + + if err != nil { + return nil, err + } + + return response, nil +} + +//Fetch returns a FetchResponse or error +func (b *Broker) Fetch(request *FetchRequest) (*FetchResponse, error) { + response := new(FetchResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//CommitOffset return an Offset commit reponse or error +func (b *Broker) CommitOffset(request *OffsetCommitRequest) (*OffsetCommitResponse, error) { + response := new(OffsetCommitResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//FetchOffset returns an offset fetch response or error +func (b *Broker) FetchOffset(request *OffsetFetchRequest) (*OffsetFetchResponse, error) { + response := new(OffsetFetchResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//JoinGroup returns a join group response or error +func (b *Broker) JoinGroup(request *JoinGroupRequest) (*JoinGroupResponse, error) { + response := new(JoinGroupResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//SyncGroup returns a sync group response or error +func (b *Broker) SyncGroup(request *SyncGroupRequest) (*SyncGroupResponse, error) { + response := new(SyncGroupResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//LeaveGroup return a leave group response or error +func (b *Broker) LeaveGroup(request *LeaveGroupRequest) (*LeaveGroupResponse, error) { + response := new(LeaveGroupResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//Heartbeat returns a heartbeat response or error +func (b *Broker) Heartbeat(request *HeartbeatRequest) (*HeartbeatResponse, error) { + response := new(HeartbeatResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//ListGroups return a list group response or error +func (b *Broker) ListGroups(request *ListGroupsRequest) (*ListGroupsResponse, error) { + response := new(ListGroupsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//DescribeGroups return describe group response or error +func (b *Broker) DescribeGroups(request *DescribeGroupsRequest) (*DescribeGroupsResponse, error) { + response := new(DescribeGroupsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//ApiVersions return api version response or error +func (b *Broker) ApiVersions(request *ApiVersionsRequest) (*ApiVersionsResponse, error) { + response := new(ApiVersionsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//CreateTopics send a create topic request and returns create topic response +func (b *Broker) CreateTopics(request *CreateTopicsRequest) (*CreateTopicsResponse, error) { + response := new(CreateTopicsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//DeleteTopics sends a delete topic request and returns delete topic response +func (b *Broker) DeleteTopics(request *DeleteTopicsRequest) (*DeleteTopicsResponse, error) { + response := new(DeleteTopicsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//CreatePartitions sends a create partition request and returns create +//partitions response or error +func (b *Broker) CreatePartitions(request *CreatePartitionsRequest) (*CreatePartitionsResponse, error) { + response := new(CreatePartitionsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//DeleteRecords send a request to delete records and return delete record +//response or error +func (b *Broker) DeleteRecords(request *DeleteRecordsRequest) (*DeleteRecordsResponse, error) { + response := new(DeleteRecordsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//DescribeAcls sends a describe acl request and returns a response or error +func (b *Broker) DescribeAcls(request *DescribeAclsRequest) (*DescribeAclsResponse, error) { + response := new(DescribeAclsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//CreateAcls sends a create acl request and returns a response or error +func (b *Broker) CreateAcls(request *CreateAclsRequest) (*CreateAclsResponse, error) { + response := new(CreateAclsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//DeleteAcls sends a delete acl request and returns a response or error +func (b *Broker) DeleteAcls(request *DeleteAclsRequest) (*DeleteAclsResponse, error) { + response := new(DeleteAclsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//InitProducerID sends an init producer request and returns a response or error +func (b *Broker) InitProducerID(request *InitProducerIDRequest) (*InitProducerIDResponse, error) { + response := new(InitProducerIDResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//AddPartitionsToTxn send a request to add partition to txn and returns +//a response or error +func (b *Broker) AddPartitionsToTxn(request *AddPartitionsToTxnRequest) (*AddPartitionsToTxnResponse, error) { + response := new(AddPartitionsToTxnResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//AddOffsetsToTxn sends a request to add offsets to txn and returns a response +//or error +func (b *Broker) AddOffsetsToTxn(request *AddOffsetsToTxnRequest) (*AddOffsetsToTxnResponse, error) { + response := new(AddOffsetsToTxnResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//EndTxn sends a request to end txn and returns a response or error +func (b *Broker) EndTxn(request *EndTxnRequest) (*EndTxnResponse, error) { + response := new(EndTxnResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//TxnOffsetCommit sends a request to commit transaction offsets and returns +//a response or error +func (b *Broker) TxnOffsetCommit(request *TxnOffsetCommitRequest) (*TxnOffsetCommitResponse, error) { + response := new(TxnOffsetCommitResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//DescribeConfigs sends a request to describe config and returns a response or +//error +func (b *Broker) DescribeConfigs(request *DescribeConfigsRequest) (*DescribeConfigsResponse, error) { + response := new(DescribeConfigsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//AlterConfigs sends a request to alter config and return a response or error +func (b *Broker) AlterConfigs(request *AlterConfigsRequest) (*AlterConfigsResponse, error) { + response := new(AlterConfigsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +//DeleteGroups sends a request to delete groups and returns a response or error +func (b *Broker) DeleteGroups(request *DeleteGroupsRequest) (*DeleteGroupsResponse, error) { + response := new(DeleteGroupsResponse) + + if err := b.sendAndReceive(request, response); err != nil { + return nil, err + } + + return response, nil +} + +//DescribeLogDirs sends a request to get the broker's log dir paths and sizes +func (b *Broker) DescribeLogDirs(request *DescribeLogDirsRequest) (*DescribeLogDirsResponse, error) { + response := new(DescribeLogDirsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +// readFull ensures the conn ReadDeadline has been setup before making a +// call to io.ReadFull +func (b *Broker) readFull(buf []byte) (n int, err error) { + if err := b.conn.SetReadDeadline(time.Now().Add(b.conf.Net.ReadTimeout)); err != nil { + return 0, err + } + + return io.ReadFull(b.conn, buf) +} + +// write ensures the conn WriteDeadline has been setup before making a +// call to conn.Write +func (b *Broker) write(buf []byte) (n int, err error) { + if err := b.conn.SetWriteDeadline(time.Now().Add(b.conf.Net.WriteTimeout)); err != nil { + return 0, err + } + + return b.conn.Write(buf) +} + +func (b *Broker) send(rb protocolBody, promiseResponse bool) (*responsePromise, error) { + b.lock.Lock() + defer b.lock.Unlock() + + if b.conn == nil { + if b.connErr != nil { + return nil, b.connErr + } + return nil, ErrNotConnected + } + + if !b.conf.Version.IsAtLeast(rb.requiredVersion()) { + return nil, ErrUnsupportedVersion + } + + req := &request{correlationID: b.correlationID, clientID: b.conf.ClientID, body: rb} + buf, err := encode(req, b.conf.MetricRegistry) + if err != nil { + return nil, err + } + + requestTime := time.Now() + // Will be decremented in responseReceiver (except error or request with NoResponse) + b.addRequestInFlightMetrics(1) + bytes, err := b.write(buf) + b.updateOutgoingCommunicationMetrics(bytes) + if err != nil { + b.addRequestInFlightMetrics(-1) + return nil, err + } + b.correlationID++ + + if !promiseResponse { + // Record request latency without the response + b.updateRequestLatencyAndInFlightMetrics(time.Since(requestTime)) + return nil, nil + } + + promise := responsePromise{requestTime, req.correlationID, make(chan []byte), make(chan error)} + b.responses <- promise + + return &promise, nil +} + +func (b *Broker) sendAndReceive(req protocolBody, res versionedDecoder) error { + promise, err := b.send(req, res != nil) + if err != nil { + return err + } + + if promise == nil { + return nil + } + + select { + case buf := <-promise.packets: + return versionedDecode(buf, res, req.version()) + case err = <-promise.errors: + return err + } +} + +func (b *Broker) decode(pd packetDecoder, version int16) (err error) { + b.id, err = pd.getInt32() + if err != nil { + return err + } + + host, err := pd.getString() + if err != nil { + return err + } + + port, err := pd.getInt32() + if err != nil { + return err + } + + if version >= 1 { + b.rack, err = pd.getNullableString() + if err != nil { + return err + } + } + + b.addr = net.JoinHostPort(host, fmt.Sprint(port)) + if _, _, err := net.SplitHostPort(b.addr); err != nil { + return err + } + + return nil +} + +func (b *Broker) encode(pe packetEncoder, version int16) (err error) { + host, portstr, err := net.SplitHostPort(b.addr) + if err != nil { + return err + } + + port, err := strconv.Atoi(portstr) + if err != nil { + return err + } + + pe.putInt32(b.id) + + err = pe.putString(host) + if err != nil { + return err + } + + pe.putInt32(int32(port)) + + if version >= 1 { + err = pe.putNullableString(b.rack) + if err != nil { + return err + } + } + + return nil +} + +func (b *Broker) responseReceiver() { + var dead error + header := make([]byte, 8) + + for response := range b.responses { + if dead != nil { + // This was previously incremented in send() and + // we are not calling updateIncomingCommunicationMetrics() + b.addRequestInFlightMetrics(-1) + response.errors <- dead + continue + } + + bytesReadHeader, err := b.readFull(header) + requestLatency := time.Since(response.requestTime) + if err != nil { + b.updateIncomingCommunicationMetrics(bytesReadHeader, requestLatency) + dead = err + response.errors <- err + continue + } + + decodedHeader := responseHeader{} + err = decode(header, &decodedHeader) + if err != nil { + b.updateIncomingCommunicationMetrics(bytesReadHeader, requestLatency) + dead = err + response.errors <- err + continue + } + if decodedHeader.correlationID != response.correlationID { + b.updateIncomingCommunicationMetrics(bytesReadHeader, requestLatency) + // TODO if decoded ID < cur ID, discard until we catch up + // TODO if decoded ID > cur ID, save it so when cur ID catches up we have a response + dead = PacketDecodingError{fmt.Sprintf("correlation ID didn't match, wanted %d, got %d", response.correlationID, decodedHeader.correlationID)} + response.errors <- dead + continue + } + + buf := make([]byte, decodedHeader.length-4) + bytesReadBody, err := b.readFull(buf) + b.updateIncomingCommunicationMetrics(bytesReadHeader+bytesReadBody, requestLatency) + if err != nil { + dead = err + response.errors <- err + continue + } + + response.packets <- buf + } + close(b.done) +} + +func (b *Broker) authenticateViaSASL() error { + switch b.conf.Net.SASL.Mechanism { + case SASLTypeOAuth: + return b.sendAndReceiveSASLOAuth(b.conf.Net.SASL.TokenProvider) + case SASLTypeSCRAMSHA256, SASLTypeSCRAMSHA512: + return b.sendAndReceiveSASLSCRAMv1() + case SASLTypeGSSAPI: + return b.sendAndReceiveKerberos() + default: + return b.sendAndReceiveSASLPlainAuth() + } +} + +func (b *Broker) sendAndReceiveKerberos() error { + b.kerberosAuthenticator.Config = &b.conf.Net.SASL.GSSAPI + if b.kerberosAuthenticator.NewKerberosClientFunc == nil { + b.kerberosAuthenticator.NewKerberosClientFunc = NewKerberosClient + } + return b.kerberosAuthenticator.Authorize(b) +} + +func (b *Broker) sendAndReceiveSASLHandshake(saslType SASLMechanism, version int16) error { + rb := &SaslHandshakeRequest{Mechanism: string(saslType), Version: version} + + req := &request{correlationID: b.correlationID, clientID: b.conf.ClientID, body: rb} + buf, err := encode(req, b.conf.MetricRegistry) + if err != nil { + return err + } + + requestTime := time.Now() + // Will be decremented in updateIncomingCommunicationMetrics (except error) + b.addRequestInFlightMetrics(1) + bytes, err := b.write(buf) + b.updateOutgoingCommunicationMetrics(bytes) + if err != nil { + b.addRequestInFlightMetrics(-1) + Logger.Printf("Failed to send SASL handshake %s: %s\n", b.addr, err.Error()) + return err + } + b.correlationID++ + + header := make([]byte, 8) // response header + _, err = b.readFull(header) + if err != nil { + b.addRequestInFlightMetrics(-1) + Logger.Printf("Failed to read SASL handshake header : %s\n", err.Error()) + return err + } + + length := binary.BigEndian.Uint32(header[:4]) + payload := make([]byte, length-4) + n, err := b.readFull(payload) + if err != nil { + b.addRequestInFlightMetrics(-1) + Logger.Printf("Failed to read SASL handshake payload : %s\n", err.Error()) + return err + } + + b.updateIncomingCommunicationMetrics(n+8, time.Since(requestTime)) + res := &SaslHandshakeResponse{} + + err = versionedDecode(payload, res, 0) + if err != nil { + Logger.Printf("Failed to parse SASL handshake : %s\n", err.Error()) + return err + } + + if res.Err != ErrNoError { + Logger.Printf("Invalid SASL Mechanism : %s\n", res.Err.Error()) + return res.Err + } + + Logger.Print("Successful SASL handshake. Available mechanisms: ", res.EnabledMechanisms) + return nil +} + +// Kafka 0.10.x supported SASL PLAIN/Kerberos via KAFKA-3149 (KIP-43). +// Kafka 1.x.x onward added a SaslAuthenticate request/response message which +// wraps the SASL flow in the Kafka protocol, which allows for returning +// meaningful errors on authentication failure. +// +// In SASL Plain, Kafka expects the auth header to be in the following format +// Message format (from https://tools.ietf.org/html/rfc4616): +// +// message = [authzid] UTF8NUL authcid UTF8NUL passwd +// authcid = 1*SAFE ; MUST accept up to 255 octets +// authzid = 1*SAFE ; MUST accept up to 255 octets +// passwd = 1*SAFE ; MUST accept up to 255 octets +// UTF8NUL = %x00 ; UTF-8 encoded NUL character +// +// SAFE = UTF1 / UTF2 / UTF3 / UTF4 +// ;; any UTF-8 encoded Unicode character except NUL +// +// With SASL v0 handshake and auth then: +// When credentials are valid, Kafka returns a 4 byte array of null characters. +// When credentials are invalid, Kafka closes the connection. +// +// With SASL v1 handshake and auth then: +// When credentials are invalid, Kafka replies with a SaslAuthenticate response +// containing an error code and message detailing the authentication failure. +func (b *Broker) sendAndReceiveSASLPlainAuth() error { + // default to V0 to allow for backward compatability when SASL is enabled + // but not the handshake + if b.conf.Net.SASL.Handshake { + handshakeErr := b.sendAndReceiveSASLHandshake(SASLTypePlaintext, b.conf.Net.SASL.Version) + if handshakeErr != nil { + Logger.Printf("Error while performing SASL handshake %s\n", b.addr) + return handshakeErr + } + } + + if b.conf.Net.SASL.Version == SASLHandshakeV1 { + return b.sendAndReceiveV1SASLPlainAuth() + } + return b.sendAndReceiveV0SASLPlainAuth() +} + +// sendAndReceiveV0SASLPlainAuth flows the v0 sasl auth NOT wrapped in the kafka protocol +func (b *Broker) sendAndReceiveV0SASLPlainAuth() error { + length := len(b.conf.Net.SASL.AuthIdentity) + 1 + len(b.conf.Net.SASL.User) + 1 + len(b.conf.Net.SASL.Password) + authBytes := make([]byte, length+4) //4 byte length header + auth data + binary.BigEndian.PutUint32(authBytes, uint32(length)) + copy(authBytes[4:], []byte(b.conf.Net.SASL.AuthIdentity+"\x00"+b.conf.Net.SASL.User+"\x00"+b.conf.Net.SASL.Password)) + + requestTime := time.Now() + // Will be decremented in updateIncomingCommunicationMetrics (except error) + b.addRequestInFlightMetrics(1) + bytesWritten, err := b.write(authBytes) + b.updateOutgoingCommunicationMetrics(bytesWritten) + if err != nil { + b.addRequestInFlightMetrics(-1) + Logger.Printf("Failed to write SASL auth header to broker %s: %s\n", b.addr, err.Error()) + return err + } + + header := make([]byte, 4) + n, err := b.readFull(header) + b.updateIncomingCommunicationMetrics(n, time.Since(requestTime)) + // If the credentials are valid, we would get a 4 byte response filled with null characters. + // Otherwise, the broker closes the connection and we get an EOF + if err != nil { + Logger.Printf("Failed to read response while authenticating with SASL to broker %s: %s\n", b.addr, err.Error()) + return err + } + + Logger.Printf("SASL authentication successful with broker %s:%v - %v\n", b.addr, n, header) + return nil +} + +// sendAndReceiveV1SASLPlainAuth flows the v1 sasl authentication using the kafka protocol +func (b *Broker) sendAndReceiveV1SASLPlainAuth() error { + correlationID := b.correlationID + + requestTime := time.Now() + + // Will be decremented in updateIncomingCommunicationMetrics (except error) + b.addRequestInFlightMetrics(1) + bytesWritten, err := b.sendSASLPlainAuthClientResponse(correlationID) + b.updateOutgoingCommunicationMetrics(bytesWritten) + + if err != nil { + b.addRequestInFlightMetrics(-1) + Logger.Printf("Failed to write SASL auth header to broker %s: %s\n", b.addr, err.Error()) + return err + } + + b.correlationID++ + + bytesRead, err := b.receiveSASLServerResponse(&SaslAuthenticateResponse{}, correlationID) + b.updateIncomingCommunicationMetrics(bytesRead, time.Since(requestTime)) + + // With v1 sasl we get an error message set in the response we can return + if err != nil { + Logger.Printf("Error returned from broker during SASL flow %s: %s\n", b.addr, err.Error()) + return err + } + + return nil +} + +// sendAndReceiveSASLOAuth performs the authentication flow as described by KIP-255 +// https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=75968876 +func (b *Broker) sendAndReceiveSASLOAuth(provider AccessTokenProvider) error { + if err := b.sendAndReceiveSASLHandshake(SASLTypeOAuth, SASLHandshakeV1); err != nil { + return err + } + + token, err := provider.Token() + if err != nil { + return err + } + + message, err := buildClientFirstMessage(token) + if err != nil { + return err + } + + challenged, err := b.sendClientMessage(message) + if err != nil { + return err + } + + if challenged { + // Abort the token exchange. The broker returns the failure code. + _, err = b.sendClientMessage([]byte(`\x01`)) + } + + return err +} + +// sendClientMessage sends a SASL/OAUTHBEARER client message and returns true +// if the broker responds with a challenge, in which case the token is +// rejected. +func (b *Broker) sendClientMessage(message []byte) (bool, error) { + requestTime := time.Now() + // Will be decremented in updateIncomingCommunicationMetrics (except error) + b.addRequestInFlightMetrics(1) + correlationID := b.correlationID + + bytesWritten, err := b.sendSASLOAuthBearerClientMessage(message, correlationID) + b.updateOutgoingCommunicationMetrics(bytesWritten) + if err != nil { + b.addRequestInFlightMetrics(-1) + return false, err + } + + b.correlationID++ + + res := &SaslAuthenticateResponse{} + bytesRead, err := b.receiveSASLServerResponse(res, correlationID) + + requestLatency := time.Since(requestTime) + b.updateIncomingCommunicationMetrics(bytesRead, requestLatency) + + isChallenge := len(res.SaslAuthBytes) > 0 + + if isChallenge && err != nil { + Logger.Printf("Broker rejected authentication token: %s", res.SaslAuthBytes) + } + + return isChallenge, err +} + +func (b *Broker) sendAndReceiveSASLSCRAMv1() error { + if err := b.sendAndReceiveSASLHandshake(b.conf.Net.SASL.Mechanism, SASLHandshakeV1); err != nil { + return err + } + + scramClient := b.conf.Net.SASL.SCRAMClientGeneratorFunc() + if err := scramClient.Begin(b.conf.Net.SASL.User, b.conf.Net.SASL.Password, b.conf.Net.SASL.SCRAMAuthzID); err != nil { + return fmt.Errorf("failed to start SCRAM exchange with the server: %s", err.Error()) + } + + msg, err := scramClient.Step("") + if err != nil { + return fmt.Errorf("failed to advance the SCRAM exchange: %s", err.Error()) + } + + for !scramClient.Done() { + requestTime := time.Now() + // Will be decremented in updateIncomingCommunicationMetrics (except error) + b.addRequestInFlightMetrics(1) + correlationID := b.correlationID + bytesWritten, err := b.sendSaslAuthenticateRequest(correlationID, []byte(msg)) + b.updateOutgoingCommunicationMetrics(bytesWritten) + if err != nil { + b.addRequestInFlightMetrics(-1) + Logger.Printf("Failed to write SASL auth header to broker %s: %s\n", b.addr, err.Error()) + return err + } + + b.correlationID++ + challenge, err := b.receiveSaslAuthenticateResponse(correlationID) + if err != nil { + b.addRequestInFlightMetrics(-1) + Logger.Printf("Failed to read response while authenticating with SASL to broker %s: %s\n", b.addr, err.Error()) + return err + } + + b.updateIncomingCommunicationMetrics(len(challenge), time.Since(requestTime)) + msg, err = scramClient.Step(string(challenge)) + if err != nil { + Logger.Println("SASL authentication failed", err) + return err + } + } + + Logger.Println("SASL authentication succeeded") + return nil +} + +func (b *Broker) sendSaslAuthenticateRequest(correlationID int32, msg []byte) (int, error) { + rb := &SaslAuthenticateRequest{msg} + req := &request{correlationID: correlationID, clientID: b.conf.ClientID, body: rb} + buf, err := encode(req, b.conf.MetricRegistry) + if err != nil { + return 0, err + } + + return b.write(buf) +} + +func (b *Broker) receiveSaslAuthenticateResponse(correlationID int32) ([]byte, error) { + buf := make([]byte, responseLengthSize+correlationIDSize) + _, err := b.readFull(buf) + if err != nil { + return nil, err + } + + header := responseHeader{} + err = decode(buf, &header) + if err != nil { + return nil, err + } + + if header.correlationID != correlationID { + return nil, fmt.Errorf("correlation ID didn't match, wanted %d, got %d", b.correlationID, header.correlationID) + } + + buf = make([]byte, header.length-correlationIDSize) + _, err = b.readFull(buf) + if err != nil { + return nil, err + } + + res := &SaslAuthenticateResponse{} + if err := versionedDecode(buf, res, 0); err != nil { + return nil, err + } + if res.Err != ErrNoError { + return nil, res.Err + } + return res.SaslAuthBytes, nil +} + +// Build SASL/OAUTHBEARER initial client response as described by RFC-7628 +// https://tools.ietf.org/html/rfc7628 +func buildClientFirstMessage(token *AccessToken) ([]byte, error) { + var ext string + + if token.Extensions != nil && len(token.Extensions) > 0 { + if _, ok := token.Extensions[SASLExtKeyAuth]; ok { + return []byte{}, fmt.Errorf("the extension `%s` is invalid", SASLExtKeyAuth) + } + ext = "\x01" + mapToString(token.Extensions, "=", "\x01") + } + + resp := []byte(fmt.Sprintf("n,,\x01auth=Bearer %s%s\x01\x01", token.Token, ext)) + + return resp, nil +} + +// mapToString returns a list of key-value pairs ordered by key. +// keyValSep separates the key from the value. elemSep separates each pair. +func mapToString(extensions map[string]string, keyValSep string, elemSep string) string { + buf := make([]string, 0, len(extensions)) + + for k, v := range extensions { + buf = append(buf, k+keyValSep+v) + } + + sort.Strings(buf) + + return strings.Join(buf, elemSep) +} + +func (b *Broker) sendSASLPlainAuthClientResponse(correlationID int32) (int, error) { + authBytes := []byte(b.conf.Net.SASL.AuthIdentity + "\x00" + b.conf.Net.SASL.User + "\x00" + b.conf.Net.SASL.Password) + rb := &SaslAuthenticateRequest{authBytes} + req := &request{correlationID: correlationID, clientID: b.conf.ClientID, body: rb} + buf, err := encode(req, b.conf.MetricRegistry) + if err != nil { + return 0, err + } + + return b.write(buf) +} + +func (b *Broker) sendSASLOAuthBearerClientMessage(initialResp []byte, correlationID int32) (int, error) { + rb := &SaslAuthenticateRequest{initialResp} + + req := &request{correlationID: correlationID, clientID: b.conf.ClientID, body: rb} + + buf, err := encode(req, b.conf.MetricRegistry) + if err != nil { + return 0, err + } + + return b.write(buf) +} + +func (b *Broker) receiveSASLServerResponse(res *SaslAuthenticateResponse, correlationID int32) (int, error) { + buf := make([]byte, responseLengthSize+correlationIDSize) + bytesRead, err := b.readFull(buf) + if err != nil { + return bytesRead, err + } + + header := responseHeader{} + err = decode(buf, &header) + if err != nil { + return bytesRead, err + } + + if header.correlationID != correlationID { + return bytesRead, fmt.Errorf("correlation ID didn't match, wanted %d, got %d", b.correlationID, header.correlationID) + } + + buf = make([]byte, header.length-correlationIDSize) + c, err := b.readFull(buf) + bytesRead += c + if err != nil { + return bytesRead, err + } + + if err := versionedDecode(buf, res, 0); err != nil { + return bytesRead, err + } + + if res.Err != ErrNoError { + return bytesRead, res.Err + } + + return bytesRead, nil +} + +func (b *Broker) updateIncomingCommunicationMetrics(bytes int, requestLatency time.Duration) { + b.updateRequestLatencyAndInFlightMetrics(requestLatency) + b.responseRate.Mark(1) + + if b.brokerResponseRate != nil { + b.brokerResponseRate.Mark(1) + } + + responseSize := int64(bytes) + b.incomingByteRate.Mark(responseSize) + if b.brokerIncomingByteRate != nil { + b.brokerIncomingByteRate.Mark(responseSize) + } + + b.responseSize.Update(responseSize) + if b.brokerResponseSize != nil { + b.brokerResponseSize.Update(responseSize) + } +} + +func (b *Broker) updateRequestLatencyAndInFlightMetrics(requestLatency time.Duration) { + requestLatencyInMs := int64(requestLatency / time.Millisecond) + b.requestLatency.Update(requestLatencyInMs) + + if b.brokerRequestLatency != nil { + b.brokerRequestLatency.Update(requestLatencyInMs) + } + + b.addRequestInFlightMetrics(-1) +} + +func (b *Broker) addRequestInFlightMetrics(i int64) { + b.requestsInFlight.Inc(i) + if b.brokerRequestsInFlight != nil { + b.brokerRequestsInFlight.Inc(i) + } +} + +func (b *Broker) updateOutgoingCommunicationMetrics(bytes int) { + b.requestRate.Mark(1) + if b.brokerRequestRate != nil { + b.brokerRequestRate.Mark(1) + } + + requestSize := int64(bytes) + b.outgoingByteRate.Mark(requestSize) + if b.brokerOutgoingByteRate != nil { + b.brokerOutgoingByteRate.Mark(requestSize) + } + + b.requestSize.Update(requestSize) + if b.brokerRequestSize != nil { + b.brokerRequestSize.Update(requestSize) + } +} + +func (b *Broker) registerMetrics() { + b.brokerIncomingByteRate = b.registerMeter("incoming-byte-rate") + b.brokerRequestRate = b.registerMeter("request-rate") + b.brokerRequestSize = b.registerHistogram("request-size") + b.brokerRequestLatency = b.registerHistogram("request-latency-in-ms") + b.brokerOutgoingByteRate = b.registerMeter("outgoing-byte-rate") + b.brokerResponseRate = b.registerMeter("response-rate") + b.brokerResponseSize = b.registerHistogram("response-size") + b.brokerRequestsInFlight = b.registerCounter("requests-in-flight") +} + +func (b *Broker) unregisterMetrics() { + for _, name := range b.registeredMetrics { + b.conf.MetricRegistry.Unregister(name) + } +} + +func (b *Broker) registerMeter(name string) metrics.Meter { + nameForBroker := getMetricNameForBroker(name, b) + b.registeredMetrics = append(b.registeredMetrics, nameForBroker) + return metrics.GetOrRegisterMeter(nameForBroker, b.conf.MetricRegistry) +} + +func (b *Broker) registerHistogram(name string) metrics.Histogram { + nameForBroker := getMetricNameForBroker(name, b) + b.registeredMetrics = append(b.registeredMetrics, nameForBroker) + return getOrRegisterHistogram(nameForBroker, b.conf.MetricRegistry) +} + +func (b *Broker) registerCounter(name string) metrics.Counter { + nameForBroker := getMetricNameForBroker(name, b) + b.registeredMetrics = append(b.registeredMetrics, nameForBroker) + return metrics.GetOrRegisterCounter(nameForBroker, b.conf.MetricRegistry) +} diff --git a/vendor/github.com/Shopify/sarama/client.go b/vendor/github.com/Shopify/sarama/client.go new file mode 100644 index 0000000..057a57a --- /dev/null +++ b/vendor/github.com/Shopify/sarama/client.go @@ -0,0 +1,1047 @@ +package sarama + +import ( + "math/rand" + "sort" + "sync" + "time" +) + +// Client is a generic Kafka client. It manages connections to one or more Kafka brokers. +// You MUST call Close() on a client to avoid leaks, it will not be garbage-collected +// automatically when it passes out of scope. It is safe to share a client amongst many +// users, however Kafka will process requests from a single client strictly in serial, +// so it is generally more efficient to use the default one client per producer/consumer. +type Client interface { + // Config returns the Config struct of the client. This struct should not be + // altered after it has been created. + Config() *Config + + // Controller returns the cluster controller broker. It will return a + // locally cached value if it's available. You can call RefreshController + // to update the cached value. Requires Kafka 0.10 or higher. + Controller() (*Broker, error) + + // RefreshController retrieves the cluster controller from fresh metadata + // and stores it in the local cache. Requires Kafka 0.10 or higher. + RefreshController() (*Broker, error) + + // Brokers returns the current set of active brokers as retrieved from cluster metadata. + Brokers() []*Broker + + // Topics returns the set of available topics as retrieved from cluster metadata. + Topics() ([]string, error) + + // Partitions returns the sorted list of all partition IDs for the given topic. + Partitions(topic string) ([]int32, error) + + // WritablePartitions returns the sorted list of all writable partition IDs for + // the given topic, where "writable" means "having a valid leader accepting + // writes". + WritablePartitions(topic string) ([]int32, error) + + // Leader returns the broker object that is the leader of the current + // topic/partition, as determined by querying the cluster metadata. + Leader(topic string, partitionID int32) (*Broker, error) + + // Replicas returns the set of all replica IDs for the given partition. + Replicas(topic string, partitionID int32) ([]int32, error) + + // InSyncReplicas returns the set of all in-sync replica IDs for the given + // partition. In-sync replicas are replicas which are fully caught up with + // the partition leader. + InSyncReplicas(topic string, partitionID int32) ([]int32, error) + + // OfflineReplicas returns the set of all offline replica IDs for the given + // partition. Offline replicas are replicas which are offline + OfflineReplicas(topic string, partitionID int32) ([]int32, error) + + // RefreshMetadata takes a list of topics and queries the cluster to refresh the + // available metadata for those topics. If no topics are provided, it will refresh + // metadata for all topics. + RefreshMetadata(topics ...string) error + + // GetOffset queries the cluster to get the most recent available offset at the + // given time (in milliseconds) on the topic/partition combination. + // Time should be OffsetOldest for the earliest available offset, + // OffsetNewest for the offset of the message that will be produced next, or a time. + GetOffset(topic string, partitionID int32, time int64) (int64, error) + + // Coordinator returns the coordinating broker for a consumer group. It will + // return a locally cached value if it's available. You can call + // RefreshCoordinator to update the cached value. This function only works on + // Kafka 0.8.2 and higher. + Coordinator(consumerGroup string) (*Broker, error) + + // RefreshCoordinator retrieves the coordinator for a consumer group and stores it + // in local cache. This function only works on Kafka 0.8.2 and higher. + RefreshCoordinator(consumerGroup string) error + + // InitProducerID retrieves information required for Idempotent Producer + InitProducerID() (*InitProducerIDResponse, error) + + // Close shuts down all broker connections managed by this client. It is required + // to call this function before a client object passes out of scope, as it will + // otherwise leak memory. You must close any Producers or Consumers using a client + // before you close the client. + Close() error + + // Closed returns true if the client has already had Close called on it + Closed() bool +} + +const ( + // OffsetNewest stands for the log head offset, i.e. the offset that will be + // assigned to the next message that will be produced to the partition. You + // can send this to a client's GetOffset method to get this offset, or when + // calling ConsumePartition to start consuming new messages. + OffsetNewest int64 = -1 + // OffsetOldest stands for the oldest offset available on the broker for a + // partition. You can send this to a client's GetOffset method to get this + // offset, or when calling ConsumePartition to start consuming from the + // oldest offset that is still available on the broker. + OffsetOldest int64 = -2 +) + +type client struct { + conf *Config + closer, closed chan none // for shutting down background metadata updater + + // the broker addresses given to us through the constructor are not guaranteed to be returned in + // the cluster metadata (I *think* it only returns brokers who are currently leading partitions?) + // so we store them separately + seedBrokers []*Broker + deadSeeds []*Broker + + controllerID int32 // cluster controller broker id + brokers map[int32]*Broker // maps broker ids to brokers + metadata map[string]map[int32]*PartitionMetadata // maps topics to partition ids to metadata + metadataTopics map[string]none // topics that need to collect metadata + coordinators map[string]int32 // Maps consumer group names to coordinating broker IDs + + // If the number of partitions is large, we can get some churn calling cachedPartitions, + // so the result is cached. It is important to update this value whenever metadata is changed + cachedPartitionsResults map[string][maxPartitionIndex][]int32 + + lock sync.RWMutex // protects access to the maps that hold cluster state. +} + +// NewClient creates a new Client. It connects to one of the given broker addresses +// and uses that broker to automatically fetch metadata on the rest of the kafka cluster. If metadata cannot +// be retrieved from any of the given broker addresses, the client is not created. +func NewClient(addrs []string, conf *Config) (Client, error) { + Logger.Println("Initializing new client") + + if conf == nil { + conf = NewConfig() + } + + if err := conf.Validate(); err != nil { + return nil, err + } + + if len(addrs) < 1 { + return nil, ConfigurationError("You must provide at least one broker address") + } + + client := &client{ + conf: conf, + closer: make(chan none), + closed: make(chan none), + brokers: make(map[int32]*Broker), + metadata: make(map[string]map[int32]*PartitionMetadata), + metadataTopics: make(map[string]none), + cachedPartitionsResults: make(map[string][maxPartitionIndex][]int32), + coordinators: make(map[string]int32), + } + + random := rand.New(rand.NewSource(time.Now().UnixNano())) + for _, index := range random.Perm(len(addrs)) { + client.seedBrokers = append(client.seedBrokers, NewBroker(addrs[index])) + } + + if conf.Metadata.Full { + // do an initial fetch of all cluster metadata by specifying an empty list of topics + err := client.RefreshMetadata() + switch err { + case nil: + break + case ErrLeaderNotAvailable, ErrReplicaNotAvailable, ErrTopicAuthorizationFailed, ErrClusterAuthorizationFailed: + // indicates that maybe part of the cluster is down, but is not fatal to creating the client + Logger.Println(err) + default: + close(client.closed) // we haven't started the background updater yet, so we have to do this manually + _ = client.Close() + return nil, err + } + } + go withRecover(client.backgroundMetadataUpdater) + + Logger.Println("Successfully initialized new client") + + return client, nil +} + +func (client *client) Config() *Config { + return client.conf +} + +func (client *client) Brokers() []*Broker { + client.lock.RLock() + defer client.lock.RUnlock() + brokers := make([]*Broker, 0, len(client.brokers)) + for _, broker := range client.brokers { + brokers = append(brokers, broker) + } + return brokers +} + +func (client *client) InitProducerID() (*InitProducerIDResponse, error) { + var err error + for broker := client.any(); broker != nil; broker = client.any() { + req := &InitProducerIDRequest{} + + response, err := broker.InitProducerID(req) + switch err.(type) { + case nil: + return response, nil + default: + // some error, remove that broker and try again + Logger.Printf("Client got error from broker %d when issuing InitProducerID : %v\n", broker.ID(), err) + _ = broker.Close() + client.deregisterBroker(broker) + } + } + return nil, err +} + +func (client *client) Close() error { + if client.Closed() { + // Chances are this is being called from a defer() and the error will go unobserved + // so we go ahead and log the event in this case. + Logger.Printf("Close() called on already closed client") + return ErrClosedClient + } + + // shutdown and wait for the background thread before we take the lock, to avoid races + close(client.closer) + <-client.closed + + client.lock.Lock() + defer client.lock.Unlock() + Logger.Println("Closing Client") + + for _, broker := range client.brokers { + safeAsyncClose(broker) + } + + for _, broker := range client.seedBrokers { + safeAsyncClose(broker) + } + + client.brokers = nil + client.metadata = nil + client.metadataTopics = nil + + return nil +} + +func (client *client) Closed() bool { + client.lock.RLock() + defer client.lock.RUnlock() + + return client.brokers == nil +} + +func (client *client) Topics() ([]string, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + client.lock.RLock() + defer client.lock.RUnlock() + + ret := make([]string, 0, len(client.metadata)) + for topic := range client.metadata { + ret = append(ret, topic) + } + + return ret, nil +} + +func (client *client) MetadataTopics() ([]string, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + client.lock.RLock() + defer client.lock.RUnlock() + + ret := make([]string, 0, len(client.metadataTopics)) + for topic := range client.metadataTopics { + ret = append(ret, topic) + } + + return ret, nil +} + +func (client *client) Partitions(topic string) ([]int32, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + partitions := client.cachedPartitions(topic, allPartitions) + + if len(partitions) == 0 { + err := client.RefreshMetadata(topic) + if err != nil { + return nil, err + } + partitions = client.cachedPartitions(topic, allPartitions) + } + + // no partitions found after refresh metadata + if len(partitions) == 0 { + return nil, ErrUnknownTopicOrPartition + } + + return partitions, nil +} + +func (client *client) WritablePartitions(topic string) ([]int32, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + partitions := client.cachedPartitions(topic, writablePartitions) + + // len==0 catches when it's nil (no such topic) and the odd case when every single + // partition is undergoing leader election simultaneously. Callers have to be able to handle + // this function returning an empty slice (which is a valid return value) but catching it + // here the first time (note we *don't* catch it below where we return ErrUnknownTopicOrPartition) triggers + // a metadata refresh as a nicety so callers can just try again and don't have to manually + // trigger a refresh (otherwise they'd just keep getting a stale cached copy). + if len(partitions) == 0 { + err := client.RefreshMetadata(topic) + if err != nil { + return nil, err + } + partitions = client.cachedPartitions(topic, writablePartitions) + } + + if partitions == nil { + return nil, ErrUnknownTopicOrPartition + } + + return partitions, nil +} + +func (client *client) Replicas(topic string, partitionID int32) ([]int32, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + metadata := client.cachedMetadata(topic, partitionID) + + if metadata == nil { + err := client.RefreshMetadata(topic) + if err != nil { + return nil, err + } + metadata = client.cachedMetadata(topic, partitionID) + } + + if metadata == nil { + return nil, ErrUnknownTopicOrPartition + } + + if metadata.Err == ErrReplicaNotAvailable { + return dupInt32Slice(metadata.Replicas), metadata.Err + } + return dupInt32Slice(metadata.Replicas), nil +} + +func (client *client) InSyncReplicas(topic string, partitionID int32) ([]int32, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + metadata := client.cachedMetadata(topic, partitionID) + + if metadata == nil { + err := client.RefreshMetadata(topic) + if err != nil { + return nil, err + } + metadata = client.cachedMetadata(topic, partitionID) + } + + if metadata == nil { + return nil, ErrUnknownTopicOrPartition + } + + if metadata.Err == ErrReplicaNotAvailable { + return dupInt32Slice(metadata.Isr), metadata.Err + } + return dupInt32Slice(metadata.Isr), nil +} + +func (client *client) OfflineReplicas(topic string, partitionID int32) ([]int32, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + metadata := client.cachedMetadata(topic, partitionID) + + if metadata == nil { + err := client.RefreshMetadata(topic) + if err != nil { + return nil, err + } + metadata = client.cachedMetadata(topic, partitionID) + } + + if metadata == nil { + return nil, ErrUnknownTopicOrPartition + } + + if metadata.Err == ErrReplicaNotAvailable { + return dupInt32Slice(metadata.OfflineReplicas), metadata.Err + } + return dupInt32Slice(metadata.OfflineReplicas), nil +} + +func (client *client) Leader(topic string, partitionID int32) (*Broker, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + leader, err := client.cachedLeader(topic, partitionID) + + if leader == nil { + err = client.RefreshMetadata(topic) + if err != nil { + return nil, err + } + leader, err = client.cachedLeader(topic, partitionID) + } + + return leader, err +} + +func (client *client) RefreshMetadata(topics ...string) error { + if client.Closed() { + return ErrClosedClient + } + + // Prior to 0.8.2, Kafka will throw exceptions on an empty topic and not return a proper + // error. This handles the case by returning an error instead of sending it + // off to Kafka. See: https://github.com/Shopify/sarama/pull/38#issuecomment-26362310 + for _, topic := range topics { + if len(topic) == 0 { + return ErrInvalidTopic // this is the error that 0.8.2 and later correctly return + } + } + + deadline := time.Time{} + if client.conf.Metadata.Timeout > 0 { + deadline = time.Now().Add(client.conf.Metadata.Timeout) + } + return client.tryRefreshMetadata(topics, client.conf.Metadata.Retry.Max, deadline) +} + +func (client *client) GetOffset(topic string, partitionID int32, time int64) (int64, error) { + if client.Closed() { + return -1, ErrClosedClient + } + + offset, err := client.getOffset(topic, partitionID, time) + + if err != nil { + if err := client.RefreshMetadata(topic); err != nil { + return -1, err + } + return client.getOffset(topic, partitionID, time) + } + + return offset, err +} + +func (client *client) Controller() (*Broker, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + if !client.conf.Version.IsAtLeast(V0_10_0_0) { + return nil, ErrUnsupportedVersion + } + + controller := client.cachedController() + if controller == nil { + if err := client.refreshMetadata(); err != nil { + return nil, err + } + controller = client.cachedController() + } + + if controller == nil { + return nil, ErrControllerNotAvailable + } + + _ = controller.Open(client.conf) + return controller, nil +} + +// deregisterController removes the cached controllerID +func (client *client) deregisterController() { + client.lock.Lock() + defer client.lock.Unlock() + delete(client.brokers, client.controllerID) +} + +// RefreshController retrieves the cluster controller from fresh metadata +// and stores it in the local cache. Requires Kafka 0.10 or higher. +func (client *client) RefreshController() (*Broker, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + client.deregisterController() + + if err := client.refreshMetadata(); err != nil { + return nil, err + } + + controller := client.cachedController() + if controller == nil { + return nil, ErrControllerNotAvailable + } + + _ = controller.Open(client.conf) + return controller, nil +} + +func (client *client) Coordinator(consumerGroup string) (*Broker, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + coordinator := client.cachedCoordinator(consumerGroup) + + if coordinator == nil { + if err := client.RefreshCoordinator(consumerGroup); err != nil { + return nil, err + } + coordinator = client.cachedCoordinator(consumerGroup) + } + + if coordinator == nil { + return nil, ErrConsumerCoordinatorNotAvailable + } + + _ = coordinator.Open(client.conf) + return coordinator, nil +} + +func (client *client) RefreshCoordinator(consumerGroup string) error { + if client.Closed() { + return ErrClosedClient + } + + response, err := client.getConsumerMetadata(consumerGroup, client.conf.Metadata.Retry.Max) + if err != nil { + return err + } + + client.lock.Lock() + defer client.lock.Unlock() + client.registerBroker(response.Coordinator) + client.coordinators[consumerGroup] = response.Coordinator.ID() + return nil +} + +// private broker management helpers + +// registerBroker makes sure a broker received by a Metadata or Coordinator request is registered +// in the brokers map. It returns the broker that is registered, which may be the provided broker, +// or a previously registered Broker instance. You must hold the write lock before calling this function. +func (client *client) registerBroker(broker *Broker) { + if client.brokers == nil { + Logger.Printf("cannot register broker #%d at %s, client already closed", broker.ID(), broker.Addr()) + return + } + + if client.brokers[broker.ID()] == nil { + client.brokers[broker.ID()] = broker + Logger.Printf("client/brokers registered new broker #%d at %s", broker.ID(), broker.Addr()) + } else if broker.Addr() != client.brokers[broker.ID()].Addr() { + safeAsyncClose(client.brokers[broker.ID()]) + client.brokers[broker.ID()] = broker + Logger.Printf("client/brokers replaced registered broker #%d with %s", broker.ID(), broker.Addr()) + } +} + +// deregisterBroker removes a broker from the seedsBroker list, and if it's +// not the seedbroker, removes it from brokers map completely. +func (client *client) deregisterBroker(broker *Broker) { + client.lock.Lock() + defer client.lock.Unlock() + + if len(client.seedBrokers) > 0 && broker == client.seedBrokers[0] { + client.deadSeeds = append(client.deadSeeds, broker) + client.seedBrokers = client.seedBrokers[1:] + } else { + // we do this so that our loop in `tryRefreshMetadata` doesn't go on forever, + // but we really shouldn't have to; once that loop is made better this case can be + // removed, and the function generally can be renamed from `deregisterBroker` to + // `nextSeedBroker` or something + Logger.Printf("client/brokers deregistered broker #%d at %s", broker.ID(), broker.Addr()) + delete(client.brokers, broker.ID()) + } +} + +func (client *client) resurrectDeadBrokers() { + client.lock.Lock() + defer client.lock.Unlock() + + Logger.Printf("client/brokers resurrecting %d dead seed brokers", len(client.deadSeeds)) + client.seedBrokers = append(client.seedBrokers, client.deadSeeds...) + client.deadSeeds = nil +} + +func (client *client) any() *Broker { + client.lock.RLock() + defer client.lock.RUnlock() + + if len(client.seedBrokers) > 0 { + _ = client.seedBrokers[0].Open(client.conf) + return client.seedBrokers[0] + } + + // not guaranteed to be random *or* deterministic + for _, broker := range client.brokers { + _ = broker.Open(client.conf) + return broker + } + + return nil +} + +// private caching/lazy metadata helpers + +type partitionType int + +const ( + allPartitions partitionType = iota + writablePartitions + // If you add any more types, update the partition cache in update() + + // Ensure this is the last partition type value + maxPartitionIndex +) + +func (client *client) cachedMetadata(topic string, partitionID int32) *PartitionMetadata { + client.lock.RLock() + defer client.lock.RUnlock() + + partitions := client.metadata[topic] + if partitions != nil { + return partitions[partitionID] + } + + return nil +} + +func (client *client) cachedPartitions(topic string, partitionSet partitionType) []int32 { + client.lock.RLock() + defer client.lock.RUnlock() + + partitions, exists := client.cachedPartitionsResults[topic] + + if !exists { + return nil + } + return partitions[partitionSet] +} + +func (client *client) setPartitionCache(topic string, partitionSet partitionType) []int32 { + partitions := client.metadata[topic] + + if partitions == nil { + return nil + } + + ret := make([]int32, 0, len(partitions)) + for _, partition := range partitions { + if partitionSet == writablePartitions && partition.Err == ErrLeaderNotAvailable { + continue + } + ret = append(ret, partition.ID) + } + + sort.Sort(int32Slice(ret)) + return ret +} + +func (client *client) cachedLeader(topic string, partitionID int32) (*Broker, error) { + client.lock.RLock() + defer client.lock.RUnlock() + + partitions := client.metadata[topic] + if partitions != nil { + metadata, ok := partitions[partitionID] + if ok { + if metadata.Err == ErrLeaderNotAvailable { + return nil, ErrLeaderNotAvailable + } + b := client.brokers[metadata.Leader] + if b == nil { + return nil, ErrLeaderNotAvailable + } + _ = b.Open(client.conf) + return b, nil + } + } + + return nil, ErrUnknownTopicOrPartition +} + +func (client *client) getOffset(topic string, partitionID int32, time int64) (int64, error) { + broker, err := client.Leader(topic, partitionID) + if err != nil { + return -1, err + } + + request := &OffsetRequest{} + if client.conf.Version.IsAtLeast(V0_10_1_0) { + request.Version = 1 + } + request.AddBlock(topic, partitionID, time, 1) + + response, err := broker.GetAvailableOffsets(request) + if err != nil { + _ = broker.Close() + return -1, err + } + + block := response.GetBlock(topic, partitionID) + if block == nil { + _ = broker.Close() + return -1, ErrIncompleteResponse + } + if block.Err != ErrNoError { + return -1, block.Err + } + if len(block.Offsets) != 1 { + return -1, ErrOffsetOutOfRange + } + + return block.Offsets[0], nil +} + +// core metadata update logic + +func (client *client) backgroundMetadataUpdater() { + defer close(client.closed) + + if client.conf.Metadata.RefreshFrequency == time.Duration(0) { + return + } + + ticker := time.NewTicker(client.conf.Metadata.RefreshFrequency) + defer ticker.Stop() + + for { + select { + case <-ticker.C: + if err := client.refreshMetadata(); err != nil { + Logger.Println("Client background metadata update:", err) + } + case <-client.closer: + return + } + } +} + +func (client *client) refreshMetadata() error { + topics := []string{} + + if !client.conf.Metadata.Full { + if specificTopics, err := client.MetadataTopics(); err != nil { + return err + } else if len(specificTopics) == 0 { + return ErrNoTopicsToUpdateMetadata + } else { + topics = specificTopics + } + } + + if err := client.RefreshMetadata(topics...); err != nil { + return err + } + + return nil +} + +func (client *client) tryRefreshMetadata(topics []string, attemptsRemaining int, deadline time.Time) error { + pastDeadline := func(backoff time.Duration) bool { + if !deadline.IsZero() && time.Now().Add(backoff).After(deadline) { + // we are past the deadline + return true + } + return false + } + retry := func(err error) error { + if attemptsRemaining > 0 { + backoff := client.computeBackoff(attemptsRemaining) + if pastDeadline(backoff) { + Logger.Println("client/metadata skipping last retries as we would go past the metadata timeout") + return err + } + Logger.Printf("client/metadata retrying after %dms... (%d attempts remaining)\n", client.conf.Metadata.Retry.Backoff/time.Millisecond, attemptsRemaining) + if backoff > 0 { + time.Sleep(backoff) + } + return client.tryRefreshMetadata(topics, attemptsRemaining-1, deadline) + } + return err + } + + broker := client.any() + for ; broker != nil && !pastDeadline(0); broker = client.any() { + allowAutoTopicCreation := true + if len(topics) > 0 { + Logger.Printf("client/metadata fetching metadata for %v from broker %s\n", topics, broker.addr) + } else { + allowAutoTopicCreation = false + Logger.Printf("client/metadata fetching metadata for all topics from broker %s\n", broker.addr) + } + + req := &MetadataRequest{Topics: topics, AllowAutoTopicCreation: allowAutoTopicCreation} + if client.conf.Version.IsAtLeast(V1_0_0_0) { + req.Version = 5 + } else if client.conf.Version.IsAtLeast(V0_10_0_0) { + req.Version = 1 + } + response, err := broker.GetMetadata(req) + switch err.(type) { + case nil: + allKnownMetaData := len(topics) == 0 + // valid response, use it + shouldRetry, err := client.updateMetadata(response, allKnownMetaData) + if shouldRetry { + Logger.Println("client/metadata found some partitions to be leaderless") + return retry(err) // note: err can be nil + } + return err + + case PacketEncodingError: + // didn't even send, return the error + return err + + case KError: + // if SASL auth error return as this _should_ be a non retryable err for all brokers + if err.(KError) == ErrSASLAuthenticationFailed { + Logger.Println("client/metadata failed SASL authentication") + return err + } + + if err.(KError) == ErrTopicAuthorizationFailed { + Logger.Println("client is not authorized to access this topic. The topics were: ", topics) + return err + } + // else remove that broker and try again + Logger.Printf("client/metadata got error from broker %d while fetching metadata: %v\n", broker.ID(), err) + _ = broker.Close() + client.deregisterBroker(broker) + + default: + // some other error, remove that broker and try again + Logger.Printf("client/metadata got error from broker %d while fetching metadata: %v\n", broker.ID(), err) + _ = broker.Close() + client.deregisterBroker(broker) + } + } + + if broker != nil { + Logger.Printf("client/metadata not fetching metadata from broker %s as we would go past the metadata timeout\n", broker.addr) + return retry(ErrOutOfBrokers) + } + + Logger.Println("client/metadata no available broker to send metadata request to") + client.resurrectDeadBrokers() + return retry(ErrOutOfBrokers) +} + +// if no fatal error, returns a list of topics that need retrying due to ErrLeaderNotAvailable +func (client *client) updateMetadata(data *MetadataResponse, allKnownMetaData bool) (retry bool, err error) { + if client.Closed() { + return + } + + client.lock.Lock() + defer client.lock.Unlock() + + // For all the brokers we received: + // - if it is a new ID, save it + // - if it is an existing ID, but the address we have is stale, discard the old one and save it + // - otherwise ignore it, replacing our existing one would just bounce the connection + for _, broker := range data.Brokers { + client.registerBroker(broker) + } + + client.controllerID = data.ControllerID + + if allKnownMetaData { + client.metadata = make(map[string]map[int32]*PartitionMetadata) + client.metadataTopics = make(map[string]none) + client.cachedPartitionsResults = make(map[string][maxPartitionIndex][]int32) + } + for _, topic := range data.Topics { + // topics must be added firstly to `metadataTopics` to guarantee that all + // requested topics must be recorded to keep them trackable for periodically + // metadata refresh. + if _, exists := client.metadataTopics[topic.Name]; !exists { + client.metadataTopics[topic.Name] = none{} + } + delete(client.metadata, topic.Name) + delete(client.cachedPartitionsResults, topic.Name) + + switch topic.Err { + case ErrNoError: + // no-op + case ErrInvalidTopic, ErrTopicAuthorizationFailed: // don't retry, don't store partial results + err = topic.Err + continue + case ErrUnknownTopicOrPartition: // retry, do not store partial partition results + err = topic.Err + retry = true + continue + case ErrLeaderNotAvailable: // retry, but store partial partition results + retry = true + default: // don't retry, don't store partial results + Logger.Printf("Unexpected topic-level metadata error: %s", topic.Err) + err = topic.Err + continue + } + + client.metadata[topic.Name] = make(map[int32]*PartitionMetadata, len(topic.Partitions)) + for _, partition := range topic.Partitions { + client.metadata[topic.Name][partition.ID] = partition + if partition.Err == ErrLeaderNotAvailable { + retry = true + } + } + + var partitionCache [maxPartitionIndex][]int32 + partitionCache[allPartitions] = client.setPartitionCache(topic.Name, allPartitions) + partitionCache[writablePartitions] = client.setPartitionCache(topic.Name, writablePartitions) + client.cachedPartitionsResults[topic.Name] = partitionCache + } + + return +} + +func (client *client) cachedCoordinator(consumerGroup string) *Broker { + client.lock.RLock() + defer client.lock.RUnlock() + if coordinatorID, ok := client.coordinators[consumerGroup]; ok { + return client.brokers[coordinatorID] + } + return nil +} + +func (client *client) cachedController() *Broker { + client.lock.RLock() + defer client.lock.RUnlock() + + return client.brokers[client.controllerID] +} + +func (client *client) computeBackoff(attemptsRemaining int) time.Duration { + if client.conf.Metadata.Retry.BackoffFunc != nil { + maxRetries := client.conf.Metadata.Retry.Max + retries := maxRetries - attemptsRemaining + return client.conf.Metadata.Retry.BackoffFunc(retries, maxRetries) + } + return client.conf.Metadata.Retry.Backoff +} + +func (client *client) getConsumerMetadata(consumerGroup string, attemptsRemaining int) (*FindCoordinatorResponse, error) { + retry := func(err error) (*FindCoordinatorResponse, error) { + if attemptsRemaining > 0 { + backoff := client.computeBackoff(attemptsRemaining) + Logger.Printf("client/coordinator retrying after %dms... (%d attempts remaining)\n", backoff/time.Millisecond, attemptsRemaining) + time.Sleep(backoff) + return client.getConsumerMetadata(consumerGroup, attemptsRemaining-1) + } + return nil, err + } + + for broker := client.any(); broker != nil; broker = client.any() { + Logger.Printf("client/coordinator requesting coordinator for consumergroup %s from %s\n", consumerGroup, broker.Addr()) + + request := new(FindCoordinatorRequest) + request.CoordinatorKey = consumerGroup + request.CoordinatorType = CoordinatorGroup + + response, err := broker.FindCoordinator(request) + + if err != nil { + Logger.Printf("client/coordinator request to broker %s failed: %s\n", broker.Addr(), err) + + switch err.(type) { + case PacketEncodingError: + return nil, err + default: + _ = broker.Close() + client.deregisterBroker(broker) + continue + } + } + + switch response.Err { + case ErrNoError: + Logger.Printf("client/coordinator coordinator for consumergroup %s is #%d (%s)\n", consumerGroup, response.Coordinator.ID(), response.Coordinator.Addr()) + return response, nil + + case ErrConsumerCoordinatorNotAvailable: + Logger.Printf("client/coordinator coordinator for consumer group %s is not available\n", consumerGroup) + + // This is very ugly, but this scenario will only happen once per cluster. + // The __consumer_offsets topic only has to be created one time. + // The number of partitions not configurable, but partition 0 should always exist. + if _, err := client.Leader("__consumer_offsets", 0); err != nil { + Logger.Printf("client/coordinator the __consumer_offsets topic is not initialized completely yet. Waiting 2 seconds...\n") + time.Sleep(2 * time.Second) + } + + return retry(ErrConsumerCoordinatorNotAvailable) + case ErrGroupAuthorizationFailed: + Logger.Printf("client was not authorized to access group %s while attempting to find coordinator", consumerGroup) + return retry(ErrGroupAuthorizationFailed) + + default: + return nil, response.Err + } + } + + Logger.Println("client/coordinator no available broker to send consumer metadata request to") + client.resurrectDeadBrokers() + return retry(ErrOutOfBrokers) +} + +// nopCloserClient embeds an existing Client, but disables +// the Close method (yet all other methods pass +// through unchanged). This is for use in larger structs +// where it is undesirable to close the client that was +// passed in by the caller. +type nopCloserClient struct { + Client +} + +// Close intercepts and purposely does not call the underlying +// client's Close() method. +func (ncc *nopCloserClient) Close() error { + return nil +} diff --git a/vendor/github.com/Shopify/sarama/compress.go b/vendor/github.com/Shopify/sarama/compress.go new file mode 100644 index 0000000..9247c35 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/compress.go @@ -0,0 +1,75 @@ +package sarama + +import ( + "bytes" + "compress/gzip" + "fmt" + "sync" + + "github.com/eapache/go-xerial-snappy" + "github.com/pierrec/lz4" +) + +var ( + lz4WriterPool = sync.Pool{ + New: func() interface{} { + return lz4.NewWriter(nil) + }, + } + + gzipWriterPool = sync.Pool{ + New: func() interface{} { + return gzip.NewWriter(nil) + }, + } +) + +func compress(cc CompressionCodec, level int, data []byte) ([]byte, error) { + switch cc { + case CompressionNone: + return data, nil + case CompressionGZIP: + var ( + err error + buf bytes.Buffer + writer *gzip.Writer + ) + if level != CompressionLevelDefault { + writer, err = gzip.NewWriterLevel(&buf, level) + if err != nil { + return nil, err + } + } else { + writer = gzipWriterPool.Get().(*gzip.Writer) + defer gzipWriterPool.Put(writer) + writer.Reset(&buf) + } + if _, err := writer.Write(data); err != nil { + return nil, err + } + if err := writer.Close(); err != nil { + return nil, err + } + return buf.Bytes(), nil + case CompressionSnappy: + return snappy.Encode(data), nil + case CompressionLZ4: + writer := lz4WriterPool.Get().(*lz4.Writer) + defer lz4WriterPool.Put(writer) + + var buf bytes.Buffer + writer.Reset(&buf) + + if _, err := writer.Write(data); err != nil { + return nil, err + } + if err := writer.Close(); err != nil { + return nil, err + } + return buf.Bytes(), nil + case CompressionZSTD: + return zstdCompress(nil, data) + default: + return nil, PacketEncodingError{fmt.Sprintf("unsupported compression codec (%d)", cc)} + } +} diff --git a/vendor/github.com/Shopify/sarama/config.go b/vendor/github.com/Shopify/sarama/config.go new file mode 100644 index 0000000..7495200 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/config.go @@ -0,0 +1,733 @@ +package sarama + +import ( + "compress/gzip" + "crypto/tls" + "fmt" + "io/ioutil" + "net" + "regexp" + "time" + + "github.com/rcrowley/go-metrics" + "golang.org/x/net/proxy" +) + +const defaultClientID = "sarama" + +var validID = regexp.MustCompile(`\A[A-Za-z0-9._-]+\z`) + +// Config is used to pass multiple configuration options to Sarama's constructors. +type Config struct { + // Admin is the namespace for ClusterAdmin properties used by the administrative Kafka client. + Admin struct { + Retry struct { + // The total number of times to retry sending (retriable) admin requests (default 5). + // Similar to the `retries` setting of the JVM AdminClientConfig. + Max int + // Backoff time between retries of a failed request (default 100ms) + Backoff time.Duration + } + // The maximum duration the administrative Kafka client will wait for ClusterAdmin operations, + // including topics, brokers, configurations and ACLs (defaults to 3 seconds). + Timeout time.Duration + } + + // Net is the namespace for network-level properties used by the Broker, and + // shared by the Client/Producer/Consumer. + Net struct { + // How many outstanding requests a connection is allowed to have before + // sending on it blocks (default 5). + MaxOpenRequests int + + // All three of the below configurations are similar to the + // `socket.timeout.ms` setting in JVM kafka. All of them default + // to 30 seconds. + DialTimeout time.Duration // How long to wait for the initial connection. + ReadTimeout time.Duration // How long to wait for a response. + WriteTimeout time.Duration // How long to wait for a transmit. + + TLS struct { + // Whether or not to use TLS when connecting to the broker + // (defaults to false). + Enable bool + // The TLS configuration to use for secure connections if + // enabled (defaults to nil). + Config *tls.Config + } + + // SASL based authentication with broker. While there are multiple SASL authentication methods + // the current implementation is limited to plaintext (SASL/PLAIN) authentication + SASL struct { + // Whether or not to use SASL authentication when connecting to the broker + // (defaults to false). + Enable bool + // SASLMechanism is the name of the enabled SASL mechanism. + // Possible values: OAUTHBEARER, PLAIN (defaults to PLAIN). + Mechanism SASLMechanism + // Version is the SASL Protocol Version to use + // Kafka > 1.x should use V1, except on Azure EventHub which use V0 + Version int16 + // Whether or not to send the Kafka SASL handshake first if enabled + // (defaults to true). You should only set this to false if you're using + // a non-Kafka SASL proxy. + Handshake bool + // AuthIdentity is an (optional) authorization identity (authzid) to + // use for SASL/PLAIN authentication (if different from User) when + // an authenticated user is permitted to act as the presented + // alternative user. See RFC4616 for details. + AuthIdentity string + // User is the authentication identity (authcid) to present for + // SASL/PLAIN or SASL/SCRAM authentication + User string + // Password for SASL/PLAIN authentication + Password string + // authz id used for SASL/SCRAM authentication + SCRAMAuthzID string + // SCRAMClientGeneratorFunc is a generator of a user provided implementation of a SCRAM + // client used to perform the SCRAM exchange with the server. + SCRAMClientGeneratorFunc func() SCRAMClient + // TokenProvider is a user-defined callback for generating + // access tokens for SASL/OAUTHBEARER auth. See the + // AccessTokenProvider interface docs for proper implementation + // guidelines. + TokenProvider AccessTokenProvider + + GSSAPI GSSAPIConfig + } + + // KeepAlive specifies the keep-alive period for an active network connection. + // If zero, keep-alives are disabled. (default is 0: disabled). + KeepAlive time.Duration + + // LocalAddr is the local address to use when dialing an + // address. The address must be of a compatible type for the + // network being dialed. + // If nil, a local address is automatically chosen. + LocalAddr net.Addr + + Proxy struct { + // Whether or not to use proxy when connecting to the broker + // (defaults to false). + Enable bool + // The proxy dialer to use enabled (defaults to nil). + Dialer proxy.Dialer + } + } + + // Metadata is the namespace for metadata management properties used by the + // Client, and shared by the Producer/Consumer. + Metadata struct { + Retry struct { + // The total number of times to retry a metadata request when the + // cluster is in the middle of a leader election (default 3). + Max int + // How long to wait for leader election to occur before retrying + // (default 250ms). Similar to the JVM's `retry.backoff.ms`. + Backoff time.Duration + // Called to compute backoff time dynamically. Useful for implementing + // more sophisticated backoff strategies. This takes precedence over + // `Backoff` if set. + BackoffFunc func(retries, maxRetries int) time.Duration + } + // How frequently to refresh the cluster metadata in the background. + // Defaults to 10 minutes. Set to 0 to disable. Similar to + // `topic.metadata.refresh.interval.ms` in the JVM version. + RefreshFrequency time.Duration + + // Whether to maintain a full set of metadata for all topics, or just + // the minimal set that has been necessary so far. The full set is simpler + // and usually more convenient, but can take up a substantial amount of + // memory if you have many topics and partitions. Defaults to true. + Full bool + + // How long to wait for a successful metadata response. + // Disabled by default which means a metadata request against an unreachable + // cluster (all brokers are unreachable or unresponsive) can take up to + // `Net.[Dial|Read]Timeout * BrokerCount * (Metadata.Retry.Max + 1) + Metadata.Retry.Backoff * Metadata.Retry.Max` + // to fail. + Timeout time.Duration + } + + // Producer is the namespace for configuration related to producing messages, + // used by the Producer. + Producer struct { + // The maximum permitted size of a message (defaults to 1000000). Should be + // set equal to or smaller than the broker's `message.max.bytes`. + MaxMessageBytes int + // The level of acknowledgement reliability needed from the broker (defaults + // to WaitForLocal). Equivalent to the `request.required.acks` setting of the + // JVM producer. + RequiredAcks RequiredAcks + // The maximum duration the broker will wait the receipt of the number of + // RequiredAcks (defaults to 10 seconds). This is only relevant when + // RequiredAcks is set to WaitForAll or a number > 1. Only supports + // millisecond resolution, nanoseconds will be truncated. Equivalent to + // the JVM producer's `request.timeout.ms` setting. + Timeout time.Duration + // The type of compression to use on messages (defaults to no compression). + // Similar to `compression.codec` setting of the JVM producer. + Compression CompressionCodec + // The level of compression to use on messages. The meaning depends + // on the actual compression type used and defaults to default compression + // level for the codec. + CompressionLevel int + // Generates partitioners for choosing the partition to send messages to + // (defaults to hashing the message key). Similar to the `partitioner.class` + // setting for the JVM producer. + Partitioner PartitionerConstructor + // If enabled, the producer will ensure that exactly one copy of each message is + // written. + Idempotent bool + + // Return specifies what channels will be populated. If they are set to true, + // you must read from the respective channels to prevent deadlock. If, + // however, this config is used to create a `SyncProducer`, both must be set + // to true and you shall not read from the channels since the producer does + // this internally. + Return struct { + // If enabled, successfully delivered messages will be returned on the + // Successes channel (default disabled). + Successes bool + + // If enabled, messages that failed to deliver will be returned on the + // Errors channel, including error (default enabled). + Errors bool + } + + // The following config options control how often messages are batched up and + // sent to the broker. By default, messages are sent as fast as possible, and + // all messages received while the current batch is in-flight are placed + // into the subsequent batch. + Flush struct { + // The best-effort number of bytes needed to trigger a flush. Use the + // global sarama.MaxRequestSize to set a hard upper limit. + Bytes int + // The best-effort number of messages needed to trigger a flush. Use + // `MaxMessages` to set a hard upper limit. + Messages int + // The best-effort frequency of flushes. Equivalent to + // `queue.buffering.max.ms` setting of JVM producer. + Frequency time.Duration + // The maximum number of messages the producer will send in a single + // broker request. Defaults to 0 for unlimited. Similar to + // `queue.buffering.max.messages` in the JVM producer. + MaxMessages int + } + + Retry struct { + // The total number of times to retry sending a message (default 3). + // Similar to the `message.send.max.retries` setting of the JVM producer. + Max int + // How long to wait for the cluster to settle between retries + // (default 100ms). Similar to the `retry.backoff.ms` setting of the + // JVM producer. + Backoff time.Duration + // Called to compute backoff time dynamically. Useful for implementing + // more sophisticated backoff strategies. This takes precedence over + // `Backoff` if set. + BackoffFunc func(retries, maxRetries int) time.Duration + } + } + + // Consumer is the namespace for configuration related to consuming messages, + // used by the Consumer. + Consumer struct { + + // Group is the namespace for configuring consumer group. + Group struct { + Session struct { + // The timeout used to detect consumer failures when using Kafka's group management facility. + // The consumer sends periodic heartbeats to indicate its liveness to the broker. + // If no heartbeats are received by the broker before the expiration of this session timeout, + // then the broker will remove this consumer from the group and initiate a rebalance. + // Note that the value must be in the allowable range as configured in the broker configuration + // by `group.min.session.timeout.ms` and `group.max.session.timeout.ms` (default 10s) + Timeout time.Duration + } + Heartbeat struct { + // The expected time between heartbeats to the consumer coordinator when using Kafka's group + // management facilities. Heartbeats are used to ensure that the consumer's session stays active and + // to facilitate rebalancing when new consumers join or leave the group. + // The value must be set lower than Consumer.Group.Session.Timeout, but typically should be set no + // higher than 1/3 of that value. + // It can be adjusted even lower to control the expected time for normal rebalances (default 3s) + Interval time.Duration + } + Rebalance struct { + // Strategy for allocating topic partitions to members (default BalanceStrategyRange) + Strategy BalanceStrategy + // The maximum allowed time for each worker to join the group once a rebalance has begun. + // This is basically a limit on the amount of time needed for all tasks to flush any pending + // data and commit offsets. If the timeout is exceeded, then the worker will be removed from + // the group, which will cause offset commit failures (default 60s). + Timeout time.Duration + + Retry struct { + // When a new consumer joins a consumer group the set of consumers attempt to "rebalance" + // the load to assign partitions to each consumer. If the set of consumers changes while + // this assignment is taking place the rebalance will fail and retry. This setting controls + // the maximum number of attempts before giving up (default 4). + Max int + // Backoff time between retries during rebalance (default 2s) + Backoff time.Duration + } + } + Member struct { + // Custom metadata to include when joining the group. The user data for all joined members + // can be retrieved by sending a DescribeGroupRequest to the broker that is the + // coordinator for the group. + UserData []byte + } + } + + Retry struct { + // How long to wait after a failing to read from a partition before + // trying again (default 2s). + Backoff time.Duration + // Called to compute backoff time dynamically. Useful for implementing + // more sophisticated backoff strategies. This takes precedence over + // `Backoff` if set. + BackoffFunc func(retries int) time.Duration + } + + // Fetch is the namespace for controlling how many bytes are retrieved by any + // given request. + Fetch struct { + // The minimum number of message bytes to fetch in a request - the broker + // will wait until at least this many are available. The default is 1, + // as 0 causes the consumer to spin when no messages are available. + // Equivalent to the JVM's `fetch.min.bytes`. + Min int32 + // The default number of message bytes to fetch from the broker in each + // request (default 1MB). This should be larger than the majority of + // your messages, or else the consumer will spend a lot of time + // negotiating sizes and not actually consuming. Similar to the JVM's + // `fetch.message.max.bytes`. + Default int32 + // The maximum number of message bytes to fetch from the broker in a + // single request. Messages larger than this will return + // ErrMessageTooLarge and will not be consumable, so you must be sure + // this is at least as large as your largest message. Defaults to 0 + // (no limit). Similar to the JVM's `fetch.message.max.bytes`. The + // global `sarama.MaxResponseSize` still applies. + Max int32 + } + // The maximum amount of time the broker will wait for Consumer.Fetch.Min + // bytes to become available before it returns fewer than that anyways. The + // default is 250ms, since 0 causes the consumer to spin when no events are + // available. 100-500ms is a reasonable range for most cases. Kafka only + // supports precision up to milliseconds; nanoseconds will be truncated. + // Equivalent to the JVM's `fetch.wait.max.ms`. + MaxWaitTime time.Duration + + // The maximum amount of time the consumer expects a message takes to + // process for the user. If writing to the Messages channel takes longer + // than this, that partition will stop fetching more messages until it + // can proceed again. + // Note that, since the Messages channel is buffered, the actual grace time is + // (MaxProcessingTime * ChannelBufferSize). Defaults to 100ms. + // If a message is not written to the Messages channel between two ticks + // of the expiryTicker then a timeout is detected. + // Using a ticker instead of a timer to detect timeouts should typically + // result in many fewer calls to Timer functions which may result in a + // significant performance improvement if many messages are being sent + // and timeouts are infrequent. + // The disadvantage of using a ticker instead of a timer is that + // timeouts will be less accurate. That is, the effective timeout could + // be between `MaxProcessingTime` and `2 * MaxProcessingTime`. For + // example, if `MaxProcessingTime` is 100ms then a delay of 180ms + // between two messages being sent may not be recognized as a timeout. + MaxProcessingTime time.Duration + + // Return specifies what channels will be populated. If they are set to true, + // you must read from them to prevent deadlock. + Return struct { + // If enabled, any errors that occurred while consuming are returned on + // the Errors channel (default disabled). + Errors bool + } + + // Offsets specifies configuration for how and when to commit consumed + // offsets. This currently requires the manual use of an OffsetManager + // but will eventually be automated. + Offsets struct { + // Deprecated: CommitInterval exists for historical compatibility + // and should not be used. Please use Consumer.Offsets.AutoCommit + CommitInterval time.Duration + + // AutoCommit specifies configuration for commit messages automatically. + AutoCommit struct { + // Whether or not to auto-commit updated offsets back to the broker. + // (default enabled). + Enable bool + + // How frequently to commit updated offsets. Ineffective unless + // auto-commit is enabled (default 1s) + Interval time.Duration + } + + // The initial offset to use if no offset was previously committed. + // Should be OffsetNewest or OffsetOldest. Defaults to OffsetNewest. + Initial int64 + + // The retention duration for committed offsets. If zero, disabled + // (in which case the `offsets.retention.minutes` option on the + // broker will be used). Kafka only supports precision up to + // milliseconds; nanoseconds will be truncated. Requires Kafka + // broker version 0.9.0 or later. + // (default is 0: disabled). + Retention time.Duration + + Retry struct { + // The total number of times to retry failing commit + // requests during OffsetManager shutdown (default 3). + Max int + } + } + + // IsolationLevel support 2 mode: + // - use `ReadUncommitted` (default) to consume and return all messages in message channel + // - use `ReadCommitted` to hide messages that are part of an aborted transaction + IsolationLevel IsolationLevel + } + + // A user-provided string sent with every request to the brokers for logging, + // debugging, and auditing purposes. Defaults to "sarama", but you should + // probably set it to something specific to your application. + ClientID string + // The number of events to buffer in internal and external channels. This + // permits the producer and consumer to continue processing some messages + // in the background while user code is working, greatly improving throughput. + // Defaults to 256. + ChannelBufferSize int + // The version of Kafka that Sarama will assume it is running against. + // Defaults to the oldest supported stable version. Since Kafka provides + // backwards-compatibility, setting it to a version older than you have + // will not break anything, although it may prevent you from using the + // latest features. Setting it to a version greater than you are actually + // running may lead to random breakage. + Version KafkaVersion + // The registry to define metrics into. + // Defaults to a local registry. + // If you want to disable metrics gathering, set "metrics.UseNilMetrics" to "true" + // prior to starting Sarama. + // See Examples on how to use the metrics registry + MetricRegistry metrics.Registry +} + +// NewConfig returns a new configuration instance with sane defaults. +func NewConfig() *Config { + c := &Config{} + + c.Admin.Retry.Max = 5 + c.Admin.Retry.Backoff = 100 * time.Millisecond + c.Admin.Timeout = 3 * time.Second + + c.Net.MaxOpenRequests = 5 + c.Net.DialTimeout = 30 * time.Second + c.Net.ReadTimeout = 30 * time.Second + c.Net.WriteTimeout = 30 * time.Second + c.Net.SASL.Handshake = true + c.Net.SASL.Version = SASLHandshakeV0 + + c.Metadata.Retry.Max = 3 + c.Metadata.Retry.Backoff = 250 * time.Millisecond + c.Metadata.RefreshFrequency = 10 * time.Minute + c.Metadata.Full = true + + c.Producer.MaxMessageBytes = 1000000 + c.Producer.RequiredAcks = WaitForLocal + c.Producer.Timeout = 10 * time.Second + c.Producer.Partitioner = NewHashPartitioner + c.Producer.Retry.Max = 3 + c.Producer.Retry.Backoff = 100 * time.Millisecond + c.Producer.Return.Errors = true + c.Producer.CompressionLevel = CompressionLevelDefault + + c.Consumer.Fetch.Min = 1 + c.Consumer.Fetch.Default = 1024 * 1024 + c.Consumer.Retry.Backoff = 2 * time.Second + c.Consumer.MaxWaitTime = 250 * time.Millisecond + c.Consumer.MaxProcessingTime = 100 * time.Millisecond + c.Consumer.Return.Errors = false + c.Consumer.Offsets.AutoCommit.Enable = true + c.Consumer.Offsets.AutoCommit.Interval = 1 * time.Second + c.Consumer.Offsets.Initial = OffsetNewest + c.Consumer.Offsets.Retry.Max = 3 + + c.Consumer.Group.Session.Timeout = 10 * time.Second + c.Consumer.Group.Heartbeat.Interval = 3 * time.Second + c.Consumer.Group.Rebalance.Strategy = BalanceStrategyRange + c.Consumer.Group.Rebalance.Timeout = 60 * time.Second + c.Consumer.Group.Rebalance.Retry.Max = 4 + c.Consumer.Group.Rebalance.Retry.Backoff = 2 * time.Second + + c.ClientID = defaultClientID + c.ChannelBufferSize = 256 + c.Version = MinVersion + c.MetricRegistry = metrics.NewRegistry() + + return c +} + +// Validate checks a Config instance. It will return a +// ConfigurationError if the specified values don't make sense. +func (c *Config) Validate() error { + // some configuration values should be warned on but not fail completely, do those first + if !c.Net.TLS.Enable && c.Net.TLS.Config != nil { + Logger.Println("Net.TLS is disabled but a non-nil configuration was provided.") + } + if !c.Net.SASL.Enable { + if c.Net.SASL.User != "" { + Logger.Println("Net.SASL is disabled but a non-empty username was provided.") + } + if c.Net.SASL.Password != "" { + Logger.Println("Net.SASL is disabled but a non-empty password was provided.") + } + } + if c.Producer.RequiredAcks > 1 { + Logger.Println("Producer.RequiredAcks > 1 is deprecated and will raise an exception with kafka >= 0.8.2.0.") + } + if c.Producer.MaxMessageBytes >= int(MaxRequestSize) { + Logger.Println("Producer.MaxMessageBytes must be smaller than MaxRequestSize; it will be ignored.") + } + if c.Producer.Flush.Bytes >= int(MaxRequestSize) { + Logger.Println("Producer.Flush.Bytes must be smaller than MaxRequestSize; it will be ignored.") + } + if (c.Producer.Flush.Bytes > 0 || c.Producer.Flush.Messages > 0) && c.Producer.Flush.Frequency == 0 { + Logger.Println("Producer.Flush: Bytes or Messages are set, but Frequency is not; messages may not get flushed.") + } + if c.Producer.Timeout%time.Millisecond != 0 { + Logger.Println("Producer.Timeout only supports millisecond resolution; nanoseconds will be truncated.") + } + if c.Consumer.MaxWaitTime < 100*time.Millisecond { + Logger.Println("Consumer.MaxWaitTime is very low, which can cause high CPU and network usage. See documentation for details.") + } + if c.Consumer.MaxWaitTime%time.Millisecond != 0 { + Logger.Println("Consumer.MaxWaitTime only supports millisecond precision; nanoseconds will be truncated.") + } + if c.Consumer.Offsets.Retention%time.Millisecond != 0 { + Logger.Println("Consumer.Offsets.Retention only supports millisecond precision; nanoseconds will be truncated.") + } + if c.Consumer.Group.Session.Timeout%time.Millisecond != 0 { + Logger.Println("Consumer.Group.Session.Timeout only supports millisecond precision; nanoseconds will be truncated.") + } + if c.Consumer.Group.Heartbeat.Interval%time.Millisecond != 0 { + Logger.Println("Consumer.Group.Heartbeat.Interval only supports millisecond precision; nanoseconds will be truncated.") + } + if c.Consumer.Group.Rebalance.Timeout%time.Millisecond != 0 { + Logger.Println("Consumer.Group.Rebalance.Timeout only supports millisecond precision; nanoseconds will be truncated.") + } + if c.ClientID == defaultClientID { + Logger.Println("ClientID is the default of 'sarama', you should consider setting it to something application-specific.") + } + + // validate Net values + switch { + case c.Net.MaxOpenRequests <= 0: + return ConfigurationError("Net.MaxOpenRequests must be > 0") + case c.Net.DialTimeout <= 0: + return ConfigurationError("Net.DialTimeout must be > 0") + case c.Net.ReadTimeout <= 0: + return ConfigurationError("Net.ReadTimeout must be > 0") + case c.Net.WriteTimeout <= 0: + return ConfigurationError("Net.WriteTimeout must be > 0") + case c.Net.KeepAlive < 0: + return ConfigurationError("Net.KeepAlive must be >= 0") + case c.Net.SASL.Enable: + if c.Net.SASL.Mechanism == "" { + c.Net.SASL.Mechanism = SASLTypePlaintext + } + + switch c.Net.SASL.Mechanism { + case SASLTypePlaintext: + if c.Net.SASL.User == "" { + return ConfigurationError("Net.SASL.User must not be empty when SASL is enabled") + } + if c.Net.SASL.Password == "" { + return ConfigurationError("Net.SASL.Password must not be empty when SASL is enabled") + } + case SASLTypeOAuth: + if c.Net.SASL.TokenProvider == nil { + return ConfigurationError("An AccessTokenProvider instance must be provided to Net.SASL.TokenProvider") + } + case SASLTypeSCRAMSHA256, SASLTypeSCRAMSHA512: + if c.Net.SASL.User == "" { + return ConfigurationError("Net.SASL.User must not be empty when SASL is enabled") + } + if c.Net.SASL.Password == "" { + return ConfigurationError("Net.SASL.Password must not be empty when SASL is enabled") + } + if c.Net.SASL.SCRAMClientGeneratorFunc == nil { + return ConfigurationError("A SCRAMClientGeneratorFunc function must be provided to Net.SASL.SCRAMClientGeneratorFunc") + } + case SASLTypeGSSAPI: + if c.Net.SASL.GSSAPI.ServiceName == "" { + return ConfigurationError("Net.SASL.GSSAPI.ServiceName must not be empty when GSS-API mechanism is used") + } + + if c.Net.SASL.GSSAPI.AuthType == KRB5_USER_AUTH { + if c.Net.SASL.GSSAPI.Password == "" { + return ConfigurationError("Net.SASL.GSSAPI.Password must not be empty when GSS-API " + + "mechanism is used and Net.SASL.GSSAPI.AuthType = KRB5_USER_AUTH") + } + } else if c.Net.SASL.GSSAPI.AuthType == KRB5_KEYTAB_AUTH { + if c.Net.SASL.GSSAPI.KeyTabPath == "" { + return ConfigurationError("Net.SASL.GSSAPI.KeyTabPath must not be empty when GSS-API mechanism is used" + + " and Net.SASL.GSSAPI.AuthType = KRB5_KEYTAB_AUTH") + } + } else { + return ConfigurationError("Net.SASL.GSSAPI.AuthType is invalid. Possible values are KRB5_USER_AUTH and KRB5_KEYTAB_AUTH") + } + if c.Net.SASL.GSSAPI.KerberosConfigPath == "" { + return ConfigurationError("Net.SASL.GSSAPI.KerberosConfigPath must not be empty when GSS-API mechanism is used") + } + if c.Net.SASL.GSSAPI.Username == "" { + return ConfigurationError("Net.SASL.GSSAPI.Username must not be empty when GSS-API mechanism is used") + } + if c.Net.SASL.GSSAPI.Realm == "" { + return ConfigurationError("Net.SASL.GSSAPI.Realm must not be empty when GSS-API mechanism is used") + } + default: + msg := fmt.Sprintf("The SASL mechanism configuration is invalid. Possible values are `%s`, `%s`, `%s`, `%s` and `%s`", + SASLTypeOAuth, SASLTypePlaintext, SASLTypeSCRAMSHA256, SASLTypeSCRAMSHA512, SASLTypeGSSAPI) + return ConfigurationError(msg) + } + } + + // validate the Admin values + switch { + case c.Admin.Timeout <= 0: + return ConfigurationError("Admin.Timeout must be > 0") + } + + // validate the Metadata values + switch { + case c.Metadata.Retry.Max < 0: + return ConfigurationError("Metadata.Retry.Max must be >= 0") + case c.Metadata.Retry.Backoff < 0: + return ConfigurationError("Metadata.Retry.Backoff must be >= 0") + case c.Metadata.RefreshFrequency < 0: + return ConfigurationError("Metadata.RefreshFrequency must be >= 0") + } + + // validate the Producer values + switch { + case c.Producer.MaxMessageBytes <= 0: + return ConfigurationError("Producer.MaxMessageBytes must be > 0") + case c.Producer.RequiredAcks < -1: + return ConfigurationError("Producer.RequiredAcks must be >= -1") + case c.Producer.Timeout <= 0: + return ConfigurationError("Producer.Timeout must be > 0") + case c.Producer.Partitioner == nil: + return ConfigurationError("Producer.Partitioner must not be nil") + case c.Producer.Flush.Bytes < 0: + return ConfigurationError("Producer.Flush.Bytes must be >= 0") + case c.Producer.Flush.Messages < 0: + return ConfigurationError("Producer.Flush.Messages must be >= 0") + case c.Producer.Flush.Frequency < 0: + return ConfigurationError("Producer.Flush.Frequency must be >= 0") + case c.Producer.Flush.MaxMessages < 0: + return ConfigurationError("Producer.Flush.MaxMessages must be >= 0") + case c.Producer.Flush.MaxMessages > 0 && c.Producer.Flush.MaxMessages < c.Producer.Flush.Messages: + return ConfigurationError("Producer.Flush.MaxMessages must be >= Producer.Flush.Messages when set") + case c.Producer.Retry.Max < 0: + return ConfigurationError("Producer.Retry.Max must be >= 0") + case c.Producer.Retry.Backoff < 0: + return ConfigurationError("Producer.Retry.Backoff must be >= 0") + } + + if c.Producer.Compression == CompressionLZ4 && !c.Version.IsAtLeast(V0_10_0_0) { + return ConfigurationError("lz4 compression requires Version >= V0_10_0_0") + } + + if c.Producer.Compression == CompressionGZIP { + if c.Producer.CompressionLevel != CompressionLevelDefault { + if _, err := gzip.NewWriterLevel(ioutil.Discard, c.Producer.CompressionLevel); err != nil { + return ConfigurationError(fmt.Sprintf("gzip compression does not work with level %d: %v", c.Producer.CompressionLevel, err)) + } + } + } + + if c.Producer.Compression == CompressionZSTD && !c.Version.IsAtLeast(V2_1_0_0) { + return ConfigurationError("zstd compression requires Version >= V2_1_0_0") + } + + if c.Producer.Idempotent { + if !c.Version.IsAtLeast(V0_11_0_0) { + return ConfigurationError("Idempotent producer requires Version >= V0_11_0_0") + } + if c.Producer.Retry.Max == 0 { + return ConfigurationError("Idempotent producer requires Producer.Retry.Max >= 1") + } + if c.Producer.RequiredAcks != WaitForAll { + return ConfigurationError("Idempotent producer requires Producer.RequiredAcks to be WaitForAll") + } + if c.Net.MaxOpenRequests > 1 { + return ConfigurationError("Idempotent producer requires Net.MaxOpenRequests to be 1") + } + } + + // validate the Consumer values + switch { + case c.Consumer.Fetch.Min <= 0: + return ConfigurationError("Consumer.Fetch.Min must be > 0") + case c.Consumer.Fetch.Default <= 0: + return ConfigurationError("Consumer.Fetch.Default must be > 0") + case c.Consumer.Fetch.Max < 0: + return ConfigurationError("Consumer.Fetch.Max must be >= 0") + case c.Consumer.MaxWaitTime < 1*time.Millisecond: + return ConfigurationError("Consumer.MaxWaitTime must be >= 1ms") + case c.Consumer.MaxProcessingTime <= 0: + return ConfigurationError("Consumer.MaxProcessingTime must be > 0") + case c.Consumer.Retry.Backoff < 0: + return ConfigurationError("Consumer.Retry.Backoff must be >= 0") + case c.Consumer.Offsets.AutoCommit.Interval <= 0: + return ConfigurationError("Consumer.Offsets.AutoCommit.Interval must be > 0") + case c.Consumer.Offsets.Initial != OffsetOldest && c.Consumer.Offsets.Initial != OffsetNewest: + return ConfigurationError("Consumer.Offsets.Initial must be OffsetOldest or OffsetNewest") + case c.Consumer.Offsets.Retry.Max < 0: + return ConfigurationError("Consumer.Offsets.Retry.Max must be >= 0") + case c.Consumer.IsolationLevel != ReadUncommitted && c.Consumer.IsolationLevel != ReadCommitted: + return ConfigurationError("Consumer.IsolationLevel must be ReadUncommitted or ReadCommitted") + } + + if c.Consumer.Offsets.CommitInterval != 0 { + Logger.Println("Deprecation warning: Consumer.Offsets.CommitInterval exists for historical compatibility" + + " and should not be used. Please use Consumer.Offsets.AutoCommit, the current value will be ignored") + } + + // validate IsolationLevel + if c.Consumer.IsolationLevel == ReadCommitted && !c.Version.IsAtLeast(V0_11_0_0) { + return ConfigurationError("ReadCommitted requires Version >= V0_11_0_0") + } + + // validate the Consumer Group values + switch { + case c.Consumer.Group.Session.Timeout <= 2*time.Millisecond: + return ConfigurationError("Consumer.Group.Session.Timeout must be >= 2ms") + case c.Consumer.Group.Heartbeat.Interval < 1*time.Millisecond: + return ConfigurationError("Consumer.Group.Heartbeat.Interval must be >= 1ms") + case c.Consumer.Group.Heartbeat.Interval >= c.Consumer.Group.Session.Timeout: + return ConfigurationError("Consumer.Group.Heartbeat.Interval must be < Consumer.Group.Session.Timeout") + case c.Consumer.Group.Rebalance.Strategy == nil: + return ConfigurationError("Consumer.Group.Rebalance.Strategy must not be empty") + case c.Consumer.Group.Rebalance.Timeout <= time.Millisecond: + return ConfigurationError("Consumer.Group.Rebalance.Timeout must be >= 1ms") + case c.Consumer.Group.Rebalance.Retry.Max < 0: + return ConfigurationError("Consumer.Group.Rebalance.Retry.Max must be >= 0") + case c.Consumer.Group.Rebalance.Retry.Backoff < 0: + return ConfigurationError("Consumer.Group.Rebalance.Retry.Backoff must be >= 0") + } + + // validate misc shared values + switch { + case c.ChannelBufferSize < 0: + return ConfigurationError("ChannelBufferSize must be >= 0") + case !validID.MatchString(c.ClientID): + return ConfigurationError("ClientID is invalid") + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/config_resource_type.go b/vendor/github.com/Shopify/sarama/config_resource_type.go new file mode 100644 index 0000000..bef1053 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/config_resource_type.go @@ -0,0 +1,18 @@ +package sarama + +// ConfigResourceType is a type for resources that have configs. +type ConfigResourceType int8 + +// Taken from: +// https://github.com/apache/kafka/blob/ed7c071e07f1f90e4c2895582f61ca090ced3c42/clients/src/main/java/org/apache/kafka/common/config/ConfigResource.java#L32-L55 + +const ( + // UnknownResource constant type + UnknownResource ConfigResourceType = 0 + // TopicResource constant type + TopicResource ConfigResourceType = 2 + // BrokerResource constant type + BrokerResource ConfigResourceType = 4 + // BrokerLoggerResource constant type + BrokerLoggerResource ConfigResourceType = 8 +) diff --git a/vendor/github.com/Shopify/sarama/consumer.go b/vendor/github.com/Shopify/sarama/consumer.go new file mode 100644 index 0000000..ff44ade --- /dev/null +++ b/vendor/github.com/Shopify/sarama/consumer.go @@ -0,0 +1,900 @@ +package sarama + +import ( + "errors" + "fmt" + "math" + "sync" + "sync/atomic" + "time" + + "github.com/rcrowley/go-metrics" +) + +// ConsumerMessage encapsulates a Kafka message returned by the consumer. +type ConsumerMessage struct { + Headers []*RecordHeader // only set if kafka is version 0.11+ + Timestamp time.Time // only set if kafka is version 0.10+, inner message timestamp + BlockTimestamp time.Time // only set if kafka is version 0.10+, outer (compressed) block timestamp + + Key, Value []byte + Topic string + Partition int32 + Offset int64 +} + +// ConsumerError is what is provided to the user when an error occurs. +// It wraps an error and includes the topic and partition. +type ConsumerError struct { + Topic string + Partition int32 + Err error +} + +func (ce ConsumerError) Error() string { + return fmt.Sprintf("kafka: error while consuming %s/%d: %s", ce.Topic, ce.Partition, ce.Err) +} + +// ConsumerErrors is a type that wraps a batch of errors and implements the Error interface. +// It can be returned from the PartitionConsumer's Close methods to avoid the need to manually drain errors +// when stopping. +type ConsumerErrors []*ConsumerError + +func (ce ConsumerErrors) Error() string { + return fmt.Sprintf("kafka: %d errors while consuming", len(ce)) +} + +// Consumer manages PartitionConsumers which process Kafka messages from brokers. You MUST call Close() +// on a consumer to avoid leaks, it will not be garbage-collected automatically when it passes out of +// scope. +type Consumer interface { + // Topics returns the set of available topics as retrieved from the cluster + // metadata. This method is the same as Client.Topics(), and is provided for + // convenience. + Topics() ([]string, error) + + // Partitions returns the sorted list of all partition IDs for the given topic. + // This method is the same as Client.Partitions(), and is provided for convenience. + Partitions(topic string) ([]int32, error) + + // ConsumePartition creates a PartitionConsumer on the given topic/partition with + // the given offset. It will return an error if this Consumer is already consuming + // on the given topic/partition. Offset can be a literal offset, or OffsetNewest + // or OffsetOldest + ConsumePartition(topic string, partition int32, offset int64) (PartitionConsumer, error) + + // HighWaterMarks returns the current high water marks for each topic and partition. + // Consistency between partitions is not guaranteed since high water marks are updated separately. + HighWaterMarks() map[string]map[int32]int64 + + // Close shuts down the consumer. It must be called after all child + // PartitionConsumers have already been closed. + Close() error +} + +type consumer struct { + conf *Config + children map[string]map[int32]*partitionConsumer + brokerConsumers map[*Broker]*brokerConsumer + client Client + lock sync.Mutex +} + +// NewConsumer creates a new consumer using the given broker addresses and configuration. +func NewConsumer(addrs []string, config *Config) (Consumer, error) { + client, err := NewClient(addrs, config) + if err != nil { + return nil, err + } + return newConsumer(client) +} + +// NewConsumerFromClient creates a new consumer using the given client. It is still +// necessary to call Close() on the underlying client when shutting down this consumer. +func NewConsumerFromClient(client Client) (Consumer, error) { + // For clients passed in by the client, ensure we don't + // call Close() on it. + cli := &nopCloserClient{client} + return newConsumer(cli) +} + +func newConsumer(client Client) (Consumer, error) { + // Check that we are not dealing with a closed Client before processing any other arguments + if client.Closed() { + return nil, ErrClosedClient + } + + c := &consumer{ + client: client, + conf: client.Config(), + children: make(map[string]map[int32]*partitionConsumer), + brokerConsumers: make(map[*Broker]*brokerConsumer), + } + + return c, nil +} + +func (c *consumer) Close() error { + return c.client.Close() +} + +func (c *consumer) Topics() ([]string, error) { + return c.client.Topics() +} + +func (c *consumer) Partitions(topic string) ([]int32, error) { + return c.client.Partitions(topic) +} + +func (c *consumer) ConsumePartition(topic string, partition int32, offset int64) (PartitionConsumer, error) { + child := &partitionConsumer{ + consumer: c, + conf: c.conf, + topic: topic, + partition: partition, + messages: make(chan *ConsumerMessage, c.conf.ChannelBufferSize), + errors: make(chan *ConsumerError, c.conf.ChannelBufferSize), + feeder: make(chan *FetchResponse, 1), + trigger: make(chan none, 1), + dying: make(chan none), + fetchSize: c.conf.Consumer.Fetch.Default, + } + + if err := child.chooseStartingOffset(offset); err != nil { + return nil, err + } + + var leader *Broker + var err error + if leader, err = c.client.Leader(child.topic, child.partition); err != nil { + return nil, err + } + + if err := c.addChild(child); err != nil { + return nil, err + } + + go withRecover(child.dispatcher) + go withRecover(child.responseFeeder) + + child.broker = c.refBrokerConsumer(leader) + child.broker.input <- child + + return child, nil +} + +func (c *consumer) HighWaterMarks() map[string]map[int32]int64 { + c.lock.Lock() + defer c.lock.Unlock() + + hwms := make(map[string]map[int32]int64) + for topic, p := range c.children { + hwm := make(map[int32]int64, len(p)) + for partition, pc := range p { + hwm[partition] = pc.HighWaterMarkOffset() + } + hwms[topic] = hwm + } + + return hwms +} + +func (c *consumer) addChild(child *partitionConsumer) error { + c.lock.Lock() + defer c.lock.Unlock() + + topicChildren := c.children[child.topic] + if topicChildren == nil { + topicChildren = make(map[int32]*partitionConsumer) + c.children[child.topic] = topicChildren + } + + if topicChildren[child.partition] != nil { + return ConfigurationError("That topic/partition is already being consumed") + } + + topicChildren[child.partition] = child + return nil +} + +func (c *consumer) removeChild(child *partitionConsumer) { + c.lock.Lock() + defer c.lock.Unlock() + + delete(c.children[child.topic], child.partition) +} + +func (c *consumer) refBrokerConsumer(broker *Broker) *brokerConsumer { + c.lock.Lock() + defer c.lock.Unlock() + + bc := c.brokerConsumers[broker] + if bc == nil { + bc = c.newBrokerConsumer(broker) + c.brokerConsumers[broker] = bc + } + + bc.refs++ + + return bc +} + +func (c *consumer) unrefBrokerConsumer(brokerWorker *brokerConsumer) { + c.lock.Lock() + defer c.lock.Unlock() + + brokerWorker.refs-- + + if brokerWorker.refs == 0 { + close(brokerWorker.input) + if c.brokerConsumers[brokerWorker.broker] == brokerWorker { + delete(c.brokerConsumers, brokerWorker.broker) + } + } +} + +func (c *consumer) abandonBrokerConsumer(brokerWorker *brokerConsumer) { + c.lock.Lock() + defer c.lock.Unlock() + + delete(c.brokerConsumers, brokerWorker.broker) +} + +// PartitionConsumer + +// PartitionConsumer processes Kafka messages from a given topic and partition. You MUST call one of Close() or +// AsyncClose() on a PartitionConsumer to avoid leaks; it will not be garbage-collected automatically when it passes out +// of scope. +// +// The simplest way of using a PartitionConsumer is to loop over its Messages channel using a for/range +// loop. The PartitionConsumer will only stop itself in one case: when the offset being consumed is reported +// as out of range by the brokers. In this case you should decide what you want to do (try a different offset, +// notify a human, etc) and handle it appropriately. For all other error cases, it will just keep retrying. +// By default, it logs these errors to sarama.Logger; if you want to be notified directly of all errors, set +// your config's Consumer.Return.Errors to true and read from the Errors channel, using a select statement +// or a separate goroutine. Check out the Consumer examples to see implementations of these different approaches. +// +// To terminate such a for/range loop while the loop is executing, call AsyncClose. This will kick off the process of +// consumer tear-down & return immediately. Continue to loop, servicing the Messages channel until the teardown process +// AsyncClose initiated closes it (thus terminating the for/range loop). If you've already ceased reading Messages, call +// Close; this will signal the PartitionConsumer's goroutines to begin shutting down (just like AsyncClose), but will +// also drain the Messages channel, harvest all errors & return them once cleanup has completed. +type PartitionConsumer interface { + // AsyncClose initiates a shutdown of the PartitionConsumer. This method will return immediately, after which you + // should continue to service the 'Messages' and 'Errors' channels until they are empty. It is required to call this + // function, or Close before a consumer object passes out of scope, as it will otherwise leak memory. You must call + // this before calling Close on the underlying client. + AsyncClose() + + // Close stops the PartitionConsumer from fetching messages. It will initiate a shutdown just like AsyncClose, drain + // the Messages channel, harvest any errors & return them to the caller. Note that if you are continuing to service + // the Messages channel when this function is called, you will be competing with Close for messages; consider + // calling AsyncClose, instead. It is required to call this function (or AsyncClose) before a consumer object passes + // out of scope, as it will otherwise leak memory. You must call this before calling Close on the underlying client. + Close() error + + // Messages returns the read channel for the messages that are returned by + // the broker. + Messages() <-chan *ConsumerMessage + + // Errors returns a read channel of errors that occurred during consuming, if + // enabled. By default, errors are logged and not returned over this channel. + // If you want to implement any custom error handling, set your config's + // Consumer.Return.Errors setting to true, and read from this channel. + Errors() <-chan *ConsumerError + + // HighWaterMarkOffset returns the high water mark offset of the partition, + // i.e. the offset that will be used for the next message that will be produced. + // You can use this to determine how far behind the processing is. + HighWaterMarkOffset() int64 +} + +type partitionConsumer struct { + highWaterMarkOffset int64 // must be at the top of the struct because https://golang.org/pkg/sync/atomic/#pkg-note-BUG + + consumer *consumer + conf *Config + broker *brokerConsumer + messages chan *ConsumerMessage + errors chan *ConsumerError + feeder chan *FetchResponse + + trigger, dying chan none + closeOnce sync.Once + topic string + partition int32 + responseResult error + fetchSize int32 + offset int64 + retries int32 +} + +var errTimedOut = errors.New("timed out feeding messages to the user") // not user-facing + +func (child *partitionConsumer) sendError(err error) { + cErr := &ConsumerError{ + Topic: child.topic, + Partition: child.partition, + Err: err, + } + + if child.conf.Consumer.Return.Errors { + child.errors <- cErr + } else { + Logger.Println(cErr) + } +} + +func (child *partitionConsumer) computeBackoff() time.Duration { + if child.conf.Consumer.Retry.BackoffFunc != nil { + retries := atomic.AddInt32(&child.retries, 1) + return child.conf.Consumer.Retry.BackoffFunc(int(retries)) + } + return child.conf.Consumer.Retry.Backoff +} + +func (child *partitionConsumer) dispatcher() { + for range child.trigger { + select { + case <-child.dying: + close(child.trigger) + case <-time.After(child.computeBackoff()): + if child.broker != nil { + child.consumer.unrefBrokerConsumer(child.broker) + child.broker = nil + } + + Logger.Printf("consumer/%s/%d finding new broker\n", child.topic, child.partition) + if err := child.dispatch(); err != nil { + child.sendError(err) + child.trigger <- none{} + } + } + } + + if child.broker != nil { + child.consumer.unrefBrokerConsumer(child.broker) + } + child.consumer.removeChild(child) + close(child.feeder) +} + +func (child *partitionConsumer) dispatch() error { + if err := child.consumer.client.RefreshMetadata(child.topic); err != nil { + return err + } + + var leader *Broker + var err error + if leader, err = child.consumer.client.Leader(child.topic, child.partition); err != nil { + return err + } + + child.broker = child.consumer.refBrokerConsumer(leader) + + child.broker.input <- child + + return nil +} + +func (child *partitionConsumer) chooseStartingOffset(offset int64) error { + newestOffset, err := child.consumer.client.GetOffset(child.topic, child.partition, OffsetNewest) + if err != nil { + return err + } + oldestOffset, err := child.consumer.client.GetOffset(child.topic, child.partition, OffsetOldest) + if err != nil { + return err + } + + switch { + case offset == OffsetNewest: + child.offset = newestOffset + case offset == OffsetOldest: + child.offset = oldestOffset + case offset >= oldestOffset && offset <= newestOffset: + child.offset = offset + default: + return ErrOffsetOutOfRange + } + + return nil +} + +func (child *partitionConsumer) Messages() <-chan *ConsumerMessage { + return child.messages +} + +func (child *partitionConsumer) Errors() <-chan *ConsumerError { + return child.errors +} + +func (child *partitionConsumer) AsyncClose() { + // this triggers whatever broker owns this child to abandon it and close its trigger channel, which causes + // the dispatcher to exit its loop, which removes it from the consumer then closes its 'messages' and + // 'errors' channel (alternatively, if the child is already at the dispatcher for some reason, that will + // also just close itself) + child.closeOnce.Do(func() { + close(child.dying) + }) +} + +func (child *partitionConsumer) Close() error { + child.AsyncClose() + + var errors ConsumerErrors + for err := range child.errors { + errors = append(errors, err) + } + + if len(errors) > 0 { + return errors + } + return nil +} + +func (child *partitionConsumer) HighWaterMarkOffset() int64 { + return atomic.LoadInt64(&child.highWaterMarkOffset) +} + +func (child *partitionConsumer) responseFeeder() { + var msgs []*ConsumerMessage + expiryTicker := time.NewTicker(child.conf.Consumer.MaxProcessingTime) + firstAttempt := true + +feederLoop: + for response := range child.feeder { + msgs, child.responseResult = child.parseResponse(response) + + if child.responseResult == nil { + atomic.StoreInt32(&child.retries, 0) + } + + for i, msg := range msgs { + messageSelect: + select { + case <-child.dying: + child.broker.acks.Done() + continue feederLoop + case child.messages <- msg: + firstAttempt = true + case <-expiryTicker.C: + if !firstAttempt { + child.responseResult = errTimedOut + child.broker.acks.Done() + remainingLoop: + for _, msg = range msgs[i:] { + select { + case child.messages <- msg: + case <-child.dying: + break remainingLoop + } + } + child.broker.input <- child + continue feederLoop + } else { + // current message has not been sent, return to select + // statement + firstAttempt = false + goto messageSelect + } + } + } + + child.broker.acks.Done() + } + + expiryTicker.Stop() + close(child.messages) + close(child.errors) +} + +func (child *partitionConsumer) parseMessages(msgSet *MessageSet) ([]*ConsumerMessage, error) { + var messages []*ConsumerMessage + for _, msgBlock := range msgSet.Messages { + for _, msg := range msgBlock.Messages() { + offset := msg.Offset + timestamp := msg.Msg.Timestamp + if msg.Msg.Version >= 1 { + baseOffset := msgBlock.Offset - msgBlock.Messages()[len(msgBlock.Messages())-1].Offset + offset += baseOffset + if msg.Msg.LogAppendTime { + timestamp = msgBlock.Msg.Timestamp + } + } + if offset < child.offset { + continue + } + messages = append(messages, &ConsumerMessage{ + Topic: child.topic, + Partition: child.partition, + Key: msg.Msg.Key, + Value: msg.Msg.Value, + Offset: offset, + Timestamp: timestamp, + BlockTimestamp: msgBlock.Msg.Timestamp, + }) + child.offset = offset + 1 + } + } + if len(messages) == 0 { + child.offset++ + } + return messages, nil +} + +func (child *partitionConsumer) parseRecords(batch *RecordBatch) ([]*ConsumerMessage, error) { + messages := make([]*ConsumerMessage, 0, len(batch.Records)) + + for _, rec := range batch.Records { + offset := batch.FirstOffset + rec.OffsetDelta + if offset < child.offset { + continue + } + timestamp := batch.FirstTimestamp.Add(rec.TimestampDelta) + if batch.LogAppendTime { + timestamp = batch.MaxTimestamp + } + messages = append(messages, &ConsumerMessage{ + Topic: child.topic, + Partition: child.partition, + Key: rec.Key, + Value: rec.Value, + Offset: offset, + Timestamp: timestamp, + Headers: rec.Headers, + }) + child.offset = offset + 1 + } + if len(messages) == 0 { + child.offset++ + } + return messages, nil +} + +func (child *partitionConsumer) parseResponse(response *FetchResponse) ([]*ConsumerMessage, error) { + var ( + metricRegistry = child.conf.MetricRegistry + consumerBatchSizeMetric metrics.Histogram + ) + + if metricRegistry != nil { + consumerBatchSizeMetric = getOrRegisterHistogram("consumer-batch-size", metricRegistry) + } + + // If request was throttled and empty we log and return without error + if response.ThrottleTime != time.Duration(0) && len(response.Blocks) == 0 { + Logger.Printf( + "consumer/broker/%d FetchResponse throttled %v\n", + child.broker.broker.ID(), response.ThrottleTime) + return nil, nil + } + + block := response.GetBlock(child.topic, child.partition) + if block == nil { + return nil, ErrIncompleteResponse + } + + if block.Err != ErrNoError { + return nil, block.Err + } + + nRecs, err := block.numRecords() + if err != nil { + return nil, err + } + + consumerBatchSizeMetric.Update(int64(nRecs)) + + if nRecs == 0 { + partialTrailingMessage, err := block.isPartial() + if err != nil { + return nil, err + } + // We got no messages. If we got a trailing one then we need to ask for more data. + // Otherwise we just poll again and wait for one to be produced... + if partialTrailingMessage { + if child.conf.Consumer.Fetch.Max > 0 && child.fetchSize == child.conf.Consumer.Fetch.Max { + // we can't ask for more data, we've hit the configured limit + child.sendError(ErrMessageTooLarge) + child.offset++ // skip this one so we can keep processing future messages + } else { + child.fetchSize *= 2 + // check int32 overflow + if child.fetchSize < 0 { + child.fetchSize = math.MaxInt32 + } + if child.conf.Consumer.Fetch.Max > 0 && child.fetchSize > child.conf.Consumer.Fetch.Max { + child.fetchSize = child.conf.Consumer.Fetch.Max + } + } + } + + return nil, nil + } + + // we got messages, reset our fetch size in case it was increased for a previous request + child.fetchSize = child.conf.Consumer.Fetch.Default + atomic.StoreInt64(&child.highWaterMarkOffset, block.HighWaterMarkOffset) + + // abortedProducerIDs contains producerID which message should be ignored as uncommitted + // - producerID are added when the partitionConsumer iterate over the offset at which an aborted transaction begins (abortedTransaction.FirstOffset) + // - producerID are removed when partitionConsumer iterate over an aborted controlRecord, meaning the aborted transaction for this producer is over + abortedProducerIDs := make(map[int64]struct{}, len(block.AbortedTransactions)) + abortedTransactions := block.getAbortedTransactions() + + messages := []*ConsumerMessage{} + for _, records := range block.RecordsSet { + switch records.recordsType { + case legacyRecords: + messageSetMessages, err := child.parseMessages(records.MsgSet) + if err != nil { + return nil, err + } + + messages = append(messages, messageSetMessages...) + case defaultRecords: + // Consume remaining abortedTransaction up to last offset of current batch + for _, txn := range abortedTransactions { + if txn.FirstOffset > records.RecordBatch.LastOffset() { + break + } + abortedProducerIDs[txn.ProducerID] = struct{}{} + // Pop abortedTransactions so that we never add it again + abortedTransactions = abortedTransactions[1:] + } + + recordBatchMessages, err := child.parseRecords(records.RecordBatch) + if err != nil { + return nil, err + } + + // Parse and commit offset but do not expose messages that are: + // - control records + // - part of an aborted transaction when set to `ReadCommitted` + + // control record + isControl, err := records.isControl() + if err != nil { + // I don't know why there is this continue in case of error to begin with + // Safe bet is to ignore control messages if ReadUncommitted + // and block on them in case of error and ReadCommitted + if child.conf.Consumer.IsolationLevel == ReadCommitted { + return nil, err + } + continue + } + if isControl { + controlRecord, err := records.getControlRecord() + if err != nil { + return nil, err + } + + if controlRecord.Type == ControlRecordAbort { + delete(abortedProducerIDs, records.RecordBatch.ProducerID) + } + continue + } + + // filter aborted transactions + if child.conf.Consumer.IsolationLevel == ReadCommitted { + _, isAborted := abortedProducerIDs[records.RecordBatch.ProducerID] + if records.RecordBatch.IsTransactional && isAborted { + continue + } + } + + messages = append(messages, recordBatchMessages...) + default: + return nil, fmt.Errorf("unknown records type: %v", records.recordsType) + } + } + + return messages, nil +} + +type brokerConsumer struct { + consumer *consumer + broker *Broker + input chan *partitionConsumer + newSubscriptions chan []*partitionConsumer + subscriptions map[*partitionConsumer]none + wait chan none + acks sync.WaitGroup + refs int +} + +func (c *consumer) newBrokerConsumer(broker *Broker) *brokerConsumer { + bc := &brokerConsumer{ + consumer: c, + broker: broker, + input: make(chan *partitionConsumer), + newSubscriptions: make(chan []*partitionConsumer), + wait: make(chan none), + subscriptions: make(map[*partitionConsumer]none), + refs: 0, + } + + go withRecover(bc.subscriptionManager) + go withRecover(bc.subscriptionConsumer) + + return bc +} + +// The subscriptionManager constantly accepts new subscriptions on `input` (even when the main subscriptionConsumer +// goroutine is in the middle of a network request) and batches it up. The main worker goroutine picks +// up a batch of new subscriptions between every network request by reading from `newSubscriptions`, so we give +// it nil if no new subscriptions are available. We also write to `wait` only when new subscriptions is available, +// so the main goroutine can block waiting for work if it has none. +func (bc *brokerConsumer) subscriptionManager() { + var buffer []*partitionConsumer + + for { + if len(buffer) > 0 { + select { + case event, ok := <-bc.input: + if !ok { + goto done + } + buffer = append(buffer, event) + case bc.newSubscriptions <- buffer: + buffer = nil + case bc.wait <- none{}: + } + } else { + select { + case event, ok := <-bc.input: + if !ok { + goto done + } + buffer = append(buffer, event) + case bc.newSubscriptions <- nil: + } + } + } + +done: + close(bc.wait) + if len(buffer) > 0 { + bc.newSubscriptions <- buffer + } + close(bc.newSubscriptions) +} + +//subscriptionConsumer ensures we will get nil right away if no new subscriptions is available +func (bc *brokerConsumer) subscriptionConsumer() { + <-bc.wait // wait for our first piece of work + + for newSubscriptions := range bc.newSubscriptions { + bc.updateSubscriptions(newSubscriptions) + + if len(bc.subscriptions) == 0 { + // We're about to be shut down or we're about to receive more subscriptions. + // Either way, the signal just hasn't propagated to our goroutine yet. + <-bc.wait + continue + } + + response, err := bc.fetchNewMessages() + + if err != nil { + Logger.Printf("consumer/broker/%d disconnecting due to error processing FetchRequest: %s\n", bc.broker.ID(), err) + bc.abort(err) + return + } + + bc.acks.Add(len(bc.subscriptions)) + for child := range bc.subscriptions { + child.feeder <- response + } + bc.acks.Wait() + bc.handleResponses() + } +} + +func (bc *brokerConsumer) updateSubscriptions(newSubscriptions []*partitionConsumer) { + for _, child := range newSubscriptions { + bc.subscriptions[child] = none{} + Logger.Printf("consumer/broker/%d added subscription to %s/%d\n", bc.broker.ID(), child.topic, child.partition) + } + + for child := range bc.subscriptions { + select { + case <-child.dying: + Logger.Printf("consumer/broker/%d closed dead subscription to %s/%d\n", bc.broker.ID(), child.topic, child.partition) + close(child.trigger) + delete(bc.subscriptions, child) + default: + // no-op + } + } +} + +//handleResponses handles the response codes left for us by our subscriptions, and abandons ones that have been closed +func (bc *brokerConsumer) handleResponses() { + for child := range bc.subscriptions { + result := child.responseResult + child.responseResult = nil + + switch result { + case nil: + // no-op + case errTimedOut: + Logger.Printf("consumer/broker/%d abandoned subscription to %s/%d because consuming was taking too long\n", + bc.broker.ID(), child.topic, child.partition) + delete(bc.subscriptions, child) + case ErrOffsetOutOfRange: + // there's no point in retrying this it will just fail the same way again + // shut it down and force the user to choose what to do + child.sendError(result) + Logger.Printf("consumer/%s/%d shutting down because %s\n", child.topic, child.partition, result) + close(child.trigger) + delete(bc.subscriptions, child) + case ErrUnknownTopicOrPartition, ErrNotLeaderForPartition, ErrLeaderNotAvailable, ErrReplicaNotAvailable: + // not an error, but does need redispatching + Logger.Printf("consumer/broker/%d abandoned subscription to %s/%d because %s\n", + bc.broker.ID(), child.topic, child.partition, result) + child.trigger <- none{} + delete(bc.subscriptions, child) + default: + // dunno, tell the user and try redispatching + child.sendError(result) + Logger.Printf("consumer/broker/%d abandoned subscription to %s/%d because %s\n", + bc.broker.ID(), child.topic, child.partition, result) + child.trigger <- none{} + delete(bc.subscriptions, child) + } + } +} + +func (bc *brokerConsumer) abort(err error) { + bc.consumer.abandonBrokerConsumer(bc) + _ = bc.broker.Close() // we don't care about the error this might return, we already have one + + for child := range bc.subscriptions { + child.sendError(err) + child.trigger <- none{} + } + + for newSubscriptions := range bc.newSubscriptions { + if len(newSubscriptions) == 0 { + <-bc.wait + continue + } + for _, child := range newSubscriptions { + child.sendError(err) + child.trigger <- none{} + } + } +} + +func (bc *brokerConsumer) fetchNewMessages() (*FetchResponse, error) { + request := &FetchRequest{ + MinBytes: bc.consumer.conf.Consumer.Fetch.Min, + MaxWaitTime: int32(bc.consumer.conf.Consumer.MaxWaitTime / time.Millisecond), + } + if bc.consumer.conf.Version.IsAtLeast(V0_9_0_0) { + request.Version = 1 + } + if bc.consumer.conf.Version.IsAtLeast(V0_10_0_0) { + request.Version = 2 + } + if bc.consumer.conf.Version.IsAtLeast(V0_10_1_0) { + request.Version = 3 + request.MaxBytes = MaxResponseSize + } + if bc.consumer.conf.Version.IsAtLeast(V0_11_0_0) { + request.Version = 4 + request.Isolation = bc.consumer.conf.Consumer.IsolationLevel + } + + if bc.consumer.conf.Version.IsAtLeast(V2_1_0_0) { + request.Version = 10 + } + + for child := range bc.subscriptions { + request.AddBlock(child.topic, child.partition, child.offset, child.fetchSize) + } + + return bc.broker.Fetch(request) +} diff --git a/vendor/github.com/Shopify/sarama/consumer_group.go b/vendor/github.com/Shopify/sarama/consumer_group.go new file mode 100644 index 0000000..951f64b --- /dev/null +++ b/vendor/github.com/Shopify/sarama/consumer_group.go @@ -0,0 +1,864 @@ +package sarama + +import ( + "context" + "errors" + "fmt" + "sort" + "sync" + "time" +) + +// ErrClosedConsumerGroup is the error returned when a method is called on a consumer group that has been closed. +var ErrClosedConsumerGroup = errors.New("kafka: tried to use a consumer group that was closed") + +// ConsumerGroup is responsible for dividing up processing of topics and partitions +// over a collection of processes (the members of the consumer group). +type ConsumerGroup interface { + // Consume joins a cluster of consumers for a given list of topics and + // starts a blocking ConsumerGroupSession through the ConsumerGroupHandler. + // + // The life-cycle of a session is represented by the following steps: + // + // 1. The consumers join the group (as explained in https://kafka.apache.org/documentation/#intro_consumers) + // and is assigned their "fair share" of partitions, aka 'claims'. + // 2. Before processing starts, the handler's Setup() hook is called to notify the user + // of the claims and allow any necessary preparation or alteration of state. + // 3. For each of the assigned claims the handler's ConsumeClaim() function is then called + // in a separate goroutine which requires it to be thread-safe. Any state must be carefully protected + // from concurrent reads/writes. + // 4. The session will persist until one of the ConsumeClaim() functions exits. This can be either when the + // parent context is cancelled or when a server-side rebalance cycle is initiated. + // 5. Once all the ConsumeClaim() loops have exited, the handler's Cleanup() hook is called + // to allow the user to perform any final tasks before a rebalance. + // 6. Finally, marked offsets are committed one last time before claims are released. + // + // Please note, that once a rebalance is triggered, sessions must be completed within + // Config.Consumer.Group.Rebalance.Timeout. This means that ConsumeClaim() functions must exit + // as quickly as possible to allow time for Cleanup() and the final offset commit. If the timeout + // is exceeded, the consumer will be removed from the group by Kafka, which will cause offset + // commit failures. + Consume(ctx context.Context, topics []string, handler ConsumerGroupHandler) error + + // Errors returns a read channel of errors that occurred during the consumer life-cycle. + // By default, errors are logged and not returned over this channel. + // If you want to implement any custom error handling, set your config's + // Consumer.Return.Errors setting to true, and read from this channel. + Errors() <-chan error + + // Close stops the ConsumerGroup and detaches any running sessions. It is required to call + // this function before the object passes out of scope, as it will otherwise leak memory. + Close() error +} + +type consumerGroup struct { + client Client + + config *Config + consumer Consumer + groupID string + memberID string + errors chan error + + lock sync.Mutex + closed chan none + closeOnce sync.Once + + userData []byte +} + +// NewConsumerGroup creates a new consumer group the given broker addresses and configuration. +func NewConsumerGroup(addrs []string, groupID string, config *Config) (ConsumerGroup, error) { + client, err := NewClient(addrs, config) + if err != nil { + return nil, err + } + + c, err := newConsumerGroup(groupID, client) + if err != nil { + _ = client.Close() + } + return c, err +} + +// NewConsumerGroupFromClient creates a new consumer group using the given client. It is still +// necessary to call Close() on the underlying client when shutting down this consumer. +// PLEASE NOTE: consumer groups can only re-use but not share clients. +func NewConsumerGroupFromClient(groupID string, client Client) (ConsumerGroup, error) { + // For clients passed in by the client, ensure we don't + // call Close() on it. + cli := &nopCloserClient{client} + return newConsumerGroup(groupID, cli) +} + +func newConsumerGroup(groupID string, client Client) (ConsumerGroup, error) { + config := client.Config() + if !config.Version.IsAtLeast(V0_10_2_0) { + return nil, ConfigurationError("consumer groups require Version to be >= V0_10_2_0") + } + + consumer, err := NewConsumerFromClient(client) + if err != nil { + return nil, err + } + + return &consumerGroup{ + client: client, + consumer: consumer, + config: config, + groupID: groupID, + errors: make(chan error, config.ChannelBufferSize), + closed: make(chan none), + }, nil +} + +// Errors implements ConsumerGroup. +func (c *consumerGroup) Errors() <-chan error { return c.errors } + +// Close implements ConsumerGroup. +func (c *consumerGroup) Close() (err error) { + c.closeOnce.Do(func() { + close(c.closed) + + // leave group + if e := c.leave(); e != nil { + err = e + } + + // drain errors + go func() { + close(c.errors) + }() + for e := range c.errors { + err = e + } + + if e := c.client.Close(); e != nil { + err = e + } + }) + return +} + +// Consume implements ConsumerGroup. +func (c *consumerGroup) Consume(ctx context.Context, topics []string, handler ConsumerGroupHandler) error { + // Ensure group is not closed + select { + case <-c.closed: + return ErrClosedConsumerGroup + default: + } + + c.lock.Lock() + defer c.lock.Unlock() + + // Quick exit when no topics are provided + if len(topics) == 0 { + return fmt.Errorf("no topics provided") + } + + // Refresh metadata for requested topics + if err := c.client.RefreshMetadata(topics...); err != nil { + return err + } + + // Init session + sess, err := c.newSession(ctx, topics, handler, c.config.Consumer.Group.Rebalance.Retry.Max) + if err == ErrClosedClient { + return ErrClosedConsumerGroup + } else if err != nil { + return err + } + + // loop check topic partition numbers changed + // will trigger rebalance when any topic partitions number had changed + // avoid Consume function called again that will generate more than loopCheckPartitionNumbers coroutine + go c.loopCheckPartitionNumbers(topics, sess) + + // Wait for session exit signal + <-sess.ctx.Done() + + // Gracefully release session claims + return sess.release(true) +} + +func (c *consumerGroup) retryNewSession(ctx context.Context, topics []string, handler ConsumerGroupHandler, retries int, refreshCoordinator bool) (*consumerGroupSession, error) { + select { + case <-c.closed: + return nil, ErrClosedConsumerGroup + case <-time.After(c.config.Consumer.Group.Rebalance.Retry.Backoff): + } + + if refreshCoordinator { + err := c.client.RefreshCoordinator(c.groupID) + if err != nil { + return c.retryNewSession(ctx, topics, handler, retries, true) + } + } + + return c.newSession(ctx, topics, handler, retries-1) +} + +func (c *consumerGroup) newSession(ctx context.Context, topics []string, handler ConsumerGroupHandler, retries int) (*consumerGroupSession, error) { + coordinator, err := c.client.Coordinator(c.groupID) + if err != nil { + if retries <= 0 { + return nil, err + } + + return c.retryNewSession(ctx, topics, handler, retries, true) + } + + // Join consumer group + join, err := c.joinGroupRequest(coordinator, topics) + if err != nil { + _ = coordinator.Close() + return nil, err + } + switch join.Err { + case ErrNoError: + c.memberID = join.MemberId + case ErrUnknownMemberId, ErrIllegalGeneration: // reset member ID and retry immediately + c.memberID = "" + return c.newSession(ctx, topics, handler, retries) + case ErrNotCoordinatorForConsumer: // retry after backoff with coordinator refresh + if retries <= 0 { + return nil, join.Err + } + + return c.retryNewSession(ctx, topics, handler, retries, true) + case ErrRebalanceInProgress: // retry after backoff + if retries <= 0 { + return nil, join.Err + } + + return c.retryNewSession(ctx, topics, handler, retries, false) + default: + return nil, join.Err + } + + // Prepare distribution plan if we joined as the leader + var plan BalanceStrategyPlan + if join.LeaderId == join.MemberId { + members, err := join.GetMembers() + if err != nil { + return nil, err + } + + plan, err = c.balance(members) + if err != nil { + return nil, err + } + } + + // Sync consumer group + sync, err := c.syncGroupRequest(coordinator, plan, join.GenerationId) + if err != nil { + _ = coordinator.Close() + return nil, err + } + switch sync.Err { + case ErrNoError: + case ErrUnknownMemberId, ErrIllegalGeneration: // reset member ID and retry immediately + c.memberID = "" + return c.newSession(ctx, topics, handler, retries) + case ErrNotCoordinatorForConsumer: // retry after backoff with coordinator refresh + if retries <= 0 { + return nil, sync.Err + } + + return c.retryNewSession(ctx, topics, handler, retries, true) + case ErrRebalanceInProgress: // retry after backoff + if retries <= 0 { + return nil, sync.Err + } + + return c.retryNewSession(ctx, topics, handler, retries, false) + default: + return nil, sync.Err + } + + // Retrieve and sort claims + var claims map[string][]int32 + if len(sync.MemberAssignment) > 0 { + members, err := sync.GetMemberAssignment() + if err != nil { + return nil, err + } + claims = members.Topics + c.userData = members.UserData + + for _, partitions := range claims { + sort.Sort(int32Slice(partitions)) + } + } + + return newConsumerGroupSession(ctx, c, claims, join.MemberId, join.GenerationId, handler) +} + +func (c *consumerGroup) joinGroupRequest(coordinator *Broker, topics []string) (*JoinGroupResponse, error) { + req := &JoinGroupRequest{ + GroupId: c.groupID, + MemberId: c.memberID, + SessionTimeout: int32(c.config.Consumer.Group.Session.Timeout / time.Millisecond), + ProtocolType: "consumer", + } + if c.config.Version.IsAtLeast(V0_10_1_0) { + req.Version = 1 + req.RebalanceTimeout = int32(c.config.Consumer.Group.Rebalance.Timeout / time.Millisecond) + } + + // use static user-data if configured, otherwise use consumer-group userdata from the last sync + userData := c.config.Consumer.Group.Member.UserData + if len(userData) == 0 { + userData = c.userData + } + meta := &ConsumerGroupMemberMetadata{ + Topics: topics, + UserData: userData, + } + strategy := c.config.Consumer.Group.Rebalance.Strategy + if err := req.AddGroupProtocolMetadata(strategy.Name(), meta); err != nil { + return nil, err + } + + return coordinator.JoinGroup(req) +} + +func (c *consumerGroup) syncGroupRequest(coordinator *Broker, plan BalanceStrategyPlan, generationID int32) (*SyncGroupResponse, error) { + req := &SyncGroupRequest{ + GroupId: c.groupID, + MemberId: c.memberID, + GenerationId: generationID, + } + strategy := c.config.Consumer.Group.Rebalance.Strategy + for memberID, topics := range plan { + assignment := &ConsumerGroupMemberAssignment{Topics: topics} + userDataBytes, err := strategy.AssignmentData(memberID, topics, generationID) + if err != nil { + return nil, err + } + assignment.UserData = userDataBytes + if err := req.AddGroupAssignmentMember(memberID, assignment); err != nil { + return nil, err + } + } + return coordinator.SyncGroup(req) +} + +func (c *consumerGroup) heartbeatRequest(coordinator *Broker, memberID string, generationID int32) (*HeartbeatResponse, error) { + req := &HeartbeatRequest{ + GroupId: c.groupID, + MemberId: memberID, + GenerationId: generationID, + } + + return coordinator.Heartbeat(req) +} + +func (c *consumerGroup) balance(members map[string]ConsumerGroupMemberMetadata) (BalanceStrategyPlan, error) { + topics := make(map[string][]int32) + for _, meta := range members { + for _, topic := range meta.Topics { + topics[topic] = nil + } + } + + for topic := range topics { + partitions, err := c.client.Partitions(topic) + if err != nil { + return nil, err + } + topics[topic] = partitions + } + + strategy := c.config.Consumer.Group.Rebalance.Strategy + return strategy.Plan(members, topics) +} + +// Leaves the cluster, called by Close. +func (c *consumerGroup) leave() error { + c.lock.Lock() + defer c.lock.Unlock() + if c.memberID == "" { + return nil + } + + coordinator, err := c.client.Coordinator(c.groupID) + if err != nil { + return err + } + + resp, err := coordinator.LeaveGroup(&LeaveGroupRequest{ + GroupId: c.groupID, + MemberId: c.memberID, + }) + if err != nil { + _ = coordinator.Close() + return err + } + + // Unset memberID + c.memberID = "" + + // Check response + switch resp.Err { + case ErrRebalanceInProgress, ErrUnknownMemberId, ErrNoError: + return nil + default: + return resp.Err + } +} + +func (c *consumerGroup) handleError(err error, topic string, partition int32) { + if _, ok := err.(*ConsumerError); !ok && topic != "" && partition > -1 { + err = &ConsumerError{ + Topic: topic, + Partition: partition, + Err: err, + } + } + + if !c.config.Consumer.Return.Errors { + Logger.Println(err) + return + } + + select { + case <-c.closed: + //consumer is closed + return + default: + } + + select { + case c.errors <- err: + default: + // no error listener + } +} + +func (c *consumerGroup) loopCheckPartitionNumbers(topics []string, session *consumerGroupSession) { + pause := time.NewTicker(c.config.Metadata.RefreshFrequency) + defer session.cancel() + defer pause.Stop() + var oldTopicToPartitionNum map[string]int + var err error + if oldTopicToPartitionNum, err = c.topicToPartitionNumbers(topics); err != nil { + return + } + for { + if newTopicToPartitionNum, err := c.topicToPartitionNumbers(topics); err != nil { + return + } else { + for topic, num := range oldTopicToPartitionNum { + if newTopicToPartitionNum[topic] != num { + return // trigger the end of the session on exit + } + } + } + select { + case <-pause.C: + case <-session.ctx.Done(): + Logger.Printf("loop check partition number coroutine will exit, topics %s", topics) + // if session closed by other, should be exited + return + case <-c.closed: + return + } + } +} + +func (c *consumerGroup) topicToPartitionNumbers(topics []string) (map[string]int, error) { + topicToPartitionNum := make(map[string]int, len(topics)) + for _, topic := range topics { + if partitionNum, err := c.client.Partitions(topic); err != nil { + Logger.Printf("Consumer Group topic %s get partition number failed %v", topic, err) + return nil, err + } else { + topicToPartitionNum[topic] = len(partitionNum) + } + } + return topicToPartitionNum, nil +} + +// -------------------------------------------------------------------- + +// ConsumerGroupSession represents a consumer group member session. +type ConsumerGroupSession interface { + // Claims returns information about the claimed partitions by topic. + Claims() map[string][]int32 + + // MemberID returns the cluster member ID. + MemberID() string + + // GenerationID returns the current generation ID. + GenerationID() int32 + + // MarkOffset marks the provided offset, alongside a metadata string + // that represents the state of the partition consumer at that point in time. The + // metadata string can be used by another consumer to restore that state, so it + // can resume consumption. + // + // To follow upstream conventions, you are expected to mark the offset of the + // next message to read, not the last message read. Thus, when calling `MarkOffset` + // you should typically add one to the offset of the last consumed message. + // + // Note: calling MarkOffset does not necessarily commit the offset to the backend + // store immediately for efficiency reasons, and it may never be committed if + // your application crashes. This means that you may end up processing the same + // message twice, and your processing should ideally be idempotent. + MarkOffset(topic string, partition int32, offset int64, metadata string) + + // ResetOffset resets to the provided offset, alongside a metadata string that + // represents the state of the partition consumer at that point in time. Reset + // acts as a counterpart to MarkOffset, the difference being that it allows to + // reset an offset to an earlier or smaller value, where MarkOffset only + // allows incrementing the offset. cf MarkOffset for more details. + ResetOffset(topic string, partition int32, offset int64, metadata string) + + // MarkMessage marks a message as consumed. + MarkMessage(msg *ConsumerMessage, metadata string) + + // Context returns the session context. + Context() context.Context +} + +type consumerGroupSession struct { + parent *consumerGroup + memberID string + generationID int32 + handler ConsumerGroupHandler + + claims map[string][]int32 + offsets *offsetManager + ctx context.Context + cancel func() + + waitGroup sync.WaitGroup + releaseOnce sync.Once + hbDying, hbDead chan none +} + +func newConsumerGroupSession(ctx context.Context, parent *consumerGroup, claims map[string][]int32, memberID string, generationID int32, handler ConsumerGroupHandler) (*consumerGroupSession, error) { + // init offset manager + offsets, err := newOffsetManagerFromClient(parent.groupID, memberID, generationID, parent.client) + if err != nil { + return nil, err + } + + // init context + ctx, cancel := context.WithCancel(ctx) + + // init session + sess := &consumerGroupSession{ + parent: parent, + memberID: memberID, + generationID: generationID, + handler: handler, + offsets: offsets, + claims: claims, + ctx: ctx, + cancel: cancel, + hbDying: make(chan none), + hbDead: make(chan none), + } + + // start heartbeat loop + go sess.heartbeatLoop() + + // create a POM for each claim + for topic, partitions := range claims { + for _, partition := range partitions { + pom, err := offsets.ManagePartition(topic, partition) + if err != nil { + _ = sess.release(false) + return nil, err + } + + // handle POM errors + go func(topic string, partition int32) { + for err := range pom.Errors() { + sess.parent.handleError(err, topic, partition) + } + }(topic, partition) + } + } + + // perform setup + if err := handler.Setup(sess); err != nil { + _ = sess.release(true) + return nil, err + } + + // start consuming + for topic, partitions := range claims { + for _, partition := range partitions { + sess.waitGroup.Add(1) + + go func(topic string, partition int32) { + defer sess.waitGroup.Done() + + // cancel the as session as soon as the first + // goroutine exits + defer sess.cancel() + + // consume a single topic/partition, blocking + sess.consume(topic, partition) + }(topic, partition) + } + } + return sess, nil +} + +func (s *consumerGroupSession) Claims() map[string][]int32 { return s.claims } +func (s *consumerGroupSession) MemberID() string { return s.memberID } +func (s *consumerGroupSession) GenerationID() int32 { return s.generationID } + +func (s *consumerGroupSession) MarkOffset(topic string, partition int32, offset int64, metadata string) { + if pom := s.offsets.findPOM(topic, partition); pom != nil { + pom.MarkOffset(offset, metadata) + } +} + +func (s *consumerGroupSession) ResetOffset(topic string, partition int32, offset int64, metadata string) { + if pom := s.offsets.findPOM(topic, partition); pom != nil { + pom.ResetOffset(offset, metadata) + } +} + +func (s *consumerGroupSession) MarkMessage(msg *ConsumerMessage, metadata string) { + s.MarkOffset(msg.Topic, msg.Partition, msg.Offset+1, metadata) +} + +func (s *consumerGroupSession) Context() context.Context { + return s.ctx +} + +func (s *consumerGroupSession) consume(topic string, partition int32) { + // quick exit if rebalance is due + select { + case <-s.ctx.Done(): + return + case <-s.parent.closed: + return + default: + } + + // get next offset + offset := s.parent.config.Consumer.Offsets.Initial + if pom := s.offsets.findPOM(topic, partition); pom != nil { + offset, _ = pom.NextOffset() + } + + // create new claim + claim, err := newConsumerGroupClaim(s, topic, partition, offset) + if err != nil { + s.parent.handleError(err, topic, partition) + return + } + + // handle errors + go func() { + for err := range claim.Errors() { + s.parent.handleError(err, topic, partition) + } + }() + + // trigger close when session is done + go func() { + select { + case <-s.ctx.Done(): + case <-s.parent.closed: + } + claim.AsyncClose() + }() + + // start processing + if err := s.handler.ConsumeClaim(s, claim); err != nil { + s.parent.handleError(err, topic, partition) + } + + // ensure consumer is closed & drained + claim.AsyncClose() + for _, err := range claim.waitClosed() { + s.parent.handleError(err, topic, partition) + } +} + +func (s *consumerGroupSession) release(withCleanup bool) (err error) { + // signal release, stop heartbeat + s.cancel() + + // wait for consumers to exit + s.waitGroup.Wait() + + // perform release + s.releaseOnce.Do(func() { + if withCleanup { + if e := s.handler.Cleanup(s); e != nil { + s.parent.handleError(e, "", -1) + err = e + } + } + + if e := s.offsets.Close(); e != nil { + err = e + } + + close(s.hbDying) + <-s.hbDead + }) + + return +} + +func (s *consumerGroupSession) heartbeatLoop() { + defer close(s.hbDead) + defer s.cancel() // trigger the end of the session on exit + + pause := time.NewTicker(s.parent.config.Consumer.Group.Heartbeat.Interval) + defer pause.Stop() + + retries := s.parent.config.Metadata.Retry.Max + for { + coordinator, err := s.parent.client.Coordinator(s.parent.groupID) + if err != nil { + if retries <= 0 { + s.parent.handleError(err, "", -1) + return + } + + select { + case <-s.hbDying: + return + case <-time.After(s.parent.config.Metadata.Retry.Backoff): + retries-- + } + continue + } + + resp, err := s.parent.heartbeatRequest(coordinator, s.memberID, s.generationID) + if err != nil { + _ = coordinator.Close() + + if retries <= 0 { + s.parent.handleError(err, "", -1) + return + } + + retries-- + continue + } + + switch resp.Err { + case ErrNoError: + retries = s.parent.config.Metadata.Retry.Max + case ErrRebalanceInProgress, ErrUnknownMemberId, ErrIllegalGeneration: + return + default: + s.parent.handleError(err, "", -1) + return + } + + select { + case <-pause.C: + case <-s.hbDying: + return + } + } +} + +// -------------------------------------------------------------------- + +// ConsumerGroupHandler instances are used to handle individual topic/partition claims. +// It also provides hooks for your consumer group session life-cycle and allow you to +// trigger logic before or after the consume loop(s). +// +// PLEASE NOTE that handlers are likely be called from several goroutines concurrently, +// ensure that all state is safely protected against race conditions. +type ConsumerGroupHandler interface { + // Setup is run at the beginning of a new session, before ConsumeClaim. + Setup(ConsumerGroupSession) error + + // Cleanup is run at the end of a session, once all ConsumeClaim goroutines have exited + // but before the offsets are committed for the very last time. + Cleanup(ConsumerGroupSession) error + + // ConsumeClaim must start a consumer loop of ConsumerGroupClaim's Messages(). + // Once the Messages() channel is closed, the Handler must finish its processing + // loop and exit. + ConsumeClaim(ConsumerGroupSession, ConsumerGroupClaim) error +} + +// ConsumerGroupClaim processes Kafka messages from a given topic and partition within a consumer group. +type ConsumerGroupClaim interface { + // Topic returns the consumed topic name. + Topic() string + + // Partition returns the consumed partition. + Partition() int32 + + // InitialOffset returns the initial offset that was used as a starting point for this claim. + InitialOffset() int64 + + // HighWaterMarkOffset returns the high water mark offset of the partition, + // i.e. the offset that will be used for the next message that will be produced. + // You can use this to determine how far behind the processing is. + HighWaterMarkOffset() int64 + + // Messages returns the read channel for the messages that are returned by + // the broker. The messages channel will be closed when a new rebalance cycle + // is due. You must finish processing and mark offsets within + // Config.Consumer.Group.Session.Timeout before the topic/partition is eventually + // re-assigned to another group member. + Messages() <-chan *ConsumerMessage +} + +type consumerGroupClaim struct { + topic string + partition int32 + offset int64 + PartitionConsumer +} + +func newConsumerGroupClaim(sess *consumerGroupSession, topic string, partition int32, offset int64) (*consumerGroupClaim, error) { + pcm, err := sess.parent.consumer.ConsumePartition(topic, partition, offset) + if err == ErrOffsetOutOfRange { + offset = sess.parent.config.Consumer.Offsets.Initial + pcm, err = sess.parent.consumer.ConsumePartition(topic, partition, offset) + } + if err != nil { + return nil, err + } + + go func() { + for err := range pcm.Errors() { + sess.parent.handleError(err, topic, partition) + } + }() + + return &consumerGroupClaim{ + topic: topic, + partition: partition, + offset: offset, + PartitionConsumer: pcm, + }, nil +} + +func (c *consumerGroupClaim) Topic() string { return c.topic } +func (c *consumerGroupClaim) Partition() int32 { return c.partition } +func (c *consumerGroupClaim) InitialOffset() int64 { return c.offset } + +// Drains messages and errors, ensures the claim is fully closed. +func (c *consumerGroupClaim) waitClosed() (errs ConsumerErrors) { + go func() { + for range c.Messages() { + } + }() + + for err := range c.Errors() { + errs = append(errs, err) + } + return +} diff --git a/vendor/github.com/Shopify/sarama/consumer_group_members.go b/vendor/github.com/Shopify/sarama/consumer_group_members.go new file mode 100644 index 0000000..2d02cc3 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/consumer_group_members.go @@ -0,0 +1,96 @@ +package sarama + +//ConsumerGroupMemberMetadata holds the metadata for consumer group +type ConsumerGroupMemberMetadata struct { + Version int16 + Topics []string + UserData []byte +} + +func (m *ConsumerGroupMemberMetadata) encode(pe packetEncoder) error { + pe.putInt16(m.Version) + + if err := pe.putStringArray(m.Topics); err != nil { + return err + } + + if err := pe.putBytes(m.UserData); err != nil { + return err + } + + return nil +} + +func (m *ConsumerGroupMemberMetadata) decode(pd packetDecoder) (err error) { + if m.Version, err = pd.getInt16(); err != nil { + return + } + + if m.Topics, err = pd.getStringArray(); err != nil { + return + } + + if m.UserData, err = pd.getBytes(); err != nil { + return + } + + return nil +} + +//ConsumerGroupMemberAssignment holds the member assignment for a consume group +type ConsumerGroupMemberAssignment struct { + Version int16 + Topics map[string][]int32 + UserData []byte +} + +func (m *ConsumerGroupMemberAssignment) encode(pe packetEncoder) error { + pe.putInt16(m.Version) + + if err := pe.putArrayLength(len(m.Topics)); err != nil { + return err + } + + for topic, partitions := range m.Topics { + if err := pe.putString(topic); err != nil { + return err + } + if err := pe.putInt32Array(partitions); err != nil { + return err + } + } + + if err := pe.putBytes(m.UserData); err != nil { + return err + } + + return nil +} + +func (m *ConsumerGroupMemberAssignment) decode(pd packetDecoder) (err error) { + if m.Version, err = pd.getInt16(); err != nil { + return + } + + var topicLen int + if topicLen, err = pd.getArrayLength(); err != nil { + return + } + + m.Topics = make(map[string][]int32, topicLen) + for i := 0; i < topicLen; i++ { + var topic string + if topic, err = pd.getString(); err != nil { + return + } + if m.Topics[topic], err = pd.getInt32Array(); err != nil { + return + } + } + + if m.UserData, err = pd.getBytes(); err != nil { + return + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/consumer_metadata_request.go b/vendor/github.com/Shopify/sarama/consumer_metadata_request.go new file mode 100644 index 0000000..a8dcaef --- /dev/null +++ b/vendor/github.com/Shopify/sarama/consumer_metadata_request.go @@ -0,0 +1,34 @@ +package sarama + +//ConsumerMetadataRequest is used for metadata requests +type ConsumerMetadataRequest struct { + ConsumerGroup string +} + +func (r *ConsumerMetadataRequest) encode(pe packetEncoder) error { + tmp := new(FindCoordinatorRequest) + tmp.CoordinatorKey = r.ConsumerGroup + tmp.CoordinatorType = CoordinatorGroup + return tmp.encode(pe) +} + +func (r *ConsumerMetadataRequest) decode(pd packetDecoder, version int16) (err error) { + tmp := new(FindCoordinatorRequest) + if err := tmp.decode(pd, version); err != nil { + return err + } + r.ConsumerGroup = tmp.CoordinatorKey + return nil +} + +func (r *ConsumerMetadataRequest) key() int16 { + return 10 +} + +func (r *ConsumerMetadataRequest) version() int16 { + return 0 +} + +func (r *ConsumerMetadataRequest) requiredVersion() KafkaVersion { + return V0_8_2_0 +} diff --git a/vendor/github.com/Shopify/sarama/consumer_metadata_response.go b/vendor/github.com/Shopify/sarama/consumer_metadata_response.go new file mode 100644 index 0000000..f39a871 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/consumer_metadata_response.go @@ -0,0 +1,78 @@ +package sarama + +import ( + "net" + "strconv" +) + +//ConsumerMetadataResponse holds the response for a consumer group meta data requests +type ConsumerMetadataResponse struct { + Err KError + Coordinator *Broker + CoordinatorID int32 // deprecated: use Coordinator.ID() + CoordinatorHost string // deprecated: use Coordinator.Addr() + CoordinatorPort int32 // deprecated: use Coordinator.Addr() +} + +func (r *ConsumerMetadataResponse) decode(pd packetDecoder, version int16) (err error) { + tmp := new(FindCoordinatorResponse) + + if err := tmp.decode(pd, version); err != nil { + return err + } + + r.Err = tmp.Err + + r.Coordinator = tmp.Coordinator + if tmp.Coordinator == nil { + return nil + } + + // this can all go away in 2.0, but we have to fill in deprecated fields to maintain + // backwards compatibility + host, portstr, err := net.SplitHostPort(r.Coordinator.Addr()) + if err != nil { + return err + } + port, err := strconv.ParseInt(portstr, 10, 32) + if err != nil { + return err + } + r.CoordinatorID = r.Coordinator.ID() + r.CoordinatorHost = host + r.CoordinatorPort = int32(port) + + return nil +} + +func (r *ConsumerMetadataResponse) encode(pe packetEncoder) error { + if r.Coordinator == nil { + r.Coordinator = new(Broker) + r.Coordinator.id = r.CoordinatorID + r.Coordinator.addr = net.JoinHostPort(r.CoordinatorHost, strconv.Itoa(int(r.CoordinatorPort))) + } + + tmp := &FindCoordinatorResponse{ + Version: 0, + Err: r.Err, + Coordinator: r.Coordinator, + } + + if err := tmp.encode(pe); err != nil { + return err + } + + return nil +} + +func (r *ConsumerMetadataResponse) key() int16 { + return 10 +} + +func (r *ConsumerMetadataResponse) version() int16 { + return 0 +} + +func (r *ConsumerMetadataResponse) requiredVersion() KafkaVersion { + return V0_8_2_0 +} diff --git a/vendor/github.com/Shopify/sarama/control_record.go b/vendor/github.com/Shopify/sarama/control_record.go new file mode 100644 index 0000000..9b75ab5 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/control_record.go @@ -0,0 +1,72 @@ +package sarama + +//ControlRecordType ... +type ControlRecordType int + +const ( + //ControlRecordAbort is a control record for abort + ControlRecordAbort ControlRecordType = iota + //ControlRecordCommit is a control record for commit + ControlRecordCommit + //ControlRecordUnknown is a control record of unknown type + ControlRecordUnknown +) + +// Control records are returned as a record by fetchRequest +// However unlike "normal" records, they mean nothing application wise. +// They only serve internal logic for supporting transactions. +type ControlRecord struct { + Version int16 + CoordinatorEpoch int32 + Type ControlRecordType +} + +func (cr *ControlRecord) decode(key, value packetDecoder) error { + var err error + cr.Version, err = value.getInt16() + if err != nil { + return err + } + + cr.CoordinatorEpoch, err = value.getInt32() + if err != nil { + return err + } + + // There a version for the value part AND the key part. And I have no idea if they are supposed to match or not + // Either way, all these version can only be 0 for now + cr.Version, err = key.getInt16() + if err != nil { + return err + } + + recordType, err := key.getInt16() + if err != nil { + return err + } + + switch recordType { + case 0: + cr.Type = ControlRecordAbort + case 1: + cr.Type = ControlRecordCommit + default: + // from JAVA implementation: + // UNKNOWN is used to indicate a control type which the client is not aware of and should be ignored + cr.Type = ControlRecordUnknown + } + return nil +} + +func (cr *ControlRecord) encode(key, value packetEncoder) { + value.putInt16(cr.Version) + value.putInt32(cr.CoordinatorEpoch) + key.putInt16(cr.Version) + + switch cr.Type { + case ControlRecordAbort: + key.putInt16(0) + case ControlRecordCommit: + key.putInt16(1) + } +} diff --git a/vendor/github.com/Shopify/sarama/crc32_field.go b/vendor/github.com/Shopify/sarama/crc32_field.go new file mode 100644 index 0000000..38189a3 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/crc32_field.go @@ -0,0 +1,86 @@ +package sarama + +import ( + "encoding/binary" + "fmt" + "hash/crc32" + "sync" +) + +type crcPolynomial int8 + +const ( + crcIEEE crcPolynomial = iota + crcCastagnoli +) + +var crc32FieldPool = sync.Pool{} + +func acquireCrc32Field(polynomial crcPolynomial) *crc32Field { + val := crc32FieldPool.Get() + if val != nil { + c := val.(*crc32Field) + c.polynomial = polynomial + return c + } + return newCRC32Field(polynomial) +} + +func releaseCrc32Field(c *crc32Field) { + crc32FieldPool.Put(c) +} + +var castagnoliTable = crc32.MakeTable(crc32.Castagnoli) + +// crc32Field implements the pushEncoder and pushDecoder interfaces for calculating CRC32s. +type crc32Field struct { + startOffset int + polynomial crcPolynomial +} + +func (c *crc32Field) saveOffset(in int) { + c.startOffset = in +} + +func (c *crc32Field) reserveLength() int { + return 4 +} + +func newCRC32Field(polynomial crcPolynomial) *crc32Field { + return &crc32Field{polynomial: polynomial} +} + +func (c *crc32Field) run(curOffset int, buf []byte) error { + crc, err := c.crc(curOffset, buf) + if err != nil { + return err + } + binary.BigEndian.PutUint32(buf[c.startOffset:], crc) + return nil +} + +func (c *crc32Field) check(curOffset int, buf []byte) error { + crc, err := c.crc(curOffset, buf) + if err != nil { + return err + } + + expected := binary.BigEndian.Uint32(buf[c.startOffset:]) + if crc != expected { + return PacketDecodingError{fmt.Sprintf("CRC didn't match expected %#x got %#x", expected, crc)} + } + + return nil +} +func (c *crc32Field) crc(curOffset int, buf []byte) (uint32, error) { + var tab *crc32.Table + switch c.polynomial { + case crcIEEE: + tab = crc32.IEEETable + case crcCastagnoli: + tab = castagnoliTable + default: + return 0, PacketDecodingError{"invalid CRC type"} + } + return crc32.Checksum(buf[c.startOffset+4:curOffset], tab), nil +} diff --git a/vendor/github.com/Shopify/sarama/create_partitions_request.go b/vendor/github.com/Shopify/sarama/create_partitions_request.go new file mode 100644 index 0000000..af321e9 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/create_partitions_request.go @@ -0,0 +1,121 @@ +package sarama + +import "time" + +type CreatePartitionsRequest struct { + TopicPartitions map[string]*TopicPartition + Timeout time.Duration + ValidateOnly bool +} + +func (c *CreatePartitionsRequest) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(c.TopicPartitions)); err != nil { + return err + } + + for topic, partition := range c.TopicPartitions { + if err := pe.putString(topic); err != nil { + return err + } + if err := partition.encode(pe); err != nil { + return err + } + } + + pe.putInt32(int32(c.Timeout / time.Millisecond)) + + pe.putBool(c.ValidateOnly) + + return nil +} + +func (c *CreatePartitionsRequest) decode(pd packetDecoder, version int16) (err error) { + n, err := pd.getArrayLength() + if err != nil { + return err + } + c.TopicPartitions = make(map[string]*TopicPartition, n) + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + c.TopicPartitions[topic] = new(TopicPartition) + if err := c.TopicPartitions[topic].decode(pd, version); err != nil { + return err + } + } + + timeout, err := pd.getInt32() + if err != nil { + return err + } + c.Timeout = time.Duration(timeout) * time.Millisecond + + if c.ValidateOnly, err = pd.getBool(); err != nil { + return err + } + + return nil +} + +func (r *CreatePartitionsRequest) key() int16 { + return 37 +} + +func (r *CreatePartitionsRequest) version() int16 { + return 0 +} + +func (r *CreatePartitionsRequest) requiredVersion() KafkaVersion { + return V1_0_0_0 +} + +type TopicPartition struct { + Count int32 + Assignment [][]int32 +} + +func (t *TopicPartition) encode(pe packetEncoder) error { + pe.putInt32(t.Count) + + if len(t.Assignment) == 0 { + pe.putInt32(-1) + return nil + } + + if err := pe.putArrayLength(len(t.Assignment)); err != nil { + return err + } + + for _, assign := range t.Assignment { + if err := pe.putInt32Array(assign); err != nil { + return err + } + } + + return nil +} + +func (t *TopicPartition) decode(pd packetDecoder, version int16) (err error) { + if t.Count, err = pd.getInt32(); err != nil { + return err + } + + n, err := pd.getInt32() + if err != nil { + return err + } + if n <= 0 { + return nil + } + t.Assignment = make([][]int32, n) + + for i := 0; i < int(n); i++ { + if t.Assignment[i], err = pd.getInt32Array(); err != nil { + return err + } + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/create_partitions_response.go b/vendor/github.com/Shopify/sarama/create_partitions_response.go new file mode 100644 index 0000000..bb18204 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/create_partitions_response.go @@ -0,0 +1,105 @@ +package sarama + +import ( + "fmt" + "time" +) + +type CreatePartitionsResponse struct { + ThrottleTime time.Duration + TopicPartitionErrors map[string]*TopicPartitionError +} + +func (c *CreatePartitionsResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(c.ThrottleTime / time.Millisecond)) + if err := pe.putArrayLength(len(c.TopicPartitionErrors)); err != nil { + return err + } + + for topic, partitionError := range c.TopicPartitionErrors { + if err := pe.putString(topic); err != nil { + return err + } + if err := partitionError.encode(pe); err != nil { + return err + } + } + + return nil +} + +func (c *CreatePartitionsResponse) decode(pd packetDecoder, version int16) (err error) { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + c.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + c.TopicPartitionErrors = make(map[string]*TopicPartitionError, n) + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + c.TopicPartitionErrors[topic] = new(TopicPartitionError) + if err := c.TopicPartitionErrors[topic].decode(pd, version); err != nil { + return err + } + } + + return nil +} + +func (r *CreatePartitionsResponse) key() int16 { + return 37 +} + +func (r *CreatePartitionsResponse) version() int16 { + return 0 +} + +func (r *CreatePartitionsResponse) requiredVersion() KafkaVersion { + return V1_0_0_0 +} + +type TopicPartitionError struct { + Err KError + ErrMsg *string +} + +func (t *TopicPartitionError) Error() string { + text := t.Err.Error() + if t.ErrMsg != nil { + text = fmt.Sprintf("%s - %s", text, *t.ErrMsg) + } + return text +} + +func (t *TopicPartitionError) encode(pe packetEncoder) error { + pe.putInt16(int16(t.Err)) + + if err := pe.putNullableString(t.ErrMsg); err != nil { + return err + } + + return nil +} + +func (t *TopicPartitionError) decode(pd packetDecoder, version int16) (err error) { + kerr, err := pd.getInt16() + if err != nil { + return err + } + t.Err = KError(kerr) + + if t.ErrMsg, err = pd.getNullableString(); err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/create_topics_request.go b/vendor/github.com/Shopify/sarama/create_topics_request.go new file mode 100644 index 0000000..709c0a4 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/create_topics_request.go @@ -0,0 +1,174 @@ +package sarama + +import ( + "time" +) + +type CreateTopicsRequest struct { + Version int16 + + TopicDetails map[string]*TopicDetail + Timeout time.Duration + ValidateOnly bool +} + +func (c *CreateTopicsRequest) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(c.TopicDetails)); err != nil { + return err + } + for topic, detail := range c.TopicDetails { + if err := pe.putString(topic); err != nil { + return err + } + if err := detail.encode(pe); err != nil { + return err + } + } + + pe.putInt32(int32(c.Timeout / time.Millisecond)) + + if c.Version >= 1 { + pe.putBool(c.ValidateOnly) + } + + return nil +} + +func (c *CreateTopicsRequest) decode(pd packetDecoder, version int16) (err error) { + n, err := pd.getArrayLength() + if err != nil { + return err + } + + c.TopicDetails = make(map[string]*TopicDetail, n) + + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + c.TopicDetails[topic] = new(TopicDetail) + if err = c.TopicDetails[topic].decode(pd, version); err != nil { + return err + } + } + + timeout, err := pd.getInt32() + if err != nil { + return err + } + c.Timeout = time.Duration(timeout) * time.Millisecond + + if version >= 1 { + c.ValidateOnly, err = pd.getBool() + if err != nil { + return err + } + + c.Version = version + } + + return nil +} + +func (c *CreateTopicsRequest) key() int16 { + return 19 +} + +func (c *CreateTopicsRequest) version() int16 { + return c.Version +} + +func (c *CreateTopicsRequest) requiredVersion() KafkaVersion { + switch c.Version { + case 2: + return V1_0_0_0 + case 1: + return V0_11_0_0 + default: + return V0_10_1_0 + } +} + +type TopicDetail struct { + NumPartitions int32 + ReplicationFactor int16 + ReplicaAssignment map[int32][]int32 + ConfigEntries map[string]*string +} + +func (t *TopicDetail) encode(pe packetEncoder) error { + pe.putInt32(t.NumPartitions) + pe.putInt16(t.ReplicationFactor) + + if err := pe.putArrayLength(len(t.ReplicaAssignment)); err != nil { + return err + } + for partition, assignment := range t.ReplicaAssignment { + pe.putInt32(partition) + if err := pe.putInt32Array(assignment); err != nil { + return err + } + } + + if err := pe.putArrayLength(len(t.ConfigEntries)); err != nil { + return err + } + for configKey, configValue := range t.ConfigEntries { + if err := pe.putString(configKey); err != nil { + return err + } + if err := pe.putNullableString(configValue); err != nil { + return err + } + } + + return nil +} + +func (t *TopicDetail) decode(pd packetDecoder, version int16) (err error) { + if t.NumPartitions, err = pd.getInt32(); err != nil { + return err + } + if t.ReplicationFactor, err = pd.getInt16(); err != nil { + return err + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + if n > 0 { + t.ReplicaAssignment = make(map[int32][]int32, n) + for i := 0; i < n; i++ { + replica, err := pd.getInt32() + if err != nil { + return err + } + if t.ReplicaAssignment[replica], err = pd.getInt32Array(); err != nil { + return err + } + } + } + + n, err = pd.getArrayLength() + if err != nil { + return err + } + + if n > 0 { + t.ConfigEntries = make(map[string]*string, n) + for i := 0; i < n; i++ { + configKey, err := pd.getString() + if err != nil { + return err + } + if t.ConfigEntries[configKey], err = pd.getNullableString(); err != nil { + return err + } + } + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/create_topics_response.go b/vendor/github.com/Shopify/sarama/create_topics_response.go new file mode 100644 index 0000000..a493e02 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/create_topics_response.go @@ -0,0 +1,123 @@ +package sarama + +import ( + "fmt" + "time" +) + +type CreateTopicsResponse struct { + Version int16 + ThrottleTime time.Duration + TopicErrors map[string]*TopicError +} + +func (c *CreateTopicsResponse) encode(pe packetEncoder) error { + if c.Version >= 2 { + pe.putInt32(int32(c.ThrottleTime / time.Millisecond)) + } + + if err := pe.putArrayLength(len(c.TopicErrors)); err != nil { + return err + } + for topic, topicError := range c.TopicErrors { + if err := pe.putString(topic); err != nil { + return err + } + if err := topicError.encode(pe, c.Version); err != nil { + return err + } + } + + return nil +} + +func (c *CreateTopicsResponse) decode(pd packetDecoder, version int16) (err error) { + c.Version = version + + if version >= 2 { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + c.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + c.TopicErrors = make(map[string]*TopicError, n) + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + c.TopicErrors[topic] = new(TopicError) + if err := c.TopicErrors[topic].decode(pd, version); err != nil { + return err + } + } + + return nil +} + +func (c *CreateTopicsResponse) key() int16 { + return 19 +} + +func (c *CreateTopicsResponse) version() int16 { + return c.Version +} + +func (c *CreateTopicsResponse) requiredVersion() KafkaVersion { + switch c.Version { + case 2: + return V1_0_0_0 + case 1: + return V0_11_0_0 + default: + return V0_10_1_0 + } +} + +type TopicError struct { + Err KError + ErrMsg *string +} + +func (t *TopicError) Error() string { + text := t.Err.Error() + if t.ErrMsg != nil { + text = fmt.Sprintf("%s - %s", text, *t.ErrMsg) + } + return text +} + +func (t *TopicError) encode(pe packetEncoder, version int16) error { + pe.putInt16(int16(t.Err)) + + if version >= 1 { + if err := pe.putNullableString(t.ErrMsg); err != nil { + return err + } + } + + return nil +} + +func (t *TopicError) decode(pd packetDecoder, version int16) (err error) { + kErr, err := pd.getInt16() + if err != nil { + return err + } + t.Err = KError(kErr) + + if version >= 1 { + if t.ErrMsg, err = pd.getNullableString(); err != nil { + return err + } + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/decompress.go b/vendor/github.com/Shopify/sarama/decompress.go new file mode 100644 index 0000000..eaccbfc --- /dev/null +++ b/vendor/github.com/Shopify/sarama/decompress.go @@ -0,0 +1,63 @@ +package sarama + +import ( + "bytes" + "compress/gzip" + "fmt" + "io/ioutil" + "sync" + + "github.com/eapache/go-xerial-snappy" + "github.com/pierrec/lz4" +) + +var ( + lz4ReaderPool = sync.Pool{ + New: func() interface{} { + return lz4.NewReader(nil) + }, + } + + gzipReaderPool sync.Pool +) + +func decompress(cc CompressionCodec, data []byte) ([]byte, error) { + switch cc { + case CompressionNone: + return data, nil + case CompressionGZIP: + var ( + err error + reader *gzip.Reader + readerIntf = gzipReaderPool.Get() + ) + if readerIntf != nil { + reader = readerIntf.(*gzip.Reader) + } else { + reader, err = gzip.NewReader(bytes.NewReader(data)) + if err != nil { + return nil, err + } + } + + defer gzipReaderPool.Put(reader) + + if err := reader.Reset(bytes.NewReader(data)); err != nil { + return nil, err + } + + return ioutil.ReadAll(reader) + case CompressionSnappy: + return snappy.Decode(data) + case CompressionLZ4: + reader := lz4ReaderPool.Get().(*lz4.Reader) + defer lz4ReaderPool.Put(reader) + + reader.Reset(bytes.NewReader(data)) + return ioutil.ReadAll(reader) + case CompressionZSTD: + return zstdDecompress(nil, data) + default: + return nil, PacketDecodingError{fmt.Sprintf("invalid compression specified (%d)", cc)} + } +} diff --git a/vendor/github.com/Shopify/sarama/delete_groups_request.go b/vendor/github.com/Shopify/sarama/delete_groups_request.go new file mode 100644 index 0000000..305a324 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/delete_groups_request.go @@ -0,0 +1,30 @@ +package sarama + +type DeleteGroupsRequest struct { + Groups []string +} + +func (r *DeleteGroupsRequest) encode(pe packetEncoder) error { + return pe.putStringArray(r.Groups) +} + +func (r *DeleteGroupsRequest) decode(pd packetDecoder, version int16) (err error) { + r.Groups, err = pd.getStringArray() + return +} + +func (r *DeleteGroupsRequest) key() int16 { + return 42 +} + +func (r *DeleteGroupsRequest) version() int16 { + return 0 +} + +func (r *DeleteGroupsRequest) requiredVersion() KafkaVersion { + return V1_1_0_0 +} + +func (r *DeleteGroupsRequest) AddGroup(group string) { + r.Groups = append(r.Groups, group) +} diff --git a/vendor/github.com/Shopify/sarama/delete_groups_response.go b/vendor/github.com/Shopify/sarama/delete_groups_response.go new file mode 100644 index 0000000..c067ebb --- /dev/null +++ b/vendor/github.com/Shopify/sarama/delete_groups_response.go @@ -0,0 +1,70 @@ +package sarama + +import ( + "time" +) + +type DeleteGroupsResponse struct { + ThrottleTime time.Duration + GroupErrorCodes map[string]KError +} + +func (r *DeleteGroupsResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(r.ThrottleTime / time.Millisecond)) + + if err := pe.putArrayLength(len(r.GroupErrorCodes)); err != nil { + return err + } + for groupID, errorCode := range r.GroupErrorCodes { + if err := pe.putString(groupID); err != nil { + return err + } + pe.putInt16(int16(errorCode)) + } + + return nil +} + +func (r *DeleteGroupsResponse) decode(pd packetDecoder, version int16) error { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + r.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + n, err := pd.getArrayLength() + if err != nil { + return err + } + if n == 0 { + return nil + } + + r.GroupErrorCodes = make(map[string]KError, n) + for i := 0; i < n; i++ { + groupID, err := pd.getString() + if err != nil { + return err + } + errorCode, err := pd.getInt16() + if err != nil { + return err + } + + r.GroupErrorCodes[groupID] = KError(errorCode) + } + + return nil +} + +func (r *DeleteGroupsResponse) key() int16 { + return 42 +} + +func (r *DeleteGroupsResponse) version() int16 { + return 0 +} + +func (r *DeleteGroupsResponse) requiredVersion() KafkaVersion { + return V1_1_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/delete_records_request.go b/vendor/github.com/Shopify/sarama/delete_records_request.go new file mode 100644 index 0000000..93efafd --- /dev/null +++ b/vendor/github.com/Shopify/sarama/delete_records_request.go @@ -0,0 +1,126 @@ +package sarama + +import ( + "sort" + "time" +) + +// request message format is: +// [topic] timeout(int32) +// where topic is: +// name(string) [partition] +// where partition is: +// id(int32) offset(int64) + +type DeleteRecordsRequest struct { + Topics map[string]*DeleteRecordsRequestTopic + Timeout time.Duration +} + +func (d *DeleteRecordsRequest) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(d.Topics)); err != nil { + return err + } + keys := make([]string, 0, len(d.Topics)) + for topic := range d.Topics { + keys = append(keys, topic) + } + sort.Strings(keys) + for _, topic := range keys { + if err := pe.putString(topic); err != nil { + return err + } + if err := d.Topics[topic].encode(pe); err != nil { + return err + } + } + pe.putInt32(int32(d.Timeout / time.Millisecond)) + + return nil +} + +func (d *DeleteRecordsRequest) decode(pd packetDecoder, version int16) error { + n, err := pd.getArrayLength() + if err != nil { + return err + } + + if n > 0 { + d.Topics = make(map[string]*DeleteRecordsRequestTopic, n) + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + details := new(DeleteRecordsRequestTopic) + if err = details.decode(pd, version); err != nil { + return err + } + d.Topics[topic] = details + } + } + + timeout, err := pd.getInt32() + if err != nil { + return err + } + d.Timeout = time.Duration(timeout) * time.Millisecond + + return nil +} + +func (d *DeleteRecordsRequest) key() int16 { + return 21 +} + +func (d *DeleteRecordsRequest) version() int16 { + return 0 +} + +func (d *DeleteRecordsRequest) requiredVersion() KafkaVersion { + return V0_11_0_0 +} + +type DeleteRecordsRequestTopic struct { + PartitionOffsets map[int32]int64 // partition => offset +} + +func (t *DeleteRecordsRequestTopic) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(t.PartitionOffsets)); err != nil { + return err + } + keys := make([]int32, 0, len(t.PartitionOffsets)) + for partition := range t.PartitionOffsets { + keys = append(keys, partition) + } + sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] }) + for _, partition := range keys { + pe.putInt32(partition) + pe.putInt64(t.PartitionOffsets[partition]) + } + return nil +} + +func (t *DeleteRecordsRequestTopic) decode(pd packetDecoder, version int16) error { + n, err := pd.getArrayLength() + if err != nil { + return err + } + + if n > 0 { + t.PartitionOffsets = make(map[int32]int64, n) + for i := 0; i < n; i++ { + partition, err := pd.getInt32() + if err != nil { + return err + } + offset, err := pd.getInt64() + if err != nil { + return err + } + t.PartitionOffsets[partition] = offset + } + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/delete_records_response.go b/vendor/github.com/Shopify/sarama/delete_records_response.go new file mode 100644 index 0000000..733a58b --- /dev/null +++ b/vendor/github.com/Shopify/sarama/delete_records_response.go @@ -0,0 +1,158 @@ +package sarama + +import ( + "sort" + "time" +) + +// response message format is: +// throttleMs(int32) [topic] +// where topic is: +// name(string) [partition] +// where partition is: +// id(int32) low_watermark(int64) error_code(int16) + +type DeleteRecordsResponse struct { + Version int16 + ThrottleTime time.Duration + Topics map[string]*DeleteRecordsResponseTopic +} + +func (d *DeleteRecordsResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(d.ThrottleTime / time.Millisecond)) + + if err := pe.putArrayLength(len(d.Topics)); err != nil { + return err + } + keys := make([]string, 0, len(d.Topics)) + for topic := range d.Topics { + keys = append(keys, topic) + } + sort.Strings(keys) + for _, topic := range keys { + if err := pe.putString(topic); err != nil { + return err + } + if err := d.Topics[topic].encode(pe); err != nil { + return err + } + } + return nil +} + +func (d *DeleteRecordsResponse) decode(pd packetDecoder, version int16) error { + d.Version = version + + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + d.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + if n > 0 { + d.Topics = make(map[string]*DeleteRecordsResponseTopic, n) + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + details := new(DeleteRecordsResponseTopic) + if err = details.decode(pd, version); err != nil { + return err + } + d.Topics[topic] = details + } + } + + return nil +} + +func (d *DeleteRecordsResponse) key() int16 { + return 21 +} + +func (d *DeleteRecordsResponse) version() int16 { + return 0 +} + +func (d *DeleteRecordsResponse) requiredVersion() KafkaVersion { + return V0_11_0_0 +} + +type DeleteRecordsResponseTopic struct { + Partitions map[int32]*DeleteRecordsResponsePartition +} + +func (t *DeleteRecordsResponseTopic) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(t.Partitions)); err != nil { + return err + } + keys := make([]int32, 0, len(t.Partitions)) + for partition := range t.Partitions { + keys = append(keys, partition) + } + sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] }) + for _, partition := range keys { + pe.putInt32(partition) + if err := t.Partitions[partition].encode(pe); err != nil { + return err + } + } + return nil +} + +func (t *DeleteRecordsResponseTopic) decode(pd packetDecoder, version int16) error { + n, err := pd.getArrayLength() + if err != nil { + return err + } + + if n > 0 { + t.Partitions = make(map[int32]*DeleteRecordsResponsePartition, n) + for i := 0; i < n; i++ { + partition, err := pd.getInt32() + if err != nil { + return err + } + details := new(DeleteRecordsResponsePartition) + if err = details.decode(pd, version); err != nil { + return err + } + t.Partitions[partition] = details + } + } + + return nil +} + +type DeleteRecordsResponsePartition struct { + LowWatermark int64 + Err KError +} + +func (t *DeleteRecordsResponsePartition) encode(pe packetEncoder) error { + pe.putInt64(t.LowWatermark) + pe.putInt16(int16(t.Err)) + return nil +} + +func (t *DeleteRecordsResponsePartition) decode(pd packetDecoder, version int16) error { + lowWatermark, err := pd.getInt64() + if err != nil { + return err + } + t.LowWatermark = lowWatermark + + kErr, err := pd.getInt16() + if err != nil { + return err + } + t.Err = KError(kErr) + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/delete_topics_request.go b/vendor/github.com/Shopify/sarama/delete_topics_request.go new file mode 100644 index 0000000..911f67d --- /dev/null +++ b/vendor/github.com/Shopify/sarama/delete_topics_request.go @@ -0,0 +1,48 @@ +package sarama + +import "time" + +type DeleteTopicsRequest struct { + Version int16 + Topics []string + Timeout time.Duration +} + +func (d *DeleteTopicsRequest) encode(pe packetEncoder) error { + if err := pe.putStringArray(d.Topics); err != nil { + return err + } + pe.putInt32(int32(d.Timeout / time.Millisecond)) + + return nil +} + +func (d *DeleteTopicsRequest) decode(pd packetDecoder, version int16) (err error) { + if d.Topics, err = pd.getStringArray(); err != nil { + return err + } + timeout, err := pd.getInt32() + if err != nil { + return err + } + d.Timeout = time.Duration(timeout) * time.Millisecond + d.Version = version + return nil +} + +func (d *DeleteTopicsRequest) key() int16 { + return 20 +} + +func (d *DeleteTopicsRequest) version() int16 { + return d.Version +} + +func (d *DeleteTopicsRequest) requiredVersion() KafkaVersion { + switch d.Version { + case 1: + return V0_11_0_0 + default: + return V0_10_1_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/delete_topics_response.go b/vendor/github.com/Shopify/sarama/delete_topics_response.go new file mode 100644 index 0000000..3422546 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/delete_topics_response.go @@ -0,0 +1,78 @@ +package sarama + +import "time" + +type DeleteTopicsResponse struct { + Version int16 + ThrottleTime time.Duration + TopicErrorCodes map[string]KError +} + +func (d *DeleteTopicsResponse) encode(pe packetEncoder) error { + if d.Version >= 1 { + pe.putInt32(int32(d.ThrottleTime / time.Millisecond)) + } + + if err := pe.putArrayLength(len(d.TopicErrorCodes)); err != nil { + return err + } + for topic, errorCode := range d.TopicErrorCodes { + if err := pe.putString(topic); err != nil { + return err + } + pe.putInt16(int16(errorCode)) + } + + return nil +} + +func (d *DeleteTopicsResponse) decode(pd packetDecoder, version int16) (err error) { + if version >= 1 { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + d.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + d.Version = version + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + d.TopicErrorCodes = make(map[string]KError, n) + + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + errorCode, err := pd.getInt16() + if err != nil { + return err + } + + d.TopicErrorCodes[topic] = KError(errorCode) + } + + return nil +} + +func (d *DeleteTopicsResponse) key() int16 { + return 20 +} + +func (d *DeleteTopicsResponse) version() int16 { + return d.Version +} + +func (d *DeleteTopicsResponse) requiredVersion() KafkaVersion { + switch d.Version { + case 1: + return V0_11_0_0 + default: + return V0_10_1_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/describe_configs_request.go b/vendor/github.com/Shopify/sarama/describe_configs_request.go new file mode 100644 index 0000000..ccb587b --- /dev/null +++ b/vendor/github.com/Shopify/sarama/describe_configs_request.go @@ -0,0 +1,112 @@ +package sarama + +type DescribeConfigsRequest struct { + Version int16 + Resources []*ConfigResource + IncludeSynonyms bool +} + +type ConfigResource struct { + Type ConfigResourceType + Name string + ConfigNames []string +} + +func (r *DescribeConfigsRequest) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(r.Resources)); err != nil { + return err + } + + for _, c := range r.Resources { + pe.putInt8(int8(c.Type)) + if err := pe.putString(c.Name); err != nil { + return err + } + + if len(c.ConfigNames) == 0 { + pe.putInt32(-1) + continue + } + if err := pe.putStringArray(c.ConfigNames); err != nil { + return err + } + } + + if r.Version >= 1 { + pe.putBool(r.IncludeSynonyms) + } + + return nil +} + +func (r *DescribeConfigsRequest) decode(pd packetDecoder, version int16) (err error) { + n, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Resources = make([]*ConfigResource, n) + + for i := 0; i < n; i++ { + r.Resources[i] = &ConfigResource{} + t, err := pd.getInt8() + if err != nil { + return err + } + r.Resources[i].Type = ConfigResourceType(t) + name, err := pd.getString() + if err != nil { + return err + } + r.Resources[i].Name = name + + confLength, err := pd.getArrayLength() + + if err != nil { + return err + } + + if confLength == -1 { + continue + } + + cfnames := make([]string, confLength) + for i := 0; i < confLength; i++ { + s, err := pd.getString() + if err != nil { + return err + } + cfnames[i] = s + } + r.Resources[i].ConfigNames = cfnames + } + r.Version = version + if r.Version >= 1 { + b, err := pd.getBool() + if err != nil { + return err + } + r.IncludeSynonyms = b + } + + return nil +} + +func (r *DescribeConfigsRequest) key() int16 { + return 32 +} + +func (r *DescribeConfigsRequest) version() int16 { + return r.Version +} + +func (r *DescribeConfigsRequest) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V1_1_0_0 + case 2: + return V2_0_0_0 + default: + return V0_11_0_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/describe_configs_response.go b/vendor/github.com/Shopify/sarama/describe_configs_response.go new file mode 100644 index 0000000..a18eeba --- /dev/null +++ b/vendor/github.com/Shopify/sarama/describe_configs_response.go @@ -0,0 +1,319 @@ +package sarama + +import ( + "fmt" + "time" +) + +type ConfigSource int8 + +func (s ConfigSource) String() string { + switch s { + case SourceUnknown: + return "Unknown" + case SourceTopic: + return "Topic" + case SourceDynamicBroker: + return "DynamicBroker" + case SourceDynamicDefaultBroker: + return "DynamicDefaultBroker" + case SourceStaticBroker: + return "StaticBroker" + case SourceDefault: + return "Default" + } + return fmt.Sprintf("Source Invalid: %d", int(s)) +} + +const ( + SourceUnknown ConfigSource = iota + SourceTopic + SourceDynamicBroker + SourceDynamicDefaultBroker + SourceStaticBroker + SourceDefault +) + +type DescribeConfigsResponse struct { + Version int16 + ThrottleTime time.Duration + Resources []*ResourceResponse +} + +type ResourceResponse struct { + ErrorCode int16 + ErrorMsg string + Type ConfigResourceType + Name string + Configs []*ConfigEntry +} + +type ConfigEntry struct { + Name string + Value string + ReadOnly bool + Default bool + Source ConfigSource + Sensitive bool + Synonyms []*ConfigSynonym +} + +type ConfigSynonym struct { + ConfigName string + ConfigValue string + Source ConfigSource +} + +func (r *DescribeConfigsResponse) encode(pe packetEncoder) (err error) { + pe.putInt32(int32(r.ThrottleTime / time.Millisecond)) + if err = pe.putArrayLength(len(r.Resources)); err != nil { + return err + } + + for _, c := range r.Resources { + if err = c.encode(pe, r.Version); err != nil { + return err + } + } + + return nil +} + +func (r *DescribeConfigsResponse) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + r.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Resources = make([]*ResourceResponse, n) + for i := 0; i < n; i++ { + rr := &ResourceResponse{} + if err := rr.decode(pd, version); err != nil { + return err + } + r.Resources[i] = rr + } + + return nil +} + +func (r *DescribeConfigsResponse) key() int16 { + return 32 +} + +func (r *DescribeConfigsResponse) version() int16 { + return r.Version +} + +func (r *DescribeConfigsResponse) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V1_0_0_0 + case 2: + return V2_0_0_0 + default: + return V0_11_0_0 + } +} + +func (r *ResourceResponse) encode(pe packetEncoder, version int16) (err error) { + pe.putInt16(r.ErrorCode) + + if err = pe.putString(r.ErrorMsg); err != nil { + return err + } + + pe.putInt8(int8(r.Type)) + + if err = pe.putString(r.Name); err != nil { + return err + } + + if err = pe.putArrayLength(len(r.Configs)); err != nil { + return err + } + + for _, c := range r.Configs { + if err = c.encode(pe, version); err != nil { + return err + } + } + return nil +} + +func (r *ResourceResponse) decode(pd packetDecoder, version int16) (err error) { + ec, err := pd.getInt16() + if err != nil { + return err + } + r.ErrorCode = ec + + em, err := pd.getString() + if err != nil { + return err + } + r.ErrorMsg = em + + t, err := pd.getInt8() + if err != nil { + return err + } + r.Type = ConfigResourceType(t) + + name, err := pd.getString() + if err != nil { + return err + } + r.Name = name + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Configs = make([]*ConfigEntry, n) + for i := 0; i < n; i++ { + c := &ConfigEntry{} + if err := c.decode(pd, version); err != nil { + return err + } + r.Configs[i] = c + } + return nil +} + +func (r *ConfigEntry) encode(pe packetEncoder, version int16) (err error) { + if err = pe.putString(r.Name); err != nil { + return err + } + + if err = pe.putString(r.Value); err != nil { + return err + } + + pe.putBool(r.ReadOnly) + + if version <= 0 { + pe.putBool(r.Default) + pe.putBool(r.Sensitive) + } else { + pe.putInt8(int8(r.Source)) + pe.putBool(r.Sensitive) + + if err := pe.putArrayLength(len(r.Synonyms)); err != nil { + return err + } + for _, c := range r.Synonyms { + if err = c.encode(pe, version); err != nil { + return err + } + } + } + + return nil +} + +//https://cwiki.apache.org/confluence/display/KAFKA/KIP-226+-+Dynamic+Broker+Configuration +func (r *ConfigEntry) decode(pd packetDecoder, version int16) (err error) { + if version == 0 { + r.Source = SourceUnknown + } + name, err := pd.getString() + if err != nil { + return err + } + r.Name = name + + value, err := pd.getString() + if err != nil { + return err + } + r.Value = value + + read, err := pd.getBool() + if err != nil { + return err + } + r.ReadOnly = read + + if version == 0 { + defaultB, err := pd.getBool() + if err != nil { + return err + } + r.Default = defaultB + } else { + source, err := pd.getInt8() + if err != nil { + return err + } + r.Source = ConfigSource(source) + } + + sensitive, err := pd.getBool() + if err != nil { + return err + } + r.Sensitive = sensitive + + if version > 0 { + n, err := pd.getArrayLength() + if err != nil { + return err + } + r.Synonyms = make([]*ConfigSynonym, n) + + for i := 0; i < n; i++ { + s := &ConfigSynonym{} + if err := s.decode(pd, version); err != nil { + return err + } + r.Synonyms[i] = s + } + } + return nil +} + +func (c *ConfigSynonym) encode(pe packetEncoder, version int16) (err error) { + err = pe.putString(c.ConfigName) + if err != nil { + return err + } + + err = pe.putString(c.ConfigValue) + if err != nil { + return err + } + + pe.putInt8(int8(c.Source)) + + return nil +} + +func (c *ConfigSynonym) decode(pd packetDecoder, version int16) error { + name, err := pd.getString() + if err != nil { + return nil + } + c.ConfigName = name + + value, err := pd.getString() + if err != nil { + return nil + } + c.ConfigValue = value + + source, err := pd.getInt8() + if err != nil { + return nil + } + c.Source = ConfigSource(source) + return nil +} diff --git a/vendor/github.com/Shopify/sarama/describe_groups_request.go b/vendor/github.com/Shopify/sarama/describe_groups_request.go new file mode 100644 index 0000000..1fb3567 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/describe_groups_request.go @@ -0,0 +1,30 @@ +package sarama + +type DescribeGroupsRequest struct { + Groups []string +} + +func (r *DescribeGroupsRequest) encode(pe packetEncoder) error { + return pe.putStringArray(r.Groups) +} + +func (r *DescribeGroupsRequest) decode(pd packetDecoder, version int16) (err error) { + r.Groups, err = pd.getStringArray() + return +} + +func (r *DescribeGroupsRequest) key() int16 { + return 15 +} + +func (r *DescribeGroupsRequest) version() int16 { + return 0 +} + +func (r *DescribeGroupsRequest) requiredVersion() KafkaVersion { + return V0_9_0_0 +} + +func (r *DescribeGroupsRequest) AddGroup(group string) { + r.Groups = append(r.Groups, group) +} diff --git a/vendor/github.com/Shopify/sarama/describe_groups_response.go b/vendor/github.com/Shopify/sarama/describe_groups_response.go new file mode 100644 index 0000000..542b3a9 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/describe_groups_response.go @@ -0,0 +1,187 @@ +package sarama + +type DescribeGroupsResponse struct { + Groups []*GroupDescription +} + +func (r *DescribeGroupsResponse) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(r.Groups)); err != nil { + return err + } + + for _, groupDescription := range r.Groups { + if err := groupDescription.encode(pe); err != nil { + return err + } + } + + return nil +} + +func (r *DescribeGroupsResponse) decode(pd packetDecoder, version int16) (err error) { + n, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Groups = make([]*GroupDescription, n) + for i := 0; i < n; i++ { + r.Groups[i] = new(GroupDescription) + if err := r.Groups[i].decode(pd); err != nil { + return err + } + } + + return nil +} + +func (r *DescribeGroupsResponse) key() int16 { + return 15 +} + +func (r *DescribeGroupsResponse) version() int16 { + return 0 +} + +func (r *DescribeGroupsResponse) requiredVersion() KafkaVersion { + return V0_9_0_0 +} + +type GroupDescription struct { + Err KError + GroupId string + State string + ProtocolType string + Protocol string + Members map[string]*GroupMemberDescription +} + +func (gd *GroupDescription) encode(pe packetEncoder) error { + pe.putInt16(int16(gd.Err)) + + if err := pe.putString(gd.GroupId); err != nil { + return err + } + if err := pe.putString(gd.State); err != nil { + return err + } + if err := pe.putString(gd.ProtocolType); err != nil { + return err + } + if err := pe.putString(gd.Protocol); err != nil { + return err + } + + if err := pe.putArrayLength(len(gd.Members)); err != nil { + return err + } + + for memberId, groupMemberDescription := range gd.Members { + if err := pe.putString(memberId); err != nil { + return err + } + if err := groupMemberDescription.encode(pe); err != nil { + return err + } + } + + return nil +} + +func (gd *GroupDescription) decode(pd packetDecoder) (err error) { + kerr, err := pd.getInt16() + if err != nil { + return err + } + + gd.Err = KError(kerr) + + if gd.GroupId, err = pd.getString(); err != nil { + return + } + if gd.State, err = pd.getString(); err != nil { + return + } + if gd.ProtocolType, err = pd.getString(); err != nil { + return + } + if gd.Protocol, err = pd.getString(); err != nil { + return + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + if n == 0 { + return nil + } + + gd.Members = make(map[string]*GroupMemberDescription) + for i := 0; i < n; i++ { + memberId, err := pd.getString() + if err != nil { + return err + } + + gd.Members[memberId] = new(GroupMemberDescription) + if err := gd.Members[memberId].decode(pd); err != nil { + return err + } + } + + return nil +} + +type GroupMemberDescription struct { + ClientId string + ClientHost string + MemberMetadata []byte + MemberAssignment []byte +} + +func (gmd *GroupMemberDescription) encode(pe packetEncoder) error { + if err := pe.putString(gmd.ClientId); err != nil { + return err + } + if err := pe.putString(gmd.ClientHost); err != nil { + return err + } + if err := pe.putBytes(gmd.MemberMetadata); err != nil { + return err + } + if err := pe.putBytes(gmd.MemberAssignment); err != nil { + return err + } + + return nil +} + +func (gmd *GroupMemberDescription) decode(pd packetDecoder) (err error) { + if gmd.ClientId, err = pd.getString(); err != nil { + return + } + if gmd.ClientHost, err = pd.getString(); err != nil { + return + } + if gmd.MemberMetadata, err = pd.getBytes(); err != nil { + return + } + if gmd.MemberAssignment, err = pd.getBytes(); err != nil { + return + } + + return nil +} + +func (gmd *GroupMemberDescription) GetMemberAssignment() (*ConsumerGroupMemberAssignment, error) { + assignment := new(ConsumerGroupMemberAssignment) + err := decode(gmd.MemberAssignment, assignment) + return assignment, err +} + +func (gmd *GroupMemberDescription) GetMemberMetadata() (*ConsumerGroupMemberMetadata, error) { + metadata := new(ConsumerGroupMemberMetadata) + err := decode(gmd.MemberMetadata, metadata) + return metadata, err +} diff --git a/vendor/github.com/Shopify/sarama/describe_log_dirs_request.go b/vendor/github.com/Shopify/sarama/describe_log_dirs_request.go new file mode 100644 index 0000000..cb1e781 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/describe_log_dirs_request.go @@ -0,0 +1,83 @@ +package sarama + +// DescribeLogDirsRequest is a describe request to get partitions' log size +type DescribeLogDirsRequest struct { + // Version 0 and 1 are equal + // The version number is bumped to indicate that on quota violation brokers send out responses before throttling. + Version int16 + + // If this is an empty array, all topics will be queried + DescribeTopics []DescribeLogDirsRequestTopic +} + +// DescribeLogDirsRequestTopic is a describe request about the log dir of one or more partitions within a Topic +type DescribeLogDirsRequestTopic struct { + Topic string + PartitionIDs []int32 +} + +func (r *DescribeLogDirsRequest) encode(pe packetEncoder) error { + length := len(r.DescribeTopics) + if length == 0 { + // In order to query all topics we must send null + length = -1 + } + + if err := pe.putArrayLength(length); err != nil { + return err + } + + for _, d := range r.DescribeTopics { + if err := pe.putString(d.Topic); err != nil { + return err + } + + if err := pe.putInt32Array(d.PartitionIDs); err != nil { + return err + } + } + + return nil +} + +func (r *DescribeLogDirsRequest) decode(pd packetDecoder, version int16) error { + n, err := pd.getArrayLength() + if err != nil { + return err + } + if n == -1 { + n = 0 + } + + topics := make([]DescribeLogDirsRequestTopic, n) + for i := 0; i < n; i++ { + topics[i] = DescribeLogDirsRequestTopic{} + + topic, err := pd.getString() + if err != nil { + return err + } + topics[i].Topic = topic + + pIDs, err := pd.getInt32Array() + if err != nil { + return err + } + topics[i].PartitionIDs = pIDs + } + r.DescribeTopics = topics + + return nil +} + +func (r *DescribeLogDirsRequest) key() int16 { + return 35 +} + +func (r *DescribeLogDirsRequest) version() int16 { + return r.Version +} + +func (r *DescribeLogDirsRequest) requiredVersion() KafkaVersion { + return V1_0_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/describe_log_dirs_response.go b/vendor/github.com/Shopify/sarama/describe_log_dirs_response.go new file mode 100644 index 0000000..d207312 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/describe_log_dirs_response.go @@ -0,0 +1,219 @@ +package sarama + +import "time" + +type DescribeLogDirsResponse struct { + ThrottleTime time.Duration + + // Version 0 and 1 are equal + // The version number is bumped to indicate that on quota violation brokers send out responses before throttling. + Version int16 + + LogDirs []DescribeLogDirsResponseDirMetadata +} + +func (r *DescribeLogDirsResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(r.ThrottleTime / time.Millisecond)) + + if err := pe.putArrayLength(len(r.LogDirs)); err != nil { + return err + } + + for _, dir := range r.LogDirs { + if err := dir.encode(pe); err != nil { + return err + } + } + + return nil +} + +func (r *DescribeLogDirsResponse) decode(pd packetDecoder, version int16) error { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + r.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + // Decode array of DescribeLogDirsResponseDirMetadata + n, err := pd.getArrayLength() + if err != nil { + return err + } + + r.LogDirs = make([]DescribeLogDirsResponseDirMetadata, n) + for i := 0; i < n; i++ { + dir := DescribeLogDirsResponseDirMetadata{} + if err := dir.decode(pd, version); err != nil { + return err + } + r.LogDirs[i] = dir + } + + return nil +} + +func (r *DescribeLogDirsResponse) key() int16 { + return 35 +} + +func (r *DescribeLogDirsResponse) version() int16 { + return r.Version +} + +func (r *DescribeLogDirsResponse) requiredVersion() KafkaVersion { + return V1_0_0_0 +} + +type DescribeLogDirsResponseDirMetadata struct { + ErrorCode KError + + // The absolute log directory path + Path string + Topics []DescribeLogDirsResponseTopic +} + +func (r *DescribeLogDirsResponseDirMetadata) encode(pe packetEncoder) error { + pe.putInt16(int16(r.ErrorCode)) + + if err := pe.putString(r.Path); err != nil { + return err + } + + for _, topic := range r.Topics { + if err := topic.encode(pe); err != nil { + return err + } + } + + return nil +} + +func (r *DescribeLogDirsResponseDirMetadata) decode(pd packetDecoder, version int16) error { + errCode, err := pd.getInt16() + if err != nil { + return err + } + r.ErrorCode = KError(errCode) + + path, err := pd.getString() + if err != nil { + return err + } + r.Path = path + + // Decode array of DescribeLogDirsResponseTopic + n, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Topics = make([]DescribeLogDirsResponseTopic, n) + for i := 0; i < n; i++ { + t := DescribeLogDirsResponseTopic{} + + if err := t.decode(pd, version); err != nil { + return err + } + + r.Topics[i] = t + } + + return nil +} + +// DescribeLogDirsResponseTopic contains a topic's partitions descriptions +type DescribeLogDirsResponseTopic struct { + Topic string + Partitions []DescribeLogDirsResponsePartition +} + +func (r *DescribeLogDirsResponseTopic) encode(pe packetEncoder) error { + if err := pe.putString(r.Topic); err != nil { + return err + } + + for _, partition := range r.Partitions { + if err := partition.encode(pe); err != nil { + return err + } + } + + return nil +} + +func (r *DescribeLogDirsResponseTopic) decode(pd packetDecoder, version int16) error { + t, err := pd.getString() + if err != nil { + return err + } + r.Topic = t + + n, err := pd.getArrayLength() + if err != nil { + return err + } + r.Partitions = make([]DescribeLogDirsResponsePartition, n) + for i := 0; i < n; i++ { + p := DescribeLogDirsResponsePartition{} + if err := p.decode(pd, version); err != nil { + return err + } + r.Partitions[i] = p + } + + return nil +} + +// DescribeLogDirsResponsePartition describes a partition's log directory +type DescribeLogDirsResponsePartition struct { + PartitionID int32 + + // The size of the log segments of the partition in bytes. + Size int64 + + // The lag of the log's LEO w.r.t. partition's HW (if it is the current log for the partition) or + // current replica's LEO (if it is the future log for the partition) + OffsetLag int64 + + // True if this log is created by AlterReplicaLogDirsRequest and will replace the current log of + // the replica in the future. + IsTemporary bool +} + +func (r *DescribeLogDirsResponsePartition) encode(pe packetEncoder) error { + pe.putInt32(r.PartitionID) + pe.putInt64(r.Size) + pe.putInt64(r.OffsetLag) + pe.putBool(r.IsTemporary) + + return nil +} + +func (r *DescribeLogDirsResponsePartition) decode(pd packetDecoder, version int16) error { + pID, err := pd.getInt32() + if err != nil { + return err + } + r.PartitionID = pID + + size, err := pd.getInt64() + if err != nil { + return err + } + r.Size = size + + lag, err := pd.getInt64() + if err != nil { + return err + } + r.OffsetLag = lag + + isTemp, err := pd.getBool() + if err != nil { + return err + } + r.IsTemporary = isTemp + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/dev.yml b/vendor/github.com/Shopify/sarama/dev.yml new file mode 100644 index 0000000..6f6807e --- /dev/null +++ b/vendor/github.com/Shopify/sarama/dev.yml @@ -0,0 +1,10 @@ +name: sarama + +up: + - go: + version: '1.13.7' + +commands: + test: + run: make test + desc: 'run unit tests' diff --git a/vendor/github.com/Shopify/sarama/encoder_decoder.go b/vendor/github.com/Shopify/sarama/encoder_decoder.go new file mode 100644 index 0000000..7ce3bc0 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/encoder_decoder.go @@ -0,0 +1,89 @@ +package sarama + +import ( + "fmt" + + "github.com/rcrowley/go-metrics" +) + +// Encoder is the interface that wraps the basic Encode method. +// Anything implementing Encoder can be turned into bytes using Kafka's encoding rules. +type encoder interface { + encode(pe packetEncoder) error +} + +// Encode takes an Encoder and turns it into bytes while potentially recording metrics. +func encode(e encoder, metricRegistry metrics.Registry) ([]byte, error) { + if e == nil { + return nil, nil + } + + var prepEnc prepEncoder + var realEnc realEncoder + + err := e.encode(&prepEnc) + if err != nil { + return nil, err + } + + if prepEnc.length < 0 || prepEnc.length > int(MaxRequestSize) { + return nil, PacketEncodingError{fmt.Sprintf("invalid request size (%d)", prepEnc.length)} + } + + realEnc.raw = make([]byte, prepEnc.length) + realEnc.registry = metricRegistry + err = e.encode(&realEnc) + if err != nil { + return nil, err + } + + return realEnc.raw, nil +} + +// Decoder is the interface that wraps the basic Decode method. +// Anything implementing Decoder can be extracted from bytes using Kafka's encoding rules. +type decoder interface { + decode(pd packetDecoder) error +} + +type versionedDecoder interface { + decode(pd packetDecoder, version int16) error +} + +// Decode takes bytes and a Decoder and fills the fields of the decoder from the bytes, +// interpreted using Kafka's encoding rules. +func decode(buf []byte, in decoder) error { + if buf == nil { + return nil + } + + helper := realDecoder{raw: buf} + err := in.decode(&helper) + if err != nil { + return err + } + + if helper.off != len(buf) { + return PacketDecodingError{"invalid length"} + } + + return nil +} + +func versionedDecode(buf []byte, in versionedDecoder, version int16) error { + if buf == nil { + return nil + } + + helper := realDecoder{raw: buf} + err := in.decode(&helper, version) + if err != nil { + return err + } + + if helper.off != len(buf) { + return PacketDecodingError{"invalid length"} + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/end_txn_request.go b/vendor/github.com/Shopify/sarama/end_txn_request.go new file mode 100644 index 0000000..2cd9b50 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/end_txn_request.go @@ -0,0 +1,50 @@ +package sarama + +type EndTxnRequest struct { + TransactionalID string + ProducerID int64 + ProducerEpoch int16 + TransactionResult bool +} + +func (a *EndTxnRequest) encode(pe packetEncoder) error { + if err := pe.putString(a.TransactionalID); err != nil { + return err + } + + pe.putInt64(a.ProducerID) + + pe.putInt16(a.ProducerEpoch) + + pe.putBool(a.TransactionResult) + + return nil +} + +func (a *EndTxnRequest) decode(pd packetDecoder, version int16) (err error) { + if a.TransactionalID, err = pd.getString(); err != nil { + return err + } + if a.ProducerID, err = pd.getInt64(); err != nil { + return err + } + if a.ProducerEpoch, err = pd.getInt16(); err != nil { + return err + } + if a.TransactionResult, err = pd.getBool(); err != nil { + return err + } + return nil +} + +func (a *EndTxnRequest) key() int16 { + return 26 +} + +func (a *EndTxnRequest) version() int16 { + return 0 +} + +func (a *EndTxnRequest) requiredVersion() KafkaVersion { + return V0_11_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/end_txn_response.go b/vendor/github.com/Shopify/sarama/end_txn_response.go new file mode 100644 index 0000000..33b27e3 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/end_txn_response.go @@ -0,0 +1,44 @@ +package sarama + +import ( + "time" +) + +type EndTxnResponse struct { + ThrottleTime time.Duration + Err KError +} + +func (e *EndTxnResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(e.ThrottleTime / time.Millisecond)) + pe.putInt16(int16(e.Err)) + return nil +} + +func (e *EndTxnResponse) decode(pd packetDecoder, version int16) (err error) { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + e.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + kerr, err := pd.getInt16() + if err != nil { + return err + } + e.Err = KError(kerr) + + return nil +} + +func (e *EndTxnResponse) key() int16 { + return 25 +} + +func (e *EndTxnResponse) version() int16 { + return 0 +} + +func (e *EndTxnResponse) requiredVersion() KafkaVersion { + return V0_11_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/errors.go b/vendor/github.com/Shopify/sarama/errors.go new file mode 100644 index 0000000..97be3c0 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/errors.go @@ -0,0 +1,369 @@ +package sarama + +import ( + "errors" + "fmt" +) + +// ErrOutOfBrokers is the error returned when the client has run out of brokers to talk to because all of them errored +// or otherwise failed to respond. +var ErrOutOfBrokers = errors.New("kafka: client has run out of available brokers to talk to (Is your cluster reachable?)") + +// ErrClosedClient is the error returned when a method is called on a client that has been closed. +var ErrClosedClient = errors.New("kafka: tried to use a client that was closed") + +// ErrIncompleteResponse is the error returned when the server returns a syntactically valid response, but it does +// not contain the expected information. +var ErrIncompleteResponse = errors.New("kafka: response did not contain all the expected topic/partition blocks") + +// ErrInvalidPartition is the error returned when a partitioner returns an invalid partition index +// (meaning one outside of the range [0...numPartitions-1]). +var ErrInvalidPartition = errors.New("kafka: partitioner returned an invalid partition index") + +// ErrAlreadyConnected is the error returned when calling Open() on a Broker that is already connected or connecting. +var ErrAlreadyConnected = errors.New("kafka: broker connection already initiated") + +// ErrNotConnected is the error returned when trying to send or call Close() on a Broker that is not connected. +var ErrNotConnected = errors.New("kafka: broker not connected") + +// ErrInsufficientData is returned when decoding and the packet is truncated. This can be expected +// when requesting messages, since as an optimization the server is allowed to return a partial message at the end +// of the message set. +var ErrInsufficientData = errors.New("kafka: insufficient data to decode packet, more bytes expected") + +// ErrShuttingDown is returned when a producer receives a message during shutdown. +var ErrShuttingDown = errors.New("kafka: message received by producer in process of shutting down") + +// ErrMessageTooLarge is returned when the next message to consume is larger than the configured Consumer.Fetch.Max +var ErrMessageTooLarge = errors.New("kafka: message is larger than Consumer.Fetch.Max") + +// ErrConsumerOffsetNotAdvanced is returned when a partition consumer didn't advance its offset after parsing +// a RecordBatch. +var ErrConsumerOffsetNotAdvanced = errors.New("kafka: consumer offset was not advanced after a RecordBatch") + +// ErrControllerNotAvailable is returned when server didn't give correct controller id. May be kafka server's version +// is lower than 0.10.0.0. +var ErrControllerNotAvailable = errors.New("kafka: controller is not available") + +// ErrNoTopicsToUpdateMetadata is returned when Meta.Full is set to false but no specific topics were found to update +// the metadata. +var ErrNoTopicsToUpdateMetadata = errors.New("kafka: no specific topics to update metadata") + +// PacketEncodingError is returned from a failure while encoding a Kafka packet. This can happen, for example, +// if you try to encode a string over 2^15 characters in length, since Kafka's encoding rules do not permit that. +type PacketEncodingError struct { + Info string +} + +func (err PacketEncodingError) Error() string { + return fmt.Sprintf("kafka: error encoding packet: %s", err.Info) +} + +// PacketDecodingError is returned when there was an error (other than truncated data) decoding the Kafka broker's response. +// This can be a bad CRC or length field, or any other invalid value. +type PacketDecodingError struct { + Info string +} + +func (err PacketDecodingError) Error() string { + return fmt.Sprintf("kafka: error decoding packet: %s", err.Info) +} + +// ConfigurationError is the type of error returned from a constructor (e.g. NewClient, or NewConsumer) +// when the specified configuration is invalid. +type ConfigurationError string + +func (err ConfigurationError) Error() string { + return "kafka: invalid configuration (" + string(err) + ")" +} + +// KError is the type of error that can be returned directly by the Kafka broker. +// See https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-ErrorCodes +type KError int16 + +// MultiError is used to contain multi error. +type MultiError struct { + Errors *[]error +} + +func (mErr MultiError) Error() string { + var errString = "" + for _, err := range *mErr.Errors { + errString += err.Error() + "," + } + return errString +} + +// ErrDeleteRecords is the type of error returned when fail to delete the required records +type ErrDeleteRecords struct { + MultiError +} + +func (err ErrDeleteRecords) Error() string { + return "kafka server: failed to delete records " + err.MultiError.Error() +} + +// Numeric error codes returned by the Kafka server. +const ( + ErrNoError KError = 0 + ErrUnknown KError = -1 + ErrOffsetOutOfRange KError = 1 + ErrInvalidMessage KError = 2 + ErrUnknownTopicOrPartition KError = 3 + ErrInvalidMessageSize KError = 4 + ErrLeaderNotAvailable KError = 5 + ErrNotLeaderForPartition KError = 6 + ErrRequestTimedOut KError = 7 + ErrBrokerNotAvailable KError = 8 + ErrReplicaNotAvailable KError = 9 + ErrMessageSizeTooLarge KError = 10 + ErrStaleControllerEpochCode KError = 11 + ErrOffsetMetadataTooLarge KError = 12 + ErrNetworkException KError = 13 + ErrOffsetsLoadInProgress KError = 14 + ErrConsumerCoordinatorNotAvailable KError = 15 + ErrNotCoordinatorForConsumer KError = 16 + ErrInvalidTopic KError = 17 + ErrMessageSetSizeTooLarge KError = 18 + ErrNotEnoughReplicas KError = 19 + ErrNotEnoughReplicasAfterAppend KError = 20 + ErrInvalidRequiredAcks KError = 21 + ErrIllegalGeneration KError = 22 + ErrInconsistentGroupProtocol KError = 23 + ErrInvalidGroupId KError = 24 + ErrUnknownMemberId KError = 25 + ErrInvalidSessionTimeout KError = 26 + ErrRebalanceInProgress KError = 27 + ErrInvalidCommitOffsetSize KError = 28 + ErrTopicAuthorizationFailed KError = 29 + ErrGroupAuthorizationFailed KError = 30 + ErrClusterAuthorizationFailed KError = 31 + ErrInvalidTimestamp KError = 32 + ErrUnsupportedSASLMechanism KError = 33 + ErrIllegalSASLState KError = 34 + ErrUnsupportedVersion KError = 35 + ErrTopicAlreadyExists KError = 36 + ErrInvalidPartitions KError = 37 + ErrInvalidReplicationFactor KError = 38 + ErrInvalidReplicaAssignment KError = 39 + ErrInvalidConfig KError = 40 + ErrNotController KError = 41 + ErrInvalidRequest KError = 42 + ErrUnsupportedForMessageFormat KError = 43 + ErrPolicyViolation KError = 44 + ErrOutOfOrderSequenceNumber KError = 45 + ErrDuplicateSequenceNumber KError = 46 + ErrInvalidProducerEpoch KError = 47 + ErrInvalidTxnState KError = 48 + ErrInvalidProducerIDMapping KError = 49 + ErrInvalidTransactionTimeout KError = 50 + ErrConcurrentTransactions KError = 51 + ErrTransactionCoordinatorFenced KError = 52 + ErrTransactionalIDAuthorizationFailed KError = 53 + ErrSecurityDisabled KError = 54 + ErrOperationNotAttempted KError = 55 + ErrKafkaStorageError KError = 56 + ErrLogDirNotFound KError = 57 + ErrSASLAuthenticationFailed KError = 58 + ErrUnknownProducerID KError = 59 + ErrReassignmentInProgress KError = 60 + ErrDelegationTokenAuthDisabled KError = 61 + ErrDelegationTokenNotFound KError = 62 + ErrDelegationTokenOwnerMismatch KError = 63 + ErrDelegationTokenRequestNotAllowed KError = 64 + ErrDelegationTokenAuthorizationFailed KError = 65 + ErrDelegationTokenExpired KError = 66 + ErrInvalidPrincipalType KError = 67 + ErrNonEmptyGroup KError = 68 + ErrGroupIDNotFound KError = 69 + ErrFetchSessionIDNotFound KError = 70 + ErrInvalidFetchSessionEpoch KError = 71 + ErrListenerNotFound KError = 72 + ErrTopicDeletionDisabled KError = 73 + ErrFencedLeaderEpoch KError = 74 + ErrUnknownLeaderEpoch KError = 75 + ErrUnsupportedCompressionType KError = 76 + ErrStaleBrokerEpoch KError = 77 + ErrOffsetNotAvailable KError = 78 + ErrMemberIdRequired KError = 79 + ErrPreferredLeaderNotAvailable KError = 80 + ErrGroupMaxSizeReached KError = 81 + ErrFencedInstancedId KError = 82 +) + +func (err KError) Error() string { + // Error messages stolen/adapted from + // https://kafka.apache.org/protocol#protocol_error_codes + switch err { + case ErrNoError: + return "kafka server: Not an error, why are you printing me?" + case ErrUnknown: + return "kafka server: Unexpected (unknown?) server error." + case ErrOffsetOutOfRange: + return "kafka server: The requested offset is outside the range of offsets maintained by the server for the given topic/partition." + case ErrInvalidMessage: + return "kafka server: Message contents does not match its CRC." + case ErrUnknownTopicOrPartition: + return "kafka server: Request was for a topic or partition that does not exist on this broker." + case ErrInvalidMessageSize: + return "kafka server: The message has a negative size." + case ErrLeaderNotAvailable: + return "kafka server: In the middle of a leadership election, there is currently no leader for this partition and hence it is unavailable for writes." + case ErrNotLeaderForPartition: + return "kafka server: Tried to send a message to a replica that is not the leader for some partition. Your metadata is out of date." + case ErrRequestTimedOut: + return "kafka server: Request exceeded the user-specified time limit in the request." + case ErrBrokerNotAvailable: + return "kafka server: Broker not available. Not a client facing error, we should never receive this!!!" + case ErrReplicaNotAvailable: + return "kafka server: Replica information not available, one or more brokers are down." + case ErrMessageSizeTooLarge: + return "kafka server: Message was too large, server rejected it to avoid allocation error." + case ErrStaleControllerEpochCode: + return "kafka server: StaleControllerEpochCode (internal error code for broker-to-broker communication)." + case ErrOffsetMetadataTooLarge: + return "kafka server: Specified a string larger than the configured maximum for offset metadata." + case ErrNetworkException: + return "kafka server: The server disconnected before a response was received." + case ErrOffsetsLoadInProgress: + return "kafka server: The broker is still loading offsets after a leader change for that offset's topic partition." + case ErrConsumerCoordinatorNotAvailable: + return "kafka server: Offset's topic has not yet been created." + case ErrNotCoordinatorForConsumer: + return "kafka server: Request was for a consumer group that is not coordinated by this broker." + case ErrInvalidTopic: + return "kafka server: The request attempted to perform an operation on an invalid topic." + case ErrMessageSetSizeTooLarge: + return "kafka server: The request included message batch larger than the configured segment size on the server." + case ErrNotEnoughReplicas: + return "kafka server: Messages are rejected since there are fewer in-sync replicas than required." + case ErrNotEnoughReplicasAfterAppend: + return "kafka server: Messages are written to the log, but to fewer in-sync replicas than required." + case ErrInvalidRequiredAcks: + return "kafka server: The number of required acks is invalid (should be either -1, 0, or 1)." + case ErrIllegalGeneration: + return "kafka server: The provided generation id is not the current generation." + case ErrInconsistentGroupProtocol: + return "kafka server: The provider group protocol type is incompatible with the other members." + case ErrInvalidGroupId: + return "kafka server: The provided group id was empty." + case ErrUnknownMemberId: + return "kafka server: The provided member is not known in the current generation." + case ErrInvalidSessionTimeout: + return "kafka server: The provided session timeout is outside the allowed range." + case ErrRebalanceInProgress: + return "kafka server: A rebalance for the group is in progress. Please re-join the group." + case ErrInvalidCommitOffsetSize: + return "kafka server: The provided commit metadata was too large." + case ErrTopicAuthorizationFailed: + return "kafka server: The client is not authorized to access this topic." + case ErrGroupAuthorizationFailed: + return "kafka server: The client is not authorized to access this group." + case ErrClusterAuthorizationFailed: + return "kafka server: The client is not authorized to send this request type." + case ErrInvalidTimestamp: + return "kafka server: The timestamp of the message is out of acceptable range." + case ErrUnsupportedSASLMechanism: + return "kafka server: The broker does not support the requested SASL mechanism." + case ErrIllegalSASLState: + return "kafka server: Request is not valid given the current SASL state." + case ErrUnsupportedVersion: + return "kafka server: The version of API is not supported." + case ErrTopicAlreadyExists: + return "kafka server: Topic with this name already exists." + case ErrInvalidPartitions: + return "kafka server: Number of partitions is invalid." + case ErrInvalidReplicationFactor: + return "kafka server: Replication-factor is invalid." + case ErrInvalidReplicaAssignment: + return "kafka server: Replica assignment is invalid." + case ErrInvalidConfig: + return "kafka server: Configuration is invalid." + case ErrNotController: + return "kafka server: This is not the correct controller for this cluster." + case ErrInvalidRequest: + return "kafka server: This most likely occurs because of a request being malformed by the client library or the message was sent to an incompatible broker. See the broker logs for more details." + case ErrUnsupportedForMessageFormat: + return "kafka server: The requested operation is not supported by the message format version." + case ErrPolicyViolation: + return "kafka server: Request parameters do not satisfy the configured policy." + case ErrOutOfOrderSequenceNumber: + return "kafka server: The broker received an out of order sequence number." + case ErrDuplicateSequenceNumber: + return "kafka server: The broker received a duplicate sequence number." + case ErrInvalidProducerEpoch: + return "kafka server: Producer attempted an operation with an old epoch." + case ErrInvalidTxnState: + return "kafka server: The producer attempted a transactional operation in an invalid state." + case ErrInvalidProducerIDMapping: + return "kafka server: The producer attempted to use a producer id which is not currently assigned to its transactional id." + case ErrInvalidTransactionTimeout: + return "kafka server: The transaction timeout is larger than the maximum value allowed by the broker (as configured by max.transaction.timeout.ms)." + case ErrConcurrentTransactions: + return "kafka server: The producer attempted to update a transaction while another concurrent operation on the same transaction was ongoing." + case ErrTransactionCoordinatorFenced: + return "kafka server: The transaction coordinator sending a WriteTxnMarker is no longer the current coordinator for a given producer." + case ErrTransactionalIDAuthorizationFailed: + return "kafka server: Transactional ID authorization failed." + case ErrSecurityDisabled: + return "kafka server: Security features are disabled." + case ErrOperationNotAttempted: + return "kafka server: The broker did not attempt to execute this operation." + case ErrKafkaStorageError: + return "kafka server: Disk error when trying to access log file on the disk." + case ErrLogDirNotFound: + return "kafka server: The specified log directory is not found in the broker config." + case ErrSASLAuthenticationFailed: + return "kafka server: SASL Authentication failed." + case ErrUnknownProducerID: + return "kafka server: The broker could not locate the producer metadata associated with the Producer ID." + case ErrReassignmentInProgress: + return "kafka server: A partition reassignment is in progress." + case ErrDelegationTokenAuthDisabled: + return "kafka server: Delegation Token feature is not enabled." + case ErrDelegationTokenNotFound: + return "kafka server: Delegation Token is not found on server." + case ErrDelegationTokenOwnerMismatch: + return "kafka server: Specified Principal is not valid Owner/Renewer." + case ErrDelegationTokenRequestNotAllowed: + return "kafka server: Delegation Token requests are not allowed on PLAINTEXT/1-way SSL channels and on delegation token authenticated channels." + case ErrDelegationTokenAuthorizationFailed: + return "kafka server: Delegation Token authorization failed." + case ErrDelegationTokenExpired: + return "kafka server: Delegation Token is expired." + case ErrInvalidPrincipalType: + return "kafka server: Supplied principalType is not supported." + case ErrNonEmptyGroup: + return "kafka server: The group is not empty." + case ErrGroupIDNotFound: + return "kafka server: The group id does not exist." + case ErrFetchSessionIDNotFound: + return "kafka server: The fetch session ID was not found." + case ErrInvalidFetchSessionEpoch: + return "kafka server: The fetch session epoch is invalid." + case ErrListenerNotFound: + return "kafka server: There is no listener on the leader broker that matches the listener on which metadata request was processed." + case ErrTopicDeletionDisabled: + return "kafka server: Topic deletion is disabled." + case ErrFencedLeaderEpoch: + return "kafka server: The leader epoch in the request is older than the epoch on the broker." + case ErrUnknownLeaderEpoch: + return "kafka server: The leader epoch in the request is newer than the epoch on the broker." + case ErrUnsupportedCompressionType: + return "kafka server: The requesting client does not support the compression type of given partition." + case ErrStaleBrokerEpoch: + return "kafka server: Broker epoch has changed" + case ErrOffsetNotAvailable: + return "kafka server: The leader high watermark has not caught up from a recent leader election so the offsets cannot be guaranteed to be monotonically increasing" + case ErrMemberIdRequired: + return "kafka server: The group member needs to have a valid member id before actually entering a consumer group" + case ErrPreferredLeaderNotAvailable: + return "kafka server: The preferred leader was not available" + case ErrGroupMaxSizeReached: + return "kafka server: Consumer group The consumer group has reached its max size. already has the configured maximum number of members." + case ErrFencedInstancedId: + return "kafka server: The broker rejected this static consumer since another consumer with the same group.instance.id has registered with a different member.id." + } + + return fmt.Sprintf("Unknown error, how did this happen? Error code = %d", err) +} diff --git a/vendor/github.com/Shopify/sarama/fetch_request.go b/vendor/github.com/Shopify/sarama/fetch_request.go new file mode 100644 index 0000000..836e6de --- /dev/null +++ b/vendor/github.com/Shopify/sarama/fetch_request.go @@ -0,0 +1,280 @@ +package sarama + +type fetchRequestBlock struct { + Version int16 + currentLeaderEpoch int32 + fetchOffset int64 + logStartOffset int64 + maxBytes int32 +} + +func (b *fetchRequestBlock) encode(pe packetEncoder, version int16) error { + b.Version = version + if b.Version >= 9 { + pe.putInt32(b.currentLeaderEpoch) + } + pe.putInt64(b.fetchOffset) + if b.Version >= 5 { + pe.putInt64(b.logStartOffset) + } + pe.putInt32(b.maxBytes) + return nil +} + +func (b *fetchRequestBlock) decode(pd packetDecoder, version int16) (err error) { + b.Version = version + if b.Version >= 9 { + if b.currentLeaderEpoch, err = pd.getInt32(); err != nil { + return err + } + } + if b.fetchOffset, err = pd.getInt64(); err != nil { + return err + } + if b.Version >= 5 { + if b.logStartOffset, err = pd.getInt64(); err != nil { + return err + } + } + if b.maxBytes, err = pd.getInt32(); err != nil { + return err + } + return nil +} + +// FetchRequest (API key 1) will fetch Kafka messages. Version 3 introduced the MaxBytes field. See +// https://issues.apache.org/jira/browse/KAFKA-2063 for a discussion of the issues leading up to that. The KIP is at +// https://cwiki.apache.org/confluence/display/KAFKA/KIP-74%3A+Add+Fetch+Response+Size+Limit+in+Bytes +type FetchRequest struct { + MaxWaitTime int32 + MinBytes int32 + MaxBytes int32 + Version int16 + Isolation IsolationLevel + SessionID int32 + SessionEpoch int32 + blocks map[string]map[int32]*fetchRequestBlock + forgotten map[string][]int32 +} + +type IsolationLevel int8 + +const ( + ReadUncommitted IsolationLevel = iota + ReadCommitted +) + +func (r *FetchRequest) encode(pe packetEncoder) (err error) { + pe.putInt32(-1) // replica ID is always -1 for clients + pe.putInt32(r.MaxWaitTime) + pe.putInt32(r.MinBytes) + if r.Version >= 3 { + pe.putInt32(r.MaxBytes) + } + if r.Version >= 4 { + pe.putInt8(int8(r.Isolation)) + } + if r.Version >= 7 { + pe.putInt32(r.SessionID) + pe.putInt32(r.SessionEpoch) + } + err = pe.putArrayLength(len(r.blocks)) + if err != nil { + return err + } + for topic, blocks := range r.blocks { + err = pe.putString(topic) + if err != nil { + return err + } + err = pe.putArrayLength(len(blocks)) + if err != nil { + return err + } + for partition, block := range blocks { + pe.putInt32(partition) + err = block.encode(pe, r.Version) + if err != nil { + return err + } + } + } + if r.Version >= 7 { + err = pe.putArrayLength(len(r.forgotten)) + if err != nil { + return err + } + for topic, partitions := range r.forgotten { + err = pe.putString(topic) + if err != nil { + return err + } + err = pe.putArrayLength(len(partitions)) + if err != nil { + return err + } + for _, partition := range partitions { + pe.putInt32(partition) + } + } + } + + return nil +} + +func (r *FetchRequest) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + + if _, err = pd.getInt32(); err != nil { + return err + } + if r.MaxWaitTime, err = pd.getInt32(); err != nil { + return err + } + if r.MinBytes, err = pd.getInt32(); err != nil { + return err + } + if r.Version >= 3 { + if r.MaxBytes, err = pd.getInt32(); err != nil { + return err + } + } + if r.Version >= 4 { + isolation, err := pd.getInt8() + if err != nil { + return err + } + r.Isolation = IsolationLevel(isolation) + } + if r.Version >= 7 { + r.SessionID, err = pd.getInt32() + if err != nil { + return err + } + r.SessionEpoch, err = pd.getInt32() + if err != nil { + return err + } + } + topicCount, err := pd.getArrayLength() + if err != nil { + return err + } + if topicCount == 0 { + return nil + } + r.blocks = make(map[string]map[int32]*fetchRequestBlock) + for i := 0; i < topicCount; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + partitionCount, err := pd.getArrayLength() + if err != nil { + return err + } + r.blocks[topic] = make(map[int32]*fetchRequestBlock) + for j := 0; j < partitionCount; j++ { + partition, err := pd.getInt32() + if err != nil { + return err + } + fetchBlock := &fetchRequestBlock{} + if err = fetchBlock.decode(pd, r.Version); err != nil { + return err + } + r.blocks[topic][partition] = fetchBlock + } + } + + if r.Version >= 7 { + forgottenCount, err := pd.getArrayLength() + if err != nil { + return err + } + if forgottenCount == 0 { + return nil + } + r.forgotten = make(map[string][]int32) + for i := 0; i < forgottenCount; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + partitionCount, err := pd.getArrayLength() + if err != nil { + return err + } + r.forgotten[topic] = make([]int32, partitionCount) + + for j := 0; j < partitionCount; j++ { + partition, err := pd.getInt32() + if err != nil { + return err + } + r.forgotten[topic][j] = partition + } + } + } + + return nil +} + +func (r *FetchRequest) key() int16 { + return 1 +} + +func (r *FetchRequest) version() int16 { + return r.Version +} + +func (r *FetchRequest) requiredVersion() KafkaVersion { + switch r.Version { + case 0: + return MinVersion + case 1: + return V0_9_0_0 + case 2: + return V0_10_0_0 + case 3: + return V0_10_1_0 + case 4, 5: + return V0_11_0_0 + case 6: + return V1_0_0_0 + case 7: + return V1_1_0_0 + case 8: + return V2_0_0_0 + case 9, 10: + return V2_1_0_0 + case 11: + return V2_3_0_0 + default: + return MaxVersion + } +} + +func (r *FetchRequest) AddBlock(topic string, partitionID int32, fetchOffset int64, maxBytes int32) { + if r.blocks == nil { + r.blocks = make(map[string]map[int32]*fetchRequestBlock) + } + + if r.Version >= 7 && r.forgotten == nil { + r.forgotten = make(map[string][]int32) + } + + if r.blocks[topic] == nil { + r.blocks[topic] = make(map[int32]*fetchRequestBlock) + } + + tmp := new(fetchRequestBlock) + tmp.Version = r.Version + tmp.maxBytes = maxBytes + tmp.fetchOffset = fetchOffset + if r.Version >= 9 { + tmp.currentLeaderEpoch = int32(-1) + } + + r.blocks[topic][partitionID] = tmp +} diff --git a/vendor/github.com/Shopify/sarama/fetch_response.go b/vendor/github.com/Shopify/sarama/fetch_response.go new file mode 100644 index 0000000..26936d9 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/fetch_response.go @@ -0,0 +1,530 @@ +package sarama + +import ( + "sort" + "time" +) + +type AbortedTransaction struct { + ProducerID int64 + FirstOffset int64 +} + +func (t *AbortedTransaction) decode(pd packetDecoder) (err error) { + if t.ProducerID, err = pd.getInt64(); err != nil { + return err + } + + if t.FirstOffset, err = pd.getInt64(); err != nil { + return err + } + + return nil +} + +func (t *AbortedTransaction) encode(pe packetEncoder) (err error) { + pe.putInt64(t.ProducerID) + pe.putInt64(t.FirstOffset) + + return nil +} + +type FetchResponseBlock struct { + Err KError + HighWaterMarkOffset int64 + LastStableOffset int64 + LogStartOffset int64 + AbortedTransactions []*AbortedTransaction + Records *Records // deprecated: use FetchResponseBlock.RecordsSet + RecordsSet []*Records + Partial bool +} + +func (b *FetchResponseBlock) decode(pd packetDecoder, version int16) (err error) { + tmp, err := pd.getInt16() + if err != nil { + return err + } + b.Err = KError(tmp) + + b.HighWaterMarkOffset, err = pd.getInt64() + if err != nil { + return err + } + + if version >= 4 { + b.LastStableOffset, err = pd.getInt64() + if err != nil { + return err + } + + if version >= 5 { + b.LogStartOffset, err = pd.getInt64() + if err != nil { + return err + } + } + + numTransact, err := pd.getArrayLength() + if err != nil { + return err + } + + if numTransact >= 0 { + b.AbortedTransactions = make([]*AbortedTransaction, numTransact) + } + + for i := 0; i < numTransact; i++ { + transact := new(AbortedTransaction) + if err = transact.decode(pd); err != nil { + return err + } + b.AbortedTransactions[i] = transact + } + } + + recordsSize, err := pd.getInt32() + if err != nil { + return err + } + + recordsDecoder, err := pd.getSubset(int(recordsSize)) + if err != nil { + return err + } + + b.RecordsSet = []*Records{} + + for recordsDecoder.remaining() > 0 { + records := &Records{} + if err := records.decode(recordsDecoder); err != nil { + // If we have at least one decoded records, this is not an error + if err == ErrInsufficientData { + if len(b.RecordsSet) == 0 { + b.Partial = true + } + break + } + return err + } + + partial, err := records.isPartial() + if err != nil { + return err + } + + n, err := records.numRecords() + if err != nil { + return err + } + + if n > 0 || (partial && len(b.RecordsSet) == 0) { + b.RecordsSet = append(b.RecordsSet, records) + + if b.Records == nil { + b.Records = records + } + } + + overflow, err := records.isOverflow() + if err != nil { + return err + } + + if partial || overflow { + break + } + } + + return nil +} + +func (b *FetchResponseBlock) numRecords() (int, error) { + sum := 0 + + for _, records := range b.RecordsSet { + count, err := records.numRecords() + if err != nil { + return 0, err + } + + sum += count + } + + return sum, nil +} + +func (b *FetchResponseBlock) isPartial() (bool, error) { + if b.Partial { + return true, nil + } + + if len(b.RecordsSet) == 1 { + return b.RecordsSet[0].isPartial() + } + + return false, nil +} + +func (b *FetchResponseBlock) encode(pe packetEncoder, version int16) (err error) { + pe.putInt16(int16(b.Err)) + + pe.putInt64(b.HighWaterMarkOffset) + + if version >= 4 { + pe.putInt64(b.LastStableOffset) + + if version >= 5 { + pe.putInt64(b.LogStartOffset) + } + + if err = pe.putArrayLength(len(b.AbortedTransactions)); err != nil { + return err + } + for _, transact := range b.AbortedTransactions { + if err = transact.encode(pe); err != nil { + return err + } + } + } + + pe.push(&lengthField{}) + for _, records := range b.RecordsSet { + err = records.encode(pe) + if err != nil { + return err + } + } + return pe.pop() +} + +func (b *FetchResponseBlock) getAbortedTransactions() []*AbortedTransaction { + // I can't find any doc that guarantee the field `fetchResponse.AbortedTransactions` is ordered + // plus Java implementation use a PriorityQueue based on `FirstOffset`. I guess we have to order it ourself + at := b.AbortedTransactions + sort.Slice( + at, + func(i, j int) bool { return at[i].FirstOffset < at[j].FirstOffset }, + ) + return at +} + +type FetchResponse struct { + Blocks map[string]map[int32]*FetchResponseBlock + ThrottleTime time.Duration + ErrorCode int16 + SessionID int32 + Version int16 + LogAppendTime bool + Timestamp time.Time +} + +func (r *FetchResponse) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + + if r.Version >= 1 { + throttle, err := pd.getInt32() + if err != nil { + return err + } + r.ThrottleTime = time.Duration(throttle) * time.Millisecond + } + + if r.Version >= 7 { + r.ErrorCode, err = pd.getInt16() + if err != nil { + return err + } + r.SessionID, err = pd.getInt32() + if err != nil { + return err + } + } + + numTopics, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Blocks = make(map[string]map[int32]*FetchResponseBlock, numTopics) + for i := 0; i < numTopics; i++ { + name, err := pd.getString() + if err != nil { + return err + } + + numBlocks, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Blocks[name] = make(map[int32]*FetchResponseBlock, numBlocks) + + for j := 0; j < numBlocks; j++ { + id, err := pd.getInt32() + if err != nil { + return err + } + + block := new(FetchResponseBlock) + err = block.decode(pd, version) + if err != nil { + return err + } + r.Blocks[name][id] = block + } + } + + return nil +} + +func (r *FetchResponse) encode(pe packetEncoder) (err error) { + if r.Version >= 1 { + pe.putInt32(int32(r.ThrottleTime / time.Millisecond)) + } + + if r.Version >= 7 { + pe.putInt16(r.ErrorCode) + pe.putInt32(r.SessionID) + } + + err = pe.putArrayLength(len(r.Blocks)) + if err != nil { + return err + } + + for topic, partitions := range r.Blocks { + err = pe.putString(topic) + if err != nil { + return err + } + + err = pe.putArrayLength(len(partitions)) + if err != nil { + return err + } + + for id, block := range partitions { + pe.putInt32(id) + err = block.encode(pe, r.Version) + if err != nil { + return err + } + } + } + return nil +} + +func (r *FetchResponse) key() int16 { + return 1 +} + +func (r *FetchResponse) version() int16 { + return r.Version +} + +func (r *FetchResponse) requiredVersion() KafkaVersion { + switch r.Version { + case 0: + return MinVersion + case 1: + return V0_9_0_0 + case 2: + return V0_10_0_0 + case 3: + return V0_10_1_0 + case 4, 5: + return V0_11_0_0 + case 6: + return V1_0_0_0 + case 7: + return V1_1_0_0 + case 8: + return V2_0_0_0 + case 9, 10: + return V2_1_0_0 + case 11: + return V2_3_0_0 + default: + return MaxVersion + } +} + +func (r *FetchResponse) GetBlock(topic string, partition int32) *FetchResponseBlock { + if r.Blocks == nil { + return nil + } + + if r.Blocks[topic] == nil { + return nil + } + + return r.Blocks[topic][partition] +} + +func (r *FetchResponse) AddError(topic string, partition int32, err KError) { + if r.Blocks == nil { + r.Blocks = make(map[string]map[int32]*FetchResponseBlock) + } + partitions, ok := r.Blocks[topic] + if !ok { + partitions = make(map[int32]*FetchResponseBlock) + r.Blocks[topic] = partitions + } + frb, ok := partitions[partition] + if !ok { + frb = new(FetchResponseBlock) + partitions[partition] = frb + } + frb.Err = err +} + +func (r *FetchResponse) getOrCreateBlock(topic string, partition int32) *FetchResponseBlock { + if r.Blocks == nil { + r.Blocks = make(map[string]map[int32]*FetchResponseBlock) + } + partitions, ok := r.Blocks[topic] + if !ok { + partitions = make(map[int32]*FetchResponseBlock) + r.Blocks[topic] = partitions + } + frb, ok := partitions[partition] + if !ok { + frb = new(FetchResponseBlock) + partitions[partition] = frb + } + + return frb +} + +func encodeKV(key, value Encoder) ([]byte, []byte) { + var kb []byte + var vb []byte + if key != nil { + kb, _ = key.Encode() + } + if value != nil { + vb, _ = value.Encode() + } + + return kb, vb +} + +func (r *FetchResponse) AddMessageWithTimestamp(topic string, partition int32, key, value Encoder, offset int64, timestamp time.Time, version int8) { + frb := r.getOrCreateBlock(topic, partition) + kb, vb := encodeKV(key, value) + if r.LogAppendTime { + timestamp = r.Timestamp + } + msg := &Message{Key: kb, Value: vb, LogAppendTime: r.LogAppendTime, Timestamp: timestamp, Version: version} + msgBlock := &MessageBlock{Msg: msg, Offset: offset} + if len(frb.RecordsSet) == 0 { + records := newLegacyRecords(&MessageSet{}) + frb.RecordsSet = []*Records{&records} + } + set := frb.RecordsSet[0].MsgSet + set.Messages = append(set.Messages, msgBlock) +} + +func (r *FetchResponse) AddRecordWithTimestamp(topic string, partition int32, key, value Encoder, offset int64, timestamp time.Time) { + frb := r.getOrCreateBlock(topic, partition) + kb, vb := encodeKV(key, value) + if len(frb.RecordsSet) == 0 { + records := newDefaultRecords(&RecordBatch{Version: 2, LogAppendTime: r.LogAppendTime, FirstTimestamp: timestamp, MaxTimestamp: r.Timestamp}) + frb.RecordsSet = []*Records{&records} + } + batch := frb.RecordsSet[0].RecordBatch + rec := &Record{Key: kb, Value: vb, OffsetDelta: offset, TimestampDelta: timestamp.Sub(batch.FirstTimestamp)} + batch.addRecord(rec) +} + +// AddRecordBatchWithTimestamp is similar to AddRecordWithTimestamp +// But instead of appending 1 record to a batch, it append a new batch containing 1 record to the fetchResponse +// Since transaction are handled on batch level (the whole batch is either committed or aborted), use this to test transactions +func (r *FetchResponse) AddRecordBatchWithTimestamp(topic string, partition int32, key, value Encoder, offset int64, producerID int64, isTransactional bool, timestamp time.Time) { + frb := r.getOrCreateBlock(topic, partition) + kb, vb := encodeKV(key, value) + + records := newDefaultRecords(&RecordBatch{Version: 2, LogAppendTime: r.LogAppendTime, FirstTimestamp: timestamp, MaxTimestamp: r.Timestamp}) + batch := &RecordBatch{ + Version: 2, + LogAppendTime: r.LogAppendTime, + FirstTimestamp: timestamp, + MaxTimestamp: r.Timestamp, + FirstOffset: offset, + LastOffsetDelta: 0, + ProducerID: producerID, + IsTransactional: isTransactional, + } + rec := &Record{Key: kb, Value: vb, OffsetDelta: 0, TimestampDelta: timestamp.Sub(batch.FirstTimestamp)} + batch.addRecord(rec) + records.RecordBatch = batch + + frb.RecordsSet = append(frb.RecordsSet, &records) +} + +func (r *FetchResponse) AddControlRecordWithTimestamp(topic string, partition int32, offset int64, producerID int64, recordType ControlRecordType, timestamp time.Time) { + frb := r.getOrCreateBlock(topic, partition) + + // batch + batch := &RecordBatch{ + Version: 2, + LogAppendTime: r.LogAppendTime, + FirstTimestamp: timestamp, + MaxTimestamp: r.Timestamp, + FirstOffset: offset, + LastOffsetDelta: 0, + ProducerID: producerID, + IsTransactional: true, + Control: true, + } + + // records + records := newDefaultRecords(nil) + records.RecordBatch = batch + + // record + crAbort := ControlRecord{ + Version: 0, + Type: recordType, + } + crKey := &realEncoder{raw: make([]byte, 4)} + crValue := &realEncoder{raw: make([]byte, 6)} + crAbort.encode(crKey, crValue) + rec := &Record{Key: ByteEncoder(crKey.raw), Value: ByteEncoder(crValue.raw), OffsetDelta: 0, TimestampDelta: timestamp.Sub(batch.FirstTimestamp)} + batch.addRecord(rec) + + frb.RecordsSet = append(frb.RecordsSet, &records) +} + +func (r *FetchResponse) AddMessage(topic string, partition int32, key, value Encoder, offset int64) { + r.AddMessageWithTimestamp(topic, partition, key, value, offset, time.Time{}, 0) +} + +func (r *FetchResponse) AddRecord(topic string, partition int32, key, value Encoder, offset int64) { + r.AddRecordWithTimestamp(topic, partition, key, value, offset, time.Time{}) +} + +func (r *FetchResponse) AddRecordBatch(topic string, partition int32, key, value Encoder, offset int64, producerID int64, isTransactional bool) { + r.AddRecordBatchWithTimestamp(topic, partition, key, value, offset, producerID, isTransactional, time.Time{}) +} + +func (r *FetchResponse) AddControlRecord(topic string, partition int32, offset int64, producerID int64, recordType ControlRecordType) { + // define controlRecord key and value + r.AddControlRecordWithTimestamp(topic, partition, offset, producerID, recordType, time.Time{}) +} + +func (r *FetchResponse) SetLastOffsetDelta(topic string, partition int32, offset int32) { + frb := r.getOrCreateBlock(topic, partition) + if len(frb.RecordsSet) == 0 { + records := newDefaultRecords(&RecordBatch{Version: 2}) + frb.RecordsSet = []*Records{&records} + } + batch := frb.RecordsSet[0].RecordBatch + batch.LastOffsetDelta = offset +} + +func (r *FetchResponse) SetLastStableOffset(topic string, partition int32, offset int64) { + frb := r.getOrCreateBlock(topic, partition) + frb.LastStableOffset = offset +} diff --git a/vendor/github.com/Shopify/sarama/find_coordinator_request.go b/vendor/github.com/Shopify/sarama/find_coordinator_request.go new file mode 100644 index 0000000..ff2ad20 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/find_coordinator_request.go @@ -0,0 +1,61 @@ +package sarama + +type CoordinatorType int8 + +const ( + CoordinatorGroup CoordinatorType = iota + CoordinatorTransaction +) + +type FindCoordinatorRequest struct { + Version int16 + CoordinatorKey string + CoordinatorType CoordinatorType +} + +func (f *FindCoordinatorRequest) encode(pe packetEncoder) error { + if err := pe.putString(f.CoordinatorKey); err != nil { + return err + } + + if f.Version >= 1 { + pe.putInt8(int8(f.CoordinatorType)) + } + + return nil +} + +func (f *FindCoordinatorRequest) decode(pd packetDecoder, version int16) (err error) { + if f.CoordinatorKey, err = pd.getString(); err != nil { + return err + } + + if version >= 1 { + f.Version = version + coordinatorType, err := pd.getInt8() + if err != nil { + return err + } + + f.CoordinatorType = CoordinatorType(coordinatorType) + } + + return nil +} + +func (f *FindCoordinatorRequest) key() int16 { + return 10 +} + +func (f *FindCoordinatorRequest) version() int16 { + return f.Version +} + +func (f *FindCoordinatorRequest) requiredVersion() KafkaVersion { + switch f.Version { + case 1: + return V0_11_0_0 + default: + return V0_8_2_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/find_coordinator_response.go b/vendor/github.com/Shopify/sarama/find_coordinator_response.go new file mode 100644 index 0000000..9c900e8 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/find_coordinator_response.go @@ -0,0 +1,92 @@ +package sarama + +import ( + "time" +) + +var NoNode = &Broker{id: -1, addr: ":-1"} + +type FindCoordinatorResponse struct { + Version int16 + ThrottleTime time.Duration + Err KError + ErrMsg *string + Coordinator *Broker +} + +func (f *FindCoordinatorResponse) decode(pd packetDecoder, version int16) (err error) { + if version >= 1 { + f.Version = version + + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + f.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + } + + tmp, err := pd.getInt16() + if err != nil { + return err + } + f.Err = KError(tmp) + + if version >= 1 { + if f.ErrMsg, err = pd.getNullableString(); err != nil { + return err + } + } + + coordinator := new(Broker) + // The version is hardcoded to 0, as version 1 of the Broker-decode + // contains the rack-field which is not present in the FindCoordinatorResponse. + if err := coordinator.decode(pd, 0); err != nil { + return err + } + if coordinator.addr == ":0" { + return nil + } + f.Coordinator = coordinator + + return nil +} + +func (f *FindCoordinatorResponse) encode(pe packetEncoder) error { + if f.Version >= 1 { + pe.putInt32(int32(f.ThrottleTime / time.Millisecond)) + } + + pe.putInt16(int16(f.Err)) + + if f.Version >= 1 { + if err := pe.putNullableString(f.ErrMsg); err != nil { + return err + } + } + + coordinator := f.Coordinator + if coordinator == nil { + coordinator = NoNode + } + if err := coordinator.encode(pe, 0); err != nil { + return err + } + return nil +} + +func (f *FindCoordinatorResponse) key() int16 { + return 10 +} + +func (f *FindCoordinatorResponse) version() int16 { + return f.Version +} + +func (f *FindCoordinatorResponse) requiredVersion() KafkaVersion { + switch f.Version { + case 1: + return V0_11_0_0 + default: + return V0_8_2_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/go.mod b/vendor/github.com/Shopify/sarama/go.mod new file mode 100644 index 0000000..1dca1cc --- /dev/null +++ b/vendor/github.com/Shopify/sarama/go.mod @@ -0,0 +1,34 @@ +module github.com/Shopify/sarama + +go 1.13 + +require ( + github.com/Shopify/toxiproxy v2.1.4+incompatible + github.com/davecgh/go-spew v1.1.1 + github.com/eapache/go-resiliency v1.2.0 + github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 + github.com/eapache/queue v1.1.0 + github.com/fortytw2/leaktest v1.3.0 + github.com/frankban/quicktest v1.7.2 // indirect + github.com/golang/snappy v0.0.1 // indirect + github.com/google/go-cmp v0.4.0 // indirect + github.com/hashicorp/go-uuid v1.0.2 // indirect + github.com/jcmturner/gofork v1.0.0 // indirect + github.com/klauspost/compress v1.9.8 + github.com/kr/pretty v0.2.0 // indirect + github.com/pierrec/lz4 v2.4.1+incompatible + github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 + github.com/stretchr/testify v1.4.0 + github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c + github.com/xdg/stringprep v1.0.0 // indirect + golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72 // indirect + golang.org/x/net v0.0.0-20200202094626-16171245cfb2 + golang.org/x/text v0.3.2 // indirect + gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect + gopkg.in/jcmturner/aescts.v1 v1.0.1 // indirect + gopkg.in/jcmturner/dnsutils.v1 v1.0.1 // indirect + gopkg.in/jcmturner/goidentity.v3 v3.0.0 // indirect + gopkg.in/jcmturner/gokrb5.v7 v7.5.0 + gopkg.in/jcmturner/rpc.v1 v1.1.0 // indirect + gopkg.in/yaml.v2 v2.2.8 // indirect +) diff --git a/vendor/github.com/Shopify/sarama/go.sum b/vendor/github.com/Shopify/sarama/go.sum new file mode 100644 index 0000000..06ec328 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/go.sum @@ -0,0 +1,81 @@ +github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= +github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/frankban/quicktest v1.7.2 h1:2QxQoC1TS09S7fhCPsrvqYdvP1H5M1P1ih5ABm3BTYk= +github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= +github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= +github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/klauspost/compress v1.9.8 h1:VMAMUUOh+gaxKTMk+zqbjsSjsIcUcL/LF4o63i82QyA= +github.com/klauspost/compress v1.9.8/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= +github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/pierrec/lz4 v2.4.1+incompatible h1:mFe7ttWaflA46Mhqh+jUfjp2qTbPYxLB2/OyBppH9dg= +github.com/pierrec/lz4 v2.4.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 h1:dY6ETXrvDG7Sa4vE8ZQG4yqWg6UnOcbqTAahkV813vQ= +github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c h1:u40Z8hqBAAQyv+vATcGgV0YCnDjqSL7/q/JyPhhJSPk= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v1.0.0 h1:d9X0esnoa3dFsV0FG35rAT0RIhYFlPq7MiP+DW89La0= +github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72 h1:+ELyKg6m8UBf0nPFSqD0mi7zUfwPyXo23HNjMnXPz7w= +golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/jcmturner/aescts.v1 v1.0.1 h1:cVVZBK2b1zY26haWB4vbBiZrfFQnfbTVrE3xZq6hrEw= +gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= +gopkg.in/jcmturner/dnsutils.v1 v1.0.1 h1:cIuC1OLRGZrld+16ZJvvZxVJeKPsvd5eUIvxfoN5hSM= +gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= +gopkg.in/jcmturner/goidentity.v3 v3.0.0 h1:1duIyWiTaYvVx3YX2CYtpJbUFd7/UuPYCfgXtQ3VTbI= +gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= +gopkg.in/jcmturner/gokrb5.v7 v7.5.0 h1:a9tsXlIDD9SKxotJMK3niV7rPZAJeX2aD/0yg3qlIrg= +gopkg.in/jcmturner/gokrb5.v7 v7.5.0/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= +gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU= +gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/Shopify/sarama/gssapi_kerberos.go b/vendor/github.com/Shopify/sarama/gssapi_kerberos.go new file mode 100644 index 0000000..32ca93d --- /dev/null +++ b/vendor/github.com/Shopify/sarama/gssapi_kerberos.go @@ -0,0 +1,257 @@ +package sarama + +import ( + "encoding/asn1" + "encoding/binary" + "fmt" + "io" + "strings" + "time" + + "gopkg.in/jcmturner/gokrb5.v7/asn1tools" + "gopkg.in/jcmturner/gokrb5.v7/gssapi" + "gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/messages" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +const ( + TOK_ID_KRB_AP_REQ = 256 + GSS_API_GENERIC_TAG = 0x60 + KRB5_USER_AUTH = 1 + KRB5_KEYTAB_AUTH = 2 + GSS_API_INITIAL = 1 + GSS_API_VERIFY = 2 + GSS_API_FINISH = 3 +) + +type GSSAPIConfig struct { + AuthType int + KeyTabPath string + KerberosConfigPath string + ServiceName string + Username string + Password string + Realm string +} + +type GSSAPIKerberosAuth struct { + Config *GSSAPIConfig + ticket messages.Ticket + encKey types.EncryptionKey + NewKerberosClientFunc func(config *GSSAPIConfig) (KerberosClient, error) + step int +} + +type KerberosClient interface { + Login() error + GetServiceTicket(spn string) (messages.Ticket, types.EncryptionKey, error) + Domain() string + CName() types.PrincipalName + Destroy() +} + +/* +* +* Appends length in big endian before payload, and send it to kafka +* + */ + +func (krbAuth *GSSAPIKerberosAuth) writePackage(broker *Broker, payload []byte) (int, error) { + length := len(payload) + finalPackage := make([]byte, length+4) //4 byte length header + payload + copy(finalPackage[4:], payload) + binary.BigEndian.PutUint32(finalPackage, uint32(length)) + bytes, err := broker.conn.Write(finalPackage) + if err != nil { + return bytes, err + } + return bytes, nil +} + +/* +* +* Read length (4 bytes) and then read the payload +* + */ + +func (krbAuth *GSSAPIKerberosAuth) readPackage(broker *Broker) ([]byte, int, error) { + bytesRead := 0 + lengthInBytes := make([]byte, 4) + bytes, err := io.ReadFull(broker.conn, lengthInBytes) + if err != nil { + return nil, bytesRead, err + } + bytesRead += bytes + payloadLength := binary.BigEndian.Uint32(lengthInBytes) + payloadBytes := make([]byte, payloadLength) // buffer for read.. + bytes, err = io.ReadFull(broker.conn, payloadBytes) // read bytes + if err != nil { + return payloadBytes, bytesRead, err + } + bytesRead += bytes + return payloadBytes, bytesRead, nil +} + +func (krbAuth *GSSAPIKerberosAuth) newAuthenticatorChecksum() []byte { + a := make([]byte, 24) + flags := []int{gssapi.ContextFlagInteg, gssapi.ContextFlagConf} + binary.LittleEndian.PutUint32(a[:4], 16) + for _, i := range flags { + f := binary.LittleEndian.Uint32(a[20:24]) + f |= uint32(i) + binary.LittleEndian.PutUint32(a[20:24], f) + } + return a +} + +/* +* +* Construct Kerberos AP_REQ package, conforming to RFC-4120 +* https://tools.ietf.org/html/rfc4120#page-84 +* + */ +func (krbAuth *GSSAPIKerberosAuth) createKrb5Token( + domain string, cname types.PrincipalName, + ticket messages.Ticket, + sessionKey types.EncryptionKey) ([]byte, error) { + auth, err := types.NewAuthenticator(domain, cname) + if err != nil { + return nil, err + } + auth.Cksum = types.Checksum{ + CksumType: chksumtype.GSSAPI, + Checksum: krbAuth.newAuthenticatorChecksum(), + } + APReq, err := messages.NewAPReq( + ticket, + sessionKey, + auth, + ) + if err != nil { + return nil, err + } + aprBytes := make([]byte, 2) + binary.BigEndian.PutUint16(aprBytes, TOK_ID_KRB_AP_REQ) + tb, err := APReq.Marshal() + if err != nil { + return nil, err + } + aprBytes = append(aprBytes, tb...) + return aprBytes, nil +} + +/* +* +* Append the GSS-API header to the payload, conforming to RFC-2743 +* Section 3.1, Mechanism-Independent Token Format +* +* https://tools.ietf.org/html/rfc2743#page-81 +* +* GSSAPIHeader + +* + */ +func (krbAuth *GSSAPIKerberosAuth) appendGSSAPIHeader(payload []byte) ([]byte, error) { + oidBytes, err := asn1.Marshal(gssapi.OID(gssapi.OIDKRB5)) + if err != nil { + return nil, err + } + tkoLengthBytes := asn1tools.MarshalLengthBytes(len(oidBytes) + len(payload)) + GSSHeader := append([]byte{GSS_API_GENERIC_TAG}, tkoLengthBytes...) + GSSHeader = append(GSSHeader, oidBytes...) + GSSPackage := append(GSSHeader, payload...) + return GSSPackage, nil +} + +func (krbAuth *GSSAPIKerberosAuth) initSecContext(bytes []byte, kerberosClient KerberosClient) ([]byte, error) { + switch krbAuth.step { + case GSS_API_INITIAL: + aprBytes, err := krbAuth.createKrb5Token( + kerberosClient.Domain(), + kerberosClient.CName(), + krbAuth.ticket, + krbAuth.encKey) + if err != nil { + return nil, err + } + krbAuth.step = GSS_API_VERIFY + return krbAuth.appendGSSAPIHeader(aprBytes) + case GSS_API_VERIFY: + wrapTokenReq := gssapi.WrapToken{} + if err := wrapTokenReq.Unmarshal(bytes, true); err != nil { + return nil, err + } + // Validate response. + isValid, err := wrapTokenReq.Verify(krbAuth.encKey, keyusage.GSSAPI_ACCEPTOR_SEAL) + if !isValid { + return nil, err + } + + wrapTokenResponse, err := gssapi.NewInitiatorWrapToken(wrapTokenReq.Payload, krbAuth.encKey) + if err != nil { + return nil, err + } + krbAuth.step = GSS_API_FINISH + return wrapTokenResponse.Marshal() + } + return nil, nil +} + +/* This does the handshake for authorization */ +func (krbAuth *GSSAPIKerberosAuth) Authorize(broker *Broker) error { + kerberosClient, err := krbAuth.NewKerberosClientFunc(krbAuth.Config) + if err != nil { + Logger.Printf("Kerberos client error: %s", err) + return err + } + + err = kerberosClient.Login() + if err != nil { + Logger.Printf("Kerberos client error: %s", err) + return err + } + // Construct SPN using serviceName and host + // SPN format: / + + host := strings.SplitN(broker.addr, ":", 2)[0] // Strip port part + spn := fmt.Sprintf("%s/%s", broker.conf.Net.SASL.GSSAPI.ServiceName, host) + + ticket, encKey, err := kerberosClient.GetServiceTicket(spn) + + if err != nil { + Logger.Printf("Error getting Kerberos service ticket : %s", err) + return err + } + krbAuth.ticket = ticket + krbAuth.encKey = encKey + krbAuth.step = GSS_API_INITIAL + var receivedBytes []byte = nil + defer kerberosClient.Destroy() + for { + packBytes, err := krbAuth.initSecContext(receivedBytes, kerberosClient) + if err != nil { + Logger.Printf("Error while performing GSSAPI Kerberos Authentication: %s\n", err) + return err + } + requestTime := time.Now() + bytesWritten, err := krbAuth.writePackage(broker, packBytes) + if err != nil { + Logger.Printf("Error while performing GSSAPI Kerberos Authentication: %s\n", err) + return err + } + broker.updateOutgoingCommunicationMetrics(bytesWritten) + if krbAuth.step == GSS_API_VERIFY { + var bytesRead = 0 + receivedBytes, bytesRead, err = krbAuth.readPackage(broker) + requestLatency := time.Since(requestTime) + broker.updateIncomingCommunicationMetrics(bytesRead, requestLatency) + if err != nil { + Logger.Printf("Error while performing GSSAPI Kerberos Authentication: %s\n", err) + return err + } + } else if krbAuth.step == GSS_API_FINISH { + return nil + } + } +} diff --git a/vendor/github.com/Shopify/sarama/heartbeat_request.go b/vendor/github.com/Shopify/sarama/heartbeat_request.go new file mode 100644 index 0000000..ce49c47 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/heartbeat_request.go @@ -0,0 +1,47 @@ +package sarama + +type HeartbeatRequest struct { + GroupId string + GenerationId int32 + MemberId string +} + +func (r *HeartbeatRequest) encode(pe packetEncoder) error { + if err := pe.putString(r.GroupId); err != nil { + return err + } + + pe.putInt32(r.GenerationId) + + if err := pe.putString(r.MemberId); err != nil { + return err + } + + return nil +} + +func (r *HeartbeatRequest) decode(pd packetDecoder, version int16) (err error) { + if r.GroupId, err = pd.getString(); err != nil { + return + } + if r.GenerationId, err = pd.getInt32(); err != nil { + return + } + if r.MemberId, err = pd.getString(); err != nil { + return + } + + return nil +} + +func (r *HeartbeatRequest) key() int16 { + return 12 +} + +func (r *HeartbeatRequest) version() int16 { + return 0 +} + +func (r *HeartbeatRequest) requiredVersion() KafkaVersion { + return V0_9_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/heartbeat_response.go b/vendor/github.com/Shopify/sarama/heartbeat_response.go new file mode 100644 index 0000000..766f5fd --- /dev/null +++ b/vendor/github.com/Shopify/sarama/heartbeat_response.go @@ -0,0 +1,32 @@ +package sarama + +type HeartbeatResponse struct { + Err KError +} + +func (r *HeartbeatResponse) encode(pe packetEncoder) error { + pe.putInt16(int16(r.Err)) + return nil +} + +func (r *HeartbeatResponse) decode(pd packetDecoder, version int16) error { + kerr, err := pd.getInt16() + if err != nil { + return err + } + r.Err = KError(kerr) + + return nil +} + +func (r *HeartbeatResponse) key() int16 { + return 12 +} + +func (r *HeartbeatResponse) version() int16 { + return 0 +} + +func (r *HeartbeatResponse) requiredVersion() KafkaVersion { + return V0_9_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/init_producer_id_request.go b/vendor/github.com/Shopify/sarama/init_producer_id_request.go new file mode 100644 index 0000000..8ceb6c2 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/init_producer_id_request.go @@ -0,0 +1,43 @@ +package sarama + +import "time" + +type InitProducerIDRequest struct { + TransactionalID *string + TransactionTimeout time.Duration +} + +func (i *InitProducerIDRequest) encode(pe packetEncoder) error { + if err := pe.putNullableString(i.TransactionalID); err != nil { + return err + } + pe.putInt32(int32(i.TransactionTimeout / time.Millisecond)) + + return nil +} + +func (i *InitProducerIDRequest) decode(pd packetDecoder, version int16) (err error) { + if i.TransactionalID, err = pd.getNullableString(); err != nil { + return err + } + + timeout, err := pd.getInt32() + if err != nil { + return err + } + i.TransactionTimeout = time.Duration(timeout) * time.Millisecond + + return nil +} + +func (i *InitProducerIDRequest) key() int16 { + return 22 +} + +func (i *InitProducerIDRequest) version() int16 { + return 0 +} + +func (i *InitProducerIDRequest) requiredVersion() KafkaVersion { + return V0_11_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/init_producer_id_response.go b/vendor/github.com/Shopify/sarama/init_producer_id_response.go new file mode 100644 index 0000000..1b32eb0 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/init_producer_id_response.go @@ -0,0 +1,55 @@ +package sarama + +import "time" + +type InitProducerIDResponse struct { + ThrottleTime time.Duration + Err KError + ProducerID int64 + ProducerEpoch int16 +} + +func (i *InitProducerIDResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(i.ThrottleTime / time.Millisecond)) + pe.putInt16(int16(i.Err)) + pe.putInt64(i.ProducerID) + pe.putInt16(i.ProducerEpoch) + + return nil +} + +func (i *InitProducerIDResponse) decode(pd packetDecoder, version int16) (err error) { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + i.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + kerr, err := pd.getInt16() + if err != nil { + return err + } + i.Err = KError(kerr) + + if i.ProducerID, err = pd.getInt64(); err != nil { + return err + } + + if i.ProducerEpoch, err = pd.getInt16(); err != nil { + return err + } + + return nil +} + +func (i *InitProducerIDResponse) key() int16 { + return 22 +} + +func (i *InitProducerIDResponse) version() int16 { + return 0 +} + +func (i *InitProducerIDResponse) requiredVersion() KafkaVersion { + return V0_11_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/join_group_request.go b/vendor/github.com/Shopify/sarama/join_group_request.go new file mode 100644 index 0000000..97e9299 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/join_group_request.go @@ -0,0 +1,163 @@ +package sarama + +type GroupProtocol struct { + Name string + Metadata []byte +} + +func (p *GroupProtocol) decode(pd packetDecoder) (err error) { + p.Name, err = pd.getString() + if err != nil { + return err + } + p.Metadata, err = pd.getBytes() + return err +} + +func (p *GroupProtocol) encode(pe packetEncoder) (err error) { + if err := pe.putString(p.Name); err != nil { + return err + } + if err := pe.putBytes(p.Metadata); err != nil { + return err + } + return nil +} + +type JoinGroupRequest struct { + Version int16 + GroupId string + SessionTimeout int32 + RebalanceTimeout int32 + MemberId string + ProtocolType string + GroupProtocols map[string][]byte // deprecated; use OrderedGroupProtocols + OrderedGroupProtocols []*GroupProtocol +} + +func (r *JoinGroupRequest) encode(pe packetEncoder) error { + if err := pe.putString(r.GroupId); err != nil { + return err + } + pe.putInt32(r.SessionTimeout) + if r.Version >= 1 { + pe.putInt32(r.RebalanceTimeout) + } + if err := pe.putString(r.MemberId); err != nil { + return err + } + if err := pe.putString(r.ProtocolType); err != nil { + return err + } + + if len(r.GroupProtocols) > 0 { + if len(r.OrderedGroupProtocols) > 0 { + return PacketDecodingError{"cannot specify both GroupProtocols and OrderedGroupProtocols on JoinGroupRequest"} + } + + if err := pe.putArrayLength(len(r.GroupProtocols)); err != nil { + return err + } + for name, metadata := range r.GroupProtocols { + if err := pe.putString(name); err != nil { + return err + } + if err := pe.putBytes(metadata); err != nil { + return err + } + } + } else { + if err := pe.putArrayLength(len(r.OrderedGroupProtocols)); err != nil { + return err + } + for _, protocol := range r.OrderedGroupProtocols { + if err := protocol.encode(pe); err != nil { + return err + } + } + } + + return nil +} + +func (r *JoinGroupRequest) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + + if r.GroupId, err = pd.getString(); err != nil { + return + } + + if r.SessionTimeout, err = pd.getInt32(); err != nil { + return + } + + if version >= 1 { + if r.RebalanceTimeout, err = pd.getInt32(); err != nil { + return err + } + } + + if r.MemberId, err = pd.getString(); err != nil { + return + } + + if r.ProtocolType, err = pd.getString(); err != nil { + return + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + if n == 0 { + return nil + } + + r.GroupProtocols = make(map[string][]byte) + for i := 0; i < n; i++ { + protocol := &GroupProtocol{} + if err := protocol.decode(pd); err != nil { + return err + } + r.GroupProtocols[protocol.Name] = protocol.Metadata + r.OrderedGroupProtocols = append(r.OrderedGroupProtocols, protocol) + } + + return nil +} + +func (r *JoinGroupRequest) key() int16 { + return 11 +} + +func (r *JoinGroupRequest) version() int16 { + return r.Version +} + +func (r *JoinGroupRequest) requiredVersion() KafkaVersion { + switch r.Version { + case 2: + return V0_11_0_0 + case 1: + return V0_10_1_0 + default: + return V0_9_0_0 + } +} + +func (r *JoinGroupRequest) AddGroupProtocol(name string, metadata []byte) { + r.OrderedGroupProtocols = append(r.OrderedGroupProtocols, &GroupProtocol{ + Name: name, + Metadata: metadata, + }) +} + +func (r *JoinGroupRequest) AddGroupProtocolMetadata(name string, metadata *ConsumerGroupMemberMetadata) error { + bin, err := encode(metadata, nil) + if err != nil { + return err + } + + r.AddGroupProtocol(name, bin) + return nil +} diff --git a/vendor/github.com/Shopify/sarama/join_group_response.go b/vendor/github.com/Shopify/sarama/join_group_response.go new file mode 100644 index 0000000..5752acc --- /dev/null +++ b/vendor/github.com/Shopify/sarama/join_group_response.go @@ -0,0 +1,135 @@ +package sarama + +type JoinGroupResponse struct { + Version int16 + ThrottleTime int32 + Err KError + GenerationId int32 + GroupProtocol string + LeaderId string + MemberId string + Members map[string][]byte +} + +func (r *JoinGroupResponse) GetMembers() (map[string]ConsumerGroupMemberMetadata, error) { + members := make(map[string]ConsumerGroupMemberMetadata, len(r.Members)) + for id, bin := range r.Members { + meta := new(ConsumerGroupMemberMetadata) + if err := decode(bin, meta); err != nil { + return nil, err + } + members[id] = *meta + } + return members, nil +} + +func (r *JoinGroupResponse) encode(pe packetEncoder) error { + if r.Version >= 2 { + pe.putInt32(r.ThrottleTime) + } + pe.putInt16(int16(r.Err)) + pe.putInt32(r.GenerationId) + + if err := pe.putString(r.GroupProtocol); err != nil { + return err + } + if err := pe.putString(r.LeaderId); err != nil { + return err + } + if err := pe.putString(r.MemberId); err != nil { + return err + } + + if err := pe.putArrayLength(len(r.Members)); err != nil { + return err + } + + for memberId, memberMetadata := range r.Members { + if err := pe.putString(memberId); err != nil { + return err + } + + if err := pe.putBytes(memberMetadata); err != nil { + return err + } + } + + return nil +} + +func (r *JoinGroupResponse) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + + if version >= 2 { + if r.ThrottleTime, err = pd.getInt32(); err != nil { + return + } + } + + kerr, err := pd.getInt16() + if err != nil { + return err + } + + r.Err = KError(kerr) + + if r.GenerationId, err = pd.getInt32(); err != nil { + return + } + + if r.GroupProtocol, err = pd.getString(); err != nil { + return + } + + if r.LeaderId, err = pd.getString(); err != nil { + return + } + + if r.MemberId, err = pd.getString(); err != nil { + return + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + if n == 0 { + return nil + } + + r.Members = make(map[string][]byte) + for i := 0; i < n; i++ { + memberId, err := pd.getString() + if err != nil { + return err + } + + memberMetadata, err := pd.getBytes() + if err != nil { + return err + } + + r.Members[memberId] = memberMetadata + } + + return nil +} + +func (r *JoinGroupResponse) key() int16 { + return 11 +} + +func (r *JoinGroupResponse) version() int16 { + return r.Version +} + +func (r *JoinGroupResponse) requiredVersion() KafkaVersion { + switch r.Version { + case 2: + return V0_11_0_0 + case 1: + return V0_10_1_0 + default: + return V0_9_0_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/kerberos_client.go b/vendor/github.com/Shopify/sarama/kerberos_client.go new file mode 100644 index 0000000..91b998f --- /dev/null +++ b/vendor/github.com/Shopify/sarama/kerberos_client.go @@ -0,0 +1,51 @@ +package sarama + +import ( + krb5client "gopkg.in/jcmturner/gokrb5.v7/client" + krb5config "gopkg.in/jcmturner/gokrb5.v7/config" + "gopkg.in/jcmturner/gokrb5.v7/keytab" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +type KerberosGoKrb5Client struct { + krb5client.Client +} + +func (c *KerberosGoKrb5Client) Domain() string { + return c.Credentials.Domain() +} + +func (c *KerberosGoKrb5Client) CName() types.PrincipalName { + return c.Credentials.CName() +} + +/* +* +* Create kerberos client used to obtain TGT and TGS tokens +* used gokrb5 library, which is a pure go kerberos client with +* some GSS-API capabilities, and SPNEGO support. Kafka does not use SPNEGO +* it uses pure Kerberos 5 solution (RFC-4121 and RFC-4120). +* + */ +func NewKerberosClient(config *GSSAPIConfig) (KerberosClient, error) { + cfg, err := krb5config.Load(config.KerberosConfigPath) + if err != nil { + return nil, err + } + return createClient(config, cfg) +} + +func createClient(config *GSSAPIConfig, cfg *krb5config.Config) (KerberosClient, error) { + var client *krb5client.Client + if config.AuthType == KRB5_KEYTAB_AUTH { + kt, err := keytab.Load(config.KeyTabPath) + if err != nil { + return nil, err + } + client = krb5client.NewClientWithKeytab(config.Username, config.Realm, kt, cfg) + } else { + client = krb5client.NewClientWithPassword(config.Username, + config.Realm, config.Password, cfg) + } + return &KerberosGoKrb5Client{*client}, nil +} diff --git a/vendor/github.com/Shopify/sarama/leave_group_request.go b/vendor/github.com/Shopify/sarama/leave_group_request.go new file mode 100644 index 0000000..e177427 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/leave_group_request.go @@ -0,0 +1,40 @@ +package sarama + +type LeaveGroupRequest struct { + GroupId string + MemberId string +} + +func (r *LeaveGroupRequest) encode(pe packetEncoder) error { + if err := pe.putString(r.GroupId); err != nil { + return err + } + if err := pe.putString(r.MemberId); err != nil { + return err + } + + return nil +} + +func (r *LeaveGroupRequest) decode(pd packetDecoder, version int16) (err error) { + if r.GroupId, err = pd.getString(); err != nil { + return + } + if r.MemberId, err = pd.getString(); err != nil { + return + } + + return nil +} + +func (r *LeaveGroupRequest) key() int16 { + return 13 +} + +func (r *LeaveGroupRequest) version() int16 { + return 0 +} + +func (r *LeaveGroupRequest) requiredVersion() KafkaVersion { + return V0_9_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/leave_group_response.go b/vendor/github.com/Shopify/sarama/leave_group_response.go new file mode 100644 index 0000000..d60c626 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/leave_group_response.go @@ -0,0 +1,32 @@ +package sarama + +type LeaveGroupResponse struct { + Err KError +} + +func (r *LeaveGroupResponse) encode(pe packetEncoder) error { + pe.putInt16(int16(r.Err)) + return nil +} + +func (r *LeaveGroupResponse) decode(pd packetDecoder, version int16) (err error) { + kerr, err := pd.getInt16() + if err != nil { + return err + } + r.Err = KError(kerr) + + return nil +} + +func (r *LeaveGroupResponse) key() int16 { + return 13 +} + +func (r *LeaveGroupResponse) version() int16 { + return 0 +} + +func (r *LeaveGroupResponse) requiredVersion() KafkaVersion { + return V0_9_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/length_field.go b/vendor/github.com/Shopify/sarama/length_field.go new file mode 100644 index 0000000..7d864f6 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/length_field.go @@ -0,0 +1,99 @@ +package sarama + +import ( + "encoding/binary" + "sync" +) + +// LengthField implements the PushEncoder and PushDecoder interfaces for calculating 4-byte lengths. +type lengthField struct { + startOffset int + length int32 +} + +var lengthFieldPool = sync.Pool{} + +func acquireLengthField() *lengthField { + val := lengthFieldPool.Get() + if val != nil { + return val.(*lengthField) + } + return &lengthField{} +} + +func releaseLengthField(m *lengthField) { + lengthFieldPool.Put(m) +} + +func (l *lengthField) decode(pd packetDecoder) error { + var err error + l.length, err = pd.getInt32() + if err != nil { + return err + } + if l.length > int32(pd.remaining()) { + return ErrInsufficientData + } + return nil +} + +func (l *lengthField) saveOffset(in int) { + l.startOffset = in +} + +func (l *lengthField) reserveLength() int { + return 4 +} + +func (l *lengthField) run(curOffset int, buf []byte) error { + binary.BigEndian.PutUint32(buf[l.startOffset:], uint32(curOffset-l.startOffset-4)) + return nil +} + +func (l *lengthField) check(curOffset int, buf []byte) error { + if int32(curOffset-l.startOffset-4) != l.length { + return PacketDecodingError{"length field invalid"} + } + + return nil +} + +type varintLengthField struct { + startOffset int + length int64 +} + +func (l *varintLengthField) decode(pd packetDecoder) error { + var err error + l.length, err = pd.getVarint() + return err +} + +func (l *varintLengthField) saveOffset(in int) { + l.startOffset = in +} + +func (l *varintLengthField) adjustLength(currOffset int) int { + oldFieldSize := l.reserveLength() + l.length = int64(currOffset - l.startOffset - oldFieldSize) + + return l.reserveLength() - oldFieldSize +} + +func (l *varintLengthField) reserveLength() int { + var tmp [binary.MaxVarintLen64]byte + return binary.PutVarint(tmp[:], l.length) +} + +func (l *varintLengthField) run(curOffset int, buf []byte) error { + binary.PutVarint(buf[l.startOffset:], l.length) + return nil +} + +func (l *varintLengthField) check(curOffset int, buf []byte) error { + if int64(curOffset-l.startOffset-l.reserveLength()) != l.length { + return PacketDecodingError{"length field invalid"} + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/list_groups_request.go b/vendor/github.com/Shopify/sarama/list_groups_request.go new file mode 100644 index 0000000..3b16abf --- /dev/null +++ b/vendor/github.com/Shopify/sarama/list_groups_request.go @@ -0,0 +1,24 @@ +package sarama + +type ListGroupsRequest struct { +} + +func (r *ListGroupsRequest) encode(pe packetEncoder) error { + return nil +} + +func (r *ListGroupsRequest) decode(pd packetDecoder, version int16) (err error) { + return nil +} + +func (r *ListGroupsRequest) key() int16 { + return 16 +} + +func (r *ListGroupsRequest) version() int16 { + return 0 +} + +func (r *ListGroupsRequest) requiredVersion() KafkaVersion { + return V0_9_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/list_groups_response.go b/vendor/github.com/Shopify/sarama/list_groups_response.go new file mode 100644 index 0000000..56115d4 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/list_groups_response.go @@ -0,0 +1,69 @@ +package sarama + +type ListGroupsResponse struct { + Err KError + Groups map[string]string +} + +func (r *ListGroupsResponse) encode(pe packetEncoder) error { + pe.putInt16(int16(r.Err)) + + if err := pe.putArrayLength(len(r.Groups)); err != nil { + return err + } + for groupId, protocolType := range r.Groups { + if err := pe.putString(groupId); err != nil { + return err + } + if err := pe.putString(protocolType); err != nil { + return err + } + } + + return nil +} + +func (r *ListGroupsResponse) decode(pd packetDecoder, version int16) error { + kerr, err := pd.getInt16() + if err != nil { + return err + } + + r.Err = KError(kerr) + + n, err := pd.getArrayLength() + if err != nil { + return err + } + if n == 0 { + return nil + } + + r.Groups = make(map[string]string) + for i := 0; i < n; i++ { + groupId, err := pd.getString() + if err != nil { + return err + } + protocolType, err := pd.getString() + if err != nil { + return err + } + + r.Groups[groupId] = protocolType + } + + return nil +} + +func (r *ListGroupsResponse) key() int16 { + return 16 +} + +func (r *ListGroupsResponse) version() int16 { + return 0 +} + +func (r *ListGroupsResponse) requiredVersion() KafkaVersion { + return V0_9_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/message.go b/vendor/github.com/Shopify/sarama/message.go new file mode 100644 index 0000000..e48566b --- /dev/null +++ b/vendor/github.com/Shopify/sarama/message.go @@ -0,0 +1,174 @@ +package sarama + +import ( + "fmt" + "time" +) + +const ( + //CompressionNone no compression + CompressionNone CompressionCodec = iota + //CompressionGZIP compression using GZIP + CompressionGZIP + //CompressionSnappy compression using snappy + CompressionSnappy + //CompressionLZ4 compression using LZ4 + CompressionLZ4 + //CompressionZSTD compression using ZSTD + CompressionZSTD + + // The lowest 3 bits contain the compression codec used for the message + compressionCodecMask int8 = 0x07 + + // Bit 3 set for "LogAppend" timestamps + timestampTypeMask = 0x08 + + // CompressionLevelDefault is the constant to use in CompressionLevel + // to have the default compression level for any codec. The value is picked + // that we don't use any existing compression levels. + CompressionLevelDefault = -1000 +) + +// CompressionCodec represents the various compression codecs recognized by Kafka in messages. +type CompressionCodec int8 + +func (cc CompressionCodec) String() string { + return []string{ + "none", + "gzip", + "snappy", + "lz4", + "zstd", + }[int(cc)] +} + +//Message is a kafka message type +type Message struct { + Codec CompressionCodec // codec used to compress the message contents + CompressionLevel int // compression level + LogAppendTime bool // the used timestamp is LogAppendTime + Key []byte // the message key, may be nil + Value []byte // the message contents + Set *MessageSet // the message set a message might wrap + Version int8 // v1 requires Kafka 0.10 + Timestamp time.Time // the timestamp of the message (version 1+ only) + + compressedCache []byte + compressedSize int // used for computing the compression ratio metrics +} + +func (m *Message) encode(pe packetEncoder) error { + pe.push(newCRC32Field(crcIEEE)) + + pe.putInt8(m.Version) + + attributes := int8(m.Codec) & compressionCodecMask + if m.LogAppendTime { + attributes |= timestampTypeMask + } + pe.putInt8(attributes) + + if m.Version >= 1 { + if err := (Timestamp{&m.Timestamp}).encode(pe); err != nil { + return err + } + } + + err := pe.putBytes(m.Key) + if err != nil { + return err + } + + var payload []byte + + if m.compressedCache != nil { + payload = m.compressedCache + m.compressedCache = nil + } else if m.Value != nil { + payload, err = compress(m.Codec, m.CompressionLevel, m.Value) + if err != nil { + return err + } + m.compressedCache = payload + // Keep in mind the compressed payload size for metric gathering + m.compressedSize = len(payload) + } + + if err = pe.putBytes(payload); err != nil { + return err + } + + return pe.pop() +} + +func (m *Message) decode(pd packetDecoder) (err error) { + crc32Decoder := acquireCrc32Field(crcIEEE) + defer releaseCrc32Field(crc32Decoder) + + err = pd.push(crc32Decoder) + if err != nil { + return err + } + + m.Version, err = pd.getInt8() + if err != nil { + return err + } + + if m.Version > 1 { + return PacketDecodingError{fmt.Sprintf("unknown magic byte (%v)", m.Version)} + } + + attribute, err := pd.getInt8() + if err != nil { + return err + } + m.Codec = CompressionCodec(attribute & compressionCodecMask) + m.LogAppendTime = attribute×tampTypeMask == timestampTypeMask + + if m.Version == 1 { + if err := (Timestamp{&m.Timestamp}).decode(pd); err != nil { + return err + } + } + + m.Key, err = pd.getBytes() + if err != nil { + return err + } + + m.Value, err = pd.getBytes() + if err != nil { + return err + } + + // Required for deep equal assertion during tests but might be useful + // for future metrics about the compression ratio in fetch requests + m.compressedSize = len(m.Value) + + switch m.Codec { + case CompressionNone: + // nothing to do + default: + if m.Value == nil { + break + } + + m.Value, err = decompress(m.Codec, m.Value) + if err != nil { + return err + } + if err := m.decodeSet(); err != nil { + return err + } + } + + return pd.pop() +} + +// decodes a message set from a previously encoded bulk-message +func (m *Message) decodeSet() (err error) { + pd := realDecoder{raw: m.Value} + m.Set = &MessageSet{} + return m.Set.decode(&pd) +} diff --git a/vendor/github.com/Shopify/sarama/message_set.go b/vendor/github.com/Shopify/sarama/message_set.go new file mode 100644 index 0000000..6523ec2 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/message_set.go @@ -0,0 +1,111 @@ +package sarama + +type MessageBlock struct { + Offset int64 + Msg *Message +} + +// Messages convenience helper which returns either all the +// messages that are wrapped in this block +func (msb *MessageBlock) Messages() []*MessageBlock { + if msb.Msg.Set != nil { + return msb.Msg.Set.Messages + } + return []*MessageBlock{msb} +} + +func (msb *MessageBlock) encode(pe packetEncoder) error { + pe.putInt64(msb.Offset) + pe.push(&lengthField{}) + err := msb.Msg.encode(pe) + if err != nil { + return err + } + return pe.pop() +} + +func (msb *MessageBlock) decode(pd packetDecoder) (err error) { + if msb.Offset, err = pd.getInt64(); err != nil { + return err + } + + lengthDecoder := acquireLengthField() + defer releaseLengthField(lengthDecoder) + + if err = pd.push(lengthDecoder); err != nil { + return err + } + + msb.Msg = new(Message) + if err = msb.Msg.decode(pd); err != nil { + return err + } + + if err = pd.pop(); err != nil { + return err + } + + return nil +} + +type MessageSet struct { + PartialTrailingMessage bool // whether the set on the wire contained an incomplete trailing MessageBlock + OverflowMessage bool // whether the set on the wire contained an overflow message + Messages []*MessageBlock +} + +func (ms *MessageSet) encode(pe packetEncoder) error { + for i := range ms.Messages { + err := ms.Messages[i].encode(pe) + if err != nil { + return err + } + } + return nil +} + +func (ms *MessageSet) decode(pd packetDecoder) (err error) { + ms.Messages = nil + + for pd.remaining() > 0 { + magic, err := magicValue(pd) + if err != nil { + if err == ErrInsufficientData { + ms.PartialTrailingMessage = true + return nil + } + return err + } + + if magic > 1 { + return nil + } + + msb := new(MessageBlock) + err = msb.decode(pd) + switch err { + case nil: + ms.Messages = append(ms.Messages, msb) + case ErrInsufficientData: + // As an optimization the server is allowed to return a partial message at the + // end of the message set. Clients should handle this case. So we just ignore such things. + if msb.Offset == -1 { + // This is an overflow message caused by chunked down conversion + ms.OverflowMessage = true + } else { + ms.PartialTrailingMessage = true + } + return nil + default: + return err + } + } + + return nil +} + +func (ms *MessageSet) addMessage(msg *Message) { + block := new(MessageBlock) + block.Msg = msg + ms.Messages = append(ms.Messages, block) +} diff --git a/vendor/github.com/Shopify/sarama/metadata_request.go b/vendor/github.com/Shopify/sarama/metadata_request.go new file mode 100644 index 0000000..1b590d3 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/metadata_request.go @@ -0,0 +1,81 @@ +package sarama + +type MetadataRequest struct { + Version int16 + Topics []string + AllowAutoTopicCreation bool +} + +func (r *MetadataRequest) encode(pe packetEncoder) error { + if r.Version < 0 || r.Version > 5 { + return PacketEncodingError{"invalid or unsupported MetadataRequest version field"} + } + if r.Version == 0 || len(r.Topics) > 0 { + err := pe.putArrayLength(len(r.Topics)) + if err != nil { + return err + } + + for i := range r.Topics { + err = pe.putString(r.Topics[i]) + if err != nil { + return err + } + } + } else { + pe.putInt32(-1) + } + if r.Version > 3 { + pe.putBool(r.AllowAutoTopicCreation) + } + return nil +} + +func (r *MetadataRequest) decode(pd packetDecoder, version int16) error { + r.Version = version + size, err := pd.getInt32() + if err != nil { + return err + } + if size > 0 { + r.Topics = make([]string, size) + for i := range r.Topics { + topic, err := pd.getString() + if err != nil { + return err + } + r.Topics[i] = topic + } + } + if r.Version > 3 { + autoCreation, err := pd.getBool() + if err != nil { + return err + } + r.AllowAutoTopicCreation = autoCreation + } + return nil +} + +func (r *MetadataRequest) key() int16 { + return 3 +} + +func (r *MetadataRequest) version() int16 { + return r.Version +} + +func (r *MetadataRequest) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V0_10_0_0 + case 2: + return V0_10_1_0 + case 3, 4: + return V0_11_0_0 + case 5: + return V1_0_0_0 + default: + return MinVersion + } +} diff --git a/vendor/github.com/Shopify/sarama/metadata_response.go b/vendor/github.com/Shopify/sarama/metadata_response.go new file mode 100644 index 0000000..916992d --- /dev/null +++ b/vendor/github.com/Shopify/sarama/metadata_response.go @@ -0,0 +1,321 @@ +package sarama + +type PartitionMetadata struct { + Err KError + ID int32 + Leader int32 + Replicas []int32 + Isr []int32 + OfflineReplicas []int32 +} + +func (pm *PartitionMetadata) decode(pd packetDecoder, version int16) (err error) { + tmp, err := pd.getInt16() + if err != nil { + return err + } + pm.Err = KError(tmp) + + pm.ID, err = pd.getInt32() + if err != nil { + return err + } + + pm.Leader, err = pd.getInt32() + if err != nil { + return err + } + + pm.Replicas, err = pd.getInt32Array() + if err != nil { + return err + } + + pm.Isr, err = pd.getInt32Array() + if err != nil { + return err + } + + if version >= 5 { + pm.OfflineReplicas, err = pd.getInt32Array() + if err != nil { + return err + } + } + + return nil +} + +func (pm *PartitionMetadata) encode(pe packetEncoder, version int16) (err error) { + pe.putInt16(int16(pm.Err)) + pe.putInt32(pm.ID) + pe.putInt32(pm.Leader) + + err = pe.putInt32Array(pm.Replicas) + if err != nil { + return err + } + + err = pe.putInt32Array(pm.Isr) + if err != nil { + return err + } + + if version >= 5 { + err = pe.putInt32Array(pm.OfflineReplicas) + if err != nil { + return err + } + } + + return nil +} + +type TopicMetadata struct { + Err KError + Name string + IsInternal bool // Only valid for Version >= 1 + Partitions []*PartitionMetadata +} + +func (tm *TopicMetadata) decode(pd packetDecoder, version int16) (err error) { + tmp, err := pd.getInt16() + if err != nil { + return err + } + tm.Err = KError(tmp) + + tm.Name, err = pd.getString() + if err != nil { + return err + } + + if version >= 1 { + tm.IsInternal, err = pd.getBool() + if err != nil { + return err + } + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + tm.Partitions = make([]*PartitionMetadata, n) + for i := 0; i < n; i++ { + tm.Partitions[i] = new(PartitionMetadata) + err = tm.Partitions[i].decode(pd, version) + if err != nil { + return err + } + } + + return nil +} + +func (tm *TopicMetadata) encode(pe packetEncoder, version int16) (err error) { + pe.putInt16(int16(tm.Err)) + + err = pe.putString(tm.Name) + if err != nil { + return err + } + + if version >= 1 { + pe.putBool(tm.IsInternal) + } + + err = pe.putArrayLength(len(tm.Partitions)) + if err != nil { + return err + } + + for _, pm := range tm.Partitions { + err = pm.encode(pe, version) + if err != nil { + return err + } + } + + return nil +} + +type MetadataResponse struct { + Version int16 + ThrottleTimeMs int32 + Brokers []*Broker + ClusterID *string + ControllerID int32 + Topics []*TopicMetadata +} + +func (r *MetadataResponse) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + + if version >= 3 { + r.ThrottleTimeMs, err = pd.getInt32() + if err != nil { + return err + } + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Brokers = make([]*Broker, n) + for i := 0; i < n; i++ { + r.Brokers[i] = new(Broker) + err = r.Brokers[i].decode(pd, version) + if err != nil { + return err + } + } + + if version >= 2 { + r.ClusterID, err = pd.getNullableString() + if err != nil { + return err + } + } + + if version >= 1 { + r.ControllerID, err = pd.getInt32() + if err != nil { + return err + } + } else { + r.ControllerID = -1 + } + + n, err = pd.getArrayLength() + if err != nil { + return err + } + + r.Topics = make([]*TopicMetadata, n) + for i := 0; i < n; i++ { + r.Topics[i] = new(TopicMetadata) + err = r.Topics[i].decode(pd, version) + if err != nil { + return err + } + } + + return nil +} + +func (r *MetadataResponse) encode(pe packetEncoder) error { + if r.Version >= 3 { + pe.putInt32(r.ThrottleTimeMs) + } + + err := pe.putArrayLength(len(r.Brokers)) + if err != nil { + return err + } + for _, broker := range r.Brokers { + err = broker.encode(pe, r.Version) + if err != nil { + return err + } + } + + if r.Version >= 2 { + err := pe.putNullableString(r.ClusterID) + if err != nil { + return err + } + } + + if r.Version >= 1 { + pe.putInt32(r.ControllerID) + } + + err = pe.putArrayLength(len(r.Topics)) + if err != nil { + return err + } + for _, tm := range r.Topics { + err = tm.encode(pe, r.Version) + if err != nil { + return err + } + } + + return nil +} + +func (r *MetadataResponse) key() int16 { + return 3 +} + +func (r *MetadataResponse) version() int16 { + return r.Version +} + +func (r *MetadataResponse) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V0_10_0_0 + case 2: + return V0_10_1_0 + case 3, 4: + return V0_11_0_0 + case 5: + return V1_0_0_0 + default: + return MinVersion + } +} + +// testing API + +func (r *MetadataResponse) AddBroker(addr string, id int32) { + r.Brokers = append(r.Brokers, &Broker{id: id, addr: addr}) +} + +func (r *MetadataResponse) AddTopic(topic string, err KError) *TopicMetadata { + var tmatch *TopicMetadata + + for _, tm := range r.Topics { + if tm.Name == topic { + tmatch = tm + goto foundTopic + } + } + + tmatch = new(TopicMetadata) + tmatch.Name = topic + r.Topics = append(r.Topics, tmatch) + +foundTopic: + + tmatch.Err = err + return tmatch +} + +func (r *MetadataResponse) AddTopicPartition(topic string, partition, brokerID int32, replicas, isr []int32, offline []int32, err KError) { + tmatch := r.AddTopic(topic, ErrNoError) + var pmatch *PartitionMetadata + + for _, pm := range tmatch.Partitions { + if pm.ID == partition { + pmatch = pm + goto foundPartition + } + } + + pmatch = new(PartitionMetadata) + pmatch.ID = partition + tmatch.Partitions = append(tmatch.Partitions, pmatch) + +foundPartition: + + pmatch.Leader = brokerID + pmatch.Replicas = replicas + pmatch.Isr = isr + pmatch.OfflineReplicas = offline + pmatch.Err = err +} diff --git a/vendor/github.com/Shopify/sarama/metrics.go b/vendor/github.com/Shopify/sarama/metrics.go new file mode 100644 index 0000000..90e5a87 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/metrics.go @@ -0,0 +1,43 @@ +package sarama + +import ( + "fmt" + "strings" + + "github.com/rcrowley/go-metrics" +) + +// Use exponentially decaying reservoir for sampling histograms with the same defaults as the Java library: +// 1028 elements, which offers a 99.9% confidence level with a 5% margin of error assuming a normal distribution, +// and an alpha factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements. +// See https://github.com/dropwizard/metrics/blob/v3.1.0/metrics-core/src/main/java/com/codahale/metrics/ExponentiallyDecayingReservoir.java#L38 +const ( + metricsReservoirSize = 1028 + metricsAlphaFactor = 0.015 +) + +func getOrRegisterHistogram(name string, r metrics.Registry) metrics.Histogram { + return r.GetOrRegister(name, func() metrics.Histogram { + return metrics.NewHistogram(metrics.NewExpDecaySample(metricsReservoirSize, metricsAlphaFactor)) + }).(metrics.Histogram) +} + +func getMetricNameForBroker(name string, broker *Broker) string { + // Use broker id like the Java client as it does not contain '.' or ':' characters that + // can be interpreted as special character by monitoring tool (e.g. Graphite) + return fmt.Sprintf(name+"-for-broker-%d", broker.ID()) +} + +func getMetricNameForTopic(name string, topic string) string { + // Convert dot to _ since reporters like Graphite typically use dot to represent hierarchy + // cf. KAFKA-1902 and KAFKA-2337 + return fmt.Sprintf(name+"-for-topic-%s", strings.Replace(topic, ".", "_", -1)) +} + +func getOrRegisterTopicMeter(name string, topic string, r metrics.Registry) metrics.Meter { + return metrics.GetOrRegisterMeter(getMetricNameForTopic(name, topic), r) +} + +func getOrRegisterTopicHistogram(name string, topic string, r metrics.Registry) metrics.Histogram { + return getOrRegisterHistogram(getMetricNameForTopic(name, topic), r) +} diff --git a/vendor/github.com/Shopify/sarama/mockbroker.go b/vendor/github.com/Shopify/sarama/mockbroker.go new file mode 100644 index 0000000..cd1a850 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/mockbroker.go @@ -0,0 +1,399 @@ +package sarama + +import ( + "bytes" + "encoding/binary" + "fmt" + "io" + "net" + "reflect" + "strconv" + "sync" + "time" + + "github.com/davecgh/go-spew/spew" +) + +const ( + expectationTimeout = 500 * time.Millisecond +) + +type GSSApiHandlerFunc func([]byte) []byte + +type requestHandlerFunc func(req *request) (res encoder) + +// RequestNotifierFunc is invoked when a mock broker processes a request successfully +// and will provides the number of bytes read and written. +type RequestNotifierFunc func(bytesRead, bytesWritten int) + +// MockBroker is a mock Kafka broker that is used in unit tests. It is exposed +// to facilitate testing of higher level or specialized consumers and producers +// built on top of Sarama. Note that it does not 'mimic' the Kafka API protocol, +// but rather provides a facility to do that. It takes care of the TCP +// transport, request unmarshaling, response marshaling, and makes it the test +// writer responsibility to program correct according to the Kafka API protocol +// MockBroker behaviour. +// +// MockBroker is implemented as a TCP server listening on a kernel-selected +// localhost port that can accept many connections. It reads Kafka requests +// from that connection and returns responses programmed by the SetHandlerByMap +// function. If a MockBroker receives a request that it has no programmed +// response for, then it returns nothing and the request times out. +// +// A set of MockRequest builders to define mappings used by MockBroker is +// provided by Sarama. But users can develop MockRequests of their own and use +// them along with or instead of the standard ones. +// +// When running tests with MockBroker it is strongly recommended to specify +// a timeout to `go test` so that if the broker hangs waiting for a response, +// the test panics. +// +// It is not necessary to prefix message length or correlation ID to your +// response bytes, the server does that automatically as a convenience. +type MockBroker struct { + brokerID int32 + port int32 + closing chan none + stopper chan none + expectations chan encoder + listener net.Listener + t TestReporter + latency time.Duration + handler requestHandlerFunc + notifier RequestNotifierFunc + history []RequestResponse + lock sync.Mutex + gssApiHandler GSSApiHandlerFunc +} + +// RequestResponse represents a Request/Response pair processed by MockBroker. +type RequestResponse struct { + Request protocolBody + Response encoder +} + +// SetLatency makes broker pause for the specified period every time before +// replying. +func (b *MockBroker) SetLatency(latency time.Duration) { + b.latency = latency +} + +// SetHandlerByMap defines mapping of Request types to MockResponses. When a +// request is received by the broker, it looks up the request type in the map +// and uses the found MockResponse instance to generate an appropriate reply. +// If the request type is not found in the map then nothing is sent. +func (b *MockBroker) SetHandlerByMap(handlerMap map[string]MockResponse) { + b.setHandler(func(req *request) (res encoder) { + reqTypeName := reflect.TypeOf(req.body).Elem().Name() + mockResponse := handlerMap[reqTypeName] + if mockResponse == nil { + return nil + } + return mockResponse.For(req.body) + }) +} + +// SetNotifier set a function that will get invoked whenever a request has been +// processed successfully and will provide the number of bytes read and written +func (b *MockBroker) SetNotifier(notifier RequestNotifierFunc) { + b.lock.Lock() + b.notifier = notifier + b.lock.Unlock() +} + +// BrokerID returns broker ID assigned to the broker. +func (b *MockBroker) BrokerID() int32 { + return b.brokerID +} + +// History returns a slice of RequestResponse pairs in the order they were +// processed by the broker. Note that in case of multiple connections to the +// broker the order expected by a test can be different from the order recorded +// in the history, unless some synchronization is implemented in the test. +func (b *MockBroker) History() []RequestResponse { + b.lock.Lock() + history := make([]RequestResponse, len(b.history)) + copy(history, b.history) + b.lock.Unlock() + return history +} + +// Port returns the TCP port number the broker is listening for requests on. +func (b *MockBroker) Port() int32 { + return b.port +} + +// Addr returns the broker connection string in the form "
:". +func (b *MockBroker) Addr() string { + return b.listener.Addr().String() +} + +// Close terminates the broker blocking until it stops internal goroutines and +// releases all resources. +func (b *MockBroker) Close() { + close(b.expectations) + if len(b.expectations) > 0 { + buf := bytes.NewBufferString(fmt.Sprintf("mockbroker/%d: not all expectations were satisfied! Still waiting on:\n", b.BrokerID())) + for e := range b.expectations { + _, _ = buf.WriteString(spew.Sdump(e)) + } + b.t.Error(buf.String()) + } + close(b.closing) + <-b.stopper +} + +// setHandler sets the specified function as the request handler. Whenever +// a mock broker reads a request from the wire it passes the request to the +// function and sends back whatever the handler function returns. +func (b *MockBroker) setHandler(handler requestHandlerFunc) { + b.lock.Lock() + b.handler = handler + b.lock.Unlock() +} + +func (b *MockBroker) serverLoop() { + defer close(b.stopper) + var err error + var conn net.Conn + + go func() { + <-b.closing + err := b.listener.Close() + if err != nil { + b.t.Error(err) + } + }() + + wg := &sync.WaitGroup{} + i := 0 + for conn, err = b.listener.Accept(); err == nil; conn, err = b.listener.Accept() { + wg.Add(1) + go b.handleRequests(conn, i, wg) + i++ + } + wg.Wait() + Logger.Printf("*** mockbroker/%d: listener closed, err=%v", b.BrokerID(), err) +} + +func (b *MockBroker) SetGSSAPIHandler(handler GSSApiHandlerFunc) { + b.gssApiHandler = handler +} + +func (b *MockBroker) readToBytes(r io.Reader) ([]byte, error) { + var ( + bytesRead int + lengthBytes = make([]byte, 4) + ) + + if _, err := io.ReadFull(r, lengthBytes); err != nil { + return nil, err + } + + bytesRead += len(lengthBytes) + length := int32(binary.BigEndian.Uint32(lengthBytes)) + + if length <= 4 || length > MaxRequestSize { + return nil, PacketDecodingError{fmt.Sprintf("message of length %d too large or too small", length)} + } + + encodedReq := make([]byte, length) + if _, err := io.ReadFull(r, encodedReq); err != nil { + return nil, err + } + + bytesRead += len(encodedReq) + + fullBytes := append(lengthBytes, encodedReq...) + + return fullBytes, nil +} + +func (b *MockBroker) isGSSAPI(buffer []byte) bool { + return buffer[4] == 0x60 || bytes.Equal(buffer[4:6], []byte{0x05, 0x04}) +} + +func (b *MockBroker) handleRequests(conn net.Conn, idx int, wg *sync.WaitGroup) { + defer wg.Done() + defer func() { + _ = conn.Close() + }() + Logger.Printf("*** mockbroker/%d/%d: connection opened", b.BrokerID(), idx) + var err error + + abort := make(chan none) + defer close(abort) + go func() { + select { + case <-b.closing: + _ = conn.Close() + case <-abort: + } + }() + + resHeader := make([]byte, 8) + var bytesWritten int + var bytesRead int + for { + buffer, err := b.readToBytes(conn) + if err != nil { + Logger.Printf("*** mockbroker/%d/%d: invalid request: err=%+v, %+v", b.brokerID, idx, err, spew.Sdump(buffer)) + b.serverError(err) + break + } + + bytesWritten = 0 + if !b.isGSSAPI(buffer) { + req, br, err := decodeRequest(bytes.NewReader(buffer)) + bytesRead = br + if err != nil { + Logger.Printf("*** mockbroker/%d/%d: invalid request: err=%+v, %+v", b.brokerID, idx, err, spew.Sdump(req)) + b.serverError(err) + break + } + + if b.latency > 0 { + time.Sleep(b.latency) + } + + b.lock.Lock() + res := b.handler(req) + b.history = append(b.history, RequestResponse{req.body, res}) + b.lock.Unlock() + + if res == nil { + Logger.Printf("*** mockbroker/%d/%d: ignored %v", b.brokerID, idx, spew.Sdump(req)) + continue + } + Logger.Printf("*** mockbroker/%d/%d: served %v -> %v", b.brokerID, idx, req, res) + + encodedRes, err := encode(res, nil) + if err != nil { + b.serverError(err) + break + } + if len(encodedRes) == 0 { + b.lock.Lock() + if b.notifier != nil { + b.notifier(bytesRead, 0) + } + b.lock.Unlock() + continue + } + + binary.BigEndian.PutUint32(resHeader, uint32(len(encodedRes)+4)) + binary.BigEndian.PutUint32(resHeader[4:], uint32(req.correlationID)) + if _, err = conn.Write(resHeader); err != nil { + b.serverError(err) + break + } + if _, err = conn.Write(encodedRes); err != nil { + b.serverError(err) + break + } + bytesWritten = len(resHeader) + len(encodedRes) + } else { + // GSSAPI is not part of kafka protocol, but is supported for authentication proposes. + // Don't support history for this kind of request as is only used for test GSSAPI authentication mechanism + b.lock.Lock() + res := b.gssApiHandler(buffer) + b.lock.Unlock() + if res == nil { + Logger.Printf("*** mockbroker/%d/%d: ignored %v", b.brokerID, idx, spew.Sdump(buffer)) + continue + } + if _, err = conn.Write(res); err != nil { + b.serverError(err) + break + } + bytesWritten = len(res) + } + + b.lock.Lock() + if b.notifier != nil { + b.notifier(bytesRead, bytesWritten) + } + b.lock.Unlock() + } + Logger.Printf("*** mockbroker/%d/%d: connection closed, err=%v", b.BrokerID(), idx, err) +} + +func (b *MockBroker) defaultRequestHandler(req *request) (res encoder) { + select { + case res, ok := <-b.expectations: + if !ok { + return nil + } + return res + case <-time.After(expectationTimeout): + return nil + } +} + +func (b *MockBroker) serverError(err error) { + isConnectionClosedError := false + if _, ok := err.(*net.OpError); ok { + isConnectionClosedError = true + } else if err == io.EOF { + isConnectionClosedError = true + } else if err.Error() == "use of closed network connection" { + isConnectionClosedError = true + } + + if isConnectionClosedError { + return + } + + b.t.Errorf(err.Error()) +} + +// NewMockBroker launches a fake Kafka broker. It takes a TestReporter as provided by the +// test framework and a channel of responses to use. If an error occurs it is +// simply logged to the TestReporter and the broker exits. +func NewMockBroker(t TestReporter, brokerID int32) *MockBroker { + return NewMockBrokerAddr(t, brokerID, "localhost:0") +} + +// NewMockBrokerAddr behaves like newMockBroker but listens on the address you give +// it rather than just some ephemeral port. +func NewMockBrokerAddr(t TestReporter, brokerID int32, addr string) *MockBroker { + listener, err := net.Listen("tcp", addr) + if err != nil { + t.Fatal(err) + } + return NewMockBrokerListener(t, brokerID, listener) +} + +// NewMockBrokerListener behaves like newMockBrokerAddr but accepts connections on the listener specified. +func NewMockBrokerListener(t TestReporter, brokerID int32, listener net.Listener) *MockBroker { + var err error + + broker := &MockBroker{ + closing: make(chan none), + stopper: make(chan none), + t: t, + brokerID: brokerID, + expectations: make(chan encoder, 512), + listener: listener, + } + broker.handler = broker.defaultRequestHandler + + Logger.Printf("*** mockbroker/%d listening on %s\n", brokerID, broker.listener.Addr().String()) + _, portStr, err := net.SplitHostPort(broker.listener.Addr().String()) + if err != nil { + t.Fatal(err) + } + tmp, err := strconv.ParseInt(portStr, 10, 32) + if err != nil { + t.Fatal(err) + } + broker.port = int32(tmp) + + go broker.serverLoop() + + return broker +} + +func (b *MockBroker) Returns(e encoder) { + b.expectations <- e +} diff --git a/vendor/github.com/Shopify/sarama/mockkerberos.go b/vendor/github.com/Shopify/sarama/mockkerberos.go new file mode 100644 index 0000000..affeb2d --- /dev/null +++ b/vendor/github.com/Shopify/sarama/mockkerberos.go @@ -0,0 +1,123 @@ +package sarama + +import ( + "encoding/binary" + "encoding/hex" + "gopkg.in/jcmturner/gokrb5.v7/credentials" + "gopkg.in/jcmturner/gokrb5.v7/gssapi" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/messages" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +type KafkaGSSAPIHandler struct { + client *MockKerberosClient + badResponse bool + badKeyChecksum bool +} + +func (h *KafkaGSSAPIHandler) MockKafkaGSSAPI(buffer []byte) []byte { + // Default payload used for verify + err := h.client.Login() // Mock client construct keys when login + if err != nil { + return nil + } + if h.badResponse { // Returns trash + return []byte{0x00, 0x00, 0x00, 0x01, 0xAD} + } + + var pack = gssapi.WrapToken{ + Flags: KRB5_USER_AUTH, + EC: 12, + RRC: 0, + SndSeqNum: 3398292281, + Payload: []byte{0x11, 0x00}, // 1100 + } + // Compute checksum + if h.badKeyChecksum { + pack.CheckSum = []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} + } else { + err = pack.SetCheckSum(h.client.ASRep.DecryptedEncPart.Key, keyusage.GSSAPI_ACCEPTOR_SEAL) + if err != nil { + return nil + } + } + + packBytes, err := pack.Marshal() + if err != nil { + return nil + } + lenBytes := len(packBytes) + response := make([]byte, lenBytes+4) + copy(response[4:], packBytes) + binary.BigEndian.PutUint32(response, uint32(lenBytes)) + return response +} + +type MockKerberosClient struct { + asReqBytes string + asRepBytes string + ASRep messages.ASRep + credentials *credentials.Credentials + mockError error + errorStage string +} + +func (c *MockKerberosClient) Login() error { + if c.errorStage == "login" && c.mockError != nil { + return c.mockError + } + c.asRepBytes = "6b8202e9308202e5a003020105a10302010ba22b30293027a103020113a220041e301c301aa003020112a1131b114" + + "558414d504c452e434f4d636c69656e74a30d1b0b4558414d504c452e434f4da4133011a003020101a10a30081b06636c69656e7" + + "4a5820156618201523082014ea003020105a10d1b0b4558414d504c452e434f4da220301ea003020102a11730151b066b7262746" + + "7741b0b4558414d504c452e434f4da382011430820110a003020112a103020101a28201020481ffdb9891175d106818e61008c51" + + "d0b3462bca92f3bf9d4cfa82de4c4d7aff9994ec87c573e3a3d54dcb2bb79618c76f2bf4a3d006f90d5bdbd049bc18f48be39203" + + "549ca02acaf63f292b12404f9b74c34b83687119d8f56552ccc0c50ebee2a53bb114c1b4619bb1d5d31f0f49b4d40a08a9b4c046" + + "2e1398d0b648be1c0e50c552ad16e1d8d8e74263dd0bf0ec591e4797dfd40a9a1be4ae830d03a306e053fd7586fef84ffc5e4a83" + + "7c3122bf3e6a40fe87e84019f6283634461b955712b44a5f7386c278bff94ec2c2dc0403247e29c2450e853471ceababf9b8911f" + + "997f2e3010b046d2c49eb438afb0f4c210821e80d4ffa4c9521eb895dcd68610b3feaa682012c30820128a003020112a282011f0" + + "482011bce73cbce3f1dd17661c412005f0f2257c756fe8e98ff97e6ec24b7bab66e5fd3a3827aeeae4757af0c6e892948122d8b2" + + "03c8df48df0ef5d142d0e416d688f11daa0fcd63d96bdd431d02b8e951c664eeff286a2be62383d274a04016d5f0e141da58cb86" + + "331de64063062f4f885e8e9ce5b181ca2fdc67897c5995e0ae1ae0c171a64493ff7bd91bc6d89cd4fce1e2b3ea0a10e34b0d5eda" + + "aa38ee727b50c5632ed1d2f2b457908e616178d0d80b72af209fb8ac9dbaa1768fa45931392b36b6d8c12400f8ded2efaa0654d0" + + "da1db966e8b5aab4706c800f95d559664646041fdb38b411c62fc0fbe0d25083a28562b0e1c8df16e62e9d5626b0addee489835f" + + "eedb0f26c05baa596b69b17f47920aa64b29dc77cfcc97ba47885" + apRepBytes, err := hex.DecodeString(c.asRepBytes) + if err != nil { + return err + } + err = c.ASRep.Unmarshal(apRepBytes) + if err != nil { + return err + } + c.credentials = credentials.New("client", "EXAMPLE.COM").WithPassword("qwerty") + _, err = c.ASRep.DecryptEncPart(c.credentials) + if err != nil { + return err + } + return nil +} + +func (c *MockKerberosClient) GetServiceTicket(spn string) (messages.Ticket, types.EncryptionKey, error) { + if c.errorStage == "service_ticket" && c.mockError != nil { + return messages.Ticket{}, types.EncryptionKey{}, c.mockError + } + return c.ASRep.Ticket, c.ASRep.DecryptedEncPart.Key, nil +} + +func (c *MockKerberosClient) Domain() string { + return "EXAMPLE.COM" +} +func (c *MockKerberosClient) CName() types.PrincipalName { + var p = types.PrincipalName{ + NameType: KRB5_USER_AUTH, + NameString: []string{ + "kafka", + "kafka", + }, + } + return p +} +func (c *MockKerberosClient) Destroy() { + // Do nothing. +} diff --git a/vendor/github.com/Shopify/sarama/mockresponses.go b/vendor/github.com/Shopify/sarama/mockresponses.go new file mode 100644 index 0000000..984e5aa --- /dev/null +++ b/vendor/github.com/Shopify/sarama/mockresponses.go @@ -0,0 +1,990 @@ +package sarama + +import ( + "fmt" + "strings" +) + +// TestReporter has methods matching go's testing.T to avoid importing +// `testing` in the main part of the library. +type TestReporter interface { + Error(...interface{}) + Errorf(string, ...interface{}) + Fatal(...interface{}) + Fatalf(string, ...interface{}) +} + +// MockResponse is a response builder interface it defines one method that +// allows generating a response based on a request body. MockResponses are used +// to program behavior of MockBroker in tests. +type MockResponse interface { + For(reqBody versionedDecoder) (res encoder) +} + +// MockWrapper is a mock response builder that returns a particular concrete +// response regardless of the actual request passed to the `For` method. +type MockWrapper struct { + res encoder +} + +func (mw *MockWrapper) For(reqBody versionedDecoder) (res encoder) { + return mw.res +} + +func NewMockWrapper(res encoder) *MockWrapper { + return &MockWrapper{res: res} +} + +// MockSequence is a mock response builder that is created from a sequence of +// concrete responses. Every time when a `MockBroker` calls its `For` method +// the next response from the sequence is returned. When the end of the +// sequence is reached the last element from the sequence is returned. +type MockSequence struct { + responses []MockResponse +} + +func NewMockSequence(responses ...interface{}) *MockSequence { + ms := &MockSequence{} + ms.responses = make([]MockResponse, len(responses)) + for i, res := range responses { + switch res := res.(type) { + case MockResponse: + ms.responses[i] = res + case encoder: + ms.responses[i] = NewMockWrapper(res) + default: + panic(fmt.Sprintf("Unexpected response type: %T", res)) + } + } + return ms +} + +func (mc *MockSequence) For(reqBody versionedDecoder) (res encoder) { + res = mc.responses[0].For(reqBody) + if len(mc.responses) > 1 { + mc.responses = mc.responses[1:] + } + return res +} + +type MockListGroupsResponse struct { + groups map[string]string + t TestReporter +} + +func NewMockListGroupsResponse(t TestReporter) *MockListGroupsResponse { + return &MockListGroupsResponse{ + groups: make(map[string]string), + t: t, + } +} + +func (m *MockListGroupsResponse) For(reqBody versionedDecoder) encoder { + request := reqBody.(*ListGroupsRequest) + _ = request + response := &ListGroupsResponse{ + Groups: m.groups, + } + return response +} + +func (m *MockListGroupsResponse) AddGroup(groupID, protocolType string) *MockListGroupsResponse { + m.groups[groupID] = protocolType + return m +} + +type MockDescribeGroupsResponse struct { + groups map[string]*GroupDescription + t TestReporter +} + +func NewMockDescribeGroupsResponse(t TestReporter) *MockDescribeGroupsResponse { + return &MockDescribeGroupsResponse{ + t: t, + groups: make(map[string]*GroupDescription), + } +} + +func (m *MockDescribeGroupsResponse) AddGroupDescription(groupID string, description *GroupDescription) *MockDescribeGroupsResponse { + m.groups[groupID] = description + return m +} + +func (m *MockDescribeGroupsResponse) For(reqBody versionedDecoder) encoder { + request := reqBody.(*DescribeGroupsRequest) + + response := &DescribeGroupsResponse{} + for _, requestedGroup := range request.Groups { + if group, ok := m.groups[requestedGroup]; ok { + response.Groups = append(response.Groups, group) + } else { + // Mimic real kafka - if a group doesn't exist, return + // an entry with state "Dead" + response.Groups = append(response.Groups, &GroupDescription{ + GroupId: requestedGroup, + State: "Dead", + }) + } + } + + return response +} + +// MockMetadataResponse is a `MetadataResponse` builder. +type MockMetadataResponse struct { + controllerID int32 + leaders map[string]map[int32]int32 + brokers map[string]int32 + t TestReporter +} + +func NewMockMetadataResponse(t TestReporter) *MockMetadataResponse { + return &MockMetadataResponse{ + leaders: make(map[string]map[int32]int32), + brokers: make(map[string]int32), + t: t, + } +} + +func (mmr *MockMetadataResponse) SetLeader(topic string, partition, brokerID int32) *MockMetadataResponse { + partitions := mmr.leaders[topic] + if partitions == nil { + partitions = make(map[int32]int32) + mmr.leaders[topic] = partitions + } + partitions[partition] = brokerID + return mmr +} + +func (mmr *MockMetadataResponse) SetBroker(addr string, brokerID int32) *MockMetadataResponse { + mmr.brokers[addr] = brokerID + return mmr +} + +func (mmr *MockMetadataResponse) SetController(brokerID int32) *MockMetadataResponse { + mmr.controllerID = brokerID + return mmr +} + +func (mmr *MockMetadataResponse) For(reqBody versionedDecoder) encoder { + metadataRequest := reqBody.(*MetadataRequest) + metadataResponse := &MetadataResponse{ + Version: metadataRequest.version(), + ControllerID: mmr.controllerID, + } + for addr, brokerID := range mmr.brokers { + metadataResponse.AddBroker(addr, brokerID) + } + + // Generate set of replicas + replicas := []int32{} + offlineReplicas := []int32{} + for _, brokerID := range mmr.brokers { + replicas = append(replicas, brokerID) + } + + if len(metadataRequest.Topics) == 0 { + for topic, partitions := range mmr.leaders { + for partition, brokerID := range partitions { + metadataResponse.AddTopicPartition(topic, partition, brokerID, replicas, replicas, offlineReplicas, ErrNoError) + } + } + return metadataResponse + } + for _, topic := range metadataRequest.Topics { + for partition, brokerID := range mmr.leaders[topic] { + metadataResponse.AddTopicPartition(topic, partition, brokerID, replicas, replicas, offlineReplicas, ErrNoError) + } + } + return metadataResponse +} + +// MockOffsetResponse is an `OffsetResponse` builder. +type MockOffsetResponse struct { + offsets map[string]map[int32]map[int64]int64 + t TestReporter + version int16 +} + +func NewMockOffsetResponse(t TestReporter) *MockOffsetResponse { + return &MockOffsetResponse{ + offsets: make(map[string]map[int32]map[int64]int64), + t: t, + } +} + +func (mor *MockOffsetResponse) SetVersion(version int16) *MockOffsetResponse { + mor.version = version + return mor +} + +func (mor *MockOffsetResponse) SetOffset(topic string, partition int32, time, offset int64) *MockOffsetResponse { + partitions := mor.offsets[topic] + if partitions == nil { + partitions = make(map[int32]map[int64]int64) + mor.offsets[topic] = partitions + } + times := partitions[partition] + if times == nil { + times = make(map[int64]int64) + partitions[partition] = times + } + times[time] = offset + return mor +} + +func (mor *MockOffsetResponse) For(reqBody versionedDecoder) encoder { + offsetRequest := reqBody.(*OffsetRequest) + offsetResponse := &OffsetResponse{Version: mor.version} + for topic, partitions := range offsetRequest.blocks { + for partition, block := range partitions { + offset := mor.getOffset(topic, partition, block.time) + offsetResponse.AddTopicPartition(topic, partition, offset) + } + } + return offsetResponse +} + +func (mor *MockOffsetResponse) getOffset(topic string, partition int32, time int64) int64 { + partitions := mor.offsets[topic] + if partitions == nil { + mor.t.Errorf("missing topic: %s", topic) + } + times := partitions[partition] + if times == nil { + mor.t.Errorf("missing partition: %d", partition) + } + offset, ok := times[time] + if !ok { + mor.t.Errorf("missing time: %d", time) + } + return offset +} + +// MockFetchResponse is a `FetchResponse` builder. +type MockFetchResponse struct { + messages map[string]map[int32]map[int64]Encoder + highWaterMarks map[string]map[int32]int64 + t TestReporter + batchSize int + version int16 +} + +func NewMockFetchResponse(t TestReporter, batchSize int) *MockFetchResponse { + return &MockFetchResponse{ + messages: make(map[string]map[int32]map[int64]Encoder), + highWaterMarks: make(map[string]map[int32]int64), + t: t, + batchSize: batchSize, + } +} + +func (mfr *MockFetchResponse) SetVersion(version int16) *MockFetchResponse { + mfr.version = version + return mfr +} + +func (mfr *MockFetchResponse) SetMessage(topic string, partition int32, offset int64, msg Encoder) *MockFetchResponse { + partitions := mfr.messages[topic] + if partitions == nil { + partitions = make(map[int32]map[int64]Encoder) + mfr.messages[topic] = partitions + } + messages := partitions[partition] + if messages == nil { + messages = make(map[int64]Encoder) + partitions[partition] = messages + } + messages[offset] = msg + return mfr +} + +func (mfr *MockFetchResponse) SetHighWaterMark(topic string, partition int32, offset int64) *MockFetchResponse { + partitions := mfr.highWaterMarks[topic] + if partitions == nil { + partitions = make(map[int32]int64) + mfr.highWaterMarks[topic] = partitions + } + partitions[partition] = offset + return mfr +} + +func (mfr *MockFetchResponse) For(reqBody versionedDecoder) encoder { + fetchRequest := reqBody.(*FetchRequest) + res := &FetchResponse{ + Version: mfr.version, + } + for topic, partitions := range fetchRequest.blocks { + for partition, block := range partitions { + initialOffset := block.fetchOffset + offset := initialOffset + maxOffset := initialOffset + int64(mfr.getMessageCount(topic, partition)) + for i := 0; i < mfr.batchSize && offset < maxOffset; { + msg := mfr.getMessage(topic, partition, offset) + if msg != nil { + res.AddMessage(topic, partition, nil, msg, offset) + i++ + } + offset++ + } + fb := res.GetBlock(topic, partition) + if fb == nil { + res.AddError(topic, partition, ErrNoError) + fb = res.GetBlock(topic, partition) + } + fb.HighWaterMarkOffset = mfr.getHighWaterMark(topic, partition) + } + } + return res +} + +func (mfr *MockFetchResponse) getMessage(topic string, partition int32, offset int64) Encoder { + partitions := mfr.messages[topic] + if partitions == nil { + return nil + } + messages := partitions[partition] + if messages == nil { + return nil + } + return messages[offset] +} + +func (mfr *MockFetchResponse) getMessageCount(topic string, partition int32) int { + partitions := mfr.messages[topic] + if partitions == nil { + return 0 + } + messages := partitions[partition] + if messages == nil { + return 0 + } + return len(messages) +} + +func (mfr *MockFetchResponse) getHighWaterMark(topic string, partition int32) int64 { + partitions := mfr.highWaterMarks[topic] + if partitions == nil { + return 0 + } + return partitions[partition] +} + +// MockConsumerMetadataResponse is a `ConsumerMetadataResponse` builder. +type MockConsumerMetadataResponse struct { + coordinators map[string]interface{} + t TestReporter +} + +func NewMockConsumerMetadataResponse(t TestReporter) *MockConsumerMetadataResponse { + return &MockConsumerMetadataResponse{ + coordinators: make(map[string]interface{}), + t: t, + } +} + +func (mr *MockConsumerMetadataResponse) SetCoordinator(group string, broker *MockBroker) *MockConsumerMetadataResponse { + mr.coordinators[group] = broker + return mr +} + +func (mr *MockConsumerMetadataResponse) SetError(group string, kerror KError) *MockConsumerMetadataResponse { + mr.coordinators[group] = kerror + return mr +} + +func (mr *MockConsumerMetadataResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*ConsumerMetadataRequest) + group := req.ConsumerGroup + res := &ConsumerMetadataResponse{} + v := mr.coordinators[group] + switch v := v.(type) { + case *MockBroker: + res.Coordinator = &Broker{id: v.BrokerID(), addr: v.Addr()} + case KError: + res.Err = v + } + return res +} + +// MockFindCoordinatorResponse is a `FindCoordinatorResponse` builder. +type MockFindCoordinatorResponse struct { + groupCoordinators map[string]interface{} + transCoordinators map[string]interface{} + t TestReporter +} + +func NewMockFindCoordinatorResponse(t TestReporter) *MockFindCoordinatorResponse { + return &MockFindCoordinatorResponse{ + groupCoordinators: make(map[string]interface{}), + transCoordinators: make(map[string]interface{}), + t: t, + } +} + +func (mr *MockFindCoordinatorResponse) SetCoordinator(coordinatorType CoordinatorType, group string, broker *MockBroker) *MockFindCoordinatorResponse { + switch coordinatorType { + case CoordinatorGroup: + mr.groupCoordinators[group] = broker + case CoordinatorTransaction: + mr.transCoordinators[group] = broker + } + return mr +} + +func (mr *MockFindCoordinatorResponse) SetError(coordinatorType CoordinatorType, group string, kerror KError) *MockFindCoordinatorResponse { + switch coordinatorType { + case CoordinatorGroup: + mr.groupCoordinators[group] = kerror + case CoordinatorTransaction: + mr.transCoordinators[group] = kerror + } + return mr +} + +func (mr *MockFindCoordinatorResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*FindCoordinatorRequest) + res := &FindCoordinatorResponse{} + var v interface{} + switch req.CoordinatorType { + case CoordinatorGroup: + v = mr.groupCoordinators[req.CoordinatorKey] + case CoordinatorTransaction: + v = mr.transCoordinators[req.CoordinatorKey] + } + switch v := v.(type) { + case *MockBroker: + res.Coordinator = &Broker{id: v.BrokerID(), addr: v.Addr()} + case KError: + res.Err = v + } + return res +} + +// MockOffsetCommitResponse is a `OffsetCommitResponse` builder. +type MockOffsetCommitResponse struct { + errors map[string]map[string]map[int32]KError + t TestReporter +} + +func NewMockOffsetCommitResponse(t TestReporter) *MockOffsetCommitResponse { + return &MockOffsetCommitResponse{t: t} +} + +func (mr *MockOffsetCommitResponse) SetError(group, topic string, partition int32, kerror KError) *MockOffsetCommitResponse { + if mr.errors == nil { + mr.errors = make(map[string]map[string]map[int32]KError) + } + topics := mr.errors[group] + if topics == nil { + topics = make(map[string]map[int32]KError) + mr.errors[group] = topics + } + partitions := topics[topic] + if partitions == nil { + partitions = make(map[int32]KError) + topics[topic] = partitions + } + partitions[partition] = kerror + return mr +} + +func (mr *MockOffsetCommitResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*OffsetCommitRequest) + group := req.ConsumerGroup + res := &OffsetCommitResponse{} + for topic, partitions := range req.blocks { + for partition := range partitions { + res.AddError(topic, partition, mr.getError(group, topic, partition)) + } + } + return res +} + +func (mr *MockOffsetCommitResponse) getError(group, topic string, partition int32) KError { + topics := mr.errors[group] + if topics == nil { + return ErrNoError + } + partitions := topics[topic] + if partitions == nil { + return ErrNoError + } + kerror, ok := partitions[partition] + if !ok { + return ErrNoError + } + return kerror +} + +// MockProduceResponse is a `ProduceResponse` builder. +type MockProduceResponse struct { + version int16 + errors map[string]map[int32]KError + t TestReporter +} + +func NewMockProduceResponse(t TestReporter) *MockProduceResponse { + return &MockProduceResponse{t: t} +} + +func (mr *MockProduceResponse) SetVersion(version int16) *MockProduceResponse { + mr.version = version + return mr +} + +func (mr *MockProduceResponse) SetError(topic string, partition int32, kerror KError) *MockProduceResponse { + if mr.errors == nil { + mr.errors = make(map[string]map[int32]KError) + } + partitions := mr.errors[topic] + if partitions == nil { + partitions = make(map[int32]KError) + mr.errors[topic] = partitions + } + partitions[partition] = kerror + return mr +} + +func (mr *MockProduceResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*ProduceRequest) + res := &ProduceResponse{ + Version: mr.version, + } + for topic, partitions := range req.records { + for partition := range partitions { + res.AddTopicPartition(topic, partition, mr.getError(topic, partition)) + } + } + return res +} + +func (mr *MockProduceResponse) getError(topic string, partition int32) KError { + partitions := mr.errors[topic] + if partitions == nil { + return ErrNoError + } + kerror, ok := partitions[partition] + if !ok { + return ErrNoError + } + return kerror +} + +// MockOffsetFetchResponse is a `OffsetFetchResponse` builder. +type MockOffsetFetchResponse struct { + offsets map[string]map[string]map[int32]*OffsetFetchResponseBlock + error KError + t TestReporter +} + +func NewMockOffsetFetchResponse(t TestReporter) *MockOffsetFetchResponse { + return &MockOffsetFetchResponse{t: t} +} + +func (mr *MockOffsetFetchResponse) SetOffset(group, topic string, partition int32, offset int64, metadata string, kerror KError) *MockOffsetFetchResponse { + if mr.offsets == nil { + mr.offsets = make(map[string]map[string]map[int32]*OffsetFetchResponseBlock) + } + topics := mr.offsets[group] + if topics == nil { + topics = make(map[string]map[int32]*OffsetFetchResponseBlock) + mr.offsets[group] = topics + } + partitions := topics[topic] + if partitions == nil { + partitions = make(map[int32]*OffsetFetchResponseBlock) + topics[topic] = partitions + } + partitions[partition] = &OffsetFetchResponseBlock{offset, 0, metadata, kerror} + return mr +} + +func (mr *MockOffsetFetchResponse) SetError(kerror KError) *MockOffsetFetchResponse { + mr.error = kerror + return mr +} + +func (mr *MockOffsetFetchResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*OffsetFetchRequest) + group := req.ConsumerGroup + res := &OffsetFetchResponse{Version: req.Version} + + for topic, partitions := range mr.offsets[group] { + for partition, block := range partitions { + res.AddBlock(topic, partition, block) + } + } + + if res.Version >= 2 { + res.Err = mr.error + } + return res +} + +type MockCreateTopicsResponse struct { + t TestReporter +} + +func NewMockCreateTopicsResponse(t TestReporter) *MockCreateTopicsResponse { + return &MockCreateTopicsResponse{t: t} +} + +func (mr *MockCreateTopicsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*CreateTopicsRequest) + res := &CreateTopicsResponse{ + Version: req.Version, + } + res.TopicErrors = make(map[string]*TopicError) + + for topic := range req.TopicDetails { + if res.Version >= 1 && strings.HasPrefix(topic, "_") { + msg := "insufficient permissions to create topic with reserved prefix" + res.TopicErrors[topic] = &TopicError{ + Err: ErrTopicAuthorizationFailed, + ErrMsg: &msg, + } + continue + } + res.TopicErrors[topic] = &TopicError{Err: ErrNoError} + } + return res +} + +type MockDeleteTopicsResponse struct { + t TestReporter +} + +func NewMockDeleteTopicsResponse(t TestReporter) *MockDeleteTopicsResponse { + return &MockDeleteTopicsResponse{t: t} +} + +func (mr *MockDeleteTopicsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*DeleteTopicsRequest) + res := &DeleteTopicsResponse{} + res.TopicErrorCodes = make(map[string]KError) + + for _, topic := range req.Topics { + res.TopicErrorCodes[topic] = ErrNoError + } + res.Version = int16(req.Version) + return res +} + +type MockCreatePartitionsResponse struct { + t TestReporter +} + +func NewMockCreatePartitionsResponse(t TestReporter) *MockCreatePartitionsResponse { + return &MockCreatePartitionsResponse{t: t} +} + +func (mr *MockCreatePartitionsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*CreatePartitionsRequest) + res := &CreatePartitionsResponse{} + res.TopicPartitionErrors = make(map[string]*TopicPartitionError) + + for topic := range req.TopicPartitions { + if strings.HasPrefix(topic, "_") { + msg := "insufficient permissions to create partition on topic with reserved prefix" + res.TopicPartitionErrors[topic] = &TopicPartitionError{ + Err: ErrTopicAuthorizationFailed, + ErrMsg: &msg, + } + continue + } + res.TopicPartitionErrors[topic] = &TopicPartitionError{Err: ErrNoError} + } + return res +} + +type MockDeleteRecordsResponse struct { + t TestReporter +} + +func NewMockDeleteRecordsResponse(t TestReporter) *MockDeleteRecordsResponse { + return &MockDeleteRecordsResponse{t: t} +} + +func (mr *MockDeleteRecordsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*DeleteRecordsRequest) + res := &DeleteRecordsResponse{} + res.Topics = make(map[string]*DeleteRecordsResponseTopic) + + for topic, deleteRecordRequestTopic := range req.Topics { + partitions := make(map[int32]*DeleteRecordsResponsePartition) + for partition := range deleteRecordRequestTopic.PartitionOffsets { + partitions[partition] = &DeleteRecordsResponsePartition{Err: ErrNoError} + } + res.Topics[topic] = &DeleteRecordsResponseTopic{Partitions: partitions} + } + return res +} + +type MockDescribeConfigsResponse struct { + t TestReporter +} + +func NewMockDescribeConfigsResponse(t TestReporter) *MockDescribeConfigsResponse { + return &MockDescribeConfigsResponse{t: t} +} + +func (mr *MockDescribeConfigsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*DescribeConfigsRequest) + res := &DescribeConfigsResponse{ + Version: req.Version, + } + + includeSynonyms := (req.Version > 0) + + for _, r := range req.Resources { + var configEntries []*ConfigEntry + switch r.Type { + case BrokerResource: + configEntries = append(configEntries, + &ConfigEntry{ + Name: "min.insync.replicas", + Value: "2", + ReadOnly: false, + Default: false, + }, + ) + res.Resources = append(res.Resources, &ResourceResponse{ + Name: r.Name, + Configs: configEntries, + }) + case BrokerLoggerResource: + configEntries = append(configEntries, + &ConfigEntry{ + Name: "kafka.controller.KafkaController", + Value: "DEBUG", + ReadOnly: false, + Default: false, + }, + ) + res.Resources = append(res.Resources, &ResourceResponse{ + Name: r.Name, + Configs: configEntries, + }) + case TopicResource: + maxMessageBytes := &ConfigEntry{Name: "max.message.bytes", + Value: "1000000", + ReadOnly: false, + Default: true, + Sensitive: false, + } + if includeSynonyms { + maxMessageBytes.Synonyms = []*ConfigSynonym{ + { + ConfigName: "max.message.bytes", + ConfigValue: "500000", + }, + } + } + retentionMs := &ConfigEntry{Name: "retention.ms", + Value: "5000", + ReadOnly: false, + Default: false, + Sensitive: false, + } + if includeSynonyms { + retentionMs.Synonyms = []*ConfigSynonym{ + { + ConfigName: "log.retention.ms", + ConfigValue: "2500", + }, + } + } + password := &ConfigEntry{Name: "password", + Value: "12345", + ReadOnly: false, + Default: false, + Sensitive: true, + } + configEntries = append( + configEntries, maxMessageBytes, retentionMs, password) + res.Resources = append(res.Resources, &ResourceResponse{ + Name: r.Name, + Configs: configEntries, + }) + } + } + return res +} + +type MockAlterConfigsResponse struct { + t TestReporter +} + +func NewMockAlterConfigsResponse(t TestReporter) *MockAlterConfigsResponse { + return &MockAlterConfigsResponse{t: t} +} + +func (mr *MockAlterConfigsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*AlterConfigsRequest) + res := &AlterConfigsResponse{} + + for _, r := range req.Resources { + res.Resources = append(res.Resources, &AlterConfigsResourceResponse{Name: r.Name, + Type: r.Type, + ErrorMsg: "", + }) + } + return res +} + +type MockCreateAclsResponse struct { + t TestReporter +} + +func NewMockCreateAclsResponse(t TestReporter) *MockCreateAclsResponse { + return &MockCreateAclsResponse{t: t} +} + +func (mr *MockCreateAclsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*CreateAclsRequest) + res := &CreateAclsResponse{} + + for range req.AclCreations { + res.AclCreationResponses = append(res.AclCreationResponses, &AclCreationResponse{Err: ErrNoError}) + } + return res +} + +type MockListAclsResponse struct { + t TestReporter +} + +func NewMockListAclsResponse(t TestReporter) *MockListAclsResponse { + return &MockListAclsResponse{t: t} +} + +func (mr *MockListAclsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*DescribeAclsRequest) + res := &DescribeAclsResponse{} + res.Err = ErrNoError + acl := &ResourceAcls{} + if req.ResourceName != nil { + acl.Resource.ResourceName = *req.ResourceName + } + acl.Resource.ResourcePatternType = req.ResourcePatternTypeFilter + acl.Resource.ResourceType = req.ResourceType + + host := "*" + if req.Host != nil { + host = *req.Host + } + + principal := "User:test" + if req.Principal != nil { + principal = *req.Principal + } + + permissionType := req.PermissionType + if permissionType == AclPermissionAny { + permissionType = AclPermissionAllow + } + + acl.Acls = append(acl.Acls, &Acl{Operation: req.Operation, PermissionType: permissionType, Host: host, Principal: principal}) + res.ResourceAcls = append(res.ResourceAcls, acl) + res.Version = int16(req.Version) + return res +} + +type MockSaslAuthenticateResponse struct { + t TestReporter + kerror KError + saslAuthBytes []byte +} + +func NewMockSaslAuthenticateResponse(t TestReporter) *MockSaslAuthenticateResponse { + return &MockSaslAuthenticateResponse{t: t} +} + +func (msar *MockSaslAuthenticateResponse) For(reqBody versionedDecoder) encoder { + res := &SaslAuthenticateResponse{} + res.Err = msar.kerror + res.SaslAuthBytes = msar.saslAuthBytes + return res +} + +func (msar *MockSaslAuthenticateResponse) SetError(kerror KError) *MockSaslAuthenticateResponse { + msar.kerror = kerror + return msar +} + +func (msar *MockSaslAuthenticateResponse) SetAuthBytes(saslAuthBytes []byte) *MockSaslAuthenticateResponse { + msar.saslAuthBytes = saslAuthBytes + return msar +} + +type MockDeleteAclsResponse struct { + t TestReporter +} + +type MockSaslHandshakeResponse struct { + enabledMechanisms []string + kerror KError + t TestReporter +} + +func NewMockSaslHandshakeResponse(t TestReporter) *MockSaslHandshakeResponse { + return &MockSaslHandshakeResponse{t: t} +} + +func (mshr *MockSaslHandshakeResponse) For(reqBody versionedDecoder) encoder { + res := &SaslHandshakeResponse{} + res.Err = mshr.kerror + res.EnabledMechanisms = mshr.enabledMechanisms + return res +} + +func (mshr *MockSaslHandshakeResponse) SetError(kerror KError) *MockSaslHandshakeResponse { + mshr.kerror = kerror + return mshr +} + +func (mshr *MockSaslHandshakeResponse) SetEnabledMechanisms(enabledMechanisms []string) *MockSaslHandshakeResponse { + mshr.enabledMechanisms = enabledMechanisms + return mshr +} + +func NewMockDeleteAclsResponse(t TestReporter) *MockDeleteAclsResponse { + return &MockDeleteAclsResponse{t: t} +} + +func (mr *MockDeleteAclsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*DeleteAclsRequest) + res := &DeleteAclsResponse{} + + for range req.Filters { + response := &FilterResponse{Err: ErrNoError} + response.MatchingAcls = append(response.MatchingAcls, &MatchingAcl{Err: ErrNoError}) + res.FilterResponses = append(res.FilterResponses, response) + } + res.Version = int16(req.Version) + return res +} + +type MockDeleteGroupsResponse struct { + deletedGroups []string +} + +func NewMockDeleteGroupsRequest(t TestReporter) *MockDeleteGroupsResponse { + return &MockDeleteGroupsResponse{} +} + +func (m *MockDeleteGroupsResponse) SetDeletedGroups(groups []string) *MockDeleteGroupsResponse { + m.deletedGroups = groups + return m +} + +func (m *MockDeleteGroupsResponse) For(reqBody versionedDecoder) encoder { + resp := &DeleteGroupsResponse{ + GroupErrorCodes: map[string]KError{}, + } + for _, group := range m.deletedGroups { + resp.GroupErrorCodes[group] = ErrNoError + } + return resp +} diff --git a/vendor/github.com/Shopify/sarama/offset_commit_request.go b/vendor/github.com/Shopify/sarama/offset_commit_request.go new file mode 100644 index 0000000..5732ed9 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/offset_commit_request.go @@ -0,0 +1,210 @@ +package sarama + +import "errors" + +// ReceiveTime is a special value for the timestamp field of Offset Commit Requests which +// tells the broker to set the timestamp to the time at which the request was received. +// The timestamp is only used if message version 1 is used, which requires kafka 0.8.2. +const ReceiveTime int64 = -1 + +// GroupGenerationUndefined is a special value for the group generation field of +// Offset Commit Requests that should be used when a consumer group does not rely +// on Kafka for partition management. +const GroupGenerationUndefined = -1 + +type offsetCommitRequestBlock struct { + offset int64 + timestamp int64 + metadata string +} + +func (b *offsetCommitRequestBlock) encode(pe packetEncoder, version int16) error { + pe.putInt64(b.offset) + if version == 1 { + pe.putInt64(b.timestamp) + } else if b.timestamp != 0 { + Logger.Println("Non-zero timestamp specified for OffsetCommitRequest not v1, it will be ignored") + } + + return pe.putString(b.metadata) +} + +func (b *offsetCommitRequestBlock) decode(pd packetDecoder, version int16) (err error) { + if b.offset, err = pd.getInt64(); err != nil { + return err + } + if version == 1 { + if b.timestamp, err = pd.getInt64(); err != nil { + return err + } + } + b.metadata, err = pd.getString() + return err +} + +type OffsetCommitRequest struct { + ConsumerGroup string + ConsumerGroupGeneration int32 // v1 or later + ConsumerID string // v1 or later + RetentionTime int64 // v2 or later + + // Version can be: + // - 0 (kafka 0.8.1 and later) + // - 1 (kafka 0.8.2 and later) + // - 2 (kafka 0.9.0 and later) + // - 3 (kafka 0.11.0 and later) + // - 4 (kafka 2.0.0 and later) + Version int16 + blocks map[string]map[int32]*offsetCommitRequestBlock +} + +func (r *OffsetCommitRequest) encode(pe packetEncoder) error { + if r.Version < 0 || r.Version > 4 { + return PacketEncodingError{"invalid or unsupported OffsetCommitRequest version field"} + } + + if err := pe.putString(r.ConsumerGroup); err != nil { + return err + } + + if r.Version >= 1 { + pe.putInt32(r.ConsumerGroupGeneration) + if err := pe.putString(r.ConsumerID); err != nil { + return err + } + } else { + if r.ConsumerGroupGeneration != 0 { + Logger.Println("Non-zero ConsumerGroupGeneration specified for OffsetCommitRequest v0, it will be ignored") + } + if r.ConsumerID != "" { + Logger.Println("Non-empty ConsumerID specified for OffsetCommitRequest v0, it will be ignored") + } + } + + if r.Version >= 2 { + pe.putInt64(r.RetentionTime) + } else if r.RetentionTime != 0 { + Logger.Println("Non-zero RetentionTime specified for OffsetCommitRequest version <2, it will be ignored") + } + + if err := pe.putArrayLength(len(r.blocks)); err != nil { + return err + } + for topic, partitions := range r.blocks { + if err := pe.putString(topic); err != nil { + return err + } + if err := pe.putArrayLength(len(partitions)); err != nil { + return err + } + for partition, block := range partitions { + pe.putInt32(partition) + if err := block.encode(pe, r.Version); err != nil { + return err + } + } + } + return nil +} + +func (r *OffsetCommitRequest) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + + if r.ConsumerGroup, err = pd.getString(); err != nil { + return err + } + + if r.Version >= 1 { + if r.ConsumerGroupGeneration, err = pd.getInt32(); err != nil { + return err + } + if r.ConsumerID, err = pd.getString(); err != nil { + return err + } + } + + if r.Version >= 2 { + if r.RetentionTime, err = pd.getInt64(); err != nil { + return err + } + } + + topicCount, err := pd.getArrayLength() + if err != nil { + return err + } + if topicCount == 0 { + return nil + } + r.blocks = make(map[string]map[int32]*offsetCommitRequestBlock) + for i := 0; i < topicCount; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + partitionCount, err := pd.getArrayLength() + if err != nil { + return err + } + r.blocks[topic] = make(map[int32]*offsetCommitRequestBlock) + for j := 0; j < partitionCount; j++ { + partition, err := pd.getInt32() + if err != nil { + return err + } + block := &offsetCommitRequestBlock{} + if err := block.decode(pd, r.Version); err != nil { + return err + } + r.blocks[topic][partition] = block + } + } + return nil +} + +func (r *OffsetCommitRequest) key() int16 { + return 8 +} + +func (r *OffsetCommitRequest) version() int16 { + return r.Version +} + +func (r *OffsetCommitRequest) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V0_8_2_0 + case 2: + return V0_9_0_0 + case 3: + return V0_11_0_0 + case 4: + return V2_0_0_0 + default: + return MinVersion + } +} + +func (r *OffsetCommitRequest) AddBlock(topic string, partitionID int32, offset int64, timestamp int64, metadata string) { + if r.blocks == nil { + r.blocks = make(map[string]map[int32]*offsetCommitRequestBlock) + } + + if r.blocks[topic] == nil { + r.blocks[topic] = make(map[int32]*offsetCommitRequestBlock) + } + + r.blocks[topic][partitionID] = &offsetCommitRequestBlock{offset, timestamp, metadata} +} + +func (r *OffsetCommitRequest) Offset(topic string, partitionID int32) (int64, string, error) { + partitions := r.blocks[topic] + if partitions == nil { + return 0, "", errors.New("no such offset") + } + block := partitions[partitionID] + if block == nil { + return 0, "", errors.New("no such offset") + } + return block.offset, block.metadata, nil +} diff --git a/vendor/github.com/Shopify/sarama/offset_commit_response.go b/vendor/github.com/Shopify/sarama/offset_commit_response.go new file mode 100644 index 0000000..e842298 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/offset_commit_response.go @@ -0,0 +1,110 @@ +package sarama + +type OffsetCommitResponse struct { + Version int16 + ThrottleTimeMs int32 + Errors map[string]map[int32]KError +} + +func (r *OffsetCommitResponse) AddError(topic string, partition int32, kerror KError) { + if r.Errors == nil { + r.Errors = make(map[string]map[int32]KError) + } + partitions := r.Errors[topic] + if partitions == nil { + partitions = make(map[int32]KError) + r.Errors[topic] = partitions + } + partitions[partition] = kerror +} + +func (r *OffsetCommitResponse) encode(pe packetEncoder) error { + if r.Version >= 3 { + pe.putInt32(r.ThrottleTimeMs) + } + if err := pe.putArrayLength(len(r.Errors)); err != nil { + return err + } + for topic, partitions := range r.Errors { + if err := pe.putString(topic); err != nil { + return err + } + if err := pe.putArrayLength(len(partitions)); err != nil { + return err + } + for partition, kerror := range partitions { + pe.putInt32(partition) + pe.putInt16(int16(kerror)) + } + } + return nil +} + +func (r *OffsetCommitResponse) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + + if version >= 3 { + r.ThrottleTimeMs, err = pd.getInt32() + if err != nil { + return err + } + } + + numTopics, err := pd.getArrayLength() + if err != nil || numTopics == 0 { + return err + } + + r.Errors = make(map[string]map[int32]KError, numTopics) + for i := 0; i < numTopics; i++ { + name, err := pd.getString() + if err != nil { + return err + } + + numErrors, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Errors[name] = make(map[int32]KError, numErrors) + + for j := 0; j < numErrors; j++ { + id, err := pd.getInt32() + if err != nil { + return err + } + + tmp, err := pd.getInt16() + if err != nil { + return err + } + r.Errors[name][id] = KError(tmp) + } + } + + return nil +} + +func (r *OffsetCommitResponse) key() int16 { + return 8 +} + +func (r *OffsetCommitResponse) version() int16 { + return r.Version +} + +func (r *OffsetCommitResponse) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V0_8_2_0 + case 2: + return V0_9_0_0 + case 3: + return V0_11_0_0 + case 4: + return V2_0_0_0 + default: + return MinVersion + } +} diff --git a/vendor/github.com/Shopify/sarama/offset_fetch_request.go b/vendor/github.com/Shopify/sarama/offset_fetch_request.go new file mode 100644 index 0000000..6860824 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/offset_fetch_request.go @@ -0,0 +1,100 @@ +package sarama + +type OffsetFetchRequest struct { + Version int16 + ConsumerGroup string + partitions map[string][]int32 +} + +func (r *OffsetFetchRequest) encode(pe packetEncoder) (err error) { + if r.Version < 0 || r.Version > 5 { + return PacketEncodingError{"invalid or unsupported OffsetFetchRequest version field"} + } + + if err = pe.putString(r.ConsumerGroup); err != nil { + return err + } + + if r.Version >= 2 && r.partitions == nil { + pe.putInt32(-1) + } else { + if err = pe.putArrayLength(len(r.partitions)); err != nil { + return err + } + for topic, partitions := range r.partitions { + if err = pe.putString(topic); err != nil { + return err + } + if err = pe.putInt32Array(partitions); err != nil { + return err + } + } + } + return nil +} + +func (r *OffsetFetchRequest) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + if r.ConsumerGroup, err = pd.getString(); err != nil { + return err + } + partitionCount, err := pd.getArrayLength() + if err != nil { + return err + } + if (partitionCount == 0 && version < 2) || partitionCount < 0 { + return nil + } + r.partitions = make(map[string][]int32) + for i := 0; i < partitionCount; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + partitions, err := pd.getInt32Array() + if err != nil { + return err + } + r.partitions[topic] = partitions + } + return nil +} + +func (r *OffsetFetchRequest) key() int16 { + return 9 +} + +func (r *OffsetFetchRequest) version() int16 { + return r.Version +} + +func (r *OffsetFetchRequest) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V0_8_2_0 + case 2: + return V0_10_2_0 + case 3: + return V0_11_0_0 + case 4: + return V2_0_0_0 + case 5: + return V2_1_0_0 + default: + return MinVersion + } +} + +func (r *OffsetFetchRequest) ZeroPartitions() { + if r.partitions == nil && r.Version >= 2 { + r.partitions = make(map[string][]int32) + } +} + +func (r *OffsetFetchRequest) AddPartition(topic string, partitionID int32) { + if r.partitions == nil { + r.partitions = make(map[string][]int32) + } + + r.partitions[topic] = append(r.partitions[topic], partitionID) +} diff --git a/vendor/github.com/Shopify/sarama/offset_fetch_response.go b/vendor/github.com/Shopify/sarama/offset_fetch_response.go new file mode 100644 index 0000000..9e25702 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/offset_fetch_response.go @@ -0,0 +1,197 @@ +package sarama + +type OffsetFetchResponseBlock struct { + Offset int64 + LeaderEpoch int32 + Metadata string + Err KError +} + +func (b *OffsetFetchResponseBlock) decode(pd packetDecoder, version int16) (err error) { + b.Offset, err = pd.getInt64() + if err != nil { + return err + } + + if version >= 5 { + b.LeaderEpoch, err = pd.getInt32() + if err != nil { + return err + } + } + + b.Metadata, err = pd.getString() + if err != nil { + return err + } + + tmp, err := pd.getInt16() + if err != nil { + return err + } + b.Err = KError(tmp) + + return nil +} + +func (b *OffsetFetchResponseBlock) encode(pe packetEncoder, version int16) (err error) { + pe.putInt64(b.Offset) + + if version >= 5 { + pe.putInt32(b.LeaderEpoch) + } + + err = pe.putString(b.Metadata) + if err != nil { + return err + } + + pe.putInt16(int16(b.Err)) + + return nil +} + +type OffsetFetchResponse struct { + Version int16 + ThrottleTimeMs int32 + Blocks map[string]map[int32]*OffsetFetchResponseBlock + Err KError +} + +func (r *OffsetFetchResponse) encode(pe packetEncoder) error { + if r.Version >= 3 { + pe.putInt32(r.ThrottleTimeMs) + } + + if err := pe.putArrayLength(len(r.Blocks)); err != nil { + return err + } + for topic, partitions := range r.Blocks { + if err := pe.putString(topic); err != nil { + return err + } + if err := pe.putArrayLength(len(partitions)); err != nil { + return err + } + for partition, block := range partitions { + pe.putInt32(partition) + if err := block.encode(pe, r.Version); err != nil { + return err + } + } + } + if r.Version >= 2 { + pe.putInt16(int16(r.Err)) + } + return nil +} + +func (r *OffsetFetchResponse) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + + if version >= 3 { + r.ThrottleTimeMs, err = pd.getInt32() + if err != nil { + return err + } + } + + numTopics, err := pd.getArrayLength() + if err != nil { + return err + } + + if numTopics > 0 { + r.Blocks = make(map[string]map[int32]*OffsetFetchResponseBlock, numTopics) + for i := 0; i < numTopics; i++ { + name, err := pd.getString() + if err != nil { + return err + } + + numBlocks, err := pd.getArrayLength() + if err != nil { + return err + } + + if numBlocks == 0 { + r.Blocks[name] = nil + continue + } + r.Blocks[name] = make(map[int32]*OffsetFetchResponseBlock, numBlocks) + + for j := 0; j < numBlocks; j++ { + id, err := pd.getInt32() + if err != nil { + return err + } + + block := new(OffsetFetchResponseBlock) + err = block.decode(pd, version) + if err != nil { + return err + } + r.Blocks[name][id] = block + } + } + } + + if version >= 2 { + kerr, err := pd.getInt16() + if err != nil { + return err + } + r.Err = KError(kerr) + } + + return nil +} + +func (r *OffsetFetchResponse) key() int16 { + return 9 +} + +func (r *OffsetFetchResponse) version() int16 { + return r.Version +} + +func (r *OffsetFetchResponse) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V0_8_2_0 + case 2: + return V0_10_2_0 + case 3: + return V0_11_0_0 + case 4: + return V2_0_0_0 + case 5: + return V2_1_0_0 + default: + return MinVersion + } +} + +func (r *OffsetFetchResponse) GetBlock(topic string, partition int32) *OffsetFetchResponseBlock { + if r.Blocks == nil { + return nil + } + + if r.Blocks[topic] == nil { + return nil + } + + return r.Blocks[topic][partition] +} + +func (r *OffsetFetchResponse) AddBlock(topic string, partition int32, block *OffsetFetchResponseBlock) { + if r.Blocks == nil { + r.Blocks = make(map[string]map[int32]*OffsetFetchResponseBlock) + } + partitions := r.Blocks[topic] + if partitions == nil { + partitions = make(map[int32]*OffsetFetchResponseBlock) + r.Blocks[topic] = partitions + } + partitions[partition] = block +} diff --git a/vendor/github.com/Shopify/sarama/offset_manager.go b/vendor/github.com/Shopify/sarama/offset_manager.go new file mode 100644 index 0000000..1940872 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/offset_manager.go @@ -0,0 +1,584 @@ +package sarama + +import ( + "sync" + "time" +) + +// Offset Manager + +// OffsetManager uses Kafka to store and fetch consumed partition offsets. +type OffsetManager interface { + // ManagePartition creates a PartitionOffsetManager on the given topic/partition. + // It will return an error if this OffsetManager is already managing the given + // topic/partition. + ManagePartition(topic string, partition int32) (PartitionOffsetManager, error) + + // Close stops the OffsetManager from managing offsets. It is required to call + // this function before an OffsetManager object passes out of scope, as it + // will otherwise leak memory. You must call this after all the + // PartitionOffsetManagers are closed. + Close() error +} + +type offsetManager struct { + client Client + conf *Config + group string + ticker *time.Ticker + + memberID string + generation int32 + + broker *Broker + brokerLock sync.RWMutex + + poms map[string]map[int32]*partitionOffsetManager + pomsLock sync.RWMutex + + closeOnce sync.Once + closing chan none + closed chan none +} + +// NewOffsetManagerFromClient creates a new OffsetManager from the given client. +// It is still necessary to call Close() on the underlying client when finished with the partition manager. +func NewOffsetManagerFromClient(group string, client Client) (OffsetManager, error) { + return newOffsetManagerFromClient(group, "", GroupGenerationUndefined, client) +} + +func newOffsetManagerFromClient(group, memberID string, generation int32, client Client) (*offsetManager, error) { + // Check that we are not dealing with a closed Client before processing any other arguments + if client.Closed() { + return nil, ErrClosedClient + } + + conf := client.Config() + om := &offsetManager{ + client: client, + conf: conf, + group: group, + ticker: time.NewTicker(conf.Consumer.Offsets.AutoCommit.Interval), + poms: make(map[string]map[int32]*partitionOffsetManager), + + memberID: memberID, + generation: generation, + + closing: make(chan none), + closed: make(chan none), + } + go withRecover(om.mainLoop) + + return om, nil +} + +func (om *offsetManager) ManagePartition(topic string, partition int32) (PartitionOffsetManager, error) { + pom, err := om.newPartitionOffsetManager(topic, partition) + if err != nil { + return nil, err + } + + om.pomsLock.Lock() + defer om.pomsLock.Unlock() + + topicManagers := om.poms[topic] + if topicManagers == nil { + topicManagers = make(map[int32]*partitionOffsetManager) + om.poms[topic] = topicManagers + } + + if topicManagers[partition] != nil { + return nil, ConfigurationError("That topic/partition is already being managed") + } + + topicManagers[partition] = pom + return pom, nil +} + +func (om *offsetManager) Close() error { + om.closeOnce.Do(func() { + // exit the mainLoop + close(om.closing) + <-om.closed + + // mark all POMs as closed + om.asyncClosePOMs() + + // flush one last time + for attempt := 0; attempt <= om.conf.Consumer.Offsets.Retry.Max; attempt++ { + om.flushToBroker() + if om.releasePOMs(false) == 0 { + break + } + } + + om.releasePOMs(true) + om.brokerLock.Lock() + om.broker = nil + om.brokerLock.Unlock() + }) + return nil +} + +func (om *offsetManager) computeBackoff(retries int) time.Duration { + if om.conf.Metadata.Retry.BackoffFunc != nil { + return om.conf.Metadata.Retry.BackoffFunc(retries, om.conf.Metadata.Retry.Max) + } else { + return om.conf.Metadata.Retry.Backoff + } +} + +func (om *offsetManager) fetchInitialOffset(topic string, partition int32, retries int) (int64, string, error) { + broker, err := om.coordinator() + if err != nil { + if retries <= 0 { + return 0, "", err + } + return om.fetchInitialOffset(topic, partition, retries-1) + } + + req := new(OffsetFetchRequest) + req.Version = 1 + req.ConsumerGroup = om.group + req.AddPartition(topic, partition) + + resp, err := broker.FetchOffset(req) + if err != nil { + if retries <= 0 { + return 0, "", err + } + om.releaseCoordinator(broker) + return om.fetchInitialOffset(topic, partition, retries-1) + } + + block := resp.GetBlock(topic, partition) + if block == nil { + return 0, "", ErrIncompleteResponse + } + + switch block.Err { + case ErrNoError: + return block.Offset, block.Metadata, nil + case ErrNotCoordinatorForConsumer: + if retries <= 0 { + return 0, "", block.Err + } + om.releaseCoordinator(broker) + return om.fetchInitialOffset(topic, partition, retries-1) + case ErrOffsetsLoadInProgress: + if retries <= 0 { + return 0, "", block.Err + } + backoff := om.computeBackoff(retries) + select { + case <-om.closing: + return 0, "", block.Err + case <-time.After(backoff): + } + return om.fetchInitialOffset(topic, partition, retries-1) + default: + return 0, "", block.Err + } +} + +func (om *offsetManager) coordinator() (*Broker, error) { + om.brokerLock.RLock() + broker := om.broker + om.brokerLock.RUnlock() + + if broker != nil { + return broker, nil + } + + om.brokerLock.Lock() + defer om.brokerLock.Unlock() + + if broker := om.broker; broker != nil { + return broker, nil + } + + if err := om.client.RefreshCoordinator(om.group); err != nil { + return nil, err + } + + broker, err := om.client.Coordinator(om.group) + if err != nil { + return nil, err + } + + om.broker = broker + return broker, nil +} + +func (om *offsetManager) releaseCoordinator(b *Broker) { + om.brokerLock.Lock() + if om.broker == b { + om.broker = nil + } + om.brokerLock.Unlock() +} + +func (om *offsetManager) mainLoop() { + defer om.ticker.Stop() + defer close(om.closed) + + for { + select { + case <-om.ticker.C: + om.flushToBroker() + om.releasePOMs(false) + case <-om.closing: + return + } + } +} + +// flushToBroker is ignored if auto-commit offsets is disabled +func (om *offsetManager) flushToBroker() { + if !om.conf.Consumer.Offsets.AutoCommit.Enable { + return + } + + req := om.constructRequest() + if req == nil { + return + } + + broker, err := om.coordinator() + if err != nil { + om.handleError(err) + return + } + + resp, err := broker.CommitOffset(req) + if err != nil { + om.handleError(err) + om.releaseCoordinator(broker) + _ = broker.Close() + return + } + + om.handleResponse(broker, req, resp) +} + +func (om *offsetManager) constructRequest() *OffsetCommitRequest { + var r *OffsetCommitRequest + var perPartitionTimestamp int64 + if om.conf.Consumer.Offsets.Retention == 0 { + perPartitionTimestamp = ReceiveTime + r = &OffsetCommitRequest{ + Version: 1, + ConsumerGroup: om.group, + ConsumerID: om.memberID, + ConsumerGroupGeneration: om.generation, + } + } else { + r = &OffsetCommitRequest{ + Version: 2, + RetentionTime: int64(om.conf.Consumer.Offsets.Retention / time.Millisecond), + ConsumerGroup: om.group, + ConsumerID: om.memberID, + ConsumerGroupGeneration: om.generation, + } + } + + om.pomsLock.RLock() + defer om.pomsLock.RUnlock() + + for _, topicManagers := range om.poms { + for _, pom := range topicManagers { + pom.lock.Lock() + if pom.dirty { + r.AddBlock(pom.topic, pom.partition, pom.offset, perPartitionTimestamp, pom.metadata) + } + pom.lock.Unlock() + } + } + + if len(r.blocks) > 0 { + return r + } + + return nil +} + +func (om *offsetManager) handleResponse(broker *Broker, req *OffsetCommitRequest, resp *OffsetCommitResponse) { + om.pomsLock.RLock() + defer om.pomsLock.RUnlock() + + for _, topicManagers := range om.poms { + for _, pom := range topicManagers { + if req.blocks[pom.topic] == nil || req.blocks[pom.topic][pom.partition] == nil { + continue + } + + var err KError + var ok bool + + if resp.Errors[pom.topic] == nil { + pom.handleError(ErrIncompleteResponse) + continue + } + if err, ok = resp.Errors[pom.topic][pom.partition]; !ok { + pom.handleError(ErrIncompleteResponse) + continue + } + + switch err { + case ErrNoError: + block := req.blocks[pom.topic][pom.partition] + pom.updateCommitted(block.offset, block.metadata) + case ErrNotLeaderForPartition, ErrLeaderNotAvailable, + ErrConsumerCoordinatorNotAvailable, ErrNotCoordinatorForConsumer: + // not a critical error, we just need to redispatch + om.releaseCoordinator(broker) + case ErrOffsetMetadataTooLarge, ErrInvalidCommitOffsetSize: + // nothing we can do about this, just tell the user and carry on + pom.handleError(err) + case ErrOffsetsLoadInProgress: + // nothing wrong but we didn't commit, we'll get it next time round + case ErrUnknownTopicOrPartition: + // let the user know *and* try redispatching - if topic-auto-create is + // enabled, redispatching should trigger a metadata req and create the + // topic; if not then re-dispatching won't help, but we've let the user + // know and it shouldn't hurt either (see https://github.com/Shopify/sarama/issues/706) + fallthrough + default: + // dunno, tell the user and try redispatching + pom.handleError(err) + om.releaseCoordinator(broker) + } + } + } +} + +func (om *offsetManager) handleError(err error) { + om.pomsLock.RLock() + defer om.pomsLock.RUnlock() + + for _, topicManagers := range om.poms { + for _, pom := range topicManagers { + pom.handleError(err) + } + } +} + +func (om *offsetManager) asyncClosePOMs() { + om.pomsLock.RLock() + defer om.pomsLock.RUnlock() + + for _, topicManagers := range om.poms { + for _, pom := range topicManagers { + pom.AsyncClose() + } + } +} + +// Releases/removes closed POMs once they are clean (or when forced) +func (om *offsetManager) releasePOMs(force bool) (remaining int) { + om.pomsLock.Lock() + defer om.pomsLock.Unlock() + + for topic, topicManagers := range om.poms { + for partition, pom := range topicManagers { + pom.lock.Lock() + releaseDue := pom.done && (force || !pom.dirty) + pom.lock.Unlock() + + if releaseDue { + pom.release() + + delete(om.poms[topic], partition) + if len(om.poms[topic]) == 0 { + delete(om.poms, topic) + } + } + } + remaining += len(om.poms[topic]) + } + return +} + +func (om *offsetManager) findPOM(topic string, partition int32) *partitionOffsetManager { + om.pomsLock.RLock() + defer om.pomsLock.RUnlock() + + if partitions, ok := om.poms[topic]; ok { + if pom, ok := partitions[partition]; ok { + return pom + } + } + return nil +} + +// Partition Offset Manager + +// PartitionOffsetManager uses Kafka to store and fetch consumed partition offsets. You MUST call Close() +// on a partition offset manager to avoid leaks, it will not be garbage-collected automatically when it passes +// out of scope. +type PartitionOffsetManager interface { + // NextOffset returns the next offset that should be consumed for the managed + // partition, accompanied by metadata which can be used to reconstruct the state + // of the partition consumer when it resumes. NextOffset() will return + // `config.Consumer.Offsets.Initial` and an empty metadata string if no offset + // was committed for this partition yet. + NextOffset() (int64, string) + + // MarkOffset marks the provided offset, alongside a metadata string + // that represents the state of the partition consumer at that point in time. The + // metadata string can be used by another consumer to restore that state, so it + // can resume consumption. + // + // To follow upstream conventions, you are expected to mark the offset of the + // next message to read, not the last message read. Thus, when calling `MarkOffset` + // you should typically add one to the offset of the last consumed message. + // + // Note: calling MarkOffset does not necessarily commit the offset to the backend + // store immediately for efficiency reasons, and it may never be committed if + // your application crashes. This means that you may end up processing the same + // message twice, and your processing should ideally be idempotent. + MarkOffset(offset int64, metadata string) + + // ResetOffset resets to the provided offset, alongside a metadata string that + // represents the state of the partition consumer at that point in time. Reset + // acts as a counterpart to MarkOffset, the difference being that it allows to + // reset an offset to an earlier or smaller value, where MarkOffset only + // allows incrementing the offset. cf MarkOffset for more details. + ResetOffset(offset int64, metadata string) + + // Errors returns a read channel of errors that occur during offset management, if + // enabled. By default, errors are logged and not returned over this channel. If + // you want to implement any custom error handling, set your config's + // Consumer.Return.Errors setting to true, and read from this channel. + Errors() <-chan *ConsumerError + + // AsyncClose initiates a shutdown of the PartitionOffsetManager. This method will + // return immediately, after which you should wait until the 'errors' channel has + // been drained and closed. It is required to call this function, or Close before + // a consumer object passes out of scope, as it will otherwise leak memory. You + // must call this before calling Close on the underlying client. + AsyncClose() + + // Close stops the PartitionOffsetManager from managing offsets. It is required to + // call this function (or AsyncClose) before a PartitionOffsetManager object + // passes out of scope, as it will otherwise leak memory. You must call this + // before calling Close on the underlying client. + Close() error +} + +type partitionOffsetManager struct { + parent *offsetManager + topic string + partition int32 + + lock sync.Mutex + offset int64 + metadata string + dirty bool + done bool + + releaseOnce sync.Once + errors chan *ConsumerError +} + +func (om *offsetManager) newPartitionOffsetManager(topic string, partition int32) (*partitionOffsetManager, error) { + offset, metadata, err := om.fetchInitialOffset(topic, partition, om.conf.Metadata.Retry.Max) + if err != nil { + return nil, err + } + + return &partitionOffsetManager{ + parent: om, + topic: topic, + partition: partition, + errors: make(chan *ConsumerError, om.conf.ChannelBufferSize), + offset: offset, + metadata: metadata, + }, nil +} + +func (pom *partitionOffsetManager) Errors() <-chan *ConsumerError { + return pom.errors +} + +func (pom *partitionOffsetManager) MarkOffset(offset int64, metadata string) { + pom.lock.Lock() + defer pom.lock.Unlock() + + if offset > pom.offset { + pom.offset = offset + pom.metadata = metadata + pom.dirty = true + } +} + +func (pom *partitionOffsetManager) ResetOffset(offset int64, metadata string) { + pom.lock.Lock() + defer pom.lock.Unlock() + + if offset <= pom.offset { + pom.offset = offset + pom.metadata = metadata + pom.dirty = true + } +} + +func (pom *partitionOffsetManager) updateCommitted(offset int64, metadata string) { + pom.lock.Lock() + defer pom.lock.Unlock() + + if pom.offset == offset && pom.metadata == metadata { + pom.dirty = false + } +} + +func (pom *partitionOffsetManager) NextOffset() (int64, string) { + pom.lock.Lock() + defer pom.lock.Unlock() + + if pom.offset >= 0 { + return pom.offset, pom.metadata + } + + return pom.parent.conf.Consumer.Offsets.Initial, "" +} + +func (pom *partitionOffsetManager) AsyncClose() { + pom.lock.Lock() + pom.done = true + pom.lock.Unlock() +} + +func (pom *partitionOffsetManager) Close() error { + pom.AsyncClose() + + var errors ConsumerErrors + for err := range pom.errors { + errors = append(errors, err) + } + + if len(errors) > 0 { + return errors + } + return nil +} + +func (pom *partitionOffsetManager) handleError(err error) { + cErr := &ConsumerError{ + Topic: pom.topic, + Partition: pom.partition, + Err: err, + } + + if pom.parent.conf.Consumer.Return.Errors { + pom.errors <- cErr + } else { + Logger.Println(cErr) + } +} + +func (pom *partitionOffsetManager) release() { + pom.releaseOnce.Do(func() { + close(pom.errors) + }) +} diff --git a/vendor/github.com/Shopify/sarama/offset_request.go b/vendor/github.com/Shopify/sarama/offset_request.go new file mode 100644 index 0000000..326c372 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/offset_request.go @@ -0,0 +1,156 @@ +package sarama + +type offsetRequestBlock struct { + time int64 + maxOffsets int32 // Only used in version 0 +} + +func (b *offsetRequestBlock) encode(pe packetEncoder, version int16) error { + pe.putInt64(int64(b.time)) + if version == 0 { + pe.putInt32(b.maxOffsets) + } + + return nil +} + +func (b *offsetRequestBlock) decode(pd packetDecoder, version int16) (err error) { + if b.time, err = pd.getInt64(); err != nil { + return err + } + if version == 0 { + if b.maxOffsets, err = pd.getInt32(); err != nil { + return err + } + } + return nil +} + +type OffsetRequest struct { + Version int16 + replicaID int32 + isReplicaIDSet bool + blocks map[string]map[int32]*offsetRequestBlock +} + +func (r *OffsetRequest) encode(pe packetEncoder) error { + if r.isReplicaIDSet { + pe.putInt32(r.replicaID) + } else { + // default replica ID is always -1 for clients + pe.putInt32(-1) + } + + err := pe.putArrayLength(len(r.blocks)) + if err != nil { + return err + } + for topic, partitions := range r.blocks { + err = pe.putString(topic) + if err != nil { + return err + } + err = pe.putArrayLength(len(partitions)) + if err != nil { + return err + } + for partition, block := range partitions { + pe.putInt32(partition) + if err = block.encode(pe, r.Version); err != nil { + return err + } + } + } + return nil +} + +func (r *OffsetRequest) decode(pd packetDecoder, version int16) error { + r.Version = version + + replicaID, err := pd.getInt32() + if err != nil { + return err + } + if replicaID >= 0 { + r.SetReplicaID(replicaID) + } + + blockCount, err := pd.getArrayLength() + if err != nil { + return err + } + if blockCount == 0 { + return nil + } + r.blocks = make(map[string]map[int32]*offsetRequestBlock) + for i := 0; i < blockCount; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + partitionCount, err := pd.getArrayLength() + if err != nil { + return err + } + r.blocks[topic] = make(map[int32]*offsetRequestBlock) + for j := 0; j < partitionCount; j++ { + partition, err := pd.getInt32() + if err != nil { + return err + } + block := &offsetRequestBlock{} + if err := block.decode(pd, version); err != nil { + return err + } + r.blocks[topic][partition] = block + } + } + return nil +} + +func (r *OffsetRequest) key() int16 { + return 2 +} + +func (r *OffsetRequest) version() int16 { + return r.Version +} + +func (r *OffsetRequest) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V0_10_1_0 + default: + return MinVersion + } +} + +func (r *OffsetRequest) SetReplicaID(id int32) { + r.replicaID = id + r.isReplicaIDSet = true +} + +func (r *OffsetRequest) ReplicaID() int32 { + if r.isReplicaIDSet { + return r.replicaID + } + return -1 +} + +func (r *OffsetRequest) AddBlock(topic string, partitionID int32, time int64, maxOffsets int32) { + if r.blocks == nil { + r.blocks = make(map[string]map[int32]*offsetRequestBlock) + } + + if r.blocks[topic] == nil { + r.blocks[topic] = make(map[int32]*offsetRequestBlock) + } + + tmp := new(offsetRequestBlock) + tmp.time = time + if r.Version == 0 { + tmp.maxOffsets = maxOffsets + } + + r.blocks[topic][partitionID] = tmp +} diff --git a/vendor/github.com/Shopify/sarama/offset_response.go b/vendor/github.com/Shopify/sarama/offset_response.go new file mode 100644 index 0000000..8b2193f --- /dev/null +++ b/vendor/github.com/Shopify/sarama/offset_response.go @@ -0,0 +1,174 @@ +package sarama + +type OffsetResponseBlock struct { + Err KError + Offsets []int64 // Version 0 + Offset int64 // Version 1 + Timestamp int64 // Version 1 +} + +func (b *OffsetResponseBlock) decode(pd packetDecoder, version int16) (err error) { + tmp, err := pd.getInt16() + if err != nil { + return err + } + b.Err = KError(tmp) + + if version == 0 { + b.Offsets, err = pd.getInt64Array() + + return err + } + + b.Timestamp, err = pd.getInt64() + if err != nil { + return err + } + + b.Offset, err = pd.getInt64() + if err != nil { + return err + } + + // For backwards compatibility put the offset in the offsets array too + b.Offsets = []int64{b.Offset} + + return nil +} + +func (b *OffsetResponseBlock) encode(pe packetEncoder, version int16) (err error) { + pe.putInt16(int16(b.Err)) + + if version == 0 { + return pe.putInt64Array(b.Offsets) + } + + pe.putInt64(b.Timestamp) + pe.putInt64(b.Offset) + + return nil +} + +type OffsetResponse struct { + Version int16 + Blocks map[string]map[int32]*OffsetResponseBlock +} + +func (r *OffsetResponse) decode(pd packetDecoder, version int16) (err error) { + numTopics, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Blocks = make(map[string]map[int32]*OffsetResponseBlock, numTopics) + for i := 0; i < numTopics; i++ { + name, err := pd.getString() + if err != nil { + return err + } + + numBlocks, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Blocks[name] = make(map[int32]*OffsetResponseBlock, numBlocks) + + for j := 0; j < numBlocks; j++ { + id, err := pd.getInt32() + if err != nil { + return err + } + + block := new(OffsetResponseBlock) + err = block.decode(pd, version) + if err != nil { + return err + } + r.Blocks[name][id] = block + } + } + + return nil +} + +func (r *OffsetResponse) GetBlock(topic string, partition int32) *OffsetResponseBlock { + if r.Blocks == nil { + return nil + } + + if r.Blocks[topic] == nil { + return nil + } + + return r.Blocks[topic][partition] +} + +/* +// [0 0 0 1 ntopics +0 8 109 121 95 116 111 112 105 99 topic +0 0 0 1 npartitions +0 0 0 0 id +0 0 + +0 0 0 1 0 0 0 0 +0 1 1 1 0 0 0 1 +0 8 109 121 95 116 111 112 +105 99 0 0 0 1 0 0 +0 0 0 0 0 0 0 1 +0 0 0 0 0 1 1 1] + +*/ +func (r *OffsetResponse) encode(pe packetEncoder) (err error) { + if err = pe.putArrayLength(len(r.Blocks)); err != nil { + return err + } + + for topic, partitions := range r.Blocks { + if err = pe.putString(topic); err != nil { + return err + } + if err = pe.putArrayLength(len(partitions)); err != nil { + return err + } + for partition, block := range partitions { + pe.putInt32(partition) + if err = block.encode(pe, r.version()); err != nil { + return err + } + } + } + + return nil +} + +func (r *OffsetResponse) key() int16 { + return 2 +} + +func (r *OffsetResponse) version() int16 { + return r.Version +} + +func (r *OffsetResponse) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V0_10_1_0 + default: + return MinVersion + } +} + +// testing API + +func (r *OffsetResponse) AddTopicPartition(topic string, partition int32, offset int64) { + if r.Blocks == nil { + r.Blocks = make(map[string]map[int32]*OffsetResponseBlock) + } + byTopic, ok := r.Blocks[topic] + if !ok { + byTopic = make(map[int32]*OffsetResponseBlock) + r.Blocks[topic] = byTopic + } + byTopic[partition] = &OffsetResponseBlock{Offsets: []int64{offset}, Offset: offset} +} diff --git a/vendor/github.com/Shopify/sarama/packet_decoder.go b/vendor/github.com/Shopify/sarama/packet_decoder.go new file mode 100644 index 0000000..9be854c --- /dev/null +++ b/vendor/github.com/Shopify/sarama/packet_decoder.go @@ -0,0 +1,61 @@ +package sarama + +// PacketDecoder is the interface providing helpers for reading with Kafka's encoding rules. +// Types implementing Decoder only need to worry about calling methods like GetString, +// not about how a string is represented in Kafka. +type packetDecoder interface { + // Primitives + getInt8() (int8, error) + getInt16() (int16, error) + getInt32() (int32, error) + getInt64() (int64, error) + getVarint() (int64, error) + getArrayLength() (int, error) + getBool() (bool, error) + + // Collections + getBytes() ([]byte, error) + getVarintBytes() ([]byte, error) + getRawBytes(length int) ([]byte, error) + getString() (string, error) + getNullableString() (*string, error) + getInt32Array() ([]int32, error) + getInt64Array() ([]int64, error) + getStringArray() ([]string, error) + + // Subsets + remaining() int + getSubset(length int) (packetDecoder, error) + peek(offset, length int) (packetDecoder, error) // similar to getSubset, but it doesn't advance the offset + peekInt8(offset int) (int8, error) // similar to peek, but just one byte + + // Stacks, see PushDecoder + push(in pushDecoder) error + pop() error +} + +// PushDecoder is the interface for decoding fields like CRCs and lengths where the validity +// of the field depends on what is after it in the packet. Start them with PacketDecoder.Push() where +// the actual value is located in the packet, then PacketDecoder.Pop() them when all the bytes they +// depend upon have been decoded. +type pushDecoder interface { + // Saves the offset into the input buffer as the location to actually read the calculated value when able. + saveOffset(in int) + + // Returns the length of data to reserve for the input of this encoder (eg 4 bytes for a CRC32). + reserveLength() int + + // Indicates that all required data is now available to calculate and check the field. + // SaveOffset is guaranteed to have been called first. The implementation should read ReserveLength() bytes + // of data from the saved offset, and verify it based on the data between the saved offset and curOffset. + check(curOffset int, buf []byte) error +} + +// dynamicPushDecoder extends the interface of pushDecoder for uses cases where the length of the +// fields itself is unknown until its value was decoded (for instance varint encoded length +// fields). +// During push, dynamicPushDecoder.decode() method will be called instead of reserveLength() +type dynamicPushDecoder interface { + pushDecoder + decoder +} diff --git a/vendor/github.com/Shopify/sarama/packet_encoder.go b/vendor/github.com/Shopify/sarama/packet_encoder.go new file mode 100644 index 0000000..67b8dae --- /dev/null +++ b/vendor/github.com/Shopify/sarama/packet_encoder.go @@ -0,0 +1,65 @@ +package sarama + +import "github.com/rcrowley/go-metrics" + +// PacketEncoder is the interface providing helpers for writing with Kafka's encoding rules. +// Types implementing Encoder only need to worry about calling methods like PutString, +// not about how a string is represented in Kafka. +type packetEncoder interface { + // Primitives + putInt8(in int8) + putInt16(in int16) + putInt32(in int32) + putInt64(in int64) + putVarint(in int64) + putArrayLength(in int) error + putBool(in bool) + + // Collections + putBytes(in []byte) error + putVarintBytes(in []byte) error + putRawBytes(in []byte) error + putString(in string) error + putNullableString(in *string) error + putStringArray(in []string) error + putInt32Array(in []int32) error + putInt64Array(in []int64) error + + // Provide the current offset to record the batch size metric + offset() int + + // Stacks, see PushEncoder + push(in pushEncoder) + pop() error + + // To record metrics when provided + metricRegistry() metrics.Registry +} + +// PushEncoder is the interface for encoding fields like CRCs and lengths where the value +// of the field depends on what is encoded after it in the packet. Start them with PacketEncoder.Push() where +// the actual value is located in the packet, then PacketEncoder.Pop() them when all the bytes they +// depend upon have been written. +type pushEncoder interface { + // Saves the offset into the input buffer as the location to actually write the calculated value when able. + saveOffset(in int) + + // Returns the length of data to reserve for the output of this encoder (eg 4 bytes for a CRC32). + reserveLength() int + + // Indicates that all required data is now available to calculate and write the field. + // SaveOffset is guaranteed to have been called first. The implementation should write ReserveLength() bytes + // of data to the saved offset, based on the data between the saved offset and curOffset. + run(curOffset int, buf []byte) error +} + +// dynamicPushEncoder extends the interface of pushEncoder for uses cases where the length of the +// fields itself is unknown until its value was computed (for instance varint encoded length +// fields). +type dynamicPushEncoder interface { + pushEncoder + + // Called during pop() to adjust the length of the field. + // It should return the difference in bytes between the last computed length and current length. + adjustLength(currOffset int) int +} diff --git a/vendor/github.com/Shopify/sarama/partitioner.go b/vendor/github.com/Shopify/sarama/partitioner.go new file mode 100644 index 0000000..6a708e7 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/partitioner.go @@ -0,0 +1,217 @@ +package sarama + +import ( + "hash" + "hash/fnv" + "math/rand" + "time" +) + +// Partitioner is anything that, given a Kafka message and a number of partitions indexed [0...numPartitions-1], +// decides to which partition to send the message. RandomPartitioner, RoundRobinPartitioner and HashPartitioner are provided +// as simple default implementations. +type Partitioner interface { + // Partition takes a message and partition count and chooses a partition + Partition(message *ProducerMessage, numPartitions int32) (int32, error) + + // RequiresConsistency indicates to the user of the partitioner whether the + // mapping of key->partition is consistent or not. Specifically, if a + // partitioner requires consistency then it must be allowed to choose from all + // partitions (even ones known to be unavailable), and its choice must be + // respected by the caller. The obvious example is the HashPartitioner. + RequiresConsistency() bool +} + +// DynamicConsistencyPartitioner can optionally be implemented by Partitioners +// in order to allow more flexibility than is originally allowed by the +// RequiresConsistency method in the Partitioner interface. This allows +// partitioners to require consistency sometimes, but not all times. It's useful +// for, e.g., the HashPartitioner, which does not require consistency if the +// message key is nil. +type DynamicConsistencyPartitioner interface { + Partitioner + + // MessageRequiresConsistency is similar to Partitioner.RequiresConsistency, + // but takes in the message being partitioned so that the partitioner can + // make a per-message determination. + MessageRequiresConsistency(message *ProducerMessage) bool +} + +// PartitionerConstructor is the type for a function capable of constructing new Partitioners. +type PartitionerConstructor func(topic string) Partitioner + +type manualPartitioner struct{} + +// HashPartitionOption lets you modify default values of the partitioner +type HashPartitionerOption func(*hashPartitioner) + +// WithAbsFirst means that the partitioner handles absolute values +// in the same way as the reference Java implementation +func WithAbsFirst() HashPartitionerOption { + return func(hp *hashPartitioner) { + hp.referenceAbs = true + } +} + +// WithCustomHashFunction lets you specify what hash function to use for the partitioning +func WithCustomHashFunction(hasher func() hash.Hash32) HashPartitionerOption { + return func(hp *hashPartitioner) { + hp.hasher = hasher() + } +} + +// WithCustomFallbackPartitioner lets you specify what HashPartitioner should be used in case a Distribution Key is empty +func WithCustomFallbackPartitioner(randomHP *hashPartitioner) HashPartitionerOption { + return func(hp *hashPartitioner) { + hp.random = hp + } +} + +// NewManualPartitioner returns a Partitioner which uses the partition manually set in the provided +// ProducerMessage's Partition field as the partition to produce to. +func NewManualPartitioner(topic string) Partitioner { + return new(manualPartitioner) +} + +func (p *manualPartitioner) Partition(message *ProducerMessage, numPartitions int32) (int32, error) { + return message.Partition, nil +} + +func (p *manualPartitioner) RequiresConsistency() bool { + return true +} + +type randomPartitioner struct { + generator *rand.Rand +} + +// NewRandomPartitioner returns a Partitioner which chooses a random partition each time. +func NewRandomPartitioner(topic string) Partitioner { + p := new(randomPartitioner) + p.generator = rand.New(rand.NewSource(time.Now().UTC().UnixNano())) + return p +} + +func (p *randomPartitioner) Partition(message *ProducerMessage, numPartitions int32) (int32, error) { + return int32(p.generator.Intn(int(numPartitions))), nil +} + +func (p *randomPartitioner) RequiresConsistency() bool { + return false +} + +type roundRobinPartitioner struct { + partition int32 +} + +// NewRoundRobinPartitioner returns a Partitioner which walks through the available partitions one at a time. +func NewRoundRobinPartitioner(topic string) Partitioner { + return &roundRobinPartitioner{} +} + +func (p *roundRobinPartitioner) Partition(message *ProducerMessage, numPartitions int32) (int32, error) { + if p.partition >= numPartitions { + p.partition = 0 + } + ret := p.partition + p.partition++ + return ret, nil +} + +func (p *roundRobinPartitioner) RequiresConsistency() bool { + return false +} + +type hashPartitioner struct { + random Partitioner + hasher hash.Hash32 + referenceAbs bool +} + +// NewCustomHashPartitioner is a wrapper around NewHashPartitioner, allowing the use of custom hasher. +// The argument is a function providing the instance, implementing the hash.Hash32 interface. This is to ensure that +// each partition dispatcher gets its own hasher, to avoid concurrency issues by sharing an instance. +func NewCustomHashPartitioner(hasher func() hash.Hash32) PartitionerConstructor { + return func(topic string) Partitioner { + p := new(hashPartitioner) + p.random = NewRandomPartitioner(topic) + p.hasher = hasher() + p.referenceAbs = false + return p + } +} + +// NewCustomPartitioner creates a default Partitioner but lets you specify the behavior of each component via options +func NewCustomPartitioner(options ...HashPartitionerOption) PartitionerConstructor { + return func(topic string) Partitioner { + p := new(hashPartitioner) + p.random = NewRandomPartitioner(topic) + p.hasher = fnv.New32a() + p.referenceAbs = false + for _, option := range options { + option(p) + } + return p + } +} + +// NewHashPartitioner returns a Partitioner which behaves as follows. If the message's key is nil then a +// random partition is chosen. Otherwise the FNV-1a hash of the encoded bytes of the message key is used, +// modulus the number of partitions. This ensures that messages with the same key always end up on the +// same partition. +func NewHashPartitioner(topic string) Partitioner { + p := new(hashPartitioner) + p.random = NewRandomPartitioner(topic) + p.hasher = fnv.New32a() + p.referenceAbs = false + return p +} + +// NewReferenceHashPartitioner is like NewHashPartitioner except that it handles absolute values +// in the same way as the reference Java implementation. NewHashPartitioner was supposed to do +// that but it had a mistake and now there are people depending on both behaviours. This will +// all go away on the next major version bump. +func NewReferenceHashPartitioner(topic string) Partitioner { + p := new(hashPartitioner) + p.random = NewRandomPartitioner(topic) + p.hasher = fnv.New32a() + p.referenceAbs = true + return p +} + +func (p *hashPartitioner) Partition(message *ProducerMessage, numPartitions int32) (int32, error) { + if message.Key == nil { + return p.random.Partition(message, numPartitions) + } + bytes, err := message.Key.Encode() + if err != nil { + return -1, err + } + p.hasher.Reset() + _, err = p.hasher.Write(bytes) + if err != nil { + return -1, err + } + var partition int32 + // Turns out we were doing our absolute value in a subtly different way from the upstream + // implementation, but now we need to maintain backwards compat for people who started using + // the old version; if referenceAbs is set we are compatible with the reference java client + // but not past Sarama versions + if p.referenceAbs { + partition = (int32(p.hasher.Sum32()) & 0x7fffffff) % numPartitions + } else { + partition = int32(p.hasher.Sum32()) % numPartitions + if partition < 0 { + partition = -partition + } + } + return partition, nil +} + +func (p *hashPartitioner) RequiresConsistency() bool { + return true +} + +func (p *hashPartitioner) MessageRequiresConsistency(message *ProducerMessage) bool { + return message.Key != nil +} diff --git a/vendor/github.com/Shopify/sarama/prep_encoder.go b/vendor/github.com/Shopify/sarama/prep_encoder.go new file mode 100644 index 0000000..b633cd1 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/prep_encoder.go @@ -0,0 +1,153 @@ +package sarama + +import ( + "encoding/binary" + "fmt" + "math" + + "github.com/rcrowley/go-metrics" +) + +type prepEncoder struct { + stack []pushEncoder + length int +} + +// primitives + +func (pe *prepEncoder) putInt8(in int8) { + pe.length++ +} + +func (pe *prepEncoder) putInt16(in int16) { + pe.length += 2 +} + +func (pe *prepEncoder) putInt32(in int32) { + pe.length += 4 +} + +func (pe *prepEncoder) putInt64(in int64) { + pe.length += 8 +} + +func (pe *prepEncoder) putVarint(in int64) { + var buf [binary.MaxVarintLen64]byte + pe.length += binary.PutVarint(buf[:], in) +} + +func (pe *prepEncoder) putArrayLength(in int) error { + if in > math.MaxInt32 { + return PacketEncodingError{fmt.Sprintf("array too long (%d)", in)} + } + pe.length += 4 + return nil +} + +func (pe *prepEncoder) putBool(in bool) { + pe.length++ +} + +// arrays + +func (pe *prepEncoder) putBytes(in []byte) error { + pe.length += 4 + if in == nil { + return nil + } + return pe.putRawBytes(in) +} + +func (pe *prepEncoder) putVarintBytes(in []byte) error { + if in == nil { + pe.putVarint(-1) + return nil + } + pe.putVarint(int64(len(in))) + return pe.putRawBytes(in) +} + +func (pe *prepEncoder) putRawBytes(in []byte) error { + if len(in) > math.MaxInt32 { + return PacketEncodingError{fmt.Sprintf("byteslice too long (%d)", len(in))} + } + pe.length += len(in) + return nil +} + +func (pe *prepEncoder) putNullableString(in *string) error { + if in == nil { + pe.length += 2 + return nil + } + return pe.putString(*in) +} + +func (pe *prepEncoder) putString(in string) error { + pe.length += 2 + if len(in) > math.MaxInt16 { + return PacketEncodingError{fmt.Sprintf("string too long (%d)", len(in))} + } + pe.length += len(in) + return nil +} + +func (pe *prepEncoder) putStringArray(in []string) error { + err := pe.putArrayLength(len(in)) + if err != nil { + return err + } + + for _, str := range in { + if err := pe.putString(str); err != nil { + return err + } + } + + return nil +} + +func (pe *prepEncoder) putInt32Array(in []int32) error { + err := pe.putArrayLength(len(in)) + if err != nil { + return err + } + pe.length += 4 * len(in) + return nil +} + +func (pe *prepEncoder) putInt64Array(in []int64) error { + err := pe.putArrayLength(len(in)) + if err != nil { + return err + } + pe.length += 8 * len(in) + return nil +} + +func (pe *prepEncoder) offset() int { + return pe.length +} + +// stackable + +func (pe *prepEncoder) push(in pushEncoder) { + in.saveOffset(pe.length) + pe.length += in.reserveLength() + pe.stack = append(pe.stack, in) +} + +func (pe *prepEncoder) pop() error { + in := pe.stack[len(pe.stack)-1] + pe.stack = pe.stack[:len(pe.stack)-1] + if dpe, ok := in.(dynamicPushEncoder); ok { + pe.length += dpe.adjustLength(pe.length) + } + + return nil +} + +// we do not record metrics during the prep encoder pass +func (pe *prepEncoder) metricRegistry() metrics.Registry { + return nil +} diff --git a/vendor/github.com/Shopify/sarama/produce_request.go b/vendor/github.com/Shopify/sarama/produce_request.go new file mode 100644 index 0000000..178972a --- /dev/null +++ b/vendor/github.com/Shopify/sarama/produce_request.go @@ -0,0 +1,254 @@ +package sarama + +import "github.com/rcrowley/go-metrics" + +// RequiredAcks is used in Produce Requests to tell the broker how many replica acknowledgements +// it must see before responding. Any of the constants defined here are valid. On broker versions +// prior to 0.8.2.0 any other positive int16 is also valid (the broker will wait for that many +// acknowledgements) but in 0.8.2.0 and later this will raise an exception (it has been replaced +// by setting the `min.isr` value in the brokers configuration). +type RequiredAcks int16 + +const ( + // NoResponse doesn't send any response, the TCP ACK is all you get. + NoResponse RequiredAcks = 0 + // WaitForLocal waits for only the local commit to succeed before responding. + WaitForLocal RequiredAcks = 1 + // WaitForAll waits for all in-sync replicas to commit before responding. + // The minimum number of in-sync replicas is configured on the broker via + // the `min.insync.replicas` configuration key. + WaitForAll RequiredAcks = -1 +) + +type ProduceRequest struct { + TransactionalID *string + RequiredAcks RequiredAcks + Timeout int32 + Version int16 // v1 requires Kafka 0.9, v2 requires Kafka 0.10, v3 requires Kafka 0.11 + records map[string]map[int32]Records +} + +func updateMsgSetMetrics(msgSet *MessageSet, compressionRatioMetric metrics.Histogram, + topicCompressionRatioMetric metrics.Histogram) int64 { + var topicRecordCount int64 + for _, messageBlock := range msgSet.Messages { + // Is this a fake "message" wrapping real messages? + if messageBlock.Msg.Set != nil { + topicRecordCount += int64(len(messageBlock.Msg.Set.Messages)) + } else { + // A single uncompressed message + topicRecordCount++ + } + // Better be safe than sorry when computing the compression ratio + if messageBlock.Msg.compressedSize != 0 { + compressionRatio := float64(len(messageBlock.Msg.Value)) / + float64(messageBlock.Msg.compressedSize) + // Histogram do not support decimal values, let's multiple it by 100 for better precision + intCompressionRatio := int64(100 * compressionRatio) + compressionRatioMetric.Update(intCompressionRatio) + topicCompressionRatioMetric.Update(intCompressionRatio) + } + } + return topicRecordCount +} + +func updateBatchMetrics(recordBatch *RecordBatch, compressionRatioMetric metrics.Histogram, + topicCompressionRatioMetric metrics.Histogram) int64 { + if recordBatch.compressedRecords != nil { + compressionRatio := int64(float64(recordBatch.recordsLen) / float64(len(recordBatch.compressedRecords)) * 100) + compressionRatioMetric.Update(compressionRatio) + topicCompressionRatioMetric.Update(compressionRatio) + } + + return int64(len(recordBatch.Records)) +} + +func (r *ProduceRequest) encode(pe packetEncoder) error { + if r.Version >= 3 { + if err := pe.putNullableString(r.TransactionalID); err != nil { + return err + } + } + pe.putInt16(int16(r.RequiredAcks)) + pe.putInt32(r.Timeout) + metricRegistry := pe.metricRegistry() + var batchSizeMetric metrics.Histogram + var compressionRatioMetric metrics.Histogram + if metricRegistry != nil { + batchSizeMetric = getOrRegisterHistogram("batch-size", metricRegistry) + compressionRatioMetric = getOrRegisterHistogram("compression-ratio", metricRegistry) + } + totalRecordCount := int64(0) + + err := pe.putArrayLength(len(r.records)) + if err != nil { + return err + } + + for topic, partitions := range r.records { + err = pe.putString(topic) + if err != nil { + return err + } + err = pe.putArrayLength(len(partitions)) + if err != nil { + return err + } + topicRecordCount := int64(0) + var topicCompressionRatioMetric metrics.Histogram + if metricRegistry != nil { + topicCompressionRatioMetric = getOrRegisterTopicHistogram("compression-ratio", topic, metricRegistry) + } + for id, records := range partitions { + startOffset := pe.offset() + pe.putInt32(id) + pe.push(&lengthField{}) + err = records.encode(pe) + if err != nil { + return err + } + err = pe.pop() + if err != nil { + return err + } + if metricRegistry != nil { + if r.Version >= 3 { + topicRecordCount += updateBatchMetrics(records.RecordBatch, compressionRatioMetric, topicCompressionRatioMetric) + } else { + topicRecordCount += updateMsgSetMetrics(records.MsgSet, compressionRatioMetric, topicCompressionRatioMetric) + } + batchSize := int64(pe.offset() - startOffset) + batchSizeMetric.Update(batchSize) + getOrRegisterTopicHistogram("batch-size", topic, metricRegistry).Update(batchSize) + } + } + if topicRecordCount > 0 { + getOrRegisterTopicMeter("record-send-rate", topic, metricRegistry).Mark(topicRecordCount) + getOrRegisterTopicHistogram("records-per-request", topic, metricRegistry).Update(topicRecordCount) + totalRecordCount += topicRecordCount + } + } + if totalRecordCount > 0 { + metrics.GetOrRegisterMeter("record-send-rate", metricRegistry).Mark(totalRecordCount) + getOrRegisterHistogram("records-per-request", metricRegistry).Update(totalRecordCount) + } + + return nil +} + +func (r *ProduceRequest) decode(pd packetDecoder, version int16) error { + r.Version = version + + if version >= 3 { + id, err := pd.getNullableString() + if err != nil { + return err + } + r.TransactionalID = id + } + requiredAcks, err := pd.getInt16() + if err != nil { + return err + } + r.RequiredAcks = RequiredAcks(requiredAcks) + if r.Timeout, err = pd.getInt32(); err != nil { + return err + } + topicCount, err := pd.getArrayLength() + if err != nil { + return err + } + if topicCount == 0 { + return nil + } + + r.records = make(map[string]map[int32]Records) + for i := 0; i < topicCount; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + partitionCount, err := pd.getArrayLength() + if err != nil { + return err + } + r.records[topic] = make(map[int32]Records) + + for j := 0; j < partitionCount; j++ { + partition, err := pd.getInt32() + if err != nil { + return err + } + size, err := pd.getInt32() + if err != nil { + return err + } + recordsDecoder, err := pd.getSubset(int(size)) + if err != nil { + return err + } + var records Records + if err := records.decode(recordsDecoder); err != nil { + return err + } + r.records[topic][partition] = records + } + } + + return nil +} + +func (r *ProduceRequest) key() int16 { + return 0 +} + +func (r *ProduceRequest) version() int16 { + return r.Version +} + +func (r *ProduceRequest) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V0_9_0_0 + case 2: + return V0_10_0_0 + case 3: + return V0_11_0_0 + case 7: + return V2_1_0_0 + default: + return MinVersion + } +} + +func (r *ProduceRequest) ensureRecords(topic string, partition int32) { + if r.records == nil { + r.records = make(map[string]map[int32]Records) + } + + if r.records[topic] == nil { + r.records[topic] = make(map[int32]Records) + } +} + +func (r *ProduceRequest) AddMessage(topic string, partition int32, msg *Message) { + r.ensureRecords(topic, partition) + set := r.records[topic][partition].MsgSet + + if set == nil { + set = new(MessageSet) + r.records[topic][partition] = newLegacyRecords(set) + } + + set.addMessage(msg) +} + +func (r *ProduceRequest) AddSet(topic string, partition int32, set *MessageSet) { + r.ensureRecords(topic, partition) + r.records[topic][partition] = newLegacyRecords(set) +} + +func (r *ProduceRequest) AddBatch(topic string, partition int32, batch *RecordBatch) { + r.ensureRecords(topic, partition) + r.records[topic][partition] = newDefaultRecords(batch) +} diff --git a/vendor/github.com/Shopify/sarama/produce_response.go b/vendor/github.com/Shopify/sarama/produce_response.go new file mode 100644 index 0000000..e4f19a7 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/produce_response.go @@ -0,0 +1,204 @@ +package sarama + +import ( + "fmt" + "time" +) + +// Protocol, http://kafka.apache.org/protocol.html +// v1 +// v2 = v3 = v4 +// v5 = v6 = v7 +// Produce Response (Version: 7) => [responses] throttle_time_ms +// responses => topic [partition_responses] +// topic => STRING +// partition_responses => partition error_code base_offset log_append_time log_start_offset +// partition => INT32 +// error_code => INT16 +// base_offset => INT64 +// log_append_time => INT64 +// log_start_offset => INT64 +// throttle_time_ms => INT32 + +// partition_responses in protocol +type ProduceResponseBlock struct { + Err KError // v0, error_code + Offset int64 // v0, base_offset + Timestamp time.Time // v2, log_append_time, and the broker is configured with `LogAppendTime` + StartOffset int64 // v5, log_start_offset +} + +func (b *ProduceResponseBlock) decode(pd packetDecoder, version int16) (err error) { + tmp, err := pd.getInt16() + if err != nil { + return err + } + b.Err = KError(tmp) + + b.Offset, err = pd.getInt64() + if err != nil { + return err + } + + if version >= 2 { + if millis, err := pd.getInt64(); err != nil { + return err + } else if millis != -1 { + b.Timestamp = time.Unix(millis/1000, (millis%1000)*int64(time.Millisecond)) + } + } + + if version >= 5 { + b.StartOffset, err = pd.getInt64() + if err != nil { + return err + } + } + + return nil +} + +func (b *ProduceResponseBlock) encode(pe packetEncoder, version int16) (err error) { + pe.putInt16(int16(b.Err)) + pe.putInt64(b.Offset) + + if version >= 2 { + timestamp := int64(-1) + if !b.Timestamp.Before(time.Unix(0, 0)) { + timestamp = b.Timestamp.UnixNano() / int64(time.Millisecond) + } else if !b.Timestamp.IsZero() { + return PacketEncodingError{fmt.Sprintf("invalid timestamp (%v)", b.Timestamp)} + } + pe.putInt64(timestamp) + } + + if version >= 5 { + pe.putInt64(b.StartOffset) + } + + return nil +} + +type ProduceResponse struct { + Blocks map[string]map[int32]*ProduceResponseBlock // v0, responses + Version int16 + ThrottleTime time.Duration // v1, throttle_time_ms +} + +func (r *ProduceResponse) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + + numTopics, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Blocks = make(map[string]map[int32]*ProduceResponseBlock, numTopics) + for i := 0; i < numTopics; i++ { + name, err := pd.getString() + if err != nil { + return err + } + + numBlocks, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Blocks[name] = make(map[int32]*ProduceResponseBlock, numBlocks) + + for j := 0; j < numBlocks; j++ { + id, err := pd.getInt32() + if err != nil { + return err + } + + block := new(ProduceResponseBlock) + err = block.decode(pd, version) + if err != nil { + return err + } + r.Blocks[name][id] = block + } + } + + if r.Version >= 1 { + millis, err := pd.getInt32() + if err != nil { + return err + } + + r.ThrottleTime = time.Duration(millis) * time.Millisecond + } + + return nil +} + +func (r *ProduceResponse) encode(pe packetEncoder) error { + err := pe.putArrayLength(len(r.Blocks)) + if err != nil { + return err + } + for topic, partitions := range r.Blocks { + err = pe.putString(topic) + if err != nil { + return err + } + err = pe.putArrayLength(len(partitions)) + if err != nil { + return err + } + for id, prb := range partitions { + pe.putInt32(id) + err = prb.encode(pe, r.Version) + if err != nil { + return err + } + } + } + + if r.Version >= 1 { + pe.putInt32(int32(r.ThrottleTime / time.Millisecond)) + } + return nil +} + +func (r *ProduceResponse) key() int16 { + return 0 +} + +func (r *ProduceResponse) version() int16 { + return r.Version +} + +func (r *ProduceResponse) GetBlock(topic string, partition int32) *ProduceResponseBlock { + if r.Blocks == nil { + return nil + } + + if r.Blocks[topic] == nil { + return nil + } + + return r.Blocks[topic][partition] +} + +// Testing API + +func (r *ProduceResponse) AddTopicPartition(topic string, partition int32, err KError) { + if r.Blocks == nil { + r.Blocks = make(map[string]map[int32]*ProduceResponseBlock) + } + byTopic, ok := r.Blocks[topic] + if !ok { + byTopic = make(map[int32]*ProduceResponseBlock) + r.Blocks[topic] = byTopic + } + block := &ProduceResponseBlock{ + Err: err, + } + if r.Version >= 2 { + block.Timestamp = time.Now() + } + byTopic[partition] = block +} diff --git a/vendor/github.com/Shopify/sarama/produce_set.go b/vendor/github.com/Shopify/sarama/produce_set.go new file mode 100644 index 0000000..36c43c6 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/produce_set.go @@ -0,0 +1,263 @@ +package sarama + +import ( + "encoding/binary" + "errors" + "time" +) + +type partitionSet struct { + msgs []*ProducerMessage + recordsToSend Records + bufferBytes int +} + +type produceSet struct { + parent *asyncProducer + msgs map[string]map[int32]*partitionSet + + bufferBytes int + bufferCount int +} + +func newProduceSet(parent *asyncProducer) *produceSet { + return &produceSet{ + msgs: make(map[string]map[int32]*partitionSet), + parent: parent, + } +} + +func (ps *produceSet) add(msg *ProducerMessage) error { + var err error + var key, val []byte + + if msg.Key != nil { + if key, err = msg.Key.Encode(); err != nil { + return err + } + } + + if msg.Value != nil { + if val, err = msg.Value.Encode(); err != nil { + return err + } + } + + timestamp := msg.Timestamp + if timestamp.IsZero() { + timestamp = time.Now() + } + timestamp = timestamp.Truncate(time.Millisecond) + + partitions := ps.msgs[msg.Topic] + if partitions == nil { + partitions = make(map[int32]*partitionSet) + ps.msgs[msg.Topic] = partitions + } + + var size int + + set := partitions[msg.Partition] + if set == nil { + if ps.parent.conf.Version.IsAtLeast(V0_11_0_0) { + batch := &RecordBatch{ + FirstTimestamp: timestamp, + Version: 2, + Codec: ps.parent.conf.Producer.Compression, + CompressionLevel: ps.parent.conf.Producer.CompressionLevel, + ProducerID: ps.parent.txnmgr.producerID, + ProducerEpoch: ps.parent.txnmgr.producerEpoch, + } + if ps.parent.conf.Producer.Idempotent { + batch.FirstSequence = msg.sequenceNumber + } + set = &partitionSet{recordsToSend: newDefaultRecords(batch)} + size = recordBatchOverhead + } else { + set = &partitionSet{recordsToSend: newLegacyRecords(new(MessageSet))} + } + partitions[msg.Partition] = set + } + set.msgs = append(set.msgs, msg) + + if ps.parent.conf.Version.IsAtLeast(V0_11_0_0) { + if ps.parent.conf.Producer.Idempotent && msg.sequenceNumber < set.recordsToSend.RecordBatch.FirstSequence { + return errors.New("assertion failed: message out of sequence added to a batch") + } + // We are being conservative here to avoid having to prep encode the record + size += maximumRecordOverhead + rec := &Record{ + Key: key, + Value: val, + TimestampDelta: timestamp.Sub(set.recordsToSend.RecordBatch.FirstTimestamp), + } + size += len(key) + len(val) + if len(msg.Headers) > 0 { + rec.Headers = make([]*RecordHeader, len(msg.Headers)) + for i := range msg.Headers { + rec.Headers[i] = &msg.Headers[i] + size += len(rec.Headers[i].Key) + len(rec.Headers[i].Value) + 2*binary.MaxVarintLen32 + } + } + set.recordsToSend.RecordBatch.addRecord(rec) + } else { + msgToSend := &Message{Codec: CompressionNone, Key: key, Value: val} + if ps.parent.conf.Version.IsAtLeast(V0_10_0_0) { + msgToSend.Timestamp = timestamp + msgToSend.Version = 1 + } + set.recordsToSend.MsgSet.addMessage(msgToSend) + size = producerMessageOverhead + len(key) + len(val) + } + + set.bufferBytes += size + ps.bufferBytes += size + ps.bufferCount++ + + return nil +} + +func (ps *produceSet) buildRequest() *ProduceRequest { + req := &ProduceRequest{ + RequiredAcks: ps.parent.conf.Producer.RequiredAcks, + Timeout: int32(ps.parent.conf.Producer.Timeout / time.Millisecond), + } + if ps.parent.conf.Version.IsAtLeast(V0_10_0_0) { + req.Version = 2 + } + if ps.parent.conf.Version.IsAtLeast(V0_11_0_0) { + req.Version = 3 + } + + if ps.parent.conf.Producer.Compression == CompressionZSTD && ps.parent.conf.Version.IsAtLeast(V2_1_0_0) { + req.Version = 7 + } + + for topic, partitionSets := range ps.msgs { + for partition, set := range partitionSets { + if req.Version >= 3 { + // If the API version we're hitting is 3 or greater, we need to calculate + // offsets for each record in the batch relative to FirstOffset. + // Additionally, we must set LastOffsetDelta to the value of the last offset + // in the batch. Since the OffsetDelta of the first record is 0, we know that the + // final record of any batch will have an offset of (# of records in batch) - 1. + // (See https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-Messagesets + // under the RecordBatch section for details.) + rb := set.recordsToSend.RecordBatch + if len(rb.Records) > 0 { + rb.LastOffsetDelta = int32(len(rb.Records) - 1) + for i, record := range rb.Records { + record.OffsetDelta = int64(i) + } + } + req.AddBatch(topic, partition, rb) + continue + } + if ps.parent.conf.Producer.Compression == CompressionNone { + req.AddSet(topic, partition, set.recordsToSend.MsgSet) + } else { + // When compression is enabled, the entire set for each partition is compressed + // and sent as the payload of a single fake "message" with the appropriate codec + // set and no key. When the server sees a message with a compression codec, it + // decompresses the payload and treats the result as its message set. + + if ps.parent.conf.Version.IsAtLeast(V0_10_0_0) { + // If our version is 0.10 or later, assign relative offsets + // to the inner messages. This lets the broker avoid + // recompressing the message set. + // (See https://cwiki.apache.org/confluence/display/KAFKA/KIP-31+-+Move+to+relative+offsets+in+compressed+message+sets + // for details on relative offsets.) + for i, msg := range set.recordsToSend.MsgSet.Messages { + msg.Offset = int64(i) + } + } + payload, err := encode(set.recordsToSend.MsgSet, ps.parent.conf.MetricRegistry) + if err != nil { + Logger.Println(err) // if this happens, it's basically our fault. + panic(err) + } + compMsg := &Message{ + Codec: ps.parent.conf.Producer.Compression, + CompressionLevel: ps.parent.conf.Producer.CompressionLevel, + Key: nil, + Value: payload, + Set: set.recordsToSend.MsgSet, // Provide the underlying message set for accurate metrics + } + if ps.parent.conf.Version.IsAtLeast(V0_10_0_0) { + compMsg.Version = 1 + compMsg.Timestamp = set.recordsToSend.MsgSet.Messages[0].Msg.Timestamp + } + req.AddMessage(topic, partition, compMsg) + } + } + } + + return req +} + +func (ps *produceSet) eachPartition(cb func(topic string, partition int32, pSet *partitionSet)) { + for topic, partitionSet := range ps.msgs { + for partition, set := range partitionSet { + cb(topic, partition, set) + } + } +} + +func (ps *produceSet) dropPartition(topic string, partition int32) []*ProducerMessage { + if ps.msgs[topic] == nil { + return nil + } + set := ps.msgs[topic][partition] + if set == nil { + return nil + } + ps.bufferBytes -= set.bufferBytes + ps.bufferCount -= len(set.msgs) + delete(ps.msgs[topic], partition) + return set.msgs +} + +func (ps *produceSet) wouldOverflow(msg *ProducerMessage) bool { + version := 1 + if ps.parent.conf.Version.IsAtLeast(V0_11_0_0) { + version = 2 + } + + switch { + // Would we overflow our maximum possible size-on-the-wire? 10KiB is arbitrary overhead for safety. + case ps.bufferBytes+msg.byteSize(version) >= int(MaxRequestSize-(10*1024)): + return true + // Would we overflow the size-limit of a message-batch for this partition? + case ps.msgs[msg.Topic] != nil && ps.msgs[msg.Topic][msg.Partition] != nil && + ps.msgs[msg.Topic][msg.Partition].bufferBytes+msg.byteSize(version) >= ps.parent.conf.Producer.MaxMessageBytes: + return true + // Would we overflow simply in number of messages? + case ps.parent.conf.Producer.Flush.MaxMessages > 0 && ps.bufferCount >= ps.parent.conf.Producer.Flush.MaxMessages: + return true + default: + return false + } +} + +func (ps *produceSet) readyToFlush() bool { + switch { + // If we don't have any messages, nothing else matters + case ps.empty(): + return false + // If all three config values are 0, we always flush as-fast-as-possible + case ps.parent.conf.Producer.Flush.Frequency == 0 && ps.parent.conf.Producer.Flush.Bytes == 0 && ps.parent.conf.Producer.Flush.Messages == 0: + return true + // If we've passed the message trigger-point + case ps.parent.conf.Producer.Flush.Messages > 0 && ps.bufferCount >= ps.parent.conf.Producer.Flush.Messages: + return true + // If we've passed the byte trigger-point + case ps.parent.conf.Producer.Flush.Bytes > 0 && ps.bufferBytes >= ps.parent.conf.Producer.Flush.Bytes: + return true + default: + return false + } +} + +func (ps *produceSet) empty() bool { + return ps.bufferCount == 0 +} diff --git a/vendor/github.com/Shopify/sarama/real_decoder.go b/vendor/github.com/Shopify/sarama/real_decoder.go new file mode 100644 index 0000000..085cbb3 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/real_decoder.go @@ -0,0 +1,332 @@ +package sarama + +import ( + "encoding/binary" + "math" +) + +var errInvalidArrayLength = PacketDecodingError{"invalid array length"} +var errInvalidByteSliceLength = PacketDecodingError{"invalid byteslice length"} +var errInvalidByteSliceLengthType = PacketDecodingError{"invalid byteslice length type"} +var errInvalidStringLength = PacketDecodingError{"invalid string length"} +var errInvalidSubsetSize = PacketDecodingError{"invalid subset size"} +var errVarintOverflow = PacketDecodingError{"varint overflow"} +var errInvalidBool = PacketDecodingError{"invalid bool"} + +type realDecoder struct { + raw []byte + off int + stack []pushDecoder +} + +// primitives + +func (rd *realDecoder) getInt8() (int8, error) { + if rd.remaining() < 1 { + rd.off = len(rd.raw) + return -1, ErrInsufficientData + } + tmp := int8(rd.raw[rd.off]) + rd.off++ + return tmp, nil +} + +func (rd *realDecoder) getInt16() (int16, error) { + if rd.remaining() < 2 { + rd.off = len(rd.raw) + return -1, ErrInsufficientData + } + tmp := int16(binary.BigEndian.Uint16(rd.raw[rd.off:])) + rd.off += 2 + return tmp, nil +} + +func (rd *realDecoder) getInt32() (int32, error) { + if rd.remaining() < 4 { + rd.off = len(rd.raw) + return -1, ErrInsufficientData + } + tmp := int32(binary.BigEndian.Uint32(rd.raw[rd.off:])) + rd.off += 4 + return tmp, nil +} + +func (rd *realDecoder) getInt64() (int64, error) { + if rd.remaining() < 8 { + rd.off = len(rd.raw) + return -1, ErrInsufficientData + } + tmp := int64(binary.BigEndian.Uint64(rd.raw[rd.off:])) + rd.off += 8 + return tmp, nil +} + +func (rd *realDecoder) getVarint() (int64, error) { + tmp, n := binary.Varint(rd.raw[rd.off:]) + if n == 0 { + rd.off = len(rd.raw) + return -1, ErrInsufficientData + } + if n < 0 { + rd.off -= n + return -1, errVarintOverflow + } + rd.off += n + return tmp, nil +} + +func (rd *realDecoder) getArrayLength() (int, error) { + if rd.remaining() < 4 { + rd.off = len(rd.raw) + return -1, ErrInsufficientData + } + tmp := int(int32(binary.BigEndian.Uint32(rd.raw[rd.off:]))) + rd.off += 4 + if tmp > rd.remaining() { + rd.off = len(rd.raw) + return -1, ErrInsufficientData + } else if tmp > 2*math.MaxUint16 { + return -1, errInvalidArrayLength + } + return tmp, nil +} + +func (rd *realDecoder) getBool() (bool, error) { + b, err := rd.getInt8() + if err != nil || b == 0 { + return false, err + } + if b != 1 { + return false, errInvalidBool + } + return true, nil +} + +// collections + +func (rd *realDecoder) getBytes() ([]byte, error) { + tmp, err := rd.getInt32() + if err != nil { + return nil, err + } + if tmp == -1 { + return nil, nil + } + + return rd.getRawBytes(int(tmp)) +} + +func (rd *realDecoder) getVarintBytes() ([]byte, error) { + tmp, err := rd.getVarint() + if err != nil { + return nil, err + } + if tmp == -1 { + return nil, nil + } + + return rd.getRawBytes(int(tmp)) +} + +func (rd *realDecoder) getStringLength() (int, error) { + length, err := rd.getInt16() + if err != nil { + return 0, err + } + + n := int(length) + + switch { + case n < -1: + return 0, errInvalidStringLength + case n > rd.remaining(): + rd.off = len(rd.raw) + return 0, ErrInsufficientData + } + + return n, nil +} + +func (rd *realDecoder) getString() (string, error) { + n, err := rd.getStringLength() + if err != nil || n == -1 { + return "", err + } + + tmpStr := string(rd.raw[rd.off : rd.off+n]) + rd.off += n + return tmpStr, nil +} + +func (rd *realDecoder) getNullableString() (*string, error) { + n, err := rd.getStringLength() + if err != nil || n == -1 { + return nil, err + } + + tmpStr := string(rd.raw[rd.off : rd.off+n]) + rd.off += n + return &tmpStr, err +} + +func (rd *realDecoder) getInt32Array() ([]int32, error) { + if rd.remaining() < 4 { + rd.off = len(rd.raw) + return nil, ErrInsufficientData + } + n := int(binary.BigEndian.Uint32(rd.raw[rd.off:])) + rd.off += 4 + + if rd.remaining() < 4*n { + rd.off = len(rd.raw) + return nil, ErrInsufficientData + } + + if n == 0 { + return nil, nil + } + + if n < 0 { + return nil, errInvalidArrayLength + } + + ret := make([]int32, n) + for i := range ret { + ret[i] = int32(binary.BigEndian.Uint32(rd.raw[rd.off:])) + rd.off += 4 + } + return ret, nil +} + +func (rd *realDecoder) getInt64Array() ([]int64, error) { + if rd.remaining() < 4 { + rd.off = len(rd.raw) + return nil, ErrInsufficientData + } + n := int(binary.BigEndian.Uint32(rd.raw[rd.off:])) + rd.off += 4 + + if rd.remaining() < 8*n { + rd.off = len(rd.raw) + return nil, ErrInsufficientData + } + + if n == 0 { + return nil, nil + } + + if n < 0 { + return nil, errInvalidArrayLength + } + + ret := make([]int64, n) + for i := range ret { + ret[i] = int64(binary.BigEndian.Uint64(rd.raw[rd.off:])) + rd.off += 8 + } + return ret, nil +} + +func (rd *realDecoder) getStringArray() ([]string, error) { + if rd.remaining() < 4 { + rd.off = len(rd.raw) + return nil, ErrInsufficientData + } + n := int(binary.BigEndian.Uint32(rd.raw[rd.off:])) + rd.off += 4 + + if n == 0 { + return nil, nil + } + + if n < 0 { + return nil, errInvalidArrayLength + } + + ret := make([]string, n) + for i := range ret { + str, err := rd.getString() + if err != nil { + return nil, err + } + + ret[i] = str + } + return ret, nil +} + +// subsets + +func (rd *realDecoder) remaining() int { + return len(rd.raw) - rd.off +} + +func (rd *realDecoder) getSubset(length int) (packetDecoder, error) { + buf, err := rd.getRawBytes(length) + if err != nil { + return nil, err + } + return &realDecoder{raw: buf}, nil +} + +func (rd *realDecoder) getRawBytes(length int) ([]byte, error) { + if length < 0 { + return nil, errInvalidByteSliceLength + } else if length > rd.remaining() { + rd.off = len(rd.raw) + return nil, ErrInsufficientData + } + + start := rd.off + rd.off += length + return rd.raw[start:rd.off], nil +} + +func (rd *realDecoder) peek(offset, length int) (packetDecoder, error) { + if rd.remaining() < offset+length { + return nil, ErrInsufficientData + } + off := rd.off + offset + return &realDecoder{raw: rd.raw[off : off+length]}, nil +} + +func (rd *realDecoder) peekInt8(offset int) (int8, error) { + const byteLen = 1 + if rd.remaining() < offset+byteLen { + return -1, ErrInsufficientData + } + return int8(rd.raw[rd.off+offset]), nil +} + +// stacks + +func (rd *realDecoder) push(in pushDecoder) error { + in.saveOffset(rd.off) + + var reserve int + if dpd, ok := in.(dynamicPushDecoder); ok { + if err := dpd.decode(rd); err != nil { + return err + } + } else { + reserve = in.reserveLength() + if rd.remaining() < reserve { + rd.off = len(rd.raw) + return ErrInsufficientData + } + } + + rd.stack = append(rd.stack, in) + + rd.off += reserve + + return nil +} + +func (rd *realDecoder) pop() error { + // this is go's ugly pop pattern (the inverse of append) + in := rd.stack[len(rd.stack)-1] + rd.stack = rd.stack[:len(rd.stack)-1] + + return in.check(rd.off, rd.raw) +} diff --git a/vendor/github.com/Shopify/sarama/real_encoder.go b/vendor/github.com/Shopify/sarama/real_encoder.go new file mode 100644 index 0000000..3c75387 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/real_encoder.go @@ -0,0 +1,156 @@ +package sarama + +import ( + "encoding/binary" + + "github.com/rcrowley/go-metrics" +) + +type realEncoder struct { + raw []byte + off int + stack []pushEncoder + registry metrics.Registry +} + +// primitives + +func (re *realEncoder) putInt8(in int8) { + re.raw[re.off] = byte(in) + re.off++ +} + +func (re *realEncoder) putInt16(in int16) { + binary.BigEndian.PutUint16(re.raw[re.off:], uint16(in)) + re.off += 2 +} + +func (re *realEncoder) putInt32(in int32) { + binary.BigEndian.PutUint32(re.raw[re.off:], uint32(in)) + re.off += 4 +} + +func (re *realEncoder) putInt64(in int64) { + binary.BigEndian.PutUint64(re.raw[re.off:], uint64(in)) + re.off += 8 +} + +func (re *realEncoder) putVarint(in int64) { + re.off += binary.PutVarint(re.raw[re.off:], in) +} + +func (re *realEncoder) putArrayLength(in int) error { + re.putInt32(int32(in)) + return nil +} + +func (re *realEncoder) putBool(in bool) { + if in { + re.putInt8(1) + return + } + re.putInt8(0) +} + +// collection + +func (re *realEncoder) putRawBytes(in []byte) error { + copy(re.raw[re.off:], in) + re.off += len(in) + return nil +} + +func (re *realEncoder) putBytes(in []byte) error { + if in == nil { + re.putInt32(-1) + return nil + } + re.putInt32(int32(len(in))) + return re.putRawBytes(in) +} + +func (re *realEncoder) putVarintBytes(in []byte) error { + if in == nil { + re.putVarint(-1) + return nil + } + re.putVarint(int64(len(in))) + return re.putRawBytes(in) +} + +func (re *realEncoder) putString(in string) error { + re.putInt16(int16(len(in))) + copy(re.raw[re.off:], in) + re.off += len(in) + return nil +} + +func (re *realEncoder) putNullableString(in *string) error { + if in == nil { + re.putInt16(-1) + return nil + } + return re.putString(*in) +} + +func (re *realEncoder) putStringArray(in []string) error { + err := re.putArrayLength(len(in)) + if err != nil { + return err + } + + for _, val := range in { + if err := re.putString(val); err != nil { + return err + } + } + + return nil +} + +func (re *realEncoder) putInt32Array(in []int32) error { + err := re.putArrayLength(len(in)) + if err != nil { + return err + } + for _, val := range in { + re.putInt32(val) + } + return nil +} + +func (re *realEncoder) putInt64Array(in []int64) error { + err := re.putArrayLength(len(in)) + if err != nil { + return err + } + for _, val := range in { + re.putInt64(val) + } + return nil +} + +func (re *realEncoder) offset() int { + return re.off +} + +// stacks + +func (re *realEncoder) push(in pushEncoder) { + in.saveOffset(re.off) + re.off += in.reserveLength() + re.stack = append(re.stack, in) +} + +func (re *realEncoder) pop() error { + // this is go's ugly pop pattern (the inverse of append) + in := re.stack[len(re.stack)-1] + re.stack = re.stack[:len(re.stack)-1] + + return in.run(re.off, re.raw) +} + +// we do record metrics during the real encoder pass +func (re *realEncoder) metricRegistry() metrics.Registry { + return re.registry +} diff --git a/vendor/github.com/Shopify/sarama/record.go b/vendor/github.com/Shopify/sarama/record.go new file mode 100644 index 0000000..cdccfe3 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/record.go @@ -0,0 +1,116 @@ +package sarama + +import ( + "encoding/binary" + "time" +) + +const ( + isTransactionalMask = 0x10 + controlMask = 0x20 + maximumRecordOverhead = 5*binary.MaxVarintLen32 + binary.MaxVarintLen64 + 1 +) + +//RecordHeader stores key and value for a record header +type RecordHeader struct { + Key []byte + Value []byte +} + +func (h *RecordHeader) encode(pe packetEncoder) error { + if err := pe.putVarintBytes(h.Key); err != nil { + return err + } + return pe.putVarintBytes(h.Value) +} + +func (h *RecordHeader) decode(pd packetDecoder) (err error) { + if h.Key, err = pd.getVarintBytes(); err != nil { + return err + } + + if h.Value, err = pd.getVarintBytes(); err != nil { + return err + } + return nil +} + +//Record is kafka record type +type Record struct { + Headers []*RecordHeader + + Attributes int8 + TimestampDelta time.Duration + OffsetDelta int64 + Key []byte + Value []byte + length varintLengthField +} + +func (r *Record) encode(pe packetEncoder) error { + pe.push(&r.length) + pe.putInt8(r.Attributes) + pe.putVarint(int64(r.TimestampDelta / time.Millisecond)) + pe.putVarint(r.OffsetDelta) + if err := pe.putVarintBytes(r.Key); err != nil { + return err + } + if err := pe.putVarintBytes(r.Value); err != nil { + return err + } + pe.putVarint(int64(len(r.Headers))) + + for _, h := range r.Headers { + if err := h.encode(pe); err != nil { + return err + } + } + + return pe.pop() +} + +func (r *Record) decode(pd packetDecoder) (err error) { + if err = pd.push(&r.length); err != nil { + return err + } + + if r.Attributes, err = pd.getInt8(); err != nil { + return err + } + + timestamp, err := pd.getVarint() + if err != nil { + return err + } + r.TimestampDelta = time.Duration(timestamp) * time.Millisecond + + if r.OffsetDelta, err = pd.getVarint(); err != nil { + return err + } + + if r.Key, err = pd.getVarintBytes(); err != nil { + return err + } + + if r.Value, err = pd.getVarintBytes(); err != nil { + return err + } + + numHeaders, err := pd.getVarint() + if err != nil { + return err + } + + if numHeaders >= 0 { + r.Headers = make([]*RecordHeader, numHeaders) + } + for i := int64(0); i < numHeaders; i++ { + hdr := new(RecordHeader) + if err := hdr.decode(pd); err != nil { + return err + } + r.Headers[i] = hdr + } + + return pd.pop() +} diff --git a/vendor/github.com/Shopify/sarama/record_batch.go b/vendor/github.com/Shopify/sarama/record_batch.go new file mode 100644 index 0000000..c653763 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/record_batch.go @@ -0,0 +1,225 @@ +package sarama + +import ( + "fmt" + "time" +) + +const recordBatchOverhead = 49 + +type recordsArray []*Record + +func (e recordsArray) encode(pe packetEncoder) error { + for _, r := range e { + if err := r.encode(pe); err != nil { + return err + } + } + return nil +} + +func (e recordsArray) decode(pd packetDecoder) error { + for i := range e { + rec := &Record{} + if err := rec.decode(pd); err != nil { + return err + } + e[i] = rec + } + return nil +} + +type RecordBatch struct { + FirstOffset int64 + PartitionLeaderEpoch int32 + Version int8 + Codec CompressionCodec + CompressionLevel int + Control bool + LogAppendTime bool + LastOffsetDelta int32 + FirstTimestamp time.Time + MaxTimestamp time.Time + ProducerID int64 + ProducerEpoch int16 + FirstSequence int32 + Records []*Record + PartialTrailingRecord bool + IsTransactional bool + + compressedRecords []byte + recordsLen int // uncompressed records size +} + +func (b *RecordBatch) LastOffset() int64 { + return b.FirstOffset + int64(b.LastOffsetDelta) +} + +func (b *RecordBatch) encode(pe packetEncoder) error { + if b.Version != 2 { + return PacketEncodingError{fmt.Sprintf("unsupported compression codec (%d)", b.Codec)} + } + pe.putInt64(b.FirstOffset) + pe.push(&lengthField{}) + pe.putInt32(b.PartitionLeaderEpoch) + pe.putInt8(b.Version) + pe.push(newCRC32Field(crcCastagnoli)) + pe.putInt16(b.computeAttributes()) + pe.putInt32(b.LastOffsetDelta) + + if err := (Timestamp{&b.FirstTimestamp}).encode(pe); err != nil { + return err + } + + if err := (Timestamp{&b.MaxTimestamp}).encode(pe); err != nil { + return err + } + + pe.putInt64(b.ProducerID) + pe.putInt16(b.ProducerEpoch) + pe.putInt32(b.FirstSequence) + + if err := pe.putArrayLength(len(b.Records)); err != nil { + return err + } + + if b.compressedRecords == nil { + if err := b.encodeRecords(pe); err != nil { + return err + } + } + if err := pe.putRawBytes(b.compressedRecords); err != nil { + return err + } + + if err := pe.pop(); err != nil { + return err + } + return pe.pop() +} + +func (b *RecordBatch) decode(pd packetDecoder) (err error) { + if b.FirstOffset, err = pd.getInt64(); err != nil { + return err + } + + batchLen, err := pd.getInt32() + if err != nil { + return err + } + + if b.PartitionLeaderEpoch, err = pd.getInt32(); err != nil { + return err + } + + if b.Version, err = pd.getInt8(); err != nil { + return err + } + + crc32Decoder := acquireCrc32Field(crcCastagnoli) + defer releaseCrc32Field(crc32Decoder) + + if err = pd.push(crc32Decoder); err != nil { + return err + } + + attributes, err := pd.getInt16() + if err != nil { + return err + } + b.Codec = CompressionCodec(int8(attributes) & compressionCodecMask) + b.Control = attributes&controlMask == controlMask + b.LogAppendTime = attributes×tampTypeMask == timestampTypeMask + b.IsTransactional = attributes&isTransactionalMask == isTransactionalMask + + if b.LastOffsetDelta, err = pd.getInt32(); err != nil { + return err + } + + if err = (Timestamp{&b.FirstTimestamp}).decode(pd); err != nil { + return err + } + + if err = (Timestamp{&b.MaxTimestamp}).decode(pd); err != nil { + return err + } + + if b.ProducerID, err = pd.getInt64(); err != nil { + return err + } + + if b.ProducerEpoch, err = pd.getInt16(); err != nil { + return err + } + + if b.FirstSequence, err = pd.getInt32(); err != nil { + return err + } + + numRecs, err := pd.getArrayLength() + if err != nil { + return err + } + if numRecs >= 0 { + b.Records = make([]*Record, numRecs) + } + + bufSize := int(batchLen) - recordBatchOverhead + recBuffer, err := pd.getRawBytes(bufSize) + if err != nil { + if err == ErrInsufficientData { + b.PartialTrailingRecord = true + b.Records = nil + return nil + } + return err + } + + if err = pd.pop(); err != nil { + return err + } + + recBuffer, err = decompress(b.Codec, recBuffer) + if err != nil { + return err + } + + b.recordsLen = len(recBuffer) + err = decode(recBuffer, recordsArray(b.Records)) + if err == ErrInsufficientData { + b.PartialTrailingRecord = true + b.Records = nil + return nil + } + return err +} + +func (b *RecordBatch) encodeRecords(pe packetEncoder) error { + var raw []byte + var err error + if raw, err = encode(recordsArray(b.Records), pe.metricRegistry()); err != nil { + return err + } + b.recordsLen = len(raw) + + b.compressedRecords, err = compress(b.Codec, b.CompressionLevel, raw) + return err +} + +func (b *RecordBatch) computeAttributes() int16 { + attr := int16(b.Codec) & int16(compressionCodecMask) + if b.Control { + attr |= controlMask + } + if b.LogAppendTime { + attr |= timestampTypeMask + } + if b.IsTransactional { + attr |= isTransactionalMask + } + return attr +} + +func (b *RecordBatch) addRecord(r *Record) { + b.Records = append(b.Records, r) +} diff --git a/vendor/github.com/Shopify/sarama/records.go b/vendor/github.com/Shopify/sarama/records.go new file mode 100644 index 0000000..98160c7 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/records.go @@ -0,0 +1,204 @@ +package sarama + +import "fmt" + +const ( + unknownRecords = iota + legacyRecords + defaultRecords + + magicOffset = 16 + magicLength = 1 +) + +// Records implements a union type containing either a RecordBatch or a legacy MessageSet. +type Records struct { + recordsType int + MsgSet *MessageSet + RecordBatch *RecordBatch +} + +func newLegacyRecords(msgSet *MessageSet) Records { + return Records{recordsType: legacyRecords, MsgSet: msgSet} +} + +func newDefaultRecords(batch *RecordBatch) Records { + return Records{recordsType: defaultRecords, RecordBatch: batch} +} + +// setTypeFromFields sets type of Records depending on which of MsgSet or RecordBatch is not nil. +// The first return value indicates whether both fields are nil (and the type is not set). +// If both fields are not nil, it returns an error. +func (r *Records) setTypeFromFields() (bool, error) { + if r.MsgSet == nil && r.RecordBatch == nil { + return true, nil + } + if r.MsgSet != nil && r.RecordBatch != nil { + return false, fmt.Errorf("both MsgSet and RecordBatch are set, but record type is unknown") + } + r.recordsType = defaultRecords + if r.MsgSet != nil { + r.recordsType = legacyRecords + } + return false, nil +} + +func (r *Records) encode(pe packetEncoder) error { + if r.recordsType == unknownRecords { + if empty, err := r.setTypeFromFields(); err != nil || empty { + return err + } + } + + switch r.recordsType { + case legacyRecords: + if r.MsgSet == nil { + return nil + } + return r.MsgSet.encode(pe) + case defaultRecords: + if r.RecordBatch == nil { + return nil + } + return r.RecordBatch.encode(pe) + } + + return fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func (r *Records) setTypeFromMagic(pd packetDecoder) error { + magic, err := magicValue(pd) + if err != nil { + return err + } + + r.recordsType = defaultRecords + if magic < 2 { + r.recordsType = legacyRecords + } + + return nil +} + +func (r *Records) decode(pd packetDecoder) error { + if r.recordsType == unknownRecords { + if err := r.setTypeFromMagic(pd); err != nil { + return err + } + } + + switch r.recordsType { + case legacyRecords: + r.MsgSet = &MessageSet{} + return r.MsgSet.decode(pd) + case defaultRecords: + r.RecordBatch = &RecordBatch{} + return r.RecordBatch.decode(pd) + } + return fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func (r *Records) numRecords() (int, error) { + if r.recordsType == unknownRecords { + if empty, err := r.setTypeFromFields(); err != nil || empty { + return 0, err + } + } + + switch r.recordsType { + case legacyRecords: + if r.MsgSet == nil { + return 0, nil + } + return len(r.MsgSet.Messages), nil + case defaultRecords: + if r.RecordBatch == nil { + return 0, nil + } + return len(r.RecordBatch.Records), nil + } + return 0, fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func (r *Records) isPartial() (bool, error) { + if r.recordsType == unknownRecords { + if empty, err := r.setTypeFromFields(); err != nil || empty { + return false, err + } + } + + switch r.recordsType { + case unknownRecords: + return false, nil + case legacyRecords: + if r.MsgSet == nil { + return false, nil + } + return r.MsgSet.PartialTrailingMessage, nil + case defaultRecords: + if r.RecordBatch == nil { + return false, nil + } + return r.RecordBatch.PartialTrailingRecord, nil + } + return false, fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func (r *Records) isControl() (bool, error) { + if r.recordsType == unknownRecords { + if empty, err := r.setTypeFromFields(); err != nil || empty { + return false, err + } + } + + switch r.recordsType { + case legacyRecords: + return false, nil + case defaultRecords: + if r.RecordBatch == nil { + return false, nil + } + return r.RecordBatch.Control, nil + } + return false, fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func (r *Records) isOverflow() (bool, error) { + if r.recordsType == unknownRecords { + if empty, err := r.setTypeFromFields(); err != nil || empty { + return false, err + } + } + + switch r.recordsType { + case unknownRecords: + return false, nil + case legacyRecords: + if r.MsgSet == nil { + return false, nil + } + return r.MsgSet.OverflowMessage, nil + case defaultRecords: + return false, nil + } + return false, fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func magicValue(pd packetDecoder) (int8, error) { + return pd.peekInt8(magicOffset) +} + +func (r *Records) getControlRecord() (ControlRecord, error) { + if r.RecordBatch == nil || len(r.RecordBatch.Records) <= 0 { + return ControlRecord{}, fmt.Errorf("cannot get control record, record batch is empty") + } + + firstRecord := r.RecordBatch.Records[0] + controlRecord := ControlRecord{} + err := controlRecord.decode(&realDecoder{raw: firstRecord.Key}, &realDecoder{raw: firstRecord.Value}) + if err != nil { + return ControlRecord{}, err + } + + return controlRecord, nil +} diff --git a/vendor/github.com/Shopify/sarama/request.go b/vendor/github.com/Shopify/sarama/request.go new file mode 100644 index 0000000..6e4ad87 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/request.go @@ -0,0 +1,171 @@ +package sarama + +import ( + "encoding/binary" + "fmt" + "io" +) + +type protocolBody interface { + encoder + versionedDecoder + key() int16 + version() int16 + requiredVersion() KafkaVersion +} + +type request struct { + correlationID int32 + clientID string + body protocolBody +} + +func (r *request) encode(pe packetEncoder) error { + pe.push(&lengthField{}) + pe.putInt16(r.body.key()) + pe.putInt16(r.body.version()) + pe.putInt32(r.correlationID) + + err := pe.putString(r.clientID) + if err != nil { + return err + } + + err = r.body.encode(pe) + if err != nil { + return err + } + + return pe.pop() +} + +func (r *request) decode(pd packetDecoder) (err error) { + key, err := pd.getInt16() + if err != nil { + return err + } + + version, err := pd.getInt16() + if err != nil { + return err + } + + r.correlationID, err = pd.getInt32() + if err != nil { + return err + } + + r.clientID, err = pd.getString() + if err != nil { + return err + } + + r.body = allocateBody(key, version) + if r.body == nil { + return PacketDecodingError{fmt.Sprintf("unknown request key (%d)", key)} + } + + return r.body.decode(pd, version) +} + +func decodeRequest(r io.Reader) (*request, int, error) { + var ( + bytesRead int + lengthBytes = make([]byte, 4) + ) + + if _, err := io.ReadFull(r, lengthBytes); err != nil { + return nil, bytesRead, err + } + + bytesRead += len(lengthBytes) + length := int32(binary.BigEndian.Uint32(lengthBytes)) + + if length <= 4 || length > MaxRequestSize { + return nil, bytesRead, PacketDecodingError{fmt.Sprintf("message of length %d too large or too small", length)} + } + + encodedReq := make([]byte, length) + if _, err := io.ReadFull(r, encodedReq); err != nil { + return nil, bytesRead, err + } + + bytesRead += len(encodedReq) + + req := &request{} + if err := decode(encodedReq, req); err != nil { + return nil, bytesRead, err + } + + return req, bytesRead, nil +} + +func allocateBody(key, version int16) protocolBody { + switch key { + case 0: + return &ProduceRequest{} + case 1: + return &FetchRequest{Version: version} + case 2: + return &OffsetRequest{Version: version} + case 3: + return &MetadataRequest{} + case 8: + return &OffsetCommitRequest{Version: version} + case 9: + return &OffsetFetchRequest{} + case 10: + return &FindCoordinatorRequest{} + case 11: + return &JoinGroupRequest{} + case 12: + return &HeartbeatRequest{} + case 13: + return &LeaveGroupRequest{} + case 14: + return &SyncGroupRequest{} + case 15: + return &DescribeGroupsRequest{} + case 16: + return &ListGroupsRequest{} + case 17: + return &SaslHandshakeRequest{} + case 18: + return &ApiVersionsRequest{} + case 19: + return &CreateTopicsRequest{} + case 20: + return &DeleteTopicsRequest{} + case 21: + return &DeleteRecordsRequest{} + case 22: + return &InitProducerIDRequest{} + case 24: + return &AddPartitionsToTxnRequest{} + case 25: + return &AddOffsetsToTxnRequest{} + case 26: + return &EndTxnRequest{} + case 28: + return &TxnOffsetCommitRequest{} + case 29: + return &DescribeAclsRequest{} + case 30: + return &CreateAclsRequest{} + case 31: + return &DeleteAclsRequest{} + case 32: + return &DescribeConfigsRequest{} + case 33: + return &AlterConfigsRequest{} + case 35: + return &DescribeLogDirsRequest{} + case 36: + return &SaslAuthenticateRequest{} + case 37: + return &CreatePartitionsRequest{} + case 42: + return &DeleteGroupsRequest{} + } + return nil +} diff --git a/vendor/github.com/Shopify/sarama/response_header.go b/vendor/github.com/Shopify/sarama/response_header.go new file mode 100644 index 0000000..7a75918 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/response_header.go @@ -0,0 +1,24 @@ +package sarama + +import "fmt" + +const responseLengthSize = 4 +const correlationIDSize = 4 + +type responseHeader struct { + length int32 + correlationID int32 +} + +func (r *responseHeader) decode(pd packetDecoder) (err error) { + r.length, err = pd.getInt32() + if err != nil { + return err + } + if r.length <= 4 || r.length > MaxResponseSize { + return PacketDecodingError{fmt.Sprintf("message of length %d too large or too small", r.length)} + } + + r.correlationID, err = pd.getInt32() + return err +} diff --git a/vendor/github.com/Shopify/sarama/sarama.go b/vendor/github.com/Shopify/sarama/sarama.go new file mode 100644 index 0000000..48f362d --- /dev/null +++ b/vendor/github.com/Shopify/sarama/sarama.go @@ -0,0 +1,110 @@ +/* +Package sarama is a pure Go client library for dealing with Apache Kafka (versions 0.8 and later). It includes a high-level +API for easily producing and consuming messages, and a low-level API for controlling bytes on the wire when the high-level +API is insufficient. Usage examples for the high-level APIs are provided inline with their full documentation. + +To produce messages, use either the AsyncProducer or the SyncProducer. The AsyncProducer accepts messages on a channel +and produces them asynchronously in the background as efficiently as possible; it is preferred in most cases. +The SyncProducer provides a method which will block until Kafka acknowledges the message as produced. This can be +useful but comes with two caveats: it will generally be less efficient, and the actual durability guarantees +depend on the configured value of `Producer.RequiredAcks`. There are configurations where a message acknowledged by the +SyncProducer can still sometimes be lost. + +To consume messages, use Consumer or Consumer-Group API. + +For lower-level needs, the Broker and Request/Response objects permit precise control over each connection +and message sent on the wire; the Client provides higher-level metadata management that is shared between +the producers and the consumer. The Request/Response objects and properties are mostly undocumented, as they line up +exactly with the protocol fields documented by Kafka at +https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol + +Metrics are exposed through https://github.com/rcrowley/go-metrics library in a local registry. + +Broker related metrics: + + +----------------------------------------------+------------+---------------------------------------------------------------+ + | Name | Type | Description | + +----------------------------------------------+------------+---------------------------------------------------------------+ + | incoming-byte-rate | meter | Bytes/second read off all brokers | + | incoming-byte-rate-for-broker- | meter | Bytes/second read off a given broker | + | outgoing-byte-rate | meter | Bytes/second written off all brokers | + | outgoing-byte-rate-for-broker- | meter | Bytes/second written off a given broker | + | request-rate | meter | Requests/second sent to all brokers | + | request-rate-for-broker- | meter | Requests/second sent to a given broker | + | request-size | histogram | Distribution of the request size in bytes for all brokers | + | request-size-for-broker- | histogram | Distribution of the request size in bytes for a given broker | + | request-latency-in-ms | histogram | Distribution of the request latency in ms for all brokers | + | request-latency-in-ms-for-broker- | histogram | Distribution of the request latency in ms for a given broker | + | response-rate | meter | Responses/second received from all brokers | + | response-rate-for-broker- | meter | Responses/second received from a given broker | + | response-size | histogram | Distribution of the response size in bytes for all brokers | + | response-size-for-broker- | histogram | Distribution of the response size in bytes for a given broker | + | requests-in-flight | counter | The current number of in-flight requests awaiting a response | + | | | for all brokers | + | requests-in-flight-for-broker- | counter | The current number of in-flight requests awaiting a response | + | | | for a given broker | + +----------------------------------------------+------------+---------------------------------------------------------------+ + +Note that we do not gather specific metrics for seed brokers but they are part of the "all brokers" metrics. + +Producer related metrics: + + +-------------------------------------------+------------+--------------------------------------------------------------------------------------+ + | Name | Type | Description | + +-------------------------------------------+------------+--------------------------------------------------------------------------------------+ + | batch-size | histogram | Distribution of the number of bytes sent per partition per request for all topics | + | batch-size-for-topic- | histogram | Distribution of the number of bytes sent per partition per request for a given topic | + | record-send-rate | meter | Records/second sent to all topics | + | record-send-rate-for-topic- | meter | Records/second sent to a given topic | + | records-per-request | histogram | Distribution of the number of records sent per request for all topics | + | records-per-request-for-topic- | histogram | Distribution of the number of records sent per request for a given topic | + | compression-ratio | histogram | Distribution of the compression ratio times 100 of record batches for all topics | + | compression-ratio-for-topic- | histogram | Distribution of the compression ratio times 100 of record batches for a given topic | + +-------------------------------------------+------------+--------------------------------------------------------------------------------------+ + +Consumer related metrics: + + +-------------------------------------------+------------+--------------------------------------------------------------------------------------+ + | Name | Type | Description | + +-------------------------------------------+------------+--------------------------------------------------------------------------------------+ + | consumer-batch-size | histogram | Distribution of the number of messages in a batch | + +-------------------------------------------+------------+--------------------------------------------------------------------------------------+ + +*/ +package sarama + +import ( + "io/ioutil" + "log" +) + +var ( + // Logger is the instance of a StdLogger interface that Sarama writes connection + // management events to. By default it is set to discard all log messages via ioutil.Discard, + // but you can set it to redirect wherever you want. + Logger StdLogger = log.New(ioutil.Discard, "[Sarama] ", log.LstdFlags) + + // PanicHandler is called for recovering from panics spawned internally to the library (and thus + // not recoverable by the caller's goroutine). Defaults to nil, which means panics are not recovered. + PanicHandler func(interface{}) + + // MaxRequestSize is the maximum size (in bytes) of any request that Sarama will attempt to send. Trying + // to send a request larger than this will result in an PacketEncodingError. The default of 100 MiB is aligned + // with Kafka's default `socket.request.max.bytes`, which is the largest request the broker will attempt + // to process. + MaxRequestSize int32 = 100 * 1024 * 1024 + + // MaxResponseSize is the maximum size (in bytes) of any response that Sarama will attempt to parse. If + // a broker returns a response message larger than this value, Sarama will return a PacketDecodingError to + // protect the client from running out of memory. Please note that brokers do not have any natural limit on + // the size of responses they send. In particular, they can send arbitrarily large fetch responses to consumers + // (see https://issues.apache.org/jira/browse/KAFKA-2063). + MaxResponseSize int32 = 100 * 1024 * 1024 +) + +// StdLogger is used to log error messages. +type StdLogger interface { + Print(v ...interface{}) + Printf(format string, v ...interface{}) + Println(v ...interface{}) +} diff --git a/vendor/github.com/Shopify/sarama/sasl_authenticate_request.go b/vendor/github.com/Shopify/sarama/sasl_authenticate_request.go new file mode 100644 index 0000000..54c8b09 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/sasl_authenticate_request.go @@ -0,0 +1,29 @@ +package sarama + +type SaslAuthenticateRequest struct { + SaslAuthBytes []byte +} + +// APIKeySASLAuth is the API key for the SaslAuthenticate Kafka API +const APIKeySASLAuth = 36 + +func (r *SaslAuthenticateRequest) encode(pe packetEncoder) error { + return pe.putBytes(r.SaslAuthBytes) +} + +func (r *SaslAuthenticateRequest) decode(pd packetDecoder, version int16) (err error) { + r.SaslAuthBytes, err = pd.getBytes() + return err +} + +func (r *SaslAuthenticateRequest) key() int16 { + return APIKeySASLAuth +} + +func (r *SaslAuthenticateRequest) version() int16 { + return 0 +} + +func (r *SaslAuthenticateRequest) requiredVersion() KafkaVersion { + return V1_0_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/sasl_authenticate_response.go b/vendor/github.com/Shopify/sarama/sasl_authenticate_response.go new file mode 100644 index 0000000..0038c3f --- /dev/null +++ b/vendor/github.com/Shopify/sarama/sasl_authenticate_response.go @@ -0,0 +1,44 @@ +package sarama + +type SaslAuthenticateResponse struct { + Err KError + ErrorMessage *string + SaslAuthBytes []byte +} + +func (r *SaslAuthenticateResponse) encode(pe packetEncoder) error { + pe.putInt16(int16(r.Err)) + if err := pe.putNullableString(r.ErrorMessage); err != nil { + return err + } + return pe.putBytes(r.SaslAuthBytes) +} + +func (r *SaslAuthenticateResponse) decode(pd packetDecoder, version int16) error { + kerr, err := pd.getInt16() + if err != nil { + return err + } + + r.Err = KError(kerr) + + if r.ErrorMessage, err = pd.getNullableString(); err != nil { + return err + } + + r.SaslAuthBytes, err = pd.getBytes() + + return err +} + +func (r *SaslAuthenticateResponse) key() int16 { + return APIKeySASLAuth +} + +func (r *SaslAuthenticateResponse) version() int16 { + return 0 +} + +func (r *SaslAuthenticateResponse) requiredVersion() KafkaVersion { + return V1_0_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/sasl_handshake_request.go b/vendor/github.com/Shopify/sarama/sasl_handshake_request.go new file mode 100644 index 0000000..fe5ba05 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/sasl_handshake_request.go @@ -0,0 +1,34 @@ +package sarama + +type SaslHandshakeRequest struct { + Mechanism string + Version int16 +} + +func (r *SaslHandshakeRequest) encode(pe packetEncoder) error { + if err := pe.putString(r.Mechanism); err != nil { + return err + } + + return nil +} + +func (r *SaslHandshakeRequest) decode(pd packetDecoder, version int16) (err error) { + if r.Mechanism, err = pd.getString(); err != nil { + return err + } + + return nil +} + +func (r *SaslHandshakeRequest) key() int16 { + return 17 +} + +func (r *SaslHandshakeRequest) version() int16 { + return r.Version +} + +func (r *SaslHandshakeRequest) requiredVersion() KafkaVersion { + return V0_10_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/sasl_handshake_response.go b/vendor/github.com/Shopify/sarama/sasl_handshake_response.go new file mode 100644 index 0000000..ef290d4 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/sasl_handshake_response.go @@ -0,0 +1,38 @@ +package sarama + +type SaslHandshakeResponse struct { + Err KError + EnabledMechanisms []string +} + +func (r *SaslHandshakeResponse) encode(pe packetEncoder) error { + pe.putInt16(int16(r.Err)) + return pe.putStringArray(r.EnabledMechanisms) +} + +func (r *SaslHandshakeResponse) decode(pd packetDecoder, version int16) error { + kerr, err := pd.getInt16() + if err != nil { + return err + } + + r.Err = KError(kerr) + + if r.EnabledMechanisms, err = pd.getStringArray(); err != nil { + return err + } + + return nil +} + +func (r *SaslHandshakeResponse) key() int16 { + return 17 +} + +func (r *SaslHandshakeResponse) version() int16 { + return 0 +} + +func (r *SaslHandshakeResponse) requiredVersion() KafkaVersion { + return V0_10_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/sticky_assignor_user_data.go b/vendor/github.com/Shopify/sarama/sticky_assignor_user_data.go new file mode 100644 index 0000000..bb0c82c --- /dev/null +++ b/vendor/github.com/Shopify/sarama/sticky_assignor_user_data.go @@ -0,0 +1,124 @@ +package sarama + +type topicPartitionAssignment struct { + Topic string + Partition int32 +} + +type StickyAssignorUserData interface { + partitions() []topicPartitionAssignment + hasGeneration() bool + generation() int +} + +//StickyAssignorUserDataV0 holds topic partition information for an assignment +type StickyAssignorUserDataV0 struct { + Topics map[string][]int32 + + topicPartitions []topicPartitionAssignment +} + +func (m *StickyAssignorUserDataV0) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(m.Topics)); err != nil { + return err + } + + for topic, partitions := range m.Topics { + if err := pe.putString(topic); err != nil { + return err + } + if err := pe.putInt32Array(partitions); err != nil { + return err + } + } + return nil +} + +func (m *StickyAssignorUserDataV0) decode(pd packetDecoder) (err error) { + var topicLen int + if topicLen, err = pd.getArrayLength(); err != nil { + return + } + + m.Topics = make(map[string][]int32, topicLen) + for i := 0; i < topicLen; i++ { + var topic string + if topic, err = pd.getString(); err != nil { + return + } + if m.Topics[topic], err = pd.getInt32Array(); err != nil { + return + } + } + m.topicPartitions = populateTopicPartitions(m.Topics) + return nil +} + +func (m *StickyAssignorUserDataV0) partitions() []topicPartitionAssignment { return m.topicPartitions } +func (m *StickyAssignorUserDataV0) hasGeneration() bool { return false } +func (m *StickyAssignorUserDataV0) generation() int { return defaultGeneration } + +//StickyAssignorUserDataV1 holds topic partition information for an assignment +type StickyAssignorUserDataV1 struct { + Topics map[string][]int32 + Generation int32 + + topicPartitions []topicPartitionAssignment +} + +func (m *StickyAssignorUserDataV1) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(m.Topics)); err != nil { + return err + } + + for topic, partitions := range m.Topics { + if err := pe.putString(topic); err != nil { + return err + } + if err := pe.putInt32Array(partitions); err != nil { + return err + } + } + + pe.putInt32(m.Generation) + return nil +} + +func (m *StickyAssignorUserDataV1) decode(pd packetDecoder) (err error) { + var topicLen int + if topicLen, err = pd.getArrayLength(); err != nil { + return + } + + m.Topics = make(map[string][]int32, topicLen) + for i := 0; i < topicLen; i++ { + var topic string + if topic, err = pd.getString(); err != nil { + return + } + if m.Topics[topic], err = pd.getInt32Array(); err != nil { + return + } + } + + m.Generation, err = pd.getInt32() + if err != nil { + return err + } + m.topicPartitions = populateTopicPartitions(m.Topics) + return nil +} + +func (m *StickyAssignorUserDataV1) partitions() []topicPartitionAssignment { return m.topicPartitions } +func (m *StickyAssignorUserDataV1) hasGeneration() bool { return true } +func (m *StickyAssignorUserDataV1) generation() int { return int(m.Generation) } + +func populateTopicPartitions(topics map[string][]int32) []topicPartitionAssignment { + topicPartitions := make([]topicPartitionAssignment, 0) + for topic, partitions := range topics { + for _, partition := range partitions { + topicPartitions = append(topicPartitions, topicPartitionAssignment{Topic: topic, Partition: partition}) + } + } + return topicPartitions +} diff --git a/vendor/github.com/Shopify/sarama/sync_group_request.go b/vendor/github.com/Shopify/sarama/sync_group_request.go new file mode 100644 index 0000000..fe20708 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/sync_group_request.go @@ -0,0 +1,100 @@ +package sarama + +type SyncGroupRequest struct { + GroupId string + GenerationId int32 + MemberId string + GroupAssignments map[string][]byte +} + +func (r *SyncGroupRequest) encode(pe packetEncoder) error { + if err := pe.putString(r.GroupId); err != nil { + return err + } + + pe.putInt32(r.GenerationId) + + if err := pe.putString(r.MemberId); err != nil { + return err + } + + if err := pe.putArrayLength(len(r.GroupAssignments)); err != nil { + return err + } + for memberId, memberAssignment := range r.GroupAssignments { + if err := pe.putString(memberId); err != nil { + return err + } + if err := pe.putBytes(memberAssignment); err != nil { + return err + } + } + + return nil +} + +func (r *SyncGroupRequest) decode(pd packetDecoder, version int16) (err error) { + if r.GroupId, err = pd.getString(); err != nil { + return + } + if r.GenerationId, err = pd.getInt32(); err != nil { + return + } + if r.MemberId, err = pd.getString(); err != nil { + return + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + if n == 0 { + return nil + } + + r.GroupAssignments = make(map[string][]byte) + for i := 0; i < n; i++ { + memberId, err := pd.getString() + if err != nil { + return err + } + memberAssignment, err := pd.getBytes() + if err != nil { + return err + } + + r.GroupAssignments[memberId] = memberAssignment + } + + return nil +} + +func (r *SyncGroupRequest) key() int16 { + return 14 +} + +func (r *SyncGroupRequest) version() int16 { + return 0 +} + +func (r *SyncGroupRequest) requiredVersion() KafkaVersion { + return V0_9_0_0 +} + +func (r *SyncGroupRequest) AddGroupAssignment(memberId string, memberAssignment []byte) { + if r.GroupAssignments == nil { + r.GroupAssignments = make(map[string][]byte) + } + + r.GroupAssignments[memberId] = memberAssignment +} + +func (r *SyncGroupRequest) AddGroupAssignmentMember(memberId string, memberAssignment *ConsumerGroupMemberAssignment) error { + bin, err := encode(memberAssignment, nil) + if err != nil { + return err + } + + r.AddGroupAssignment(memberId, bin) + return nil +} diff --git a/vendor/github.com/Shopify/sarama/sync_group_response.go b/vendor/github.com/Shopify/sarama/sync_group_response.go new file mode 100644 index 0000000..194b382 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/sync_group_response.go @@ -0,0 +1,41 @@ +package sarama + +type SyncGroupResponse struct { + Err KError + MemberAssignment []byte +} + +func (r *SyncGroupResponse) GetMemberAssignment() (*ConsumerGroupMemberAssignment, error) { + assignment := new(ConsumerGroupMemberAssignment) + err := decode(r.MemberAssignment, assignment) + return assignment, err +} + +func (r *SyncGroupResponse) encode(pe packetEncoder) error { + pe.putInt16(int16(r.Err)) + return pe.putBytes(r.MemberAssignment) +} + +func (r *SyncGroupResponse) decode(pd packetDecoder, version int16) (err error) { + kerr, err := pd.getInt16() + if err != nil { + return err + } + + r.Err = KError(kerr) + + r.MemberAssignment, err = pd.getBytes() + return +} + +func (r *SyncGroupResponse) key() int16 { + return 14 +} + +func (r *SyncGroupResponse) version() int16 { + return 0 +} + +func (r *SyncGroupResponse) requiredVersion() KafkaVersion { + return V0_9_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/sync_producer.go b/vendor/github.com/Shopify/sarama/sync_producer.go new file mode 100644 index 0000000..021c5a0 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/sync_producer.go @@ -0,0 +1,149 @@ +package sarama + +import "sync" + +// SyncProducer publishes Kafka messages, blocking until they have been acknowledged. It routes messages to the correct +// broker, refreshing metadata as appropriate, and parses responses for errors. You must call Close() on a producer +// to avoid leaks, it may not be garbage-collected automatically when it passes out of scope. +// +// The SyncProducer comes with two caveats: it will generally be less efficient than the AsyncProducer, and the actual +// durability guarantee provided when a message is acknowledged depend on the configured value of `Producer.RequiredAcks`. +// There are configurations where a message acknowledged by the SyncProducer can still sometimes be lost. +// +// For implementation reasons, the SyncProducer requires `Producer.Return.Errors` and `Producer.Return.Successes` to +// be set to true in its configuration. +type SyncProducer interface { + + // SendMessage produces a given message, and returns only when it either has + // succeeded or failed to produce. It will return the partition and the offset + // of the produced message, or an error if the message failed to produce. + SendMessage(msg *ProducerMessage) (partition int32, offset int64, err error) + + // SendMessages produces a given set of messages, and returns only when all + // messages in the set have either succeeded or failed. Note that messages + // can succeed and fail individually; if some succeed and some fail, + // SendMessages will return an error. + SendMessages(msgs []*ProducerMessage) error + + // Close shuts down the producer and waits for any buffered messages to be + // flushed. You must call this function before a producer object passes out of + // scope, as it may otherwise leak memory. You must call this before calling + // Close on the underlying client. + Close() error +} + +type syncProducer struct { + producer *asyncProducer + wg sync.WaitGroup +} + +// NewSyncProducer creates a new SyncProducer using the given broker addresses and configuration. +func NewSyncProducer(addrs []string, config *Config) (SyncProducer, error) { + if config == nil { + config = NewConfig() + config.Producer.Return.Successes = true + } + + if err := verifyProducerConfig(config); err != nil { + return nil, err + } + + p, err := NewAsyncProducer(addrs, config) + if err != nil { + return nil, err + } + return newSyncProducerFromAsyncProducer(p.(*asyncProducer)), nil +} + +// NewSyncProducerFromClient creates a new SyncProducer using the given client. It is still +// necessary to call Close() on the underlying client when shutting down this producer. +func NewSyncProducerFromClient(client Client) (SyncProducer, error) { + if err := verifyProducerConfig(client.Config()); err != nil { + return nil, err + } + + p, err := NewAsyncProducerFromClient(client) + if err != nil { + return nil, err + } + return newSyncProducerFromAsyncProducer(p.(*asyncProducer)), nil +} + +func newSyncProducerFromAsyncProducer(p *asyncProducer) *syncProducer { + sp := &syncProducer{producer: p} + + sp.wg.Add(2) + go withRecover(sp.handleSuccesses) + go withRecover(sp.handleErrors) + + return sp +} + +func verifyProducerConfig(config *Config) error { + if !config.Producer.Return.Errors { + return ConfigurationError("Producer.Return.Errors must be true to be used in a SyncProducer") + } + if !config.Producer.Return.Successes { + return ConfigurationError("Producer.Return.Successes must be true to be used in a SyncProducer") + } + return nil +} + +func (sp *syncProducer) SendMessage(msg *ProducerMessage) (partition int32, offset int64, err error) { + expectation := make(chan *ProducerError, 1) + msg.expectation = expectation + sp.producer.Input() <- msg + + if err := <-expectation; err != nil { + return -1, -1, err.Err + } + + return msg.Partition, msg.Offset, nil +} + +func (sp *syncProducer) SendMessages(msgs []*ProducerMessage) error { + expectations := make(chan chan *ProducerError, len(msgs)) + go func() { + for _, msg := range msgs { + expectation := make(chan *ProducerError, 1) + msg.expectation = expectation + sp.producer.Input() <- msg + expectations <- expectation + } + close(expectations) + }() + + var errors ProducerErrors + for expectation := range expectations { + if err := <-expectation; err != nil { + errors = append(errors, err) + } + } + + if len(errors) > 0 { + return errors + } + return nil +} + +func (sp *syncProducer) handleSuccesses() { + defer sp.wg.Done() + for msg := range sp.producer.Successes() { + expectation := msg.expectation + expectation <- nil + } +} + +func (sp *syncProducer) handleErrors() { + defer sp.wg.Done() + for err := range sp.producer.Errors() { + expectation := err.Msg.expectation + expectation <- err + } +} + +func (sp *syncProducer) Close() error { + sp.producer.AsyncClose() + sp.wg.Wait() + return nil +} diff --git a/vendor/github.com/Shopify/sarama/timestamp.go b/vendor/github.com/Shopify/sarama/timestamp.go new file mode 100644 index 0000000..372278d --- /dev/null +++ b/vendor/github.com/Shopify/sarama/timestamp.go @@ -0,0 +1,40 @@ +package sarama + +import ( + "fmt" + "time" +) + +type Timestamp struct { + *time.Time +} + +func (t Timestamp) encode(pe packetEncoder) error { + timestamp := int64(-1) + + if !t.Before(time.Unix(0, 0)) { + timestamp = t.UnixNano() / int64(time.Millisecond) + } else if !t.IsZero() { + return PacketEncodingError{fmt.Sprintf("invalid timestamp (%v)", t)} + } + + pe.putInt64(timestamp) + return nil +} + +func (t Timestamp) decode(pd packetDecoder) error { + millis, err := pd.getInt64() + if err != nil { + return err + } + + // negative timestamps are invalid, in these cases we should return + // a zero time + timestamp := time.Time{} + if millis >= 0 { + timestamp = time.Unix(millis/1000, (millis%1000)*int64(time.Millisecond)) + } + + *t.Time = timestamp + return nil +} diff --git a/vendor/github.com/Shopify/sarama/txn_offset_commit_request.go b/vendor/github.com/Shopify/sarama/txn_offset_commit_request.go new file mode 100644 index 0000000..71e95b8 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/txn_offset_commit_request.go @@ -0,0 +1,126 @@ +package sarama + +type TxnOffsetCommitRequest struct { + TransactionalID string + GroupID string + ProducerID int64 + ProducerEpoch int16 + Topics map[string][]*PartitionOffsetMetadata +} + +func (t *TxnOffsetCommitRequest) encode(pe packetEncoder) error { + if err := pe.putString(t.TransactionalID); err != nil { + return err + } + if err := pe.putString(t.GroupID); err != nil { + return err + } + pe.putInt64(t.ProducerID) + pe.putInt16(t.ProducerEpoch) + + if err := pe.putArrayLength(len(t.Topics)); err != nil { + return err + } + for topic, partitions := range t.Topics { + if err := pe.putString(topic); err != nil { + return err + } + if err := pe.putArrayLength(len(partitions)); err != nil { + return err + } + for _, partition := range partitions { + if err := partition.encode(pe); err != nil { + return err + } + } + } + + return nil +} + +func (t *TxnOffsetCommitRequest) decode(pd packetDecoder, version int16) (err error) { + if t.TransactionalID, err = pd.getString(); err != nil { + return err + } + if t.GroupID, err = pd.getString(); err != nil { + return err + } + if t.ProducerID, err = pd.getInt64(); err != nil { + return err + } + if t.ProducerEpoch, err = pd.getInt16(); err != nil { + return err + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + t.Topics = make(map[string][]*PartitionOffsetMetadata) + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + + m, err := pd.getArrayLength() + if err != nil { + return err + } + + t.Topics[topic] = make([]*PartitionOffsetMetadata, m) + + for j := 0; j < m; j++ { + partitionOffsetMetadata := new(PartitionOffsetMetadata) + if err := partitionOffsetMetadata.decode(pd, version); err != nil { + return err + } + t.Topics[topic][j] = partitionOffsetMetadata + } + } + + return nil +} + +func (a *TxnOffsetCommitRequest) key() int16 { + return 28 +} + +func (a *TxnOffsetCommitRequest) version() int16 { + return 0 +} + +func (a *TxnOffsetCommitRequest) requiredVersion() KafkaVersion { + return V0_11_0_0 +} + +type PartitionOffsetMetadata struct { + Partition int32 + Offset int64 + Metadata *string +} + +func (p *PartitionOffsetMetadata) encode(pe packetEncoder) error { + pe.putInt32(p.Partition) + pe.putInt64(p.Offset) + if err := pe.putNullableString(p.Metadata); err != nil { + return err + } + + return nil +} + +func (p *PartitionOffsetMetadata) decode(pd packetDecoder, version int16) (err error) { + if p.Partition, err = pd.getInt32(); err != nil { + return err + } + if p.Offset, err = pd.getInt64(); err != nil { + return err + } + if p.Metadata, err = pd.getNullableString(); err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/txn_offset_commit_response.go b/vendor/github.com/Shopify/sarama/txn_offset_commit_response.go new file mode 100644 index 0000000..6c980f4 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/txn_offset_commit_response.go @@ -0,0 +1,83 @@ +package sarama + +import ( + "time" +) + +type TxnOffsetCommitResponse struct { + ThrottleTime time.Duration + Topics map[string][]*PartitionError +} + +func (t *TxnOffsetCommitResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(t.ThrottleTime / time.Millisecond)) + if err := pe.putArrayLength(len(t.Topics)); err != nil { + return err + } + + for topic, e := range t.Topics { + if err := pe.putString(topic); err != nil { + return err + } + if err := pe.putArrayLength(len(e)); err != nil { + return err + } + for _, partitionError := range e { + if err := partitionError.encode(pe); err != nil { + return err + } + } + } + + return nil +} + +func (t *TxnOffsetCommitResponse) decode(pd packetDecoder, version int16) (err error) { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + t.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + t.Topics = make(map[string][]*PartitionError) + + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + + m, err := pd.getArrayLength() + if err != nil { + return err + } + + t.Topics[topic] = make([]*PartitionError, m) + + for j := 0; j < m; j++ { + t.Topics[topic][j] = new(PartitionError) + if err := t.Topics[topic][j].decode(pd, version); err != nil { + return err + } + } + } + + return nil +} + +func (a *TxnOffsetCommitResponse) key() int16 { + return 28 +} + +func (a *TxnOffsetCommitResponse) version() int16 { + return 0 +} + +func (a *TxnOffsetCommitResponse) requiredVersion() KafkaVersion { + return V0_11_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/utils.go b/vendor/github.com/Shopify/sarama/utils.go new file mode 100644 index 0000000..9392793 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/utils.go @@ -0,0 +1,227 @@ +package sarama + +import ( + "bufio" + "fmt" + "net" + "regexp" +) + +type none struct{} + +// make []int32 sortable so we can sort partition numbers +type int32Slice []int32 + +func (slice int32Slice) Len() int { + return len(slice) +} + +func (slice int32Slice) Less(i, j int) bool { + return slice[i] < slice[j] +} + +func (slice int32Slice) Swap(i, j int) { + slice[i], slice[j] = slice[j], slice[i] +} + +func dupInt32Slice(input []int32) []int32 { + ret := make([]int32, 0, len(input)) + for _, val := range input { + ret = append(ret, val) + } + return ret +} + +func withRecover(fn func()) { + defer func() { + handler := PanicHandler + if handler != nil { + if err := recover(); err != nil { + handler(err) + } + } + }() + + fn() +} + +func safeAsyncClose(b *Broker) { + tmp := b // local var prevents clobbering in goroutine + go withRecover(func() { + if connected, _ := tmp.Connected(); connected { + if err := tmp.Close(); err != nil { + Logger.Println("Error closing broker", tmp.ID(), ":", err) + } + } + }) +} + +// Encoder is a simple interface for any type that can be encoded as an array of bytes +// in order to be sent as the key or value of a Kafka message. Length() is provided as an +// optimization, and must return the same as len() on the result of Encode(). +type Encoder interface { + Encode() ([]byte, error) + Length() int +} + +// make strings and byte slices encodable for convenience so they can be used as keys +// and/or values in kafka messages + +// StringEncoder implements the Encoder interface for Go strings so that they can be used +// as the Key or Value in a ProducerMessage. +type StringEncoder string + +func (s StringEncoder) Encode() ([]byte, error) { + return []byte(s), nil +} + +func (s StringEncoder) Length() int { + return len(s) +} + +// ByteEncoder implements the Encoder interface for Go byte slices so that they can be used +// as the Key or Value in a ProducerMessage. +type ByteEncoder []byte + +func (b ByteEncoder) Encode() ([]byte, error) { + return b, nil +} + +func (b ByteEncoder) Length() int { + return len(b) +} + +// bufConn wraps a net.Conn with a buffer for reads to reduce the number of +// reads that trigger syscalls. +type bufConn struct { + net.Conn + buf *bufio.Reader +} + +func newBufConn(conn net.Conn) *bufConn { + return &bufConn{ + Conn: conn, + buf: bufio.NewReader(conn), + } +} + +func (bc *bufConn) Read(b []byte) (n int, err error) { + return bc.buf.Read(b) +} + +// KafkaVersion instances represent versions of the upstream Kafka broker. +type KafkaVersion struct { + // it's a struct rather than just typing the array directly to make it opaque and stop people + // generating their own arbitrary versions + version [4]uint +} + +func newKafkaVersion(major, minor, veryMinor, patch uint) KafkaVersion { + return KafkaVersion{ + version: [4]uint{major, minor, veryMinor, patch}, + } +} + +// IsAtLeast return true if and only if the version it is called on is +// greater than or equal to the version passed in: +// V1.IsAtLeast(V2) // false +// V2.IsAtLeast(V1) // true +func (v KafkaVersion) IsAtLeast(other KafkaVersion) bool { + for i := range v.version { + if v.version[i] > other.version[i] { + return true + } else if v.version[i] < other.version[i] { + return false + } + } + return true +} + +// Effective constants defining the supported kafka versions. +var ( + V0_8_2_0 = newKafkaVersion(0, 8, 2, 0) + V0_8_2_1 = newKafkaVersion(0, 8, 2, 1) + V0_8_2_2 = newKafkaVersion(0, 8, 2, 2) + V0_9_0_0 = newKafkaVersion(0, 9, 0, 0) + V0_9_0_1 = newKafkaVersion(0, 9, 0, 1) + V0_10_0_0 = newKafkaVersion(0, 10, 0, 0) + V0_10_0_1 = newKafkaVersion(0, 10, 0, 1) + V0_10_1_0 = newKafkaVersion(0, 10, 1, 0) + V0_10_1_1 = newKafkaVersion(0, 10, 1, 1) + V0_10_2_0 = newKafkaVersion(0, 10, 2, 0) + V0_10_2_1 = newKafkaVersion(0, 10, 2, 1) + V0_11_0_0 = newKafkaVersion(0, 11, 0, 0) + V0_11_0_1 = newKafkaVersion(0, 11, 0, 1) + V0_11_0_2 = newKafkaVersion(0, 11, 0, 2) + V1_0_0_0 = newKafkaVersion(1, 0, 0, 0) + V1_1_0_0 = newKafkaVersion(1, 1, 0, 0) + V1_1_1_0 = newKafkaVersion(1, 1, 1, 0) + V2_0_0_0 = newKafkaVersion(2, 0, 0, 0) + V2_0_1_0 = newKafkaVersion(2, 0, 1, 0) + V2_1_0_0 = newKafkaVersion(2, 1, 0, 0) + V2_2_0_0 = newKafkaVersion(2, 2, 0, 0) + V2_3_0_0 = newKafkaVersion(2, 3, 0, 0) + V2_4_0_0 = newKafkaVersion(2, 4, 0, 0) + + SupportedVersions = []KafkaVersion{ + V0_8_2_0, + V0_8_2_1, + V0_8_2_2, + V0_9_0_0, + V0_9_0_1, + V0_10_0_0, + V0_10_0_1, + V0_10_1_0, + V0_10_1_1, + V0_10_2_0, + V0_10_2_1, + V0_11_0_0, + V0_11_0_1, + V0_11_0_2, + V1_0_0_0, + V1_1_0_0, + V1_1_1_0, + V2_0_0_0, + V2_0_1_0, + V2_1_0_0, + V2_2_0_0, + V2_3_0_0, + V2_4_0_0, + } + MinVersion = V0_8_2_0 + MaxVersion = V2_4_0_0 +) + +//ParseKafkaVersion parses and returns kafka version or error from a string +func ParseKafkaVersion(s string) (KafkaVersion, error) { + if len(s) < 5 { + return MinVersion, fmt.Errorf("invalid version `%s`", s) + } + var major, minor, veryMinor, patch uint + var err error + if s[0] == '0' { + err = scanKafkaVersion(s, `^0\.\d+\.\d+\.\d+$`, "0.%d.%d.%d", [3]*uint{&minor, &veryMinor, &patch}) + } else { + err = scanKafkaVersion(s, `^\d+\.\d+\.\d+$`, "%d.%d.%d", [3]*uint{&major, &minor, &veryMinor}) + } + if err != nil { + return MinVersion, err + } + return newKafkaVersion(major, minor, veryMinor, patch), nil +} + +func scanKafkaVersion(s string, pattern string, format string, v [3]*uint) error { + if !regexp.MustCompile(pattern).MatchString(s) { + return fmt.Errorf("invalid version `%s`", s) + } + _, err := fmt.Sscanf(s, format, v[0], v[1], v[2]) + return err +} + +func (v KafkaVersion) String() string { + if v.version[0] == 0 { + return fmt.Sprintf("0.%d.%d.%d", v.version[1], v.version[2], v.version[3]) + } + + return fmt.Sprintf("%d.%d.%d", v.version[0], v.version[1], v.version[2]) +} diff --git a/vendor/github.com/Shopify/sarama/zstd.go b/vendor/github.com/Shopify/sarama/zstd.go new file mode 100644 index 0000000..58880e2 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/zstd.go @@ -0,0 +1,27 @@ +package sarama + +import ( + "github.com/klauspost/compress/zstd" + "sync" +) + +var ( + zstdDec *zstd.Decoder + zstdEnc *zstd.Encoder + + zstdEncOnce, zstdDecOnce sync.Once +) + +func zstdDecompress(dst, src []byte) ([]byte, error) { + zstdDecOnce.Do(func() { + zstdDec, _ = zstd.NewReader(nil) + }) + return zstdDec.DecodeAll(src, dst) +} + +func zstdCompress(dst, src []byte) ([]byte, error) { + zstdEncOnce.Do(func() { + zstdEnc, _ = zstd.NewWriter(nil, zstd.WithZeroFrames(true)) + }) + return zstdEnc.EncodeAll(src, dst), nil +} diff --git a/vendor/github.com/beorn7/perks/LICENSE b/vendor/github.com/beorn7/perks/LICENSE new file mode 100644 index 0000000..339177b --- /dev/null +++ b/vendor/github.com/beorn7/perks/LICENSE @@ -0,0 +1,20 @@ +Copyright (C) 2013 Blake Mizerany + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/beorn7/perks/quantile/exampledata.txt b/vendor/github.com/beorn7/perks/quantile/exampledata.txt new file mode 100644 index 0000000..1602287 --- /dev/null +++ b/vendor/github.com/beorn7/perks/quantile/exampledata.txt @@ -0,0 +1,2388 @@ +8 +5 +26 +12 +5 +235 +13 +6 +28 +30 +3 +3 +3 +3 +5 +2 +33 +7 +2 +4 +7 +12 +14 +5 +8 +3 +10 +4 +5 +3 +6 +6 +209 +20 +3 +10 +14 +3 +4 +6 +8 +5 +11 +7 +3 +2 +3 +3 +212 +5 +222 +4 +10 +10 +5 +6 +3 +8 +3 +10 +254 +220 +2 +3 +5 +24 +5 +4 +222 +7 +3 +3 +223 +8 +15 +12 +14 +14 +3 +2 +2 +3 +13 +3 +11 +4 +4 +6 +5 +7 +13 +5 +3 +5 +2 +5 +3 +5 +2 +7 +15 +17 +14 +3 +6 +6 +3 +17 +5 +4 +7 +6 +4 +4 +8 +6 +8 +3 +9 +3 +6 +3 +4 +5 +3 +3 +660 +4 +6 +10 +3 +6 +3 +2 +5 +13 +2 +4 +4 +10 +4 +8 +4 +3 +7 +9 +9 +3 +10 +37 +3 +13 +4 +12 +3 +6 +10 +8 +5 +21 +2 +3 +8 +3 +2 +3 +3 +4 +12 +2 +4 +8 +8 +4 +3 +2 +20 +1 +6 +32 +2 +11 +6 +18 +3 +8 +11 +3 +212 +3 +4 +2 +6 +7 +12 +11 +3 +2 +16 +10 +6 +4 +6 +3 +2 +7 +3 +2 +2 +2 +2 +5 +6 +4 +3 +10 +3 +4 +6 +5 +3 +4 +4 +5 +6 +4 +3 +4 +4 +5 +7 +5 +5 +3 +2 +7 +2 +4 +12 +4 +5 +6 +2 +4 +4 +8 +4 +15 +13 +7 +16 +5 +3 +23 +5 +5 +7 +3 +2 +9 +8 +7 +5 +8 +11 +4 +10 +76 +4 +47 +4 +3 +2 +7 +4 +2 +3 +37 +10 +4 +2 +20 +5 +4 +4 +10 +10 +4 +3 +7 +23 +240 +7 +13 +5 +5 +3 +3 +2 +5 +4 +2 +8 +7 +19 +2 +23 +8 +7 +2 +5 +3 +8 +3 +8 +13 +5 +5 +5 +2 +3 +23 +4 +9 +8 +4 +3 +3 +5 +220 +2 +3 +4 +6 +14 +3 +53 +6 +2 +5 +18 +6 +3 +219 +6 +5 +2 +5 +3 +6 +5 +15 +4 +3 +17 +3 +2 +4 +7 +2 +3 +3 +4 +4 +3 +2 +664 +6 +3 +23 +5 +5 +16 +5 +8 +2 +4 +2 +24 +12 +3 +2 +3 +5 +8 +3 +5 +4 +3 +14 +3 +5 +8 +2 +3 +7 +9 +4 +2 +3 +6 +8 +4 +3 +4 +6 +5 +3 +3 +6 +3 +19 +4 +4 +6 +3 +6 +3 +5 +22 +5 +4 +4 +3 +8 +11 +4 +9 +7 +6 +13 +4 +4 +4 +6 +17 +9 +3 +3 +3 +4 +3 +221 +5 +11 +3 +4 +2 +12 +6 +3 +5 +7 +5 +7 +4 +9 +7 +14 +37 +19 +217 +16 +3 +5 +2 +2 +7 +19 +7 +6 +7 +4 +24 +5 +11 +4 +7 +7 +9 +13 +3 +4 +3 +6 +28 +4 +4 +5 +5 +2 +5 +6 +4 +4 +6 +10 +5 +4 +3 +2 +3 +3 +6 +5 +5 +4 +3 +2 +3 +7 +4 +6 +18 +16 +8 +16 +4 +5 +8 +6 +9 +13 +1545 +6 +215 +6 +5 +6 +3 +45 +31 +5 +2 +2 +4 +3 +3 +2 +5 +4 +3 +5 +7 +7 +4 +5 +8 +5 +4 +749 +2 +31 +9 +11 +2 +11 +5 +4 +4 +7 +9 +11 +4 +5 +4 +7 +3 +4 +6 +2 +15 +3 +4 +3 +4 +3 +5 +2 +13 +5 +5 +3 +3 +23 +4 +4 +5 +7 +4 +13 +2 +4 +3 +4 +2 +6 +2 +7 +3 +5 +5 +3 +29 +5 +4 +4 +3 +10 +2 +3 +79 +16 +6 +6 +7 +7 +3 +5 +5 +7 +4 +3 +7 +9 +5 +6 +5 +9 +6 +3 +6 +4 +17 +2 +10 +9 +3 +6 +2 +3 +21 +22 +5 +11 +4 +2 +17 +2 +224 +2 +14 +3 +4 +4 +2 +4 +4 +4 +4 +5 +3 +4 +4 +10 +2 +6 +3 +3 +5 +7 +2 +7 +5 +6 +3 +218 +2 +2 +5 +2 +6 +3 +5 +222 +14 +6 +33 +3 +2 +5 +3 +3 +3 +9 +5 +3 +3 +2 +7 +4 +3 +4 +3 +5 +6 +5 +26 +4 +13 +9 +7 +3 +221 +3 +3 +4 +4 +4 +4 +2 +18 +5 +3 +7 +9 +6 +8 +3 +10 +3 +11 +9 +5 +4 +17 +5 +5 +6 +6 +3 +2 +4 +12 +17 +6 +7 +218 +4 +2 +4 +10 +3 +5 +15 +3 +9 +4 +3 +3 +6 +29 +3 +3 +4 +5 +5 +3 +8 +5 +6 +6 +7 +5 +3 +5 +3 +29 +2 +31 +5 +15 +24 +16 +5 +207 +4 +3 +3 +2 +15 +4 +4 +13 +5 +5 +4 +6 +10 +2 +7 +8 +4 +6 +20 +5 +3 +4 +3 +12 +12 +5 +17 +7 +3 +3 +3 +6 +10 +3 +5 +25 +80 +4 +9 +3 +2 +11 +3 +3 +2 +3 +8 +7 +5 +5 +19 +5 +3 +3 +12 +11 +2 +6 +5 +5 +5 +3 +3 +3 +4 +209 +14 +3 +2 +5 +19 +4 +4 +3 +4 +14 +5 +6 +4 +13 +9 +7 +4 +7 +10 +2 +9 +5 +7 +2 +8 +4 +6 +5 +5 +222 +8 +7 +12 +5 +216 +3 +4 +4 +6 +3 +14 +8 +7 +13 +4 +3 +3 +3 +3 +17 +5 +4 +3 +33 +6 +6 +33 +7 +5 +3 +8 +7 +5 +2 +9 +4 +2 +233 +24 +7 +4 +8 +10 +3 +4 +15 +2 +16 +3 +3 +13 +12 +7 +5 +4 +207 +4 +2 +4 +27 +15 +2 +5 +2 +25 +6 +5 +5 +6 +13 +6 +18 +6 +4 +12 +225 +10 +7 +5 +2 +2 +11 +4 +14 +21 +8 +10 +3 +5 +4 +232 +2 +5 +5 +3 +7 +17 +11 +6 +6 +23 +4 +6 +3 +5 +4 +2 +17 +3 +6 +5 +8 +3 +2 +2 +14 +9 +4 +4 +2 +5 +5 +3 +7 +6 +12 +6 +10 +3 +6 +2 +2 +19 +5 +4 +4 +9 +2 +4 +13 +3 +5 +6 +3 +6 +5 +4 +9 +6 +3 +5 +7 +3 +6 +6 +4 +3 +10 +6 +3 +221 +3 +5 +3 +6 +4 +8 +5 +3 +6 +4 +4 +2 +54 +5 +6 +11 +3 +3 +4 +4 +4 +3 +7 +3 +11 +11 +7 +10 +6 +13 +223 +213 +15 +231 +7 +3 +7 +228 +2 +3 +4 +4 +5 +6 +7 +4 +13 +3 +4 +5 +3 +6 +4 +6 +7 +2 +4 +3 +4 +3 +3 +6 +3 +7 +3 +5 +18 +5 +6 +8 +10 +3 +3 +3 +2 +4 +2 +4 +4 +5 +6 +6 +4 +10 +13 +3 +12 +5 +12 +16 +8 +4 +19 +11 +2 +4 +5 +6 +8 +5 +6 +4 +18 +10 +4 +2 +216 +6 +6 +6 +2 +4 +12 +8 +3 +11 +5 +6 +14 +5 +3 +13 +4 +5 +4 +5 +3 +28 +6 +3 +7 +219 +3 +9 +7 +3 +10 +6 +3 +4 +19 +5 +7 +11 +6 +15 +19 +4 +13 +11 +3 +7 +5 +10 +2 +8 +11 +2 +6 +4 +6 +24 +6 +3 +3 +3 +3 +6 +18 +4 +11 +4 +2 +5 +10 +8 +3 +9 +5 +3 +4 +5 +6 +2 +5 +7 +4 +4 +14 +6 +4 +4 +5 +5 +7 +2 +4 +3 +7 +3 +3 +6 +4 +5 +4 +4 +4 +3 +3 +3 +3 +8 +14 +2 +3 +5 +3 +2 +4 +5 +3 +7 +3 +3 +18 +3 +4 +4 +5 +7 +3 +3 +3 +13 +5 +4 +8 +211 +5 +5 +3 +5 +2 +5 +4 +2 +655 +6 +3 +5 +11 +2 +5 +3 +12 +9 +15 +11 +5 +12 +217 +2 +6 +17 +3 +3 +207 +5 +5 +4 +5 +9 +3 +2 +8 +5 +4 +3 +2 +5 +12 +4 +14 +5 +4 +2 +13 +5 +8 +4 +225 +4 +3 +4 +5 +4 +3 +3 +6 +23 +9 +2 +6 +7 +233 +4 +4 +6 +18 +3 +4 +6 +3 +4 +4 +2 +3 +7 +4 +13 +227 +4 +3 +5 +4 +2 +12 +9 +17 +3 +7 +14 +6 +4 +5 +21 +4 +8 +9 +2 +9 +25 +16 +3 +6 +4 +7 +8 +5 +2 +3 +5 +4 +3 +3 +5 +3 +3 +3 +2 +3 +19 +2 +4 +3 +4 +2 +3 +4 +4 +2 +4 +3 +3 +3 +2 +6 +3 +17 +5 +6 +4 +3 +13 +5 +3 +3 +3 +4 +9 +4 +2 +14 +12 +4 +5 +24 +4 +3 +37 +12 +11 +21 +3 +4 +3 +13 +4 +2 +3 +15 +4 +11 +4 +4 +3 +8 +3 +4 +4 +12 +8 +5 +3 +3 +4 +2 +220 +3 +5 +223 +3 +3 +3 +10 +3 +15 +4 +241 +9 +7 +3 +6 +6 +23 +4 +13 +7 +3 +4 +7 +4 +9 +3 +3 +4 +10 +5 +5 +1 +5 +24 +2 +4 +5 +5 +6 +14 +3 +8 +2 +3 +5 +13 +13 +3 +5 +2 +3 +15 +3 +4 +2 +10 +4 +4 +4 +5 +5 +3 +5 +3 +4 +7 +4 +27 +3 +6 +4 +15 +3 +5 +6 +6 +5 +4 +8 +3 +9 +2 +6 +3 +4 +3 +7 +4 +18 +3 +11 +3 +3 +8 +9 +7 +24 +3 +219 +7 +10 +4 +5 +9 +12 +2 +5 +4 +4 +4 +3 +3 +19 +5 +8 +16 +8 +6 +22 +3 +23 +3 +242 +9 +4 +3 +3 +5 +7 +3 +3 +5 +8 +3 +7 +5 +14 +8 +10 +3 +4 +3 +7 +4 +6 +7 +4 +10 +4 +3 +11 +3 +7 +10 +3 +13 +6 +8 +12 +10 +5 +7 +9 +3 +4 +7 +7 +10 +8 +30 +9 +19 +4 +3 +19 +15 +4 +13 +3 +215 +223 +4 +7 +4 +8 +17 +16 +3 +7 +6 +5 +5 +4 +12 +3 +7 +4 +4 +13 +4 +5 +2 +5 +6 +5 +6 +6 +7 +10 +18 +23 +9 +3 +3 +6 +5 +2 +4 +2 +7 +3 +3 +2 +5 +5 +14 +10 +224 +6 +3 +4 +3 +7 +5 +9 +3 +6 +4 +2 +5 +11 +4 +3 +3 +2 +8 +4 +7 +4 +10 +7 +3 +3 +18 +18 +17 +3 +3 +3 +4 +5 +3 +3 +4 +12 +7 +3 +11 +13 +5 +4 +7 +13 +5 +4 +11 +3 +12 +3 +6 +4 +4 +21 +4 +6 +9 +5 +3 +10 +8 +4 +6 +4 +4 +6 +5 +4 +8 +6 +4 +6 +4 +4 +5 +9 +6 +3 +4 +2 +9 +3 +18 +2 +4 +3 +13 +3 +6 +6 +8 +7 +9 +3 +2 +16 +3 +4 +6 +3 +2 +33 +22 +14 +4 +9 +12 +4 +5 +6 +3 +23 +9 +4 +3 +5 +5 +3 +4 +5 +3 +5 +3 +10 +4 +5 +5 +8 +4 +4 +6 +8 +5 +4 +3 +4 +6 +3 +3 +3 +5 +9 +12 +6 +5 +9 +3 +5 +3 +2 +2 +2 +18 +3 +2 +21 +2 +5 +4 +6 +4 +5 +10 +3 +9 +3 +2 +10 +7 +3 +6 +6 +4 +4 +8 +12 +7 +3 +7 +3 +3 +9 +3 +4 +5 +4 +4 +5 +5 +10 +15 +4 +4 +14 +6 +227 +3 +14 +5 +216 +22 +5 +4 +2 +2 +6 +3 +4 +2 +9 +9 +4 +3 +28 +13 +11 +4 +5 +3 +3 +2 +3 +3 +5 +3 +4 +3 +5 +23 +26 +3 +4 +5 +6 +4 +6 +3 +5 +5 +3 +4 +3 +2 +2 +2 +7 +14 +3 +6 +7 +17 +2 +2 +15 +14 +16 +4 +6 +7 +13 +6 +4 +5 +6 +16 +3 +3 +28 +3 +6 +15 +3 +9 +2 +4 +6 +3 +3 +22 +4 +12 +6 +7 +2 +5 +4 +10 +3 +16 +6 +9 +2 +5 +12 +7 +5 +5 +5 +5 +2 +11 +9 +17 +4 +3 +11 +7 +3 +5 +15 +4 +3 +4 +211 +8 +7 +5 +4 +7 +6 +7 +6 +3 +6 +5 +6 +5 +3 +4 +4 +26 +4 +6 +10 +4 +4 +3 +2 +3 +3 +4 +5 +9 +3 +9 +4 +4 +5 +5 +8 +2 +4 +2 +3 +8 +4 +11 +19 +5 +8 +6 +3 +5 +6 +12 +3 +2 +4 +16 +12 +3 +4 +4 +8 +6 +5 +6 +6 +219 +8 +222 +6 +16 +3 +13 +19 +5 +4 +3 +11 +6 +10 +4 +7 +7 +12 +5 +3 +3 +5 +6 +10 +3 +8 +2 +5 +4 +7 +2 +4 +4 +2 +12 +9 +6 +4 +2 +40 +2 +4 +10 +4 +223 +4 +2 +20 +6 +7 +24 +5 +4 +5 +2 +20 +16 +6 +5 +13 +2 +3 +3 +19 +3 +2 +4 +5 +6 +7 +11 +12 +5 +6 +7 +7 +3 +5 +3 +5 +3 +14 +3 +4 +4 +2 +11 +1 +7 +3 +9 +6 +11 +12 +5 +8 +6 +221 +4 +2 +12 +4 +3 +15 +4 +5 +226 +7 +218 +7 +5 +4 +5 +18 +4 +5 +9 +4 +4 +2 +9 +18 +18 +9 +5 +6 +6 +3 +3 +7 +3 +5 +4 +4 +4 +12 +3 +6 +31 +5 +4 +7 +3 +6 +5 +6 +5 +11 +2 +2 +11 +11 +6 +7 +5 +8 +7 +10 +5 +23 +7 +4 +3 +5 +34 +2 +5 +23 +7 +3 +6 +8 +4 +4 +4 +2 +5 +3 +8 +5 +4 +8 +25 +2 +3 +17 +8 +3 +4 +8 +7 +3 +15 +6 +5 +7 +21 +9 +5 +6 +6 +5 +3 +2 +3 +10 +3 +6 +3 +14 +7 +4 +4 +8 +7 +8 +2 +6 +12 +4 +213 +6 +5 +21 +8 +2 +5 +23 +3 +11 +2 +3 +6 +25 +2 +3 +6 +7 +6 +6 +4 +4 +6 +3 +17 +9 +7 +6 +4 +3 +10 +7 +2 +3 +3 +3 +11 +8 +3 +7 +6 +4 +14 +36 +3 +4 +3 +3 +22 +13 +21 +4 +2 +7 +4 +4 +17 +15 +3 +7 +11 +2 +4 +7 +6 +209 +6 +3 +2 +2 +24 +4 +9 +4 +3 +3 +3 +29 +2 +2 +4 +3 +3 +5 +4 +6 +3 +3 +2 +4 diff --git a/vendor/github.com/beorn7/perks/quantile/stream.go b/vendor/github.com/beorn7/perks/quantile/stream.go new file mode 100644 index 0000000..d7d14f8 --- /dev/null +++ b/vendor/github.com/beorn7/perks/quantile/stream.go @@ -0,0 +1,316 @@ +// Package quantile computes approximate quantiles over an unbounded data +// stream within low memory and CPU bounds. +// +// A small amount of accuracy is traded to achieve the above properties. +// +// Multiple streams can be merged before calling Query to generate a single set +// of results. This is meaningful when the streams represent the same type of +// data. See Merge and Samples. +// +// For more detailed information about the algorithm used, see: +// +// Effective Computation of Biased Quantiles over Data Streams +// +// http://www.cs.rutgers.edu/~muthu/bquant.pdf +package quantile + +import ( + "math" + "sort" +) + +// Sample holds an observed value and meta information for compression. JSON +// tags have been added for convenience. +type Sample struct { + Value float64 `json:",string"` + Width float64 `json:",string"` + Delta float64 `json:",string"` +} + +// Samples represents a slice of samples. It implements sort.Interface. +type Samples []Sample + +func (a Samples) Len() int { return len(a) } +func (a Samples) Less(i, j int) bool { return a[i].Value < a[j].Value } +func (a Samples) Swap(i, j int) { a[i], a[j] = a[j], a[i] } + +type invariant func(s *stream, r float64) float64 + +// NewLowBiased returns an initialized Stream for low-biased quantiles +// (e.g. 0.01, 0.1, 0.5) where the needed quantiles are not known a priori, but +// error guarantees can still be given even for the lower ranks of the data +// distribution. +// +// The provided epsilon is a relative error, i.e. the true quantile of a value +// returned by a query is guaranteed to be within (1±Epsilon)*Quantile. +// +// See http://www.cs.rutgers.edu/~muthu/bquant.pdf for time, space, and error +// properties. +func NewLowBiased(epsilon float64) *Stream { + Æ’ := func(s *stream, r float64) float64 { + return 2 * epsilon * r + } + return newStream(Æ’) +} + +// NewHighBiased returns an initialized Stream for high-biased quantiles +// (e.g. 0.01, 0.1, 0.5) where the needed quantiles are not known a priori, but +// error guarantees can still be given even for the higher ranks of the data +// distribution. +// +// The provided epsilon is a relative error, i.e. the true quantile of a value +// returned by a query is guaranteed to be within 1-(1±Epsilon)*(1-Quantile). +// +// See http://www.cs.rutgers.edu/~muthu/bquant.pdf for time, space, and error +// properties. +func NewHighBiased(epsilon float64) *Stream { + Æ’ := func(s *stream, r float64) float64 { + return 2 * epsilon * (s.n - r) + } + return newStream(Æ’) +} + +// NewTargeted returns an initialized Stream concerned with a particular set of +// quantile values that are supplied a priori. Knowing these a priori reduces +// space and computation time. The targets map maps the desired quantiles to +// their absolute errors, i.e. the true quantile of a value returned by a query +// is guaranteed to be within (Quantile±Epsilon). +// +// See http://www.cs.rutgers.edu/~muthu/bquant.pdf for time, space, and error properties. +func NewTargeted(targetMap map[float64]float64) *Stream { + // Convert map to slice to avoid slow iterations on a map. + // Æ’ is called on the hot path, so converting the map to a slice + // beforehand results in significant CPU savings. + targets := targetMapToSlice(targetMap) + + Æ’ := func(s *stream, r float64) float64 { + var m = math.MaxFloat64 + var f float64 + for _, t := range targets { + if t.quantile*s.n <= r { + f = (2 * t.epsilon * r) / t.quantile + } else { + f = (2 * t.epsilon * (s.n - r)) / (1 - t.quantile) + } + if f < m { + m = f + } + } + return m + } + return newStream(Æ’) +} + +type target struct { + quantile float64 + epsilon float64 +} + +func targetMapToSlice(targetMap map[float64]float64) []target { + targets := make([]target, 0, len(targetMap)) + + for quantile, epsilon := range targetMap { + t := target{ + quantile: quantile, + epsilon: epsilon, + } + targets = append(targets, t) + } + + return targets +} + +// Stream computes quantiles for a stream of float64s. It is not thread-safe by +// design. Take care when using across multiple goroutines. +type Stream struct { + *stream + b Samples + sorted bool +} + +func newStream(Æ’ invariant) *Stream { + x := &stream{Æ’: Æ’} + return &Stream{x, make(Samples, 0, 500), true} +} + +// Insert inserts v into the stream. +func (s *Stream) Insert(v float64) { + s.insert(Sample{Value: v, Width: 1}) +} + +func (s *Stream) insert(sample Sample) { + s.b = append(s.b, sample) + s.sorted = false + if len(s.b) == cap(s.b) { + s.flush() + } +} + +// Query returns the computed qth percentiles value. If s was created with +// NewTargeted, and q is not in the set of quantiles provided a priori, Query +// will return an unspecified result. +func (s *Stream) Query(q float64) float64 { + if !s.flushed() { + // Fast path when there hasn't been enough data for a flush; + // this also yields better accuracy for small sets of data. + l := len(s.b) + if l == 0 { + return 0 + } + i := int(math.Ceil(float64(l) * q)) + if i > 0 { + i -= 1 + } + s.maybeSort() + return s.b[i].Value + } + s.flush() + return s.stream.query(q) +} + +// Merge merges samples into the underlying streams samples. This is handy when +// merging multiple streams from separate threads, database shards, etc. +// +// ATTENTION: This method is broken and does not yield correct results. The +// underlying algorithm is not capable of merging streams correctly. +func (s *Stream) Merge(samples Samples) { + sort.Sort(samples) + s.stream.merge(samples) +} + +// Reset reinitializes and clears the list reusing the samples buffer memory. +func (s *Stream) Reset() { + s.stream.reset() + s.b = s.b[:0] +} + +// Samples returns stream samples held by s. +func (s *Stream) Samples() Samples { + if !s.flushed() { + return s.b + } + s.flush() + return s.stream.samples() +} + +// Count returns the total number of samples observed in the stream +// since initialization. +func (s *Stream) Count() int { + return len(s.b) + s.stream.count() +} + +func (s *Stream) flush() { + s.maybeSort() + s.stream.merge(s.b) + s.b = s.b[:0] +} + +func (s *Stream) maybeSort() { + if !s.sorted { + s.sorted = true + sort.Sort(s.b) + } +} + +func (s *Stream) flushed() bool { + return len(s.stream.l) > 0 +} + +type stream struct { + n float64 + l []Sample + Æ’ invariant +} + +func (s *stream) reset() { + s.l = s.l[:0] + s.n = 0 +} + +func (s *stream) insert(v float64) { + s.merge(Samples{{v, 1, 0}}) +} + +func (s *stream) merge(samples Samples) { + // TODO(beorn7): This tries to merge not only individual samples, but + // whole summaries. The paper doesn't mention merging summaries at + // all. Unittests show that the merging is inaccurate. Find out how to + // do merges properly. + var r float64 + i := 0 + for _, sample := range samples { + for ; i < len(s.l); i++ { + c := s.l[i] + if c.Value > sample.Value { + // Insert at position i. + s.l = append(s.l, Sample{}) + copy(s.l[i+1:], s.l[i:]) + s.l[i] = Sample{ + sample.Value, + sample.Width, + math.Max(sample.Delta, math.Floor(s.Æ’(s, r))-1), + // TODO(beorn7): How to calculate delta correctly? + } + i++ + goto inserted + } + r += c.Width + } + s.l = append(s.l, Sample{sample.Value, sample.Width, 0}) + i++ + inserted: + s.n += sample.Width + r += sample.Width + } + s.compress() +} + +func (s *stream) count() int { + return int(s.n) +} + +func (s *stream) query(q float64) float64 { + t := math.Ceil(q * s.n) + t += math.Ceil(s.Æ’(s, t) / 2) + p := s.l[0] + var r float64 + for _, c := range s.l[1:] { + r += p.Width + if r+c.Width+c.Delta > t { + return p.Value + } + p = c + } + return p.Value +} + +func (s *stream) compress() { + if len(s.l) < 2 { + return + } + x := s.l[len(s.l)-1] + xi := len(s.l) - 1 + r := s.n - 1 - x.Width + + for i := len(s.l) - 2; i >= 0; i-- { + c := s.l[i] + if c.Width+x.Width+x.Delta <= s.Æ’(s, r) { + x.Width += c.Width + s.l[xi] = x + // Remove element at i. + copy(s.l[i:], s.l[i+1:]) + s.l = s.l[:len(s.l)-1] + xi -= 1 + } else { + x = c + xi = i + } + r -= c.Width + } +} + +func (s *stream) samples() Samples { + samples := make(Samples, len(s.l)) + copy(samples, s.l) + return samples +} diff --git a/vendor/github.com/davecgh/go-spew/LICENSE b/vendor/github.com/davecgh/go-spew/LICENSE new file mode 100644 index 0000000..bc52e96 --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2012-2016 Dave Collins + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/vendor/github.com/davecgh/go-spew/spew/bypass.go b/vendor/github.com/davecgh/go-spew/spew/bypass.go new file mode 100644 index 0000000..7929947 --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/bypass.go @@ -0,0 +1,145 @@ +// Copyright (c) 2015-2016 Dave Collins +// +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +// NOTE: Due to the following build constraints, this file will only be compiled +// when the code is not running on Google App Engine, compiled by GopherJS, and +// "-tags safe" is not added to the go build command line. The "disableunsafe" +// tag is deprecated and thus should not be used. +// Go versions prior to 1.4 are disabled because they use a different layout +// for interfaces which make the implementation of unsafeReflectValue more complex. +// +build !js,!appengine,!safe,!disableunsafe,go1.4 + +package spew + +import ( + "reflect" + "unsafe" +) + +const ( + // UnsafeDisabled is a build-time constant which specifies whether or + // not access to the unsafe package is available. + UnsafeDisabled = false + + // ptrSize is the size of a pointer on the current arch. + ptrSize = unsafe.Sizeof((*byte)(nil)) +) + +type flag uintptr + +var ( + // flagRO indicates whether the value field of a reflect.Value + // is read-only. + flagRO flag + + // flagAddr indicates whether the address of the reflect.Value's + // value may be taken. + flagAddr flag +) + +// flagKindMask holds the bits that make up the kind +// part of the flags field. In all the supported versions, +// it is in the lower 5 bits. +const flagKindMask = flag(0x1f) + +// Different versions of Go have used different +// bit layouts for the flags type. This table +// records the known combinations. +var okFlags = []struct { + ro, addr flag +}{{ + // From Go 1.4 to 1.5 + ro: 1 << 5, + addr: 1 << 7, +}, { + // Up to Go tip. + ro: 1<<5 | 1<<6, + addr: 1 << 8, +}} + +var flagValOffset = func() uintptr { + field, ok := reflect.TypeOf(reflect.Value{}).FieldByName("flag") + if !ok { + panic("reflect.Value has no flag field") + } + return field.Offset +}() + +// flagField returns a pointer to the flag field of a reflect.Value. +func flagField(v *reflect.Value) *flag { + return (*flag)(unsafe.Pointer(uintptr(unsafe.Pointer(v)) + flagValOffset)) +} + +// unsafeReflectValue converts the passed reflect.Value into a one that bypasses +// the typical safety restrictions preventing access to unaddressable and +// unexported data. It works by digging the raw pointer to the underlying +// value out of the protected value and generating a new unprotected (unsafe) +// reflect.Value to it. +// +// This allows us to check for implementations of the Stringer and error +// interfaces to be used for pretty printing ordinarily unaddressable and +// inaccessible values such as unexported struct fields. +func unsafeReflectValue(v reflect.Value) reflect.Value { + if !v.IsValid() || (v.CanInterface() && v.CanAddr()) { + return v + } + flagFieldPtr := flagField(&v) + *flagFieldPtr &^= flagRO + *flagFieldPtr |= flagAddr + return v +} + +// Sanity checks against future reflect package changes +// to the type or semantics of the Value.flag field. +func init() { + field, ok := reflect.TypeOf(reflect.Value{}).FieldByName("flag") + if !ok { + panic("reflect.Value has no flag field") + } + if field.Type.Kind() != reflect.TypeOf(flag(0)).Kind() { + panic("reflect.Value flag field has changed kind") + } + type t0 int + var t struct { + A t0 + // t0 will have flagEmbedRO set. + t0 + // a will have flagStickyRO set + a t0 + } + vA := reflect.ValueOf(t).FieldByName("A") + va := reflect.ValueOf(t).FieldByName("a") + vt0 := reflect.ValueOf(t).FieldByName("t0") + + // Infer flagRO from the difference between the flags + // for the (otherwise identical) fields in t. + flagPublic := *flagField(&vA) + flagWithRO := *flagField(&va) | *flagField(&vt0) + flagRO = flagPublic ^ flagWithRO + + // Infer flagAddr from the difference between a value + // taken from a pointer and not. + vPtrA := reflect.ValueOf(&t).Elem().FieldByName("A") + flagNoPtr := *flagField(&vA) + flagPtr := *flagField(&vPtrA) + flagAddr = flagNoPtr ^ flagPtr + + // Check that the inferred flags tally with one of the known versions. + for _, f := range okFlags { + if flagRO == f.ro && flagAddr == f.addr { + return + } + } + panic("reflect.Value read-only flag has changed semantics") +} diff --git a/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go b/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go new file mode 100644 index 0000000..205c28d --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go @@ -0,0 +1,38 @@ +// Copyright (c) 2015-2016 Dave Collins +// +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +// NOTE: Due to the following build constraints, this file will only be compiled +// when the code is running on Google App Engine, compiled by GopherJS, or +// "-tags safe" is added to the go build command line. The "disableunsafe" +// tag is deprecated and thus should not be used. +// +build js appengine safe disableunsafe !go1.4 + +package spew + +import "reflect" + +const ( + // UnsafeDisabled is a build-time constant which specifies whether or + // not access to the unsafe package is available. + UnsafeDisabled = true +) + +// unsafeReflectValue typically converts the passed reflect.Value into a one +// that bypasses the typical safety restrictions preventing access to +// unaddressable and unexported data. However, doing this relies on access to +// the unsafe package. This is a stub version which simply returns the passed +// reflect.Value when the unsafe package is not available. +func unsafeReflectValue(v reflect.Value) reflect.Value { + return v +} diff --git a/vendor/github.com/davecgh/go-spew/spew/common.go b/vendor/github.com/davecgh/go-spew/spew/common.go new file mode 100644 index 0000000..1be8ce9 --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/common.go @@ -0,0 +1,341 @@ +/* + * Copyright (c) 2013-2016 Dave Collins + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew + +import ( + "bytes" + "fmt" + "io" + "reflect" + "sort" + "strconv" +) + +// Some constants in the form of bytes to avoid string overhead. This mirrors +// the technique used in the fmt package. +var ( + panicBytes = []byte("(PANIC=") + plusBytes = []byte("+") + iBytes = []byte("i") + trueBytes = []byte("true") + falseBytes = []byte("false") + interfaceBytes = []byte("(interface {})") + commaNewlineBytes = []byte(",\n") + newlineBytes = []byte("\n") + openBraceBytes = []byte("{") + openBraceNewlineBytes = []byte("{\n") + closeBraceBytes = []byte("}") + asteriskBytes = []byte("*") + colonBytes = []byte(":") + colonSpaceBytes = []byte(": ") + openParenBytes = []byte("(") + closeParenBytes = []byte(")") + spaceBytes = []byte(" ") + pointerChainBytes = []byte("->") + nilAngleBytes = []byte("") + maxNewlineBytes = []byte("\n") + maxShortBytes = []byte("") + circularBytes = []byte("") + circularShortBytes = []byte("") + invalidAngleBytes = []byte("") + openBracketBytes = []byte("[") + closeBracketBytes = []byte("]") + percentBytes = []byte("%") + precisionBytes = []byte(".") + openAngleBytes = []byte("<") + closeAngleBytes = []byte(">") + openMapBytes = []byte("map[") + closeMapBytes = []byte("]") + lenEqualsBytes = []byte("len=") + capEqualsBytes = []byte("cap=") +) + +// hexDigits is used to map a decimal value to a hex digit. +var hexDigits = "0123456789abcdef" + +// catchPanic handles any panics that might occur during the handleMethods +// calls. +func catchPanic(w io.Writer, v reflect.Value) { + if err := recover(); err != nil { + w.Write(panicBytes) + fmt.Fprintf(w, "%v", err) + w.Write(closeParenBytes) + } +} + +// handleMethods attempts to call the Error and String methods on the underlying +// type the passed reflect.Value represents and outputes the result to Writer w. +// +// It handles panics in any called methods by catching and displaying the error +// as the formatted value. +func handleMethods(cs *ConfigState, w io.Writer, v reflect.Value) (handled bool) { + // We need an interface to check if the type implements the error or + // Stringer interface. However, the reflect package won't give us an + // interface on certain things like unexported struct fields in order + // to enforce visibility rules. We use unsafe, when it's available, + // to bypass these restrictions since this package does not mutate the + // values. + if !v.CanInterface() { + if UnsafeDisabled { + return false + } + + v = unsafeReflectValue(v) + } + + // Choose whether or not to do error and Stringer interface lookups against + // the base type or a pointer to the base type depending on settings. + // Technically calling one of these methods with a pointer receiver can + // mutate the value, however, types which choose to satisify an error or + // Stringer interface with a pointer receiver should not be mutating their + // state inside these interface methods. + if !cs.DisablePointerMethods && !UnsafeDisabled && !v.CanAddr() { + v = unsafeReflectValue(v) + } + if v.CanAddr() { + v = v.Addr() + } + + // Is it an error or Stringer? + switch iface := v.Interface().(type) { + case error: + defer catchPanic(w, v) + if cs.ContinueOnMethod { + w.Write(openParenBytes) + w.Write([]byte(iface.Error())) + w.Write(closeParenBytes) + w.Write(spaceBytes) + return false + } + + w.Write([]byte(iface.Error())) + return true + + case fmt.Stringer: + defer catchPanic(w, v) + if cs.ContinueOnMethod { + w.Write(openParenBytes) + w.Write([]byte(iface.String())) + w.Write(closeParenBytes) + w.Write(spaceBytes) + return false + } + w.Write([]byte(iface.String())) + return true + } + return false +} + +// printBool outputs a boolean value as true or false to Writer w. +func printBool(w io.Writer, val bool) { + if val { + w.Write(trueBytes) + } else { + w.Write(falseBytes) + } +} + +// printInt outputs a signed integer value to Writer w. +func printInt(w io.Writer, val int64, base int) { + w.Write([]byte(strconv.FormatInt(val, base))) +} + +// printUint outputs an unsigned integer value to Writer w. +func printUint(w io.Writer, val uint64, base int) { + w.Write([]byte(strconv.FormatUint(val, base))) +} + +// printFloat outputs a floating point value using the specified precision, +// which is expected to be 32 or 64bit, to Writer w. +func printFloat(w io.Writer, val float64, precision int) { + w.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision))) +} + +// printComplex outputs a complex value using the specified float precision +// for the real and imaginary parts to Writer w. +func printComplex(w io.Writer, c complex128, floatPrecision int) { + r := real(c) + w.Write(openParenBytes) + w.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision))) + i := imag(c) + if i >= 0 { + w.Write(plusBytes) + } + w.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision))) + w.Write(iBytes) + w.Write(closeParenBytes) +} + +// printHexPtr outputs a uintptr formatted as hexadecimal with a leading '0x' +// prefix to Writer w. +func printHexPtr(w io.Writer, p uintptr) { + // Null pointer. + num := uint64(p) + if num == 0 { + w.Write(nilAngleBytes) + return + } + + // Max uint64 is 16 bytes in hex + 2 bytes for '0x' prefix + buf := make([]byte, 18) + + // It's simpler to construct the hex string right to left. + base := uint64(16) + i := len(buf) - 1 + for num >= base { + buf[i] = hexDigits[num%base] + num /= base + i-- + } + buf[i] = hexDigits[num] + + // Add '0x' prefix. + i-- + buf[i] = 'x' + i-- + buf[i] = '0' + + // Strip unused leading bytes. + buf = buf[i:] + w.Write(buf) +} + +// valuesSorter implements sort.Interface to allow a slice of reflect.Value +// elements to be sorted. +type valuesSorter struct { + values []reflect.Value + strings []string // either nil or same len and values + cs *ConfigState +} + +// newValuesSorter initializes a valuesSorter instance, which holds a set of +// surrogate keys on which the data should be sorted. It uses flags in +// ConfigState to decide if and how to populate those surrogate keys. +func newValuesSorter(values []reflect.Value, cs *ConfigState) sort.Interface { + vs := &valuesSorter{values: values, cs: cs} + if canSortSimply(vs.values[0].Kind()) { + return vs + } + if !cs.DisableMethods { + vs.strings = make([]string, len(values)) + for i := range vs.values { + b := bytes.Buffer{} + if !handleMethods(cs, &b, vs.values[i]) { + vs.strings = nil + break + } + vs.strings[i] = b.String() + } + } + if vs.strings == nil && cs.SpewKeys { + vs.strings = make([]string, len(values)) + for i := range vs.values { + vs.strings[i] = Sprintf("%#v", vs.values[i].Interface()) + } + } + return vs +} + +// canSortSimply tests whether a reflect.Kind is a primitive that can be sorted +// directly, or whether it should be considered for sorting by surrogate keys +// (if the ConfigState allows it). +func canSortSimply(kind reflect.Kind) bool { + // This switch parallels valueSortLess, except for the default case. + switch kind { + case reflect.Bool: + return true + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: + return true + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: + return true + case reflect.Float32, reflect.Float64: + return true + case reflect.String: + return true + case reflect.Uintptr: + return true + case reflect.Array: + return true + } + return false +} + +// Len returns the number of values in the slice. It is part of the +// sort.Interface implementation. +func (s *valuesSorter) Len() int { + return len(s.values) +} + +// Swap swaps the values at the passed indices. It is part of the +// sort.Interface implementation. +func (s *valuesSorter) Swap(i, j int) { + s.values[i], s.values[j] = s.values[j], s.values[i] + if s.strings != nil { + s.strings[i], s.strings[j] = s.strings[j], s.strings[i] + } +} + +// valueSortLess returns whether the first value should sort before the second +// value. It is used by valueSorter.Less as part of the sort.Interface +// implementation. +func valueSortLess(a, b reflect.Value) bool { + switch a.Kind() { + case reflect.Bool: + return !a.Bool() && b.Bool() + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: + return a.Int() < b.Int() + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: + return a.Uint() < b.Uint() + case reflect.Float32, reflect.Float64: + return a.Float() < b.Float() + case reflect.String: + return a.String() < b.String() + case reflect.Uintptr: + return a.Uint() < b.Uint() + case reflect.Array: + // Compare the contents of both arrays. + l := a.Len() + for i := 0; i < l; i++ { + av := a.Index(i) + bv := b.Index(i) + if av.Interface() == bv.Interface() { + continue + } + return valueSortLess(av, bv) + } + } + return a.String() < b.String() +} + +// Less returns whether the value at index i should sort before the +// value at index j. It is part of the sort.Interface implementation. +func (s *valuesSorter) Less(i, j int) bool { + if s.strings == nil { + return valueSortLess(s.values[i], s.values[j]) + } + return s.strings[i] < s.strings[j] +} + +// sortValues is a sort function that handles both native types and any type that +// can be converted to error or Stringer. Other inputs are sorted according to +// their Value.String() value to ensure display stability. +func sortValues(values []reflect.Value, cs *ConfigState) { + if len(values) == 0 { + return + } + sort.Sort(newValuesSorter(values, cs)) +} diff --git a/vendor/github.com/davecgh/go-spew/spew/config.go b/vendor/github.com/davecgh/go-spew/spew/config.go new file mode 100644 index 0000000..2e3d22f --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/config.go @@ -0,0 +1,306 @@ +/* + * Copyright (c) 2013-2016 Dave Collins + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew + +import ( + "bytes" + "fmt" + "io" + "os" +) + +// ConfigState houses the configuration options used by spew to format and +// display values. There is a global instance, Config, that is used to control +// all top-level Formatter and Dump functionality. Each ConfigState instance +// provides methods equivalent to the top-level functions. +// +// The zero value for ConfigState provides no indentation. You would typically +// want to set it to a space or a tab. +// +// Alternatively, you can use NewDefaultConfig to get a ConfigState instance +// with default settings. See the documentation of NewDefaultConfig for default +// values. +type ConfigState struct { + // Indent specifies the string to use for each indentation level. The + // global config instance that all top-level functions use set this to a + // single space by default. If you would like more indentation, you might + // set this to a tab with "\t" or perhaps two spaces with " ". + Indent string + + // MaxDepth controls the maximum number of levels to descend into nested + // data structures. The default, 0, means there is no limit. + // + // NOTE: Circular data structures are properly detected, so it is not + // necessary to set this value unless you specifically want to limit deeply + // nested data structures. + MaxDepth int + + // DisableMethods specifies whether or not error and Stringer interfaces are + // invoked for types that implement them. + DisableMethods bool + + // DisablePointerMethods specifies whether or not to check for and invoke + // error and Stringer interfaces on types which only accept a pointer + // receiver when the current type is not a pointer. + // + // NOTE: This might be an unsafe action since calling one of these methods + // with a pointer receiver could technically mutate the value, however, + // in practice, types which choose to satisify an error or Stringer + // interface with a pointer receiver should not be mutating their state + // inside these interface methods. As a result, this option relies on + // access to the unsafe package, so it will not have any effect when + // running in environments without access to the unsafe package such as + // Google App Engine or with the "safe" build tag specified. + DisablePointerMethods bool + + // DisablePointerAddresses specifies whether to disable the printing of + // pointer addresses. This is useful when diffing data structures in tests. + DisablePointerAddresses bool + + // DisableCapacities specifies whether to disable the printing of capacities + // for arrays, slices, maps and channels. This is useful when diffing + // data structures in tests. + DisableCapacities bool + + // ContinueOnMethod specifies whether or not recursion should continue once + // a custom error or Stringer interface is invoked. The default, false, + // means it will print the results of invoking the custom error or Stringer + // interface and return immediately instead of continuing to recurse into + // the internals of the data type. + // + // NOTE: This flag does not have any effect if method invocation is disabled + // via the DisableMethods or DisablePointerMethods options. + ContinueOnMethod bool + + // SortKeys specifies map keys should be sorted before being printed. Use + // this to have a more deterministic, diffable output. Note that only + // native types (bool, int, uint, floats, uintptr and string) and types + // that support the error or Stringer interfaces (if methods are + // enabled) are supported, with other types sorted according to the + // reflect.Value.String() output which guarantees display stability. + SortKeys bool + + // SpewKeys specifies that, as a last resort attempt, map keys should + // be spewed to strings and sorted by those strings. This is only + // considered if SortKeys is true. + SpewKeys bool +} + +// Config is the active configuration of the top-level functions. +// The configuration can be changed by modifying the contents of spew.Config. +var Config = ConfigState{Indent: " "} + +// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the formatted string as a value that satisfies error. See NewFormatter +// for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Errorf(format, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Errorf(format string, a ...interface{}) (err error) { + return fmt.Errorf(format, c.convertArgs(a)...) +} + +// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprint(w, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Fprint(w io.Writer, a ...interface{}) (n int, err error) { + return fmt.Fprint(w, c.convertArgs(a)...) +} + +// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprintf(w, format, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { + return fmt.Fprintf(w, format, c.convertArgs(a)...) +} + +// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it +// passed with a Formatter interface returned by c.NewFormatter. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprintln(w, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Fprintln(w io.Writer, a ...interface{}) (n int, err error) { + return fmt.Fprintln(w, c.convertArgs(a)...) +} + +// Print is a wrapper for fmt.Print that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Print(c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Print(a ...interface{}) (n int, err error) { + return fmt.Print(c.convertArgs(a)...) +} + +// Printf is a wrapper for fmt.Printf that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Printf(format, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Printf(format string, a ...interface{}) (n int, err error) { + return fmt.Printf(format, c.convertArgs(a)...) +} + +// Println is a wrapper for fmt.Println that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Println(c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Println(a ...interface{}) (n int, err error) { + return fmt.Println(c.convertArgs(a)...) +} + +// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprint(c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Sprint(a ...interface{}) string { + return fmt.Sprint(c.convertArgs(a)...) +} + +// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprintf(format, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Sprintf(format string, a ...interface{}) string { + return fmt.Sprintf(format, c.convertArgs(a)...) +} + +// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it +// were passed with a Formatter interface returned by c.NewFormatter. It +// returns the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprintln(c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Sprintln(a ...interface{}) string { + return fmt.Sprintln(c.convertArgs(a)...) +} + +/* +NewFormatter returns a custom formatter that satisfies the fmt.Formatter +interface. As a result, it integrates cleanly with standard fmt package +printing functions. The formatter is useful for inline printing of smaller data +types similar to the standard %v format specifier. + +The custom formatter only responds to the %v (most compact), %+v (adds pointer +addresses), %#v (adds types), and %#+v (adds types and pointer addresses) verb +combinations. Any other verbs such as %x and %q will be sent to the the +standard fmt package for formatting. In addition, the custom formatter ignores +the width and precision arguments (however they will still work on the format +specifiers not handled by the custom formatter). + +Typically this function shouldn't be called directly. It is much easier to make +use of the custom formatter by calling one of the convenience functions such as +c.Printf, c.Println, or c.Printf. +*/ +func (c *ConfigState) NewFormatter(v interface{}) fmt.Formatter { + return newFormatter(c, v) +} + +// Fdump formats and displays the passed arguments to io.Writer w. It formats +// exactly the same as Dump. +func (c *ConfigState) Fdump(w io.Writer, a ...interface{}) { + fdump(c, w, a...) +} + +/* +Dump displays the passed parameters to standard out with newlines, customizable +indentation, and additional debug information such as complete types and all +pointer addresses used to indirect to the final value. It provides the +following features over the built-in printing facilities provided by the fmt +package: + + * Pointers are dereferenced and followed + * Circular data structures are detected and handled properly + * Custom Stringer/error interfaces are optionally invoked, including + on unexported types + * Custom types which only implement the Stringer/error interfaces via + a pointer receiver are optionally invoked when passing non-pointer + variables + * Byte arrays and slices are dumped like the hexdump -C command which + includes offsets, byte values in hex, and ASCII output + +The configuration options are controlled by modifying the public members +of c. See ConfigState for options documentation. + +See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to +get the formatted result as a string. +*/ +func (c *ConfigState) Dump(a ...interface{}) { + fdump(c, os.Stdout, a...) +} + +// Sdump returns a string with the passed arguments formatted exactly the same +// as Dump. +func (c *ConfigState) Sdump(a ...interface{}) string { + var buf bytes.Buffer + fdump(c, &buf, a...) + return buf.String() +} + +// convertArgs accepts a slice of arguments and returns a slice of the same +// length with each argument converted to a spew Formatter interface using +// the ConfigState associated with s. +func (c *ConfigState) convertArgs(args []interface{}) (formatters []interface{}) { + formatters = make([]interface{}, len(args)) + for index, arg := range args { + formatters[index] = newFormatter(c, arg) + } + return formatters +} + +// NewDefaultConfig returns a ConfigState with the following default settings. +// +// Indent: " " +// MaxDepth: 0 +// DisableMethods: false +// DisablePointerMethods: false +// ContinueOnMethod: false +// SortKeys: false +func NewDefaultConfig() *ConfigState { + return &ConfigState{Indent: " "} +} diff --git a/vendor/github.com/davecgh/go-spew/spew/doc.go b/vendor/github.com/davecgh/go-spew/spew/doc.go new file mode 100644 index 0000000..aacaac6 --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/doc.go @@ -0,0 +1,211 @@ +/* + * Copyright (c) 2013-2016 Dave Collins + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* +Package spew implements a deep pretty printer for Go data structures to aid in +debugging. + +A quick overview of the additional features spew provides over the built-in +printing facilities for Go data types are as follows: + + * Pointers are dereferenced and followed + * Circular data structures are detected and handled properly + * Custom Stringer/error interfaces are optionally invoked, including + on unexported types + * Custom types which only implement the Stringer/error interfaces via + a pointer receiver are optionally invoked when passing non-pointer + variables + * Byte arrays and slices are dumped like the hexdump -C command which + includes offsets, byte values in hex, and ASCII output (only when using + Dump style) + +There are two different approaches spew allows for dumping Go data structures: + + * Dump style which prints with newlines, customizable indentation, + and additional debug information such as types and all pointer addresses + used to indirect to the final value + * A custom Formatter interface that integrates cleanly with the standard fmt + package and replaces %v, %+v, %#v, and %#+v to provide inline printing + similar to the default %v while providing the additional functionality + outlined above and passing unsupported format verbs such as %x and %q + along to fmt + +Quick Start + +This section demonstrates how to quickly get started with spew. See the +sections below for further details on formatting and configuration options. + +To dump a variable with full newlines, indentation, type, and pointer +information use Dump, Fdump, or Sdump: + spew.Dump(myVar1, myVar2, ...) + spew.Fdump(someWriter, myVar1, myVar2, ...) + str := spew.Sdump(myVar1, myVar2, ...) + +Alternatively, if you would prefer to use format strings with a compacted inline +printing style, use the convenience wrappers Printf, Fprintf, etc with +%v (most compact), %+v (adds pointer addresses), %#v (adds types), or +%#+v (adds types and pointer addresses): + spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2) + spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) + spew.Fprintf(someWriter, "myVar1: %v -- myVar2: %+v", myVar1, myVar2) + spew.Fprintf(someWriter, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) + +Configuration Options + +Configuration of spew is handled by fields in the ConfigState type. For +convenience, all of the top-level functions use a global state available +via the spew.Config global. + +It is also possible to create a ConfigState instance that provides methods +equivalent to the top-level functions. This allows concurrent configuration +options. See the ConfigState documentation for more details. + +The following configuration options are available: + * Indent + String to use for each indentation level for Dump functions. + It is a single space by default. A popular alternative is "\t". + + * MaxDepth + Maximum number of levels to descend into nested data structures. + There is no limit by default. + + * DisableMethods + Disables invocation of error and Stringer interface methods. + Method invocation is enabled by default. + + * DisablePointerMethods + Disables invocation of error and Stringer interface methods on types + which only accept pointer receivers from non-pointer variables. + Pointer method invocation is enabled by default. + + * DisablePointerAddresses + DisablePointerAddresses specifies whether to disable the printing of + pointer addresses. This is useful when diffing data structures in tests. + + * DisableCapacities + DisableCapacities specifies whether to disable the printing of + capacities for arrays, slices, maps and channels. This is useful when + diffing data structures in tests. + + * ContinueOnMethod + Enables recursion into types after invoking error and Stringer interface + methods. Recursion after method invocation is disabled by default. + + * SortKeys + Specifies map keys should be sorted before being printed. Use + this to have a more deterministic, diffable output. Note that + only native types (bool, int, uint, floats, uintptr and string) + and types which implement error or Stringer interfaces are + supported with other types sorted according to the + reflect.Value.String() output which guarantees display + stability. Natural map order is used by default. + + * SpewKeys + Specifies that, as a last resort attempt, map keys should be + spewed to strings and sorted by those strings. This is only + considered if SortKeys is true. + +Dump Usage + +Simply call spew.Dump with a list of variables you want to dump: + + spew.Dump(myVar1, myVar2, ...) + +You may also call spew.Fdump if you would prefer to output to an arbitrary +io.Writer. For example, to dump to standard error: + + spew.Fdump(os.Stderr, myVar1, myVar2, ...) + +A third option is to call spew.Sdump to get the formatted output as a string: + + str := spew.Sdump(myVar1, myVar2, ...) + +Sample Dump Output + +See the Dump example for details on the setup of the types and variables being +shown here. + + (main.Foo) { + unexportedField: (*main.Bar)(0xf84002e210)({ + flag: (main.Flag) flagTwo, + data: (uintptr) + }), + ExportedField: (map[interface {}]interface {}) (len=1) { + (string) (len=3) "one": (bool) true + } + } + +Byte (and uint8) arrays and slices are displayed uniquely like the hexdump -C +command as shown. + ([]uint8) (len=32 cap=32) { + 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 |............... | + 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 |!"#$%&'()*+,-./0| + 00000020 31 32 |12| + } + +Custom Formatter + +Spew provides a custom formatter that implements the fmt.Formatter interface +so that it integrates cleanly with standard fmt package printing functions. The +formatter is useful for inline printing of smaller data types similar to the +standard %v format specifier. + +The custom formatter only responds to the %v (most compact), %+v (adds pointer +addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb +combinations. Any other verbs such as %x and %q will be sent to the the +standard fmt package for formatting. In addition, the custom formatter ignores +the width and precision arguments (however they will still work on the format +specifiers not handled by the custom formatter). + +Custom Formatter Usage + +The simplest way to make use of the spew custom formatter is to call one of the +convenience functions such as spew.Printf, spew.Println, or spew.Printf. The +functions have syntax you are most likely already familiar with: + + spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2) + spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) + spew.Println(myVar, myVar2) + spew.Fprintf(os.Stderr, "myVar1: %v -- myVar2: %+v", myVar1, myVar2) + spew.Fprintf(os.Stderr, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) + +See the Index for the full list convenience functions. + +Sample Formatter Output + +Double pointer to a uint8: + %v: <**>5 + %+v: <**>(0xf8400420d0->0xf8400420c8)5 + %#v: (**uint8)5 + %#+v: (**uint8)(0xf8400420d0->0xf8400420c8)5 + +Pointer to circular struct with a uint8 field and a pointer to itself: + %v: <*>{1 <*>} + %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)} + %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)} + %#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)} + +See the Printf example for details on the setup of variables being shown +here. + +Errors + +Since it is possible for custom Stringer/error interfaces to panic, spew +detects them and handles them internally by printing the panic information +inline with the output. Since spew is intended to provide deep pretty printing +capabilities on structures, it intentionally does not return any errors. +*/ +package spew diff --git a/vendor/github.com/davecgh/go-spew/spew/dump.go b/vendor/github.com/davecgh/go-spew/spew/dump.go new file mode 100644 index 0000000..f78d89f --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/dump.go @@ -0,0 +1,509 @@ +/* + * Copyright (c) 2013-2016 Dave Collins + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew + +import ( + "bytes" + "encoding/hex" + "fmt" + "io" + "os" + "reflect" + "regexp" + "strconv" + "strings" +) + +var ( + // uint8Type is a reflect.Type representing a uint8. It is used to + // convert cgo types to uint8 slices for hexdumping. + uint8Type = reflect.TypeOf(uint8(0)) + + // cCharRE is a regular expression that matches a cgo char. + // It is used to detect character arrays to hexdump them. + cCharRE = regexp.MustCompile(`^.*\._Ctype_char$`) + + // cUnsignedCharRE is a regular expression that matches a cgo unsigned + // char. It is used to detect unsigned character arrays to hexdump + // them. + cUnsignedCharRE = regexp.MustCompile(`^.*\._Ctype_unsignedchar$`) + + // cUint8tCharRE is a regular expression that matches a cgo uint8_t. + // It is used to detect uint8_t arrays to hexdump them. + cUint8tCharRE = regexp.MustCompile(`^.*\._Ctype_uint8_t$`) +) + +// dumpState contains information about the state of a dump operation. +type dumpState struct { + w io.Writer + depth int + pointers map[uintptr]int + ignoreNextType bool + ignoreNextIndent bool + cs *ConfigState +} + +// indent performs indentation according to the depth level and cs.Indent +// option. +func (d *dumpState) indent() { + if d.ignoreNextIndent { + d.ignoreNextIndent = false + return + } + d.w.Write(bytes.Repeat([]byte(d.cs.Indent), d.depth)) +} + +// unpackValue returns values inside of non-nil interfaces when possible. +// This is useful for data types like structs, arrays, slices, and maps which +// can contain varying types packed inside an interface. +func (d *dumpState) unpackValue(v reflect.Value) reflect.Value { + if v.Kind() == reflect.Interface && !v.IsNil() { + v = v.Elem() + } + return v +} + +// dumpPtr handles formatting of pointers by indirecting them as necessary. +func (d *dumpState) dumpPtr(v reflect.Value) { + // Remove pointers at or below the current depth from map used to detect + // circular refs. + for k, depth := range d.pointers { + if depth >= d.depth { + delete(d.pointers, k) + } + } + + // Keep list of all dereferenced pointers to show later. + pointerChain := make([]uintptr, 0) + + // Figure out how many levels of indirection there are by dereferencing + // pointers and unpacking interfaces down the chain while detecting circular + // references. + nilFound := false + cycleFound := false + indirects := 0 + ve := v + for ve.Kind() == reflect.Ptr { + if ve.IsNil() { + nilFound = true + break + } + indirects++ + addr := ve.Pointer() + pointerChain = append(pointerChain, addr) + if pd, ok := d.pointers[addr]; ok && pd < d.depth { + cycleFound = true + indirects-- + break + } + d.pointers[addr] = d.depth + + ve = ve.Elem() + if ve.Kind() == reflect.Interface { + if ve.IsNil() { + nilFound = true + break + } + ve = ve.Elem() + } + } + + // Display type information. + d.w.Write(openParenBytes) + d.w.Write(bytes.Repeat(asteriskBytes, indirects)) + d.w.Write([]byte(ve.Type().String())) + d.w.Write(closeParenBytes) + + // Display pointer information. + if !d.cs.DisablePointerAddresses && len(pointerChain) > 0 { + d.w.Write(openParenBytes) + for i, addr := range pointerChain { + if i > 0 { + d.w.Write(pointerChainBytes) + } + printHexPtr(d.w, addr) + } + d.w.Write(closeParenBytes) + } + + // Display dereferenced value. + d.w.Write(openParenBytes) + switch { + case nilFound: + d.w.Write(nilAngleBytes) + + case cycleFound: + d.w.Write(circularBytes) + + default: + d.ignoreNextType = true + d.dump(ve) + } + d.w.Write(closeParenBytes) +} + +// dumpSlice handles formatting of arrays and slices. Byte (uint8 under +// reflection) arrays and slices are dumped in hexdump -C fashion. +func (d *dumpState) dumpSlice(v reflect.Value) { + // Determine whether this type should be hex dumped or not. Also, + // for types which should be hexdumped, try to use the underlying data + // first, then fall back to trying to convert them to a uint8 slice. + var buf []uint8 + doConvert := false + doHexDump := false + numEntries := v.Len() + if numEntries > 0 { + vt := v.Index(0).Type() + vts := vt.String() + switch { + // C types that need to be converted. + case cCharRE.MatchString(vts): + fallthrough + case cUnsignedCharRE.MatchString(vts): + fallthrough + case cUint8tCharRE.MatchString(vts): + doConvert = true + + // Try to use existing uint8 slices and fall back to converting + // and copying if that fails. + case vt.Kind() == reflect.Uint8: + // We need an addressable interface to convert the type + // to a byte slice. However, the reflect package won't + // give us an interface on certain things like + // unexported struct fields in order to enforce + // visibility rules. We use unsafe, when available, to + // bypass these restrictions since this package does not + // mutate the values. + vs := v + if !vs.CanInterface() || !vs.CanAddr() { + vs = unsafeReflectValue(vs) + } + if !UnsafeDisabled { + vs = vs.Slice(0, numEntries) + + // Use the existing uint8 slice if it can be + // type asserted. + iface := vs.Interface() + if slice, ok := iface.([]uint8); ok { + buf = slice + doHexDump = true + break + } + } + + // The underlying data needs to be converted if it can't + // be type asserted to a uint8 slice. + doConvert = true + } + + // Copy and convert the underlying type if needed. + if doConvert && vt.ConvertibleTo(uint8Type) { + // Convert and copy each element into a uint8 byte + // slice. + buf = make([]uint8, numEntries) + for i := 0; i < numEntries; i++ { + vv := v.Index(i) + buf[i] = uint8(vv.Convert(uint8Type).Uint()) + } + doHexDump = true + } + } + + // Hexdump the entire slice as needed. + if doHexDump { + indent := strings.Repeat(d.cs.Indent, d.depth) + str := indent + hex.Dump(buf) + str = strings.Replace(str, "\n", "\n"+indent, -1) + str = strings.TrimRight(str, d.cs.Indent) + d.w.Write([]byte(str)) + return + } + + // Recursively call dump for each item. + for i := 0; i < numEntries; i++ { + d.dump(d.unpackValue(v.Index(i))) + if i < (numEntries - 1) { + d.w.Write(commaNewlineBytes) + } else { + d.w.Write(newlineBytes) + } + } +} + +// dump is the main workhorse for dumping a value. It uses the passed reflect +// value to figure out what kind of object we are dealing with and formats it +// appropriately. It is a recursive function, however circular data structures +// are detected and handled properly. +func (d *dumpState) dump(v reflect.Value) { + // Handle invalid reflect values immediately. + kind := v.Kind() + if kind == reflect.Invalid { + d.w.Write(invalidAngleBytes) + return + } + + // Handle pointers specially. + if kind == reflect.Ptr { + d.indent() + d.dumpPtr(v) + return + } + + // Print type information unless already handled elsewhere. + if !d.ignoreNextType { + d.indent() + d.w.Write(openParenBytes) + d.w.Write([]byte(v.Type().String())) + d.w.Write(closeParenBytes) + d.w.Write(spaceBytes) + } + d.ignoreNextType = false + + // Display length and capacity if the built-in len and cap functions + // work with the value's kind and the len/cap itself is non-zero. + valueLen, valueCap := 0, 0 + switch v.Kind() { + case reflect.Array, reflect.Slice, reflect.Chan: + valueLen, valueCap = v.Len(), v.Cap() + case reflect.Map, reflect.String: + valueLen = v.Len() + } + if valueLen != 0 || !d.cs.DisableCapacities && valueCap != 0 { + d.w.Write(openParenBytes) + if valueLen != 0 { + d.w.Write(lenEqualsBytes) + printInt(d.w, int64(valueLen), 10) + } + if !d.cs.DisableCapacities && valueCap != 0 { + if valueLen != 0 { + d.w.Write(spaceBytes) + } + d.w.Write(capEqualsBytes) + printInt(d.w, int64(valueCap), 10) + } + d.w.Write(closeParenBytes) + d.w.Write(spaceBytes) + } + + // Call Stringer/error interfaces if they exist and the handle methods flag + // is enabled + if !d.cs.DisableMethods { + if (kind != reflect.Invalid) && (kind != reflect.Interface) { + if handled := handleMethods(d.cs, d.w, v); handled { + return + } + } + } + + switch kind { + case reflect.Invalid: + // Do nothing. We should never get here since invalid has already + // been handled above. + + case reflect.Bool: + printBool(d.w, v.Bool()) + + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: + printInt(d.w, v.Int(), 10) + + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: + printUint(d.w, v.Uint(), 10) + + case reflect.Float32: + printFloat(d.w, v.Float(), 32) + + case reflect.Float64: + printFloat(d.w, v.Float(), 64) + + case reflect.Complex64: + printComplex(d.w, v.Complex(), 32) + + case reflect.Complex128: + printComplex(d.w, v.Complex(), 64) + + case reflect.Slice: + if v.IsNil() { + d.w.Write(nilAngleBytes) + break + } + fallthrough + + case reflect.Array: + d.w.Write(openBraceNewlineBytes) + d.depth++ + if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { + d.indent() + d.w.Write(maxNewlineBytes) + } else { + d.dumpSlice(v) + } + d.depth-- + d.indent() + d.w.Write(closeBraceBytes) + + case reflect.String: + d.w.Write([]byte(strconv.Quote(v.String()))) + + case reflect.Interface: + // The only time we should get here is for nil interfaces due to + // unpackValue calls. + if v.IsNil() { + d.w.Write(nilAngleBytes) + } + + case reflect.Ptr: + // Do nothing. We should never get here since pointers have already + // been handled above. + + case reflect.Map: + // nil maps should be indicated as different than empty maps + if v.IsNil() { + d.w.Write(nilAngleBytes) + break + } + + d.w.Write(openBraceNewlineBytes) + d.depth++ + if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { + d.indent() + d.w.Write(maxNewlineBytes) + } else { + numEntries := v.Len() + keys := v.MapKeys() + if d.cs.SortKeys { + sortValues(keys, d.cs) + } + for i, key := range keys { + d.dump(d.unpackValue(key)) + d.w.Write(colonSpaceBytes) + d.ignoreNextIndent = true + d.dump(d.unpackValue(v.MapIndex(key))) + if i < (numEntries - 1) { + d.w.Write(commaNewlineBytes) + } else { + d.w.Write(newlineBytes) + } + } + } + d.depth-- + d.indent() + d.w.Write(closeBraceBytes) + + case reflect.Struct: + d.w.Write(openBraceNewlineBytes) + d.depth++ + if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { + d.indent() + d.w.Write(maxNewlineBytes) + } else { + vt := v.Type() + numFields := v.NumField() + for i := 0; i < numFields; i++ { + d.indent() + vtf := vt.Field(i) + d.w.Write([]byte(vtf.Name)) + d.w.Write(colonSpaceBytes) + d.ignoreNextIndent = true + d.dump(d.unpackValue(v.Field(i))) + if i < (numFields - 1) { + d.w.Write(commaNewlineBytes) + } else { + d.w.Write(newlineBytes) + } + } + } + d.depth-- + d.indent() + d.w.Write(closeBraceBytes) + + case reflect.Uintptr: + printHexPtr(d.w, uintptr(v.Uint())) + + case reflect.UnsafePointer, reflect.Chan, reflect.Func: + printHexPtr(d.w, v.Pointer()) + + // There were not any other types at the time this code was written, but + // fall back to letting the default fmt package handle it in case any new + // types are added. + default: + if v.CanInterface() { + fmt.Fprintf(d.w, "%v", v.Interface()) + } else { + fmt.Fprintf(d.w, "%v", v.String()) + } + } +} + +// fdump is a helper function to consolidate the logic from the various public +// methods which take varying writers and config states. +func fdump(cs *ConfigState, w io.Writer, a ...interface{}) { + for _, arg := range a { + if arg == nil { + w.Write(interfaceBytes) + w.Write(spaceBytes) + w.Write(nilAngleBytes) + w.Write(newlineBytes) + continue + } + + d := dumpState{w: w, cs: cs} + d.pointers = make(map[uintptr]int) + d.dump(reflect.ValueOf(arg)) + d.w.Write(newlineBytes) + } +} + +// Fdump formats and displays the passed arguments to io.Writer w. It formats +// exactly the same as Dump. +func Fdump(w io.Writer, a ...interface{}) { + fdump(&Config, w, a...) +} + +// Sdump returns a string with the passed arguments formatted exactly the same +// as Dump. +func Sdump(a ...interface{}) string { + var buf bytes.Buffer + fdump(&Config, &buf, a...) + return buf.String() +} + +/* +Dump displays the passed parameters to standard out with newlines, customizable +indentation, and additional debug information such as complete types and all +pointer addresses used to indirect to the final value. It provides the +following features over the built-in printing facilities provided by the fmt +package: + + * Pointers are dereferenced and followed + * Circular data structures are detected and handled properly + * Custom Stringer/error interfaces are optionally invoked, including + on unexported types + * Custom types which only implement the Stringer/error interfaces via + a pointer receiver are optionally invoked when passing non-pointer + variables + * Byte arrays and slices are dumped like the hexdump -C command which + includes offsets, byte values in hex, and ASCII output + +The configuration options are controlled by an exported package global, +spew.Config. See ConfigState for options documentation. + +See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to +get the formatted result as a string. +*/ +func Dump(a ...interface{}) { + fdump(&Config, os.Stdout, a...) +} diff --git a/vendor/github.com/davecgh/go-spew/spew/format.go b/vendor/github.com/davecgh/go-spew/spew/format.go new file mode 100644 index 0000000..b04edb7 --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/format.go @@ -0,0 +1,419 @@ +/* + * Copyright (c) 2013-2016 Dave Collins + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew + +import ( + "bytes" + "fmt" + "reflect" + "strconv" + "strings" +) + +// supportedFlags is a list of all the character flags supported by fmt package. +const supportedFlags = "0-+# " + +// formatState implements the fmt.Formatter interface and contains information +// about the state of a formatting operation. The NewFormatter function can +// be used to get a new Formatter which can be used directly as arguments +// in standard fmt package printing calls. +type formatState struct { + value interface{} + fs fmt.State + depth int + pointers map[uintptr]int + ignoreNextType bool + cs *ConfigState +} + +// buildDefaultFormat recreates the original format string without precision +// and width information to pass in to fmt.Sprintf in the case of an +// unrecognized type. Unless new types are added to the language, this +// function won't ever be called. +func (f *formatState) buildDefaultFormat() (format string) { + buf := bytes.NewBuffer(percentBytes) + + for _, flag := range supportedFlags { + if f.fs.Flag(int(flag)) { + buf.WriteRune(flag) + } + } + + buf.WriteRune('v') + + format = buf.String() + return format +} + +// constructOrigFormat recreates the original format string including precision +// and width information to pass along to the standard fmt package. This allows +// automatic deferral of all format strings this package doesn't support. +func (f *formatState) constructOrigFormat(verb rune) (format string) { + buf := bytes.NewBuffer(percentBytes) + + for _, flag := range supportedFlags { + if f.fs.Flag(int(flag)) { + buf.WriteRune(flag) + } + } + + if width, ok := f.fs.Width(); ok { + buf.WriteString(strconv.Itoa(width)) + } + + if precision, ok := f.fs.Precision(); ok { + buf.Write(precisionBytes) + buf.WriteString(strconv.Itoa(precision)) + } + + buf.WriteRune(verb) + + format = buf.String() + return format +} + +// unpackValue returns values inside of non-nil interfaces when possible and +// ensures that types for values which have been unpacked from an interface +// are displayed when the show types flag is also set. +// This is useful for data types like structs, arrays, slices, and maps which +// can contain varying types packed inside an interface. +func (f *formatState) unpackValue(v reflect.Value) reflect.Value { + if v.Kind() == reflect.Interface { + f.ignoreNextType = false + if !v.IsNil() { + v = v.Elem() + } + } + return v +} + +// formatPtr handles formatting of pointers by indirecting them as necessary. +func (f *formatState) formatPtr(v reflect.Value) { + // Display nil if top level pointer is nil. + showTypes := f.fs.Flag('#') + if v.IsNil() && (!showTypes || f.ignoreNextType) { + f.fs.Write(nilAngleBytes) + return + } + + // Remove pointers at or below the current depth from map used to detect + // circular refs. + for k, depth := range f.pointers { + if depth >= f.depth { + delete(f.pointers, k) + } + } + + // Keep list of all dereferenced pointers to possibly show later. + pointerChain := make([]uintptr, 0) + + // Figure out how many levels of indirection there are by derferencing + // pointers and unpacking interfaces down the chain while detecting circular + // references. + nilFound := false + cycleFound := false + indirects := 0 + ve := v + for ve.Kind() == reflect.Ptr { + if ve.IsNil() { + nilFound = true + break + } + indirects++ + addr := ve.Pointer() + pointerChain = append(pointerChain, addr) + if pd, ok := f.pointers[addr]; ok && pd < f.depth { + cycleFound = true + indirects-- + break + } + f.pointers[addr] = f.depth + + ve = ve.Elem() + if ve.Kind() == reflect.Interface { + if ve.IsNil() { + nilFound = true + break + } + ve = ve.Elem() + } + } + + // Display type or indirection level depending on flags. + if showTypes && !f.ignoreNextType { + f.fs.Write(openParenBytes) + f.fs.Write(bytes.Repeat(asteriskBytes, indirects)) + f.fs.Write([]byte(ve.Type().String())) + f.fs.Write(closeParenBytes) + } else { + if nilFound || cycleFound { + indirects += strings.Count(ve.Type().String(), "*") + } + f.fs.Write(openAngleBytes) + f.fs.Write([]byte(strings.Repeat("*", indirects))) + f.fs.Write(closeAngleBytes) + } + + // Display pointer information depending on flags. + if f.fs.Flag('+') && (len(pointerChain) > 0) { + f.fs.Write(openParenBytes) + for i, addr := range pointerChain { + if i > 0 { + f.fs.Write(pointerChainBytes) + } + printHexPtr(f.fs, addr) + } + f.fs.Write(closeParenBytes) + } + + // Display dereferenced value. + switch { + case nilFound: + f.fs.Write(nilAngleBytes) + + case cycleFound: + f.fs.Write(circularShortBytes) + + default: + f.ignoreNextType = true + f.format(ve) + } +} + +// format is the main workhorse for providing the Formatter interface. It +// uses the passed reflect value to figure out what kind of object we are +// dealing with and formats it appropriately. It is a recursive function, +// however circular data structures are detected and handled properly. +func (f *formatState) format(v reflect.Value) { + // Handle invalid reflect values immediately. + kind := v.Kind() + if kind == reflect.Invalid { + f.fs.Write(invalidAngleBytes) + return + } + + // Handle pointers specially. + if kind == reflect.Ptr { + f.formatPtr(v) + return + } + + // Print type information unless already handled elsewhere. + if !f.ignoreNextType && f.fs.Flag('#') { + f.fs.Write(openParenBytes) + f.fs.Write([]byte(v.Type().String())) + f.fs.Write(closeParenBytes) + } + f.ignoreNextType = false + + // Call Stringer/error interfaces if they exist and the handle methods + // flag is enabled. + if !f.cs.DisableMethods { + if (kind != reflect.Invalid) && (kind != reflect.Interface) { + if handled := handleMethods(f.cs, f.fs, v); handled { + return + } + } + } + + switch kind { + case reflect.Invalid: + // Do nothing. We should never get here since invalid has already + // been handled above. + + case reflect.Bool: + printBool(f.fs, v.Bool()) + + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: + printInt(f.fs, v.Int(), 10) + + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: + printUint(f.fs, v.Uint(), 10) + + case reflect.Float32: + printFloat(f.fs, v.Float(), 32) + + case reflect.Float64: + printFloat(f.fs, v.Float(), 64) + + case reflect.Complex64: + printComplex(f.fs, v.Complex(), 32) + + case reflect.Complex128: + printComplex(f.fs, v.Complex(), 64) + + case reflect.Slice: + if v.IsNil() { + f.fs.Write(nilAngleBytes) + break + } + fallthrough + + case reflect.Array: + f.fs.Write(openBracketBytes) + f.depth++ + if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { + f.fs.Write(maxShortBytes) + } else { + numEntries := v.Len() + for i := 0; i < numEntries; i++ { + if i > 0 { + f.fs.Write(spaceBytes) + } + f.ignoreNextType = true + f.format(f.unpackValue(v.Index(i))) + } + } + f.depth-- + f.fs.Write(closeBracketBytes) + + case reflect.String: + f.fs.Write([]byte(v.String())) + + case reflect.Interface: + // The only time we should get here is for nil interfaces due to + // unpackValue calls. + if v.IsNil() { + f.fs.Write(nilAngleBytes) + } + + case reflect.Ptr: + // Do nothing. We should never get here since pointers have already + // been handled above. + + case reflect.Map: + // nil maps should be indicated as different than empty maps + if v.IsNil() { + f.fs.Write(nilAngleBytes) + break + } + + f.fs.Write(openMapBytes) + f.depth++ + if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { + f.fs.Write(maxShortBytes) + } else { + keys := v.MapKeys() + if f.cs.SortKeys { + sortValues(keys, f.cs) + } + for i, key := range keys { + if i > 0 { + f.fs.Write(spaceBytes) + } + f.ignoreNextType = true + f.format(f.unpackValue(key)) + f.fs.Write(colonBytes) + f.ignoreNextType = true + f.format(f.unpackValue(v.MapIndex(key))) + } + } + f.depth-- + f.fs.Write(closeMapBytes) + + case reflect.Struct: + numFields := v.NumField() + f.fs.Write(openBraceBytes) + f.depth++ + if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { + f.fs.Write(maxShortBytes) + } else { + vt := v.Type() + for i := 0; i < numFields; i++ { + if i > 0 { + f.fs.Write(spaceBytes) + } + vtf := vt.Field(i) + if f.fs.Flag('+') || f.fs.Flag('#') { + f.fs.Write([]byte(vtf.Name)) + f.fs.Write(colonBytes) + } + f.format(f.unpackValue(v.Field(i))) + } + } + f.depth-- + f.fs.Write(closeBraceBytes) + + case reflect.Uintptr: + printHexPtr(f.fs, uintptr(v.Uint())) + + case reflect.UnsafePointer, reflect.Chan, reflect.Func: + printHexPtr(f.fs, v.Pointer()) + + // There were not any other types at the time this code was written, but + // fall back to letting the default fmt package handle it if any get added. + default: + format := f.buildDefaultFormat() + if v.CanInterface() { + fmt.Fprintf(f.fs, format, v.Interface()) + } else { + fmt.Fprintf(f.fs, format, v.String()) + } + } +} + +// Format satisfies the fmt.Formatter interface. See NewFormatter for usage +// details. +func (f *formatState) Format(fs fmt.State, verb rune) { + f.fs = fs + + // Use standard formatting for verbs that are not v. + if verb != 'v' { + format := f.constructOrigFormat(verb) + fmt.Fprintf(fs, format, f.value) + return + } + + if f.value == nil { + if fs.Flag('#') { + fs.Write(interfaceBytes) + } + fs.Write(nilAngleBytes) + return + } + + f.format(reflect.ValueOf(f.value)) +} + +// newFormatter is a helper function to consolidate the logic from the various +// public methods which take varying config states. +func newFormatter(cs *ConfigState, v interface{}) fmt.Formatter { + fs := &formatState{value: v, cs: cs} + fs.pointers = make(map[uintptr]int) + return fs +} + +/* +NewFormatter returns a custom formatter that satisfies the fmt.Formatter +interface. As a result, it integrates cleanly with standard fmt package +printing functions. The formatter is useful for inline printing of smaller data +types similar to the standard %v format specifier. + +The custom formatter only responds to the %v (most compact), %+v (adds pointer +addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb +combinations. Any other verbs such as %x and %q will be sent to the the +standard fmt package for formatting. In addition, the custom formatter ignores +the width and precision arguments (however they will still work on the format +specifiers not handled by the custom formatter). + +Typically this function shouldn't be called directly. It is much easier to make +use of the custom formatter by calling one of the convenience functions such as +Printf, Println, or Fprintf. +*/ +func NewFormatter(v interface{}) fmt.Formatter { + return newFormatter(&Config, v) +} diff --git a/vendor/github.com/davecgh/go-spew/spew/spew.go b/vendor/github.com/davecgh/go-spew/spew/spew.go new file mode 100644 index 0000000..32c0e33 --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/spew.go @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2013-2016 Dave Collins + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew + +import ( + "fmt" + "io" +) + +// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the formatted string as a value that satisfies error. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Errorf(format, spew.NewFormatter(a), spew.NewFormatter(b)) +func Errorf(format string, a ...interface{}) (err error) { + return fmt.Errorf(format, convertArgs(a)...) +} + +// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprint(w, spew.NewFormatter(a), spew.NewFormatter(b)) +func Fprint(w io.Writer, a ...interface{}) (n int, err error) { + return fmt.Fprint(w, convertArgs(a)...) +} + +// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprintf(w, format, spew.NewFormatter(a), spew.NewFormatter(b)) +func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { + return fmt.Fprintf(w, format, convertArgs(a)...) +} + +// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it +// passed with a default Formatter interface returned by NewFormatter. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprintln(w, spew.NewFormatter(a), spew.NewFormatter(b)) +func Fprintln(w io.Writer, a ...interface{}) (n int, err error) { + return fmt.Fprintln(w, convertArgs(a)...) +} + +// Print is a wrapper for fmt.Print that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Print(spew.NewFormatter(a), spew.NewFormatter(b)) +func Print(a ...interface{}) (n int, err error) { + return fmt.Print(convertArgs(a)...) +} + +// Printf is a wrapper for fmt.Printf that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Printf(format, spew.NewFormatter(a), spew.NewFormatter(b)) +func Printf(format string, a ...interface{}) (n int, err error) { + return fmt.Printf(format, convertArgs(a)...) +} + +// Println is a wrapper for fmt.Println that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Println(spew.NewFormatter(a), spew.NewFormatter(b)) +func Println(a ...interface{}) (n int, err error) { + return fmt.Println(convertArgs(a)...) +} + +// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprint(spew.NewFormatter(a), spew.NewFormatter(b)) +func Sprint(a ...interface{}) string { + return fmt.Sprint(convertArgs(a)...) +} + +// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprintf(format, spew.NewFormatter(a), spew.NewFormatter(b)) +func Sprintf(format string, a ...interface{}) string { + return fmt.Sprintf(format, convertArgs(a)...) +} + +// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it +// were passed with a default Formatter interface returned by NewFormatter. It +// returns the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprintln(spew.NewFormatter(a), spew.NewFormatter(b)) +func Sprintln(a ...interface{}) string { + return fmt.Sprintln(convertArgs(a)...) +} + +// convertArgs accepts a slice of arguments and returns a slice of the same +// length with each argument converted to a default spew Formatter interface. +func convertArgs(args []interface{}) (formatters []interface{}) { + formatters = make([]interface{}, len(args)) + for index, arg := range args { + formatters[index] = NewFormatter(arg) + } + return formatters +} diff --git a/vendor/github.com/eapache/go-resiliency/LICENSE b/vendor/github.com/eapache/go-resiliency/LICENSE new file mode 100644 index 0000000..698a3f5 --- /dev/null +++ b/vendor/github.com/eapache/go-resiliency/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2014 Evan Huus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/vendor/github.com/eapache/go-resiliency/breaker/README.md b/vendor/github.com/eapache/go-resiliency/breaker/README.md new file mode 100644 index 0000000..2d1b3d9 --- /dev/null +++ b/vendor/github.com/eapache/go-resiliency/breaker/README.md @@ -0,0 +1,34 @@ +circuit-breaker +=============== + +[![Build Status](https://travis-ci.org/eapache/go-resiliency.svg?branch=master)](https://travis-ci.org/eapache/go-resiliency) +[![GoDoc](https://godoc.org/github.com/eapache/go-resiliency/breaker?status.svg)](https://godoc.org/github.com/eapache/go-resiliency/breaker) +[![Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-active-blue.svg)](https://eapache.github.io/conduct.html) + +The circuit-breaker resiliency pattern for golang. + +Creating a breaker takes three parameters: +- error threshold (for opening the breaker) +- success threshold (for closing the breaker) +- timeout (how long to keep the breaker open) + +```go +b := breaker.New(3, 1, 5*time.Second) + +for { + result := b.Run(func() error { + // communicate with some external service and + // return an error if the communication failed + return nil + }) + + switch result { + case nil: + // success! + case breaker.ErrBreakerOpen: + // our function wasn't run because the breaker was open + default: + // some other error + } +} +``` diff --git a/vendor/github.com/eapache/go-resiliency/breaker/breaker.go b/vendor/github.com/eapache/go-resiliency/breaker/breaker.go new file mode 100644 index 0000000..f88ca72 --- /dev/null +++ b/vendor/github.com/eapache/go-resiliency/breaker/breaker.go @@ -0,0 +1,161 @@ +// Package breaker implements the circuit-breaker resiliency pattern for Go. +package breaker + +import ( + "errors" + "sync" + "sync/atomic" + "time" +) + +// ErrBreakerOpen is the error returned from Run() when the function is not executed +// because the breaker is currently open. +var ErrBreakerOpen = errors.New("circuit breaker is open") + +const ( + closed uint32 = iota + open + halfOpen +) + +// Breaker implements the circuit-breaker resiliency pattern +type Breaker struct { + errorThreshold, successThreshold int + timeout time.Duration + + lock sync.Mutex + state uint32 + errors, successes int + lastError time.Time +} + +// New constructs a new circuit-breaker that starts closed. +// From closed, the breaker opens if "errorThreshold" errors are seen +// without an error-free period of at least "timeout". From open, the +// breaker half-closes after "timeout". From half-open, the breaker closes +// after "successThreshold" consecutive successes, or opens on a single error. +func New(errorThreshold, successThreshold int, timeout time.Duration) *Breaker { + return &Breaker{ + errorThreshold: errorThreshold, + successThreshold: successThreshold, + timeout: timeout, + } +} + +// Run will either return ErrBreakerOpen immediately if the circuit-breaker is +// already open, or it will run the given function and pass along its return +// value. It is safe to call Run concurrently on the same Breaker. +func (b *Breaker) Run(work func() error) error { + state := atomic.LoadUint32(&b.state) + + if state == open { + return ErrBreakerOpen + } + + return b.doWork(state, work) +} + +// Go will either return ErrBreakerOpen immediately if the circuit-breaker is +// already open, or it will run the given function in a separate goroutine. +// If the function is run, Go will return nil immediately, and will *not* return +// the return value of the function. It is safe to call Go concurrently on the +// same Breaker. +func (b *Breaker) Go(work func() error) error { + state := atomic.LoadUint32(&b.state) + + if state == open { + return ErrBreakerOpen + } + + // errcheck complains about ignoring the error return value, but + // that's on purpose; if you want an error from a goroutine you have to + // get it over a channel or something + go b.doWork(state, work) + + return nil +} + +func (b *Breaker) doWork(state uint32, work func() error) error { + var panicValue interface{} + + result := func() error { + defer func() { + panicValue = recover() + }() + return work() + }() + + if result == nil && panicValue == nil && state == closed { + // short-circuit the normal, success path without contending + // on the lock + return nil + } + + // oh well, I guess we have to contend on the lock + b.processResult(result, panicValue) + + if panicValue != nil { + // as close as Go lets us come to a "rethrow" although unfortunately + // we lose the original panicing location + panic(panicValue) + } + + return result +} + +func (b *Breaker) processResult(result error, panicValue interface{}) { + b.lock.Lock() + defer b.lock.Unlock() + + if result == nil && panicValue == nil { + if b.state == halfOpen { + b.successes++ + if b.successes == b.successThreshold { + b.closeBreaker() + } + } + } else { + if b.errors > 0 { + expiry := b.lastError.Add(b.timeout) + if time.Now().After(expiry) { + b.errors = 0 + } + } + + switch b.state { + case closed: + b.errors++ + if b.errors == b.errorThreshold { + b.openBreaker() + } else { + b.lastError = time.Now() + } + case halfOpen: + b.openBreaker() + } + } +} + +func (b *Breaker) openBreaker() { + b.changeState(open) + go b.timer() +} + +func (b *Breaker) closeBreaker() { + b.changeState(closed) +} + +func (b *Breaker) timer() { + time.Sleep(b.timeout) + + b.lock.Lock() + defer b.lock.Unlock() + + b.changeState(halfOpen) +} + +func (b *Breaker) changeState(newState uint32) { + b.errors = 0 + b.successes = 0 + atomic.StoreUint32(&b.state, newState) +} diff --git a/vendor/github.com/eapache/go-xerial-snappy/.gitignore b/vendor/github.com/eapache/go-xerial-snappy/.gitignore new file mode 100644 index 0000000..daf913b --- /dev/null +++ b/vendor/github.com/eapache/go-xerial-snappy/.gitignore @@ -0,0 +1,24 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test +*.prof diff --git a/vendor/github.com/eapache/go-xerial-snappy/.travis.yml b/vendor/github.com/eapache/go-xerial-snappy/.travis.yml new file mode 100644 index 0000000..d6cf4f1 --- /dev/null +++ b/vendor/github.com/eapache/go-xerial-snappy/.travis.yml @@ -0,0 +1,7 @@ +language: go + +go: +- 1.5.4 +- 1.6.1 + +sudo: false diff --git a/vendor/github.com/eapache/go-xerial-snappy/LICENSE b/vendor/github.com/eapache/go-xerial-snappy/LICENSE new file mode 100644 index 0000000..5bf3688 --- /dev/null +++ b/vendor/github.com/eapache/go-xerial-snappy/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Evan Huus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/eapache/go-xerial-snappy/README.md b/vendor/github.com/eapache/go-xerial-snappy/README.md new file mode 100644 index 0000000..3f2695c --- /dev/null +++ b/vendor/github.com/eapache/go-xerial-snappy/README.md @@ -0,0 +1,13 @@ +# go-xerial-snappy + +[![Build Status](https://travis-ci.org/eapache/go-xerial-snappy.svg?branch=master)](https://travis-ci.org/eapache/go-xerial-snappy) + +Xerial-compatible Snappy framing support for golang. + +Packages using Xerial for snappy encoding use a framing format incompatible with +basically everything else in existence. This package wraps Go's built-in snappy +package to support it. + +Apps that use this format include Apache Kafka (see +https://github.com/dpkp/kafka-python/issues/126#issuecomment-35478921 for +details). diff --git a/vendor/github.com/eapache/go-xerial-snappy/fuzz.go b/vendor/github.com/eapache/go-xerial-snappy/fuzz.go new file mode 100644 index 0000000..6a46f47 --- /dev/null +++ b/vendor/github.com/eapache/go-xerial-snappy/fuzz.go @@ -0,0 +1,16 @@ +// +build gofuzz + +package snappy + +func Fuzz(data []byte) int { + decode, err := Decode(data) + if decode == nil && err == nil { + panic("nil error with nil result") + } + + if err != nil { + return 0 + } + + return 1 +} diff --git a/vendor/github.com/eapache/go-xerial-snappy/snappy.go b/vendor/github.com/eapache/go-xerial-snappy/snappy.go new file mode 100644 index 0000000..ea8f7af --- /dev/null +++ b/vendor/github.com/eapache/go-xerial-snappy/snappy.go @@ -0,0 +1,131 @@ +package snappy + +import ( + "bytes" + "encoding/binary" + "errors" + + master "github.com/golang/snappy" +) + +const ( + sizeOffset = 16 + sizeBytes = 4 +) + +var ( + xerialHeader = []byte{130, 83, 78, 65, 80, 80, 89, 0} + + // This is xerial version 1 and minimally compatible with version 1 + xerialVersionInfo = []byte{0, 0, 0, 1, 0, 0, 0, 1} + + // ErrMalformed is returned by the decoder when the xerial framing + // is malformed + ErrMalformed = errors.New("malformed xerial framing") +) + +func min(x, y int) int { + if x < y { + return x + } + return y +} + +// Encode encodes data as snappy with no framing header. +func Encode(src []byte) []byte { + return master.Encode(nil, src) +} + +// EncodeStream *appends* to the specified 'dst' the compressed +// 'src' in xerial framing format. If 'dst' does not have enough +// capacity, then a new slice will be allocated. If 'dst' has +// non-zero length, then if *must* have been built using this function. +func EncodeStream(dst, src []byte) []byte { + if len(dst) == 0 { + dst = append(dst, xerialHeader...) + dst = append(dst, xerialVersionInfo...) + } + + // Snappy encode in blocks of maximum 32KB + var ( + max = len(src) + blockSize = 32 * 1024 + pos = 0 + chunk []byte + ) + + for pos < max { + newPos := min(pos + blockSize, max) + chunk = master.Encode(chunk[:cap(chunk)], src[pos:newPos]) + + // First encode the compressed size (big-endian) + // Put* panics if the buffer is too small, so pad 4 bytes first + origLen := len(dst) + dst = append(dst, dst[0:4]...) + binary.BigEndian.PutUint32(dst[origLen:], uint32(len(chunk))) + + // And now the compressed data + dst = append(dst, chunk...) + pos = newPos + } + return dst +} + +// Decode decodes snappy data whether it is traditional unframed +// or includes the xerial framing format. +func Decode(src []byte) ([]byte, error) { + return DecodeInto(nil, src) +} + +// DecodeInto decodes snappy data whether it is traditional unframed +// or includes the xerial framing format into the specified `dst`. +// It is assumed that the entirety of `dst` including all capacity is available +// for use by this function. If `dst` is nil *or* insufficiently large to hold +// the decoded `src`, new space will be allocated. +func DecodeInto(dst, src []byte) ([]byte, error) { + var max = len(src) + if max < len(xerialHeader) { + return nil, ErrMalformed + } + + if !bytes.Equal(src[:8], xerialHeader) { + return master.Decode(dst[:cap(dst)], src) + } + + if max < sizeOffset+sizeBytes { + return nil, ErrMalformed + } + + if dst == nil { + dst = make([]byte, 0, len(src)) + } + + dst = dst[:0] + var ( + pos = sizeOffset + chunk []byte + err error + ) + + for pos+sizeBytes <= max { + size := int(binary.BigEndian.Uint32(src[pos : pos+sizeBytes])) + pos += sizeBytes + + nextPos := pos + size + // On architectures where int is 32-bytes wide size + pos could + // overflow so we need to check the low bound as well as the + // high + if nextPos < pos || nextPos > max { + return nil, ErrMalformed + } + + chunk, err = master.Decode(chunk[:cap(chunk)], src[pos:nextPos]) + + if err != nil { + return nil, err + } + pos = nextPos + dst = append(dst, chunk...) + } + return dst, nil +} diff --git a/vendor/github.com/eapache/queue/.gitignore b/vendor/github.com/eapache/queue/.gitignore new file mode 100644 index 0000000..8365624 --- /dev/null +++ b/vendor/github.com/eapache/queue/.gitignore @@ -0,0 +1,23 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test diff --git a/vendor/github.com/eapache/queue/.travis.yml b/vendor/github.com/eapache/queue/.travis.yml new file mode 100644 index 0000000..235a40a --- /dev/null +++ b/vendor/github.com/eapache/queue/.travis.yml @@ -0,0 +1,7 @@ +language: go +sudo: false + +go: + - 1.2 + - 1.3 + - 1.4 diff --git a/vendor/github.com/eapache/queue/LICENSE b/vendor/github.com/eapache/queue/LICENSE new file mode 100644 index 0000000..d5f36db --- /dev/null +++ b/vendor/github.com/eapache/queue/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Evan Huus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/eapache/queue/README.md b/vendor/github.com/eapache/queue/README.md new file mode 100644 index 0000000..8e78233 --- /dev/null +++ b/vendor/github.com/eapache/queue/README.md @@ -0,0 +1,16 @@ +Queue +===== + +[![Build Status](https://travis-ci.org/eapache/queue.svg)](https://travis-ci.org/eapache/queue) +[![GoDoc](https://godoc.org/github.com/eapache/queue?status.png)](https://godoc.org/github.com/eapache/queue) +[![Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-active-blue.svg)](https://eapache.github.io/conduct.html) + +A fast Golang queue using a ring-buffer, based on the version suggested by Dariusz Górecki. +Using this instead of other, simpler, queue implementations (slice+append or linked list) provides +substantial memory and time benefits, and fewer GC pauses. + +The queue implemented here is as fast as it is in part because it is *not* thread-safe. + +Follows semantic versioning using https://gopkg.in/ - import from +[`gopkg.in/eapache/queue.v1`](https://gopkg.in/eapache/queue.v1) +for guaranteed API stability. diff --git a/vendor/github.com/eapache/queue/queue.go b/vendor/github.com/eapache/queue/queue.go new file mode 100644 index 0000000..71d1acd --- /dev/null +++ b/vendor/github.com/eapache/queue/queue.go @@ -0,0 +1,102 @@ +/* +Package queue provides a fast, ring-buffer queue based on the version suggested by Dariusz Górecki. +Using this instead of other, simpler, queue implementations (slice+append or linked list) provides +substantial memory and time benefits, and fewer GC pauses. + +The queue implemented here is as fast as it is for an additional reason: it is *not* thread-safe. +*/ +package queue + +// minQueueLen is smallest capacity that queue may have. +// Must be power of 2 for bitwise modulus: x % n == x & (n - 1). +const minQueueLen = 16 + +// Queue represents a single instance of the queue data structure. +type Queue struct { + buf []interface{} + head, tail, count int +} + +// New constructs and returns a new Queue. +func New() *Queue { + return &Queue{ + buf: make([]interface{}, minQueueLen), + } +} + +// Length returns the number of elements currently stored in the queue. +func (q *Queue) Length() int { + return q.count +} + +// resizes the queue to fit exactly twice its current contents +// this can result in shrinking if the queue is less than half-full +func (q *Queue) resize() { + newBuf := make([]interface{}, q.count<<1) + + if q.tail > q.head { + copy(newBuf, q.buf[q.head:q.tail]) + } else { + n := copy(newBuf, q.buf[q.head:]) + copy(newBuf[n:], q.buf[:q.tail]) + } + + q.head = 0 + q.tail = q.count + q.buf = newBuf +} + +// Add puts an element on the end of the queue. +func (q *Queue) Add(elem interface{}) { + if q.count == len(q.buf) { + q.resize() + } + + q.buf[q.tail] = elem + // bitwise modulus + q.tail = (q.tail + 1) & (len(q.buf) - 1) + q.count++ +} + +// Peek returns the element at the head of the queue. This call panics +// if the queue is empty. +func (q *Queue) Peek() interface{} { + if q.count <= 0 { + panic("queue: Peek() called on empty queue") + } + return q.buf[q.head] +} + +// Get returns the element at index i in the queue. If the index is +// invalid, the call will panic. This method accepts both positive and +// negative index values. Index 0 refers to the first element, and +// index -1 refers to the last. +func (q *Queue) Get(i int) interface{} { + // If indexing backwards, convert to positive index. + if i < 0 { + i += q.count + } + if i < 0 || i >= q.count { + panic("queue: Get() called with index out of range") + } + // bitwise modulus + return q.buf[(q.head+i)&(len(q.buf)-1)] +} + +// Remove removes and returns the element from the front of the queue. If the +// queue is empty, the call will panic. +func (q *Queue) Remove() interface{} { + if q.count <= 0 { + panic("queue: Remove() called on empty queue") + } + ret := q.buf[q.head] + q.buf[q.head] = nil + // bitwise modulus + q.head = (q.head + 1) & (len(q.buf) - 1) + q.count-- + // Resize down if buffer 1/4 full. + if len(q.buf) > minQueueLen && (q.count<<2) == len(q.buf) { + q.resize() + } + return ret +} diff --git a/vendor/github.com/golang/protobuf/AUTHORS b/vendor/github.com/golang/protobuf/AUTHORS new file mode 100644 index 0000000..15167cd --- /dev/null +++ b/vendor/github.com/golang/protobuf/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/github.com/golang/protobuf/CONTRIBUTORS b/vendor/github.com/golang/protobuf/CONTRIBUTORS new file mode 100644 index 0000000..1c4577e --- /dev/null +++ b/vendor/github.com/golang/protobuf/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/github.com/golang/protobuf/LICENSE b/vendor/github.com/golang/protobuf/LICENSE new file mode 100644 index 0000000..1b1b192 --- /dev/null +++ b/vendor/github.com/golang/protobuf/LICENSE @@ -0,0 +1,31 @@ +Go support for Protocol Buffers - Google's data interchange format + +Copyright 2010 The Go Authors. All rights reserved. +https://github.com/golang/protobuf + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/vendor/github.com/golang/protobuf/proto/Makefile b/vendor/github.com/golang/protobuf/proto/Makefile new file mode 100644 index 0000000..e2e0651 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/Makefile @@ -0,0 +1,43 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +install: + go install + +test: install generate-test-pbs + go test + + +generate-test-pbs: + make install + make -C testdata + protoc --go_out=Mtestdata/test.proto=github.com/golang/protobuf/proto/testdata,Mgoogle/protobuf/any.proto=github.com/golang/protobuf/ptypes/any:. proto3_proto/proto3.proto + make diff --git a/vendor/github.com/golang/protobuf/proto/clone.go b/vendor/github.com/golang/protobuf/proto/clone.go new file mode 100644 index 0000000..e392575 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/clone.go @@ -0,0 +1,229 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Protocol buffer deep copy and merge. +// TODO: RawMessage. + +package proto + +import ( + "log" + "reflect" + "strings" +) + +// Clone returns a deep copy of a protocol buffer. +func Clone(pb Message) Message { + in := reflect.ValueOf(pb) + if in.IsNil() { + return pb + } + + out := reflect.New(in.Type().Elem()) + // out is empty so a merge is a deep copy. + mergeStruct(out.Elem(), in.Elem()) + return out.Interface().(Message) +} + +// Merge merges src into dst. +// Required and optional fields that are set in src will be set to that value in dst. +// Elements of repeated fields will be appended. +// Merge panics if src and dst are not the same type, or if dst is nil. +func Merge(dst, src Message) { + in := reflect.ValueOf(src) + out := reflect.ValueOf(dst) + if out.IsNil() { + panic("proto: nil destination") + } + if in.Type() != out.Type() { + // Explicit test prior to mergeStruct so that mistyped nils will fail + panic("proto: type mismatch") + } + if in.IsNil() { + // Merging nil into non-nil is a quiet no-op + return + } + mergeStruct(out.Elem(), in.Elem()) +} + +func mergeStruct(out, in reflect.Value) { + sprop := GetProperties(in.Type()) + for i := 0; i < in.NumField(); i++ { + f := in.Type().Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + mergeAny(out.Field(i), in.Field(i), false, sprop.Prop[i]) + } + + if emIn, ok := extendable(in.Addr().Interface()); ok { + emOut, _ := extendable(out.Addr().Interface()) + mIn, muIn := emIn.extensionsRead() + if mIn != nil { + mOut := emOut.extensionsWrite() + muIn.Lock() + mergeExtension(mOut, mIn) + muIn.Unlock() + } + } + + uf := in.FieldByName("XXX_unrecognized") + if !uf.IsValid() { + return + } + uin := uf.Bytes() + if len(uin) > 0 { + out.FieldByName("XXX_unrecognized").SetBytes(append([]byte(nil), uin...)) + } +} + +// mergeAny performs a merge between two values of the same type. +// viaPtr indicates whether the values were indirected through a pointer (implying proto2). +// prop is set if this is a struct field (it may be nil). +func mergeAny(out, in reflect.Value, viaPtr bool, prop *Properties) { + if in.Type() == protoMessageType { + if !in.IsNil() { + if out.IsNil() { + out.Set(reflect.ValueOf(Clone(in.Interface().(Message)))) + } else { + Merge(out.Interface().(Message), in.Interface().(Message)) + } + } + return + } + switch in.Kind() { + case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64, + reflect.String, reflect.Uint32, reflect.Uint64: + if !viaPtr && isProto3Zero(in) { + return + } + out.Set(in) + case reflect.Interface: + // Probably a oneof field; copy non-nil values. + if in.IsNil() { + return + } + // Allocate destination if it is not set, or set to a different type. + // Otherwise we will merge as normal. + if out.IsNil() || out.Elem().Type() != in.Elem().Type() { + out.Set(reflect.New(in.Elem().Elem().Type())) // interface -> *T -> T -> new(T) + } + mergeAny(out.Elem(), in.Elem(), false, nil) + case reflect.Map: + if in.Len() == 0 { + return + } + if out.IsNil() { + out.Set(reflect.MakeMap(in.Type())) + } + // For maps with value types of *T or []byte we need to deep copy each value. + elemKind := in.Type().Elem().Kind() + for _, key := range in.MapKeys() { + var val reflect.Value + switch elemKind { + case reflect.Ptr: + val = reflect.New(in.Type().Elem().Elem()) + mergeAny(val, in.MapIndex(key), false, nil) + case reflect.Slice: + val = in.MapIndex(key) + val = reflect.ValueOf(append([]byte{}, val.Bytes()...)) + default: + val = in.MapIndex(key) + } + out.SetMapIndex(key, val) + } + case reflect.Ptr: + if in.IsNil() { + return + } + if out.IsNil() { + out.Set(reflect.New(in.Elem().Type())) + } + mergeAny(out.Elem(), in.Elem(), true, nil) + case reflect.Slice: + if in.IsNil() { + return + } + if in.Type().Elem().Kind() == reflect.Uint8 { + // []byte is a scalar bytes field, not a repeated field. + + // Edge case: if this is in a proto3 message, a zero length + // bytes field is considered the zero value, and should not + // be merged. + if prop != nil && prop.proto3 && in.Len() == 0 { + return + } + + // Make a deep copy. + // Append to []byte{} instead of []byte(nil) so that we never end up + // with a nil result. + out.SetBytes(append([]byte{}, in.Bytes()...)) + return + } + n := in.Len() + if out.IsNil() { + out.Set(reflect.MakeSlice(in.Type(), 0, n)) + } + switch in.Type().Elem().Kind() { + case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64, + reflect.String, reflect.Uint32, reflect.Uint64: + out.Set(reflect.AppendSlice(out, in)) + default: + for i := 0; i < n; i++ { + x := reflect.Indirect(reflect.New(in.Type().Elem())) + mergeAny(x, in.Index(i), false, nil) + out.Set(reflect.Append(out, x)) + } + } + case reflect.Struct: + mergeStruct(out, in) + default: + // unknown type, so not a protocol buffer + log.Printf("proto: don't know how to copy %v", in) + } +} + +func mergeExtension(out, in map[int32]Extension) { + for extNum, eIn := range in { + eOut := Extension{desc: eIn.desc} + if eIn.value != nil { + v := reflect.New(reflect.TypeOf(eIn.value)).Elem() + mergeAny(v, reflect.ValueOf(eIn.value), false, nil) + eOut.value = v.Interface() + } + if eIn.enc != nil { + eOut.enc = make([]byte, len(eIn.enc)) + copy(eOut.enc, eIn.enc) + } + + out[extNum] = eOut + } +} diff --git a/vendor/github.com/golang/protobuf/proto/decode.go b/vendor/github.com/golang/protobuf/proto/decode.go new file mode 100644 index 0000000..aa20729 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/decode.go @@ -0,0 +1,970 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Routines for decoding protocol buffer data to construct in-memory representations. + */ + +import ( + "errors" + "fmt" + "io" + "os" + "reflect" +) + +// errOverflow is returned when an integer is too large to be represented. +var errOverflow = errors.New("proto: integer overflow") + +// ErrInternalBadWireType is returned by generated code when an incorrect +// wire type is encountered. It does not get returned to user code. +var ErrInternalBadWireType = errors.New("proto: internal error: bad wiretype for oneof") + +// The fundamental decoders that interpret bytes on the wire. +// Those that take integer types all return uint64 and are +// therefore of type valueDecoder. + +// DecodeVarint reads a varint-encoded integer from the slice. +// It returns the integer and the number of bytes consumed, or +// zero if there is not enough. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func DecodeVarint(buf []byte) (x uint64, n int) { + for shift := uint(0); shift < 64; shift += 7 { + if n >= len(buf) { + return 0, 0 + } + b := uint64(buf[n]) + n++ + x |= (b & 0x7F) << shift + if (b & 0x80) == 0 { + return x, n + } + } + + // The number is too large to represent in a 64-bit value. + return 0, 0 +} + +func (p *Buffer) decodeVarintSlow() (x uint64, err error) { + i := p.index + l := len(p.buf) + + for shift := uint(0); shift < 64; shift += 7 { + if i >= l { + err = io.ErrUnexpectedEOF + return + } + b := p.buf[i] + i++ + x |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + p.index = i + return + } + } + + // The number is too large to represent in a 64-bit value. + err = errOverflow + return +} + +// DecodeVarint reads a varint-encoded integer from the Buffer. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func (p *Buffer) DecodeVarint() (x uint64, err error) { + i := p.index + buf := p.buf + + if i >= len(buf) { + return 0, io.ErrUnexpectedEOF + } else if buf[i] < 0x80 { + p.index++ + return uint64(buf[i]), nil + } else if len(buf)-i < 10 { + return p.decodeVarintSlow() + } + + var b uint64 + // we already checked the first byte + x = uint64(buf[i]) - 0x80 + i++ + + b = uint64(buf[i]) + i++ + x += b << 7 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 7 + + b = uint64(buf[i]) + i++ + x += b << 14 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 14 + + b = uint64(buf[i]) + i++ + x += b << 21 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 21 + + b = uint64(buf[i]) + i++ + x += b << 28 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 28 + + b = uint64(buf[i]) + i++ + x += b << 35 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 35 + + b = uint64(buf[i]) + i++ + x += b << 42 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 42 + + b = uint64(buf[i]) + i++ + x += b << 49 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 49 + + b = uint64(buf[i]) + i++ + x += b << 56 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 56 + + b = uint64(buf[i]) + i++ + x += b << 63 + if b&0x80 == 0 { + goto done + } + // x -= 0x80 << 63 // Always zero. + + return 0, errOverflow + +done: + p.index = i + return x, nil +} + +// DecodeFixed64 reads a 64-bit integer from the Buffer. +// This is the format for the +// fixed64, sfixed64, and double protocol buffer types. +func (p *Buffer) DecodeFixed64() (x uint64, err error) { + // x, err already 0 + i := p.index + 8 + if i < 0 || i > len(p.buf) { + err = io.ErrUnexpectedEOF + return + } + p.index = i + + x = uint64(p.buf[i-8]) + x |= uint64(p.buf[i-7]) << 8 + x |= uint64(p.buf[i-6]) << 16 + x |= uint64(p.buf[i-5]) << 24 + x |= uint64(p.buf[i-4]) << 32 + x |= uint64(p.buf[i-3]) << 40 + x |= uint64(p.buf[i-2]) << 48 + x |= uint64(p.buf[i-1]) << 56 + return +} + +// DecodeFixed32 reads a 32-bit integer from the Buffer. +// This is the format for the +// fixed32, sfixed32, and float protocol buffer types. +func (p *Buffer) DecodeFixed32() (x uint64, err error) { + // x, err already 0 + i := p.index + 4 + if i < 0 || i > len(p.buf) { + err = io.ErrUnexpectedEOF + return + } + p.index = i + + x = uint64(p.buf[i-4]) + x |= uint64(p.buf[i-3]) << 8 + x |= uint64(p.buf[i-2]) << 16 + x |= uint64(p.buf[i-1]) << 24 + return +} + +// DecodeZigzag64 reads a zigzag-encoded 64-bit integer +// from the Buffer. +// This is the format used for the sint64 protocol buffer type. +func (p *Buffer) DecodeZigzag64() (x uint64, err error) { + x, err = p.DecodeVarint() + if err != nil { + return + } + x = (x >> 1) ^ uint64((int64(x&1)<<63)>>63) + return +} + +// DecodeZigzag32 reads a zigzag-encoded 32-bit integer +// from the Buffer. +// This is the format used for the sint32 protocol buffer type. +func (p *Buffer) DecodeZigzag32() (x uint64, err error) { + x, err = p.DecodeVarint() + if err != nil { + return + } + x = uint64((uint32(x) >> 1) ^ uint32((int32(x&1)<<31)>>31)) + return +} + +// These are not ValueDecoders: they produce an array of bytes or a string. +// bytes, embedded messages + +// DecodeRawBytes reads a count-delimited byte buffer from the Buffer. +// This is the format used for the bytes protocol buffer +// type and for embedded messages. +func (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err error) { + n, err := p.DecodeVarint() + if err != nil { + return nil, err + } + + nb := int(n) + if nb < 0 { + return nil, fmt.Errorf("proto: bad byte length %d", nb) + } + end := p.index + nb + if end < p.index || end > len(p.buf) { + return nil, io.ErrUnexpectedEOF + } + + if !alloc { + // todo: check if can get more uses of alloc=false + buf = p.buf[p.index:end] + p.index += nb + return + } + + buf = make([]byte, nb) + copy(buf, p.buf[p.index:]) + p.index += nb + return +} + +// DecodeStringBytes reads an encoded string from the Buffer. +// This is the format used for the proto2 string type. +func (p *Buffer) DecodeStringBytes() (s string, err error) { + buf, err := p.DecodeRawBytes(false) + if err != nil { + return + } + return string(buf), nil +} + +// Skip the next item in the buffer. Its wire type is decoded and presented as an argument. +// If the protocol buffer has extensions, and the field matches, add it as an extension. +// Otherwise, if the XXX_unrecognized field exists, append the skipped data there. +func (o *Buffer) skipAndSave(t reflect.Type, tag, wire int, base structPointer, unrecField field) error { + oi := o.index + + err := o.skip(t, tag, wire) + if err != nil { + return err + } + + if !unrecField.IsValid() { + return nil + } + + ptr := structPointer_Bytes(base, unrecField) + + // Add the skipped field to struct field + obuf := o.buf + + o.buf = *ptr + o.EncodeVarint(uint64(tag<<3 | wire)) + *ptr = append(o.buf, obuf[oi:o.index]...) + + o.buf = obuf + + return nil +} + +// Skip the next item in the buffer. Its wire type is decoded and presented as an argument. +func (o *Buffer) skip(t reflect.Type, tag, wire int) error { + + var u uint64 + var err error + + switch wire { + case WireVarint: + _, err = o.DecodeVarint() + case WireFixed64: + _, err = o.DecodeFixed64() + case WireBytes: + _, err = o.DecodeRawBytes(false) + case WireFixed32: + _, err = o.DecodeFixed32() + case WireStartGroup: + for { + u, err = o.DecodeVarint() + if err != nil { + break + } + fwire := int(u & 0x7) + if fwire == WireEndGroup { + break + } + ftag := int(u >> 3) + err = o.skip(t, ftag, fwire) + if err != nil { + break + } + } + default: + err = fmt.Errorf("proto: can't skip unknown wire type %d for %s", wire, t) + } + return err +} + +// Unmarshaler is the interface representing objects that can +// unmarshal themselves. The method should reset the receiver before +// decoding starts. The argument points to data that may be +// overwritten, so implementations should not keep references to the +// buffer. +type Unmarshaler interface { + Unmarshal([]byte) error +} + +// Unmarshal parses the protocol buffer representation in buf and places the +// decoded result in pb. If the struct underlying pb does not match +// the data in buf, the results can be unpredictable. +// +// Unmarshal resets pb before starting to unmarshal, so any +// existing data in pb is always removed. Use UnmarshalMerge +// to preserve and append to existing data. +func Unmarshal(buf []byte, pb Message) error { + pb.Reset() + return UnmarshalMerge(buf, pb) +} + +// UnmarshalMerge parses the protocol buffer representation in buf and +// writes the decoded result to pb. If the struct underlying pb does not match +// the data in buf, the results can be unpredictable. +// +// UnmarshalMerge merges into existing data in pb. +// Most code should use Unmarshal instead. +func UnmarshalMerge(buf []byte, pb Message) error { + // If the object can unmarshal itself, let it. + if u, ok := pb.(Unmarshaler); ok { + return u.Unmarshal(buf) + } + return NewBuffer(buf).Unmarshal(pb) +} + +// DecodeMessage reads a count-delimited message from the Buffer. +func (p *Buffer) DecodeMessage(pb Message) error { + enc, err := p.DecodeRawBytes(false) + if err != nil { + return err + } + return NewBuffer(enc).Unmarshal(pb) +} + +// DecodeGroup reads a tag-delimited group from the Buffer. +func (p *Buffer) DecodeGroup(pb Message) error { + typ, base, err := getbase(pb) + if err != nil { + return err + } + return p.unmarshalType(typ.Elem(), GetProperties(typ.Elem()), true, base) +} + +// Unmarshal parses the protocol buffer representation in the +// Buffer and places the decoded result in pb. If the struct +// underlying pb does not match the data in the buffer, the results can be +// unpredictable. +// +// Unlike proto.Unmarshal, this does not reset pb before starting to unmarshal. +func (p *Buffer) Unmarshal(pb Message) error { + // If the object can unmarshal itself, let it. + if u, ok := pb.(Unmarshaler); ok { + err := u.Unmarshal(p.buf[p.index:]) + p.index = len(p.buf) + return err + } + + typ, base, err := getbase(pb) + if err != nil { + return err + } + + err = p.unmarshalType(typ.Elem(), GetProperties(typ.Elem()), false, base) + + if collectStats { + stats.Decode++ + } + + return err +} + +// unmarshalType does the work of unmarshaling a structure. +func (o *Buffer) unmarshalType(st reflect.Type, prop *StructProperties, is_group bool, base structPointer) error { + var state errorState + required, reqFields := prop.reqCount, uint64(0) + + var err error + for err == nil && o.index < len(o.buf) { + oi := o.index + var u uint64 + u, err = o.DecodeVarint() + if err != nil { + break + } + wire := int(u & 0x7) + if wire == WireEndGroup { + if is_group { + if required > 0 { + // Not enough information to determine the exact field. + // (See below.) + return &RequiredNotSetError{"{Unknown}"} + } + return nil // input is satisfied + } + return fmt.Errorf("proto: %s: wiretype end group for non-group", st) + } + tag := int(u >> 3) + if tag <= 0 { + return fmt.Errorf("proto: %s: illegal tag %d (wire type %d)", st, tag, wire) + } + fieldnum, ok := prop.decoderTags.get(tag) + if !ok { + // Maybe it's an extension? + if prop.extendable { + if e, _ := extendable(structPointer_Interface(base, st)); isExtensionField(e, int32(tag)) { + if err = o.skip(st, tag, wire); err == nil { + extmap := e.extensionsWrite() + ext := extmap[int32(tag)] // may be missing + ext.enc = append(ext.enc, o.buf[oi:o.index]...) + extmap[int32(tag)] = ext + } + continue + } + } + // Maybe it's a oneof? + if prop.oneofUnmarshaler != nil { + m := structPointer_Interface(base, st).(Message) + // First return value indicates whether tag is a oneof field. + ok, err = prop.oneofUnmarshaler(m, tag, wire, o) + if err == ErrInternalBadWireType { + // Map the error to something more descriptive. + // Do the formatting here to save generated code space. + err = fmt.Errorf("bad wiretype for oneof field in %T", m) + } + if ok { + continue + } + } + err = o.skipAndSave(st, tag, wire, base, prop.unrecField) + continue + } + p := prop.Prop[fieldnum] + + if p.dec == nil { + fmt.Fprintf(os.Stderr, "proto: no protobuf decoder for %s.%s\n", st, st.Field(fieldnum).Name) + continue + } + dec := p.dec + if wire != WireStartGroup && wire != p.WireType { + if wire == WireBytes && p.packedDec != nil { + // a packable field + dec = p.packedDec + } else { + err = fmt.Errorf("proto: bad wiretype for field %s.%s: got wiretype %d, want %d", st, st.Field(fieldnum).Name, wire, p.WireType) + continue + } + } + decErr := dec(o, p, base) + if decErr != nil && !state.shouldContinue(decErr, p) { + err = decErr + } + if err == nil && p.Required { + // Successfully decoded a required field. + if tag <= 64 { + // use bitmap for fields 1-64 to catch field reuse. + var mask uint64 = 1 << uint64(tag-1) + if reqFields&mask == 0 { + // new required field + reqFields |= mask + required-- + } + } else { + // This is imprecise. It can be fooled by a required field + // with a tag > 64 that is encoded twice; that's very rare. + // A fully correct implementation would require allocating + // a data structure, which we would like to avoid. + required-- + } + } + } + if err == nil { + if is_group { + return io.ErrUnexpectedEOF + } + if state.err != nil { + return state.err + } + if required > 0 { + // Not enough information to determine the exact field. If we use extra + // CPU, we could determine the field only if the missing required field + // has a tag <= 64 and we check reqFields. + return &RequiredNotSetError{"{Unknown}"} + } + } + return err +} + +// Individual type decoders +// For each, +// u is the decoded value, +// v is a pointer to the field (pointer) in the struct + +// Sizes of the pools to allocate inside the Buffer. +// The goal is modest amortization and allocation +// on at least 16-byte boundaries. +const ( + boolPoolSize = 16 + uint32PoolSize = 8 + uint64PoolSize = 4 +) + +// Decode a bool. +func (o *Buffer) dec_bool(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + if len(o.bools) == 0 { + o.bools = make([]bool, boolPoolSize) + } + o.bools[0] = u != 0 + *structPointer_Bool(base, p.field) = &o.bools[0] + o.bools = o.bools[1:] + return nil +} + +func (o *Buffer) dec_proto3_bool(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + *structPointer_BoolVal(base, p.field) = u != 0 + return nil +} + +// Decode an int32. +func (o *Buffer) dec_int32(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + word32_Set(structPointer_Word32(base, p.field), o, uint32(u)) + return nil +} + +func (o *Buffer) dec_proto3_int32(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + word32Val_Set(structPointer_Word32Val(base, p.field), uint32(u)) + return nil +} + +// Decode an int64. +func (o *Buffer) dec_int64(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + word64_Set(structPointer_Word64(base, p.field), o, u) + return nil +} + +func (o *Buffer) dec_proto3_int64(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + word64Val_Set(structPointer_Word64Val(base, p.field), o, u) + return nil +} + +// Decode a string. +func (o *Buffer) dec_string(p *Properties, base structPointer) error { + s, err := o.DecodeStringBytes() + if err != nil { + return err + } + *structPointer_String(base, p.field) = &s + return nil +} + +func (o *Buffer) dec_proto3_string(p *Properties, base structPointer) error { + s, err := o.DecodeStringBytes() + if err != nil { + return err + } + *structPointer_StringVal(base, p.field) = s + return nil +} + +// Decode a slice of bytes ([]byte). +func (o *Buffer) dec_slice_byte(p *Properties, base structPointer) error { + b, err := o.DecodeRawBytes(true) + if err != nil { + return err + } + *structPointer_Bytes(base, p.field) = b + return nil +} + +// Decode a slice of bools ([]bool). +func (o *Buffer) dec_slice_bool(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + v := structPointer_BoolSlice(base, p.field) + *v = append(*v, u != 0) + return nil +} + +// Decode a slice of bools ([]bool) in packed format. +func (o *Buffer) dec_slice_packed_bool(p *Properties, base structPointer) error { + v := structPointer_BoolSlice(base, p.field) + + nn, err := o.DecodeVarint() + if err != nil { + return err + } + nb := int(nn) // number of bytes of encoded bools + fin := o.index + nb + if fin < o.index { + return errOverflow + } + + y := *v + for o.index < fin { + u, err := p.valDec(o) + if err != nil { + return err + } + y = append(y, u != 0) + } + + *v = y + return nil +} + +// Decode a slice of int32s ([]int32). +func (o *Buffer) dec_slice_int32(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + structPointer_Word32Slice(base, p.field).Append(uint32(u)) + return nil +} + +// Decode a slice of int32s ([]int32) in packed format. +func (o *Buffer) dec_slice_packed_int32(p *Properties, base structPointer) error { + v := structPointer_Word32Slice(base, p.field) + + nn, err := o.DecodeVarint() + if err != nil { + return err + } + nb := int(nn) // number of bytes of encoded int32s + + fin := o.index + nb + if fin < o.index { + return errOverflow + } + for o.index < fin { + u, err := p.valDec(o) + if err != nil { + return err + } + v.Append(uint32(u)) + } + return nil +} + +// Decode a slice of int64s ([]int64). +func (o *Buffer) dec_slice_int64(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + + structPointer_Word64Slice(base, p.field).Append(u) + return nil +} + +// Decode a slice of int64s ([]int64) in packed format. +func (o *Buffer) dec_slice_packed_int64(p *Properties, base structPointer) error { + v := structPointer_Word64Slice(base, p.field) + + nn, err := o.DecodeVarint() + if err != nil { + return err + } + nb := int(nn) // number of bytes of encoded int64s + + fin := o.index + nb + if fin < o.index { + return errOverflow + } + for o.index < fin { + u, err := p.valDec(o) + if err != nil { + return err + } + v.Append(u) + } + return nil +} + +// Decode a slice of strings ([]string). +func (o *Buffer) dec_slice_string(p *Properties, base structPointer) error { + s, err := o.DecodeStringBytes() + if err != nil { + return err + } + v := structPointer_StringSlice(base, p.field) + *v = append(*v, s) + return nil +} + +// Decode a slice of slice of bytes ([][]byte). +func (o *Buffer) dec_slice_slice_byte(p *Properties, base structPointer) error { + b, err := o.DecodeRawBytes(true) + if err != nil { + return err + } + v := structPointer_BytesSlice(base, p.field) + *v = append(*v, b) + return nil +} + +// Decode a map field. +func (o *Buffer) dec_new_map(p *Properties, base structPointer) error { + raw, err := o.DecodeRawBytes(false) + if err != nil { + return err + } + oi := o.index // index at the end of this map entry + o.index -= len(raw) // move buffer back to start of map entry + + mptr := structPointer_NewAt(base, p.field, p.mtype) // *map[K]V + if mptr.Elem().IsNil() { + mptr.Elem().Set(reflect.MakeMap(mptr.Type().Elem())) + } + v := mptr.Elem() // map[K]V + + // Prepare addressable doubly-indirect placeholders for the key and value types. + // See enc_new_map for why. + keyptr := reflect.New(reflect.PtrTo(p.mtype.Key())).Elem() // addressable *K + keybase := toStructPointer(keyptr.Addr()) // **K + + var valbase structPointer + var valptr reflect.Value + switch p.mtype.Elem().Kind() { + case reflect.Slice: + // []byte + var dummy []byte + valptr = reflect.ValueOf(&dummy) // *[]byte + valbase = toStructPointer(valptr) // *[]byte + case reflect.Ptr: + // message; valptr is **Msg; need to allocate the intermediate pointer + valptr = reflect.New(reflect.PtrTo(p.mtype.Elem())).Elem() // addressable *V + valptr.Set(reflect.New(valptr.Type().Elem())) + valbase = toStructPointer(valptr) + default: + // everything else + valptr = reflect.New(reflect.PtrTo(p.mtype.Elem())).Elem() // addressable *V + valbase = toStructPointer(valptr.Addr()) // **V + } + + // Decode. + // This parses a restricted wire format, namely the encoding of a message + // with two fields. See enc_new_map for the format. + for o.index < oi { + // tagcode for key and value properties are always a single byte + // because they have tags 1 and 2. + tagcode := o.buf[o.index] + o.index++ + switch tagcode { + case p.mkeyprop.tagcode[0]: + if err := p.mkeyprop.dec(o, p.mkeyprop, keybase); err != nil { + return err + } + case p.mvalprop.tagcode[0]: + if err := p.mvalprop.dec(o, p.mvalprop, valbase); err != nil { + return err + } + default: + // TODO: Should we silently skip this instead? + return fmt.Errorf("proto: bad map data tag %d", raw[0]) + } + } + keyelem, valelem := keyptr.Elem(), valptr.Elem() + if !keyelem.IsValid() { + keyelem = reflect.Zero(p.mtype.Key()) + } + if !valelem.IsValid() { + valelem = reflect.Zero(p.mtype.Elem()) + } + + v.SetMapIndex(keyelem, valelem) + return nil +} + +// Decode a group. +func (o *Buffer) dec_struct_group(p *Properties, base structPointer) error { + bas := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(bas) { + // allocate new nested message + bas = toStructPointer(reflect.New(p.stype)) + structPointer_SetStructPointer(base, p.field, bas) + } + return o.unmarshalType(p.stype, p.sprop, true, bas) +} + +// Decode an embedded message. +func (o *Buffer) dec_struct_message(p *Properties, base structPointer) (err error) { + raw, e := o.DecodeRawBytes(false) + if e != nil { + return e + } + + bas := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(bas) { + // allocate new nested message + bas = toStructPointer(reflect.New(p.stype)) + structPointer_SetStructPointer(base, p.field, bas) + } + + // If the object can unmarshal itself, let it. + if p.isUnmarshaler { + iv := structPointer_Interface(bas, p.stype) + return iv.(Unmarshaler).Unmarshal(raw) + } + + obuf := o.buf + oi := o.index + o.buf = raw + o.index = 0 + + err = o.unmarshalType(p.stype, p.sprop, false, bas) + o.buf = obuf + o.index = oi + + return err +} + +// Decode a slice of embedded messages. +func (o *Buffer) dec_slice_struct_message(p *Properties, base structPointer) error { + return o.dec_slice_struct(p, false, base) +} + +// Decode a slice of embedded groups. +func (o *Buffer) dec_slice_struct_group(p *Properties, base structPointer) error { + return o.dec_slice_struct(p, true, base) +} + +// Decode a slice of structs ([]*struct). +func (o *Buffer) dec_slice_struct(p *Properties, is_group bool, base structPointer) error { + v := reflect.New(p.stype) + bas := toStructPointer(v) + structPointer_StructPointerSlice(base, p.field).Append(bas) + + if is_group { + err := o.unmarshalType(p.stype, p.sprop, is_group, bas) + return err + } + + raw, err := o.DecodeRawBytes(false) + if err != nil { + return err + } + + // If the object can unmarshal itself, let it. + if p.isUnmarshaler { + iv := v.Interface() + return iv.(Unmarshaler).Unmarshal(raw) + } + + obuf := o.buf + oi := o.index + o.buf = raw + o.index = 0 + + err = o.unmarshalType(p.stype, p.sprop, is_group, bas) + + o.buf = obuf + o.index = oi + + return err +} diff --git a/vendor/github.com/golang/protobuf/proto/discard.go b/vendor/github.com/golang/protobuf/proto/discard.go new file mode 100644 index 0000000..bd0e3bb --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/discard.go @@ -0,0 +1,151 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2017 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "fmt" + "reflect" + "strings" +) + +// DiscardUnknown recursively discards all unknown fields from this message +// and all embedded messages. +// +// When unmarshaling a message with unrecognized fields, the tags and values +// of such fields are preserved in the Message. This allows a later call to +// marshal to be able to produce a message that continues to have those +// unrecognized fields. To avoid this, DiscardUnknown is used to +// explicitly clear the unknown fields after unmarshaling. +// +// For proto2 messages, the unknown fields of message extensions are only +// discarded from messages that have been accessed via GetExtension. +func DiscardUnknown(m Message) { + discardLegacy(m) +} + +func discardLegacy(m Message) { + v := reflect.ValueOf(m) + if v.Kind() != reflect.Ptr || v.IsNil() { + return + } + v = v.Elem() + if v.Kind() != reflect.Struct { + return + } + t := v.Type() + + for i := 0; i < v.NumField(); i++ { + f := t.Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + vf := v.Field(i) + tf := f.Type + + // Unwrap tf to get its most basic type. + var isPointer, isSlice bool + if tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 { + isSlice = true + tf = tf.Elem() + } + if tf.Kind() == reflect.Ptr { + isPointer = true + tf = tf.Elem() + } + if isPointer && isSlice && tf.Kind() != reflect.Struct { + panic(fmt.Sprintf("%T.%s cannot be a slice of pointers to primitive types", m, f.Name)) + } + + switch tf.Kind() { + case reflect.Struct: + switch { + case !isPointer: + panic(fmt.Sprintf("%T.%s cannot be a direct struct value", m, f.Name)) + case isSlice: // E.g., []*pb.T + for j := 0; j < vf.Len(); j++ { + discardLegacy(vf.Index(j).Interface().(Message)) + } + default: // E.g., *pb.T + discardLegacy(vf.Interface().(Message)) + } + case reflect.Map: + switch { + case isPointer || isSlice: + panic(fmt.Sprintf("%T.%s cannot be a pointer to a map or a slice of map values", m, f.Name)) + default: // E.g., map[K]V + tv := vf.Type().Elem() + if tv.Kind() == reflect.Ptr && tv.Implements(protoMessageType) { // Proto struct (e.g., *T) + for _, key := range vf.MapKeys() { + val := vf.MapIndex(key) + discardLegacy(val.Interface().(Message)) + } + } + } + case reflect.Interface: + // Must be oneof field. + switch { + case isPointer || isSlice: + panic(fmt.Sprintf("%T.%s cannot be a pointer to a interface or a slice of interface values", m, f.Name)) + default: // E.g., test_proto.isCommunique_Union interface + if !vf.IsNil() && f.Tag.Get("protobuf_oneof") != "" { + vf = vf.Elem() // E.g., *test_proto.Communique_Msg + if !vf.IsNil() { + vf = vf.Elem() // E.g., test_proto.Communique_Msg + vf = vf.Field(0) // E.g., Proto struct (e.g., *T) or primitive value + if vf.Kind() == reflect.Ptr { + discardLegacy(vf.Interface().(Message)) + } + } + } + } + } + } + + if vf := v.FieldByName("XXX_unrecognized"); vf.IsValid() { + if vf.Type() != reflect.TypeOf([]byte{}) { + panic("expected XXX_unrecognized to be of type []byte") + } + vf.Set(reflect.ValueOf([]byte(nil))) + } + + // For proto2 messages, only discard unknown fields in message extensions + // that have been accessed via GetExtension. + if em, ok := extendable(m); ok { + // Ignore lock since discardLegacy is not concurrency safe. + emm, _ := em.extensionsRead() + for _, mx := range emm { + if m, ok := mx.value.(Message); ok { + discardLegacy(m) + } + } + } +} diff --git a/vendor/github.com/golang/protobuf/proto/encode.go b/vendor/github.com/golang/protobuf/proto/encode.go new file mode 100644 index 0000000..8b84d1b --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/encode.go @@ -0,0 +1,1362 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Routines for encoding data into the wire format for protocol buffers. + */ + +import ( + "errors" + "fmt" + "reflect" + "sort" +) + +// RequiredNotSetError is the error returned if Marshal is called with +// a protocol buffer struct whose required fields have not +// all been initialized. It is also the error returned if Unmarshal is +// called with an encoded protocol buffer that does not include all the +// required fields. +// +// When printed, RequiredNotSetError reports the first unset required field in a +// message. If the field cannot be precisely determined, it is reported as +// "{Unknown}". +type RequiredNotSetError struct { + field string +} + +func (e *RequiredNotSetError) Error() string { + return fmt.Sprintf("proto: required field %q not set", e.field) +} + +var ( + // errRepeatedHasNil is the error returned if Marshal is called with + // a struct with a repeated field containing a nil element. + errRepeatedHasNil = errors.New("proto: repeated field has nil element") + + // errOneofHasNil is the error returned if Marshal is called with + // a struct with a oneof field containing a nil element. + errOneofHasNil = errors.New("proto: oneof field has nil value") + + // ErrNil is the error returned if Marshal is called with nil. + ErrNil = errors.New("proto: Marshal called with nil") + + // ErrTooLarge is the error returned if Marshal is called with a + // message that encodes to >2GB. + ErrTooLarge = errors.New("proto: message encodes to over 2 GB") +) + +// The fundamental encoders that put bytes on the wire. +// Those that take integer types all accept uint64 and are +// therefore of type valueEncoder. + +const maxVarintBytes = 10 // maximum length of a varint + +// maxMarshalSize is the largest allowed size of an encoded protobuf, +// since C++ and Java use signed int32s for the size. +const maxMarshalSize = 1<<31 - 1 + +// EncodeVarint returns the varint encoding of x. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +// Not used by the package itself, but helpful to clients +// wishing to use the same encoding. +func EncodeVarint(x uint64) []byte { + var buf [maxVarintBytes]byte + var n int + for n = 0; x > 127; n++ { + buf[n] = 0x80 | uint8(x&0x7F) + x >>= 7 + } + buf[n] = uint8(x) + n++ + return buf[0:n] +} + +// EncodeVarint writes a varint-encoded integer to the Buffer. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func (p *Buffer) EncodeVarint(x uint64) error { + for x >= 1<<7 { + p.buf = append(p.buf, uint8(x&0x7f|0x80)) + x >>= 7 + } + p.buf = append(p.buf, uint8(x)) + return nil +} + +// SizeVarint returns the varint encoding size of an integer. +func SizeVarint(x uint64) int { + return sizeVarint(x) +} + +func sizeVarint(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} + +// EncodeFixed64 writes a 64-bit integer to the Buffer. +// This is the format for the +// fixed64, sfixed64, and double protocol buffer types. +func (p *Buffer) EncodeFixed64(x uint64) error { + p.buf = append(p.buf, + uint8(x), + uint8(x>>8), + uint8(x>>16), + uint8(x>>24), + uint8(x>>32), + uint8(x>>40), + uint8(x>>48), + uint8(x>>56)) + return nil +} + +func sizeFixed64(x uint64) int { + return 8 +} + +// EncodeFixed32 writes a 32-bit integer to the Buffer. +// This is the format for the +// fixed32, sfixed32, and float protocol buffer types. +func (p *Buffer) EncodeFixed32(x uint64) error { + p.buf = append(p.buf, + uint8(x), + uint8(x>>8), + uint8(x>>16), + uint8(x>>24)) + return nil +} + +func sizeFixed32(x uint64) int { + return 4 +} + +// EncodeZigzag64 writes a zigzag-encoded 64-bit integer +// to the Buffer. +// This is the format used for the sint64 protocol buffer type. +func (p *Buffer) EncodeZigzag64(x uint64) error { + // use signed number to get arithmetic right shift. + return p.EncodeVarint((x << 1) ^ uint64((int64(x) >> 63))) +} + +func sizeZigzag64(x uint64) int { + return sizeVarint((x << 1) ^ uint64((int64(x) >> 63))) +} + +// EncodeZigzag32 writes a zigzag-encoded 32-bit integer +// to the Buffer. +// This is the format used for the sint32 protocol buffer type. +func (p *Buffer) EncodeZigzag32(x uint64) error { + // use signed number to get arithmetic right shift. + return p.EncodeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31)))) +} + +func sizeZigzag32(x uint64) int { + return sizeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31)))) +} + +// EncodeRawBytes writes a count-delimited byte buffer to the Buffer. +// This is the format used for the bytes protocol buffer +// type and for embedded messages. +func (p *Buffer) EncodeRawBytes(b []byte) error { + p.EncodeVarint(uint64(len(b))) + p.buf = append(p.buf, b...) + return nil +} + +func sizeRawBytes(b []byte) int { + return sizeVarint(uint64(len(b))) + + len(b) +} + +// EncodeStringBytes writes an encoded string to the Buffer. +// This is the format used for the proto2 string type. +func (p *Buffer) EncodeStringBytes(s string) error { + p.EncodeVarint(uint64(len(s))) + p.buf = append(p.buf, s...) + return nil +} + +func sizeStringBytes(s string) int { + return sizeVarint(uint64(len(s))) + + len(s) +} + +// Marshaler is the interface representing objects that can marshal themselves. +type Marshaler interface { + Marshal() ([]byte, error) +} + +// Marshal takes the protocol buffer +// and encodes it into the wire format, returning the data. +func Marshal(pb Message) ([]byte, error) { + // Can the object marshal itself? + if m, ok := pb.(Marshaler); ok { + return m.Marshal() + } + p := NewBuffer(nil) + err := p.Marshal(pb) + if p.buf == nil && err == nil { + // Return a non-nil slice on success. + return []byte{}, nil + } + return p.buf, err +} + +// EncodeMessage writes the protocol buffer to the Buffer, +// prefixed by a varint-encoded length. +func (p *Buffer) EncodeMessage(pb Message) error { + t, base, err := getbase(pb) + if structPointer_IsNil(base) { + return ErrNil + } + if err == nil { + var state errorState + err = p.enc_len_struct(GetProperties(t.Elem()), base, &state) + } + return err +} + +// Marshal takes the protocol buffer +// and encodes it into the wire format, writing the result to the +// Buffer. +func (p *Buffer) Marshal(pb Message) error { + // Can the object marshal itself? + if m, ok := pb.(Marshaler); ok { + data, err := m.Marshal() + p.buf = append(p.buf, data...) + return err + } + + t, base, err := getbase(pb) + if structPointer_IsNil(base) { + return ErrNil + } + if err == nil { + err = p.enc_struct(GetProperties(t.Elem()), base) + } + + if collectStats { + (stats).Encode++ // Parens are to work around a goimports bug. + } + + if len(p.buf) > maxMarshalSize { + return ErrTooLarge + } + return err +} + +// Size returns the encoded size of a protocol buffer. +func Size(pb Message) (n int) { + // Can the object marshal itself? If so, Size is slow. + // TODO: add Size to Marshaler, or add a Sizer interface. + if m, ok := pb.(Marshaler); ok { + b, _ := m.Marshal() + return len(b) + } + + t, base, err := getbase(pb) + if structPointer_IsNil(base) { + return 0 + } + if err == nil { + n = size_struct(GetProperties(t.Elem()), base) + } + + if collectStats { + (stats).Size++ // Parens are to work around a goimports bug. + } + + return +} + +// Individual type encoders. + +// Encode a bool. +func (o *Buffer) enc_bool(p *Properties, base structPointer) error { + v := *structPointer_Bool(base, p.field) + if v == nil { + return ErrNil + } + x := 0 + if *v { + x = 1 + } + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, uint64(x)) + return nil +} + +func (o *Buffer) enc_proto3_bool(p *Properties, base structPointer) error { + v := *structPointer_BoolVal(base, p.field) + if !v { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, 1) + return nil +} + +func size_bool(p *Properties, base structPointer) int { + v := *structPointer_Bool(base, p.field) + if v == nil { + return 0 + } + return len(p.tagcode) + 1 // each bool takes exactly one byte +} + +func size_proto3_bool(p *Properties, base structPointer) int { + v := *structPointer_BoolVal(base, p.field) + if !v && !p.oneof { + return 0 + } + return len(p.tagcode) + 1 // each bool takes exactly one byte +} + +// Encode an int32. +func (o *Buffer) enc_int32(p *Properties, base structPointer) error { + v := structPointer_Word32(base, p.field) + if word32_IsNil(v) { + return ErrNil + } + x := int32(word32_Get(v)) // permit sign extension to use full 64-bit range + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, uint64(x)) + return nil +} + +func (o *Buffer) enc_proto3_int32(p *Properties, base structPointer) error { + v := structPointer_Word32Val(base, p.field) + x := int32(word32Val_Get(v)) // permit sign extension to use full 64-bit range + if x == 0 { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, uint64(x)) + return nil +} + +func size_int32(p *Properties, base structPointer) (n int) { + v := structPointer_Word32(base, p.field) + if word32_IsNil(v) { + return 0 + } + x := int32(word32_Get(v)) // permit sign extension to use full 64-bit range + n += len(p.tagcode) + n += p.valSize(uint64(x)) + return +} + +func size_proto3_int32(p *Properties, base structPointer) (n int) { + v := structPointer_Word32Val(base, p.field) + x := int32(word32Val_Get(v)) // permit sign extension to use full 64-bit range + if x == 0 && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += p.valSize(uint64(x)) + return +} + +// Encode a uint32. +// Exactly the same as int32, except for no sign extension. +func (o *Buffer) enc_uint32(p *Properties, base structPointer) error { + v := structPointer_Word32(base, p.field) + if word32_IsNil(v) { + return ErrNil + } + x := word32_Get(v) + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, uint64(x)) + return nil +} + +func (o *Buffer) enc_proto3_uint32(p *Properties, base structPointer) error { + v := structPointer_Word32Val(base, p.field) + x := word32Val_Get(v) + if x == 0 { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, uint64(x)) + return nil +} + +func size_uint32(p *Properties, base structPointer) (n int) { + v := structPointer_Word32(base, p.field) + if word32_IsNil(v) { + return 0 + } + x := word32_Get(v) + n += len(p.tagcode) + n += p.valSize(uint64(x)) + return +} + +func size_proto3_uint32(p *Properties, base structPointer) (n int) { + v := structPointer_Word32Val(base, p.field) + x := word32Val_Get(v) + if x == 0 && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += p.valSize(uint64(x)) + return +} + +// Encode an int64. +func (o *Buffer) enc_int64(p *Properties, base structPointer) error { + v := structPointer_Word64(base, p.field) + if word64_IsNil(v) { + return ErrNil + } + x := word64_Get(v) + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, x) + return nil +} + +func (o *Buffer) enc_proto3_int64(p *Properties, base structPointer) error { + v := structPointer_Word64Val(base, p.field) + x := word64Val_Get(v) + if x == 0 { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, x) + return nil +} + +func size_int64(p *Properties, base structPointer) (n int) { + v := structPointer_Word64(base, p.field) + if word64_IsNil(v) { + return 0 + } + x := word64_Get(v) + n += len(p.tagcode) + n += p.valSize(x) + return +} + +func size_proto3_int64(p *Properties, base structPointer) (n int) { + v := structPointer_Word64Val(base, p.field) + x := word64Val_Get(v) + if x == 0 && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += p.valSize(x) + return +} + +// Encode a string. +func (o *Buffer) enc_string(p *Properties, base structPointer) error { + v := *structPointer_String(base, p.field) + if v == nil { + return ErrNil + } + x := *v + o.buf = append(o.buf, p.tagcode...) + o.EncodeStringBytes(x) + return nil +} + +func (o *Buffer) enc_proto3_string(p *Properties, base structPointer) error { + v := *structPointer_StringVal(base, p.field) + if v == "" { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeStringBytes(v) + return nil +} + +func size_string(p *Properties, base structPointer) (n int) { + v := *structPointer_String(base, p.field) + if v == nil { + return 0 + } + x := *v + n += len(p.tagcode) + n += sizeStringBytes(x) + return +} + +func size_proto3_string(p *Properties, base structPointer) (n int) { + v := *structPointer_StringVal(base, p.field) + if v == "" && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += sizeStringBytes(v) + return +} + +// All protocol buffer fields are nillable, but be careful. +func isNil(v reflect.Value) bool { + switch v.Kind() { + case reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: + return v.IsNil() + } + return false +} + +// Encode a message struct. +func (o *Buffer) enc_struct_message(p *Properties, base structPointer) error { + var state errorState + structp := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(structp) { + return ErrNil + } + + // Can the object marshal itself? + if p.isMarshaler { + m := structPointer_Interface(structp, p.stype).(Marshaler) + data, err := m.Marshal() + if err != nil && !state.shouldContinue(err, nil) { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + return state.err + } + + o.buf = append(o.buf, p.tagcode...) + return o.enc_len_struct(p.sprop, structp, &state) +} + +func size_struct_message(p *Properties, base structPointer) int { + structp := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(structp) { + return 0 + } + + // Can the object marshal itself? + if p.isMarshaler { + m := structPointer_Interface(structp, p.stype).(Marshaler) + data, _ := m.Marshal() + n0 := len(p.tagcode) + n1 := sizeRawBytes(data) + return n0 + n1 + } + + n0 := len(p.tagcode) + n1 := size_struct(p.sprop, structp) + n2 := sizeVarint(uint64(n1)) // size of encoded length + return n0 + n1 + n2 +} + +// Encode a group struct. +func (o *Buffer) enc_struct_group(p *Properties, base structPointer) error { + var state errorState + b := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(b) { + return ErrNil + } + + o.EncodeVarint(uint64((p.Tag << 3) | WireStartGroup)) + err := o.enc_struct(p.sprop, b) + if err != nil && !state.shouldContinue(err, nil) { + return err + } + o.EncodeVarint(uint64((p.Tag << 3) | WireEndGroup)) + return state.err +} + +func size_struct_group(p *Properties, base structPointer) (n int) { + b := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(b) { + return 0 + } + + n += sizeVarint(uint64((p.Tag << 3) | WireStartGroup)) + n += size_struct(p.sprop, b) + n += sizeVarint(uint64((p.Tag << 3) | WireEndGroup)) + return +} + +// Encode a slice of bools ([]bool). +func (o *Buffer) enc_slice_bool(p *Properties, base structPointer) error { + s := *structPointer_BoolSlice(base, p.field) + l := len(s) + if l == 0 { + return ErrNil + } + for _, x := range s { + o.buf = append(o.buf, p.tagcode...) + v := uint64(0) + if x { + v = 1 + } + p.valEnc(o, v) + } + return nil +} + +func size_slice_bool(p *Properties, base structPointer) int { + s := *structPointer_BoolSlice(base, p.field) + l := len(s) + if l == 0 { + return 0 + } + return l * (len(p.tagcode) + 1) // each bool takes exactly one byte +} + +// Encode a slice of bools ([]bool) in packed format. +func (o *Buffer) enc_slice_packed_bool(p *Properties, base structPointer) error { + s := *structPointer_BoolSlice(base, p.field) + l := len(s) + if l == 0 { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeVarint(uint64(l)) // each bool takes exactly one byte + for _, x := range s { + v := uint64(0) + if x { + v = 1 + } + p.valEnc(o, v) + } + return nil +} + +func size_slice_packed_bool(p *Properties, base structPointer) (n int) { + s := *structPointer_BoolSlice(base, p.field) + l := len(s) + if l == 0 { + return 0 + } + n += len(p.tagcode) + n += sizeVarint(uint64(l)) + n += l // each bool takes exactly one byte + return +} + +// Encode a slice of bytes ([]byte). +func (o *Buffer) enc_slice_byte(p *Properties, base structPointer) error { + s := *structPointer_Bytes(base, p.field) + if s == nil { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(s) + return nil +} + +func (o *Buffer) enc_proto3_slice_byte(p *Properties, base structPointer) error { + s := *structPointer_Bytes(base, p.field) + if len(s) == 0 { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(s) + return nil +} + +func size_slice_byte(p *Properties, base structPointer) (n int) { + s := *structPointer_Bytes(base, p.field) + if s == nil && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += sizeRawBytes(s) + return +} + +func size_proto3_slice_byte(p *Properties, base structPointer) (n int) { + s := *structPointer_Bytes(base, p.field) + if len(s) == 0 && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += sizeRawBytes(s) + return +} + +// Encode a slice of int32s ([]int32). +func (o *Buffer) enc_slice_int32(p *Properties, base structPointer) error { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + for i := 0; i < l; i++ { + o.buf = append(o.buf, p.tagcode...) + x := int32(s.Index(i)) // permit sign extension to use full 64-bit range + p.valEnc(o, uint64(x)) + } + return nil +} + +func size_slice_int32(p *Properties, base structPointer) (n int) { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + for i := 0; i < l; i++ { + n += len(p.tagcode) + x := int32(s.Index(i)) // permit sign extension to use full 64-bit range + n += p.valSize(uint64(x)) + } + return +} + +// Encode a slice of int32s ([]int32) in packed format. +func (o *Buffer) enc_slice_packed_int32(p *Properties, base structPointer) error { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + // TODO: Reuse a Buffer. + buf := NewBuffer(nil) + for i := 0; i < l; i++ { + x := int32(s.Index(i)) // permit sign extension to use full 64-bit range + p.valEnc(buf, uint64(x)) + } + + o.buf = append(o.buf, p.tagcode...) + o.EncodeVarint(uint64(len(buf.buf))) + o.buf = append(o.buf, buf.buf...) + return nil +} + +func size_slice_packed_int32(p *Properties, base structPointer) (n int) { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + var bufSize int + for i := 0; i < l; i++ { + x := int32(s.Index(i)) // permit sign extension to use full 64-bit range + bufSize += p.valSize(uint64(x)) + } + + n += len(p.tagcode) + n += sizeVarint(uint64(bufSize)) + n += bufSize + return +} + +// Encode a slice of uint32s ([]uint32). +// Exactly the same as int32, except for no sign extension. +func (o *Buffer) enc_slice_uint32(p *Properties, base structPointer) error { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + for i := 0; i < l; i++ { + o.buf = append(o.buf, p.tagcode...) + x := s.Index(i) + p.valEnc(o, uint64(x)) + } + return nil +} + +func size_slice_uint32(p *Properties, base structPointer) (n int) { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + for i := 0; i < l; i++ { + n += len(p.tagcode) + x := s.Index(i) + n += p.valSize(uint64(x)) + } + return +} + +// Encode a slice of uint32s ([]uint32) in packed format. +// Exactly the same as int32, except for no sign extension. +func (o *Buffer) enc_slice_packed_uint32(p *Properties, base structPointer) error { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + // TODO: Reuse a Buffer. + buf := NewBuffer(nil) + for i := 0; i < l; i++ { + p.valEnc(buf, uint64(s.Index(i))) + } + + o.buf = append(o.buf, p.tagcode...) + o.EncodeVarint(uint64(len(buf.buf))) + o.buf = append(o.buf, buf.buf...) + return nil +} + +func size_slice_packed_uint32(p *Properties, base structPointer) (n int) { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + var bufSize int + for i := 0; i < l; i++ { + bufSize += p.valSize(uint64(s.Index(i))) + } + + n += len(p.tagcode) + n += sizeVarint(uint64(bufSize)) + n += bufSize + return +} + +// Encode a slice of int64s ([]int64). +func (o *Buffer) enc_slice_int64(p *Properties, base structPointer) error { + s := structPointer_Word64Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + for i := 0; i < l; i++ { + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, s.Index(i)) + } + return nil +} + +func size_slice_int64(p *Properties, base structPointer) (n int) { + s := structPointer_Word64Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + for i := 0; i < l; i++ { + n += len(p.tagcode) + n += p.valSize(s.Index(i)) + } + return +} + +// Encode a slice of int64s ([]int64) in packed format. +func (o *Buffer) enc_slice_packed_int64(p *Properties, base structPointer) error { + s := structPointer_Word64Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + // TODO: Reuse a Buffer. + buf := NewBuffer(nil) + for i := 0; i < l; i++ { + p.valEnc(buf, s.Index(i)) + } + + o.buf = append(o.buf, p.tagcode...) + o.EncodeVarint(uint64(len(buf.buf))) + o.buf = append(o.buf, buf.buf...) + return nil +} + +func size_slice_packed_int64(p *Properties, base structPointer) (n int) { + s := structPointer_Word64Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + var bufSize int + for i := 0; i < l; i++ { + bufSize += p.valSize(s.Index(i)) + } + + n += len(p.tagcode) + n += sizeVarint(uint64(bufSize)) + n += bufSize + return +} + +// Encode a slice of slice of bytes ([][]byte). +func (o *Buffer) enc_slice_slice_byte(p *Properties, base structPointer) error { + ss := *structPointer_BytesSlice(base, p.field) + l := len(ss) + if l == 0 { + return ErrNil + } + for i := 0; i < l; i++ { + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(ss[i]) + } + return nil +} + +func size_slice_slice_byte(p *Properties, base structPointer) (n int) { + ss := *structPointer_BytesSlice(base, p.field) + l := len(ss) + if l == 0 { + return 0 + } + n += l * len(p.tagcode) + for i := 0; i < l; i++ { + n += sizeRawBytes(ss[i]) + } + return +} + +// Encode a slice of strings ([]string). +func (o *Buffer) enc_slice_string(p *Properties, base structPointer) error { + ss := *structPointer_StringSlice(base, p.field) + l := len(ss) + for i := 0; i < l; i++ { + o.buf = append(o.buf, p.tagcode...) + o.EncodeStringBytes(ss[i]) + } + return nil +} + +func size_slice_string(p *Properties, base structPointer) (n int) { + ss := *structPointer_StringSlice(base, p.field) + l := len(ss) + n += l * len(p.tagcode) + for i := 0; i < l; i++ { + n += sizeStringBytes(ss[i]) + } + return +} + +// Encode a slice of message structs ([]*struct). +func (o *Buffer) enc_slice_struct_message(p *Properties, base structPointer) error { + var state errorState + s := structPointer_StructPointerSlice(base, p.field) + l := s.Len() + + for i := 0; i < l; i++ { + structp := s.Index(i) + if structPointer_IsNil(structp) { + return errRepeatedHasNil + } + + // Can the object marshal itself? + if p.isMarshaler { + m := structPointer_Interface(structp, p.stype).(Marshaler) + data, err := m.Marshal() + if err != nil && !state.shouldContinue(err, nil) { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + continue + } + + o.buf = append(o.buf, p.tagcode...) + err := o.enc_len_struct(p.sprop, structp, &state) + if err != nil && !state.shouldContinue(err, nil) { + if err == ErrNil { + return errRepeatedHasNil + } + return err + } + } + return state.err +} + +func size_slice_struct_message(p *Properties, base structPointer) (n int) { + s := structPointer_StructPointerSlice(base, p.field) + l := s.Len() + n += l * len(p.tagcode) + for i := 0; i < l; i++ { + structp := s.Index(i) + if structPointer_IsNil(structp) { + return // return the size up to this point + } + + // Can the object marshal itself? + if p.isMarshaler { + m := structPointer_Interface(structp, p.stype).(Marshaler) + data, _ := m.Marshal() + n += sizeRawBytes(data) + continue + } + + n0 := size_struct(p.sprop, structp) + n1 := sizeVarint(uint64(n0)) // size of encoded length + n += n0 + n1 + } + return +} + +// Encode a slice of group structs ([]*struct). +func (o *Buffer) enc_slice_struct_group(p *Properties, base structPointer) error { + var state errorState + s := structPointer_StructPointerSlice(base, p.field) + l := s.Len() + + for i := 0; i < l; i++ { + b := s.Index(i) + if structPointer_IsNil(b) { + return errRepeatedHasNil + } + + o.EncodeVarint(uint64((p.Tag << 3) | WireStartGroup)) + + err := o.enc_struct(p.sprop, b) + + if err != nil && !state.shouldContinue(err, nil) { + if err == ErrNil { + return errRepeatedHasNil + } + return err + } + + o.EncodeVarint(uint64((p.Tag << 3) | WireEndGroup)) + } + return state.err +} + +func size_slice_struct_group(p *Properties, base structPointer) (n int) { + s := structPointer_StructPointerSlice(base, p.field) + l := s.Len() + + n += l * sizeVarint(uint64((p.Tag<<3)|WireStartGroup)) + n += l * sizeVarint(uint64((p.Tag<<3)|WireEndGroup)) + for i := 0; i < l; i++ { + b := s.Index(i) + if structPointer_IsNil(b) { + return // return size up to this point + } + + n += size_struct(p.sprop, b) + } + return +} + +// Encode an extension map. +func (o *Buffer) enc_map(p *Properties, base structPointer) error { + exts := structPointer_ExtMap(base, p.field) + if err := encodeExtensionsMap(*exts); err != nil { + return err + } + + return o.enc_map_body(*exts) +} + +func (o *Buffer) enc_exts(p *Properties, base structPointer) error { + exts := structPointer_Extensions(base, p.field) + + v, mu := exts.extensionsRead() + if v == nil { + return nil + } + + mu.Lock() + defer mu.Unlock() + if err := encodeExtensionsMap(v); err != nil { + return err + } + + return o.enc_map_body(v) +} + +func (o *Buffer) enc_map_body(v map[int32]Extension) error { + // Fast-path for common cases: zero or one extensions. + if len(v) <= 1 { + for _, e := range v { + o.buf = append(o.buf, e.enc...) + } + return nil + } + + // Sort keys to provide a deterministic encoding. + keys := make([]int, 0, len(v)) + for k := range v { + keys = append(keys, int(k)) + } + sort.Ints(keys) + + for _, k := range keys { + o.buf = append(o.buf, v[int32(k)].enc...) + } + return nil +} + +func size_map(p *Properties, base structPointer) int { + v := structPointer_ExtMap(base, p.field) + return extensionsMapSize(*v) +} + +func size_exts(p *Properties, base structPointer) int { + v := structPointer_Extensions(base, p.field) + return extensionsSize(v) +} + +// Encode a map field. +func (o *Buffer) enc_new_map(p *Properties, base structPointer) error { + var state errorState // XXX: or do we need to plumb this through? + + /* + A map defined as + map map_field = N; + is encoded in the same way as + message MapFieldEntry { + key_type key = 1; + value_type value = 2; + } + repeated MapFieldEntry map_field = N; + */ + + v := structPointer_NewAt(base, p.field, p.mtype).Elem() // map[K]V + if v.Len() == 0 { + return nil + } + + keycopy, valcopy, keybase, valbase := mapEncodeScratch(p.mtype) + + enc := func() error { + if err := p.mkeyprop.enc(o, p.mkeyprop, keybase); err != nil { + return err + } + if err := p.mvalprop.enc(o, p.mvalprop, valbase); err != nil && err != ErrNil { + return err + } + return nil + } + + // Don't sort map keys. It is not required by the spec, and C++ doesn't do it. + for _, key := range v.MapKeys() { + val := v.MapIndex(key) + + keycopy.Set(key) + valcopy.Set(val) + + o.buf = append(o.buf, p.tagcode...) + if err := o.enc_len_thing(enc, &state); err != nil { + return err + } + } + return nil +} + +func size_new_map(p *Properties, base structPointer) int { + v := structPointer_NewAt(base, p.field, p.mtype).Elem() // map[K]V + + keycopy, valcopy, keybase, valbase := mapEncodeScratch(p.mtype) + + n := 0 + for _, key := range v.MapKeys() { + val := v.MapIndex(key) + keycopy.Set(key) + valcopy.Set(val) + + // Tag codes for key and val are the responsibility of the sub-sizer. + keysize := p.mkeyprop.size(p.mkeyprop, keybase) + valsize := p.mvalprop.size(p.mvalprop, valbase) + entry := keysize + valsize + // Add on tag code and length of map entry itself. + n += len(p.tagcode) + sizeVarint(uint64(entry)) + entry + } + return n +} + +// mapEncodeScratch returns a new reflect.Value matching the map's value type, +// and a structPointer suitable for passing to an encoder or sizer. +func mapEncodeScratch(mapType reflect.Type) (keycopy, valcopy reflect.Value, keybase, valbase structPointer) { + // Prepare addressable doubly-indirect placeholders for the key and value types. + // This is needed because the element-type encoders expect **T, but the map iteration produces T. + + keycopy = reflect.New(mapType.Key()).Elem() // addressable K + keyptr := reflect.New(reflect.PtrTo(keycopy.Type())).Elem() // addressable *K + keyptr.Set(keycopy.Addr()) // + keybase = toStructPointer(keyptr.Addr()) // **K + + // Value types are more varied and require special handling. + switch mapType.Elem().Kind() { + case reflect.Slice: + // []byte + var dummy []byte + valcopy = reflect.ValueOf(&dummy).Elem() // addressable []byte + valbase = toStructPointer(valcopy.Addr()) + case reflect.Ptr: + // message; the generated field type is map[K]*Msg (so V is *Msg), + // so we only need one level of indirection. + valcopy = reflect.New(mapType.Elem()).Elem() // addressable V + valbase = toStructPointer(valcopy.Addr()) + default: + // everything else + valcopy = reflect.New(mapType.Elem()).Elem() // addressable V + valptr := reflect.New(reflect.PtrTo(valcopy.Type())).Elem() // addressable *V + valptr.Set(valcopy.Addr()) // + valbase = toStructPointer(valptr.Addr()) // **V + } + return +} + +// Encode a struct. +func (o *Buffer) enc_struct(prop *StructProperties, base structPointer) error { + var state errorState + // Encode fields in tag order so that decoders may use optimizations + // that depend on the ordering. + // https://developers.google.com/protocol-buffers/docs/encoding#order + for _, i := range prop.order { + p := prop.Prop[i] + if p.enc != nil { + err := p.enc(o, p, base) + if err != nil { + if err == ErrNil { + if p.Required && state.err == nil { + state.err = &RequiredNotSetError{p.Name} + } + } else if err == errRepeatedHasNil { + // Give more context to nil values in repeated fields. + return errors.New("repeated field " + p.OrigName + " has nil element") + } else if !state.shouldContinue(err, p) { + return err + } + } + if len(o.buf) > maxMarshalSize { + return ErrTooLarge + } + } + } + + // Do oneof fields. + if prop.oneofMarshaler != nil { + m := structPointer_Interface(base, prop.stype).(Message) + if err := prop.oneofMarshaler(m, o); err == ErrNil { + return errOneofHasNil + } else if err != nil { + return err + } + } + + // Add unrecognized fields at the end. + if prop.unrecField.IsValid() { + v := *structPointer_Bytes(base, prop.unrecField) + if len(o.buf)+len(v) > maxMarshalSize { + return ErrTooLarge + } + if len(v) > 0 { + o.buf = append(o.buf, v...) + } + } + + return state.err +} + +func size_struct(prop *StructProperties, base structPointer) (n int) { + for _, i := range prop.order { + p := prop.Prop[i] + if p.size != nil { + n += p.size(p, base) + } + } + + // Add unrecognized fields at the end. + if prop.unrecField.IsValid() { + v := *structPointer_Bytes(base, prop.unrecField) + n += len(v) + } + + // Factor in any oneof fields. + if prop.oneofSizer != nil { + m := structPointer_Interface(base, prop.stype).(Message) + n += prop.oneofSizer(m) + } + + return +} + +var zeroes [20]byte // longer than any conceivable sizeVarint + +// Encode a struct, preceded by its encoded length (as a varint). +func (o *Buffer) enc_len_struct(prop *StructProperties, base structPointer, state *errorState) error { + return o.enc_len_thing(func() error { return o.enc_struct(prop, base) }, state) +} + +// Encode something, preceded by its encoded length (as a varint). +func (o *Buffer) enc_len_thing(enc func() error, state *errorState) error { + iLen := len(o.buf) + o.buf = append(o.buf, 0, 0, 0, 0) // reserve four bytes for length + iMsg := len(o.buf) + err := enc() + if err != nil && !state.shouldContinue(err, nil) { + return err + } + lMsg := len(o.buf) - iMsg + lLen := sizeVarint(uint64(lMsg)) + switch x := lLen - (iMsg - iLen); { + case x > 0: // actual length is x bytes larger than the space we reserved + // Move msg x bytes right. + o.buf = append(o.buf, zeroes[:x]...) + copy(o.buf[iMsg+x:], o.buf[iMsg:iMsg+lMsg]) + case x < 0: // actual length is x bytes smaller than the space we reserved + // Move msg x bytes left. + copy(o.buf[iMsg+x:], o.buf[iMsg:iMsg+lMsg]) + o.buf = o.buf[:len(o.buf)+x] // x is negative + } + // Encode the length in the reserved space. + o.buf = o.buf[:iLen] + o.EncodeVarint(uint64(lMsg)) + o.buf = o.buf[:len(o.buf)+lMsg] + return state.err +} + +// errorState maintains the first error that occurs and updates that error +// with additional context. +type errorState struct { + err error +} + +// shouldContinue reports whether encoding should continue upon encountering the +// given error. If the error is RequiredNotSetError, shouldContinue returns true +// and, if this is the first appearance of that error, remembers it for future +// reporting. +// +// If prop is not nil, it may update any error with additional context about the +// field with the error. +func (s *errorState) shouldContinue(err error, prop *Properties) bool { + // Ignore unset required fields. + reqNotSet, ok := err.(*RequiredNotSetError) + if !ok { + return false + } + if s.err == nil { + if prop != nil { + err = &RequiredNotSetError{prop.Name + "." + reqNotSet.field} + } + s.err = err + } + return true +} diff --git a/vendor/github.com/golang/protobuf/proto/equal.go b/vendor/github.com/golang/protobuf/proto/equal.go new file mode 100644 index 0000000..2ed1cf5 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/equal.go @@ -0,0 +1,300 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Protocol buffer comparison. + +package proto + +import ( + "bytes" + "log" + "reflect" + "strings" +) + +/* +Equal returns true iff protocol buffers a and b are equal. +The arguments must both be pointers to protocol buffer structs. + +Equality is defined in this way: + - Two messages are equal iff they are the same type, + corresponding fields are equal, unknown field sets + are equal, and extensions sets are equal. + - Two set scalar fields are equal iff their values are equal. + If the fields are of a floating-point type, remember that + NaN != x for all x, including NaN. If the message is defined + in a proto3 .proto file, fields are not "set"; specifically, + zero length proto3 "bytes" fields are equal (nil == {}). + - Two repeated fields are equal iff their lengths are the same, + and their corresponding elements are equal. Note a "bytes" field, + although represented by []byte, is not a repeated field and the + rule for the scalar fields described above applies. + - Two unset fields are equal. + - Two unknown field sets are equal if their current + encoded state is equal. + - Two extension sets are equal iff they have corresponding + elements that are pairwise equal. + - Two map fields are equal iff their lengths are the same, + and they contain the same set of elements. Zero-length map + fields are equal. + - Every other combination of things are not equal. + +The return value is undefined if a and b are not protocol buffers. +*/ +func Equal(a, b Message) bool { + if a == nil || b == nil { + return a == b + } + v1, v2 := reflect.ValueOf(a), reflect.ValueOf(b) + if v1.Type() != v2.Type() { + return false + } + if v1.Kind() == reflect.Ptr { + if v1.IsNil() { + return v2.IsNil() + } + if v2.IsNil() { + return false + } + v1, v2 = v1.Elem(), v2.Elem() + } + if v1.Kind() != reflect.Struct { + return false + } + return equalStruct(v1, v2) +} + +// v1 and v2 are known to have the same type. +func equalStruct(v1, v2 reflect.Value) bool { + sprop := GetProperties(v1.Type()) + for i := 0; i < v1.NumField(); i++ { + f := v1.Type().Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + f1, f2 := v1.Field(i), v2.Field(i) + if f.Type.Kind() == reflect.Ptr { + if n1, n2 := f1.IsNil(), f2.IsNil(); n1 && n2 { + // both unset + continue + } else if n1 != n2 { + // set/unset mismatch + return false + } + b1, ok := f1.Interface().(raw) + if ok { + b2 := f2.Interface().(raw) + // RawMessage + if !bytes.Equal(b1.Bytes(), b2.Bytes()) { + return false + } + continue + } + f1, f2 = f1.Elem(), f2.Elem() + } + if !equalAny(f1, f2, sprop.Prop[i]) { + return false + } + } + + if em1 := v1.FieldByName("XXX_InternalExtensions"); em1.IsValid() { + em2 := v2.FieldByName("XXX_InternalExtensions") + if !equalExtensions(v1.Type(), em1.Interface().(XXX_InternalExtensions), em2.Interface().(XXX_InternalExtensions)) { + return false + } + } + + if em1 := v1.FieldByName("XXX_extensions"); em1.IsValid() { + em2 := v2.FieldByName("XXX_extensions") + if !equalExtMap(v1.Type(), em1.Interface().(map[int32]Extension), em2.Interface().(map[int32]Extension)) { + return false + } + } + + uf := v1.FieldByName("XXX_unrecognized") + if !uf.IsValid() { + return true + } + + u1 := uf.Bytes() + u2 := v2.FieldByName("XXX_unrecognized").Bytes() + if !bytes.Equal(u1, u2) { + return false + } + + return true +} + +// v1 and v2 are known to have the same type. +// prop may be nil. +func equalAny(v1, v2 reflect.Value, prop *Properties) bool { + if v1.Type() == protoMessageType { + m1, _ := v1.Interface().(Message) + m2, _ := v2.Interface().(Message) + return Equal(m1, m2) + } + switch v1.Kind() { + case reflect.Bool: + return v1.Bool() == v2.Bool() + case reflect.Float32, reflect.Float64: + return v1.Float() == v2.Float() + case reflect.Int32, reflect.Int64: + return v1.Int() == v2.Int() + case reflect.Interface: + // Probably a oneof field; compare the inner values. + n1, n2 := v1.IsNil(), v2.IsNil() + if n1 || n2 { + return n1 == n2 + } + e1, e2 := v1.Elem(), v2.Elem() + if e1.Type() != e2.Type() { + return false + } + return equalAny(e1, e2, nil) + case reflect.Map: + if v1.Len() != v2.Len() { + return false + } + for _, key := range v1.MapKeys() { + val2 := v2.MapIndex(key) + if !val2.IsValid() { + // This key was not found in the second map. + return false + } + if !equalAny(v1.MapIndex(key), val2, nil) { + return false + } + } + return true + case reflect.Ptr: + // Maps may have nil values in them, so check for nil. + if v1.IsNil() && v2.IsNil() { + return true + } + if v1.IsNil() != v2.IsNil() { + return false + } + return equalAny(v1.Elem(), v2.Elem(), prop) + case reflect.Slice: + if v1.Type().Elem().Kind() == reflect.Uint8 { + // short circuit: []byte + + // Edge case: if this is in a proto3 message, a zero length + // bytes field is considered the zero value. + if prop != nil && prop.proto3 && v1.Len() == 0 && v2.Len() == 0 { + return true + } + if v1.IsNil() != v2.IsNil() { + return false + } + return bytes.Equal(v1.Interface().([]byte), v2.Interface().([]byte)) + } + + if v1.Len() != v2.Len() { + return false + } + for i := 0; i < v1.Len(); i++ { + if !equalAny(v1.Index(i), v2.Index(i), prop) { + return false + } + } + return true + case reflect.String: + return v1.Interface().(string) == v2.Interface().(string) + case reflect.Struct: + return equalStruct(v1, v2) + case reflect.Uint32, reflect.Uint64: + return v1.Uint() == v2.Uint() + } + + // unknown type, so not a protocol buffer + log.Printf("proto: don't know how to compare %v", v1) + return false +} + +// base is the struct type that the extensions are based on. +// x1 and x2 are InternalExtensions. +func equalExtensions(base reflect.Type, x1, x2 XXX_InternalExtensions) bool { + em1, _ := x1.extensionsRead() + em2, _ := x2.extensionsRead() + return equalExtMap(base, em1, em2) +} + +func equalExtMap(base reflect.Type, em1, em2 map[int32]Extension) bool { + if len(em1) != len(em2) { + return false + } + + for extNum, e1 := range em1 { + e2, ok := em2[extNum] + if !ok { + return false + } + + m1, m2 := e1.value, e2.value + + if m1 != nil && m2 != nil { + // Both are unencoded. + if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) { + return false + } + continue + } + + // At least one is encoded. To do a semantically correct comparison + // we need to unmarshal them first. + var desc *ExtensionDesc + if m := extensionMaps[base]; m != nil { + desc = m[extNum] + } + if desc == nil { + log.Printf("proto: don't know how to compare extension %d of %v", extNum, base) + continue + } + var err error + if m1 == nil { + m1, err = decodeExtension(e1.enc, desc) + } + if m2 == nil && err == nil { + m2, err = decodeExtension(e2.enc, desc) + } + if err != nil { + // The encoded form is invalid. + log.Printf("proto: badly encoded extension %d of %v: %v", extNum, base, err) + return false + } + if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) { + return false + } + } + + return true +} diff --git a/vendor/github.com/golang/protobuf/proto/extensions.go b/vendor/github.com/golang/protobuf/proto/extensions.go new file mode 100644 index 0000000..eaad218 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/extensions.go @@ -0,0 +1,587 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Types and routines for supporting protocol buffer extensions. + */ + +import ( + "errors" + "fmt" + "reflect" + "strconv" + "sync" +) + +// ErrMissingExtension is the error returned by GetExtension if the named extension is not in the message. +var ErrMissingExtension = errors.New("proto: missing extension") + +// ExtensionRange represents a range of message extensions for a protocol buffer. +// Used in code generated by the protocol compiler. +type ExtensionRange struct { + Start, End int32 // both inclusive +} + +// extendableProto is an interface implemented by any protocol buffer generated by the current +// proto compiler that may be extended. +type extendableProto interface { + Message + ExtensionRangeArray() []ExtensionRange + extensionsWrite() map[int32]Extension + extensionsRead() (map[int32]Extension, sync.Locker) +} + +// extendableProtoV1 is an interface implemented by a protocol buffer generated by the previous +// version of the proto compiler that may be extended. +type extendableProtoV1 interface { + Message + ExtensionRangeArray() []ExtensionRange + ExtensionMap() map[int32]Extension +} + +// extensionAdapter is a wrapper around extendableProtoV1 that implements extendableProto. +type extensionAdapter struct { + extendableProtoV1 +} + +func (e extensionAdapter) extensionsWrite() map[int32]Extension { + return e.ExtensionMap() +} + +func (e extensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) { + return e.ExtensionMap(), notLocker{} +} + +// notLocker is a sync.Locker whose Lock and Unlock methods are nops. +type notLocker struct{} + +func (n notLocker) Lock() {} +func (n notLocker) Unlock() {} + +// extendable returns the extendableProto interface for the given generated proto message. +// If the proto message has the old extension format, it returns a wrapper that implements +// the extendableProto interface. +func extendable(p interface{}) (extendableProto, bool) { + if ep, ok := p.(extendableProto); ok { + return ep, ok + } + if ep, ok := p.(extendableProtoV1); ok { + return extensionAdapter{ep}, ok + } + return nil, false +} + +// XXX_InternalExtensions is an internal representation of proto extensions. +// +// Each generated message struct type embeds an anonymous XXX_InternalExtensions field, +// thus gaining the unexported 'extensions' method, which can be called only from the proto package. +// +// The methods of XXX_InternalExtensions are not concurrency safe in general, +// but calls to logically read-only methods such as has and get may be executed concurrently. +type XXX_InternalExtensions struct { + // The struct must be indirect so that if a user inadvertently copies a + // generated message and its embedded XXX_InternalExtensions, they + // avoid the mayhem of a copied mutex. + // + // The mutex serializes all logically read-only operations to p.extensionMap. + // It is up to the client to ensure that write operations to p.extensionMap are + // mutually exclusive with other accesses. + p *struct { + mu sync.Mutex + extensionMap map[int32]Extension + } +} + +// extensionsWrite returns the extension map, creating it on first use. +func (e *XXX_InternalExtensions) extensionsWrite() map[int32]Extension { + if e.p == nil { + e.p = new(struct { + mu sync.Mutex + extensionMap map[int32]Extension + }) + e.p.extensionMap = make(map[int32]Extension) + } + return e.p.extensionMap +} + +// extensionsRead returns the extensions map for read-only use. It may be nil. +// The caller must hold the returned mutex's lock when accessing Elements within the map. +func (e *XXX_InternalExtensions) extensionsRead() (map[int32]Extension, sync.Locker) { + if e.p == nil { + return nil, nil + } + return e.p.extensionMap, &e.p.mu +} + +var extendableProtoType = reflect.TypeOf((*extendableProto)(nil)).Elem() +var extendableProtoV1Type = reflect.TypeOf((*extendableProtoV1)(nil)).Elem() + +// ExtensionDesc represents an extension specification. +// Used in generated code from the protocol compiler. +type ExtensionDesc struct { + ExtendedType Message // nil pointer to the type that is being extended + ExtensionType interface{} // nil pointer to the extension type + Field int32 // field number + Name string // fully-qualified name of extension, for text formatting + Tag string // protobuf tag style + Filename string // name of the file in which the extension is defined +} + +func (ed *ExtensionDesc) repeated() bool { + t := reflect.TypeOf(ed.ExtensionType) + return t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 +} + +// Extension represents an extension in a message. +type Extension struct { + // When an extension is stored in a message using SetExtension + // only desc and value are set. When the message is marshaled + // enc will be set to the encoded form of the message. + // + // When a message is unmarshaled and contains extensions, each + // extension will have only enc set. When such an extension is + // accessed using GetExtension (or GetExtensions) desc and value + // will be set. + desc *ExtensionDesc + value interface{} + enc []byte +} + +// SetRawExtension is for testing only. +func SetRawExtension(base Message, id int32, b []byte) { + epb, ok := extendable(base) + if !ok { + return + } + extmap := epb.extensionsWrite() + extmap[id] = Extension{enc: b} +} + +// isExtensionField returns true iff the given field number is in an extension range. +func isExtensionField(pb extendableProto, field int32) bool { + for _, er := range pb.ExtensionRangeArray() { + if er.Start <= field && field <= er.End { + return true + } + } + return false +} + +// checkExtensionTypes checks that the given extension is valid for pb. +func checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) error { + var pbi interface{} = pb + // Check the extended type. + if ea, ok := pbi.(extensionAdapter); ok { + pbi = ea.extendableProtoV1 + } + if a, b := reflect.TypeOf(pbi), reflect.TypeOf(extension.ExtendedType); a != b { + return errors.New("proto: bad extended type; " + b.String() + " does not extend " + a.String()) + } + // Check the range. + if !isExtensionField(pb, extension.Field) { + return errors.New("proto: bad extension number; not in declared ranges") + } + return nil +} + +// extPropKey is sufficient to uniquely identify an extension. +type extPropKey struct { + base reflect.Type + field int32 +} + +var extProp = struct { + sync.RWMutex + m map[extPropKey]*Properties +}{ + m: make(map[extPropKey]*Properties), +} + +func extensionProperties(ed *ExtensionDesc) *Properties { + key := extPropKey{base: reflect.TypeOf(ed.ExtendedType), field: ed.Field} + + extProp.RLock() + if prop, ok := extProp.m[key]; ok { + extProp.RUnlock() + return prop + } + extProp.RUnlock() + + extProp.Lock() + defer extProp.Unlock() + // Check again. + if prop, ok := extProp.m[key]; ok { + return prop + } + + prop := new(Properties) + prop.Init(reflect.TypeOf(ed.ExtensionType), "unknown_name", ed.Tag, nil) + extProp.m[key] = prop + return prop +} + +// encode encodes any unmarshaled (unencoded) extensions in e. +func encodeExtensions(e *XXX_InternalExtensions) error { + m, mu := e.extensionsRead() + if m == nil { + return nil // fast path + } + mu.Lock() + defer mu.Unlock() + return encodeExtensionsMap(m) +} + +// encode encodes any unmarshaled (unencoded) extensions in e. +func encodeExtensionsMap(m map[int32]Extension) error { + for k, e := range m { + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + et := reflect.TypeOf(e.desc.ExtensionType) + props := extensionProperties(e.desc) + + p := NewBuffer(nil) + // If e.value has type T, the encoder expects a *struct{ X T }. + // Pass a *T with a zero field and hope it all works out. + x := reflect.New(et) + x.Elem().Set(reflect.ValueOf(e.value)) + if err := props.enc(p, props, toStructPointer(x)); err != nil { + return err + } + e.enc = p.buf + m[k] = e + } + return nil +} + +func extensionsSize(e *XXX_InternalExtensions) (n int) { + m, mu := e.extensionsRead() + if m == nil { + return 0 + } + mu.Lock() + defer mu.Unlock() + return extensionsMapSize(m) +} + +func extensionsMapSize(m map[int32]Extension) (n int) { + for _, e := range m { + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + n += len(e.enc) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + et := reflect.TypeOf(e.desc.ExtensionType) + props := extensionProperties(e.desc) + + // If e.value has type T, the encoder expects a *struct{ X T }. + // Pass a *T with a zero field and hope it all works out. + x := reflect.New(et) + x.Elem().Set(reflect.ValueOf(e.value)) + n += props.size(props, toStructPointer(x)) + } + return +} + +// HasExtension returns whether the given extension is present in pb. +func HasExtension(pb Message, extension *ExtensionDesc) bool { + // TODO: Check types, field numbers, etc.? + epb, ok := extendable(pb) + if !ok { + return false + } + extmap, mu := epb.extensionsRead() + if extmap == nil { + return false + } + mu.Lock() + _, ok = extmap[extension.Field] + mu.Unlock() + return ok +} + +// ClearExtension removes the given extension from pb. +func ClearExtension(pb Message, extension *ExtensionDesc) { + epb, ok := extendable(pb) + if !ok { + return + } + // TODO: Check types, field numbers, etc.? + extmap := epb.extensionsWrite() + delete(extmap, extension.Field) +} + +// GetExtension parses and returns the given extension of pb. +// If the extension is not present and has no default value it returns ErrMissingExtension. +func GetExtension(pb Message, extension *ExtensionDesc) (interface{}, error) { + epb, ok := extendable(pb) + if !ok { + return nil, errors.New("proto: not an extendable proto") + } + + if err := checkExtensionTypes(epb, extension); err != nil { + return nil, err + } + + emap, mu := epb.extensionsRead() + if emap == nil { + return defaultExtensionValue(extension) + } + mu.Lock() + defer mu.Unlock() + e, ok := emap[extension.Field] + if !ok { + // defaultExtensionValue returns the default value or + // ErrMissingExtension if there is no default. + return defaultExtensionValue(extension) + } + + if e.value != nil { + // Already decoded. Check the descriptor, though. + if e.desc != extension { + // This shouldn't happen. If it does, it means that + // GetExtension was called twice with two different + // descriptors with the same field number. + return nil, errors.New("proto: descriptor conflict") + } + return e.value, nil + } + + v, err := decodeExtension(e.enc, extension) + if err != nil { + return nil, err + } + + // Remember the decoded version and drop the encoded version. + // That way it is safe to mutate what we return. + e.value = v + e.desc = extension + e.enc = nil + emap[extension.Field] = e + return e.value, nil +} + +// defaultExtensionValue returns the default value for extension. +// If no default for an extension is defined ErrMissingExtension is returned. +func defaultExtensionValue(extension *ExtensionDesc) (interface{}, error) { + t := reflect.TypeOf(extension.ExtensionType) + props := extensionProperties(extension) + + sf, _, err := fieldDefault(t, props) + if err != nil { + return nil, err + } + + if sf == nil || sf.value == nil { + // There is no default value. + return nil, ErrMissingExtension + } + + if t.Kind() != reflect.Ptr { + // We do not need to return a Ptr, we can directly return sf.value. + return sf.value, nil + } + + // We need to return an interface{} that is a pointer to sf.value. + value := reflect.New(t).Elem() + value.Set(reflect.New(value.Type().Elem())) + if sf.kind == reflect.Int32 { + // We may have an int32 or an enum, but the underlying data is int32. + // Since we can't set an int32 into a non int32 reflect.value directly + // set it as a int32. + value.Elem().SetInt(int64(sf.value.(int32))) + } else { + value.Elem().Set(reflect.ValueOf(sf.value)) + } + return value.Interface(), nil +} + +// decodeExtension decodes an extension encoded in b. +func decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, error) { + o := NewBuffer(b) + + t := reflect.TypeOf(extension.ExtensionType) + + props := extensionProperties(extension) + + // t is a pointer to a struct, pointer to basic type or a slice. + // Allocate a "field" to store the pointer/slice itself; the + // pointer/slice will be stored here. We pass + // the address of this field to props.dec. + // This passes a zero field and a *t and lets props.dec + // interpret it as a *struct{ x t }. + value := reflect.New(t).Elem() + + for { + // Discard wire type and field number varint. It isn't needed. + if _, err := o.DecodeVarint(); err != nil { + return nil, err + } + + if err := props.dec(o, props, toStructPointer(value.Addr())); err != nil { + return nil, err + } + + if o.index >= len(o.buf) { + break + } + } + return value.Interface(), nil +} + +// GetExtensions returns a slice of the extensions present in pb that are also listed in es. +// The returned slice has the same length as es; missing extensions will appear as nil elements. +func GetExtensions(pb Message, es []*ExtensionDesc) (extensions []interface{}, err error) { + epb, ok := extendable(pb) + if !ok { + return nil, errors.New("proto: not an extendable proto") + } + extensions = make([]interface{}, len(es)) + for i, e := range es { + extensions[i], err = GetExtension(epb, e) + if err == ErrMissingExtension { + err = nil + } + if err != nil { + return + } + } + return +} + +// ExtensionDescs returns a new slice containing pb's extension descriptors, in undefined order. +// For non-registered extensions, ExtensionDescs returns an incomplete descriptor containing +// just the Field field, which defines the extension's field number. +func ExtensionDescs(pb Message) ([]*ExtensionDesc, error) { + epb, ok := extendable(pb) + if !ok { + return nil, fmt.Errorf("proto: %T is not an extendable proto.Message", pb) + } + registeredExtensions := RegisteredExtensions(pb) + + emap, mu := epb.extensionsRead() + if emap == nil { + return nil, nil + } + mu.Lock() + defer mu.Unlock() + extensions := make([]*ExtensionDesc, 0, len(emap)) + for extid, e := range emap { + desc := e.desc + if desc == nil { + desc = registeredExtensions[extid] + if desc == nil { + desc = &ExtensionDesc{Field: extid} + } + } + + extensions = append(extensions, desc) + } + return extensions, nil +} + +// SetExtension sets the specified extension of pb to the specified value. +func SetExtension(pb Message, extension *ExtensionDesc, value interface{}) error { + epb, ok := extendable(pb) + if !ok { + return errors.New("proto: not an extendable proto") + } + if err := checkExtensionTypes(epb, extension); err != nil { + return err + } + typ := reflect.TypeOf(extension.ExtensionType) + if typ != reflect.TypeOf(value) { + return errors.New("proto: bad extension value type") + } + // nil extension values need to be caught early, because the + // encoder can't distinguish an ErrNil due to a nil extension + // from an ErrNil due to a missing field. Extensions are + // always optional, so the encoder would just swallow the error + // and drop all the extensions from the encoded message. + if reflect.ValueOf(value).IsNil() { + return fmt.Errorf("proto: SetExtension called with nil value of type %T", value) + } + + extmap := epb.extensionsWrite() + extmap[extension.Field] = Extension{desc: extension, value: value} + return nil +} + +// ClearAllExtensions clears all extensions from pb. +func ClearAllExtensions(pb Message) { + epb, ok := extendable(pb) + if !ok { + return + } + m := epb.extensionsWrite() + for k := range m { + delete(m, k) + } +} + +// A global registry of extensions. +// The generated code will register the generated descriptors by calling RegisterExtension. + +var extensionMaps = make(map[reflect.Type]map[int32]*ExtensionDesc) + +// RegisterExtension is called from the generated code. +func RegisterExtension(desc *ExtensionDesc) { + st := reflect.TypeOf(desc.ExtendedType).Elem() + m := extensionMaps[st] + if m == nil { + m = make(map[int32]*ExtensionDesc) + extensionMaps[st] = m + } + if _, ok := m[desc.Field]; ok { + panic("proto: duplicate extension registered: " + st.String() + " " + strconv.Itoa(int(desc.Field))) + } + m[desc.Field] = desc +} + +// RegisteredExtensions returns a map of the registered extensions of a +// protocol buffer struct, indexed by the extension number. +// The argument pb should be a nil pointer to the struct type. +func RegisteredExtensions(pb Message) map[int32]*ExtensionDesc { + return extensionMaps[reflect.TypeOf(pb).Elem()] +} diff --git a/vendor/github.com/golang/protobuf/proto/lib.go b/vendor/github.com/golang/protobuf/proto/lib.go new file mode 100644 index 0000000..1c22550 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/lib.go @@ -0,0 +1,897 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* +Package proto converts data structures to and from the wire format of +protocol buffers. It works in concert with the Go source code generated +for .proto files by the protocol compiler. + +A summary of the properties of the protocol buffer interface +for a protocol buffer variable v: + + - Names are turned from camel_case to CamelCase for export. + - There are no methods on v to set fields; just treat + them as structure fields. + - There are getters that return a field's value if set, + and return the field's default value if unset. + The getters work even if the receiver is a nil message. + - The zero value for a struct is its correct initialization state. + All desired fields must be set before marshaling. + - A Reset() method will restore a protobuf struct to its zero state. + - Non-repeated fields are pointers to the values; nil means unset. + That is, optional or required field int32 f becomes F *int32. + - Repeated fields are slices. + - Helper functions are available to aid the setting of fields. + msg.Foo = proto.String("hello") // set field + - Constants are defined to hold the default values of all fields that + have them. They have the form Default_StructName_FieldName. + Because the getter methods handle defaulted values, + direct use of these constants should be rare. + - Enums are given type names and maps from names to values. + Enum values are prefixed by the enclosing message's name, or by the + enum's type name if it is a top-level enum. Enum types have a String + method, and a Enum method to assist in message construction. + - Nested messages, groups and enums have type names prefixed with the name of + the surrounding message type. + - Extensions are given descriptor names that start with E_, + followed by an underscore-delimited list of the nested messages + that contain it (if any) followed by the CamelCased name of the + extension field itself. HasExtension, ClearExtension, GetExtension + and SetExtension are functions for manipulating extensions. + - Oneof field sets are given a single field in their message, + with distinguished wrapper types for each possible field value. + - Marshal and Unmarshal are functions to encode and decode the wire format. + +When the .proto file specifies `syntax="proto3"`, there are some differences: + + - Non-repeated fields of non-message type are values instead of pointers. + - Enum types do not get an Enum method. + +The simplest way to describe this is to see an example. +Given file test.proto, containing + + package example; + + enum FOO { X = 17; } + + message Test { + required string label = 1; + optional int32 type = 2 [default=77]; + repeated int64 reps = 3; + optional group OptionalGroup = 4 { + required string RequiredField = 5; + } + oneof union { + int32 number = 6; + string name = 7; + } + } + +The resulting file, test.pb.go, is: + + package example + + import proto "github.com/golang/protobuf/proto" + import math "math" + + type FOO int32 + const ( + FOO_X FOO = 17 + ) + var FOO_name = map[int32]string{ + 17: "X", + } + var FOO_value = map[string]int32{ + "X": 17, + } + + func (x FOO) Enum() *FOO { + p := new(FOO) + *p = x + return p + } + func (x FOO) String() string { + return proto.EnumName(FOO_name, int32(x)) + } + func (x *FOO) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FOO_value, data) + if err != nil { + return err + } + *x = FOO(value) + return nil + } + + type Test struct { + Label *string `protobuf:"bytes,1,req,name=label" json:"label,omitempty"` + Type *int32 `protobuf:"varint,2,opt,name=type,def=77" json:"type,omitempty"` + Reps []int64 `protobuf:"varint,3,rep,name=reps" json:"reps,omitempty"` + Optionalgroup *Test_OptionalGroup `protobuf:"group,4,opt,name=OptionalGroup" json:"optionalgroup,omitempty"` + // Types that are valid to be assigned to Union: + // *Test_Number + // *Test_Name + Union isTest_Union `protobuf_oneof:"union"` + XXX_unrecognized []byte `json:"-"` + } + func (m *Test) Reset() { *m = Test{} } + func (m *Test) String() string { return proto.CompactTextString(m) } + func (*Test) ProtoMessage() {} + + type isTest_Union interface { + isTest_Union() + } + + type Test_Number struct { + Number int32 `protobuf:"varint,6,opt,name=number"` + } + type Test_Name struct { + Name string `protobuf:"bytes,7,opt,name=name"` + } + + func (*Test_Number) isTest_Union() {} + func (*Test_Name) isTest_Union() {} + + func (m *Test) GetUnion() isTest_Union { + if m != nil { + return m.Union + } + return nil + } + const Default_Test_Type int32 = 77 + + func (m *Test) GetLabel() string { + if m != nil && m.Label != nil { + return *m.Label + } + return "" + } + + func (m *Test) GetType() int32 { + if m != nil && m.Type != nil { + return *m.Type + } + return Default_Test_Type + } + + func (m *Test) GetOptionalgroup() *Test_OptionalGroup { + if m != nil { + return m.Optionalgroup + } + return nil + } + + type Test_OptionalGroup struct { + RequiredField *string `protobuf:"bytes,5,req" json:"RequiredField,omitempty"` + } + func (m *Test_OptionalGroup) Reset() { *m = Test_OptionalGroup{} } + func (m *Test_OptionalGroup) String() string { return proto.CompactTextString(m) } + + func (m *Test_OptionalGroup) GetRequiredField() string { + if m != nil && m.RequiredField != nil { + return *m.RequiredField + } + return "" + } + + func (m *Test) GetNumber() int32 { + if x, ok := m.GetUnion().(*Test_Number); ok { + return x.Number + } + return 0 + } + + func (m *Test) GetName() string { + if x, ok := m.GetUnion().(*Test_Name); ok { + return x.Name + } + return "" + } + + func init() { + proto.RegisterEnum("example.FOO", FOO_name, FOO_value) + } + +To create and play with a Test object: + + package main + + import ( + "log" + + "github.com/golang/protobuf/proto" + pb "./example.pb" + ) + + func main() { + test := &pb.Test{ + Label: proto.String("hello"), + Type: proto.Int32(17), + Reps: []int64{1, 2, 3}, + Optionalgroup: &pb.Test_OptionalGroup{ + RequiredField: proto.String("good bye"), + }, + Union: &pb.Test_Name{"fred"}, + } + data, err := proto.Marshal(test) + if err != nil { + log.Fatal("marshaling error: ", err) + } + newTest := &pb.Test{} + err = proto.Unmarshal(data, newTest) + if err != nil { + log.Fatal("unmarshaling error: ", err) + } + // Now test and newTest contain the same data. + if test.GetLabel() != newTest.GetLabel() { + log.Fatalf("data mismatch %q != %q", test.GetLabel(), newTest.GetLabel()) + } + // Use a type switch to determine which oneof was set. + switch u := test.Union.(type) { + case *pb.Test_Number: // u.Number contains the number. + case *pb.Test_Name: // u.Name contains the string. + } + // etc. + } +*/ +package proto + +import ( + "encoding/json" + "fmt" + "log" + "reflect" + "sort" + "strconv" + "sync" +) + +// Message is implemented by generated protocol buffer messages. +type Message interface { + Reset() + String() string + ProtoMessage() +} + +// Stats records allocation details about the protocol buffer encoders +// and decoders. Useful for tuning the library itself. +type Stats struct { + Emalloc uint64 // mallocs in encode + Dmalloc uint64 // mallocs in decode + Encode uint64 // number of encodes + Decode uint64 // number of decodes + Chit uint64 // number of cache hits + Cmiss uint64 // number of cache misses + Size uint64 // number of sizes +} + +// Set to true to enable stats collection. +const collectStats = false + +var stats Stats + +// GetStats returns a copy of the global Stats structure. +func GetStats() Stats { return stats } + +// A Buffer is a buffer manager for marshaling and unmarshaling +// protocol buffers. It may be reused between invocations to +// reduce memory usage. It is not necessary to use a Buffer; +// the global functions Marshal and Unmarshal create a +// temporary Buffer and are fine for most applications. +type Buffer struct { + buf []byte // encode/decode byte stream + index int // read point + + // pools of basic types to amortize allocation. + bools []bool + uint32s []uint32 + uint64s []uint64 + + // extra pools, only used with pointer_reflect.go + int32s []int32 + int64s []int64 + float32s []float32 + float64s []float64 +} + +// NewBuffer allocates a new Buffer and initializes its internal data to +// the contents of the argument slice. +func NewBuffer(e []byte) *Buffer { + return &Buffer{buf: e} +} + +// Reset resets the Buffer, ready for marshaling a new protocol buffer. +func (p *Buffer) Reset() { + p.buf = p.buf[0:0] // for reading/writing + p.index = 0 // for reading +} + +// SetBuf replaces the internal buffer with the slice, +// ready for unmarshaling the contents of the slice. +func (p *Buffer) SetBuf(s []byte) { + p.buf = s + p.index = 0 +} + +// Bytes returns the contents of the Buffer. +func (p *Buffer) Bytes() []byte { return p.buf } + +/* + * Helper routines for simplifying the creation of optional fields of basic type. + */ + +// Bool is a helper routine that allocates a new bool value +// to store v and returns a pointer to it. +func Bool(v bool) *bool { + return &v +} + +// Int32 is a helper routine that allocates a new int32 value +// to store v and returns a pointer to it. +func Int32(v int32) *int32 { + return &v +} + +// Int is a helper routine that allocates a new int32 value +// to store v and returns a pointer to it, but unlike Int32 +// its argument value is an int. +func Int(v int) *int32 { + p := new(int32) + *p = int32(v) + return p +} + +// Int64 is a helper routine that allocates a new int64 value +// to store v and returns a pointer to it. +func Int64(v int64) *int64 { + return &v +} + +// Float32 is a helper routine that allocates a new float32 value +// to store v and returns a pointer to it. +func Float32(v float32) *float32 { + return &v +} + +// Float64 is a helper routine that allocates a new float64 value +// to store v and returns a pointer to it. +func Float64(v float64) *float64 { + return &v +} + +// Uint32 is a helper routine that allocates a new uint32 value +// to store v and returns a pointer to it. +func Uint32(v uint32) *uint32 { + return &v +} + +// Uint64 is a helper routine that allocates a new uint64 value +// to store v and returns a pointer to it. +func Uint64(v uint64) *uint64 { + return &v +} + +// String is a helper routine that allocates a new string value +// to store v and returns a pointer to it. +func String(v string) *string { + return &v +} + +// EnumName is a helper function to simplify printing protocol buffer enums +// by name. Given an enum map and a value, it returns a useful string. +func EnumName(m map[int32]string, v int32) string { + s, ok := m[v] + if ok { + return s + } + return strconv.Itoa(int(v)) +} + +// UnmarshalJSONEnum is a helper function to simplify recovering enum int values +// from their JSON-encoded representation. Given a map from the enum's symbolic +// names to its int values, and a byte buffer containing the JSON-encoded +// value, it returns an int32 that can be cast to the enum type by the caller. +// +// The function can deal with both JSON representations, numeric and symbolic. +func UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) { + if data[0] == '"' { + // New style: enums are strings. + var repr string + if err := json.Unmarshal(data, &repr); err != nil { + return -1, err + } + val, ok := m[repr] + if !ok { + return 0, fmt.Errorf("unrecognized enum %s value %q", enumName, repr) + } + return val, nil + } + // Old style: enums are ints. + var val int32 + if err := json.Unmarshal(data, &val); err != nil { + return 0, fmt.Errorf("cannot unmarshal %#q into enum %s", data, enumName) + } + return val, nil +} + +// DebugPrint dumps the encoded data in b in a debugging format with a header +// including the string s. Used in testing but made available for general debugging. +func (p *Buffer) DebugPrint(s string, b []byte) { + var u uint64 + + obuf := p.buf + index := p.index + p.buf = b + p.index = 0 + depth := 0 + + fmt.Printf("\n--- %s ---\n", s) + +out: + for { + for i := 0; i < depth; i++ { + fmt.Print(" ") + } + + index := p.index + if index == len(p.buf) { + break + } + + op, err := p.DecodeVarint() + if err != nil { + fmt.Printf("%3d: fetching op err %v\n", index, err) + break out + } + tag := op >> 3 + wire := op & 7 + + switch wire { + default: + fmt.Printf("%3d: t=%3d unknown wire=%d\n", + index, tag, wire) + break out + + case WireBytes: + var r []byte + + r, err = p.DecodeRawBytes(false) + if err != nil { + break out + } + fmt.Printf("%3d: t=%3d bytes [%d]", index, tag, len(r)) + if len(r) <= 6 { + for i := 0; i < len(r); i++ { + fmt.Printf(" %.2x", r[i]) + } + } else { + for i := 0; i < 3; i++ { + fmt.Printf(" %.2x", r[i]) + } + fmt.Printf(" ..") + for i := len(r) - 3; i < len(r); i++ { + fmt.Printf(" %.2x", r[i]) + } + } + fmt.Printf("\n") + + case WireFixed32: + u, err = p.DecodeFixed32() + if err != nil { + fmt.Printf("%3d: t=%3d fix32 err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d fix32 %d\n", index, tag, u) + + case WireFixed64: + u, err = p.DecodeFixed64() + if err != nil { + fmt.Printf("%3d: t=%3d fix64 err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d fix64 %d\n", index, tag, u) + + case WireVarint: + u, err = p.DecodeVarint() + if err != nil { + fmt.Printf("%3d: t=%3d varint err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d varint %d\n", index, tag, u) + + case WireStartGroup: + fmt.Printf("%3d: t=%3d start\n", index, tag) + depth++ + + case WireEndGroup: + depth-- + fmt.Printf("%3d: t=%3d end\n", index, tag) + } + } + + if depth != 0 { + fmt.Printf("%3d: start-end not balanced %d\n", p.index, depth) + } + fmt.Printf("\n") + + p.buf = obuf + p.index = index +} + +// SetDefaults sets unset protocol buffer fields to their default values. +// It only modifies fields that are both unset and have defined defaults. +// It recursively sets default values in any non-nil sub-messages. +func SetDefaults(pb Message) { + setDefaults(reflect.ValueOf(pb), true, false) +} + +// v is a pointer to a struct. +func setDefaults(v reflect.Value, recur, zeros bool) { + v = v.Elem() + + defaultMu.RLock() + dm, ok := defaults[v.Type()] + defaultMu.RUnlock() + if !ok { + dm = buildDefaultMessage(v.Type()) + defaultMu.Lock() + defaults[v.Type()] = dm + defaultMu.Unlock() + } + + for _, sf := range dm.scalars { + f := v.Field(sf.index) + if !f.IsNil() { + // field already set + continue + } + dv := sf.value + if dv == nil && !zeros { + // no explicit default, and don't want to set zeros + continue + } + fptr := f.Addr().Interface() // **T + // TODO: Consider batching the allocations we do here. + switch sf.kind { + case reflect.Bool: + b := new(bool) + if dv != nil { + *b = dv.(bool) + } + *(fptr.(**bool)) = b + case reflect.Float32: + f := new(float32) + if dv != nil { + *f = dv.(float32) + } + *(fptr.(**float32)) = f + case reflect.Float64: + f := new(float64) + if dv != nil { + *f = dv.(float64) + } + *(fptr.(**float64)) = f + case reflect.Int32: + // might be an enum + if ft := f.Type(); ft != int32PtrType { + // enum + f.Set(reflect.New(ft.Elem())) + if dv != nil { + f.Elem().SetInt(int64(dv.(int32))) + } + } else { + // int32 field + i := new(int32) + if dv != nil { + *i = dv.(int32) + } + *(fptr.(**int32)) = i + } + case reflect.Int64: + i := new(int64) + if dv != nil { + *i = dv.(int64) + } + *(fptr.(**int64)) = i + case reflect.String: + s := new(string) + if dv != nil { + *s = dv.(string) + } + *(fptr.(**string)) = s + case reflect.Uint8: + // exceptional case: []byte + var b []byte + if dv != nil { + db := dv.([]byte) + b = make([]byte, len(db)) + copy(b, db) + } else { + b = []byte{} + } + *(fptr.(*[]byte)) = b + case reflect.Uint32: + u := new(uint32) + if dv != nil { + *u = dv.(uint32) + } + *(fptr.(**uint32)) = u + case reflect.Uint64: + u := new(uint64) + if dv != nil { + *u = dv.(uint64) + } + *(fptr.(**uint64)) = u + default: + log.Printf("proto: can't set default for field %v (sf.kind=%v)", f, sf.kind) + } + } + + for _, ni := range dm.nested { + f := v.Field(ni) + // f is *T or []*T or map[T]*T + switch f.Kind() { + case reflect.Ptr: + if f.IsNil() { + continue + } + setDefaults(f, recur, zeros) + + case reflect.Slice: + for i := 0; i < f.Len(); i++ { + e := f.Index(i) + if e.IsNil() { + continue + } + setDefaults(e, recur, zeros) + } + + case reflect.Map: + for _, k := range f.MapKeys() { + e := f.MapIndex(k) + if e.IsNil() { + continue + } + setDefaults(e, recur, zeros) + } + } + } +} + +var ( + // defaults maps a protocol buffer struct type to a slice of the fields, + // with its scalar fields set to their proto-declared non-zero default values. + defaultMu sync.RWMutex + defaults = make(map[reflect.Type]defaultMessage) + + int32PtrType = reflect.TypeOf((*int32)(nil)) +) + +// defaultMessage represents information about the default values of a message. +type defaultMessage struct { + scalars []scalarField + nested []int // struct field index of nested messages +} + +type scalarField struct { + index int // struct field index + kind reflect.Kind // element type (the T in *T or []T) + value interface{} // the proto-declared default value, or nil +} + +// t is a struct type. +func buildDefaultMessage(t reflect.Type) (dm defaultMessage) { + sprop := GetProperties(t) + for _, prop := range sprop.Prop { + fi, ok := sprop.decoderTags.get(prop.Tag) + if !ok { + // XXX_unrecognized + continue + } + ft := t.Field(fi).Type + + sf, nested, err := fieldDefault(ft, prop) + switch { + case err != nil: + log.Print(err) + case nested: + dm.nested = append(dm.nested, fi) + case sf != nil: + sf.index = fi + dm.scalars = append(dm.scalars, *sf) + } + } + + return dm +} + +// fieldDefault returns the scalarField for field type ft. +// sf will be nil if the field can not have a default. +// nestedMessage will be true if this is a nested message. +// Note that sf.index is not set on return. +func fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, nestedMessage bool, err error) { + var canHaveDefault bool + switch ft.Kind() { + case reflect.Ptr: + if ft.Elem().Kind() == reflect.Struct { + nestedMessage = true + } else { + canHaveDefault = true // proto2 scalar field + } + + case reflect.Slice: + switch ft.Elem().Kind() { + case reflect.Ptr: + nestedMessage = true // repeated message + case reflect.Uint8: + canHaveDefault = true // bytes field + } + + case reflect.Map: + if ft.Elem().Kind() == reflect.Ptr { + nestedMessage = true // map with message values + } + } + + if !canHaveDefault { + if nestedMessage { + return nil, true, nil + } + return nil, false, nil + } + + // We now know that ft is a pointer or slice. + sf = &scalarField{kind: ft.Elem().Kind()} + + // scalar fields without defaults + if !prop.HasDefault { + return sf, false, nil + } + + // a scalar field: either *T or []byte + switch ft.Elem().Kind() { + case reflect.Bool: + x, err := strconv.ParseBool(prop.Default) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default bool %q: %v", prop.Default, err) + } + sf.value = x + case reflect.Float32: + x, err := strconv.ParseFloat(prop.Default, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default float32 %q: %v", prop.Default, err) + } + sf.value = float32(x) + case reflect.Float64: + x, err := strconv.ParseFloat(prop.Default, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default float64 %q: %v", prop.Default, err) + } + sf.value = x + case reflect.Int32: + x, err := strconv.ParseInt(prop.Default, 10, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default int32 %q: %v", prop.Default, err) + } + sf.value = int32(x) + case reflect.Int64: + x, err := strconv.ParseInt(prop.Default, 10, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default int64 %q: %v", prop.Default, err) + } + sf.value = x + case reflect.String: + sf.value = prop.Default + case reflect.Uint8: + // []byte (not *uint8) + sf.value = []byte(prop.Default) + case reflect.Uint32: + x, err := strconv.ParseUint(prop.Default, 10, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default uint32 %q: %v", prop.Default, err) + } + sf.value = uint32(x) + case reflect.Uint64: + x, err := strconv.ParseUint(prop.Default, 10, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default uint64 %q: %v", prop.Default, err) + } + sf.value = x + default: + return nil, false, fmt.Errorf("proto: unhandled def kind %v", ft.Elem().Kind()) + } + + return sf, false, nil +} + +// Map fields may have key types of non-float scalars, strings and enums. +// The easiest way to sort them in some deterministic order is to use fmt. +// If this turns out to be inefficient we can always consider other options, +// such as doing a Schwartzian transform. + +func mapKeys(vs []reflect.Value) sort.Interface { + s := mapKeySorter{ + vs: vs, + // default Less function: textual comparison + less: func(a, b reflect.Value) bool { + return fmt.Sprint(a.Interface()) < fmt.Sprint(b.Interface()) + }, + } + + // Type specialization per https://developers.google.com/protocol-buffers/docs/proto#maps; + // numeric keys are sorted numerically. + if len(vs) == 0 { + return s + } + switch vs[0].Kind() { + case reflect.Int32, reflect.Int64: + s.less = func(a, b reflect.Value) bool { return a.Int() < b.Int() } + case reflect.Uint32, reflect.Uint64: + s.less = func(a, b reflect.Value) bool { return a.Uint() < b.Uint() } + } + + return s +} + +type mapKeySorter struct { + vs []reflect.Value + less func(a, b reflect.Value) bool +} + +func (s mapKeySorter) Len() int { return len(s.vs) } +func (s mapKeySorter) Swap(i, j int) { s.vs[i], s.vs[j] = s.vs[j], s.vs[i] } +func (s mapKeySorter) Less(i, j int) bool { + return s.less(s.vs[i], s.vs[j]) +} + +// isProto3Zero reports whether v is a zero proto3 value. +func isProto3Zero(v reflect.Value) bool { + switch v.Kind() { + case reflect.Bool: + return !v.Bool() + case reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint32, reflect.Uint64: + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.String: + return v.String() == "" + } + return false +} + +// ProtoPackageIsVersion2 is referenced from generated protocol buffer files +// to assert that that code is compatible with this version of the proto package. +const ProtoPackageIsVersion2 = true + +// ProtoPackageIsVersion1 is referenced from generated protocol buffer files +// to assert that that code is compatible with this version of the proto package. +const ProtoPackageIsVersion1 = true diff --git a/vendor/github.com/golang/protobuf/proto/message_set.go b/vendor/github.com/golang/protobuf/proto/message_set.go new file mode 100644 index 0000000..fd982de --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/message_set.go @@ -0,0 +1,311 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Support for message sets. + */ + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "reflect" + "sort" +) + +// errNoMessageTypeID occurs when a protocol buffer does not have a message type ID. +// A message type ID is required for storing a protocol buffer in a message set. +var errNoMessageTypeID = errors.New("proto does not have a message type ID") + +// The first two types (_MessageSet_Item and messageSet) +// model what the protocol compiler produces for the following protocol message: +// message MessageSet { +// repeated group Item = 1 { +// required int32 type_id = 2; +// required string message = 3; +// }; +// } +// That is the MessageSet wire format. We can't use a proto to generate these +// because that would introduce a circular dependency between it and this package. + +type _MessageSet_Item struct { + TypeId *int32 `protobuf:"varint,2,req,name=type_id"` + Message []byte `protobuf:"bytes,3,req,name=message"` +} + +type messageSet struct { + Item []*_MessageSet_Item `protobuf:"group,1,rep"` + XXX_unrecognized []byte + // TODO: caching? +} + +// Make sure messageSet is a Message. +var _ Message = (*messageSet)(nil) + +// messageTypeIder is an interface satisfied by a protocol buffer type +// that may be stored in a MessageSet. +type messageTypeIder interface { + MessageTypeId() int32 +} + +func (ms *messageSet) find(pb Message) *_MessageSet_Item { + mti, ok := pb.(messageTypeIder) + if !ok { + return nil + } + id := mti.MessageTypeId() + for _, item := range ms.Item { + if *item.TypeId == id { + return item + } + } + return nil +} + +func (ms *messageSet) Has(pb Message) bool { + if ms.find(pb) != nil { + return true + } + return false +} + +func (ms *messageSet) Unmarshal(pb Message) error { + if item := ms.find(pb); item != nil { + return Unmarshal(item.Message, pb) + } + if _, ok := pb.(messageTypeIder); !ok { + return errNoMessageTypeID + } + return nil // TODO: return error instead? +} + +func (ms *messageSet) Marshal(pb Message) error { + msg, err := Marshal(pb) + if err != nil { + return err + } + if item := ms.find(pb); item != nil { + // reuse existing item + item.Message = msg + return nil + } + + mti, ok := pb.(messageTypeIder) + if !ok { + return errNoMessageTypeID + } + + mtid := mti.MessageTypeId() + ms.Item = append(ms.Item, &_MessageSet_Item{ + TypeId: &mtid, + Message: msg, + }) + return nil +} + +func (ms *messageSet) Reset() { *ms = messageSet{} } +func (ms *messageSet) String() string { return CompactTextString(ms) } +func (*messageSet) ProtoMessage() {} + +// Support for the message_set_wire_format message option. + +func skipVarint(buf []byte) []byte { + i := 0 + for ; buf[i]&0x80 != 0; i++ { + } + return buf[i+1:] +} + +// MarshalMessageSet encodes the extension map represented by m in the message set wire format. +// It is called by generated Marshal methods on protocol buffer messages with the message_set_wire_format option. +func MarshalMessageSet(exts interface{}) ([]byte, error) { + var m map[int32]Extension + switch exts := exts.(type) { + case *XXX_InternalExtensions: + if err := encodeExtensions(exts); err != nil { + return nil, err + } + m, _ = exts.extensionsRead() + case map[int32]Extension: + if err := encodeExtensionsMap(exts); err != nil { + return nil, err + } + m = exts + default: + return nil, errors.New("proto: not an extension map") + } + + // Sort extension IDs to provide a deterministic encoding. + // See also enc_map in encode.go. + ids := make([]int, 0, len(m)) + for id := range m { + ids = append(ids, int(id)) + } + sort.Ints(ids) + + ms := &messageSet{Item: make([]*_MessageSet_Item, 0, len(m))} + for _, id := range ids { + e := m[int32(id)] + // Remove the wire type and field number varint, as well as the length varint. + msg := skipVarint(skipVarint(e.enc)) + + ms.Item = append(ms.Item, &_MessageSet_Item{ + TypeId: Int32(int32(id)), + Message: msg, + }) + } + return Marshal(ms) +} + +// UnmarshalMessageSet decodes the extension map encoded in buf in the message set wire format. +// It is called by generated Unmarshal methods on protocol buffer messages with the message_set_wire_format option. +func UnmarshalMessageSet(buf []byte, exts interface{}) error { + var m map[int32]Extension + switch exts := exts.(type) { + case *XXX_InternalExtensions: + m = exts.extensionsWrite() + case map[int32]Extension: + m = exts + default: + return errors.New("proto: not an extension map") + } + + ms := new(messageSet) + if err := Unmarshal(buf, ms); err != nil { + return err + } + for _, item := range ms.Item { + id := *item.TypeId + msg := item.Message + + // Restore wire type and field number varint, plus length varint. + // Be careful to preserve duplicate items. + b := EncodeVarint(uint64(id)<<3 | WireBytes) + if ext, ok := m[id]; ok { + // Existing data; rip off the tag and length varint + // so we join the new data correctly. + // We can assume that ext.enc is set because we are unmarshaling. + o := ext.enc[len(b):] // skip wire type and field number + _, n := DecodeVarint(o) // calculate length of length varint + o = o[n:] // skip length varint + msg = append(o, msg...) // join old data and new data + } + b = append(b, EncodeVarint(uint64(len(msg)))...) + b = append(b, msg...) + + m[id] = Extension{enc: b} + } + return nil +} + +// MarshalMessageSetJSON encodes the extension map represented by m in JSON format. +// It is called by generated MarshalJSON methods on protocol buffer messages with the message_set_wire_format option. +func MarshalMessageSetJSON(exts interface{}) ([]byte, error) { + var m map[int32]Extension + switch exts := exts.(type) { + case *XXX_InternalExtensions: + m, _ = exts.extensionsRead() + case map[int32]Extension: + m = exts + default: + return nil, errors.New("proto: not an extension map") + } + var b bytes.Buffer + b.WriteByte('{') + + // Process the map in key order for deterministic output. + ids := make([]int32, 0, len(m)) + for id := range m { + ids = append(ids, id) + } + sort.Sort(int32Slice(ids)) // int32Slice defined in text.go + + for i, id := range ids { + ext := m[id] + if i > 0 { + b.WriteByte(',') + } + + msd, ok := messageSetMap[id] + if !ok { + // Unknown type; we can't render it, so skip it. + continue + } + fmt.Fprintf(&b, `"[%s]":`, msd.name) + + x := ext.value + if x == nil { + x = reflect.New(msd.t.Elem()).Interface() + if err := Unmarshal(ext.enc, x.(Message)); err != nil { + return nil, err + } + } + d, err := json.Marshal(x) + if err != nil { + return nil, err + } + b.Write(d) + } + b.WriteByte('}') + return b.Bytes(), nil +} + +// UnmarshalMessageSetJSON decodes the extension map encoded in buf in JSON format. +// It is called by generated UnmarshalJSON methods on protocol buffer messages with the message_set_wire_format option. +func UnmarshalMessageSetJSON(buf []byte, exts interface{}) error { + // Common-case fast path. + if len(buf) == 0 || bytes.Equal(buf, []byte("{}")) { + return nil + } + + // This is fairly tricky, and it's not clear that it is needed. + return errors.New("TODO: UnmarshalMessageSetJSON not yet implemented") +} + +// A global registry of types that can be used in a MessageSet. + +var messageSetMap = make(map[int32]messageSetDesc) + +type messageSetDesc struct { + t reflect.Type // pointer to struct + name string +} + +// RegisterMessageSetType is called from the generated code. +func RegisterMessageSetType(m Message, fieldNum int32, name string) { + messageSetMap[fieldNum] = messageSetDesc{ + t: reflect.TypeOf(m), + name: name, + } +} diff --git a/vendor/github.com/golang/protobuf/proto/pointer_reflect.go b/vendor/github.com/golang/protobuf/proto/pointer_reflect.go new file mode 100644 index 0000000..fb512e2 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/pointer_reflect.go @@ -0,0 +1,484 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// +build appengine js + +// This file contains an implementation of proto field accesses using package reflect. +// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can +// be used on App Engine. + +package proto + +import ( + "math" + "reflect" +) + +// A structPointer is a pointer to a struct. +type structPointer struct { + v reflect.Value +} + +// toStructPointer returns a structPointer equivalent to the given reflect value. +// The reflect value must itself be a pointer to a struct. +func toStructPointer(v reflect.Value) structPointer { + return structPointer{v} +} + +// IsNil reports whether p is nil. +func structPointer_IsNil(p structPointer) bool { + return p.v.IsNil() +} + +// Interface returns the struct pointer as an interface value. +func structPointer_Interface(p structPointer, _ reflect.Type) interface{} { + return p.v.Interface() +} + +// A field identifies a field in a struct, accessible from a structPointer. +// In this implementation, a field is identified by the sequence of field indices +// passed to reflect's FieldByIndex. +type field []int + +// toField returns a field equivalent to the given reflect field. +func toField(f *reflect.StructField) field { + return f.Index +} + +// invalidField is an invalid field identifier. +var invalidField = field(nil) + +// IsValid reports whether the field identifier is valid. +func (f field) IsValid() bool { return f != nil } + +// field returns the given field in the struct as a reflect value. +func structPointer_field(p structPointer, f field) reflect.Value { + // Special case: an extension map entry with a value of type T + // passes a *T to the struct-handling code with a zero field, + // expecting that it will be treated as equivalent to *struct{ X T }, + // which has the same memory layout. We have to handle that case + // specially, because reflect will panic if we call FieldByIndex on a + // non-struct. + if f == nil { + return p.v.Elem() + } + + return p.v.Elem().FieldByIndex(f) +} + +// ifield returns the given field in the struct as an interface value. +func structPointer_ifield(p structPointer, f field) interface{} { + return structPointer_field(p, f).Addr().Interface() +} + +// Bytes returns the address of a []byte field in the struct. +func structPointer_Bytes(p structPointer, f field) *[]byte { + return structPointer_ifield(p, f).(*[]byte) +} + +// BytesSlice returns the address of a [][]byte field in the struct. +func structPointer_BytesSlice(p structPointer, f field) *[][]byte { + return structPointer_ifield(p, f).(*[][]byte) +} + +// Bool returns the address of a *bool field in the struct. +func structPointer_Bool(p structPointer, f field) **bool { + return structPointer_ifield(p, f).(**bool) +} + +// BoolVal returns the address of a bool field in the struct. +func structPointer_BoolVal(p structPointer, f field) *bool { + return structPointer_ifield(p, f).(*bool) +} + +// BoolSlice returns the address of a []bool field in the struct. +func structPointer_BoolSlice(p structPointer, f field) *[]bool { + return structPointer_ifield(p, f).(*[]bool) +} + +// String returns the address of a *string field in the struct. +func structPointer_String(p structPointer, f field) **string { + return structPointer_ifield(p, f).(**string) +} + +// StringVal returns the address of a string field in the struct. +func structPointer_StringVal(p structPointer, f field) *string { + return structPointer_ifield(p, f).(*string) +} + +// StringSlice returns the address of a []string field in the struct. +func structPointer_StringSlice(p structPointer, f field) *[]string { + return structPointer_ifield(p, f).(*[]string) +} + +// Extensions returns the address of an extension map field in the struct. +func structPointer_Extensions(p structPointer, f field) *XXX_InternalExtensions { + return structPointer_ifield(p, f).(*XXX_InternalExtensions) +} + +// ExtMap returns the address of an extension map field in the struct. +func structPointer_ExtMap(p structPointer, f field) *map[int32]Extension { + return structPointer_ifield(p, f).(*map[int32]Extension) +} + +// NewAt returns the reflect.Value for a pointer to a field in the struct. +func structPointer_NewAt(p structPointer, f field, typ reflect.Type) reflect.Value { + return structPointer_field(p, f).Addr() +} + +// SetStructPointer writes a *struct field in the struct. +func structPointer_SetStructPointer(p structPointer, f field, q structPointer) { + structPointer_field(p, f).Set(q.v) +} + +// GetStructPointer reads a *struct field in the struct. +func structPointer_GetStructPointer(p structPointer, f field) structPointer { + return structPointer{structPointer_field(p, f)} +} + +// StructPointerSlice the address of a []*struct field in the struct. +func structPointer_StructPointerSlice(p structPointer, f field) structPointerSlice { + return structPointerSlice{structPointer_field(p, f)} +} + +// A structPointerSlice represents the address of a slice of pointers to structs +// (themselves messages or groups). That is, v.Type() is *[]*struct{...}. +type structPointerSlice struct { + v reflect.Value +} + +func (p structPointerSlice) Len() int { return p.v.Len() } +func (p structPointerSlice) Index(i int) structPointer { return structPointer{p.v.Index(i)} } +func (p structPointerSlice) Append(q structPointer) { + p.v.Set(reflect.Append(p.v, q.v)) +} + +var ( + int32Type = reflect.TypeOf(int32(0)) + uint32Type = reflect.TypeOf(uint32(0)) + float32Type = reflect.TypeOf(float32(0)) + int64Type = reflect.TypeOf(int64(0)) + uint64Type = reflect.TypeOf(uint64(0)) + float64Type = reflect.TypeOf(float64(0)) +) + +// A word32 represents a field of type *int32, *uint32, *float32, or *enum. +// That is, v.Type() is *int32, *uint32, *float32, or *enum and v is assignable. +type word32 struct { + v reflect.Value +} + +// IsNil reports whether p is nil. +func word32_IsNil(p word32) bool { + return p.v.IsNil() +} + +// Set sets p to point at a newly allocated word with bits set to x. +func word32_Set(p word32, o *Buffer, x uint32) { + t := p.v.Type().Elem() + switch t { + case int32Type: + if len(o.int32s) == 0 { + o.int32s = make([]int32, uint32PoolSize) + } + o.int32s[0] = int32(x) + p.v.Set(reflect.ValueOf(&o.int32s[0])) + o.int32s = o.int32s[1:] + return + case uint32Type: + if len(o.uint32s) == 0 { + o.uint32s = make([]uint32, uint32PoolSize) + } + o.uint32s[0] = x + p.v.Set(reflect.ValueOf(&o.uint32s[0])) + o.uint32s = o.uint32s[1:] + return + case float32Type: + if len(o.float32s) == 0 { + o.float32s = make([]float32, uint32PoolSize) + } + o.float32s[0] = math.Float32frombits(x) + p.v.Set(reflect.ValueOf(&o.float32s[0])) + o.float32s = o.float32s[1:] + return + } + + // must be enum + p.v.Set(reflect.New(t)) + p.v.Elem().SetInt(int64(int32(x))) +} + +// Get gets the bits pointed at by p, as a uint32. +func word32_Get(p word32) uint32 { + elem := p.v.Elem() + switch elem.Kind() { + case reflect.Int32: + return uint32(elem.Int()) + case reflect.Uint32: + return uint32(elem.Uint()) + case reflect.Float32: + return math.Float32bits(float32(elem.Float())) + } + panic("unreachable") +} + +// Word32 returns a reference to a *int32, *uint32, *float32, or *enum field in the struct. +func structPointer_Word32(p structPointer, f field) word32 { + return word32{structPointer_field(p, f)} +} + +// A word32Val represents a field of type int32, uint32, float32, or enum. +// That is, v.Type() is int32, uint32, float32, or enum and v is assignable. +type word32Val struct { + v reflect.Value +} + +// Set sets *p to x. +func word32Val_Set(p word32Val, x uint32) { + switch p.v.Type() { + case int32Type: + p.v.SetInt(int64(x)) + return + case uint32Type: + p.v.SetUint(uint64(x)) + return + case float32Type: + p.v.SetFloat(float64(math.Float32frombits(x))) + return + } + + // must be enum + p.v.SetInt(int64(int32(x))) +} + +// Get gets the bits pointed at by p, as a uint32. +func word32Val_Get(p word32Val) uint32 { + elem := p.v + switch elem.Kind() { + case reflect.Int32: + return uint32(elem.Int()) + case reflect.Uint32: + return uint32(elem.Uint()) + case reflect.Float32: + return math.Float32bits(float32(elem.Float())) + } + panic("unreachable") +} + +// Word32Val returns a reference to a int32, uint32, float32, or enum field in the struct. +func structPointer_Word32Val(p structPointer, f field) word32Val { + return word32Val{structPointer_field(p, f)} +} + +// A word32Slice is a slice of 32-bit values. +// That is, v.Type() is []int32, []uint32, []float32, or []enum. +type word32Slice struct { + v reflect.Value +} + +func (p word32Slice) Append(x uint32) { + n, m := p.v.Len(), p.v.Cap() + if n < m { + p.v.SetLen(n + 1) + } else { + t := p.v.Type().Elem() + p.v.Set(reflect.Append(p.v, reflect.Zero(t))) + } + elem := p.v.Index(n) + switch elem.Kind() { + case reflect.Int32: + elem.SetInt(int64(int32(x))) + case reflect.Uint32: + elem.SetUint(uint64(x)) + case reflect.Float32: + elem.SetFloat(float64(math.Float32frombits(x))) + } +} + +func (p word32Slice) Len() int { + return p.v.Len() +} + +func (p word32Slice) Index(i int) uint32 { + elem := p.v.Index(i) + switch elem.Kind() { + case reflect.Int32: + return uint32(elem.Int()) + case reflect.Uint32: + return uint32(elem.Uint()) + case reflect.Float32: + return math.Float32bits(float32(elem.Float())) + } + panic("unreachable") +} + +// Word32Slice returns a reference to a []int32, []uint32, []float32, or []enum field in the struct. +func structPointer_Word32Slice(p structPointer, f field) word32Slice { + return word32Slice{structPointer_field(p, f)} +} + +// word64 is like word32 but for 64-bit values. +type word64 struct { + v reflect.Value +} + +func word64_Set(p word64, o *Buffer, x uint64) { + t := p.v.Type().Elem() + switch t { + case int64Type: + if len(o.int64s) == 0 { + o.int64s = make([]int64, uint64PoolSize) + } + o.int64s[0] = int64(x) + p.v.Set(reflect.ValueOf(&o.int64s[0])) + o.int64s = o.int64s[1:] + return + case uint64Type: + if len(o.uint64s) == 0 { + o.uint64s = make([]uint64, uint64PoolSize) + } + o.uint64s[0] = x + p.v.Set(reflect.ValueOf(&o.uint64s[0])) + o.uint64s = o.uint64s[1:] + return + case float64Type: + if len(o.float64s) == 0 { + o.float64s = make([]float64, uint64PoolSize) + } + o.float64s[0] = math.Float64frombits(x) + p.v.Set(reflect.ValueOf(&o.float64s[0])) + o.float64s = o.float64s[1:] + return + } + panic("unreachable") +} + +func word64_IsNil(p word64) bool { + return p.v.IsNil() +} + +func word64_Get(p word64) uint64 { + elem := p.v.Elem() + switch elem.Kind() { + case reflect.Int64: + return uint64(elem.Int()) + case reflect.Uint64: + return elem.Uint() + case reflect.Float64: + return math.Float64bits(elem.Float()) + } + panic("unreachable") +} + +func structPointer_Word64(p structPointer, f field) word64 { + return word64{structPointer_field(p, f)} +} + +// word64Val is like word32Val but for 64-bit values. +type word64Val struct { + v reflect.Value +} + +func word64Val_Set(p word64Val, o *Buffer, x uint64) { + switch p.v.Type() { + case int64Type: + p.v.SetInt(int64(x)) + return + case uint64Type: + p.v.SetUint(x) + return + case float64Type: + p.v.SetFloat(math.Float64frombits(x)) + return + } + panic("unreachable") +} + +func word64Val_Get(p word64Val) uint64 { + elem := p.v + switch elem.Kind() { + case reflect.Int64: + return uint64(elem.Int()) + case reflect.Uint64: + return elem.Uint() + case reflect.Float64: + return math.Float64bits(elem.Float()) + } + panic("unreachable") +} + +func structPointer_Word64Val(p structPointer, f field) word64Val { + return word64Val{structPointer_field(p, f)} +} + +type word64Slice struct { + v reflect.Value +} + +func (p word64Slice) Append(x uint64) { + n, m := p.v.Len(), p.v.Cap() + if n < m { + p.v.SetLen(n + 1) + } else { + t := p.v.Type().Elem() + p.v.Set(reflect.Append(p.v, reflect.Zero(t))) + } + elem := p.v.Index(n) + switch elem.Kind() { + case reflect.Int64: + elem.SetInt(int64(int64(x))) + case reflect.Uint64: + elem.SetUint(uint64(x)) + case reflect.Float64: + elem.SetFloat(float64(math.Float64frombits(x))) + } +} + +func (p word64Slice) Len() int { + return p.v.Len() +} + +func (p word64Slice) Index(i int) uint64 { + elem := p.v.Index(i) + switch elem.Kind() { + case reflect.Int64: + return uint64(elem.Int()) + case reflect.Uint64: + return uint64(elem.Uint()) + case reflect.Float64: + return math.Float64bits(float64(elem.Float())) + } + panic("unreachable") +} + +func structPointer_Word64Slice(p structPointer, f field) word64Slice { + return word64Slice{structPointer_field(p, f)} +} diff --git a/vendor/github.com/golang/protobuf/proto/pointer_unsafe.go b/vendor/github.com/golang/protobuf/proto/pointer_unsafe.go new file mode 100644 index 0000000..6b5567d --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/pointer_unsafe.go @@ -0,0 +1,270 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// +build !appengine,!js + +// This file contains the implementation of the proto field accesses using package unsafe. + +package proto + +import ( + "reflect" + "unsafe" +) + +// NOTE: These type_Foo functions would more idiomatically be methods, +// but Go does not allow methods on pointer types, and we must preserve +// some pointer type for the garbage collector. We use these +// funcs with clunky names as our poor approximation to methods. +// +// An alternative would be +// type structPointer struct { p unsafe.Pointer } +// but that does not registerize as well. + +// A structPointer is a pointer to a struct. +type structPointer unsafe.Pointer + +// toStructPointer returns a structPointer equivalent to the given reflect value. +func toStructPointer(v reflect.Value) structPointer { + return structPointer(unsafe.Pointer(v.Pointer())) +} + +// IsNil reports whether p is nil. +func structPointer_IsNil(p structPointer) bool { + return p == nil +} + +// Interface returns the struct pointer, assumed to have element type t, +// as an interface value. +func structPointer_Interface(p structPointer, t reflect.Type) interface{} { + return reflect.NewAt(t, unsafe.Pointer(p)).Interface() +} + +// A field identifies a field in a struct, accessible from a structPointer. +// In this implementation, a field is identified by its byte offset from the start of the struct. +type field uintptr + +// toField returns a field equivalent to the given reflect field. +func toField(f *reflect.StructField) field { + return field(f.Offset) +} + +// invalidField is an invalid field identifier. +const invalidField = ^field(0) + +// IsValid reports whether the field identifier is valid. +func (f field) IsValid() bool { + return f != ^field(0) +} + +// Bytes returns the address of a []byte field in the struct. +func structPointer_Bytes(p structPointer, f field) *[]byte { + return (*[]byte)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// BytesSlice returns the address of a [][]byte field in the struct. +func structPointer_BytesSlice(p structPointer, f field) *[][]byte { + return (*[][]byte)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// Bool returns the address of a *bool field in the struct. +func structPointer_Bool(p structPointer, f field) **bool { + return (**bool)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// BoolVal returns the address of a bool field in the struct. +func structPointer_BoolVal(p structPointer, f field) *bool { + return (*bool)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// BoolSlice returns the address of a []bool field in the struct. +func structPointer_BoolSlice(p structPointer, f field) *[]bool { + return (*[]bool)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// String returns the address of a *string field in the struct. +func structPointer_String(p structPointer, f field) **string { + return (**string)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// StringVal returns the address of a string field in the struct. +func structPointer_StringVal(p structPointer, f field) *string { + return (*string)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// StringSlice returns the address of a []string field in the struct. +func structPointer_StringSlice(p structPointer, f field) *[]string { + return (*[]string)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// ExtMap returns the address of an extension map field in the struct. +func structPointer_Extensions(p structPointer, f field) *XXX_InternalExtensions { + return (*XXX_InternalExtensions)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +func structPointer_ExtMap(p structPointer, f field) *map[int32]Extension { + return (*map[int32]Extension)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// NewAt returns the reflect.Value for a pointer to a field in the struct. +func structPointer_NewAt(p structPointer, f field, typ reflect.Type) reflect.Value { + return reflect.NewAt(typ, unsafe.Pointer(uintptr(p)+uintptr(f))) +} + +// SetStructPointer writes a *struct field in the struct. +func structPointer_SetStructPointer(p structPointer, f field, q structPointer) { + *(*structPointer)(unsafe.Pointer(uintptr(p) + uintptr(f))) = q +} + +// GetStructPointer reads a *struct field in the struct. +func structPointer_GetStructPointer(p structPointer, f field) structPointer { + return *(*structPointer)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// StructPointerSlice the address of a []*struct field in the struct. +func structPointer_StructPointerSlice(p structPointer, f field) *structPointerSlice { + return (*structPointerSlice)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// A structPointerSlice represents a slice of pointers to structs (themselves submessages or groups). +type structPointerSlice []structPointer + +func (v *structPointerSlice) Len() int { return len(*v) } +func (v *structPointerSlice) Index(i int) structPointer { return (*v)[i] } +func (v *structPointerSlice) Append(p structPointer) { *v = append(*v, p) } + +// A word32 is the address of a "pointer to 32-bit value" field. +type word32 **uint32 + +// IsNil reports whether *v is nil. +func word32_IsNil(p word32) bool { + return *p == nil +} + +// Set sets *v to point at a newly allocated word set to x. +func word32_Set(p word32, o *Buffer, x uint32) { + if len(o.uint32s) == 0 { + o.uint32s = make([]uint32, uint32PoolSize) + } + o.uint32s[0] = x + *p = &o.uint32s[0] + o.uint32s = o.uint32s[1:] +} + +// Get gets the value pointed at by *v. +func word32_Get(p word32) uint32 { + return **p +} + +// Word32 returns the address of a *int32, *uint32, *float32, or *enum field in the struct. +func structPointer_Word32(p structPointer, f field) word32 { + return word32((**uint32)(unsafe.Pointer(uintptr(p) + uintptr(f)))) +} + +// A word32Val is the address of a 32-bit value field. +type word32Val *uint32 + +// Set sets *p to x. +func word32Val_Set(p word32Val, x uint32) { + *p = x +} + +// Get gets the value pointed at by p. +func word32Val_Get(p word32Val) uint32 { + return *p +} + +// Word32Val returns the address of a *int32, *uint32, *float32, or *enum field in the struct. +func structPointer_Word32Val(p structPointer, f field) word32Val { + return word32Val((*uint32)(unsafe.Pointer(uintptr(p) + uintptr(f)))) +} + +// A word32Slice is a slice of 32-bit values. +type word32Slice []uint32 + +func (v *word32Slice) Append(x uint32) { *v = append(*v, x) } +func (v *word32Slice) Len() int { return len(*v) } +func (v *word32Slice) Index(i int) uint32 { return (*v)[i] } + +// Word32Slice returns the address of a []int32, []uint32, []float32, or []enum field in the struct. +func structPointer_Word32Slice(p structPointer, f field) *word32Slice { + return (*word32Slice)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// word64 is like word32 but for 64-bit values. +type word64 **uint64 + +func word64_Set(p word64, o *Buffer, x uint64) { + if len(o.uint64s) == 0 { + o.uint64s = make([]uint64, uint64PoolSize) + } + o.uint64s[0] = x + *p = &o.uint64s[0] + o.uint64s = o.uint64s[1:] +} + +func word64_IsNil(p word64) bool { + return *p == nil +} + +func word64_Get(p word64) uint64 { + return **p +} + +func structPointer_Word64(p structPointer, f field) word64 { + return word64((**uint64)(unsafe.Pointer(uintptr(p) + uintptr(f)))) +} + +// word64Val is like word32Val but for 64-bit values. +type word64Val *uint64 + +func word64Val_Set(p word64Val, o *Buffer, x uint64) { + *p = x +} + +func word64Val_Get(p word64Val) uint64 { + return *p +} + +func structPointer_Word64Val(p structPointer, f field) word64Val { + return word64Val((*uint64)(unsafe.Pointer(uintptr(p) + uintptr(f)))) +} + +// word64Slice is like word32Slice but for 64-bit values. +type word64Slice []uint64 + +func (v *word64Slice) Append(x uint64) { *v = append(*v, x) } +func (v *word64Slice) Len() int { return len(*v) } +func (v *word64Slice) Index(i int) uint64 { return (*v)[i] } + +func structPointer_Word64Slice(p structPointer, f field) *word64Slice { + return (*word64Slice)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} diff --git a/vendor/github.com/golang/protobuf/proto/properties.go b/vendor/github.com/golang/protobuf/proto/properties.go new file mode 100644 index 0000000..ec2289c --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/properties.go @@ -0,0 +1,872 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Routines for encoding data into the wire format for protocol buffers. + */ + +import ( + "fmt" + "log" + "os" + "reflect" + "sort" + "strconv" + "strings" + "sync" +) + +const debug bool = false + +// Constants that identify the encoding of a value on the wire. +const ( + WireVarint = 0 + WireFixed64 = 1 + WireBytes = 2 + WireStartGroup = 3 + WireEndGroup = 4 + WireFixed32 = 5 +) + +const startSize = 10 // initial slice/string sizes + +// Encoders are defined in encode.go +// An encoder outputs the full representation of a field, including its +// tag and encoder type. +type encoder func(p *Buffer, prop *Properties, base structPointer) error + +// A valueEncoder encodes a single integer in a particular encoding. +type valueEncoder func(o *Buffer, x uint64) error + +// Sizers are defined in encode.go +// A sizer returns the encoded size of a field, including its tag and encoder +// type. +type sizer func(prop *Properties, base structPointer) int + +// A valueSizer returns the encoded size of a single integer in a particular +// encoding. +type valueSizer func(x uint64) int + +// Decoders are defined in decode.go +// A decoder creates a value from its wire representation. +// Unrecognized subelements are saved in unrec. +type decoder func(p *Buffer, prop *Properties, base structPointer) error + +// A valueDecoder decodes a single integer in a particular encoding. +type valueDecoder func(o *Buffer) (x uint64, err error) + +// A oneofMarshaler does the marshaling for all oneof fields in a message. +type oneofMarshaler func(Message, *Buffer) error + +// A oneofUnmarshaler does the unmarshaling for a oneof field in a message. +type oneofUnmarshaler func(Message, int, int, *Buffer) (bool, error) + +// A oneofSizer does the sizing for all oneof fields in a message. +type oneofSizer func(Message) int + +// tagMap is an optimization over map[int]int for typical protocol buffer +// use-cases. Encoded protocol buffers are often in tag order with small tag +// numbers. +type tagMap struct { + fastTags []int + slowTags map[int]int +} + +// tagMapFastLimit is the upper bound on the tag number that will be stored in +// the tagMap slice rather than its map. +const tagMapFastLimit = 1024 + +func (p *tagMap) get(t int) (int, bool) { + if t > 0 && t < tagMapFastLimit { + if t >= len(p.fastTags) { + return 0, false + } + fi := p.fastTags[t] + return fi, fi >= 0 + } + fi, ok := p.slowTags[t] + return fi, ok +} + +func (p *tagMap) put(t int, fi int) { + if t > 0 && t < tagMapFastLimit { + for len(p.fastTags) < t+1 { + p.fastTags = append(p.fastTags, -1) + } + p.fastTags[t] = fi + return + } + if p.slowTags == nil { + p.slowTags = make(map[int]int) + } + p.slowTags[t] = fi +} + +// StructProperties represents properties for all the fields of a struct. +// decoderTags and decoderOrigNames should only be used by the decoder. +type StructProperties struct { + Prop []*Properties // properties for each field + reqCount int // required count + decoderTags tagMap // map from proto tag to struct field number + decoderOrigNames map[string]int // map from original name to struct field number + order []int // list of struct field numbers in tag order + unrecField field // field id of the XXX_unrecognized []byte field + extendable bool // is this an extendable proto + + oneofMarshaler oneofMarshaler + oneofUnmarshaler oneofUnmarshaler + oneofSizer oneofSizer + stype reflect.Type + + // OneofTypes contains information about the oneof fields in this message. + // It is keyed by the original name of a field. + OneofTypes map[string]*OneofProperties +} + +// OneofProperties represents information about a specific field in a oneof. +type OneofProperties struct { + Type reflect.Type // pointer to generated struct type for this oneof field + Field int // struct field number of the containing oneof in the message + Prop *Properties +} + +// Implement the sorting interface so we can sort the fields in tag order, as recommended by the spec. +// See encode.go, (*Buffer).enc_struct. + +func (sp *StructProperties) Len() int { return len(sp.order) } +func (sp *StructProperties) Less(i, j int) bool { + return sp.Prop[sp.order[i]].Tag < sp.Prop[sp.order[j]].Tag +} +func (sp *StructProperties) Swap(i, j int) { sp.order[i], sp.order[j] = sp.order[j], sp.order[i] } + +// Properties represents the protocol-specific behavior of a single struct field. +type Properties struct { + Name string // name of the field, for error messages + OrigName string // original name before protocol compiler (always set) + JSONName string // name to use for JSON; determined by protoc + Wire string + WireType int + Tag int + Required bool + Optional bool + Repeated bool + Packed bool // relevant for repeated primitives only + Enum string // set for enum types only + proto3 bool // whether this is known to be a proto3 field; set for []byte only + oneof bool // whether this is a oneof field + + Default string // default value + HasDefault bool // whether an explicit default was provided + def_uint64 uint64 + + enc encoder + valEnc valueEncoder // set for bool and numeric types only + field field + tagcode []byte // encoding of EncodeVarint((Tag<<3)|WireType) + tagbuf [8]byte + stype reflect.Type // set for struct types only + sprop *StructProperties // set for struct types only + isMarshaler bool + isUnmarshaler bool + + mtype reflect.Type // set for map types only + mkeyprop *Properties // set for map types only + mvalprop *Properties // set for map types only + + size sizer + valSize valueSizer // set for bool and numeric types only + + dec decoder + valDec valueDecoder // set for bool and numeric types only + + // If this is a packable field, this will be the decoder for the packed version of the field. + packedDec decoder +} + +// String formats the properties in the protobuf struct field tag style. +func (p *Properties) String() string { + s := p.Wire + s = "," + s += strconv.Itoa(p.Tag) + if p.Required { + s += ",req" + } + if p.Optional { + s += ",opt" + } + if p.Repeated { + s += ",rep" + } + if p.Packed { + s += ",packed" + } + s += ",name=" + p.OrigName + if p.JSONName != p.OrigName { + s += ",json=" + p.JSONName + } + if p.proto3 { + s += ",proto3" + } + if p.oneof { + s += ",oneof" + } + if len(p.Enum) > 0 { + s += ",enum=" + p.Enum + } + if p.HasDefault { + s += ",def=" + p.Default + } + return s +} + +// Parse populates p by parsing a string in the protobuf struct field tag style. +func (p *Properties) Parse(s string) { + // "bytes,49,opt,name=foo,def=hello!" + fields := strings.Split(s, ",") // breaks def=, but handled below. + if len(fields) < 2 { + fmt.Fprintf(os.Stderr, "proto: tag has too few fields: %q\n", s) + return + } + + p.Wire = fields[0] + switch p.Wire { + case "varint": + p.WireType = WireVarint + p.valEnc = (*Buffer).EncodeVarint + p.valDec = (*Buffer).DecodeVarint + p.valSize = sizeVarint + case "fixed32": + p.WireType = WireFixed32 + p.valEnc = (*Buffer).EncodeFixed32 + p.valDec = (*Buffer).DecodeFixed32 + p.valSize = sizeFixed32 + case "fixed64": + p.WireType = WireFixed64 + p.valEnc = (*Buffer).EncodeFixed64 + p.valDec = (*Buffer).DecodeFixed64 + p.valSize = sizeFixed64 + case "zigzag32": + p.WireType = WireVarint + p.valEnc = (*Buffer).EncodeZigzag32 + p.valDec = (*Buffer).DecodeZigzag32 + p.valSize = sizeZigzag32 + case "zigzag64": + p.WireType = WireVarint + p.valEnc = (*Buffer).EncodeZigzag64 + p.valDec = (*Buffer).DecodeZigzag64 + p.valSize = sizeZigzag64 + case "bytes", "group": + p.WireType = WireBytes + // no numeric converter for non-numeric types + default: + fmt.Fprintf(os.Stderr, "proto: tag has unknown wire type: %q\n", s) + return + } + + var err error + p.Tag, err = strconv.Atoi(fields[1]) + if err != nil { + return + } + + for i := 2; i < len(fields); i++ { + f := fields[i] + switch { + case f == "req": + p.Required = true + case f == "opt": + p.Optional = true + case f == "rep": + p.Repeated = true + case f == "packed": + p.Packed = true + case strings.HasPrefix(f, "name="): + p.OrigName = f[5:] + case strings.HasPrefix(f, "json="): + p.JSONName = f[5:] + case strings.HasPrefix(f, "enum="): + p.Enum = f[5:] + case f == "proto3": + p.proto3 = true + case f == "oneof": + p.oneof = true + case strings.HasPrefix(f, "def="): + p.HasDefault = true + p.Default = f[4:] // rest of string + if i+1 < len(fields) { + // Commas aren't escaped, and def is always last. + p.Default += "," + strings.Join(fields[i+1:], ",") + break + } + } + } +} + +func logNoSliceEnc(t1, t2 reflect.Type) { + fmt.Fprintf(os.Stderr, "proto: no slice oenc for %T = []%T\n", t1, t2) +} + +var protoMessageType = reflect.TypeOf((*Message)(nil)).Elem() + +// Initialize the fields for encoding and decoding. +func (p *Properties) setEncAndDec(typ reflect.Type, f *reflect.StructField, lockGetProp bool) { + p.enc = nil + p.dec = nil + p.size = nil + + switch t1 := typ; t1.Kind() { + default: + fmt.Fprintf(os.Stderr, "proto: no coders for %v\n", t1) + + // proto3 scalar types + + case reflect.Bool: + p.enc = (*Buffer).enc_proto3_bool + p.dec = (*Buffer).dec_proto3_bool + p.size = size_proto3_bool + case reflect.Int32: + p.enc = (*Buffer).enc_proto3_int32 + p.dec = (*Buffer).dec_proto3_int32 + p.size = size_proto3_int32 + case reflect.Uint32: + p.enc = (*Buffer).enc_proto3_uint32 + p.dec = (*Buffer).dec_proto3_int32 // can reuse + p.size = size_proto3_uint32 + case reflect.Int64, reflect.Uint64: + p.enc = (*Buffer).enc_proto3_int64 + p.dec = (*Buffer).dec_proto3_int64 + p.size = size_proto3_int64 + case reflect.Float32: + p.enc = (*Buffer).enc_proto3_uint32 // can just treat them as bits + p.dec = (*Buffer).dec_proto3_int32 + p.size = size_proto3_uint32 + case reflect.Float64: + p.enc = (*Buffer).enc_proto3_int64 // can just treat them as bits + p.dec = (*Buffer).dec_proto3_int64 + p.size = size_proto3_int64 + case reflect.String: + p.enc = (*Buffer).enc_proto3_string + p.dec = (*Buffer).dec_proto3_string + p.size = size_proto3_string + + case reflect.Ptr: + switch t2 := t1.Elem(); t2.Kind() { + default: + fmt.Fprintf(os.Stderr, "proto: no encoder function for %v -> %v\n", t1, t2) + break + case reflect.Bool: + p.enc = (*Buffer).enc_bool + p.dec = (*Buffer).dec_bool + p.size = size_bool + case reflect.Int32: + p.enc = (*Buffer).enc_int32 + p.dec = (*Buffer).dec_int32 + p.size = size_int32 + case reflect.Uint32: + p.enc = (*Buffer).enc_uint32 + p.dec = (*Buffer).dec_int32 // can reuse + p.size = size_uint32 + case reflect.Int64, reflect.Uint64: + p.enc = (*Buffer).enc_int64 + p.dec = (*Buffer).dec_int64 + p.size = size_int64 + case reflect.Float32: + p.enc = (*Buffer).enc_uint32 // can just treat them as bits + p.dec = (*Buffer).dec_int32 + p.size = size_uint32 + case reflect.Float64: + p.enc = (*Buffer).enc_int64 // can just treat them as bits + p.dec = (*Buffer).dec_int64 + p.size = size_int64 + case reflect.String: + p.enc = (*Buffer).enc_string + p.dec = (*Buffer).dec_string + p.size = size_string + case reflect.Struct: + p.stype = t1.Elem() + p.isMarshaler = isMarshaler(t1) + p.isUnmarshaler = isUnmarshaler(t1) + if p.Wire == "bytes" { + p.enc = (*Buffer).enc_struct_message + p.dec = (*Buffer).dec_struct_message + p.size = size_struct_message + } else { + p.enc = (*Buffer).enc_struct_group + p.dec = (*Buffer).dec_struct_group + p.size = size_struct_group + } + } + + case reflect.Slice: + switch t2 := t1.Elem(); t2.Kind() { + default: + logNoSliceEnc(t1, t2) + break + case reflect.Bool: + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_bool + p.size = size_slice_packed_bool + } else { + p.enc = (*Buffer).enc_slice_bool + p.size = size_slice_bool + } + p.dec = (*Buffer).dec_slice_bool + p.packedDec = (*Buffer).dec_slice_packed_bool + case reflect.Int32: + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_int32 + p.size = size_slice_packed_int32 + } else { + p.enc = (*Buffer).enc_slice_int32 + p.size = size_slice_int32 + } + p.dec = (*Buffer).dec_slice_int32 + p.packedDec = (*Buffer).dec_slice_packed_int32 + case reflect.Uint32: + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_uint32 + p.size = size_slice_packed_uint32 + } else { + p.enc = (*Buffer).enc_slice_uint32 + p.size = size_slice_uint32 + } + p.dec = (*Buffer).dec_slice_int32 + p.packedDec = (*Buffer).dec_slice_packed_int32 + case reflect.Int64, reflect.Uint64: + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_int64 + p.size = size_slice_packed_int64 + } else { + p.enc = (*Buffer).enc_slice_int64 + p.size = size_slice_int64 + } + p.dec = (*Buffer).dec_slice_int64 + p.packedDec = (*Buffer).dec_slice_packed_int64 + case reflect.Uint8: + p.dec = (*Buffer).dec_slice_byte + if p.proto3 { + p.enc = (*Buffer).enc_proto3_slice_byte + p.size = size_proto3_slice_byte + } else { + p.enc = (*Buffer).enc_slice_byte + p.size = size_slice_byte + } + case reflect.Float32, reflect.Float64: + switch t2.Bits() { + case 32: + // can just treat them as bits + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_uint32 + p.size = size_slice_packed_uint32 + } else { + p.enc = (*Buffer).enc_slice_uint32 + p.size = size_slice_uint32 + } + p.dec = (*Buffer).dec_slice_int32 + p.packedDec = (*Buffer).dec_slice_packed_int32 + case 64: + // can just treat them as bits + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_int64 + p.size = size_slice_packed_int64 + } else { + p.enc = (*Buffer).enc_slice_int64 + p.size = size_slice_int64 + } + p.dec = (*Buffer).dec_slice_int64 + p.packedDec = (*Buffer).dec_slice_packed_int64 + default: + logNoSliceEnc(t1, t2) + break + } + case reflect.String: + p.enc = (*Buffer).enc_slice_string + p.dec = (*Buffer).dec_slice_string + p.size = size_slice_string + case reflect.Ptr: + switch t3 := t2.Elem(); t3.Kind() { + default: + fmt.Fprintf(os.Stderr, "proto: no ptr oenc for %T -> %T -> %T\n", t1, t2, t3) + break + case reflect.Struct: + p.stype = t2.Elem() + p.isMarshaler = isMarshaler(t2) + p.isUnmarshaler = isUnmarshaler(t2) + if p.Wire == "bytes" { + p.enc = (*Buffer).enc_slice_struct_message + p.dec = (*Buffer).dec_slice_struct_message + p.size = size_slice_struct_message + } else { + p.enc = (*Buffer).enc_slice_struct_group + p.dec = (*Buffer).dec_slice_struct_group + p.size = size_slice_struct_group + } + } + case reflect.Slice: + switch t2.Elem().Kind() { + default: + fmt.Fprintf(os.Stderr, "proto: no slice elem oenc for %T -> %T -> %T\n", t1, t2, t2.Elem()) + break + case reflect.Uint8: + p.enc = (*Buffer).enc_slice_slice_byte + p.dec = (*Buffer).dec_slice_slice_byte + p.size = size_slice_slice_byte + } + } + + case reflect.Map: + p.enc = (*Buffer).enc_new_map + p.dec = (*Buffer).dec_new_map + p.size = size_new_map + + p.mtype = t1 + p.mkeyprop = &Properties{} + p.mkeyprop.init(reflect.PtrTo(p.mtype.Key()), "Key", f.Tag.Get("protobuf_key"), nil, lockGetProp) + p.mvalprop = &Properties{} + vtype := p.mtype.Elem() + if vtype.Kind() != reflect.Ptr && vtype.Kind() != reflect.Slice { + // The value type is not a message (*T) or bytes ([]byte), + // so we need encoders for the pointer to this type. + vtype = reflect.PtrTo(vtype) + } + p.mvalprop.init(vtype, "Value", f.Tag.Get("protobuf_val"), nil, lockGetProp) + } + + // precalculate tag code + wire := p.WireType + if p.Packed { + wire = WireBytes + } + x := uint32(p.Tag)<<3 | uint32(wire) + i := 0 + for i = 0; x > 127; i++ { + p.tagbuf[i] = 0x80 | uint8(x&0x7F) + x >>= 7 + } + p.tagbuf[i] = uint8(x) + p.tagcode = p.tagbuf[0 : i+1] + + if p.stype != nil { + if lockGetProp { + p.sprop = GetProperties(p.stype) + } else { + p.sprop = getPropertiesLocked(p.stype) + } + } +} + +var ( + marshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem() + unmarshalerType = reflect.TypeOf((*Unmarshaler)(nil)).Elem() +) + +// isMarshaler reports whether type t implements Marshaler. +func isMarshaler(t reflect.Type) bool { + // We're checking for (likely) pointer-receiver methods + // so if t is not a pointer, something is very wrong. + // The calls above only invoke isMarshaler on pointer types. + if t.Kind() != reflect.Ptr { + panic("proto: misuse of isMarshaler") + } + return t.Implements(marshalerType) +} + +// isUnmarshaler reports whether type t implements Unmarshaler. +func isUnmarshaler(t reflect.Type) bool { + // We're checking for (likely) pointer-receiver methods + // so if t is not a pointer, something is very wrong. + // The calls above only invoke isUnmarshaler on pointer types. + if t.Kind() != reflect.Ptr { + panic("proto: misuse of isUnmarshaler") + } + return t.Implements(unmarshalerType) +} + +// Init populates the properties from a protocol buffer struct tag. +func (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) { + p.init(typ, name, tag, f, true) +} + +func (p *Properties) init(typ reflect.Type, name, tag string, f *reflect.StructField, lockGetProp bool) { + // "bytes,49,opt,def=hello!" + p.Name = name + p.OrigName = name + if f != nil { + p.field = toField(f) + } + if tag == "" { + return + } + p.Parse(tag) + p.setEncAndDec(typ, f, lockGetProp) +} + +var ( + propertiesMu sync.RWMutex + propertiesMap = make(map[reflect.Type]*StructProperties) +) + +// GetProperties returns the list of properties for the type represented by t. +// t must represent a generated struct type of a protocol message. +func GetProperties(t reflect.Type) *StructProperties { + if t.Kind() != reflect.Struct { + panic("proto: type must have kind struct") + } + + // Most calls to GetProperties in a long-running program will be + // retrieving details for types we have seen before. + propertiesMu.RLock() + sprop, ok := propertiesMap[t] + propertiesMu.RUnlock() + if ok { + if collectStats { + stats.Chit++ + } + return sprop + } + + propertiesMu.Lock() + sprop = getPropertiesLocked(t) + propertiesMu.Unlock() + return sprop +} + +// getPropertiesLocked requires that propertiesMu is held. +func getPropertiesLocked(t reflect.Type) *StructProperties { + if prop, ok := propertiesMap[t]; ok { + if collectStats { + stats.Chit++ + } + return prop + } + if collectStats { + stats.Cmiss++ + } + + prop := new(StructProperties) + // in case of recursive protos, fill this in now. + propertiesMap[t] = prop + + // build properties + prop.extendable = reflect.PtrTo(t).Implements(extendableProtoType) || + reflect.PtrTo(t).Implements(extendableProtoV1Type) + prop.unrecField = invalidField + prop.Prop = make([]*Properties, t.NumField()) + prop.order = make([]int, t.NumField()) + + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + p := new(Properties) + name := f.Name + p.init(f.Type, name, f.Tag.Get("protobuf"), &f, false) + + if f.Name == "XXX_InternalExtensions" { // special case + p.enc = (*Buffer).enc_exts + p.dec = nil // not needed + p.size = size_exts + } else if f.Name == "XXX_extensions" { // special case + p.enc = (*Buffer).enc_map + p.dec = nil // not needed + p.size = size_map + } else if f.Name == "XXX_unrecognized" { // special case + prop.unrecField = toField(&f) + } + oneof := f.Tag.Get("protobuf_oneof") // special case + if oneof != "" { + // Oneof fields don't use the traditional protobuf tag. + p.OrigName = oneof + } + prop.Prop[i] = p + prop.order[i] = i + if debug { + print(i, " ", f.Name, " ", t.String(), " ") + if p.Tag > 0 { + print(p.String()) + } + print("\n") + } + if p.enc == nil && !strings.HasPrefix(f.Name, "XXX_") && oneof == "" { + fmt.Fprintln(os.Stderr, "proto: no encoder for", f.Name, f.Type.String(), "[GetProperties]") + } + } + + // Re-order prop.order. + sort.Sort(prop) + + type oneofMessage interface { + XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{}) + } + if om, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(oneofMessage); ok { + var oots []interface{} + prop.oneofMarshaler, prop.oneofUnmarshaler, prop.oneofSizer, oots = om.XXX_OneofFuncs() + prop.stype = t + + // Interpret oneof metadata. + prop.OneofTypes = make(map[string]*OneofProperties) + for _, oot := range oots { + oop := &OneofProperties{ + Type: reflect.ValueOf(oot).Type(), // *T + Prop: new(Properties), + } + sft := oop.Type.Elem().Field(0) + oop.Prop.Name = sft.Name + oop.Prop.Parse(sft.Tag.Get("protobuf")) + // There will be exactly one interface field that + // this new value is assignable to. + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + if f.Type.Kind() != reflect.Interface { + continue + } + if !oop.Type.AssignableTo(f.Type) { + continue + } + oop.Field = i + break + } + prop.OneofTypes[oop.Prop.OrigName] = oop + } + } + + // build required counts + // build tags + reqCount := 0 + prop.decoderOrigNames = make(map[string]int) + for i, p := range prop.Prop { + if strings.HasPrefix(p.Name, "XXX_") { + // Internal fields should not appear in tags/origNames maps. + // They are handled specially when encoding and decoding. + continue + } + if p.Required { + reqCount++ + } + prop.decoderTags.put(p.Tag, i) + prop.decoderOrigNames[p.OrigName] = i + } + prop.reqCount = reqCount + + return prop +} + +// Return the Properties object for the x[0]'th field of the structure. +func propByIndex(t reflect.Type, x []int) *Properties { + if len(x) != 1 { + fmt.Fprintf(os.Stderr, "proto: field index dimension %d (not 1) for type %s\n", len(x), t) + return nil + } + prop := GetProperties(t) + return prop.Prop[x[0]] +} + +// Get the address and type of a pointer to a struct from an interface. +func getbase(pb Message) (t reflect.Type, b structPointer, err error) { + if pb == nil { + err = ErrNil + return + } + // get the reflect type of the pointer to the struct. + t = reflect.TypeOf(pb) + // get the address of the struct. + value := reflect.ValueOf(pb) + b = toStructPointer(value) + return +} + +// A global registry of enum types. +// The generated code will register the generated maps by calling RegisterEnum. + +var enumValueMaps = make(map[string]map[string]int32) + +// RegisterEnum is called from the generated code to install the enum descriptor +// maps into the global table to aid parsing text format protocol buffers. +func RegisterEnum(typeName string, unusedNameMap map[int32]string, valueMap map[string]int32) { + if _, ok := enumValueMaps[typeName]; ok { + panic("proto: duplicate enum registered: " + typeName) + } + enumValueMaps[typeName] = valueMap +} + +// EnumValueMap returns the mapping from names to integers of the +// enum type enumType, or a nil if not found. +func EnumValueMap(enumType string) map[string]int32 { + return enumValueMaps[enumType] +} + +// A registry of all linked message types. +// The string is a fully-qualified proto name ("pkg.Message"). +var ( + protoTypes = make(map[string]reflect.Type) + revProtoTypes = make(map[reflect.Type]string) +) + +// RegisterType is called from generated code and maps from the fully qualified +// proto name to the type (pointer to struct) of the protocol buffer. +func RegisterType(x Message, name string) { + if _, ok := protoTypes[name]; ok { + // TODO: Some day, make this a panic. + log.Printf("proto: duplicate proto type registered: %s", name) + return + } + t := reflect.TypeOf(x) + protoTypes[name] = t + revProtoTypes[t] = name +} + +// MessageName returns the fully-qualified proto name for the given message type. +func MessageName(x Message) string { + type xname interface { + XXX_MessageName() string + } + if m, ok := x.(xname); ok { + return m.XXX_MessageName() + } + return revProtoTypes[reflect.TypeOf(x)] +} + +// MessageType returns the message type (pointer to struct) for a named message. +func MessageType(name string) reflect.Type { return protoTypes[name] } + +// A registry of all linked proto files. +var ( + protoFiles = make(map[string][]byte) // file name => fileDescriptor +) + +// RegisterFile is called from generated code and maps from the +// full file name of a .proto file to its compressed FileDescriptorProto. +func RegisterFile(filename string, fileDescriptor []byte) { + protoFiles[filename] = fileDescriptor +} + +// FileDescriptor returns the compressed FileDescriptorProto for a .proto file. +func FileDescriptor(filename string) []byte { return protoFiles[filename] } diff --git a/vendor/github.com/golang/protobuf/proto/text.go b/vendor/github.com/golang/protobuf/proto/text.go new file mode 100644 index 0000000..965876b --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/text.go @@ -0,0 +1,854 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +// Functions for writing the text protocol buffer format. + +import ( + "bufio" + "bytes" + "encoding" + "errors" + "fmt" + "io" + "log" + "math" + "reflect" + "sort" + "strings" +) + +var ( + newline = []byte("\n") + spaces = []byte(" ") + gtNewline = []byte(">\n") + endBraceNewline = []byte("}\n") + backslashN = []byte{'\\', 'n'} + backslashR = []byte{'\\', 'r'} + backslashT = []byte{'\\', 't'} + backslashDQ = []byte{'\\', '"'} + backslashBS = []byte{'\\', '\\'} + posInf = []byte("inf") + negInf = []byte("-inf") + nan = []byte("nan") +) + +type writer interface { + io.Writer + WriteByte(byte) error +} + +// textWriter is an io.Writer that tracks its indentation level. +type textWriter struct { + ind int + complete bool // if the current position is a complete line + compact bool // whether to write out as a one-liner + w writer +} + +func (w *textWriter) WriteString(s string) (n int, err error) { + if !strings.Contains(s, "\n") { + if !w.compact && w.complete { + w.writeIndent() + } + w.complete = false + return io.WriteString(w.w, s) + } + // WriteString is typically called without newlines, so this + // codepath and its copy are rare. We copy to avoid + // duplicating all of Write's logic here. + return w.Write([]byte(s)) +} + +func (w *textWriter) Write(p []byte) (n int, err error) { + newlines := bytes.Count(p, newline) + if newlines == 0 { + if !w.compact && w.complete { + w.writeIndent() + } + n, err = w.w.Write(p) + w.complete = false + return n, err + } + + frags := bytes.SplitN(p, newline, newlines+1) + if w.compact { + for i, frag := range frags { + if i > 0 { + if err := w.w.WriteByte(' '); err != nil { + return n, err + } + n++ + } + nn, err := w.w.Write(frag) + n += nn + if err != nil { + return n, err + } + } + return n, nil + } + + for i, frag := range frags { + if w.complete { + w.writeIndent() + } + nn, err := w.w.Write(frag) + n += nn + if err != nil { + return n, err + } + if i+1 < len(frags) { + if err := w.w.WriteByte('\n'); err != nil { + return n, err + } + n++ + } + } + w.complete = len(frags[len(frags)-1]) == 0 + return n, nil +} + +func (w *textWriter) WriteByte(c byte) error { + if w.compact && c == '\n' { + c = ' ' + } + if !w.compact && w.complete { + w.writeIndent() + } + err := w.w.WriteByte(c) + w.complete = c == '\n' + return err +} + +func (w *textWriter) indent() { w.ind++ } + +func (w *textWriter) unindent() { + if w.ind == 0 { + log.Print("proto: textWriter unindented too far") + return + } + w.ind-- +} + +func writeName(w *textWriter, props *Properties) error { + if _, err := w.WriteString(props.OrigName); err != nil { + return err + } + if props.Wire != "group" { + return w.WriteByte(':') + } + return nil +} + +// raw is the interface satisfied by RawMessage. +type raw interface { + Bytes() []byte +} + +func requiresQuotes(u string) bool { + // When type URL contains any characters except [0-9A-Za-z./\-]*, it must be quoted. + for _, ch := range u { + switch { + case ch == '.' || ch == '/' || ch == '_': + continue + case '0' <= ch && ch <= '9': + continue + case 'A' <= ch && ch <= 'Z': + continue + case 'a' <= ch && ch <= 'z': + continue + default: + return true + } + } + return false +} + +// isAny reports whether sv is a google.protobuf.Any message +func isAny(sv reflect.Value) bool { + type wkt interface { + XXX_WellKnownType() string + } + t, ok := sv.Addr().Interface().(wkt) + return ok && t.XXX_WellKnownType() == "Any" +} + +// writeProto3Any writes an expanded google.protobuf.Any message. +// +// It returns (false, nil) if sv value can't be unmarshaled (e.g. because +// required messages are not linked in). +// +// It returns (true, error) when sv was written in expanded format or an error +// was encountered. +func (tm *TextMarshaler) writeProto3Any(w *textWriter, sv reflect.Value) (bool, error) { + turl := sv.FieldByName("TypeUrl") + val := sv.FieldByName("Value") + if !turl.IsValid() || !val.IsValid() { + return true, errors.New("proto: invalid google.protobuf.Any message") + } + + b, ok := val.Interface().([]byte) + if !ok { + return true, errors.New("proto: invalid google.protobuf.Any message") + } + + parts := strings.Split(turl.String(), "/") + mt := MessageType(parts[len(parts)-1]) + if mt == nil { + return false, nil + } + m := reflect.New(mt.Elem()) + if err := Unmarshal(b, m.Interface().(Message)); err != nil { + return false, nil + } + w.Write([]byte("[")) + u := turl.String() + if requiresQuotes(u) { + writeString(w, u) + } else { + w.Write([]byte(u)) + } + if w.compact { + w.Write([]byte("]:<")) + } else { + w.Write([]byte("]: <\n")) + w.ind++ + } + if err := tm.writeStruct(w, m.Elem()); err != nil { + return true, err + } + if w.compact { + w.Write([]byte("> ")) + } else { + w.ind-- + w.Write([]byte(">\n")) + } + return true, nil +} + +func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error { + if tm.ExpandAny && isAny(sv) { + if canExpand, err := tm.writeProto3Any(w, sv); canExpand { + return err + } + } + st := sv.Type() + sprops := GetProperties(st) + for i := 0; i < sv.NumField(); i++ { + fv := sv.Field(i) + props := sprops.Prop[i] + name := st.Field(i).Name + + if strings.HasPrefix(name, "XXX_") { + // There are two XXX_ fields: + // XXX_unrecognized []byte + // XXX_extensions map[int32]proto.Extension + // The first is handled here; + // the second is handled at the bottom of this function. + if name == "XXX_unrecognized" && !fv.IsNil() { + if err := writeUnknownStruct(w, fv.Interface().([]byte)); err != nil { + return err + } + } + continue + } + if fv.Kind() == reflect.Ptr && fv.IsNil() { + // Field not filled in. This could be an optional field or + // a required field that wasn't filled in. Either way, there + // isn't anything we can show for it. + continue + } + if fv.Kind() == reflect.Slice && fv.IsNil() { + // Repeated field that is empty, or a bytes field that is unused. + continue + } + + if props.Repeated && fv.Kind() == reflect.Slice { + // Repeated field. + for j := 0; j < fv.Len(); j++ { + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + v := fv.Index(j) + if v.Kind() == reflect.Ptr && v.IsNil() { + // A nil message in a repeated field is not valid, + // but we can handle that more gracefully than panicking. + if _, err := w.Write([]byte("\n")); err != nil { + return err + } + continue + } + if err := tm.writeAny(w, v, props); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + continue + } + if fv.Kind() == reflect.Map { + // Map fields are rendered as a repeated struct with key/value fields. + keys := fv.MapKeys() + sort.Sort(mapKeys(keys)) + for _, key := range keys { + val := fv.MapIndex(key) + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + // open struct + if err := w.WriteByte('<'); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte('\n'); err != nil { + return err + } + } + w.indent() + // key + if _, err := w.WriteString("key:"); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, key, props.mkeyprop); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + // nil values aren't legal, but we can avoid panicking because of them. + if val.Kind() != reflect.Ptr || !val.IsNil() { + // value + if _, err := w.WriteString("value:"); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, val, props.mvalprop); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + // close struct + w.unindent() + if err := w.WriteByte('>'); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + continue + } + if props.proto3 && fv.Kind() == reflect.Slice && fv.Len() == 0 { + // empty bytes field + continue + } + if fv.Kind() != reflect.Ptr && fv.Kind() != reflect.Slice { + // proto3 non-repeated scalar field; skip if zero value + if isProto3Zero(fv) { + continue + } + } + + if fv.Kind() == reflect.Interface { + // Check if it is a oneof. + if st.Field(i).Tag.Get("protobuf_oneof") != "" { + // fv is nil, or holds a pointer to generated struct. + // That generated struct has exactly one field, + // which has a protobuf struct tag. + if fv.IsNil() { + continue + } + inner := fv.Elem().Elem() // interface -> *T -> T + tag := inner.Type().Field(0).Tag.Get("protobuf") + props = new(Properties) // Overwrite the outer props var, but not its pointee. + props.Parse(tag) + // Write the value in the oneof, not the oneof itself. + fv = inner.Field(0) + + // Special case to cope with malformed messages gracefully: + // If the value in the oneof is a nil pointer, don't panic + // in writeAny. + if fv.Kind() == reflect.Ptr && fv.IsNil() { + // Use errors.New so writeAny won't render quotes. + msg := errors.New("/* nil */") + fv = reflect.ValueOf(&msg).Elem() + } + } + } + + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if b, ok := fv.Interface().(raw); ok { + if err := writeRaw(w, b.Bytes()); err != nil { + return err + } + continue + } + + // Enums have a String method, so writeAny will work fine. + if err := tm.writeAny(w, fv, props); err != nil { + return err + } + + if err := w.WriteByte('\n'); err != nil { + return err + } + } + + // Extensions (the XXX_extensions field). + pv := sv.Addr() + if _, ok := extendable(pv.Interface()); ok { + if err := tm.writeExtensions(w, pv); err != nil { + return err + } + } + + return nil +} + +// writeRaw writes an uninterpreted raw message. +func writeRaw(w *textWriter, b []byte) error { + if err := w.WriteByte('<'); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte('\n'); err != nil { + return err + } + } + w.indent() + if err := writeUnknownStruct(w, b); err != nil { + return err + } + w.unindent() + if err := w.WriteByte('>'); err != nil { + return err + } + return nil +} + +// writeAny writes an arbitrary field. +func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error { + v = reflect.Indirect(v) + + // Floats have special cases. + if v.Kind() == reflect.Float32 || v.Kind() == reflect.Float64 { + x := v.Float() + var b []byte + switch { + case math.IsInf(x, 1): + b = posInf + case math.IsInf(x, -1): + b = negInf + case math.IsNaN(x): + b = nan + } + if b != nil { + _, err := w.Write(b) + return err + } + // Other values are handled below. + } + + // We don't attempt to serialise every possible value type; only those + // that can occur in protocol buffers. + switch v.Kind() { + case reflect.Slice: + // Should only be a []byte; repeated fields are handled in writeStruct. + if err := writeString(w, string(v.Bytes())); err != nil { + return err + } + case reflect.String: + if err := writeString(w, v.String()); err != nil { + return err + } + case reflect.Struct: + // Required/optional group/message. + var bra, ket byte = '<', '>' + if props != nil && props.Wire == "group" { + bra, ket = '{', '}' + } + if err := w.WriteByte(bra); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte('\n'); err != nil { + return err + } + } + w.indent() + if etm, ok := v.Interface().(encoding.TextMarshaler); ok { + text, err := etm.MarshalText() + if err != nil { + return err + } + if _, err = w.Write(text); err != nil { + return err + } + } else if err := tm.writeStruct(w, v); err != nil { + return err + } + w.unindent() + if err := w.WriteByte(ket); err != nil { + return err + } + default: + _, err := fmt.Fprint(w, v.Interface()) + return err + } + return nil +} + +// equivalent to C's isprint. +func isprint(c byte) bool { + return c >= 0x20 && c < 0x7f +} + +// writeString writes a string in the protocol buffer text format. +// It is similar to strconv.Quote except we don't use Go escape sequences, +// we treat the string as a byte sequence, and we use octal escapes. +// These differences are to maintain interoperability with the other +// languages' implementations of the text format. +func writeString(w *textWriter, s string) error { + // use WriteByte here to get any needed indent + if err := w.WriteByte('"'); err != nil { + return err + } + // Loop over the bytes, not the runes. + for i := 0; i < len(s); i++ { + var err error + // Divergence from C++: we don't escape apostrophes. + // There's no need to escape them, and the C++ parser + // copes with a naked apostrophe. + switch c := s[i]; c { + case '\n': + _, err = w.w.Write(backslashN) + case '\r': + _, err = w.w.Write(backslashR) + case '\t': + _, err = w.w.Write(backslashT) + case '"': + _, err = w.w.Write(backslashDQ) + case '\\': + _, err = w.w.Write(backslashBS) + default: + if isprint(c) { + err = w.w.WriteByte(c) + } else { + _, err = fmt.Fprintf(w.w, "\\%03o", c) + } + } + if err != nil { + return err + } + } + return w.WriteByte('"') +} + +func writeUnknownStruct(w *textWriter, data []byte) (err error) { + if !w.compact { + if _, err := fmt.Fprintf(w, "/* %d unknown bytes */\n", len(data)); err != nil { + return err + } + } + b := NewBuffer(data) + for b.index < len(b.buf) { + x, err := b.DecodeVarint() + if err != nil { + _, err := fmt.Fprintf(w, "/* %v */\n", err) + return err + } + wire, tag := x&7, x>>3 + if wire == WireEndGroup { + w.unindent() + if _, err := w.Write(endBraceNewline); err != nil { + return err + } + continue + } + if _, err := fmt.Fprint(w, tag); err != nil { + return err + } + if wire != WireStartGroup { + if err := w.WriteByte(':'); err != nil { + return err + } + } + if !w.compact || wire == WireStartGroup { + if err := w.WriteByte(' '); err != nil { + return err + } + } + switch wire { + case WireBytes: + buf, e := b.DecodeRawBytes(false) + if e == nil { + _, err = fmt.Fprintf(w, "%q", buf) + } else { + _, err = fmt.Fprintf(w, "/* %v */", e) + } + case WireFixed32: + x, err = b.DecodeFixed32() + err = writeUnknownInt(w, x, err) + case WireFixed64: + x, err = b.DecodeFixed64() + err = writeUnknownInt(w, x, err) + case WireStartGroup: + err = w.WriteByte('{') + w.indent() + case WireVarint: + x, err = b.DecodeVarint() + err = writeUnknownInt(w, x, err) + default: + _, err = fmt.Fprintf(w, "/* unknown wire type %d */", wire) + } + if err != nil { + return err + } + if err = w.WriteByte('\n'); err != nil { + return err + } + } + return nil +} + +func writeUnknownInt(w *textWriter, x uint64, err error) error { + if err == nil { + _, err = fmt.Fprint(w, x) + } else { + _, err = fmt.Fprintf(w, "/* %v */", err) + } + return err +} + +type int32Slice []int32 + +func (s int32Slice) Len() int { return len(s) } +func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] } +func (s int32Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + +// writeExtensions writes all the extensions in pv. +// pv is assumed to be a pointer to a protocol message struct that is extendable. +func (tm *TextMarshaler) writeExtensions(w *textWriter, pv reflect.Value) error { + emap := extensionMaps[pv.Type().Elem()] + ep, _ := extendable(pv.Interface()) + + // Order the extensions by ID. + // This isn't strictly necessary, but it will give us + // canonical output, which will also make testing easier. + m, mu := ep.extensionsRead() + if m == nil { + return nil + } + mu.Lock() + ids := make([]int32, 0, len(m)) + for id := range m { + ids = append(ids, id) + } + sort.Sort(int32Slice(ids)) + mu.Unlock() + + for _, extNum := range ids { + ext := m[extNum] + var desc *ExtensionDesc + if emap != nil { + desc = emap[extNum] + } + if desc == nil { + // Unknown extension. + if err := writeUnknownStruct(w, ext.enc); err != nil { + return err + } + continue + } + + pb, err := GetExtension(ep, desc) + if err != nil { + return fmt.Errorf("failed getting extension: %v", err) + } + + // Repeated extensions will appear as a slice. + if !desc.repeated() { + if err := tm.writeExtension(w, desc.Name, pb); err != nil { + return err + } + } else { + v := reflect.ValueOf(pb) + for i := 0; i < v.Len(); i++ { + if err := tm.writeExtension(w, desc.Name, v.Index(i).Interface()); err != nil { + return err + } + } + } + } + return nil +} + +func (tm *TextMarshaler) writeExtension(w *textWriter, name string, pb interface{}) error { + if _, err := fmt.Fprintf(w, "[%s]:", name); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, reflect.ValueOf(pb), nil); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + return nil +} + +func (w *textWriter) writeIndent() { + if !w.complete { + return + } + remain := w.ind * 2 + for remain > 0 { + n := remain + if n > len(spaces) { + n = len(spaces) + } + w.w.Write(spaces[:n]) + remain -= n + } + w.complete = false +} + +// TextMarshaler is a configurable text format marshaler. +type TextMarshaler struct { + Compact bool // use compact text format (one line). + ExpandAny bool // expand google.protobuf.Any messages of known types +} + +// Marshal writes a given protocol buffer in text format. +// The only errors returned are from w. +func (tm *TextMarshaler) Marshal(w io.Writer, pb Message) error { + val := reflect.ValueOf(pb) + if pb == nil || val.IsNil() { + w.Write([]byte("")) + return nil + } + var bw *bufio.Writer + ww, ok := w.(writer) + if !ok { + bw = bufio.NewWriter(w) + ww = bw + } + aw := &textWriter{ + w: ww, + complete: true, + compact: tm.Compact, + } + + if etm, ok := pb.(encoding.TextMarshaler); ok { + text, err := etm.MarshalText() + if err != nil { + return err + } + if _, err = aw.Write(text); err != nil { + return err + } + if bw != nil { + return bw.Flush() + } + return nil + } + // Dereference the received pointer so we don't have outer < and >. + v := reflect.Indirect(val) + if err := tm.writeStruct(aw, v); err != nil { + return err + } + if bw != nil { + return bw.Flush() + } + return nil +} + +// Text is the same as Marshal, but returns the string directly. +func (tm *TextMarshaler) Text(pb Message) string { + var buf bytes.Buffer + tm.Marshal(&buf, pb) + return buf.String() +} + +var ( + defaultTextMarshaler = TextMarshaler{} + compactTextMarshaler = TextMarshaler{Compact: true} +) + +// TODO: consider removing some of the Marshal functions below. + +// MarshalText writes a given protocol buffer in text format. +// The only errors returned are from w. +func MarshalText(w io.Writer, pb Message) error { return defaultTextMarshaler.Marshal(w, pb) } + +// MarshalTextString is the same as MarshalText, but returns the string directly. +func MarshalTextString(pb Message) string { return defaultTextMarshaler.Text(pb) } + +// CompactText writes a given protocol buffer in compact text format (one line). +func CompactText(w io.Writer, pb Message) error { return compactTextMarshaler.Marshal(w, pb) } + +// CompactTextString is the same as CompactText, but returns the string directly. +func CompactTextString(pb Message) string { return compactTextMarshaler.Text(pb) } diff --git a/vendor/github.com/golang/protobuf/proto/text_parser.go b/vendor/github.com/golang/protobuf/proto/text_parser.go new file mode 100644 index 0000000..5e14513 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/text_parser.go @@ -0,0 +1,895 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +// Functions for parsing the Text protocol buffer format. +// TODO: message sets. + +import ( + "encoding" + "errors" + "fmt" + "reflect" + "strconv" + "strings" + "unicode/utf8" +) + +// Error string emitted when deserializing Any and fields are already set +const anyRepeatedlyUnpacked = "Any message unpacked multiple times, or %q already set" + +type ParseError struct { + Message string + Line int // 1-based line number + Offset int // 0-based byte offset from start of input +} + +func (p *ParseError) Error() string { + if p.Line == 1 { + // show offset only for first line + return fmt.Sprintf("line 1.%d: %v", p.Offset, p.Message) + } + return fmt.Sprintf("line %d: %v", p.Line, p.Message) +} + +type token struct { + value string + err *ParseError + line int // line number + offset int // byte number from start of input, not start of line + unquoted string // the unquoted version of value, if it was a quoted string +} + +func (t *token) String() string { + if t.err == nil { + return fmt.Sprintf("%q (line=%d, offset=%d)", t.value, t.line, t.offset) + } + return fmt.Sprintf("parse error: %v", t.err) +} + +type textParser struct { + s string // remaining input + done bool // whether the parsing is finished (success or error) + backed bool // whether back() was called + offset, line int + cur token +} + +func newTextParser(s string) *textParser { + p := new(textParser) + p.s = s + p.line = 1 + p.cur.line = 1 + return p +} + +func (p *textParser) errorf(format string, a ...interface{}) *ParseError { + pe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset} + p.cur.err = pe + p.done = true + return pe +} + +// Numbers and identifiers are matched by [-+._A-Za-z0-9] +func isIdentOrNumberChar(c byte) bool { + switch { + case 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z': + return true + case '0' <= c && c <= '9': + return true + } + switch c { + case '-', '+', '.', '_': + return true + } + return false +} + +func isWhitespace(c byte) bool { + switch c { + case ' ', '\t', '\n', '\r': + return true + } + return false +} + +func isQuote(c byte) bool { + switch c { + case '"', '\'': + return true + } + return false +} + +func (p *textParser) skipWhitespace() { + i := 0 + for i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') { + if p.s[i] == '#' { + // comment; skip to end of line or input + for i < len(p.s) && p.s[i] != '\n' { + i++ + } + if i == len(p.s) { + break + } + } + if p.s[i] == '\n' { + p.line++ + } + i++ + } + p.offset += i + p.s = p.s[i:len(p.s)] + if len(p.s) == 0 { + p.done = true + } +} + +func (p *textParser) advance() { + // Skip whitespace + p.skipWhitespace() + if p.done { + return + } + + // Start of non-whitespace + p.cur.err = nil + p.cur.offset, p.cur.line = p.offset, p.line + p.cur.unquoted = "" + switch p.s[0] { + case '<', '>', '{', '}', ':', '[', ']', ';', ',', '/': + // Single symbol + p.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)] + case '"', '\'': + // Quoted string + i := 1 + for i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\n' { + if p.s[i] == '\\' && i+1 < len(p.s) { + // skip escaped char + i++ + } + i++ + } + if i >= len(p.s) || p.s[i] != p.s[0] { + p.errorf("unmatched quote") + return + } + unq, err := unquoteC(p.s[1:i], rune(p.s[0])) + if err != nil { + p.errorf("invalid quoted string %s: %v", p.s[0:i+1], err) + return + } + p.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)] + p.cur.unquoted = unq + default: + i := 0 + for i < len(p.s) && isIdentOrNumberChar(p.s[i]) { + i++ + } + if i == 0 { + p.errorf("unexpected byte %#x", p.s[0]) + return + } + p.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)] + } + p.offset += len(p.cur.value) +} + +var ( + errBadUTF8 = errors.New("proto: bad UTF-8") + errBadHex = errors.New("proto: bad hexadecimal") +) + +func unquoteC(s string, quote rune) (string, error) { + // This is based on C++'s tokenizer.cc. + // Despite its name, this is *not* parsing C syntax. + // For instance, "\0" is an invalid quoted string. + + // Avoid allocation in trivial cases. + simple := true + for _, r := range s { + if r == '\\' || r == quote { + simple = false + break + } + } + if simple { + return s, nil + } + + buf := make([]byte, 0, 3*len(s)/2) + for len(s) > 0 { + r, n := utf8.DecodeRuneInString(s) + if r == utf8.RuneError && n == 1 { + return "", errBadUTF8 + } + s = s[n:] + if r != '\\' { + if r < utf8.RuneSelf { + buf = append(buf, byte(r)) + } else { + buf = append(buf, string(r)...) + } + continue + } + + ch, tail, err := unescape(s) + if err != nil { + return "", err + } + buf = append(buf, ch...) + s = tail + } + return string(buf), nil +} + +func unescape(s string) (ch string, tail string, err error) { + r, n := utf8.DecodeRuneInString(s) + if r == utf8.RuneError && n == 1 { + return "", "", errBadUTF8 + } + s = s[n:] + switch r { + case 'a': + return "\a", s, nil + case 'b': + return "\b", s, nil + case 'f': + return "\f", s, nil + case 'n': + return "\n", s, nil + case 'r': + return "\r", s, nil + case 't': + return "\t", s, nil + case 'v': + return "\v", s, nil + case '?': + return "?", s, nil // trigraph workaround + case '\'', '"', '\\': + return string(r), s, nil + case '0', '1', '2', '3', '4', '5', '6', '7', 'x', 'X': + if len(s) < 2 { + return "", "", fmt.Errorf(`\%c requires 2 following digits`, r) + } + base := 8 + ss := s[:2] + s = s[2:] + if r == 'x' || r == 'X' { + base = 16 + } else { + ss = string(r) + ss + } + i, err := strconv.ParseUint(ss, base, 8) + if err != nil { + return "", "", err + } + return string([]byte{byte(i)}), s, nil + case 'u', 'U': + n := 4 + if r == 'U' { + n = 8 + } + if len(s) < n { + return "", "", fmt.Errorf(`\%c requires %d digits`, r, n) + } + + bs := make([]byte, n/2) + for i := 0; i < n; i += 2 { + a, ok1 := unhex(s[i]) + b, ok2 := unhex(s[i+1]) + if !ok1 || !ok2 { + return "", "", errBadHex + } + bs[i/2] = a<<4 | b + } + s = s[n:] + return string(bs), s, nil + } + return "", "", fmt.Errorf(`unknown escape \%c`, r) +} + +// Adapted from src/pkg/strconv/quote.go. +func unhex(b byte) (v byte, ok bool) { + switch { + case '0' <= b && b <= '9': + return b - '0', true + case 'a' <= b && b <= 'f': + return b - 'a' + 10, true + case 'A' <= b && b <= 'F': + return b - 'A' + 10, true + } + return 0, false +} + +// Back off the parser by one token. Can only be done between calls to next(). +// It makes the next advance() a no-op. +func (p *textParser) back() { p.backed = true } + +// Advances the parser and returns the new current token. +func (p *textParser) next() *token { + if p.backed || p.done { + p.backed = false + return &p.cur + } + p.advance() + if p.done { + p.cur.value = "" + } else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) { + // Look for multiple quoted strings separated by whitespace, + // and concatenate them. + cat := p.cur + for { + p.skipWhitespace() + if p.done || !isQuote(p.s[0]) { + break + } + p.advance() + if p.cur.err != nil { + return &p.cur + } + cat.value += " " + p.cur.value + cat.unquoted += p.cur.unquoted + } + p.done = false // parser may have seen EOF, but we want to return cat + p.cur = cat + } + return &p.cur +} + +func (p *textParser) consumeToken(s string) error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != s { + p.back() + return p.errorf("expected %q, found %q", s, tok.value) + } + return nil +} + +// Return a RequiredNotSetError indicating which required field was not set. +func (p *textParser) missingRequiredFieldError(sv reflect.Value) *RequiredNotSetError { + st := sv.Type() + sprops := GetProperties(st) + for i := 0; i < st.NumField(); i++ { + if !isNil(sv.Field(i)) { + continue + } + + props := sprops.Prop[i] + if props.Required { + return &RequiredNotSetError{fmt.Sprintf("%v.%v", st, props.OrigName)} + } + } + return &RequiredNotSetError{fmt.Sprintf("%v.", st)} // should not happen +} + +// Returns the index in the struct for the named field, as well as the parsed tag properties. +func structFieldByName(sprops *StructProperties, name string) (int, *Properties, bool) { + i, ok := sprops.decoderOrigNames[name] + if ok { + return i, sprops.Prop[i], true + } + return -1, nil, false +} + +// Consume a ':' from the input stream (if the next token is a colon), +// returning an error if a colon is needed but not present. +func (p *textParser) checkForColon(props *Properties, typ reflect.Type) *ParseError { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != ":" { + // Colon is optional when the field is a group or message. + needColon := true + switch props.Wire { + case "group": + needColon = false + case "bytes": + // A "bytes" field is either a message, a string, or a repeated field; + // those three become *T, *string and []T respectively, so we can check for + // this field being a pointer to a non-string. + if typ.Kind() == reflect.Ptr { + // *T or *string + if typ.Elem().Kind() == reflect.String { + break + } + } else if typ.Kind() == reflect.Slice { + // []T or []*T + if typ.Elem().Kind() != reflect.Ptr { + break + } + } else if typ.Kind() == reflect.String { + // The proto3 exception is for a string field, + // which requires a colon. + break + } + needColon = false + } + if needColon { + return p.errorf("expected ':', found %q", tok.value) + } + p.back() + } + return nil +} + +func (p *textParser) readStruct(sv reflect.Value, terminator string) error { + st := sv.Type() + sprops := GetProperties(st) + reqCount := sprops.reqCount + var reqFieldErr error + fieldSet := make(map[string]bool) + // A struct is a sequence of "name: value", terminated by one of + // '>' or '}', or the end of the input. A name may also be + // "[extension]" or "[type/url]". + // + // The whole struct can also be an expanded Any message, like: + // [type/url] < ... struct contents ... > + for { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == terminator { + break + } + if tok.value == "[" { + // Looks like an extension or an Any. + // + // TODO: Check whether we need to handle + // namespace rooted names (e.g. ".something.Foo"). + extName, err := p.consumeExtName() + if err != nil { + return err + } + + if s := strings.LastIndex(extName, "/"); s >= 0 { + // If it contains a slash, it's an Any type URL. + messageName := extName[s+1:] + mt := MessageType(messageName) + if mt == nil { + return p.errorf("unrecognized message %q in google.protobuf.Any", messageName) + } + tok = p.next() + if tok.err != nil { + return tok.err + } + // consume an optional colon + if tok.value == ":" { + tok = p.next() + if tok.err != nil { + return tok.err + } + } + var terminator string + switch tok.value { + case "<": + terminator = ">" + case "{": + terminator = "}" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + v := reflect.New(mt.Elem()) + if pe := p.readStruct(v.Elem(), terminator); pe != nil { + return pe + } + b, err := Marshal(v.Interface().(Message)) + if err != nil { + return p.errorf("failed to marshal message of type %q: %v", messageName, err) + } + if fieldSet["type_url"] { + return p.errorf(anyRepeatedlyUnpacked, "type_url") + } + if fieldSet["value"] { + return p.errorf(anyRepeatedlyUnpacked, "value") + } + sv.FieldByName("TypeUrl").SetString(extName) + sv.FieldByName("Value").SetBytes(b) + fieldSet["type_url"] = true + fieldSet["value"] = true + continue + } + + var desc *ExtensionDesc + // This could be faster, but it's functional. + // TODO: Do something smarter than a linear scan. + for _, d := range RegisteredExtensions(reflect.New(st).Interface().(Message)) { + if d.Name == extName { + desc = d + break + } + } + if desc == nil { + return p.errorf("unrecognized extension %q", extName) + } + + props := &Properties{} + props.Parse(desc.Tag) + + typ := reflect.TypeOf(desc.ExtensionType) + if err := p.checkForColon(props, typ); err != nil { + return err + } + + rep := desc.repeated() + + // Read the extension structure, and set it in + // the value we're constructing. + var ext reflect.Value + if !rep { + ext = reflect.New(typ).Elem() + } else { + ext = reflect.New(typ.Elem()).Elem() + } + if err := p.readAny(ext, props); err != nil { + if _, ok := err.(*RequiredNotSetError); !ok { + return err + } + reqFieldErr = err + } + ep := sv.Addr().Interface().(Message) + if !rep { + SetExtension(ep, desc, ext.Interface()) + } else { + old, err := GetExtension(ep, desc) + var sl reflect.Value + if err == nil { + sl = reflect.ValueOf(old) // existing slice + } else { + sl = reflect.MakeSlice(typ, 0, 1) + } + sl = reflect.Append(sl, ext) + SetExtension(ep, desc, sl.Interface()) + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + continue + } + + // This is a normal, non-extension field. + name := tok.value + var dst reflect.Value + fi, props, ok := structFieldByName(sprops, name) + if ok { + dst = sv.Field(fi) + } else if oop, ok := sprops.OneofTypes[name]; ok { + // It is a oneof. + props = oop.Prop + nv := reflect.New(oop.Type.Elem()) + dst = nv.Elem().Field(0) + field := sv.Field(oop.Field) + if !field.IsNil() { + return p.errorf("field '%s' would overwrite already parsed oneof '%s'", name, sv.Type().Field(oop.Field).Name) + } + field.Set(nv) + } + if !dst.IsValid() { + return p.errorf("unknown field name %q in %v", name, st) + } + + if dst.Kind() == reflect.Map { + // Consume any colon. + if err := p.checkForColon(props, dst.Type()); err != nil { + return err + } + + // Construct the map if it doesn't already exist. + if dst.IsNil() { + dst.Set(reflect.MakeMap(dst.Type())) + } + key := reflect.New(dst.Type().Key()).Elem() + val := reflect.New(dst.Type().Elem()).Elem() + + // The map entry should be this sequence of tokens: + // < key : KEY value : VALUE > + // However, implementations may omit key or value, and technically + // we should support them in any order. See b/28924776 for a time + // this went wrong. + + tok := p.next() + var terminator string + switch tok.value { + case "<": + terminator = ">" + case "{": + terminator = "}" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + for { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == terminator { + break + } + switch tok.value { + case "key": + if err := p.consumeToken(":"); err != nil { + return err + } + if err := p.readAny(key, props.mkeyprop); err != nil { + return err + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + case "value": + if err := p.checkForColon(props.mvalprop, dst.Type().Elem()); err != nil { + return err + } + if err := p.readAny(val, props.mvalprop); err != nil { + return err + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + default: + p.back() + return p.errorf(`expected "key", "value", or %q, found %q`, terminator, tok.value) + } + } + + dst.SetMapIndex(key, val) + continue + } + + // Check that it's not already set if it's not a repeated field. + if !props.Repeated && fieldSet[name] { + return p.errorf("non-repeated field %q was repeated", name) + } + + if err := p.checkForColon(props, dst.Type()); err != nil { + return err + } + + // Parse into the field. + fieldSet[name] = true + if err := p.readAny(dst, props); err != nil { + if _, ok := err.(*RequiredNotSetError); !ok { + return err + } + reqFieldErr = err + } + if props.Required { + reqCount-- + } + + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + + } + + if reqCount > 0 { + return p.missingRequiredFieldError(sv) + } + return reqFieldErr +} + +// consumeExtName consumes extension name or expanded Any type URL and the +// following ']'. It returns the name or URL consumed. +func (p *textParser) consumeExtName() (string, error) { + tok := p.next() + if tok.err != nil { + return "", tok.err + } + + // If extension name or type url is quoted, it's a single token. + if len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] { + name, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0])) + if err != nil { + return "", err + } + return name, p.consumeToken("]") + } + + // Consume everything up to "]" + var parts []string + for tok.value != "]" { + parts = append(parts, tok.value) + tok = p.next() + if tok.err != nil { + return "", p.errorf("unrecognized type_url or extension name: %s", tok.err) + } + } + return strings.Join(parts, ""), nil +} + +// consumeOptionalSeparator consumes an optional semicolon or comma. +// It is used in readStruct to provide backward compatibility. +func (p *textParser) consumeOptionalSeparator() error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != ";" && tok.value != "," { + p.back() + } + return nil +} + +func (p *textParser) readAny(v reflect.Value, props *Properties) error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == "" { + return p.errorf("unexpected EOF") + } + + switch fv := v; fv.Kind() { + case reflect.Slice: + at := v.Type() + if at.Elem().Kind() == reflect.Uint8 { + // Special case for []byte + if tok.value[0] != '"' && tok.value[0] != '\'' { + // Deliberately written out here, as the error after + // this switch statement would write "invalid []byte: ...", + // which is not as user-friendly. + return p.errorf("invalid string: %v", tok.value) + } + bytes := []byte(tok.unquoted) + fv.Set(reflect.ValueOf(bytes)) + return nil + } + // Repeated field. + if tok.value == "[" { + // Repeated field with list notation, like [1,2,3]. + for { + fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) + err := p.readAny(fv.Index(fv.Len()-1), props) + if err != nil { + return err + } + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == "]" { + break + } + if tok.value != "," { + return p.errorf("Expected ']' or ',' found %q", tok.value) + } + } + return nil + } + // One value of the repeated field. + p.back() + fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) + return p.readAny(fv.Index(fv.Len()-1), props) + case reflect.Bool: + // true/1/t/True or false/f/0/False. + switch tok.value { + case "true", "1", "t", "True": + fv.SetBool(true) + return nil + case "false", "0", "f", "False": + fv.SetBool(false) + return nil + } + case reflect.Float32, reflect.Float64: + v := tok.value + // Ignore 'f' for compatibility with output generated by C++, but don't + // remove 'f' when the value is "-inf" or "inf". + if strings.HasSuffix(v, "f") && tok.value != "-inf" && tok.value != "inf" { + v = v[:len(v)-1] + } + if f, err := strconv.ParseFloat(v, fv.Type().Bits()); err == nil { + fv.SetFloat(f) + return nil + } + case reflect.Int32: + if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { + fv.SetInt(x) + return nil + } + + if len(props.Enum) == 0 { + break + } + m, ok := enumValueMaps[props.Enum] + if !ok { + break + } + x, ok := m[tok.value] + if !ok { + break + } + fv.SetInt(int64(x)) + return nil + case reflect.Int64: + if x, err := strconv.ParseInt(tok.value, 0, 64); err == nil { + fv.SetInt(x) + return nil + } + + case reflect.Ptr: + // A basic field (indirected through pointer), or a repeated message/group + p.back() + fv.Set(reflect.New(fv.Type().Elem())) + return p.readAny(fv.Elem(), props) + case reflect.String: + if tok.value[0] == '"' || tok.value[0] == '\'' { + fv.SetString(tok.unquoted) + return nil + } + case reflect.Struct: + var terminator string + switch tok.value { + case "{": + terminator = "}" + case "<": + terminator = ">" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + // TODO: Handle nested messages which implement encoding.TextUnmarshaler. + return p.readStruct(fv, terminator) + case reflect.Uint32: + if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { + fv.SetUint(x) + return nil + } + case reflect.Uint64: + if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil { + fv.SetUint(x) + return nil + } + } + return p.errorf("invalid %v: %v", v.Type(), tok.value) +} + +// UnmarshalText reads a protocol buffer in Text format. UnmarshalText resets pb +// before starting to unmarshal, so any existing data in pb is always removed. +// If a required field is not set and no other error occurs, +// UnmarshalText returns *RequiredNotSetError. +func UnmarshalText(s string, pb Message) error { + if um, ok := pb.(encoding.TextUnmarshaler); ok { + err := um.UnmarshalText([]byte(s)) + return err + } + pb.Reset() + v := reflect.ValueOf(pb) + if pe := newTextParser(s).readStruct(v.Elem(), ""); pe != nil { + return pe + } + return nil +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile new file mode 100644 index 0000000..f706871 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile @@ -0,0 +1,37 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Not stored here, but descriptor.proto is in https://github.com/google/protobuf/ +# at src/google/protobuf/descriptor.proto +regenerate: + @echo WARNING! THIS RULE IS PROBABLY NOT RIGHT FOR YOUR INSTALLATION + cp $(HOME)/src/protobuf/include/google/protobuf/descriptor.proto . + protoc --go_out=../../../../.. -I$(HOME)/src/protobuf/include $(HOME)/src/protobuf/include/google/protobuf/descriptor.proto diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go new file mode 100644 index 0000000..c6a91bc --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go @@ -0,0 +1,2215 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/protobuf/descriptor.proto + +/* +Package descriptor is a generated protocol buffer package. + +It is generated from these files: + google/protobuf/descriptor.proto + +It has these top-level messages: + FileDescriptorSet + FileDescriptorProto + DescriptorProto + ExtensionRangeOptions + FieldDescriptorProto + OneofDescriptorProto + EnumDescriptorProto + EnumValueDescriptorProto + ServiceDescriptorProto + MethodDescriptorProto + FileOptions + MessageOptions + FieldOptions + OneofOptions + EnumOptions + EnumValueOptions + ServiceOptions + MethodOptions + UninterpretedOption + SourceCodeInfo + GeneratedCodeInfo +*/ +package descriptor + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type FieldDescriptorProto_Type int32 + +const ( + // 0 is reserved for errors. + // Order is weird for historical reasons. + FieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1 + FieldDescriptorProto_TYPE_FLOAT FieldDescriptorProto_Type = 2 + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + FieldDescriptorProto_TYPE_INT64 FieldDescriptorProto_Type = 3 + FieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4 + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + FieldDescriptorProto_TYPE_INT32 FieldDescriptorProto_Type = 5 + FieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6 + FieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7 + FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 + FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 + // Tag-delimited aggregate. + // Group type is deprecated and not supported in proto3. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. + FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 + FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 + // New in version 2. + FieldDescriptorProto_TYPE_BYTES FieldDescriptorProto_Type = 12 + FieldDescriptorProto_TYPE_UINT32 FieldDescriptorProto_Type = 13 + FieldDescriptorProto_TYPE_ENUM FieldDescriptorProto_Type = 14 + FieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15 + FieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16 + FieldDescriptorProto_TYPE_SINT32 FieldDescriptorProto_Type = 17 + FieldDescriptorProto_TYPE_SINT64 FieldDescriptorProto_Type = 18 +) + +var FieldDescriptorProto_Type_name = map[int32]string{ + 1: "TYPE_DOUBLE", + 2: "TYPE_FLOAT", + 3: "TYPE_INT64", + 4: "TYPE_UINT64", + 5: "TYPE_INT32", + 6: "TYPE_FIXED64", + 7: "TYPE_FIXED32", + 8: "TYPE_BOOL", + 9: "TYPE_STRING", + 10: "TYPE_GROUP", + 11: "TYPE_MESSAGE", + 12: "TYPE_BYTES", + 13: "TYPE_UINT32", + 14: "TYPE_ENUM", + 15: "TYPE_SFIXED32", + 16: "TYPE_SFIXED64", + 17: "TYPE_SINT32", + 18: "TYPE_SINT64", +} +var FieldDescriptorProto_Type_value = map[string]int32{ + "TYPE_DOUBLE": 1, + "TYPE_FLOAT": 2, + "TYPE_INT64": 3, + "TYPE_UINT64": 4, + "TYPE_INT32": 5, + "TYPE_FIXED64": 6, + "TYPE_FIXED32": 7, + "TYPE_BOOL": 8, + "TYPE_STRING": 9, + "TYPE_GROUP": 10, + "TYPE_MESSAGE": 11, + "TYPE_BYTES": 12, + "TYPE_UINT32": 13, + "TYPE_ENUM": 14, + "TYPE_SFIXED32": 15, + "TYPE_SFIXED64": 16, + "TYPE_SINT32": 17, + "TYPE_SINT64": 18, +} + +func (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type { + p := new(FieldDescriptorProto_Type) + *p = x + return p +} +func (x FieldDescriptorProto_Type) String() string { + return proto.EnumName(FieldDescriptorProto_Type_name, int32(x)) +} +func (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Type_value, data, "FieldDescriptorProto_Type") + if err != nil { + return err + } + *x = FieldDescriptorProto_Type(value) + return nil +} +func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4, 0} } + +type FieldDescriptorProto_Label int32 + +const ( + // 0 is reserved for errors + FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 + FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 + FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 +) + +var FieldDescriptorProto_Label_name = map[int32]string{ + 1: "LABEL_OPTIONAL", + 2: "LABEL_REQUIRED", + 3: "LABEL_REPEATED", +} +var FieldDescriptorProto_Label_value = map[string]int32{ + "LABEL_OPTIONAL": 1, + "LABEL_REQUIRED": 2, + "LABEL_REPEATED": 3, +} + +func (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label { + p := new(FieldDescriptorProto_Label) + *p = x + return p +} +func (x FieldDescriptorProto_Label) String() string { + return proto.EnumName(FieldDescriptorProto_Label_name, int32(x)) +} +func (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Label_value, data, "FieldDescriptorProto_Label") + if err != nil { + return err + } + *x = FieldDescriptorProto_Label(value) + return nil +} +func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) { + return fileDescriptor0, []int{4, 1} +} + +// Generated classes can be optimized for speed or code size. +type FileOptions_OptimizeMode int32 + +const ( + FileOptions_SPEED FileOptions_OptimizeMode = 1 + // etc. + FileOptions_CODE_SIZE FileOptions_OptimizeMode = 2 + FileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3 +) + +var FileOptions_OptimizeMode_name = map[int32]string{ + 1: "SPEED", + 2: "CODE_SIZE", + 3: "LITE_RUNTIME", +} +var FileOptions_OptimizeMode_value = map[string]int32{ + "SPEED": 1, + "CODE_SIZE": 2, + "LITE_RUNTIME": 3, +} + +func (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode { + p := new(FileOptions_OptimizeMode) + *p = x + return p +} +func (x FileOptions_OptimizeMode) String() string { + return proto.EnumName(FileOptions_OptimizeMode_name, int32(x)) +} +func (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FileOptions_OptimizeMode_value, data, "FileOptions_OptimizeMode") + if err != nil { + return err + } + *x = FileOptions_OptimizeMode(value) + return nil +} +func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{10, 0} } + +type FieldOptions_CType int32 + +const ( + // Default mode. + FieldOptions_STRING FieldOptions_CType = 0 + FieldOptions_CORD FieldOptions_CType = 1 + FieldOptions_STRING_PIECE FieldOptions_CType = 2 +) + +var FieldOptions_CType_name = map[int32]string{ + 0: "STRING", + 1: "CORD", + 2: "STRING_PIECE", +} +var FieldOptions_CType_value = map[string]int32{ + "STRING": 0, + "CORD": 1, + "STRING_PIECE": 2, +} + +func (x FieldOptions_CType) Enum() *FieldOptions_CType { + p := new(FieldOptions_CType) + *p = x + return p +} +func (x FieldOptions_CType) String() string { + return proto.EnumName(FieldOptions_CType_name, int32(x)) +} +func (x *FieldOptions_CType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldOptions_CType_value, data, "FieldOptions_CType") + if err != nil { + return err + } + *x = FieldOptions_CType(value) + return nil +} +func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 0} } + +type FieldOptions_JSType int32 + +const ( + // Use the default type. + FieldOptions_JS_NORMAL FieldOptions_JSType = 0 + // Use JavaScript strings. + FieldOptions_JS_STRING FieldOptions_JSType = 1 + // Use JavaScript numbers. + FieldOptions_JS_NUMBER FieldOptions_JSType = 2 +) + +var FieldOptions_JSType_name = map[int32]string{ + 0: "JS_NORMAL", + 1: "JS_STRING", + 2: "JS_NUMBER", +} +var FieldOptions_JSType_value = map[string]int32{ + "JS_NORMAL": 0, + "JS_STRING": 1, + "JS_NUMBER": 2, +} + +func (x FieldOptions_JSType) Enum() *FieldOptions_JSType { + p := new(FieldOptions_JSType) + *p = x + return p +} +func (x FieldOptions_JSType) String() string { + return proto.EnumName(FieldOptions_JSType_name, int32(x)) +} +func (x *FieldOptions_JSType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldOptions_JSType_value, data, "FieldOptions_JSType") + if err != nil { + return err + } + *x = FieldOptions_JSType(value) + return nil +} +func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 1} } + +// Is this method side-effect-free (or safe in HTTP parlance), or idempotent, +// or neither? HTTP based RPC implementation may choose GET verb for safe +// methods, and PUT verb for idempotent methods instead of the default POST. +type MethodOptions_IdempotencyLevel int32 + +const ( + MethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0 + MethodOptions_NO_SIDE_EFFECTS MethodOptions_IdempotencyLevel = 1 + MethodOptions_IDEMPOTENT MethodOptions_IdempotencyLevel = 2 +) + +var MethodOptions_IdempotencyLevel_name = map[int32]string{ + 0: "IDEMPOTENCY_UNKNOWN", + 1: "NO_SIDE_EFFECTS", + 2: "IDEMPOTENT", +} +var MethodOptions_IdempotencyLevel_value = map[string]int32{ + "IDEMPOTENCY_UNKNOWN": 0, + "NO_SIDE_EFFECTS": 1, + "IDEMPOTENT": 2, +} + +func (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel { + p := new(MethodOptions_IdempotencyLevel) + *p = x + return p +} +func (x MethodOptions_IdempotencyLevel) String() string { + return proto.EnumName(MethodOptions_IdempotencyLevel_name, int32(x)) +} +func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MethodOptions_IdempotencyLevel_value, data, "MethodOptions_IdempotencyLevel") + if err != nil { + return err + } + *x = MethodOptions_IdempotencyLevel(value) + return nil +} +func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { + return fileDescriptor0, []int{17, 0} +} + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +type FileDescriptorSet struct { + File []*FileDescriptorProto `protobuf:"bytes,1,rep,name=file" json:"file,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FileDescriptorSet) Reset() { *m = FileDescriptorSet{} } +func (m *FileDescriptorSet) String() string { return proto.CompactTextString(m) } +func (*FileDescriptorSet) ProtoMessage() {} +func (*FileDescriptorSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *FileDescriptorSet) GetFile() []*FileDescriptorProto { + if m != nil { + return m.File + } + return nil +} + +// Describes a complete .proto file. +type FileDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Package *string `protobuf:"bytes,2,opt,name=package" json:"package,omitempty"` + // Names of files imported by this file. + Dependency []string `protobuf:"bytes,3,rep,name=dependency" json:"dependency,omitempty"` + // Indexes of the public imported files in the dependency list above. + PublicDependency []int32 `protobuf:"varint,10,rep,name=public_dependency,json=publicDependency" json:"public_dependency,omitempty"` + // Indexes of the weak imported files in the dependency list. + // For Google-internal migration only. Do not use. + WeakDependency []int32 `protobuf:"varint,11,rep,name=weak_dependency,json=weakDependency" json:"weak_dependency,omitempty"` + // All top-level definitions in this file. + MessageType []*DescriptorProto `protobuf:"bytes,4,rep,name=message_type,json=messageType" json:"message_type,omitempty"` + EnumType []*EnumDescriptorProto `protobuf:"bytes,5,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` + Service []*ServiceDescriptorProto `protobuf:"bytes,6,rep,name=service" json:"service,omitempty"` + Extension []*FieldDescriptorProto `protobuf:"bytes,7,rep,name=extension" json:"extension,omitempty"` + Options *FileOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` + // This field contains optional information about the original source code. + // You may safely remove this entire field without harming runtime + // functionality of the descriptors -- the information is needed only by + // development tools. + SourceCodeInfo *SourceCodeInfo `protobuf:"bytes,9,opt,name=source_code_info,json=sourceCodeInfo" json:"source_code_info,omitempty"` + // The syntax of the proto file. + // The supported values are "proto2" and "proto3". + Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FileDescriptorProto) Reset() { *m = FileDescriptorProto{} } +func (m *FileDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*FileDescriptorProto) ProtoMessage() {} +func (*FileDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +func (m *FileDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FileDescriptorProto) GetPackage() string { + if m != nil && m.Package != nil { + return *m.Package + } + return "" +} + +func (m *FileDescriptorProto) GetDependency() []string { + if m != nil { + return m.Dependency + } + return nil +} + +func (m *FileDescriptorProto) GetPublicDependency() []int32 { + if m != nil { + return m.PublicDependency + } + return nil +} + +func (m *FileDescriptorProto) GetWeakDependency() []int32 { + if m != nil { + return m.WeakDependency + } + return nil +} + +func (m *FileDescriptorProto) GetMessageType() []*DescriptorProto { + if m != nil { + return m.MessageType + } + return nil +} + +func (m *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto { + if m != nil { + return m.EnumType + } + return nil +} + +func (m *FileDescriptorProto) GetService() []*ServiceDescriptorProto { + if m != nil { + return m.Service + } + return nil +} + +func (m *FileDescriptorProto) GetExtension() []*FieldDescriptorProto { + if m != nil { + return m.Extension + } + return nil +} + +func (m *FileDescriptorProto) GetOptions() *FileOptions { + if m != nil { + return m.Options + } + return nil +} + +func (m *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo { + if m != nil { + return m.SourceCodeInfo + } + return nil +} + +func (m *FileDescriptorProto) GetSyntax() string { + if m != nil && m.Syntax != nil { + return *m.Syntax + } + return "" +} + +// Describes a message type. +type DescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Field []*FieldDescriptorProto `protobuf:"bytes,2,rep,name=field" json:"field,omitempty"` + Extension []*FieldDescriptorProto `protobuf:"bytes,6,rep,name=extension" json:"extension,omitempty"` + NestedType []*DescriptorProto `protobuf:"bytes,3,rep,name=nested_type,json=nestedType" json:"nested_type,omitempty"` + EnumType []*EnumDescriptorProto `protobuf:"bytes,4,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` + ExtensionRange []*DescriptorProto_ExtensionRange `protobuf:"bytes,5,rep,name=extension_range,json=extensionRange" json:"extension_range,omitempty"` + OneofDecl []*OneofDescriptorProto `protobuf:"bytes,8,rep,name=oneof_decl,json=oneofDecl" json:"oneof_decl,omitempty"` + Options *MessageOptions `protobuf:"bytes,7,opt,name=options" json:"options,omitempty"` + ReservedRange []*DescriptorProto_ReservedRange `protobuf:"bytes,9,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` + // Reserved field names, which may not be used by fields in the same message. + // A given name may only be reserved once. + ReservedName []string `protobuf:"bytes,10,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DescriptorProto) Reset() { *m = DescriptorProto{} } +func (m *DescriptorProto) String() string { return proto.CompactTextString(m) } +func (*DescriptorProto) ProtoMessage() {} +func (*DescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } + +func (m *DescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *DescriptorProto) GetField() []*FieldDescriptorProto { + if m != nil { + return m.Field + } + return nil +} + +func (m *DescriptorProto) GetExtension() []*FieldDescriptorProto { + if m != nil { + return m.Extension + } + return nil +} + +func (m *DescriptorProto) GetNestedType() []*DescriptorProto { + if m != nil { + return m.NestedType + } + return nil +} + +func (m *DescriptorProto) GetEnumType() []*EnumDescriptorProto { + if m != nil { + return m.EnumType + } + return nil +} + +func (m *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange { + if m != nil { + return m.ExtensionRange + } + return nil +} + +func (m *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto { + if m != nil { + return m.OneofDecl + } + return nil +} + +func (m *DescriptorProto) GetOptions() *MessageOptions { + if m != nil { + return m.Options + } + return nil +} + +func (m *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange { + if m != nil { + return m.ReservedRange + } + return nil +} + +func (m *DescriptorProto) GetReservedName() []string { + if m != nil { + return m.ReservedName + } + return nil +} + +type DescriptorProto_ExtensionRange struct { + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` + Options *ExtensionRangeOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DescriptorProto_ExtensionRange) Reset() { *m = DescriptorProto_ExtensionRange{} } +func (m *DescriptorProto_ExtensionRange) String() string { return proto.CompactTextString(m) } +func (*DescriptorProto_ExtensionRange) ProtoMessage() {} +func (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) { + return fileDescriptor0, []int{2, 0} +} + +func (m *DescriptorProto_ExtensionRange) GetStart() int32 { + if m != nil && m.Start != nil { + return *m.Start + } + return 0 +} + +func (m *DescriptorProto_ExtensionRange) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + +func (m *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions { + if m != nil { + return m.Options + } + return nil +} + +// Range of reserved tag numbers. Reserved tag numbers may not be used by +// fields or extension ranges in the same message. Reserved ranges may +// not overlap. +type DescriptorProto_ReservedRange struct { + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DescriptorProto_ReservedRange) Reset() { *m = DescriptorProto_ReservedRange{} } +func (m *DescriptorProto_ReservedRange) String() string { return proto.CompactTextString(m) } +func (*DescriptorProto_ReservedRange) ProtoMessage() {} +func (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) { + return fileDescriptor0, []int{2, 1} +} + +func (m *DescriptorProto_ReservedRange) GetStart() int32 { + if m != nil && m.Start != nil { + return *m.Start + } + return 0 +} + +func (m *DescriptorProto_ReservedRange) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + +type ExtensionRangeOptions struct { + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ExtensionRangeOptions) Reset() { *m = ExtensionRangeOptions{} } +func (m *ExtensionRangeOptions) String() string { return proto.CompactTextString(m) } +func (*ExtensionRangeOptions) ProtoMessage() {} +func (*ExtensionRangeOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } + +var extRange_ExtensionRangeOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*ExtensionRangeOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_ExtensionRangeOptions +} + +func (m *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +// Describes a field within a message. +type FieldDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Number *int32 `protobuf:"varint,3,opt,name=number" json:"number,omitempty"` + Label *FieldDescriptorProto_Label `protobuf:"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label" json:"label,omitempty"` + // If type_name is set, this need not be set. If both this and type_name + // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + Type *FieldDescriptorProto_Type `protobuf:"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type" json:"type,omitempty"` + // For message and enum types, this is the name of the type. If the name + // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + // rules are used to find the type (i.e. first the nested types within this + // message are searched, then within the parent, on up to the root + // namespace). + TypeName *string `protobuf:"bytes,6,opt,name=type_name,json=typeName" json:"type_name,omitempty"` + // For extensions, this is the name of the type being extended. It is + // resolved in the same manner as type_name. + Extendee *string `protobuf:"bytes,2,opt,name=extendee" json:"extendee,omitempty"` + // For numeric types, contains the original text representation of the value. + // For booleans, "true" or "false". + // For strings, contains the default text contents (not escaped in any way). + // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + // TODO(kenton): Base-64 encode? + DefaultValue *string `protobuf:"bytes,7,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"` + // If set, gives the index of a oneof in the containing type's oneof_decl + // list. This field is a member of that oneof. + OneofIndex *int32 `protobuf:"varint,9,opt,name=oneof_index,json=oneofIndex" json:"oneof_index,omitempty"` + // JSON name of this field. The value is set by protocol compiler. If the + // user has set a "json_name" option on this field, that option's value + // will be used. Otherwise, it's deduced from the field's name by converting + // it to camelCase. + JsonName *string `protobuf:"bytes,10,opt,name=json_name,json=jsonName" json:"json_name,omitempty"` + Options *FieldOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FieldDescriptorProto) Reset() { *m = FieldDescriptorProto{} } +func (m *FieldDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*FieldDescriptorProto) ProtoMessage() {} +func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } + +func (m *FieldDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FieldDescriptorProto) GetNumber() int32 { + if m != nil && m.Number != nil { + return *m.Number + } + return 0 +} + +func (m *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label { + if m != nil && m.Label != nil { + return *m.Label + } + return FieldDescriptorProto_LABEL_OPTIONAL +} + +func (m *FieldDescriptorProto) GetType() FieldDescriptorProto_Type { + if m != nil && m.Type != nil { + return *m.Type + } + return FieldDescriptorProto_TYPE_DOUBLE +} + +func (m *FieldDescriptorProto) GetTypeName() string { + if m != nil && m.TypeName != nil { + return *m.TypeName + } + return "" +} + +func (m *FieldDescriptorProto) GetExtendee() string { + if m != nil && m.Extendee != nil { + return *m.Extendee + } + return "" +} + +func (m *FieldDescriptorProto) GetDefaultValue() string { + if m != nil && m.DefaultValue != nil { + return *m.DefaultValue + } + return "" +} + +func (m *FieldDescriptorProto) GetOneofIndex() int32 { + if m != nil && m.OneofIndex != nil { + return *m.OneofIndex + } + return 0 +} + +func (m *FieldDescriptorProto) GetJsonName() string { + if m != nil && m.JsonName != nil { + return *m.JsonName + } + return "" +} + +func (m *FieldDescriptorProto) GetOptions() *FieldOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes a oneof. +type OneofDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Options *OneofOptions `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OneofDescriptorProto) Reset() { *m = OneofDescriptorProto{} } +func (m *OneofDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*OneofDescriptorProto) ProtoMessage() {} +func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } + +func (m *OneofDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *OneofDescriptorProto) GetOptions() *OneofOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes an enum type. +type EnumDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value []*EnumValueDescriptorProto `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` + Options *EnumOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnumDescriptorProto) Reset() { *m = EnumDescriptorProto{} } +func (m *EnumDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*EnumDescriptorProto) ProtoMessage() {} +func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } + +func (m *EnumDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto { + if m != nil { + return m.Value + } + return nil +} + +func (m *EnumDescriptorProto) GetOptions() *EnumOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes a value within an enum. +type EnumValueDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Number *int32 `protobuf:"varint,2,opt,name=number" json:"number,omitempty"` + Options *EnumValueOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnumValueDescriptorProto) Reset() { *m = EnumValueDescriptorProto{} } +func (m *EnumValueDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*EnumValueDescriptorProto) ProtoMessage() {} +func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } + +func (m *EnumValueDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *EnumValueDescriptorProto) GetNumber() int32 { + if m != nil && m.Number != nil { + return *m.Number + } + return 0 +} + +func (m *EnumValueDescriptorProto) GetOptions() *EnumValueOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes a service. +type ServiceDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Method []*MethodDescriptorProto `protobuf:"bytes,2,rep,name=method" json:"method,omitempty"` + Options *ServiceOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ServiceDescriptorProto) Reset() { *m = ServiceDescriptorProto{} } +func (m *ServiceDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*ServiceDescriptorProto) ProtoMessage() {} +func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } + +func (m *ServiceDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto { + if m != nil { + return m.Method + } + return nil +} + +func (m *ServiceDescriptorProto) GetOptions() *ServiceOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes a method of a service. +type MethodDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + // Input and output type names. These are resolved in the same way as + // FieldDescriptorProto.type_name, but must refer to a message type. + InputType *string `protobuf:"bytes,2,opt,name=input_type,json=inputType" json:"input_type,omitempty"` + OutputType *string `protobuf:"bytes,3,opt,name=output_type,json=outputType" json:"output_type,omitempty"` + Options *MethodOptions `protobuf:"bytes,4,opt,name=options" json:"options,omitempty"` + // Identifies if client streams multiple client messages + ClientStreaming *bool `protobuf:"varint,5,opt,name=client_streaming,json=clientStreaming,def=0" json:"client_streaming,omitempty"` + // Identifies if server streams multiple server messages + ServerStreaming *bool `protobuf:"varint,6,opt,name=server_streaming,json=serverStreaming,def=0" json:"server_streaming,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MethodDescriptorProto) Reset() { *m = MethodDescriptorProto{} } +func (m *MethodDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*MethodDescriptorProto) ProtoMessage() {} +func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } + +const Default_MethodDescriptorProto_ClientStreaming bool = false +const Default_MethodDescriptorProto_ServerStreaming bool = false + +func (m *MethodDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *MethodDescriptorProto) GetInputType() string { + if m != nil && m.InputType != nil { + return *m.InputType + } + return "" +} + +func (m *MethodDescriptorProto) GetOutputType() string { + if m != nil && m.OutputType != nil { + return *m.OutputType + } + return "" +} + +func (m *MethodDescriptorProto) GetOptions() *MethodOptions { + if m != nil { + return m.Options + } + return nil +} + +func (m *MethodDescriptorProto) GetClientStreaming() bool { + if m != nil && m.ClientStreaming != nil { + return *m.ClientStreaming + } + return Default_MethodDescriptorProto_ClientStreaming +} + +func (m *MethodDescriptorProto) GetServerStreaming() bool { + if m != nil && m.ServerStreaming != nil { + return *m.ServerStreaming + } + return Default_MethodDescriptorProto_ServerStreaming +} + +type FileOptions struct { + // Sets the Java package where classes generated from this .proto will be + // placed. By default, the proto package is used, but this is often + // inappropriate because proto packages do not normally start with backwards + // domain names. + JavaPackage *string `protobuf:"bytes,1,opt,name=java_package,json=javaPackage" json:"java_package,omitempty"` + // If set, all the classes from the .proto file are wrapped in a single + // outer class with the given name. This applies to both Proto1 + // (equivalent to the old "--one_java_file" option) and Proto2 (where + // a .proto always translates to a single class, but you may want to + // explicitly choose the class name). + JavaOuterClassname *string `protobuf:"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname" json:"java_outer_classname,omitempty"` + // If set true, then the Java code generator will generate a separate .java + // file for each top-level message, enum, and service defined in the .proto + // file. Thus, these types will *not* be nested inside the outer class + // named by java_outer_classname. However, the outer class will still be + // generated to contain the file's getDescriptor() method as well as any + // top-level extensions defined in the file. + JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"` + // This option does nothing. + JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash" json:"java_generate_equals_and_hash,omitempty"` + // If set true, then the Java2 code generator will generate code that + // throws an exception whenever an attempt is made to assign a non-UTF-8 + // byte sequence to a string field. + // Message reflection will do the same. + // However, an extension field still accepts non-UTF-8 byte sequences. + // This option has no effect on when used with the lite runtime. + JavaStringCheckUtf8 *bool `protobuf:"varint,27,opt,name=java_string_check_utf8,json=javaStringCheckUtf8,def=0" json:"java_string_check_utf8,omitempty"` + OptimizeFor *FileOptions_OptimizeMode `protobuf:"varint,9,opt,name=optimize_for,json=optimizeFor,enum=google.protobuf.FileOptions_OptimizeMode,def=1" json:"optimize_for,omitempty"` + // Sets the Go package where structs generated from this .proto will be + // placed. If omitted, the Go package will be derived from the following: + // - The basename of the package import path, if provided. + // - Otherwise, the package statement in the .proto file, if present. + // - Otherwise, the basename of the .proto file, without extension. + GoPackage *string `protobuf:"bytes,11,opt,name=go_package,json=goPackage" json:"go_package,omitempty"` + // Should generic services be generated in each language? "Generic" services + // are not specific to any particular RPC system. They are generated by the + // main code generators in each language (without additional plugins). + // Generic services were the only kind of service generation supported by + // early versions of google.protobuf. + // + // Generic services are now considered deprecated in favor of using plugins + // that generate code specific to your particular RPC system. Therefore, + // these default to false. Old code which depends on generic services should + // explicitly set them to true. + CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` + JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` + PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` + PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` + // Is this file deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for everything in the file, or it will be completely ignored; in the very + // least, this is a formalization for deprecating files. + Deprecated *bool `protobuf:"varint,23,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // Enables the use of arenas for the proto messages in this file. This applies + // only to generated classes for C++. + CcEnableArenas *bool `protobuf:"varint,31,opt,name=cc_enable_arenas,json=ccEnableArenas,def=0" json:"cc_enable_arenas,omitempty"` + // Sets the objective c class prefix which is prepended to all objective c + // generated classes from this .proto. There is no default. + ObjcClassPrefix *string `protobuf:"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix" json:"objc_class_prefix,omitempty"` + // Namespace for generated classes; defaults to the package. + CsharpNamespace *string `protobuf:"bytes,37,opt,name=csharp_namespace,json=csharpNamespace" json:"csharp_namespace,omitempty"` + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + SwiftPrefix *string `protobuf:"bytes,39,opt,name=swift_prefix,json=swiftPrefix" json:"swift_prefix,omitempty"` + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + PhpClassPrefix *string `protobuf:"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix" json:"php_class_prefix,omitempty"` + // Use this option to change the namespace of php generated classes. Default + // is empty. When this option is empty, the package name will be used for + // determining the namespace. + PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FileOptions) Reset() { *m = FileOptions{} } +func (m *FileOptions) String() string { return proto.CompactTextString(m) } +func (*FileOptions) ProtoMessage() {} +func (*FileOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } + +var extRange_FileOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*FileOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_FileOptions +} + +const Default_FileOptions_JavaMultipleFiles bool = false +const Default_FileOptions_JavaStringCheckUtf8 bool = false +const Default_FileOptions_OptimizeFor FileOptions_OptimizeMode = FileOptions_SPEED +const Default_FileOptions_CcGenericServices bool = false +const Default_FileOptions_JavaGenericServices bool = false +const Default_FileOptions_PyGenericServices bool = false +const Default_FileOptions_PhpGenericServices bool = false +const Default_FileOptions_Deprecated bool = false +const Default_FileOptions_CcEnableArenas bool = false + +func (m *FileOptions) GetJavaPackage() string { + if m != nil && m.JavaPackage != nil { + return *m.JavaPackage + } + return "" +} + +func (m *FileOptions) GetJavaOuterClassname() string { + if m != nil && m.JavaOuterClassname != nil { + return *m.JavaOuterClassname + } + return "" +} + +func (m *FileOptions) GetJavaMultipleFiles() bool { + if m != nil && m.JavaMultipleFiles != nil { + return *m.JavaMultipleFiles + } + return Default_FileOptions_JavaMultipleFiles +} + +func (m *FileOptions) GetJavaGenerateEqualsAndHash() bool { + if m != nil && m.JavaGenerateEqualsAndHash != nil { + return *m.JavaGenerateEqualsAndHash + } + return false +} + +func (m *FileOptions) GetJavaStringCheckUtf8() bool { + if m != nil && m.JavaStringCheckUtf8 != nil { + return *m.JavaStringCheckUtf8 + } + return Default_FileOptions_JavaStringCheckUtf8 +} + +func (m *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode { + if m != nil && m.OptimizeFor != nil { + return *m.OptimizeFor + } + return Default_FileOptions_OptimizeFor +} + +func (m *FileOptions) GetGoPackage() string { + if m != nil && m.GoPackage != nil { + return *m.GoPackage + } + return "" +} + +func (m *FileOptions) GetCcGenericServices() bool { + if m != nil && m.CcGenericServices != nil { + return *m.CcGenericServices + } + return Default_FileOptions_CcGenericServices +} + +func (m *FileOptions) GetJavaGenericServices() bool { + if m != nil && m.JavaGenericServices != nil { + return *m.JavaGenericServices + } + return Default_FileOptions_JavaGenericServices +} + +func (m *FileOptions) GetPyGenericServices() bool { + if m != nil && m.PyGenericServices != nil { + return *m.PyGenericServices + } + return Default_FileOptions_PyGenericServices +} + +func (m *FileOptions) GetPhpGenericServices() bool { + if m != nil && m.PhpGenericServices != nil { + return *m.PhpGenericServices + } + return Default_FileOptions_PhpGenericServices +} + +func (m *FileOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_FileOptions_Deprecated +} + +func (m *FileOptions) GetCcEnableArenas() bool { + if m != nil && m.CcEnableArenas != nil { + return *m.CcEnableArenas + } + return Default_FileOptions_CcEnableArenas +} + +func (m *FileOptions) GetObjcClassPrefix() string { + if m != nil && m.ObjcClassPrefix != nil { + return *m.ObjcClassPrefix + } + return "" +} + +func (m *FileOptions) GetCsharpNamespace() string { + if m != nil && m.CsharpNamespace != nil { + return *m.CsharpNamespace + } + return "" +} + +func (m *FileOptions) GetSwiftPrefix() string { + if m != nil && m.SwiftPrefix != nil { + return *m.SwiftPrefix + } + return "" +} + +func (m *FileOptions) GetPhpClassPrefix() string { + if m != nil && m.PhpClassPrefix != nil { + return *m.PhpClassPrefix + } + return "" +} + +func (m *FileOptions) GetPhpNamespace() string { + if m != nil && m.PhpNamespace != nil { + return *m.PhpNamespace + } + return "" +} + +func (m *FileOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type MessageOptions struct { + // Set true to use the old proto1 MessageSet wire format for extensions. + // This is provided for backwards-compatibility with the MessageSet wire + // format. You should not use this for any other reason: It's less + // efficient, has fewer features, and is more complicated. + // + // The message must be defined exactly as follows: + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // Note that the message cannot have any defined fields; MessageSets only + // have extensions. + // + // All extensions of your type must be singular messages; e.g. they cannot + // be int32s, enums, or repeated messages. + // + // Because this is an option, the above two restrictions are not enforced by + // the protocol compiler. + MessageSetWireFormat *bool `protobuf:"varint,1,opt,name=message_set_wire_format,json=messageSetWireFormat,def=0" json:"message_set_wire_format,omitempty"` + // Disables the generation of the standard "descriptor()" accessor, which can + // conflict with a field of the same name. This is meant to make migration + // from proto1 easier; new code should avoid fields named "descriptor". + NoStandardDescriptorAccessor *bool `protobuf:"varint,2,opt,name=no_standard_descriptor_accessor,json=noStandardDescriptorAccessor,def=0" json:"no_standard_descriptor_accessor,omitempty"` + // Is this message deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the message, or it will be completely ignored; in the very least, + // this is a formalization for deprecating messages. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // Whether the message is an automatically generated map entry type for the + // maps field. + // + // For maps fields: + // map map_field = 1; + // The parsed descriptor looks like: + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; + // + // Implementations may choose not to generate the map_entry=true message, but + // use a native map in the target language to hold the keys and values. + // The reflection APIs in such implementions still need to work as + // if the field is a repeated message field. + // + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MessageOptions) Reset() { *m = MessageOptions{} } +func (m *MessageOptions) String() string { return proto.CompactTextString(m) } +func (*MessageOptions) ProtoMessage() {} +func (*MessageOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } + +var extRange_MessageOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*MessageOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_MessageOptions +} + +const Default_MessageOptions_MessageSetWireFormat bool = false +const Default_MessageOptions_NoStandardDescriptorAccessor bool = false +const Default_MessageOptions_Deprecated bool = false + +func (m *MessageOptions) GetMessageSetWireFormat() bool { + if m != nil && m.MessageSetWireFormat != nil { + return *m.MessageSetWireFormat + } + return Default_MessageOptions_MessageSetWireFormat +} + +func (m *MessageOptions) GetNoStandardDescriptorAccessor() bool { + if m != nil && m.NoStandardDescriptorAccessor != nil { + return *m.NoStandardDescriptorAccessor + } + return Default_MessageOptions_NoStandardDescriptorAccessor +} + +func (m *MessageOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_MessageOptions_Deprecated +} + +func (m *MessageOptions) GetMapEntry() bool { + if m != nil && m.MapEntry != nil { + return *m.MapEntry + } + return false +} + +func (m *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type FieldOptions struct { + // The ctype option instructs the C++ code generator to use a different + // representation of the field than it normally would. See the specific + // options below. This option is not yet implemented in the open source + // release -- sorry, we'll try to include it in a future version! + Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` + // The packed option can be enabled for repeated primitive fields to enable + // a more efficient representation on the wire. Rather than repeatedly + // writing the tag and type for each element, the entire array is encoded as + // a single length-delimited blob. In proto3, only explicit setting it to + // false will avoid using packed encoding. + Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` + // The jstype option determines the JavaScript type used for values of the + // field. The option is permitted only for 64 bit integral and fixed types + // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + // is represented as JavaScript string, which avoids loss of precision that + // can happen when a large value is converted to a floating point JavaScript. + // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + // use the JavaScript "number" type. The behavior of the default option + // JS_NORMAL is implementation dependent. + // + // This option is an enum to permit additional types to be added, e.g. + // goog.math.Integer. + Jstype *FieldOptions_JSType `protobuf:"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0" json:"jstype,omitempty"` + // Should this field be parsed lazily? Lazy applies only to message-type + // fields. It means that when the outer message is initially parsed, the + // inner message's contents will not be parsed but instead stored in encoded + // form. The inner message will actually be parsed when it is first accessed. + // + // This is only a hint. Implementations are free to choose whether to use + // eager or lazy parsing regardless of the value of this option. However, + // setting this option true suggests that the protocol author believes that + // using lazy parsing on this field is worth the additional bookkeeping + // overhead typically needed to implement it. + // + // This option does not affect the public interface of any generated code; + // all method signatures remain the same. Furthermore, thread-safety of the + // interface is not affected by this option; const methods remain safe to + // call from multiple threads concurrently, while non-const methods continue + // to require exclusive access. + // + // + // Note that implementations may choose not to check required fields within + // a lazy sub-message. That is, calling IsInitialized() on the outer message + // may return true even if the inner message has missing required fields. + // This is necessary because otherwise the inner message would have to be + // parsed in order to perform the check, defeating the purpose of lazy + // parsing. An implementation which chooses not to check required fields + // must be consistent about it. That is, for any particular sub-message, the + // implementation must either *always* check its required fields, or *never* + // check its required fields, regardless of whether or not the message has + // been parsed. + Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` + // Is this field deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for accessors, or it will be completely ignored; in the very least, this + // is a formalization for deprecating fields. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // For Google-internal migration only. Do not use. + Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FieldOptions) Reset() { *m = FieldOptions{} } +func (m *FieldOptions) String() string { return proto.CompactTextString(m) } +func (*FieldOptions) ProtoMessage() {} +func (*FieldOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } + +var extRange_FieldOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*FieldOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_FieldOptions +} + +const Default_FieldOptions_Ctype FieldOptions_CType = FieldOptions_STRING +const Default_FieldOptions_Jstype FieldOptions_JSType = FieldOptions_JS_NORMAL +const Default_FieldOptions_Lazy bool = false +const Default_FieldOptions_Deprecated bool = false +const Default_FieldOptions_Weak bool = false + +func (m *FieldOptions) GetCtype() FieldOptions_CType { + if m != nil && m.Ctype != nil { + return *m.Ctype + } + return Default_FieldOptions_Ctype +} + +func (m *FieldOptions) GetPacked() bool { + if m != nil && m.Packed != nil { + return *m.Packed + } + return false +} + +func (m *FieldOptions) GetJstype() FieldOptions_JSType { + if m != nil && m.Jstype != nil { + return *m.Jstype + } + return Default_FieldOptions_Jstype +} + +func (m *FieldOptions) GetLazy() bool { + if m != nil && m.Lazy != nil { + return *m.Lazy + } + return Default_FieldOptions_Lazy +} + +func (m *FieldOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_FieldOptions_Deprecated +} + +func (m *FieldOptions) GetWeak() bool { + if m != nil && m.Weak != nil { + return *m.Weak + } + return Default_FieldOptions_Weak +} + +func (m *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type OneofOptions struct { + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OneofOptions) Reset() { *m = OneofOptions{} } +func (m *OneofOptions) String() string { return proto.CompactTextString(m) } +func (*OneofOptions) ProtoMessage() {} +func (*OneofOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } + +var extRange_OneofOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*OneofOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_OneofOptions +} + +func (m *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type EnumOptions struct { + // Set this option to true to allow mapping different tag names to the same + // value. + AllowAlias *bool `protobuf:"varint,2,opt,name=allow_alias,json=allowAlias" json:"allow_alias,omitempty"` + // Is this enum deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum, or it will be completely ignored; in the very least, this + // is a formalization for deprecating enums. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnumOptions) Reset() { *m = EnumOptions{} } +func (m *EnumOptions) String() string { return proto.CompactTextString(m) } +func (*EnumOptions) ProtoMessage() {} +func (*EnumOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } + +var extRange_EnumOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*EnumOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_EnumOptions +} + +const Default_EnumOptions_Deprecated bool = false + +func (m *EnumOptions) GetAllowAlias() bool { + if m != nil && m.AllowAlias != nil { + return *m.AllowAlias + } + return false +} + +func (m *EnumOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_EnumOptions_Deprecated +} + +func (m *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type EnumValueOptions struct { + // Is this enum value deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum value, or it will be completely ignored; in the very least, + // this is a formalization for deprecating enum values. + Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnumValueOptions) Reset() { *m = EnumValueOptions{} } +func (m *EnumValueOptions) String() string { return proto.CompactTextString(m) } +func (*EnumValueOptions) ProtoMessage() {} +func (*EnumValueOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } + +var extRange_EnumValueOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*EnumValueOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_EnumValueOptions +} + +const Default_EnumValueOptions_Deprecated bool = false + +func (m *EnumValueOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_EnumValueOptions_Deprecated +} + +func (m *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type ServiceOptions struct { + // Is this service deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the service, or it will be completely ignored; in the very least, + // this is a formalization for deprecating services. + Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ServiceOptions) Reset() { *m = ServiceOptions{} } +func (m *ServiceOptions) String() string { return proto.CompactTextString(m) } +func (*ServiceOptions) ProtoMessage() {} +func (*ServiceOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } + +var extRange_ServiceOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*ServiceOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_ServiceOptions +} + +const Default_ServiceOptions_Deprecated bool = false + +func (m *ServiceOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_ServiceOptions_Deprecated +} + +func (m *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type MethodOptions struct { + // Is this method deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the method, or it will be completely ignored; in the very least, + // this is a formalization for deprecating methods. + Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MethodOptions) Reset() { *m = MethodOptions{} } +func (m *MethodOptions) String() string { return proto.CompactTextString(m) } +func (*MethodOptions) ProtoMessage() {} +func (*MethodOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } + +var extRange_MethodOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*MethodOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_MethodOptions +} + +const Default_MethodOptions_Deprecated bool = false +const Default_MethodOptions_IdempotencyLevel MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN + +func (m *MethodOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_MethodOptions_Deprecated +} + +func (m *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { + if m != nil && m.IdempotencyLevel != nil { + return *m.IdempotencyLevel + } + return Default_MethodOptions_IdempotencyLevel +} + +func (m *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +type UninterpretedOption struct { + Name []*UninterpretedOption_NamePart `protobuf:"bytes,2,rep,name=name" json:"name,omitempty"` + // The value of the uninterpreted option, in whatever type the tokenizer + // identified it as during parsing. Exactly one of these should be set. + IdentifierValue *string `protobuf:"bytes,3,opt,name=identifier_value,json=identifierValue" json:"identifier_value,omitempty"` + PositiveIntValue *uint64 `protobuf:"varint,4,opt,name=positive_int_value,json=positiveIntValue" json:"positive_int_value,omitempty"` + NegativeIntValue *int64 `protobuf:"varint,5,opt,name=negative_int_value,json=negativeIntValue" json:"negative_int_value,omitempty"` + DoubleValue *float64 `protobuf:"fixed64,6,opt,name=double_value,json=doubleValue" json:"double_value,omitempty"` + StringValue []byte `protobuf:"bytes,7,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` + AggregateValue *string `protobuf:"bytes,8,opt,name=aggregate_value,json=aggregateValue" json:"aggregate_value,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *UninterpretedOption) Reset() { *m = UninterpretedOption{} } +func (m *UninterpretedOption) String() string { return proto.CompactTextString(m) } +func (*UninterpretedOption) ProtoMessage() {} +func (*UninterpretedOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } + +func (m *UninterpretedOption) GetName() []*UninterpretedOption_NamePart { + if m != nil { + return m.Name + } + return nil +} + +func (m *UninterpretedOption) GetIdentifierValue() string { + if m != nil && m.IdentifierValue != nil { + return *m.IdentifierValue + } + return "" +} + +func (m *UninterpretedOption) GetPositiveIntValue() uint64 { + if m != nil && m.PositiveIntValue != nil { + return *m.PositiveIntValue + } + return 0 +} + +func (m *UninterpretedOption) GetNegativeIntValue() int64 { + if m != nil && m.NegativeIntValue != nil { + return *m.NegativeIntValue + } + return 0 +} + +func (m *UninterpretedOption) GetDoubleValue() float64 { + if m != nil && m.DoubleValue != nil { + return *m.DoubleValue + } + return 0 +} + +func (m *UninterpretedOption) GetStringValue() []byte { + if m != nil { + return m.StringValue + } + return nil +} + +func (m *UninterpretedOption) GetAggregateValue() string { + if m != nil && m.AggregateValue != nil { + return *m.AggregateValue + } + return "" +} + +// The name of the uninterpreted option. Each string represents a segment in +// a dot-separated name. is_extension is true iff a segment represents an +// extension (denoted with parentheses in options specs in .proto files). +// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents +// "foo.(bar.baz).qux". +type UninterpretedOption_NamePart struct { + NamePart *string `protobuf:"bytes,1,req,name=name_part,json=namePart" json:"name_part,omitempty"` + IsExtension *bool `protobuf:"varint,2,req,name=is_extension,json=isExtension" json:"is_extension,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *UninterpretedOption_NamePart) Reset() { *m = UninterpretedOption_NamePart{} } +func (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) } +func (*UninterpretedOption_NamePart) ProtoMessage() {} +func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) { + return fileDescriptor0, []int{18, 0} +} + +func (m *UninterpretedOption_NamePart) GetNamePart() string { + if m != nil && m.NamePart != nil { + return *m.NamePart + } + return "" +} + +func (m *UninterpretedOption_NamePart) GetIsExtension() bool { + if m != nil && m.IsExtension != nil { + return *m.IsExtension + } + return false +} + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +type SourceCodeInfo struct { + // A Location identifies a piece of source code in a .proto file which + // corresponds to a particular definition. This information is intended + // to be useful to IDEs, code indexers, documentation generators, and similar + // tools. + // + // For example, say we have a file like: + // message Foo { + // optional string foo = 1; + // } + // Let's look at just the field definition: + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // We have the following locations: + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // Notes: + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendent. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. + Location []*SourceCodeInfo_Location `protobuf:"bytes,1,rep,name=location" json:"location,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *SourceCodeInfo) Reset() { *m = SourceCodeInfo{} } +func (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) } +func (*SourceCodeInfo) ProtoMessage() {} +func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } + +func (m *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { + if m != nil { + return m.Location + } + return nil +} + +type SourceCodeInfo_Location struct { + // Identifies which part of the FileDescriptorProto was defined at this + // location. + // + // Each element is a field number or an index. They form a path from + // the root FileDescriptorProto to the place where the definition. For + // example, this path: + // [ 4, 3, 2, 7, 1 ] + // refers to: + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // This is because FileDescriptorProto.message_type has field number 4: + // repeated DescriptorProto message_type = 4; + // and DescriptorProto.field has field number 2: + // repeated FieldDescriptorProto field = 2; + // and FieldDescriptorProto.name has field number 1: + // optional string name = 1; + // + // Thus, the above path gives the location of a field name. If we removed + // the last element: + // [ 4, 3, 2, 7 ] + // this path refers to the whole field declaration (from the beginning + // of the label to the terminating semicolon). + Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` + // Always has exactly three or four elements: start line, start column, + // end line (optional, otherwise assumed same as start line), end column. + // These are packed into a single field for efficiency. Note that line + // and column numbers are zero-based -- typically you will want to add + // 1 to each before displaying to a user. + Span []int32 `protobuf:"varint,2,rep,packed,name=span" json:"span,omitempty"` + // If this SourceCodeInfo represents a complete declaration, these are any + // comments appearing before and after the declaration which appear to be + // attached to the declaration. + // + // A series of line comments appearing on consecutive lines, with no other + // tokens appearing on those lines, will be treated as a single comment. + // + // leading_detached_comments will keep paragraphs of comments that appear + // before (but not connected to) the current element. Each paragraph, + // separated by empty lines, will be one comment element in the repeated + // field. + // + // Only the comment content is provided; comment markers (e.g. //) are + // stripped out. For block comments, leading whitespace and an asterisk + // will be stripped from the beginning of each line other than the first. + // Newlines are included in the output. + // + // Examples: + // + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; + // + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. + // + // // Comment attached to qux. + // // + // // Another line attached to qux. + // optional double qux = 4; + // + // // Detached comment for corge. This is not leading or trailing comments + // // to qux or corge because there are blank lines separating it from + // // both. + // + // // Detached comment for corge paragraph 2. + // + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; + // + // // ignored detached comments. + LeadingComments *string `protobuf:"bytes,3,opt,name=leading_comments,json=leadingComments" json:"leading_comments,omitempty"` + TrailingComments *string `protobuf:"bytes,4,opt,name=trailing_comments,json=trailingComments" json:"trailing_comments,omitempty"` + LeadingDetachedComments []string `protobuf:"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments" json:"leading_detached_comments,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *SourceCodeInfo_Location) Reset() { *m = SourceCodeInfo_Location{} } +func (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) } +func (*SourceCodeInfo_Location) ProtoMessage() {} +func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} } + +func (m *SourceCodeInfo_Location) GetPath() []int32 { + if m != nil { + return m.Path + } + return nil +} + +func (m *SourceCodeInfo_Location) GetSpan() []int32 { + if m != nil { + return m.Span + } + return nil +} + +func (m *SourceCodeInfo_Location) GetLeadingComments() string { + if m != nil && m.LeadingComments != nil { + return *m.LeadingComments + } + return "" +} + +func (m *SourceCodeInfo_Location) GetTrailingComments() string { + if m != nil && m.TrailingComments != nil { + return *m.TrailingComments + } + return "" +} + +func (m *SourceCodeInfo_Location) GetLeadingDetachedComments() []string { + if m != nil { + return m.LeadingDetachedComments + } + return nil +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +type GeneratedCodeInfo struct { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + Annotation []*GeneratedCodeInfo_Annotation `protobuf:"bytes,1,rep,name=annotation" json:"annotation,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GeneratedCodeInfo) Reset() { *m = GeneratedCodeInfo{} } +func (m *GeneratedCodeInfo) String() string { return proto.CompactTextString(m) } +func (*GeneratedCodeInfo) ProtoMessage() {} +func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } + +func (m *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { + if m != nil { + return m.Annotation + } + return nil +} + +type GeneratedCodeInfo_Annotation struct { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` + // Identifies the filesystem path to the original source .proto. + SourceFile *string `protobuf:"bytes,2,opt,name=source_file,json=sourceFile" json:"source_file,omitempty"` + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + Begin *int32 `protobuf:"varint,3,opt,name=begin" json:"begin,omitempty"` + // Identifies the ending offset in bytes in the generated code that + // relates to the identified offset. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GeneratedCodeInfo_Annotation) Reset() { *m = GeneratedCodeInfo_Annotation{} } +func (m *GeneratedCodeInfo_Annotation) String() string { return proto.CompactTextString(m) } +func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} +func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { + return fileDescriptor0, []int{20, 0} +} + +func (m *GeneratedCodeInfo_Annotation) GetPath() []int32 { + if m != nil { + return m.Path + } + return nil +} + +func (m *GeneratedCodeInfo_Annotation) GetSourceFile() string { + if m != nil && m.SourceFile != nil { + return *m.SourceFile + } + return "" +} + +func (m *GeneratedCodeInfo_Annotation) GetBegin() int32 { + if m != nil && m.Begin != nil { + return *m.Begin + } + return 0 +} + +func (m *GeneratedCodeInfo_Annotation) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + +func init() { + proto.RegisterType((*FileDescriptorSet)(nil), "google.protobuf.FileDescriptorSet") + proto.RegisterType((*FileDescriptorProto)(nil), "google.protobuf.FileDescriptorProto") + proto.RegisterType((*DescriptorProto)(nil), "google.protobuf.DescriptorProto") + proto.RegisterType((*DescriptorProto_ExtensionRange)(nil), "google.protobuf.DescriptorProto.ExtensionRange") + proto.RegisterType((*DescriptorProto_ReservedRange)(nil), "google.protobuf.DescriptorProto.ReservedRange") + proto.RegisterType((*ExtensionRangeOptions)(nil), "google.protobuf.ExtensionRangeOptions") + proto.RegisterType((*FieldDescriptorProto)(nil), "google.protobuf.FieldDescriptorProto") + proto.RegisterType((*OneofDescriptorProto)(nil), "google.protobuf.OneofDescriptorProto") + proto.RegisterType((*EnumDescriptorProto)(nil), "google.protobuf.EnumDescriptorProto") + proto.RegisterType((*EnumValueDescriptorProto)(nil), "google.protobuf.EnumValueDescriptorProto") + proto.RegisterType((*ServiceDescriptorProto)(nil), "google.protobuf.ServiceDescriptorProto") + proto.RegisterType((*MethodDescriptorProto)(nil), "google.protobuf.MethodDescriptorProto") + proto.RegisterType((*FileOptions)(nil), "google.protobuf.FileOptions") + proto.RegisterType((*MessageOptions)(nil), "google.protobuf.MessageOptions") + proto.RegisterType((*FieldOptions)(nil), "google.protobuf.FieldOptions") + proto.RegisterType((*OneofOptions)(nil), "google.protobuf.OneofOptions") + proto.RegisterType((*EnumOptions)(nil), "google.protobuf.EnumOptions") + proto.RegisterType((*EnumValueOptions)(nil), "google.protobuf.EnumValueOptions") + proto.RegisterType((*ServiceOptions)(nil), "google.protobuf.ServiceOptions") + proto.RegisterType((*MethodOptions)(nil), "google.protobuf.MethodOptions") + proto.RegisterType((*UninterpretedOption)(nil), "google.protobuf.UninterpretedOption") + proto.RegisterType((*UninterpretedOption_NamePart)(nil), "google.protobuf.UninterpretedOption.NamePart") + proto.RegisterType((*SourceCodeInfo)(nil), "google.protobuf.SourceCodeInfo") + proto.RegisterType((*SourceCodeInfo_Location)(nil), "google.protobuf.SourceCodeInfo.Location") + proto.RegisterType((*GeneratedCodeInfo)(nil), "google.protobuf.GeneratedCodeInfo") + proto.RegisterType((*GeneratedCodeInfo_Annotation)(nil), "google.protobuf.GeneratedCodeInfo.Annotation") + proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Type", FieldDescriptorProto_Type_name, FieldDescriptorProto_Type_value) + proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Label", FieldDescriptorProto_Label_name, FieldDescriptorProto_Label_value) + proto.RegisterEnum("google.protobuf.FileOptions_OptimizeMode", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value) + proto.RegisterEnum("google.protobuf.FieldOptions_CType", FieldOptions_CType_name, FieldOptions_CType_value) + proto.RegisterEnum("google.protobuf.FieldOptions_JSType", FieldOptions_JSType_name, FieldOptions_JSType_value) + proto.RegisterEnum("google.protobuf.MethodOptions_IdempotencyLevel", MethodOptions_IdempotencyLevel_name, MethodOptions_IdempotencyLevel_value) +} + +func init() { proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 2519 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xdd, 0x6e, 0x1b, 0xc7, + 0x15, 0x0e, 0x7f, 0x45, 0x1e, 0x52, 0xd4, 0x68, 0xa4, 0xd8, 0x6b, 0xe5, 0xc7, 0x32, 0xf3, 0x63, + 0xd9, 0x69, 0xa8, 0x40, 0xb1, 0x1d, 0x47, 0x29, 0xd2, 0x52, 0xe4, 0x5a, 0xa1, 0x4a, 0x91, 0xec, + 0x92, 0x6a, 0x7e, 0x6e, 0x16, 0xa3, 0xdd, 0x21, 0xb9, 0xf6, 0x72, 0x77, 0xb3, 0xbb, 0xb4, 0xad, + 0xa0, 0x17, 0x06, 0x7a, 0x55, 0xa0, 0x0f, 0x50, 0x14, 0x45, 0x2f, 0x72, 0x13, 0xa0, 0x0f, 0x50, + 0x20, 0x77, 0x7d, 0x82, 0x02, 0x79, 0x83, 0xa2, 0x28, 0xd0, 0x3e, 0x46, 0x31, 0x33, 0xbb, 0xcb, + 0x5d, 0xfe, 0xc4, 0x6a, 0x80, 0x38, 0x57, 0xe4, 0x7c, 0xe7, 0x3b, 0x67, 0xce, 0x9c, 0x39, 0x33, + 0x73, 0x66, 0x16, 0x76, 0x47, 0xb6, 0x3d, 0x32, 0xe9, 0xbe, 0xe3, 0xda, 0xbe, 0x7d, 0x3e, 0x1d, + 0xee, 0xeb, 0xd4, 0xd3, 0x5c, 0xc3, 0xf1, 0x6d, 0xb7, 0xc6, 0x31, 0xbc, 0x21, 0x18, 0xb5, 0x90, + 0x51, 0x3d, 0x85, 0xcd, 0x07, 0x86, 0x49, 0x9b, 0x11, 0xb1, 0x4f, 0x7d, 0x7c, 0x1f, 0xb2, 0x43, + 0xc3, 0xa4, 0x52, 0x6a, 0x37, 0xb3, 0x57, 0x3a, 0x78, 0xb3, 0x36, 0xa7, 0x54, 0x4b, 0x6a, 0xf4, + 0x18, 0xac, 0x70, 0x8d, 0xea, 0xbf, 0xb3, 0xb0, 0xb5, 0x44, 0x8a, 0x31, 0x64, 0x2d, 0x32, 0x61, + 0x16, 0x53, 0x7b, 0x45, 0x85, 0xff, 0xc7, 0x12, 0xac, 0x39, 0x44, 0x7b, 0x44, 0x46, 0x54, 0x4a, + 0x73, 0x38, 0x6c, 0xe2, 0xd7, 0x01, 0x74, 0xea, 0x50, 0x4b, 0xa7, 0x96, 0x76, 0x21, 0x65, 0x76, + 0x33, 0x7b, 0x45, 0x25, 0x86, 0xe0, 0x77, 0x60, 0xd3, 0x99, 0x9e, 0x9b, 0x86, 0xa6, 0xc6, 0x68, + 0xb0, 0x9b, 0xd9, 0xcb, 0x29, 0x48, 0x08, 0x9a, 0x33, 0xf2, 0x4d, 0xd8, 0x78, 0x42, 0xc9, 0xa3, + 0x38, 0xb5, 0xc4, 0xa9, 0x15, 0x06, 0xc7, 0x88, 0x0d, 0x28, 0x4f, 0xa8, 0xe7, 0x91, 0x11, 0x55, + 0xfd, 0x0b, 0x87, 0x4a, 0x59, 0x3e, 0xfa, 0xdd, 0x85, 0xd1, 0xcf, 0x8f, 0xbc, 0x14, 0x68, 0x0d, + 0x2e, 0x1c, 0x8a, 0xeb, 0x50, 0xa4, 0xd6, 0x74, 0x22, 0x2c, 0xe4, 0x56, 0xc4, 0x4f, 0xb6, 0xa6, + 0x93, 0x79, 0x2b, 0x05, 0xa6, 0x16, 0x98, 0x58, 0xf3, 0xa8, 0xfb, 0xd8, 0xd0, 0xa8, 0x94, 0xe7, + 0x06, 0x6e, 0x2e, 0x18, 0xe8, 0x0b, 0xf9, 0xbc, 0x8d, 0x50, 0x0f, 0x37, 0xa0, 0x48, 0x9f, 0xfa, + 0xd4, 0xf2, 0x0c, 0xdb, 0x92, 0xd6, 0xb8, 0x91, 0xb7, 0x96, 0xcc, 0x22, 0x35, 0xf5, 0x79, 0x13, + 0x33, 0x3d, 0x7c, 0x0f, 0xd6, 0x6c, 0xc7, 0x37, 0x6c, 0xcb, 0x93, 0x0a, 0xbb, 0xa9, 0xbd, 0xd2, + 0xc1, 0xab, 0x4b, 0x13, 0xa1, 0x2b, 0x38, 0x4a, 0x48, 0xc6, 0x2d, 0x40, 0x9e, 0x3d, 0x75, 0x35, + 0xaa, 0x6a, 0xb6, 0x4e, 0x55, 0xc3, 0x1a, 0xda, 0x52, 0x91, 0x1b, 0xb8, 0xbe, 0x38, 0x10, 0x4e, + 0x6c, 0xd8, 0x3a, 0x6d, 0x59, 0x43, 0x5b, 0xa9, 0x78, 0x89, 0x36, 0xbe, 0x02, 0x79, 0xef, 0xc2, + 0xf2, 0xc9, 0x53, 0xa9, 0xcc, 0x33, 0x24, 0x68, 0x55, 0xbf, 0xcd, 0xc3, 0xc6, 0x65, 0x52, 0xec, + 0x23, 0xc8, 0x0d, 0xd9, 0x28, 0xa5, 0xf4, 0xff, 0x13, 0x03, 0xa1, 0x93, 0x0c, 0x62, 0xfe, 0x07, + 0x06, 0xb1, 0x0e, 0x25, 0x8b, 0x7a, 0x3e, 0xd5, 0x45, 0x46, 0x64, 0x2e, 0x99, 0x53, 0x20, 0x94, + 0x16, 0x53, 0x2a, 0xfb, 0x83, 0x52, 0xea, 0x33, 0xd8, 0x88, 0x5c, 0x52, 0x5d, 0x62, 0x8d, 0xc2, + 0xdc, 0xdc, 0x7f, 0x9e, 0x27, 0x35, 0x39, 0xd4, 0x53, 0x98, 0x9a, 0x52, 0xa1, 0x89, 0x36, 0x6e, + 0x02, 0xd8, 0x16, 0xb5, 0x87, 0xaa, 0x4e, 0x35, 0x53, 0x2a, 0xac, 0x88, 0x52, 0x97, 0x51, 0x16, + 0xa2, 0x64, 0x0b, 0x54, 0x33, 0xf1, 0x87, 0xb3, 0x54, 0x5b, 0x5b, 0x91, 0x29, 0xa7, 0x62, 0x91, + 0x2d, 0x64, 0xdb, 0x19, 0x54, 0x5c, 0xca, 0xf2, 0x9e, 0xea, 0xc1, 0xc8, 0x8a, 0xdc, 0x89, 0xda, + 0x73, 0x47, 0xa6, 0x04, 0x6a, 0x62, 0x60, 0xeb, 0x6e, 0xbc, 0x89, 0xdf, 0x80, 0x08, 0x50, 0x79, + 0x5a, 0x01, 0xdf, 0x85, 0xca, 0x21, 0xd8, 0x21, 0x13, 0xba, 0xf3, 0x15, 0x54, 0x92, 0xe1, 0xc1, + 0xdb, 0x90, 0xf3, 0x7c, 0xe2, 0xfa, 0x3c, 0x0b, 0x73, 0x8a, 0x68, 0x60, 0x04, 0x19, 0x6a, 0xe9, + 0x7c, 0x97, 0xcb, 0x29, 0xec, 0x2f, 0xfe, 0xe5, 0x6c, 0xc0, 0x19, 0x3e, 0xe0, 0xb7, 0x17, 0x67, + 0x34, 0x61, 0x79, 0x7e, 0xdc, 0x3b, 0x1f, 0xc0, 0x7a, 0x62, 0x00, 0x97, 0xed, 0xba, 0xfa, 0x5b, + 0x78, 0x79, 0xa9, 0x69, 0xfc, 0x19, 0x6c, 0x4f, 0x2d, 0xc3, 0xf2, 0xa9, 0xeb, 0xb8, 0x94, 0x65, + 0xac, 0xe8, 0x4a, 0xfa, 0xcf, 0xda, 0x8a, 0x9c, 0x3b, 0x8b, 0xb3, 0x85, 0x15, 0x65, 0x6b, 0xba, + 0x08, 0xde, 0x2e, 0x16, 0xfe, 0xbb, 0x86, 0x9e, 0x3d, 0x7b, 0xf6, 0x2c, 0x5d, 0xfd, 0x63, 0x1e, + 0xb6, 0x97, 0xad, 0x99, 0xa5, 0xcb, 0xf7, 0x0a, 0xe4, 0xad, 0xe9, 0xe4, 0x9c, 0xba, 0x3c, 0x48, + 0x39, 0x25, 0x68, 0xe1, 0x3a, 0xe4, 0x4c, 0x72, 0x4e, 0x4d, 0x29, 0xbb, 0x9b, 0xda, 0xab, 0x1c, + 0xbc, 0x73, 0xa9, 0x55, 0x59, 0x6b, 0x33, 0x15, 0x45, 0x68, 0xe2, 0x8f, 0x21, 0x1b, 0x6c, 0xd1, + 0xcc, 0xc2, 0xed, 0xcb, 0x59, 0x60, 0x6b, 0x49, 0xe1, 0x7a, 0xf8, 0x15, 0x28, 0xb2, 0x5f, 0x91, + 0x1b, 0x79, 0xee, 0x73, 0x81, 0x01, 0x2c, 0x2f, 0xf0, 0x0e, 0x14, 0xf8, 0x32, 0xd1, 0x69, 0x78, + 0xb4, 0x45, 0x6d, 0x96, 0x58, 0x3a, 0x1d, 0x92, 0xa9, 0xe9, 0xab, 0x8f, 0x89, 0x39, 0xa5, 0x3c, + 0xe1, 0x8b, 0x4a, 0x39, 0x00, 0x7f, 0xc3, 0x30, 0x7c, 0x1d, 0x4a, 0x62, 0x55, 0x19, 0x96, 0x4e, + 0x9f, 0xf2, 0xdd, 0x33, 0xa7, 0x88, 0x85, 0xd6, 0x62, 0x08, 0xeb, 0xfe, 0xa1, 0x67, 0x5b, 0x61, + 0x6a, 0xf2, 0x2e, 0x18, 0xc0, 0xbb, 0xff, 0x60, 0x7e, 0xe3, 0x7e, 0x6d, 0xf9, 0xf0, 0xe6, 0x73, + 0xaa, 0xfa, 0xb7, 0x34, 0x64, 0xf9, 0x7e, 0xb1, 0x01, 0xa5, 0xc1, 0xe7, 0x3d, 0x59, 0x6d, 0x76, + 0xcf, 0x8e, 0xda, 0x32, 0x4a, 0xe1, 0x0a, 0x00, 0x07, 0x1e, 0xb4, 0xbb, 0xf5, 0x01, 0x4a, 0x47, + 0xed, 0x56, 0x67, 0x70, 0xef, 0x0e, 0xca, 0x44, 0x0a, 0x67, 0x02, 0xc8, 0xc6, 0x09, 0xef, 0x1f, + 0xa0, 0x1c, 0x46, 0x50, 0x16, 0x06, 0x5a, 0x9f, 0xc9, 0xcd, 0x7b, 0x77, 0x50, 0x3e, 0x89, 0xbc, + 0x7f, 0x80, 0xd6, 0xf0, 0x3a, 0x14, 0x39, 0x72, 0xd4, 0xed, 0xb6, 0x51, 0x21, 0xb2, 0xd9, 0x1f, + 0x28, 0xad, 0xce, 0x31, 0x2a, 0x46, 0x36, 0x8f, 0x95, 0xee, 0x59, 0x0f, 0x41, 0x64, 0xe1, 0x54, + 0xee, 0xf7, 0xeb, 0xc7, 0x32, 0x2a, 0x45, 0x8c, 0xa3, 0xcf, 0x07, 0x72, 0x1f, 0x95, 0x13, 0x6e, + 0xbd, 0x7f, 0x80, 0xd6, 0xa3, 0x2e, 0xe4, 0xce, 0xd9, 0x29, 0xaa, 0xe0, 0x4d, 0x58, 0x17, 0x5d, + 0x84, 0x4e, 0x6c, 0xcc, 0x41, 0xf7, 0xee, 0x20, 0x34, 0x73, 0x44, 0x58, 0xd9, 0x4c, 0x00, 0xf7, + 0xee, 0x20, 0x5c, 0x6d, 0x40, 0x8e, 0x67, 0x17, 0xc6, 0x50, 0x69, 0xd7, 0x8f, 0xe4, 0xb6, 0xda, + 0xed, 0x0d, 0x5a, 0xdd, 0x4e, 0xbd, 0x8d, 0x52, 0x33, 0x4c, 0x91, 0x7f, 0x7d, 0xd6, 0x52, 0xe4, + 0x26, 0x4a, 0xc7, 0xb1, 0x9e, 0x5c, 0x1f, 0xc8, 0x4d, 0x94, 0xa9, 0x6a, 0xb0, 0xbd, 0x6c, 0x9f, + 0x5c, 0xba, 0x32, 0x62, 0x53, 0x9c, 0x5e, 0x31, 0xc5, 0xdc, 0xd6, 0xc2, 0x14, 0x7f, 0x9d, 0x82, + 0xad, 0x25, 0x67, 0xc5, 0xd2, 0x4e, 0x7e, 0x01, 0x39, 0x91, 0xa2, 0xe2, 0xf4, 0xbc, 0xb5, 0xf4, + 0xd0, 0xe1, 0x09, 0xbb, 0x70, 0x82, 0x72, 0xbd, 0x78, 0x05, 0x91, 0x59, 0x51, 0x41, 0x30, 0x13, + 0x0b, 0x4e, 0xfe, 0x2e, 0x05, 0xd2, 0x2a, 0xdb, 0xcf, 0xd9, 0x28, 0xd2, 0x89, 0x8d, 0xe2, 0xa3, + 0x79, 0x07, 0x6e, 0xac, 0x1e, 0xc3, 0x82, 0x17, 0xdf, 0xa4, 0xe0, 0xca, 0xf2, 0x42, 0x6b, 0xa9, + 0x0f, 0x1f, 0x43, 0x7e, 0x42, 0xfd, 0xb1, 0x1d, 0x16, 0x1b, 0x6f, 0x2f, 0x39, 0xc2, 0x98, 0x78, + 0x3e, 0x56, 0x81, 0x56, 0xfc, 0x0c, 0xcc, 0xac, 0xaa, 0x96, 0x84, 0x37, 0x0b, 0x9e, 0xfe, 0x3e, + 0x0d, 0x2f, 0x2f, 0x35, 0xbe, 0xd4, 0xd1, 0xd7, 0x00, 0x0c, 0xcb, 0x99, 0xfa, 0xa2, 0xa0, 0x10, + 0xfb, 0x53, 0x91, 0x23, 0x7c, 0xed, 0xb3, 0xbd, 0x67, 0xea, 0x47, 0xf2, 0x0c, 0x97, 0x83, 0x80, + 0x38, 0xe1, 0xfe, 0xcc, 0xd1, 0x2c, 0x77, 0xf4, 0xf5, 0x15, 0x23, 0x5d, 0x38, 0xab, 0xdf, 0x03, + 0xa4, 0x99, 0x06, 0xb5, 0x7c, 0xd5, 0xf3, 0x5d, 0x4a, 0x26, 0x86, 0x35, 0xe2, 0x1b, 0x70, 0xe1, + 0x30, 0x37, 0x24, 0xa6, 0x47, 0x95, 0x0d, 0x21, 0xee, 0x87, 0x52, 0xa6, 0xc1, 0xcf, 0x38, 0x37, + 0xa6, 0x91, 0x4f, 0x68, 0x08, 0x71, 0xa4, 0x51, 0xfd, 0xb6, 0x00, 0xa5, 0x58, 0x59, 0x8a, 0x6f, + 0x40, 0xf9, 0x21, 0x79, 0x4c, 0xd4, 0xf0, 0xaa, 0x21, 0x22, 0x51, 0x62, 0x58, 0x2f, 0xb8, 0x6e, + 0xbc, 0x07, 0xdb, 0x9c, 0x62, 0x4f, 0x7d, 0xea, 0xaa, 0x9a, 0x49, 0x3c, 0x8f, 0x07, 0xad, 0xc0, + 0xa9, 0x98, 0xc9, 0xba, 0x4c, 0xd4, 0x08, 0x25, 0xf8, 0x2e, 0x6c, 0x71, 0x8d, 0xc9, 0xd4, 0xf4, + 0x0d, 0xc7, 0xa4, 0x2a, 0xbb, 0xfc, 0x78, 0x7c, 0x23, 0x8e, 0x3c, 0xdb, 0x64, 0x8c, 0xd3, 0x80, + 0xc0, 0x3c, 0xf2, 0x70, 0x13, 0x5e, 0xe3, 0x6a, 0x23, 0x6a, 0x51, 0x97, 0xf8, 0x54, 0xa5, 0x5f, + 0x4e, 0x89, 0xe9, 0xa9, 0xc4, 0xd2, 0xd5, 0x31, 0xf1, 0xc6, 0xd2, 0x36, 0x33, 0x70, 0x94, 0x96, + 0x52, 0xca, 0x35, 0x46, 0x3c, 0x0e, 0x78, 0x32, 0xa7, 0xd5, 0x2d, 0xfd, 0x13, 0xe2, 0x8d, 0xf1, + 0x21, 0x5c, 0xe1, 0x56, 0x3c, 0xdf, 0x35, 0xac, 0x91, 0xaa, 0x8d, 0xa9, 0xf6, 0x48, 0x9d, 0xfa, + 0xc3, 0xfb, 0xd2, 0x2b, 0xf1, 0xfe, 0xb9, 0x87, 0x7d, 0xce, 0x69, 0x30, 0xca, 0x99, 0x3f, 0xbc, + 0x8f, 0xfb, 0x50, 0x66, 0x93, 0x31, 0x31, 0xbe, 0xa2, 0xea, 0xd0, 0x76, 0xf9, 0xc9, 0x52, 0x59, + 0xb2, 0xb2, 0x63, 0x11, 0xac, 0x75, 0x03, 0x85, 0x53, 0x5b, 0xa7, 0x87, 0xb9, 0x7e, 0x4f, 0x96, + 0x9b, 0x4a, 0x29, 0xb4, 0xf2, 0xc0, 0x76, 0x59, 0x42, 0x8d, 0xec, 0x28, 0xc0, 0x25, 0x91, 0x50, + 0x23, 0x3b, 0x0c, 0xef, 0x5d, 0xd8, 0xd2, 0x34, 0x31, 0x66, 0x43, 0x53, 0x83, 0x2b, 0x8a, 0x27, + 0xa1, 0x44, 0xb0, 0x34, 0xed, 0x58, 0x10, 0x82, 0x1c, 0xf7, 0xf0, 0x87, 0xf0, 0xf2, 0x2c, 0x58, + 0x71, 0xc5, 0xcd, 0x85, 0x51, 0xce, 0xab, 0xde, 0x85, 0x2d, 0xe7, 0x62, 0x51, 0x11, 0x27, 0x7a, + 0x74, 0x2e, 0xe6, 0xd5, 0x3e, 0x80, 0x6d, 0x67, 0xec, 0x2c, 0xea, 0xdd, 0x8e, 0xeb, 0x61, 0x67, + 0xec, 0xcc, 0x2b, 0xbe, 0xc5, 0xef, 0xab, 0x2e, 0xd5, 0x88, 0x4f, 0x75, 0xe9, 0x6a, 0x9c, 0x1e, + 0x13, 0xe0, 0x7d, 0x40, 0x9a, 0xa6, 0x52, 0x8b, 0x9c, 0x9b, 0x54, 0x25, 0x2e, 0xb5, 0x88, 0x27, + 0x5d, 0x8f, 0x93, 0x2b, 0x9a, 0x26, 0x73, 0x69, 0x9d, 0x0b, 0xf1, 0x6d, 0xd8, 0xb4, 0xcf, 0x1f, + 0x6a, 0x22, 0x25, 0x55, 0xc7, 0xa5, 0x43, 0xe3, 0xa9, 0xf4, 0x26, 0x8f, 0xef, 0x06, 0x13, 0xf0, + 0x84, 0xec, 0x71, 0x18, 0xdf, 0x02, 0xa4, 0x79, 0x63, 0xe2, 0x3a, 0xbc, 0x26, 0xf0, 0x1c, 0xa2, + 0x51, 0xe9, 0x2d, 0x41, 0x15, 0x78, 0x27, 0x84, 0xd9, 0x92, 0xf0, 0x9e, 0x18, 0x43, 0x3f, 0xb4, + 0x78, 0x53, 0x2c, 0x09, 0x8e, 0x05, 0xd6, 0xf6, 0x00, 0xb1, 0x50, 0x24, 0x3a, 0xde, 0xe3, 0xb4, + 0x8a, 0x33, 0x76, 0xe2, 0xfd, 0xbe, 0x01, 0xeb, 0x8c, 0x39, 0xeb, 0xf4, 0x96, 0xa8, 0x67, 0x9c, + 0x71, 0xac, 0xc7, 0x1f, 0xad, 0xb4, 0xac, 0x1e, 0x42, 0x39, 0x9e, 0x9f, 0xb8, 0x08, 0x22, 0x43, + 0x51, 0x8a, 0x9d, 0xf5, 0x8d, 0x6e, 0x93, 0x9d, 0xd2, 0x5f, 0xc8, 0x28, 0xcd, 0xaa, 0x85, 0x76, + 0x6b, 0x20, 0xab, 0xca, 0x59, 0x67, 0xd0, 0x3a, 0x95, 0x51, 0x26, 0x56, 0x96, 0x9e, 0x64, 0x0b, + 0x6f, 0xa3, 0x9b, 0xd5, 0xef, 0xd2, 0x50, 0x49, 0xde, 0x33, 0xf0, 0xcf, 0xe1, 0x6a, 0xf8, 0x28, + 0xe0, 0x51, 0x5f, 0x7d, 0x62, 0xb8, 0x7c, 0xe1, 0x4c, 0x88, 0xa8, 0xb3, 0xa3, 0xa9, 0xdb, 0x0e, + 0x58, 0x7d, 0xea, 0x7f, 0x6a, 0xb8, 0x6c, 0x59, 0x4c, 0x88, 0x8f, 0xdb, 0x70, 0xdd, 0xb2, 0x55, + 0xcf, 0x27, 0x96, 0x4e, 0x5c, 0x5d, 0x9d, 0x3d, 0xc7, 0xa8, 0x44, 0xd3, 0xa8, 0xe7, 0xd9, 0xe2, + 0xc0, 0x8a, 0xac, 0xbc, 0x6a, 0xd9, 0xfd, 0x80, 0x3c, 0xdb, 0xc9, 0xeb, 0x01, 0x75, 0x2e, 0xcd, + 0x32, 0xab, 0xd2, 0xec, 0x15, 0x28, 0x4e, 0x88, 0xa3, 0x52, 0xcb, 0x77, 0x2f, 0x78, 0x75, 0x59, + 0x50, 0x0a, 0x13, 0xe2, 0xc8, 0xac, 0xfd, 0x42, 0x8a, 0xfc, 0x93, 0x6c, 0xa1, 0x80, 0x8a, 0x27, + 0xd9, 0x42, 0x11, 0x41, 0xf5, 0x5f, 0x19, 0x28, 0xc7, 0xab, 0x4d, 0x56, 0xbc, 0x6b, 0xfc, 0x64, + 0x49, 0xf1, 0xbd, 0xe7, 0x8d, 0xef, 0xad, 0x4d, 0x6b, 0x0d, 0x76, 0xe4, 0x1c, 0xe6, 0x45, 0x0d, + 0xa8, 0x08, 0x4d, 0x76, 0xdc, 0xb3, 0xdd, 0x86, 0x8a, 0x7b, 0x4d, 0x41, 0x09, 0x5a, 0xf8, 0x18, + 0xf2, 0x0f, 0x3d, 0x6e, 0x3b, 0xcf, 0x6d, 0xbf, 0xf9, 0xfd, 0xb6, 0x4f, 0xfa, 0xdc, 0x78, 0xf1, + 0xa4, 0xaf, 0x76, 0xba, 0xca, 0x69, 0xbd, 0xad, 0x04, 0xea, 0xf8, 0x1a, 0x64, 0x4d, 0xf2, 0xd5, + 0x45, 0xf2, 0x70, 0xe2, 0xd0, 0x65, 0x27, 0xe1, 0x1a, 0x64, 0x9f, 0x50, 0xf2, 0x28, 0x79, 0x24, + 0x70, 0xe8, 0x47, 0x5c, 0x0c, 0xfb, 0x90, 0xe3, 0xf1, 0xc2, 0x00, 0x41, 0xc4, 0xd0, 0x4b, 0xb8, + 0x00, 0xd9, 0x46, 0x57, 0x61, 0x0b, 0x02, 0x41, 0x59, 0xa0, 0x6a, 0xaf, 0x25, 0x37, 0x64, 0x94, + 0xae, 0xde, 0x85, 0xbc, 0x08, 0x02, 0x5b, 0x2c, 0x51, 0x18, 0xd0, 0x4b, 0x41, 0x33, 0xb0, 0x91, + 0x0a, 0xa5, 0x67, 0xa7, 0x47, 0xb2, 0x82, 0xd2, 0xc9, 0xa9, 0xce, 0xa2, 0x5c, 0xd5, 0x83, 0x72, + 0xbc, 0xdc, 0x7c, 0x31, 0x57, 0xc9, 0xbf, 0xa7, 0xa0, 0x14, 0x2b, 0x1f, 0x59, 0xe1, 0x42, 0x4c, + 0xd3, 0x7e, 0xa2, 0x12, 0xd3, 0x20, 0x5e, 0x90, 0x1a, 0xc0, 0xa1, 0x3a, 0x43, 0x2e, 0x3b, 0x75, + 0x2f, 0x68, 0x89, 0xe4, 0x50, 0xbe, 0xfa, 0x97, 0x14, 0xa0, 0xf9, 0x02, 0x74, 0xce, 0xcd, 0xd4, + 0x4f, 0xe9, 0x66, 0xf5, 0xcf, 0x29, 0xa8, 0x24, 0xab, 0xce, 0x39, 0xf7, 0x6e, 0xfc, 0xa4, 0xee, + 0xfd, 0x33, 0x0d, 0xeb, 0x89, 0x5a, 0xf3, 0xb2, 0xde, 0x7d, 0x09, 0x9b, 0x86, 0x4e, 0x27, 0x8e, + 0xed, 0x53, 0x4b, 0xbb, 0x50, 0x4d, 0xfa, 0x98, 0x9a, 0x52, 0x95, 0x6f, 0x1a, 0xfb, 0xdf, 0x5f, + 0xcd, 0xd6, 0x5a, 0x33, 0xbd, 0x36, 0x53, 0x3b, 0xdc, 0x6a, 0x35, 0xe5, 0xd3, 0x5e, 0x77, 0x20, + 0x77, 0x1a, 0x9f, 0xab, 0x67, 0x9d, 0x5f, 0x75, 0xba, 0x9f, 0x76, 0x14, 0x64, 0xcc, 0xd1, 0x7e, + 0xc4, 0x65, 0xdf, 0x03, 0x34, 0xef, 0x14, 0xbe, 0x0a, 0xcb, 0xdc, 0x42, 0x2f, 0xe1, 0x2d, 0xd8, + 0xe8, 0x74, 0xd5, 0x7e, 0xab, 0x29, 0xab, 0xf2, 0x83, 0x07, 0x72, 0x63, 0xd0, 0x17, 0xd7, 0xfb, + 0x88, 0x3d, 0x48, 0x2c, 0xf0, 0xea, 0x9f, 0x32, 0xb0, 0xb5, 0xc4, 0x13, 0x5c, 0x0f, 0x6e, 0x16, + 0xe2, 0xb2, 0xf3, 0xee, 0x65, 0xbc, 0xaf, 0xb1, 0x82, 0xa0, 0x47, 0x5c, 0x3f, 0xb8, 0x88, 0xdc, + 0x02, 0x16, 0x25, 0xcb, 0x37, 0x86, 0x06, 0x75, 0x83, 0xd7, 0x10, 0x71, 0xdd, 0xd8, 0x98, 0xe1, + 0xe2, 0x41, 0xe4, 0x67, 0x80, 0x1d, 0xdb, 0x33, 0x7c, 0xe3, 0x31, 0x55, 0x0d, 0x2b, 0x7c, 0x3a, + 0x61, 0xd7, 0x8f, 0xac, 0x82, 0x42, 0x49, 0xcb, 0xf2, 0x23, 0xb6, 0x45, 0x47, 0x64, 0x8e, 0xcd, + 0x36, 0xf3, 0x8c, 0x82, 0x42, 0x49, 0xc4, 0xbe, 0x01, 0x65, 0xdd, 0x9e, 0xb2, 0x9a, 0x4c, 0xf0, + 0xd8, 0xd9, 0x91, 0x52, 0x4a, 0x02, 0x8b, 0x28, 0x41, 0xb5, 0x3d, 0x7b, 0xb3, 0x29, 0x2b, 0x25, + 0x81, 0x09, 0xca, 0x4d, 0xd8, 0x20, 0xa3, 0x91, 0xcb, 0x8c, 0x87, 0x86, 0xc4, 0xfd, 0xa1, 0x12, + 0xc1, 0x9c, 0xb8, 0x73, 0x02, 0x85, 0x30, 0x0e, 0xec, 0xa8, 0x66, 0x91, 0x50, 0x1d, 0xf1, 0x6e, + 0x97, 0xde, 0x2b, 0x2a, 0x05, 0x2b, 0x14, 0xde, 0x80, 0xb2, 0xe1, 0xa9, 0xb3, 0x27, 0xe8, 0xf4, + 0x6e, 0x7a, 0xaf, 0xa0, 0x94, 0x0c, 0x2f, 0x7a, 0xbe, 0xab, 0x7e, 0x93, 0x86, 0x4a, 0xf2, 0x09, + 0x1d, 0x37, 0xa1, 0x60, 0xda, 0x1a, 0xe1, 0xa9, 0x25, 0xbe, 0xdf, 0xec, 0x3d, 0xe7, 0xd5, 0xbd, + 0xd6, 0x0e, 0xf8, 0x4a, 0xa4, 0xb9, 0xf3, 0x8f, 0x14, 0x14, 0x42, 0x18, 0x5f, 0x81, 0xac, 0x43, + 0xfc, 0x31, 0x37, 0x97, 0x3b, 0x4a, 0xa3, 0x94, 0xc2, 0xdb, 0x0c, 0xf7, 0x1c, 0x62, 0xf1, 0x14, + 0x08, 0x70, 0xd6, 0x66, 0xf3, 0x6a, 0x52, 0xa2, 0xf3, 0xcb, 0x89, 0x3d, 0x99, 0x50, 0xcb, 0xf7, + 0xc2, 0x79, 0x0d, 0xf0, 0x46, 0x00, 0xe3, 0x77, 0x60, 0xd3, 0x77, 0x89, 0x61, 0x26, 0xb8, 0x59, + 0xce, 0x45, 0xa1, 0x20, 0x22, 0x1f, 0xc2, 0xb5, 0xd0, 0xae, 0x4e, 0x7d, 0xa2, 0x8d, 0xa9, 0x3e, + 0x53, 0xca, 0xf3, 0xf7, 0xd9, 0xab, 0x01, 0xa1, 0x19, 0xc8, 0x43, 0xdd, 0xea, 0x77, 0x29, 0xd8, + 0x0c, 0xaf, 0x53, 0x7a, 0x14, 0xac, 0x53, 0x00, 0x62, 0x59, 0xb6, 0x1f, 0x0f, 0xd7, 0x62, 0x2a, + 0x2f, 0xe8, 0xd5, 0xea, 0x91, 0x92, 0x12, 0x33, 0xb0, 0x33, 0x01, 0x98, 0x49, 0x56, 0x86, 0xed, + 0x3a, 0x94, 0x82, 0xef, 0x23, 0xfc, 0x23, 0x9b, 0xb8, 0x80, 0x83, 0x80, 0xd8, 0xbd, 0x0b, 0x6f, + 0x43, 0xee, 0x9c, 0x8e, 0x0c, 0x2b, 0x78, 0xf5, 0x14, 0x8d, 0xf0, 0x25, 0x37, 0x1b, 0xbd, 0xe4, + 0x1e, 0xfd, 0x21, 0x05, 0x5b, 0x9a, 0x3d, 0x99, 0xf7, 0xf7, 0x08, 0xcd, 0xbd, 0x02, 0x78, 0x9f, + 0xa4, 0xbe, 0xf8, 0x78, 0x64, 0xf8, 0xe3, 0xe9, 0x79, 0x4d, 0xb3, 0x27, 0xfb, 0x23, 0xdb, 0x24, + 0xd6, 0x68, 0xf6, 0x95, 0x90, 0xff, 0xd1, 0xde, 0x1d, 0x51, 0xeb, 0xdd, 0x91, 0x1d, 0xfb, 0x66, + 0xf8, 0xd1, 0xec, 0xef, 0xd7, 0xe9, 0xcc, 0x71, 0xef, 0xe8, 0xaf, 0xe9, 0x9d, 0x63, 0xd1, 0x57, + 0x2f, 0x8c, 0x8d, 0x42, 0x87, 0x26, 0xd5, 0xd8, 0x78, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x0c, + 0xab, 0xb6, 0x37, 0x7e, 0x1c, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto new file mode 100644 index 0000000..4d4fb37 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto @@ -0,0 +1,849 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Author: kenton@google.com (Kenton Varda) +// Based on original Protocol Buffers design by +// Sanjay Ghemawat, Jeff Dean, and others. +// +// The messages in this file describe the definitions found in .proto files. +// A valid .proto file can be translated directly to a FileDescriptorProto +// without any other information (e.g. without reading its imports). + + +syntax = "proto2"; + +package google.protobuf; +option go_package = "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DescriptorProtos"; +option csharp_namespace = "Google.Protobuf.Reflection"; +option objc_class_prefix = "GPB"; + +// descriptor.proto must be optimized for speed because reflection-based +// algorithms don't work during bootstrapping. +option optimize_for = SPEED; + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +message FileDescriptorSet { + repeated FileDescriptorProto file = 1; +} + +// Describes a complete .proto file. +message FileDescriptorProto { + optional string name = 1; // file name, relative to root of source tree + optional string package = 2; // e.g. "foo", "foo.bar", etc. + + // Names of files imported by this file. + repeated string dependency = 3; + // Indexes of the public imported files in the dependency list above. + repeated int32 public_dependency = 10; + // Indexes of the weak imported files in the dependency list. + // For Google-internal migration only. Do not use. + repeated int32 weak_dependency = 11; + + // All top-level definitions in this file. + repeated DescriptorProto message_type = 4; + repeated EnumDescriptorProto enum_type = 5; + repeated ServiceDescriptorProto service = 6; + repeated FieldDescriptorProto extension = 7; + + optional FileOptions options = 8; + + // This field contains optional information about the original source code. + // You may safely remove this entire field without harming runtime + // functionality of the descriptors -- the information is needed only by + // development tools. + optional SourceCodeInfo source_code_info = 9; + + // The syntax of the proto file. + // The supported values are "proto2" and "proto3". + optional string syntax = 12; +} + +// Describes a message type. +message DescriptorProto { + optional string name = 1; + + repeated FieldDescriptorProto field = 2; + repeated FieldDescriptorProto extension = 6; + + repeated DescriptorProto nested_type = 3; + repeated EnumDescriptorProto enum_type = 4; + + message ExtensionRange { + optional int32 start = 1; + optional int32 end = 2; + + optional ExtensionRangeOptions options = 3; + } + repeated ExtensionRange extension_range = 5; + + repeated OneofDescriptorProto oneof_decl = 8; + + optional MessageOptions options = 7; + + // Range of reserved tag numbers. Reserved tag numbers may not be used by + // fields or extension ranges in the same message. Reserved ranges may + // not overlap. + message ReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. + } + repeated ReservedRange reserved_range = 9; + // Reserved field names, which may not be used by fields in the same message. + // A given name may only be reserved once. + repeated string reserved_name = 10; +} + +message ExtensionRangeOptions { + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +// Describes a field within a message. +message FieldDescriptorProto { + enum Type { + // 0 is reserved for errors. + // Order is weird for historical reasons. + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + TYPE_INT64 = 3; + TYPE_UINT64 = 4; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; + // Tag-delimited aggregate. + // Group type is deprecated and not supported in proto3. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; // Length-delimited aggregate. + + // New in version 2. + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; // Uses ZigZag encoding. + TYPE_SINT64 = 18; // Uses ZigZag encoding. + }; + + enum Label { + // 0 is reserved for errors + LABEL_OPTIONAL = 1; + LABEL_REQUIRED = 2; + LABEL_REPEATED = 3; + }; + + optional string name = 1; + optional int32 number = 3; + optional Label label = 4; + + // If type_name is set, this need not be set. If both this and type_name + // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + optional Type type = 5; + + // For message and enum types, this is the name of the type. If the name + // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + // rules are used to find the type (i.e. first the nested types within this + // message are searched, then within the parent, on up to the root + // namespace). + optional string type_name = 6; + + // For extensions, this is the name of the type being extended. It is + // resolved in the same manner as type_name. + optional string extendee = 2; + + // For numeric types, contains the original text representation of the value. + // For booleans, "true" or "false". + // For strings, contains the default text contents (not escaped in any way). + // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + // TODO(kenton): Base-64 encode? + optional string default_value = 7; + + // If set, gives the index of a oneof in the containing type's oneof_decl + // list. This field is a member of that oneof. + optional int32 oneof_index = 9; + + // JSON name of this field. The value is set by protocol compiler. If the + // user has set a "json_name" option on this field, that option's value + // will be used. Otherwise, it's deduced from the field's name by converting + // it to camelCase. + optional string json_name = 10; + + optional FieldOptions options = 8; +} + +// Describes a oneof. +message OneofDescriptorProto { + optional string name = 1; + optional OneofOptions options = 2; +} + +// Describes an enum type. +message EnumDescriptorProto { + optional string name = 1; + + repeated EnumValueDescriptorProto value = 2; + + optional EnumOptions options = 3; +} + +// Describes a value within an enum. +message EnumValueDescriptorProto { + optional string name = 1; + optional int32 number = 2; + + optional EnumValueOptions options = 3; +} + +// Describes a service. +message ServiceDescriptorProto { + optional string name = 1; + repeated MethodDescriptorProto method = 2; + + optional ServiceOptions options = 3; +} + +// Describes a method of a service. +message MethodDescriptorProto { + optional string name = 1; + + // Input and output type names. These are resolved in the same way as + // FieldDescriptorProto.type_name, but must refer to a message type. + optional string input_type = 2; + optional string output_type = 3; + + optional MethodOptions options = 4; + + // Identifies if client streams multiple client messages + optional bool client_streaming = 5 [default=false]; + // Identifies if server streams multiple server messages + optional bool server_streaming = 6 [default=false]; +} + + +// =================================================================== +// Options + +// Each of the definitions above may have "options" attached. These are +// just annotations which may cause code to be generated slightly differently +// or may contain hints for code that manipulates protocol messages. +// +// Clients may define custom options as extensions of the *Options messages. +// These extensions may not yet be known at parsing time, so the parser cannot +// store the values in them. Instead it stores them in a field in the *Options +// message called uninterpreted_option. This field must have the same name +// across all *Options messages. We then use this field to populate the +// extensions when we build a descriptor, at which point all protos have been +// parsed and so all extensions are known. +// +// Extension numbers for custom options may be chosen as follows: +// * For options which will only be used within a single application or +// organization, or for experimental options, use field numbers 50000 +// through 99999. It is up to you to ensure that you do not use the +// same number for multiple options. +// * For options which will be published and used publicly by multiple +// independent entities, e-mail protobuf-global-extension-registry@google.com +// to reserve extension numbers. Simply provide your project name (e.g. +// Objective-C plugin) and your project website (if available) -- there's no +// need to explain how you intend to use them. Usually you only need one +// extension number. You can declare multiple options with only one extension +// number by putting them in a sub-message. See the Custom Options section of +// the docs for examples: +// https://developers.google.com/protocol-buffers/docs/proto#options +// If this turns out to be popular, a web service will be set up +// to automatically assign option numbers. + + +message FileOptions { + + // Sets the Java package where classes generated from this .proto will be + // placed. By default, the proto package is used, but this is often + // inappropriate because proto packages do not normally start with backwards + // domain names. + optional string java_package = 1; + + + // If set, all the classes from the .proto file are wrapped in a single + // outer class with the given name. This applies to both Proto1 + // (equivalent to the old "--one_java_file" option) and Proto2 (where + // a .proto always translates to a single class, but you may want to + // explicitly choose the class name). + optional string java_outer_classname = 8; + + // If set true, then the Java code generator will generate a separate .java + // file for each top-level message, enum, and service defined in the .proto + // file. Thus, these types will *not* be nested inside the outer class + // named by java_outer_classname. However, the outer class will still be + // generated to contain the file's getDescriptor() method as well as any + // top-level extensions defined in the file. + optional bool java_multiple_files = 10 [default=false]; + + // This option does nothing. + optional bool java_generate_equals_and_hash = 20 [deprecated=true]; + + // If set true, then the Java2 code generator will generate code that + // throws an exception whenever an attempt is made to assign a non-UTF-8 + // byte sequence to a string field. + // Message reflection will do the same. + // However, an extension field still accepts non-UTF-8 byte sequences. + // This option has no effect on when used with the lite runtime. + optional bool java_string_check_utf8 = 27 [default=false]; + + + // Generated classes can be optimized for speed or code size. + enum OptimizeMode { + SPEED = 1; // Generate complete code for parsing, serialization, + // etc. + CODE_SIZE = 2; // Use ReflectionOps to implement these methods. + LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. + } + optional OptimizeMode optimize_for = 9 [default=SPEED]; + + // Sets the Go package where structs generated from this .proto will be + // placed. If omitted, the Go package will be derived from the following: + // - The basename of the package import path, if provided. + // - Otherwise, the package statement in the .proto file, if present. + // - Otherwise, the basename of the .proto file, without extension. + optional string go_package = 11; + + + + // Should generic services be generated in each language? "Generic" services + // are not specific to any particular RPC system. They are generated by the + // main code generators in each language (without additional plugins). + // Generic services were the only kind of service generation supported by + // early versions of google.protobuf. + // + // Generic services are now considered deprecated in favor of using plugins + // that generate code specific to your particular RPC system. Therefore, + // these default to false. Old code which depends on generic services should + // explicitly set them to true. + optional bool cc_generic_services = 16 [default=false]; + optional bool java_generic_services = 17 [default=false]; + optional bool py_generic_services = 18 [default=false]; + optional bool php_generic_services = 42 [default=false]; + + // Is this file deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for everything in the file, or it will be completely ignored; in the very + // least, this is a formalization for deprecating files. + optional bool deprecated = 23 [default=false]; + + // Enables the use of arenas for the proto messages in this file. This applies + // only to generated classes for C++. + optional bool cc_enable_arenas = 31 [default=false]; + + + // Sets the objective c class prefix which is prepended to all objective c + // generated classes from this .proto. There is no default. + optional string objc_class_prefix = 36; + + // Namespace for generated classes; defaults to the package. + optional string csharp_namespace = 37; + + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + optional string swift_prefix = 39; + + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + optional string php_class_prefix = 40; + + // Use this option to change the namespace of php generated classes. Default + // is empty. When this option is empty, the package name will be used for + // determining the namespace. + optional string php_namespace = 41; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; + + reserved 38; +} + +message MessageOptions { + // Set true to use the old proto1 MessageSet wire format for extensions. + // This is provided for backwards-compatibility with the MessageSet wire + // format. You should not use this for any other reason: It's less + // efficient, has fewer features, and is more complicated. + // + // The message must be defined exactly as follows: + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // Note that the message cannot have any defined fields; MessageSets only + // have extensions. + // + // All extensions of your type must be singular messages; e.g. they cannot + // be int32s, enums, or repeated messages. + // + // Because this is an option, the above two restrictions are not enforced by + // the protocol compiler. + optional bool message_set_wire_format = 1 [default=false]; + + // Disables the generation of the standard "descriptor()" accessor, which can + // conflict with a field of the same name. This is meant to make migration + // from proto1 easier; new code should avoid fields named "descriptor". + optional bool no_standard_descriptor_accessor = 2 [default=false]; + + // Is this message deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the message, or it will be completely ignored; in the very least, + // this is a formalization for deprecating messages. + optional bool deprecated = 3 [default=false]; + + // Whether the message is an automatically generated map entry type for the + // maps field. + // + // For maps fields: + // map map_field = 1; + // The parsed descriptor looks like: + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; + // + // Implementations may choose not to generate the map_entry=true message, but + // use a native map in the target language to hold the keys and values. + // The reflection APIs in such implementions still need to work as + // if the field is a repeated message field. + // + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + optional bool map_entry = 7; + + reserved 8; // javalite_serializable + reserved 9; // javanano_as_lite + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message FieldOptions { + // The ctype option instructs the C++ code generator to use a different + // representation of the field than it normally would. See the specific + // options below. This option is not yet implemented in the open source + // release -- sorry, we'll try to include it in a future version! + optional CType ctype = 1 [default = STRING]; + enum CType { + // Default mode. + STRING = 0; + + CORD = 1; + + STRING_PIECE = 2; + } + // The packed option can be enabled for repeated primitive fields to enable + // a more efficient representation on the wire. Rather than repeatedly + // writing the tag and type for each element, the entire array is encoded as + // a single length-delimited blob. In proto3, only explicit setting it to + // false will avoid using packed encoding. + optional bool packed = 2; + + // The jstype option determines the JavaScript type used for values of the + // field. The option is permitted only for 64 bit integral and fixed types + // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + // is represented as JavaScript string, which avoids loss of precision that + // can happen when a large value is converted to a floating point JavaScript. + // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + // use the JavaScript "number" type. The behavior of the default option + // JS_NORMAL is implementation dependent. + // + // This option is an enum to permit additional types to be added, e.g. + // goog.math.Integer. + optional JSType jstype = 6 [default = JS_NORMAL]; + enum JSType { + // Use the default type. + JS_NORMAL = 0; + + // Use JavaScript strings. + JS_STRING = 1; + + // Use JavaScript numbers. + JS_NUMBER = 2; + } + + // Should this field be parsed lazily? Lazy applies only to message-type + // fields. It means that when the outer message is initially parsed, the + // inner message's contents will not be parsed but instead stored in encoded + // form. The inner message will actually be parsed when it is first accessed. + // + // This is only a hint. Implementations are free to choose whether to use + // eager or lazy parsing regardless of the value of this option. However, + // setting this option true suggests that the protocol author believes that + // using lazy parsing on this field is worth the additional bookkeeping + // overhead typically needed to implement it. + // + // This option does not affect the public interface of any generated code; + // all method signatures remain the same. Furthermore, thread-safety of the + // interface is not affected by this option; const methods remain safe to + // call from multiple threads concurrently, while non-const methods continue + // to require exclusive access. + // + // + // Note that implementations may choose not to check required fields within + // a lazy sub-message. That is, calling IsInitialized() on the outer message + // may return true even if the inner message has missing required fields. + // This is necessary because otherwise the inner message would have to be + // parsed in order to perform the check, defeating the purpose of lazy + // parsing. An implementation which chooses not to check required fields + // must be consistent about it. That is, for any particular sub-message, the + // implementation must either *always* check its required fields, or *never* + // check its required fields, regardless of whether or not the message has + // been parsed. + optional bool lazy = 5 [default=false]; + + // Is this field deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for accessors, or it will be completely ignored; in the very least, this + // is a formalization for deprecating fields. + optional bool deprecated = 3 [default=false]; + + // For Google-internal migration only. Do not use. + optional bool weak = 10 [default=false]; + + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; + + reserved 4; // removed jtype +} + +message OneofOptions { + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumOptions { + + // Set this option to true to allow mapping different tag names to the same + // value. + optional bool allow_alias = 2; + + // Is this enum deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum, or it will be completely ignored; in the very least, this + // is a formalization for deprecating enums. + optional bool deprecated = 3 [default=false]; + + reserved 5; // javanano_as_lite + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumValueOptions { + // Is this enum value deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum value, or it will be completely ignored; in the very least, + // this is a formalization for deprecating enum values. + optional bool deprecated = 1 [default=false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message ServiceOptions { + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this service deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the service, or it will be completely ignored; in the very least, + // this is a formalization for deprecating services. + optional bool deprecated = 33 [default=false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message MethodOptions { + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this method deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the method, or it will be completely ignored; in the very least, + // this is a formalization for deprecating methods. + optional bool deprecated = 33 [default=false]; + + // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + // or neither? HTTP based RPC implementation may choose GET verb for safe + // methods, and PUT verb for idempotent methods instead of the default POST. + enum IdempotencyLevel { + IDEMPOTENCY_UNKNOWN = 0; + NO_SIDE_EFFECTS = 1; // implies idempotent + IDEMPOTENT = 2; // idempotent, but may have side effects + } + optional IdempotencyLevel idempotency_level = + 34 [default=IDEMPOTENCY_UNKNOWN]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +message UninterpretedOption { + // The name of the uninterpreted option. Each string represents a segment in + // a dot-separated name. is_extension is true iff a segment represents an + // extension (denoted with parentheses in options specs in .proto files). + // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents + // "foo.(bar.baz).qux". + message NamePart { + required string name_part = 1; + required bool is_extension = 2; + } + repeated NamePart name = 2; + + // The value of the uninterpreted option, in whatever type the tokenizer + // identified it as during parsing. Exactly one of these should be set. + optional string identifier_value = 3; + optional uint64 positive_int_value = 4; + optional int64 negative_int_value = 5; + optional double double_value = 6; + optional bytes string_value = 7; + optional string aggregate_value = 8; +} + +// =================================================================== +// Optional source code info + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +message SourceCodeInfo { + // A Location identifies a piece of source code in a .proto file which + // corresponds to a particular definition. This information is intended + // to be useful to IDEs, code indexers, documentation generators, and similar + // tools. + // + // For example, say we have a file like: + // message Foo { + // optional string foo = 1; + // } + // Let's look at just the field definition: + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // We have the following locations: + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // Notes: + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendent. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. + repeated Location location = 1; + message Location { + // Identifies which part of the FileDescriptorProto was defined at this + // location. + // + // Each element is a field number or an index. They form a path from + // the root FileDescriptorProto to the place where the definition. For + // example, this path: + // [ 4, 3, 2, 7, 1 ] + // refers to: + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // This is because FileDescriptorProto.message_type has field number 4: + // repeated DescriptorProto message_type = 4; + // and DescriptorProto.field has field number 2: + // repeated FieldDescriptorProto field = 2; + // and FieldDescriptorProto.name has field number 1: + // optional string name = 1; + // + // Thus, the above path gives the location of a field name. If we removed + // the last element: + // [ 4, 3, 2, 7 ] + // this path refers to the whole field declaration (from the beginning + // of the label to the terminating semicolon). + repeated int32 path = 1 [packed=true]; + + // Always has exactly three or four elements: start line, start column, + // end line (optional, otherwise assumed same as start line), end column. + // These are packed into a single field for efficiency. Note that line + // and column numbers are zero-based -- typically you will want to add + // 1 to each before displaying to a user. + repeated int32 span = 2 [packed=true]; + + // If this SourceCodeInfo represents a complete declaration, these are any + // comments appearing before and after the declaration which appear to be + // attached to the declaration. + // + // A series of line comments appearing on consecutive lines, with no other + // tokens appearing on those lines, will be treated as a single comment. + // + // leading_detached_comments will keep paragraphs of comments that appear + // before (but not connected to) the current element. Each paragraph, + // separated by empty lines, will be one comment element in the repeated + // field. + // + // Only the comment content is provided; comment markers (e.g. //) are + // stripped out. For block comments, leading whitespace and an asterisk + // will be stripped from the beginning of each line other than the first. + // Newlines are included in the output. + // + // Examples: + // + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; + // + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. + // + // // Comment attached to qux. + // // + // // Another line attached to qux. + // optional double qux = 4; + // + // // Detached comment for corge. This is not leading or trailing comments + // // to qux or corge because there are blank lines separating it from + // // both. + // + // // Detached comment for corge paragraph 2. + // + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; + // + // // ignored detached comments. + optional string leading_comments = 3; + optional string trailing_comments = 4; + repeated string leading_detached_comments = 6; + } +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +message GeneratedCodeInfo { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + repeated Annotation annotation = 1; + message Annotation { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + repeated int32 path = 1 [packed=true]; + + // Identifies the filesystem path to the original source .proto. + optional string source_file = 2; + + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + optional int32 begin = 3; + + // Identifies the ending offset in bytes in the generated code that + // relates to the identified offset. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + optional int32 end = 4; + } +} diff --git a/vendor/github.com/golang/protobuf/ptypes/any.go b/vendor/github.com/golang/protobuf/ptypes/any.go new file mode 100644 index 0000000..b2af97f --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/any.go @@ -0,0 +1,139 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package ptypes + +// This file implements functions to marshal proto.Message to/from +// google.protobuf.Any message. + +import ( + "fmt" + "reflect" + "strings" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes/any" +) + +const googleApis = "type.googleapis.com/" + +// AnyMessageName returns the name of the message contained in a google.protobuf.Any message. +// +// Note that regular type assertions should be done using the Is +// function. AnyMessageName is provided for less common use cases like filtering a +// sequence of Any messages based on a set of allowed message type names. +func AnyMessageName(any *any.Any) (string, error) { + if any == nil { + return "", fmt.Errorf("message is nil") + } + slash := strings.LastIndex(any.TypeUrl, "/") + if slash < 0 { + return "", fmt.Errorf("message type url %q is invalid", any.TypeUrl) + } + return any.TypeUrl[slash+1:], nil +} + +// MarshalAny takes the protocol buffer and encodes it into google.protobuf.Any. +func MarshalAny(pb proto.Message) (*any.Any, error) { + value, err := proto.Marshal(pb) + if err != nil { + return nil, err + } + return &any.Any{TypeUrl: googleApis + proto.MessageName(pb), Value: value}, nil +} + +// DynamicAny is a value that can be passed to UnmarshalAny to automatically +// allocate a proto.Message for the type specified in a google.protobuf.Any +// message. The allocated message is stored in the embedded proto.Message. +// +// Example: +// +// var x ptypes.DynamicAny +// if err := ptypes.UnmarshalAny(a, &x); err != nil { ... } +// fmt.Printf("unmarshaled message: %v", x.Message) +type DynamicAny struct { + proto.Message +} + +// Empty returns a new proto.Message of the type specified in a +// google.protobuf.Any message. It returns an error if corresponding message +// type isn't linked in. +func Empty(any *any.Any) (proto.Message, error) { + aname, err := AnyMessageName(any) + if err != nil { + return nil, err + } + + t := proto.MessageType(aname) + if t == nil { + return nil, fmt.Errorf("any: message type %q isn't linked in", aname) + } + return reflect.New(t.Elem()).Interface().(proto.Message), nil +} + +// UnmarshalAny parses the protocol buffer representation in a google.protobuf.Any +// message and places the decoded result in pb. It returns an error if type of +// contents of Any message does not match type of pb message. +// +// pb can be a proto.Message, or a *DynamicAny. +func UnmarshalAny(any *any.Any, pb proto.Message) error { + if d, ok := pb.(*DynamicAny); ok { + if d.Message == nil { + var err error + d.Message, err = Empty(any) + if err != nil { + return err + } + } + return UnmarshalAny(any, d.Message) + } + + aname, err := AnyMessageName(any) + if err != nil { + return err + } + + mname := proto.MessageName(pb) + if aname != mname { + return fmt.Errorf("mismatched message type: got %q want %q", aname, mname) + } + return proto.Unmarshal(any.Value, pb) +} + +// Is returns true if any value contains a given message type. +func Is(any *any.Any, pb proto.Message) bool { + aname, err := AnyMessageName(any) + if err != nil { + return false + } + + return aname == proto.MessageName(pb) +} diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go new file mode 100644 index 0000000..f346017 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go @@ -0,0 +1,178 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/protobuf/any.proto + +/* +Package any is a generated protocol buffer package. + +It is generated from these files: + google/protobuf/any.proto + +It has these top-level messages: + Any +*/ +package any + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := ptypes.MarshalAny(foo) +// ... +// foo := &pb.Foo{} +// if err := ptypes.UnmarshalAny(any, foo); err != nil { +// ... +// } +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +type Any struct { + // A URL/resource name whose content describes the type of the + // serialized protocol buffer message. + // + // For URLs which use the scheme `http`, `https`, or no scheme, the + // following restrictions and interpretations apply: + // + // * If no scheme is provided, `https` is assumed. + // * The last segment of the URL's path must represent the fully + // qualified name of the type (as in `path/google.protobuf.Duration`). + // The name should be in a canonical form (e.g., leading "." is + // not accepted). + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Schemes other than `http`, `https` (or the empty scheme) might be + // used with implementation specific semantics. + // + TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl" json:"type_url,omitempty"` + // Must be a valid serialized protocol buffer of the above specified type. + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *Any) Reset() { *m = Any{} } +func (m *Any) String() string { return proto.CompactTextString(m) } +func (*Any) ProtoMessage() {} +func (*Any) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (*Any) XXX_WellKnownType() string { return "Any" } + +func (m *Any) GetTypeUrl() string { + if m != nil { + return m.TypeUrl + } + return "" +} + +func (m *Any) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func init() { + proto.RegisterType((*Any)(nil), "google.protobuf.Any") +} + +func init() { proto.RegisterFile("google/protobuf/any.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 185 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4c, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0xcc, 0xab, 0xd4, + 0x03, 0x73, 0x84, 0xf8, 0x21, 0x52, 0x7a, 0x30, 0x29, 0x25, 0x33, 0x2e, 0x66, 0xc7, 0xbc, 0x4a, + 0x21, 0x49, 0x2e, 0x8e, 0x92, 0xca, 0x82, 0xd4, 0xf8, 0xd2, 0xa2, 0x1c, 0x09, 0x46, 0x05, 0x46, + 0x0d, 0xce, 0x20, 0x76, 0x10, 0x3f, 0xb4, 0x28, 0x47, 0x48, 0x84, 0x8b, 0xb5, 0x2c, 0x31, 0xa7, + 0x34, 0x55, 0x82, 0x49, 0x81, 0x51, 0x83, 0x27, 0x08, 0xc2, 0x71, 0xca, 0xe7, 0x12, 0x4e, 0xce, + 0xcf, 0xd5, 0x43, 0x33, 0xce, 0x89, 0xc3, 0x31, 0xaf, 0x32, 0x00, 0xc4, 0x09, 0x60, 0x8c, 0x52, + 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, + 0x4b, 0x47, 0xb8, 0xa8, 0x00, 0x64, 0x7a, 0x31, 0xc8, 0x61, 0x8b, 0x98, 0x98, 0xdd, 0x03, 0x9c, + 0x56, 0x31, 0xc9, 0xb9, 0x43, 0x8c, 0x0a, 0x80, 0x2a, 0xd1, 0x0b, 0x4f, 0xcd, 0xc9, 0xf1, 0xce, + 0xcb, 0x2f, 0xcf, 0x0b, 0x01, 0x29, 0x4d, 0x62, 0x03, 0xeb, 0x35, 0x06, 0x04, 0x00, 0x00, 0xff, + 0xff, 0x13, 0xf8, 0xe8, 0x42, 0xdd, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.proto b/vendor/github.com/golang/protobuf/ptypes/any/any.proto new file mode 100644 index 0000000..c748667 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/any/any.proto @@ -0,0 +1,149 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "github.com/golang/protobuf/ptypes/any"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "AnyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := ptypes.MarshalAny(foo) +// ... +// foo := &pb.Foo{} +// if err := ptypes.UnmarshalAny(any, foo); err != nil { +// ... +// } +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +message Any { + // A URL/resource name whose content describes the type of the + // serialized protocol buffer message. + // + // For URLs which use the scheme `http`, `https`, or no scheme, the + // following restrictions and interpretations apply: + // + // * If no scheme is provided, `https` is assumed. + // * The last segment of the URL's path must represent the fully + // qualified name of the type (as in `path/google.protobuf.Duration`). + // The name should be in a canonical form (e.g., leading "." is + // not accepted). + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Schemes other than `http`, `https` (or the empty scheme) might be + // used with implementation specific semantics. + // + string type_url = 1; + + // Must be a valid serialized protocol buffer of the above specified type. + bytes value = 2; +} diff --git a/vendor/github.com/golang/protobuf/ptypes/doc.go b/vendor/github.com/golang/protobuf/ptypes/doc.go new file mode 100644 index 0000000..c0d595d --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/doc.go @@ -0,0 +1,35 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* +Package ptypes contains code for interacting with well-known types. +*/ +package ptypes diff --git a/vendor/github.com/golang/protobuf/ptypes/duration.go b/vendor/github.com/golang/protobuf/ptypes/duration.go new file mode 100644 index 0000000..65cb0f8 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/duration.go @@ -0,0 +1,102 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package ptypes + +// This file implements conversions between google.protobuf.Duration +// and time.Duration. + +import ( + "errors" + "fmt" + "time" + + durpb "github.com/golang/protobuf/ptypes/duration" +) + +const ( + // Range of a durpb.Duration in seconds, as specified in + // google/protobuf/duration.proto. This is about 10,000 years in seconds. + maxSeconds = int64(10000 * 365.25 * 24 * 60 * 60) + minSeconds = -maxSeconds +) + +// validateDuration determines whether the durpb.Duration is valid according to the +// definition in google/protobuf/duration.proto. A valid durpb.Duration +// may still be too large to fit into a time.Duration (the range of durpb.Duration +// is about 10,000 years, and the range of time.Duration is about 290). +func validateDuration(d *durpb.Duration) error { + if d == nil { + return errors.New("duration: nil Duration") + } + if d.Seconds < minSeconds || d.Seconds > maxSeconds { + return fmt.Errorf("duration: %v: seconds out of range", d) + } + if d.Nanos <= -1e9 || d.Nanos >= 1e9 { + return fmt.Errorf("duration: %v: nanos out of range", d) + } + // Seconds and Nanos must have the same sign, unless d.Nanos is zero. + if (d.Seconds < 0 && d.Nanos > 0) || (d.Seconds > 0 && d.Nanos < 0) { + return fmt.Errorf("duration: %v: seconds and nanos have different signs", d) + } + return nil +} + +// Duration converts a durpb.Duration to a time.Duration. Duration +// returns an error if the durpb.Duration is invalid or is too large to be +// represented in a time.Duration. +func Duration(p *durpb.Duration) (time.Duration, error) { + if err := validateDuration(p); err != nil { + return 0, err + } + d := time.Duration(p.Seconds) * time.Second + if int64(d/time.Second) != p.Seconds { + return 0, fmt.Errorf("duration: %v is out of range for time.Duration", p) + } + if p.Nanos != 0 { + d += time.Duration(p.Nanos) + if (d < 0) != (p.Nanos < 0) { + return 0, fmt.Errorf("duration: %v is out of range for time.Duration", p) + } + } + return d, nil +} + +// DurationProto converts a time.Duration to a durpb.Duration. +func DurationProto(d time.Duration) *durpb.Duration { + nanos := d.Nanoseconds() + secs := nanos / 1e9 + nanos -= secs * 1e9 + return &durpb.Duration{ + Seconds: secs, + Nanos: int32(nanos), + } +} diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go new file mode 100644 index 0000000..b2410a0 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go @@ -0,0 +1,144 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/protobuf/duration.proto + +/* +Package duration is a generated protocol buffer package. + +It is generated from these files: + google/protobuf/duration.proto + +It has these top-level messages: + Duration +*/ +package duration + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A Duration represents a signed, fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". It is related to Timestamp in that the difference between +// two Timestamp values is a Duration and it can be added or subtracted +// from a Timestamp. Range is approximately +-10,000 years. +// +// # Examples +// +// Example 1: Compute Duration from two Timestamps in pseudo code. +// +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; +// +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; +// +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (durations.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } +// +// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. +// +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; +// +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; +// +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } +// +// Example 3: Compute Duration from datetime.timedelta in Python. +// +// td = datetime.timedelta(days=3, minutes=10) +// duration = Duration() +// duration.FromTimedelta(td) +// +// # JSON Mapping +// +// In JSON format, the Duration type is encoded as a string rather than an +// object, where the string ends in the suffix "s" (indicating seconds) and +// is preceded by the number of seconds, with nanoseconds expressed as +// fractional seconds. For example, 3 seconds with 0 nanoseconds should be +// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should +// be expressed in JSON format as "3.000000001s", and 3 seconds and 1 +// microsecond should be expressed in JSON format as "3.000001s". +// +// +type Duration struct { + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. Note: these bounds are computed from: + // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds int64 `protobuf:"varint,1,opt,name=seconds" json:"seconds,omitempty"` + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + Nanos int32 `protobuf:"varint,2,opt,name=nanos" json:"nanos,omitempty"` +} + +func (m *Duration) Reset() { *m = Duration{} } +func (m *Duration) String() string { return proto.CompactTextString(m) } +func (*Duration) ProtoMessage() {} +func (*Duration) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (*Duration) XXX_WellKnownType() string { return "Duration" } + +func (m *Duration) GetSeconds() int64 { + if m != nil { + return m.Seconds + } + return 0 +} + +func (m *Duration) GetNanos() int32 { + if m != nil { + return m.Nanos + } + return 0 +} + +func init() { + proto.RegisterType((*Duration)(nil), "google.protobuf.Duration") +} + +func init() { proto.RegisterFile("google/protobuf/duration.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 190 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0x29, 0x2d, 0x4a, + 0x2c, 0xc9, 0xcc, 0xcf, 0xd3, 0x03, 0x8b, 0x08, 0xf1, 0x43, 0xe4, 0xf5, 0x60, 0xf2, 0x4a, 0x56, + 0x5c, 0x1c, 0x2e, 0x50, 0x25, 0x42, 0x12, 0x5c, 0xec, 0xc5, 0xa9, 0xc9, 0xf9, 0x79, 0x29, 0xc5, + 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xcc, 0x41, 0x30, 0xae, 0x90, 0x08, 0x17, 0x6b, 0x5e, 0x62, 0x5e, + 0x7e, 0xb1, 0x04, 0x93, 0x02, 0xa3, 0x06, 0x6b, 0x10, 0x84, 0xe3, 0x54, 0xc3, 0x25, 0x9c, 0x9c, + 0x9f, 0xab, 0x87, 0x66, 0xa4, 0x13, 0x2f, 0xcc, 0xc0, 0x00, 0x90, 0x48, 0x00, 0x63, 0x94, 0x56, + 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0x7e, 0x7a, 0x7e, 0x4e, 0x62, 0x5e, + 0x3a, 0xc2, 0x7d, 0x05, 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x70, 0x67, 0xfe, 0x60, 0x64, 0x5c, 0xc4, + 0xc4, 0xec, 0x1e, 0xe0, 0xb4, 0x8a, 0x49, 0xce, 0x1d, 0x62, 0x6e, 0x00, 0x54, 0xa9, 0x5e, 0x78, + 0x6a, 0x4e, 0x8e, 0x77, 0x5e, 0x7e, 0x79, 0x5e, 0x08, 0x48, 0x4b, 0x12, 0x1b, 0xd8, 0x0c, 0x63, + 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdc, 0x84, 0x30, 0xff, 0xf3, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto b/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto new file mode 100644 index 0000000..975fce4 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto @@ -0,0 +1,117 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/duration"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DurationProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// A Duration represents a signed, fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". It is related to Timestamp in that the difference between +// two Timestamp values is a Duration and it can be added or subtracted +// from a Timestamp. Range is approximately +-10,000 years. +// +// # Examples +// +// Example 1: Compute Duration from two Timestamps in pseudo code. +// +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; +// +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; +// +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (durations.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } +// +// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. +// +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; +// +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; +// +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } +// +// Example 3: Compute Duration from datetime.timedelta in Python. +// +// td = datetime.timedelta(days=3, minutes=10) +// duration = Duration() +// duration.FromTimedelta(td) +// +// # JSON Mapping +// +// In JSON format, the Duration type is encoded as a string rather than an +// object, where the string ends in the suffix "s" (indicating seconds) and +// is preceded by the number of seconds, with nanoseconds expressed as +// fractional seconds. For example, 3 seconds with 0 nanoseconds should be +// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should +// be expressed in JSON format as "3.000000001s", and 3 seconds and 1 +// microsecond should be expressed in JSON format as "3.000001s". +// +// +message Duration { + + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. Note: these bounds are computed from: + // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + int64 seconds = 1; + + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + int32 nanos = 2; +} diff --git a/vendor/github.com/golang/protobuf/ptypes/regen.sh b/vendor/github.com/golang/protobuf/ptypes/regen.sh new file mode 100644 index 0000000..b50a941 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/regen.sh @@ -0,0 +1,43 @@ +#!/bin/bash -e +# +# This script fetches and rebuilds the "well-known types" protocol buffers. +# To run this you will need protoc and goprotobuf installed; +# see https://github.com/golang/protobuf for instructions. +# You also need Go and Git installed. + +PKG=github.com/golang/protobuf/ptypes +UPSTREAM=https://github.com/google/protobuf +UPSTREAM_SUBDIR=src/google/protobuf +PROTO_FILES=(any duration empty struct timestamp wrappers) + +function die() { + echo 1>&2 $* + exit 1 +} + +# Sanity check that the right tools are accessible. +for tool in go git protoc protoc-gen-go; do + q=$(which $tool) || die "didn't find $tool" + echo 1>&2 "$tool: $q" +done + +tmpdir=$(mktemp -d -t regen-wkt.XXXXXX) +trap 'rm -rf $tmpdir' EXIT + +echo -n 1>&2 "finding package dir... " +pkgdir=$(go list -f '{{.Dir}}' $PKG) +echo 1>&2 $pkgdir +base=$(echo $pkgdir | sed "s,/$PKG\$,,") +echo 1>&2 "base: $base" +cd "$base" + +echo 1>&2 "fetching latest protos... " +git clone -q $UPSTREAM $tmpdir + +for file in ${PROTO_FILES[@]}; do + echo 1>&2 "* $file" + protoc --go_out=. -I$tmpdir/src $tmpdir/src/google/protobuf/$file.proto || die + cp $tmpdir/src/google/protobuf/$file.proto $PKG/$file +done + +echo 1>&2 "All OK" diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp.go b/vendor/github.com/golang/protobuf/ptypes/timestamp.go new file mode 100644 index 0000000..47f10db --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp.go @@ -0,0 +1,134 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package ptypes + +// This file implements operations on google.protobuf.Timestamp. + +import ( + "errors" + "fmt" + "time" + + tspb "github.com/golang/protobuf/ptypes/timestamp" +) + +const ( + // Seconds field of the earliest valid Timestamp. + // This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + minValidSeconds = -62135596800 + // Seconds field just after the latest valid Timestamp. + // This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + maxValidSeconds = 253402300800 +) + +// validateTimestamp determines whether a Timestamp is valid. +// A valid timestamp represents a time in the range +// [0001-01-01, 10000-01-01) and has a Nanos field +// in the range [0, 1e9). +// +// If the Timestamp is valid, validateTimestamp returns nil. +// Otherwise, it returns an error that describes +// the problem. +// +// Every valid Timestamp can be represented by a time.Time, but the converse is not true. +func validateTimestamp(ts *tspb.Timestamp) error { + if ts == nil { + return errors.New("timestamp: nil Timestamp") + } + if ts.Seconds < minValidSeconds { + return fmt.Errorf("timestamp: %v before 0001-01-01", ts) + } + if ts.Seconds >= maxValidSeconds { + return fmt.Errorf("timestamp: %v after 10000-01-01", ts) + } + if ts.Nanos < 0 || ts.Nanos >= 1e9 { + return fmt.Errorf("timestamp: %v: nanos not in range [0, 1e9)", ts) + } + return nil +} + +// Timestamp converts a google.protobuf.Timestamp proto to a time.Time. +// It returns an error if the argument is invalid. +// +// Unlike most Go functions, if Timestamp returns an error, the first return value +// is not the zero time.Time. Instead, it is the value obtained from the +// time.Unix function when passed the contents of the Timestamp, in the UTC +// locale. This may or may not be a meaningful time; many invalid Timestamps +// do map to valid time.Times. +// +// A nil Timestamp returns an error. The first return value in that case is +// undefined. +func Timestamp(ts *tspb.Timestamp) (time.Time, error) { + // Don't return the zero value on error, because corresponds to a valid + // timestamp. Instead return whatever time.Unix gives us. + var t time.Time + if ts == nil { + t = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp + } else { + t = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC() + } + return t, validateTimestamp(ts) +} + +// TimestampNow returns a google.protobuf.Timestamp for the current time. +func TimestampNow() *tspb.Timestamp { + ts, err := TimestampProto(time.Now()) + if err != nil { + panic("ptypes: time.Now() out of Timestamp range") + } + return ts +} + +// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. +// It returns an error if the resulting Timestamp is invalid. +func TimestampProto(t time.Time) (*tspb.Timestamp, error) { + seconds := t.Unix() + nanos := int32(t.Sub(time.Unix(seconds, 0))) + ts := &tspb.Timestamp{ + Seconds: seconds, + Nanos: nanos, + } + if err := validateTimestamp(ts); err != nil { + return nil, err + } + return ts, nil +} + +// TimestampString returns the RFC 3339 string for valid Timestamps. For invalid +// Timestamps, it returns an error message in parentheses. +func TimestampString(ts *tspb.Timestamp) string { + t, err := Timestamp(ts) + if err != nil { + return fmt.Sprintf("(%v)", err) + } + return t.Format(time.RFC3339Nano) +} diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go new file mode 100644 index 0000000..e23e4a2 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go @@ -0,0 +1,160 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/protobuf/timestamp.proto + +/* +Package timestamp is a generated protocol buffer package. + +It is generated from these files: + google/protobuf/timestamp.proto + +It has these top-level messages: + Timestamp +*/ +package timestamp + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A Timestamp represents a point in time independent of any time zone +// or calendar, represented as seconds and fractions of seconds at +// nanosecond resolution in UTC Epoch time. It is encoded using the +// Proleptic Gregorian Calendar which extends the Gregorian calendar +// backwards to year one. It is encoded assuming all minutes are 60 +// seconds long, i.e. leap seconds are "smeared" so that no leap second +// table is needed for interpretation. Range is from +// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. +// By restricting to that range, we ensure that we can convert to +// and from RFC 3339 date strings. +// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// +// # Examples +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// +// Example 5: Compute Timestamp from current time in Python. +// +// timestamp = Timestamp() +// timestamp.GetCurrentTime() +// +// # JSON Mapping +// +// In JSON format, the Timestamp type is encoded as a string in the +// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the +// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" +// where {year} is always expressed using four digits while {month}, {day}, +// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional +// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), +// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone +// is required, though only UTC (as indicated by "Z") is presently supported. +// +// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past +// 01:30 UTC on January 15, 2017. +// +// In JavaScript, one can convert a Date object to this format using the +// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// method. In Python, a standard `datetime.datetime` object can be converted +// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) +// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one +// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) +// to obtain a formatter capable of generating timestamps in this format. +// +// +type Timestamp struct { + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + Seconds int64 `protobuf:"varint,1,opt,name=seconds" json:"seconds,omitempty"` + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + Nanos int32 `protobuf:"varint,2,opt,name=nanos" json:"nanos,omitempty"` +} + +func (m *Timestamp) Reset() { *m = Timestamp{} } +func (m *Timestamp) String() string { return proto.CompactTextString(m) } +func (*Timestamp) ProtoMessage() {} +func (*Timestamp) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (*Timestamp) XXX_WellKnownType() string { return "Timestamp" } + +func (m *Timestamp) GetSeconds() int64 { + if m != nil { + return m.Seconds + } + return 0 +} + +func (m *Timestamp) GetNanos() int32 { + if m != nil { + return m.Nanos + } + return 0 +} + +func init() { + proto.RegisterType((*Timestamp)(nil), "google.protobuf.Timestamp") +} + +func init() { proto.RegisterFile("google/protobuf/timestamp.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 191 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0xc9, 0xcc, 0x4d, + 0x2d, 0x2e, 0x49, 0xcc, 0x2d, 0xd0, 0x03, 0x0b, 0x09, 0xf1, 0x43, 0x14, 0xe8, 0xc1, 0x14, 0x28, + 0x59, 0x73, 0x71, 0x86, 0xc0, 0xd4, 0x08, 0x49, 0x70, 0xb1, 0x17, 0xa7, 0x26, 0xe7, 0xe7, 0xa5, + 0x14, 0x4b, 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0xc1, 0xb8, 0x42, 0x22, 0x5c, 0xac, 0x79, 0x89, + 0x79, 0xf9, 0xc5, 0x12, 0x4c, 0x0a, 0x8c, 0x1a, 0xac, 0x41, 0x10, 0x8e, 0x53, 0x1d, 0x97, 0x70, + 0x72, 0x7e, 0xae, 0x1e, 0x9a, 0x99, 0x4e, 0x7c, 0x70, 0x13, 0x03, 0x40, 0x42, 0x01, 0x8c, 0x51, + 0xda, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0x39, 0x89, + 0x79, 0xe9, 0x08, 0x27, 0x16, 0x94, 0x54, 0x16, 0xa4, 0x16, 0x23, 0x5c, 0xfa, 0x83, 0x91, 0x71, + 0x11, 0x13, 0xb3, 0x7b, 0x80, 0xd3, 0x2a, 0x26, 0x39, 0x77, 0x88, 0xc9, 0x01, 0x50, 0xb5, 0x7a, + 0xe1, 0xa9, 0x39, 0x39, 0xde, 0x79, 0xf9, 0xe5, 0x79, 0x21, 0x20, 0x3d, 0x49, 0x6c, 0x60, 0x43, + 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x77, 0x4a, 0x07, 0xf7, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto new file mode 100644 index 0000000..b7cbd17 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto @@ -0,0 +1,133 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/timestamp"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TimestampProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// A Timestamp represents a point in time independent of any time zone +// or calendar, represented as seconds and fractions of seconds at +// nanosecond resolution in UTC Epoch time. It is encoded using the +// Proleptic Gregorian Calendar which extends the Gregorian calendar +// backwards to year one. It is encoded assuming all minutes are 60 +// seconds long, i.e. leap seconds are "smeared" so that no leap second +// table is needed for interpretation. Range is from +// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. +// By restricting to that range, we ensure that we can convert to +// and from RFC 3339 date strings. +// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// +// # Examples +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// +// Example 5: Compute Timestamp from current time in Python. +// +// timestamp = Timestamp() +// timestamp.GetCurrentTime() +// +// # JSON Mapping +// +// In JSON format, the Timestamp type is encoded as a string in the +// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the +// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" +// where {year} is always expressed using four digits while {month}, {day}, +// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional +// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), +// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone +// is required, though only UTC (as indicated by "Z") is presently supported. +// +// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past +// 01:30 UTC on January 15, 2017. +// +// In JavaScript, one can convert a Date object to this format using the +// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// method. In Python, a standard `datetime.datetime` object can be converted +// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) +// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one +// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) +// to obtain a formatter capable of generating timestamps in this format. +// +// +message Timestamp { + + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + int64 seconds = 1; + + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + int32 nanos = 2; +} diff --git a/vendor/github.com/golang/snappy/.gitignore b/vendor/github.com/golang/snappy/.gitignore new file mode 100644 index 0000000..042091d --- /dev/null +++ b/vendor/github.com/golang/snappy/.gitignore @@ -0,0 +1,16 @@ +cmd/snappytool/snappytool +testdata/bench + +# These explicitly listed benchmark data files are for an obsolete version of +# snappy_test.go. +testdata/alice29.txt +testdata/asyoulik.txt +testdata/fireworks.jpeg +testdata/geo.protodata +testdata/html +testdata/html_x_4 +testdata/kppkn.gtb +testdata/lcet10.txt +testdata/paper-100k.pdf +testdata/plrabn12.txt +testdata/urls.10K diff --git a/vendor/github.com/golang/snappy/AUTHORS b/vendor/github.com/golang/snappy/AUTHORS new file mode 100644 index 0000000..bcfa195 --- /dev/null +++ b/vendor/github.com/golang/snappy/AUTHORS @@ -0,0 +1,15 @@ +# This is the official list of Snappy-Go authors for copyright purposes. +# This file is distinct from the CONTRIBUTORS files. +# See the latter for an explanation. + +# Names should be added to this file as +# Name or Organization +# The email address is not required for organizations. + +# Please keep the list sorted. + +Damian Gryski +Google Inc. +Jan Mercl <0xjnml@gmail.com> +Rodolfo Carvalho +Sebastien Binet diff --git a/vendor/github.com/golang/snappy/CONTRIBUTORS b/vendor/github.com/golang/snappy/CONTRIBUTORS new file mode 100644 index 0000000..931ae31 --- /dev/null +++ b/vendor/github.com/golang/snappy/CONTRIBUTORS @@ -0,0 +1,37 @@ +# This is the official list of people who can contribute +# (and typically have contributed) code to the Snappy-Go repository. +# The AUTHORS file lists the copyright holders; this file +# lists people. For example, Google employees are listed here +# but not in AUTHORS, because Google holds the copyright. +# +# The submission process automatically checks to make sure +# that people submitting code are listed in this file (by email address). +# +# Names should be added to this file only after verifying that +# the individual or the individual's organization has agreed to +# the appropriate Contributor License Agreement, found here: +# +# http://code.google.com/legal/individual-cla-v1.0.html +# http://code.google.com/legal/corporate-cla-v1.0.html +# +# The agreement for individuals can be filled out on the web. +# +# When adding J Random Contributor's name to this file, +# either J's name or J's organization's name should be +# added to the AUTHORS file, depending on whether the +# individual or corporate CLA was used. + +# Names should be added to this file like so: +# Name + +# Please keep the list sorted. + +Damian Gryski +Jan Mercl <0xjnml@gmail.com> +Kai Backman +Marc-Antoine Ruel +Nigel Tao +Rob Pike +Rodolfo Carvalho +Russ Cox +Sebastien Binet diff --git a/vendor/github.com/golang/snappy/LICENSE b/vendor/github.com/golang/snappy/LICENSE new file mode 100644 index 0000000..6050c10 --- /dev/null +++ b/vendor/github.com/golang/snappy/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/golang/snappy/README b/vendor/github.com/golang/snappy/README new file mode 100644 index 0000000..cea1287 --- /dev/null +++ b/vendor/github.com/golang/snappy/README @@ -0,0 +1,107 @@ +The Snappy compression format in the Go programming language. + +To download and install from source: +$ go get github.com/golang/snappy + +Unless otherwise noted, the Snappy-Go source files are distributed +under the BSD-style license found in the LICENSE file. + + + +Benchmarks. + +The golang/snappy benchmarks include compressing (Z) and decompressing (U) ten +or so files, the same set used by the C++ Snappy code (github.com/google/snappy +and note the "google", not "golang"). On an "Intel(R) Core(TM) i7-3770 CPU @ +3.40GHz", Go's GOARCH=amd64 numbers as of 2016-05-29: + +"go test -test.bench=." + +_UFlat0-8 2.19GB/s ± 0% html +_UFlat1-8 1.41GB/s ± 0% urls +_UFlat2-8 23.5GB/s ± 2% jpg +_UFlat3-8 1.91GB/s ± 0% jpg_200 +_UFlat4-8 14.0GB/s ± 1% pdf +_UFlat5-8 1.97GB/s ± 0% html4 +_UFlat6-8 814MB/s ± 0% txt1 +_UFlat7-8 785MB/s ± 0% txt2 +_UFlat8-8 857MB/s ± 0% txt3 +_UFlat9-8 719MB/s ± 1% txt4 +_UFlat10-8 2.84GB/s ± 0% pb +_UFlat11-8 1.05GB/s ± 0% gaviota + +_ZFlat0-8 1.04GB/s ± 0% html +_ZFlat1-8 534MB/s ± 0% urls +_ZFlat2-8 15.7GB/s ± 1% jpg +_ZFlat3-8 740MB/s ± 3% jpg_200 +_ZFlat4-8 9.20GB/s ± 1% pdf +_ZFlat5-8 991MB/s ± 0% html4 +_ZFlat6-8 379MB/s ± 0% txt1 +_ZFlat7-8 352MB/s ± 0% txt2 +_ZFlat8-8 396MB/s ± 1% txt3 +_ZFlat9-8 327MB/s ± 1% txt4 +_ZFlat10-8 1.33GB/s ± 1% pb +_ZFlat11-8 605MB/s ± 1% gaviota + + + +"go test -test.bench=. -tags=noasm" + +_UFlat0-8 621MB/s ± 2% html +_UFlat1-8 494MB/s ± 1% urls +_UFlat2-8 23.2GB/s ± 1% jpg +_UFlat3-8 1.12GB/s ± 1% jpg_200 +_UFlat4-8 4.35GB/s ± 1% pdf +_UFlat5-8 609MB/s ± 0% html4 +_UFlat6-8 296MB/s ± 0% txt1 +_UFlat7-8 288MB/s ± 0% txt2 +_UFlat8-8 309MB/s ± 1% txt3 +_UFlat9-8 280MB/s ± 1% txt4 +_UFlat10-8 753MB/s ± 0% pb +_UFlat11-8 400MB/s ± 0% gaviota + +_ZFlat0-8 409MB/s ± 1% html +_ZFlat1-8 250MB/s ± 1% urls +_ZFlat2-8 12.3GB/s ± 1% jpg +_ZFlat3-8 132MB/s ± 0% jpg_200 +_ZFlat4-8 2.92GB/s ± 0% pdf +_ZFlat5-8 405MB/s ± 1% html4 +_ZFlat6-8 179MB/s ± 1% txt1 +_ZFlat7-8 170MB/s ± 1% txt2 +_ZFlat8-8 189MB/s ± 1% txt3 +_ZFlat9-8 164MB/s ± 1% txt4 +_ZFlat10-8 479MB/s ± 1% pb +_ZFlat11-8 270MB/s ± 1% gaviota + + + +For comparison (Go's encoded output is byte-for-byte identical to C++'s), here +are the numbers from C++ Snappy's + +make CXXFLAGS="-O2 -DNDEBUG -g" clean snappy_unittest.log && cat snappy_unittest.log + +BM_UFlat/0 2.4GB/s html +BM_UFlat/1 1.4GB/s urls +BM_UFlat/2 21.8GB/s jpg +BM_UFlat/3 1.5GB/s jpg_200 +BM_UFlat/4 13.3GB/s pdf +BM_UFlat/5 2.1GB/s html4 +BM_UFlat/6 1.0GB/s txt1 +BM_UFlat/7 959.4MB/s txt2 +BM_UFlat/8 1.0GB/s txt3 +BM_UFlat/9 864.5MB/s txt4 +BM_UFlat/10 2.9GB/s pb +BM_UFlat/11 1.2GB/s gaviota + +BM_ZFlat/0 944.3MB/s html (22.31 %) +BM_ZFlat/1 501.6MB/s urls (47.78 %) +BM_ZFlat/2 14.3GB/s jpg (99.95 %) +BM_ZFlat/3 538.3MB/s jpg_200 (73.00 %) +BM_ZFlat/4 8.3GB/s pdf (83.30 %) +BM_ZFlat/5 903.5MB/s html4 (22.52 %) +BM_ZFlat/6 336.0MB/s txt1 (57.88 %) +BM_ZFlat/7 312.3MB/s txt2 (61.91 %) +BM_ZFlat/8 353.1MB/s txt3 (54.99 %) +BM_ZFlat/9 289.9MB/s txt4 (66.26 %) +BM_ZFlat/10 1.2GB/s pb (19.68 %) +BM_ZFlat/11 527.4MB/s gaviota (37.72 %) diff --git a/vendor/github.com/golang/snappy/decode.go b/vendor/github.com/golang/snappy/decode.go new file mode 100644 index 0000000..72efb03 --- /dev/null +++ b/vendor/github.com/golang/snappy/decode.go @@ -0,0 +1,237 @@ +// Copyright 2011 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package snappy + +import ( + "encoding/binary" + "errors" + "io" +) + +var ( + // ErrCorrupt reports that the input is invalid. + ErrCorrupt = errors.New("snappy: corrupt input") + // ErrTooLarge reports that the uncompressed length is too large. + ErrTooLarge = errors.New("snappy: decoded block is too large") + // ErrUnsupported reports that the input isn't supported. + ErrUnsupported = errors.New("snappy: unsupported input") + + errUnsupportedLiteralLength = errors.New("snappy: unsupported literal length") +) + +// DecodedLen returns the length of the decoded block. +func DecodedLen(src []byte) (int, error) { + v, _, err := decodedLen(src) + return v, err +} + +// decodedLen returns the length of the decoded block and the number of bytes +// that the length header occupied. +func decodedLen(src []byte) (blockLen, headerLen int, err error) { + v, n := binary.Uvarint(src) + if n <= 0 || v > 0xffffffff { + return 0, 0, ErrCorrupt + } + + const wordSize = 32 << (^uint(0) >> 32 & 1) + if wordSize == 32 && v > 0x7fffffff { + return 0, 0, ErrTooLarge + } + return int(v), n, nil +} + +const ( + decodeErrCodeCorrupt = 1 + decodeErrCodeUnsupportedLiteralLength = 2 +) + +// Decode returns the decoded form of src. The returned slice may be a sub- +// slice of dst if dst was large enough to hold the entire decoded block. +// Otherwise, a newly allocated slice will be returned. +// +// The dst and src must not overlap. It is valid to pass a nil dst. +func Decode(dst, src []byte) ([]byte, error) { + dLen, s, err := decodedLen(src) + if err != nil { + return nil, err + } + if dLen <= len(dst) { + dst = dst[:dLen] + } else { + dst = make([]byte, dLen) + } + switch decode(dst, src[s:]) { + case 0: + return dst, nil + case decodeErrCodeUnsupportedLiteralLength: + return nil, errUnsupportedLiteralLength + } + return nil, ErrCorrupt +} + +// NewReader returns a new Reader that decompresses from r, using the framing +// format described at +// https://github.com/google/snappy/blob/master/framing_format.txt +func NewReader(r io.Reader) *Reader { + return &Reader{ + r: r, + decoded: make([]byte, maxBlockSize), + buf: make([]byte, maxEncodedLenOfMaxBlockSize+checksumSize), + } +} + +// Reader is an io.Reader that can read Snappy-compressed bytes. +type Reader struct { + r io.Reader + err error + decoded []byte + buf []byte + // decoded[i:j] contains decoded bytes that have not yet been passed on. + i, j int + readHeader bool +} + +// Reset discards any buffered data, resets all state, and switches the Snappy +// reader to read from r. This permits reusing a Reader rather than allocating +// a new one. +func (r *Reader) Reset(reader io.Reader) { + r.r = reader + r.err = nil + r.i = 0 + r.j = 0 + r.readHeader = false +} + +func (r *Reader) readFull(p []byte, allowEOF bool) (ok bool) { + if _, r.err = io.ReadFull(r.r, p); r.err != nil { + if r.err == io.ErrUnexpectedEOF || (r.err == io.EOF && !allowEOF) { + r.err = ErrCorrupt + } + return false + } + return true +} + +// Read satisfies the io.Reader interface. +func (r *Reader) Read(p []byte) (int, error) { + if r.err != nil { + return 0, r.err + } + for { + if r.i < r.j { + n := copy(p, r.decoded[r.i:r.j]) + r.i += n + return n, nil + } + if !r.readFull(r.buf[:4], true) { + return 0, r.err + } + chunkType := r.buf[0] + if !r.readHeader { + if chunkType != chunkTypeStreamIdentifier { + r.err = ErrCorrupt + return 0, r.err + } + r.readHeader = true + } + chunkLen := int(r.buf[1]) | int(r.buf[2])<<8 | int(r.buf[3])<<16 + if chunkLen > len(r.buf) { + r.err = ErrUnsupported + return 0, r.err + } + + // The chunk types are specified at + // https://github.com/google/snappy/blob/master/framing_format.txt + switch chunkType { + case chunkTypeCompressedData: + // Section 4.2. Compressed data (chunk type 0x00). + if chunkLen < checksumSize { + r.err = ErrCorrupt + return 0, r.err + } + buf := r.buf[:chunkLen] + if !r.readFull(buf, false) { + return 0, r.err + } + checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 + buf = buf[checksumSize:] + + n, err := DecodedLen(buf) + if err != nil { + r.err = err + return 0, r.err + } + if n > len(r.decoded) { + r.err = ErrCorrupt + return 0, r.err + } + if _, err := Decode(r.decoded, buf); err != nil { + r.err = err + return 0, r.err + } + if crc(r.decoded[:n]) != checksum { + r.err = ErrCorrupt + return 0, r.err + } + r.i, r.j = 0, n + continue + + case chunkTypeUncompressedData: + // Section 4.3. Uncompressed data (chunk type 0x01). + if chunkLen < checksumSize { + r.err = ErrCorrupt + return 0, r.err + } + buf := r.buf[:checksumSize] + if !r.readFull(buf, false) { + return 0, r.err + } + checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 + // Read directly into r.decoded instead of via r.buf. + n := chunkLen - checksumSize + if n > len(r.decoded) { + r.err = ErrCorrupt + return 0, r.err + } + if !r.readFull(r.decoded[:n], false) { + return 0, r.err + } + if crc(r.decoded[:n]) != checksum { + r.err = ErrCorrupt + return 0, r.err + } + r.i, r.j = 0, n + continue + + case chunkTypeStreamIdentifier: + // Section 4.1. Stream identifier (chunk type 0xff). + if chunkLen != len(magicBody) { + r.err = ErrCorrupt + return 0, r.err + } + if !r.readFull(r.buf[:len(magicBody)], false) { + return 0, r.err + } + for i := 0; i < len(magicBody); i++ { + if r.buf[i] != magicBody[i] { + r.err = ErrCorrupt + return 0, r.err + } + } + continue + } + + if chunkType <= 0x7f { + // Section 4.5. Reserved unskippable chunks (chunk types 0x02-0x7f). + r.err = ErrUnsupported + return 0, r.err + } + // Section 4.4 Padding (chunk type 0xfe). + // Section 4.6. Reserved skippable chunks (chunk types 0x80-0xfd). + if !r.readFull(r.buf[:chunkLen], false) { + return 0, r.err + } + } +} diff --git a/vendor/github.com/golang/snappy/decode_amd64.go b/vendor/github.com/golang/snappy/decode_amd64.go new file mode 100644 index 0000000..fcd192b --- /dev/null +++ b/vendor/github.com/golang/snappy/decode_amd64.go @@ -0,0 +1,14 @@ +// Copyright 2016 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !appengine +// +build gc +// +build !noasm + +package snappy + +// decode has the same semantics as in decode_other.go. +// +//go:noescape +func decode(dst, src []byte) int diff --git a/vendor/github.com/golang/snappy/decode_amd64.s b/vendor/github.com/golang/snappy/decode_amd64.s new file mode 100644 index 0000000..e6179f6 --- /dev/null +++ b/vendor/github.com/golang/snappy/decode_amd64.s @@ -0,0 +1,490 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !appengine +// +build gc +// +build !noasm + +#include "textflag.h" + +// The asm code generally follows the pure Go code in decode_other.go, except +// where marked with a "!!!". + +// func decode(dst, src []byte) int +// +// All local variables fit into registers. The non-zero stack size is only to +// spill registers and push args when issuing a CALL. The register allocation: +// - AX scratch +// - BX scratch +// - CX length or x +// - DX offset +// - SI &src[s] +// - DI &dst[d] +// + R8 dst_base +// + R9 dst_len +// + R10 dst_base + dst_len +// + R11 src_base +// + R12 src_len +// + R13 src_base + src_len +// - R14 used by doCopy +// - R15 used by doCopy +// +// The registers R8-R13 (marked with a "+") are set at the start of the +// function, and after a CALL returns, and are not otherwise modified. +// +// The d variable is implicitly DI - R8, and len(dst)-d is R10 - DI. +// The s variable is implicitly SI - R11, and len(src)-s is R13 - SI. +TEXT ·decode(SB), NOSPLIT, $48-56 + // Initialize SI, DI and R8-R13. + MOVQ dst_base+0(FP), R8 + MOVQ dst_len+8(FP), R9 + MOVQ R8, DI + MOVQ R8, R10 + ADDQ R9, R10 + MOVQ src_base+24(FP), R11 + MOVQ src_len+32(FP), R12 + MOVQ R11, SI + MOVQ R11, R13 + ADDQ R12, R13 + +loop: + // for s < len(src) + CMPQ SI, R13 + JEQ end + + // CX = uint32(src[s]) + // + // switch src[s] & 0x03 + MOVBLZX (SI), CX + MOVL CX, BX + ANDL $3, BX + CMPL BX, $1 + JAE tagCopy + + // ---------------------------------------- + // The code below handles literal tags. + + // case tagLiteral: + // x := uint32(src[s] >> 2) + // switch + SHRL $2, CX + CMPL CX, $60 + JAE tagLit60Plus + + // case x < 60: + // s++ + INCQ SI + +doLit: + // This is the end of the inner "switch", when we have a literal tag. + // + // We assume that CX == x and x fits in a uint32, where x is the variable + // used in the pure Go decode_other.go code. + + // length = int(x) + 1 + // + // Unlike the pure Go code, we don't need to check if length <= 0 because + // CX can hold 64 bits, so the increment cannot overflow. + INCQ CX + + // Prepare to check if copying length bytes will run past the end of dst or + // src. + // + // AX = len(dst) - d + // BX = len(src) - s + MOVQ R10, AX + SUBQ DI, AX + MOVQ R13, BX + SUBQ SI, BX + + // !!! Try a faster technique for short (16 or fewer bytes) copies. + // + // if length > 16 || len(dst)-d < 16 || len(src)-s < 16 { + // goto callMemmove // Fall back on calling runtime·memmove. + // } + // + // The C++ snappy code calls this TryFastAppend. It also checks len(src)-s + // against 21 instead of 16, because it cannot assume that all of its input + // is contiguous in memory and so it needs to leave enough source bytes to + // read the next tag without refilling buffers, but Go's Decode assumes + // contiguousness (the src argument is a []byte). + CMPQ CX, $16 + JGT callMemmove + CMPQ AX, $16 + JLT callMemmove + CMPQ BX, $16 + JLT callMemmove + + // !!! Implement the copy from src to dst as a 16-byte load and store. + // (Decode's documentation says that dst and src must not overlap.) + // + // This always copies 16 bytes, instead of only length bytes, but that's + // OK. If the input is a valid Snappy encoding then subsequent iterations + // will fix up the overrun. Otherwise, Decode returns a nil []byte (and a + // non-nil error), so the overrun will be ignored. + // + // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or + // 16-byte loads and stores. This technique probably wouldn't be as + // effective on architectures that are fussier about alignment. + MOVOU 0(SI), X0 + MOVOU X0, 0(DI) + + // d += length + // s += length + ADDQ CX, DI + ADDQ CX, SI + JMP loop + +callMemmove: + // if length > len(dst)-d || length > len(src)-s { etc } + CMPQ CX, AX + JGT errCorrupt + CMPQ CX, BX + JGT errCorrupt + + // copy(dst[d:], src[s:s+length]) + // + // This means calling runtime·memmove(&dst[d], &src[s], length), so we push + // DI, SI and CX as arguments. Coincidentally, we also need to spill those + // three registers to the stack, to save local variables across the CALL. + MOVQ DI, 0(SP) + MOVQ SI, 8(SP) + MOVQ CX, 16(SP) + MOVQ DI, 24(SP) + MOVQ SI, 32(SP) + MOVQ CX, 40(SP) + CALL runtime·memmove(SB) + + // Restore local variables: unspill registers from the stack and + // re-calculate R8-R13. + MOVQ 24(SP), DI + MOVQ 32(SP), SI + MOVQ 40(SP), CX + MOVQ dst_base+0(FP), R8 + MOVQ dst_len+8(FP), R9 + MOVQ R8, R10 + ADDQ R9, R10 + MOVQ src_base+24(FP), R11 + MOVQ src_len+32(FP), R12 + MOVQ R11, R13 + ADDQ R12, R13 + + // d += length + // s += length + ADDQ CX, DI + ADDQ CX, SI + JMP loop + +tagLit60Plus: + // !!! This fragment does the + // + // s += x - 58; if uint(s) > uint(len(src)) { etc } + // + // checks. In the asm version, we code it once instead of once per switch case. + ADDQ CX, SI + SUBQ $58, SI + MOVQ SI, BX + SUBQ R11, BX + CMPQ BX, R12 + JA errCorrupt + + // case x == 60: + CMPL CX, $61 + JEQ tagLit61 + JA tagLit62Plus + + // x = uint32(src[s-1]) + MOVBLZX -1(SI), CX + JMP doLit + +tagLit61: + // case x == 61: + // x = uint32(src[s-2]) | uint32(src[s-1])<<8 + MOVWLZX -2(SI), CX + JMP doLit + +tagLit62Plus: + CMPL CX, $62 + JA tagLit63 + + // case x == 62: + // x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 + MOVWLZX -3(SI), CX + MOVBLZX -1(SI), BX + SHLL $16, BX + ORL BX, CX + JMP doLit + +tagLit63: + // case x == 63: + // x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 + MOVL -4(SI), CX + JMP doLit + +// The code above handles literal tags. +// ---------------------------------------- +// The code below handles copy tags. + +tagCopy4: + // case tagCopy4: + // s += 5 + ADDQ $5, SI + + // if uint(s) > uint(len(src)) { etc } + MOVQ SI, BX + SUBQ R11, BX + CMPQ BX, R12 + JA errCorrupt + + // length = 1 + int(src[s-5])>>2 + SHRQ $2, CX + INCQ CX + + // offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24) + MOVLQZX -4(SI), DX + JMP doCopy + +tagCopy2: + // case tagCopy2: + // s += 3 + ADDQ $3, SI + + // if uint(s) > uint(len(src)) { etc } + MOVQ SI, BX + SUBQ R11, BX + CMPQ BX, R12 + JA errCorrupt + + // length = 1 + int(src[s-3])>>2 + SHRQ $2, CX + INCQ CX + + // offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8) + MOVWQZX -2(SI), DX + JMP doCopy + +tagCopy: + // We have a copy tag. We assume that: + // - BX == src[s] & 0x03 + // - CX == src[s] + CMPQ BX, $2 + JEQ tagCopy2 + JA tagCopy4 + + // case tagCopy1: + // s += 2 + ADDQ $2, SI + + // if uint(s) > uint(len(src)) { etc } + MOVQ SI, BX + SUBQ R11, BX + CMPQ BX, R12 + JA errCorrupt + + // offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])) + MOVQ CX, DX + ANDQ $0xe0, DX + SHLQ $3, DX + MOVBQZX -1(SI), BX + ORQ BX, DX + + // length = 4 + int(src[s-2])>>2&0x7 + SHRQ $2, CX + ANDQ $7, CX + ADDQ $4, CX + +doCopy: + // This is the end of the outer "switch", when we have a copy tag. + // + // We assume that: + // - CX == length && CX > 0 + // - DX == offset + + // if offset <= 0 { etc } + CMPQ DX, $0 + JLE errCorrupt + + // if d < offset { etc } + MOVQ DI, BX + SUBQ R8, BX + CMPQ BX, DX + JLT errCorrupt + + // if length > len(dst)-d { etc } + MOVQ R10, BX + SUBQ DI, BX + CMPQ CX, BX + JGT errCorrupt + + // forwardCopy(dst[d:d+length], dst[d-offset:]); d += length + // + // Set: + // - R14 = len(dst)-d + // - R15 = &dst[d-offset] + MOVQ R10, R14 + SUBQ DI, R14 + MOVQ DI, R15 + SUBQ DX, R15 + + // !!! Try a faster technique for short (16 or fewer bytes) forward copies. + // + // First, try using two 8-byte load/stores, similar to the doLit technique + // above. Even if dst[d:d+length] and dst[d-offset:] can overlap, this is + // still OK if offset >= 8. Note that this has to be two 8-byte load/stores + // and not one 16-byte load/store, and the first store has to be before the + // second load, due to the overlap if offset is in the range [8, 16). + // + // if length > 16 || offset < 8 || len(dst)-d < 16 { + // goto slowForwardCopy + // } + // copy 16 bytes + // d += length + CMPQ CX, $16 + JGT slowForwardCopy + CMPQ DX, $8 + JLT slowForwardCopy + CMPQ R14, $16 + JLT slowForwardCopy + MOVQ 0(R15), AX + MOVQ AX, 0(DI) + MOVQ 8(R15), BX + MOVQ BX, 8(DI) + ADDQ CX, DI + JMP loop + +slowForwardCopy: + // !!! If the forward copy is longer than 16 bytes, or if offset < 8, we + // can still try 8-byte load stores, provided we can overrun up to 10 extra + // bytes. As above, the overrun will be fixed up by subsequent iterations + // of the outermost loop. + // + // The C++ snappy code calls this technique IncrementalCopyFastPath. Its + // commentary says: + // + // ---- + // + // The main part of this loop is a simple copy of eight bytes at a time + // until we've copied (at least) the requested amount of bytes. However, + // if d and d-offset are less than eight bytes apart (indicating a + // repeating pattern of length < 8), we first need to expand the pattern in + // order to get the correct results. For instance, if the buffer looks like + // this, with the eight-byte and patterns marked as + // intervals: + // + // abxxxxxxxxxxxx + // [------] d-offset + // [------] d + // + // a single eight-byte copy from to will repeat the pattern + // once, after which we can move two bytes without moving : + // + // ababxxxxxxxxxx + // [------] d-offset + // [------] d + // + // and repeat the exercise until the two no longer overlap. + // + // This allows us to do very well in the special case of one single byte + // repeated many times, without taking a big hit for more general cases. + // + // The worst case of extra writing past the end of the match occurs when + // offset == 1 and length == 1; the last copy will read from byte positions + // [0..7] and write to [4..11], whereas it was only supposed to write to + // position 1. Thus, ten excess bytes. + // + // ---- + // + // That "10 byte overrun" worst case is confirmed by Go's + // TestSlowForwardCopyOverrun, which also tests the fixUpSlowForwardCopy + // and finishSlowForwardCopy algorithm. + // + // if length > len(dst)-d-10 { + // goto verySlowForwardCopy + // } + SUBQ $10, R14 + CMPQ CX, R14 + JGT verySlowForwardCopy + +makeOffsetAtLeast8: + // !!! As above, expand the pattern so that offset >= 8 and we can use + // 8-byte load/stores. + // + // for offset < 8 { + // copy 8 bytes from dst[d-offset:] to dst[d:] + // length -= offset + // d += offset + // offset += offset + // // The two previous lines together means that d-offset, and therefore + // // R15, is unchanged. + // } + CMPQ DX, $8 + JGE fixUpSlowForwardCopy + MOVQ (R15), BX + MOVQ BX, (DI) + SUBQ DX, CX + ADDQ DX, DI + ADDQ DX, DX + JMP makeOffsetAtLeast8 + +fixUpSlowForwardCopy: + // !!! Add length (which might be negative now) to d (implied by DI being + // &dst[d]) so that d ends up at the right place when we jump back to the + // top of the loop. Before we do that, though, we save DI to AX so that, if + // length is positive, copying the remaining length bytes will write to the + // right place. + MOVQ DI, AX + ADDQ CX, DI + +finishSlowForwardCopy: + // !!! Repeat 8-byte load/stores until length <= 0. Ending with a negative + // length means that we overrun, but as above, that will be fixed up by + // subsequent iterations of the outermost loop. + CMPQ CX, $0 + JLE loop + MOVQ (R15), BX + MOVQ BX, (AX) + ADDQ $8, R15 + ADDQ $8, AX + SUBQ $8, CX + JMP finishSlowForwardCopy + +verySlowForwardCopy: + // verySlowForwardCopy is a simple implementation of forward copy. In C + // parlance, this is a do/while loop instead of a while loop, since we know + // that length > 0. In Go syntax: + // + // for { + // dst[d] = dst[d - offset] + // d++ + // length-- + // if length == 0 { + // break + // } + // } + MOVB (R15), BX + MOVB BX, (DI) + INCQ R15 + INCQ DI + DECQ CX + JNZ verySlowForwardCopy + JMP loop + +// The code above handles copy tags. +// ---------------------------------------- + +end: + // This is the end of the "for s < len(src)". + // + // if d != len(dst) { etc } + CMPQ DI, R10 + JNE errCorrupt + + // return 0 + MOVQ $0, ret+48(FP) + RET + +errCorrupt: + // return decodeErrCodeCorrupt + MOVQ $1, ret+48(FP) + RET diff --git a/vendor/github.com/golang/snappy/decode_other.go b/vendor/github.com/golang/snappy/decode_other.go new file mode 100644 index 0000000..8c9f204 --- /dev/null +++ b/vendor/github.com/golang/snappy/decode_other.go @@ -0,0 +1,101 @@ +// Copyright 2016 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !amd64 appengine !gc noasm + +package snappy + +// decode writes the decoding of src to dst. It assumes that the varint-encoded +// length of the decompressed bytes has already been read, and that len(dst) +// equals that length. +// +// It returns 0 on success or a decodeErrCodeXxx error code on failure. +func decode(dst, src []byte) int { + var d, s, offset, length int + for s < len(src) { + switch src[s] & 0x03 { + case tagLiteral: + x := uint32(src[s] >> 2) + switch { + case x < 60: + s++ + case x == 60: + s += 2 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + x = uint32(src[s-1]) + case x == 61: + s += 3 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + x = uint32(src[s-2]) | uint32(src[s-1])<<8 + case x == 62: + s += 4 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 + case x == 63: + s += 5 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 + } + length = int(x) + 1 + if length <= 0 { + return decodeErrCodeUnsupportedLiteralLength + } + if length > len(dst)-d || length > len(src)-s { + return decodeErrCodeCorrupt + } + copy(dst[d:], src[s:s+length]) + d += length + s += length + continue + + case tagCopy1: + s += 2 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + length = 4 + int(src[s-2])>>2&0x7 + offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])) + + case tagCopy2: + s += 3 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + length = 1 + int(src[s-3])>>2 + offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8) + + case tagCopy4: + s += 5 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + length = 1 + int(src[s-5])>>2 + offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24) + } + + if offset <= 0 || d < offset || length > len(dst)-d { + return decodeErrCodeCorrupt + } + // Copy from an earlier sub-slice of dst to a later sub-slice. Unlike + // the built-in copy function, this byte-by-byte copy always runs + // forwards, even if the slices overlap. Conceptually, this is: + // + // d += forwardCopy(dst[d:d+length], dst[d-offset:]) + for end := d + length; d != end; d++ { + dst[d] = dst[d-offset] + } + } + if d != len(dst) { + return decodeErrCodeCorrupt + } + return 0 +} diff --git a/vendor/github.com/golang/snappy/encode.go b/vendor/github.com/golang/snappy/encode.go new file mode 100644 index 0000000..8d393e9 --- /dev/null +++ b/vendor/github.com/golang/snappy/encode.go @@ -0,0 +1,285 @@ +// Copyright 2011 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package snappy + +import ( + "encoding/binary" + "errors" + "io" +) + +// Encode returns the encoded form of src. The returned slice may be a sub- +// slice of dst if dst was large enough to hold the entire encoded block. +// Otherwise, a newly allocated slice will be returned. +// +// The dst and src must not overlap. It is valid to pass a nil dst. +func Encode(dst, src []byte) []byte { + if n := MaxEncodedLen(len(src)); n < 0 { + panic(ErrTooLarge) + } else if len(dst) < n { + dst = make([]byte, n) + } + + // The block starts with the varint-encoded length of the decompressed bytes. + d := binary.PutUvarint(dst, uint64(len(src))) + + for len(src) > 0 { + p := src + src = nil + if len(p) > maxBlockSize { + p, src = p[:maxBlockSize], p[maxBlockSize:] + } + if len(p) < minNonLiteralBlockSize { + d += emitLiteral(dst[d:], p) + } else { + d += encodeBlock(dst[d:], p) + } + } + return dst[:d] +} + +// inputMargin is the minimum number of extra input bytes to keep, inside +// encodeBlock's inner loop. On some architectures, this margin lets us +// implement a fast path for emitLiteral, where the copy of short (<= 16 byte) +// literals can be implemented as a single load to and store from a 16-byte +// register. That literal's actual length can be as short as 1 byte, so this +// can copy up to 15 bytes too much, but that's OK as subsequent iterations of +// the encoding loop will fix up the copy overrun, and this inputMargin ensures +// that we don't overrun the dst and src buffers. +const inputMargin = 16 - 1 + +// minNonLiteralBlockSize is the minimum size of the input to encodeBlock that +// could be encoded with a copy tag. This is the minimum with respect to the +// algorithm used by encodeBlock, not a minimum enforced by the file format. +// +// The encoded output must start with at least a 1 byte literal, as there are +// no previous bytes to copy. A minimal (1 byte) copy after that, generated +// from an emitCopy call in encodeBlock's main loop, would require at least +// another inputMargin bytes, for the reason above: we want any emitLiteral +// calls inside encodeBlock's main loop to use the fast path if possible, which +// requires being able to overrun by inputMargin bytes. Thus, +// minNonLiteralBlockSize equals 1 + 1 + inputMargin. +// +// The C++ code doesn't use this exact threshold, but it could, as discussed at +// https://groups.google.com/d/topic/snappy-compression/oGbhsdIJSJ8/discussion +// The difference between Go (2+inputMargin) and C++ (inputMargin) is purely an +// optimization. It should not affect the encoded form. This is tested by +// TestSameEncodingAsCppShortCopies. +const minNonLiteralBlockSize = 1 + 1 + inputMargin + +// MaxEncodedLen returns the maximum length of a snappy block, given its +// uncompressed length. +// +// It will return a negative value if srcLen is too large to encode. +func MaxEncodedLen(srcLen int) int { + n := uint64(srcLen) + if n > 0xffffffff { + return -1 + } + // Compressed data can be defined as: + // compressed := item* literal* + // item := literal* copy + // + // The trailing literal sequence has a space blowup of at most 62/60 + // since a literal of length 60 needs one tag byte + one extra byte + // for length information. + // + // Item blowup is trickier to measure. Suppose the "copy" op copies + // 4 bytes of data. Because of a special check in the encoding code, + // we produce a 4-byte copy only if the offset is < 65536. Therefore + // the copy op takes 3 bytes to encode, and this type of item leads + // to at most the 62/60 blowup for representing literals. + // + // Suppose the "copy" op copies 5 bytes of data. If the offset is big + // enough, it will take 5 bytes to encode the copy op. Therefore the + // worst case here is a one-byte literal followed by a five-byte copy. + // That is, 6 bytes of input turn into 7 bytes of "compressed" data. + // + // This last factor dominates the blowup, so the final estimate is: + n = 32 + n + n/6 + if n > 0xffffffff { + return -1 + } + return int(n) +} + +var errClosed = errors.New("snappy: Writer is closed") + +// NewWriter returns a new Writer that compresses to w. +// +// The Writer returned does not buffer writes. There is no need to Flush or +// Close such a Writer. +// +// Deprecated: the Writer returned is not suitable for many small writes, only +// for few large writes. Use NewBufferedWriter instead, which is efficient +// regardless of the frequency and shape of the writes, and remember to Close +// that Writer when done. +func NewWriter(w io.Writer) *Writer { + return &Writer{ + w: w, + obuf: make([]byte, obufLen), + } +} + +// NewBufferedWriter returns a new Writer that compresses to w, using the +// framing format described at +// https://github.com/google/snappy/blob/master/framing_format.txt +// +// The Writer returned buffers writes. Users must call Close to guarantee all +// data has been forwarded to the underlying io.Writer. They may also call +// Flush zero or more times before calling Close. +func NewBufferedWriter(w io.Writer) *Writer { + return &Writer{ + w: w, + ibuf: make([]byte, 0, maxBlockSize), + obuf: make([]byte, obufLen), + } +} + +// Writer is an io.Writer that can write Snappy-compressed bytes. +type Writer struct { + w io.Writer + err error + + // ibuf is a buffer for the incoming (uncompressed) bytes. + // + // Its use is optional. For backwards compatibility, Writers created by the + // NewWriter function have ibuf == nil, do not buffer incoming bytes, and + // therefore do not need to be Flush'ed or Close'd. + ibuf []byte + + // obuf is a buffer for the outgoing (compressed) bytes. + obuf []byte + + // wroteStreamHeader is whether we have written the stream header. + wroteStreamHeader bool +} + +// Reset discards the writer's state and switches the Snappy writer to write to +// w. This permits reusing a Writer rather than allocating a new one. +func (w *Writer) Reset(writer io.Writer) { + w.w = writer + w.err = nil + if w.ibuf != nil { + w.ibuf = w.ibuf[:0] + } + w.wroteStreamHeader = false +} + +// Write satisfies the io.Writer interface. +func (w *Writer) Write(p []byte) (nRet int, errRet error) { + if w.ibuf == nil { + // Do not buffer incoming bytes. This does not perform or compress well + // if the caller of Writer.Write writes many small slices. This + // behavior is therefore deprecated, but still supported for backwards + // compatibility with code that doesn't explicitly Flush or Close. + return w.write(p) + } + + // The remainder of this method is based on bufio.Writer.Write from the + // standard library. + + for len(p) > (cap(w.ibuf)-len(w.ibuf)) && w.err == nil { + var n int + if len(w.ibuf) == 0 { + // Large write, empty buffer. + // Write directly from p to avoid copy. + n, _ = w.write(p) + } else { + n = copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) + w.ibuf = w.ibuf[:len(w.ibuf)+n] + w.Flush() + } + nRet += n + p = p[n:] + } + if w.err != nil { + return nRet, w.err + } + n := copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) + w.ibuf = w.ibuf[:len(w.ibuf)+n] + nRet += n + return nRet, nil +} + +func (w *Writer) write(p []byte) (nRet int, errRet error) { + if w.err != nil { + return 0, w.err + } + for len(p) > 0 { + obufStart := len(magicChunk) + if !w.wroteStreamHeader { + w.wroteStreamHeader = true + copy(w.obuf, magicChunk) + obufStart = 0 + } + + var uncompressed []byte + if len(p) > maxBlockSize { + uncompressed, p = p[:maxBlockSize], p[maxBlockSize:] + } else { + uncompressed, p = p, nil + } + checksum := crc(uncompressed) + + // Compress the buffer, discarding the result if the improvement + // isn't at least 12.5%. + compressed := Encode(w.obuf[obufHeaderLen:], uncompressed) + chunkType := uint8(chunkTypeCompressedData) + chunkLen := 4 + len(compressed) + obufEnd := obufHeaderLen + len(compressed) + if len(compressed) >= len(uncompressed)-len(uncompressed)/8 { + chunkType = chunkTypeUncompressedData + chunkLen = 4 + len(uncompressed) + obufEnd = obufHeaderLen + } + + // Fill in the per-chunk header that comes before the body. + w.obuf[len(magicChunk)+0] = chunkType + w.obuf[len(magicChunk)+1] = uint8(chunkLen >> 0) + w.obuf[len(magicChunk)+2] = uint8(chunkLen >> 8) + w.obuf[len(magicChunk)+3] = uint8(chunkLen >> 16) + w.obuf[len(magicChunk)+4] = uint8(checksum >> 0) + w.obuf[len(magicChunk)+5] = uint8(checksum >> 8) + w.obuf[len(magicChunk)+6] = uint8(checksum >> 16) + w.obuf[len(magicChunk)+7] = uint8(checksum >> 24) + + if _, err := w.w.Write(w.obuf[obufStart:obufEnd]); err != nil { + w.err = err + return nRet, err + } + if chunkType == chunkTypeUncompressedData { + if _, err := w.w.Write(uncompressed); err != nil { + w.err = err + return nRet, err + } + } + nRet += len(uncompressed) + } + return nRet, nil +} + +// Flush flushes the Writer to its underlying io.Writer. +func (w *Writer) Flush() error { + if w.err != nil { + return w.err + } + if len(w.ibuf) == 0 { + return nil + } + w.write(w.ibuf) + w.ibuf = w.ibuf[:0] + return w.err +} + +// Close calls Flush and then closes the Writer. +func (w *Writer) Close() error { + w.Flush() + ret := w.err + if w.err == nil { + w.err = errClosed + } + return ret +} diff --git a/vendor/github.com/golang/snappy/encode_amd64.go b/vendor/github.com/golang/snappy/encode_amd64.go new file mode 100644 index 0000000..150d91b --- /dev/null +++ b/vendor/github.com/golang/snappy/encode_amd64.go @@ -0,0 +1,29 @@ +// Copyright 2016 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !appengine +// +build gc +// +build !noasm + +package snappy + +// emitLiteral has the same semantics as in encode_other.go. +// +//go:noescape +func emitLiteral(dst, lit []byte) int + +// emitCopy has the same semantics as in encode_other.go. +// +//go:noescape +func emitCopy(dst []byte, offset, length int) int + +// extendMatch has the same semantics as in encode_other.go. +// +//go:noescape +func extendMatch(src []byte, i, j int) int + +// encodeBlock has the same semantics as in encode_other.go. +// +//go:noescape +func encodeBlock(dst, src []byte) (d int) diff --git a/vendor/github.com/golang/snappy/encode_amd64.s b/vendor/github.com/golang/snappy/encode_amd64.s new file mode 100644 index 0000000..adfd979 --- /dev/null +++ b/vendor/github.com/golang/snappy/encode_amd64.s @@ -0,0 +1,730 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !appengine +// +build gc +// +build !noasm + +#include "textflag.h" + +// The XXX lines assemble on Go 1.4, 1.5 and 1.7, but not 1.6, due to a +// Go toolchain regression. See https://github.com/golang/go/issues/15426 and +// https://github.com/golang/snappy/issues/29 +// +// As a workaround, the package was built with a known good assembler, and +// those instructions were disassembled by "objdump -d" to yield the +// 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 +// style comments, in AT&T asm syntax. Note that rsp here is a physical +// register, not Go/asm's SP pseudo-register (see https://golang.org/doc/asm). +// The instructions were then encoded as "BYTE $0x.." sequences, which assemble +// fine on Go 1.6. + +// The asm code generally follows the pure Go code in encode_other.go, except +// where marked with a "!!!". + +// ---------------------------------------------------------------------------- + +// func emitLiteral(dst, lit []byte) int +// +// All local variables fit into registers. The register allocation: +// - AX len(lit) +// - BX n +// - DX return value +// - DI &dst[i] +// - R10 &lit[0] +// +// The 24 bytes of stack space is to call runtime·memmove. +// +// The unusual register allocation of local variables, such as R10 for the +// source pointer, matches the allocation used at the call site in encodeBlock, +// which makes it easier to manually inline this function. +TEXT ·emitLiteral(SB), NOSPLIT, $24-56 + MOVQ dst_base+0(FP), DI + MOVQ lit_base+24(FP), R10 + MOVQ lit_len+32(FP), AX + MOVQ AX, DX + MOVL AX, BX + SUBL $1, BX + + CMPL BX, $60 + JLT oneByte + CMPL BX, $256 + JLT twoBytes + +threeBytes: + MOVB $0xf4, 0(DI) + MOVW BX, 1(DI) + ADDQ $3, DI + ADDQ $3, DX + JMP memmove + +twoBytes: + MOVB $0xf0, 0(DI) + MOVB BX, 1(DI) + ADDQ $2, DI + ADDQ $2, DX + JMP memmove + +oneByte: + SHLB $2, BX + MOVB BX, 0(DI) + ADDQ $1, DI + ADDQ $1, DX + +memmove: + MOVQ DX, ret+48(FP) + + // copy(dst[i:], lit) + // + // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push + // DI, R10 and AX as arguments. + MOVQ DI, 0(SP) + MOVQ R10, 8(SP) + MOVQ AX, 16(SP) + CALL runtime·memmove(SB) + RET + +// ---------------------------------------------------------------------------- + +// func emitCopy(dst []byte, offset, length int) int +// +// All local variables fit into registers. The register allocation: +// - AX length +// - SI &dst[0] +// - DI &dst[i] +// - R11 offset +// +// The unusual register allocation of local variables, such as R11 for the +// offset, matches the allocation used at the call site in encodeBlock, which +// makes it easier to manually inline this function. +TEXT ·emitCopy(SB), NOSPLIT, $0-48 + MOVQ dst_base+0(FP), DI + MOVQ DI, SI + MOVQ offset+24(FP), R11 + MOVQ length+32(FP), AX + +loop0: + // for length >= 68 { etc } + CMPL AX, $68 + JLT step1 + + // Emit a length 64 copy, encoded as 3 bytes. + MOVB $0xfe, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + SUBL $64, AX + JMP loop0 + +step1: + // if length > 64 { etc } + CMPL AX, $64 + JLE step2 + + // Emit a length 60 copy, encoded as 3 bytes. + MOVB $0xee, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + SUBL $60, AX + +step2: + // if length >= 12 || offset >= 2048 { goto step3 } + CMPL AX, $12 + JGE step3 + CMPL R11, $2048 + JGE step3 + + // Emit the remaining copy, encoded as 2 bytes. + MOVB R11, 1(DI) + SHRL $8, R11 + SHLB $5, R11 + SUBB $4, AX + SHLB $2, AX + ORB AX, R11 + ORB $1, R11 + MOVB R11, 0(DI) + ADDQ $2, DI + + // Return the number of bytes written. + SUBQ SI, DI + MOVQ DI, ret+40(FP) + RET + +step3: + // Emit the remaining copy, encoded as 3 bytes. + SUBL $1, AX + SHLB $2, AX + ORB $2, AX + MOVB AX, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + + // Return the number of bytes written. + SUBQ SI, DI + MOVQ DI, ret+40(FP) + RET + +// ---------------------------------------------------------------------------- + +// func extendMatch(src []byte, i, j int) int +// +// All local variables fit into registers. The register allocation: +// - DX &src[0] +// - SI &src[j] +// - R13 &src[len(src) - 8] +// - R14 &src[len(src)] +// - R15 &src[i] +// +// The unusual register allocation of local variables, such as R15 for a source +// pointer, matches the allocation used at the call site in encodeBlock, which +// makes it easier to manually inline this function. +TEXT ·extendMatch(SB), NOSPLIT, $0-48 + MOVQ src_base+0(FP), DX + MOVQ src_len+8(FP), R14 + MOVQ i+24(FP), R15 + MOVQ j+32(FP), SI + ADDQ DX, R14 + ADDQ DX, R15 + ADDQ DX, SI + MOVQ R14, R13 + SUBQ $8, R13 + +cmp8: + // As long as we are 8 or more bytes before the end of src, we can load and + // compare 8 bytes at a time. If those 8 bytes are equal, repeat. + CMPQ SI, R13 + JA cmp1 + MOVQ (R15), AX + MOVQ (SI), BX + CMPQ AX, BX + JNE bsf + ADDQ $8, R15 + ADDQ $8, SI + JMP cmp8 + +bsf: + // If those 8 bytes were not equal, XOR the two 8 byte values, and return + // the index of the first byte that differs. The BSF instruction finds the + // least significant 1 bit, the amd64 architecture is little-endian, and + // the shift by 3 converts a bit index to a byte index. + XORQ AX, BX + BSFQ BX, BX + SHRQ $3, BX + ADDQ BX, SI + + // Convert from &src[ret] to ret. + SUBQ DX, SI + MOVQ SI, ret+40(FP) + RET + +cmp1: + // In src's tail, compare 1 byte at a time. + CMPQ SI, R14 + JAE extendMatchEnd + MOVB (R15), AX + MOVB (SI), BX + CMPB AX, BX + JNE extendMatchEnd + ADDQ $1, R15 + ADDQ $1, SI + JMP cmp1 + +extendMatchEnd: + // Convert from &src[ret] to ret. + SUBQ DX, SI + MOVQ SI, ret+40(FP) + RET + +// ---------------------------------------------------------------------------- + +// func encodeBlock(dst, src []byte) (d int) +// +// All local variables fit into registers, other than "var table". The register +// allocation: +// - AX . . +// - BX . . +// - CX 56 shift (note that amd64 shifts by non-immediates must use CX). +// - DX 64 &src[0], tableSize +// - SI 72 &src[s] +// - DI 80 &dst[d] +// - R9 88 sLimit +// - R10 . &src[nextEmit] +// - R11 96 prevHash, currHash, nextHash, offset +// - R12 104 &src[base], skip +// - R13 . &src[nextS], &src[len(src) - 8] +// - R14 . len(src), bytesBetweenHashLookups, &src[len(src)], x +// - R15 112 candidate +// +// The second column (56, 64, etc) is the stack offset to spill the registers +// when calling other functions. We could pack this slightly tighter, but it's +// simpler to have a dedicated spill map independent of the function called. +// +// "var table [maxTableSize]uint16" takes up 32768 bytes of stack space. An +// extra 56 bytes, to call other functions, and an extra 64 bytes, to spill +// local variables (registers) during calls gives 32768 + 56 + 64 = 32888. +TEXT ·encodeBlock(SB), 0, $32888-56 + MOVQ dst_base+0(FP), DI + MOVQ src_base+24(FP), SI + MOVQ src_len+32(FP), R14 + + // shift, tableSize := uint32(32-8), 1<<8 + MOVQ $24, CX + MOVQ $256, DX + +calcShift: + // for ; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 { + // shift-- + // } + CMPQ DX, $16384 + JGE varTable + CMPQ DX, R14 + JGE varTable + SUBQ $1, CX + SHLQ $1, DX + JMP calcShift + +varTable: + // var table [maxTableSize]uint16 + // + // In the asm code, unlike the Go code, we can zero-initialize only the + // first tableSize elements. Each uint16 element is 2 bytes and each MOVOU + // writes 16 bytes, so we can do only tableSize/8 writes instead of the + // 2048 writes that would zero-initialize all of table's 32768 bytes. + SHRQ $3, DX + LEAQ table-32768(SP), BX + PXOR X0, X0 + +memclr: + MOVOU X0, 0(BX) + ADDQ $16, BX + SUBQ $1, DX + JNZ memclr + + // !!! DX = &src[0] + MOVQ SI, DX + + // sLimit := len(src) - inputMargin + MOVQ R14, R9 + SUBQ $15, R9 + + // !!! Pre-emptively spill CX, DX and R9 to the stack. Their values don't + // change for the rest of the function. + MOVQ CX, 56(SP) + MOVQ DX, 64(SP) + MOVQ R9, 88(SP) + + // nextEmit := 0 + MOVQ DX, R10 + + // s := 1 + ADDQ $1, SI + + // nextHash := hash(load32(src, s), shift) + MOVL 0(SI), R11 + IMULL $0x1e35a7bd, R11 + SHRL CX, R11 + +outer: + // for { etc } + + // skip := 32 + MOVQ $32, R12 + + // nextS := s + MOVQ SI, R13 + + // candidate := 0 + MOVQ $0, R15 + +inner0: + // for { etc } + + // s := nextS + MOVQ R13, SI + + // bytesBetweenHashLookups := skip >> 5 + MOVQ R12, R14 + SHRQ $5, R14 + + // nextS = s + bytesBetweenHashLookups + ADDQ R14, R13 + + // skip += bytesBetweenHashLookups + ADDQ R14, R12 + + // if nextS > sLimit { goto emitRemainder } + MOVQ R13, AX + SUBQ DX, AX + CMPQ AX, R9 + JA emitRemainder + + // candidate = int(table[nextHash]) + // XXX: MOVWQZX table-32768(SP)(R11*2), R15 + // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 + BYTE $0x4e + BYTE $0x0f + BYTE $0xb7 + BYTE $0x7c + BYTE $0x5c + BYTE $0x78 + + // table[nextHash] = uint16(s) + MOVQ SI, AX + SUBQ DX, AX + + // XXX: MOVW AX, table-32768(SP)(R11*2) + // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) + BYTE $0x66 + BYTE $0x42 + BYTE $0x89 + BYTE $0x44 + BYTE $0x5c + BYTE $0x78 + + // nextHash = hash(load32(src, nextS), shift) + MOVL 0(R13), R11 + IMULL $0x1e35a7bd, R11 + SHRL CX, R11 + + // if load32(src, s) != load32(src, candidate) { continue } break + MOVL 0(SI), AX + MOVL (DX)(R15*1), BX + CMPL AX, BX + JNE inner0 + +fourByteMatch: + // As per the encode_other.go code: + // + // A 4-byte match has been found. We'll later see etc. + + // !!! Jump to a fast path for short (<= 16 byte) literals. See the comment + // on inputMargin in encode.go. + MOVQ SI, AX + SUBQ R10, AX + CMPQ AX, $16 + JLE emitLiteralFastPath + + // ---------------------------------------- + // Begin inline of the emitLiteral call. + // + // d += emitLiteral(dst[d:], src[nextEmit:s]) + + MOVL AX, BX + SUBL $1, BX + + CMPL BX, $60 + JLT inlineEmitLiteralOneByte + CMPL BX, $256 + JLT inlineEmitLiteralTwoBytes + +inlineEmitLiteralThreeBytes: + MOVB $0xf4, 0(DI) + MOVW BX, 1(DI) + ADDQ $3, DI + JMP inlineEmitLiteralMemmove + +inlineEmitLiteralTwoBytes: + MOVB $0xf0, 0(DI) + MOVB BX, 1(DI) + ADDQ $2, DI + JMP inlineEmitLiteralMemmove + +inlineEmitLiteralOneByte: + SHLB $2, BX + MOVB BX, 0(DI) + ADDQ $1, DI + +inlineEmitLiteralMemmove: + // Spill local variables (registers) onto the stack; call; unspill. + // + // copy(dst[i:], lit) + // + // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push + // DI, R10 and AX as arguments. + MOVQ DI, 0(SP) + MOVQ R10, 8(SP) + MOVQ AX, 16(SP) + ADDQ AX, DI // Finish the "d +=" part of "d += emitLiteral(etc)". + MOVQ SI, 72(SP) + MOVQ DI, 80(SP) + MOVQ R15, 112(SP) + CALL runtime·memmove(SB) + MOVQ 56(SP), CX + MOVQ 64(SP), DX + MOVQ 72(SP), SI + MOVQ 80(SP), DI + MOVQ 88(SP), R9 + MOVQ 112(SP), R15 + JMP inner1 + +inlineEmitLiteralEnd: + // End inline of the emitLiteral call. + // ---------------------------------------- + +emitLiteralFastPath: + // !!! Emit the 1-byte encoding "uint8(len(lit)-1)<<2". + MOVB AX, BX + SUBB $1, BX + SHLB $2, BX + MOVB BX, (DI) + ADDQ $1, DI + + // !!! Implement the copy from lit to dst as a 16-byte load and store. + // (Encode's documentation says that dst and src must not overlap.) + // + // This always copies 16 bytes, instead of only len(lit) bytes, but that's + // OK. Subsequent iterations will fix up the overrun. + // + // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or + // 16-byte loads and stores. This technique probably wouldn't be as + // effective on architectures that are fussier about alignment. + MOVOU 0(R10), X0 + MOVOU X0, 0(DI) + ADDQ AX, DI + +inner1: + // for { etc } + + // base := s + MOVQ SI, R12 + + // !!! offset := base - candidate + MOVQ R12, R11 + SUBQ R15, R11 + SUBQ DX, R11 + + // ---------------------------------------- + // Begin inline of the extendMatch call. + // + // s = extendMatch(src, candidate+4, s+4) + + // !!! R14 = &src[len(src)] + MOVQ src_len+32(FP), R14 + ADDQ DX, R14 + + // !!! R13 = &src[len(src) - 8] + MOVQ R14, R13 + SUBQ $8, R13 + + // !!! R15 = &src[candidate + 4] + ADDQ $4, R15 + ADDQ DX, R15 + + // !!! s += 4 + ADDQ $4, SI + +inlineExtendMatchCmp8: + // As long as we are 8 or more bytes before the end of src, we can load and + // compare 8 bytes at a time. If those 8 bytes are equal, repeat. + CMPQ SI, R13 + JA inlineExtendMatchCmp1 + MOVQ (R15), AX + MOVQ (SI), BX + CMPQ AX, BX + JNE inlineExtendMatchBSF + ADDQ $8, R15 + ADDQ $8, SI + JMP inlineExtendMatchCmp8 + +inlineExtendMatchBSF: + // If those 8 bytes were not equal, XOR the two 8 byte values, and return + // the index of the first byte that differs. The BSF instruction finds the + // least significant 1 bit, the amd64 architecture is little-endian, and + // the shift by 3 converts a bit index to a byte index. + XORQ AX, BX + BSFQ BX, BX + SHRQ $3, BX + ADDQ BX, SI + JMP inlineExtendMatchEnd + +inlineExtendMatchCmp1: + // In src's tail, compare 1 byte at a time. + CMPQ SI, R14 + JAE inlineExtendMatchEnd + MOVB (R15), AX + MOVB (SI), BX + CMPB AX, BX + JNE inlineExtendMatchEnd + ADDQ $1, R15 + ADDQ $1, SI + JMP inlineExtendMatchCmp1 + +inlineExtendMatchEnd: + // End inline of the extendMatch call. + // ---------------------------------------- + + // ---------------------------------------- + // Begin inline of the emitCopy call. + // + // d += emitCopy(dst[d:], base-candidate, s-base) + + // !!! length := s - base + MOVQ SI, AX + SUBQ R12, AX + +inlineEmitCopyLoop0: + // for length >= 68 { etc } + CMPL AX, $68 + JLT inlineEmitCopyStep1 + + // Emit a length 64 copy, encoded as 3 bytes. + MOVB $0xfe, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + SUBL $64, AX + JMP inlineEmitCopyLoop0 + +inlineEmitCopyStep1: + // if length > 64 { etc } + CMPL AX, $64 + JLE inlineEmitCopyStep2 + + // Emit a length 60 copy, encoded as 3 bytes. + MOVB $0xee, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + SUBL $60, AX + +inlineEmitCopyStep2: + // if length >= 12 || offset >= 2048 { goto inlineEmitCopyStep3 } + CMPL AX, $12 + JGE inlineEmitCopyStep3 + CMPL R11, $2048 + JGE inlineEmitCopyStep3 + + // Emit the remaining copy, encoded as 2 bytes. + MOVB R11, 1(DI) + SHRL $8, R11 + SHLB $5, R11 + SUBB $4, AX + SHLB $2, AX + ORB AX, R11 + ORB $1, R11 + MOVB R11, 0(DI) + ADDQ $2, DI + JMP inlineEmitCopyEnd + +inlineEmitCopyStep3: + // Emit the remaining copy, encoded as 3 bytes. + SUBL $1, AX + SHLB $2, AX + ORB $2, AX + MOVB AX, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + +inlineEmitCopyEnd: + // End inline of the emitCopy call. + // ---------------------------------------- + + // nextEmit = s + MOVQ SI, R10 + + // if s >= sLimit { goto emitRemainder } + MOVQ SI, AX + SUBQ DX, AX + CMPQ AX, R9 + JAE emitRemainder + + // As per the encode_other.go code: + // + // We could immediately etc. + + // x := load64(src, s-1) + MOVQ -1(SI), R14 + + // prevHash := hash(uint32(x>>0), shift) + MOVL R14, R11 + IMULL $0x1e35a7bd, R11 + SHRL CX, R11 + + // table[prevHash] = uint16(s-1) + MOVQ SI, AX + SUBQ DX, AX + SUBQ $1, AX + + // XXX: MOVW AX, table-32768(SP)(R11*2) + // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) + BYTE $0x66 + BYTE $0x42 + BYTE $0x89 + BYTE $0x44 + BYTE $0x5c + BYTE $0x78 + + // currHash := hash(uint32(x>>8), shift) + SHRQ $8, R14 + MOVL R14, R11 + IMULL $0x1e35a7bd, R11 + SHRL CX, R11 + + // candidate = int(table[currHash]) + // XXX: MOVWQZX table-32768(SP)(R11*2), R15 + // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 + BYTE $0x4e + BYTE $0x0f + BYTE $0xb7 + BYTE $0x7c + BYTE $0x5c + BYTE $0x78 + + // table[currHash] = uint16(s) + ADDQ $1, AX + + // XXX: MOVW AX, table-32768(SP)(R11*2) + // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) + BYTE $0x66 + BYTE $0x42 + BYTE $0x89 + BYTE $0x44 + BYTE $0x5c + BYTE $0x78 + + // if uint32(x>>8) == load32(src, candidate) { continue } + MOVL (DX)(R15*1), BX + CMPL R14, BX + JEQ inner1 + + // nextHash = hash(uint32(x>>16), shift) + SHRQ $8, R14 + MOVL R14, R11 + IMULL $0x1e35a7bd, R11 + SHRL CX, R11 + + // s++ + ADDQ $1, SI + + // break out of the inner1 for loop, i.e. continue the outer loop. + JMP outer + +emitRemainder: + // if nextEmit < len(src) { etc } + MOVQ src_len+32(FP), AX + ADDQ DX, AX + CMPQ R10, AX + JEQ encodeBlockEnd + + // d += emitLiteral(dst[d:], src[nextEmit:]) + // + // Push args. + MOVQ DI, 0(SP) + MOVQ $0, 8(SP) // Unnecessary, as the callee ignores it, but conservative. + MOVQ $0, 16(SP) // Unnecessary, as the callee ignores it, but conservative. + MOVQ R10, 24(SP) + SUBQ R10, AX + MOVQ AX, 32(SP) + MOVQ AX, 40(SP) // Unnecessary, as the callee ignores it, but conservative. + + // Spill local variables (registers) onto the stack; call; unspill. + MOVQ DI, 80(SP) + CALL ·emitLiteral(SB) + MOVQ 80(SP), DI + + // Finish the "d +=" part of "d += emitLiteral(etc)". + ADDQ 48(SP), DI + +encodeBlockEnd: + MOVQ dst_base+0(FP), AX + SUBQ AX, DI + MOVQ DI, d+48(FP) + RET diff --git a/vendor/github.com/golang/snappy/encode_other.go b/vendor/github.com/golang/snappy/encode_other.go new file mode 100644 index 0000000..dbcae90 --- /dev/null +++ b/vendor/github.com/golang/snappy/encode_other.go @@ -0,0 +1,238 @@ +// Copyright 2016 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !amd64 appengine !gc noasm + +package snappy + +func load32(b []byte, i int) uint32 { + b = b[i : i+4 : len(b)] // Help the compiler eliminate bounds checks on the next line. + return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 +} + +func load64(b []byte, i int) uint64 { + b = b[i : i+8 : len(b)] // Help the compiler eliminate bounds checks on the next line. + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | + uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 +} + +// emitLiteral writes a literal chunk and returns the number of bytes written. +// +// It assumes that: +// dst is long enough to hold the encoded bytes +// 1 <= len(lit) && len(lit) <= 65536 +func emitLiteral(dst, lit []byte) int { + i, n := 0, uint(len(lit)-1) + switch { + case n < 60: + dst[0] = uint8(n)<<2 | tagLiteral + i = 1 + case n < 1<<8: + dst[0] = 60<<2 | tagLiteral + dst[1] = uint8(n) + i = 2 + default: + dst[0] = 61<<2 | tagLiteral + dst[1] = uint8(n) + dst[2] = uint8(n >> 8) + i = 3 + } + return i + copy(dst[i:], lit) +} + +// emitCopy writes a copy chunk and returns the number of bytes written. +// +// It assumes that: +// dst is long enough to hold the encoded bytes +// 1 <= offset && offset <= 65535 +// 4 <= length && length <= 65535 +func emitCopy(dst []byte, offset, length int) int { + i := 0 + // The maximum length for a single tagCopy1 or tagCopy2 op is 64 bytes. The + // threshold for this loop is a little higher (at 68 = 64 + 4), and the + // length emitted down below is is a little lower (at 60 = 64 - 4), because + // it's shorter to encode a length 67 copy as a length 60 tagCopy2 followed + // by a length 7 tagCopy1 (which encodes as 3+2 bytes) than to encode it as + // a length 64 tagCopy2 followed by a length 3 tagCopy2 (which encodes as + // 3+3 bytes). The magic 4 in the 64±4 is because the minimum length for a + // tagCopy1 op is 4 bytes, which is why a length 3 copy has to be an + // encodes-as-3-bytes tagCopy2 instead of an encodes-as-2-bytes tagCopy1. + for length >= 68 { + // Emit a length 64 copy, encoded as 3 bytes. + dst[i+0] = 63<<2 | tagCopy2 + dst[i+1] = uint8(offset) + dst[i+2] = uint8(offset >> 8) + i += 3 + length -= 64 + } + if length > 64 { + // Emit a length 60 copy, encoded as 3 bytes. + dst[i+0] = 59<<2 | tagCopy2 + dst[i+1] = uint8(offset) + dst[i+2] = uint8(offset >> 8) + i += 3 + length -= 60 + } + if length >= 12 || offset >= 2048 { + // Emit the remaining copy, encoded as 3 bytes. + dst[i+0] = uint8(length-1)<<2 | tagCopy2 + dst[i+1] = uint8(offset) + dst[i+2] = uint8(offset >> 8) + return i + 3 + } + // Emit the remaining copy, encoded as 2 bytes. + dst[i+0] = uint8(offset>>8)<<5 | uint8(length-4)<<2 | tagCopy1 + dst[i+1] = uint8(offset) + return i + 2 +} + +// extendMatch returns the largest k such that k <= len(src) and that +// src[i:i+k-j] and src[j:k] have the same contents. +// +// It assumes that: +// 0 <= i && i < j && j <= len(src) +func extendMatch(src []byte, i, j int) int { + for ; j < len(src) && src[i] == src[j]; i, j = i+1, j+1 { + } + return j +} + +func hash(u, shift uint32) uint32 { + return (u * 0x1e35a7bd) >> shift +} + +// encodeBlock encodes a non-empty src to a guaranteed-large-enough dst. It +// assumes that the varint-encoded length of the decompressed bytes has already +// been written. +// +// It also assumes that: +// len(dst) >= MaxEncodedLen(len(src)) && +// minNonLiteralBlockSize <= len(src) && len(src) <= maxBlockSize +func encodeBlock(dst, src []byte) (d int) { + // Initialize the hash table. Its size ranges from 1<<8 to 1<<14 inclusive. + // The table element type is uint16, as s < sLimit and sLimit < len(src) + // and len(src) <= maxBlockSize and maxBlockSize == 65536. + const ( + maxTableSize = 1 << 14 + // tableMask is redundant, but helps the compiler eliminate bounds + // checks. + tableMask = maxTableSize - 1 + ) + shift := uint32(32 - 8) + for tableSize := 1 << 8; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 { + shift-- + } + // In Go, all array elements are zero-initialized, so there is no advantage + // to a smaller tableSize per se. However, it matches the C++ algorithm, + // and in the asm versions of this code, we can get away with zeroing only + // the first tableSize elements. + var table [maxTableSize]uint16 + + // sLimit is when to stop looking for offset/length copies. The inputMargin + // lets us use a fast path for emitLiteral in the main loop, while we are + // looking for copies. + sLimit := len(src) - inputMargin + + // nextEmit is where in src the next emitLiteral should start from. + nextEmit := 0 + + // The encoded form must start with a literal, as there are no previous + // bytes to copy, so we start looking for hash matches at s == 1. + s := 1 + nextHash := hash(load32(src, s), shift) + + for { + // Copied from the C++ snappy implementation: + // + // Heuristic match skipping: If 32 bytes are scanned with no matches + // found, start looking only at every other byte. If 32 more bytes are + // scanned (or skipped), look at every third byte, etc.. When a match + // is found, immediately go back to looking at every byte. This is a + // small loss (~5% performance, ~0.1% density) for compressible data + // due to more bookkeeping, but for non-compressible data (such as + // JPEG) it's a huge win since the compressor quickly "realizes" the + // data is incompressible and doesn't bother looking for matches + // everywhere. + // + // The "skip" variable keeps track of how many bytes there are since + // the last match; dividing it by 32 (ie. right-shifting by five) gives + // the number of bytes to move ahead for each iteration. + skip := 32 + + nextS := s + candidate := 0 + for { + s = nextS + bytesBetweenHashLookups := skip >> 5 + nextS = s + bytesBetweenHashLookups + skip += bytesBetweenHashLookups + if nextS > sLimit { + goto emitRemainder + } + candidate = int(table[nextHash&tableMask]) + table[nextHash&tableMask] = uint16(s) + nextHash = hash(load32(src, nextS), shift) + if load32(src, s) == load32(src, candidate) { + break + } + } + + // A 4-byte match has been found. We'll later see if more than 4 bytes + // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit + // them as literal bytes. + d += emitLiteral(dst[d:], src[nextEmit:s]) + + // Call emitCopy, and then see if another emitCopy could be our next + // move. Repeat until we find no match for the input immediately after + // what was consumed by the last emitCopy call. + // + // If we exit this loop normally then we need to call emitLiteral next, + // though we don't yet know how big the literal will be. We handle that + // by proceeding to the next iteration of the main loop. We also can + // exit this loop via goto if we get close to exhausting the input. + for { + // Invariant: we have a 4-byte match at s, and no need to emit any + // literal bytes prior to s. + base := s + + // Extend the 4-byte match as long as possible. + // + // This is an inlined version of: + // s = extendMatch(src, candidate+4, s+4) + s += 4 + for i := candidate + 4; s < len(src) && src[i] == src[s]; i, s = i+1, s+1 { + } + + d += emitCopy(dst[d:], base-candidate, s-base) + nextEmit = s + if s >= sLimit { + goto emitRemainder + } + + // We could immediately start working at s now, but to improve + // compression we first update the hash table at s-1 and at s. If + // another emitCopy is not our next move, also calculate nextHash + // at s+1. At least on GOARCH=amd64, these three hash calculations + // are faster as one load64 call (with some shifts) instead of + // three load32 calls. + x := load64(src, s-1) + prevHash := hash(uint32(x>>0), shift) + table[prevHash&tableMask] = uint16(s - 1) + currHash := hash(uint32(x>>8), shift) + candidate = int(table[currHash&tableMask]) + table[currHash&tableMask] = uint16(s) + if uint32(x>>8) != load32(src, candidate) { + nextHash = hash(uint32(x>>16), shift) + s++ + break + } + } + } + +emitRemainder: + if nextEmit < len(src) { + d += emitLiteral(dst[d:], src[nextEmit:]) + } + return d +} diff --git a/vendor/github.com/golang/snappy/go.mod b/vendor/github.com/golang/snappy/go.mod new file mode 100644 index 0000000..f6406bb --- /dev/null +++ b/vendor/github.com/golang/snappy/go.mod @@ -0,0 +1 @@ +module github.com/golang/snappy diff --git a/vendor/github.com/golang/snappy/snappy.go b/vendor/github.com/golang/snappy/snappy.go new file mode 100644 index 0000000..ece692e --- /dev/null +++ b/vendor/github.com/golang/snappy/snappy.go @@ -0,0 +1,98 @@ +// Copyright 2011 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package snappy implements the Snappy compression format. It aims for very +// high speeds and reasonable compression. +// +// There are actually two Snappy formats: block and stream. They are related, +// but different: trying to decompress block-compressed data as a Snappy stream +// will fail, and vice versa. The block format is the Decode and Encode +// functions and the stream format is the Reader and Writer types. +// +// The block format, the more common case, is used when the complete size (the +// number of bytes) of the original data is known upfront, at the time +// compression starts. The stream format, also known as the framing format, is +// for when that isn't always true. +// +// The canonical, C++ implementation is at https://github.com/google/snappy and +// it only implements the block format. +package snappy // import "github.com/golang/snappy" + +import ( + "hash/crc32" +) + +/* +Each encoded block begins with the varint-encoded length of the decoded data, +followed by a sequence of chunks. Chunks begin and end on byte boundaries. The +first byte of each chunk is broken into its 2 least and 6 most significant bits +called l and m: l ranges in [0, 4) and m ranges in [0, 64). l is the chunk tag. +Zero means a literal tag. All other values mean a copy tag. + +For literal tags: + - If m < 60, the next 1 + m bytes are literal bytes. + - Otherwise, let n be the little-endian unsigned integer denoted by the next + m - 59 bytes. The next 1 + n bytes after that are literal bytes. + +For copy tags, length bytes are copied from offset bytes ago, in the style of +Lempel-Ziv compression algorithms. In particular: + - For l == 1, the offset ranges in [0, 1<<11) and the length in [4, 12). + The length is 4 + the low 3 bits of m. The high 3 bits of m form bits 8-10 + of the offset. The next byte is bits 0-7 of the offset. + - For l == 2, the offset ranges in [0, 1<<16) and the length in [1, 65). + The length is 1 + m. The offset is the little-endian unsigned integer + denoted by the next 2 bytes. + - For l == 3, this tag is a legacy format that is no longer issued by most + encoders. Nonetheless, the offset ranges in [0, 1<<32) and the length in + [1, 65). The length is 1 + m. The offset is the little-endian unsigned + integer denoted by the next 4 bytes. +*/ +const ( + tagLiteral = 0x00 + tagCopy1 = 0x01 + tagCopy2 = 0x02 + tagCopy4 = 0x03 +) + +const ( + checksumSize = 4 + chunkHeaderSize = 4 + magicChunk = "\xff\x06\x00\x00" + magicBody + magicBody = "sNaPpY" + + // maxBlockSize is the maximum size of the input to encodeBlock. It is not + // part of the wire format per se, but some parts of the encoder assume + // that an offset fits into a uint16. + // + // Also, for the framing format (Writer type instead of Encode function), + // https://github.com/google/snappy/blob/master/framing_format.txt says + // that "the uncompressed data in a chunk must be no longer than 65536 + // bytes". + maxBlockSize = 65536 + + // maxEncodedLenOfMaxBlockSize equals MaxEncodedLen(maxBlockSize), but is + // hard coded to be a const instead of a variable, so that obufLen can also + // be a const. Their equivalence is confirmed by + // TestMaxEncodedLenOfMaxBlockSize. + maxEncodedLenOfMaxBlockSize = 76490 + + obufHeaderLen = len(magicChunk) + checksumSize + chunkHeaderSize + obufLen = obufHeaderLen + maxEncodedLenOfMaxBlockSize +) + +const ( + chunkTypeCompressedData = 0x00 + chunkTypeUncompressedData = 0x01 + chunkTypePadding = 0xfe + chunkTypeStreamIdentifier = 0xff +) + +var crcTable = crc32.MakeTable(crc32.Castagnoli) + +// crc implements the checksum specified in section 3 of +// https://github.com/google/snappy/blob/master/framing_format.txt +func crc(b []byte) uint32 { + c := crc32.Update(0, crcTable, b) + return uint32(c>>15|c<<17) + 0xa282ead8 +} diff --git a/vendor/github.com/gorilla/mux/AUTHORS b/vendor/github.com/gorilla/mux/AUTHORS new file mode 100644 index 0000000..b722392 --- /dev/null +++ b/vendor/github.com/gorilla/mux/AUTHORS @@ -0,0 +1,8 @@ +# This is the official list of gorilla/mux authors for copyright purposes. +# +# Please keep the list sorted. + +Google LLC (https://opensource.google.com/) +Kamil Kisielk +Matt Silverlock +Rodrigo Moraes (https://github.com/moraes) diff --git a/vendor/github.com/gorilla/mux/LICENSE b/vendor/github.com/gorilla/mux/LICENSE new file mode 100644 index 0000000..6903df6 --- /dev/null +++ b/vendor/github.com/gorilla/mux/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2012-2018 The Gorilla Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/gorilla/mux/README.md b/vendor/github.com/gorilla/mux/README.md new file mode 100644 index 0000000..35eea9f --- /dev/null +++ b/vendor/github.com/gorilla/mux/README.md @@ -0,0 +1,805 @@ +# gorilla/mux + +[![GoDoc](https://godoc.org/github.com/gorilla/mux?status.svg)](https://godoc.org/github.com/gorilla/mux) +[![CircleCI](https://circleci.com/gh/gorilla/mux.svg?style=svg)](https://circleci.com/gh/gorilla/mux) +[![Sourcegraph](https://sourcegraph.com/github.com/gorilla/mux/-/badge.svg)](https://sourcegraph.com/github.com/gorilla/mux?badge) + +![Gorilla Logo](https://cloud-cdn.questionable.services/gorilla-icon-64.png) + +https://www.gorillatoolkit.org/pkg/mux + +Package `gorilla/mux` implements a request router and dispatcher for matching incoming requests to +their respective handler. + +The name mux stands for "HTTP request multiplexer". Like the standard `http.ServeMux`, `mux.Router` matches incoming requests against a list of registered routes and calls a handler for the route that matches the URL or other conditions. The main features are: + +* It implements the `http.Handler` interface so it is compatible with the standard `http.ServeMux`. +* Requests can be matched based on URL host, path, path prefix, schemes, header and query values, HTTP methods or using custom matchers. +* URL hosts, paths and query values can have variables with an optional regular expression. +* Registered URLs can be built, or "reversed", which helps maintaining references to resources. +* Routes can be used as subrouters: nested routes are only tested if the parent route matches. This is useful to define groups of routes that share common conditions like a host, a path prefix or other repeated attributes. As a bonus, this optimizes request matching. + +--- + +* [Install](#install) +* [Examples](#examples) +* [Matching Routes](#matching-routes) +* [Static Files](#static-files) +* [Serving Single Page Applications](#serving-single-page-applications) (e.g. React, Vue, Ember.js, etc.) +* [Registered URLs](#registered-urls) +* [Walking Routes](#walking-routes) +* [Graceful Shutdown](#graceful-shutdown) +* [Middleware](#middleware) +* [Handling CORS Requests](#handling-cors-requests) +* [Testing Handlers](#testing-handlers) +* [Full Example](#full-example) + +--- + +## Install + +With a [correctly configured](https://golang.org/doc/install#testing) Go toolchain: + +```sh +go get -u github.com/gorilla/mux +``` + +## Examples + +Let's start registering a couple of URL paths and handlers: + +```go +func main() { + r := mux.NewRouter() + r.HandleFunc("/", HomeHandler) + r.HandleFunc("/products", ProductsHandler) + r.HandleFunc("/articles", ArticlesHandler) + http.Handle("/", r) +} +``` + +Here we register three routes mapping URL paths to handlers. This is equivalent to how `http.HandleFunc()` works: if an incoming request URL matches one of the paths, the corresponding handler is called passing (`http.ResponseWriter`, `*http.Request`) as parameters. + +Paths can have variables. They are defined using the format `{name}` or `{name:pattern}`. If a regular expression pattern is not defined, the matched variable will be anything until the next slash. For example: + +```go +r := mux.NewRouter() +r.HandleFunc("/products/{key}", ProductHandler) +r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler) +r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler) +``` + +The names are used to create a map of route variables which can be retrieved calling `mux.Vars()`: + +```go +func ArticlesCategoryHandler(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) + w.WriteHeader(http.StatusOK) + fmt.Fprintf(w, "Category: %v\n", vars["category"]) +} +``` + +And this is all you need to know about the basic usage. More advanced options are explained below. + +### Matching Routes + +Routes can also be restricted to a domain or subdomain. Just define a host pattern to be matched. They can also have variables: + +```go +r := mux.NewRouter() +// Only matches if domain is "www.example.com". +r.Host("www.example.com") +// Matches a dynamic subdomain. +r.Host("{subdomain:[a-z]+}.example.com") +``` + +There are several other matchers that can be added. To match path prefixes: + +```go +r.PathPrefix("/products/") +``` + +...or HTTP methods: + +```go +r.Methods("GET", "POST") +``` + +...or URL schemes: + +```go +r.Schemes("https") +``` + +...or header values: + +```go +r.Headers("X-Requested-With", "XMLHttpRequest") +``` + +...or query values: + +```go +r.Queries("key", "value") +``` + +...or to use a custom matcher function: + +```go +r.MatcherFunc(func(r *http.Request, rm *RouteMatch) bool { + return r.ProtoMajor == 0 +}) +``` + +...and finally, it is possible to combine several matchers in a single route: + +```go +r.HandleFunc("/products", ProductsHandler). + Host("www.example.com"). + Methods("GET"). + Schemes("http") +``` + +Routes are tested in the order they were added to the router. If two routes match, the first one wins: + +```go +r := mux.NewRouter() +r.HandleFunc("/specific", specificHandler) +r.PathPrefix("/").Handler(catchAllHandler) +``` + +Setting the same matching conditions again and again can be boring, so we have a way to group several routes that share the same requirements. We call it "subrouting". + +For example, let's say we have several URLs that should only match when the host is `www.example.com`. Create a route for that host and get a "subrouter" from it: + +```go +r := mux.NewRouter() +s := r.Host("www.example.com").Subrouter() +``` + +Then register routes in the subrouter: + +```go +s.HandleFunc("/products/", ProductsHandler) +s.HandleFunc("/products/{key}", ProductHandler) +s.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler) +``` + +The three URL paths we registered above will only be tested if the domain is `www.example.com`, because the subrouter is tested first. This is not only convenient, but also optimizes request matching. You can create subrouters combining any attribute matchers accepted by a route. + +Subrouters can be used to create domain or path "namespaces": you define subrouters in a central place and then parts of the app can register its paths relatively to a given subrouter. + +There's one more thing about subroutes. When a subrouter has a path prefix, the inner routes use it as base for their paths: + +```go +r := mux.NewRouter() +s := r.PathPrefix("/products").Subrouter() +// "/products/" +s.HandleFunc("/", ProductsHandler) +// "/products/{key}/" +s.HandleFunc("/{key}/", ProductHandler) +// "/products/{key}/details" +s.HandleFunc("/{key}/details", ProductDetailsHandler) +``` + + +### Static Files + +Note that the path provided to `PathPrefix()` represents a "wildcard": calling +`PathPrefix("/static/").Handler(...)` means that the handler will be passed any +request that matches "/static/\*". This makes it easy to serve static files with mux: + +```go +func main() { + var dir string + + flag.StringVar(&dir, "dir", ".", "the directory to serve files from. Defaults to the current dir") + flag.Parse() + r := mux.NewRouter() + + // This will serve files under http://localhost:8000/static/ + r.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir(dir)))) + + srv := &http.Server{ + Handler: r, + Addr: "127.0.0.1:8000", + // Good practice: enforce timeouts for servers you create! + WriteTimeout: 15 * time.Second, + ReadTimeout: 15 * time.Second, + } + + log.Fatal(srv.ListenAndServe()) +} +``` + +### Serving Single Page Applications + +Most of the time it makes sense to serve your SPA on a separate web server from your API, +but sometimes it's desirable to serve them both from one place. It's possible to write a simple +handler for serving your SPA (for use with React Router's [BrowserRouter](https://reacttraining.com/react-router/web/api/BrowserRouter) for example), and leverage +mux's powerful routing for your API endpoints. + +```go +package main + +import ( + "encoding/json" + "log" + "net/http" + "os" + "path/filepath" + "time" + + "github.com/gorilla/mux" +) + +// spaHandler implements the http.Handler interface, so we can use it +// to respond to HTTP requests. The path to the static directory and +// path to the index file within that static directory are used to +// serve the SPA in the given static directory. +type spaHandler struct { + staticPath string + indexPath string +} + +// ServeHTTP inspects the URL path to locate a file within the static dir +// on the SPA handler. If a file is found, it will be served. If not, the +// file located at the index path on the SPA handler will be served. This +// is suitable behavior for serving an SPA (single page application). +func (h spaHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + // get the absolute path to prevent directory traversal + path, err := filepath.Abs(r.URL.Path) + if err != nil { + // if we failed to get the absolute path respond with a 400 bad request + // and stop + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + // prepend the path with the path to the static directory + path = filepath.Join(h.staticPath, path) + + // check whether a file exists at the given path + _, err = os.Stat(path) + if os.IsNotExist(err) { + // file does not exist, serve index.html + http.ServeFile(w, r, filepath.Join(h.staticPath, h.indexPath)) + return + } else if err != nil { + // if we got an error (that wasn't that the file doesn't exist) stating the + // file, return a 500 internal server error and stop + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + // otherwise, use http.FileServer to serve the static dir + http.FileServer(http.Dir(h.staticPath)).ServeHTTP(w, r) +} + +func main() { + router := mux.NewRouter() + + router.HandleFunc("/api/health", func(w http.ResponseWriter, r *http.Request) { + // an example API handler + json.NewEncoder(w).Encode(map[string]bool{"ok": true}) + }) + + spa := spaHandler{staticPath: "build", indexPath: "index.html"} + router.PathPrefix("/").Handler(spa) + + srv := &http.Server{ + Handler: router, + Addr: "127.0.0.1:8000", + // Good practice: enforce timeouts for servers you create! + WriteTimeout: 15 * time.Second, + ReadTimeout: 15 * time.Second, + } + + log.Fatal(srv.ListenAndServe()) +} +``` + +### Registered URLs + +Now let's see how to build registered URLs. + +Routes can be named. All routes that define a name can have their URLs built, or "reversed". We define a name calling `Name()` on a route. For example: + +```go +r := mux.NewRouter() +r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). + Name("article") +``` + +To build a URL, get the route and call the `URL()` method, passing a sequence of key/value pairs for the route variables. For the previous route, we would do: + +```go +url, err := r.Get("article").URL("category", "technology", "id", "42") +``` + +...and the result will be a `url.URL` with the following path: + +``` +"/articles/technology/42" +``` + +This also works for host and query value variables: + +```go +r := mux.NewRouter() +r.Host("{subdomain}.example.com"). + Path("/articles/{category}/{id:[0-9]+}"). + Queries("filter", "{filter}"). + HandlerFunc(ArticleHandler). + Name("article") + +// url.String() will be "http://news.example.com/articles/technology/42?filter=gorilla" +url, err := r.Get("article").URL("subdomain", "news", + "category", "technology", + "id", "42", + "filter", "gorilla") +``` + +All variables defined in the route are required, and their values must conform to the corresponding patterns. These requirements guarantee that a generated URL will always match a registered route -- the only exception is for explicitly defined "build-only" routes which never match. + +Regex support also exists for matching Headers within a route. For example, we could do: + +```go +r.HeadersRegexp("Content-Type", "application/(text|json)") +``` + +...and the route will match both requests with a Content-Type of `application/json` as well as `application/text` + +There's also a way to build only the URL host or path for a route: use the methods `URLHost()` or `URLPath()` instead. For the previous route, we would do: + +```go +// "http://news.example.com/" +host, err := r.Get("article").URLHost("subdomain", "news") + +// "/articles/technology/42" +path, err := r.Get("article").URLPath("category", "technology", "id", "42") +``` + +And if you use subrouters, host and path defined separately can be built as well: + +```go +r := mux.NewRouter() +s := r.Host("{subdomain}.example.com").Subrouter() +s.Path("/articles/{category}/{id:[0-9]+}"). + HandlerFunc(ArticleHandler). + Name("article") + +// "http://news.example.com/articles/technology/42" +url, err := r.Get("article").URL("subdomain", "news", + "category", "technology", + "id", "42") +``` + +### Walking Routes + +The `Walk` function on `mux.Router` can be used to visit all of the routes that are registered on a router. For example, +the following prints all of the registered routes: + +```go +package main + +import ( + "fmt" + "net/http" + "strings" + + "github.com/gorilla/mux" +) + +func handler(w http.ResponseWriter, r *http.Request) { + return +} + +func main() { + r := mux.NewRouter() + r.HandleFunc("/", handler) + r.HandleFunc("/products", handler).Methods("POST") + r.HandleFunc("/articles", handler).Methods("GET") + r.HandleFunc("/articles/{id}", handler).Methods("GET", "PUT") + r.HandleFunc("/authors", handler).Queries("surname", "{surname}") + err := r.Walk(func(route *mux.Route, router *mux.Router, ancestors []*mux.Route) error { + pathTemplate, err := route.GetPathTemplate() + if err == nil { + fmt.Println("ROUTE:", pathTemplate) + } + pathRegexp, err := route.GetPathRegexp() + if err == nil { + fmt.Println("Path regexp:", pathRegexp) + } + queriesTemplates, err := route.GetQueriesTemplates() + if err == nil { + fmt.Println("Queries templates:", strings.Join(queriesTemplates, ",")) + } + queriesRegexps, err := route.GetQueriesRegexp() + if err == nil { + fmt.Println("Queries regexps:", strings.Join(queriesRegexps, ",")) + } + methods, err := route.GetMethods() + if err == nil { + fmt.Println("Methods:", strings.Join(methods, ",")) + } + fmt.Println() + return nil + }) + + if err != nil { + fmt.Println(err) + } + + http.Handle("/", r) +} +``` + +### Graceful Shutdown + +Go 1.8 introduced the ability to [gracefully shutdown](https://golang.org/doc/go1.8#http_shutdown) a `*http.Server`. Here's how to do that alongside `mux`: + +```go +package main + +import ( + "context" + "flag" + "log" + "net/http" + "os" + "os/signal" + "time" + + "github.com/gorilla/mux" +) + +func main() { + var wait time.Duration + flag.DurationVar(&wait, "graceful-timeout", time.Second * 15, "the duration for which the server gracefully wait for existing connections to finish - e.g. 15s or 1m") + flag.Parse() + + r := mux.NewRouter() + // Add your routes as needed + + srv := &http.Server{ + Addr: "0.0.0.0:8080", + // Good practice to set timeouts to avoid Slowloris attacks. + WriteTimeout: time.Second * 15, + ReadTimeout: time.Second * 15, + IdleTimeout: time.Second * 60, + Handler: r, // Pass our instance of gorilla/mux in. + } + + // Run our server in a goroutine so that it doesn't block. + go func() { + if err := srv.ListenAndServe(); err != nil { + log.Println(err) + } + }() + + c := make(chan os.Signal, 1) + // We'll accept graceful shutdowns when quit via SIGINT (Ctrl+C) + // SIGKILL, SIGQUIT or SIGTERM (Ctrl+/) will not be caught. + signal.Notify(c, os.Interrupt) + + // Block until we receive our signal. + <-c + + // Create a deadline to wait for. + ctx, cancel := context.WithTimeout(context.Background(), wait) + defer cancel() + // Doesn't block if no connections, but will otherwise wait + // until the timeout deadline. + srv.Shutdown(ctx) + // Optionally, you could run srv.Shutdown in a goroutine and block on + // <-ctx.Done() if your application should wait for other services + // to finalize based on context cancellation. + log.Println("shutting down") + os.Exit(0) +} +``` + +### Middleware + +Mux supports the addition of middlewares to a [Router](https://godoc.org/github.com/gorilla/mux#Router), which are executed in the order they are added if a match is found, including its subrouters. +Middlewares are (typically) small pieces of code which take one request, do something with it, and pass it down to another middleware or the final handler. Some common use cases for middleware are request logging, header manipulation, or `ResponseWriter` hijacking. + +Mux middlewares are defined using the de facto standard type: + +```go +type MiddlewareFunc func(http.Handler) http.Handler +``` + +Typically, the returned handler is a closure which does something with the http.ResponseWriter and http.Request passed to it, and then calls the handler passed as parameter to the MiddlewareFunc. This takes advantage of closures being able access variables from the context where they are created, while retaining the signature enforced by the receivers. + +A very basic middleware which logs the URI of the request being handled could be written as: + +```go +func loggingMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + // Do stuff here + log.Println(r.RequestURI) + // Call the next handler, which can be another middleware in the chain, or the final handler. + next.ServeHTTP(w, r) + }) +} +``` + +Middlewares can be added to a router using `Router.Use()`: + +```go +r := mux.NewRouter() +r.HandleFunc("/", handler) +r.Use(loggingMiddleware) +``` + +A more complex authentication middleware, which maps session token to users, could be written as: + +```go +// Define our struct +type authenticationMiddleware struct { + tokenUsers map[string]string +} + +// Initialize it somewhere +func (amw *authenticationMiddleware) Populate() { + amw.tokenUsers["00000000"] = "user0" + amw.tokenUsers["aaaaaaaa"] = "userA" + amw.tokenUsers["05f717e5"] = "randomUser" + amw.tokenUsers["deadbeef"] = "user0" +} + +// Middleware function, which will be called for each request +func (amw *authenticationMiddleware) Middleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + token := r.Header.Get("X-Session-Token") + + if user, found := amw.tokenUsers[token]; found { + // We found the token in our map + log.Printf("Authenticated user %s\n", user) + // Pass down the request to the next middleware (or final handler) + next.ServeHTTP(w, r) + } else { + // Write an error and stop the handler chain + http.Error(w, "Forbidden", http.StatusForbidden) + } + }) +} +``` + +```go +r := mux.NewRouter() +r.HandleFunc("/", handler) + +amw := authenticationMiddleware{} +amw.Populate() + +r.Use(amw.Middleware) +``` + +Note: The handler chain will be stopped if your middleware doesn't call `next.ServeHTTP()` with the corresponding parameters. This can be used to abort a request if the middleware writer wants to. Middlewares _should_ write to `ResponseWriter` if they _are_ going to terminate the request, and they _should not_ write to `ResponseWriter` if they _are not_ going to terminate it. + +### Handling CORS Requests + +[CORSMethodMiddleware](https://godoc.org/github.com/gorilla/mux#CORSMethodMiddleware) intends to make it easier to strictly set the `Access-Control-Allow-Methods` response header. + +* You will still need to use your own CORS handler to set the other CORS headers such as `Access-Control-Allow-Origin` +* The middleware will set the `Access-Control-Allow-Methods` header to all the method matchers (e.g. `r.Methods(http.MethodGet, http.MethodPut, http.MethodOptions)` -> `Access-Control-Allow-Methods: GET,PUT,OPTIONS`) on a route +* If you do not specify any methods, then: +> _Important_: there must be an `OPTIONS` method matcher for the middleware to set the headers. + +Here is an example of using `CORSMethodMiddleware` along with a custom `OPTIONS` handler to set all the required CORS headers: + +```go +package main + +import ( + "net/http" + "github.com/gorilla/mux" +) + +func main() { + r := mux.NewRouter() + + // IMPORTANT: you must specify an OPTIONS method matcher for the middleware to set CORS headers + r.HandleFunc("/foo", fooHandler).Methods(http.MethodGet, http.MethodPut, http.MethodPatch, http.MethodOptions) + r.Use(mux.CORSMethodMiddleware(r)) + + http.ListenAndServe(":8080", r) +} + +func fooHandler(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + if r.Method == http.MethodOptions { + return + } + + w.Write([]byte("foo")) +} +``` + +And an request to `/foo` using something like: + +```bash +curl localhost:8080/foo -v +``` + +Would look like: + +```bash +* Trying ::1... +* TCP_NODELAY set +* Connected to localhost (::1) port 8080 (#0) +> GET /foo HTTP/1.1 +> Host: localhost:8080 +> User-Agent: curl/7.59.0 +> Accept: */* +> +< HTTP/1.1 200 OK +< Access-Control-Allow-Methods: GET,PUT,PATCH,OPTIONS +< Access-Control-Allow-Origin: * +< Date: Fri, 28 Jun 2019 20:13:30 GMT +< Content-Length: 3 +< Content-Type: text/plain; charset=utf-8 +< +* Connection #0 to host localhost left intact +foo +``` + +### Testing Handlers + +Testing handlers in a Go web application is straightforward, and _mux_ doesn't complicate this any further. Given two files: `endpoints.go` and `endpoints_test.go`, here's how we'd test an application using _mux_. + +First, our simple HTTP handler: + +```go +// endpoints.go +package main + +func HealthCheckHandler(w http.ResponseWriter, r *http.Request) { + // A very simple health check. + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + + // In the future we could report back on the status of our DB, or our cache + // (e.g. Redis) by performing a simple PING, and include them in the response. + io.WriteString(w, `{"alive": true}`) +} + +func main() { + r := mux.NewRouter() + r.HandleFunc("/health", HealthCheckHandler) + + log.Fatal(http.ListenAndServe("localhost:8080", r)) +} +``` + +Our test code: + +```go +// endpoints_test.go +package main + +import ( + "net/http" + "net/http/httptest" + "testing" +) + +func TestHealthCheckHandler(t *testing.T) { + // Create a request to pass to our handler. We don't have any query parameters for now, so we'll + // pass 'nil' as the third parameter. + req, err := http.NewRequest("GET", "/health", nil) + if err != nil { + t.Fatal(err) + } + + // We create a ResponseRecorder (which satisfies http.ResponseWriter) to record the response. + rr := httptest.NewRecorder() + handler := http.HandlerFunc(HealthCheckHandler) + + // Our handlers satisfy http.Handler, so we can call their ServeHTTP method + // directly and pass in our Request and ResponseRecorder. + handler.ServeHTTP(rr, req) + + // Check the status code is what we expect. + if status := rr.Code; status != http.StatusOK { + t.Errorf("handler returned wrong status code: got %v want %v", + status, http.StatusOK) + } + + // Check the response body is what we expect. + expected := `{"alive": true}` + if rr.Body.String() != expected { + t.Errorf("handler returned unexpected body: got %v want %v", + rr.Body.String(), expected) + } +} +``` + +In the case that our routes have [variables](#examples), we can pass those in the request. We could write +[table-driven tests](https://dave.cheney.net/2013/06/09/writing-table-driven-tests-in-go) to test multiple +possible route variables as needed. + +```go +// endpoints.go +func main() { + r := mux.NewRouter() + // A route with a route variable: + r.HandleFunc("/metrics/{type}", MetricsHandler) + + log.Fatal(http.ListenAndServe("localhost:8080", r)) +} +``` + +Our test file, with a table-driven test of `routeVariables`: + +```go +// endpoints_test.go +func TestMetricsHandler(t *testing.T) { + tt := []struct{ + routeVariable string + shouldPass bool + }{ + {"goroutines", true}, + {"heap", true}, + {"counters", true}, + {"queries", true}, + {"adhadaeqm3k", false}, + } + + for _, tc := range tt { + path := fmt.Sprintf("/metrics/%s", tc.routeVariable) + req, err := http.NewRequest("GET", path, nil) + if err != nil { + t.Fatal(err) + } + + rr := httptest.NewRecorder() + + // Need to create a router that we can pass the request through so that the vars will be added to the context + router := mux.NewRouter() + router.HandleFunc("/metrics/{type}", MetricsHandler) + router.ServeHTTP(rr, req) + + // In this case, our MetricsHandler returns a non-200 response + // for a route variable it doesn't know about. + if rr.Code == http.StatusOK && !tc.shouldPass { + t.Errorf("handler should have failed on routeVariable %s: got %v want %v", + tc.routeVariable, rr.Code, http.StatusOK) + } + } +} +``` + +## Full Example + +Here's a complete, runnable example of a small `mux` based server: + +```go +package main + +import ( + "net/http" + "log" + "github.com/gorilla/mux" +) + +func YourHandler(w http.ResponseWriter, r *http.Request) { + w.Write([]byte("Gorilla!\n")) +} + +func main() { + r := mux.NewRouter() + // Routes consist of a path and a handler function. + r.HandleFunc("/", YourHandler) + + // Bind to a port and pass our router in + log.Fatal(http.ListenAndServe(":8000", r)) +} +``` + +## License + +BSD licensed. See the LICENSE file for details. diff --git a/vendor/github.com/gorilla/mux/doc.go b/vendor/github.com/gorilla/mux/doc.go new file mode 100644 index 0000000..bd5a38b --- /dev/null +++ b/vendor/github.com/gorilla/mux/doc.go @@ -0,0 +1,306 @@ +// Copyright 2012 The Gorilla Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package mux implements a request router and dispatcher. + +The name mux stands for "HTTP request multiplexer". Like the standard +http.ServeMux, mux.Router matches incoming requests against a list of +registered routes and calls a handler for the route that matches the URL +or other conditions. The main features are: + + * Requests can be matched based on URL host, path, path prefix, schemes, + header and query values, HTTP methods or using custom matchers. + * URL hosts, paths and query values can have variables with an optional + regular expression. + * Registered URLs can be built, or "reversed", which helps maintaining + references to resources. + * Routes can be used as subrouters: nested routes are only tested if the + parent route matches. This is useful to define groups of routes that + share common conditions like a host, a path prefix or other repeated + attributes. As a bonus, this optimizes request matching. + * It implements the http.Handler interface so it is compatible with the + standard http.ServeMux. + +Let's start registering a couple of URL paths and handlers: + + func main() { + r := mux.NewRouter() + r.HandleFunc("/", HomeHandler) + r.HandleFunc("/products", ProductsHandler) + r.HandleFunc("/articles", ArticlesHandler) + http.Handle("/", r) + } + +Here we register three routes mapping URL paths to handlers. This is +equivalent to how http.HandleFunc() works: if an incoming request URL matches +one of the paths, the corresponding handler is called passing +(http.ResponseWriter, *http.Request) as parameters. + +Paths can have variables. They are defined using the format {name} or +{name:pattern}. If a regular expression pattern is not defined, the matched +variable will be anything until the next slash. For example: + + r := mux.NewRouter() + r.HandleFunc("/products/{key}", ProductHandler) + r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler) + r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler) + +Groups can be used inside patterns, as long as they are non-capturing (?:re). For example: + + r.HandleFunc("/articles/{category}/{sort:(?:asc|desc|new)}", ArticlesCategoryHandler) + +The names are used to create a map of route variables which can be retrieved +calling mux.Vars(): + + vars := mux.Vars(request) + category := vars["category"] + +Note that if any capturing groups are present, mux will panic() during parsing. To prevent +this, convert any capturing groups to non-capturing, e.g. change "/{sort:(asc|desc)}" to +"/{sort:(?:asc|desc)}". This is a change from prior versions which behaved unpredictably +when capturing groups were present. + +And this is all you need to know about the basic usage. More advanced options +are explained below. + +Routes can also be restricted to a domain or subdomain. Just define a host +pattern to be matched. They can also have variables: + + r := mux.NewRouter() + // Only matches if domain is "www.example.com". + r.Host("www.example.com") + // Matches a dynamic subdomain. + r.Host("{subdomain:[a-z]+}.domain.com") + +There are several other matchers that can be added. To match path prefixes: + + r.PathPrefix("/products/") + +...or HTTP methods: + + r.Methods("GET", "POST") + +...or URL schemes: + + r.Schemes("https") + +...or header values: + + r.Headers("X-Requested-With", "XMLHttpRequest") + +...or query values: + + r.Queries("key", "value") + +...or to use a custom matcher function: + + r.MatcherFunc(func(r *http.Request, rm *RouteMatch) bool { + return r.ProtoMajor == 0 + }) + +...and finally, it is possible to combine several matchers in a single route: + + r.HandleFunc("/products", ProductsHandler). + Host("www.example.com"). + Methods("GET"). + Schemes("http") + +Setting the same matching conditions again and again can be boring, so we have +a way to group several routes that share the same requirements. +We call it "subrouting". + +For example, let's say we have several URLs that should only match when the +host is "www.example.com". Create a route for that host and get a "subrouter" +from it: + + r := mux.NewRouter() + s := r.Host("www.example.com").Subrouter() + +Then register routes in the subrouter: + + s.HandleFunc("/products/", ProductsHandler) + s.HandleFunc("/products/{key}", ProductHandler) + s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler) + +The three URL paths we registered above will only be tested if the domain is +"www.example.com", because the subrouter is tested first. This is not +only convenient, but also optimizes request matching. You can create +subrouters combining any attribute matchers accepted by a route. + +Subrouters can be used to create domain or path "namespaces": you define +subrouters in a central place and then parts of the app can register its +paths relatively to a given subrouter. + +There's one more thing about subroutes. When a subrouter has a path prefix, +the inner routes use it as base for their paths: + + r := mux.NewRouter() + s := r.PathPrefix("/products").Subrouter() + // "/products/" + s.HandleFunc("/", ProductsHandler) + // "/products/{key}/" + s.HandleFunc("/{key}/", ProductHandler) + // "/products/{key}/details" + s.HandleFunc("/{key}/details", ProductDetailsHandler) + +Note that the path provided to PathPrefix() represents a "wildcard": calling +PathPrefix("/static/").Handler(...) means that the handler will be passed any +request that matches "/static/*". This makes it easy to serve static files with mux: + + func main() { + var dir string + + flag.StringVar(&dir, "dir", ".", "the directory to serve files from. Defaults to the current dir") + flag.Parse() + r := mux.NewRouter() + + // This will serve files under http://localhost:8000/static/ + r.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir(dir)))) + + srv := &http.Server{ + Handler: r, + Addr: "127.0.0.1:8000", + // Good practice: enforce timeouts for servers you create! + WriteTimeout: 15 * time.Second, + ReadTimeout: 15 * time.Second, + } + + log.Fatal(srv.ListenAndServe()) + } + +Now let's see how to build registered URLs. + +Routes can be named. All routes that define a name can have their URLs built, +or "reversed". We define a name calling Name() on a route. For example: + + r := mux.NewRouter() + r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). + Name("article") + +To build a URL, get the route and call the URL() method, passing a sequence of +key/value pairs for the route variables. For the previous route, we would do: + + url, err := r.Get("article").URL("category", "technology", "id", "42") + +...and the result will be a url.URL with the following path: + + "/articles/technology/42" + +This also works for host and query value variables: + + r := mux.NewRouter() + r.Host("{subdomain}.domain.com"). + Path("/articles/{category}/{id:[0-9]+}"). + Queries("filter", "{filter}"). + HandlerFunc(ArticleHandler). + Name("article") + + // url.String() will be "http://news.domain.com/articles/technology/42?filter=gorilla" + url, err := r.Get("article").URL("subdomain", "news", + "category", "technology", + "id", "42", + "filter", "gorilla") + +All variables defined in the route are required, and their values must +conform to the corresponding patterns. These requirements guarantee that a +generated URL will always match a registered route -- the only exception is +for explicitly defined "build-only" routes which never match. + +Regex support also exists for matching Headers within a route. For example, we could do: + + r.HeadersRegexp("Content-Type", "application/(text|json)") + +...and the route will match both requests with a Content-Type of `application/json` as well as +`application/text` + +There's also a way to build only the URL host or path for a route: +use the methods URLHost() or URLPath() instead. For the previous route, +we would do: + + // "http://news.domain.com/" + host, err := r.Get("article").URLHost("subdomain", "news") + + // "/articles/technology/42" + path, err := r.Get("article").URLPath("category", "technology", "id", "42") + +And if you use subrouters, host and path defined separately can be built +as well: + + r := mux.NewRouter() + s := r.Host("{subdomain}.domain.com").Subrouter() + s.Path("/articles/{category}/{id:[0-9]+}"). + HandlerFunc(ArticleHandler). + Name("article") + + // "http://news.domain.com/articles/technology/42" + url, err := r.Get("article").URL("subdomain", "news", + "category", "technology", + "id", "42") + +Mux supports the addition of middlewares to a Router, which are executed in the order they are added if a match is found, including its subrouters. Middlewares are (typically) small pieces of code which take one request, do something with it, and pass it down to another middleware or the final handler. Some common use cases for middleware are request logging, header manipulation, or ResponseWriter hijacking. + + type MiddlewareFunc func(http.Handler) http.Handler + +Typically, the returned handler is a closure which does something with the http.ResponseWriter and http.Request passed to it, and then calls the handler passed as parameter to the MiddlewareFunc (closures can access variables from the context where they are created). + +A very basic middleware which logs the URI of the request being handled could be written as: + + func simpleMw(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + // Do stuff here + log.Println(r.RequestURI) + // Call the next handler, which can be another middleware in the chain, or the final handler. + next.ServeHTTP(w, r) + }) + } + +Middlewares can be added to a router using `Router.Use()`: + + r := mux.NewRouter() + r.HandleFunc("/", handler) + r.Use(simpleMw) + +A more complex authentication middleware, which maps session token to users, could be written as: + + // Define our struct + type authenticationMiddleware struct { + tokenUsers map[string]string + } + + // Initialize it somewhere + func (amw *authenticationMiddleware) Populate() { + amw.tokenUsers["00000000"] = "user0" + amw.tokenUsers["aaaaaaaa"] = "userA" + amw.tokenUsers["05f717e5"] = "randomUser" + amw.tokenUsers["deadbeef"] = "user0" + } + + // Middleware function, which will be called for each request + func (amw *authenticationMiddleware) Middleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + token := r.Header.Get("X-Session-Token") + + if user, found := amw.tokenUsers[token]; found { + // We found the token in our map + log.Printf("Authenticated user %s\n", user) + next.ServeHTTP(w, r) + } else { + http.Error(w, "Forbidden", http.StatusForbidden) + } + }) + } + + r := mux.NewRouter() + r.HandleFunc("/", handler) + + amw := authenticationMiddleware{tokenUsers: make(map[string]string)} + amw.Populate() + + r.Use(amw.Middleware) + +Note: The handler chain will be stopped if your middleware doesn't call `next.ServeHTTP()` with the corresponding parameters. This can be used to abort a request if the middleware writer wants to. + +*/ +package mux diff --git a/vendor/github.com/gorilla/mux/go.mod b/vendor/github.com/gorilla/mux/go.mod new file mode 100644 index 0000000..df170a3 --- /dev/null +++ b/vendor/github.com/gorilla/mux/go.mod @@ -0,0 +1,3 @@ +module github.com/gorilla/mux + +go 1.12 diff --git a/vendor/github.com/gorilla/mux/middleware.go b/vendor/github.com/gorilla/mux/middleware.go new file mode 100644 index 0000000..cb51c56 --- /dev/null +++ b/vendor/github.com/gorilla/mux/middleware.go @@ -0,0 +1,74 @@ +package mux + +import ( + "net/http" + "strings" +) + +// MiddlewareFunc is a function which receives an http.Handler and returns another http.Handler. +// Typically, the returned handler is a closure which does something with the http.ResponseWriter and http.Request passed +// to it, and then calls the handler passed as parameter to the MiddlewareFunc. +type MiddlewareFunc func(http.Handler) http.Handler + +// middleware interface is anything which implements a MiddlewareFunc named Middleware. +type middleware interface { + Middleware(handler http.Handler) http.Handler +} + +// Middleware allows MiddlewareFunc to implement the middleware interface. +func (mw MiddlewareFunc) Middleware(handler http.Handler) http.Handler { + return mw(handler) +} + +// Use appends a MiddlewareFunc to the chain. Middleware can be used to intercept or otherwise modify requests and/or responses, and are executed in the order that they are applied to the Router. +func (r *Router) Use(mwf ...MiddlewareFunc) { + for _, fn := range mwf { + r.middlewares = append(r.middlewares, fn) + } +} + +// useInterface appends a middleware to the chain. Middleware can be used to intercept or otherwise modify requests and/or responses, and are executed in the order that they are applied to the Router. +func (r *Router) useInterface(mw middleware) { + r.middlewares = append(r.middlewares, mw) +} + +// CORSMethodMiddleware automatically sets the Access-Control-Allow-Methods response header +// on requests for routes that have an OPTIONS method matcher to all the method matchers on +// the route. Routes that do not explicitly handle OPTIONS requests will not be processed +// by the middleware. See examples for usage. +func CORSMethodMiddleware(r *Router) MiddlewareFunc { + return func(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + allMethods, err := getAllMethodsForRoute(r, req) + if err == nil { + for _, v := range allMethods { + if v == http.MethodOptions { + w.Header().Set("Access-Control-Allow-Methods", strings.Join(allMethods, ",")) + } + } + } + + next.ServeHTTP(w, req) + }) + } +} + +// getAllMethodsForRoute returns all the methods from method matchers matching a given +// request. +func getAllMethodsForRoute(r *Router, req *http.Request) ([]string, error) { + var allMethods []string + + for _, route := range r.routes { + var match RouteMatch + if route.Match(req, &match) || match.MatchErr == ErrMethodMismatch { + methods, err := route.GetMethods() + if err != nil { + return nil, err + } + + allMethods = append(allMethods, methods...) + } + } + + return allMethods, nil +} diff --git a/vendor/github.com/gorilla/mux/mux.go b/vendor/github.com/gorilla/mux/mux.go new file mode 100644 index 0000000..782a34b --- /dev/null +++ b/vendor/github.com/gorilla/mux/mux.go @@ -0,0 +1,606 @@ +// Copyright 2012 The Gorilla Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package mux + +import ( + "context" + "errors" + "fmt" + "net/http" + "path" + "regexp" +) + +var ( + // ErrMethodMismatch is returned when the method in the request does not match + // the method defined against the route. + ErrMethodMismatch = errors.New("method is not allowed") + // ErrNotFound is returned when no route match is found. + ErrNotFound = errors.New("no matching route was found") +) + +// NewRouter returns a new router instance. +func NewRouter() *Router { + return &Router{namedRoutes: make(map[string]*Route)} +} + +// Router registers routes to be matched and dispatches a handler. +// +// It implements the http.Handler interface, so it can be registered to serve +// requests: +// +// var router = mux.NewRouter() +// +// func main() { +// http.Handle("/", router) +// } +// +// Or, for Google App Engine, register it in a init() function: +// +// func init() { +// http.Handle("/", router) +// } +// +// This will send all incoming requests to the router. +type Router struct { + // Configurable Handler to be used when no route matches. + NotFoundHandler http.Handler + + // Configurable Handler to be used when the request method does not match the route. + MethodNotAllowedHandler http.Handler + + // Routes to be matched, in order. + routes []*Route + + // Routes by name for URL building. + namedRoutes map[string]*Route + + // If true, do not clear the request context after handling the request. + // + // Deprecated: No effect, since the context is stored on the request itself. + KeepContext bool + + // Slice of middlewares to be called after a match is found + middlewares []middleware + + // configuration shared with `Route` + routeConf +} + +// common route configuration shared between `Router` and `Route` +type routeConf struct { + // If true, "/path/foo%2Fbar/to" will match the path "/path/{var}/to" + useEncodedPath bool + + // If true, when the path pattern is "/path/", accessing "/path" will + // redirect to the former and vice versa. + strictSlash bool + + // If true, when the path pattern is "/path//to", accessing "/path//to" + // will not redirect + skipClean bool + + // Manager for the variables from host and path. + regexp routeRegexpGroup + + // List of matchers. + matchers []matcher + + // The scheme used when building URLs. + buildScheme string + + buildVarsFunc BuildVarsFunc +} + +// returns an effective deep copy of `routeConf` +func copyRouteConf(r routeConf) routeConf { + c := r + + if r.regexp.path != nil { + c.regexp.path = copyRouteRegexp(r.regexp.path) + } + + if r.regexp.host != nil { + c.regexp.host = copyRouteRegexp(r.regexp.host) + } + + c.regexp.queries = make([]*routeRegexp, 0, len(r.regexp.queries)) + for _, q := range r.regexp.queries { + c.regexp.queries = append(c.regexp.queries, copyRouteRegexp(q)) + } + + c.matchers = make([]matcher, len(r.matchers)) + copy(c.matchers, r.matchers) + + return c +} + +func copyRouteRegexp(r *routeRegexp) *routeRegexp { + c := *r + return &c +} + +// Match attempts to match the given request against the router's registered routes. +// +// If the request matches a route of this router or one of its subrouters the Route, +// Handler, and Vars fields of the the match argument are filled and this function +// returns true. +// +// If the request does not match any of this router's or its subrouters' routes +// then this function returns false. If available, a reason for the match failure +// will be filled in the match argument's MatchErr field. If the match failure type +// (eg: not found) has a registered handler, the handler is assigned to the Handler +// field of the match argument. +func (r *Router) Match(req *http.Request, match *RouteMatch) bool { + for _, route := range r.routes { + if route.Match(req, match) { + // Build middleware chain if no error was found + if match.MatchErr == nil { + for i := len(r.middlewares) - 1; i >= 0; i-- { + match.Handler = r.middlewares[i].Middleware(match.Handler) + } + } + return true + } + } + + if match.MatchErr == ErrMethodMismatch { + if r.MethodNotAllowedHandler != nil { + match.Handler = r.MethodNotAllowedHandler + return true + } + + return false + } + + // Closest match for a router (includes sub-routers) + if r.NotFoundHandler != nil { + match.Handler = r.NotFoundHandler + match.MatchErr = ErrNotFound + return true + } + + match.MatchErr = ErrNotFound + return false +} + +// ServeHTTP dispatches the handler registered in the matched route. +// +// When there is a match, the route variables can be retrieved calling +// mux.Vars(request). +func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request) { + if !r.skipClean { + path := req.URL.Path + if r.useEncodedPath { + path = req.URL.EscapedPath() + } + // Clean path to canonical form and redirect. + if p := cleanPath(path); p != path { + + // Added 3 lines (Philip Schlump) - It was dropping the query string and #whatever from query. + // This matches with fix in go 1.2 r.c. 4 for same problem. Go Issue: + // http://code.google.com/p/go/issues/detail?id=5252 + url := *req.URL + url.Path = p + p = url.String() + + w.Header().Set("Location", p) + w.WriteHeader(http.StatusMovedPermanently) + return + } + } + var match RouteMatch + var handler http.Handler + if r.Match(req, &match) { + handler = match.Handler + req = requestWithVars(req, match.Vars) + req = requestWithRoute(req, match.Route) + } + + if handler == nil && match.MatchErr == ErrMethodMismatch { + handler = methodNotAllowedHandler() + } + + if handler == nil { + handler = http.NotFoundHandler() + } + + handler.ServeHTTP(w, req) +} + +// Get returns a route registered with the given name. +func (r *Router) Get(name string) *Route { + return r.namedRoutes[name] +} + +// GetRoute returns a route registered with the given name. This method +// was renamed to Get() and remains here for backwards compatibility. +func (r *Router) GetRoute(name string) *Route { + return r.namedRoutes[name] +} + +// StrictSlash defines the trailing slash behavior for new routes. The initial +// value is false. +// +// When true, if the route path is "/path/", accessing "/path" will perform a redirect +// to the former and vice versa. In other words, your application will always +// see the path as specified in the route. +// +// When false, if the route path is "/path", accessing "/path/" will not match +// this route and vice versa. +// +// The re-direct is a HTTP 301 (Moved Permanently). Note that when this is set for +// routes with a non-idempotent method (e.g. POST, PUT), the subsequent re-directed +// request will be made as a GET by most clients. Use middleware or client settings +// to modify this behaviour as needed. +// +// Special case: when a route sets a path prefix using the PathPrefix() method, +// strict slash is ignored for that route because the redirect behavior can't +// be determined from a prefix alone. However, any subrouters created from that +// route inherit the original StrictSlash setting. +func (r *Router) StrictSlash(value bool) *Router { + r.strictSlash = value + return r +} + +// SkipClean defines the path cleaning behaviour for new routes. The initial +// value is false. Users should be careful about which routes are not cleaned +// +// When true, if the route path is "/path//to", it will remain with the double +// slash. This is helpful if you have a route like: /fetch/http://xkcd.com/534/ +// +// When false, the path will be cleaned, so /fetch/http://xkcd.com/534/ will +// become /fetch/http/xkcd.com/534 +func (r *Router) SkipClean(value bool) *Router { + r.skipClean = value + return r +} + +// UseEncodedPath tells the router to match the encoded original path +// to the routes. +// For eg. "/path/foo%2Fbar/to" will match the path "/path/{var}/to". +// +// If not called, the router will match the unencoded path to the routes. +// For eg. "/path/foo%2Fbar/to" will match the path "/path/foo/bar/to" +func (r *Router) UseEncodedPath() *Router { + r.useEncodedPath = true + return r +} + +// ---------------------------------------------------------------------------- +// Route factories +// ---------------------------------------------------------------------------- + +// NewRoute registers an empty route. +func (r *Router) NewRoute() *Route { + // initialize a route with a copy of the parent router's configuration + route := &Route{routeConf: copyRouteConf(r.routeConf), namedRoutes: r.namedRoutes} + r.routes = append(r.routes, route) + return route +} + +// Name registers a new route with a name. +// See Route.Name(). +func (r *Router) Name(name string) *Route { + return r.NewRoute().Name(name) +} + +// Handle registers a new route with a matcher for the URL path. +// See Route.Path() and Route.Handler(). +func (r *Router) Handle(path string, handler http.Handler) *Route { + return r.NewRoute().Path(path).Handler(handler) +} + +// HandleFunc registers a new route with a matcher for the URL path. +// See Route.Path() and Route.HandlerFunc(). +func (r *Router) HandleFunc(path string, f func(http.ResponseWriter, + *http.Request)) *Route { + return r.NewRoute().Path(path).HandlerFunc(f) +} + +// Headers registers a new route with a matcher for request header values. +// See Route.Headers(). +func (r *Router) Headers(pairs ...string) *Route { + return r.NewRoute().Headers(pairs...) +} + +// Host registers a new route with a matcher for the URL host. +// See Route.Host(). +func (r *Router) Host(tpl string) *Route { + return r.NewRoute().Host(tpl) +} + +// MatcherFunc registers a new route with a custom matcher function. +// See Route.MatcherFunc(). +func (r *Router) MatcherFunc(f MatcherFunc) *Route { + return r.NewRoute().MatcherFunc(f) +} + +// Methods registers a new route with a matcher for HTTP methods. +// See Route.Methods(). +func (r *Router) Methods(methods ...string) *Route { + return r.NewRoute().Methods(methods...) +} + +// Path registers a new route with a matcher for the URL path. +// See Route.Path(). +func (r *Router) Path(tpl string) *Route { + return r.NewRoute().Path(tpl) +} + +// PathPrefix registers a new route with a matcher for the URL path prefix. +// See Route.PathPrefix(). +func (r *Router) PathPrefix(tpl string) *Route { + return r.NewRoute().PathPrefix(tpl) +} + +// Queries registers a new route with a matcher for URL query values. +// See Route.Queries(). +func (r *Router) Queries(pairs ...string) *Route { + return r.NewRoute().Queries(pairs...) +} + +// Schemes registers a new route with a matcher for URL schemes. +// See Route.Schemes(). +func (r *Router) Schemes(schemes ...string) *Route { + return r.NewRoute().Schemes(schemes...) +} + +// BuildVarsFunc registers a new route with a custom function for modifying +// route variables before building a URL. +func (r *Router) BuildVarsFunc(f BuildVarsFunc) *Route { + return r.NewRoute().BuildVarsFunc(f) +} + +// Walk walks the router and all its sub-routers, calling walkFn for each route +// in the tree. The routes are walked in the order they were added. Sub-routers +// are explored depth-first. +func (r *Router) Walk(walkFn WalkFunc) error { + return r.walk(walkFn, []*Route{}) +} + +// SkipRouter is used as a return value from WalkFuncs to indicate that the +// router that walk is about to descend down to should be skipped. +var SkipRouter = errors.New("skip this router") + +// WalkFunc is the type of the function called for each route visited by Walk. +// At every invocation, it is given the current route, and the current router, +// and a list of ancestor routes that lead to the current route. +type WalkFunc func(route *Route, router *Router, ancestors []*Route) error + +func (r *Router) walk(walkFn WalkFunc, ancestors []*Route) error { + for _, t := range r.routes { + err := walkFn(t, r, ancestors) + if err == SkipRouter { + continue + } + if err != nil { + return err + } + for _, sr := range t.matchers { + if h, ok := sr.(*Router); ok { + ancestors = append(ancestors, t) + err := h.walk(walkFn, ancestors) + if err != nil { + return err + } + ancestors = ancestors[:len(ancestors)-1] + } + } + if h, ok := t.handler.(*Router); ok { + ancestors = append(ancestors, t) + err := h.walk(walkFn, ancestors) + if err != nil { + return err + } + ancestors = ancestors[:len(ancestors)-1] + } + } + return nil +} + +// ---------------------------------------------------------------------------- +// Context +// ---------------------------------------------------------------------------- + +// RouteMatch stores information about a matched route. +type RouteMatch struct { + Route *Route + Handler http.Handler + Vars map[string]string + + // MatchErr is set to appropriate matching error + // It is set to ErrMethodMismatch if there is a mismatch in + // the request method and route method + MatchErr error +} + +type contextKey int + +const ( + varsKey contextKey = iota + routeKey +) + +// Vars returns the route variables for the current request, if any. +func Vars(r *http.Request) map[string]string { + if rv := r.Context().Value(varsKey); rv != nil { + return rv.(map[string]string) + } + return nil +} + +// CurrentRoute returns the matched route for the current request, if any. +// This only works when called inside the handler of the matched route +// because the matched route is stored in the request context which is cleared +// after the handler returns. +func CurrentRoute(r *http.Request) *Route { + if rv := r.Context().Value(routeKey); rv != nil { + return rv.(*Route) + } + return nil +} + +func requestWithVars(r *http.Request, vars map[string]string) *http.Request { + ctx := context.WithValue(r.Context(), varsKey, vars) + return r.WithContext(ctx) +} + +func requestWithRoute(r *http.Request, route *Route) *http.Request { + ctx := context.WithValue(r.Context(), routeKey, route) + return r.WithContext(ctx) +} + +// ---------------------------------------------------------------------------- +// Helpers +// ---------------------------------------------------------------------------- + +// cleanPath returns the canonical path for p, eliminating . and .. elements. +// Borrowed from the net/http package. +func cleanPath(p string) string { + if p == "" { + return "/" + } + if p[0] != '/' { + p = "/" + p + } + np := path.Clean(p) + // path.Clean removes trailing slash except for root; + // put the trailing slash back if necessary. + if p[len(p)-1] == '/' && np != "/" { + np += "/" + } + + return np +} + +// uniqueVars returns an error if two slices contain duplicated strings. +func uniqueVars(s1, s2 []string) error { + for _, v1 := range s1 { + for _, v2 := range s2 { + if v1 == v2 { + return fmt.Errorf("mux: duplicated route variable %q", v2) + } + } + } + return nil +} + +// checkPairs returns the count of strings passed in, and an error if +// the count is not an even number. +func checkPairs(pairs ...string) (int, error) { + length := len(pairs) + if length%2 != 0 { + return length, fmt.Errorf( + "mux: number of parameters must be multiple of 2, got %v", pairs) + } + return length, nil +} + +// mapFromPairsToString converts variadic string parameters to a +// string to string map. +func mapFromPairsToString(pairs ...string) (map[string]string, error) { + length, err := checkPairs(pairs...) + if err != nil { + return nil, err + } + m := make(map[string]string, length/2) + for i := 0; i < length; i += 2 { + m[pairs[i]] = pairs[i+1] + } + return m, nil +} + +// mapFromPairsToRegex converts variadic string parameters to a +// string to regex map. +func mapFromPairsToRegex(pairs ...string) (map[string]*regexp.Regexp, error) { + length, err := checkPairs(pairs...) + if err != nil { + return nil, err + } + m := make(map[string]*regexp.Regexp, length/2) + for i := 0; i < length; i += 2 { + regex, err := regexp.Compile(pairs[i+1]) + if err != nil { + return nil, err + } + m[pairs[i]] = regex + } + return m, nil +} + +// matchInArray returns true if the given string value is in the array. +func matchInArray(arr []string, value string) bool { + for _, v := range arr { + if v == value { + return true + } + } + return false +} + +// matchMapWithString returns true if the given key/value pairs exist in a given map. +func matchMapWithString(toCheck map[string]string, toMatch map[string][]string, canonicalKey bool) bool { + for k, v := range toCheck { + // Check if key exists. + if canonicalKey { + k = http.CanonicalHeaderKey(k) + } + if values := toMatch[k]; values == nil { + return false + } else if v != "" { + // If value was defined as an empty string we only check that the + // key exists. Otherwise we also check for equality. + valueExists := false + for _, value := range values { + if v == value { + valueExists = true + break + } + } + if !valueExists { + return false + } + } + } + return true +} + +// matchMapWithRegex returns true if the given key/value pairs exist in a given map compiled against +// the given regex +func matchMapWithRegex(toCheck map[string]*regexp.Regexp, toMatch map[string][]string, canonicalKey bool) bool { + for k, v := range toCheck { + // Check if key exists. + if canonicalKey { + k = http.CanonicalHeaderKey(k) + } + if values := toMatch[k]; values == nil { + return false + } else if v != nil { + // If value was defined as an empty string we only check that the + // key exists. Otherwise we also check for equality. + valueExists := false + for _, value := range values { + if v.MatchString(value) { + valueExists = true + break + } + } + if !valueExists { + return false + } + } + } + return true +} + +// methodNotAllowed replies to the request with an HTTP status code 405. +func methodNotAllowed(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusMethodNotAllowed) +} + +// methodNotAllowedHandler returns a simple request handler +// that replies to each request with a status code 405. +func methodNotAllowedHandler() http.Handler { return http.HandlerFunc(methodNotAllowed) } diff --git a/vendor/github.com/gorilla/mux/regexp.go b/vendor/github.com/gorilla/mux/regexp.go new file mode 100644 index 0000000..0144842 --- /dev/null +++ b/vendor/github.com/gorilla/mux/regexp.go @@ -0,0 +1,388 @@ +// Copyright 2012 The Gorilla Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package mux + +import ( + "bytes" + "fmt" + "net/http" + "net/url" + "regexp" + "strconv" + "strings" +) + +type routeRegexpOptions struct { + strictSlash bool + useEncodedPath bool +} + +type regexpType int + +const ( + regexpTypePath regexpType = 0 + regexpTypeHost regexpType = 1 + regexpTypePrefix regexpType = 2 + regexpTypeQuery regexpType = 3 +) + +// newRouteRegexp parses a route template and returns a routeRegexp, +// used to match a host, a path or a query string. +// +// It will extract named variables, assemble a regexp to be matched, create +// a "reverse" template to build URLs and compile regexps to validate variable +// values used in URL building. +// +// Previously we accepted only Python-like identifiers for variable +// names ([a-zA-Z_][a-zA-Z0-9_]*), but currently the only restriction is that +// name and pattern can't be empty, and names can't contain a colon. +func newRouteRegexp(tpl string, typ regexpType, options routeRegexpOptions) (*routeRegexp, error) { + // Check if it is well-formed. + idxs, errBraces := braceIndices(tpl) + if errBraces != nil { + return nil, errBraces + } + // Backup the original. + template := tpl + // Now let's parse it. + defaultPattern := "[^/]+" + if typ == regexpTypeQuery { + defaultPattern = ".*" + } else if typ == regexpTypeHost { + defaultPattern = "[^.]+" + } + // Only match strict slash if not matching + if typ != regexpTypePath { + options.strictSlash = false + } + // Set a flag for strictSlash. + endSlash := false + if options.strictSlash && strings.HasSuffix(tpl, "/") { + tpl = tpl[:len(tpl)-1] + endSlash = true + } + varsN := make([]string, len(idxs)/2) + varsR := make([]*regexp.Regexp, len(idxs)/2) + pattern := bytes.NewBufferString("") + pattern.WriteByte('^') + reverse := bytes.NewBufferString("") + var end int + var err error + for i := 0; i < len(idxs); i += 2 { + // Set all values we are interested in. + raw := tpl[end:idxs[i]] + end = idxs[i+1] + parts := strings.SplitN(tpl[idxs[i]+1:end-1], ":", 2) + name := parts[0] + patt := defaultPattern + if len(parts) == 2 { + patt = parts[1] + } + // Name or pattern can't be empty. + if name == "" || patt == "" { + return nil, fmt.Errorf("mux: missing name or pattern in %q", + tpl[idxs[i]:end]) + } + // Build the regexp pattern. + fmt.Fprintf(pattern, "%s(?P<%s>%s)", regexp.QuoteMeta(raw), varGroupName(i/2), patt) + + // Build the reverse template. + fmt.Fprintf(reverse, "%s%%s", raw) + + // Append variable name and compiled pattern. + varsN[i/2] = name + varsR[i/2], err = regexp.Compile(fmt.Sprintf("^%s$", patt)) + if err != nil { + return nil, err + } + } + // Add the remaining. + raw := tpl[end:] + pattern.WriteString(regexp.QuoteMeta(raw)) + if options.strictSlash { + pattern.WriteString("[/]?") + } + if typ == regexpTypeQuery { + // Add the default pattern if the query value is empty + if queryVal := strings.SplitN(template, "=", 2)[1]; queryVal == "" { + pattern.WriteString(defaultPattern) + } + } + if typ != regexpTypePrefix { + pattern.WriteByte('$') + } + + var wildcardHostPort bool + if typ == regexpTypeHost { + if !strings.Contains(pattern.String(), ":") { + wildcardHostPort = true + } + } + reverse.WriteString(raw) + if endSlash { + reverse.WriteByte('/') + } + // Compile full regexp. + reg, errCompile := regexp.Compile(pattern.String()) + if errCompile != nil { + return nil, errCompile + } + + // Check for capturing groups which used to work in older versions + if reg.NumSubexp() != len(idxs)/2 { + panic(fmt.Sprintf("route %s contains capture groups in its regexp. ", template) + + "Only non-capturing groups are accepted: e.g. (?:pattern) instead of (pattern)") + } + + // Done! + return &routeRegexp{ + template: template, + regexpType: typ, + options: options, + regexp: reg, + reverse: reverse.String(), + varsN: varsN, + varsR: varsR, + wildcardHostPort: wildcardHostPort, + }, nil +} + +// routeRegexp stores a regexp to match a host or path and information to +// collect and validate route variables. +type routeRegexp struct { + // The unmodified template. + template string + // The type of match + regexpType regexpType + // Options for matching + options routeRegexpOptions + // Expanded regexp. + regexp *regexp.Regexp + // Reverse template. + reverse string + // Variable names. + varsN []string + // Variable regexps (validators). + varsR []*regexp.Regexp + // Wildcard host-port (no strict port match in hostname) + wildcardHostPort bool +} + +// Match matches the regexp against the URL host or path. +func (r *routeRegexp) Match(req *http.Request, match *RouteMatch) bool { + if r.regexpType == regexpTypeHost { + host := getHost(req) + if r.wildcardHostPort { + // Don't be strict on the port match + if i := strings.Index(host, ":"); i != -1 { + host = host[:i] + } + } + return r.regexp.MatchString(host) + } + + if r.regexpType == regexpTypeQuery { + return r.matchQueryString(req) + } + path := req.URL.Path + if r.options.useEncodedPath { + path = req.URL.EscapedPath() + } + return r.regexp.MatchString(path) +} + +// url builds a URL part using the given values. +func (r *routeRegexp) url(values map[string]string) (string, error) { + urlValues := make([]interface{}, len(r.varsN), len(r.varsN)) + for k, v := range r.varsN { + value, ok := values[v] + if !ok { + return "", fmt.Errorf("mux: missing route variable %q", v) + } + if r.regexpType == regexpTypeQuery { + value = url.QueryEscape(value) + } + urlValues[k] = value + } + rv := fmt.Sprintf(r.reverse, urlValues...) + if !r.regexp.MatchString(rv) { + // The URL is checked against the full regexp, instead of checking + // individual variables. This is faster but to provide a good error + // message, we check individual regexps if the URL doesn't match. + for k, v := range r.varsN { + if !r.varsR[k].MatchString(values[v]) { + return "", fmt.Errorf( + "mux: variable %q doesn't match, expected %q", values[v], + r.varsR[k].String()) + } + } + } + return rv, nil +} + +// getURLQuery returns a single query parameter from a request URL. +// For a URL with foo=bar&baz=ding, we return only the relevant key +// value pair for the routeRegexp. +func (r *routeRegexp) getURLQuery(req *http.Request) string { + if r.regexpType != regexpTypeQuery { + return "" + } + templateKey := strings.SplitN(r.template, "=", 2)[0] + val, ok := findFirstQueryKey(req.URL.RawQuery, templateKey) + if ok { + return templateKey + "=" + val + } + return "" +} + +// findFirstQueryKey returns the same result as (*url.URL).Query()[key][0]. +// If key was not found, empty string and false is returned. +func findFirstQueryKey(rawQuery, key string) (value string, ok bool) { + query := []byte(rawQuery) + for len(query) > 0 { + foundKey := query + if i := bytes.IndexAny(foundKey, "&;"); i >= 0 { + foundKey, query = foundKey[:i], foundKey[i+1:] + } else { + query = query[:0] + } + if len(foundKey) == 0 { + continue + } + var value []byte + if i := bytes.IndexByte(foundKey, '='); i >= 0 { + foundKey, value = foundKey[:i], foundKey[i+1:] + } + if len(foundKey) < len(key) { + // Cannot possibly be key. + continue + } + keyString, err := url.QueryUnescape(string(foundKey)) + if err != nil { + continue + } + if keyString != key { + continue + } + valueString, err := url.QueryUnescape(string(value)) + if err != nil { + continue + } + return valueString, true + } + return "", false +} + +func (r *routeRegexp) matchQueryString(req *http.Request) bool { + return r.regexp.MatchString(r.getURLQuery(req)) +} + +// braceIndices returns the first level curly brace indices from a string. +// It returns an error in case of unbalanced braces. +func braceIndices(s string) ([]int, error) { + var level, idx int + var idxs []int + for i := 0; i < len(s); i++ { + switch s[i] { + case '{': + if level++; level == 1 { + idx = i + } + case '}': + if level--; level == 0 { + idxs = append(idxs, idx, i+1) + } else if level < 0 { + return nil, fmt.Errorf("mux: unbalanced braces in %q", s) + } + } + } + if level != 0 { + return nil, fmt.Errorf("mux: unbalanced braces in %q", s) + } + return idxs, nil +} + +// varGroupName builds a capturing group name for the indexed variable. +func varGroupName(idx int) string { + return "v" + strconv.Itoa(idx) +} + +// ---------------------------------------------------------------------------- +// routeRegexpGroup +// ---------------------------------------------------------------------------- + +// routeRegexpGroup groups the route matchers that carry variables. +type routeRegexpGroup struct { + host *routeRegexp + path *routeRegexp + queries []*routeRegexp +} + +// setMatch extracts the variables from the URL once a route matches. +func (v routeRegexpGroup) setMatch(req *http.Request, m *RouteMatch, r *Route) { + // Store host variables. + if v.host != nil { + host := getHost(req) + if v.host.wildcardHostPort { + // Don't be strict on the port match + if i := strings.Index(host, ":"); i != -1 { + host = host[:i] + } + } + matches := v.host.regexp.FindStringSubmatchIndex(host) + if len(matches) > 0 { + extractVars(host, matches, v.host.varsN, m.Vars) + } + } + path := req.URL.Path + if r.useEncodedPath { + path = req.URL.EscapedPath() + } + // Store path variables. + if v.path != nil { + matches := v.path.regexp.FindStringSubmatchIndex(path) + if len(matches) > 0 { + extractVars(path, matches, v.path.varsN, m.Vars) + // Check if we should redirect. + if v.path.options.strictSlash { + p1 := strings.HasSuffix(path, "/") + p2 := strings.HasSuffix(v.path.template, "/") + if p1 != p2 { + u, _ := url.Parse(req.URL.String()) + if p1 { + u.Path = u.Path[:len(u.Path)-1] + } else { + u.Path += "/" + } + m.Handler = http.RedirectHandler(u.String(), http.StatusMovedPermanently) + } + } + } + } + // Store query string variables. + for _, q := range v.queries { + queryURL := q.getURLQuery(req) + matches := q.regexp.FindStringSubmatchIndex(queryURL) + if len(matches) > 0 { + extractVars(queryURL, matches, q.varsN, m.Vars) + } + } +} + +// getHost tries its best to return the request host. +// According to section 14.23 of RFC 2616 the Host header +// can include the port number if the default value of 80 is not used. +func getHost(r *http.Request) string { + if r.URL.IsAbs() { + return r.URL.Host + } + return r.Host +} + +func extractVars(input string, matches []int, names []string, output map[string]string) { + for i, name := range names { + output[name] = input[matches[2*i+2]:matches[2*i+3]] + } +} diff --git a/vendor/github.com/gorilla/mux/route.go b/vendor/github.com/gorilla/mux/route.go new file mode 100644 index 0000000..750afe5 --- /dev/null +++ b/vendor/github.com/gorilla/mux/route.go @@ -0,0 +1,736 @@ +// Copyright 2012 The Gorilla Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package mux + +import ( + "errors" + "fmt" + "net/http" + "net/url" + "regexp" + "strings" +) + +// Route stores information to match a request and build URLs. +type Route struct { + // Request handler for the route. + handler http.Handler + // If true, this route never matches: it is only used to build URLs. + buildOnly bool + // The name used to build URLs. + name string + // Error resulted from building a route. + err error + + // "global" reference to all named routes + namedRoutes map[string]*Route + + // config possibly passed in from `Router` + routeConf +} + +// SkipClean reports whether path cleaning is enabled for this route via +// Router.SkipClean. +func (r *Route) SkipClean() bool { + return r.skipClean +} + +// Match matches the route against the request. +func (r *Route) Match(req *http.Request, match *RouteMatch) bool { + if r.buildOnly || r.err != nil { + return false + } + + var matchErr error + + // Match everything. + for _, m := range r.matchers { + if matched := m.Match(req, match); !matched { + if _, ok := m.(methodMatcher); ok { + matchErr = ErrMethodMismatch + continue + } + + // Ignore ErrNotFound errors. These errors arise from match call + // to Subrouters. + // + // This prevents subsequent matching subrouters from failing to + // run middleware. If not ignored, the middleware would see a + // non-nil MatchErr and be skipped, even when there was a + // matching route. + if match.MatchErr == ErrNotFound { + match.MatchErr = nil + } + + matchErr = nil + return false + } + } + + if matchErr != nil { + match.MatchErr = matchErr + return false + } + + if match.MatchErr == ErrMethodMismatch && r.handler != nil { + // We found a route which matches request method, clear MatchErr + match.MatchErr = nil + // Then override the mis-matched handler + match.Handler = r.handler + } + + // Yay, we have a match. Let's collect some info about it. + if match.Route == nil { + match.Route = r + } + if match.Handler == nil { + match.Handler = r.handler + } + if match.Vars == nil { + match.Vars = make(map[string]string) + } + + // Set variables. + r.regexp.setMatch(req, match, r) + return true +} + +// ---------------------------------------------------------------------------- +// Route attributes +// ---------------------------------------------------------------------------- + +// GetError returns an error resulted from building the route, if any. +func (r *Route) GetError() error { + return r.err +} + +// BuildOnly sets the route to never match: it is only used to build URLs. +func (r *Route) BuildOnly() *Route { + r.buildOnly = true + return r +} + +// Handler -------------------------------------------------------------------- + +// Handler sets a handler for the route. +func (r *Route) Handler(handler http.Handler) *Route { + if r.err == nil { + r.handler = handler + } + return r +} + +// HandlerFunc sets a handler function for the route. +func (r *Route) HandlerFunc(f func(http.ResponseWriter, *http.Request)) *Route { + return r.Handler(http.HandlerFunc(f)) +} + +// GetHandler returns the handler for the route, if any. +func (r *Route) GetHandler() http.Handler { + return r.handler +} + +// Name ----------------------------------------------------------------------- + +// Name sets the name for the route, used to build URLs. +// It is an error to call Name more than once on a route. +func (r *Route) Name(name string) *Route { + if r.name != "" { + r.err = fmt.Errorf("mux: route already has name %q, can't set %q", + r.name, name) + } + if r.err == nil { + r.name = name + r.namedRoutes[name] = r + } + return r +} + +// GetName returns the name for the route, if any. +func (r *Route) GetName() string { + return r.name +} + +// ---------------------------------------------------------------------------- +// Matchers +// ---------------------------------------------------------------------------- + +// matcher types try to match a request. +type matcher interface { + Match(*http.Request, *RouteMatch) bool +} + +// addMatcher adds a matcher to the route. +func (r *Route) addMatcher(m matcher) *Route { + if r.err == nil { + r.matchers = append(r.matchers, m) + } + return r +} + +// addRegexpMatcher adds a host or path matcher and builder to a route. +func (r *Route) addRegexpMatcher(tpl string, typ regexpType) error { + if r.err != nil { + return r.err + } + if typ == regexpTypePath || typ == regexpTypePrefix { + if len(tpl) > 0 && tpl[0] != '/' { + return fmt.Errorf("mux: path must start with a slash, got %q", tpl) + } + if r.regexp.path != nil { + tpl = strings.TrimRight(r.regexp.path.template, "/") + tpl + } + } + rr, err := newRouteRegexp(tpl, typ, routeRegexpOptions{ + strictSlash: r.strictSlash, + useEncodedPath: r.useEncodedPath, + }) + if err != nil { + return err + } + for _, q := range r.regexp.queries { + if err = uniqueVars(rr.varsN, q.varsN); err != nil { + return err + } + } + if typ == regexpTypeHost { + if r.regexp.path != nil { + if err = uniqueVars(rr.varsN, r.regexp.path.varsN); err != nil { + return err + } + } + r.regexp.host = rr + } else { + if r.regexp.host != nil { + if err = uniqueVars(rr.varsN, r.regexp.host.varsN); err != nil { + return err + } + } + if typ == regexpTypeQuery { + r.regexp.queries = append(r.regexp.queries, rr) + } else { + r.regexp.path = rr + } + } + r.addMatcher(rr) + return nil +} + +// Headers -------------------------------------------------------------------- + +// headerMatcher matches the request against header values. +type headerMatcher map[string]string + +func (m headerMatcher) Match(r *http.Request, match *RouteMatch) bool { + return matchMapWithString(m, r.Header, true) +} + +// Headers adds a matcher for request header values. +// It accepts a sequence of key/value pairs to be matched. For example: +// +// r := mux.NewRouter() +// r.Headers("Content-Type", "application/json", +// "X-Requested-With", "XMLHttpRequest") +// +// The above route will only match if both request header values match. +// If the value is an empty string, it will match any value if the key is set. +func (r *Route) Headers(pairs ...string) *Route { + if r.err == nil { + var headers map[string]string + headers, r.err = mapFromPairsToString(pairs...) + return r.addMatcher(headerMatcher(headers)) + } + return r +} + +// headerRegexMatcher matches the request against the route given a regex for the header +type headerRegexMatcher map[string]*regexp.Regexp + +func (m headerRegexMatcher) Match(r *http.Request, match *RouteMatch) bool { + return matchMapWithRegex(m, r.Header, true) +} + +// HeadersRegexp accepts a sequence of key/value pairs, where the value has regex +// support. For example: +// +// r := mux.NewRouter() +// r.HeadersRegexp("Content-Type", "application/(text|json)", +// "X-Requested-With", "XMLHttpRequest") +// +// The above route will only match if both the request header matches both regular expressions. +// If the value is an empty string, it will match any value if the key is set. +// Use the start and end of string anchors (^ and $) to match an exact value. +func (r *Route) HeadersRegexp(pairs ...string) *Route { + if r.err == nil { + var headers map[string]*regexp.Regexp + headers, r.err = mapFromPairsToRegex(pairs...) + return r.addMatcher(headerRegexMatcher(headers)) + } + return r +} + +// Host ----------------------------------------------------------------------- + +// Host adds a matcher for the URL host. +// It accepts a template with zero or more URL variables enclosed by {}. +// Variables can define an optional regexp pattern to be matched: +// +// - {name} matches anything until the next dot. +// +// - {name:pattern} matches the given regexp pattern. +// +// For example: +// +// r := mux.NewRouter() +// r.Host("www.example.com") +// r.Host("{subdomain}.domain.com") +// r.Host("{subdomain:[a-z]+}.domain.com") +// +// Variable names must be unique in a given route. They can be retrieved +// calling mux.Vars(request). +func (r *Route) Host(tpl string) *Route { + r.err = r.addRegexpMatcher(tpl, regexpTypeHost) + return r +} + +// MatcherFunc ---------------------------------------------------------------- + +// MatcherFunc is the function signature used by custom matchers. +type MatcherFunc func(*http.Request, *RouteMatch) bool + +// Match returns the match for a given request. +func (m MatcherFunc) Match(r *http.Request, match *RouteMatch) bool { + return m(r, match) +} + +// MatcherFunc adds a custom function to be used as request matcher. +func (r *Route) MatcherFunc(f MatcherFunc) *Route { + return r.addMatcher(f) +} + +// Methods -------------------------------------------------------------------- + +// methodMatcher matches the request against HTTP methods. +type methodMatcher []string + +func (m methodMatcher) Match(r *http.Request, match *RouteMatch) bool { + return matchInArray(m, r.Method) +} + +// Methods adds a matcher for HTTP methods. +// It accepts a sequence of one or more methods to be matched, e.g.: +// "GET", "POST", "PUT". +func (r *Route) Methods(methods ...string) *Route { + for k, v := range methods { + methods[k] = strings.ToUpper(v) + } + return r.addMatcher(methodMatcher(methods)) +} + +// Path ----------------------------------------------------------------------- + +// Path adds a matcher for the URL path. +// It accepts a template with zero or more URL variables enclosed by {}. The +// template must start with a "/". +// Variables can define an optional regexp pattern to be matched: +// +// - {name} matches anything until the next slash. +// +// - {name:pattern} matches the given regexp pattern. +// +// For example: +// +// r := mux.NewRouter() +// r.Path("/products/").Handler(ProductsHandler) +// r.Path("/products/{key}").Handler(ProductsHandler) +// r.Path("/articles/{category}/{id:[0-9]+}"). +// Handler(ArticleHandler) +// +// Variable names must be unique in a given route. They can be retrieved +// calling mux.Vars(request). +func (r *Route) Path(tpl string) *Route { + r.err = r.addRegexpMatcher(tpl, regexpTypePath) + return r +} + +// PathPrefix ----------------------------------------------------------------- + +// PathPrefix adds a matcher for the URL path prefix. This matches if the given +// template is a prefix of the full URL path. See Route.Path() for details on +// the tpl argument. +// +// Note that it does not treat slashes specially ("/foobar/" will be matched by +// the prefix "/foo") so you may want to use a trailing slash here. +// +// Also note that the setting of Router.StrictSlash() has no effect on routes +// with a PathPrefix matcher. +func (r *Route) PathPrefix(tpl string) *Route { + r.err = r.addRegexpMatcher(tpl, regexpTypePrefix) + return r +} + +// Query ---------------------------------------------------------------------- + +// Queries adds a matcher for URL query values. +// It accepts a sequence of key/value pairs. Values may define variables. +// For example: +// +// r := mux.NewRouter() +// r.Queries("foo", "bar", "id", "{id:[0-9]+}") +// +// The above route will only match if the URL contains the defined queries +// values, e.g.: ?foo=bar&id=42. +// +// If the value is an empty string, it will match any value if the key is set. +// +// Variables can define an optional regexp pattern to be matched: +// +// - {name} matches anything until the next slash. +// +// - {name:pattern} matches the given regexp pattern. +func (r *Route) Queries(pairs ...string) *Route { + length := len(pairs) + if length%2 != 0 { + r.err = fmt.Errorf( + "mux: number of parameters must be multiple of 2, got %v", pairs) + return nil + } + for i := 0; i < length; i += 2 { + if r.err = r.addRegexpMatcher(pairs[i]+"="+pairs[i+1], regexpTypeQuery); r.err != nil { + return r + } + } + + return r +} + +// Schemes -------------------------------------------------------------------- + +// schemeMatcher matches the request against URL schemes. +type schemeMatcher []string + +func (m schemeMatcher) Match(r *http.Request, match *RouteMatch) bool { + scheme := r.URL.Scheme + // https://golang.org/pkg/net/http/#Request + // "For [most] server requests, fields other than Path and RawQuery will be + // empty." + // Since we're an http muxer, the scheme is either going to be http or https + // though, so we can just set it based on the tls termination state. + if scheme == "" { + if r.TLS == nil { + scheme = "http" + } else { + scheme = "https" + } + } + return matchInArray(m, scheme) +} + +// Schemes adds a matcher for URL schemes. +// It accepts a sequence of schemes to be matched, e.g.: "http", "https". +// If the request's URL has a scheme set, it will be matched against. +// Generally, the URL scheme will only be set if a previous handler set it, +// such as the ProxyHeaders handler from gorilla/handlers. +// If unset, the scheme will be determined based on the request's TLS +// termination state. +// The first argument to Schemes will be used when constructing a route URL. +func (r *Route) Schemes(schemes ...string) *Route { + for k, v := range schemes { + schemes[k] = strings.ToLower(v) + } + if len(schemes) > 0 { + r.buildScheme = schemes[0] + } + return r.addMatcher(schemeMatcher(schemes)) +} + +// BuildVarsFunc -------------------------------------------------------------- + +// BuildVarsFunc is the function signature used by custom build variable +// functions (which can modify route variables before a route's URL is built). +type BuildVarsFunc func(map[string]string) map[string]string + +// BuildVarsFunc adds a custom function to be used to modify build variables +// before a route's URL is built. +func (r *Route) BuildVarsFunc(f BuildVarsFunc) *Route { + if r.buildVarsFunc != nil { + // compose the old and new functions + old := r.buildVarsFunc + r.buildVarsFunc = func(m map[string]string) map[string]string { + return f(old(m)) + } + } else { + r.buildVarsFunc = f + } + return r +} + +// Subrouter ------------------------------------------------------------------ + +// Subrouter creates a subrouter for the route. +// +// It will test the inner routes only if the parent route matched. For example: +// +// r := mux.NewRouter() +// s := r.Host("www.example.com").Subrouter() +// s.HandleFunc("/products/", ProductsHandler) +// s.HandleFunc("/products/{key}", ProductHandler) +// s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler) +// +// Here, the routes registered in the subrouter won't be tested if the host +// doesn't match. +func (r *Route) Subrouter() *Router { + // initialize a subrouter with a copy of the parent route's configuration + router := &Router{routeConf: copyRouteConf(r.routeConf), namedRoutes: r.namedRoutes} + r.addMatcher(router) + return router +} + +// ---------------------------------------------------------------------------- +// URL building +// ---------------------------------------------------------------------------- + +// URL builds a URL for the route. +// +// It accepts a sequence of key/value pairs for the route variables. For +// example, given this route: +// +// r := mux.NewRouter() +// r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). +// Name("article") +// +// ...a URL for it can be built using: +// +// url, err := r.Get("article").URL("category", "technology", "id", "42") +// +// ...which will return an url.URL with the following path: +// +// "/articles/technology/42" +// +// This also works for host variables: +// +// r := mux.NewRouter() +// r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). +// Host("{subdomain}.domain.com"). +// Name("article") +// +// // url.String() will be "http://news.domain.com/articles/technology/42" +// url, err := r.Get("article").URL("subdomain", "news", +// "category", "technology", +// "id", "42") +// +// The scheme of the resulting url will be the first argument that was passed to Schemes: +// +// // url.String() will be "https://example.com" +// r := mux.NewRouter() +// url, err := r.Host("example.com") +// .Schemes("https", "http").URL() +// +// All variables defined in the route are required, and their values must +// conform to the corresponding patterns. +func (r *Route) URL(pairs ...string) (*url.URL, error) { + if r.err != nil { + return nil, r.err + } + values, err := r.prepareVars(pairs...) + if err != nil { + return nil, err + } + var scheme, host, path string + queries := make([]string, 0, len(r.regexp.queries)) + if r.regexp.host != nil { + if host, err = r.regexp.host.url(values); err != nil { + return nil, err + } + scheme = "http" + if r.buildScheme != "" { + scheme = r.buildScheme + } + } + if r.regexp.path != nil { + if path, err = r.regexp.path.url(values); err != nil { + return nil, err + } + } + for _, q := range r.regexp.queries { + var query string + if query, err = q.url(values); err != nil { + return nil, err + } + queries = append(queries, query) + } + return &url.URL{ + Scheme: scheme, + Host: host, + Path: path, + RawQuery: strings.Join(queries, "&"), + }, nil +} + +// URLHost builds the host part of the URL for a route. See Route.URL(). +// +// The route must have a host defined. +func (r *Route) URLHost(pairs ...string) (*url.URL, error) { + if r.err != nil { + return nil, r.err + } + if r.regexp.host == nil { + return nil, errors.New("mux: route doesn't have a host") + } + values, err := r.prepareVars(pairs...) + if err != nil { + return nil, err + } + host, err := r.regexp.host.url(values) + if err != nil { + return nil, err + } + u := &url.URL{ + Scheme: "http", + Host: host, + } + if r.buildScheme != "" { + u.Scheme = r.buildScheme + } + return u, nil +} + +// URLPath builds the path part of the URL for a route. See Route.URL(). +// +// The route must have a path defined. +func (r *Route) URLPath(pairs ...string) (*url.URL, error) { + if r.err != nil { + return nil, r.err + } + if r.regexp.path == nil { + return nil, errors.New("mux: route doesn't have a path") + } + values, err := r.prepareVars(pairs...) + if err != nil { + return nil, err + } + path, err := r.regexp.path.url(values) + if err != nil { + return nil, err + } + return &url.URL{ + Path: path, + }, nil +} + +// GetPathTemplate returns the template used to build the +// route match. +// This is useful for building simple REST API documentation and for instrumentation +// against third-party services. +// An error will be returned if the route does not define a path. +func (r *Route) GetPathTemplate() (string, error) { + if r.err != nil { + return "", r.err + } + if r.regexp.path == nil { + return "", errors.New("mux: route doesn't have a path") + } + return r.regexp.path.template, nil +} + +// GetPathRegexp returns the expanded regular expression used to match route path. +// This is useful for building simple REST API documentation and for instrumentation +// against third-party services. +// An error will be returned if the route does not define a path. +func (r *Route) GetPathRegexp() (string, error) { + if r.err != nil { + return "", r.err + } + if r.regexp.path == nil { + return "", errors.New("mux: route does not have a path") + } + return r.regexp.path.regexp.String(), nil +} + +// GetQueriesRegexp returns the expanded regular expressions used to match the +// route queries. +// This is useful for building simple REST API documentation and for instrumentation +// against third-party services. +// An error will be returned if the route does not have queries. +func (r *Route) GetQueriesRegexp() ([]string, error) { + if r.err != nil { + return nil, r.err + } + if r.regexp.queries == nil { + return nil, errors.New("mux: route doesn't have queries") + } + queries := make([]string, 0, len(r.regexp.queries)) + for _, query := range r.regexp.queries { + queries = append(queries, query.regexp.String()) + } + return queries, nil +} + +// GetQueriesTemplates returns the templates used to build the +// query matching. +// This is useful for building simple REST API documentation and for instrumentation +// against third-party services. +// An error will be returned if the route does not define queries. +func (r *Route) GetQueriesTemplates() ([]string, error) { + if r.err != nil { + return nil, r.err + } + if r.regexp.queries == nil { + return nil, errors.New("mux: route doesn't have queries") + } + queries := make([]string, 0, len(r.regexp.queries)) + for _, query := range r.regexp.queries { + queries = append(queries, query.template) + } + return queries, nil +} + +// GetMethods returns the methods the route matches against +// This is useful for building simple REST API documentation and for instrumentation +// against third-party services. +// An error will be returned if route does not have methods. +func (r *Route) GetMethods() ([]string, error) { + if r.err != nil { + return nil, r.err + } + for _, m := range r.matchers { + if methods, ok := m.(methodMatcher); ok { + return []string(methods), nil + } + } + return nil, errors.New("mux: route doesn't have methods") +} + +// GetHostTemplate returns the template used to build the +// route match. +// This is useful for building simple REST API documentation and for instrumentation +// against third-party services. +// An error will be returned if the route does not define a host. +func (r *Route) GetHostTemplate() (string, error) { + if r.err != nil { + return "", r.err + } + if r.regexp.host == nil { + return "", errors.New("mux: route doesn't have a host") + } + return r.regexp.host.template, nil +} + +// prepareVars converts the route variable pairs into a map. If the route has a +// BuildVarsFunc, it is invoked. +func (r *Route) prepareVars(pairs ...string) (map[string]string, error) { + m, err := mapFromPairsToString(pairs...) + if err != nil { + return nil, err + } + return r.buildVars(m), nil +} + +func (r *Route) buildVars(m map[string]string) map[string]string { + if r.buildVarsFunc != nil { + m = r.buildVarsFunc(m) + } + return m +} diff --git a/vendor/github.com/gorilla/mux/test_helpers.go b/vendor/github.com/gorilla/mux/test_helpers.go new file mode 100644 index 0000000..5f5c496 --- /dev/null +++ b/vendor/github.com/gorilla/mux/test_helpers.go @@ -0,0 +1,19 @@ +// Copyright 2012 The Gorilla Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package mux + +import "net/http" + +// SetURLVars sets the URL variables for the given request, to be accessed via +// mux.Vars for testing route behaviour. Arguments are not modified, a shallow +// copy is returned. +// +// This API should only be used for testing purposes; it provides a way to +// inject variables into the request context. Alternatively, URL variables +// can be set by making a route that captures the required variables, +// starting a server and sending the request to that server. +func SetURLVars(r *http.Request, val map[string]string) *http.Request { + return requestWithVars(r, val) +} diff --git a/vendor/github.com/hashicorp/go-uuid/.travis.yml b/vendor/github.com/hashicorp/go-uuid/.travis.yml new file mode 100644 index 0000000..7698490 --- /dev/null +++ b/vendor/github.com/hashicorp/go-uuid/.travis.yml @@ -0,0 +1,12 @@ +language: go + +sudo: false + +go: + - 1.4 + - 1.5 + - 1.6 + - tip + +script: + - go test -bench . -benchmem -v ./... diff --git a/vendor/github.com/hashicorp/go-uuid/LICENSE b/vendor/github.com/hashicorp/go-uuid/LICENSE new file mode 100644 index 0000000..e87a115 --- /dev/null +++ b/vendor/github.com/hashicorp/go-uuid/LICENSE @@ -0,0 +1,363 @@ +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. "Contributor" + + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. "Contributor Version" + + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the terms of + a Secondary License. + +1.6. "Executable Form" + + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + + means a work that combines Covered Software with other material, in a + separate file or files, that is not Covered Software. + +1.8. "License" + + means this document. + +1.9. "Licensable" + + means having the right to grant, to the maximum extent possible, whether + at the time of the initial grant or subsequently, any and all of the + rights conveyed by this License. + +1.10. "Modifications" + + means any of the following: + + a. any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. "Patent Claims" of a Contributor + + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the License, + by the making, using, selling, offering for sale, having made, import, + or transfer of either its Contributions or its Contributor Version. + +1.12. "Secondary License" + + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. "Source Code Form" + + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, "control" means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution + become effective for each Contribution on the date the Contributor first + distributes such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under + this License. No additional rights or licenses will be implied from the + distribution or licensing of Covered Software under this License. + Notwithstanding Section 2.1(b) above, no patent license is granted by a + Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of + its Contributions. + + This License does not grant any rights in the trademarks, service marks, + or logos of any Contributor (except as may be necessary to comply with + the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this + License (see Section 10.2) or under the terms of a Secondary License (if + permitted under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its + Contributions are its original creation(s) or it has sufficient rights to + grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under + applicable copyright doctrines of fair use, fair dealing, or other + equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under + the terms of this License. You must inform recipients that the Source + Code Form of the Covered Software is governed by the terms of this + License, and how they can obtain a copy of this License. You may not + attempt to alter or restrict the recipients' rights in the Source Code + Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter the + recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for + the Covered Software. If the Larger Work is a combination of Covered + Software with a work governed by one or more Secondary Licenses, and the + Covered Software is not Incompatible With Secondary Licenses, this + License permits You to additionally distribute such Covered Software + under the terms of such Secondary License(s), so that the recipient of + the Larger Work may, at their option, further distribute the Covered + Software under the terms of either this License or such Secondary + License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices + (including copyright notices, patent notices, disclaimers of warranty, or + limitations of liability) contained within the Source Code Form of the + Covered Software, except that You may alter any license notices to the + extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on + behalf of any Contributor. You must make it absolutely clear that any + such warranty, support, indemnity, or liability obligation is offered by + You alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, + judicial order, or regulation then You must: (a) comply with the terms of + this License to the maximum extent possible; and (b) describe the + limitations and the code they affect. Such description must be placed in a + text file included with all distributions of the Covered Software under + this License. Except to the extent prohibited by statute or regulation, + such description must be sufficiently detailed for a recipient of ordinary + skill to be able to understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing + basis, if such Contributor fails to notify You of the non-compliance by + some reasonable means prior to 60 days after You have come back into + compliance. Moreover, Your grants from a particular Contributor are + reinstated on an ongoing basis if such Contributor notifies You of the + non-compliance by some reasonable means, this is the first time You have + received notice of non-compliance with this License from such + Contributor, and You become compliant prior to 30 days after Your receipt + of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, + counter-claims, and cross-claims) alleging that a Contributor Version + directly or indirectly infringes any patent, then the rights granted to + You by any and all Contributors for the Covered Software under Section + 2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an "as is" basis, + without warranty of any kind, either expressed, implied, or statutory, + including, without limitation, warranties that the Covered Software is free + of defects, merchantable, fit for a particular purpose or non-infringing. + The entire risk as to the quality and performance of the Covered Software + is with You. Should any Covered Software prove defective in any respect, + You (not any Contributor) assume the cost of any necessary servicing, + repair, or correction. This disclaimer of warranty constitutes an essential + part of this License. No use of any Covered Software is authorized under + this License except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from + such party's negligence to the extent applicable law prohibits such + limitation. Some jurisdictions do not allow the exclusion or limitation of + incidental or consequential damages, so this exclusion and limitation may + not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts + of a jurisdiction where the defendant maintains its principal place of + business and such litigation shall be governed by laws of that + jurisdiction, without reference to its conflict-of-law provisions. Nothing + in this Section shall prevent a party's ability to bring cross-claims or + counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. Any law or regulation which provides that + the language of a contract shall be construed against the drafter shall not + be used to construe this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version + of the License under which You originally received the Covered Software, + or under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a + modified version of this License if you rename the license and remove + any references to the name of the license steward (except to note that + such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary + Licenses If You choose to distribute Source Code Form that is + Incompatible With Secondary Licenses under the terms of this version of + the License, the notice described in Exhibit B of this License must be + attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, +then You may include the notice in a location (such as a LICENSE file in a +relevant directory) where a recipient would be likely to look for such a +notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice + + This Source Code Form is "Incompatible + With Secondary Licenses", as defined by + the Mozilla Public License, v. 2.0. + diff --git a/vendor/github.com/hashicorp/go-uuid/README.md b/vendor/github.com/hashicorp/go-uuid/README.md new file mode 100644 index 0000000..fbde8b9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-uuid/README.md @@ -0,0 +1,8 @@ +# uuid [![Build Status](https://travis-ci.org/hashicorp/go-uuid.svg?branch=master)](https://travis-ci.org/hashicorp/go-uuid) + +Generates UUID-format strings using high quality, _purely random_ bytes. It is **not** intended to be RFC compliant, merely to use a well-understood string representation of a 128-bit value. It can also parse UUID-format strings into their component bytes. + +Documentation +============= + +The full documentation is available on [Godoc](http://godoc.org/github.com/hashicorp/go-uuid). diff --git a/vendor/github.com/hashicorp/go-uuid/go.mod b/vendor/github.com/hashicorp/go-uuid/go.mod new file mode 100644 index 0000000..dd57f9d --- /dev/null +++ b/vendor/github.com/hashicorp/go-uuid/go.mod @@ -0,0 +1 @@ +module github.com/hashicorp/go-uuid diff --git a/vendor/github.com/hashicorp/go-uuid/uuid.go b/vendor/github.com/hashicorp/go-uuid/uuid.go new file mode 100644 index 0000000..0c10c4e --- /dev/null +++ b/vendor/github.com/hashicorp/go-uuid/uuid.go @@ -0,0 +1,83 @@ +package uuid + +import ( + "crypto/rand" + "encoding/hex" + "fmt" + "io" +) + +// GenerateRandomBytes is used to generate random bytes of given size. +func GenerateRandomBytes(size int) ([]byte, error) { + return GenerateRandomBytesWithReader(size, rand.Reader) +} + +// GenerateRandomBytesWithReader is used to generate random bytes of given size read from a given reader. +func GenerateRandomBytesWithReader(size int, reader io.Reader) ([]byte, error) { + if reader == nil { + return nil, fmt.Errorf("provided reader is nil") + } + buf := make([]byte, size) + if _, err := io.ReadFull(reader, buf); err != nil { + return nil, fmt.Errorf("failed to read random bytes: %v", err) + } + return buf, nil +} + + +const uuidLen = 16 + +// GenerateUUID is used to generate a random UUID +func GenerateUUID() (string, error) { + return GenerateUUIDWithReader(rand.Reader) +} + +// GenerateUUIDWithReader is used to generate a random UUID with a given Reader +func GenerateUUIDWithReader(reader io.Reader) (string, error) { + if reader == nil { + return "", fmt.Errorf("provided reader is nil") + } + buf, err := GenerateRandomBytesWithReader(uuidLen, reader) + if err != nil { + return "", err + } + return FormatUUID(buf) +} + +func FormatUUID(buf []byte) (string, error) { + if buflen := len(buf); buflen != uuidLen { + return "", fmt.Errorf("wrong length byte slice (%d)", buflen) + } + + return fmt.Sprintf("%x-%x-%x-%x-%x", + buf[0:4], + buf[4:6], + buf[6:8], + buf[8:10], + buf[10:16]), nil +} + +func ParseUUID(uuid string) ([]byte, error) { + if len(uuid) != 2 * uuidLen + 4 { + return nil, fmt.Errorf("uuid string is wrong length") + } + + if uuid[8] != '-' || + uuid[13] != '-' || + uuid[18] != '-' || + uuid[23] != '-' { + return nil, fmt.Errorf("uuid is improperly formatted") + } + + hexStr := uuid[0:8] + uuid[9:13] + uuid[14:18] + uuid[19:23] + uuid[24:36] + + ret, err := hex.DecodeString(hexStr) + if err != nil { + return nil, err + } + if len(ret) != uuidLen { + return nil, fmt.Errorf("decoded hex is the wrong length") + } + + return ret, nil +} diff --git a/vendor/github.com/influxdata/influxdb/LICENSE b/vendor/github.com/influxdata/influxdb/LICENSE new file mode 100644 index 0000000..63cef79 --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013-2016 Errplane Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/influxdata/influxdb/LICENSE_OF_DEPENDENCIES.md b/vendor/github.com/influxdata/influxdb/LICENSE_OF_DEPENDENCIES.md new file mode 100644 index 0000000..ea6fc69 --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/LICENSE_OF_DEPENDENCIES.md @@ -0,0 +1,62 @@ +- # List +- bootstrap 3.3.5 [MIT LICENSE](https://github.com/twbs/bootstrap/blob/master/LICENSE) +- collectd.org [ISC LICENSE](https://github.com/collectd/go-collectd/blob/master/LICENSE) +- github.com/BurntSushi/toml [MIT LICENSE](https://github.com/BurntSushi/toml/blob/master/COPYING) +- github.com/RoaringBitmap/roaring [APACHE LICENSE](https://github.com/RoaringBitmap/roaring/blob/master/LICENSE) +- github.com/beorn7/perks [MIT LICENSE](https://github.com/beorn7/perks/blob/master/LICENSE) +- github.com/bmizerany/pat [MIT LICENSE](https://github.com/bmizerany/pat#license) +- github.com/boltdb/bolt [MIT LICENSE](https://github.com/boltdb/bolt/blob/master/LICENSE) +- github.com/cespare/xxhash [MIT LICENSE](https://github.com/cespare/xxhash/blob/master/LICENSE.txt) +- github.com/clarkduvall/hyperloglog [MIT LICENSE](https://github.com/clarkduvall/hyperloglog/blob/master/LICENSE) +- github.com/davecgh/go-spew/spew [ISC LICENSE](https://github.com/davecgh/go-spew/blob/master/LICENSE) +- github.com/dgrijalva/jwt-go [MIT LICENSE](https://github.com/dgrijalva/jwt-go/blob/master/LICENSE) +- github.com/dgryski/go-bits [MIT LICENSE](https://github.com/dgryski/go-bits/blob/master/LICENSE) +- github.com/dgryski/go-bitstream [MIT LICENSE](https://github.com/dgryski/go-bitstream/blob/master/LICENSE) +- github.com/glycerine/go-unsnap-stream [MIT LICENSE](https://github.com/glycerine/go-unsnap-stream/blob/master/LICENSE) +- github.com/gogo/protobuf/proto [BSD LICENSE](https://github.com/gogo/protobuf/blob/master/LICENSE) +- github.com/golang/protobuf [BSD LICENSE](https://github.com/golang/protobuf/blob/master/LICENSE) +- github.com/golang/snappy [BSD LICENSE](https://github.com/golang/snappy/blob/master/LICENSE) +- github.com/google/go-cmp [BSD LICENSE](https://github.com/google/go-cmp/blob/master/LICENSE) +- github.com/influxdata/influxql [MIT LICENSE](https://github.com/influxdata/influxql/blob/master/LICENSE) +- github.com/influxdata/usage-client [MIT LICENSE](https://github.com/influxdata/usage-client/blob/master/LICENSE.txt) +- github.com/influxdata/yamux [MOZILLA PUBLIC LICENSE](https://github.com/influxdata/yamux/blob/master/LICENSE) +- github.com/influxdata/yarpc [MIT LICENSE](https://github.com/influxdata/yarpc/blob/master/LICENSE) +- github.com/jsternberg/zap-logfmt [MIT LICENSE](https://github.com/jsternberg/zap-logfmt/blob/master/LICENSE) +- github.com/jwilder/encoding [MIT LICENSE](https://github.com/jwilder/encoding/blob/master/LICENSE) +- github.com/mattn/go-isatty [MIT LICENSE](https://github.com/mattn/go-isatty/blob/master/LICENSE) +- github.com/matttproud/golang_protobuf_extensions [APACHE LICENSE](https://github.com/matttproud/golang_protobuf_extensions/blob/master/LICENSE) +- github.com/opentracing/opentracing-go [MIT LICENSE](https://github.com/opentracing/opentracing-go/blob/master/LICENSE) +- github.com/paulbellamy/ratecounter [MIT LICENSE](https://github.com/paulbellamy/ratecounter/blob/master/LICENSE) +- github.com/peterh/liner [MIT LICENSE](https://github.com/peterh/liner/blob/master/COPYING) +- github.com/philhofer/fwd [MIT LICENSE](https://github.com/philhofer/fwd/blob/master/LICENSE.md) +- github.com/prometheus/client_golang [MIT LICENSE](https://github.com/prometheus/client_golang/blob/master/LICENSE) +- github.com/prometheus/client_model [MIT LICENSE](https://github.com/prometheus/client_model/blob/master/LICENSE) +- github.com/prometheus/common [APACHE LICENSE](https://github.com/prometheus/common/blob/master/LICENSE) +- github.com/prometheus/procfs [APACHE LICENSE](https://github.com/prometheus/procfs/blob/master/LICENSE) +- github.com/rakyll/statik [APACHE LICENSE](https://github.com/rakyll/statik/blob/master/LICENSE) +- github.com/retailnext/hllpp [BSD LICENSE](https://github.com/retailnext/hllpp/blob/master/LICENSE) +- github.com/tinylib/msgp [MIT LICENSE](https://github.com/tinylib/msgp/blob/master/LICENSE) +- go.uber.org/atomic [MIT LICENSE](https://github.com/uber-go/atomic/blob/master/LICENSE.txt) +- go.uber.org/multierr [MIT LICENSE](https://github.com/uber-go/multierr/blob/master/LICENSE.txt) +- go.uber.org/zap [MIT LICENSE](https://github.com/uber-go/zap/blob/master/LICENSE.txt) +- golang.org/x/crypto [BSD LICENSE](https://github.com/golang/crypto/blob/master/LICENSE) +- golang.org/x/net [BSD LICENSE](https://github.com/golang/net/blob/master/LICENSE) +- golang.org/x/sys [BSD LICENSE](https://github.com/golang/sys/blob/master/LICENSE) +- golang.org/x/text [BSD LICENSE](https://github.com/golang/text/blob/master/LICENSE) +- golang.org/x/time [BSD LICENSE](https://github.com/golang/time/blob/master/LICENSE) +- jquery 2.1.4 [MIT LICENSE](https://github.com/jquery/jquery/blob/master/LICENSE.txt) +- github.com/xlab/treeprint [MIT LICENSE](https://github.com/xlab/treeprint/blob/master/LICENSE) + + + + + + + + + + + + + + diff --git a/vendor/github.com/influxdata/influxdb/client/v2/client.go b/vendor/github.com/influxdata/influxdb/client/v2/client.go new file mode 100644 index 0000000..6c2c56a --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/client/v2/client.go @@ -0,0 +1,638 @@ +// Package client (v2) is the current official Go client for InfluxDB. +package client // import "github.com/influxdata/influxdb/client/v2" + +import ( + "bytes" + "crypto/tls" + "encoding/json" + "errors" + "fmt" + "io" + "io/ioutil" + "mime" + "net/http" + "net/url" + "path" + "strconv" + "strings" + "time" + + "github.com/influxdata/influxdb/models" +) + +// HTTPConfig is the config data needed to create an HTTP Client. +type HTTPConfig struct { + // Addr should be of the form "http://host:port" + // or "http://[ipv6-host%zone]:port". + Addr string + + // Username is the influxdb username, optional. + Username string + + // Password is the influxdb password, optional. + Password string + + // UserAgent is the http User Agent, defaults to "InfluxDBClient". + UserAgent string + + // Timeout for influxdb writes, defaults to no timeout. + Timeout time.Duration + + // InsecureSkipVerify gets passed to the http client, if true, it will + // skip https certificate verification. Defaults to false. + InsecureSkipVerify bool + + // TLSConfig allows the user to set their own TLS config for the HTTP + // Client. If set, this option overrides InsecureSkipVerify. + TLSConfig *tls.Config +} + +// BatchPointsConfig is the config data needed to create an instance of the BatchPoints struct. +type BatchPointsConfig struct { + // Precision is the write precision of the points, defaults to "ns". + Precision string + + // Database is the database to write points to. + Database string + + // RetentionPolicy is the retention policy of the points. + RetentionPolicy string + + // Write consistency is the number of servers required to confirm write. + WriteConsistency string +} + +// Client is a client interface for writing & querying the database. +type Client interface { + // Ping checks that status of cluster, and will always return 0 time and no + // error for UDP clients. + Ping(timeout time.Duration) (time.Duration, string, error) + + // Write takes a BatchPoints object and writes all Points to InfluxDB. + Write(bp BatchPoints) error + + // Query makes an InfluxDB Query on the database. This will fail if using + // the UDP client. + Query(q Query) (*Response, error) + + // Close releases any resources a Client may be using. + Close() error +} + +// NewHTTPClient returns a new Client from the provided config. +// Client is safe for concurrent use by multiple goroutines. +func NewHTTPClient(conf HTTPConfig) (Client, error) { + if conf.UserAgent == "" { + conf.UserAgent = "InfluxDBClient" + } + + u, err := url.Parse(conf.Addr) + if err != nil { + return nil, err + } else if u.Scheme != "http" && u.Scheme != "https" { + m := fmt.Sprintf("Unsupported protocol scheme: %s, your address"+ + " must start with http:// or https://", u.Scheme) + return nil, errors.New(m) + } + + tr := &http.Transport{ + TLSClientConfig: &tls.Config{ + InsecureSkipVerify: conf.InsecureSkipVerify, + }, + } + if conf.TLSConfig != nil { + tr.TLSClientConfig = conf.TLSConfig + } + return &client{ + url: *u, + username: conf.Username, + password: conf.Password, + useragent: conf.UserAgent, + httpClient: &http.Client{ + Timeout: conf.Timeout, + Transport: tr, + }, + transport: tr, + }, nil +} + +// Ping will check to see if the server is up with an optional timeout on waiting for leader. +// Ping returns how long the request took, the version of the server it connected to, and an error if one occurred. +func (c *client) Ping(timeout time.Duration) (time.Duration, string, error) { + now := time.Now() + + u := c.url + u.Path = path.Join(u.Path, "ping") + + req, err := http.NewRequest("GET", u.String(), nil) + if err != nil { + return 0, "", err + } + + req.Header.Set("User-Agent", c.useragent) + + if c.username != "" { + req.SetBasicAuth(c.username, c.password) + } + + if timeout > 0 { + params := req.URL.Query() + params.Set("wait_for_leader", fmt.Sprintf("%.0fs", timeout.Seconds())) + req.URL.RawQuery = params.Encode() + } + + resp, err := c.httpClient.Do(req) + if err != nil { + return 0, "", err + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return 0, "", err + } + + if resp.StatusCode != http.StatusNoContent { + var err = fmt.Errorf(string(body)) + return 0, "", err + } + + version := resp.Header.Get("X-Influxdb-Version") + return time.Since(now), version, nil +} + +// Close releases the client's resources. +func (c *client) Close() error { + c.transport.CloseIdleConnections() + return nil +} + +// client is safe for concurrent use as the fields are all read-only +// once the client is instantiated. +type client struct { + // N.B - if url.UserInfo is accessed in future modifications to the + // methods on client, you will need to synchronize access to url. + url url.URL + username string + password string + useragent string + httpClient *http.Client + transport *http.Transport +} + +// BatchPoints is an interface into a batched grouping of points to write into +// InfluxDB together. BatchPoints is NOT thread-safe, you must create a separate +// batch for each goroutine. +type BatchPoints interface { + // AddPoint adds the given point to the Batch of points. + AddPoint(p *Point) + // AddPoints adds the given points to the Batch of points. + AddPoints(ps []*Point) + // Points lists the points in the Batch. + Points() []*Point + + // Precision returns the currently set precision of this Batch. + Precision() string + // SetPrecision sets the precision of this batch. + SetPrecision(s string) error + + // Database returns the currently set database of this Batch. + Database() string + // SetDatabase sets the database of this Batch. + SetDatabase(s string) + + // WriteConsistency returns the currently set write consistency of this Batch. + WriteConsistency() string + // SetWriteConsistency sets the write consistency of this Batch. + SetWriteConsistency(s string) + + // RetentionPolicy returns the currently set retention policy of this Batch. + RetentionPolicy() string + // SetRetentionPolicy sets the retention policy of this Batch. + SetRetentionPolicy(s string) +} + +// NewBatchPoints returns a BatchPoints interface based on the given config. +func NewBatchPoints(conf BatchPointsConfig) (BatchPoints, error) { + if conf.Precision == "" { + conf.Precision = "ns" + } + if _, err := time.ParseDuration("1" + conf.Precision); err != nil { + return nil, err + } + bp := &batchpoints{ + database: conf.Database, + precision: conf.Precision, + retentionPolicy: conf.RetentionPolicy, + writeConsistency: conf.WriteConsistency, + } + return bp, nil +} + +type batchpoints struct { + points []*Point + database string + precision string + retentionPolicy string + writeConsistency string +} + +func (bp *batchpoints) AddPoint(p *Point) { + bp.points = append(bp.points, p) +} + +func (bp *batchpoints) AddPoints(ps []*Point) { + bp.points = append(bp.points, ps...) +} + +func (bp *batchpoints) Points() []*Point { + return bp.points +} + +func (bp *batchpoints) Precision() string { + return bp.precision +} + +func (bp *batchpoints) Database() string { + return bp.database +} + +func (bp *batchpoints) WriteConsistency() string { + return bp.writeConsistency +} + +func (bp *batchpoints) RetentionPolicy() string { + return bp.retentionPolicy +} + +func (bp *batchpoints) SetPrecision(p string) error { + if _, err := time.ParseDuration("1" + p); err != nil { + return err + } + bp.precision = p + return nil +} + +func (bp *batchpoints) SetDatabase(db string) { + bp.database = db +} + +func (bp *batchpoints) SetWriteConsistency(wc string) { + bp.writeConsistency = wc +} + +func (bp *batchpoints) SetRetentionPolicy(rp string) { + bp.retentionPolicy = rp +} + +// Point represents a single data point. +type Point struct { + pt models.Point +} + +// NewPoint returns a point with the given timestamp. If a timestamp is not +// given, then data is sent to the database without a timestamp, in which case +// the server will assign local time upon reception. NOTE: it is recommended to +// send data with a timestamp. +func NewPoint( + name string, + tags map[string]string, + fields map[string]interface{}, + t ...time.Time, +) (*Point, error) { + var T time.Time + if len(t) > 0 { + T = t[0] + } + + pt, err := models.NewPoint(name, models.NewTags(tags), fields, T) + if err != nil { + return nil, err + } + return &Point{ + pt: pt, + }, nil +} + +// String returns a line-protocol string of the Point. +func (p *Point) String() string { + return p.pt.String() +} + +// PrecisionString returns a line-protocol string of the Point, +// with the timestamp formatted for the given precision. +func (p *Point) PrecisionString(precision string) string { + return p.pt.PrecisionString(precision) +} + +// Name returns the measurement name of the point. +func (p *Point) Name() string { + return string(p.pt.Name()) +} + +// Tags returns the tags associated with the point. +func (p *Point) Tags() map[string]string { + return p.pt.Tags().Map() +} + +// Time return the timestamp for the point. +func (p *Point) Time() time.Time { + return p.pt.Time() +} + +// UnixNano returns timestamp of the point in nanoseconds since Unix epoch. +func (p *Point) UnixNano() int64 { + return p.pt.UnixNano() +} + +// Fields returns the fields for the point. +func (p *Point) Fields() (map[string]interface{}, error) { + return p.pt.Fields() +} + +// NewPointFrom returns a point from the provided models.Point. +func NewPointFrom(pt models.Point) *Point { + return &Point{pt: pt} +} + +func (c *client) Write(bp BatchPoints) error { + var b bytes.Buffer + + for _, p := range bp.Points() { + if _, err := b.WriteString(p.pt.PrecisionString(bp.Precision())); err != nil { + return err + } + + if err := b.WriteByte('\n'); err != nil { + return err + } + } + + u := c.url + u.Path = path.Join(u.Path, "write") + + req, err := http.NewRequest("POST", u.String(), &b) + if err != nil { + return err + } + req.Header.Set("Content-Type", "") + req.Header.Set("User-Agent", c.useragent) + if c.username != "" { + req.SetBasicAuth(c.username, c.password) + } + + params := req.URL.Query() + params.Set("db", bp.Database()) + params.Set("rp", bp.RetentionPolicy()) + params.Set("precision", bp.Precision()) + params.Set("consistency", bp.WriteConsistency()) + req.URL.RawQuery = params.Encode() + + resp, err := c.httpClient.Do(req) + if err != nil { + return err + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return err + } + + if resp.StatusCode != http.StatusNoContent && resp.StatusCode != http.StatusOK { + var err = fmt.Errorf(string(body)) + return err + } + + return nil +} + +// Query defines a query to send to the server. +type Query struct { + Command string + Database string + Precision string + Chunked bool + ChunkSize int + Parameters map[string]interface{} +} + +// NewQuery returns a query object. +// The database and precision arguments can be empty strings if they are not needed for the query. +func NewQuery(command, database, precision string) Query { + return Query{ + Command: command, + Database: database, + Precision: precision, + Parameters: make(map[string]interface{}), + } +} + +// NewQueryWithParameters returns a query object. +// The database and precision arguments can be empty strings if they are not needed for the query. +// parameters is a map of the parameter names used in the command to their values. +func NewQueryWithParameters(command, database, precision string, parameters map[string]interface{}) Query { + return Query{ + Command: command, + Database: database, + Precision: precision, + Parameters: parameters, + } +} + +// Response represents a list of statement results. +type Response struct { + Results []Result + Err string `json:"error,omitempty"` +} + +// Error returns the first error from any statement. +// It returns nil if no errors occurred on any statements. +func (r *Response) Error() error { + if r.Err != "" { + return fmt.Errorf(r.Err) + } + for _, result := range r.Results { + if result.Err != "" { + return fmt.Errorf(result.Err) + } + } + return nil +} + +// Message represents a user message. +type Message struct { + Level string + Text string +} + +// Result represents a resultset returned from a single statement. +type Result struct { + Series []models.Row + Messages []*Message + Err string `json:"error,omitempty"` +} + +// Query sends a command to the server and returns the Response. +func (c *client) Query(q Query) (*Response, error) { + u := c.url + u.Path = path.Join(u.Path, "query") + + jsonParameters, err := json.Marshal(q.Parameters) + + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", u.String(), nil) + if err != nil { + return nil, err + } + + req.Header.Set("Content-Type", "") + req.Header.Set("User-Agent", c.useragent) + + if c.username != "" { + req.SetBasicAuth(c.username, c.password) + } + + params := req.URL.Query() + params.Set("q", q.Command) + params.Set("db", q.Database) + params.Set("params", string(jsonParameters)) + if q.Chunked { + params.Set("chunked", "true") + if q.ChunkSize > 0 { + params.Set("chunk_size", strconv.Itoa(q.ChunkSize)) + } + } + + if q.Precision != "" { + params.Set("epoch", q.Precision) + } + req.URL.RawQuery = params.Encode() + + resp, err := c.httpClient.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + // If we lack a X-Influxdb-Version header, then we didn't get a response from influxdb + // but instead some other service. If the error code is also a 500+ code, then some + // downstream loadbalancer/proxy/etc had an issue and we should report that. + if resp.Header.Get("X-Influxdb-Version") == "" && resp.StatusCode >= http.StatusInternalServerError { + body, err := ioutil.ReadAll(resp.Body) + if err != nil || len(body) == 0 { + return nil, fmt.Errorf("received status code %d from downstream server", resp.StatusCode) + } + + return nil, fmt.Errorf("received status code %d from downstream server, with response body: %q", resp.StatusCode, body) + } + + // If we get an unexpected content type, then it is also not from influx direct and therefore + // we want to know what we received and what status code was returned for debugging purposes. + if cType, _, _ := mime.ParseMediaType(resp.Header.Get("Content-Type")); cType != "application/json" { + // Read up to 1kb of the body to help identify downstream errors and limit the impact of things + // like downstream serving a large file + body, err := ioutil.ReadAll(io.LimitReader(resp.Body, 1024)) + if err != nil || len(body) == 0 { + return nil, fmt.Errorf("expected json response, got empty body, with status: %v", resp.StatusCode) + } + + return nil, fmt.Errorf("expected json response, got %q, with status: %v and response body: %q", cType, resp.StatusCode, body) + } + + var response Response + if q.Chunked { + cr := NewChunkedResponse(resp.Body) + for { + r, err := cr.NextResponse() + if err != nil { + // If we got an error while decoding the response, send that back. + return nil, err + } + + if r == nil { + break + } + + response.Results = append(response.Results, r.Results...) + if r.Err != "" { + response.Err = r.Err + break + } + } + } else { + dec := json.NewDecoder(resp.Body) + dec.UseNumber() + decErr := dec.Decode(&response) + + // ignore this error if we got an invalid status code + if decErr != nil && decErr.Error() == "EOF" && resp.StatusCode != http.StatusOK { + decErr = nil + } + // If we got a valid decode error, send that back + if decErr != nil { + return nil, fmt.Errorf("unable to decode json: received status code %d err: %s", resp.StatusCode, decErr) + } + } + + // If we don't have an error in our json response, and didn't get statusOK + // then send back an error + if resp.StatusCode != http.StatusOK && response.Error() == nil { + return &response, fmt.Errorf("received status code %d from server", resp.StatusCode) + } + return &response, nil +} + +// duplexReader reads responses and writes it to another writer while +// satisfying the reader interface. +type duplexReader struct { + r io.Reader + w io.Writer +} + +func (r *duplexReader) Read(p []byte) (n int, err error) { + n, err = r.r.Read(p) + if err == nil { + r.w.Write(p[:n]) + } + return n, err +} + +// ChunkedResponse represents a response from the server that +// uses chunking to stream the output. +type ChunkedResponse struct { + dec *json.Decoder + duplex *duplexReader + buf bytes.Buffer +} + +// NewChunkedResponse reads a stream and produces responses from the stream. +func NewChunkedResponse(r io.Reader) *ChunkedResponse { + resp := &ChunkedResponse{} + resp.duplex = &duplexReader{r: r, w: &resp.buf} + resp.dec = json.NewDecoder(resp.duplex) + resp.dec.UseNumber() + return resp +} + +// NextResponse reads the next line of the stream and returns a response. +func (r *ChunkedResponse) NextResponse() (*Response, error) { + var response Response + + if err := r.dec.Decode(&response); err != nil { + if err == io.EOF { + return nil, nil + } + // A decoding error happened. This probably means the server crashed + // and sent a last-ditch error message to us. Ensure we have read the + // entirety of the connection to get any remaining error text. + io.Copy(ioutil.Discard, r.duplex) + return nil, errors.New(strings.TrimSpace(r.buf.String())) + } + + r.buf.Reset() + return &response, nil +} diff --git a/vendor/github.com/influxdata/influxdb/client/v2/udp.go b/vendor/github.com/influxdata/influxdb/client/v2/udp.go new file mode 100644 index 0000000..779a28b --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/client/v2/udp.go @@ -0,0 +1,112 @@ +package client + +import ( + "fmt" + "io" + "net" + "time" +) + +const ( + // UDPPayloadSize is a reasonable default payload size for UDP packets that + // could be travelling over the internet. + UDPPayloadSize = 512 +) + +// UDPConfig is the config data needed to create a UDP Client. +type UDPConfig struct { + // Addr should be of the form "host:port" + // or "[ipv6-host%zone]:port". + Addr string + + // PayloadSize is the maximum size of a UDP client message, optional + // Tune this based on your network. Defaults to UDPPayloadSize. + PayloadSize int +} + +// NewUDPClient returns a client interface for writing to an InfluxDB UDP +// service from the given config. +func NewUDPClient(conf UDPConfig) (Client, error) { + var udpAddr *net.UDPAddr + udpAddr, err := net.ResolveUDPAddr("udp", conf.Addr) + if err != nil { + return nil, err + } + + conn, err := net.DialUDP("udp", nil, udpAddr) + if err != nil { + return nil, err + } + + payloadSize := conf.PayloadSize + if payloadSize == 0 { + payloadSize = UDPPayloadSize + } + + return &udpclient{ + conn: conn, + payloadSize: payloadSize, + }, nil +} + +// Close releases the udpclient's resources. +func (uc *udpclient) Close() error { + return uc.conn.Close() +} + +type udpclient struct { + conn io.WriteCloser + payloadSize int +} + +func (uc *udpclient) Write(bp BatchPoints) error { + var b = make([]byte, 0, uc.payloadSize) // initial buffer size, it will grow as needed + var d, _ = time.ParseDuration("1" + bp.Precision()) + + var delayedError error + + var checkBuffer = func(n int) { + if len(b) > 0 && len(b)+n > uc.payloadSize { + if _, err := uc.conn.Write(b); err != nil { + delayedError = err + } + b = b[:0] + } + } + + for _, p := range bp.Points() { + p.pt.Round(d) + pointSize := p.pt.StringSize() + 1 // include newline in size + //point := p.pt.RoundedString(d) + "\n" + + checkBuffer(pointSize) + + if p.Time().IsZero() || pointSize <= uc.payloadSize { + b = p.pt.AppendString(b) + b = append(b, '\n') + continue + } + + points := p.pt.Split(uc.payloadSize - 1) // account for newline character + for _, sp := range points { + checkBuffer(sp.StringSize() + 1) + b = sp.AppendString(b) + b = append(b, '\n') + } + } + + if len(b) > 0 { + if _, err := uc.conn.Write(b); err != nil { + return err + } + } + return delayedError +} + +func (uc *udpclient) Query(q Query) (*Response, error) { + return nil, fmt.Errorf("Querying via UDP is not supported") +} + +func (uc *udpclient) Ping(timeout time.Duration) (time.Duration, string, error) { + return 0, "", nil +} diff --git a/vendor/github.com/influxdata/influxdb/models/consistency.go b/vendor/github.com/influxdata/influxdb/models/consistency.go new file mode 100644 index 0000000..2a3269b --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/models/consistency.go @@ -0,0 +1,48 @@ +package models + +import ( + "errors" + "strings" +) + +// ConsistencyLevel represent a required replication criteria before a write can +// be returned as successful. +// +// The consistency level is handled in open-source InfluxDB but only applicable to clusters. +type ConsistencyLevel int + +const ( + // ConsistencyLevelAny allows for hinted handoff, potentially no write happened yet. + ConsistencyLevelAny ConsistencyLevel = iota + + // ConsistencyLevelOne requires at least one data node acknowledged a write. + ConsistencyLevelOne + + // ConsistencyLevelQuorum requires a quorum of data nodes to acknowledge a write. + ConsistencyLevelQuorum + + // ConsistencyLevelAll requires all data nodes to acknowledge a write. + ConsistencyLevelAll +) + +var ( + // ErrInvalidConsistencyLevel is returned when parsing the string version + // of a consistency level. + ErrInvalidConsistencyLevel = errors.New("invalid consistency level") +) + +// ParseConsistencyLevel converts a consistency level string to the corresponding ConsistencyLevel const. +func ParseConsistencyLevel(level string) (ConsistencyLevel, error) { + switch strings.ToLower(level) { + case "any": + return ConsistencyLevelAny, nil + case "one": + return ConsistencyLevelOne, nil + case "quorum": + return ConsistencyLevelQuorum, nil + case "all": + return ConsistencyLevelAll, nil + default: + return 0, ErrInvalidConsistencyLevel + } +} diff --git a/vendor/github.com/influxdata/influxdb/models/inline_fnv.go b/vendor/github.com/influxdata/influxdb/models/inline_fnv.go new file mode 100644 index 0000000..eec1ae8 --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/models/inline_fnv.go @@ -0,0 +1,32 @@ +package models // import "github.com/influxdata/influxdb/models" + +// from stdlib hash/fnv/fnv.go +const ( + prime64 = 1099511628211 + offset64 = 14695981039346656037 +) + +// InlineFNV64a is an alloc-free port of the standard library's fnv64a. +// See https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function. +type InlineFNV64a uint64 + +// NewInlineFNV64a returns a new instance of InlineFNV64a. +func NewInlineFNV64a() InlineFNV64a { + return offset64 +} + +// Write adds data to the running hash. +func (s *InlineFNV64a) Write(data []byte) (int, error) { + hash := uint64(*s) + for _, c := range data { + hash ^= uint64(c) + hash *= prime64 + } + *s = InlineFNV64a(hash) + return len(data), nil +} + +// Sum64 returns the uint64 of the current resulting hash. +func (s *InlineFNV64a) Sum64() uint64 { + return uint64(*s) +} diff --git a/vendor/github.com/influxdata/influxdb/models/inline_strconv_parse.go b/vendor/github.com/influxdata/influxdb/models/inline_strconv_parse.go new file mode 100644 index 0000000..8db4837 --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/models/inline_strconv_parse.go @@ -0,0 +1,44 @@ +package models // import "github.com/influxdata/influxdb/models" + +import ( + "reflect" + "strconv" + "unsafe" +) + +// parseIntBytes is a zero-alloc wrapper around strconv.ParseInt. +func parseIntBytes(b []byte, base int, bitSize int) (i int64, err error) { + s := unsafeBytesToString(b) + return strconv.ParseInt(s, base, bitSize) +} + +// parseUintBytes is a zero-alloc wrapper around strconv.ParseUint. +func parseUintBytes(b []byte, base int, bitSize int) (i uint64, err error) { + s := unsafeBytesToString(b) + return strconv.ParseUint(s, base, bitSize) +} + +// parseFloatBytes is a zero-alloc wrapper around strconv.ParseFloat. +func parseFloatBytes(b []byte, bitSize int) (float64, error) { + s := unsafeBytesToString(b) + return strconv.ParseFloat(s, bitSize) +} + +// parseBoolBytes is a zero-alloc wrapper around strconv.ParseBool. +func parseBoolBytes(b []byte) (bool, error) { + return strconv.ParseBool(unsafeBytesToString(b)) +} + +// unsafeBytesToString converts a []byte to a string without a heap allocation. +// +// It is unsafe, and is intended to prepare input to short-lived functions +// that require strings. +func unsafeBytesToString(in []byte) string { + src := *(*reflect.SliceHeader)(unsafe.Pointer(&in)) + dst := reflect.StringHeader{ + Data: src.Data, + Len: src.Len, + } + s := *(*string)(unsafe.Pointer(&dst)) + return s +} diff --git a/vendor/github.com/influxdata/influxdb/models/points.go b/vendor/github.com/influxdata/influxdb/models/points.go new file mode 100644 index 0000000..94dd0bd --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/models/points.go @@ -0,0 +1,2387 @@ +// Package models implements basic objects used throughout the TICK stack. +package models // import "github.com/influxdata/influxdb/models" + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + "math" + "sort" + "strconv" + "strings" + "time" + + "github.com/influxdata/influxdb/pkg/escape" +) + +type escapeSet struct { + k [1]byte + esc [2]byte +} + +var ( + measurementEscapeCodes = [...]escapeSet{ + {k: [1]byte{','}, esc: [2]byte{'\\', ','}}, + {k: [1]byte{' '}, esc: [2]byte{'\\', ' '}}, + } + + tagEscapeCodes = [...]escapeSet{ + {k: [1]byte{','}, esc: [2]byte{'\\', ','}}, + {k: [1]byte{' '}, esc: [2]byte{'\\', ' '}}, + {k: [1]byte{'='}, esc: [2]byte{'\\', '='}}, + } + + // ErrPointMustHaveAField is returned when operating on a point that does not have any fields. + ErrPointMustHaveAField = errors.New("point without fields is unsupported") + + // ErrInvalidNumber is returned when a number is expected but not provided. + ErrInvalidNumber = errors.New("invalid number") + + // ErrInvalidPoint is returned when a point cannot be parsed correctly. + ErrInvalidPoint = errors.New("point is invalid") +) + +const ( + // MaxKeyLength is the largest allowed size of the combined measurement and tag keys. + MaxKeyLength = 65535 +) + +// enableUint64Support will enable uint64 support if set to true. +var enableUint64Support = false + +// EnableUintSupport manually enables uint support for the point parser. +// This function will be removed in the future and only exists for unit tests during the +// transition. +func EnableUintSupport() { + enableUint64Support = true +} + +// Point defines the values that will be written to the database. +type Point interface { + // Name return the measurement name for the point. + Name() []byte + + // SetName updates the measurement name for the point. + SetName(string) + + // Tags returns the tag set for the point. + Tags() Tags + + // AddTag adds or replaces a tag value for a point. + AddTag(key, value string) + + // SetTags replaces the tags for the point. + SetTags(tags Tags) + + // HasTag returns true if the tag exists for the point. + HasTag(tag []byte) bool + + // Fields returns the fields for the point. + Fields() (Fields, error) + + // Time return the timestamp for the point. + Time() time.Time + + // SetTime updates the timestamp for the point. + SetTime(t time.Time) + + // UnixNano returns the timestamp of the point as nanoseconds since Unix epoch. + UnixNano() int64 + + // HashID returns a non-cryptographic checksum of the point's key. + HashID() uint64 + + // Key returns the key (measurement joined with tags) of the point. + Key() []byte + + // String returns a string representation of the point. If there is a + // timestamp associated with the point then it will be specified with the default + // precision of nanoseconds. + String() string + + // MarshalBinary returns a binary representation of the point. + MarshalBinary() ([]byte, error) + + // PrecisionString returns a string representation of the point. If there + // is a timestamp associated with the point then it will be specified in the + // given unit. + PrecisionString(precision string) string + + // RoundedString returns a string representation of the point. If there + // is a timestamp associated with the point, then it will be rounded to the + // given duration. + RoundedString(d time.Duration) string + + // Split will attempt to return multiple points with the same timestamp whose + // string representations are no longer than size. Points with a single field or + // a point without a timestamp may exceed the requested size. + Split(size int) []Point + + // Round will round the timestamp of the point to the given duration. + Round(d time.Duration) + + // StringSize returns the length of the string that would be returned by String(). + StringSize() int + + // AppendString appends the result of String() to the provided buffer and returns + // the result, potentially reducing string allocations. + AppendString(buf []byte) []byte + + // FieldIterator retuns a FieldIterator that can be used to traverse the + // fields of a point without constructing the in-memory map. + FieldIterator() FieldIterator +} + +// FieldType represents the type of a field. +type FieldType int + +const ( + // Integer indicates the field's type is integer. + Integer FieldType = iota + + // Float indicates the field's type is float. + Float + + // Boolean indicates the field's type is boolean. + Boolean + + // String indicates the field's type is string. + String + + // Empty is used to indicate that there is no field. + Empty + + // Unsigned indicates the field's type is an unsigned integer. + Unsigned +) + +// FieldIterator provides a low-allocation interface to iterate through a point's fields. +type FieldIterator interface { + // Next indicates whether there any fields remaining. + Next() bool + + // FieldKey returns the key of the current field. + FieldKey() []byte + + // Type returns the FieldType of the current field. + Type() FieldType + + // StringValue returns the string value of the current field. + StringValue() string + + // IntegerValue returns the integer value of the current field. + IntegerValue() (int64, error) + + // UnsignedValue returns the unsigned value of the current field. + UnsignedValue() (uint64, error) + + // BooleanValue returns the boolean value of the current field. + BooleanValue() (bool, error) + + // FloatValue returns the float value of the current field. + FloatValue() (float64, error) + + // Reset resets the iterator to its initial state. + Reset() +} + +// Points represents a sortable list of points by timestamp. +type Points []Point + +// Len implements sort.Interface. +func (a Points) Len() int { return len(a) } + +// Less implements sort.Interface. +func (a Points) Less(i, j int) bool { return a[i].Time().Before(a[j].Time()) } + +// Swap implements sort.Interface. +func (a Points) Swap(i, j int) { a[i], a[j] = a[j], a[i] } + +// point is the default implementation of Point. +type point struct { + time time.Time + + // text encoding of measurement and tags + // key must always be stored sorted by tags, if the original line was not sorted, + // we need to resort it + key []byte + + // text encoding of field data + fields []byte + + // text encoding of timestamp + ts []byte + + // cached version of parsed fields from data + cachedFields map[string]interface{} + + // cached version of parsed name from key + cachedName string + + // cached version of parsed tags + cachedTags Tags + + it fieldIterator +} + +// type assertions +var ( + _ Point = (*point)(nil) + _ FieldIterator = (*point)(nil) +) + +const ( + // the number of characters for the largest possible int64 (9223372036854775807) + maxInt64Digits = 19 + + // the number of characters for the smallest possible int64 (-9223372036854775808) + minInt64Digits = 20 + + // the number of characters for the largest possible uint64 (18446744073709551615) + maxUint64Digits = 20 + + // the number of characters required for the largest float64 before a range check + // would occur during parsing + maxFloat64Digits = 25 + + // the number of characters required for smallest float64 before a range check occur + // would occur during parsing + minFloat64Digits = 27 +) + +// ParsePoints returns a slice of Points from a text representation of a point +// with each point separated by newlines. If any points fail to parse, a non-nil error +// will be returned in addition to the points that parsed successfully. +func ParsePoints(buf []byte) ([]Point, error) { + return ParsePointsWithPrecision(buf, time.Now().UTC(), "n") +} + +// ParsePointsString is identical to ParsePoints but accepts a string. +func ParsePointsString(buf string) ([]Point, error) { + return ParsePoints([]byte(buf)) +} + +// ParseKey returns the measurement name and tags from a point. +// +// NOTE: to minimize heap allocations, the returned Tags will refer to subslices of buf. +// This can have the unintended effect preventing buf from being garbage collected. +func ParseKey(buf []byte) (string, Tags) { + meas, tags := ParseKeyBytes(buf) + return string(meas), tags +} + +func ParseKeyBytes(buf []byte) ([]byte, Tags) { + // Ignore the error because scanMeasurement returns "missing fields" which we ignore + // when just parsing a key + state, i, _ := scanMeasurement(buf, 0) + + var tags Tags + if state == tagKeyState { + tags = parseTags(buf) + // scanMeasurement returns the location of the comma if there are tags, strip that off + return buf[:i-1], tags + } + return buf[:i], tags +} + +func ParseTags(buf []byte) Tags { + return parseTags(buf) +} + +func ParseName(buf []byte) ([]byte, error) { + // Ignore the error because scanMeasurement returns "missing fields" which we ignore + // when just parsing a key + state, i, _ := scanMeasurement(buf, 0) + if state == tagKeyState { + return buf[:i-1], nil + } + return buf[:i], nil +} + +// ParsePointsWithPrecision is similar to ParsePoints, but allows the +// caller to provide a precision for time. +// +// NOTE: to minimize heap allocations, the returned Points will refer to subslices of buf. +// This can have the unintended effect preventing buf from being garbage collected. +func ParsePointsWithPrecision(buf []byte, defaultTime time.Time, precision string) ([]Point, error) { + points := make([]Point, 0, bytes.Count(buf, []byte{'\n'})+1) + var ( + pos int + block []byte + failed []string + ) + for pos < len(buf) { + pos, block = scanLine(buf, pos) + pos++ + + if len(block) == 0 { + continue + } + + // lines which start with '#' are comments + start := skipWhitespace(block, 0) + + // If line is all whitespace, just skip it + if start >= len(block) { + continue + } + + if block[start] == '#' { + continue + } + + // strip the newline if one is present + if block[len(block)-1] == '\n' { + block = block[:len(block)-1] + } + + pt, err := parsePoint(block[start:], defaultTime, precision) + if err != nil { + failed = append(failed, fmt.Sprintf("unable to parse '%s': %v", string(block[start:]), err)) + } else { + points = append(points, pt) + } + + } + if len(failed) > 0 { + return points, fmt.Errorf("%s", strings.Join(failed, "\n")) + } + return points, nil + +} + +func parsePoint(buf []byte, defaultTime time.Time, precision string) (Point, error) { + // scan the first block which is measurement[,tag1=value1,tag2=value=2...] + pos, key, err := scanKey(buf, 0) + if err != nil { + return nil, err + } + + // measurement name is required + if len(key) == 0 { + return nil, fmt.Errorf("missing measurement") + } + + if len(key) > MaxKeyLength { + return nil, fmt.Errorf("max key length exceeded: %v > %v", len(key), MaxKeyLength) + } + + // scan the second block is which is field1=value1[,field2=value2,...] + pos, fields, err := scanFields(buf, pos) + if err != nil { + return nil, err + } + + // at least one field is required + if len(fields) == 0 { + return nil, fmt.Errorf("missing fields") + } + + var maxKeyErr error + walkFields(fields, func(k, v []byte) bool { + if sz := seriesKeySize(key, k); sz > MaxKeyLength { + maxKeyErr = fmt.Errorf("max key length exceeded: %v > %v", sz, MaxKeyLength) + return false + } + return true + }) + + if maxKeyErr != nil { + return nil, maxKeyErr + } + + // scan the last block which is an optional integer timestamp + pos, ts, err := scanTime(buf, pos) + if err != nil { + return nil, err + } + + pt := &point{ + key: key, + fields: fields, + ts: ts, + } + + if len(ts) == 0 { + pt.time = defaultTime + pt.SetPrecision(precision) + } else { + ts, err := parseIntBytes(ts, 10, 64) + if err != nil { + return nil, err + } + pt.time, err = SafeCalcTime(ts, precision) + if err != nil { + return nil, err + } + + // Determine if there are illegal non-whitespace characters after the + // timestamp block. + for pos < len(buf) { + if buf[pos] != ' ' { + return nil, ErrInvalidPoint + } + pos++ + } + } + return pt, nil +} + +// GetPrecisionMultiplier will return a multiplier for the precision specified. +func GetPrecisionMultiplier(precision string) int64 { + d := time.Nanosecond + switch precision { + case "u": + d = time.Microsecond + case "ms": + d = time.Millisecond + case "s": + d = time.Second + case "m": + d = time.Minute + case "h": + d = time.Hour + } + return int64(d) +} + +// scanKey scans buf starting at i for the measurement and tag portion of the point. +// It returns the ending position and the byte slice of key within buf. If there +// are tags, they will be sorted if they are not already. +func scanKey(buf []byte, i int) (int, []byte, error) { + start := skipWhitespace(buf, i) + + i = start + + // Determines whether the tags are sort, assume they are + sorted := true + + // indices holds the indexes within buf of the start of each tag. For example, + // a buf of 'cpu,host=a,region=b,zone=c' would have indices slice of [4,11,20] + // which indicates that the first tag starts at buf[4], seconds at buf[11], and + // last at buf[20] + indices := make([]int, 100) + + // tracks how many commas we've seen so we know how many values are indices. + // Since indices is an arbitrarily large slice, + // we need to know how many values in the buffer are in use. + commas := 0 + + // First scan the Point's measurement. + state, i, err := scanMeasurement(buf, i) + if err != nil { + return i, buf[start:i], err + } + + // Optionally scan tags if needed. + if state == tagKeyState { + i, commas, indices, err = scanTags(buf, i, indices) + if err != nil { + return i, buf[start:i], err + } + } + + // Now we know where the key region is within buf, and the location of tags, we + // need to determine if duplicate tags exist and if the tags are sorted. This iterates + // over the list comparing each tag in the sequence with each other. + for j := 0; j < commas-1; j++ { + // get the left and right tags + _, left := scanTo(buf[indices[j]:indices[j+1]-1], 0, '=') + _, right := scanTo(buf[indices[j+1]:indices[j+2]-1], 0, '=') + + // If left is greater than right, the tags are not sorted. We do not have to + // continue because the short path no longer works. + // If the tags are equal, then there are duplicate tags, and we should abort. + // If the tags are not sorted, this pass may not find duplicate tags and we + // need to do a more exhaustive search later. + if cmp := bytes.Compare(left, right); cmp > 0 { + sorted = false + break + } else if cmp == 0 { + return i, buf[start:i], fmt.Errorf("duplicate tags") + } + } + + // If the tags are not sorted, then sort them. This sort is inline and + // uses the tag indices we created earlier. The actual buffer is not sorted, the + // indices are using the buffer for value comparison. After the indices are sorted, + // the buffer is reconstructed from the sorted indices. + if !sorted && commas > 0 { + // Get the measurement name for later + measurement := buf[start : indices[0]-1] + + // Sort the indices + indices := indices[:commas] + insertionSort(0, commas, buf, indices) + + // Create a new key using the measurement and sorted indices + b := make([]byte, len(buf[start:i])) + pos := copy(b, measurement) + for _, i := range indices { + b[pos] = ',' + pos++ + _, v := scanToSpaceOr(buf, i, ',') + pos += copy(b[pos:], v) + } + + // Check again for duplicate tags now that the tags are sorted. + for j := 0; j < commas-1; j++ { + // get the left and right tags + _, left := scanTo(buf[indices[j]:], 0, '=') + _, right := scanTo(buf[indices[j+1]:], 0, '=') + + // If the tags are equal, then there are duplicate tags, and we should abort. + // If the tags are not sorted, this pass may not find duplicate tags and we + // need to do a more exhaustive search later. + if bytes.Equal(left, right) { + return i, b, fmt.Errorf("duplicate tags") + } + } + + return i, b, nil + } + + return i, buf[start:i], nil +} + +// The following constants allow us to specify which state to move to +// next, when scanning sections of a Point. +const ( + tagKeyState = iota + tagValueState + fieldsState +) + +// scanMeasurement examines the measurement part of a Point, returning +// the next state to move to, and the current location in the buffer. +func scanMeasurement(buf []byte, i int) (int, int, error) { + // Check first byte of measurement, anything except a comma is fine. + // It can't be a space, since whitespace is stripped prior to this + // function call. + if i >= len(buf) || buf[i] == ',' { + return -1, i, fmt.Errorf("missing measurement") + } + + for { + i++ + if i >= len(buf) { + // cpu + return -1, i, fmt.Errorf("missing fields") + } + + if buf[i-1] == '\\' { + // Skip character (it's escaped). + continue + } + + // Unescaped comma; move onto scanning the tags. + if buf[i] == ',' { + return tagKeyState, i + 1, nil + } + + // Unescaped space; move onto scanning the fields. + if buf[i] == ' ' { + // cpu value=1.0 + return fieldsState, i, nil + } + } +} + +// scanTags examines all the tags in a Point, keeping track of and +// returning the updated indices slice, number of commas and location +// in buf where to start examining the Point fields. +func scanTags(buf []byte, i int, indices []int) (int, int, []int, error) { + var ( + err error + commas int + state = tagKeyState + ) + + for { + switch state { + case tagKeyState: + // Grow our indices slice if we have too many tags. + if commas >= len(indices) { + newIndics := make([]int, cap(indices)*2) + copy(newIndics, indices) + indices = newIndics + } + indices[commas] = i + commas++ + + i, err = scanTagsKey(buf, i) + state = tagValueState // tag value always follows a tag key + case tagValueState: + state, i, err = scanTagsValue(buf, i) + case fieldsState: + indices[commas] = i + 1 + return i, commas, indices, nil + } + + if err != nil { + return i, commas, indices, err + } + } +} + +// scanTagsKey scans each character in a tag key. +func scanTagsKey(buf []byte, i int) (int, error) { + // First character of the key. + if i >= len(buf) || buf[i] == ' ' || buf[i] == ',' || buf[i] == '=' { + // cpu,{'', ' ', ',', '='} + return i, fmt.Errorf("missing tag key") + } + + // Examine each character in the tag key until we hit an unescaped + // equals (the tag value), or we hit an error (i.e., unescaped + // space or comma). + for { + i++ + + // Either we reached the end of the buffer or we hit an + // unescaped comma or space. + if i >= len(buf) || + ((buf[i] == ' ' || buf[i] == ',') && buf[i-1] != '\\') { + // cpu,tag{'', ' ', ','} + return i, fmt.Errorf("missing tag value") + } + + if buf[i] == '=' && buf[i-1] != '\\' { + // cpu,tag= + return i + 1, nil + } + } +} + +// scanTagsValue scans each character in a tag value. +func scanTagsValue(buf []byte, i int) (int, int, error) { + // Tag value cannot be empty. + if i >= len(buf) || buf[i] == ',' || buf[i] == ' ' { + // cpu,tag={',', ' '} + return -1, i, fmt.Errorf("missing tag value") + } + + // Examine each character in the tag value until we hit an unescaped + // comma (move onto next tag key), an unescaped space (move onto + // fields), or we error out. + for { + i++ + if i >= len(buf) { + // cpu,tag=value + return -1, i, fmt.Errorf("missing fields") + } + + // An unescaped equals sign is an invalid tag value. + if buf[i] == '=' && buf[i-1] != '\\' { + // cpu,tag={'=', 'fo=o'} + return -1, i, fmt.Errorf("invalid tag format") + } + + if buf[i] == ',' && buf[i-1] != '\\' { + // cpu,tag=foo, + return tagKeyState, i + 1, nil + } + + // cpu,tag=foo value=1.0 + // cpu, tag=foo\= value=1.0 + if buf[i] == ' ' && buf[i-1] != '\\' { + return fieldsState, i, nil + } + } +} + +func insertionSort(l, r int, buf []byte, indices []int) { + for i := l + 1; i < r; i++ { + for j := i; j > l && less(buf, indices, j, j-1); j-- { + indices[j], indices[j-1] = indices[j-1], indices[j] + } + } +} + +func less(buf []byte, indices []int, i, j int) bool { + // This grabs the tag names for i & j, it ignores the values + _, a := scanTo(buf, indices[i], '=') + _, b := scanTo(buf, indices[j], '=') + return bytes.Compare(a, b) < 0 +} + +// scanFields scans buf, starting at i for the fields section of a point. It returns +// the ending position and the byte slice of the fields within buf. +func scanFields(buf []byte, i int) (int, []byte, error) { + start := skipWhitespace(buf, i) + i = start + quoted := false + + // tracks how many '=' we've seen + equals := 0 + + // tracks how many commas we've seen + commas := 0 + + for { + // reached the end of buf? + if i >= len(buf) { + break + } + + // escaped characters? + if buf[i] == '\\' && i+1 < len(buf) { + i += 2 + continue + } + + // If the value is quoted, scan until we get to the end quote + // Only quote values in the field value since quotes are not significant + // in the field key + if buf[i] == '"' && equals > commas { + quoted = !quoted + i++ + continue + } + + // If we see an =, ensure that there is at least on char before and after it + if buf[i] == '=' && !quoted { + equals++ + + // check for "... =123" but allow "a\ =123" + if buf[i-1] == ' ' && buf[i-2] != '\\' { + return i, buf[start:i], fmt.Errorf("missing field key") + } + + // check for "...a=123,=456" but allow "a=123,a\,=456" + if buf[i-1] == ',' && buf[i-2] != '\\' { + return i, buf[start:i], fmt.Errorf("missing field key") + } + + // check for "... value=" + if i+1 >= len(buf) { + return i, buf[start:i], fmt.Errorf("missing field value") + } + + // check for "... value=,value2=..." + if buf[i+1] == ',' || buf[i+1] == ' ' { + return i, buf[start:i], fmt.Errorf("missing field value") + } + + if isNumeric(buf[i+1]) || buf[i+1] == '-' || buf[i+1] == 'N' || buf[i+1] == 'n' { + var err error + i, err = scanNumber(buf, i+1) + if err != nil { + return i, buf[start:i], err + } + continue + } + // If next byte is not a double-quote, the value must be a boolean + if buf[i+1] != '"' { + var err error + i, _, err = scanBoolean(buf, i+1) + if err != nil { + return i, buf[start:i], err + } + continue + } + } + + if buf[i] == ',' && !quoted { + commas++ + } + + // reached end of block? + if buf[i] == ' ' && !quoted { + break + } + i++ + } + + if quoted { + return i, buf[start:i], fmt.Errorf("unbalanced quotes") + } + + // check that all field sections had key and values (e.g. prevent "a=1,b" + if equals == 0 || commas != equals-1 { + return i, buf[start:i], fmt.Errorf("invalid field format") + } + + return i, buf[start:i], nil +} + +// scanTime scans buf, starting at i for the time section of a point. It +// returns the ending position and the byte slice of the timestamp within buf +// and and error if the timestamp is not in the correct numeric format. +func scanTime(buf []byte, i int) (int, []byte, error) { + start := skipWhitespace(buf, i) + i = start + + for { + // reached the end of buf? + if i >= len(buf) { + break + } + + // Reached end of block or trailing whitespace? + if buf[i] == '\n' || buf[i] == ' ' { + break + } + + // Handle negative timestamps + if i == start && buf[i] == '-' { + i++ + continue + } + + // Timestamps should be integers, make sure they are so we don't need + // to actually parse the timestamp until needed. + if buf[i] < '0' || buf[i] > '9' { + return i, buf[start:i], fmt.Errorf("bad timestamp") + } + i++ + } + return i, buf[start:i], nil +} + +func isNumeric(b byte) bool { + return (b >= '0' && b <= '9') || b == '.' +} + +// scanNumber returns the end position within buf, start at i after +// scanning over buf for an integer, or float. It returns an +// error if a invalid number is scanned. +func scanNumber(buf []byte, i int) (int, error) { + start := i + var isInt, isUnsigned bool + + // Is negative number? + if i < len(buf) && buf[i] == '-' { + i++ + // There must be more characters now, as just '-' is illegal. + if i == len(buf) { + return i, ErrInvalidNumber + } + } + + // how many decimal points we've see + decimal := false + + // indicates the number is float in scientific notation + scientific := false + + for { + if i >= len(buf) { + break + } + + if buf[i] == ',' || buf[i] == ' ' { + break + } + + if buf[i] == 'i' && i > start && !(isInt || isUnsigned) { + isInt = true + i++ + continue + } else if buf[i] == 'u' && i > start && !(isInt || isUnsigned) { + isUnsigned = true + i++ + continue + } + + if buf[i] == '.' { + // Can't have more than 1 decimal (e.g. 1.1.1 should fail) + if decimal { + return i, ErrInvalidNumber + } + decimal = true + } + + // `e` is valid for floats but not as the first char + if i > start && (buf[i] == 'e' || buf[i] == 'E') { + scientific = true + i++ + continue + } + + // + and - are only valid at this point if they follow an e (scientific notation) + if (buf[i] == '+' || buf[i] == '-') && (buf[i-1] == 'e' || buf[i-1] == 'E') { + i++ + continue + } + + // NaN is an unsupported value + if i+2 < len(buf) && (buf[i] == 'N' || buf[i] == 'n') { + return i, ErrInvalidNumber + } + + if !isNumeric(buf[i]) { + return i, ErrInvalidNumber + } + i++ + } + + if (isInt || isUnsigned) && (decimal || scientific) { + return i, ErrInvalidNumber + } + + numericDigits := i - start + if isInt { + numericDigits-- + } + if decimal { + numericDigits-- + } + if buf[start] == '-' { + numericDigits-- + } + + if numericDigits == 0 { + return i, ErrInvalidNumber + } + + // It's more common that numbers will be within min/max range for their type but we need to prevent + // out or range numbers from being parsed successfully. This uses some simple heuristics to decide + // if we should parse the number to the actual type. It does not do it all the time because it incurs + // extra allocations and we end up converting the type again when writing points to disk. + if isInt { + // Make sure the last char is an 'i' for integers (e.g. 9i10 is not valid) + if buf[i-1] != 'i' { + return i, ErrInvalidNumber + } + // Parse the int to check bounds the number of digits could be larger than the max range + // We subtract 1 from the index to remove the `i` from our tests + if len(buf[start:i-1]) >= maxInt64Digits || len(buf[start:i-1]) >= minInt64Digits { + if _, err := parseIntBytes(buf[start:i-1], 10, 64); err != nil { + return i, fmt.Errorf("unable to parse integer %s: %s", buf[start:i-1], err) + } + } + } else if isUnsigned { + // Return an error if uint64 support has not been enabled. + if !enableUint64Support { + return i, ErrInvalidNumber + } + // Make sure the last char is a 'u' for unsigned + if buf[i-1] != 'u' { + return i, ErrInvalidNumber + } + // Make sure the first char is not a '-' for unsigned + if buf[start] == '-' { + return i, ErrInvalidNumber + } + // Parse the uint to check bounds the number of digits could be larger than the max range + // We subtract 1 from the index to remove the `u` from our tests + if len(buf[start:i-1]) >= maxUint64Digits { + if _, err := parseUintBytes(buf[start:i-1], 10, 64); err != nil { + return i, fmt.Errorf("unable to parse unsigned %s: %s", buf[start:i-1], err) + } + } + } else { + // Parse the float to check bounds if it's scientific or the number of digits could be larger than the max range + if scientific || len(buf[start:i]) >= maxFloat64Digits || len(buf[start:i]) >= minFloat64Digits { + if _, err := parseFloatBytes(buf[start:i], 10); err != nil { + return i, fmt.Errorf("invalid float") + } + } + } + + return i, nil +} + +// scanBoolean returns the end position within buf, start at i after +// scanning over buf for boolean. Valid values for a boolean are +// t, T, true, TRUE, f, F, false, FALSE. It returns an error if a invalid boolean +// is scanned. +func scanBoolean(buf []byte, i int) (int, []byte, error) { + start := i + + if i < len(buf) && (buf[i] != 't' && buf[i] != 'f' && buf[i] != 'T' && buf[i] != 'F') { + return i, buf[start:i], fmt.Errorf("invalid boolean") + } + + i++ + for { + if i >= len(buf) { + break + } + + if buf[i] == ',' || buf[i] == ' ' { + break + } + i++ + } + + // Single char bool (t, T, f, F) is ok + if i-start == 1 { + return i, buf[start:i], nil + } + + // length must be 4 for true or TRUE + if (buf[start] == 't' || buf[start] == 'T') && i-start != 4 { + return i, buf[start:i], fmt.Errorf("invalid boolean") + } + + // length must be 5 for false or FALSE + if (buf[start] == 'f' || buf[start] == 'F') && i-start != 5 { + return i, buf[start:i], fmt.Errorf("invalid boolean") + } + + // Otherwise + valid := false + switch buf[start] { + case 't': + valid = bytes.Equal(buf[start:i], []byte("true")) + case 'f': + valid = bytes.Equal(buf[start:i], []byte("false")) + case 'T': + valid = bytes.Equal(buf[start:i], []byte("TRUE")) || bytes.Equal(buf[start:i], []byte("True")) + case 'F': + valid = bytes.Equal(buf[start:i], []byte("FALSE")) || bytes.Equal(buf[start:i], []byte("False")) + } + + if !valid { + return i, buf[start:i], fmt.Errorf("invalid boolean") + } + + return i, buf[start:i], nil + +} + +// skipWhitespace returns the end position within buf, starting at i after +// scanning over spaces in tags. +func skipWhitespace(buf []byte, i int) int { + for i < len(buf) { + if buf[i] != ' ' && buf[i] != '\t' && buf[i] != 0 { + break + } + i++ + } + return i +} + +// scanLine returns the end position in buf and the next line found within +// buf. +func scanLine(buf []byte, i int) (int, []byte) { + start := i + quoted := false + fields := false + + // tracks how many '=' and commas we've seen + // this duplicates some of the functionality in scanFields + equals := 0 + commas := 0 + for { + // reached the end of buf? + if i >= len(buf) { + break + } + + // skip past escaped characters + if buf[i] == '\\' && i+2 < len(buf) { + i += 2 + continue + } + + if buf[i] == ' ' { + fields = true + } + + // If we see a double quote, makes sure it is not escaped + if fields { + if !quoted && buf[i] == '=' { + i++ + equals++ + continue + } else if !quoted && buf[i] == ',' { + i++ + commas++ + continue + } else if buf[i] == '"' && equals > commas { + i++ + quoted = !quoted + continue + } + } + + if buf[i] == '\n' && !quoted { + break + } + + i++ + } + + return i, buf[start:i] +} + +// scanTo returns the end position in buf and the next consecutive block +// of bytes, starting from i and ending with stop byte, where stop byte +// has not been escaped. +// +// If there are leading spaces, they are skipped. +func scanTo(buf []byte, i int, stop byte) (int, []byte) { + start := i + for { + // reached the end of buf? + if i >= len(buf) { + break + } + + // Reached unescaped stop value? + if buf[i] == stop && (i == 0 || buf[i-1] != '\\') { + break + } + i++ + } + + return i, buf[start:i] +} + +// scanTo returns the end position in buf and the next consecutive block +// of bytes, starting from i and ending with stop byte. If there are leading +// spaces, they are skipped. +func scanToSpaceOr(buf []byte, i int, stop byte) (int, []byte) { + start := i + if buf[i] == stop || buf[i] == ' ' { + return i, buf[start:i] + } + + for { + i++ + if buf[i-1] == '\\' { + continue + } + + // reached the end of buf? + if i >= len(buf) { + return i, buf[start:i] + } + + // reached end of block? + if buf[i] == stop || buf[i] == ' ' { + return i, buf[start:i] + } + } +} + +func scanTagValue(buf []byte, i int) (int, []byte) { + start := i + for { + if i >= len(buf) { + break + } + + if buf[i] == ',' && buf[i-1] != '\\' { + break + } + i++ + } + if i > len(buf) { + return i, nil + } + return i, buf[start:i] +} + +func scanFieldValue(buf []byte, i int) (int, []byte) { + start := i + quoted := false + for i < len(buf) { + // Only escape char for a field value is a double-quote and backslash + if buf[i] == '\\' && i+1 < len(buf) && (buf[i+1] == '"' || buf[i+1] == '\\') { + i += 2 + continue + } + + // Quoted value? (e.g. string) + if buf[i] == '"' { + i++ + quoted = !quoted + continue + } + + if buf[i] == ',' && !quoted { + break + } + i++ + } + return i, buf[start:i] +} + +func EscapeMeasurement(in []byte) []byte { + for _, c := range measurementEscapeCodes { + if bytes.IndexByte(in, c.k[0]) != -1 { + in = bytes.Replace(in, c.k[:], c.esc[:], -1) + } + } + return in +} + +func unescapeMeasurement(in []byte) []byte { + if bytes.IndexByte(in, '\\') == -1 { + return in + } + + for i := range measurementEscapeCodes { + c := &measurementEscapeCodes[i] + if bytes.IndexByte(in, c.k[0]) != -1 { + in = bytes.Replace(in, c.esc[:], c.k[:], -1) + } + } + return in +} + +func escapeTag(in []byte) []byte { + for i := range tagEscapeCodes { + c := &tagEscapeCodes[i] + if bytes.IndexByte(in, c.k[0]) != -1 { + in = bytes.Replace(in, c.k[:], c.esc[:], -1) + } + } + return in +} + +func unescapeTag(in []byte) []byte { + if bytes.IndexByte(in, '\\') == -1 { + return in + } + + for i := range tagEscapeCodes { + c := &tagEscapeCodes[i] + if bytes.IndexByte(in, c.k[0]) != -1 { + in = bytes.Replace(in, c.esc[:], c.k[:], -1) + } + } + return in +} + +// escapeStringFieldReplacer replaces double quotes and backslashes +// with the same character preceded by a backslash. +// As of Go 1.7 this benchmarked better in allocations and CPU time +// compared to iterating through a string byte-by-byte and appending to a new byte slice, +// calling strings.Replace twice, and better than (*Regex).ReplaceAllString. +var escapeStringFieldReplacer = strings.NewReplacer(`"`, `\"`, `\`, `\\`) + +// EscapeStringField returns a copy of in with any double quotes or +// backslashes with escaped values. +func EscapeStringField(in string) string { + return escapeStringFieldReplacer.Replace(in) +} + +// unescapeStringField returns a copy of in with any escaped double-quotes +// or backslashes unescaped. +func unescapeStringField(in string) string { + if strings.IndexByte(in, '\\') == -1 { + return in + } + + var out []byte + i := 0 + for { + if i >= len(in) { + break + } + // unescape backslashes + if in[i] == '\\' && i+1 < len(in) && in[i+1] == '\\' { + out = append(out, '\\') + i += 2 + continue + } + // unescape double-quotes + if in[i] == '\\' && i+1 < len(in) && in[i+1] == '"' { + out = append(out, '"') + i += 2 + continue + } + out = append(out, in[i]) + i++ + + } + return string(out) +} + +// NewPoint returns a new point with the given measurement name, tags, fields and timestamp. If +// an unsupported field value (NaN) or out of range time is passed, this function returns an error. +func NewPoint(name string, tags Tags, fields Fields, t time.Time) (Point, error) { + key, err := pointKey(name, tags, fields, t) + if err != nil { + return nil, err + } + + return &point{ + key: key, + time: t, + fields: fields.MarshalBinary(), + }, nil +} + +// pointKey checks some basic requirements for valid points, and returns the +// key, along with an possible error. +func pointKey(measurement string, tags Tags, fields Fields, t time.Time) ([]byte, error) { + if len(fields) == 0 { + return nil, ErrPointMustHaveAField + } + + if !t.IsZero() { + if err := CheckTime(t); err != nil { + return nil, err + } + } + + for key, value := range fields { + switch value := value.(type) { + case float64: + // Ensure the caller validates and handles invalid field values + if math.IsNaN(value) { + return nil, fmt.Errorf("NaN is an unsupported value for field %s", key) + } + case float32: + // Ensure the caller validates and handles invalid field values + if math.IsNaN(float64(value)) { + return nil, fmt.Errorf("NaN is an unsupported value for field %s", key) + } + } + if len(key) == 0 { + return nil, fmt.Errorf("all fields must have non-empty names") + } + } + + key := MakeKey([]byte(measurement), tags) + for field := range fields { + sz := seriesKeySize(key, []byte(field)) + if sz > MaxKeyLength { + return nil, fmt.Errorf("max key length exceeded: %v > %v", sz, MaxKeyLength) + } + } + + return key, nil +} + +func seriesKeySize(key, field []byte) int { + // 4 is the length of the tsm1.fieldKeySeparator constant. It's inlined here to avoid a circular + // dependency. + return len(key) + 4 + len(field) +} + +// NewPointFromBytes returns a new Point from a marshalled Point. +func NewPointFromBytes(b []byte) (Point, error) { + p := &point{} + if err := p.UnmarshalBinary(b); err != nil { + return nil, err + } + + // This does some basic validation to ensure there are fields and they + // can be unmarshalled as well. + iter := p.FieldIterator() + var hasField bool + for iter.Next() { + if len(iter.FieldKey()) == 0 { + continue + } + hasField = true + switch iter.Type() { + case Float: + _, err := iter.FloatValue() + if err != nil { + return nil, fmt.Errorf("unable to unmarshal field %s: %s", string(iter.FieldKey()), err) + } + case Integer: + _, err := iter.IntegerValue() + if err != nil { + return nil, fmt.Errorf("unable to unmarshal field %s: %s", string(iter.FieldKey()), err) + } + case Unsigned: + _, err := iter.UnsignedValue() + if err != nil { + return nil, fmt.Errorf("unable to unmarshal field %s: %s", string(iter.FieldKey()), err) + } + case String: + // Skip since this won't return an error + case Boolean: + _, err := iter.BooleanValue() + if err != nil { + return nil, fmt.Errorf("unable to unmarshal field %s: %s", string(iter.FieldKey()), err) + } + } + } + + if !hasField { + return nil, ErrPointMustHaveAField + } + + return p, nil +} + +// MustNewPoint returns a new point with the given measurement name, tags, fields and timestamp. If +// an unsupported field value (NaN) is passed, this function panics. +func MustNewPoint(name string, tags Tags, fields Fields, time time.Time) Point { + pt, err := NewPoint(name, tags, fields, time) + if err != nil { + panic(err.Error()) + } + return pt +} + +// Key returns the key (measurement joined with tags) of the point. +func (p *point) Key() []byte { + return p.key +} + +func (p *point) name() []byte { + _, name := scanTo(p.key, 0, ',') + return name +} + +func (p *point) Name() []byte { + return escape.Unescape(p.name()) +} + +// SetName updates the measurement name for the point. +func (p *point) SetName(name string) { + p.cachedName = "" + p.key = MakeKey([]byte(name), p.Tags()) +} + +// Time return the timestamp for the point. +func (p *point) Time() time.Time { + return p.time +} + +// SetTime updates the timestamp for the point. +func (p *point) SetTime(t time.Time) { + p.time = t +} + +// Round will round the timestamp of the point to the given duration. +func (p *point) Round(d time.Duration) { + p.time = p.time.Round(d) +} + +// Tags returns the tag set for the point. +func (p *point) Tags() Tags { + if p.cachedTags != nil { + return p.cachedTags + } + p.cachedTags = parseTags(p.key) + return p.cachedTags +} + +func (p *point) HasTag(tag []byte) bool { + if len(p.key) == 0 { + return false + } + + var exists bool + walkTags(p.key, func(key, value []byte) bool { + if bytes.Equal(tag, key) { + exists = true + return false + } + return true + }) + + return exists +} + +func walkTags(buf []byte, fn func(key, value []byte) bool) { + if len(buf) == 0 { + return + } + + pos, name := scanTo(buf, 0, ',') + + // it's an empty key, so there are no tags + if len(name) == 0 { + return + } + + hasEscape := bytes.IndexByte(buf, '\\') != -1 + i := pos + 1 + var key, value []byte + for { + if i >= len(buf) { + break + } + i, key = scanTo(buf, i, '=') + i, value = scanTagValue(buf, i+1) + + if len(value) == 0 { + continue + } + + if hasEscape { + if !fn(unescapeTag(key), unescapeTag(value)) { + return + } + } else { + if !fn(key, value) { + return + } + } + + i++ + } +} + +// walkFields walks each field key and value via fn. If fn returns false, the iteration +// is stopped. The values are the raw byte slices and not the converted types. +func walkFields(buf []byte, fn func(key, value []byte) bool) { + var i int + var key, val []byte + for len(buf) > 0 { + i, key = scanTo(buf, 0, '=') + buf = buf[i+1:] + i, val = scanFieldValue(buf, 0) + buf = buf[i:] + if !fn(key, val) { + break + } + + // slice off comma + if len(buf) > 0 { + buf = buf[1:] + } + } +} + +func parseTags(buf []byte) Tags { + if len(buf) == 0 { + return nil + } + + // Series keys can contain escaped commas, therefore the number of commas + // in a series key only gives an estimation of the upper bound on the number + // of tags. + tags := make(Tags, 0, bytes.Count(buf, []byte(","))) + walkTags(buf, func(key, value []byte) bool { + tags = append(tags, Tag{Key: key, Value: value}) + return true + }) + return tags +} + +// MakeKey creates a key for a set of tags. +func MakeKey(name []byte, tags Tags) []byte { + return AppendMakeKey(nil, name, tags) +} + +// AppendMakeKey appends the key derived from name and tags to dst and returns the extended buffer. +func AppendMakeKey(dst []byte, name []byte, tags Tags) []byte { + // unescape the name and then re-escape it to avoid double escaping. + // The key should always be stored in escaped form. + dst = append(dst, EscapeMeasurement(unescapeMeasurement(name))...) + dst = tags.AppendHashKey(dst) + return dst +} + +// SetTags replaces the tags for the point. +func (p *point) SetTags(tags Tags) { + p.key = MakeKey(p.Name(), tags) + p.cachedTags = tags +} + +// AddTag adds or replaces a tag value for a point. +func (p *point) AddTag(key, value string) { + tags := p.Tags() + tags = append(tags, Tag{Key: []byte(key), Value: []byte(value)}) + sort.Sort(tags) + p.cachedTags = tags + p.key = MakeKey(p.Name(), tags) +} + +// Fields returns the fields for the point. +func (p *point) Fields() (Fields, error) { + if p.cachedFields != nil { + return p.cachedFields, nil + } + cf, err := p.unmarshalBinary() + if err != nil { + return nil, err + } + p.cachedFields = cf + return p.cachedFields, nil +} + +// SetPrecision will round a time to the specified precision. +func (p *point) SetPrecision(precision string) { + switch precision { + case "n": + case "u": + p.SetTime(p.Time().Truncate(time.Microsecond)) + case "ms": + p.SetTime(p.Time().Truncate(time.Millisecond)) + case "s": + p.SetTime(p.Time().Truncate(time.Second)) + case "m": + p.SetTime(p.Time().Truncate(time.Minute)) + case "h": + p.SetTime(p.Time().Truncate(time.Hour)) + } +} + +// String returns the string representation of the point. +func (p *point) String() string { + if p.Time().IsZero() { + return string(p.Key()) + " " + string(p.fields) + } + return string(p.Key()) + " " + string(p.fields) + " " + strconv.FormatInt(p.UnixNano(), 10) +} + +// AppendString appends the string representation of the point to buf. +func (p *point) AppendString(buf []byte) []byte { + buf = append(buf, p.key...) + buf = append(buf, ' ') + buf = append(buf, p.fields...) + + if !p.time.IsZero() { + buf = append(buf, ' ') + buf = strconv.AppendInt(buf, p.UnixNano(), 10) + } + + return buf +} + +// StringSize returns the length of the string that would be returned by String(). +func (p *point) StringSize() int { + size := len(p.key) + len(p.fields) + 1 + + if !p.time.IsZero() { + digits := 1 // even "0" has one digit + t := p.UnixNano() + if t < 0 { + // account for negative sign, then negate + digits++ + t = -t + } + for t > 9 { // already accounted for one digit + digits++ + t /= 10 + } + size += digits + 1 // digits and a space + } + + return size +} + +// MarshalBinary returns a binary representation of the point. +func (p *point) MarshalBinary() ([]byte, error) { + if len(p.fields) == 0 { + return nil, ErrPointMustHaveAField + } + + tb, err := p.time.MarshalBinary() + if err != nil { + return nil, err + } + + b := make([]byte, 8+len(p.key)+len(p.fields)+len(tb)) + i := 0 + + binary.BigEndian.PutUint32(b[i:], uint32(len(p.key))) + i += 4 + + i += copy(b[i:], p.key) + + binary.BigEndian.PutUint32(b[i:i+4], uint32(len(p.fields))) + i += 4 + + i += copy(b[i:], p.fields) + + copy(b[i:], tb) + return b, nil +} + +// UnmarshalBinary decodes a binary representation of the point into a point struct. +func (p *point) UnmarshalBinary(b []byte) error { + var n int + + // Read key length. + if len(b) < 4 { + return io.ErrShortBuffer + } + n, b = int(binary.BigEndian.Uint32(b[:4])), b[4:] + + // Read key. + if len(b) < n { + return io.ErrShortBuffer + } + p.key, b = b[:n], b[n:] + + // Read fields length. + if len(b) < 4 { + return io.ErrShortBuffer + } + n, b = int(binary.BigEndian.Uint32(b[:4])), b[4:] + + // Read fields. + if len(b) < n { + return io.ErrShortBuffer + } + p.fields, b = b[:n], b[n:] + + // Read timestamp. + return p.time.UnmarshalBinary(b) +} + +// PrecisionString returns a string representation of the point. If there +// is a timestamp associated with the point then it will be specified in the +// given unit. +func (p *point) PrecisionString(precision string) string { + if p.Time().IsZero() { + return fmt.Sprintf("%s %s", p.Key(), string(p.fields)) + } + return fmt.Sprintf("%s %s %d", p.Key(), string(p.fields), + p.UnixNano()/GetPrecisionMultiplier(precision)) +} + +// RoundedString returns a string representation of the point. If there +// is a timestamp associated with the point, then it will be rounded to the +// given duration. +func (p *point) RoundedString(d time.Duration) string { + if p.Time().IsZero() { + return fmt.Sprintf("%s %s", p.Key(), string(p.fields)) + } + return fmt.Sprintf("%s %s %d", p.Key(), string(p.fields), + p.time.Round(d).UnixNano()) +} + +func (p *point) unmarshalBinary() (Fields, error) { + iter := p.FieldIterator() + fields := make(Fields, 8) + for iter.Next() { + if len(iter.FieldKey()) == 0 { + continue + } + switch iter.Type() { + case Float: + v, err := iter.FloatValue() + if err != nil { + return nil, fmt.Errorf("unable to unmarshal field %s: %s", string(iter.FieldKey()), err) + } + fields[string(iter.FieldKey())] = v + case Integer: + v, err := iter.IntegerValue() + if err != nil { + return nil, fmt.Errorf("unable to unmarshal field %s: %s", string(iter.FieldKey()), err) + } + fields[string(iter.FieldKey())] = v + case Unsigned: + v, err := iter.UnsignedValue() + if err != nil { + return nil, fmt.Errorf("unable to unmarshal field %s: %s", string(iter.FieldKey()), err) + } + fields[string(iter.FieldKey())] = v + case String: + fields[string(iter.FieldKey())] = iter.StringValue() + case Boolean: + v, err := iter.BooleanValue() + if err != nil { + return nil, fmt.Errorf("unable to unmarshal field %s: %s", string(iter.FieldKey()), err) + } + fields[string(iter.FieldKey())] = v + } + } + return fields, nil +} + +// HashID returns a non-cryptographic checksum of the point's key. +func (p *point) HashID() uint64 { + h := NewInlineFNV64a() + h.Write(p.key) + sum := h.Sum64() + return sum +} + +// UnixNano returns the timestamp of the point as nanoseconds since Unix epoch. +func (p *point) UnixNano() int64 { + return p.Time().UnixNano() +} + +// Split will attempt to return multiple points with the same timestamp whose +// string representations are no longer than size. Points with a single field or +// a point without a timestamp may exceed the requested size. +func (p *point) Split(size int) []Point { + if p.time.IsZero() || p.StringSize() <= size { + return []Point{p} + } + + // key string, timestamp string, spaces + size -= len(p.key) + len(strconv.FormatInt(p.time.UnixNano(), 10)) + 2 + + var points []Point + var start, cur int + + for cur < len(p.fields) { + end, _ := scanTo(p.fields, cur, '=') + end, _ = scanFieldValue(p.fields, end+1) + + if cur > start && end-start > size { + points = append(points, &point{ + key: p.key, + time: p.time, + fields: p.fields[start : cur-1], + }) + start = cur + } + + cur = end + 1 + } + + points = append(points, &point{ + key: p.key, + time: p.time, + fields: p.fields[start:], + }) + + return points +} + +// Tag represents a single key/value tag pair. +type Tag struct { + Key []byte + Value []byte +} + +// NewTag returns a new Tag. +func NewTag(key, value []byte) Tag { + return Tag{ + Key: key, + Value: value, + } +} + +// Size returns the size of the key and value. +func (t Tag) Size() int { return len(t.Key) + len(t.Value) } + +// Clone returns a shallow copy of Tag. +// +// Tags associated with a Point created by ParsePointsWithPrecision will hold references to the byte slice that was parsed. +// Use Clone to create a Tag with new byte slices that do not refer to the argument to ParsePointsWithPrecision. +func (t Tag) Clone() Tag { + other := Tag{ + Key: make([]byte, len(t.Key)), + Value: make([]byte, len(t.Value)), + } + + copy(other.Key, t.Key) + copy(other.Value, t.Value) + + return other +} + +// String returns the string reprsentation of the tag. +func (t *Tag) String() string { + var buf bytes.Buffer + buf.WriteByte('{') + buf.WriteString(string(t.Key)) + buf.WriteByte(' ') + buf.WriteString(string(t.Value)) + buf.WriteByte('}') + return buf.String() +} + +// Tags represents a sorted list of tags. +type Tags []Tag + +// NewTags returns a new Tags from a map. +func NewTags(m map[string]string) Tags { + if len(m) == 0 { + return nil + } + a := make(Tags, 0, len(m)) + for k, v := range m { + a = append(a, NewTag([]byte(k), []byte(v))) + } + sort.Sort(a) + return a +} + +// Keys returns the list of keys for a tag set. +func (a Tags) Keys() []string { + if len(a) == 0 { + return nil + } + keys := make([]string, len(a)) + for i, tag := range a { + keys[i] = string(tag.Key) + } + return keys +} + +// Values returns the list of values for a tag set. +func (a Tags) Values() []string { + if len(a) == 0 { + return nil + } + values := make([]string, len(a)) + for i, tag := range a { + values[i] = string(tag.Value) + } + return values +} + +// String returns the string representation of the tags. +func (a Tags) String() string { + var buf bytes.Buffer + buf.WriteByte('[') + for i := range a { + buf.WriteString(a[i].String()) + if i < len(a)-1 { + buf.WriteByte(' ') + } + } + buf.WriteByte(']') + return buf.String() +} + +// Size returns the number of bytes needed to store all tags. Note, this is +// the number of bytes needed to store all keys and values and does not account +// for data structures or delimiters for example. +func (a Tags) Size() int { + var total int + for i := range a { + total += a[i].Size() + } + return total +} + +// Clone returns a copy of the slice where the elements are a result of calling `Clone` on the original elements +// +// Tags associated with a Point created by ParsePointsWithPrecision will hold references to the byte slice that was parsed. +// Use Clone to create Tags with new byte slices that do not refer to the argument to ParsePointsWithPrecision. +func (a Tags) Clone() Tags { + if len(a) == 0 { + return nil + } + + others := make(Tags, len(a)) + for i := range a { + others[i] = a[i].Clone() + } + + return others +} + +func (a Tags) Len() int { return len(a) } +func (a Tags) Less(i, j int) bool { return bytes.Compare(a[i].Key, a[j].Key) == -1 } +func (a Tags) Swap(i, j int) { a[i], a[j] = a[j], a[i] } + +// Equal returns true if a equals other. +func (a Tags) Equal(other Tags) bool { + if len(a) != len(other) { + return false + } + for i := range a { + if !bytes.Equal(a[i].Key, other[i].Key) || !bytes.Equal(a[i].Value, other[i].Value) { + return false + } + } + return true +} + +// CompareTags returns -1 if a < b, 1 if a > b, and 0 if a == b. +func CompareTags(a, b Tags) int { + // Compare each key & value until a mismatch. + for i := 0; i < len(a) && i < len(b); i++ { + if cmp := bytes.Compare(a[i].Key, b[i].Key); cmp != 0 { + return cmp + } + if cmp := bytes.Compare(a[i].Value, b[i].Value); cmp != 0 { + return cmp + } + } + + // If all tags are equal up to this point then return shorter tagset. + if len(a) < len(b) { + return -1 + } else if len(a) > len(b) { + return 1 + } + + // All tags are equal. + return 0 +} + +// Get returns the value for a key. +func (a Tags) Get(key []byte) []byte { + // OPTIMIZE: Use sort.Search if tagset is large. + + for _, t := range a { + if bytes.Equal(t.Key, key) { + return t.Value + } + } + return nil +} + +// GetString returns the string value for a string key. +func (a Tags) GetString(key string) string { + return string(a.Get([]byte(key))) +} + +// Set sets the value for a key. +func (a *Tags) Set(key, value []byte) { + for i, t := range *a { + if bytes.Equal(t.Key, key) { + (*a)[i].Value = value + return + } + } + *a = append(*a, Tag{Key: key, Value: value}) + sort.Sort(*a) +} + +// SetString sets the string value for a string key. +func (a *Tags) SetString(key, value string) { + a.Set([]byte(key), []byte(value)) +} + +// Delete removes a tag by key. +func (a *Tags) Delete(key []byte) { + for i, t := range *a { + if bytes.Equal(t.Key, key) { + copy((*a)[i:], (*a)[i+1:]) + (*a)[len(*a)-1] = Tag{} + *a = (*a)[:len(*a)-1] + return + } + } +} + +// Map returns a map representation of the tags. +func (a Tags) Map() map[string]string { + m := make(map[string]string, len(a)) + for _, t := range a { + m[string(t.Key)] = string(t.Value) + } + return m +} + +// Merge merges the tags combining the two. If both define a tag with the +// same key, the merged value overwrites the old value. +// A new map is returned. +func (a Tags) Merge(other map[string]string) Tags { + merged := make(map[string]string, len(a)+len(other)) + for _, t := range a { + merged[string(t.Key)] = string(t.Value) + } + for k, v := range other { + merged[k] = v + } + return NewTags(merged) +} + +// HashKey hashes all of a tag's keys. +func (a Tags) HashKey() []byte { + return a.AppendHashKey(nil) +} + +func (a Tags) needsEscape() bool { + for i := range a { + t := &a[i] + for j := range tagEscapeCodes { + c := &tagEscapeCodes[j] + if bytes.IndexByte(t.Key, c.k[0]) != -1 || bytes.IndexByte(t.Value, c.k[0]) != -1 { + return true + } + } + } + return false +} + +// AppendHashKey appends the result of hashing all of a tag's keys and values to dst and returns the extended buffer. +func (a Tags) AppendHashKey(dst []byte) []byte { + // Empty maps marshal to empty bytes. + if len(a) == 0 { + return dst + } + + // Type invariant: Tags are sorted + + sz := 0 + var escaped Tags + if a.needsEscape() { + var tmp [20]Tag + if len(a) < len(tmp) { + escaped = tmp[:len(a)] + } else { + escaped = make(Tags, len(a)) + } + + for i := range a { + t := &a[i] + nt := &escaped[i] + nt.Key = escapeTag(t.Key) + nt.Value = escapeTag(t.Value) + sz += len(nt.Key) + len(nt.Value) + } + } else { + sz = a.Size() + escaped = a + } + + sz += len(escaped) + (len(escaped) * 2) // separators + + // Generate marshaled bytes. + if cap(dst)-len(dst) < sz { + nd := make([]byte, len(dst), len(dst)+sz) + copy(nd, dst) + dst = nd + } + buf := dst[len(dst) : len(dst)+sz] + idx := 0 + for i := range escaped { + k := &escaped[i] + if len(k.Value) == 0 { + continue + } + buf[idx] = ',' + idx++ + copy(buf[idx:], k.Key) + idx += len(k.Key) + buf[idx] = '=' + idx++ + copy(buf[idx:], k.Value) + idx += len(k.Value) + } + return dst[:len(dst)+idx] +} + +// CopyTags returns a shallow copy of tags. +func CopyTags(a Tags) Tags { + other := make(Tags, len(a)) + copy(other, a) + return other +} + +// DeepCopyTags returns a deep copy of tags. +func DeepCopyTags(a Tags) Tags { + // Calculate size of keys/values in bytes. + var n int + for _, t := range a { + n += len(t.Key) + len(t.Value) + } + + // Build single allocation for all key/values. + buf := make([]byte, n) + + // Copy tags to new set. + other := make(Tags, len(a)) + for i, t := range a { + copy(buf, t.Key) + other[i].Key, buf = buf[:len(t.Key)], buf[len(t.Key):] + + copy(buf, t.Value) + other[i].Value, buf = buf[:len(t.Value)], buf[len(t.Value):] + } + + return other +} + +// Fields represents a mapping between a Point's field names and their +// values. +type Fields map[string]interface{} + +// FieldIterator retuns a FieldIterator that can be used to traverse the +// fields of a point without constructing the in-memory map. +func (p *point) FieldIterator() FieldIterator { + p.Reset() + return p +} + +type fieldIterator struct { + start, end int + key, keybuf []byte + valueBuf []byte + fieldType FieldType +} + +// Next indicates whether there any fields remaining. +func (p *point) Next() bool { + p.it.start = p.it.end + if p.it.start >= len(p.fields) { + return false + } + + p.it.end, p.it.key = scanTo(p.fields, p.it.start, '=') + if escape.IsEscaped(p.it.key) { + p.it.keybuf = escape.AppendUnescaped(p.it.keybuf[:0], p.it.key) + p.it.key = p.it.keybuf + } + + p.it.end, p.it.valueBuf = scanFieldValue(p.fields, p.it.end+1) + p.it.end++ + + if len(p.it.valueBuf) == 0 { + p.it.fieldType = Empty + return true + } + + c := p.it.valueBuf[0] + + if c == '"' { + p.it.fieldType = String + return true + } + + if strings.IndexByte(`0123456789-.nNiIu`, c) >= 0 { + if p.it.valueBuf[len(p.it.valueBuf)-1] == 'i' { + p.it.fieldType = Integer + p.it.valueBuf = p.it.valueBuf[:len(p.it.valueBuf)-1] + } else if p.it.valueBuf[len(p.it.valueBuf)-1] == 'u' { + p.it.fieldType = Unsigned + p.it.valueBuf = p.it.valueBuf[:len(p.it.valueBuf)-1] + } else { + p.it.fieldType = Float + } + return true + } + + // to keep the same behavior that currently exists, default to boolean + p.it.fieldType = Boolean + return true +} + +// FieldKey returns the key of the current field. +func (p *point) FieldKey() []byte { + return p.it.key +} + +// Type returns the FieldType of the current field. +func (p *point) Type() FieldType { + return p.it.fieldType +} + +// StringValue returns the string value of the current field. +func (p *point) StringValue() string { + return unescapeStringField(string(p.it.valueBuf[1 : len(p.it.valueBuf)-1])) +} + +// IntegerValue returns the integer value of the current field. +func (p *point) IntegerValue() (int64, error) { + n, err := parseIntBytes(p.it.valueBuf, 10, 64) + if err != nil { + return 0, fmt.Errorf("unable to parse integer value %q: %v", p.it.valueBuf, err) + } + return n, nil +} + +// UnsignedValue returns the unsigned value of the current field. +func (p *point) UnsignedValue() (uint64, error) { + n, err := parseUintBytes(p.it.valueBuf, 10, 64) + if err != nil { + return 0, fmt.Errorf("unable to parse unsigned value %q: %v", p.it.valueBuf, err) + } + return n, nil +} + +// BooleanValue returns the boolean value of the current field. +func (p *point) BooleanValue() (bool, error) { + b, err := parseBoolBytes(p.it.valueBuf) + if err != nil { + return false, fmt.Errorf("unable to parse bool value %q: %v", p.it.valueBuf, err) + } + return b, nil +} + +// FloatValue returns the float value of the current field. +func (p *point) FloatValue() (float64, error) { + f, err := parseFloatBytes(p.it.valueBuf, 64) + if err != nil { + return 0, fmt.Errorf("unable to parse floating point value %q: %v", p.it.valueBuf, err) + } + return f, nil +} + +// Reset resets the iterator to its initial state. +func (p *point) Reset() { + p.it.fieldType = Empty + p.it.key = nil + p.it.valueBuf = nil + p.it.start = 0 + p.it.end = 0 +} + +// MarshalBinary encodes all the fields to their proper type and returns the binary +// represenation +// NOTE: uint64 is specifically not supported due to potential overflow when we decode +// again later to an int64 +// NOTE2: uint is accepted, and may be 64 bits, and is for some reason accepted... +func (p Fields) MarshalBinary() []byte { + var b []byte + keys := make([]string, 0, len(p)) + + for k := range p { + keys = append(keys, k) + } + + // Not really necessary, can probably be removed. + sort.Strings(keys) + + for i, k := range keys { + if i > 0 { + b = append(b, ',') + } + b = appendField(b, k, p[k]) + } + + return b +} + +func appendField(b []byte, k string, v interface{}) []byte { + b = append(b, []byte(escape.String(k))...) + b = append(b, '=') + + // check popular types first + switch v := v.(type) { + case float64: + b = strconv.AppendFloat(b, v, 'f', -1, 64) + case int64: + b = strconv.AppendInt(b, v, 10) + b = append(b, 'i') + case string: + b = append(b, '"') + b = append(b, []byte(EscapeStringField(v))...) + b = append(b, '"') + case bool: + b = strconv.AppendBool(b, v) + case int32: + b = strconv.AppendInt(b, int64(v), 10) + b = append(b, 'i') + case int16: + b = strconv.AppendInt(b, int64(v), 10) + b = append(b, 'i') + case int8: + b = strconv.AppendInt(b, int64(v), 10) + b = append(b, 'i') + case int: + b = strconv.AppendInt(b, int64(v), 10) + b = append(b, 'i') + case uint64: + b = strconv.AppendUint(b, v, 10) + b = append(b, 'u') + case uint32: + b = strconv.AppendInt(b, int64(v), 10) + b = append(b, 'i') + case uint16: + b = strconv.AppendInt(b, int64(v), 10) + b = append(b, 'i') + case uint8: + b = strconv.AppendInt(b, int64(v), 10) + b = append(b, 'i') + case uint: + // TODO: 'uint' should be converted to writing as an unsigned integer, + // but we cannot since that would break backwards compatibility. + b = strconv.AppendInt(b, int64(v), 10) + b = append(b, 'i') + case float32: + b = strconv.AppendFloat(b, float64(v), 'f', -1, 32) + case []byte: + b = append(b, v...) + case nil: + // skip + default: + // Can't determine the type, so convert to string + b = append(b, '"') + b = append(b, []byte(EscapeStringField(fmt.Sprintf("%v", v)))...) + b = append(b, '"') + + } + + return b +} diff --git a/vendor/github.com/influxdata/influxdb/models/rows.go b/vendor/github.com/influxdata/influxdb/models/rows.go new file mode 100644 index 0000000..c087a48 --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/models/rows.go @@ -0,0 +1,62 @@ +package models + +import ( + "sort" +) + +// Row represents a single row returned from the execution of a statement. +type Row struct { + Name string `json:"name,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Columns []string `json:"columns,omitempty"` + Values [][]interface{} `json:"values,omitempty"` + Partial bool `json:"partial,omitempty"` +} + +// SameSeries returns true if r contains values for the same series as o. +func (r *Row) SameSeries(o *Row) bool { + return r.tagsHash() == o.tagsHash() && r.Name == o.Name +} + +// tagsHash returns a hash of tag key/value pairs. +func (r *Row) tagsHash() uint64 { + h := NewInlineFNV64a() + keys := r.tagsKeys() + for _, k := range keys { + h.Write([]byte(k)) + h.Write([]byte(r.Tags[k])) + } + return h.Sum64() +} + +// tagKeys returns a sorted list of tag keys. +func (r *Row) tagsKeys() []string { + a := make([]string, 0, len(r.Tags)) + for k := range r.Tags { + a = append(a, k) + } + sort.Strings(a) + return a +} + +// Rows represents a collection of rows. Rows implements sort.Interface. +type Rows []*Row + +// Len implements sort.Interface. +func (p Rows) Len() int { return len(p) } + +// Less implements sort.Interface. +func (p Rows) Less(i, j int) bool { + // Sort by name first. + if p[i].Name != p[j].Name { + return p[i].Name < p[j].Name + } + + // Sort by tag set hash. Tags don't have a meaningful sort order so we + // just compute a hash and sort by that instead. This allows the tests + // to receive rows in a predictable order every time. + return p[i].tagsHash() < p[j].tagsHash() +} + +// Swap implements sort.Interface. +func (p Rows) Swap(i, j int) { p[i], p[j] = p[j], p[i] } diff --git a/vendor/github.com/influxdata/influxdb/models/statistic.go b/vendor/github.com/influxdata/influxdb/models/statistic.go new file mode 100644 index 0000000..553e9d0 --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/models/statistic.go @@ -0,0 +1,42 @@ +package models + +// Statistic is the representation of a statistic used by the monitoring service. +type Statistic struct { + Name string `json:"name"` + Tags map[string]string `json:"tags"` + Values map[string]interface{} `json:"values"` +} + +// NewStatistic returns an initialized Statistic. +func NewStatistic(name string) Statistic { + return Statistic{ + Name: name, + Tags: make(map[string]string), + Values: make(map[string]interface{}), + } +} + +// StatisticTags is a map that can be merged with others without causing +// mutations to either map. +type StatisticTags map[string]string + +// Merge creates a new map containing the merged contents of tags and t. +// If both tags and the receiver map contain the same key, the value in tags +// is used in the resulting map. +// +// Merge always returns a usable map. +func (t StatisticTags) Merge(tags map[string]string) map[string]string { + // Add everything in tags to the result. + out := make(map[string]string, len(tags)) + for k, v := range tags { + out[k] = v + } + + // Only add values from t that don't appear in tags. + for k, v := range t { + if _, ok := tags[k]; !ok { + out[k] = v + } + } + return out +} diff --git a/vendor/github.com/influxdata/influxdb/models/time.go b/vendor/github.com/influxdata/influxdb/models/time.go new file mode 100644 index 0000000..e98f2cb --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/models/time.go @@ -0,0 +1,74 @@ +package models + +// Helper time methods since parsing time can easily overflow and we only support a +// specific time range. + +import ( + "fmt" + "math" + "time" +) + +const ( + // MinNanoTime is the minumum time that can be represented. + // + // 1677-09-21 00:12:43.145224194 +0000 UTC + // + // The two lowest minimum integers are used as sentinel values. The + // minimum value needs to be used as a value lower than any other value for + // comparisons and another separate value is needed to act as a sentinel + // default value that is unusable by the user, but usable internally. + // Because these two values need to be used for a special purpose, we do + // not allow users to write points at these two times. + MinNanoTime = int64(math.MinInt64) + 2 + + // MaxNanoTime is the maximum time that can be represented. + // + // 2262-04-11 23:47:16.854775806 +0000 UTC + // + // The highest time represented by a nanosecond needs to be used for an + // exclusive range in the shard group, so the maximum time needs to be one + // less than the possible maximum number of nanoseconds representable by an + // int64 so that we don't lose a point at that one time. + MaxNanoTime = int64(math.MaxInt64) - 1 +) + +var ( + minNanoTime = time.Unix(0, MinNanoTime).UTC() + maxNanoTime = time.Unix(0, MaxNanoTime).UTC() + + // ErrTimeOutOfRange gets returned when time is out of the representable range using int64 nanoseconds since the epoch. + ErrTimeOutOfRange = fmt.Errorf("time outside range %d - %d", MinNanoTime, MaxNanoTime) +) + +// SafeCalcTime safely calculates the time given. Will return error if the time is outside the +// supported range. +func SafeCalcTime(timestamp int64, precision string) (time.Time, error) { + mult := GetPrecisionMultiplier(precision) + if t, ok := safeSignedMult(timestamp, mult); ok { + tme := time.Unix(0, t).UTC() + return tme, CheckTime(tme) + } + + return time.Time{}, ErrTimeOutOfRange +} + +// CheckTime checks that a time is within the safe range. +func CheckTime(t time.Time) error { + if t.Before(minNanoTime) || t.After(maxNanoTime) { + return ErrTimeOutOfRange + } + return nil +} + +// Perform the multiplication and check to make sure it didn't overflow. +func safeSignedMult(a, b int64) (int64, bool) { + if a == 0 || b == 0 || a == 1 || b == 1 { + return a * b, true + } + if a == MinNanoTime || b == MaxNanoTime { + return 0, false + } + c := a * b + return c, c/b == a +} diff --git a/vendor/github.com/influxdata/influxdb/models/uint_support.go b/vendor/github.com/influxdata/influxdb/models/uint_support.go new file mode 100644 index 0000000..18d1ca0 --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/models/uint_support.go @@ -0,0 +1,7 @@ +// +build uint uint64 + +package models + +func init() { + EnableUintSupport() +} diff --git a/vendor/github.com/influxdata/influxdb/pkg/escape/bytes.go b/vendor/github.com/influxdata/influxdb/pkg/escape/bytes.go new file mode 100644 index 0000000..f3b31f4 --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/pkg/escape/bytes.go @@ -0,0 +1,115 @@ +// Package escape contains utilities for escaping parts of InfluxQL +// and InfluxDB line protocol. +package escape // import "github.com/influxdata/influxdb/pkg/escape" + +import ( + "bytes" + "strings" +) + +// Codes is a map of bytes to be escaped. +var Codes = map[byte][]byte{ + ',': []byte(`\,`), + '"': []byte(`\"`), + ' ': []byte(`\ `), + '=': []byte(`\=`), +} + +// Bytes escapes characters on the input slice, as defined by Codes. +func Bytes(in []byte) []byte { + for b, esc := range Codes { + in = bytes.Replace(in, []byte{b}, esc, -1) + } + return in +} + +const escapeChars = `," =` + +// IsEscaped returns whether b has any escaped characters, +// i.e. whether b seems to have been processed by Bytes. +func IsEscaped(b []byte) bool { + for len(b) > 0 { + i := bytes.IndexByte(b, '\\') + if i < 0 { + return false + } + + if i+1 < len(b) && strings.IndexByte(escapeChars, b[i+1]) >= 0 { + return true + } + b = b[i+1:] + } + return false +} + +// AppendUnescaped appends the unescaped version of src to dst +// and returns the resulting slice. +func AppendUnescaped(dst, src []byte) []byte { + var pos int + for len(src) > 0 { + next := bytes.IndexByte(src[pos:], '\\') + if next < 0 || pos+next+1 >= len(src) { + return append(dst, src...) + } + + if pos+next+1 < len(src) && strings.IndexByte(escapeChars, src[pos+next+1]) >= 0 { + if pos+next > 0 { + dst = append(dst, src[:pos+next]...) + } + src = src[pos+next+1:] + pos = 0 + } else { + pos += next + 1 + } + } + + return dst +} + +// Unescape returns a new slice containing the unescaped version of in. +func Unescape(in []byte) []byte { + if len(in) == 0 { + return nil + } + + if bytes.IndexByte(in, '\\') == -1 { + return in + } + + i := 0 + inLen := len(in) + + // The output size will be no more than inLen. Preallocating the + // capacity of the output is faster and uses less memory than + // letting append() do its own (over)allocation. + out := make([]byte, 0, inLen) + + for { + if i >= inLen { + break + } + if in[i] == '\\' && i+1 < inLen { + switch in[i+1] { + case ',': + out = append(out, ',') + i += 2 + continue + case '"': + out = append(out, '"') + i += 2 + continue + case ' ': + out = append(out, ' ') + i += 2 + continue + case '=': + out = append(out, '=') + i += 2 + continue + } + } + out = append(out, in[i]) + i += 1 + } + return out +} diff --git a/vendor/github.com/influxdata/influxdb/pkg/escape/strings.go b/vendor/github.com/influxdata/influxdb/pkg/escape/strings.go new file mode 100644 index 0000000..db98033 --- /dev/null +++ b/vendor/github.com/influxdata/influxdb/pkg/escape/strings.go @@ -0,0 +1,21 @@ +package escape + +import "strings" + +var ( + escaper = strings.NewReplacer(`,`, `\,`, `"`, `\"`, ` `, `\ `, `=`, `\=`) + unescaper = strings.NewReplacer(`\,`, `,`, `\"`, `"`, `\ `, ` `, `\=`, `=`) +) + +// UnescapeString returns unescaped version of in. +func UnescapeString(in string) string { + if strings.IndexByte(in, '\\') == -1 { + return in + } + return unescaper.Replace(in) +} + +// String returns the escaped version of in. +func String(in string) string { + return escaper.Replace(in) +} diff --git a/vendor/github.com/jcmturner/gofork/LICENSE b/vendor/github.com/jcmturner/gofork/LICENSE new file mode 100644 index 0000000..6a66aea --- /dev/null +++ b/vendor/github.com/jcmturner/gofork/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/jcmturner/gofork/encoding/asn1/README.md b/vendor/github.com/jcmturner/gofork/encoding/asn1/README.md new file mode 100644 index 0000000..66a2a8c --- /dev/null +++ b/vendor/github.com/jcmturner/gofork/encoding/asn1/README.md @@ -0,0 +1,5 @@ +This is a temporary repository that will be removed when the issues below are fixed in the core golang code. + +## Issues +* [encoding/asn1: cannot marshal into a GeneralString](https://github.com/golang/go/issues/18832) +* [encoding/asn1: cannot marshal into slice of strings and pass stringtype parameter tags to members](https://github.com/golang/go/issues/18834) \ No newline at end of file diff --git a/vendor/github.com/jcmturner/gofork/encoding/asn1/asn1.go b/vendor/github.com/jcmturner/gofork/encoding/asn1/asn1.go new file mode 100644 index 0000000..f1bb767 --- /dev/null +++ b/vendor/github.com/jcmturner/gofork/encoding/asn1/asn1.go @@ -0,0 +1,1003 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package asn1 implements parsing of DER-encoded ASN.1 data structures, +// as defined in ITU-T Rec X.690. +// +// See also ``A Layman's Guide to a Subset of ASN.1, BER, and DER,'' +// http://luca.ntop.org/Teaching/Appunti/asn1.html. +package asn1 + +// ASN.1 is a syntax for specifying abstract objects and BER, DER, PER, XER etc +// are different encoding formats for those objects. Here, we'll be dealing +// with DER, the Distinguished Encoding Rules. DER is used in X.509 because +// it's fast to parse and, unlike BER, has a unique encoding for every object. +// When calculating hashes over objects, it's important that the resulting +// bytes be the same at both ends and DER removes this margin of error. +// +// ASN.1 is very complex and this package doesn't attempt to implement +// everything by any means. + +import ( + "errors" + "fmt" + "math/big" + "reflect" + "strconv" + "time" + "unicode/utf8" +) + +// A StructuralError suggests that the ASN.1 data is valid, but the Go type +// which is receiving it doesn't match. +type StructuralError struct { + Msg string +} + +func (e StructuralError) Error() string { return "asn1: structure error: " + e.Msg } + +// A SyntaxError suggests that the ASN.1 data is invalid. +type SyntaxError struct { + Msg string +} + +func (e SyntaxError) Error() string { return "asn1: syntax error: " + e.Msg } + +// We start by dealing with each of the primitive types in turn. + +// BOOLEAN + +func parseBool(bytes []byte) (ret bool, err error) { + if len(bytes) != 1 { + err = SyntaxError{"invalid boolean"} + return + } + + // DER demands that "If the encoding represents the boolean value TRUE, + // its single contents octet shall have all eight bits set to one." + // Thus only 0 and 255 are valid encoded values. + switch bytes[0] { + case 0: + ret = false + case 0xff: + ret = true + default: + err = SyntaxError{"invalid boolean"} + } + + return +} + +// INTEGER + +// checkInteger returns nil if the given bytes are a valid DER-encoded +// INTEGER and an error otherwise. +func checkInteger(bytes []byte) error { + if len(bytes) == 0 { + return StructuralError{"empty integer"} + } + if len(bytes) == 1 { + return nil + } + if (bytes[0] == 0 && bytes[1]&0x80 == 0) || (bytes[0] == 0xff && bytes[1]&0x80 == 0x80) { + return StructuralError{"integer not minimally-encoded"} + } + return nil +} + +// parseInt64 treats the given bytes as a big-endian, signed integer and +// returns the result. +func parseInt64(bytes []byte) (ret int64, err error) { + err = checkInteger(bytes) + if err != nil { + return + } + if len(bytes) > 8 { + // We'll overflow an int64 in this case. + err = StructuralError{"integer too large"} + return + } + for bytesRead := 0; bytesRead < len(bytes); bytesRead++ { + ret <<= 8 + ret |= int64(bytes[bytesRead]) + } + + // Shift up and down in order to sign extend the result. + ret <<= 64 - uint8(len(bytes))*8 + ret >>= 64 - uint8(len(bytes))*8 + return +} + +// parseInt treats the given bytes as a big-endian, signed integer and returns +// the result. +func parseInt32(bytes []byte) (int32, error) { + if err := checkInteger(bytes); err != nil { + return 0, err + } + ret64, err := parseInt64(bytes) + if err != nil { + return 0, err + } + if ret64 != int64(int32(ret64)) { + return 0, StructuralError{"integer too large"} + } + return int32(ret64), nil +} + +var bigOne = big.NewInt(1) + +// parseBigInt treats the given bytes as a big-endian, signed integer and returns +// the result. +func parseBigInt(bytes []byte) (*big.Int, error) { + if err := checkInteger(bytes); err != nil { + return nil, err + } + ret := new(big.Int) + if len(bytes) > 0 && bytes[0]&0x80 == 0x80 { + // This is a negative number. + notBytes := make([]byte, len(bytes)) + for i := range notBytes { + notBytes[i] = ^bytes[i] + } + ret.SetBytes(notBytes) + ret.Add(ret, bigOne) + ret.Neg(ret) + return ret, nil + } + ret.SetBytes(bytes) + return ret, nil +} + +// BIT STRING + +// BitString is the structure to use when you want an ASN.1 BIT STRING type. A +// bit string is padded up to the nearest byte in memory and the number of +// valid bits is recorded. Padding bits will be zero. +type BitString struct { + Bytes []byte // bits packed into bytes. + BitLength int // length in bits. +} + +// At returns the bit at the given index. If the index is out of range it +// returns false. +func (b BitString) At(i int) int { + if i < 0 || i >= b.BitLength { + return 0 + } + x := i / 8 + y := 7 - uint(i%8) + return int(b.Bytes[x]>>y) & 1 +} + +// RightAlign returns a slice where the padding bits are at the beginning. The +// slice may share memory with the BitString. +func (b BitString) RightAlign() []byte { + shift := uint(8 - (b.BitLength % 8)) + if shift == 8 || len(b.Bytes) == 0 { + return b.Bytes + } + + a := make([]byte, len(b.Bytes)) + a[0] = b.Bytes[0] >> shift + for i := 1; i < len(b.Bytes); i++ { + a[i] = b.Bytes[i-1] << (8 - shift) + a[i] |= b.Bytes[i] >> shift + } + + return a +} + +// parseBitString parses an ASN.1 bit string from the given byte slice and returns it. +func parseBitString(bytes []byte) (ret BitString, err error) { + if len(bytes) == 0 { + err = SyntaxError{"zero length BIT STRING"} + return + } + paddingBits := int(bytes[0]) + if paddingBits > 7 || + len(bytes) == 1 && paddingBits > 0 || + bytes[len(bytes)-1]&((1< 0 { + s += "." + } + s += strconv.Itoa(v) + } + + return s +} + +// parseObjectIdentifier parses an OBJECT IDENTIFIER from the given bytes and +// returns it. An object identifier is a sequence of variable length integers +// that are assigned in a hierarchy. +func parseObjectIdentifier(bytes []byte) (s []int, err error) { + if len(bytes) == 0 { + err = SyntaxError{"zero length OBJECT IDENTIFIER"} + return + } + + // In the worst case, we get two elements from the first byte (which is + // encoded differently) and then every varint is a single byte long. + s = make([]int, len(bytes)+1) + + // The first varint is 40*value1 + value2: + // According to this packing, value1 can take the values 0, 1 and 2 only. + // When value1 = 0 or value1 = 1, then value2 is <= 39. When value1 = 2, + // then there are no restrictions on value2. + v, offset, err := parseBase128Int(bytes, 0) + if err != nil { + return + } + if v < 80 { + s[0] = v / 40 + s[1] = v % 40 + } else { + s[0] = 2 + s[1] = v - 80 + } + + i := 2 + for ; offset < len(bytes); i++ { + v, offset, err = parseBase128Int(bytes, offset) + if err != nil { + return + } + s[i] = v + } + s = s[0:i] + return +} + +// ENUMERATED + +// An Enumerated is represented as a plain int. +type Enumerated int + +// FLAG + +// A Flag accepts any data and is set to true if present. +type Flag bool + +// parseBase128Int parses a base-128 encoded int from the given offset in the +// given byte slice. It returns the value and the new offset. +func parseBase128Int(bytes []byte, initOffset int) (ret, offset int, err error) { + offset = initOffset + for shifted := 0; offset < len(bytes); shifted++ { + if shifted == 4 { + err = StructuralError{"base 128 integer too large"} + return + } + ret <<= 7 + b := bytes[offset] + ret |= int(b & 0x7f) + offset++ + if b&0x80 == 0 { + return + } + } + err = SyntaxError{"truncated base 128 integer"} + return +} + +// UTCTime + +func parseUTCTime(bytes []byte) (ret time.Time, err error) { + s := string(bytes) + + formatStr := "0601021504Z0700" + ret, err = time.Parse(formatStr, s) + if err != nil { + formatStr = "060102150405Z0700" + ret, err = time.Parse(formatStr, s) + } + if err != nil { + return + } + + if serialized := ret.Format(formatStr); serialized != s { + err = fmt.Errorf("asn1: time did not serialize back to the original value and may be invalid: given %q, but serialized as %q", s, serialized) + return + } + + if ret.Year() >= 2050 { + // UTCTime only encodes times prior to 2050. See https://tools.ietf.org/html/rfc5280#section-4.1.2.5.1 + ret = ret.AddDate(-100, 0, 0) + } + + return +} + +// parseGeneralizedTime parses the GeneralizedTime from the given byte slice +// and returns the resulting time. +func parseGeneralizedTime(bytes []byte) (ret time.Time, err error) { + const formatStr = "20060102150405Z0700" + s := string(bytes) + + if ret, err = time.Parse(formatStr, s); err != nil { + return + } + + if serialized := ret.Format(formatStr); serialized != s { + err = fmt.Errorf("asn1: time did not serialize back to the original value and may be invalid: given %q, but serialized as %q", s, serialized) + } + + return +} + +// PrintableString + +// parsePrintableString parses a ASN.1 PrintableString from the given byte +// array and returns it. +func parsePrintableString(bytes []byte) (ret string, err error) { + for _, b := range bytes { + if !isPrintable(b) { + err = SyntaxError{"PrintableString contains invalid character"} + return + } + } + ret = string(bytes) + return +} + +// isPrintable reports whether the given b is in the ASN.1 PrintableString set. +func isPrintable(b byte) bool { + return 'a' <= b && b <= 'z' || + 'A' <= b && b <= 'Z' || + '0' <= b && b <= '9' || + '\'' <= b && b <= ')' || + '+' <= b && b <= '/' || + b == ' ' || + b == ':' || + b == '=' || + b == '?' || + // This is technically not allowed in a PrintableString. + // However, x509 certificates with wildcard strings don't + // always use the correct string type so we permit it. + b == '*' +} + +// IA5String + +// parseIA5String parses a ASN.1 IA5String (ASCII string) from the given +// byte slice and returns it. +func parseIA5String(bytes []byte) (ret string, err error) { + for _, b := range bytes { + if b >= utf8.RuneSelf { + err = SyntaxError{"IA5String contains invalid character"} + return + } + } + ret = string(bytes) + return +} + +// T61String + +// parseT61String parses a ASN.1 T61String (8-bit clean string) from the given +// byte slice and returns it. +func parseT61String(bytes []byte) (ret string, err error) { + return string(bytes), nil +} + +// UTF8String + +// parseUTF8String parses a ASN.1 UTF8String (raw UTF-8) from the given byte +// array and returns it. +func parseUTF8String(bytes []byte) (ret string, err error) { + if !utf8.Valid(bytes) { + return "", errors.New("asn1: invalid UTF-8 string") + } + return string(bytes), nil +} + +// A RawValue represents an undecoded ASN.1 object. +type RawValue struct { + Class, Tag int + IsCompound bool + Bytes []byte + FullBytes []byte // includes the tag and length +} + +// RawContent is used to signal that the undecoded, DER data needs to be +// preserved for a struct. To use it, the first field of the struct must have +// this type. It's an error for any of the other fields to have this type. +type RawContent []byte + +// Tagging + +// parseTagAndLength parses an ASN.1 tag and length pair from the given offset +// into a byte slice. It returns the parsed data and the new offset. SET and +// SET OF (tag 17) are mapped to SEQUENCE and SEQUENCE OF (tag 16) since we +// don't distinguish between ordered and unordered objects in this code. +func parseTagAndLength(bytes []byte, initOffset int) (ret tagAndLength, offset int, err error) { + offset = initOffset + // parseTagAndLength should not be called without at least a single + // byte to read. Thus this check is for robustness: + if offset >= len(bytes) { + err = errors.New("asn1: internal error in parseTagAndLength") + return + } + b := bytes[offset] + offset++ + ret.class = int(b >> 6) + ret.isCompound = b&0x20 == 0x20 + ret.tag = int(b & 0x1f) + + // If the bottom five bits are set, then the tag number is actually base 128 + // encoded afterwards + if ret.tag == 0x1f { + ret.tag, offset, err = parseBase128Int(bytes, offset) + if err != nil { + return + } + // Tags should be encoded in minimal form. + if ret.tag < 0x1f { + err = SyntaxError{"non-minimal tag"} + return + } + } + if offset >= len(bytes) { + err = SyntaxError{"truncated tag or length"} + return + } + b = bytes[offset] + offset++ + if b&0x80 == 0 { + // The length is encoded in the bottom 7 bits. + ret.length = int(b & 0x7f) + } else { + // Bottom 7 bits give the number of length bytes to follow. + numBytes := int(b & 0x7f) + if numBytes == 0 { + err = SyntaxError{"indefinite length found (not DER)"} + return + } + ret.length = 0 + for i := 0; i < numBytes; i++ { + if offset >= len(bytes) { + err = SyntaxError{"truncated tag or length"} + return + } + b = bytes[offset] + offset++ + if ret.length >= 1<<23 { + // We can't shift ret.length up without + // overflowing. + err = StructuralError{"length too large"} + return + } + ret.length <<= 8 + ret.length |= int(b) + if ret.length == 0 { + // DER requires that lengths be minimal. + err = StructuralError{"superfluous leading zeros in length"} + return + } + } + // Short lengths must be encoded in short form. + if ret.length < 0x80 { + err = StructuralError{"non-minimal length"} + return + } + } + + return +} + +// parseSequenceOf is used for SEQUENCE OF and SET OF values. It tries to parse +// a number of ASN.1 values from the given byte slice and returns them as a +// slice of Go values of the given type. +func parseSequenceOf(bytes []byte, sliceType reflect.Type, elemType reflect.Type) (ret reflect.Value, err error) { + expectedTag, compoundType, ok := getUniversalType(elemType) + if !ok { + err = StructuralError{"unknown Go type for slice"} + return + } + + // First we iterate over the input and count the number of elements, + // checking that the types are correct in each case. + numElements := 0 + for offset := 0; offset < len(bytes); { + var t tagAndLength + t, offset, err = parseTagAndLength(bytes, offset) + if err != nil { + return + } + switch t.tag { + case TagIA5String, TagGeneralString, TagT61String, TagUTF8String: + // We pretend that various other string types are + // PRINTABLE STRINGs so that a sequence of them can be + // parsed into a []string. + t.tag = TagPrintableString + case TagGeneralizedTime, TagUTCTime: + // Likewise, both time types are treated the same. + t.tag = TagUTCTime + } + + if t.class != ClassUniversal || t.isCompound != compoundType || t.tag != expectedTag { + err = StructuralError{"sequence tag mismatch"} + return + } + if invalidLength(offset, t.length, len(bytes)) { + err = SyntaxError{"truncated sequence"} + return + } + offset += t.length + numElements++ + } + ret = reflect.MakeSlice(sliceType, numElements, numElements) + params := fieldParameters{} + offset := 0 + for i := 0; i < numElements; i++ { + offset, err = parseField(ret.Index(i), bytes, offset, params) + if err != nil { + return + } + } + return +} + +var ( + bitStringType = reflect.TypeOf(BitString{}) + objectIdentifierType = reflect.TypeOf(ObjectIdentifier{}) + enumeratedType = reflect.TypeOf(Enumerated(0)) + flagType = reflect.TypeOf(Flag(false)) + timeType = reflect.TypeOf(time.Time{}) + rawValueType = reflect.TypeOf(RawValue{}) + rawContentsType = reflect.TypeOf(RawContent(nil)) + bigIntType = reflect.TypeOf(new(big.Int)) +) + +// invalidLength returns true iff offset + length > sliceLength, or if the +// addition would overflow. +func invalidLength(offset, length, sliceLength int) bool { + return offset+length < offset || offset+length > sliceLength +} + +// parseField is the main parsing function. Given a byte slice and an offset +// into the array, it will try to parse a suitable ASN.1 value out and store it +// in the given Value. +func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParameters) (offset int, err error) { + offset = initOffset + fieldType := v.Type() + + // If we have run out of data, it may be that there are optional elements at the end. + if offset == len(bytes) { + if !setDefaultValue(v, params) { + err = SyntaxError{"sequence truncated"} + } + return + } + + // Deal with raw values. + if fieldType == rawValueType { + var t tagAndLength + t, offset, err = parseTagAndLength(bytes, offset) + if err != nil { + return + } + if invalidLength(offset, t.length, len(bytes)) { + err = SyntaxError{"data truncated"} + return + } + result := RawValue{t.class, t.tag, t.isCompound, bytes[offset : offset+t.length], bytes[initOffset : offset+t.length]} + offset += t.length + v.Set(reflect.ValueOf(result)) + return + } + + // Deal with the ANY type. + if ifaceType := fieldType; ifaceType.Kind() == reflect.Interface && ifaceType.NumMethod() == 0 { + var t tagAndLength + t, offset, err = parseTagAndLength(bytes, offset) + if err != nil { + return + } + if invalidLength(offset, t.length, len(bytes)) { + err = SyntaxError{"data truncated"} + return + } + var result interface{} + if !t.isCompound && t.class == ClassUniversal { + innerBytes := bytes[offset : offset+t.length] + switch t.tag { + case TagPrintableString: + result, err = parsePrintableString(innerBytes) + case TagIA5String: + result, err = parseIA5String(innerBytes) + // jtasn1 addition of following case + case TagGeneralString: + result, err = parseIA5String(innerBytes) + case TagT61String: + result, err = parseT61String(innerBytes) + case TagUTF8String: + result, err = parseUTF8String(innerBytes) + case TagInteger: + result, err = parseInt64(innerBytes) + case TagBitString: + result, err = parseBitString(innerBytes) + case TagOID: + result, err = parseObjectIdentifier(innerBytes) + case TagUTCTime: + result, err = parseUTCTime(innerBytes) + case TagGeneralizedTime: + result, err = parseGeneralizedTime(innerBytes) + case TagOctetString: + result = innerBytes + default: + // If we don't know how to handle the type, we just leave Value as nil. + } + } + offset += t.length + if err != nil { + return + } + if result != nil { + v.Set(reflect.ValueOf(result)) + } + return + } + universalTag, compoundType, ok1 := getUniversalType(fieldType) + if !ok1 { + err = StructuralError{fmt.Sprintf("unknown Go type: %v", fieldType)} + return + } + + t, offset, err := parseTagAndLength(bytes, offset) + if err != nil { + return + } + if params.explicit { + expectedClass := ClassContextSpecific + if params.application { + expectedClass = ClassApplication + } + if offset == len(bytes) { + err = StructuralError{"explicit tag has no child"} + return + } + if t.class == expectedClass && t.tag == *params.tag && (t.length == 0 || t.isCompound) { + if t.length > 0 { + t, offset, err = parseTagAndLength(bytes, offset) + if err != nil { + return + } + } else { + if fieldType != flagType { + err = StructuralError{"zero length explicit tag was not an asn1.Flag"} + return + } + v.SetBool(true) + return + } + } else { + // The tags didn't match, it might be an optional element. + ok := setDefaultValue(v, params) + if ok { + offset = initOffset + } else { + err = StructuralError{"explicitly tagged member didn't match"} + } + return + } + } + + // Special case for strings: all the ASN.1 string types map to the Go + // type string. getUniversalType returns the tag for PrintableString + // when it sees a string, so if we see a different string type on the + // wire, we change the universal type to match. + if universalTag == TagPrintableString { + if t.class == ClassUniversal { + switch t.tag { + case TagIA5String, TagGeneralString, TagT61String, TagUTF8String: + universalTag = t.tag + } + } else if params.stringType != 0 { + universalTag = params.stringType + } + } + + // Special case for time: UTCTime and GeneralizedTime both map to the + // Go type time.Time. + if universalTag == TagUTCTime && t.tag == TagGeneralizedTime && t.class == ClassUniversal { + universalTag = TagGeneralizedTime + } + + if params.set { + universalTag = TagSet + } + + expectedClass := ClassUniversal + expectedTag := universalTag + + if !params.explicit && params.tag != nil { + expectedClass = ClassContextSpecific + expectedTag = *params.tag + } + + if !params.explicit && params.application && params.tag != nil { + expectedClass = ClassApplication + expectedTag = *params.tag + } + + // We have unwrapped any explicit tagging at this point. + if t.class != expectedClass || t.tag != expectedTag || t.isCompound != compoundType { + // Tags don't match. Again, it could be an optional element. + ok := setDefaultValue(v, params) + if ok { + offset = initOffset + } else { + err = StructuralError{fmt.Sprintf("tags don't match (%d vs %+v) %+v %s @%d", expectedTag, t, params, fieldType.Name(), offset)} + } + return + } + if invalidLength(offset, t.length, len(bytes)) { + err = SyntaxError{"data truncated"} + return + } + innerBytes := bytes[offset : offset+t.length] + offset += t.length + + // We deal with the structures defined in this package first. + switch fieldType { + case objectIdentifierType: + newSlice, err1 := parseObjectIdentifier(innerBytes) + v.Set(reflect.MakeSlice(v.Type(), len(newSlice), len(newSlice))) + if err1 == nil { + reflect.Copy(v, reflect.ValueOf(newSlice)) + } + err = err1 + return + case bitStringType: + bs, err1 := parseBitString(innerBytes) + if err1 == nil { + v.Set(reflect.ValueOf(bs)) + } + err = err1 + return + case timeType: + var time time.Time + var err1 error + if universalTag == TagUTCTime { + time, err1 = parseUTCTime(innerBytes) + } else { + time, err1 = parseGeneralizedTime(innerBytes) + } + if err1 == nil { + v.Set(reflect.ValueOf(time)) + } + err = err1 + return + case enumeratedType: + parsedInt, err1 := parseInt32(innerBytes) + if err1 == nil { + v.SetInt(int64(parsedInt)) + } + err = err1 + return + case flagType: + v.SetBool(true) + return + case bigIntType: + parsedInt, err1 := parseBigInt(innerBytes) + if err1 == nil { + v.Set(reflect.ValueOf(parsedInt)) + } + err = err1 + return + } + switch val := v; val.Kind() { + case reflect.Bool: + parsedBool, err1 := parseBool(innerBytes) + if err1 == nil { + val.SetBool(parsedBool) + } + err = err1 + return + case reflect.Int, reflect.Int32, reflect.Int64: + if val.Type().Size() == 4 { + parsedInt, err1 := parseInt32(innerBytes) + if err1 == nil { + val.SetInt(int64(parsedInt)) + } + err = err1 + } else { + parsedInt, err1 := parseInt64(innerBytes) + if err1 == nil { + val.SetInt(parsedInt) + } + err = err1 + } + return + // TODO(dfc) Add support for the remaining integer types + case reflect.Struct: + structType := fieldType + + if structType.NumField() > 0 && + structType.Field(0).Type == rawContentsType { + bytes := bytes[initOffset:offset] + val.Field(0).Set(reflect.ValueOf(RawContent(bytes))) + } + + innerOffset := 0 + for i := 0; i < structType.NumField(); i++ { + field := structType.Field(i) + if i == 0 && field.Type == rawContentsType { + continue + } + innerOffset, err = parseField(val.Field(i), innerBytes, innerOffset, parseFieldParameters(field.Tag.Get("asn1"))) + if err != nil { + return + } + } + // We allow extra bytes at the end of the SEQUENCE because + // adding elements to the end has been used in X.509 as the + // version numbers have increased. + return + case reflect.Slice: + sliceType := fieldType + if sliceType.Elem().Kind() == reflect.Uint8 { + val.Set(reflect.MakeSlice(sliceType, len(innerBytes), len(innerBytes))) + reflect.Copy(val, reflect.ValueOf(innerBytes)) + return + } + newSlice, err1 := parseSequenceOf(innerBytes, sliceType, sliceType.Elem()) + if err1 == nil { + val.Set(newSlice) + } + err = err1 + return + case reflect.String: + var v string + switch universalTag { + case TagPrintableString: + v, err = parsePrintableString(innerBytes) + case TagIA5String: + v, err = parseIA5String(innerBytes) + case TagT61String: + v, err = parseT61String(innerBytes) + case TagUTF8String: + v, err = parseUTF8String(innerBytes) + case TagGeneralString: + // GeneralString is specified in ISO-2022/ECMA-35, + // A brief review suggests that it includes structures + // that allow the encoding to change midstring and + // such. We give up and pass it as an 8-bit string. + v, err = parseT61String(innerBytes) + default: + err = SyntaxError{fmt.Sprintf("internal error: unknown string type %d", universalTag)} + } + if err == nil { + val.SetString(v) + } + return + } + err = StructuralError{"unsupported: " + v.Type().String()} + return +} + +// canHaveDefaultValue reports whether k is a Kind that we will set a default +// value for. (A signed integer, essentially.) +func canHaveDefaultValue(k reflect.Kind) bool { + switch k { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return true + } + + return false +} + +// setDefaultValue is used to install a default value, from a tag string, into +// a Value. It is successful if the field was optional, even if a default value +// wasn't provided or it failed to install it into the Value. +func setDefaultValue(v reflect.Value, params fieldParameters) (ok bool) { + if !params.optional { + return + } + ok = true + if params.defaultValue == nil { + return + } + if canHaveDefaultValue(v.Kind()) { + v.SetInt(*params.defaultValue) + } + return +} + +// Unmarshal parses the DER-encoded ASN.1 data structure b +// and uses the reflect package to fill in an arbitrary value pointed at by val. +// Because Unmarshal uses the reflect package, the structs +// being written to must use upper case field names. +// +// An ASN.1 INTEGER can be written to an int, int32, int64, +// or *big.Int (from the math/big package). +// If the encoded value does not fit in the Go type, +// Unmarshal returns a parse error. +// +// An ASN.1 BIT STRING can be written to a BitString. +// +// An ASN.1 OCTET STRING can be written to a []byte. +// +// An ASN.1 OBJECT IDENTIFIER can be written to an +// ObjectIdentifier. +// +// An ASN.1 ENUMERATED can be written to an Enumerated. +// +// An ASN.1 UTCTIME or GENERALIZEDTIME can be written to a time.Time. +// +// An ASN.1 PrintableString or IA5String can be written to a string. +// +// Any of the above ASN.1 values can be written to an interface{}. +// The value stored in the interface has the corresponding Go type. +// For integers, that type is int64. +// +// An ASN.1 SEQUENCE OF x or SET OF x can be written +// to a slice if an x can be written to the slice's element type. +// +// An ASN.1 SEQUENCE or SET can be written to a struct +// if each of the elements in the sequence can be +// written to the corresponding element in the struct. +// +// The following tags on struct fields have special meaning to Unmarshal: +// +// application specifies that a APPLICATION tag is used +// default:x sets the default value for optional integer fields +// explicit specifies that an additional, explicit tag wraps the implicit one +// optional marks the field as ASN.1 OPTIONAL +// set causes a SET, rather than a SEQUENCE type to be expected +// tag:x specifies the ASN.1 tag number; implies ASN.1 CONTEXT SPECIFIC +// +// If the type of the first field of a structure is RawContent then the raw +// ASN1 contents of the struct will be stored in it. +// +// If the type name of a slice element ends with "SET" then it's treated as if +// the "set" tag was set on it. This can be used with nested slices where a +// struct tag cannot be given. +// +// Other ASN.1 types are not supported; if it encounters them, +// Unmarshal returns a parse error. +func Unmarshal(b []byte, val interface{}) (rest []byte, err error) { + return UnmarshalWithParams(b, val, "") +} + +// UnmarshalWithParams allows field parameters to be specified for the +// top-level element. The form of the params is the same as the field tags. +func UnmarshalWithParams(b []byte, val interface{}, params string) (rest []byte, err error) { + v := reflect.ValueOf(val).Elem() + offset, err := parseField(v, b, 0, parseFieldParameters(params)) + if err != nil { + return nil, err + } + return b[offset:], nil +} diff --git a/vendor/github.com/jcmturner/gofork/encoding/asn1/common.go b/vendor/github.com/jcmturner/gofork/encoding/asn1/common.go new file mode 100644 index 0000000..7a9da49 --- /dev/null +++ b/vendor/github.com/jcmturner/gofork/encoding/asn1/common.go @@ -0,0 +1,173 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package asn1 + +import ( + "reflect" + "strconv" + "strings" +) + +// ASN.1 objects have metadata preceding them: +// the tag: the type of the object +// a flag denoting if this object is compound or not +// the class type: the namespace of the tag +// the length of the object, in bytes + +// Here are some standard tags and classes + +// ASN.1 tags represent the type of the following object. +const ( + TagBoolean = 1 + TagInteger = 2 + TagBitString = 3 + TagOctetString = 4 + TagOID = 6 + TagEnum = 10 + TagUTF8String = 12 + TagSequence = 16 + TagSet = 17 + TagPrintableString = 19 + TagT61String = 20 + TagIA5String = 22 + TagUTCTime = 23 + TagGeneralizedTime = 24 + TagGeneralString = 27 +) + +// ASN.1 class types represent the namespace of the tag. +const ( + ClassUniversal = 0 + ClassApplication = 1 + ClassContextSpecific = 2 + ClassPrivate = 3 +) + +type tagAndLength struct { + class, tag, length int + isCompound bool +} + +// ASN.1 has IMPLICIT and EXPLICIT tags, which can be translated as "instead +// of" and "in addition to". When not specified, every primitive type has a +// default tag in the UNIVERSAL class. +// +// For example: a BIT STRING is tagged [UNIVERSAL 3] by default (although ASN.1 +// doesn't actually have a UNIVERSAL keyword). However, by saying [IMPLICIT +// CONTEXT-SPECIFIC 42], that means that the tag is replaced by another. +// +// On the other hand, if it said [EXPLICIT CONTEXT-SPECIFIC 10], then an +// /additional/ tag would wrap the default tag. This explicit tag will have the +// compound flag set. +// +// (This is used in order to remove ambiguity with optional elements.) +// +// You can layer EXPLICIT and IMPLICIT tags to an arbitrary depth, however we +// don't support that here. We support a single layer of EXPLICIT or IMPLICIT +// tagging with tag strings on the fields of a structure. + +// fieldParameters is the parsed representation of tag string from a structure field. +type fieldParameters struct { + optional bool // true iff the field is OPTIONAL + explicit bool // true iff an EXPLICIT tag is in use. + application bool // true iff an APPLICATION tag is in use. + defaultValue *int64 // a default value for INTEGER typed fields (maybe nil). + tag *int // the EXPLICIT or IMPLICIT tag (maybe nil). + stringType int // the string tag to use when marshaling. + timeType int // the time tag to use when marshaling. + set bool // true iff this should be encoded as a SET + omitEmpty bool // true iff this should be omitted if empty when marshaling. + + // Invariants: + // if explicit is set, tag is non-nil. +} + +// Given a tag string with the format specified in the package comment, +// parseFieldParameters will parse it into a fieldParameters structure, +// ignoring unknown parts of the string. +func parseFieldParameters(str string) (ret fieldParameters) { + for _, part := range strings.Split(str, ",") { + switch { + case part == "optional": + ret.optional = true + case part == "explicit": + ret.explicit = true + if ret.tag == nil { + ret.tag = new(int) + } + case part == "generalized": + ret.timeType = TagGeneralizedTime + case part == "utc": + ret.timeType = TagUTCTime + case part == "ia5": + ret.stringType = TagIA5String + // jtasn1 case below added + case part == "generalstring": + ret.stringType = TagGeneralString + case part == "printable": + ret.stringType = TagPrintableString + case part == "utf8": + ret.stringType = TagUTF8String + case strings.HasPrefix(part, "default:"): + i, err := strconv.ParseInt(part[8:], 10, 64) + if err == nil { + ret.defaultValue = new(int64) + *ret.defaultValue = i + } + case strings.HasPrefix(part, "tag:"): + i, err := strconv.Atoi(part[4:]) + if err == nil { + ret.tag = new(int) + *ret.tag = i + } + case part == "set": + ret.set = true + case part == "application": + ret.application = true + if ret.tag == nil { + ret.tag = new(int) + } + case part == "omitempty": + ret.omitEmpty = true + } + } + return +} + +// Given a reflected Go type, getUniversalType returns the default tag number +// and expected compound flag. +func getUniversalType(t reflect.Type) (tagNumber int, isCompound, ok bool) { + switch t { + case objectIdentifierType: + return TagOID, false, true + case bitStringType: + return TagBitString, false, true + case timeType: + return TagUTCTime, false, true + case enumeratedType: + return TagEnum, false, true + case bigIntType: + return TagInteger, false, true + } + switch t.Kind() { + case reflect.Bool: + return TagBoolean, false, true + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return TagInteger, false, true + case reflect.Struct: + return TagSequence, true, true + case reflect.Slice: + if t.Elem().Kind() == reflect.Uint8 { + return TagOctetString, false, true + } + if strings.HasSuffix(t.Name(), "SET") { + return TagSet, true, true + } + return TagSequence, true, true + case reflect.String: + return TagPrintableString, false, true + } + return 0, false, false +} diff --git a/vendor/github.com/jcmturner/gofork/encoding/asn1/marshal.go b/vendor/github.com/jcmturner/gofork/encoding/asn1/marshal.go new file mode 100644 index 0000000..f52eee9 --- /dev/null +++ b/vendor/github.com/jcmturner/gofork/encoding/asn1/marshal.go @@ -0,0 +1,659 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package asn1 + +import ( + "bytes" + "errors" + "fmt" + "io" + "math/big" + "reflect" + "time" + "unicode/utf8" +) + +// A forkableWriter is an in-memory buffer that can be +// 'forked' to create new forkableWriters that bracket the +// original. After +// pre, post := w.fork() +// the overall sequence of bytes represented is logically w+pre+post. +type forkableWriter struct { + *bytes.Buffer + pre, post *forkableWriter +} + +func newForkableWriter() *forkableWriter { + return &forkableWriter{new(bytes.Buffer), nil, nil} +} + +func (f *forkableWriter) fork() (pre, post *forkableWriter) { + if f.pre != nil || f.post != nil { + panic("have already forked") + } + f.pre = newForkableWriter() + f.post = newForkableWriter() + return f.pre, f.post +} + +func (f *forkableWriter) Len() (l int) { + l += f.Buffer.Len() + if f.pre != nil { + l += f.pre.Len() + } + if f.post != nil { + l += f.post.Len() + } + return +} + +func (f *forkableWriter) writeTo(out io.Writer) (n int, err error) { + n, err = out.Write(f.Bytes()) + if err != nil { + return + } + + var nn int + + if f.pre != nil { + nn, err = f.pre.writeTo(out) + n += nn + if err != nil { + return + } + } + + if f.post != nil { + nn, err = f.post.writeTo(out) + n += nn + } + return +} + +func marshalBase128Int(out *forkableWriter, n int64) (err error) { + if n == 0 { + err = out.WriteByte(0) + return + } + + l := 0 + for i := n; i > 0; i >>= 7 { + l++ + } + + for i := l - 1; i >= 0; i-- { + o := byte(n >> uint(i*7)) + o &= 0x7f + if i != 0 { + o |= 0x80 + } + err = out.WriteByte(o) + if err != nil { + return + } + } + + return nil +} + +func marshalInt64(out *forkableWriter, i int64) (err error) { + n := int64Length(i) + + for ; n > 0; n-- { + err = out.WriteByte(byte(i >> uint((n-1)*8))) + if err != nil { + return + } + } + + return nil +} + +func int64Length(i int64) (numBytes int) { + numBytes = 1 + + for i > 127 { + numBytes++ + i >>= 8 + } + + for i < -128 { + numBytes++ + i >>= 8 + } + + return +} + +func marshalBigInt(out *forkableWriter, n *big.Int) (err error) { + if n.Sign() < 0 { + // A negative number has to be converted to two's-complement + // form. So we'll subtract 1 and invert. If the + // most-significant-bit isn't set then we'll need to pad the + // beginning with 0xff in order to keep the number negative. + nMinus1 := new(big.Int).Neg(n) + nMinus1.Sub(nMinus1, bigOne) + bytes := nMinus1.Bytes() + for i := range bytes { + bytes[i] ^= 0xff + } + if len(bytes) == 0 || bytes[0]&0x80 == 0 { + err = out.WriteByte(0xff) + if err != nil { + return + } + } + _, err = out.Write(bytes) + } else if n.Sign() == 0 { + // Zero is written as a single 0 zero rather than no bytes. + err = out.WriteByte(0x00) + } else { + bytes := n.Bytes() + if len(bytes) > 0 && bytes[0]&0x80 != 0 { + // We'll have to pad this with 0x00 in order to stop it + // looking like a negative number. + err = out.WriteByte(0) + if err != nil { + return + } + } + _, err = out.Write(bytes) + } + return +} + +func marshalLength(out *forkableWriter, i int) (err error) { + n := lengthLength(i) + + for ; n > 0; n-- { + err = out.WriteByte(byte(i >> uint((n-1)*8))) + if err != nil { + return + } + } + + return nil +} + +func lengthLength(i int) (numBytes int) { + numBytes = 1 + for i > 255 { + numBytes++ + i >>= 8 + } + return +} + +func marshalTagAndLength(out *forkableWriter, t tagAndLength) (err error) { + b := uint8(t.class) << 6 + if t.isCompound { + b |= 0x20 + } + if t.tag >= 31 { + b |= 0x1f + err = out.WriteByte(b) + if err != nil { + return + } + err = marshalBase128Int(out, int64(t.tag)) + if err != nil { + return + } + } else { + b |= uint8(t.tag) + err = out.WriteByte(b) + if err != nil { + return + } + } + + if t.length >= 128 { + l := lengthLength(t.length) + err = out.WriteByte(0x80 | byte(l)) + if err != nil { + return + } + err = marshalLength(out, t.length) + if err != nil { + return + } + } else { + err = out.WriteByte(byte(t.length)) + if err != nil { + return + } + } + + return nil +} + +func marshalBitString(out *forkableWriter, b BitString) (err error) { + paddingBits := byte((8 - b.BitLength%8) % 8) + err = out.WriteByte(paddingBits) + if err != nil { + return + } + _, err = out.Write(b.Bytes) + return +} + +func marshalObjectIdentifier(out *forkableWriter, oid []int) (err error) { + if len(oid) < 2 || oid[0] > 2 || (oid[0] < 2 && oid[1] >= 40) { + return StructuralError{"invalid object identifier"} + } + + err = marshalBase128Int(out, int64(oid[0]*40+oid[1])) + if err != nil { + return + } + for i := 2; i < len(oid); i++ { + err = marshalBase128Int(out, int64(oid[i])) + if err != nil { + return + } + } + + return +} + +func marshalPrintableString(out *forkableWriter, s string) (err error) { + b := []byte(s) + for _, c := range b { + if !isPrintable(c) { + return StructuralError{"PrintableString contains invalid character"} + } + } + + _, err = out.Write(b) + return +} + +func marshalIA5String(out *forkableWriter, s string) (err error) { + b := []byte(s) + for _, c := range b { + if c > 127 { + return StructuralError{"IA5String contains invalid character"} + } + } + + _, err = out.Write(b) + return +} + +func marshalUTF8String(out *forkableWriter, s string) (err error) { + _, err = out.Write([]byte(s)) + return +} + +func marshalTwoDigits(out *forkableWriter, v int) (err error) { + err = out.WriteByte(byte('0' + (v/10)%10)) + if err != nil { + return + } + return out.WriteByte(byte('0' + v%10)) +} + +func marshalFourDigits(out *forkableWriter, v int) (err error) { + var bytes [4]byte + for i := range bytes { + bytes[3-i] = '0' + byte(v%10) + v /= 10 + } + _, err = out.Write(bytes[:]) + return +} + +func outsideUTCRange(t time.Time) bool { + year := t.Year() + return year < 1950 || year >= 2050 +} + +func marshalUTCTime(out *forkableWriter, t time.Time) (err error) { + year := t.Year() + + switch { + case 1950 <= year && year < 2000: + err = marshalTwoDigits(out, year-1900) + case 2000 <= year && year < 2050: + err = marshalTwoDigits(out, year-2000) + default: + return StructuralError{"cannot represent time as UTCTime"} + } + if err != nil { + return + } + + return marshalTimeCommon(out, t) +} + +func marshalGeneralizedTime(out *forkableWriter, t time.Time) (err error) { + year := t.Year() + if year < 0 || year > 9999 { + return StructuralError{"cannot represent time as GeneralizedTime"} + } + if err = marshalFourDigits(out, year); err != nil { + return + } + + return marshalTimeCommon(out, t) +} + +func marshalTimeCommon(out *forkableWriter, t time.Time) (err error) { + _, month, day := t.Date() + + err = marshalTwoDigits(out, int(month)) + if err != nil { + return + } + + err = marshalTwoDigits(out, day) + if err != nil { + return + } + + hour, min, sec := t.Clock() + + err = marshalTwoDigits(out, hour) + if err != nil { + return + } + + err = marshalTwoDigits(out, min) + if err != nil { + return + } + + err = marshalTwoDigits(out, sec) + if err != nil { + return + } + + _, offset := t.Zone() + + switch { + case offset/60 == 0: + err = out.WriteByte('Z') + return + case offset > 0: + err = out.WriteByte('+') + case offset < 0: + err = out.WriteByte('-') + } + + if err != nil { + return + } + + offsetMinutes := offset / 60 + if offsetMinutes < 0 { + offsetMinutes = -offsetMinutes + } + + err = marshalTwoDigits(out, offsetMinutes/60) + if err != nil { + return + } + + err = marshalTwoDigits(out, offsetMinutes%60) + return +} + +func stripTagAndLength(in []byte) []byte { + _, offset, err := parseTagAndLength(in, 0) + if err != nil { + return in + } + return in[offset:] +} + +func marshalBody(out *forkableWriter, value reflect.Value, params fieldParameters) (err error) { + switch value.Type() { + case flagType: + return nil + case timeType: + t := value.Interface().(time.Time) + if params.timeType == TagGeneralizedTime || outsideUTCRange(t) { + return marshalGeneralizedTime(out, t) + } else { + return marshalUTCTime(out, t) + } + case bitStringType: + return marshalBitString(out, value.Interface().(BitString)) + case objectIdentifierType: + return marshalObjectIdentifier(out, value.Interface().(ObjectIdentifier)) + case bigIntType: + return marshalBigInt(out, value.Interface().(*big.Int)) + } + + switch v := value; v.Kind() { + case reflect.Bool: + if v.Bool() { + return out.WriteByte(255) + } else { + return out.WriteByte(0) + } + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return marshalInt64(out, v.Int()) + case reflect.Struct: + t := v.Type() + + startingField := 0 + + // If the first element of the structure is a non-empty + // RawContents, then we don't bother serializing the rest. + if t.NumField() > 0 && t.Field(0).Type == rawContentsType { + s := v.Field(0) + if s.Len() > 0 { + bytes := make([]byte, s.Len()) + for i := 0; i < s.Len(); i++ { + bytes[i] = uint8(s.Index(i).Uint()) + } + /* The RawContents will contain the tag and + * length fields but we'll also be writing + * those ourselves, so we strip them out of + * bytes */ + _, err = out.Write(stripTagAndLength(bytes)) + return + } else { + startingField = 1 + } + } + + for i := startingField; i < t.NumField(); i++ { + var pre *forkableWriter + pre, out = out.fork() + err = marshalField(pre, v.Field(i), parseFieldParameters(t.Field(i).Tag.Get("asn1"))) + if err != nil { + return + } + } + return + case reflect.Slice: + sliceType := v.Type() + if sliceType.Elem().Kind() == reflect.Uint8 { + bytes := make([]byte, v.Len()) + for i := 0; i < v.Len(); i++ { + bytes[i] = uint8(v.Index(i).Uint()) + } + _, err = out.Write(bytes) + return + } + + // jtasn1 Pass on the tags to the members but need to unset explicit switch and implicit value + //var fp fieldParameters + params.explicit = false + params.tag = nil + for i := 0; i < v.Len(); i++ { + var pre *forkableWriter + pre, out = out.fork() + err = marshalField(pre, v.Index(i), params) + if err != nil { + return + } + } + return + case reflect.String: + switch params.stringType { + case TagIA5String: + return marshalIA5String(out, v.String()) + case TagPrintableString: + return marshalPrintableString(out, v.String()) + default: + return marshalUTF8String(out, v.String()) + } + } + + return StructuralError{"unknown Go type"} +} + +func marshalField(out *forkableWriter, v reflect.Value, params fieldParameters) (err error) { + if !v.IsValid() { + return fmt.Errorf("asn1: cannot marshal nil value") + } + // If the field is an interface{} then recurse into it. + if v.Kind() == reflect.Interface && v.Type().NumMethod() == 0 { + return marshalField(out, v.Elem(), params) + } + + if v.Kind() == reflect.Slice && v.Len() == 0 && params.omitEmpty { + return + } + + if params.optional && params.defaultValue != nil && canHaveDefaultValue(v.Kind()) { + defaultValue := reflect.New(v.Type()).Elem() + defaultValue.SetInt(*params.defaultValue) + + if reflect.DeepEqual(v.Interface(), defaultValue.Interface()) { + return + } + } + + // If no default value is given then the zero value for the type is + // assumed to be the default value. This isn't obviously the correct + // behaviour, but it's what Go has traditionally done. + if params.optional && params.defaultValue == nil { + if reflect.DeepEqual(v.Interface(), reflect.Zero(v.Type()).Interface()) { + return + } + } + + if v.Type() == rawValueType { + rv := v.Interface().(RawValue) + if len(rv.FullBytes) != 0 { + _, err = out.Write(rv.FullBytes) + } else { + err = marshalTagAndLength(out, tagAndLength{rv.Class, rv.Tag, len(rv.Bytes), rv.IsCompound}) + if err != nil { + return + } + _, err = out.Write(rv.Bytes) + } + return + } + + tag, isCompound, ok := getUniversalType(v.Type()) + if !ok { + err = StructuralError{fmt.Sprintf("unknown Go type: %v", v.Type())} + return + } + class := ClassUniversal + + if params.timeType != 0 && tag != TagUTCTime { + return StructuralError{"explicit time type given to non-time member"} + } + + // jtasn1 updated to allow slices of strings + if params.stringType != 0 && !(tag == TagPrintableString || (v.Kind() == reflect.Slice && tag == 16 && v.Type().Elem().Kind() == reflect.String)) { + return StructuralError{"explicit string type given to non-string member"} + } + + switch tag { + case TagPrintableString: + if params.stringType == 0 { + // This is a string without an explicit string type. We'll use + // a PrintableString if the character set in the string is + // sufficiently limited, otherwise we'll use a UTF8String. + for _, r := range v.String() { + if r >= utf8.RuneSelf || !isPrintable(byte(r)) { + if !utf8.ValidString(v.String()) { + return errors.New("asn1: string not valid UTF-8") + } + tag = TagUTF8String + break + } + } + } else { + tag = params.stringType + } + case TagUTCTime: + if params.timeType == TagGeneralizedTime || outsideUTCRange(v.Interface().(time.Time)) { + tag = TagGeneralizedTime + } + } + + if params.set { + if tag != TagSequence { + return StructuralError{"non sequence tagged as set"} + } + tag = TagSet + } + + tags, body := out.fork() + + err = marshalBody(body, v, params) + if err != nil { + return + } + + bodyLen := body.Len() + + var explicitTag *forkableWriter + if params.explicit { + explicitTag, tags = tags.fork() + } + + if !params.explicit && params.tag != nil { + // implicit tag. + tag = *params.tag + class = ClassContextSpecific + } + + err = marshalTagAndLength(tags, tagAndLength{class, tag, bodyLen, isCompound}) + if err != nil { + return + } + + if params.explicit { + err = marshalTagAndLength(explicitTag, tagAndLength{ + class: ClassContextSpecific, + tag: *params.tag, + length: bodyLen + tags.Len(), + isCompound: true, + }) + } + + return err +} + +// Marshal returns the ASN.1 encoding of val. +// +// In addition to the struct tags recognised by Unmarshal, the following can be +// used: +// +// ia5: causes strings to be marshaled as ASN.1, IA5 strings +// omitempty: causes empty slices to be skipped +// printable: causes strings to be marshaled as ASN.1, PrintableString strings. +// utf8: causes strings to be marshaled as ASN.1, UTF8 strings +func Marshal(val interface{}) ([]byte, error) { + var out bytes.Buffer + v := reflect.ValueOf(val) + f := newForkableWriter() + err := marshalField(f, v, fieldParameters{}) + if err != nil { + return nil, err + } + _, err = f.writeTo(&out) + return out.Bytes(), err +} diff --git a/vendor/github.com/jcmturner/gofork/x/crypto/pbkdf2/pbkdf2.go b/vendor/github.com/jcmturner/gofork/x/crypto/pbkdf2/pbkdf2.go new file mode 100644 index 0000000..75d4187 --- /dev/null +++ b/vendor/github.com/jcmturner/gofork/x/crypto/pbkdf2/pbkdf2.go @@ -0,0 +1,98 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC +2898 / PKCS #5 v2.0. + +A key derivation function is useful when encrypting data based on a password +or any other not-fully-random data. It uses a pseudorandom function to derive +a secure encryption key based on the password. + +While v2.0 of the standard defines only one pseudorandom function to use, +HMAC-SHA1, the drafted v2.1 specification allows use of all five FIPS Approved +Hash Functions SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 for HMAC. To +choose, you can pass the `New` functions from the different SHA packages to +pbkdf2.Key. +*/ +package pbkdf2 + +import ( + "crypto/hmac" + "hash" +) + +// Key derives a key from the password, salt and iteration count, returning a +// []byte of length keylen that can be used as cryptographic key. The key is +// derived based on the method described as PBKDF2 with the HMAC variant using +// the supplied hash function. +// +// For example, to use a HMAC-SHA-1 based PBKDF2 key derivation function, you +// can get a derived key for e.g. AES-256 (which needs a 32-byte key) by +// doing: +// +// dk := pbkdf2.Key([]byte("some password"), salt, 4096, 32, sha1.New) +// +// Remember to get a good random salt. At least 8 bytes is recommended by the +// RFC. +// +// Using a higher iteration count will increase the cost of an exhaustive +// search but will also make derivation proportionally slower. +func Key(password, salt []byte, iter, keyLen int, h func() hash.Hash) []byte { + return Key64(password, salt, int64(iter), int64(keyLen), h) +} + +// Key64 derives a key from the password, salt and iteration count, returning a +// []byte of length keylen that can be used as cryptographic key. Key64 uses +// int64 for the iteration count and key length to allow larger values. +// The key is derived based on the method described as PBKDF2 with the HMAC +// variant using the supplied hash function. +// +// For example, to use a HMAC-SHA-1 based PBKDF2 key derivation function, you +// can get a derived key for e.g. AES-256 (which needs a 32-byte key) by +// doing: +// +// dk := pbkdf2.Key([]byte("some password"), salt, 4096, 32, sha1.New) +// +// Remember to get a good random salt. At least 8 bytes is recommended by the +// RFC. +// +// Using a higher iteration count will increase the cost of an exhaustive +// search but will also make derivation proportionally slower. +func Key64(password, salt []byte, iter, keyLen int64, h func() hash.Hash) []byte { + prf := hmac.New(h, password) + hashLen := int64(prf.Size()) + numBlocks := (keyLen + hashLen - 1) / hashLen + + var buf [4]byte + dk := make([]byte, 0, numBlocks*hashLen) + U := make([]byte, hashLen) + for block := int64(1); block <= numBlocks; block++ { + // N.B.: || means concatenation, ^ means XOR + // for each block T_i = U_1 ^ U_2 ^ ... ^ U_iter + // U_1 = PRF(password, salt || uint(i)) + prf.Reset() + prf.Write(salt) + buf[0] = byte(block >> 24) + buf[1] = byte(block >> 16) + buf[2] = byte(block >> 8) + buf[3] = byte(block) + prf.Write(buf[:4]) + dk = prf.Sum(dk) + T := dk[int64(len(dk))-hashLen:] + copy(U, T) + + // U_n = PRF(password, U_(n-1)) + for n := int64(2); n <= iter; n++ { + prf.Reset() + prf.Write(U) + U = U[:0] + U = prf.Sum(U) + for x := range U { + T[x] ^= U[x] + } + } + } + return dk[:keyLen] +} diff --git a/vendor/github.com/klauspost/compress/LICENSE b/vendor/github.com/klauspost/compress/LICENSE new file mode 100644 index 0000000..1eb75ef --- /dev/null +++ b/vendor/github.com/klauspost/compress/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2012 The Go Authors. All rights reserved. +Copyright (c) 2019 Klaus Post. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/klauspost/compress/fse/README.md b/vendor/github.com/klauspost/compress/fse/README.md new file mode 100644 index 0000000..ea7324d --- /dev/null +++ b/vendor/github.com/klauspost/compress/fse/README.md @@ -0,0 +1,79 @@ +# Finite State Entropy + +This package provides Finite State Entropy encoding and decoding. + +Finite State Entropy (also referenced as [tANS](https://en.wikipedia.org/wiki/Asymmetric_numeral_systems#tANS)) +encoding provides a fast near-optimal symbol encoding/decoding +for byte blocks as implemented in [zstandard](https://github.com/facebook/zstd). + +This can be used for compressing input with a lot of similar input values to the smallest number of bytes. +This does not perform any multi-byte [dictionary coding](https://en.wikipedia.org/wiki/Dictionary_coder) as LZ coders, +but it can be used as a secondary step to compressors (like Snappy) that does not do entropy encoding. + +* [Godoc documentation](https://godoc.org/github.com/klauspost/compress/fse) + +## News + + * Feb 2018: First implementation released. Consider this beta software for now. + +# Usage + +This package provides a low level interface that allows to compress single independent blocks. + +Each block is separate, and there is no built in integrity checks. +This means that the caller should keep track of block sizes and also do checksums if needed. + +Compressing a block is done via the [`Compress`](https://godoc.org/github.com/klauspost/compress/fse#Compress) function. +You must provide input and will receive the output and maybe an error. + +These error values can be returned: + +| Error | Description | +|---------------------|-----------------------------------------------------------------------------| +| `` | Everything ok, output is returned | +| `ErrIncompressible` | Returned when input is judged to be too hard to compress | +| `ErrUseRLE` | Returned from the compressor when the input is a single byte value repeated | +| `(error)` | An internal error occurred. | + +As can be seen above there are errors that will be returned even under normal operation so it is important to handle these. + +To reduce allocations you can provide a [`Scratch`](https://godoc.org/github.com/klauspost/compress/fse#Scratch) object +that can be re-used for successive calls. Both compression and decompression accepts a `Scratch` object, and the same +object can be used for both. + +Be aware, that when re-using a `Scratch` object that the *output* buffer is also re-used, so if you are still using this +you must set the `Out` field in the scratch to nil. The same buffer is used for compression and decompression output. + +Decompressing is done by calling the [`Decompress`](https://godoc.org/github.com/klauspost/compress/fse#Decompress) function. +You must provide the output from the compression stage, at exactly the size you got back. If you receive an error back +your input was likely corrupted. + +It is important to note that a successful decoding does *not* mean your output matches your original input. +There are no integrity checks, so relying on errors from the decompressor does not assure your data is valid. + +For more detailed usage, see examples in the [godoc documentation](https://godoc.org/github.com/klauspost/compress/fse#pkg-examples). + +# Performance + +A lot of factors are affecting speed. Block sizes and compressibility of the material are primary factors. +All compression functions are currently only running on the calling goroutine so only one core will be used per block. + +The compressor is significantly faster if symbols are kept as small as possible. The highest byte value of the input +is used to reduce some of the processing, so if all your input is above byte value 64 for instance, it may be +beneficial to transpose all your input values down by 64. + +With moderate block sizes around 64k speed are typically 200MB/s per core for compression and +around 300MB/s decompression speed. + +The same hardware typically does Huffman (deflate) encoding at 125MB/s and decompression at 100MB/s. + +# Plans + +At one point, more internals will be exposed to facilitate more "expert" usage of the components. + +A streaming interface is also likely to be implemented. Likely compatible with [FSE stream format](https://github.com/Cyan4973/FiniteStateEntropy/blob/dev/programs/fileio.c#L261). + +# Contributing + +Contributions are always welcome. Be aware that adding public functions will require good justification and breaking +changes will likely not be accepted. If in doubt open an issue before writing the PR. \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/fse/bitreader.go b/vendor/github.com/klauspost/compress/fse/bitreader.go new file mode 100644 index 0000000..b9db204 --- /dev/null +++ b/vendor/github.com/klauspost/compress/fse/bitreader.go @@ -0,0 +1,107 @@ +// Copyright 2018 Klaus Post. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. + +package fse + +import ( + "errors" + "io" +) + +// bitReader reads a bitstream in reverse. +// The last set bit indicates the start of the stream and is used +// for aligning the input. +type bitReader struct { + in []byte + off uint // next byte to read is at in[off - 1] + value uint64 + bitsRead uint8 +} + +// init initializes and resets the bit reader. +func (b *bitReader) init(in []byte) error { + if len(in) < 1 { + return errors.New("corrupt stream: too short") + } + b.in = in + b.off = uint(len(in)) + // The highest bit of the last byte indicates where to start + v := in[len(in)-1] + if v == 0 { + return errors.New("corrupt stream, did not find end of stream") + } + b.bitsRead = 64 + b.value = 0 + b.fill() + b.fill() + b.bitsRead += 8 - uint8(highBits(uint32(v))) + return nil +} + +// getBits will return n bits. n can be 0. +func (b *bitReader) getBits(n uint8) uint16 { + if n == 0 || b.bitsRead >= 64 { + return 0 + } + return b.getBitsFast(n) +} + +// getBitsFast requires that at least one bit is requested every time. +// There are no checks if the buffer is filled. +func (b *bitReader) getBitsFast(n uint8) uint16 { + const regMask = 64 - 1 + v := uint16((b.value << (b.bitsRead & regMask)) >> ((regMask + 1 - n) & regMask)) + b.bitsRead += n + return v +} + +// fillFast() will make sure at least 32 bits are available. +// There must be at least 4 bytes available. +func (b *bitReader) fillFast() { + if b.bitsRead < 32 { + return + } + // Do single re-slice to avoid bounds checks. + v := b.in[b.off-4 : b.off] + low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) + b.value = (b.value << 32) | uint64(low) + b.bitsRead -= 32 + b.off -= 4 +} + +// fill() will make sure at least 32 bits are available. +func (b *bitReader) fill() { + if b.bitsRead < 32 { + return + } + if b.off > 4 { + v := b.in[b.off-4 : b.off] + low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) + b.value = (b.value << 32) | uint64(low) + b.bitsRead -= 32 + b.off -= 4 + return + } + for b.off > 0 { + b.value = (b.value << 8) | uint64(b.in[b.off-1]) + b.bitsRead -= 8 + b.off-- + } +} + +// finished returns true if all bits have been read from the bit stream. +func (b *bitReader) finished() bool { + return b.off == 0 && b.bitsRead >= 64 +} + +// close the bitstream and returns an error if out-of-buffer reads occurred. +func (b *bitReader) close() error { + // Release reference. + b.in = nil + if b.bitsRead > 64 { + return io.ErrUnexpectedEOF + } + return nil +} diff --git a/vendor/github.com/klauspost/compress/fse/bitwriter.go b/vendor/github.com/klauspost/compress/fse/bitwriter.go new file mode 100644 index 0000000..43e4636 --- /dev/null +++ b/vendor/github.com/klauspost/compress/fse/bitwriter.go @@ -0,0 +1,168 @@ +// Copyright 2018 Klaus Post. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. + +package fse + +import "fmt" + +// bitWriter will write bits. +// First bit will be LSB of the first byte of output. +type bitWriter struct { + bitContainer uint64 + nBits uint8 + out []byte +} + +// bitMask16 is bitmasks. Has extra to avoid bounds check. +var bitMask16 = [32]uint16{ + 0, 1, 3, 7, 0xF, 0x1F, + 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, + 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF} /* up to 16 bits */ + +// addBits16NC will add up to 16 bits. +// It will not check if there is space for them, +// so the caller must ensure that it has flushed recently. +func (b *bitWriter) addBits16NC(value uint16, bits uint8) { + b.bitContainer |= uint64(value&bitMask16[bits&31]) << (b.nBits & 63) + b.nBits += bits +} + +// addBits16Clean will add up to 16 bits. value may not contain more set bits than indicated. +// It will not check if there is space for them, so the caller must ensure that it has flushed recently. +func (b *bitWriter) addBits16Clean(value uint16, bits uint8) { + b.bitContainer |= uint64(value) << (b.nBits & 63) + b.nBits += bits +} + +// addBits16ZeroNC will add up to 16 bits. +// It will not check if there is space for them, +// so the caller must ensure that it has flushed recently. +// This is fastest if bits can be zero. +func (b *bitWriter) addBits16ZeroNC(value uint16, bits uint8) { + if bits == 0 { + return + } + value <<= (16 - bits) & 15 + value >>= (16 - bits) & 15 + b.bitContainer |= uint64(value) << (b.nBits & 63) + b.nBits += bits +} + +// flush will flush all pending full bytes. +// There will be at least 56 bits available for writing when this has been called. +// Using flush32 is faster, but leaves less space for writing. +func (b *bitWriter) flush() { + v := b.nBits >> 3 + switch v { + case 0: + case 1: + b.out = append(b.out, + byte(b.bitContainer), + ) + case 2: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + ) + case 3: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + ) + case 4: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + ) + case 5: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + ) + case 6: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + byte(b.bitContainer>>40), + ) + case 7: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + byte(b.bitContainer>>40), + byte(b.bitContainer>>48), + ) + case 8: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + byte(b.bitContainer>>40), + byte(b.bitContainer>>48), + byte(b.bitContainer>>56), + ) + default: + panic(fmt.Errorf("bits (%d) > 64", b.nBits)) + } + b.bitContainer >>= v << 3 + b.nBits &= 7 +} + +// flush32 will flush out, so there are at least 32 bits available for writing. +func (b *bitWriter) flush32() { + if b.nBits < 32 { + return + } + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24)) + b.nBits -= 32 + b.bitContainer >>= 32 +} + +// flushAlign will flush remaining full bytes and align to next byte boundary. +func (b *bitWriter) flushAlign() { + nbBytes := (b.nBits + 7) >> 3 + for i := uint8(0); i < nbBytes; i++ { + b.out = append(b.out, byte(b.bitContainer>>(i*8))) + } + b.nBits = 0 + b.bitContainer = 0 +} + +// close will write the alignment bit and write the final byte(s) +// to the output. +func (b *bitWriter) close() error { + // End mark + b.addBits16Clean(1, 1) + // flush until next byte. + b.flushAlign() + return nil +} + +// reset and continue writing by appending to out. +func (b *bitWriter) reset(out []byte) { + b.bitContainer = 0 + b.nBits = 0 + b.out = out +} diff --git a/vendor/github.com/klauspost/compress/fse/bytereader.go b/vendor/github.com/klauspost/compress/fse/bytereader.go new file mode 100644 index 0000000..f228a46 --- /dev/null +++ b/vendor/github.com/klauspost/compress/fse/bytereader.go @@ -0,0 +1,56 @@ +// Copyright 2018 Klaus Post. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. + +package fse + +// byteReader provides a byte reader that reads +// little endian values from a byte stream. +// The input stream is manually advanced. +// The reader performs no bounds checks. +type byteReader struct { + b []byte + off int +} + +// init will initialize the reader and set the input. +func (b *byteReader) init(in []byte) { + b.b = in + b.off = 0 +} + +// advance the stream b n bytes. +func (b *byteReader) advance(n uint) { + b.off += int(n) +} + +// Int32 returns a little endian int32 starting at current offset. +func (b byteReader) Int32() int32 { + b2 := b.b[b.off : b.off+4 : b.off+4] + v3 := int32(b2[3]) + v2 := int32(b2[2]) + v1 := int32(b2[1]) + v0 := int32(b2[0]) + return v0 | (v1 << 8) | (v2 << 16) | (v3 << 24) +} + +// Uint32 returns a little endian uint32 starting at current offset. +func (b byteReader) Uint32() uint32 { + b2 := b.b[b.off : b.off+4 : b.off+4] + v3 := uint32(b2[3]) + v2 := uint32(b2[2]) + v1 := uint32(b2[1]) + v0 := uint32(b2[0]) + return v0 | (v1 << 8) | (v2 << 16) | (v3 << 24) +} + +// unread returns the unread portion of the input. +func (b byteReader) unread() []byte { + return b.b[b.off:] +} + +// remain will return the number of bytes remaining. +func (b byteReader) remain() int { + return len(b.b) - b.off +} diff --git a/vendor/github.com/klauspost/compress/fse/compress.go b/vendor/github.com/klauspost/compress/fse/compress.go new file mode 100644 index 0000000..b69237c --- /dev/null +++ b/vendor/github.com/klauspost/compress/fse/compress.go @@ -0,0 +1,684 @@ +// Copyright 2018 Klaus Post. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. + +package fse + +import ( + "errors" + "fmt" +) + +// Compress the input bytes. Input must be < 2GB. +// Provide a Scratch buffer to avoid memory allocations. +// Note that the output is also kept in the scratch buffer. +// If input is too hard to compress, ErrIncompressible is returned. +// If input is a single byte value repeated ErrUseRLE is returned. +func Compress(in []byte, s *Scratch) ([]byte, error) { + if len(in) <= 1 { + return nil, ErrIncompressible + } + if len(in) > (2<<30)-1 { + return nil, errors.New("input too big, must be < 2GB") + } + s, err := s.prepare(in) + if err != nil { + return nil, err + } + + // Create histogram, if none was provided. + maxCount := s.maxCount + if maxCount == 0 { + maxCount = s.countSimple(in) + } + // Reset for next run. + s.clearCount = true + s.maxCount = 0 + if maxCount == len(in) { + // One symbol, use RLE + return nil, ErrUseRLE + } + if maxCount == 1 || maxCount < (len(in)>>7) { + // Each symbol present maximum once or too well distributed. + return nil, ErrIncompressible + } + s.optimalTableLog() + err = s.normalizeCount() + if err != nil { + return nil, err + } + err = s.writeCount() + if err != nil { + return nil, err + } + + if false { + err = s.validateNorm() + if err != nil { + return nil, err + } + } + + err = s.buildCTable() + if err != nil { + return nil, err + } + err = s.compress(in) + if err != nil { + return nil, err + } + s.Out = s.bw.out + // Check if we compressed. + if len(s.Out) >= len(in) { + return nil, ErrIncompressible + } + return s.Out, nil +} + +// cState contains the compression state of a stream. +type cState struct { + bw *bitWriter + stateTable []uint16 + state uint16 +} + +// init will initialize the compression state to the first symbol of the stream. +func (c *cState) init(bw *bitWriter, ct *cTable, tableLog uint8, first symbolTransform) { + c.bw = bw + c.stateTable = ct.stateTable + + nbBitsOut := (first.deltaNbBits + (1 << 15)) >> 16 + im := int32((nbBitsOut << 16) - first.deltaNbBits) + lu := (im >> nbBitsOut) + first.deltaFindState + c.state = c.stateTable[lu] + return +} + +// encode the output symbol provided and write it to the bitstream. +func (c *cState) encode(symbolTT symbolTransform) { + nbBitsOut := (uint32(c.state) + symbolTT.deltaNbBits) >> 16 + dstState := int32(c.state>>(nbBitsOut&15)) + symbolTT.deltaFindState + c.bw.addBits16NC(c.state, uint8(nbBitsOut)) + c.state = c.stateTable[dstState] +} + +// encode the output symbol provided and write it to the bitstream. +func (c *cState) encodeZero(symbolTT symbolTransform) { + nbBitsOut := (uint32(c.state) + symbolTT.deltaNbBits) >> 16 + dstState := int32(c.state>>(nbBitsOut&15)) + symbolTT.deltaFindState + c.bw.addBits16ZeroNC(c.state, uint8(nbBitsOut)) + c.state = c.stateTable[dstState] +} + +// flush will write the tablelog to the output and flush the remaining full bytes. +func (c *cState) flush(tableLog uint8) { + c.bw.flush32() + c.bw.addBits16NC(c.state, tableLog) + c.bw.flush() +} + +// compress is the main compression loop that will encode the input from the last byte to the first. +func (s *Scratch) compress(src []byte) error { + if len(src) <= 2 { + return errors.New("compress: src too small") + } + tt := s.ct.symbolTT[:256] + s.bw.reset(s.Out) + + // Our two states each encodes every second byte. + // Last byte encoded (first byte decoded) will always be encoded by c1. + var c1, c2 cState + + // Encode so remaining size is divisible by 4. + ip := len(src) + if ip&1 == 1 { + c1.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-1]]) + c2.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-2]]) + c1.encodeZero(tt[src[ip-3]]) + ip -= 3 + } else { + c2.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-1]]) + c1.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-2]]) + ip -= 2 + } + if ip&2 != 0 { + c2.encodeZero(tt[src[ip-1]]) + c1.encodeZero(tt[src[ip-2]]) + ip -= 2 + } + + // Main compression loop. + switch { + case !s.zeroBits && s.actualTableLog <= 8: + // We can encode 4 symbols without requiring a flush. + // We do not need to check if any output is 0 bits. + for ip >= 4 { + s.bw.flush32() + v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] + c2.encode(tt[v0]) + c1.encode(tt[v1]) + c2.encode(tt[v2]) + c1.encode(tt[v3]) + ip -= 4 + } + case !s.zeroBits: + // We do not need to check if any output is 0 bits. + for ip >= 4 { + s.bw.flush32() + v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] + c2.encode(tt[v0]) + c1.encode(tt[v1]) + s.bw.flush32() + c2.encode(tt[v2]) + c1.encode(tt[v3]) + ip -= 4 + } + case s.actualTableLog <= 8: + // We can encode 4 symbols without requiring a flush + for ip >= 4 { + s.bw.flush32() + v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] + c2.encodeZero(tt[v0]) + c1.encodeZero(tt[v1]) + c2.encodeZero(tt[v2]) + c1.encodeZero(tt[v3]) + ip -= 4 + } + default: + for ip >= 4 { + s.bw.flush32() + v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] + c2.encodeZero(tt[v0]) + c1.encodeZero(tt[v1]) + s.bw.flush32() + c2.encodeZero(tt[v2]) + c1.encodeZero(tt[v3]) + ip -= 4 + } + } + + // Flush final state. + // Used to initialize state when decoding. + c2.flush(s.actualTableLog) + c1.flush(s.actualTableLog) + + return s.bw.close() +} + +// writeCount will write the normalized histogram count to header. +// This is read back by readNCount. +func (s *Scratch) writeCount() error { + var ( + tableLog = s.actualTableLog + tableSize = 1 << tableLog + previous0 bool + charnum uint16 + + maxHeaderSize = ((int(s.symbolLen) * int(tableLog)) >> 3) + 3 + + // Write Table Size + bitStream = uint32(tableLog - minTablelog) + bitCount = uint(4) + remaining = int16(tableSize + 1) /* +1 for extra accuracy */ + threshold = int16(tableSize) + nbBits = uint(tableLog + 1) + ) + if cap(s.Out) < maxHeaderSize { + s.Out = make([]byte, 0, s.br.remain()+maxHeaderSize) + } + outP := uint(0) + out := s.Out[:maxHeaderSize] + + // stops at 1 + for remaining > 1 { + if previous0 { + start := charnum + for s.norm[charnum] == 0 { + charnum++ + } + for charnum >= start+24 { + start += 24 + bitStream += uint32(0xFFFF) << bitCount + out[outP] = byte(bitStream) + out[outP+1] = byte(bitStream >> 8) + outP += 2 + bitStream >>= 16 + } + for charnum >= start+3 { + start += 3 + bitStream += 3 << bitCount + bitCount += 2 + } + bitStream += uint32(charnum-start) << bitCount + bitCount += 2 + if bitCount > 16 { + out[outP] = byte(bitStream) + out[outP+1] = byte(bitStream >> 8) + outP += 2 + bitStream >>= 16 + bitCount -= 16 + } + } + + count := s.norm[charnum] + charnum++ + max := (2*threshold - 1) - remaining + if count < 0 { + remaining += count + } else { + remaining -= count + } + count++ // +1 for extra accuracy + if count >= threshold { + count += max // [0..max[ [max..threshold[ (...) [threshold+max 2*threshold[ + } + bitStream += uint32(count) << bitCount + bitCount += nbBits + if count < max { + bitCount-- + } + + previous0 = count == 1 + if remaining < 1 { + return errors.New("internal error: remaining<1") + } + for remaining < threshold { + nbBits-- + threshold >>= 1 + } + + if bitCount > 16 { + out[outP] = byte(bitStream) + out[outP+1] = byte(bitStream >> 8) + outP += 2 + bitStream >>= 16 + bitCount -= 16 + } + } + + out[outP] = byte(bitStream) + out[outP+1] = byte(bitStream >> 8) + outP += (bitCount + 7) / 8 + + if uint16(charnum) > s.symbolLen { + return errors.New("internal error: charnum > s.symbolLen") + } + s.Out = out[:outP] + return nil +} + +// symbolTransform contains the state transform for a symbol. +type symbolTransform struct { + deltaFindState int32 + deltaNbBits uint32 +} + +// String prints values as a human readable string. +func (s symbolTransform) String() string { + return fmt.Sprintf("dnbits: %08x, fs:%d", s.deltaNbBits, s.deltaFindState) +} + +// cTable contains tables used for compression. +type cTable struct { + tableSymbol []byte + stateTable []uint16 + symbolTT []symbolTransform +} + +// allocCtable will allocate tables needed for compression. +// If existing tables a re big enough, they are simply re-used. +func (s *Scratch) allocCtable() { + tableSize := 1 << s.actualTableLog + // get tableSymbol that is big enough. + if cap(s.ct.tableSymbol) < int(tableSize) { + s.ct.tableSymbol = make([]byte, tableSize) + } + s.ct.tableSymbol = s.ct.tableSymbol[:tableSize] + + ctSize := tableSize + if cap(s.ct.stateTable) < ctSize { + s.ct.stateTable = make([]uint16, ctSize) + } + s.ct.stateTable = s.ct.stateTable[:ctSize] + + if cap(s.ct.symbolTT) < 256 { + s.ct.symbolTT = make([]symbolTransform, 256) + } + s.ct.symbolTT = s.ct.symbolTT[:256] +} + +// buildCTable will populate the compression table so it is ready to be used. +func (s *Scratch) buildCTable() error { + tableSize := uint32(1 << s.actualTableLog) + highThreshold := tableSize - 1 + var cumul [maxSymbolValue + 2]int16 + + s.allocCtable() + tableSymbol := s.ct.tableSymbol[:tableSize] + // symbol start positions + { + cumul[0] = 0 + for ui, v := range s.norm[:s.symbolLen-1] { + u := byte(ui) // one less than reference + if v == -1 { + // Low proba symbol + cumul[u+1] = cumul[u] + 1 + tableSymbol[highThreshold] = u + highThreshold-- + } else { + cumul[u+1] = cumul[u] + v + } + } + // Encode last symbol separately to avoid overflowing u + u := int(s.symbolLen - 1) + v := s.norm[s.symbolLen-1] + if v == -1 { + // Low proba symbol + cumul[u+1] = cumul[u] + 1 + tableSymbol[highThreshold] = byte(u) + highThreshold-- + } else { + cumul[u+1] = cumul[u] + v + } + if uint32(cumul[s.symbolLen]) != tableSize { + return fmt.Errorf("internal error: expected cumul[s.symbolLen] (%d) == tableSize (%d)", cumul[s.symbolLen], tableSize) + } + cumul[s.symbolLen] = int16(tableSize) + 1 + } + // Spread symbols + s.zeroBits = false + { + step := tableStep(tableSize) + tableMask := tableSize - 1 + var position uint32 + // if any symbol > largeLimit, we may have 0 bits output. + largeLimit := int16(1 << (s.actualTableLog - 1)) + for ui, v := range s.norm[:s.symbolLen] { + symbol := byte(ui) + if v > largeLimit { + s.zeroBits = true + } + for nbOccurrences := int16(0); nbOccurrences < v; nbOccurrences++ { + tableSymbol[position] = symbol + position = (position + step) & tableMask + for position > highThreshold { + position = (position + step) & tableMask + } /* Low proba area */ + } + } + + // Check if we have gone through all positions + if position != 0 { + return errors.New("position!=0") + } + } + + // Build table + table := s.ct.stateTable + { + tsi := int(tableSize) + for u, v := range tableSymbol { + // TableU16 : sorted by symbol order; gives next state value + table[cumul[v]] = uint16(tsi + u) + cumul[v]++ + } + } + + // Build Symbol Transformation Table + { + total := int16(0) + symbolTT := s.ct.symbolTT[:s.symbolLen] + tableLog := s.actualTableLog + tl := (uint32(tableLog) << 16) - (1 << tableLog) + for i, v := range s.norm[:s.symbolLen] { + switch v { + case 0: + case -1, 1: + symbolTT[i].deltaNbBits = tl + symbolTT[i].deltaFindState = int32(total - 1) + total++ + default: + maxBitsOut := uint32(tableLog) - highBits(uint32(v-1)) + minStatePlus := uint32(v) << maxBitsOut + symbolTT[i].deltaNbBits = (maxBitsOut << 16) - minStatePlus + symbolTT[i].deltaFindState = int32(total - v) + total += v + } + } + if total != int16(tableSize) { + return fmt.Errorf("total mismatch %d (got) != %d (want)", total, tableSize) + } + } + return nil +} + +// countSimple will create a simple histogram in s.count. +// Returns the biggest count. +// Does not update s.clearCount. +func (s *Scratch) countSimple(in []byte) (max int) { + for _, v := range in { + s.count[v]++ + } + m := uint32(0) + for i, v := range s.count[:] { + if v > m { + m = v + } + if v > 0 { + s.symbolLen = uint16(i) + 1 + } + } + return int(m) +} + +// minTableLog provides the minimum logSize to safely represent a distribution. +func (s *Scratch) minTableLog() uint8 { + minBitsSrc := highBits(uint32(s.br.remain()-1)) + 1 + minBitsSymbols := highBits(uint32(s.symbolLen-1)) + 2 + if minBitsSrc < minBitsSymbols { + return uint8(minBitsSrc) + } + return uint8(minBitsSymbols) +} + +// optimalTableLog calculates and sets the optimal tableLog in s.actualTableLog +func (s *Scratch) optimalTableLog() { + tableLog := s.TableLog + minBits := s.minTableLog() + maxBitsSrc := uint8(highBits(uint32(s.br.remain()-1))) - 2 + if maxBitsSrc < tableLog { + // Accuracy can be reduced + tableLog = maxBitsSrc + } + if minBits > tableLog { + tableLog = minBits + } + // Need a minimum to safely represent all symbol values + if tableLog < minTablelog { + tableLog = minTablelog + } + if tableLog > maxTableLog { + tableLog = maxTableLog + } + s.actualTableLog = tableLog +} + +var rtbTable = [...]uint32{0, 473195, 504333, 520860, 550000, 700000, 750000, 830000} + +// normalizeCount will normalize the count of the symbols so +// the total is equal to the table size. +func (s *Scratch) normalizeCount() error { + var ( + tableLog = s.actualTableLog + scale = 62 - uint64(tableLog) + step = (1 << 62) / uint64(s.br.remain()) + vStep = uint64(1) << (scale - 20) + stillToDistribute = int16(1 << tableLog) + largest int + largestP int16 + lowThreshold = (uint32)(s.br.remain() >> tableLog) + ) + + for i, cnt := range s.count[:s.symbolLen] { + // already handled + // if (count[s] == s.length) return 0; /* rle special case */ + + if cnt == 0 { + s.norm[i] = 0 + continue + } + if cnt <= lowThreshold { + s.norm[i] = -1 + stillToDistribute-- + } else { + proba := (int16)((uint64(cnt) * step) >> scale) + if proba < 8 { + restToBeat := vStep * uint64(rtbTable[proba]) + v := uint64(cnt)*step - (uint64(proba) << scale) + if v > restToBeat { + proba++ + } + } + if proba > largestP { + largestP = proba + largest = i + } + s.norm[i] = proba + stillToDistribute -= proba + } + } + + if -stillToDistribute >= (s.norm[largest] >> 1) { + // corner case, need another normalization method + return s.normalizeCount2() + } + s.norm[largest] += stillToDistribute + return nil +} + +// Secondary normalization method. +// To be used when primary method fails. +func (s *Scratch) normalizeCount2() error { + const notYetAssigned = -2 + var ( + distributed uint32 + total = uint32(s.br.remain()) + tableLog = s.actualTableLog + lowThreshold = uint32(total >> tableLog) + lowOne = uint32((total * 3) >> (tableLog + 1)) + ) + for i, cnt := range s.count[:s.symbolLen] { + if cnt == 0 { + s.norm[i] = 0 + continue + } + if cnt <= lowThreshold { + s.norm[i] = -1 + distributed++ + total -= cnt + continue + } + if cnt <= lowOne { + s.norm[i] = 1 + distributed++ + total -= cnt + continue + } + s.norm[i] = notYetAssigned + } + toDistribute := (1 << tableLog) - distributed + + if (total / toDistribute) > lowOne { + // risk of rounding to zero + lowOne = uint32((total * 3) / (toDistribute * 2)) + for i, cnt := range s.count[:s.symbolLen] { + if (s.norm[i] == notYetAssigned) && (cnt <= lowOne) { + s.norm[i] = 1 + distributed++ + total -= cnt + continue + } + } + toDistribute = (1 << tableLog) - distributed + } + if distributed == uint32(s.symbolLen)+1 { + // all values are pretty poor; + // probably incompressible data (should have already been detected); + // find max, then give all remaining points to max + var maxV int + var maxC uint32 + for i, cnt := range s.count[:s.symbolLen] { + if cnt > maxC { + maxV = i + maxC = cnt + } + } + s.norm[maxV] += int16(toDistribute) + return nil + } + + if total == 0 { + // all of the symbols were low enough for the lowOne or lowThreshold + for i := uint32(0); toDistribute > 0; i = (i + 1) % (uint32(s.symbolLen)) { + if s.norm[i] > 0 { + toDistribute-- + s.norm[i]++ + } + } + return nil + } + + var ( + vStepLog = 62 - uint64(tableLog) + mid = uint64((1 << (vStepLog - 1)) - 1) + rStep = (((1 << vStepLog) * uint64(toDistribute)) + mid) / uint64(total) // scale on remaining + tmpTotal = mid + ) + for i, cnt := range s.count[:s.symbolLen] { + if s.norm[i] == notYetAssigned { + var ( + end = tmpTotal + uint64(cnt)*rStep + sStart = uint32(tmpTotal >> vStepLog) + sEnd = uint32(end >> vStepLog) + weight = sEnd - sStart + ) + if weight < 1 { + return errors.New("weight < 1") + } + s.norm[i] = int16(weight) + tmpTotal = end + } + } + return nil +} + +// validateNorm validates the normalized histogram table. +func (s *Scratch) validateNorm() (err error) { + var total int + for _, v := range s.norm[:s.symbolLen] { + if v >= 0 { + total += int(v) + } else { + total -= int(v) + } + } + defer func() { + if err == nil { + return + } + fmt.Printf("selected TableLog: %d, Symbol length: %d\n", s.actualTableLog, s.symbolLen) + for i, v := range s.norm[:s.symbolLen] { + fmt.Printf("%3d: %5d -> %4d \n", i, s.count[i], v) + } + }() + if total != (1 << s.actualTableLog) { + return fmt.Errorf("warning: Total == %d != %d", total, 1< tablelogAbsoluteMax { + return errors.New("tableLog too large") + } + bitStream >>= 4 + bitCount := uint(4) + + s.actualTableLog = uint8(nbBits) + remaining := int32((1 << nbBits) + 1) + threshold := int32(1 << nbBits) + gotTotal := int32(0) + nbBits++ + + for remaining > 1 { + if previous0 { + n0 := charnum + for (bitStream & 0xFFFF) == 0xFFFF { + n0 += 24 + if b.off < iend-5 { + b.advance(2) + bitStream = b.Uint32() >> bitCount + } else { + bitStream >>= 16 + bitCount += 16 + } + } + for (bitStream & 3) == 3 { + n0 += 3 + bitStream >>= 2 + bitCount += 2 + } + n0 += uint16(bitStream & 3) + bitCount += 2 + if n0 > maxSymbolValue { + return errors.New("maxSymbolValue too small") + } + for charnum < n0 { + s.norm[charnum&0xff] = 0 + charnum++ + } + + if b.off <= iend-7 || b.off+int(bitCount>>3) <= iend-4 { + b.advance(bitCount >> 3) + bitCount &= 7 + bitStream = b.Uint32() >> bitCount + } else { + bitStream >>= 2 + } + } + + max := (2*(threshold) - 1) - (remaining) + var count int32 + + if (int32(bitStream) & (threshold - 1)) < max { + count = int32(bitStream) & (threshold - 1) + bitCount += nbBits - 1 + } else { + count = int32(bitStream) & (2*threshold - 1) + if count >= threshold { + count -= max + } + bitCount += nbBits + } + + count-- // extra accuracy + if count < 0 { + // -1 means +1 + remaining += count + gotTotal -= count + } else { + remaining -= count + gotTotal += count + } + s.norm[charnum&0xff] = int16(count) + charnum++ + previous0 = count == 0 + for remaining < threshold { + nbBits-- + threshold >>= 1 + } + if b.off <= iend-7 || b.off+int(bitCount>>3) <= iend-4 { + b.advance(bitCount >> 3) + bitCount &= 7 + } else { + bitCount -= (uint)(8 * (len(b.b) - 4 - b.off)) + b.off = len(b.b) - 4 + } + bitStream = b.Uint32() >> (bitCount & 31) + } + s.symbolLen = charnum + + if s.symbolLen <= 1 { + return fmt.Errorf("symbolLen (%d) too small", s.symbolLen) + } + if s.symbolLen > maxSymbolValue+1 { + return fmt.Errorf("symbolLen (%d) too big", s.symbolLen) + } + if remaining != 1 { + return fmt.Errorf("corruption detected (remaining %d != 1)", remaining) + } + if bitCount > 32 { + return fmt.Errorf("corruption detected (bitCount %d > 32)", bitCount) + } + if gotTotal != 1<> 3) + return nil +} + +// decSymbol contains information about a state entry, +// Including the state offset base, the output symbol and +// the number of bits to read for the low part of the destination state. +type decSymbol struct { + newState uint16 + symbol uint8 + nbBits uint8 +} + +// allocDtable will allocate decoding tables if they are not big enough. +func (s *Scratch) allocDtable() { + tableSize := 1 << s.actualTableLog + if cap(s.decTable) < int(tableSize) { + s.decTable = make([]decSymbol, tableSize) + } + s.decTable = s.decTable[:tableSize] + + if cap(s.ct.tableSymbol) < 256 { + s.ct.tableSymbol = make([]byte, 256) + } + s.ct.tableSymbol = s.ct.tableSymbol[:256] + + if cap(s.ct.stateTable) < 256 { + s.ct.stateTable = make([]uint16, 256) + } + s.ct.stateTable = s.ct.stateTable[:256] +} + +// buildDtable will build the decoding table. +func (s *Scratch) buildDtable() error { + tableSize := uint32(1 << s.actualTableLog) + highThreshold := tableSize - 1 + s.allocDtable() + symbolNext := s.ct.stateTable[:256] + + // Init, lay down lowprob symbols + s.zeroBits = false + { + largeLimit := int16(1 << (s.actualTableLog - 1)) + for i, v := range s.norm[:s.symbolLen] { + if v == -1 { + s.decTable[highThreshold].symbol = uint8(i) + highThreshold-- + symbolNext[i] = 1 + } else { + if v >= largeLimit { + s.zeroBits = true + } + symbolNext[i] = uint16(v) + } + } + } + // Spread symbols + { + tableMask := tableSize - 1 + step := tableStep(tableSize) + position := uint32(0) + for ss, v := range s.norm[:s.symbolLen] { + for i := 0; i < int(v); i++ { + s.decTable[position].symbol = uint8(ss) + position = (position + step) & tableMask + for position > highThreshold { + // lowprob area + position = (position + step) & tableMask + } + } + } + if position != 0 { + // position must reach all cells once, otherwise normalizedCounter is incorrect + return errors.New("corrupted input (position != 0)") + } + } + + // Build Decoding table + { + tableSize := uint16(1 << s.actualTableLog) + for u, v := range s.decTable { + symbol := v.symbol + nextState := symbolNext[symbol] + symbolNext[symbol] = nextState + 1 + nBits := s.actualTableLog - byte(highBits(uint32(nextState))) + s.decTable[u].nbBits = nBits + newState := (nextState << nBits) - tableSize + if newState >= tableSize { + return fmt.Errorf("newState (%d) outside table size (%d)", newState, tableSize) + } + if newState == uint16(u) && nBits == 0 { + // Seems weird that this is possible with nbits > 0. + return fmt.Errorf("newState (%d) == oldState (%d) and no bits", newState, u) + } + s.decTable[u].newState = newState + } + } + return nil +} + +// decompress will decompress the bitstream. +// If the buffer is over-read an error is returned. +func (s *Scratch) decompress() error { + br := &s.bits + br.init(s.br.unread()) + + var s1, s2 decoder + // Initialize and decode first state and symbol. + s1.init(br, s.decTable, s.actualTableLog) + s2.init(br, s.decTable, s.actualTableLog) + + // Use temp table to avoid bound checks/append penalty. + var tmp = s.ct.tableSymbol[:256] + var off uint8 + + // Main part + if !s.zeroBits { + for br.off >= 8 { + br.fillFast() + tmp[off+0] = s1.nextFast() + tmp[off+1] = s2.nextFast() + br.fillFast() + tmp[off+2] = s1.nextFast() + tmp[off+3] = s2.nextFast() + off += 4 + // When off is 0, we have overflowed and should write. + if off == 0 { + s.Out = append(s.Out, tmp...) + if len(s.Out) >= s.DecompressLimit { + return fmt.Errorf("output size (%d) > DecompressLimit (%d)", len(s.Out), s.DecompressLimit) + } + } + } + } else { + for br.off >= 8 { + br.fillFast() + tmp[off+0] = s1.next() + tmp[off+1] = s2.next() + br.fillFast() + tmp[off+2] = s1.next() + tmp[off+3] = s2.next() + off += 4 + if off == 0 { + s.Out = append(s.Out, tmp...) + // When off is 0, we have overflowed and should write. + if len(s.Out) >= s.DecompressLimit { + return fmt.Errorf("output size (%d) > DecompressLimit (%d)", len(s.Out), s.DecompressLimit) + } + } + } + } + s.Out = append(s.Out, tmp[:off]...) + + // Final bits, a bit more expensive check + for { + if s1.finished() { + s.Out = append(s.Out, s1.final(), s2.final()) + break + } + br.fill() + s.Out = append(s.Out, s1.next()) + if s2.finished() { + s.Out = append(s.Out, s2.final(), s1.final()) + break + } + s.Out = append(s.Out, s2.next()) + if len(s.Out) >= s.DecompressLimit { + return fmt.Errorf("output size (%d) > DecompressLimit (%d)", len(s.Out), s.DecompressLimit) + } + } + return br.close() +} + +// decoder keeps track of the current state and updates it from the bitstream. +type decoder struct { + state uint16 + br *bitReader + dt []decSymbol +} + +// init will initialize the decoder and read the first state from the stream. +func (d *decoder) init(in *bitReader, dt []decSymbol, tableLog uint8) { + d.dt = dt + d.br = in + d.state = uint16(in.getBits(tableLog)) +} + +// next returns the next symbol and sets the next state. +// At least tablelog bits must be available in the bit reader. +func (d *decoder) next() uint8 { + n := &d.dt[d.state] + lowBits := d.br.getBits(n.nbBits) + d.state = n.newState + lowBits + return n.symbol +} + +// finished returns true if all bits have been read from the bitstream +// and the next state would require reading bits from the input. +func (d *decoder) finished() bool { + return d.br.finished() && d.dt[d.state].nbBits > 0 +} + +// final returns the current state symbol without decoding the next. +func (d *decoder) final() uint8 { + return d.dt[d.state].symbol +} + +// nextFast returns the next symbol and sets the next state. +// This can only be used if no symbols are 0 bits. +// At least tablelog bits must be available in the bit reader. +func (d *decoder) nextFast() uint8 { + n := d.dt[d.state] + lowBits := d.br.getBitsFast(n.nbBits) + d.state = n.newState + lowBits + return n.symbol +} diff --git a/vendor/github.com/klauspost/compress/fse/fse.go b/vendor/github.com/klauspost/compress/fse/fse.go new file mode 100644 index 0000000..075357b --- /dev/null +++ b/vendor/github.com/klauspost/compress/fse/fse.go @@ -0,0 +1,143 @@ +// Copyright 2018 Klaus Post. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. + +// Package fse provides Finite State Entropy encoding and decoding. +// +// Finite State Entropy encoding provides a fast near-optimal symbol encoding/decoding +// for byte blocks as implemented in zstd. +// +// See https://github.com/klauspost/compress/tree/master/fse for more information. +package fse + +import ( + "errors" + "fmt" + "math/bits" +) + +const ( + /*!MEMORY_USAGE : + * Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) + * Increasing memory usage improves compression ratio + * Reduced memory usage can improve speed, due to cache effect + * Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ + maxMemoryUsage = 14 + defaultMemoryUsage = 13 + + maxTableLog = maxMemoryUsage - 2 + maxTablesize = 1 << maxTableLog + defaultTablelog = defaultMemoryUsage - 2 + minTablelog = 5 + maxSymbolValue = 255 +) + +var ( + // ErrIncompressible is returned when input is judged to be too hard to compress. + ErrIncompressible = errors.New("input is not compressible") + + // ErrUseRLE is returned from the compressor when the input is a single byte value repeated. + ErrUseRLE = errors.New("input is single value repeated") +) + +// Scratch provides temporary storage for compression and decompression. +type Scratch struct { + // Private + count [maxSymbolValue + 1]uint32 + norm [maxSymbolValue + 1]int16 + symbolLen uint16 // Length of active part of the symbol table. + actualTableLog uint8 // Selected tablelog. + br byteReader + bits bitReader + bw bitWriter + ct cTable // Compression tables. + decTable []decSymbol // Decompression table. + zeroBits bool // no bits has prob > 50%. + clearCount bool // clear count + maxCount int // count of the most probable symbol + + // Per block parameters. + // These can be used to override compression parameters of the block. + // Do not touch, unless you know what you are doing. + + // Out is output buffer. + // If the scratch is re-used before the caller is done processing the output, + // set this field to nil. + // Otherwise the output buffer will be re-used for next Compression/Decompression step + // and allocation will be avoided. + Out []byte + + // MaxSymbolValue will override the maximum symbol value of the next block. + MaxSymbolValue uint8 + + // TableLog will attempt to override the tablelog for the next block. + TableLog uint8 + + // DecompressLimit limits the maximum decoded size acceptable. + // If > 0 decompression will stop when approximately this many bytes + // has been decoded. + // If 0, maximum size will be 2GB. + DecompressLimit int +} + +// Histogram allows to populate the histogram and skip that step in the compression, +// It otherwise allows to inspect the histogram when compression is done. +// To indicate that you have populated the histogram call HistogramFinished +// with the value of the highest populated symbol, as well as the number of entries +// in the most populated entry. These are accepted at face value. +// The returned slice will always be length 256. +func (s *Scratch) Histogram() []uint32 { + return s.count[:] +} + +// HistogramFinished can be called to indicate that the histogram has been populated. +// maxSymbol is the index of the highest set symbol of the next data segment. +// maxCount is the number of entries in the most populated entry. +// These are accepted at face value. +func (s *Scratch) HistogramFinished(maxSymbol uint8, maxCount int) { + s.maxCount = maxCount + s.symbolLen = uint16(maxSymbol) + 1 + s.clearCount = maxCount != 0 +} + +// prepare will prepare and allocate scratch tables used for both compression and decompression. +func (s *Scratch) prepare(in []byte) (*Scratch, error) { + if s == nil { + s = &Scratch{} + } + if s.MaxSymbolValue == 0 { + s.MaxSymbolValue = 255 + } + if s.TableLog == 0 { + s.TableLog = defaultTablelog + } + if s.TableLog > maxTableLog { + return nil, fmt.Errorf("tableLog (%d) > maxTableLog (%d)", s.TableLog, maxTableLog) + } + if cap(s.Out) == 0 { + s.Out = make([]byte, 0, len(in)) + } + if s.clearCount && s.maxCount == 0 { + for i := range s.count { + s.count[i] = 0 + } + s.clearCount = false + } + s.br.init(in) + if s.DecompressLimit == 0 { + // Max size 2GB. + s.DecompressLimit = (2 << 30) - 1 + } + + return s, nil +} + +// tableStep returns the next table index. +func tableStep(tableSize uint32) uint32 { + return (tableSize >> 1) + (tableSize >> 3) + 3 +} + +func highBits(val uint32) (n uint32) { + return uint32(bits.Len32(val) - 1) +} diff --git a/vendor/github.com/klauspost/compress/huff0/.gitignore b/vendor/github.com/klauspost/compress/huff0/.gitignore new file mode 100644 index 0000000..b3d2629 --- /dev/null +++ b/vendor/github.com/klauspost/compress/huff0/.gitignore @@ -0,0 +1 @@ +/huff0-fuzz.zip diff --git a/vendor/github.com/klauspost/compress/huff0/README.md b/vendor/github.com/klauspost/compress/huff0/README.md new file mode 100644 index 0000000..0a8448c --- /dev/null +++ b/vendor/github.com/klauspost/compress/huff0/README.md @@ -0,0 +1,87 @@ +# Huff0 entropy compression + +This package provides Huff0 encoding and decoding as used in zstd. + +[Huff0](https://github.com/Cyan4973/FiniteStateEntropy#new-generation-entropy-coders), +a Huffman codec designed for modern CPU, featuring OoO (Out of Order) operations on multiple ALU +(Arithmetic Logic Unit), achieving extremely fast compression and decompression speeds. + +This can be used for compressing input with a lot of similar input values to the smallest number of bytes. +This does not perform any multi-byte [dictionary coding](https://en.wikipedia.org/wiki/Dictionary_coder) as LZ coders, +but it can be used as a secondary step to compressors (like Snappy) that does not do entropy encoding. + +* [Godoc documentation](https://godoc.org/github.com/klauspost/compress/huff0) + +THIS PACKAGE IS NOT CONSIDERED STABLE AND API OR ENCODING MAY CHANGE IN THE FUTURE. + +## News + + * Mar 2018: First implementation released. Consider this beta software for now. + +# Usage + +This package provides a low level interface that allows to compress single independent blocks. + +Each block is separate, and there is no built in integrity checks. +This means that the caller should keep track of block sizes and also do checksums if needed. + +Compressing a block is done via the [`Compress1X`](https://godoc.org/github.com/klauspost/compress/huff0#Compress1X) and +[`Compress4X`](https://godoc.org/github.com/klauspost/compress/huff0#Compress4X) functions. +You must provide input and will receive the output and maybe an error. + +These error values can be returned: + +| Error | Description | +|---------------------|-----------------------------------------------------------------------------| +| `` | Everything ok, output is returned | +| `ErrIncompressible` | Returned when input is judged to be too hard to compress | +| `ErrUseRLE` | Returned from the compressor when the input is a single byte value repeated | +| `ErrTooBig` | Returned if the input block exceeds the maximum allowed size (128 Kib) | +| `(error)` | An internal error occurred. | + + +As can be seen above some of there are errors that will be returned even under normal operation so it is important to handle these. + +To reduce allocations you can provide a [`Scratch`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch) object +that can be re-used for successive calls. Both compression and decompression accepts a `Scratch` object, and the same +object can be used for both. + +Be aware, that when re-using a `Scratch` object that the *output* buffer is also re-used, so if you are still using this +you must set the `Out` field in the scratch to nil. The same buffer is used for compression and decompression output. + +The `Scratch` object will retain state that allows to re-use previous tables for encoding and decoding. + +## Tables and re-use + +Huff0 allows for reusing tables from the previous block to save space if that is expected to give better/faster results. + +The Scratch object allows you to set a [`ReusePolicy`](https://godoc.org/github.com/klauspost/compress/huff0#ReusePolicy) +that controls this behaviour. See the documentation for details. This can be altered between each block. + +Do however note that this information is *not* stored in the output block and it is up to the users of the package to +record whether [`ReadTable`](https://godoc.org/github.com/klauspost/compress/huff0#ReadTable) should be called, +based on the boolean reported back from the CompressXX call. + +If you want to store the table separate from the data, you can access them as `OutData` and `OutTable` on the +[`Scratch`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch) object. + +## Decompressing + +The first part of decoding is to initialize the decoding table through [`ReadTable`](https://godoc.org/github.com/klauspost/compress/huff0#ReadTable). +This will initialize the decoding tables. +You can supply the complete block to `ReadTable` and it will return the data part of the block +which can be given to the decompressor. + +Decompressing is done by calling the [`Decompress1X`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch.Decompress1X) +or [`Decompress4X`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch.Decompress4X) function. + +You must provide the output from the compression stage, at exactly the size you got back. If you receive an error back +your input was likely corrupted. + +It is important to note that a successful decoding does *not* mean your output matches your original input. +There are no integrity checks, so relying on errors from the decompressor does not assure your data is valid. + +# Contributing + +Contributions are always welcome. Be aware that adding public functions will require good justification and breaking +changes will likely not be accepted. If in doubt open an issue before writing the PR. \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/huff0/bitreader.go b/vendor/github.com/klauspost/compress/huff0/bitreader.go new file mode 100644 index 0000000..7d0903c --- /dev/null +++ b/vendor/github.com/klauspost/compress/huff0/bitreader.go @@ -0,0 +1,115 @@ +// Copyright 2018 Klaus Post. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. + +package huff0 + +import ( + "errors" + "io" +) + +// bitReader reads a bitstream in reverse. +// The last set bit indicates the start of the stream and is used +// for aligning the input. +type bitReader struct { + in []byte + off uint // next byte to read is at in[off - 1] + value uint64 + bitsRead uint8 +} + +// init initializes and resets the bit reader. +func (b *bitReader) init(in []byte) error { + if len(in) < 1 { + return errors.New("corrupt stream: too short") + } + b.in = in + b.off = uint(len(in)) + // The highest bit of the last byte indicates where to start + v := in[len(in)-1] + if v == 0 { + return errors.New("corrupt stream, did not find end of stream") + } + b.bitsRead = 64 + b.value = 0 + b.fill() + b.fill() + b.bitsRead += 8 - uint8(highBit32(uint32(v))) + return nil +} + +// getBits will return n bits. n can be 0. +func (b *bitReader) getBits(n uint8) uint16 { + if n == 0 || b.bitsRead >= 64 { + return 0 + } + return b.getBitsFast(n) +} + +// getBitsFast requires that at least one bit is requested every time. +// There are no checks if the buffer is filled. +func (b *bitReader) getBitsFast(n uint8) uint16 { + const regMask = 64 - 1 + v := uint16((b.value << (b.bitsRead & regMask)) >> ((regMask + 1 - n) & regMask)) + b.bitsRead += n + return v +} + +// peekBitsFast requires that at least one bit is requested every time. +// There are no checks if the buffer is filled. +func (b *bitReader) peekBitsFast(n uint8) uint16 { + const regMask = 64 - 1 + v := uint16((b.value << (b.bitsRead & regMask)) >> ((regMask + 1 - n) & regMask)) + return v +} + +// fillFast() will make sure at least 32 bits are available. +// There must be at least 4 bytes available. +func (b *bitReader) fillFast() { + if b.bitsRead < 32 { + return + } + // Do single re-slice to avoid bounds checks. + v := b.in[b.off-4 : b.off] + low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) + b.value = (b.value << 32) | uint64(low) + b.bitsRead -= 32 + b.off -= 4 +} + +// fill() will make sure at least 32 bits are available. +func (b *bitReader) fill() { + if b.bitsRead < 32 { + return + } + if b.off > 4 { + v := b.in[b.off-4 : b.off] + low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) + b.value = (b.value << 32) | uint64(low) + b.bitsRead -= 32 + b.off -= 4 + return + } + for b.off > 0 { + b.value = (b.value << 8) | uint64(b.in[b.off-1]) + b.bitsRead -= 8 + b.off-- + } +} + +// finished returns true if all bits have been read from the bit stream. +func (b *bitReader) finished() bool { + return b.off == 0 && b.bitsRead >= 64 +} + +// close the bitstream and returns an error if out-of-buffer reads occurred. +func (b *bitReader) close() error { + // Release reference. + b.in = nil + if b.bitsRead > 64 { + return io.ErrUnexpectedEOF + } + return nil +} diff --git a/vendor/github.com/klauspost/compress/huff0/bitwriter.go b/vendor/github.com/klauspost/compress/huff0/bitwriter.go new file mode 100644 index 0000000..bda4021 --- /dev/null +++ b/vendor/github.com/klauspost/compress/huff0/bitwriter.go @@ -0,0 +1,197 @@ +// Copyright 2018 Klaus Post. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. + +package huff0 + +import "fmt" + +// bitWriter will write bits. +// First bit will be LSB of the first byte of output. +type bitWriter struct { + bitContainer uint64 + nBits uint8 + out []byte +} + +// bitMask16 is bitmasks. Has extra to avoid bounds check. +var bitMask16 = [32]uint16{ + 0, 1, 3, 7, 0xF, 0x1F, + 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, + 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF} /* up to 16 bits */ + +// addBits16NC will add up to 16 bits. +// It will not check if there is space for them, +// so the caller must ensure that it has flushed recently. +func (b *bitWriter) addBits16NC(value uint16, bits uint8) { + b.bitContainer |= uint64(value&bitMask16[bits&31]) << (b.nBits & 63) + b.nBits += bits +} + +// addBits16Clean will add up to 16 bits. value may not contain more set bits than indicated. +// It will not check if there is space for them, so the caller must ensure that it has flushed recently. +func (b *bitWriter) addBits16Clean(value uint16, bits uint8) { + b.bitContainer |= uint64(value) << (b.nBits & 63) + b.nBits += bits +} + +// encSymbol will add up to 16 bits. value may not contain more set bits than indicated. +// It will not check if there is space for them, so the caller must ensure that it has flushed recently. +func (b *bitWriter) encSymbol(ct cTable, symbol byte) { + enc := ct[symbol] + b.bitContainer |= uint64(enc.val) << (b.nBits & 63) + b.nBits += enc.nBits +} + +// encTwoSymbols will add up to 32 bits. value may not contain more set bits than indicated. +// It will not check if there is space for them, so the caller must ensure that it has flushed recently. +func (b *bitWriter) encTwoSymbols(ct cTable, av, bv byte) { + encA := ct[av] + encB := ct[bv] + sh := b.nBits & 63 + combined := uint64(encA.val) | (uint64(encB.val) << (encA.nBits & 63)) + b.bitContainer |= combined << sh + b.nBits += encA.nBits + encB.nBits +} + +// addBits16ZeroNC will add up to 16 bits. +// It will not check if there is space for them, +// so the caller must ensure that it has flushed recently. +// This is fastest if bits can be zero. +func (b *bitWriter) addBits16ZeroNC(value uint16, bits uint8) { + if bits == 0 { + return + } + value <<= (16 - bits) & 15 + value >>= (16 - bits) & 15 + b.bitContainer |= uint64(value) << (b.nBits & 63) + b.nBits += bits +} + +// flush will flush all pending full bytes. +// There will be at least 56 bits available for writing when this has been called. +// Using flush32 is faster, but leaves less space for writing. +func (b *bitWriter) flush() { + v := b.nBits >> 3 + switch v { + case 0: + return + case 1: + b.out = append(b.out, + byte(b.bitContainer), + ) + b.bitContainer >>= 1 << 3 + case 2: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + ) + b.bitContainer >>= 2 << 3 + case 3: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + ) + b.bitContainer >>= 3 << 3 + case 4: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + ) + b.bitContainer >>= 4 << 3 + case 5: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + ) + b.bitContainer >>= 5 << 3 + case 6: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + byte(b.bitContainer>>40), + ) + b.bitContainer >>= 6 << 3 + case 7: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + byte(b.bitContainer>>40), + byte(b.bitContainer>>48), + ) + b.bitContainer >>= 7 << 3 + case 8: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + byte(b.bitContainer>>40), + byte(b.bitContainer>>48), + byte(b.bitContainer>>56), + ) + b.bitContainer = 0 + b.nBits = 0 + return + default: + panic(fmt.Errorf("bits (%d) > 64", b.nBits)) + } + b.nBits &= 7 +} + +// flush32 will flush out, so there are at least 32 bits available for writing. +func (b *bitWriter) flush32() { + if b.nBits < 32 { + return + } + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24)) + b.nBits -= 32 + b.bitContainer >>= 32 +} + +// flushAlign will flush remaining full bytes and align to next byte boundary. +func (b *bitWriter) flushAlign() { + nbBytes := (b.nBits + 7) >> 3 + for i := uint8(0); i < nbBytes; i++ { + b.out = append(b.out, byte(b.bitContainer>>(i*8))) + } + b.nBits = 0 + b.bitContainer = 0 +} + +// close will write the alignment bit and write the final byte(s) +// to the output. +func (b *bitWriter) close() error { + // End mark + b.addBits16Clean(1, 1) + // flush until next byte. + b.flushAlign() + return nil +} + +// reset and continue writing by appending to out. +func (b *bitWriter) reset(out []byte) { + b.bitContainer = 0 + b.nBits = 0 + b.out = out +} diff --git a/vendor/github.com/klauspost/compress/huff0/bytereader.go b/vendor/github.com/klauspost/compress/huff0/bytereader.go new file mode 100644 index 0000000..50bcdf6 --- /dev/null +++ b/vendor/github.com/klauspost/compress/huff0/bytereader.go @@ -0,0 +1,54 @@ +// Copyright 2018 Klaus Post. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. + +package huff0 + +// byteReader provides a byte reader that reads +// little endian values from a byte stream. +// The input stream is manually advanced. +// The reader performs no bounds checks. +type byteReader struct { + b []byte + off int +} + +// init will initialize the reader and set the input. +func (b *byteReader) init(in []byte) { + b.b = in + b.off = 0 +} + +// advance the stream b n bytes. +func (b *byteReader) advance(n uint) { + b.off += int(n) +} + +// Int32 returns a little endian int32 starting at current offset. +func (b byteReader) Int32() int32 { + v3 := int32(b.b[b.off+3]) + v2 := int32(b.b[b.off+2]) + v1 := int32(b.b[b.off+1]) + v0 := int32(b.b[b.off]) + return (v3 << 24) | (v2 << 16) | (v1 << 8) | v0 +} + +// Uint32 returns a little endian uint32 starting at current offset. +func (b byteReader) Uint32() uint32 { + v3 := uint32(b.b[b.off+3]) + v2 := uint32(b.b[b.off+2]) + v1 := uint32(b.b[b.off+1]) + v0 := uint32(b.b[b.off]) + return (v3 << 24) | (v2 << 16) | (v1 << 8) | v0 +} + +// unread returns the unread portion of the input. +func (b byteReader) unread() []byte { + return b.b[b.off:] +} + +// remain will return the number of bytes remaining. +func (b byteReader) remain() int { + return len(b.b) - b.off +} diff --git a/vendor/github.com/klauspost/compress/huff0/compress.go b/vendor/github.com/klauspost/compress/huff0/compress.go new file mode 100644 index 0000000..0843cb0 --- /dev/null +++ b/vendor/github.com/klauspost/compress/huff0/compress.go @@ -0,0 +1,651 @@ +package huff0 + +import ( + "fmt" + "runtime" + "sync" +) + +// Compress1X will compress the input. +// The output can be decoded using Decompress1X. +// Supply a Scratch object. The scratch object contains state about re-use, +// So when sharing across independent encodes, be sure to set the re-use policy. +func Compress1X(in []byte, s *Scratch) (out []byte, reUsed bool, err error) { + s, err = s.prepare(in) + if err != nil { + return nil, false, err + } + return compress(in, s, s.compress1X) +} + +// Compress4X will compress the input. The input is split into 4 independent blocks +// and compressed similar to Compress1X. +// The output can be decoded using Decompress4X. +// Supply a Scratch object. The scratch object contains state about re-use, +// So when sharing across independent encodes, be sure to set the re-use policy. +func Compress4X(in []byte, s *Scratch) (out []byte, reUsed bool, err error) { + s, err = s.prepare(in) + if err != nil { + return nil, false, err + } + if false { + // TODO: compress4Xp only slightly faster. + const parallelThreshold = 8 << 10 + if len(in) < parallelThreshold || runtime.GOMAXPROCS(0) == 1 { + return compress(in, s, s.compress4X) + } + return compress(in, s, s.compress4Xp) + } + return compress(in, s, s.compress4X) +} + +func compress(in []byte, s *Scratch, compressor func(src []byte) ([]byte, error)) (out []byte, reUsed bool, err error) { + // Nuke previous table if we cannot reuse anyway. + if s.Reuse == ReusePolicyNone { + s.prevTable = s.prevTable[:0] + } + + // Create histogram, if none was provided. + maxCount := s.maxCount + var canReuse = false + if maxCount == 0 { + maxCount, canReuse = s.countSimple(in) + } else { + canReuse = s.canUseTable(s.prevTable) + } + + // We want the output size to be less than this: + wantSize := len(in) + if s.WantLogLess > 0 { + wantSize -= wantSize >> s.WantLogLess + } + + // Reset for next run. + s.clearCount = true + s.maxCount = 0 + if maxCount >= len(in) { + if maxCount > len(in) { + return nil, false, fmt.Errorf("maxCount (%d) > length (%d)", maxCount, len(in)) + } + if len(in) == 1 { + return nil, false, ErrIncompressible + } + // One symbol, use RLE + return nil, false, ErrUseRLE + } + if maxCount == 1 || maxCount < (len(in)>>7) { + // Each symbol present maximum once or too well distributed. + return nil, false, ErrIncompressible + } + + if s.Reuse == ReusePolicyPrefer && canReuse { + keepTable := s.cTable + keepTL := s.actualTableLog + s.cTable = s.prevTable + s.actualTableLog = s.prevTableLog + s.Out, err = compressor(in) + s.cTable = keepTable + s.actualTableLog = keepTL + if err == nil && len(s.Out) < wantSize { + s.OutData = s.Out + return s.Out, true, nil + } + // Do not attempt to re-use later. + s.prevTable = s.prevTable[:0] + } + + // Calculate new table. + err = s.buildCTable() + if err != nil { + return nil, false, err + } + + if false && !s.canUseTable(s.cTable) { + panic("invalid table generated") + } + + if s.Reuse == ReusePolicyAllow && canReuse { + hSize := len(s.Out) + oldSize := s.prevTable.estimateSize(s.count[:s.symbolLen]) + newSize := s.cTable.estimateSize(s.count[:s.symbolLen]) + if oldSize <= hSize+newSize || hSize+12 >= wantSize { + // Retain cTable even if we re-use. + keepTable := s.cTable + keepTL := s.actualTableLog + + s.cTable = s.prevTable + s.actualTableLog = s.prevTableLog + s.Out, err = compressor(in) + + // Restore ctable. + s.cTable = keepTable + s.actualTableLog = keepTL + if err != nil { + return nil, false, err + } + if len(s.Out) >= wantSize { + return nil, false, ErrIncompressible + } + s.OutData = s.Out + return s.Out, true, nil + } + } + + // Use new table + err = s.cTable.write(s) + if err != nil { + s.OutTable = nil + return nil, false, err + } + s.OutTable = s.Out + + // Compress using new table + s.Out, err = compressor(in) + if err != nil { + s.OutTable = nil + return nil, false, err + } + if len(s.Out) >= wantSize { + s.OutTable = nil + return nil, false, ErrIncompressible + } + // Move current table into previous. + s.prevTable, s.prevTableLog, s.cTable = s.cTable, s.actualTableLog, s.prevTable[:0] + s.OutData = s.Out[len(s.OutTable):] + return s.Out, false, nil +} + +func (s *Scratch) compress1X(src []byte) ([]byte, error) { + return s.compress1xDo(s.Out, src) +} + +func (s *Scratch) compress1xDo(dst, src []byte) ([]byte, error) { + var bw = bitWriter{out: dst} + + // N is length divisible by 4. + n := len(src) + n -= n & 3 + cTable := s.cTable[:256] + + // Encode last bytes. + for i := len(src) & 3; i > 0; i-- { + bw.encSymbol(cTable, src[n+i-1]) + } + n -= 4 + if s.actualTableLog <= 8 { + for ; n >= 0; n -= 4 { + tmp := src[n : n+4] + // tmp should be len 4 + bw.flush32() + bw.encTwoSymbols(cTable, tmp[3], tmp[2]) + bw.encTwoSymbols(cTable, tmp[1], tmp[0]) + } + } else { + for ; n >= 0; n -= 4 { + tmp := src[n : n+4] + // tmp should be len 4 + bw.flush32() + bw.encTwoSymbols(cTable, tmp[3], tmp[2]) + bw.flush32() + bw.encTwoSymbols(cTable, tmp[1], tmp[0]) + } + } + err := bw.close() + return bw.out, err +} + +var sixZeros [6]byte + +func (s *Scratch) compress4X(src []byte) ([]byte, error) { + if len(src) < 12 { + return nil, ErrIncompressible + } + segmentSize := (len(src) + 3) / 4 + + // Add placeholder for output length + offsetIdx := len(s.Out) + s.Out = append(s.Out, sixZeros[:]...) + + for i := 0; i < 4; i++ { + toDo := src + if len(toDo) > segmentSize { + toDo = toDo[:segmentSize] + } + src = src[len(toDo):] + + var err error + idx := len(s.Out) + s.Out, err = s.compress1xDo(s.Out, toDo) + if err != nil { + return nil, err + } + // Write compressed length as little endian before block. + if i < 3 { + // Last length is not written. + length := len(s.Out) - idx + s.Out[i*2+offsetIdx] = byte(length) + s.Out[i*2+offsetIdx+1] = byte(length >> 8) + } + } + + return s.Out, nil +} + +// compress4Xp will compress 4 streams using separate goroutines. +func (s *Scratch) compress4Xp(src []byte) ([]byte, error) { + if len(src) < 12 { + return nil, ErrIncompressible + } + // Add placeholder for output length + s.Out = s.Out[:6] + + segmentSize := (len(src) + 3) / 4 + var wg sync.WaitGroup + var errs [4]error + wg.Add(4) + for i := 0; i < 4; i++ { + toDo := src + if len(toDo) > segmentSize { + toDo = toDo[:segmentSize] + } + src = src[len(toDo):] + + // Separate goroutine for each block. + go func(i int) { + s.tmpOut[i], errs[i] = s.compress1xDo(s.tmpOut[i][:0], toDo) + wg.Done() + }(i) + } + wg.Wait() + for i := 0; i < 4; i++ { + if errs[i] != nil { + return nil, errs[i] + } + o := s.tmpOut[i] + // Write compressed length as little endian before block. + if i < 3 { + // Last length is not written. + s.Out[i*2] = byte(len(o)) + s.Out[i*2+1] = byte(len(o) >> 8) + } + + // Write output. + s.Out = append(s.Out, o...) + } + return s.Out, nil +} + +// countSimple will create a simple histogram in s.count. +// Returns the biggest count. +// Does not update s.clearCount. +func (s *Scratch) countSimple(in []byte) (max int, reuse bool) { + reuse = true + for _, v := range in { + s.count[v]++ + } + m := uint32(0) + if len(s.prevTable) > 0 { + for i, v := range s.count[:] { + if v > m { + m = v + } + if v > 0 { + s.symbolLen = uint16(i) + 1 + if i >= len(s.prevTable) { + reuse = false + } else { + if s.prevTable[i].nBits == 0 { + reuse = false + } + } + } + } + return int(m), reuse + } + for i, v := range s.count[:] { + if v > m { + m = v + } + if v > 0 { + s.symbolLen = uint16(i) + 1 + } + } + return int(m), false +} + +func (s *Scratch) canUseTable(c cTable) bool { + if len(c) < int(s.symbolLen) { + return false + } + for i, v := range s.count[:s.symbolLen] { + if v != 0 && c[i].nBits == 0 { + return false + } + } + return true +} + +func (s *Scratch) validateTable(c cTable) bool { + if len(c) < int(s.symbolLen) { + return false + } + for i, v := range s.count[:s.symbolLen] { + if v != 0 { + if c[i].nBits == 0 { + return false + } + if c[i].nBits > s.actualTableLog { + return false + } + } + } + return true +} + +// minTableLog provides the minimum logSize to safely represent a distribution. +func (s *Scratch) minTableLog() uint8 { + minBitsSrc := highBit32(uint32(s.br.remain())) + 1 + minBitsSymbols := highBit32(uint32(s.symbolLen-1)) + 2 + if minBitsSrc < minBitsSymbols { + return uint8(minBitsSrc) + } + return uint8(minBitsSymbols) +} + +// optimalTableLog calculates and sets the optimal tableLog in s.actualTableLog +func (s *Scratch) optimalTableLog() { + tableLog := s.TableLog + minBits := s.minTableLog() + maxBitsSrc := uint8(highBit32(uint32(s.br.remain()-1))) - 1 + if maxBitsSrc < tableLog { + // Accuracy can be reduced + tableLog = maxBitsSrc + } + if minBits > tableLog { + tableLog = minBits + } + // Need a minimum to safely represent all symbol values + if tableLog < minTablelog { + tableLog = minTablelog + } + if tableLog > tableLogMax { + tableLog = tableLogMax + } + s.actualTableLog = tableLog +} + +type cTableEntry struct { + val uint16 + nBits uint8 + // We have 8 bits extra +} + +const huffNodesMask = huffNodesLen - 1 + +func (s *Scratch) buildCTable() error { + s.optimalTableLog() + s.huffSort() + if cap(s.cTable) < maxSymbolValue+1 { + s.cTable = make([]cTableEntry, s.symbolLen, maxSymbolValue+1) + } else { + s.cTable = s.cTable[:s.symbolLen] + for i := range s.cTable { + s.cTable[i] = cTableEntry{} + } + } + + var startNode = int16(s.symbolLen) + nonNullRank := s.symbolLen - 1 + + nodeNb := int16(startNode) + huffNode := s.nodes[1 : huffNodesLen+1] + + // This overlays the slice above, but allows "-1" index lookups. + // Different from reference implementation. + huffNode0 := s.nodes[0 : huffNodesLen+1] + + for huffNode[nonNullRank].count == 0 { + nonNullRank-- + } + + lowS := int16(nonNullRank) + nodeRoot := nodeNb + lowS - 1 + lowN := nodeNb + huffNode[nodeNb].count = huffNode[lowS].count + huffNode[lowS-1].count + huffNode[lowS].parent, huffNode[lowS-1].parent = uint16(nodeNb), uint16(nodeNb) + nodeNb++ + lowS -= 2 + for n := nodeNb; n <= nodeRoot; n++ { + huffNode[n].count = 1 << 30 + } + // fake entry, strong barrier + huffNode0[0].count = 1 << 31 + + // create parents + for nodeNb <= nodeRoot { + var n1, n2 int16 + if huffNode0[lowS+1].count < huffNode0[lowN+1].count { + n1 = lowS + lowS-- + } else { + n1 = lowN + lowN++ + } + if huffNode0[lowS+1].count < huffNode0[lowN+1].count { + n2 = lowS + lowS-- + } else { + n2 = lowN + lowN++ + } + + huffNode[nodeNb].count = huffNode0[n1+1].count + huffNode0[n2+1].count + huffNode0[n1+1].parent, huffNode0[n2+1].parent = uint16(nodeNb), uint16(nodeNb) + nodeNb++ + } + + // distribute weights (unlimited tree height) + huffNode[nodeRoot].nbBits = 0 + for n := nodeRoot - 1; n >= startNode; n-- { + huffNode[n].nbBits = huffNode[huffNode[n].parent].nbBits + 1 + } + for n := uint16(0); n <= nonNullRank; n++ { + huffNode[n].nbBits = huffNode[huffNode[n].parent].nbBits + 1 + } + s.actualTableLog = s.setMaxHeight(int(nonNullRank)) + maxNbBits := s.actualTableLog + + // fill result into tree (val, nbBits) + if maxNbBits > tableLogMax { + return fmt.Errorf("internal error: maxNbBits (%d) > tableLogMax (%d)", maxNbBits, tableLogMax) + } + var nbPerRank [tableLogMax + 1]uint16 + var valPerRank [16]uint16 + for _, v := range huffNode[:nonNullRank+1] { + nbPerRank[v.nbBits]++ + } + // determine stating value per rank + { + min := uint16(0) + for n := maxNbBits; n > 0; n-- { + // get starting value within each rank + valPerRank[n] = min + min += nbPerRank[n] + min >>= 1 + } + } + + // push nbBits per symbol, symbol order + for _, v := range huffNode[:nonNullRank+1] { + s.cTable[v.symbol].nBits = v.nbBits + } + + // assign value within rank, symbol order + t := s.cTable[:s.symbolLen] + for n, val := range t { + nbits := val.nBits & 15 + v := valPerRank[nbits] + t[n].val = v + valPerRank[nbits] = v + 1 + } + + return nil +} + +// huffSort will sort symbols, decreasing order. +func (s *Scratch) huffSort() { + type rankPos struct { + base uint32 + current uint32 + } + + // Clear nodes + nodes := s.nodes[:huffNodesLen+1] + s.nodes = nodes + nodes = nodes[1 : huffNodesLen+1] + + // Sort into buckets based on length of symbol count. + var rank [32]rankPos + for _, v := range s.count[:s.symbolLen] { + r := highBit32(v+1) & 31 + rank[r].base++ + } + // maxBitLength is log2(BlockSizeMax) + 1 + const maxBitLength = 18 + 1 + for n := maxBitLength; n > 0; n-- { + rank[n-1].base += rank[n].base + } + for n := range rank[:maxBitLength] { + rank[n].current = rank[n].base + } + for n, c := range s.count[:s.symbolLen] { + r := (highBit32(c+1) + 1) & 31 + pos := rank[r].current + rank[r].current++ + prev := nodes[(pos-1)&huffNodesMask] + for pos > rank[r].base && c > prev.count { + nodes[pos&huffNodesMask] = prev + pos-- + prev = nodes[(pos-1)&huffNodesMask] + } + nodes[pos&huffNodesMask] = nodeElt{count: c, symbol: byte(n)} + } + return +} + +func (s *Scratch) setMaxHeight(lastNonNull int) uint8 { + maxNbBits := s.actualTableLog + huffNode := s.nodes[1 : huffNodesLen+1] + //huffNode = huffNode[: huffNodesLen] + + largestBits := huffNode[lastNonNull].nbBits + + // early exit : no elt > maxNbBits + if largestBits <= maxNbBits { + return largestBits + } + totalCost := int(0) + baseCost := int(1) << (largestBits - maxNbBits) + n := uint32(lastNonNull) + + for huffNode[n].nbBits > maxNbBits { + totalCost += baseCost - (1 << (largestBits - huffNode[n].nbBits)) + huffNode[n].nbBits = maxNbBits + n-- + } + // n stops at huffNode[n].nbBits <= maxNbBits + + for huffNode[n].nbBits == maxNbBits { + n-- + } + // n end at index of smallest symbol using < maxNbBits + + // renorm totalCost + totalCost >>= largestBits - maxNbBits /* note : totalCost is necessarily a multiple of baseCost */ + + // repay normalized cost + { + const noSymbol = 0xF0F0F0F0 + var rankLast [tableLogMax + 2]uint32 + + for i := range rankLast[:] { + rankLast[i] = noSymbol + } + + // Get pos of last (smallest) symbol per rank + { + currentNbBits := uint8(maxNbBits) + for pos := int(n); pos >= 0; pos-- { + if huffNode[pos].nbBits >= currentNbBits { + continue + } + currentNbBits = huffNode[pos].nbBits // < maxNbBits + rankLast[maxNbBits-currentNbBits] = uint32(pos) + } + } + + for totalCost > 0 { + nBitsToDecrease := uint8(highBit32(uint32(totalCost))) + 1 + + for ; nBitsToDecrease > 1; nBitsToDecrease-- { + highPos := rankLast[nBitsToDecrease] + lowPos := rankLast[nBitsToDecrease-1] + if highPos == noSymbol { + continue + } + if lowPos == noSymbol { + break + } + highTotal := huffNode[highPos].count + lowTotal := 2 * huffNode[lowPos].count + if highTotal <= lowTotal { + break + } + } + // only triggered when no more rank 1 symbol left => find closest one (note : there is necessarily at least one !) + // HUF_MAX_TABLELOG test just to please gcc 5+; but it should not be necessary + // FIXME: try to remove + for (nBitsToDecrease <= tableLogMax) && (rankLast[nBitsToDecrease] == noSymbol) { + nBitsToDecrease++ + } + totalCost -= 1 << (nBitsToDecrease - 1) + if rankLast[nBitsToDecrease-1] == noSymbol { + // this rank is no longer empty + rankLast[nBitsToDecrease-1] = rankLast[nBitsToDecrease] + } + huffNode[rankLast[nBitsToDecrease]].nbBits++ + if rankLast[nBitsToDecrease] == 0 { + /* special case, reached largest symbol */ + rankLast[nBitsToDecrease] = noSymbol + } else { + rankLast[nBitsToDecrease]-- + if huffNode[rankLast[nBitsToDecrease]].nbBits != maxNbBits-nBitsToDecrease { + rankLast[nBitsToDecrease] = noSymbol /* this rank is now empty */ + } + } + } + + for totalCost < 0 { /* Sometimes, cost correction overshoot */ + if rankLast[1] == noSymbol { /* special case : no rank 1 symbol (using maxNbBits-1); let's create one from largest rank 0 (using maxNbBits) */ + for huffNode[n].nbBits == maxNbBits { + n-- + } + huffNode[n+1].nbBits-- + rankLast[1] = n + 1 + totalCost++ + continue + } + huffNode[rankLast[1]+1].nbBits-- + rankLast[1]++ + totalCost++ + } + } + return maxNbBits +} + +type nodeElt struct { + count uint32 + parent uint16 + symbol byte + nbBits uint8 +} diff --git a/vendor/github.com/klauspost/compress/huff0/decompress.go b/vendor/github.com/klauspost/compress/huff0/decompress.go new file mode 100644 index 0000000..97ae66a --- /dev/null +++ b/vendor/github.com/klauspost/compress/huff0/decompress.go @@ -0,0 +1,472 @@ +package huff0 + +import ( + "errors" + "fmt" + "io" + + "github.com/klauspost/compress/fse" +) + +type dTable struct { + single []dEntrySingle + double []dEntryDouble +} + +// single-symbols decoding +type dEntrySingle struct { + entry uint16 +} + +// double-symbols decoding +type dEntryDouble struct { + seq uint16 + nBits uint8 + len uint8 +} + +// ReadTable will read a table from the input. +// The size of the input may be larger than the table definition. +// Any content remaining after the table definition will be returned. +// If no Scratch is provided a new one is allocated. +// The returned Scratch can be used for decoding input using this table. +func ReadTable(in []byte, s *Scratch) (s2 *Scratch, remain []byte, err error) { + s, err = s.prepare(in) + if err != nil { + return s, nil, err + } + if len(in) <= 1 { + return s, nil, errors.New("input too small for table") + } + iSize := in[0] + in = in[1:] + if iSize >= 128 { + // Uncompressed + oSize := iSize - 127 + iSize = (oSize + 1) / 2 + if int(iSize) > len(in) { + return s, nil, errors.New("input too small for table") + } + for n := uint8(0); n < oSize; n += 2 { + v := in[n/2] + s.huffWeight[n] = v >> 4 + s.huffWeight[n+1] = v & 15 + } + s.symbolLen = uint16(oSize) + in = in[iSize:] + } else { + if len(in) <= int(iSize) { + return s, nil, errors.New("input too small for table") + } + // FSE compressed weights + s.fse.DecompressLimit = 255 + hw := s.huffWeight[:] + s.fse.Out = hw + b, err := fse.Decompress(in[:iSize], s.fse) + s.fse.Out = nil + if err != nil { + return s, nil, err + } + if len(b) > 255 { + return s, nil, errors.New("corrupt input: output table too large") + } + s.symbolLen = uint16(len(b)) + in = in[iSize:] + } + + // collect weight stats + var rankStats [16]uint32 + weightTotal := uint32(0) + for _, v := range s.huffWeight[:s.symbolLen] { + if v > tableLogMax { + return s, nil, errors.New("corrupt input: weight too large") + } + v2 := v & 15 + rankStats[v2]++ + weightTotal += (1 << v2) >> 1 + } + if weightTotal == 0 { + return s, nil, errors.New("corrupt input: weights zero") + } + + // get last non-null symbol weight (implied, total must be 2^n) + { + tableLog := highBit32(weightTotal) + 1 + if tableLog > tableLogMax { + return s, nil, errors.New("corrupt input: tableLog too big") + } + s.actualTableLog = uint8(tableLog) + // determine last weight + { + total := uint32(1) << tableLog + rest := total - weightTotal + verif := uint32(1) << highBit32(rest) + lastWeight := highBit32(rest) + 1 + if verif != rest { + // last value must be a clean power of 2 + return s, nil, errors.New("corrupt input: last value not power of two") + } + s.huffWeight[s.symbolLen] = uint8(lastWeight) + s.symbolLen++ + rankStats[lastWeight]++ + } + } + + if (rankStats[1] < 2) || (rankStats[1]&1 != 0) { + // by construction : at least 2 elts of rank 1, must be even + return s, nil, errors.New("corrupt input: min elt size, even check failed ") + } + + // TODO: Choose between single/double symbol decoding + + // Calculate starting value for each rank + { + var nextRankStart uint32 + for n := uint8(1); n < s.actualTableLog+1; n++ { + current := nextRankStart + nextRankStart += rankStats[n] << (n - 1) + rankStats[n] = current + } + } + + // fill DTable (always full size) + tSize := 1 << tableLogMax + if len(s.dt.single) != tSize { + s.dt.single = make([]dEntrySingle, tSize) + } + for n, w := range s.huffWeight[:s.symbolLen] { + if w == 0 { + continue + } + length := (uint32(1) << w) >> 1 + d := dEntrySingle{ + entry: uint16(s.actualTableLog+1-w) | (uint16(n) << 8), + } + single := s.dt.single[rankStats[w] : rankStats[w]+length] + for i := range single { + single[i] = d + } + rankStats[w] += length + } + return s, in, nil +} + +// Decompress1X will decompress a 1X encoded stream. +// The length of the supplied input must match the end of a block exactly. +// Before this is called, the table must be initialized with ReadTable unless +// the encoder re-used the table. +func (s *Scratch) Decompress1X(in []byte) (out []byte, err error) { + if len(s.dt.single) == 0 { + return nil, errors.New("no table loaded") + } + var br bitReader + err = br.init(in) + if err != nil { + return nil, err + } + s.Out = s.Out[:0] + + decode := func() byte { + val := br.peekBitsFast(s.actualTableLog) /* note : actualTableLog >= 1 */ + v := s.dt.single[val] + br.bitsRead += uint8(v.entry) + return uint8(v.entry >> 8) + } + hasDec := func(v dEntrySingle) byte { + br.bitsRead += uint8(v.entry) + return uint8(v.entry >> 8) + } + + // Avoid bounds check by always having full sized table. + const tlSize = 1 << tableLogMax + const tlMask = tlSize - 1 + dt := s.dt.single[:tlSize] + + // Use temp table to avoid bound checks/append penalty. + var tmp = s.huffWeight[:256] + var off uint8 + + for br.off >= 8 { + br.fillFast() + tmp[off+0] = hasDec(dt[br.peekBitsFast(s.actualTableLog)&tlMask]) + tmp[off+1] = hasDec(dt[br.peekBitsFast(s.actualTableLog)&tlMask]) + br.fillFast() + tmp[off+2] = hasDec(dt[br.peekBitsFast(s.actualTableLog)&tlMask]) + tmp[off+3] = hasDec(dt[br.peekBitsFast(s.actualTableLog)&tlMask]) + off += 4 + if off == 0 { + if len(s.Out)+256 > s.MaxDecodedSize { + br.close() + return nil, ErrMaxDecodedSizeExceeded + } + s.Out = append(s.Out, tmp...) + } + } + + if len(s.Out)+int(off) > s.MaxDecodedSize { + br.close() + return nil, ErrMaxDecodedSizeExceeded + } + s.Out = append(s.Out, tmp[:off]...) + + for !br.finished() { + br.fill() + if len(s.Out) >= s.MaxDecodedSize { + br.close() + return nil, ErrMaxDecodedSizeExceeded + } + s.Out = append(s.Out, decode()) + } + return s.Out, br.close() +} + +// Decompress4X will decompress a 4X encoded stream. +// Before this is called, the table must be initialized with ReadTable unless +// the encoder re-used the table. +// The length of the supplied input must match the end of a block exactly. +// The destination size of the uncompressed data must be known and provided. +func (s *Scratch) Decompress4X(in []byte, dstSize int) (out []byte, err error) { + if len(s.dt.single) == 0 { + return nil, errors.New("no table loaded") + } + if len(in) < 6+(4*1) { + return nil, errors.New("input too small") + } + if dstSize > s.MaxDecodedSize { + return nil, ErrMaxDecodedSizeExceeded + } + // TODO: We do not detect when we overrun a buffer, except if the last one does. + + var br [4]bitReader + start := 6 + for i := 0; i < 3; i++ { + length := int(in[i*2]) | (int(in[i*2+1]) << 8) + if start+length >= len(in) { + return nil, errors.New("truncated input (or invalid offset)") + } + err = br[i].init(in[start : start+length]) + if err != nil { + return nil, err + } + start += length + } + err = br[3].init(in[start:]) + if err != nil { + return nil, err + } + + // Prepare output + if cap(s.Out) < dstSize { + s.Out = make([]byte, 0, dstSize) + } + s.Out = s.Out[:dstSize] + // destination, offset to match first output + dstOut := s.Out + dstEvery := (dstSize + 3) / 4 + + const tlSize = 1 << tableLogMax + const tlMask = tlSize - 1 + single := s.dt.single[:tlSize] + + decode := func(br *bitReader) byte { + val := br.peekBitsFast(s.actualTableLog) /* note : actualTableLog >= 1 */ + v := single[val&tlMask] + br.bitsRead += uint8(v.entry) + return uint8(v.entry >> 8) + } + + // Use temp table to avoid bound checks/append penalty. + var tmp = s.huffWeight[:256] + var off uint8 + var decoded int + + // Decode 2 values from each decoder/loop. + const bufoff = 256 / 4 +bigloop: + for { + for i := range br { + br := &br[i] + if br.off < 4 { + break bigloop + } + br.fillFast() + } + + { + const stream = 0 + val := br[stream].peekBitsFast(s.actualTableLog) + v := single[val&tlMask] + br[stream].bitsRead += uint8(v.entry) + + val2 := br[stream].peekBitsFast(s.actualTableLog) + v2 := single[val2&tlMask] + tmp[off+bufoff*stream+1] = uint8(v2.entry >> 8) + tmp[off+bufoff*stream] = uint8(v.entry >> 8) + br[stream].bitsRead += uint8(v2.entry) + } + + { + const stream = 1 + val := br[stream].peekBitsFast(s.actualTableLog) + v := single[val&tlMask] + br[stream].bitsRead += uint8(v.entry) + + val2 := br[stream].peekBitsFast(s.actualTableLog) + v2 := single[val2&tlMask] + tmp[off+bufoff*stream+1] = uint8(v2.entry >> 8) + tmp[off+bufoff*stream] = uint8(v.entry >> 8) + br[stream].bitsRead += uint8(v2.entry) + } + + { + const stream = 2 + val := br[stream].peekBitsFast(s.actualTableLog) + v := single[val&tlMask] + br[stream].bitsRead += uint8(v.entry) + + val2 := br[stream].peekBitsFast(s.actualTableLog) + v2 := single[val2&tlMask] + tmp[off+bufoff*stream+1] = uint8(v2.entry >> 8) + tmp[off+bufoff*stream] = uint8(v.entry >> 8) + br[stream].bitsRead += uint8(v2.entry) + } + + { + const stream = 3 + val := br[stream].peekBitsFast(s.actualTableLog) + v := single[val&tlMask] + br[stream].bitsRead += uint8(v.entry) + + val2 := br[stream].peekBitsFast(s.actualTableLog) + v2 := single[val2&tlMask] + tmp[off+bufoff*stream+1] = uint8(v2.entry >> 8) + tmp[off+bufoff*stream] = uint8(v.entry >> 8) + br[stream].bitsRead += uint8(v2.entry) + } + + off += 2 + + if off == bufoff { + if bufoff > dstEvery { + return nil, errors.New("corruption detected: stream overrun 1") + } + copy(dstOut, tmp[:bufoff]) + copy(dstOut[dstEvery:], tmp[bufoff:bufoff*2]) + copy(dstOut[dstEvery*2:], tmp[bufoff*2:bufoff*3]) + copy(dstOut[dstEvery*3:], tmp[bufoff*3:bufoff*4]) + off = 0 + dstOut = dstOut[bufoff:] + decoded += 256 + // There must at least be 3 buffers left. + if len(dstOut) < dstEvery*3 { + return nil, errors.New("corruption detected: stream overrun 2") + } + } + } + if off > 0 { + ioff := int(off) + if len(dstOut) < dstEvery*3+ioff { + return nil, errors.New("corruption detected: stream overrun 3") + } + copy(dstOut, tmp[:off]) + copy(dstOut[dstEvery:dstEvery+ioff], tmp[bufoff:bufoff*2]) + copy(dstOut[dstEvery*2:dstEvery*2+ioff], tmp[bufoff*2:bufoff*3]) + copy(dstOut[dstEvery*3:dstEvery*3+ioff], tmp[bufoff*3:bufoff*4]) + decoded += int(off) * 4 + dstOut = dstOut[off:] + } + + // Decode remaining. + for i := range br { + offset := dstEvery * i + br := &br[i] + for !br.finished() { + br.fill() + if offset >= len(dstOut) { + return nil, errors.New("corruption detected: stream overrun 4") + } + dstOut[offset] = decode(br) + offset++ + } + decoded += offset - dstEvery*i + err = br.close() + if err != nil { + return nil, err + } + } + if dstSize != decoded { + return nil, errors.New("corruption detected: short output block") + } + return s.Out, nil +} + +// matches will compare a decoding table to a coding table. +// Errors are written to the writer. +// Nothing will be written if table is ok. +func (s *Scratch) matches(ct cTable, w io.Writer) { + if s == nil || len(s.dt.single) == 0 { + return + } + dt := s.dt.single[:1<>8) == byte(sym) { + fmt.Fprintf(w, "symbol %x has decoder, but no encoder\n", sym) + errs++ + break + } + } + if errs == 0 { + broken-- + } + continue + } + // Unused bits in input + ub := tablelog - enc.nBits + top := enc.val << ub + // decoder looks at top bits. + dec := dt[top] + if uint8(dec.entry) != enc.nBits { + fmt.Fprintf(w, "symbol 0x%x bit size mismatch (enc: %d, dec:%d).\n", sym, enc.nBits, uint8(dec.entry)) + errs++ + } + if uint8(dec.entry>>8) != uint8(sym) { + fmt.Fprintf(w, "symbol 0x%x decoder output mismatch (enc: %d, dec:%d).\n", sym, sym, uint8(dec.entry>>8)) + errs++ + } + if errs > 0 { + fmt.Fprintf(w, "%d errros in base, stopping\n", errs) + continue + } + // Ensure that all combinations are covered. + for i := uint16(0); i < (1 << ub); i++ { + vval := top | i + dec := dt[vval] + if uint8(dec.entry) != enc.nBits { + fmt.Fprintf(w, "symbol 0x%x bit size mismatch (enc: %d, dec:%d).\n", vval, enc.nBits, uint8(dec.entry)) + errs++ + } + if uint8(dec.entry>>8) != uint8(sym) { + fmt.Fprintf(w, "symbol 0x%x decoder output mismatch (enc: %d, dec:%d).\n", vval, sym, uint8(dec.entry>>8)) + errs++ + } + if errs > 20 { + fmt.Fprintf(w, "%d errros, stopping\n", errs) + break + } + } + if errs == 0 { + ok++ + broken-- + } + } + if broken > 0 { + fmt.Fprintf(w, "%d broken, %d ok\n", broken, ok) + } +} diff --git a/vendor/github.com/klauspost/compress/huff0/huff0.go b/vendor/github.com/klauspost/compress/huff0/huff0.go new file mode 100644 index 0000000..53249df --- /dev/null +++ b/vendor/github.com/klauspost/compress/huff0/huff0.go @@ -0,0 +1,259 @@ +// Package huff0 provides fast huffman encoding as used in zstd. +// +// See README.md at https://github.com/klauspost/compress/tree/master/huff0 for details. +package huff0 + +import ( + "errors" + "fmt" + "math" + "math/bits" + + "github.com/klauspost/compress/fse" +) + +const ( + maxSymbolValue = 255 + + // zstandard limits tablelog to 11, see: + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#huffman-tree-description + tableLogMax = 11 + tableLogDefault = 11 + minTablelog = 5 + huffNodesLen = 512 + + // BlockSizeMax is maximum input size for a single block uncompressed. + BlockSizeMax = 1<<18 - 1 +) + +var ( + // ErrIncompressible is returned when input is judged to be too hard to compress. + ErrIncompressible = errors.New("input is not compressible") + + // ErrUseRLE is returned from the compressor when the input is a single byte value repeated. + ErrUseRLE = errors.New("input is single value repeated") + + // ErrTooBig is return if input is too large for a single block. + ErrTooBig = errors.New("input too big") + + // ErrMaxDecodedSizeExceeded is return if input is too large for a single block. + ErrMaxDecodedSizeExceeded = errors.New("maximum output size exceeded") +) + +type ReusePolicy uint8 + +const ( + // ReusePolicyAllow will allow reuse if it produces smaller output. + ReusePolicyAllow ReusePolicy = iota + + // ReusePolicyPrefer will re-use aggressively if possible. + // This will not check if a new table will produce smaller output, + // except if the current table is impossible to use or + // compressed output is bigger than input. + ReusePolicyPrefer + + // ReusePolicyNone will disable re-use of tables. + // This is slightly faster than ReusePolicyAllow but may produce larger output. + ReusePolicyNone +) + +type Scratch struct { + count [maxSymbolValue + 1]uint32 + + // Per block parameters. + // These can be used to override compression parameters of the block. + // Do not touch, unless you know what you are doing. + + // Out is output buffer. + // If the scratch is re-used before the caller is done processing the output, + // set this field to nil. + // Otherwise the output buffer will be re-used for next Compression/Decompression step + // and allocation will be avoided. + Out []byte + + // OutTable will contain the table data only, if a new table has been generated. + // Slice of the returned data. + OutTable []byte + + // OutData will contain the compressed data. + // Slice of the returned data. + OutData []byte + + // MaxSymbolValue will override the maximum symbol value of the next block. + MaxSymbolValue uint8 + + // TableLog will attempt to override the tablelog for the next block. + // Must be <= 11 and >= 5. + TableLog uint8 + + // Reuse will specify the reuse policy + Reuse ReusePolicy + + // WantLogLess allows to specify a log 2 reduction that should at least be achieved, + // otherwise the block will be returned as incompressible. + // The reduction should then at least be (input size >> WantLogLess) + // If WantLogLess == 0 any improvement will do. + WantLogLess uint8 + + // MaxDecodedSize will set the maximum allowed output size. + // This value will automatically be set to BlockSizeMax if not set. + // Decoders will return ErrMaxDecodedSizeExceeded is this limit is exceeded. + MaxDecodedSize int + + br byteReader + symbolLen uint16 // Length of active part of the symbol table. + maxCount int // count of the most probable symbol + clearCount bool // clear count + actualTableLog uint8 // Selected tablelog. + prevTableLog uint8 // Tablelog for previous table + prevTable cTable // Table used for previous compression. + cTable cTable // compression table + dt dTable // decompression table + nodes []nodeElt + tmpOut [4][]byte + fse *fse.Scratch + huffWeight [maxSymbolValue + 1]byte +} + +func (s *Scratch) prepare(in []byte) (*Scratch, error) { + if len(in) > BlockSizeMax { + return nil, ErrTooBig + } + if s == nil { + s = &Scratch{} + } + if s.MaxSymbolValue == 0 { + s.MaxSymbolValue = maxSymbolValue + } + if s.TableLog == 0 { + s.TableLog = tableLogDefault + } + if s.TableLog > tableLogMax || s.TableLog < minTablelog { + return nil, fmt.Errorf(" invalid tableLog %d (%d -> %d)", s.TableLog, minTablelog, tableLogMax) + } + if s.MaxDecodedSize <= 0 || s.MaxDecodedSize > BlockSizeMax { + s.MaxDecodedSize = BlockSizeMax + } + if s.clearCount && s.maxCount == 0 { + for i := range s.count { + s.count[i] = 0 + } + s.clearCount = false + } + if cap(s.Out) == 0 { + s.Out = make([]byte, 0, len(in)) + } + s.Out = s.Out[:0] + + s.OutTable = nil + s.OutData = nil + if cap(s.nodes) < huffNodesLen+1 { + s.nodes = make([]nodeElt, 0, huffNodesLen+1) + } + s.nodes = s.nodes[:0] + if s.fse == nil { + s.fse = &fse.Scratch{} + } + s.br.init(in) + + return s, nil +} + +type cTable []cTableEntry + +func (c cTable) write(s *Scratch) error { + var ( + // precomputed conversion table + bitsToWeight [tableLogMax + 1]byte + huffLog = s.actualTableLog + // last weight is not saved. + maxSymbolValue = uint8(s.symbolLen - 1) + huffWeight = s.huffWeight[:256] + ) + const ( + maxFSETableLog = 6 + ) + // convert to weight + bitsToWeight[0] = 0 + for n := uint8(1); n < huffLog+1; n++ { + bitsToWeight[n] = huffLog + 1 - n + } + + // Acquire histogram for FSE. + hist := s.fse.Histogram() + hist = hist[:256] + for i := range hist[:16] { + hist[i] = 0 + } + for n := uint8(0); n < maxSymbolValue; n++ { + v := bitsToWeight[c[n].nBits] & 15 + huffWeight[n] = v + hist[v]++ + } + + // FSE compress if feasible. + if maxSymbolValue >= 2 { + huffMaxCnt := uint32(0) + huffMax := uint8(0) + for i, v := range hist[:16] { + if v == 0 { + continue + } + huffMax = byte(i) + if v > huffMaxCnt { + huffMaxCnt = v + } + } + s.fse.HistogramFinished(huffMax, int(huffMaxCnt)) + s.fse.TableLog = maxFSETableLog + b, err := fse.Compress(huffWeight[:maxSymbolValue], s.fse) + if err == nil && len(b) < int(s.symbolLen>>1) { + s.Out = append(s.Out, uint8(len(b))) + s.Out = append(s.Out, b...) + return nil + } + // Unable to compress (RLE/uncompressible) + } + // write raw values as 4-bits (max : 15) + if maxSymbolValue > (256 - 128) { + // should not happen : likely means source cannot be compressed + return ErrIncompressible + } + op := s.Out + // special case, pack weights 4 bits/weight. + op = append(op, 128|(maxSymbolValue-1)) + // be sure it doesn't cause msan issue in final combination + huffWeight[maxSymbolValue] = 0 + for n := uint16(0); n < uint16(maxSymbolValue); n += 2 { + op = append(op, (huffWeight[n]<<4)|huffWeight[n+1]) + } + s.Out = op + return nil +} + +// estimateSize returns the estimated size in bytes of the input represented in the +// histogram supplied. +func (c cTable) estimateSize(hist []uint32) int { + nbBits := uint32(7) + for i, v := range c[:len(hist)] { + nbBits += uint32(v.nBits) * hist[i] + } + return int(nbBits >> 3) +} + +// minSize returns the minimum possible size considering the shannon limit. +func (s *Scratch) minSize(total int) int { + nbBits := float64(7) + fTotal := float64(total) + for _, v := range s.count[:s.symbolLen] { + n := float64(v) + if n > 0 { + nbBits += math.Log2(fTotal/n) * n + } + } + return int(nbBits) >> 3 +} + +func highBit32(val uint32) (n uint32) { + return uint32(bits.Len32(val) - 1) +} diff --git a/vendor/github.com/klauspost/compress/snappy/.gitignore b/vendor/github.com/klauspost/compress/snappy/.gitignore new file mode 100644 index 0000000..042091d --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/.gitignore @@ -0,0 +1,16 @@ +cmd/snappytool/snappytool +testdata/bench + +# These explicitly listed benchmark data files are for an obsolete version of +# snappy_test.go. +testdata/alice29.txt +testdata/asyoulik.txt +testdata/fireworks.jpeg +testdata/geo.protodata +testdata/html +testdata/html_x_4 +testdata/kppkn.gtb +testdata/lcet10.txt +testdata/paper-100k.pdf +testdata/plrabn12.txt +testdata/urls.10K diff --git a/vendor/github.com/klauspost/compress/snappy/AUTHORS b/vendor/github.com/klauspost/compress/snappy/AUTHORS new file mode 100644 index 0000000..bcfa195 --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/AUTHORS @@ -0,0 +1,15 @@ +# This is the official list of Snappy-Go authors for copyright purposes. +# This file is distinct from the CONTRIBUTORS files. +# See the latter for an explanation. + +# Names should be added to this file as +# Name or Organization +# The email address is not required for organizations. + +# Please keep the list sorted. + +Damian Gryski +Google Inc. +Jan Mercl <0xjnml@gmail.com> +Rodolfo Carvalho +Sebastien Binet diff --git a/vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS b/vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS new file mode 100644 index 0000000..931ae31 --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS @@ -0,0 +1,37 @@ +# This is the official list of people who can contribute +# (and typically have contributed) code to the Snappy-Go repository. +# The AUTHORS file lists the copyright holders; this file +# lists people. For example, Google employees are listed here +# but not in AUTHORS, because Google holds the copyright. +# +# The submission process automatically checks to make sure +# that people submitting code are listed in this file (by email address). +# +# Names should be added to this file only after verifying that +# the individual or the individual's organization has agreed to +# the appropriate Contributor License Agreement, found here: +# +# http://code.google.com/legal/individual-cla-v1.0.html +# http://code.google.com/legal/corporate-cla-v1.0.html +# +# The agreement for individuals can be filled out on the web. +# +# When adding J Random Contributor's name to this file, +# either J's name or J's organization's name should be +# added to the AUTHORS file, depending on whether the +# individual or corporate CLA was used. + +# Names should be added to this file like so: +# Name + +# Please keep the list sorted. + +Damian Gryski +Jan Mercl <0xjnml@gmail.com> +Kai Backman +Marc-Antoine Ruel +Nigel Tao +Rob Pike +Rodolfo Carvalho +Russ Cox +Sebastien Binet diff --git a/vendor/github.com/klauspost/compress/snappy/LICENSE b/vendor/github.com/klauspost/compress/snappy/LICENSE new file mode 100644 index 0000000..6050c10 --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/klauspost/compress/snappy/README b/vendor/github.com/klauspost/compress/snappy/README new file mode 100644 index 0000000..cea1287 --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/README @@ -0,0 +1,107 @@ +The Snappy compression format in the Go programming language. + +To download and install from source: +$ go get github.com/golang/snappy + +Unless otherwise noted, the Snappy-Go source files are distributed +under the BSD-style license found in the LICENSE file. + + + +Benchmarks. + +The golang/snappy benchmarks include compressing (Z) and decompressing (U) ten +or so files, the same set used by the C++ Snappy code (github.com/google/snappy +and note the "google", not "golang"). On an "Intel(R) Core(TM) i7-3770 CPU @ +3.40GHz", Go's GOARCH=amd64 numbers as of 2016-05-29: + +"go test -test.bench=." + +_UFlat0-8 2.19GB/s ± 0% html +_UFlat1-8 1.41GB/s ± 0% urls +_UFlat2-8 23.5GB/s ± 2% jpg +_UFlat3-8 1.91GB/s ± 0% jpg_200 +_UFlat4-8 14.0GB/s ± 1% pdf +_UFlat5-8 1.97GB/s ± 0% html4 +_UFlat6-8 814MB/s ± 0% txt1 +_UFlat7-8 785MB/s ± 0% txt2 +_UFlat8-8 857MB/s ± 0% txt3 +_UFlat9-8 719MB/s ± 1% txt4 +_UFlat10-8 2.84GB/s ± 0% pb +_UFlat11-8 1.05GB/s ± 0% gaviota + +_ZFlat0-8 1.04GB/s ± 0% html +_ZFlat1-8 534MB/s ± 0% urls +_ZFlat2-8 15.7GB/s ± 1% jpg +_ZFlat3-8 740MB/s ± 3% jpg_200 +_ZFlat4-8 9.20GB/s ± 1% pdf +_ZFlat5-8 991MB/s ± 0% html4 +_ZFlat6-8 379MB/s ± 0% txt1 +_ZFlat7-8 352MB/s ± 0% txt2 +_ZFlat8-8 396MB/s ± 1% txt3 +_ZFlat9-8 327MB/s ± 1% txt4 +_ZFlat10-8 1.33GB/s ± 1% pb +_ZFlat11-8 605MB/s ± 1% gaviota + + + +"go test -test.bench=. -tags=noasm" + +_UFlat0-8 621MB/s ± 2% html +_UFlat1-8 494MB/s ± 1% urls +_UFlat2-8 23.2GB/s ± 1% jpg +_UFlat3-8 1.12GB/s ± 1% jpg_200 +_UFlat4-8 4.35GB/s ± 1% pdf +_UFlat5-8 609MB/s ± 0% html4 +_UFlat6-8 296MB/s ± 0% txt1 +_UFlat7-8 288MB/s ± 0% txt2 +_UFlat8-8 309MB/s ± 1% txt3 +_UFlat9-8 280MB/s ± 1% txt4 +_UFlat10-8 753MB/s ± 0% pb +_UFlat11-8 400MB/s ± 0% gaviota + +_ZFlat0-8 409MB/s ± 1% html +_ZFlat1-8 250MB/s ± 1% urls +_ZFlat2-8 12.3GB/s ± 1% jpg +_ZFlat3-8 132MB/s ± 0% jpg_200 +_ZFlat4-8 2.92GB/s ± 0% pdf +_ZFlat5-8 405MB/s ± 1% html4 +_ZFlat6-8 179MB/s ± 1% txt1 +_ZFlat7-8 170MB/s ± 1% txt2 +_ZFlat8-8 189MB/s ± 1% txt3 +_ZFlat9-8 164MB/s ± 1% txt4 +_ZFlat10-8 479MB/s ± 1% pb +_ZFlat11-8 270MB/s ± 1% gaviota + + + +For comparison (Go's encoded output is byte-for-byte identical to C++'s), here +are the numbers from C++ Snappy's + +make CXXFLAGS="-O2 -DNDEBUG -g" clean snappy_unittest.log && cat snappy_unittest.log + +BM_UFlat/0 2.4GB/s html +BM_UFlat/1 1.4GB/s urls +BM_UFlat/2 21.8GB/s jpg +BM_UFlat/3 1.5GB/s jpg_200 +BM_UFlat/4 13.3GB/s pdf +BM_UFlat/5 2.1GB/s html4 +BM_UFlat/6 1.0GB/s txt1 +BM_UFlat/7 959.4MB/s txt2 +BM_UFlat/8 1.0GB/s txt3 +BM_UFlat/9 864.5MB/s txt4 +BM_UFlat/10 2.9GB/s pb +BM_UFlat/11 1.2GB/s gaviota + +BM_ZFlat/0 944.3MB/s html (22.31 %) +BM_ZFlat/1 501.6MB/s urls (47.78 %) +BM_ZFlat/2 14.3GB/s jpg (99.95 %) +BM_ZFlat/3 538.3MB/s jpg_200 (73.00 %) +BM_ZFlat/4 8.3GB/s pdf (83.30 %) +BM_ZFlat/5 903.5MB/s html4 (22.52 %) +BM_ZFlat/6 336.0MB/s txt1 (57.88 %) +BM_ZFlat/7 312.3MB/s txt2 (61.91 %) +BM_ZFlat/8 353.1MB/s txt3 (54.99 %) +BM_ZFlat/9 289.9MB/s txt4 (66.26 %) +BM_ZFlat/10 1.2GB/s pb (19.68 %) +BM_ZFlat/11 527.4MB/s gaviota (37.72 %) diff --git a/vendor/github.com/klauspost/compress/snappy/decode.go b/vendor/github.com/klauspost/compress/snappy/decode.go new file mode 100644 index 0000000..72efb03 --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/decode.go @@ -0,0 +1,237 @@ +// Copyright 2011 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package snappy + +import ( + "encoding/binary" + "errors" + "io" +) + +var ( + // ErrCorrupt reports that the input is invalid. + ErrCorrupt = errors.New("snappy: corrupt input") + // ErrTooLarge reports that the uncompressed length is too large. + ErrTooLarge = errors.New("snappy: decoded block is too large") + // ErrUnsupported reports that the input isn't supported. + ErrUnsupported = errors.New("snappy: unsupported input") + + errUnsupportedLiteralLength = errors.New("snappy: unsupported literal length") +) + +// DecodedLen returns the length of the decoded block. +func DecodedLen(src []byte) (int, error) { + v, _, err := decodedLen(src) + return v, err +} + +// decodedLen returns the length of the decoded block and the number of bytes +// that the length header occupied. +func decodedLen(src []byte) (blockLen, headerLen int, err error) { + v, n := binary.Uvarint(src) + if n <= 0 || v > 0xffffffff { + return 0, 0, ErrCorrupt + } + + const wordSize = 32 << (^uint(0) >> 32 & 1) + if wordSize == 32 && v > 0x7fffffff { + return 0, 0, ErrTooLarge + } + return int(v), n, nil +} + +const ( + decodeErrCodeCorrupt = 1 + decodeErrCodeUnsupportedLiteralLength = 2 +) + +// Decode returns the decoded form of src. The returned slice may be a sub- +// slice of dst if dst was large enough to hold the entire decoded block. +// Otherwise, a newly allocated slice will be returned. +// +// The dst and src must not overlap. It is valid to pass a nil dst. +func Decode(dst, src []byte) ([]byte, error) { + dLen, s, err := decodedLen(src) + if err != nil { + return nil, err + } + if dLen <= len(dst) { + dst = dst[:dLen] + } else { + dst = make([]byte, dLen) + } + switch decode(dst, src[s:]) { + case 0: + return dst, nil + case decodeErrCodeUnsupportedLiteralLength: + return nil, errUnsupportedLiteralLength + } + return nil, ErrCorrupt +} + +// NewReader returns a new Reader that decompresses from r, using the framing +// format described at +// https://github.com/google/snappy/blob/master/framing_format.txt +func NewReader(r io.Reader) *Reader { + return &Reader{ + r: r, + decoded: make([]byte, maxBlockSize), + buf: make([]byte, maxEncodedLenOfMaxBlockSize+checksumSize), + } +} + +// Reader is an io.Reader that can read Snappy-compressed bytes. +type Reader struct { + r io.Reader + err error + decoded []byte + buf []byte + // decoded[i:j] contains decoded bytes that have not yet been passed on. + i, j int + readHeader bool +} + +// Reset discards any buffered data, resets all state, and switches the Snappy +// reader to read from r. This permits reusing a Reader rather than allocating +// a new one. +func (r *Reader) Reset(reader io.Reader) { + r.r = reader + r.err = nil + r.i = 0 + r.j = 0 + r.readHeader = false +} + +func (r *Reader) readFull(p []byte, allowEOF bool) (ok bool) { + if _, r.err = io.ReadFull(r.r, p); r.err != nil { + if r.err == io.ErrUnexpectedEOF || (r.err == io.EOF && !allowEOF) { + r.err = ErrCorrupt + } + return false + } + return true +} + +// Read satisfies the io.Reader interface. +func (r *Reader) Read(p []byte) (int, error) { + if r.err != nil { + return 0, r.err + } + for { + if r.i < r.j { + n := copy(p, r.decoded[r.i:r.j]) + r.i += n + return n, nil + } + if !r.readFull(r.buf[:4], true) { + return 0, r.err + } + chunkType := r.buf[0] + if !r.readHeader { + if chunkType != chunkTypeStreamIdentifier { + r.err = ErrCorrupt + return 0, r.err + } + r.readHeader = true + } + chunkLen := int(r.buf[1]) | int(r.buf[2])<<8 | int(r.buf[3])<<16 + if chunkLen > len(r.buf) { + r.err = ErrUnsupported + return 0, r.err + } + + // The chunk types are specified at + // https://github.com/google/snappy/blob/master/framing_format.txt + switch chunkType { + case chunkTypeCompressedData: + // Section 4.2. Compressed data (chunk type 0x00). + if chunkLen < checksumSize { + r.err = ErrCorrupt + return 0, r.err + } + buf := r.buf[:chunkLen] + if !r.readFull(buf, false) { + return 0, r.err + } + checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 + buf = buf[checksumSize:] + + n, err := DecodedLen(buf) + if err != nil { + r.err = err + return 0, r.err + } + if n > len(r.decoded) { + r.err = ErrCorrupt + return 0, r.err + } + if _, err := Decode(r.decoded, buf); err != nil { + r.err = err + return 0, r.err + } + if crc(r.decoded[:n]) != checksum { + r.err = ErrCorrupt + return 0, r.err + } + r.i, r.j = 0, n + continue + + case chunkTypeUncompressedData: + // Section 4.3. Uncompressed data (chunk type 0x01). + if chunkLen < checksumSize { + r.err = ErrCorrupt + return 0, r.err + } + buf := r.buf[:checksumSize] + if !r.readFull(buf, false) { + return 0, r.err + } + checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 + // Read directly into r.decoded instead of via r.buf. + n := chunkLen - checksumSize + if n > len(r.decoded) { + r.err = ErrCorrupt + return 0, r.err + } + if !r.readFull(r.decoded[:n], false) { + return 0, r.err + } + if crc(r.decoded[:n]) != checksum { + r.err = ErrCorrupt + return 0, r.err + } + r.i, r.j = 0, n + continue + + case chunkTypeStreamIdentifier: + // Section 4.1. Stream identifier (chunk type 0xff). + if chunkLen != len(magicBody) { + r.err = ErrCorrupt + return 0, r.err + } + if !r.readFull(r.buf[:len(magicBody)], false) { + return 0, r.err + } + for i := 0; i < len(magicBody); i++ { + if r.buf[i] != magicBody[i] { + r.err = ErrCorrupt + return 0, r.err + } + } + continue + } + + if chunkType <= 0x7f { + // Section 4.5. Reserved unskippable chunks (chunk types 0x02-0x7f). + r.err = ErrUnsupported + return 0, r.err + } + // Section 4.4 Padding (chunk type 0xfe). + // Section 4.6. Reserved skippable chunks (chunk types 0x80-0xfd). + if !r.readFull(r.buf[:chunkLen], false) { + return 0, r.err + } + } +} diff --git a/vendor/github.com/klauspost/compress/snappy/decode_amd64.go b/vendor/github.com/klauspost/compress/snappy/decode_amd64.go new file mode 100644 index 0000000..fcd192b --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/decode_amd64.go @@ -0,0 +1,14 @@ +// Copyright 2016 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !appengine +// +build gc +// +build !noasm + +package snappy + +// decode has the same semantics as in decode_other.go. +// +//go:noescape +func decode(dst, src []byte) int diff --git a/vendor/github.com/klauspost/compress/snappy/decode_amd64.s b/vendor/github.com/klauspost/compress/snappy/decode_amd64.s new file mode 100644 index 0000000..1c66e37 --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/decode_amd64.s @@ -0,0 +1,482 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !appengine +// +build gc +// +build !noasm + +#include "textflag.h" + +// The asm code generally follows the pure Go code in decode_other.go, except +// where marked with a "!!!". + +// func decode(dst, src []byte) int +// +// All local variables fit into registers. The non-zero stack size is only to +// spill registers and push args when issuing a CALL. The register allocation: +// - AX scratch +// - BX scratch +// - CX length or x +// - DX offset +// - SI &src[s] +// - DI &dst[d] +// + R8 dst_base +// + R9 dst_len +// + R10 dst_base + dst_len +// + R11 src_base +// + R12 src_len +// + R13 src_base + src_len +// - R14 used by doCopy +// - R15 used by doCopy +// +// The registers R8-R13 (marked with a "+") are set at the start of the +// function, and after a CALL returns, and are not otherwise modified. +// +// The d variable is implicitly DI - R8, and len(dst)-d is R10 - DI. +// The s variable is implicitly SI - R11, and len(src)-s is R13 - SI. +TEXT ·decode(SB), NOSPLIT, $48-56 + // Initialize SI, DI and R8-R13. + MOVQ dst_base+0(FP), R8 + MOVQ dst_len+8(FP), R9 + MOVQ R8, DI + MOVQ R8, R10 + ADDQ R9, R10 + MOVQ src_base+24(FP), R11 + MOVQ src_len+32(FP), R12 + MOVQ R11, SI + MOVQ R11, R13 + ADDQ R12, R13 + +loop: + // for s < len(src) + CMPQ SI, R13 + JEQ end + + // CX = uint32(src[s]) + // + // switch src[s] & 0x03 + MOVBLZX (SI), CX + MOVL CX, BX + ANDL $3, BX + CMPL BX, $1 + JAE tagCopy + + // ---------------------------------------- + // The code below handles literal tags. + + // case tagLiteral: + // x := uint32(src[s] >> 2) + // switch + SHRL $2, CX + CMPL CX, $60 + JAE tagLit60Plus + + // case x < 60: + // s++ + INCQ SI + +doLit: + // This is the end of the inner "switch", when we have a literal tag. + // + // We assume that CX == x and x fits in a uint32, where x is the variable + // used in the pure Go decode_other.go code. + + // length = int(x) + 1 + // + // Unlike the pure Go code, we don't need to check if length <= 0 because + // CX can hold 64 bits, so the increment cannot overflow. + INCQ CX + + // Prepare to check if copying length bytes will run past the end of dst or + // src. + // + // AX = len(dst) - d + // BX = len(src) - s + MOVQ R10, AX + SUBQ DI, AX + MOVQ R13, BX + SUBQ SI, BX + + // !!! Try a faster technique for short (16 or fewer bytes) copies. + // + // if length > 16 || len(dst)-d < 16 || len(src)-s < 16 { + // goto callMemmove // Fall back on calling runtime·memmove. + // } + // + // The C++ snappy code calls this TryFastAppend. It also checks len(src)-s + // against 21 instead of 16, because it cannot assume that all of its input + // is contiguous in memory and so it needs to leave enough source bytes to + // read the next tag without refilling buffers, but Go's Decode assumes + // contiguousness (the src argument is a []byte). + CMPQ CX, $16 + JGT callMemmove + CMPQ AX, $16 + JLT callMemmove + CMPQ BX, $16 + JLT callMemmove + + // !!! Implement the copy from src to dst as a 16-byte load and store. + // (Decode's documentation says that dst and src must not overlap.) + // + // This always copies 16 bytes, instead of only length bytes, but that's + // OK. If the input is a valid Snappy encoding then subsequent iterations + // will fix up the overrun. Otherwise, Decode returns a nil []byte (and a + // non-nil error), so the overrun will be ignored. + // + // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or + // 16-byte loads and stores. This technique probably wouldn't be as + // effective on architectures that are fussier about alignment. + MOVOU 0(SI), X0 + MOVOU X0, 0(DI) + + // d += length + // s += length + ADDQ CX, DI + ADDQ CX, SI + JMP loop + +callMemmove: + // if length > len(dst)-d || length > len(src)-s { etc } + CMPQ CX, AX + JGT errCorrupt + CMPQ CX, BX + JGT errCorrupt + + // copy(dst[d:], src[s:s+length]) + // + // This means calling runtime·memmove(&dst[d], &src[s], length), so we push + // DI, SI and CX as arguments. Coincidentally, we also need to spill those + // three registers to the stack, to save local variables across the CALL. + MOVQ DI, 0(SP) + MOVQ SI, 8(SP) + MOVQ CX, 16(SP) + MOVQ DI, 24(SP) + MOVQ SI, 32(SP) + MOVQ CX, 40(SP) + CALL runtime·memmove(SB) + + // Restore local variables: unspill registers from the stack and + // re-calculate R8-R13. + MOVQ 24(SP), DI + MOVQ 32(SP), SI + MOVQ 40(SP), CX + MOVQ dst_base+0(FP), R8 + MOVQ dst_len+8(FP), R9 + MOVQ R8, R10 + ADDQ R9, R10 + MOVQ src_base+24(FP), R11 + MOVQ src_len+32(FP), R12 + MOVQ R11, R13 + ADDQ R12, R13 + + // d += length + // s += length + ADDQ CX, DI + ADDQ CX, SI + JMP loop + +tagLit60Plus: + // !!! This fragment does the + // + // s += x - 58; if uint(s) > uint(len(src)) { etc } + // + // checks. In the asm version, we code it once instead of once per switch case. + ADDQ CX, SI + SUBQ $58, SI + CMPQ SI, R13 + JA errCorrupt + + // case x == 60: + CMPL CX, $61 + JEQ tagLit61 + JA tagLit62Plus + + // x = uint32(src[s-1]) + MOVBLZX -1(SI), CX + JMP doLit + +tagLit61: + // case x == 61: + // x = uint32(src[s-2]) | uint32(src[s-1])<<8 + MOVWLZX -2(SI), CX + JMP doLit + +tagLit62Plus: + CMPL CX, $62 + JA tagLit63 + + // case x == 62: + // x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 + MOVWLZX -3(SI), CX + MOVBLZX -1(SI), BX + SHLL $16, BX + ORL BX, CX + JMP doLit + +tagLit63: + // case x == 63: + // x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 + MOVL -4(SI), CX + JMP doLit + +// The code above handles literal tags. +// ---------------------------------------- +// The code below handles copy tags. + +tagCopy4: + // case tagCopy4: + // s += 5 + ADDQ $5, SI + + // if uint(s) > uint(len(src)) { etc } + CMPQ SI, R13 + JA errCorrupt + + // length = 1 + int(src[s-5])>>2 + SHRQ $2, CX + INCQ CX + + // offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24) + MOVLQZX -4(SI), DX + JMP doCopy + +tagCopy2: + // case tagCopy2: + // s += 3 + ADDQ $3, SI + + // if uint(s) > uint(len(src)) { etc } + CMPQ SI, R13 + JA errCorrupt + + // length = 1 + int(src[s-3])>>2 + SHRQ $2, CX + INCQ CX + + // offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8) + MOVWQZX -2(SI), DX + JMP doCopy + +tagCopy: + // We have a copy tag. We assume that: + // - BX == src[s] & 0x03 + // - CX == src[s] + CMPQ BX, $2 + JEQ tagCopy2 + JA tagCopy4 + + // case tagCopy1: + // s += 2 + ADDQ $2, SI + + // if uint(s) > uint(len(src)) { etc } + CMPQ SI, R13 + JA errCorrupt + + // offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])) + MOVQ CX, DX + ANDQ $0xe0, DX + SHLQ $3, DX + MOVBQZX -1(SI), BX + ORQ BX, DX + + // length = 4 + int(src[s-2])>>2&0x7 + SHRQ $2, CX + ANDQ $7, CX + ADDQ $4, CX + +doCopy: + // This is the end of the outer "switch", when we have a copy tag. + // + // We assume that: + // - CX == length && CX > 0 + // - DX == offset + + // if offset <= 0 { etc } + CMPQ DX, $0 + JLE errCorrupt + + // if d < offset { etc } + MOVQ DI, BX + SUBQ R8, BX + CMPQ BX, DX + JLT errCorrupt + + // if length > len(dst)-d { etc } + MOVQ R10, BX + SUBQ DI, BX + CMPQ CX, BX + JGT errCorrupt + + // forwardCopy(dst[d:d+length], dst[d-offset:]); d += length + // + // Set: + // - R14 = len(dst)-d + // - R15 = &dst[d-offset] + MOVQ R10, R14 + SUBQ DI, R14 + MOVQ DI, R15 + SUBQ DX, R15 + + // !!! Try a faster technique for short (16 or fewer bytes) forward copies. + // + // First, try using two 8-byte load/stores, similar to the doLit technique + // above. Even if dst[d:d+length] and dst[d-offset:] can overlap, this is + // still OK if offset >= 8. Note that this has to be two 8-byte load/stores + // and not one 16-byte load/store, and the first store has to be before the + // second load, due to the overlap if offset is in the range [8, 16). + // + // if length > 16 || offset < 8 || len(dst)-d < 16 { + // goto slowForwardCopy + // } + // copy 16 bytes + // d += length + CMPQ CX, $16 + JGT slowForwardCopy + CMPQ DX, $8 + JLT slowForwardCopy + CMPQ R14, $16 + JLT slowForwardCopy + MOVQ 0(R15), AX + MOVQ AX, 0(DI) + MOVQ 8(R15), BX + MOVQ BX, 8(DI) + ADDQ CX, DI + JMP loop + +slowForwardCopy: + // !!! If the forward copy is longer than 16 bytes, or if offset < 8, we + // can still try 8-byte load stores, provided we can overrun up to 10 extra + // bytes. As above, the overrun will be fixed up by subsequent iterations + // of the outermost loop. + // + // The C++ snappy code calls this technique IncrementalCopyFastPath. Its + // commentary says: + // + // ---- + // + // The main part of this loop is a simple copy of eight bytes at a time + // until we've copied (at least) the requested amount of bytes. However, + // if d and d-offset are less than eight bytes apart (indicating a + // repeating pattern of length < 8), we first need to expand the pattern in + // order to get the correct results. For instance, if the buffer looks like + // this, with the eight-byte and patterns marked as + // intervals: + // + // abxxxxxxxxxxxx + // [------] d-offset + // [------] d + // + // a single eight-byte copy from to will repeat the pattern + // once, after which we can move two bytes without moving : + // + // ababxxxxxxxxxx + // [------] d-offset + // [------] d + // + // and repeat the exercise until the two no longer overlap. + // + // This allows us to do very well in the special case of one single byte + // repeated many times, without taking a big hit for more general cases. + // + // The worst case of extra writing past the end of the match occurs when + // offset == 1 and length == 1; the last copy will read from byte positions + // [0..7] and write to [4..11], whereas it was only supposed to write to + // position 1. Thus, ten excess bytes. + // + // ---- + // + // That "10 byte overrun" worst case is confirmed by Go's + // TestSlowForwardCopyOverrun, which also tests the fixUpSlowForwardCopy + // and finishSlowForwardCopy algorithm. + // + // if length > len(dst)-d-10 { + // goto verySlowForwardCopy + // } + SUBQ $10, R14 + CMPQ CX, R14 + JGT verySlowForwardCopy + +makeOffsetAtLeast8: + // !!! As above, expand the pattern so that offset >= 8 and we can use + // 8-byte load/stores. + // + // for offset < 8 { + // copy 8 bytes from dst[d-offset:] to dst[d:] + // length -= offset + // d += offset + // offset += offset + // // The two previous lines together means that d-offset, and therefore + // // R15, is unchanged. + // } + CMPQ DX, $8 + JGE fixUpSlowForwardCopy + MOVQ (R15), BX + MOVQ BX, (DI) + SUBQ DX, CX + ADDQ DX, DI + ADDQ DX, DX + JMP makeOffsetAtLeast8 + +fixUpSlowForwardCopy: + // !!! Add length (which might be negative now) to d (implied by DI being + // &dst[d]) so that d ends up at the right place when we jump back to the + // top of the loop. Before we do that, though, we save DI to AX so that, if + // length is positive, copying the remaining length bytes will write to the + // right place. + MOVQ DI, AX + ADDQ CX, DI + +finishSlowForwardCopy: + // !!! Repeat 8-byte load/stores until length <= 0. Ending with a negative + // length means that we overrun, but as above, that will be fixed up by + // subsequent iterations of the outermost loop. + CMPQ CX, $0 + JLE loop + MOVQ (R15), BX + MOVQ BX, (AX) + ADDQ $8, R15 + ADDQ $8, AX + SUBQ $8, CX + JMP finishSlowForwardCopy + +verySlowForwardCopy: + // verySlowForwardCopy is a simple implementation of forward copy. In C + // parlance, this is a do/while loop instead of a while loop, since we know + // that length > 0. In Go syntax: + // + // for { + // dst[d] = dst[d - offset] + // d++ + // length-- + // if length == 0 { + // break + // } + // } + MOVB (R15), BX + MOVB BX, (DI) + INCQ R15 + INCQ DI + DECQ CX + JNZ verySlowForwardCopy + JMP loop + +// The code above handles copy tags. +// ---------------------------------------- + +end: + // This is the end of the "for s < len(src)". + // + // if d != len(dst) { etc } + CMPQ DI, R10 + JNE errCorrupt + + // return 0 + MOVQ $0, ret+48(FP) + RET + +errCorrupt: + // return decodeErrCodeCorrupt + MOVQ $1, ret+48(FP) + RET diff --git a/vendor/github.com/klauspost/compress/snappy/decode_other.go b/vendor/github.com/klauspost/compress/snappy/decode_other.go new file mode 100644 index 0000000..94a96c5 --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/decode_other.go @@ -0,0 +1,115 @@ +// Copyright 2016 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !amd64 appengine !gc noasm + +package snappy + +// decode writes the decoding of src to dst. It assumes that the varint-encoded +// length of the decompressed bytes has already been read, and that len(dst) +// equals that length. +// +// It returns 0 on success or a decodeErrCodeXxx error code on failure. +func decode(dst, src []byte) int { + var d, s, offset, length int + for s < len(src) { + switch src[s] & 0x03 { + case tagLiteral: + x := uint32(src[s] >> 2) + switch { + case x < 60: + s++ + case x == 60: + s += 2 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + x = uint32(src[s-1]) + case x == 61: + s += 3 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + x = uint32(src[s-2]) | uint32(src[s-1])<<8 + case x == 62: + s += 4 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 + case x == 63: + s += 5 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 + } + length = int(x) + 1 + if length <= 0 { + return decodeErrCodeUnsupportedLiteralLength + } + if length > len(dst)-d || length > len(src)-s { + return decodeErrCodeCorrupt + } + copy(dst[d:], src[s:s+length]) + d += length + s += length + continue + + case tagCopy1: + s += 2 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + length = 4 + int(src[s-2])>>2&0x7 + offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])) + + case tagCopy2: + s += 3 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + length = 1 + int(src[s-3])>>2 + offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8) + + case tagCopy4: + s += 5 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + return decodeErrCodeCorrupt + } + length = 1 + int(src[s-5])>>2 + offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24) + } + + if offset <= 0 || d < offset || length > len(dst)-d { + return decodeErrCodeCorrupt + } + // Copy from an earlier sub-slice of dst to a later sub-slice. + // If no overlap, use the built-in copy: + if offset > length { + copy(dst[d:d+length], dst[d-offset:]) + d += length + continue + } + + // Unlike the built-in copy function, this byte-by-byte copy always runs + // forwards, even if the slices overlap. Conceptually, this is: + // + // d += forwardCopy(dst[d:d+length], dst[d-offset:]) + // + // We align the slices into a and b and show the compiler they are the same size. + // This allows the loop to run without bounds checks. + a := dst[d : d+length] + b := dst[d-offset:] + b = b[:len(a)] + for i := range a { + a[i] = b[i] + } + d += length + } + if d != len(dst) { + return decodeErrCodeCorrupt + } + return 0 +} diff --git a/vendor/github.com/klauspost/compress/snappy/encode.go b/vendor/github.com/klauspost/compress/snappy/encode.go new file mode 100644 index 0000000..8d393e9 --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/encode.go @@ -0,0 +1,285 @@ +// Copyright 2011 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package snappy + +import ( + "encoding/binary" + "errors" + "io" +) + +// Encode returns the encoded form of src. The returned slice may be a sub- +// slice of dst if dst was large enough to hold the entire encoded block. +// Otherwise, a newly allocated slice will be returned. +// +// The dst and src must not overlap. It is valid to pass a nil dst. +func Encode(dst, src []byte) []byte { + if n := MaxEncodedLen(len(src)); n < 0 { + panic(ErrTooLarge) + } else if len(dst) < n { + dst = make([]byte, n) + } + + // The block starts with the varint-encoded length of the decompressed bytes. + d := binary.PutUvarint(dst, uint64(len(src))) + + for len(src) > 0 { + p := src + src = nil + if len(p) > maxBlockSize { + p, src = p[:maxBlockSize], p[maxBlockSize:] + } + if len(p) < minNonLiteralBlockSize { + d += emitLiteral(dst[d:], p) + } else { + d += encodeBlock(dst[d:], p) + } + } + return dst[:d] +} + +// inputMargin is the minimum number of extra input bytes to keep, inside +// encodeBlock's inner loop. On some architectures, this margin lets us +// implement a fast path for emitLiteral, where the copy of short (<= 16 byte) +// literals can be implemented as a single load to and store from a 16-byte +// register. That literal's actual length can be as short as 1 byte, so this +// can copy up to 15 bytes too much, but that's OK as subsequent iterations of +// the encoding loop will fix up the copy overrun, and this inputMargin ensures +// that we don't overrun the dst and src buffers. +const inputMargin = 16 - 1 + +// minNonLiteralBlockSize is the minimum size of the input to encodeBlock that +// could be encoded with a copy tag. This is the minimum with respect to the +// algorithm used by encodeBlock, not a minimum enforced by the file format. +// +// The encoded output must start with at least a 1 byte literal, as there are +// no previous bytes to copy. A minimal (1 byte) copy after that, generated +// from an emitCopy call in encodeBlock's main loop, would require at least +// another inputMargin bytes, for the reason above: we want any emitLiteral +// calls inside encodeBlock's main loop to use the fast path if possible, which +// requires being able to overrun by inputMargin bytes. Thus, +// minNonLiteralBlockSize equals 1 + 1 + inputMargin. +// +// The C++ code doesn't use this exact threshold, but it could, as discussed at +// https://groups.google.com/d/topic/snappy-compression/oGbhsdIJSJ8/discussion +// The difference between Go (2+inputMargin) and C++ (inputMargin) is purely an +// optimization. It should not affect the encoded form. This is tested by +// TestSameEncodingAsCppShortCopies. +const minNonLiteralBlockSize = 1 + 1 + inputMargin + +// MaxEncodedLen returns the maximum length of a snappy block, given its +// uncompressed length. +// +// It will return a negative value if srcLen is too large to encode. +func MaxEncodedLen(srcLen int) int { + n := uint64(srcLen) + if n > 0xffffffff { + return -1 + } + // Compressed data can be defined as: + // compressed := item* literal* + // item := literal* copy + // + // The trailing literal sequence has a space blowup of at most 62/60 + // since a literal of length 60 needs one tag byte + one extra byte + // for length information. + // + // Item blowup is trickier to measure. Suppose the "copy" op copies + // 4 bytes of data. Because of a special check in the encoding code, + // we produce a 4-byte copy only if the offset is < 65536. Therefore + // the copy op takes 3 bytes to encode, and this type of item leads + // to at most the 62/60 blowup for representing literals. + // + // Suppose the "copy" op copies 5 bytes of data. If the offset is big + // enough, it will take 5 bytes to encode the copy op. Therefore the + // worst case here is a one-byte literal followed by a five-byte copy. + // That is, 6 bytes of input turn into 7 bytes of "compressed" data. + // + // This last factor dominates the blowup, so the final estimate is: + n = 32 + n + n/6 + if n > 0xffffffff { + return -1 + } + return int(n) +} + +var errClosed = errors.New("snappy: Writer is closed") + +// NewWriter returns a new Writer that compresses to w. +// +// The Writer returned does not buffer writes. There is no need to Flush or +// Close such a Writer. +// +// Deprecated: the Writer returned is not suitable for many small writes, only +// for few large writes. Use NewBufferedWriter instead, which is efficient +// regardless of the frequency and shape of the writes, and remember to Close +// that Writer when done. +func NewWriter(w io.Writer) *Writer { + return &Writer{ + w: w, + obuf: make([]byte, obufLen), + } +} + +// NewBufferedWriter returns a new Writer that compresses to w, using the +// framing format described at +// https://github.com/google/snappy/blob/master/framing_format.txt +// +// The Writer returned buffers writes. Users must call Close to guarantee all +// data has been forwarded to the underlying io.Writer. They may also call +// Flush zero or more times before calling Close. +func NewBufferedWriter(w io.Writer) *Writer { + return &Writer{ + w: w, + ibuf: make([]byte, 0, maxBlockSize), + obuf: make([]byte, obufLen), + } +} + +// Writer is an io.Writer that can write Snappy-compressed bytes. +type Writer struct { + w io.Writer + err error + + // ibuf is a buffer for the incoming (uncompressed) bytes. + // + // Its use is optional. For backwards compatibility, Writers created by the + // NewWriter function have ibuf == nil, do not buffer incoming bytes, and + // therefore do not need to be Flush'ed or Close'd. + ibuf []byte + + // obuf is a buffer for the outgoing (compressed) bytes. + obuf []byte + + // wroteStreamHeader is whether we have written the stream header. + wroteStreamHeader bool +} + +// Reset discards the writer's state and switches the Snappy writer to write to +// w. This permits reusing a Writer rather than allocating a new one. +func (w *Writer) Reset(writer io.Writer) { + w.w = writer + w.err = nil + if w.ibuf != nil { + w.ibuf = w.ibuf[:0] + } + w.wroteStreamHeader = false +} + +// Write satisfies the io.Writer interface. +func (w *Writer) Write(p []byte) (nRet int, errRet error) { + if w.ibuf == nil { + // Do not buffer incoming bytes. This does not perform or compress well + // if the caller of Writer.Write writes many small slices. This + // behavior is therefore deprecated, but still supported for backwards + // compatibility with code that doesn't explicitly Flush or Close. + return w.write(p) + } + + // The remainder of this method is based on bufio.Writer.Write from the + // standard library. + + for len(p) > (cap(w.ibuf)-len(w.ibuf)) && w.err == nil { + var n int + if len(w.ibuf) == 0 { + // Large write, empty buffer. + // Write directly from p to avoid copy. + n, _ = w.write(p) + } else { + n = copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) + w.ibuf = w.ibuf[:len(w.ibuf)+n] + w.Flush() + } + nRet += n + p = p[n:] + } + if w.err != nil { + return nRet, w.err + } + n := copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) + w.ibuf = w.ibuf[:len(w.ibuf)+n] + nRet += n + return nRet, nil +} + +func (w *Writer) write(p []byte) (nRet int, errRet error) { + if w.err != nil { + return 0, w.err + } + for len(p) > 0 { + obufStart := len(magicChunk) + if !w.wroteStreamHeader { + w.wroteStreamHeader = true + copy(w.obuf, magicChunk) + obufStart = 0 + } + + var uncompressed []byte + if len(p) > maxBlockSize { + uncompressed, p = p[:maxBlockSize], p[maxBlockSize:] + } else { + uncompressed, p = p, nil + } + checksum := crc(uncompressed) + + // Compress the buffer, discarding the result if the improvement + // isn't at least 12.5%. + compressed := Encode(w.obuf[obufHeaderLen:], uncompressed) + chunkType := uint8(chunkTypeCompressedData) + chunkLen := 4 + len(compressed) + obufEnd := obufHeaderLen + len(compressed) + if len(compressed) >= len(uncompressed)-len(uncompressed)/8 { + chunkType = chunkTypeUncompressedData + chunkLen = 4 + len(uncompressed) + obufEnd = obufHeaderLen + } + + // Fill in the per-chunk header that comes before the body. + w.obuf[len(magicChunk)+0] = chunkType + w.obuf[len(magicChunk)+1] = uint8(chunkLen >> 0) + w.obuf[len(magicChunk)+2] = uint8(chunkLen >> 8) + w.obuf[len(magicChunk)+3] = uint8(chunkLen >> 16) + w.obuf[len(magicChunk)+4] = uint8(checksum >> 0) + w.obuf[len(magicChunk)+5] = uint8(checksum >> 8) + w.obuf[len(magicChunk)+6] = uint8(checksum >> 16) + w.obuf[len(magicChunk)+7] = uint8(checksum >> 24) + + if _, err := w.w.Write(w.obuf[obufStart:obufEnd]); err != nil { + w.err = err + return nRet, err + } + if chunkType == chunkTypeUncompressedData { + if _, err := w.w.Write(uncompressed); err != nil { + w.err = err + return nRet, err + } + } + nRet += len(uncompressed) + } + return nRet, nil +} + +// Flush flushes the Writer to its underlying io.Writer. +func (w *Writer) Flush() error { + if w.err != nil { + return w.err + } + if len(w.ibuf) == 0 { + return nil + } + w.write(w.ibuf) + w.ibuf = w.ibuf[:0] + return w.err +} + +// Close calls Flush and then closes the Writer. +func (w *Writer) Close() error { + w.Flush() + ret := w.err + if w.err == nil { + w.err = errClosed + } + return ret +} diff --git a/vendor/github.com/klauspost/compress/snappy/encode_amd64.go b/vendor/github.com/klauspost/compress/snappy/encode_amd64.go new file mode 100644 index 0000000..150d91b --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/encode_amd64.go @@ -0,0 +1,29 @@ +// Copyright 2016 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !appengine +// +build gc +// +build !noasm + +package snappy + +// emitLiteral has the same semantics as in encode_other.go. +// +//go:noescape +func emitLiteral(dst, lit []byte) int + +// emitCopy has the same semantics as in encode_other.go. +// +//go:noescape +func emitCopy(dst []byte, offset, length int) int + +// extendMatch has the same semantics as in encode_other.go. +// +//go:noescape +func extendMatch(src []byte, i, j int) int + +// encodeBlock has the same semantics as in encode_other.go. +// +//go:noescape +func encodeBlock(dst, src []byte) (d int) diff --git a/vendor/github.com/klauspost/compress/snappy/encode_amd64.s b/vendor/github.com/klauspost/compress/snappy/encode_amd64.s new file mode 100644 index 0000000..adfd979 --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/encode_amd64.s @@ -0,0 +1,730 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !appengine +// +build gc +// +build !noasm + +#include "textflag.h" + +// The XXX lines assemble on Go 1.4, 1.5 and 1.7, but not 1.6, due to a +// Go toolchain regression. See https://github.com/golang/go/issues/15426 and +// https://github.com/golang/snappy/issues/29 +// +// As a workaround, the package was built with a known good assembler, and +// those instructions were disassembled by "objdump -d" to yield the +// 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 +// style comments, in AT&T asm syntax. Note that rsp here is a physical +// register, not Go/asm's SP pseudo-register (see https://golang.org/doc/asm). +// The instructions were then encoded as "BYTE $0x.." sequences, which assemble +// fine on Go 1.6. + +// The asm code generally follows the pure Go code in encode_other.go, except +// where marked with a "!!!". + +// ---------------------------------------------------------------------------- + +// func emitLiteral(dst, lit []byte) int +// +// All local variables fit into registers. The register allocation: +// - AX len(lit) +// - BX n +// - DX return value +// - DI &dst[i] +// - R10 &lit[0] +// +// The 24 bytes of stack space is to call runtime·memmove. +// +// The unusual register allocation of local variables, such as R10 for the +// source pointer, matches the allocation used at the call site in encodeBlock, +// which makes it easier to manually inline this function. +TEXT ·emitLiteral(SB), NOSPLIT, $24-56 + MOVQ dst_base+0(FP), DI + MOVQ lit_base+24(FP), R10 + MOVQ lit_len+32(FP), AX + MOVQ AX, DX + MOVL AX, BX + SUBL $1, BX + + CMPL BX, $60 + JLT oneByte + CMPL BX, $256 + JLT twoBytes + +threeBytes: + MOVB $0xf4, 0(DI) + MOVW BX, 1(DI) + ADDQ $3, DI + ADDQ $3, DX + JMP memmove + +twoBytes: + MOVB $0xf0, 0(DI) + MOVB BX, 1(DI) + ADDQ $2, DI + ADDQ $2, DX + JMP memmove + +oneByte: + SHLB $2, BX + MOVB BX, 0(DI) + ADDQ $1, DI + ADDQ $1, DX + +memmove: + MOVQ DX, ret+48(FP) + + // copy(dst[i:], lit) + // + // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push + // DI, R10 and AX as arguments. + MOVQ DI, 0(SP) + MOVQ R10, 8(SP) + MOVQ AX, 16(SP) + CALL runtime·memmove(SB) + RET + +// ---------------------------------------------------------------------------- + +// func emitCopy(dst []byte, offset, length int) int +// +// All local variables fit into registers. The register allocation: +// - AX length +// - SI &dst[0] +// - DI &dst[i] +// - R11 offset +// +// The unusual register allocation of local variables, such as R11 for the +// offset, matches the allocation used at the call site in encodeBlock, which +// makes it easier to manually inline this function. +TEXT ·emitCopy(SB), NOSPLIT, $0-48 + MOVQ dst_base+0(FP), DI + MOVQ DI, SI + MOVQ offset+24(FP), R11 + MOVQ length+32(FP), AX + +loop0: + // for length >= 68 { etc } + CMPL AX, $68 + JLT step1 + + // Emit a length 64 copy, encoded as 3 bytes. + MOVB $0xfe, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + SUBL $64, AX + JMP loop0 + +step1: + // if length > 64 { etc } + CMPL AX, $64 + JLE step2 + + // Emit a length 60 copy, encoded as 3 bytes. + MOVB $0xee, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + SUBL $60, AX + +step2: + // if length >= 12 || offset >= 2048 { goto step3 } + CMPL AX, $12 + JGE step3 + CMPL R11, $2048 + JGE step3 + + // Emit the remaining copy, encoded as 2 bytes. + MOVB R11, 1(DI) + SHRL $8, R11 + SHLB $5, R11 + SUBB $4, AX + SHLB $2, AX + ORB AX, R11 + ORB $1, R11 + MOVB R11, 0(DI) + ADDQ $2, DI + + // Return the number of bytes written. + SUBQ SI, DI + MOVQ DI, ret+40(FP) + RET + +step3: + // Emit the remaining copy, encoded as 3 bytes. + SUBL $1, AX + SHLB $2, AX + ORB $2, AX + MOVB AX, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + + // Return the number of bytes written. + SUBQ SI, DI + MOVQ DI, ret+40(FP) + RET + +// ---------------------------------------------------------------------------- + +// func extendMatch(src []byte, i, j int) int +// +// All local variables fit into registers. The register allocation: +// - DX &src[0] +// - SI &src[j] +// - R13 &src[len(src) - 8] +// - R14 &src[len(src)] +// - R15 &src[i] +// +// The unusual register allocation of local variables, such as R15 for a source +// pointer, matches the allocation used at the call site in encodeBlock, which +// makes it easier to manually inline this function. +TEXT ·extendMatch(SB), NOSPLIT, $0-48 + MOVQ src_base+0(FP), DX + MOVQ src_len+8(FP), R14 + MOVQ i+24(FP), R15 + MOVQ j+32(FP), SI + ADDQ DX, R14 + ADDQ DX, R15 + ADDQ DX, SI + MOVQ R14, R13 + SUBQ $8, R13 + +cmp8: + // As long as we are 8 or more bytes before the end of src, we can load and + // compare 8 bytes at a time. If those 8 bytes are equal, repeat. + CMPQ SI, R13 + JA cmp1 + MOVQ (R15), AX + MOVQ (SI), BX + CMPQ AX, BX + JNE bsf + ADDQ $8, R15 + ADDQ $8, SI + JMP cmp8 + +bsf: + // If those 8 bytes were not equal, XOR the two 8 byte values, and return + // the index of the first byte that differs. The BSF instruction finds the + // least significant 1 bit, the amd64 architecture is little-endian, and + // the shift by 3 converts a bit index to a byte index. + XORQ AX, BX + BSFQ BX, BX + SHRQ $3, BX + ADDQ BX, SI + + // Convert from &src[ret] to ret. + SUBQ DX, SI + MOVQ SI, ret+40(FP) + RET + +cmp1: + // In src's tail, compare 1 byte at a time. + CMPQ SI, R14 + JAE extendMatchEnd + MOVB (R15), AX + MOVB (SI), BX + CMPB AX, BX + JNE extendMatchEnd + ADDQ $1, R15 + ADDQ $1, SI + JMP cmp1 + +extendMatchEnd: + // Convert from &src[ret] to ret. + SUBQ DX, SI + MOVQ SI, ret+40(FP) + RET + +// ---------------------------------------------------------------------------- + +// func encodeBlock(dst, src []byte) (d int) +// +// All local variables fit into registers, other than "var table". The register +// allocation: +// - AX . . +// - BX . . +// - CX 56 shift (note that amd64 shifts by non-immediates must use CX). +// - DX 64 &src[0], tableSize +// - SI 72 &src[s] +// - DI 80 &dst[d] +// - R9 88 sLimit +// - R10 . &src[nextEmit] +// - R11 96 prevHash, currHash, nextHash, offset +// - R12 104 &src[base], skip +// - R13 . &src[nextS], &src[len(src) - 8] +// - R14 . len(src), bytesBetweenHashLookups, &src[len(src)], x +// - R15 112 candidate +// +// The second column (56, 64, etc) is the stack offset to spill the registers +// when calling other functions. We could pack this slightly tighter, but it's +// simpler to have a dedicated spill map independent of the function called. +// +// "var table [maxTableSize]uint16" takes up 32768 bytes of stack space. An +// extra 56 bytes, to call other functions, and an extra 64 bytes, to spill +// local variables (registers) during calls gives 32768 + 56 + 64 = 32888. +TEXT ·encodeBlock(SB), 0, $32888-56 + MOVQ dst_base+0(FP), DI + MOVQ src_base+24(FP), SI + MOVQ src_len+32(FP), R14 + + // shift, tableSize := uint32(32-8), 1<<8 + MOVQ $24, CX + MOVQ $256, DX + +calcShift: + // for ; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 { + // shift-- + // } + CMPQ DX, $16384 + JGE varTable + CMPQ DX, R14 + JGE varTable + SUBQ $1, CX + SHLQ $1, DX + JMP calcShift + +varTable: + // var table [maxTableSize]uint16 + // + // In the asm code, unlike the Go code, we can zero-initialize only the + // first tableSize elements. Each uint16 element is 2 bytes and each MOVOU + // writes 16 bytes, so we can do only tableSize/8 writes instead of the + // 2048 writes that would zero-initialize all of table's 32768 bytes. + SHRQ $3, DX + LEAQ table-32768(SP), BX + PXOR X0, X0 + +memclr: + MOVOU X0, 0(BX) + ADDQ $16, BX + SUBQ $1, DX + JNZ memclr + + // !!! DX = &src[0] + MOVQ SI, DX + + // sLimit := len(src) - inputMargin + MOVQ R14, R9 + SUBQ $15, R9 + + // !!! Pre-emptively spill CX, DX and R9 to the stack. Their values don't + // change for the rest of the function. + MOVQ CX, 56(SP) + MOVQ DX, 64(SP) + MOVQ R9, 88(SP) + + // nextEmit := 0 + MOVQ DX, R10 + + // s := 1 + ADDQ $1, SI + + // nextHash := hash(load32(src, s), shift) + MOVL 0(SI), R11 + IMULL $0x1e35a7bd, R11 + SHRL CX, R11 + +outer: + // for { etc } + + // skip := 32 + MOVQ $32, R12 + + // nextS := s + MOVQ SI, R13 + + // candidate := 0 + MOVQ $0, R15 + +inner0: + // for { etc } + + // s := nextS + MOVQ R13, SI + + // bytesBetweenHashLookups := skip >> 5 + MOVQ R12, R14 + SHRQ $5, R14 + + // nextS = s + bytesBetweenHashLookups + ADDQ R14, R13 + + // skip += bytesBetweenHashLookups + ADDQ R14, R12 + + // if nextS > sLimit { goto emitRemainder } + MOVQ R13, AX + SUBQ DX, AX + CMPQ AX, R9 + JA emitRemainder + + // candidate = int(table[nextHash]) + // XXX: MOVWQZX table-32768(SP)(R11*2), R15 + // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 + BYTE $0x4e + BYTE $0x0f + BYTE $0xb7 + BYTE $0x7c + BYTE $0x5c + BYTE $0x78 + + // table[nextHash] = uint16(s) + MOVQ SI, AX + SUBQ DX, AX + + // XXX: MOVW AX, table-32768(SP)(R11*2) + // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) + BYTE $0x66 + BYTE $0x42 + BYTE $0x89 + BYTE $0x44 + BYTE $0x5c + BYTE $0x78 + + // nextHash = hash(load32(src, nextS), shift) + MOVL 0(R13), R11 + IMULL $0x1e35a7bd, R11 + SHRL CX, R11 + + // if load32(src, s) != load32(src, candidate) { continue } break + MOVL 0(SI), AX + MOVL (DX)(R15*1), BX + CMPL AX, BX + JNE inner0 + +fourByteMatch: + // As per the encode_other.go code: + // + // A 4-byte match has been found. We'll later see etc. + + // !!! Jump to a fast path for short (<= 16 byte) literals. See the comment + // on inputMargin in encode.go. + MOVQ SI, AX + SUBQ R10, AX + CMPQ AX, $16 + JLE emitLiteralFastPath + + // ---------------------------------------- + // Begin inline of the emitLiteral call. + // + // d += emitLiteral(dst[d:], src[nextEmit:s]) + + MOVL AX, BX + SUBL $1, BX + + CMPL BX, $60 + JLT inlineEmitLiteralOneByte + CMPL BX, $256 + JLT inlineEmitLiteralTwoBytes + +inlineEmitLiteralThreeBytes: + MOVB $0xf4, 0(DI) + MOVW BX, 1(DI) + ADDQ $3, DI + JMP inlineEmitLiteralMemmove + +inlineEmitLiteralTwoBytes: + MOVB $0xf0, 0(DI) + MOVB BX, 1(DI) + ADDQ $2, DI + JMP inlineEmitLiteralMemmove + +inlineEmitLiteralOneByte: + SHLB $2, BX + MOVB BX, 0(DI) + ADDQ $1, DI + +inlineEmitLiteralMemmove: + // Spill local variables (registers) onto the stack; call; unspill. + // + // copy(dst[i:], lit) + // + // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push + // DI, R10 and AX as arguments. + MOVQ DI, 0(SP) + MOVQ R10, 8(SP) + MOVQ AX, 16(SP) + ADDQ AX, DI // Finish the "d +=" part of "d += emitLiteral(etc)". + MOVQ SI, 72(SP) + MOVQ DI, 80(SP) + MOVQ R15, 112(SP) + CALL runtime·memmove(SB) + MOVQ 56(SP), CX + MOVQ 64(SP), DX + MOVQ 72(SP), SI + MOVQ 80(SP), DI + MOVQ 88(SP), R9 + MOVQ 112(SP), R15 + JMP inner1 + +inlineEmitLiteralEnd: + // End inline of the emitLiteral call. + // ---------------------------------------- + +emitLiteralFastPath: + // !!! Emit the 1-byte encoding "uint8(len(lit)-1)<<2". + MOVB AX, BX + SUBB $1, BX + SHLB $2, BX + MOVB BX, (DI) + ADDQ $1, DI + + // !!! Implement the copy from lit to dst as a 16-byte load and store. + // (Encode's documentation says that dst and src must not overlap.) + // + // This always copies 16 bytes, instead of only len(lit) bytes, but that's + // OK. Subsequent iterations will fix up the overrun. + // + // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or + // 16-byte loads and stores. This technique probably wouldn't be as + // effective on architectures that are fussier about alignment. + MOVOU 0(R10), X0 + MOVOU X0, 0(DI) + ADDQ AX, DI + +inner1: + // for { etc } + + // base := s + MOVQ SI, R12 + + // !!! offset := base - candidate + MOVQ R12, R11 + SUBQ R15, R11 + SUBQ DX, R11 + + // ---------------------------------------- + // Begin inline of the extendMatch call. + // + // s = extendMatch(src, candidate+4, s+4) + + // !!! R14 = &src[len(src)] + MOVQ src_len+32(FP), R14 + ADDQ DX, R14 + + // !!! R13 = &src[len(src) - 8] + MOVQ R14, R13 + SUBQ $8, R13 + + // !!! R15 = &src[candidate + 4] + ADDQ $4, R15 + ADDQ DX, R15 + + // !!! s += 4 + ADDQ $4, SI + +inlineExtendMatchCmp8: + // As long as we are 8 or more bytes before the end of src, we can load and + // compare 8 bytes at a time. If those 8 bytes are equal, repeat. + CMPQ SI, R13 + JA inlineExtendMatchCmp1 + MOVQ (R15), AX + MOVQ (SI), BX + CMPQ AX, BX + JNE inlineExtendMatchBSF + ADDQ $8, R15 + ADDQ $8, SI + JMP inlineExtendMatchCmp8 + +inlineExtendMatchBSF: + // If those 8 bytes were not equal, XOR the two 8 byte values, and return + // the index of the first byte that differs. The BSF instruction finds the + // least significant 1 bit, the amd64 architecture is little-endian, and + // the shift by 3 converts a bit index to a byte index. + XORQ AX, BX + BSFQ BX, BX + SHRQ $3, BX + ADDQ BX, SI + JMP inlineExtendMatchEnd + +inlineExtendMatchCmp1: + // In src's tail, compare 1 byte at a time. + CMPQ SI, R14 + JAE inlineExtendMatchEnd + MOVB (R15), AX + MOVB (SI), BX + CMPB AX, BX + JNE inlineExtendMatchEnd + ADDQ $1, R15 + ADDQ $1, SI + JMP inlineExtendMatchCmp1 + +inlineExtendMatchEnd: + // End inline of the extendMatch call. + // ---------------------------------------- + + // ---------------------------------------- + // Begin inline of the emitCopy call. + // + // d += emitCopy(dst[d:], base-candidate, s-base) + + // !!! length := s - base + MOVQ SI, AX + SUBQ R12, AX + +inlineEmitCopyLoop0: + // for length >= 68 { etc } + CMPL AX, $68 + JLT inlineEmitCopyStep1 + + // Emit a length 64 copy, encoded as 3 bytes. + MOVB $0xfe, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + SUBL $64, AX + JMP inlineEmitCopyLoop0 + +inlineEmitCopyStep1: + // if length > 64 { etc } + CMPL AX, $64 + JLE inlineEmitCopyStep2 + + // Emit a length 60 copy, encoded as 3 bytes. + MOVB $0xee, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + SUBL $60, AX + +inlineEmitCopyStep2: + // if length >= 12 || offset >= 2048 { goto inlineEmitCopyStep3 } + CMPL AX, $12 + JGE inlineEmitCopyStep3 + CMPL R11, $2048 + JGE inlineEmitCopyStep3 + + // Emit the remaining copy, encoded as 2 bytes. + MOVB R11, 1(DI) + SHRL $8, R11 + SHLB $5, R11 + SUBB $4, AX + SHLB $2, AX + ORB AX, R11 + ORB $1, R11 + MOVB R11, 0(DI) + ADDQ $2, DI + JMP inlineEmitCopyEnd + +inlineEmitCopyStep3: + // Emit the remaining copy, encoded as 3 bytes. + SUBL $1, AX + SHLB $2, AX + ORB $2, AX + MOVB AX, 0(DI) + MOVW R11, 1(DI) + ADDQ $3, DI + +inlineEmitCopyEnd: + // End inline of the emitCopy call. + // ---------------------------------------- + + // nextEmit = s + MOVQ SI, R10 + + // if s >= sLimit { goto emitRemainder } + MOVQ SI, AX + SUBQ DX, AX + CMPQ AX, R9 + JAE emitRemainder + + // As per the encode_other.go code: + // + // We could immediately etc. + + // x := load64(src, s-1) + MOVQ -1(SI), R14 + + // prevHash := hash(uint32(x>>0), shift) + MOVL R14, R11 + IMULL $0x1e35a7bd, R11 + SHRL CX, R11 + + // table[prevHash] = uint16(s-1) + MOVQ SI, AX + SUBQ DX, AX + SUBQ $1, AX + + // XXX: MOVW AX, table-32768(SP)(R11*2) + // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) + BYTE $0x66 + BYTE $0x42 + BYTE $0x89 + BYTE $0x44 + BYTE $0x5c + BYTE $0x78 + + // currHash := hash(uint32(x>>8), shift) + SHRQ $8, R14 + MOVL R14, R11 + IMULL $0x1e35a7bd, R11 + SHRL CX, R11 + + // candidate = int(table[currHash]) + // XXX: MOVWQZX table-32768(SP)(R11*2), R15 + // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 + BYTE $0x4e + BYTE $0x0f + BYTE $0xb7 + BYTE $0x7c + BYTE $0x5c + BYTE $0x78 + + // table[currHash] = uint16(s) + ADDQ $1, AX + + // XXX: MOVW AX, table-32768(SP)(R11*2) + // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) + BYTE $0x66 + BYTE $0x42 + BYTE $0x89 + BYTE $0x44 + BYTE $0x5c + BYTE $0x78 + + // if uint32(x>>8) == load32(src, candidate) { continue } + MOVL (DX)(R15*1), BX + CMPL R14, BX + JEQ inner1 + + // nextHash = hash(uint32(x>>16), shift) + SHRQ $8, R14 + MOVL R14, R11 + IMULL $0x1e35a7bd, R11 + SHRL CX, R11 + + // s++ + ADDQ $1, SI + + // break out of the inner1 for loop, i.e. continue the outer loop. + JMP outer + +emitRemainder: + // if nextEmit < len(src) { etc } + MOVQ src_len+32(FP), AX + ADDQ DX, AX + CMPQ R10, AX + JEQ encodeBlockEnd + + // d += emitLiteral(dst[d:], src[nextEmit:]) + // + // Push args. + MOVQ DI, 0(SP) + MOVQ $0, 8(SP) // Unnecessary, as the callee ignores it, but conservative. + MOVQ $0, 16(SP) // Unnecessary, as the callee ignores it, but conservative. + MOVQ R10, 24(SP) + SUBQ R10, AX + MOVQ AX, 32(SP) + MOVQ AX, 40(SP) // Unnecessary, as the callee ignores it, but conservative. + + // Spill local variables (registers) onto the stack; call; unspill. + MOVQ DI, 80(SP) + CALL ·emitLiteral(SB) + MOVQ 80(SP), DI + + // Finish the "d +=" part of "d += emitLiteral(etc)". + ADDQ 48(SP), DI + +encodeBlockEnd: + MOVQ dst_base+0(FP), AX + SUBQ AX, DI + MOVQ DI, d+48(FP) + RET diff --git a/vendor/github.com/klauspost/compress/snappy/encode_other.go b/vendor/github.com/klauspost/compress/snappy/encode_other.go new file mode 100644 index 0000000..dbcae90 --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/encode_other.go @@ -0,0 +1,238 @@ +// Copyright 2016 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !amd64 appengine !gc noasm + +package snappy + +func load32(b []byte, i int) uint32 { + b = b[i : i+4 : len(b)] // Help the compiler eliminate bounds checks on the next line. + return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 +} + +func load64(b []byte, i int) uint64 { + b = b[i : i+8 : len(b)] // Help the compiler eliminate bounds checks on the next line. + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | + uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 +} + +// emitLiteral writes a literal chunk and returns the number of bytes written. +// +// It assumes that: +// dst is long enough to hold the encoded bytes +// 1 <= len(lit) && len(lit) <= 65536 +func emitLiteral(dst, lit []byte) int { + i, n := 0, uint(len(lit)-1) + switch { + case n < 60: + dst[0] = uint8(n)<<2 | tagLiteral + i = 1 + case n < 1<<8: + dst[0] = 60<<2 | tagLiteral + dst[1] = uint8(n) + i = 2 + default: + dst[0] = 61<<2 | tagLiteral + dst[1] = uint8(n) + dst[2] = uint8(n >> 8) + i = 3 + } + return i + copy(dst[i:], lit) +} + +// emitCopy writes a copy chunk and returns the number of bytes written. +// +// It assumes that: +// dst is long enough to hold the encoded bytes +// 1 <= offset && offset <= 65535 +// 4 <= length && length <= 65535 +func emitCopy(dst []byte, offset, length int) int { + i := 0 + // The maximum length for a single tagCopy1 or tagCopy2 op is 64 bytes. The + // threshold for this loop is a little higher (at 68 = 64 + 4), and the + // length emitted down below is is a little lower (at 60 = 64 - 4), because + // it's shorter to encode a length 67 copy as a length 60 tagCopy2 followed + // by a length 7 tagCopy1 (which encodes as 3+2 bytes) than to encode it as + // a length 64 tagCopy2 followed by a length 3 tagCopy2 (which encodes as + // 3+3 bytes). The magic 4 in the 64±4 is because the minimum length for a + // tagCopy1 op is 4 bytes, which is why a length 3 copy has to be an + // encodes-as-3-bytes tagCopy2 instead of an encodes-as-2-bytes tagCopy1. + for length >= 68 { + // Emit a length 64 copy, encoded as 3 bytes. + dst[i+0] = 63<<2 | tagCopy2 + dst[i+1] = uint8(offset) + dst[i+2] = uint8(offset >> 8) + i += 3 + length -= 64 + } + if length > 64 { + // Emit a length 60 copy, encoded as 3 bytes. + dst[i+0] = 59<<2 | tagCopy2 + dst[i+1] = uint8(offset) + dst[i+2] = uint8(offset >> 8) + i += 3 + length -= 60 + } + if length >= 12 || offset >= 2048 { + // Emit the remaining copy, encoded as 3 bytes. + dst[i+0] = uint8(length-1)<<2 | tagCopy2 + dst[i+1] = uint8(offset) + dst[i+2] = uint8(offset >> 8) + return i + 3 + } + // Emit the remaining copy, encoded as 2 bytes. + dst[i+0] = uint8(offset>>8)<<5 | uint8(length-4)<<2 | tagCopy1 + dst[i+1] = uint8(offset) + return i + 2 +} + +// extendMatch returns the largest k such that k <= len(src) and that +// src[i:i+k-j] and src[j:k] have the same contents. +// +// It assumes that: +// 0 <= i && i < j && j <= len(src) +func extendMatch(src []byte, i, j int) int { + for ; j < len(src) && src[i] == src[j]; i, j = i+1, j+1 { + } + return j +} + +func hash(u, shift uint32) uint32 { + return (u * 0x1e35a7bd) >> shift +} + +// encodeBlock encodes a non-empty src to a guaranteed-large-enough dst. It +// assumes that the varint-encoded length of the decompressed bytes has already +// been written. +// +// It also assumes that: +// len(dst) >= MaxEncodedLen(len(src)) && +// minNonLiteralBlockSize <= len(src) && len(src) <= maxBlockSize +func encodeBlock(dst, src []byte) (d int) { + // Initialize the hash table. Its size ranges from 1<<8 to 1<<14 inclusive. + // The table element type is uint16, as s < sLimit and sLimit < len(src) + // and len(src) <= maxBlockSize and maxBlockSize == 65536. + const ( + maxTableSize = 1 << 14 + // tableMask is redundant, but helps the compiler eliminate bounds + // checks. + tableMask = maxTableSize - 1 + ) + shift := uint32(32 - 8) + for tableSize := 1 << 8; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 { + shift-- + } + // In Go, all array elements are zero-initialized, so there is no advantage + // to a smaller tableSize per se. However, it matches the C++ algorithm, + // and in the asm versions of this code, we can get away with zeroing only + // the first tableSize elements. + var table [maxTableSize]uint16 + + // sLimit is when to stop looking for offset/length copies. The inputMargin + // lets us use a fast path for emitLiteral in the main loop, while we are + // looking for copies. + sLimit := len(src) - inputMargin + + // nextEmit is where in src the next emitLiteral should start from. + nextEmit := 0 + + // The encoded form must start with a literal, as there are no previous + // bytes to copy, so we start looking for hash matches at s == 1. + s := 1 + nextHash := hash(load32(src, s), shift) + + for { + // Copied from the C++ snappy implementation: + // + // Heuristic match skipping: If 32 bytes are scanned with no matches + // found, start looking only at every other byte. If 32 more bytes are + // scanned (or skipped), look at every third byte, etc.. When a match + // is found, immediately go back to looking at every byte. This is a + // small loss (~5% performance, ~0.1% density) for compressible data + // due to more bookkeeping, but for non-compressible data (such as + // JPEG) it's a huge win since the compressor quickly "realizes" the + // data is incompressible and doesn't bother looking for matches + // everywhere. + // + // The "skip" variable keeps track of how many bytes there are since + // the last match; dividing it by 32 (ie. right-shifting by five) gives + // the number of bytes to move ahead for each iteration. + skip := 32 + + nextS := s + candidate := 0 + for { + s = nextS + bytesBetweenHashLookups := skip >> 5 + nextS = s + bytesBetweenHashLookups + skip += bytesBetweenHashLookups + if nextS > sLimit { + goto emitRemainder + } + candidate = int(table[nextHash&tableMask]) + table[nextHash&tableMask] = uint16(s) + nextHash = hash(load32(src, nextS), shift) + if load32(src, s) == load32(src, candidate) { + break + } + } + + // A 4-byte match has been found. We'll later see if more than 4 bytes + // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit + // them as literal bytes. + d += emitLiteral(dst[d:], src[nextEmit:s]) + + // Call emitCopy, and then see if another emitCopy could be our next + // move. Repeat until we find no match for the input immediately after + // what was consumed by the last emitCopy call. + // + // If we exit this loop normally then we need to call emitLiteral next, + // though we don't yet know how big the literal will be. We handle that + // by proceeding to the next iteration of the main loop. We also can + // exit this loop via goto if we get close to exhausting the input. + for { + // Invariant: we have a 4-byte match at s, and no need to emit any + // literal bytes prior to s. + base := s + + // Extend the 4-byte match as long as possible. + // + // This is an inlined version of: + // s = extendMatch(src, candidate+4, s+4) + s += 4 + for i := candidate + 4; s < len(src) && src[i] == src[s]; i, s = i+1, s+1 { + } + + d += emitCopy(dst[d:], base-candidate, s-base) + nextEmit = s + if s >= sLimit { + goto emitRemainder + } + + // We could immediately start working at s now, but to improve + // compression we first update the hash table at s-1 and at s. If + // another emitCopy is not our next move, also calculate nextHash + // at s+1. At least on GOARCH=amd64, these three hash calculations + // are faster as one load64 call (with some shifts) instead of + // three load32 calls. + x := load64(src, s-1) + prevHash := hash(uint32(x>>0), shift) + table[prevHash&tableMask] = uint16(s - 1) + currHash := hash(uint32(x>>8), shift) + candidate = int(table[currHash&tableMask]) + table[currHash&tableMask] = uint16(s) + if uint32(x>>8) != load32(src, candidate) { + nextHash = hash(uint32(x>>16), shift) + s++ + break + } + } + } + +emitRemainder: + if nextEmit < len(src) { + d += emitLiteral(dst[d:], src[nextEmit:]) + } + return d +} diff --git a/vendor/github.com/klauspost/compress/snappy/runbench.cmd b/vendor/github.com/klauspost/compress/snappy/runbench.cmd new file mode 100644 index 0000000..d24eb4b --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/runbench.cmd @@ -0,0 +1,2 @@ +del old.txt +go test -bench=. >>old.txt && go test -bench=. >>old.txt && go test -bench=. >>old.txt && benchstat -delta-test=ttest old.txt new.txt diff --git a/vendor/github.com/klauspost/compress/snappy/snappy.go b/vendor/github.com/klauspost/compress/snappy/snappy.go new file mode 100644 index 0000000..74a3668 --- /dev/null +++ b/vendor/github.com/klauspost/compress/snappy/snappy.go @@ -0,0 +1,98 @@ +// Copyright 2011 The Snappy-Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package snappy implements the Snappy compression format. It aims for very +// high speeds and reasonable compression. +// +// There are actually two Snappy formats: block and stream. They are related, +// but different: trying to decompress block-compressed data as a Snappy stream +// will fail, and vice versa. The block format is the Decode and Encode +// functions and the stream format is the Reader and Writer types. +// +// The block format, the more common case, is used when the complete size (the +// number of bytes) of the original data is known upfront, at the time +// compression starts. The stream format, also known as the framing format, is +// for when that isn't always true. +// +// The canonical, C++ implementation is at https://github.com/google/snappy and +// it only implements the block format. +package snappy + +import ( + "hash/crc32" +) + +/* +Each encoded block begins with the varint-encoded length of the decoded data, +followed by a sequence of chunks. Chunks begin and end on byte boundaries. The +first byte of each chunk is broken into its 2 least and 6 most significant bits +called l and m: l ranges in [0, 4) and m ranges in [0, 64). l is the chunk tag. +Zero means a literal tag. All other values mean a copy tag. + +For literal tags: + - If m < 60, the next 1 + m bytes are literal bytes. + - Otherwise, let n be the little-endian unsigned integer denoted by the next + m - 59 bytes. The next 1 + n bytes after that are literal bytes. + +For copy tags, length bytes are copied from offset bytes ago, in the style of +Lempel-Ziv compression algorithms. In particular: + - For l == 1, the offset ranges in [0, 1<<11) and the length in [4, 12). + The length is 4 + the low 3 bits of m. The high 3 bits of m form bits 8-10 + of the offset. The next byte is bits 0-7 of the offset. + - For l == 2, the offset ranges in [0, 1<<16) and the length in [1, 65). + The length is 1 + m. The offset is the little-endian unsigned integer + denoted by the next 2 bytes. + - For l == 3, this tag is a legacy format that is no longer issued by most + encoders. Nonetheless, the offset ranges in [0, 1<<32) and the length in + [1, 65). The length is 1 + m. The offset is the little-endian unsigned + integer denoted by the next 4 bytes. +*/ +const ( + tagLiteral = 0x00 + tagCopy1 = 0x01 + tagCopy2 = 0x02 + tagCopy4 = 0x03 +) + +const ( + checksumSize = 4 + chunkHeaderSize = 4 + magicChunk = "\xff\x06\x00\x00" + magicBody + magicBody = "sNaPpY" + + // maxBlockSize is the maximum size of the input to encodeBlock. It is not + // part of the wire format per se, but some parts of the encoder assume + // that an offset fits into a uint16. + // + // Also, for the framing format (Writer type instead of Encode function), + // https://github.com/google/snappy/blob/master/framing_format.txt says + // that "the uncompressed data in a chunk must be no longer than 65536 + // bytes". + maxBlockSize = 65536 + + // maxEncodedLenOfMaxBlockSize equals MaxEncodedLen(maxBlockSize), but is + // hard coded to be a const instead of a variable, so that obufLen can also + // be a const. Their equivalence is confirmed by + // TestMaxEncodedLenOfMaxBlockSize. + maxEncodedLenOfMaxBlockSize = 76490 + + obufHeaderLen = len(magicChunk) + checksumSize + chunkHeaderSize + obufLen = obufHeaderLen + maxEncodedLenOfMaxBlockSize +) + +const ( + chunkTypeCompressedData = 0x00 + chunkTypeUncompressedData = 0x01 + chunkTypePadding = 0xfe + chunkTypeStreamIdentifier = 0xff +) + +var crcTable = crc32.MakeTable(crc32.Castagnoli) + +// crc implements the checksum specified in section 3 of +// https://github.com/google/snappy/blob/master/framing_format.txt +func crc(b []byte) uint32 { + c := crc32.Update(0, crcTable, b) + return uint32(c>>15|c<<17) + 0xa282ead8 +} diff --git a/vendor/github.com/klauspost/compress/zstd/README.md b/vendor/github.com/klauspost/compress/zstd/README.md new file mode 100644 index 0000000..bc977a3 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/README.md @@ -0,0 +1,393 @@ +# zstd + +[Zstandard](https://facebook.github.io/zstd/) is a real-time compression algorithm, providing high compression ratios. +It offers a very wide range of compression / speed trade-off, while being backed by a very fast decoder. +A high performance compression algorithm is implemented. For now focused on speed. + +This package provides [compression](#Compressor) to and [decompression](#Decompressor) of Zstandard content. +Note that custom dictionaries are not supported yet, so if your code relies on that, +you cannot use the package as-is. + +This package is pure Go and without use of "unsafe". +If a significant speedup can be achieved using "unsafe", it may be added as an option later. + +The `zstd` package is provided as open source software using a Go standard license. + +Currently the package is heavily optimized for 64 bit processors and will be significantly slower on 32 bit processors. + +## Installation + +Install using `go get -u github.com/klauspost/compress`. The package is located in `github.com/klauspost/compress/zstd`. + +Godoc Documentation: https://godoc.org/github.com/klauspost/compress/zstd + + +## Compressor + +### Status: + +STABLE - there may always be subtle bugs, a wide variety of content has been tested and the library is actively +used by several projects. This library is being continuously [fuzz-tested](https://github.com/klauspost/compress-fuzz), +kindly supplied by [fuzzit.dev](https://fuzzit.dev/). + +There may still be specific combinations of data types/size/settings that could lead to edge cases, +so as always, testing is recommended. + +For now, a high speed (fastest) and medium-fast (default) compressor has been implemented. + +The "Fastest" compression ratio is roughly equivalent to zstd level 1. +The "Default" compression ratio is roughly equivalent to zstd level 3 (default). + +In terms of speed, it is typically 2x as fast as the stdlib deflate/gzip in its fastest mode. +The compression ratio compared to stdlib is around level 3, but usually 3x as fast. + +Compared to cgo zstd, the speed is around level 3 (default), but compression slightly worse, between level 1&2. + + +### Usage + +An Encoder can be used for either compressing a stream via the +`io.WriteCloser` interface supported by the Encoder or as multiple independent +tasks via the `EncodeAll` function. +Smaller encodes are encouraged to use the EncodeAll function. +Use `NewWriter` to create a new instance that can be used for both. + +To create a writer with default options, do like this: + +```Go +// Compress input to output. +func Compress(in io.Reader, out io.Writer) error { + w, err := NewWriter(output) + if err != nil { + return err + } + _, err := io.Copy(w, input) + if err != nil { + enc.Close() + return err + } + return enc.Close() +} +``` + +Now you can encode by writing data to `enc`. The output will be finished writing when `Close()` is called. +Even if your encode fails, you should still call `Close()` to release any resources that may be held up. + +The above is fine for big encodes. However, whenever possible try to *reuse* the writer. + +To reuse the encoder, you can use the `Reset(io.Writer)` function to change to another output. +This will allow the encoder to reuse all resources and avoid wasteful allocations. + +Currently stream encoding has 'light' concurrency, meaning up to 2 goroutines can be working on part +of a stream. This is independent of the `WithEncoderConcurrency(n)`, but that is likely to change +in the future. So if you want to limit concurrency for future updates, specify the concurrency +you would like. + +You can specify your desired compression level using `WithEncoderLevel()` option. Currently only pre-defined +compression settings can be specified. + +#### Future Compatibility Guarantees + +This will be an evolving project. When using this package it is important to note that both the compression efficiency and speed may change. + +The goal will be to keep the default efficiency at the default zstd (level 3). +However the encoding should never be assumed to remain the same, +and you should not use hashes of compressed output for similarity checks. + +The Encoder can be assumed to produce the same output from the exact same code version. +However, the may be modes in the future that break this, +although they will not be enabled without an explicit option. + +This encoder is not designed to (and will probably never) output the exact same bitstream as the reference encoder. + +Also note, that the cgo decompressor currently does not [report all errors on invalid input](https://github.com/DataDog/zstd/issues/59), +[omits error checks](https://github.com/DataDog/zstd/issues/61), [ignores checksums](https://github.com/DataDog/zstd/issues/43) +and seems to ignore concatenated streams, even though [it is part of the spec](https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#frames). + +#### Blocks + +For compressing small blocks, the returned encoder has a function called `EncodeAll(src, dst []byte) []byte`. + +`EncodeAll` will encode all input in src and append it to dst. +This function can be called concurrently, but each call will only run on a single goroutine. + +Encoded blocks can be concatenated and the result will be the combined input stream. +Data compressed with EncodeAll can be decoded with the Decoder, using either a stream or `DecodeAll`. + +Especially when encoding blocks you should take special care to reuse the encoder. +This will effectively make it run without allocations after a warmup period. +To make it run completely without allocations, supply a destination buffer with space for all content. + +```Go +import "github.com/klauspost/compress/zstd" + +// Create a writer that caches compressors. +// For this operation type we supply a nil Reader. +var encoder, _ = zstd.NewWriter(nil) + +// Compress a buffer. +// If you have a destination buffer, the allocation in the call can also be eliminated. +func Compress(src []byte) []byte { + return encoder.EncodeAll(src, make([]byte, 0, len(src))) +} +``` + +You can control the maximum number of concurrent encodes using the `WithEncoderConcurrency(n)` +option when creating the writer. + +Using the Encoder for both a stream and individual blocks concurrently is safe. + +### Performance + +I have collected some speed examples to compare speed and compression against other compressors. + +* `file` is the input file. +* `out` is the compressor used. `zskp` is this package. `gzstd` is gzip standard library. `zstd` is the Datadog cgo library. +* `level` is the compression level used. For `zskp` level 1 is "fastest", level 2 is "default". +* `insize`/`outsize` is the input/output size. +* `millis` is the number of milliseconds used for compression. +* `mb/s` is megabytes (2^20 bytes) per second. + +``` +The test data for the Large Text Compression Benchmark is the first +10^9 bytes of the English Wikipedia dump on Mar. 3, 2006. +http://mattmahoney.net/dc/textdata.html + +file out level insize outsize millis mb/s +enwik9 zskp 1 1000000000 343833033 5840 163.30 +enwik9 zskp 2 1000000000 317822183 8449 112.87 +enwik9 gzstd 1 1000000000 382578136 13627 69.98 +enwik9 gzstd 3 1000000000 349139651 22344 42.68 +enwik9 zstd 1 1000000000 357416379 4838 197.12 +enwik9 zstd 3 1000000000 313734522 7556 126.21 + +GOB stream of binary data. Highly compressible. +https://files.klauspost.com/compress/gob-stream.7z + +file out level insize outsize millis mb/s +gob-stream zskp 1 1911399616 234981983 5100 357.42 +gob-stream zskp 2 1911399616 208674003 6698 272.15 +gob-stream gzstd 1 1911399616 357382641 14727 123.78 +gob-stream gzstd 3 1911399616 327835097 17005 107.19 +gob-stream zstd 1 1911399616 250787165 4075 447.22 +gob-stream zstd 3 1911399616 208191888 5511 330.77 + +Highly compressible JSON file. Similar to logs in a lot of ways. +https://files.klauspost.com/compress/adresser.001.gz + +file out level insize outsize millis mb/s +adresser.001 zskp 1 1073741824 18510122 1477 692.83 +adresser.001 zskp 2 1073741824 19831697 1705 600.59 +adresser.001 gzstd 1 1073741824 47755503 3079 332.47 +adresser.001 gzstd 3 1073741824 40052381 3051 335.63 +adresser.001 zstd 1 1073741824 16135896 994 1030.18 +adresser.001 zstd 3 1073741824 17794465 905 1131.49 + +VM Image, Linux mint with a few installed applications: +https://files.klauspost.com/compress/rawstudio-mint14.7z + +file out level insize outsize millis mb/s +rawstudio-mint14.tar zskp 1 8558382592 3648168838 33398 244.38 +rawstudio-mint14.tar zskp 2 8558382592 3376721436 50962 160.16 +rawstudio-mint14.tar gzstd 1 8558382592 3926257486 84712 96.35 +rawstudio-mint14.tar gzstd 3 8558382592 3740711978 176344 46.28 +rawstudio-mint14.tar zstd 1 8558382592 3607859742 27903 292.51 +rawstudio-mint14.tar zstd 3 8558382592 3341710879 46700 174.77 + + +The test data is designed to test archivers in realistic backup scenarios. +http://mattmahoney.net/dc/10gb.html + +file out level insize outsize millis mb/s +10gb.tar zskp 1 10065157632 4883149814 45715 209.97 +10gb.tar zskp 2 10065157632 4638110010 60970 157.44 +10gb.tar gzstd 1 10065157632 5198296126 97769 98.18 +10gb.tar gzstd 3 10065157632 4932665487 313427 30.63 +10gb.tar zstd 1 10065157632 4940796535 40391 237.65 +10gb.tar zstd 3 10065157632 4638618579 52911 181.42 + +Silesia Corpus: +http://sun.aei.polsl.pl/~sdeor/corpus/silesia.zip + +file out level insize outsize millis mb/s +silesia.tar zskp 1 211947520 73025800 1108 182.26 +silesia.tar zskp 2 211947520 67674684 1599 126.41 +silesia.tar gzstd 1 211947520 80007735 2515 80.37 +silesia.tar gzstd 3 211947520 73133380 4259 47.45 +silesia.tar zstd 1 211947520 73513991 933 216.64 +silesia.tar zstd 3 211947520 66793301 1377 146.79 +``` + +### Converters + +As part of the development process a *Snappy* -> *Zstandard* converter was also built. + +This can convert a *framed* [Snappy Stream](https://godoc.org/github.com/golang/snappy#Writer) to a zstd stream. +Note that a single block is not framed. + +Conversion is done by converting the stream directly from Snappy without intermediate full decoding. +Therefore the compression ratio is much less than what can be done by a full decompression +and compression, and a faulty Snappy stream may lead to a faulty Zstandard stream without +any errors being generated. +No CRC value is being generated and not all CRC values of the Snappy stream are checked. +However, it provides really fast re-compression of Snappy streams. + + +``` +BenchmarkSnappy_ConvertSilesia-8 1 1156001600 ns/op 183.35 MB/s +Snappy len 103008711 -> zstd len 82687318 + +BenchmarkSnappy_Enwik9-8 1 6472998400 ns/op 154.49 MB/s +Snappy len 508028601 -> zstd len 390921079 +``` + + +```Go + s := zstd.SnappyConverter{} + n, err = s.Convert(input, output) + if err != nil { + fmt.Println("Re-compressed stream to", n, "bytes") + } +``` + +The converter `s` can be reused to avoid allocations, even after errors. + + +## Decompressor + +Staus: STABLE - there may still be subtle bugs, but a wide variety of content has been tested. + +This library is being continuously [fuzz-tested](https://github.com/klauspost/compress-fuzz), +kindly supplied by [fuzzit.dev](https://fuzzit.dev/). +The main purpose of the fuzz testing is to ensure that it is not possible to crash the decoder, +or run it past its limits with ANY input provided. + +### Usage + +The package has been designed for two main usages, big streams of data and smaller in-memory buffers. +There are two main usages of the package for these. Both of them are accessed by creating a `Decoder`. + +For streaming use a simple setup could look like this: + +```Go +import "github.com/klauspost/compress/zstd" + +func Decompress(in io.Reader, out io.Writer) error { + d, err := zstd.NewReader(input) + if err != nil { + return err + } + defer d.Close() + + // Copy content... + _, err := io.Copy(out, d) + return err +} +``` + +It is important to use the "Close" function when you no longer need the Reader to stop running goroutines. +See "Allocation-less operation" below. + +For decoding buffers, it could look something like this: + +```Go +import "github.com/klauspost/compress/zstd" + +// Create a reader that caches decompressors. +// For this operation type we supply a nil Reader. +var decoder, _ = zstd.NewReader(nil) + +// Decompress a buffer. We don't supply a destination buffer, +// so it will be allocated by the decoder. +func Decompress(src []byte) ([]byte, error) { + return decoder.DecodeAll(src, nil) +} +``` + +Both of these cases should provide the functionality needed. +The decoder can be used for *concurrent* decompression of multiple buffers. +It will only allow a certain number of concurrent operations to run. +To tweak that yourself use the `WithDecoderConcurrency(n)` option when creating the decoder. + +### Allocation-less operation + +The decoder has been designed to operate without allocations after a warmup. + +This means that you should *store* the decoder for best performance. +To re-use a stream decoder, use the `Reset(r io.Reader) error` to switch to another stream. +A decoder can safely be re-used even if the previous stream failed. + +To release the resources, you must call the `Close()` function on a decoder. +After this it can *no longer be reused*, but all running goroutines will be stopped. +So you *must* use this if you will no longer need the Reader. + +For decompressing smaller buffers a single decoder can be used. +When decoding buffers, you can supply a destination slice with length 0 and your expected capacity. +In this case no unneeded allocations should be made. + +### Concurrency + +The buffer decoder does everything on the same goroutine and does nothing concurrently. +It can however decode several buffers concurrently. Use `WithDecoderConcurrency(n)` to limit that. + +The stream decoder operates on + +* One goroutine reads input and splits the input to several block decoders. +* A number of decoders will decode blocks. +* A goroutine coordinates these blocks and sends history from one to the next. + +So effectively this also means the decoder will "read ahead" and prepare data to always be available for output. + +Since "blocks" are quite dependent on the output of the previous block stream decoding will only have limited concurrency. + +In practice this means that concurrency is often limited to utilizing about 2 cores effectively. + + +### Benchmarks + +These are some examples of performance compared to [datadog cgo library](https://github.com/DataDog/zstd). + +The first two are streaming decodes and the last are smaller inputs. + +``` +BenchmarkDecoderSilesia-8 20 642550210 ns/op 329.85 MB/s 3101 B/op 8 allocs/op +BenchmarkDecoderSilesiaCgo-8 100 384930000 ns/op 550.61 MB/s 451878 B/op 9713 allocs/op + +BenchmarkDecoderEnwik9-2 10 3146000080 ns/op 317.86 MB/s 2649 B/op 9 allocs/op +BenchmarkDecoderEnwik9Cgo-2 20 1905900000 ns/op 524.69 MB/s 1125120 B/op 45785 allocs/op + +BenchmarkDecoder_DecodeAll/z000000.zst-8 200 7049994 ns/op 138.26 MB/s 40 B/op 2 allocs/op +BenchmarkDecoder_DecodeAll/z000001.zst-8 100000 19560 ns/op 97.49 MB/s 40 B/op 2 allocs/op +BenchmarkDecoder_DecodeAll/z000002.zst-8 5000 297599 ns/op 236.99 MB/s 40 B/op 2 allocs/op +BenchmarkDecoder_DecodeAll/z000003.zst-8 2000 725502 ns/op 141.17 MB/s 40 B/op 2 allocs/op +BenchmarkDecoder_DecodeAll/z000004.zst-8 200000 9314 ns/op 54.54 MB/s 40 B/op 2 allocs/op +BenchmarkDecoder_DecodeAll/z000005.zst-8 10000 137500 ns/op 104.72 MB/s 40 B/op 2 allocs/op +BenchmarkDecoder_DecodeAll/z000006.zst-8 500 2316009 ns/op 206.06 MB/s 40 B/op 2 allocs/op +BenchmarkDecoder_DecodeAll/z000007.zst-8 20000 64499 ns/op 344.90 MB/s 40 B/op 2 allocs/op +BenchmarkDecoder_DecodeAll/z000008.zst-8 50000 24900 ns/op 219.56 MB/s 40 B/op 2 allocs/op +BenchmarkDecoder_DecodeAll/z000009.zst-8 1000 2348999 ns/op 154.01 MB/s 40 B/op 2 allocs/op + +BenchmarkDecoder_DecodeAllCgo/z000000.zst-8 500 4268005 ns/op 228.38 MB/s 1228849 B/op 3 allocs/op +BenchmarkDecoder_DecodeAllCgo/z000001.zst-8 100000 15250 ns/op 125.05 MB/s 2096 B/op 3 allocs/op +BenchmarkDecoder_DecodeAllCgo/z000002.zst-8 10000 147399 ns/op 478.49 MB/s 73776 B/op 3 allocs/op +BenchmarkDecoder_DecodeAllCgo/z000003.zst-8 5000 320798 ns/op 319.27 MB/s 139312 B/op 3 allocs/op +BenchmarkDecoder_DecodeAllCgo/z000004.zst-8 200000 10004 ns/op 50.77 MB/s 560 B/op 3 allocs/op +BenchmarkDecoder_DecodeAllCgo/z000005.zst-8 20000 73599 ns/op 195.64 MB/s 19120 B/op 3 allocs/op +BenchmarkDecoder_DecodeAllCgo/z000006.zst-8 1000 1119003 ns/op 426.48 MB/s 557104 B/op 3 allocs/op +BenchmarkDecoder_DecodeAllCgo/z000007.zst-8 20000 103450 ns/op 215.04 MB/s 71296 B/op 9 allocs/op +BenchmarkDecoder_DecodeAllCgo/z000008.zst-8 100000 20130 ns/op 271.58 MB/s 6192 B/op 3 allocs/op +BenchmarkDecoder_DecodeAllCgo/z000009.zst-8 2000 1123500 ns/op 322.00 MB/s 368688 B/op 3 allocs/op +``` + +This reflects the performance around May 2019, but this may be out of date. + +# Contributions + +Contributions are always welcome. +For new features/fixes, remember to add tests and for performance enhancements include benchmarks. + +For sending files for reproducing errors use a service like [goobox](https://goobox.io/#/upload) or similar to share your files. + +For general feedback and experience reports, feel free to open an issue or write me on [Twitter](https://twitter.com/sh0dan). + +This package includes the excellent [`github.com/cespare/xxhash`](https://github.com/cespare/xxhash) package Copyright (c) 2016 Caleb Spare. diff --git a/vendor/github.com/klauspost/compress/zstd/bitreader.go b/vendor/github.com/klauspost/compress/zstd/bitreader.go new file mode 100644 index 0000000..15d79d4 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/bitreader.go @@ -0,0 +1,121 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "errors" + "io" + "math/bits" +) + +// bitReader reads a bitstream in reverse. +// The last set bit indicates the start of the stream and is used +// for aligning the input. +type bitReader struct { + in []byte + off uint // next byte to read is at in[off - 1] + value uint64 // Maybe use [16]byte, but shifting is awkward. + bitsRead uint8 +} + +// init initializes and resets the bit reader. +func (b *bitReader) init(in []byte) error { + if len(in) < 1 { + return errors.New("corrupt stream: too short") + } + b.in = in + b.off = uint(len(in)) + // The highest bit of the last byte indicates where to start + v := in[len(in)-1] + if v == 0 { + return errors.New("corrupt stream, did not find end of stream") + } + b.bitsRead = 64 + b.value = 0 + b.fill() + b.fill() + b.bitsRead += 8 - uint8(highBits(uint32(v))) + return nil +} + +// getBits will return n bits. n can be 0. +func (b *bitReader) getBits(n uint8) int { + if n == 0 /*|| b.bitsRead >= 64 */ { + return 0 + } + return b.getBitsFast(n) +} + +// getBitsFast requires that at least one bit is requested every time. +// There are no checks if the buffer is filled. +func (b *bitReader) getBitsFast(n uint8) int { + const regMask = 64 - 1 + v := uint32((b.value << (b.bitsRead & regMask)) >> ((regMask + 1 - n) & regMask)) + b.bitsRead += n + return int(v) +} + +// fillFast() will make sure at least 32 bits are available. +// There must be at least 4 bytes available. +func (b *bitReader) fillFast() { + if b.bitsRead < 32 { + return + } + // Do single re-slice to avoid bounds checks. + v := b.in[b.off-4 : b.off] + low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) + b.value = (b.value << 32) | uint64(low) + b.bitsRead -= 32 + b.off -= 4 +} + +// fill() will make sure at least 32 bits are available. +func (b *bitReader) fill() { + if b.bitsRead < 32 { + return + } + if b.off >= 4 { + v := b.in[b.off-4 : b.off] + low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) + b.value = (b.value << 32) | uint64(low) + b.bitsRead -= 32 + b.off -= 4 + return + } + for b.off > 0 { + b.value = (b.value << 8) | uint64(b.in[b.off-1]) + b.bitsRead -= 8 + b.off-- + } +} + +// finished returns true if all bits have been read from the bit stream. +func (b *bitReader) finished() bool { + return b.off == 0 && b.bitsRead >= 64 +} + +// overread returns true if more bits have been requested than is on the stream. +func (b *bitReader) overread() bool { + return b.bitsRead > 64 +} + +// remain returns the number of bits remaining. +func (b *bitReader) remain() uint { + return b.off*8 + 64 - uint(b.bitsRead) +} + +// close the bitstream and returns an error if out-of-buffer reads occurred. +func (b *bitReader) close() error { + // Release reference. + b.in = nil + if b.bitsRead > 64 { + return io.ErrUnexpectedEOF + } + return nil +} + +func highBits(val uint32) (n uint32) { + return uint32(bits.Len32(val) - 1) +} diff --git a/vendor/github.com/klauspost/compress/zstd/bitwriter.go b/vendor/github.com/klauspost/compress/zstd/bitwriter.go new file mode 100644 index 0000000..303ae90 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/bitwriter.go @@ -0,0 +1,169 @@ +// Copyright 2018 Klaus Post. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// Based on work Copyright (c) 2013, Yann Collet, released under BSD License. + +package zstd + +import "fmt" + +// bitWriter will write bits. +// First bit will be LSB of the first byte of output. +type bitWriter struct { + bitContainer uint64 + nBits uint8 + out []byte +} + +// bitMask16 is bitmasks. Has extra to avoid bounds check. +var bitMask16 = [32]uint16{ + 0, 1, 3, 7, 0xF, 0x1F, + 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, + 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF} /* up to 16 bits */ + +var bitMask32 = [32]uint32{ + 0, 1, 3, 7, 0xF, 0x1F, 0x3F, 0x7F, 0xFF, + 0x1FF, 0x3FF, 0x7FF, 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, + 0x1ffff, 0x3ffff, 0x7FFFF, 0xfFFFF, 0x1fFFFF, 0x3fFFFF, 0x7fFFFF, 0xffFFFF, + 0x1ffFFFF, 0x3ffFFFF, 0x7ffFFFF, 0xfffFFFF, 0x1fffFFFF, 0x3fffFFFF, 0x7fffFFFF, +} // up to 32 bits + +// addBits16NC will add up to 16 bits. +// It will not check if there is space for them, +// so the caller must ensure that it has flushed recently. +func (b *bitWriter) addBits16NC(value uint16, bits uint8) { + b.bitContainer |= uint64(value&bitMask16[bits&31]) << (b.nBits & 63) + b.nBits += bits +} + +// addBits32NC will add up to 32 bits. +// It will not check if there is space for them, +// so the caller must ensure that it has flushed recently. +func (b *bitWriter) addBits32NC(value uint32, bits uint8) { + b.bitContainer |= uint64(value&bitMask32[bits&31]) << (b.nBits & 63) + b.nBits += bits +} + +// addBits16Clean will add up to 16 bits. value may not contain more set bits than indicated. +// It will not check if there is space for them, so the caller must ensure that it has flushed recently. +func (b *bitWriter) addBits16Clean(value uint16, bits uint8) { + b.bitContainer |= uint64(value) << (b.nBits & 63) + b.nBits += bits +} + +// flush will flush all pending full bytes. +// There will be at least 56 bits available for writing when this has been called. +// Using flush32 is faster, but leaves less space for writing. +func (b *bitWriter) flush() { + v := b.nBits >> 3 + switch v { + case 0: + case 1: + b.out = append(b.out, + byte(b.bitContainer), + ) + case 2: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + ) + case 3: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + ) + case 4: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + ) + case 5: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + ) + case 6: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + byte(b.bitContainer>>40), + ) + case 7: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + byte(b.bitContainer>>40), + byte(b.bitContainer>>48), + ) + case 8: + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24), + byte(b.bitContainer>>32), + byte(b.bitContainer>>40), + byte(b.bitContainer>>48), + byte(b.bitContainer>>56), + ) + default: + panic(fmt.Errorf("bits (%d) > 64", b.nBits)) + } + b.bitContainer >>= v << 3 + b.nBits &= 7 +} + +// flush32 will flush out, so there are at least 32 bits available for writing. +func (b *bitWriter) flush32() { + if b.nBits < 32 { + return + } + b.out = append(b.out, + byte(b.bitContainer), + byte(b.bitContainer>>8), + byte(b.bitContainer>>16), + byte(b.bitContainer>>24)) + b.nBits -= 32 + b.bitContainer >>= 32 +} + +// flushAlign will flush remaining full bytes and align to next byte boundary. +func (b *bitWriter) flushAlign() { + nbBytes := (b.nBits + 7) >> 3 + for i := uint8(0); i < nbBytes; i++ { + b.out = append(b.out, byte(b.bitContainer>>(i*8))) + } + b.nBits = 0 + b.bitContainer = 0 +} + +// close will write the alignment bit and write the final byte(s) +// to the output. +func (b *bitWriter) close() error { + // End mark + b.addBits16Clean(1, 1) + // flush until next byte. + b.flushAlign() + return nil +} + +// reset and continue writing by appending to out. +func (b *bitWriter) reset(out []byte) { + b.bitContainer = 0 + b.nBits = 0 + b.out = out +} diff --git a/vendor/github.com/klauspost/compress/zstd/blockdec.go b/vendor/github.com/klauspost/compress/zstd/blockdec.go new file mode 100644 index 0000000..ed670bc --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/blockdec.go @@ -0,0 +1,716 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "errors" + "fmt" + "io" + "sync" + + "github.com/klauspost/compress/huff0" + "github.com/klauspost/compress/zstd/internal/xxhash" +) + +type blockType uint8 + +//go:generate stringer -type=blockType,literalsBlockType,seqCompMode,tableIndex + +const ( + blockTypeRaw blockType = iota + blockTypeRLE + blockTypeCompressed + blockTypeReserved +) + +type literalsBlockType uint8 + +const ( + literalsBlockRaw literalsBlockType = iota + literalsBlockRLE + literalsBlockCompressed + literalsBlockTreeless +) + +const ( + // maxCompressedBlockSize is the biggest allowed compressed block size (128KB) + maxCompressedBlockSize = 128 << 10 + + // Maximum possible block size (all Raw+Uncompressed). + maxBlockSize = (1 << 21) - 1 + + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#literals_section_header + maxCompressedLiteralSize = 1 << 18 + maxRLELiteralSize = 1 << 20 + maxMatchLen = 131074 + maxSequences = 0x7f00 + 0xffff + + // We support slightly less than the reference decoder to be able to + // use ints on 32 bit archs. + maxOffsetBits = 30 +) + +var ( + huffDecoderPool = sync.Pool{New: func() interface{} { + return &huff0.Scratch{} + }} + + fseDecoderPool = sync.Pool{New: func() interface{} { + return &fseDecoder{} + }} +) + +type blockDec struct { + // Raw source data of the block. + data []byte + dataStorage []byte + + // Destination of the decoded data. + dst []byte + + // Buffer for literals data. + literalBuf []byte + + // Window size of the block. + WindowSize uint64 + Type blockType + RLESize uint32 + + // Is this the last block of a frame? + Last bool + + // Use less memory + lowMem bool + history chan *history + input chan struct{} + result chan decodeOutput + sequenceBuf []seq + tmp [4]byte + err error + decWG sync.WaitGroup +} + +func (b *blockDec) String() string { + if b == nil { + return "" + } + return fmt.Sprintf("Steam Size: %d, Type: %v, Last: %t, Window: %d", len(b.data), b.Type, b.Last, b.WindowSize) +} + +func newBlockDec(lowMem bool) *blockDec { + b := blockDec{ + lowMem: lowMem, + result: make(chan decodeOutput, 1), + input: make(chan struct{}, 1), + history: make(chan *history, 1), + } + b.decWG.Add(1) + go b.startDecoder() + return &b +} + +// reset will reset the block. +// Input must be a start of a block and will be at the end of the block when returned. +func (b *blockDec) reset(br byteBuffer, windowSize uint64) error { + b.WindowSize = windowSize + tmp := br.readSmall(3) + if tmp == nil { + if debug { + println("Reading block header:", io.ErrUnexpectedEOF) + } + return io.ErrUnexpectedEOF + } + bh := uint32(tmp[0]) | (uint32(tmp[1]) << 8) | (uint32(tmp[2]) << 16) + b.Last = bh&1 != 0 + b.Type = blockType((bh >> 1) & 3) + // find size. + cSize := int(bh >> 3) + switch b.Type { + case blockTypeReserved: + return ErrReservedBlockType + case blockTypeRLE: + b.RLESize = uint32(cSize) + cSize = 1 + case blockTypeCompressed: + if debug { + println("Data size on stream:", cSize) + } + b.RLESize = 0 + if cSize > maxCompressedBlockSize || uint64(cSize) > b.WindowSize { + if debug { + printf("compressed block too big: csize:%d block: %+v\n", uint64(cSize), b) + } + return ErrCompressedSizeTooBig + } + default: + b.RLESize = 0 + } + + // Read block data. + if cap(b.dataStorage) < cSize { + if b.lowMem { + b.dataStorage = make([]byte, 0, cSize) + } else { + b.dataStorage = make([]byte, 0, maxBlockSize) + } + } + if cap(b.dst) <= maxBlockSize { + b.dst = make([]byte, 0, maxBlockSize+1) + } + var err error + b.data, err = br.readBig(cSize, b.dataStorage) + if err != nil { + if debug { + println("Reading block:", err, "(", cSize, ")", len(b.data)) + printf("%T", br) + } + return err + } + return nil +} + +// sendEOF will make the decoder send EOF on this frame. +func (b *blockDec) sendErr(err error) { + b.Last = true + b.Type = blockTypeReserved + b.err = err + b.input <- struct{}{} +} + +// Close will release resources. +// Closed blockDec cannot be reset. +func (b *blockDec) Close() { + close(b.input) + close(b.history) + close(b.result) + b.decWG.Wait() +} + +// decodeAsync will prepare decoding the block when it receives input. +// This will separate output and history. +func (b *blockDec) startDecoder() { + defer b.decWG.Done() + for range b.input { + //println("blockDec: Got block input") + switch b.Type { + case blockTypeRLE: + if cap(b.dst) < int(b.RLESize) { + if b.lowMem { + b.dst = make([]byte, b.RLESize) + } else { + b.dst = make([]byte, maxBlockSize) + } + } + o := decodeOutput{ + d: b, + b: b.dst[:b.RLESize], + err: nil, + } + v := b.data[0] + for i := range o.b { + o.b[i] = v + } + hist := <-b.history + hist.append(o.b) + b.result <- o + case blockTypeRaw: + o := decodeOutput{ + d: b, + b: b.data, + err: nil, + } + hist := <-b.history + hist.append(o.b) + b.result <- o + case blockTypeCompressed: + b.dst = b.dst[:0] + err := b.decodeCompressed(nil) + o := decodeOutput{ + d: b, + b: b.dst, + err: err, + } + if debug { + println("Decompressed to", len(b.dst), "bytes, error:", err) + } + b.result <- o + case blockTypeReserved: + // Used for returning errors. + <-b.history + b.result <- decodeOutput{ + d: b, + b: nil, + err: b.err, + } + default: + panic("Invalid block type") + } + if debug { + println("blockDec: Finished block") + } + } +} + +// decodeAsync will prepare decoding the block when it receives the history. +// If history is provided, it will not fetch it from the channel. +func (b *blockDec) decodeBuf(hist *history) error { + switch b.Type { + case blockTypeRLE: + if cap(b.dst) < int(b.RLESize) { + if b.lowMem { + b.dst = make([]byte, b.RLESize) + } else { + b.dst = make([]byte, maxBlockSize) + } + } + b.dst = b.dst[:b.RLESize] + v := b.data[0] + for i := range b.dst { + b.dst[i] = v + } + hist.appendKeep(b.dst) + return nil + case blockTypeRaw: + hist.appendKeep(b.data) + return nil + case blockTypeCompressed: + saved := b.dst + b.dst = hist.b + hist.b = nil + err := b.decodeCompressed(hist) + if debug { + println("Decompressed to total", len(b.dst), "bytes, hash:", xxhash.Sum64(b.dst), "error:", err) + } + hist.b = b.dst + b.dst = saved + return err + case blockTypeReserved: + // Used for returning errors. + return b.err + default: + panic("Invalid block type") + } +} + +// decodeCompressed will start decompressing a block. +// If no history is supplied the decoder will decodeAsync as much as possible +// before fetching from blockDec.history +func (b *blockDec) decodeCompressed(hist *history) error { + in := b.data + delayedHistory := hist == nil + + if delayedHistory { + // We must always grab history. + defer func() { + if hist == nil { + <-b.history + } + }() + } + // There must be at least one byte for Literals_Block_Type and one for Sequences_Section_Header + if len(in) < 2 { + return ErrBlockTooSmall + } + litType := literalsBlockType(in[0] & 3) + var litRegenSize int + var litCompSize int + sizeFormat := (in[0] >> 2) & 3 + var fourStreams bool + switch litType { + case literalsBlockRaw, literalsBlockRLE: + switch sizeFormat { + case 0, 2: + // Regenerated_Size uses 5 bits (0-31). Literals_Section_Header uses 1 byte. + litRegenSize = int(in[0] >> 3) + in = in[1:] + case 1: + // Regenerated_Size uses 12 bits (0-4095). Literals_Section_Header uses 2 bytes. + litRegenSize = int(in[0]>>4) + (int(in[1]) << 4) + in = in[2:] + case 3: + // Regenerated_Size uses 20 bits (0-1048575). Literals_Section_Header uses 3 bytes. + if len(in) < 3 { + println("too small: litType:", litType, " sizeFormat", sizeFormat, len(in)) + return ErrBlockTooSmall + } + litRegenSize = int(in[0]>>4) + (int(in[1]) << 4) + (int(in[2]) << 12) + in = in[3:] + } + case literalsBlockCompressed, literalsBlockTreeless: + switch sizeFormat { + case 0, 1: + // Both Regenerated_Size and Compressed_Size use 10 bits (0-1023). + if len(in) < 3 { + println("too small: litType:", litType, " sizeFormat", sizeFormat, len(in)) + return ErrBlockTooSmall + } + n := uint64(in[0]>>4) + (uint64(in[1]) << 4) + (uint64(in[2]) << 12) + litRegenSize = int(n & 1023) + litCompSize = int(n >> 10) + fourStreams = sizeFormat == 1 + in = in[3:] + case 2: + fourStreams = true + if len(in) < 4 { + println("too small: litType:", litType, " sizeFormat", sizeFormat, len(in)) + return ErrBlockTooSmall + } + n := uint64(in[0]>>4) + (uint64(in[1]) << 4) + (uint64(in[2]) << 12) + (uint64(in[3]) << 20) + litRegenSize = int(n & 16383) + litCompSize = int(n >> 14) + in = in[4:] + case 3: + fourStreams = true + if len(in) < 5 { + println("too small: litType:", litType, " sizeFormat", sizeFormat, len(in)) + return ErrBlockTooSmall + } + n := uint64(in[0]>>4) + (uint64(in[1]) << 4) + (uint64(in[2]) << 12) + (uint64(in[3]) << 20) + (uint64(in[4]) << 28) + litRegenSize = int(n & 262143) + litCompSize = int(n >> 18) + in = in[5:] + } + } + if debug { + println("literals type:", litType, "litRegenSize:", litRegenSize, "litCompSize:", litCompSize, "sizeFormat:", sizeFormat, "4X:", fourStreams) + } + var literals []byte + var huff *huff0.Scratch + switch litType { + case literalsBlockRaw: + if len(in) < litRegenSize { + println("too small: litType:", litType, " sizeFormat", sizeFormat, "remain:", len(in), "want:", litRegenSize) + return ErrBlockTooSmall + } + literals = in[:litRegenSize] + in = in[litRegenSize:] + //printf("Found %d uncompressed literals\n", litRegenSize) + case literalsBlockRLE: + if len(in) < 1 { + println("too small: litType:", litType, " sizeFormat", sizeFormat, "remain:", len(in), "want:", 1) + return ErrBlockTooSmall + } + if cap(b.literalBuf) < litRegenSize { + if b.lowMem { + b.literalBuf = make([]byte, litRegenSize) + } else { + if litRegenSize > maxCompressedLiteralSize { + // Exceptional + b.literalBuf = make([]byte, litRegenSize) + } else { + b.literalBuf = make([]byte, litRegenSize, maxCompressedLiteralSize) + + } + } + } + literals = b.literalBuf[:litRegenSize] + v := in[0] + for i := range literals { + literals[i] = v + } + in = in[1:] + if debug { + printf("Found %d RLE compressed literals\n", litRegenSize) + } + case literalsBlockTreeless: + if len(in) < litCompSize { + println("too small: litType:", litType, " sizeFormat", sizeFormat, "remain:", len(in), "want:", litCompSize) + return ErrBlockTooSmall + } + // Store compressed literals, so we defer decoding until we get history. + literals = in[:litCompSize] + in = in[litCompSize:] + if debug { + printf("Found %d compressed literals\n", litCompSize) + } + case literalsBlockCompressed: + if len(in) < litCompSize { + println("too small: litType:", litType, " sizeFormat", sizeFormat, "remain:", len(in), "want:", litCompSize) + return ErrBlockTooSmall + } + literals = in[:litCompSize] + in = in[litCompSize:] + huff = huffDecoderPool.Get().(*huff0.Scratch) + var err error + // Ensure we have space to store it. + if cap(b.literalBuf) < litRegenSize { + if b.lowMem { + b.literalBuf = make([]byte, 0, litRegenSize) + } else { + b.literalBuf = make([]byte, 0, maxCompressedLiteralSize) + } + } + if huff == nil { + huff = &huff0.Scratch{} + } + huff.Out = b.literalBuf[:0] + huff, literals, err = huff0.ReadTable(literals, huff) + if err != nil { + println("reading huffman table:", err) + return err + } + // Use our out buffer. + huff.Out = b.literalBuf[:0] + huff.MaxDecodedSize = litRegenSize + if fourStreams { + literals, err = huff.Decompress4X(literals, litRegenSize) + } else { + literals, err = huff.Decompress1X(literals) + } + if err != nil { + println("decoding compressed literals:", err) + return err + } + // Make sure we don't leak our literals buffer + huff.Out = nil + if len(literals) != litRegenSize { + return fmt.Errorf("literal output size mismatch want %d, got %d", litRegenSize, len(literals)) + } + if debug { + printf("Decompressed %d literals into %d bytes\n", litCompSize, litRegenSize) + } + } + + // Decode Sequences + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#sequences-section + if len(in) < 1 { + return ErrBlockTooSmall + } + seqHeader := in[0] + nSeqs := 0 + switch { + case seqHeader == 0: + in = in[1:] + case seqHeader < 128: + nSeqs = int(seqHeader) + in = in[1:] + case seqHeader < 255: + if len(in) < 2 { + return ErrBlockTooSmall + } + nSeqs = int(seqHeader-128)<<8 | int(in[1]) + in = in[2:] + case seqHeader == 255: + if len(in) < 3 { + return ErrBlockTooSmall + } + nSeqs = 0x7f00 + int(in[1]) + (int(in[2]) << 8) + in = in[3:] + } + // Allocate sequences + if cap(b.sequenceBuf) < nSeqs { + if b.lowMem { + b.sequenceBuf = make([]seq, nSeqs) + } else { + // Allocate max + b.sequenceBuf = make([]seq, nSeqs, maxSequences) + } + } else { + // Reuse buffer + b.sequenceBuf = b.sequenceBuf[:nSeqs] + } + var seqs = &sequenceDecs{} + if nSeqs > 0 { + if len(in) < 1 { + return ErrBlockTooSmall + } + br := byteReader{b: in, off: 0} + compMode := br.Uint8() + br.advance(1) + if debug { + printf("Compression modes: 0b%b", compMode) + } + for i := uint(0); i < 3; i++ { + mode := seqCompMode((compMode >> (6 - i*2)) & 3) + if debug { + println("Table", tableIndex(i), "is", mode) + } + var seq *sequenceDec + switch tableIndex(i) { + case tableLiteralLengths: + seq = &seqs.litLengths + case tableOffsets: + seq = &seqs.offsets + case tableMatchLengths: + seq = &seqs.matchLengths + default: + panic("unknown table") + } + switch mode { + case compModePredefined: + seq.fse = &fsePredef[i] + case compModeRLE: + if br.remain() < 1 { + return ErrBlockTooSmall + } + v := br.Uint8() + br.advance(1) + dec := fseDecoderPool.Get().(*fseDecoder) + symb, err := decSymbolValue(v, symbolTableX[i]) + if err != nil { + printf("RLE Transform table (%v) error: %v", tableIndex(i), err) + return err + } + dec.setRLE(symb) + seq.fse = dec + if debug { + printf("RLE set to %+v, code: %v", symb, v) + } + case compModeFSE: + println("Reading table for", tableIndex(i)) + dec := fseDecoderPool.Get().(*fseDecoder) + err := dec.readNCount(&br, uint16(maxTableSymbol[i])) + if err != nil { + println("Read table error:", err) + return err + } + err = dec.transform(symbolTableX[i]) + if err != nil { + println("Transform table error:", err) + return err + } + if debug { + println("Read table ok", "symbolLen:", dec.symbolLen) + } + seq.fse = dec + case compModeRepeat: + seq.repeat = true + } + if br.overread() { + return io.ErrUnexpectedEOF + } + } + in = br.unread() + } + + // Wait for history. + // All time spent after this is critical since it is strictly sequential. + if hist == nil { + hist = <-b.history + if hist.error { + return ErrDecoderClosed + } + } + + // Decode treeless literal block. + if litType == literalsBlockTreeless { + // TODO: We could send the history early WITHOUT the stream history. + // This would allow decoding treeless literials before the byte history is available. + // Silencia stats: Treeless 4393, with: 32775, total: 37168, 11% treeless. + // So not much obvious gain here. + + if hist.huffTree == nil { + return errors.New("literal block was treeless, but no history was defined") + } + // Ensure we have space to store it. + if cap(b.literalBuf) < litRegenSize { + if b.lowMem { + b.literalBuf = make([]byte, 0, litRegenSize) + } else { + b.literalBuf = make([]byte, 0, maxCompressedLiteralSize) + } + } + var err error + // Use our out buffer. + huff = hist.huffTree + huff.Out = b.literalBuf[:0] + huff.MaxDecodedSize = litRegenSize + if fourStreams { + literals, err = huff.Decompress4X(literals, litRegenSize) + } else { + literals, err = huff.Decompress1X(literals) + } + // Make sure we don't leak our literals buffer + huff.Out = nil + if err != nil { + println("decompressing literals:", err) + return err + } + if len(literals) != litRegenSize { + return fmt.Errorf("literal output size mismatch want %d, got %d", litRegenSize, len(literals)) + } + } else { + if hist.huffTree != nil && huff != nil { + huffDecoderPool.Put(hist.huffTree) + hist.huffTree = nil + } + } + if huff != nil { + huff.Out = nil + hist.huffTree = huff + } + if debug { + println("Final literals:", len(literals), "hash:", xxhash.Sum64(literals), "and", nSeqs, "sequences.") + } + + if nSeqs == 0 { + // Decompressed content is defined entirely as Literals Section content. + b.dst = append(b.dst, literals...) + if delayedHistory { + hist.append(literals) + } + return nil + } + + seqs, err := seqs.mergeHistory(&hist.decoders) + if err != nil { + return err + } + if debug { + println("History merged ok") + } + br := &bitReader{} + if err := br.init(in); err != nil { + return err + } + + // TODO: Investigate if sending history without decoders are faster. + // This would allow the sequences to be decoded async and only have to construct stream history. + // If only recent offsets were not transferred, this would be an obvious win. + // Also, if first 3 sequences don't reference recent offsets, all sequences can be decoded. + + if err := seqs.initialize(br, hist, literals, b.dst); err != nil { + println("initializing sequences:", err) + return err + } + + err = seqs.decode(nSeqs, br, hist.b) + if err != nil { + return err + } + if !br.finished() { + return fmt.Errorf("%d extra bits on block, should be 0", br.remain()) + } + + err = br.close() + if err != nil { + printf("Closing sequences: %v, %+v\n", err, *br) + } + if len(b.data) > maxCompressedBlockSize { + return fmt.Errorf("compressed block size too large (%d)", len(b.data)) + } + // Set output and release references. + b.dst = seqs.out + seqs.out, seqs.literals, seqs.hist = nil, nil, nil + + if !delayedHistory { + // If we don't have delayed history, no need to update. + hist.recentOffsets = seqs.prevOffset + return nil + } + if b.Last { + // if last block we don't care about history. + println("Last block, no history returned") + hist.b = hist.b[:0] + return nil + } + hist.append(b.dst) + hist.recentOffsets = seqs.prevOffset + if debug { + println("Finished block with literals:", len(literals), "and", nSeqs, "sequences.") + } + + return nil +} diff --git a/vendor/github.com/klauspost/compress/zstd/blockenc.go b/vendor/github.com/klauspost/compress/zstd/blockenc.go new file mode 100644 index 0000000..507757d --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/blockenc.go @@ -0,0 +1,837 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "errors" + "fmt" + "math" + "math/bits" + + "github.com/klauspost/compress/huff0" +) + +type blockEnc struct { + size int + literals []byte + sequences []seq + coders seqCoders + litEnc *huff0.Scratch + wr bitWriter + + extraLits int + last bool + + output []byte + recentOffsets [3]uint32 + prevRecentOffsets [3]uint32 +} + +// init should be used once the block has been created. +// If called more than once, the effect is the same as calling reset. +func (b *blockEnc) init() { + if cap(b.literals) < maxCompressedLiteralSize { + b.literals = make([]byte, 0, maxCompressedLiteralSize) + } + const defSeqs = 200 + b.literals = b.literals[:0] + if cap(b.sequences) < defSeqs { + b.sequences = make([]seq, 0, defSeqs) + } + if cap(b.output) < maxCompressedBlockSize { + b.output = make([]byte, 0, maxCompressedBlockSize) + } + if b.coders.mlEnc == nil { + b.coders.mlEnc = &fseEncoder{} + b.coders.mlPrev = &fseEncoder{} + b.coders.ofEnc = &fseEncoder{} + b.coders.ofPrev = &fseEncoder{} + b.coders.llEnc = &fseEncoder{} + b.coders.llPrev = &fseEncoder{} + } + b.litEnc = &huff0.Scratch{WantLogLess: 4} + b.reset(nil) +} + +// initNewEncode can be used to reset offsets and encoders to the initial state. +func (b *blockEnc) initNewEncode() { + b.recentOffsets = [3]uint32{1, 4, 8} + b.litEnc.Reuse = huff0.ReusePolicyNone + b.coders.setPrev(nil, nil, nil) +} + +// reset will reset the block for a new encode, but in the same stream, +// meaning that state will be carried over, but the block content is reset. +// If a previous block is provided, the recent offsets are carried over. +func (b *blockEnc) reset(prev *blockEnc) { + b.extraLits = 0 + b.literals = b.literals[:0] + b.size = 0 + b.sequences = b.sequences[:0] + b.output = b.output[:0] + b.last = false + if prev != nil { + b.recentOffsets = prev.prevRecentOffsets + } +} + +// reset will reset the block for a new encode, but in the same stream, +// meaning that state will be carried over, but the block content is reset. +// If a previous block is provided, the recent offsets are carried over. +func (b *blockEnc) swapEncoders(prev *blockEnc) { + b.coders.swap(&prev.coders) + b.litEnc, prev.litEnc = prev.litEnc, b.litEnc +} + +// blockHeader contains the information for a block header. +type blockHeader uint32 + +// setLast sets the 'last' indicator on a block. +func (h *blockHeader) setLast(b bool) { + if b { + *h = *h | 1 + } else { + const mask = (1 << 24) - 2 + *h = *h & mask + } +} + +// setSize will store the compressed size of a block. +func (h *blockHeader) setSize(v uint32) { + const mask = 7 + *h = (*h)&mask | blockHeader(v<<3) +} + +// setType sets the block type. +func (h *blockHeader) setType(t blockType) { + const mask = 1 | (((1 << 24) - 1) ^ 7) + *h = (*h & mask) | blockHeader(t<<1) +} + +// appendTo will append the block header to a slice. +func (h blockHeader) appendTo(b []byte) []byte { + return append(b, uint8(h), uint8(h>>8), uint8(h>>16)) +} + +// String returns a string representation of the block. +func (h blockHeader) String() string { + return fmt.Sprintf("Type: %d, Size: %d, Last:%t", (h>>1)&3, h>>3, h&1 == 1) +} + +// literalsHeader contains literals header information. +type literalsHeader uint64 + +// setType can be used to set the type of literal block. +func (h *literalsHeader) setType(t literalsBlockType) { + const mask = math.MaxUint64 - 3 + *h = (*h & mask) | literalsHeader(t) +} + +// setSize can be used to set a single size, for uncompressed and RLE content. +func (h *literalsHeader) setSize(regenLen int) { + inBits := bits.Len32(uint32(regenLen)) + // Only retain 2 bits + const mask = 3 + lh := uint64(*h & mask) + switch { + case inBits < 5: + lh |= (uint64(regenLen) << 3) | (1 << 60) + if debug { + got := int(lh>>3) & 0xff + if got != regenLen { + panic(fmt.Sprint("litRegenSize = ", regenLen, "(want) != ", got, "(got)")) + } + } + case inBits < 12: + lh |= (1 << 2) | (uint64(regenLen) << 4) | (2 << 60) + case inBits < 20: + lh |= (3 << 2) | (uint64(regenLen) << 4) | (3 << 60) + default: + panic(fmt.Errorf("internal error: block too big (%d)", regenLen)) + } + *h = literalsHeader(lh) +} + +// setSizes will set the size of a compressed literals section and the input length. +func (h *literalsHeader) setSizes(compLen, inLen int, single bool) { + compBits, inBits := bits.Len32(uint32(compLen)), bits.Len32(uint32(inLen)) + // Only retain 2 bits + const mask = 3 + lh := uint64(*h & mask) + switch { + case compBits <= 10 && inBits <= 10: + if !single { + lh |= 1 << 2 + } + lh |= (uint64(inLen) << 4) | (uint64(compLen) << (10 + 4)) | (3 << 60) + if debug { + const mmask = (1 << 24) - 1 + n := (lh >> 4) & mmask + if int(n&1023) != inLen { + panic(fmt.Sprint("regensize:", int(n&1023), "!=", inLen, inBits)) + } + if int(n>>10) != compLen { + panic(fmt.Sprint("compsize:", int(n>>10), "!=", compLen, compBits)) + } + } + case compBits <= 14 && inBits <= 14: + lh |= (2 << 2) | (uint64(inLen) << 4) | (uint64(compLen) << (14 + 4)) | (4 << 60) + if single { + panic("single stream used with more than 10 bits length.") + } + case compBits <= 18 && inBits <= 18: + lh |= (3 << 2) | (uint64(inLen) << 4) | (uint64(compLen) << (18 + 4)) | (5 << 60) + if single { + panic("single stream used with more than 10 bits length.") + } + default: + panic("internal error: block too big") + } + *h = literalsHeader(lh) +} + +// appendTo will append the literals header to a byte slice. +func (h literalsHeader) appendTo(b []byte) []byte { + size := uint8(h >> 60) + switch size { + case 1: + b = append(b, uint8(h)) + case 2: + b = append(b, uint8(h), uint8(h>>8)) + case 3: + b = append(b, uint8(h), uint8(h>>8), uint8(h>>16)) + case 4: + b = append(b, uint8(h), uint8(h>>8), uint8(h>>16), uint8(h>>24)) + case 5: + b = append(b, uint8(h), uint8(h>>8), uint8(h>>16), uint8(h>>24), uint8(h>>32)) + default: + panic(fmt.Errorf("internal error: literalsHeader has invalid size (%d)", size)) + } + return b +} + +// size returns the output size with currently set values. +func (h literalsHeader) size() int { + return int(h >> 60) +} + +func (h literalsHeader) String() string { + return fmt.Sprintf("Type: %d, SizeFormat: %d, Size: 0x%d, Bytes:%d", literalsBlockType(h&3), (h>>2)&3, h&((1<<60)-1)>>4, h>>60) +} + +// pushOffsets will push the recent offsets to the backup store. +func (b *blockEnc) pushOffsets() { + b.prevRecentOffsets = b.recentOffsets +} + +// pushOffsets will push the recent offsets to the backup store. +func (b *blockEnc) popOffsets() { + b.recentOffsets = b.prevRecentOffsets +} + +// matchOffset will adjust recent offsets and return the adjusted one, +// if it matches a previous offset. +func (b *blockEnc) matchOffset(offset, lits uint32) uint32 { + // Check if offset is one of the recent offsets. + // Adjusts the output offset accordingly. + // Gives a tiny bit of compression, typically around 1%. + if true { + if lits > 0 { + switch offset { + case b.recentOffsets[0]: + offset = 1 + case b.recentOffsets[1]: + b.recentOffsets[1] = b.recentOffsets[0] + b.recentOffsets[0] = offset + offset = 2 + case b.recentOffsets[2]: + b.recentOffsets[2] = b.recentOffsets[1] + b.recentOffsets[1] = b.recentOffsets[0] + b.recentOffsets[0] = offset + offset = 3 + default: + b.recentOffsets[2] = b.recentOffsets[1] + b.recentOffsets[1] = b.recentOffsets[0] + b.recentOffsets[0] = offset + offset += 3 + } + } else { + switch offset { + case b.recentOffsets[1]: + b.recentOffsets[1] = b.recentOffsets[0] + b.recentOffsets[0] = offset + offset = 1 + case b.recentOffsets[2]: + b.recentOffsets[2] = b.recentOffsets[1] + b.recentOffsets[1] = b.recentOffsets[0] + b.recentOffsets[0] = offset + offset = 2 + case b.recentOffsets[0] - 1: + b.recentOffsets[2] = b.recentOffsets[1] + b.recentOffsets[1] = b.recentOffsets[0] + b.recentOffsets[0] = offset + offset = 3 + default: + b.recentOffsets[2] = b.recentOffsets[1] + b.recentOffsets[1] = b.recentOffsets[0] + b.recentOffsets[0] = offset + offset += 3 + } + } + } else { + offset += 3 + } + return offset +} + +// encodeRaw can be used to set the output to a raw representation of supplied bytes. +func (b *blockEnc) encodeRaw(a []byte) { + var bh blockHeader + bh.setLast(b.last) + bh.setSize(uint32(len(a))) + bh.setType(blockTypeRaw) + b.output = bh.appendTo(b.output[:0]) + b.output = append(b.output, a...) + if debug { + println("Adding RAW block, length", len(a)) + } +} + +// encodeRaw can be used to set the output to a raw representation of supplied bytes. +func (b *blockEnc) encodeRawTo(dst, src []byte) []byte { + var bh blockHeader + bh.setLast(b.last) + bh.setSize(uint32(len(src))) + bh.setType(blockTypeRaw) + dst = bh.appendTo(dst) + dst = append(dst, src...) + if debug { + println("Adding RAW block, length", len(src)) + } + return dst +} + +// encodeLits can be used if the block is only litLen. +func (b *blockEnc) encodeLits(raw bool) error { + var bh blockHeader + bh.setLast(b.last) + bh.setSize(uint32(len(b.literals))) + + // Don't compress extremely small blocks + if len(b.literals) < 32 || raw { + if debug { + println("Adding RAW block, length", len(b.literals)) + } + bh.setType(blockTypeRaw) + b.output = bh.appendTo(b.output) + b.output = append(b.output, b.literals...) + return nil + } + + var ( + out []byte + reUsed, single bool + err error + ) + if len(b.literals) >= 1024 { + // Use 4 Streams. + out, reUsed, err = huff0.Compress4X(b.literals, b.litEnc) + } else if len(b.literals) > 32 { + // Use 1 stream + single = true + out, reUsed, err = huff0.Compress1X(b.literals, b.litEnc) + } else { + err = huff0.ErrIncompressible + } + + switch err { + case huff0.ErrIncompressible: + if debug { + println("Adding RAW block, length", len(b.literals)) + } + bh.setType(blockTypeRaw) + b.output = bh.appendTo(b.output) + b.output = append(b.output, b.literals...) + return nil + case huff0.ErrUseRLE: + if debug { + println("Adding RLE block, length", len(b.literals)) + } + bh.setType(blockTypeRLE) + b.output = bh.appendTo(b.output) + b.output = append(b.output, b.literals[0]) + return nil + default: + return err + case nil: + } + // Compressed... + // Now, allow reuse + b.litEnc.Reuse = huff0.ReusePolicyAllow + bh.setType(blockTypeCompressed) + var lh literalsHeader + if reUsed { + if debug { + println("Reused tree, compressed to", len(out)) + } + lh.setType(literalsBlockTreeless) + } else { + if debug { + println("New tree, compressed to", len(out), "tree size:", len(b.litEnc.OutTable)) + } + lh.setType(literalsBlockCompressed) + } + // Set sizes + lh.setSizes(len(out), len(b.literals), single) + bh.setSize(uint32(len(out) + lh.size() + 1)) + + // Write block headers. + b.output = bh.appendTo(b.output) + b.output = lh.appendTo(b.output) + // Add compressed data. + b.output = append(b.output, out...) + // No sequences. + b.output = append(b.output, 0) + return nil +} + +// fuzzFseEncoder can be used to fuzz the FSE encoder. +func fuzzFseEncoder(data []byte) int { + if len(data) > maxSequences || len(data) < 2 { + return 0 + } + enc := fseEncoder{} + hist := enc.Histogram()[:256] + maxSym := uint8(0) + for i, v := range data { + v = v & 63 + data[i] = v + hist[v]++ + if v > maxSym { + maxSym = v + } + } + if maxSym == 0 { + // All 0 + return 0 + } + maxCount := func(a []uint32) int { + var max uint32 + for _, v := range a { + if v > max { + max = v + } + } + return int(max) + } + cnt := maxCount(hist[:maxSym]) + if cnt == len(data) { + // RLE + return 0 + } + enc.HistogramFinished(maxSym, cnt) + err := enc.normalizeCount(len(data)) + if err != nil { + return 0 + } + _, err = enc.writeCount(nil) + if err != nil { + panic(err) + } + return 1 +} + +// encode will encode the block and append the output in b.output. +func (b *blockEnc) encode(raw bool) error { + if len(b.sequences) == 0 { + return b.encodeLits(raw) + } + // We want some difference + if len(b.literals) > (b.size - (b.size >> 5)) { + return errIncompressible + } + + var bh blockHeader + var lh literalsHeader + bh.setLast(b.last) + bh.setType(blockTypeCompressed) + // Store offset of the block header. Needed when we know the size. + bhOffset := len(b.output) + b.output = bh.appendTo(b.output) + + var ( + out []byte + reUsed, single bool + err error + ) + if len(b.literals) >= 1024 && !raw { + // Use 4 Streams. + out, reUsed, err = huff0.Compress4X(b.literals, b.litEnc) + } else if len(b.literals) > 32 && !raw { + // Use 1 stream + single = true + out, reUsed, err = huff0.Compress1X(b.literals, b.litEnc) + } else { + err = huff0.ErrIncompressible + } + + switch err { + case huff0.ErrIncompressible: + lh.setType(literalsBlockRaw) + lh.setSize(len(b.literals)) + b.output = lh.appendTo(b.output) + b.output = append(b.output, b.literals...) + if debug { + println("Adding literals RAW, length", len(b.literals)) + } + case huff0.ErrUseRLE: + lh.setType(literalsBlockRLE) + lh.setSize(len(b.literals)) + b.output = lh.appendTo(b.output) + b.output = append(b.output, b.literals[0]) + if debug { + println("Adding literals RLE") + } + default: + if debug { + println("Adding literals ERROR:", err) + } + return err + case nil: + // Compressed litLen... + if reUsed { + if debug { + println("reused tree") + } + lh.setType(literalsBlockTreeless) + } else { + if debug { + println("new tree, size:", len(b.litEnc.OutTable)) + } + lh.setType(literalsBlockCompressed) + if debug { + _, _, err := huff0.ReadTable(out, nil) + if err != nil { + panic(err) + } + } + } + lh.setSizes(len(out), len(b.literals), single) + if debug { + printf("Compressed %d literals to %d bytes", len(b.literals), len(out)) + println("Adding literal header:", lh) + } + b.output = lh.appendTo(b.output) + b.output = append(b.output, out...) + b.litEnc.Reuse = huff0.ReusePolicyAllow + if debug { + println("Adding literals compressed") + } + } + // Sequence compression + + // Write the number of sequences + switch { + case len(b.sequences) < 128: + b.output = append(b.output, uint8(len(b.sequences))) + case len(b.sequences) < 0x7f00: // TODO: this could be wrong + n := len(b.sequences) + b.output = append(b.output, 128+uint8(n>>8), uint8(n)) + default: + n := len(b.sequences) - 0x7f00 + b.output = append(b.output, 255, uint8(n), uint8(n>>8)) + } + if debug { + println("Encoding", len(b.sequences), "sequences") + } + b.genCodes() + llEnc := b.coders.llEnc + ofEnc := b.coders.ofEnc + mlEnc := b.coders.mlEnc + err = llEnc.normalizeCount(len(b.sequences)) + if err != nil { + return err + } + err = ofEnc.normalizeCount(len(b.sequences)) + if err != nil { + return err + } + err = mlEnc.normalizeCount(len(b.sequences)) + if err != nil { + return err + } + + // Choose the best compression mode for each type. + // Will evaluate the new vs predefined and previous. + chooseComp := func(cur, prev, preDef *fseEncoder) (*fseEncoder, seqCompMode) { + // See if predefined/previous is better + hist := cur.count[:cur.symbolLen] + nSize := cur.approxSize(hist) + cur.maxHeaderSize() + predefSize := preDef.approxSize(hist) + prevSize := prev.approxSize(hist) + + // Add a small penalty for new encoders. + // Don't bother with extremely small (<2 byte gains). + nSize = nSize + (nSize+2*8*16)>>4 + switch { + case predefSize <= prevSize && predefSize <= nSize || forcePreDef: + if debug { + println("Using predefined", predefSize>>3, "<=", nSize>>3) + } + return preDef, compModePredefined + case prevSize <= nSize: + if debug { + println("Using previous", prevSize>>3, "<=", nSize>>3) + } + return prev, compModeRepeat + default: + if debug { + println("Using new, predef", predefSize>>3, ". previous:", prevSize>>3, ">", nSize>>3, "header max:", cur.maxHeaderSize()>>3, "bytes") + println("tl:", cur.actualTableLog, "symbolLen:", cur.symbolLen, "norm:", cur.norm[:cur.symbolLen], "hist", cur.count[:cur.symbolLen]) + } + return cur, compModeFSE + } + } + + // Write compression mode + var mode uint8 + if llEnc.useRLE { + mode |= uint8(compModeRLE) << 6 + llEnc.setRLE(b.sequences[0].llCode) + if debug { + println("llEnc.useRLE") + } + } else { + var m seqCompMode + llEnc, m = chooseComp(llEnc, b.coders.llPrev, &fsePredefEnc[tableLiteralLengths]) + mode |= uint8(m) << 6 + } + if ofEnc.useRLE { + mode |= uint8(compModeRLE) << 4 + ofEnc.setRLE(b.sequences[0].ofCode) + if debug { + println("ofEnc.useRLE") + } + } else { + var m seqCompMode + ofEnc, m = chooseComp(ofEnc, b.coders.ofPrev, &fsePredefEnc[tableOffsets]) + mode |= uint8(m) << 4 + } + + if mlEnc.useRLE { + mode |= uint8(compModeRLE) << 2 + mlEnc.setRLE(b.sequences[0].mlCode) + if debug { + println("mlEnc.useRLE, code: ", b.sequences[0].mlCode, "value", b.sequences[0].matchLen) + } + } else { + var m seqCompMode + mlEnc, m = chooseComp(mlEnc, b.coders.mlPrev, &fsePredefEnc[tableMatchLengths]) + mode |= uint8(m) << 2 + } + b.output = append(b.output, mode) + if debug { + printf("Compression modes: 0b%b", mode) + } + b.output, err = llEnc.writeCount(b.output) + if err != nil { + return err + } + start := len(b.output) + b.output, err = ofEnc.writeCount(b.output) + if err != nil { + return err + } + if false { + println("block:", b.output[start:], "tablelog", ofEnc.actualTableLog, "maxcount:", ofEnc.maxCount) + fmt.Printf("selected TableLog: %d, Symbol length: %d\n", ofEnc.actualTableLog, ofEnc.symbolLen) + for i, v := range ofEnc.norm[:ofEnc.symbolLen] { + fmt.Printf("%3d: %5d -> %4d \n", i, ofEnc.count[i], v) + } + } + b.output, err = mlEnc.writeCount(b.output) + if err != nil { + return err + } + + // Maybe in block? + wr := &b.wr + wr.reset(b.output) + + var ll, of, ml cState + + // Current sequence + seq := len(b.sequences) - 1 + s := b.sequences[seq] + llEnc.setBits(llBitsTable[:]) + mlEnc.setBits(mlBitsTable[:]) + ofEnc.setBits(nil) + + llTT, ofTT, mlTT := llEnc.ct.symbolTT[:256], ofEnc.ct.symbolTT[:256], mlEnc.ct.symbolTT[:256] + + // We have 3 bounds checks here (and in the loop). + // Since we are iterating backwards it is kinda hard to avoid. + llB, ofB, mlB := llTT[s.llCode], ofTT[s.ofCode], mlTT[s.mlCode] + ll.init(wr, &llEnc.ct, llB) + of.init(wr, &ofEnc.ct, ofB) + wr.flush32() + ml.init(wr, &mlEnc.ct, mlB) + + // Each of these lookups also generates a bounds check. + wr.addBits32NC(s.litLen, llB.outBits) + wr.addBits32NC(s.matchLen, mlB.outBits) + wr.flush32() + wr.addBits32NC(s.offset, ofB.outBits) + if debugSequences { + println("Encoded seq", seq, s, "codes:", s.llCode, s.mlCode, s.ofCode, "states:", ll.state, ml.state, of.state, "bits:", llB, mlB, ofB) + } + seq-- + if llEnc.maxBits+mlEnc.maxBits+ofEnc.maxBits <= 32 { + // No need to flush (common) + for seq >= 0 { + s = b.sequences[seq] + wr.flush32() + llB, ofB, mlB := llTT[s.llCode], ofTT[s.ofCode], mlTT[s.mlCode] + // tabelog max is 8 for all. + of.encode(ofB) + ml.encode(mlB) + ll.encode(llB) + wr.flush32() + + // We checked that all can stay within 32 bits + wr.addBits32NC(s.litLen, llB.outBits) + wr.addBits32NC(s.matchLen, mlB.outBits) + wr.addBits32NC(s.offset, ofB.outBits) + + if debugSequences { + println("Encoded seq", seq, s) + } + + seq-- + } + } else { + for seq >= 0 { + s = b.sequences[seq] + wr.flush32() + llB, ofB, mlB := llTT[s.llCode], ofTT[s.ofCode], mlTT[s.mlCode] + // tabelog max is below 8 for each. + of.encode(ofB) + ml.encode(mlB) + ll.encode(llB) + wr.flush32() + + // ml+ll = max 32 bits total + wr.addBits32NC(s.litLen, llB.outBits) + wr.addBits32NC(s.matchLen, mlB.outBits) + wr.flush32() + wr.addBits32NC(s.offset, ofB.outBits) + + if debugSequences { + println("Encoded seq", seq, s) + } + + seq-- + } + } + ml.flush(mlEnc.actualTableLog) + of.flush(ofEnc.actualTableLog) + ll.flush(llEnc.actualTableLog) + err = wr.close() + if err != nil { + return err + } + b.output = wr.out + + if len(b.output)-3-bhOffset >= b.size { + // Maybe even add a bigger margin. + b.litEnc.Reuse = huff0.ReusePolicyNone + return errIncompressible + } + + // Size is output minus block header. + bh.setSize(uint32(len(b.output)-bhOffset) - 3) + if debug { + println("Rewriting block header", bh) + } + _ = bh.appendTo(b.output[bhOffset:bhOffset]) + b.coders.setPrev(llEnc, mlEnc, ofEnc) + return nil +} + +var errIncompressible = errors.New("incompressible") + +func (b *blockEnc) genCodes() { + if len(b.sequences) == 0 { + // nothing to do + return + } + + if len(b.sequences) > math.MaxUint16 { + panic("can only encode up to 64K sequences") + } + // No bounds checks after here: + llH := b.coders.llEnc.Histogram()[:256] + ofH := b.coders.ofEnc.Histogram()[:256] + mlH := b.coders.mlEnc.Histogram()[:256] + for i := range llH { + llH[i] = 0 + } + for i := range ofH { + ofH[i] = 0 + } + for i := range mlH { + mlH[i] = 0 + } + + var llMax, ofMax, mlMax uint8 + for i, seq := range b.sequences { + v := llCode(seq.litLen) + seq.llCode = v + llH[v]++ + if v > llMax { + llMax = v + } + + v = ofCode(seq.offset) + seq.ofCode = v + ofH[v]++ + if v > ofMax { + ofMax = v + } + + v = mlCode(seq.matchLen) + seq.mlCode = v + mlH[v]++ + if v > mlMax { + mlMax = v + if debug && mlMax > maxMatchLengthSymbol { + panic(fmt.Errorf("mlMax > maxMatchLengthSymbol (%d), matchlen: %d", mlMax, seq.matchLen)) + } + } + b.sequences[i] = seq + } + maxCount := func(a []uint32) int { + var max uint32 + for _, v := range a { + if v > max { + max = v + } + } + return int(max) + } + if mlMax > maxMatchLengthSymbol { + panic(fmt.Errorf("mlMax > maxMatchLengthSymbol (%d)", mlMax)) + } + if ofMax > maxOffsetBits { + panic(fmt.Errorf("ofMax > maxOffsetBits (%d)", ofMax)) + } + if llMax > maxLiteralLengthSymbol { + panic(fmt.Errorf("llMax > maxLiteralLengthSymbol (%d)", llMax)) + } + + b.coders.mlEnc.HistogramFinished(mlMax, maxCount(mlH[:mlMax+1])) + b.coders.ofEnc.HistogramFinished(ofMax, maxCount(ofH[:ofMax+1])) + b.coders.llEnc.HistogramFinished(llMax, maxCount(llH[:llMax+1])) +} diff --git a/vendor/github.com/klauspost/compress/zstd/blocktype_string.go b/vendor/github.com/klauspost/compress/zstd/blocktype_string.go new file mode 100644 index 0000000..01a01e4 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/blocktype_string.go @@ -0,0 +1,85 @@ +// Code generated by "stringer -type=blockType,literalsBlockType,seqCompMode,tableIndex"; DO NOT EDIT. + +package zstd + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[blockTypeRaw-0] + _ = x[blockTypeRLE-1] + _ = x[blockTypeCompressed-2] + _ = x[blockTypeReserved-3] +} + +const _blockType_name = "blockTypeRawblockTypeRLEblockTypeCompressedblockTypeReserved" + +var _blockType_index = [...]uint8{0, 12, 24, 43, 60} + +func (i blockType) String() string { + if i >= blockType(len(_blockType_index)-1) { + return "blockType(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _blockType_name[_blockType_index[i]:_blockType_index[i+1]] +} +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[literalsBlockRaw-0] + _ = x[literalsBlockRLE-1] + _ = x[literalsBlockCompressed-2] + _ = x[literalsBlockTreeless-3] +} + +const _literalsBlockType_name = "literalsBlockRawliteralsBlockRLEliteralsBlockCompressedliteralsBlockTreeless" + +var _literalsBlockType_index = [...]uint8{0, 16, 32, 55, 76} + +func (i literalsBlockType) String() string { + if i >= literalsBlockType(len(_literalsBlockType_index)-1) { + return "literalsBlockType(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _literalsBlockType_name[_literalsBlockType_index[i]:_literalsBlockType_index[i+1]] +} +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[compModePredefined-0] + _ = x[compModeRLE-1] + _ = x[compModeFSE-2] + _ = x[compModeRepeat-3] +} + +const _seqCompMode_name = "compModePredefinedcompModeRLEcompModeFSEcompModeRepeat" + +var _seqCompMode_index = [...]uint8{0, 18, 29, 40, 54} + +func (i seqCompMode) String() string { + if i >= seqCompMode(len(_seqCompMode_index)-1) { + return "seqCompMode(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _seqCompMode_name[_seqCompMode_index[i]:_seqCompMode_index[i+1]] +} +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[tableLiteralLengths-0] + _ = x[tableOffsets-1] + _ = x[tableMatchLengths-2] +} + +const _tableIndex_name = "tableLiteralLengthstableOffsetstableMatchLengths" + +var _tableIndex_index = [...]uint8{0, 19, 31, 48} + +func (i tableIndex) String() string { + if i >= tableIndex(len(_tableIndex_index)-1) { + return "tableIndex(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _tableIndex_name[_tableIndex_index[i]:_tableIndex_index[i+1]] +} diff --git a/vendor/github.com/klauspost/compress/zstd/bytebuf.go b/vendor/github.com/klauspost/compress/zstd/bytebuf.go new file mode 100644 index 0000000..07321ac --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/bytebuf.go @@ -0,0 +1,127 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "fmt" + "io" + "io/ioutil" +) + +type byteBuffer interface { + // Read up to 8 bytes. + // Returns nil if no more input is available. + readSmall(n int) []byte + + // Read >8 bytes. + // MAY use the destination slice. + readBig(n int, dst []byte) ([]byte, error) + + // Read a single byte. + readByte() (byte, error) + + // Skip n bytes. + skipN(n int) error +} + +// in-memory buffer +type byteBuf []byte + +func (b *byteBuf) readSmall(n int) []byte { + if debug && n > 8 { + panic(fmt.Errorf("small read > 8 (%d). use readBig", n)) + } + bb := *b + if len(bb) < n { + return nil + } + r := bb[:n] + *b = bb[n:] + return r +} + +func (b *byteBuf) readBig(n int, dst []byte) ([]byte, error) { + bb := *b + if len(bb) < n { + return nil, io.ErrUnexpectedEOF + } + r := bb[:n] + *b = bb[n:] + return r, nil +} + +func (b *byteBuf) remain() []byte { + return *b +} + +func (b *byteBuf) readByte() (byte, error) { + bb := *b + if len(bb) < 1 { + return 0, nil + } + r := bb[0] + *b = bb[1:] + return r, nil +} + +func (b *byteBuf) skipN(n int) error { + bb := *b + if len(bb) < n { + return io.ErrUnexpectedEOF + } + *b = bb[n:] + return nil +} + +// wrapper around a reader. +type readerWrapper struct { + r io.Reader + tmp [8]byte +} + +func (r *readerWrapper) readSmall(n int) []byte { + if debug && n > 8 { + panic(fmt.Errorf("small read > 8 (%d). use readBig", n)) + } + n2, err := io.ReadFull(r.r, r.tmp[:n]) + // We only really care about the actual bytes read. + if n2 != n { + if debug { + println("readSmall: got", n2, "want", n, "err", err) + } + return nil + } + return r.tmp[:n] +} + +func (r *readerWrapper) readBig(n int, dst []byte) ([]byte, error) { + if cap(dst) < n { + dst = make([]byte, n) + } + n2, err := io.ReadFull(r.r, dst[:n]) + if err == io.EOF && n > 0 { + err = io.ErrUnexpectedEOF + } + return dst[:n2], err +} + +func (r *readerWrapper) readByte() (byte, error) { + n2, err := r.r.Read(r.tmp[:1]) + if err != nil { + return 0, err + } + if n2 != 1 { + return 0, io.ErrUnexpectedEOF + } + return r.tmp[0], nil +} + +func (r *readerWrapper) skipN(n int) error { + n2, err := io.CopyN(ioutil.Discard, r.r, int64(n)) + if n2 != int64(n) { + err = io.ErrUnexpectedEOF + } + return err +} diff --git a/vendor/github.com/klauspost/compress/zstd/bytereader.go b/vendor/github.com/klauspost/compress/zstd/bytereader.go new file mode 100644 index 0000000..dc4378b --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/bytereader.go @@ -0,0 +1,74 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +// byteReader provides a byte reader that reads +// little endian values from a byte stream. +// The input stream is manually advanced. +// The reader performs no bounds checks. +type byteReader struct { + b []byte + off int +} + +// init will initialize the reader and set the input. +func (b *byteReader) init(in []byte) { + b.b = in + b.off = 0 +} + +// advance the stream b n bytes. +func (b *byteReader) advance(n uint) { + b.off += int(n) +} + +// overread returns whether we have advanced too far. +func (b *byteReader) overread() bool { + return b.off > len(b.b) +} + +// Int32 returns a little endian int32 starting at current offset. +func (b byteReader) Int32() int32 { + b2 := b.b[b.off : b.off+4 : b.off+4] + v3 := int32(b2[3]) + v2 := int32(b2[2]) + v1 := int32(b2[1]) + v0 := int32(b2[0]) + return v0 | (v1 << 8) | (v2 << 16) | (v3 << 24) +} + +// Uint8 returns the next byte +func (b *byteReader) Uint8() uint8 { + v := b.b[b.off] + return v +} + +// Uint32 returns a little endian uint32 starting at current offset. +func (b byteReader) Uint32() uint32 { + if r := b.remain(); r < 4 { + // Very rare + v := uint32(0) + for i := 1; i <= r; i++ { + v = (v << 8) | uint32(b.b[len(b.b)-i]) + } + return v + } + b2 := b.b[b.off : b.off+4 : b.off+4] + v3 := uint32(b2[3]) + v2 := uint32(b2[2]) + v1 := uint32(b2[1]) + v0 := uint32(b2[0]) + return v0 | (v1 << 8) | (v2 << 16) | (v3 << 24) +} + +// unread returns the unread portion of the input. +func (b byteReader) unread() []byte { + return b.b[b.off:] +} + +// remain will return the number of bytes remaining. +func (b byteReader) remain() int { + return len(b.b) - b.off +} diff --git a/vendor/github.com/klauspost/compress/zstd/decoder.go b/vendor/github.com/klauspost/compress/zstd/decoder.go new file mode 100644 index 0000000..35a3cda --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/decoder.go @@ -0,0 +1,513 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "bytes" + "errors" + "io" + "sync" +) + +// Decoder provides decoding of zstandard streams. +// The decoder has been designed to operate without allocations after a warmup. +// This means that you should store the decoder for best performance. +// To re-use a stream decoder, use the Reset(r io.Reader) error to switch to another stream. +// A decoder can safely be re-used even if the previous stream failed. +// To release the resources, you must call the Close() function on a decoder. +type Decoder struct { + o decoderOptions + + // Unreferenced decoders, ready for use. + decoders chan *blockDec + + // Unreferenced decoders, ready for use. + frames chan *frameDec + + // Streams ready to be decoded. + stream chan decodeStream + + // Current read position used for Reader functionality. + current decoderState + + // Custom dictionaries + dicts map[uint32]struct{} + + // streamWg is the waitgroup for all streams + streamWg sync.WaitGroup +} + +// decoderState is used for maintaining state when the decoder +// is used for streaming. +type decoderState struct { + // current block being written to stream. + decodeOutput + + // output in order to be written to stream. + output chan decodeOutput + + // cancel remaining output. + cancel chan struct{} + + flushed bool +} + +var ( + // Check the interfaces we want to support. + _ = io.WriterTo(&Decoder{}) + _ = io.Reader(&Decoder{}) +) + +// NewReader creates a new decoder. +// A nil Reader can be provided in which case Reset can be used to start a decode. +// +// A Decoder can be used in two modes: +// +// 1) As a stream, or +// 2) For stateless decoding using DecodeAll or DecodeBuffer. +// +// Only a single stream can be decoded concurrently, but the same decoder +// can run multiple concurrent stateless decodes. It is even possible to +// use stateless decodes while a stream is being decoded. +// +// The Reset function can be used to initiate a new stream, which is will considerably +// reduce the allocations normally caused by NewReader. +func NewReader(r io.Reader, opts ...DOption) (*Decoder, error) { + initPredefined() + var d Decoder + d.o.setDefault() + for _, o := range opts { + err := o(&d.o) + if err != nil { + return nil, err + } + } + d.current.output = make(chan decodeOutput, d.o.concurrent) + d.current.flushed = true + + // Create decoders + d.decoders = make(chan *blockDec, d.o.concurrent) + d.frames = make(chan *frameDec, d.o.concurrent) + for i := 0; i < d.o.concurrent; i++ { + d.frames <- newFrameDec(d.o) + d.decoders <- newBlockDec(d.o.lowMem) + } + + if r == nil { + return &d, nil + } + return &d, d.Reset(r) +} + +// Read bytes from the decompressed stream into p. +// Returns the number of bytes written and any error that occurred. +// When the stream is done, io.EOF will be returned. +func (d *Decoder) Read(p []byte) (int, error) { + if d.stream == nil { + return 0, errors.New("no input has been initialized") + } + var n int + for { + if len(d.current.b) > 0 { + filled := copy(p, d.current.b) + p = p[filled:] + d.current.b = d.current.b[filled:] + n += filled + } + if len(p) == 0 { + break + } + if len(d.current.b) == 0 { + // We have an error and no more data + if d.current.err != nil { + break + } + if !d.nextBlock(n == 0) { + return n, nil + } + } + } + if len(d.current.b) > 0 { + if debug { + println("returning", n, "still bytes left:", len(d.current.b)) + } + // Only return error at end of block + return n, nil + } + if d.current.err != nil { + d.drainOutput() + } + if debug { + println("returning", n, d.current.err, len(d.decoders)) + } + return n, d.current.err +} + +// Reset will reset the decoder the supplied stream after the current has finished processing. +// Note that this functionality cannot be used after Close has been called. +func (d *Decoder) Reset(r io.Reader) error { + if d.current.err == ErrDecoderClosed { + return d.current.err + } + if r == nil { + return errors.New("nil Reader sent as input") + } + + if d.stream == nil { + d.stream = make(chan decodeStream, 1) + d.streamWg.Add(1) + go d.startStreamDecoder(d.stream) + } + + d.drainOutput() + + // If bytes buffer and < 1MB, do sync decoding anyway. + if bb, ok := r.(*bytes.Buffer); ok && bb.Len() < 1<<20 { + if debug { + println("*bytes.Buffer detected, doing sync decode, len:", bb.Len()) + } + b := bb.Bytes() + dst, err := d.DecodeAll(b, nil) + if err == nil { + err = io.EOF + } + d.current.b = dst + d.current.err = err + d.current.flushed = true + if debug { + println("sync decode to ", len(dst), "bytes, err:", err) + } + return nil + } + + // Remove current block. + d.current.decodeOutput = decodeOutput{} + d.current.err = nil + d.current.cancel = make(chan struct{}) + d.current.flushed = false + d.current.d = nil + + d.stream <- decodeStream{ + r: r, + output: d.current.output, + cancel: d.current.cancel, + } + return nil +} + +// drainOutput will drain the output until errEndOfStream is sent. +func (d *Decoder) drainOutput() { + if d.current.cancel != nil { + println("cancelling current") + close(d.current.cancel) + d.current.cancel = nil + } + if d.current.d != nil { + if debug { + printf("re-adding current decoder %p, decoders: %d", d.current.d, len(d.decoders)) + } + d.decoders <- d.current.d + d.current.d = nil + d.current.b = nil + } + if d.current.output == nil || d.current.flushed { + println("current already flushed") + return + } + for { + select { + case v := <-d.current.output: + if v.d != nil { + if debug { + printf("re-adding decoder %p", v.d) + } + d.decoders <- v.d + } + if v.err == errEndOfStream { + println("current flushed") + d.current.flushed = true + return + } + } + } +} + +// WriteTo writes data to w until there's no more data to write or when an error occurs. +// The return value n is the number of bytes written. +// Any error encountered during the write is also returned. +func (d *Decoder) WriteTo(w io.Writer) (int64, error) { + if d.stream == nil { + return 0, errors.New("no input has been initialized") + } + var n int64 + for { + if len(d.current.b) > 0 { + n2, err2 := w.Write(d.current.b) + n += int64(n2) + if err2 != nil && d.current.err == nil { + d.current.err = err2 + break + } + } + if d.current.err != nil { + break + } + d.nextBlock(true) + } + err := d.current.err + if err != nil { + d.drainOutput() + } + if err == io.EOF { + err = nil + } + return n, err +} + +// DecodeAll allows stateless decoding of a blob of bytes. +// Output will be appended to dst, so if the destination size is known +// you can pre-allocate the destination slice to avoid allocations. +// DecodeAll can be used concurrently. +// The Decoder concurrency limits will be respected. +func (d *Decoder) DecodeAll(input, dst []byte) ([]byte, error) { + if d.current.err == ErrDecoderClosed { + return dst, ErrDecoderClosed + } + + // Grab a block decoder and frame decoder. + block, frame := <-d.decoders, <-d.frames + defer func() { + if debug { + printf("re-adding decoder: %p", block) + } + d.decoders <- block + frame.rawInput = nil + frame.bBuf = nil + d.frames <- frame + }() + frame.bBuf = input + + for { + err := frame.reset(&frame.bBuf) + if err == io.EOF { + return dst, nil + } + if err != nil { + return dst, err + } + if frame.FrameContentSize > d.o.maxDecodedSize-uint64(len(dst)) { + return dst, ErrDecoderSizeExceeded + } + if frame.FrameContentSize > 0 && frame.FrameContentSize < 1<<30 { + // Never preallocate moe than 1 GB up front. + if uint64(cap(dst)) < frame.FrameContentSize { + dst2 := make([]byte, len(dst), len(dst)+int(frame.FrameContentSize)) + copy(dst2, dst) + dst = dst2 + } + } + if cap(dst) == 0 { + // Allocate window size * 2 by default if nothing is provided and we didn't get frame content size. + size := frame.WindowSize * 2 + // Cap to 1 MB. + if size > 1<<20 { + size = 1 << 20 + } + dst = make([]byte, 0, frame.WindowSize) + } + + dst, err = frame.runDecoder(dst, block) + if err != nil { + return dst, err + } + if len(frame.bBuf) == 0 { + break + } + } + return dst, nil +} + +// nextBlock returns the next block. +// If an error occurs d.err will be set. +// Optionally the function can block for new output. +// If non-blocking mode is used the returned boolean will be false +// if no data was available without blocking. +func (d *Decoder) nextBlock(blocking bool) (ok bool) { + if d.current.d != nil { + if debug { + printf("re-adding current decoder %p", d.current.d) + } + d.decoders <- d.current.d + d.current.d = nil + } + if d.current.err != nil { + // Keep error state. + return blocking + } + + if blocking { + d.current.decodeOutput = <-d.current.output + } else { + select { + case d.current.decodeOutput = <-d.current.output: + default: + return false + } + } + if debug { + println("got", len(d.current.b), "bytes, error:", d.current.err) + } + return true +} + +// Close will release all resources. +// It is NOT possible to reuse the decoder after this. +func (d *Decoder) Close() { + if d.current.err == ErrDecoderClosed { + return + } + d.drainOutput() + if d.stream != nil { + close(d.stream) + d.streamWg.Wait() + d.stream = nil + } + if d.decoders != nil { + close(d.decoders) + for dec := range d.decoders { + dec.Close() + } + d.decoders = nil + } + if d.current.d != nil { + d.current.d.Close() + d.current.d = nil + } + d.current.err = ErrDecoderClosed +} + +// IOReadCloser returns the decoder as an io.ReadCloser for convenience. +// Any changes to the decoder will be reflected, so the returned ReadCloser +// can be reused along with the decoder. +// io.WriterTo is also supported by the returned ReadCloser. +func (d *Decoder) IOReadCloser() io.ReadCloser { + return closeWrapper{d: d} +} + +// closeWrapper wraps a function call as a closer. +type closeWrapper struct { + d *Decoder +} + +// WriteTo forwards WriteTo calls to the decoder. +func (c closeWrapper) WriteTo(w io.Writer) (n int64, err error) { + return c.d.WriteTo(w) +} + +// Read forwards read calls to the decoder. +func (c closeWrapper) Read(p []byte) (n int, err error) { + return c.d.Read(p) +} + +// Close closes the decoder. +func (c closeWrapper) Close() error { + c.d.Close() + return nil +} + +type decodeOutput struct { + d *blockDec + b []byte + err error +} + +type decodeStream struct { + r io.Reader + + // Blocks ready to be written to output. + output chan decodeOutput + + // cancel reading from the input + cancel chan struct{} +} + +// errEndOfStream indicates that everything from the stream was read. +var errEndOfStream = errors.New("end-of-stream") + +// Create Decoder: +// Spawn n block decoders. These accept tasks to decode a block. +// Create goroutine that handles stream processing, this will send history to decoders as they are available. +// Decoders update the history as they decode. +// When a block is returned: +// a) history is sent to the next decoder, +// b) content written to CRC. +// c) return data to WRITER. +// d) wait for next block to return data. +// Once WRITTEN, the decoders reused by the writer frame decoder for re-use. +func (d *Decoder) startStreamDecoder(inStream chan decodeStream) { + defer d.streamWg.Done() + frame := newFrameDec(d.o) + for stream := range inStream { + if debug { + println("got new stream") + } + br := readerWrapper{r: stream.r} + decodeStream: + for { + err := frame.reset(&br) + if debug && err != nil { + println("Frame decoder returned", err) + } + if err != nil { + stream.output <- decodeOutput{ + err: err, + } + break + } + if debug { + println("starting frame decoder") + } + + // This goroutine will forward history between frames. + frame.frameDone.Add(1) + frame.initAsync() + + go frame.startDecoder(stream.output) + decodeFrame: + // Go through all blocks of the frame. + for { + dec := <-d.decoders + select { + case <-stream.cancel: + if !frame.sendErr(dec, io.EOF) { + // To not let the decoder dangle, send it back. + stream.output <- decodeOutput{d: dec} + } + break decodeStream + default: + } + err := frame.next(dec) + switch err { + case io.EOF: + // End of current frame, no error + println("EOF on next block") + break decodeFrame + case nil: + continue + default: + println("block decoder returned", err) + break decodeStream + } + } + // All blocks have started decoding, check if there are more frames. + println("waiting for done") + frame.frameDone.Wait() + println("done waiting...") + } + frame.frameDone.Wait() + println("Sending EOS") + stream.output <- decodeOutput{err: errEndOfStream} + } +} diff --git a/vendor/github.com/klauspost/compress/zstd/decoder_options.go b/vendor/github.com/klauspost/compress/zstd/decoder_options.go new file mode 100644 index 0000000..2ac9cd2 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/decoder_options.go @@ -0,0 +1,68 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "errors" + "fmt" + "runtime" +) + +// DOption is an option for creating a decoder. +type DOption func(*decoderOptions) error + +// options retains accumulated state of multiple options. +type decoderOptions struct { + lowMem bool + concurrent int + maxDecodedSize uint64 +} + +func (o *decoderOptions) setDefault() { + *o = decoderOptions{ + // use less ram: true for now, but may change. + lowMem: true, + concurrent: runtime.GOMAXPROCS(0), + } + o.maxDecodedSize = 1 << 63 +} + +// WithDecoderLowmem will set whether to use a lower amount of memory, +// but possibly have to allocate more while running. +func WithDecoderLowmem(b bool) DOption { + return func(o *decoderOptions) error { o.lowMem = b; return nil } +} + +// WithDecoderConcurrency will set the concurrency, +// meaning the maximum number of decoders to run concurrently. +// The value supplied must be at least 1. +// By default this will be set to GOMAXPROCS. +func WithDecoderConcurrency(n int) DOption { + return func(o *decoderOptions) error { + if n <= 0 { + return fmt.Errorf("Concurrency must be at least 1") + } + o.concurrent = n + return nil + } +} + +// WithDecoderMaxMemory allows to set a maximum decoded size for in-memory +// non-streaming operations or maximum window size for streaming operations. +// This can be used to control memory usage of potentially hostile content. +// For streaming operations, the maximum window size is capped at 1<<30 bytes. +// Maximum and default is 1 << 63 bytes. +func WithDecoderMaxMemory(n uint64) DOption { + return func(o *decoderOptions) error { + if n == 0 { + return errors.New("WithDecoderMaxMemory must be at least 1") + } + if n > 1<<63 { + return fmt.Errorf("WithDecoderMaxmemory must be less than 1 << 63") + } + o.maxDecodedSize = n + return nil + } +} diff --git a/vendor/github.com/klauspost/compress/zstd/enc_dfast.go b/vendor/github.com/klauspost/compress/zstd/enc_dfast.go new file mode 100644 index 0000000..ee3b09b --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/enc_dfast.go @@ -0,0 +1,726 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +const ( + dFastLongTableBits = 17 // Bits used in the long match table + dFastLongTableSize = 1 << dFastLongTableBits // Size of the table + dFastLongTableMask = dFastLongTableSize - 1 // Mask for table indices. Redundant, but can eliminate bounds checks. + + dFastShortTableBits = tableBits // Bits used in the short match table + dFastShortTableSize = 1 << dFastShortTableBits // Size of the table + dFastShortTableMask = dFastShortTableSize - 1 // Mask for table indices. Redundant, but can eliminate bounds checks. +) + +type doubleFastEncoder struct { + fastEncoder + longTable [dFastLongTableSize]tableEntry +} + +// Encode mimmics functionality in zstd_dfast.c +func (e *doubleFastEncoder) Encode(blk *blockEnc, src []byte) { + const ( + // Input margin is the number of bytes we read (8) + // and the maximum we will read ahead (2) + inputMargin = 8 + 2 + minNonLiteralBlockSize = 16 + ) + + // Protect against e.cur wraparound. + for e.cur > (1<<30)+e.maxMatchOff { + if len(e.hist) == 0 { + for i := range e.table[:] { + e.table[i] = tableEntry{} + } + for i := range e.longTable[:] { + e.longTable[i] = tableEntry{} + } + e.cur = e.maxMatchOff + break + } + // Shift down everything in the table that isn't already too far away. + minOff := e.cur + int32(len(e.hist)) - e.maxMatchOff + for i := range e.table[:] { + v := e.table[i].offset + if v < minOff { + v = 0 + } else { + v = v - e.cur + e.maxMatchOff + } + e.table[i].offset = v + } + for i := range e.longTable[:] { + v := e.longTable[i].offset + if v < minOff { + v = 0 + } else { + v = v - e.cur + e.maxMatchOff + } + e.longTable[i].offset = v + } + e.cur = e.maxMatchOff + } + + s := e.addBlock(src) + blk.size = len(src) + if len(src) < minNonLiteralBlockSize { + blk.extraLits = len(src) + blk.literals = blk.literals[:len(src)] + copy(blk.literals, src) + return + } + + // Override src + src = e.hist + sLimit := int32(len(src)) - inputMargin + // stepSize is the number of bytes to skip on every main loop iteration. + // It should be >= 1. + stepSize := int32(e.o.targetLength) + if stepSize == 0 { + stepSize++ + } + + const kSearchStrength = 8 + + // nextEmit is where in src the next emitLiteral should start from. + nextEmit := s + cv := load6432(src, s) + + // Relative offsets + offset1 := int32(blk.recentOffsets[0]) + offset2 := int32(blk.recentOffsets[1]) + + addLiterals := func(s *seq, until int32) { + if until == nextEmit { + return + } + blk.literals = append(blk.literals, src[nextEmit:until]...) + s.litLen = uint32(until - nextEmit) + } + if debug { + println("recent offsets:", blk.recentOffsets) + } + +encodeLoop: + for { + var t int32 + // We allow the encoder to optionally turn off repeat offsets across blocks + canRepeat := len(blk.sequences) > 2 + + for { + if debug && canRepeat && offset1 == 0 { + panic("offset0 was 0") + } + + nextHashS := hash5(cv, dFastShortTableBits) + nextHashL := hash8(cv, dFastLongTableBits) + candidateL := e.longTable[nextHashL] + candidateS := e.table[nextHashS] + + const repOff = 1 + repIndex := s - offset1 + repOff + entry := tableEntry{offset: s + e.cur, val: uint32(cv)} + e.longTable[nextHashL] = entry + e.table[nextHashS] = entry + + if canRepeat { + if repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>(repOff*8)) { + // Consider history as well. + var seq seq + lenght := 4 + e.matchlen(s+4+repOff, repIndex+4, src) + + seq.matchLen = uint32(lenght - zstdMinMatch) + + // We might be able to match backwards. + // Extend as long as we can. + start := s + repOff + // We end the search early, so we don't risk 0 literals + // and have to do special offset treatment. + startLimit := nextEmit + 1 + + tMin := s - e.maxMatchOff + if tMin < 0 { + tMin = 0 + } + for repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 { + repIndex-- + start-- + seq.matchLen++ + } + addLiterals(&seq, start) + + // rep 0 + seq.offset = 1 + if debugSequences { + println("repeat sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + s += lenght + repOff + nextEmit = s + if s >= sLimit { + if debug { + println("repeat ended", s, lenght) + + } + break encodeLoop + } + cv = load6432(src, s) + continue + } + const repOff2 = 1 + // We deviate from the reference encoder and also check offset 2. + // Slower and not consistently better, so disabled. + // repIndex = s - offset2 + repOff2 + if false && repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>(repOff2*8)) { + // Consider history as well. + var seq seq + lenght := 4 + e.matchlen(s+4+repOff2, repIndex+4, src) + + seq.matchLen = uint32(lenght - zstdMinMatch) + + // We might be able to match backwards. + // Extend as long as we can. + start := s + repOff2 + // We end the search early, so we don't risk 0 literals + // and have to do special offset treatment. + startLimit := nextEmit + 1 + + tMin := s - e.maxMatchOff + if tMin < 0 { + tMin = 0 + } + for repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 { + repIndex-- + start-- + seq.matchLen++ + } + addLiterals(&seq, start) + + // rep 2 + seq.offset = 2 + if debugSequences { + println("repeat sequence 2", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + s += lenght + repOff2 + nextEmit = s + if s >= sLimit { + if debug { + println("repeat ended", s, lenght) + + } + break encodeLoop + } + cv = load6432(src, s) + // Swap offsets + offset1, offset2 = offset2, offset1 + continue + } + } + // Find the offsets of our two matches. + coffsetL := s - (candidateL.offset - e.cur) + coffsetS := s - (candidateS.offset - e.cur) + + // Check if we have a long match. + if coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val { + // Found a long match, likely at least 8 bytes. + // Reference encoder checks all 8 bytes, we only check 4, + // but the likelihood of both the first 4 bytes and the hash matching should be enough. + t = candidateL.offset - e.cur + if debug && s <= t { + panic("s <= t") + } + if debug && s-t > e.maxMatchOff { + panic("s - t >e.maxMatchOff") + } + if debugMatches { + println("long match") + } + break + } + + // Check if we have a short match. + if coffsetS < e.maxMatchOff && uint32(cv) == candidateS.val { + // found a regular match + // See if we can find a long match at s+1 + const checkAt = 1 + cv := load6432(src, s+checkAt) + nextHashL = hash8(cv, dFastLongTableBits) + candidateL = e.longTable[nextHashL] + coffsetL = s - (candidateL.offset - e.cur) + checkAt + + // We can store it, since we have at least a 4 byte match. + e.longTable[nextHashL] = tableEntry{offset: s + checkAt + e.cur, val: uint32(cv)} + if coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val { + // Found a long match, likely at least 8 bytes. + // Reference encoder checks all 8 bytes, we only check 4, + // but the likelihood of both the first 4 bytes and the hash matching should be enough. + t = candidateL.offset - e.cur + s += checkAt + if debugMatches { + println("long match (after short)") + } + break + } + + t = candidateS.offset - e.cur + if debug && s <= t { + panic("s <= t") + } + if debug && s-t > e.maxMatchOff { + panic("s - t >e.maxMatchOff") + } + if debug && t < 0 { + panic("t<0") + } + if debugMatches { + println("short match") + } + break + } + + // No match found, move forward in input. + s += stepSize + ((s - nextEmit) >> (kSearchStrength - 1)) + if s >= sLimit { + break encodeLoop + } + cv = load6432(src, s) + } + + // A 4-byte match has been found. Update recent offsets. + // We'll later see if more than 4 bytes. + offset2 = offset1 + offset1 = s - t + + if debug && s <= t { + panic("s <= t") + } + + if debug && canRepeat && int(offset1) > len(src) { + panic("invalid offset") + } + + // Extend the 4-byte match as long as possible. + l := e.matchlen(s+4, t+4, src) + 4 + + // Extend backwards + tMin := s - e.maxMatchOff + if tMin < 0 { + tMin = 0 + } + for t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength { + s-- + t-- + l++ + } + + // Write our sequence + var seq seq + seq.litLen = uint32(s - nextEmit) + seq.matchLen = uint32(l - zstdMinMatch) + if seq.litLen > 0 { + blk.literals = append(blk.literals, src[nextEmit:s]...) + } + seq.offset = uint32(s-t) + 3 + s += l + if debugSequences { + println("sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + nextEmit = s + if s >= sLimit { + break encodeLoop + } + + // Index match start+1 (long) and start+2 (short) + index0 := s - l + 1 + // Index match end-2 (long) and end-1 (short) + index1 := s - 2 + + cv0 := load6432(src, index0) + cv1 := load6432(src, index1) + te0 := tableEntry{offset: index0 + e.cur, val: uint32(cv0)} + te1 := tableEntry{offset: index1 + e.cur, val: uint32(cv1)} + e.longTable[hash8(cv0, dFastLongTableBits)] = te0 + e.longTable[hash8(cv1, dFastLongTableBits)] = te1 + cv0 >>= 8 + cv1 >>= 8 + te0.offset++ + te1.offset++ + te0.val = uint32(cv0) + te1.val = uint32(cv1) + e.table[hash5(cv0, dFastShortTableBits)] = te0 + e.table[hash5(cv1, dFastShortTableBits)] = te1 + + cv = load6432(src, s) + + if !canRepeat { + continue + } + + // Check offset 2 + for { + o2 := s - offset2 + if load3232(src, o2) != uint32(cv) { + // Do regular search + break + } + + // Store this, since we have it. + nextHashS := hash5(cv1>>8, dFastShortTableBits) + nextHashL := hash8(cv, dFastLongTableBits) + + // We have at least 4 byte match. + // No need to check backwards. We come straight from a match + l := 4 + e.matchlen(s+4, o2+4, src) + + entry := tableEntry{offset: s + e.cur, val: uint32(cv)} + e.longTable[nextHashL] = entry + e.table[nextHashS] = entry + seq.matchLen = uint32(l) - zstdMinMatch + seq.litLen = 0 + + // Since litlen is always 0, this is offset 1. + seq.offset = 1 + s += l + nextEmit = s + if debugSequences { + println("sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + + // Swap offset 1 and 2. + offset1, offset2 = offset2, offset1 + if s >= sLimit { + // Finished + break encodeLoop + } + cv = load6432(src, s) + } + } + + if int(nextEmit) < len(src) { + blk.literals = append(blk.literals, src[nextEmit:]...) + blk.extraLits = len(src) - int(nextEmit) + } + blk.recentOffsets[0] = uint32(offset1) + blk.recentOffsets[1] = uint32(offset2) + if debug { + println("returning, recent offsets:", blk.recentOffsets, "extra literals:", blk.extraLits) + } +} + +// EncodeNoHist will encode a block with no history and no following blocks. +// Most notable difference is that src will not be copied for history and +// we do not need to check for max match length. +func (e *doubleFastEncoder) EncodeNoHist(blk *blockEnc, src []byte) { + const ( + // Input margin is the number of bytes we read (8) + // and the maximum we will read ahead (2) + inputMargin = 8 + 2 + minNonLiteralBlockSize = 16 + ) + + // Protect against e.cur wraparound. + if e.cur > (1<<30)+e.maxMatchOff { + for i := range e.table[:] { + e.table[i] = tableEntry{} + } + for i := range e.longTable[:] { + e.longTable[i] = tableEntry{} + } + e.cur = e.maxMatchOff + } + + s := int32(0) + blk.size = len(src) + if len(src) < minNonLiteralBlockSize { + blk.extraLits = len(src) + blk.literals = blk.literals[:len(src)] + copy(blk.literals, src) + return + } + + // Override src + sLimit := int32(len(src)) - inputMargin + // stepSize is the number of bytes to skip on every main loop iteration. + // It should be >= 1. + stepSize := int32(e.o.targetLength) + if stepSize == 0 { + stepSize++ + } + + const kSearchStrength = 8 + + // nextEmit is where in src the next emitLiteral should start from. + nextEmit := s + cv := load6432(src, s) + + // Relative offsets + offset1 := int32(blk.recentOffsets[0]) + offset2 := int32(blk.recentOffsets[1]) + + addLiterals := func(s *seq, until int32) { + if until == nextEmit { + return + } + blk.literals = append(blk.literals, src[nextEmit:until]...) + s.litLen = uint32(until - nextEmit) + } + if debug { + println("recent offsets:", blk.recentOffsets) + } + +encodeLoop: + for { + var t int32 + for { + + nextHashS := hash5(cv, dFastShortTableBits) + nextHashL := hash8(cv, dFastLongTableBits) + candidateL := e.longTable[nextHashL] + candidateS := e.table[nextHashS] + + const repOff = 1 + repIndex := s - offset1 + repOff + entry := tableEntry{offset: s + e.cur, val: uint32(cv)} + e.longTable[nextHashL] = entry + e.table[nextHashS] = entry + + if len(blk.sequences) > 2 { + if load3232(src, repIndex) == uint32(cv>>(repOff*8)) { + // Consider history as well. + var seq seq + //length := 4 + e.matchlen(s+4+repOff, repIndex+4, src) + length := 4 + int32(matchLen(src[s+4+repOff:], src[repIndex+4:])) + + seq.matchLen = uint32(length - zstdMinMatch) + + // We might be able to match backwards. + // Extend as long as we can. + start := s + repOff + // We end the search early, so we don't risk 0 literals + // and have to do special offset treatment. + startLimit := nextEmit + 1 + + tMin := s - e.maxMatchOff + if tMin < 0 { + tMin = 0 + } + for repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] { + repIndex-- + start-- + seq.matchLen++ + } + addLiterals(&seq, start) + + // rep 0 + seq.offset = 1 + if debugSequences { + println("repeat sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + s += length + repOff + nextEmit = s + if s >= sLimit { + if debug { + println("repeat ended", s, length) + + } + break encodeLoop + } + cv = load6432(src, s) + continue + } + } + // Find the offsets of our two matches. + coffsetL := s - (candidateL.offset - e.cur) + coffsetS := s - (candidateS.offset - e.cur) + + // Check if we have a long match. + if coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val { + // Found a long match, likely at least 8 bytes. + // Reference encoder checks all 8 bytes, we only check 4, + // but the likelihood of both the first 4 bytes and the hash matching should be enough. + t = candidateL.offset - e.cur + if debug && s <= t { + panic("s <= t") + } + if debug && s-t > e.maxMatchOff { + panic("s - t >e.maxMatchOff") + } + if debugMatches { + println("long match") + } + break + } + + // Check if we have a short match. + if coffsetS < e.maxMatchOff && uint32(cv) == candidateS.val { + // found a regular match + // See if we can find a long match at s+1 + const checkAt = 1 + cv := load6432(src, s+checkAt) + nextHashL = hash8(cv, dFastLongTableBits) + candidateL = e.longTable[nextHashL] + coffsetL = s - (candidateL.offset - e.cur) + checkAt + + // We can store it, since we have at least a 4 byte match. + e.longTable[nextHashL] = tableEntry{offset: s + checkAt + e.cur, val: uint32(cv)} + if coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val { + // Found a long match, likely at least 8 bytes. + // Reference encoder checks all 8 bytes, we only check 4, + // but the likelihood of both the first 4 bytes and the hash matching should be enough. + t = candidateL.offset - e.cur + s += checkAt + if debugMatches { + println("long match (after short)") + } + break + } + + t = candidateS.offset - e.cur + if debug && s <= t { + panic("s <= t") + } + if debug && s-t > e.maxMatchOff { + panic("s - t >e.maxMatchOff") + } + if debug && t < 0 { + panic("t<0") + } + if debugMatches { + println("short match") + } + break + } + + // No match found, move forward in input. + s += stepSize + ((s - nextEmit) >> (kSearchStrength - 1)) + if s >= sLimit { + break encodeLoop + } + cv = load6432(src, s) + } + + // A 4-byte match has been found. Update recent offsets. + // We'll later see if more than 4 bytes. + offset2 = offset1 + offset1 = s - t + + if debug && s <= t { + panic("s <= t") + } + + // Extend the 4-byte match as long as possible. + //l := e.matchlen(s+4, t+4, src) + 4 + l := int32(matchLen(src[s+4:], src[t+4:])) + 4 + + // Extend backwards + tMin := s - e.maxMatchOff + if tMin < 0 { + tMin = 0 + } + for t > tMin && s > nextEmit && src[t-1] == src[s-1] { + s-- + t-- + l++ + } + + // Write our sequence + var seq seq + seq.litLen = uint32(s - nextEmit) + seq.matchLen = uint32(l - zstdMinMatch) + if seq.litLen > 0 { + blk.literals = append(blk.literals, src[nextEmit:s]...) + } + seq.offset = uint32(s-t) + 3 + s += l + if debugSequences { + println("sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + nextEmit = s + if s >= sLimit { + break encodeLoop + } + + // Index match start+1 (long) and start+2 (short) + index0 := s - l + 1 + // Index match end-2 (long) and end-1 (short) + index1 := s - 2 + + cv0 := load6432(src, index0) + cv1 := load6432(src, index1) + te0 := tableEntry{offset: index0 + e.cur, val: uint32(cv0)} + te1 := tableEntry{offset: index1 + e.cur, val: uint32(cv1)} + e.longTable[hash8(cv0, dFastLongTableBits)] = te0 + e.longTable[hash8(cv1, dFastLongTableBits)] = te1 + cv0 >>= 8 + cv1 >>= 8 + te0.offset++ + te1.offset++ + te0.val = uint32(cv0) + te1.val = uint32(cv1) + e.table[hash5(cv0, dFastShortTableBits)] = te0 + e.table[hash5(cv1, dFastShortTableBits)] = te1 + + cv = load6432(src, s) + + if len(blk.sequences) <= 2 { + continue + } + + // Check offset 2 + for { + o2 := s - offset2 + if load3232(src, o2) != uint32(cv) { + // Do regular search + break + } + + // Store this, since we have it. + nextHashS := hash5(cv1>>8, dFastShortTableBits) + nextHashL := hash8(cv, dFastLongTableBits) + + // We have at least 4 byte match. + // No need to check backwards. We come straight from a match + //l := 4 + e.matchlen(s+4, o2+4, src) + l := 4 + int32(matchLen(src[s+4:], src[o2+4:])) + + entry := tableEntry{offset: s + e.cur, val: uint32(cv)} + e.longTable[nextHashL] = entry + e.table[nextHashS] = entry + seq.matchLen = uint32(l) - zstdMinMatch + seq.litLen = 0 + + // Since litlen is always 0, this is offset 1. + seq.offset = 1 + s += l + nextEmit = s + if debugSequences { + println("sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + + // Swap offset 1 and 2. + offset1, offset2 = offset2, offset1 + if s >= sLimit { + // Finished + break encodeLoop + } + cv = load6432(src, s) + } + } + + if int(nextEmit) < len(src) { + blk.literals = append(blk.literals, src[nextEmit:]...) + blk.extraLits = len(src) - int(nextEmit) + } + if debug { + println("returning, recent offsets:", blk.recentOffsets, "extra literals:", blk.extraLits) + } + +} diff --git a/vendor/github.com/klauspost/compress/zstd/enc_fast.go b/vendor/github.com/klauspost/compress/zstd/enc_fast.go new file mode 100644 index 0000000..0bdddac --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/enc_fast.go @@ -0,0 +1,656 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "math/bits" + + "github.com/klauspost/compress/zstd/internal/xxhash" +) + +const ( + tableBits = 15 // Bits used in the table + tableSize = 1 << tableBits // Size of the table + tableMask = tableSize - 1 // Mask for table indices. Redundant, but can eliminate bounds checks. + maxMatchLength = 131074 +) + +type tableEntry struct { + val uint32 + offset int32 +} + +type fastEncoder struct { + o encParams + // cur is the offset at the start of hist + cur int32 + // maximum offset. Should be at least 2x block size. + maxMatchOff int32 + hist []byte + crc *xxhash.Digest + table [tableSize]tableEntry + tmp [8]byte + blk *blockEnc +} + +// CRC returns the underlying CRC writer. +func (e *fastEncoder) CRC() *xxhash.Digest { + return e.crc +} + +// AppendCRC will append the CRC to the destination slice and return it. +func (e *fastEncoder) AppendCRC(dst []byte) []byte { + crc := e.crc.Sum(e.tmp[:0]) + dst = append(dst, crc[7], crc[6], crc[5], crc[4]) + return dst +} + +// WindowSize returns the window size of the encoder, +// or a window size small enough to contain the input size, if > 0. +func (e *fastEncoder) WindowSize(size int) int32 { + if size > 0 && size < int(e.maxMatchOff) { + b := int32(1) << uint(bits.Len(uint(size))) + // Keep minimum window. + if b < 1024 { + b = 1024 + } + return b + } + return e.maxMatchOff +} + +// Block returns the current block. +func (e *fastEncoder) Block() *blockEnc { + return e.blk +} + +// Encode mimmics functionality in zstd_fast.c +func (e *fastEncoder) Encode(blk *blockEnc, src []byte) { + const ( + inputMargin = 8 + minNonLiteralBlockSize = 1 + 1 + inputMargin + ) + + // Protect against e.cur wraparound. + for e.cur > (1<<30)+e.maxMatchOff { + if len(e.hist) == 0 { + for i := range e.table[:] { + e.table[i] = tableEntry{} + } + e.cur = e.maxMatchOff + break + } + // Shift down everything in the table that isn't already too far away. + minOff := e.cur + int32(len(e.hist)) - e.maxMatchOff + for i := range e.table[:] { + v := e.table[i].offset + if v < minOff { + v = 0 + } else { + v = v - e.cur + e.maxMatchOff + } + e.table[i].offset = v + } + e.cur = e.maxMatchOff + } + + s := e.addBlock(src) + blk.size = len(src) + if len(src) < minNonLiteralBlockSize { + blk.extraLits = len(src) + blk.literals = blk.literals[:len(src)] + copy(blk.literals, src) + return + } + + // Override src + src = e.hist + sLimit := int32(len(src)) - inputMargin + // stepSize is the number of bytes to skip on every main loop iteration. + // It should be >= 2. + stepSize := int32(e.o.targetLength) + if stepSize == 0 { + stepSize++ + } + stepSize++ + + // TEMPLATE + const hashLog = tableBits + // seems global, but would be nice to tweak. + const kSearchStrength = 8 + + // nextEmit is where in src the next emitLiteral should start from. + nextEmit := s + cv := load6432(src, s) + + // Relative offsets + offset1 := int32(blk.recentOffsets[0]) + offset2 := int32(blk.recentOffsets[1]) + + addLiterals := func(s *seq, until int32) { + if until == nextEmit { + return + } + blk.literals = append(blk.literals, src[nextEmit:until]...) + s.litLen = uint32(until - nextEmit) + } + if debug { + println("recent offsets:", blk.recentOffsets) + } + +encodeLoop: + for { + // t will contain the match offset when we find one. + // When existing the search loop, we have already checked 4 bytes. + var t int32 + + // We will not use repeat offsets across blocks. + // By not using them for the first 3 matches + canRepeat := len(blk.sequences) > 2 + + for { + if debug && canRepeat && offset1 == 0 { + panic("offset0 was 0") + } + + nextHash := hash6(cv, hashLog) + nextHash2 := hash6(cv>>8, hashLog) + candidate := e.table[nextHash] + candidate2 := e.table[nextHash2] + repIndex := s - offset1 + 2 + + e.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)} + e.table[nextHash2] = tableEntry{offset: s + e.cur + 1, val: uint32(cv >> 8)} + + if canRepeat && repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>16) { + // Consider history as well. + var seq seq + lenght := 4 + e.matchlen(s+6, repIndex+4, src) + + seq.matchLen = uint32(lenght - zstdMinMatch) + + // We might be able to match backwards. + // Extend as long as we can. + start := s + 2 + // We end the search early, so we don't risk 0 literals + // and have to do special offset treatment. + startLimit := nextEmit + 1 + + sMin := s - e.maxMatchOff + if sMin < 0 { + sMin = 0 + } + for repIndex > sMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch { + repIndex-- + start-- + seq.matchLen++ + } + addLiterals(&seq, start) + + // rep 0 + seq.offset = 1 + if debugSequences { + println("repeat sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + s += lenght + 2 + nextEmit = s + if s >= sLimit { + if debug { + println("repeat ended", s, lenght) + + } + break encodeLoop + } + cv = load6432(src, s) + continue + } + coffset0 := s - (candidate.offset - e.cur) + coffset1 := s - (candidate2.offset - e.cur) + 1 + if coffset0 < e.maxMatchOff && uint32(cv) == candidate.val { + // found a regular match + t = candidate.offset - e.cur + if debug && s <= t { + panic("s <= t") + } + if debug && s-t > e.maxMatchOff { + panic("s - t >e.maxMatchOff") + } + break + } + + if coffset1 < e.maxMatchOff && uint32(cv>>8) == candidate2.val { + // found a regular match + t = candidate2.offset - e.cur + s++ + if debug && s <= t { + panic("s <= t") + } + if debug && s-t > e.maxMatchOff { + panic("s - t >e.maxMatchOff") + } + if debug && t < 0 { + panic("t<0") + } + break + } + s += stepSize + ((s - nextEmit) >> (kSearchStrength - 1)) + if s >= sLimit { + break encodeLoop + } + cv = load6432(src, s) + } + // A 4-byte match has been found. We'll later see if more than 4 bytes. + offset2 = offset1 + offset1 = s - t + + if debug && s <= t { + panic("s <= t") + } + + if debug && canRepeat && int(offset1) > len(src) { + panic("invalid offset") + } + + // Extend the 4-byte match as long as possible. + l := e.matchlen(s+4, t+4, src) + 4 + + // Extend backwards + tMin := s - e.maxMatchOff + if tMin < 0 { + tMin = 0 + } + for t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength { + s-- + t-- + l++ + } + + // Write our sequence. + var seq seq + seq.litLen = uint32(s - nextEmit) + seq.matchLen = uint32(l - zstdMinMatch) + if seq.litLen > 0 { + blk.literals = append(blk.literals, src[nextEmit:s]...) + } + // Don't use repeat offsets + seq.offset = uint32(s-t) + 3 + s += l + if debugSequences { + println("sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + nextEmit = s + if s >= sLimit { + break encodeLoop + } + cv = load6432(src, s) + + // Check offset 2 + if o2 := s - offset2; canRepeat && load3232(src, o2) == uint32(cv) { + // We have at least 4 byte match. + // No need to check backwards. We come straight from a match + l := 4 + e.matchlen(s+4, o2+4, src) + + // Store this, since we have it. + nextHash := hash6(cv, hashLog) + e.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)} + seq.matchLen = uint32(l) - zstdMinMatch + seq.litLen = 0 + // Since litlen is always 0, this is offset 1. + seq.offset = 1 + s += l + nextEmit = s + if debugSequences { + println("sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + + // Swap offset 1 and 2. + offset1, offset2 = offset2, offset1 + if s >= sLimit { + break encodeLoop + } + // Prepare next loop. + cv = load6432(src, s) + } + } + + if int(nextEmit) < len(src) { + blk.literals = append(blk.literals, src[nextEmit:]...) + blk.extraLits = len(src) - int(nextEmit) + } + blk.recentOffsets[0] = uint32(offset1) + blk.recentOffsets[1] = uint32(offset2) + if debug { + println("returning, recent offsets:", blk.recentOffsets, "extra literals:", blk.extraLits) + } +} + +// EncodeNoHist will encode a block with no history and no following blocks. +// Most notable difference is that src will not be copied for history and +// we do not need to check for max match length. +func (e *fastEncoder) EncodeNoHist(blk *blockEnc, src []byte) { + const ( + inputMargin = 8 + minNonLiteralBlockSize = 1 + 1 + inputMargin + ) + if debug { + if len(src) > maxBlockSize { + panic("src too big") + } + } + // Protect against e.cur wraparound. + if e.cur > (1<<30)+e.maxMatchOff { + for i := range e.table[:] { + e.table[i] = tableEntry{} + } + e.cur = e.maxMatchOff + } + + s := int32(0) + blk.size = len(src) + if len(src) < minNonLiteralBlockSize { + blk.extraLits = len(src) + blk.literals = blk.literals[:len(src)] + copy(blk.literals, src) + return + } + + sLimit := int32(len(src)) - inputMargin + // stepSize is the number of bytes to skip on every main loop iteration. + // It should be >= 2. + const stepSize = 2 + + // TEMPLATE + const hashLog = tableBits + // seems global, but would be nice to tweak. + const kSearchStrength = 8 + + // nextEmit is where in src the next emitLiteral should start from. + nextEmit := s + cv := load6432(src, s) + + // Relative offsets + offset1 := int32(blk.recentOffsets[0]) + offset2 := int32(blk.recentOffsets[1]) + + addLiterals := func(s *seq, until int32) { + if until == nextEmit { + return + } + blk.literals = append(blk.literals, src[nextEmit:until]...) + s.litLen = uint32(until - nextEmit) + } + if debug { + println("recent offsets:", blk.recentOffsets) + } + +encodeLoop: + for { + // t will contain the match offset when we find one. + // When existing the search loop, we have already checked 4 bytes. + var t int32 + + // We will not use repeat offsets across blocks. + // By not using them for the first 3 matches + + for { + nextHash := hash6(cv, hashLog) + nextHash2 := hash6(cv>>8, hashLog) + candidate := e.table[nextHash] + candidate2 := e.table[nextHash2] + repIndex := s - offset1 + 2 + + e.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)} + e.table[nextHash2] = tableEntry{offset: s + e.cur + 1, val: uint32(cv >> 8)} + + if len(blk.sequences) > 2 && load3232(src, repIndex) == uint32(cv>>16) { + // Consider history as well. + var seq seq + // lenght := 4 + e.matchlen(s+6, repIndex+4, src) + lenght := 4 + int32(matchLen(src[s+6:], src[repIndex+4:])) + + seq.matchLen = uint32(lenght - zstdMinMatch) + + // We might be able to match backwards. + // Extend as long as we can. + start := s + 2 + // We end the search early, so we don't risk 0 literals + // and have to do special offset treatment. + startLimit := nextEmit + 1 + + sMin := s - e.maxMatchOff + if sMin < 0 { + sMin = 0 + } + for repIndex > sMin && start > startLimit && src[repIndex-1] == src[start-1] { + repIndex-- + start-- + seq.matchLen++ + } + addLiterals(&seq, start) + + // rep 0 + seq.offset = 1 + if debugSequences { + println("repeat sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + s += lenght + 2 + nextEmit = s + if s >= sLimit { + if debug { + println("repeat ended", s, lenght) + + } + break encodeLoop + } + cv = load6432(src, s) + continue + } + coffset0 := s - (candidate.offset - e.cur) + coffset1 := s - (candidate2.offset - e.cur) + 1 + if coffset0 < e.maxMatchOff && uint32(cv) == candidate.val { + // found a regular match + t = candidate.offset - e.cur + if debug && s <= t { + panic("s <= t") + } + if debug && s-t > e.maxMatchOff { + panic("s - t >e.maxMatchOff") + } + break + } + + if coffset1 < e.maxMatchOff && uint32(cv>>8) == candidate2.val { + // found a regular match + t = candidate2.offset - e.cur + s++ + if debug && s <= t { + panic("s <= t") + } + if debug && s-t > e.maxMatchOff { + panic("s - t >e.maxMatchOff") + } + if debug && t < 0 { + panic("t<0") + } + break + } + s += stepSize + ((s - nextEmit) >> (kSearchStrength - 1)) + if s >= sLimit { + break encodeLoop + } + cv = load6432(src, s) + } + // A 4-byte match has been found. We'll later see if more than 4 bytes. + offset2 = offset1 + offset1 = s - t + + if debug && s <= t { + panic("s <= t") + } + + // Extend the 4-byte match as long as possible. + //l := e.matchlenNoHist(s+4, t+4, src) + 4 + l := int32(matchLen(src[s+4:], src[t+4:])) + 4 + + // Extend backwards + tMin := s - e.maxMatchOff + if tMin < 0 { + tMin = 0 + } + for t > tMin && s > nextEmit && src[t-1] == src[s-1] { + s-- + t-- + l++ + } + + // Write our sequence. + var seq seq + seq.litLen = uint32(s - nextEmit) + seq.matchLen = uint32(l - zstdMinMatch) + if seq.litLen > 0 { + blk.literals = append(blk.literals, src[nextEmit:s]...) + } + // Don't use repeat offsets + seq.offset = uint32(s-t) + 3 + s += l + if debugSequences { + println("sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + nextEmit = s + if s >= sLimit { + break encodeLoop + } + cv = load6432(src, s) + + // Check offset 2 + if o2 := s - offset2; len(blk.sequences) > 2 && load3232(src, o2) == uint32(cv) { + // We have at least 4 byte match. + // No need to check backwards. We come straight from a match + //l := 4 + e.matchlenNoHist(s+4, o2+4, src) + l := 4 + int32(matchLen(src[s+4:], src[o2+4:])) + + // Store this, since we have it. + nextHash := hash6(cv, hashLog) + e.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)} + seq.matchLen = uint32(l) - zstdMinMatch + seq.litLen = 0 + // Since litlen is always 0, this is offset 1. + seq.offset = 1 + s += l + nextEmit = s + if debugSequences { + println("sequence", seq, "next s:", s) + } + blk.sequences = append(blk.sequences, seq) + + // Swap offset 1 and 2. + offset1, offset2 = offset2, offset1 + if s >= sLimit { + break encodeLoop + } + // Prepare next loop. + cv = load6432(src, s) + } + } + + if int(nextEmit) < len(src) { + blk.literals = append(blk.literals, src[nextEmit:]...) + blk.extraLits = len(src) - int(nextEmit) + } + if debug { + println("returning, recent offsets:", blk.recentOffsets, "extra literals:", blk.extraLits) + } +} + +func (e *fastEncoder) addBlock(src []byte) int32 { + // check if we have space already + if len(e.hist)+len(src) > cap(e.hist) { + if cap(e.hist) == 0 { + l := e.maxMatchOff * 2 + // Make it at least 1MB. + if l < 1<<20 { + l = 1 << 20 + } + e.hist = make([]byte, 0, l) + } else { + if cap(e.hist) < int(e.maxMatchOff*2) { + panic("unexpected buffer size") + } + // Move down + offset := int32(len(e.hist)) - e.maxMatchOff + copy(e.hist[0:e.maxMatchOff], e.hist[offset:]) + e.cur += offset + e.hist = e.hist[:e.maxMatchOff] + } + } + s := int32(len(e.hist)) + e.hist = append(e.hist, src...) + return s +} + +// useBlock will replace the block with the provided one, +// but transfer recent offsets from the previous. +func (e *fastEncoder) UseBlock(enc *blockEnc) { + enc.reset(e.blk) + e.blk = enc +} + +func (e *fastEncoder) matchlenNoHist(s, t int32, src []byte) int32 { + // Extend the match to be as long as possible. + return int32(matchLen(src[s:], src[t:])) +} + +func (e *fastEncoder) matchlen(s, t int32, src []byte) int32 { + if debug { + if s < 0 { + panic("s<0") + } + if t < 0 { + panic("t<0") + } + if s-t > e.maxMatchOff { + panic(s - t) + } + } + s1 := int(s) + maxMatchLength - 4 + if s1 > len(src) { + s1 = len(src) + } + + // Extend the match to be as long as possible. + return int32(matchLen(src[s:s1], src[t:])) +} + +// Reset the encoding table. +func (e *fastEncoder) Reset() { + if e.blk == nil { + e.blk = &blockEnc{} + e.blk.init() + } else { + e.blk.reset(nil) + } + e.blk.initNewEncode() + if e.crc == nil { + e.crc = xxhash.New() + } else { + e.crc.Reset() + } + if cap(e.hist) < int(e.maxMatchOff*2) { + l := e.maxMatchOff * 2 + // Make it at least 1MB. + if l < 1<<20 { + l = 1 << 20 + } + e.hist = make([]byte, 0, l) + } + // We offset current position so everything will be out of reach + e.cur += e.maxMatchOff + int32(len(e.hist)) + e.hist = e.hist[:0] +} diff --git a/vendor/github.com/klauspost/compress/zstd/enc_params.go b/vendor/github.com/klauspost/compress/zstd/enc_params.go new file mode 100644 index 0000000..b6779ec --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/enc_params.go @@ -0,0 +1,154 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +type encParams struct { + // largest match distance : larger == more compression, more memory needed during decompression + windowLog uint8 + + // fully searched segment : larger == more compression, slower, more memory (useless for fast) + chainLog uint8 + + // dispatch table : larger == faster, more memory + hashLog uint8 + + // < nb of searches : larger == more compression, slower + searchLog uint8 + + // < match length searched : larger == faster decompression, sometimes less compression + minMatch uint8 + + // acceptable match size for optimal parser (only) : larger == more compression, slower + targetLength uint32 + + // see ZSTD_strategy definition above + strategy strategy +} + +// strategy defines the algorithm to use when generating sequences. +type strategy uint8 + +const ( + // Compression strategies, listed from fastest to strongest + strategyFast strategy = iota + 1 + strategyDfast + strategyGreedy + strategyLazy + strategyLazy2 + strategyBtlazy2 + strategyBtopt + strategyBtultra + strategyBtultra2 + // note : new strategies _might_ be added in the future. + // Only the order (from fast to strong) is guaranteed + +) + +var defEncParams = [4][]encParams{ + { // "default" - for any srcSize > 256 KB + // W, C, H, S, L, TL, strat + {19, 12, 13, 1, 6, 1, strategyFast}, // base for negative levels + {19, 13, 14, 1, 7, 0, strategyFast}, // level 1 + {20, 15, 16, 1, 6, 0, strategyFast}, // level 2 + {21, 16, 17, 1, 5, 1, strategyDfast}, // level 3 + {21, 18, 18, 1, 5, 1, strategyDfast}, // level 4 + {21, 18, 19, 2, 5, 2, strategyGreedy}, // level 5 + {21, 19, 19, 3, 5, 4, strategyGreedy}, // level 6 + {21, 19, 19, 3, 5, 8, strategyLazy}, // level 7 + {21, 19, 19, 3, 5, 16, strategyLazy2}, // level 8 + {21, 19, 20, 4, 5, 16, strategyLazy2}, // level 9 + {22, 20, 21, 4, 5, 16, strategyLazy2}, // level 10 + {22, 21, 22, 4, 5, 16, strategyLazy2}, // level 11 + {22, 21, 22, 5, 5, 16, strategyLazy2}, // level 12 + {22, 21, 22, 5, 5, 32, strategyBtlazy2}, // level 13 + {22, 22, 23, 5, 5, 32, strategyBtlazy2}, // level 14 + {22, 23, 23, 6, 5, 32, strategyBtlazy2}, // level 15 + {22, 22, 22, 5, 5, 48, strategyBtopt}, // level 16 + {23, 23, 22, 5, 4, 64, strategyBtopt}, // level 17 + {23, 23, 22, 6, 3, 64, strategyBtultra}, // level 18 + {23, 24, 22, 7, 3, 256, strategyBtultra2}, // level 19 + {25, 25, 23, 7, 3, 256, strategyBtultra2}, // level 20 + {26, 26, 24, 7, 3, 512, strategyBtultra2}, // level 21 + {27, 27, 25, 9, 3, 999, strategyBtultra2}, // level 22 + }, + { // for srcSize <= 256 KB + // W, C, H, S, L, T, strat + {18, 12, 13, 1, 5, 1, strategyFast}, // base for negative levels + {18, 13, 14, 1, 6, 0, strategyFast}, // level 1 + {18, 14, 14, 1, 5, 1, strategyDfast}, // level 2 + {18, 16, 16, 1, 4, 1, strategyDfast}, // level 3 + {18, 16, 17, 2, 5, 2, strategyGreedy}, // level 4. + {18, 18, 18, 3, 5, 2, strategyGreedy}, // level 5. + {18, 18, 19, 3, 5, 4, strategyLazy}, // level 6. + {18, 18, 19, 4, 4, 4, strategyLazy}, // level 7 + {18, 18, 19, 4, 4, 8, strategyLazy2}, // level 8 + {18, 18, 19, 5, 4, 8, strategyLazy2}, // level 9 + {18, 18, 19, 6, 4, 8, strategyLazy2}, // level 10 + {18, 18, 19, 5, 4, 12, strategyBtlazy2}, // level 11. + {18, 19, 19, 7, 4, 12, strategyBtlazy2}, // level 12. + {18, 18, 19, 4, 4, 16, strategyBtopt}, // level 13 + {18, 18, 19, 4, 3, 32, strategyBtopt}, // level 14. + {18, 18, 19, 6, 3, 128, strategyBtopt}, // level 15. + {18, 19, 19, 6, 3, 128, strategyBtultra}, // level 16. + {18, 19, 19, 8, 3, 256, strategyBtultra}, // level 17. + {18, 19, 19, 6, 3, 128, strategyBtultra2}, // level 18. + {18, 19, 19, 8, 3, 256, strategyBtultra2}, // level 19. + {18, 19, 19, 10, 3, 512, strategyBtultra2}, // level 20. + {18, 19, 19, 12, 3, 512, strategyBtultra2}, // level 21. + {18, 19, 19, 13, 3, 999, strategyBtultra2}, // level 22. + }, + { // for srcSize <= 128 KB + // W, C, H, S, L, T, strat + {17, 12, 12, 1, 5, 1, strategyFast}, // base for negative levels + {17, 12, 13, 1, 6, 0, strategyFast}, // level 1 + {17, 13, 15, 1, 5, 0, strategyFast}, // level 2 + {17, 15, 16, 2, 5, 1, strategyDfast}, // level 3 + {17, 17, 17, 2, 4, 1, strategyDfast}, // level 4 + {17, 16, 17, 3, 4, 2, strategyGreedy}, // level 5 + {17, 17, 17, 3, 4, 4, strategyLazy}, // level 6 + {17, 17, 17, 3, 4, 8, strategyLazy2}, // level 7 + {17, 17, 17, 4, 4, 8, strategyLazy2}, // level 8 + {17, 17, 17, 5, 4, 8, strategyLazy2}, // level 9 + {17, 17, 17, 6, 4, 8, strategyLazy2}, // level 10 + {17, 17, 17, 5, 4, 8, strategyBtlazy2}, // level 11 + {17, 18, 17, 7, 4, 12, strategyBtlazy2}, // level 12 + {17, 18, 17, 3, 4, 12, strategyBtopt}, // level 13. + {17, 18, 17, 4, 3, 32, strategyBtopt}, // level 14. + {17, 18, 17, 6, 3, 256, strategyBtopt}, // level 15. + {17, 18, 17, 6, 3, 128, strategyBtultra}, // level 16. + {17, 18, 17, 8, 3, 256, strategyBtultra}, // level 17. + {17, 18, 17, 10, 3, 512, strategyBtultra}, // level 18. + {17, 18, 17, 5, 3, 256, strategyBtultra2}, // level 19. + {17, 18, 17, 7, 3, 512, strategyBtultra2}, // level 20. + {17, 18, 17, 9, 3, 512, strategyBtultra2}, // level 21. + {17, 18, 17, 11, 3, 999, strategyBtultra2}, // level 22. + }, + { // for srcSize <= 16 KB + // W, C, H, S, L, T, strat + {14, 12, 13, 1, 5, 1, strategyFast}, // base for negative levels + {14, 14, 15, 1, 5, 0, strategyFast}, // level 1 + {14, 14, 15, 1, 4, 0, strategyFast}, // level 2 + {14, 14, 15, 2, 4, 1, strategyDfast}, // level 3 + {14, 14, 14, 4, 4, 2, strategyGreedy}, // level 4 + {14, 14, 14, 3, 4, 4, strategyLazy}, // level 5. + {14, 14, 14, 4, 4, 8, strategyLazy2}, // level 6 + {14, 14, 14, 6, 4, 8, strategyLazy2}, // level 7 + {14, 14, 14, 8, 4, 8, strategyLazy2}, // level 8. + {14, 15, 14, 5, 4, 8, strategyBtlazy2}, // level 9. + {14, 15, 14, 9, 4, 8, strategyBtlazy2}, // level 10. + {14, 15, 14, 3, 4, 12, strategyBtopt}, // level 11. + {14, 15, 14, 4, 3, 24, strategyBtopt}, // level 12. + {14, 15, 14, 5, 3, 32, strategyBtultra}, // level 13. + {14, 15, 15, 6, 3, 64, strategyBtultra}, // level 14. + {14, 15, 15, 7, 3, 256, strategyBtultra}, // level 15. + {14, 15, 15, 5, 3, 48, strategyBtultra2}, // level 16. + {14, 15, 15, 6, 3, 128, strategyBtultra2}, // level 17. + {14, 15, 15, 7, 3, 256, strategyBtultra2}, // level 18. + {14, 15, 15, 8, 3, 256, strategyBtultra2}, // level 19. + {14, 15, 15, 8, 3, 512, strategyBtultra2}, // level 20. + {14, 15, 15, 9, 3, 512, strategyBtultra2}, // level 21. + {14, 15, 15, 10, 3, 999, strategyBtultra2}, // level 22. + }, +} diff --git a/vendor/github.com/klauspost/compress/zstd/encoder.go b/vendor/github.com/klauspost/compress/zstd/encoder.go new file mode 100644 index 0000000..366dd66 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/encoder.go @@ -0,0 +1,539 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "crypto/rand" + "fmt" + "io" + rdebug "runtime/debug" + "sync" + + "github.com/klauspost/compress/zstd/internal/xxhash" +) + +// Encoder provides encoding to Zstandard. +// An Encoder can be used for either compressing a stream via the +// io.WriteCloser interface supported by the Encoder or as multiple independent +// tasks via the EncodeAll function. +// Smaller encodes are encouraged to use the EncodeAll function. +// Use NewWriter to create a new instance. +type Encoder struct { + o encoderOptions + encoders chan encoder + state encoderState + init sync.Once +} + +type encoder interface { + Encode(blk *blockEnc, src []byte) + EncodeNoHist(blk *blockEnc, src []byte) + Block() *blockEnc + CRC() *xxhash.Digest + AppendCRC([]byte) []byte + WindowSize(size int) int32 + UseBlock(*blockEnc) + Reset() +} + +type encoderState struct { + w io.Writer + filling []byte + current []byte + previous []byte + encoder encoder + writing *blockEnc + err error + writeErr error + nWritten int64 + headerWritten bool + eofWritten bool + + // This waitgroup indicates an encode is running. + wg sync.WaitGroup + // This waitgroup indicates we have a block encoding/writing. + wWg sync.WaitGroup +} + +// NewWriter will create a new Zstandard encoder. +// If the encoder will be used for encoding blocks a nil writer can be used. +func NewWriter(w io.Writer, opts ...EOption) (*Encoder, error) { + initPredefined() + var e Encoder + e.o.setDefault() + for _, o := range opts { + err := o(&e.o) + if err != nil { + return nil, err + } + } + if w != nil { + e.Reset(w) + } else { + e.init.Do(func() { + e.initialize() + }) + } + return &e, nil +} + +func (e *Encoder) initialize() { + e.encoders = make(chan encoder, e.o.concurrent) + for i := 0; i < e.o.concurrent; i++ { + e.encoders <- e.o.encoder() + } +} + +// Reset will re-initialize the writer and new writes will encode to the supplied writer +// as a new, independent stream. +func (e *Encoder) Reset(w io.Writer) { + e.init.Do(func() { + e.initialize() + }) + s := &e.state + s.wg.Wait() + s.wWg.Wait() + if cap(s.filling) == 0 { + s.filling = make([]byte, 0, e.o.blockSize) + } + if cap(s.current) == 0 { + s.current = make([]byte, 0, e.o.blockSize) + } + if cap(s.previous) == 0 { + s.previous = make([]byte, 0, e.o.blockSize) + } + if s.encoder == nil { + s.encoder = e.o.encoder() + } + if s.writing == nil { + s.writing = &blockEnc{} + s.writing.init() + } + s.writing.initNewEncode() + s.filling = s.filling[:0] + s.current = s.current[:0] + s.previous = s.previous[:0] + s.encoder.Reset() + s.headerWritten = false + s.eofWritten = false + s.w = w + s.err = nil + s.nWritten = 0 + s.writeErr = nil +} + +// Write data to the encoder. +// Input data will be buffered and as the buffer fills up +// content will be compressed and written to the output. +// When done writing, use Close to flush the remaining output +// and write CRC if requested. +func (e *Encoder) Write(p []byte) (n int, err error) { + s := &e.state + for len(p) > 0 { + if len(p)+len(s.filling) < e.o.blockSize { + if e.o.crc { + _, _ = s.encoder.CRC().Write(p) + } + s.filling = append(s.filling, p...) + return n + len(p), nil + } + add := p + if len(p)+len(s.filling) > e.o.blockSize { + add = add[:e.o.blockSize-len(s.filling)] + } + if e.o.crc { + _, _ = s.encoder.CRC().Write(add) + } + s.filling = append(s.filling, add...) + p = p[len(add):] + n += len(add) + if len(s.filling) < e.o.blockSize { + return n, nil + } + err := e.nextBlock(false) + if err != nil { + return n, err + } + if debug && len(s.filling) > 0 { + panic(len(s.filling)) + } + } + return n, nil +} + +// nextBlock will synchronize and start compressing input in e.state.filling. +// If an error has occurred during encoding it will be returned. +func (e *Encoder) nextBlock(final bool) error { + s := &e.state + // Wait for current block. + s.wg.Wait() + if s.err != nil { + return s.err + } + if len(s.filling) > e.o.blockSize { + return fmt.Errorf("block > maxStoreBlockSize") + } + if !s.headerWritten { + var tmp [maxHeaderSize]byte + fh := frameHeader{ + ContentSize: 0, + WindowSize: uint32(s.encoder.WindowSize(0)), + SingleSegment: false, + Checksum: e.o.crc, + DictID: 0, + } + dst, err := fh.appendTo(tmp[:0]) + if err != nil { + return err + } + s.headerWritten = true + s.wWg.Wait() + var n2 int + n2, s.err = s.w.Write(dst) + if s.err != nil { + return s.err + } + s.nWritten += int64(n2) + } + if s.eofWritten { + // Ensure we only write it once. + final = false + } + + if len(s.filling) == 0 { + // Final block, but no data. + if final { + enc := s.encoder + blk := enc.Block() + blk.reset(nil) + blk.last = true + blk.encodeRaw(nil) + s.wWg.Wait() + _, s.err = s.w.Write(blk.output) + s.nWritten += int64(len(blk.output)) + s.eofWritten = true + } + return s.err + } + + // Move blocks forward. + s.filling, s.current, s.previous = s.previous[:0], s.filling, s.current + s.wg.Add(1) + go func(src []byte) { + if debug { + println("Adding block,", len(src), "bytes, final:", final) + } + defer func() { + if r := recover(); r != nil { + s.err = fmt.Errorf("panic while encoding: %v", r) + rdebug.PrintStack() + } + s.wg.Done() + }() + enc := s.encoder + blk := enc.Block() + enc.Encode(blk, src) + blk.last = final + if final { + s.eofWritten = true + } + // Wait for pending writes. + s.wWg.Wait() + if s.writeErr != nil { + s.err = s.writeErr + return + } + // Transfer encoders from previous write block. + blk.swapEncoders(s.writing) + // Transfer recent offsets to next. + enc.UseBlock(s.writing) + s.writing = blk + s.wWg.Add(1) + go func() { + defer func() { + if r := recover(); r != nil { + s.writeErr = fmt.Errorf("panic while encoding/writing: %v", r) + rdebug.PrintStack() + } + s.wWg.Done() + }() + err := errIncompressible + // If we got the exact same number of literals as input, + // assume the literals cannot be compressed. + if len(src) != len(blk.literals) || len(src) != e.o.blockSize { + err = blk.encode(e.o.noEntropy) + } + switch err { + case errIncompressible: + if debug { + println("Storing incompressible block as raw") + } + blk.encodeRaw(src) + // In fast mode, we do not transfer offsets, so we don't have to deal with changing the. + case nil: + default: + s.writeErr = err + return + } + _, s.writeErr = s.w.Write(blk.output) + s.nWritten += int64(len(blk.output)) + }() + }(s.current) + return nil +} + +// ReadFrom reads data from r until EOF or error. +// The return value n is the number of bytes read. +// Any error except io.EOF encountered during the read is also returned. +// +// The Copy function uses ReaderFrom if available. +func (e *Encoder) ReadFrom(r io.Reader) (n int64, err error) { + if debug { + println("Using ReadFrom") + } + // Maybe handle stuff queued? + e.state.filling = e.state.filling[:e.o.blockSize] + src := e.state.filling + for { + n2, err := r.Read(src) + _, _ = e.state.encoder.CRC().Write(src[:n2]) + // src is now the unfilled part... + src = src[n2:] + n += int64(n2) + switch err { + case io.EOF: + e.state.filling = e.state.filling[:len(e.state.filling)-len(src)] + if debug { + println("ReadFrom: got EOF final block:", len(e.state.filling)) + } + return n, e.nextBlock(true) + default: + if debug { + println("ReadFrom: got error:", err) + } + e.state.err = err + return n, err + case nil: + } + if len(src) > 0 { + if debug { + println("ReadFrom: got space left in source:", len(src)) + } + continue + } + err = e.nextBlock(false) + if err != nil { + return n, err + } + e.state.filling = e.state.filling[:e.o.blockSize] + src = e.state.filling + } +} + +// Flush will send the currently written data to output +// and block until everything has been written. +// This should only be used on rare occasions where pushing the currently queued data is critical. +func (e *Encoder) Flush() error { + s := &e.state + if len(s.filling) > 0 { + err := e.nextBlock(false) + if err != nil { + return err + } + } + s.wg.Wait() + s.wWg.Wait() + if s.err != nil { + return s.err + } + return s.writeErr +} + +// Close will flush the final output and close the stream. +// The function will block until everything has been written. +// The Encoder can still be re-used after calling this. +func (e *Encoder) Close() error { + s := &e.state + if s.encoder == nil { + return nil + } + err := e.nextBlock(true) + if err != nil { + return err + } + s.wg.Wait() + s.wWg.Wait() + + if s.err != nil { + return s.err + } + if s.writeErr != nil { + return s.writeErr + } + + // Write CRC + if e.o.crc && s.err == nil { + // heap alloc. + var tmp [4]byte + _, s.err = s.w.Write(s.encoder.AppendCRC(tmp[:0])) + s.nWritten += 4 + } + + // Add padding with content from crypto/rand.Reader + if s.err == nil && e.o.pad > 0 { + add := calcSkippableFrame(s.nWritten, int64(e.o.pad)) + frame, err := skippableFrame(s.filling[:0], add, rand.Reader) + if err != nil { + return err + } + _, s.err = s.w.Write(frame) + } + return s.err +} + +// EncodeAll will encode all input in src and append it to dst. +// This function can be called concurrently, but each call will only run on a single goroutine. +// If empty input is given, nothing is returned, unless WithZeroFrames is specified. +// Encoded blocks can be concatenated and the result will be the combined input stream. +// Data compressed with EncodeAll can be decoded with the Decoder, +// using either a stream or DecodeAll. +func (e *Encoder) EncodeAll(src, dst []byte) []byte { + if len(src) == 0 { + if e.o.fullZero { + // Add frame header. + fh := frameHeader{ + ContentSize: 0, + WindowSize: MinWindowSize, + SingleSegment: true, + // Adding a checksum would be a waste of space. + Checksum: false, + DictID: 0, + } + dst, _ = fh.appendTo(dst) + + // Write raw block as last one only. + var blk blockHeader + blk.setSize(0) + blk.setType(blockTypeRaw) + blk.setLast(true) + dst = blk.appendTo(dst) + } + return dst + } + e.init.Do(func() { + e.o.setDefault() + e.initialize() + }) + enc := <-e.encoders + defer func() { + // Release encoder reference to last block. + enc.Reset() + e.encoders <- enc + }() + enc.Reset() + blk := enc.Block() + // Use single segments when above minimum window and below 1MB. + single := len(src) < 1<<20 && len(src) > MinWindowSize + if e.o.single != nil { + single = *e.o.single + } + fh := frameHeader{ + ContentSize: uint64(len(src)), + WindowSize: uint32(enc.WindowSize(len(src))), + SingleSegment: single, + Checksum: e.o.crc, + DictID: 0, + } + + // If less than 1MB, allocate a buffer up front. + if len(dst) == 0 && cap(dst) == 0 && len(src) < 1<<20 { + dst = make([]byte, 0, len(src)) + } + dst, err := fh.appendTo(dst) + if err != nil { + panic(err) + } + + if len(src) <= e.o.blockSize && len(src) <= maxBlockSize { + // Slightly faster with no history and everything in one block. + if e.o.crc { + _, _ = enc.CRC().Write(src) + } + blk.reset(nil) + blk.last = true + enc.EncodeNoHist(blk, src) + + // If we got the exact same number of literals as input, + // assume the literals cannot be compressed. + err := errIncompressible + oldout := blk.output + if len(blk.literals) != len(src) || len(src) != e.o.blockSize { + // Output directly to dst + blk.output = dst + err = blk.encode(e.o.noEntropy) + } + + switch err { + case errIncompressible: + if debug { + println("Storing incompressible block as raw") + } + dst = blk.encodeRawTo(dst, src) + case nil: + dst = blk.output + default: + panic(err) + } + blk.output = oldout + } else { + for len(src) > 0 { + todo := src + if len(todo) > e.o.blockSize { + todo = todo[:e.o.blockSize] + } + src = src[len(todo):] + if e.o.crc { + _, _ = enc.CRC().Write(todo) + } + blk.reset(nil) + blk.pushOffsets() + enc.Encode(blk, todo) + if len(src) == 0 { + blk.last = true + } + err := errIncompressible + // If we got the exact same number of literals as input, + // assume the literals cannot be compressed. + if len(blk.literals) != len(todo) || len(todo) != e.o.blockSize { + err = blk.encode(e.o.noEntropy) + } + + switch err { + case errIncompressible: + if debug { + println("Storing incompressible block as raw") + } + dst = blk.encodeRawTo(dst, todo) + blk.popOffsets() + case nil: + dst = append(dst, blk.output...) + default: + panic(err) + } + } + } + if e.o.crc { + dst = enc.AppendCRC(dst) + } + // Add padding with content from crypto/rand.Reader + if e.o.pad > 0 { + add := calcSkippableFrame(int64(len(dst)), int64(e.o.pad)) + dst, err = skippableFrame(dst, add, rand.Reader) + if err != nil { + panic(err) + } + } + return dst +} diff --git a/vendor/github.com/klauspost/compress/zstd/encoder_options.go b/vendor/github.com/klauspost/compress/zstd/encoder_options.go new file mode 100644 index 0000000..40eb457 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/encoder_options.go @@ -0,0 +1,231 @@ +package zstd + +import ( + "errors" + "fmt" + "runtime" + "strings" +) + +// EOption is an option for creating a encoder. +type EOption func(*encoderOptions) error + +// options retains accumulated state of multiple options. +type encoderOptions struct { + concurrent int + crc bool + single *bool + pad int + blockSize int + windowSize int + level EncoderLevel + fullZero bool + noEntropy bool +} + +func (o *encoderOptions) setDefault() { + *o = encoderOptions{ + // use less ram: true for now, but may change. + concurrent: runtime.GOMAXPROCS(0), + crc: true, + single: nil, + blockSize: 1 << 16, + windowSize: 1 << 22, + level: SpeedDefault, + } +} + +// encoder returns an encoder with the selected options. +func (o encoderOptions) encoder() encoder { + switch o.level { + case SpeedDefault: + return &doubleFastEncoder{fastEncoder: fastEncoder{maxMatchOff: int32(o.windowSize)}} + case SpeedFastest: + return &fastEncoder{maxMatchOff: int32(o.windowSize)} + } + panic("unknown compression level") +} + +// WithEncoderCRC will add CRC value to output. +// Output will be 4 bytes larger. +func WithEncoderCRC(b bool) EOption { + return func(o *encoderOptions) error { o.crc = b; return nil } +} + +// WithEncoderConcurrency will set the concurrency, +// meaning the maximum number of decoders to run concurrently. +// The value supplied must be at least 1. +// By default this will be set to GOMAXPROCS. +func WithEncoderConcurrency(n int) EOption { + return func(o *encoderOptions) error { + if n <= 0 { + return fmt.Errorf("concurrency must be at least 1") + } + o.concurrent = n + return nil + } +} + +// WithWindowSize will set the maximum allowed back-reference distance. +// The value must be a power of two between WindowSizeMin and WindowSizeMax. +// A larger value will enable better compression but allocate more memory and, +// for above-default values, take considerably longer. +// The default value is determined by the compression level. +func WithWindowSize(n int) EOption { + return func(o *encoderOptions) error { + switch { + case n < MinWindowSize: + return fmt.Errorf("window size must be at least %d", MinWindowSize) + case n > MaxWindowSize: + return fmt.Errorf("window size must be at most %d", MaxWindowSize) + case (n & (n - 1)) != 0: + return errors.New("window size must be a power of 2") + } + + o.windowSize = n + if o.blockSize > o.windowSize { + o.blockSize = o.windowSize + } + return nil + } +} + +// WithEncoderPadding will add padding to all output so the size will be a multiple of n. +// This can be used to obfuscate the exact output size or make blocks of a certain size. +// The contents will be a skippable frame, so it will be invisible by the decoder. +// n must be > 0 and <= 1GB, 1<<30 bytes. +// The padded area will be filled with data from crypto/rand.Reader. +// If `EncodeAll` is used with data already in the destination, the total size will be multiple of this. +func WithEncoderPadding(n int) EOption { + return func(o *encoderOptions) error { + if n <= 0 { + return fmt.Errorf("padding must be at least 1") + } + // No need to waste our time. + if n == 1 { + o.pad = 0 + } + if n > 1<<30 { + return fmt.Errorf("padding must less than 1GB (1<<30 bytes) ") + } + o.pad = n + return nil + } +} + +// EncoderLevel predefines encoder compression levels. +// Only use the constants made available, since the actual mapping +// of these values are very likely to change and your compression could change +// unpredictably when upgrading the library. +type EncoderLevel int + +const ( + speedNotSet EncoderLevel = iota + + // SpeedFastest will choose the fastest reasonable compression. + // This is roughly equivalent to the fastest Zstandard mode. + SpeedFastest + + // SpeedDefault is the default "pretty fast" compression option. + // This is roughly equivalent to the default Zstandard mode (level 3). + SpeedDefault + + // speedLast should be kept as the last actual compression option. + // The is not for external usage, but is used to keep track of the valid options. + speedLast + + // SpeedBetterCompression will (in the future) yield better compression than the default, + // but at approximately 4x the CPU usage of the default. + // For now this is not implemented. + SpeedBetterCompression = SpeedDefault + + // SpeedBestCompression will choose the best available compression option. + // For now this is not implemented. + SpeedBestCompression = SpeedDefault +) + +// EncoderLevelFromString will convert a string representation of an encoding level back +// to a compression level. The compare is not case sensitive. +// If the string wasn't recognized, (false, SpeedDefault) will be returned. +func EncoderLevelFromString(s string) (bool, EncoderLevel) { + for l := EncoderLevel(speedNotSet + 1); l < speedLast; l++ { + if strings.EqualFold(s, l.String()) { + return true, l + } + } + return false, SpeedDefault +} + +// EncoderLevelFromZstd will return an encoder level that closest matches the compression +// ratio of a specific zstd compression level. +// Many input values will provide the same compression level. +func EncoderLevelFromZstd(level int) EncoderLevel { + switch { + case level < 3: + return SpeedFastest + case level >= 3: + return SpeedDefault + } + return SpeedDefault +} + +// String provides a string representation of the compression level. +func (e EncoderLevel) String() string { + switch e { + case SpeedFastest: + return "fastest" + case SpeedDefault: + return "default" + default: + return "invalid" + } +} + +// WithEncoderLevel specifies a predefined compression level. +func WithEncoderLevel(l EncoderLevel) EOption { + return func(o *encoderOptions) error { + switch { + case l <= speedNotSet || l >= speedLast: + return fmt.Errorf("unknown encoder level") + } + o.level = l + return nil + } +} + +// WithZeroFrames will encode 0 length input as full frames. +// This can be needed for compatibility with zstandard usage, +// but is not needed for this package. +func WithZeroFrames(b bool) EOption { + return func(o *encoderOptions) error { + o.fullZero = b + return nil + } +} + +// WithNoEntropyCompression will always skip entropy compression of literals. +// This can be useful if content has matches, but unlikely to benefit from entropy +// compression. Usually the slight speed improvement is not worth enabling this. +func WithNoEntropyCompression(b bool) EOption { + return func(o *encoderOptions) error { + o.noEntropy = b + return nil + } +} + +// WithSingleSegment will set the "single segment" flag when EncodeAll is used. +// If this flag is set, data must be regenerated within a single continuous memory segment. +// In this case, Window_Descriptor byte is skipped, but Frame_Content_Size is necessarily present. +// As a consequence, the decoder must allocate a memory segment of size equal or larger than size of your content. +// In order to preserve the decoder from unreasonable memory requirements, +// a decoder is allowed to reject a compressed frame which requests a memory size beyond decoder's authorized range. +// For broader compatibility, decoders are recommended to support memory sizes of at least 8 MB. +// This is only a recommendation, each decoder is free to support higher or lower limits, depending on local limitations. +// If this is not specified, block encodes will automatically choose this based on the input size. +// This setting has no effect on streamed encodes. +func WithSingleSegment(b bool) EOption { + return func(o *encoderOptions) error { + o.single = &b + return nil + } +} diff --git a/vendor/github.com/klauspost/compress/zstd/framedec.go b/vendor/github.com/klauspost/compress/zstd/framedec.go new file mode 100644 index 0000000..4079074 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/framedec.go @@ -0,0 +1,489 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "bytes" + "encoding/hex" + "errors" + "hash" + "io" + "sync" + + "github.com/klauspost/compress/zstd/internal/xxhash" +) + +type frameDec struct { + o decoderOptions + crc hash.Hash64 + frameDone sync.WaitGroup + offset int64 + + WindowSize uint64 + DictionaryID uint32 + FrameContentSize uint64 + HasCheckSum bool + SingleSegment bool + + // maxWindowSize is the maximum windows size to support. + // should never be bigger than max-int. + maxWindowSize uint64 + + // In order queue of blocks being decoded. + decoding chan *blockDec + + // Frame history passed between blocks + history history + + rawInput byteBuffer + + // Byte buffer that can be reused for small input blocks. + bBuf byteBuf + + // asyncRunning indicates whether the async routine processes input on 'decoding'. + asyncRunning bool + asyncRunningMu sync.Mutex +} + +const ( + // The minimum Window_Size is 1 KB. + MinWindowSize = 1 << 10 + MaxWindowSize = 1 << 30 +) + +var ( + frameMagic = []byte{0x28, 0xb5, 0x2f, 0xfd} + skippableFrameMagic = []byte{0x2a, 0x4d, 0x18} +) + +func newFrameDec(o decoderOptions) *frameDec { + d := frameDec{ + o: o, + maxWindowSize: MaxWindowSize, + } + if d.maxWindowSize > o.maxDecodedSize { + d.maxWindowSize = o.maxDecodedSize + } + return &d +} + +// reset will read the frame header and prepare for block decoding. +// If nothing can be read from the input, io.EOF will be returned. +// Any other error indicated that the stream contained data, but +// there was a problem. +func (d *frameDec) reset(br byteBuffer) error { + d.HasCheckSum = false + d.WindowSize = 0 + var b []byte + for { + b = br.readSmall(4) + if b == nil { + return io.EOF + } + if !bytes.Equal(b[1:4], skippableFrameMagic) || b[0]&0xf0 != 0x50 { + if debug { + println("Not skippable", hex.EncodeToString(b), hex.EncodeToString(skippableFrameMagic)) + } + // Break if not skippable frame. + break + } + // Read size to skip + b = br.readSmall(4) + if b == nil { + println("Reading Frame Size EOF") + return io.ErrUnexpectedEOF + } + n := uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24) + println("Skipping frame with", n, "bytes.") + err := br.skipN(int(n)) + if err != nil { + if debug { + println("Reading discarded frame", err) + } + return err + } + } + if !bytes.Equal(b, frameMagic) { + println("Got magic numbers: ", b, "want:", frameMagic) + return ErrMagicMismatch + } + + // Read Frame_Header_Descriptor + fhd, err := br.readByte() + if err != nil { + println("Reading Frame_Header_Descriptor", err) + return err + } + d.SingleSegment = fhd&(1<<5) != 0 + + if fhd&(1<<3) != 0 { + return errors.New("Reserved bit set on frame header") + } + + // Read Window_Descriptor + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#window_descriptor + d.WindowSize = 0 + if !d.SingleSegment { + wd, err := br.readByte() + if err != nil { + println("Reading Window_Descriptor", err) + return err + } + printf("raw: %x, mantissa: %d, exponent: %d\n", wd, wd&7, wd>>3) + windowLog := 10 + (wd >> 3) + windowBase := uint64(1) << windowLog + windowAdd := (windowBase / 8) * uint64(wd&0x7) + d.WindowSize = windowBase + windowAdd + } + + // Read Dictionary_ID + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary_id + d.DictionaryID = 0 + if size := fhd & 3; size != 0 { + if size == 3 { + size = 4 + } + b = br.readSmall(int(size)) + if b == nil { + if debug { + println("Reading Dictionary_ID", io.ErrUnexpectedEOF) + } + return io.ErrUnexpectedEOF + } + switch size { + case 1: + d.DictionaryID = uint32(b[0]) + case 2: + d.DictionaryID = uint32(b[0]) | (uint32(b[1]) << 8) + case 4: + d.DictionaryID = uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24) + } + if debug { + println("Dict size", size, "ID:", d.DictionaryID) + } + if d.DictionaryID != 0 { + return ErrUnknownDictionary + } + } + + // Read Frame_Content_Size + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#frame_content_size + var fcsSize int + v := fhd >> 6 + switch v { + case 0: + if d.SingleSegment { + fcsSize = 1 + } + default: + fcsSize = 1 << v + } + d.FrameContentSize = 0 + if fcsSize > 0 { + b := br.readSmall(fcsSize) + if b == nil { + println("Reading Frame content", io.ErrUnexpectedEOF) + return io.ErrUnexpectedEOF + } + switch fcsSize { + case 1: + d.FrameContentSize = uint64(b[0]) + case 2: + // When FCS_Field_Size is 2, the offset of 256 is added. + d.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) + 256 + case 4: + d.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) | (uint64(b[2]) << 16) | (uint64(b[3]) << 24) + case 8: + d1 := uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24) + d2 := uint32(b[4]) | (uint32(b[5]) << 8) | (uint32(b[6]) << 16) | (uint32(b[7]) << 24) + d.FrameContentSize = uint64(d1) | (uint64(d2) << 32) + } + if debug { + println("field size bits:", v, "fcsSize:", fcsSize, "FrameContentSize:", d.FrameContentSize, hex.EncodeToString(b[:fcsSize]), "singleseg:", d.SingleSegment, "window:", d.WindowSize) + } + } + // Move this to shared. + d.HasCheckSum = fhd&(1<<2) != 0 + if d.HasCheckSum { + if d.crc == nil { + d.crc = xxhash.New() + } + d.crc.Reset() + } + + if d.WindowSize == 0 && d.SingleSegment { + // We may not need window in this case. + d.WindowSize = d.FrameContentSize + if d.WindowSize < MinWindowSize { + d.WindowSize = MinWindowSize + } + } + + if d.WindowSize > d.maxWindowSize { + printf("window size %d > max %d\n", d.WindowSize, d.maxWindowSize) + return ErrWindowSizeExceeded + } + // The minimum Window_Size is 1 KB. + if d.WindowSize < MinWindowSize { + println("got window size: ", d.WindowSize) + return ErrWindowSizeTooSmall + } + d.history.windowSize = int(d.WindowSize) + d.history.maxSize = d.history.windowSize + maxBlockSize + // history contains input - maybe we do something + d.rawInput = br + return nil +} + +// next will start decoding the next block from stream. +func (d *frameDec) next(block *blockDec) error { + if debug { + printf("decoding new block %p:%p", block, block.data) + } + err := block.reset(d.rawInput, d.WindowSize) + if err != nil { + println("block error:", err) + // Signal the frame decoder we have a problem. + d.sendErr(block, err) + return err + } + block.input <- struct{}{} + if debug { + println("next block:", block) + } + d.asyncRunningMu.Lock() + defer d.asyncRunningMu.Unlock() + if !d.asyncRunning { + return nil + } + if block.Last { + // We indicate the frame is done by sending io.EOF + d.decoding <- block + return io.EOF + } + d.decoding <- block + return nil +} + +// sendEOF will queue an error block on the frame. +// This will cause the frame decoder to return when it encounters the block. +// Returns true if the decoder was added. +func (d *frameDec) sendErr(block *blockDec, err error) bool { + d.asyncRunningMu.Lock() + defer d.asyncRunningMu.Unlock() + if !d.asyncRunning { + return false + } + + println("sending error", err.Error()) + block.sendErr(err) + d.decoding <- block + return true +} + +// checkCRC will check the checksum if the frame has one. +// Will return ErrCRCMismatch if crc check failed, otherwise nil. +func (d *frameDec) checkCRC() error { + if !d.HasCheckSum { + return nil + } + var tmp [4]byte + got := d.crc.Sum64() + // Flip to match file order. + tmp[0] = byte(got >> 0) + tmp[1] = byte(got >> 8) + tmp[2] = byte(got >> 16) + tmp[3] = byte(got >> 24) + + // We can overwrite upper tmp now + want := d.rawInput.readSmall(4) + if want == nil { + println("CRC missing?") + return io.ErrUnexpectedEOF + } + + if !bytes.Equal(tmp[:], want) { + if debug { + println("CRC Check Failed:", tmp[:], "!=", want) + } + return ErrCRCMismatch + } + if debug { + println("CRC ok", tmp[:]) + } + return nil +} + +func (d *frameDec) initAsync() { + if !d.o.lowMem && !d.SingleSegment { + // set max extra size history to 20MB. + d.history.maxSize = d.history.windowSize + maxBlockSize*10 + } + // re-alloc if more than one extra block size. + if d.o.lowMem && cap(d.history.b) > d.history.maxSize+maxBlockSize { + d.history.b = make([]byte, 0, d.history.maxSize) + } + if cap(d.history.b) < d.history.maxSize { + d.history.b = make([]byte, 0, d.history.maxSize) + } + if cap(d.decoding) < d.o.concurrent { + d.decoding = make(chan *blockDec, d.o.concurrent) + } + if debug { + h := d.history + printf("history init. len: %d, cap: %d", len(h.b), cap(h.b)) + } + d.asyncRunningMu.Lock() + d.asyncRunning = true + d.asyncRunningMu.Unlock() +} + +// startDecoder will start decoding blocks and write them to the writer. +// The decoder will stop as soon as an error occurs or at end of frame. +// When the frame has finished decoding the *bufio.Reader +// containing the remaining input will be sent on frameDec.frameDone. +func (d *frameDec) startDecoder(output chan decodeOutput) { + // TODO: Init to dictionary + d.history.reset() + written := int64(0) + + defer func() { + d.asyncRunningMu.Lock() + d.asyncRunning = false + d.asyncRunningMu.Unlock() + + // Drain the currently decoding. + d.history.error = true + flushdone: + for { + select { + case b := <-d.decoding: + b.history <- &d.history + output <- <-b.result + default: + break flushdone + } + } + println("frame decoder done, signalling done") + d.frameDone.Done() + }() + // Get decoder for first block. + block := <-d.decoding + block.history <- &d.history + for { + var next *blockDec + // Get result + r := <-block.result + if r.err != nil { + println("Result contained error", r.err) + output <- r + return + } + if debug { + println("got result, from ", d.offset, "to", d.offset+int64(len(r.b))) + d.offset += int64(len(r.b)) + } + if !block.Last { + // Send history to next block + select { + case next = <-d.decoding: + if debug { + println("Sending ", len(d.history.b), "bytes as history") + } + next.history <- &d.history + default: + // Wait until we have sent the block, so + // other decoders can potentially get the decoder. + next = nil + } + } + + // Add checksum, async to decoding. + if d.HasCheckSum { + n, err := d.crc.Write(r.b) + if err != nil { + r.err = err + if n != len(r.b) { + r.err = io.ErrShortWrite + } + output <- r + return + } + } + written += int64(len(r.b)) + if d.SingleSegment && uint64(written) > d.FrameContentSize { + println("runDecoder: single segment and", uint64(written), ">", d.FrameContentSize) + r.err = ErrFrameSizeExceeded + output <- r + return + } + if block.Last { + r.err = d.checkCRC() + output <- r + return + } + output <- r + if next == nil { + // There was no decoder available, we wait for one now that we have sent to the writer. + if debug { + println("Sending ", len(d.history.b), " bytes as history") + } + next = <-d.decoding + next.history <- &d.history + } + block = next + } +} + +// runDecoder will create a sync decoder that will decode a block of data. +func (d *frameDec) runDecoder(dst []byte, dec *blockDec) ([]byte, error) { + // TODO: Init to dictionary + d.history.reset() + saved := d.history.b + + // We use the history for output to avoid copying it. + d.history.b = dst + // Store input length, so we only check new data. + crcStart := len(dst) + var err error + for { + err = dec.reset(d.rawInput, d.WindowSize) + if err != nil { + break + } + if debug { + println("next block:", dec) + } + err = dec.decodeBuf(&d.history) + if err != nil || dec.Last { + break + } + if uint64(len(d.history.b)) > d.o.maxDecodedSize { + err = ErrDecoderSizeExceeded + break + } + if d.SingleSegment && uint64(len(d.history.b)) > d.o.maxDecodedSize { + println("runDecoder: single segment and", uint64(len(d.history.b)), ">", d.o.maxDecodedSize) + err = ErrFrameSizeExceeded + break + } + } + dst = d.history.b + if err == nil { + if d.HasCheckSum { + var n int + n, err = d.crc.Write(dst[crcStart:]) + if err == nil { + if n != len(dst)-crcStart { + err = io.ErrShortWrite + } else { + err = d.checkCRC() + } + } + } + } + d.history.b = saved + return dst, err +} diff --git a/vendor/github.com/klauspost/compress/zstd/frameenc.go b/vendor/github.com/klauspost/compress/zstd/frameenc.go new file mode 100644 index 0000000..4479cfe --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/frameenc.go @@ -0,0 +1,115 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "fmt" + "io" + "math" + "math/bits" +) + +type frameHeader struct { + ContentSize uint64 + WindowSize uint32 + SingleSegment bool + Checksum bool + DictID uint32 // Not stored. +} + +const maxHeaderSize = 14 + +func (f frameHeader) appendTo(dst []byte) ([]byte, error) { + dst = append(dst, frameMagic...) + var fhd uint8 + if f.Checksum { + fhd |= 1 << 2 + } + if f.SingleSegment { + fhd |= 1 << 5 + } + var fcs uint8 + if f.ContentSize >= 256 { + fcs++ + } + if f.ContentSize >= 65536+256 { + fcs++ + } + if f.ContentSize >= 0xffffffff { + fcs++ + } + fhd |= fcs << 6 + + dst = append(dst, fhd) + if !f.SingleSegment { + const winLogMin = 10 + windowLog := (bits.Len32(f.WindowSize-1) - winLogMin) << 3 + dst = append(dst, uint8(windowLog)) + } + + switch fcs { + case 0: + if f.SingleSegment { + dst = append(dst, uint8(f.ContentSize)) + } + // Unless SingleSegment is set, framessizes < 256 are nto stored. + case 1: + f.ContentSize -= 256 + dst = append(dst, uint8(f.ContentSize), uint8(f.ContentSize>>8)) + case 2: + dst = append(dst, uint8(f.ContentSize), uint8(f.ContentSize>>8), uint8(f.ContentSize>>16), uint8(f.ContentSize>>24)) + case 3: + dst = append(dst, uint8(f.ContentSize), uint8(f.ContentSize>>8), uint8(f.ContentSize>>16), uint8(f.ContentSize>>24), + uint8(f.ContentSize>>32), uint8(f.ContentSize>>40), uint8(f.ContentSize>>48), uint8(f.ContentSize>>56)) + default: + panic("invalid fcs") + } + return dst, nil +} + +const skippableFrameHeader = 4 + 4 + +// calcSkippableFrame will return a total size to be added for written +// to be divisible by multiple. +// The value will always be > skippableFrameHeader. +// The function will panic if written < 0 or wantMultiple <= 0. +func calcSkippableFrame(written, wantMultiple int64) int { + if wantMultiple <= 0 { + panic("wantMultiple <= 0") + } + if written < 0 { + panic("written < 0") + } + leftOver := written % wantMultiple + if leftOver == 0 { + return 0 + } + toAdd := wantMultiple - leftOver + for toAdd < skippableFrameHeader { + toAdd += wantMultiple + } + return int(toAdd) +} + +// skippableFrame will add a skippable frame with a total size of bytes. +// total should be >= skippableFrameHeader and < math.MaxUint32. +func skippableFrame(dst []byte, total int, r io.Reader) ([]byte, error) { + if total == 0 { + return dst, nil + } + if total < skippableFrameHeader { + return dst, fmt.Errorf("requested skippable frame (%d) < 8", total) + } + if int64(total) > math.MaxUint32 { + return dst, fmt.Errorf("requested skippable frame (%d) > max uint32", total) + } + dst = append(dst, 0x50, 0x2a, 0x4d, 0x18) + f := uint32(total - skippableFrameHeader) + dst = append(dst, uint8(f), uint8(f>>8), uint8(f>>16), uint8(f>>24)) + start := len(dst) + dst = append(dst, make([]byte, f)...) + _, err := io.ReadFull(r, dst[start:]) + return dst, err +} diff --git a/vendor/github.com/klauspost/compress/zstd/fse_decoder.go b/vendor/github.com/klauspost/compress/zstd/fse_decoder.go new file mode 100644 index 0000000..9efe34f --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/fse_decoder.go @@ -0,0 +1,384 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "errors" + "fmt" +) + +const ( + tablelogAbsoluteMax = 9 +) + +const ( + /*!MEMORY_USAGE : + * Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) + * Increasing memory usage improves compression ratio + * Reduced memory usage can improve speed, due to cache effect + * Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ + maxMemoryUsage = 11 + + maxTableLog = maxMemoryUsage - 2 + maxTablesize = 1 << maxTableLog + maxTableMask = (1 << maxTableLog) - 1 + minTablelog = 5 + maxSymbolValue = 255 +) + +// fseDecoder provides temporary storage for compression and decompression. +type fseDecoder struct { + dt [maxTablesize]decSymbol // Decompression table. + symbolLen uint16 // Length of active part of the symbol table. + actualTableLog uint8 // Selected tablelog. + maxBits uint8 // Maximum number of additional bits + + // used for table creation to avoid allocations. + stateTable [256]uint16 + norm [maxSymbolValue + 1]int16 + preDefined bool +} + +// tableStep returns the next table index. +func tableStep(tableSize uint32) uint32 { + return (tableSize >> 1) + (tableSize >> 3) + 3 +} + +// readNCount will read the symbol distribution so decoding tables can be constructed. +func (s *fseDecoder) readNCount(b *byteReader, maxSymbol uint16) error { + var ( + charnum uint16 + previous0 bool + ) + if b.remain() < 4 { + return errors.New("input too small") + } + bitStream := b.Uint32() + nbBits := uint((bitStream & 0xF) + minTablelog) // extract tableLog + if nbBits > tablelogAbsoluteMax { + println("Invalid tablelog:", nbBits) + return errors.New("tableLog too large") + } + bitStream >>= 4 + bitCount := uint(4) + + s.actualTableLog = uint8(nbBits) + remaining := int32((1 << nbBits) + 1) + threshold := int32(1 << nbBits) + gotTotal := int32(0) + nbBits++ + + for remaining > 1 && charnum <= maxSymbol { + if previous0 { + //println("prev0") + n0 := charnum + for (bitStream & 0xFFFF) == 0xFFFF { + //println("24 x 0") + n0 += 24 + if r := b.remain(); r > 5 { + b.advance(2) + bitStream = b.Uint32() >> bitCount + } else { + // end of bit stream + bitStream >>= 16 + bitCount += 16 + } + } + //printf("bitstream: %d, 0b%b", bitStream&3, bitStream) + for (bitStream & 3) == 3 { + n0 += 3 + bitStream >>= 2 + bitCount += 2 + } + n0 += uint16(bitStream & 3) + bitCount += 2 + + if n0 > maxSymbolValue { + return errors.New("maxSymbolValue too small") + } + //println("inserting ", n0-charnum, "zeroes from idx", charnum, "ending before", n0) + for charnum < n0 { + s.norm[uint8(charnum)] = 0 + charnum++ + } + + if r := b.remain(); r >= 7 || r+int(bitCount>>3) >= 4 { + b.advance(bitCount >> 3) + bitCount &= 7 + bitStream = b.Uint32() >> bitCount + } else { + bitStream >>= 2 + } + } + + max := (2*threshold - 1) - remaining + var count int32 + + if int32(bitStream)&(threshold-1) < max { + count = int32(bitStream) & (threshold - 1) + if debug && nbBits < 1 { + panic("nbBits underflow") + } + bitCount += nbBits - 1 + } else { + count = int32(bitStream) & (2*threshold - 1) + if count >= threshold { + count -= max + } + bitCount += nbBits + } + + // extra accuracy + count-- + if count < 0 { + // -1 means +1 + remaining += count + gotTotal -= count + } else { + remaining -= count + gotTotal += count + } + s.norm[charnum&0xff] = int16(count) + charnum++ + previous0 = count == 0 + for remaining < threshold { + nbBits-- + threshold >>= 1 + } + + //println("b.off:", b.off, "len:", len(b.b), "bc:", bitCount, "remain:", b.remain()) + if r := b.remain(); r >= 7 || r+int(bitCount>>3) >= 4 { + b.advance(bitCount >> 3) + bitCount &= 7 + } else { + bitCount -= (uint)(8 * (len(b.b) - 4 - b.off)) + b.off = len(b.b) - 4 + //println("b.off:", b.off, "len:", len(b.b), "bc:", bitCount, "iend", iend) + } + bitStream = b.Uint32() >> (bitCount & 31) + //printf("bitstream is now: 0b%b", bitStream) + } + s.symbolLen = charnum + if s.symbolLen <= 1 { + return fmt.Errorf("symbolLen (%d) too small", s.symbolLen) + } + if s.symbolLen > maxSymbolValue+1 { + return fmt.Errorf("symbolLen (%d) too big", s.symbolLen) + } + if remaining != 1 { + return fmt.Errorf("corruption detected (remaining %d != 1)", remaining) + } + if bitCount > 32 { + return fmt.Errorf("corruption detected (bitCount %d > 32)", bitCount) + } + if gotTotal != 1<> 3) + // println(s.norm[:s.symbolLen], s.symbolLen) + return s.buildDtable() +} + +// decSymbol contains information about a state entry, +// Including the state offset base, the output symbol and +// the number of bits to read for the low part of the destination state. +// Using a composite uint64 is faster than a struct with separate members. +type decSymbol uint64 + +func newDecSymbol(nbits, addBits uint8, newState uint16, baseline uint32) decSymbol { + return decSymbol(nbits) | (decSymbol(addBits) << 8) | (decSymbol(newState) << 16) | (decSymbol(baseline) << 32) +} + +func (d decSymbol) nbBits() uint8 { + return uint8(d) +} + +func (d decSymbol) addBits() uint8 { + return uint8(d >> 8) +} + +func (d decSymbol) newState() uint16 { + return uint16(d >> 16) +} + +func (d decSymbol) baseline() uint32 { + return uint32(d >> 32) +} + +func (d decSymbol) baselineInt() int { + return int(d >> 32) +} + +func (d *decSymbol) set(nbits, addBits uint8, newState uint16, baseline uint32) { + *d = decSymbol(nbits) | (decSymbol(addBits) << 8) | (decSymbol(newState) << 16) | (decSymbol(baseline) << 32) +} + +func (d *decSymbol) setNBits(nBits uint8) { + const mask = 0xffffffffffffff00 + *d = (*d & mask) | decSymbol(nBits) +} + +func (d *decSymbol) setAddBits(addBits uint8) { + const mask = 0xffffffffffff00ff + *d = (*d & mask) | (decSymbol(addBits) << 8) +} + +func (d *decSymbol) setNewState(state uint16) { + const mask = 0xffffffff0000ffff + *d = (*d & mask) | decSymbol(state)<<16 +} + +func (d *decSymbol) setBaseline(baseline uint32) { + const mask = 0xffffffff + *d = (*d & mask) | decSymbol(baseline)<<32 +} + +func (d *decSymbol) setExt(addBits uint8, baseline uint32) { + const mask = 0xffff00ff + *d = (*d & mask) | (decSymbol(addBits) << 8) | (decSymbol(baseline) << 32) +} + +// decSymbolValue returns the transformed decSymbol for the given symbol. +func decSymbolValue(symb uint8, t []baseOffset) (decSymbol, error) { + if int(symb) >= len(t) { + return 0, fmt.Errorf("rle symbol %d >= max %d", symb, len(t)) + } + lu := t[symb] + return newDecSymbol(0, lu.addBits, 0, lu.baseLine), nil +} + +// setRLE will set the decoder til RLE mode. +func (s *fseDecoder) setRLE(symbol decSymbol) { + s.actualTableLog = 0 + s.maxBits = symbol.addBits() + s.dt[0] = symbol +} + +// buildDtable will build the decoding table. +func (s *fseDecoder) buildDtable() error { + tableSize := uint32(1 << s.actualTableLog) + highThreshold := tableSize - 1 + symbolNext := s.stateTable[:256] + + // Init, lay down lowprob symbols + { + for i, v := range s.norm[:s.symbolLen] { + if v == -1 { + s.dt[highThreshold].setAddBits(uint8(i)) + highThreshold-- + symbolNext[i] = 1 + } else { + symbolNext[i] = uint16(v) + } + } + } + // Spread symbols + { + tableMask := tableSize - 1 + step := tableStep(tableSize) + position := uint32(0) + for ss, v := range s.norm[:s.symbolLen] { + for i := 0; i < int(v); i++ { + s.dt[position].setAddBits(uint8(ss)) + position = (position + step) & tableMask + for position > highThreshold { + // lowprob area + position = (position + step) & tableMask + } + } + } + if position != 0 { + // position must reach all cells once, otherwise normalizedCounter is incorrect + return errors.New("corrupted input (position != 0)") + } + } + + // Build Decoding table + { + tableSize := uint16(1 << s.actualTableLog) + for u, v := range s.dt[:tableSize] { + symbol := v.addBits() + nextState := symbolNext[symbol] + symbolNext[symbol] = nextState + 1 + nBits := s.actualTableLog - byte(highBits(uint32(nextState))) + s.dt[u&maxTableMask].setNBits(nBits) + newState := (nextState << nBits) - tableSize + if newState > tableSize { + return fmt.Errorf("newState (%d) outside table size (%d)", newState, tableSize) + } + if newState == uint16(u) && nBits == 0 { + // Seems weird that this is possible with nbits > 0. + return fmt.Errorf("newState (%d) == oldState (%d) and no bits", newState, u) + } + s.dt[u&maxTableMask].setNewState(newState) + } + } + return nil +} + +// transform will transform the decoder table into a table usable for +// decoding without having to apply the transformation while decoding. +// The state will contain the base value and the number of bits to read. +func (s *fseDecoder) transform(t []baseOffset) error { + tableSize := uint16(1 << s.actualTableLog) + s.maxBits = 0 + for i, v := range s.dt[:tableSize] { + add := v.addBits() + if int(add) >= len(t) { + return fmt.Errorf("invalid decoding table entry %d, symbol %d >= max (%d)", i, v.addBits(), len(t)) + } + lu := t[add] + if lu.addBits > s.maxBits { + s.maxBits = lu.addBits + } + v.setExt(lu.addBits, lu.baseLine) + s.dt[i] = v + } + return nil +} + +type fseState struct { + dt []decSymbol + state decSymbol +} + +// Initialize and decodeAsync first state and symbol. +func (s *fseState) init(br *bitReader, tableLog uint8, dt []decSymbol) { + s.dt = dt + br.fill() + s.state = dt[br.getBits(tableLog)] +} + +// next returns the current symbol and sets the next state. +// At least tablelog bits must be available in the bit reader. +func (s *fseState) next(br *bitReader) { + lowBits := uint16(br.getBits(s.state.nbBits())) + s.state = s.dt[s.state.newState()+lowBits] +} + +// finished returns true if all bits have been read from the bitstream +// and the next state would require reading bits from the input. +func (s *fseState) finished(br *bitReader) bool { + return br.finished() && s.state.nbBits() > 0 +} + +// final returns the current state symbol without decoding the next. +func (s *fseState) final() (int, uint8) { + return s.state.baselineInt(), s.state.addBits() +} + +// final returns the current state symbol without decoding the next. +func (s decSymbol) final() (int, uint8) { + return s.baselineInt(), s.addBits() +} + +// nextFast returns the next symbol and sets the next state. +// This can only be used if no symbols are 0 bits. +// At least tablelog bits must be available in the bit reader. +func (s *fseState) nextFast(br *bitReader) (uint32, uint8) { + lowBits := uint16(br.getBitsFast(s.state.nbBits())) + s.state = s.dt[s.state.newState()+lowBits] + return s.state.baseline(), s.state.addBits() +} diff --git a/vendor/github.com/klauspost/compress/zstd/fse_encoder.go b/vendor/github.com/klauspost/compress/zstd/fse_encoder.go new file mode 100644 index 0000000..619836f --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/fse_encoder.go @@ -0,0 +1,726 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "errors" + "fmt" + "math" +) + +const ( + // For encoding we only support up to + maxEncTableLog = 8 + maxEncTablesize = 1 << maxTableLog + maxEncTableMask = (1 << maxTableLog) - 1 + minEncTablelog = 5 + maxEncSymbolValue = maxMatchLengthSymbol +) + +// Scratch provides temporary storage for compression and decompression. +type fseEncoder struct { + symbolLen uint16 // Length of active part of the symbol table. + actualTableLog uint8 // Selected tablelog. + ct cTable // Compression tables. + maxCount int // count of the most probable symbol + zeroBits bool // no bits has prob > 50%. + clearCount bool // clear count + useRLE bool // This encoder is for RLE + preDefined bool // This encoder is predefined. + reUsed bool // Set to know when the encoder has been reused. + rleVal uint8 // RLE Symbol + maxBits uint8 // Maximum output bits after transform. + + // TODO: Technically zstd should be fine with 64 bytes. + count [256]uint32 + norm [256]int16 +} + +// cTable contains tables used for compression. +type cTable struct { + tableSymbol []byte + stateTable []uint16 + symbolTT []symbolTransform +} + +// symbolTransform contains the state transform for a symbol. +type symbolTransform struct { + deltaNbBits uint32 + deltaFindState int16 + outBits uint8 +} + +// String prints values as a human readable string. +func (s symbolTransform) String() string { + return fmt.Sprintf("{deltabits: %08x, findstate:%d outbits:%d}", s.deltaNbBits, s.deltaFindState, s.outBits) +} + +// Histogram allows to populate the histogram and skip that step in the compression, +// It otherwise allows to inspect the histogram when compression is done. +// To indicate that you have populated the histogram call HistogramFinished +// with the value of the highest populated symbol, as well as the number of entries +// in the most populated entry. These are accepted at face value. +// The returned slice will always be length 256. +func (s *fseEncoder) Histogram() []uint32 { + return s.count[:] +} + +// HistogramFinished can be called to indicate that the histogram has been populated. +// maxSymbol is the index of the highest set symbol of the next data segment. +// maxCount is the number of entries in the most populated entry. +// These are accepted at face value. +func (s *fseEncoder) HistogramFinished(maxSymbol uint8, maxCount int) { + s.maxCount = maxCount + s.symbolLen = uint16(maxSymbol) + 1 + s.clearCount = maxCount != 0 +} + +// prepare will prepare and allocate scratch tables used for both compression and decompression. +func (s *fseEncoder) prepare() (*fseEncoder, error) { + if s == nil { + s = &fseEncoder{} + } + s.useRLE = false + if s.clearCount && s.maxCount == 0 { + for i := range s.count { + s.count[i] = 0 + } + s.clearCount = false + } + return s, nil +} + +// allocCtable will allocate tables needed for compression. +// If existing tables a re big enough, they are simply re-used. +func (s *fseEncoder) allocCtable() { + tableSize := 1 << s.actualTableLog + // get tableSymbol that is big enough. + if cap(s.ct.tableSymbol) < int(tableSize) { + s.ct.tableSymbol = make([]byte, tableSize) + } + s.ct.tableSymbol = s.ct.tableSymbol[:tableSize] + + ctSize := tableSize + if cap(s.ct.stateTable) < ctSize { + s.ct.stateTable = make([]uint16, ctSize) + } + s.ct.stateTable = s.ct.stateTable[:ctSize] + + if cap(s.ct.symbolTT) < 256 { + s.ct.symbolTT = make([]symbolTransform, 256) + } + s.ct.symbolTT = s.ct.symbolTT[:256] +} + +// buildCTable will populate the compression table so it is ready to be used. +func (s *fseEncoder) buildCTable() error { + tableSize := uint32(1 << s.actualTableLog) + highThreshold := tableSize - 1 + var cumul [256]int16 + + s.allocCtable() + tableSymbol := s.ct.tableSymbol[:tableSize] + // symbol start positions + { + cumul[0] = 0 + for ui, v := range s.norm[:s.symbolLen-1] { + u := byte(ui) // one less than reference + if v == -1 { + // Low proba symbol + cumul[u+1] = cumul[u] + 1 + tableSymbol[highThreshold] = u + highThreshold-- + } else { + cumul[u+1] = cumul[u] + v + } + } + // Encode last symbol separately to avoid overflowing u + u := int(s.symbolLen - 1) + v := s.norm[s.symbolLen-1] + if v == -1 { + // Low proba symbol + cumul[u+1] = cumul[u] + 1 + tableSymbol[highThreshold] = byte(u) + highThreshold-- + } else { + cumul[u+1] = cumul[u] + v + } + if uint32(cumul[s.symbolLen]) != tableSize { + return fmt.Errorf("internal error: expected cumul[s.symbolLen] (%d) == tableSize (%d)", cumul[s.symbolLen], tableSize) + } + cumul[s.symbolLen] = int16(tableSize) + 1 + } + // Spread symbols + s.zeroBits = false + { + step := tableStep(tableSize) + tableMask := tableSize - 1 + var position uint32 + // if any symbol > largeLimit, we may have 0 bits output. + largeLimit := int16(1 << (s.actualTableLog - 1)) + for ui, v := range s.norm[:s.symbolLen] { + symbol := byte(ui) + if v > largeLimit { + s.zeroBits = true + } + for nbOccurrences := int16(0); nbOccurrences < v; nbOccurrences++ { + tableSymbol[position] = symbol + position = (position + step) & tableMask + for position > highThreshold { + position = (position + step) & tableMask + } /* Low proba area */ + } + } + + // Check if we have gone through all positions + if position != 0 { + return errors.New("position!=0") + } + } + + // Build table + table := s.ct.stateTable + { + tsi := int(tableSize) + for u, v := range tableSymbol { + // TableU16 : sorted by symbol order; gives next state value + table[cumul[v]] = uint16(tsi + u) + cumul[v]++ + } + } + + // Build Symbol Transformation Table + { + total := int16(0) + symbolTT := s.ct.symbolTT[:s.symbolLen] + tableLog := s.actualTableLog + tl := (uint32(tableLog) << 16) - (1 << tableLog) + for i, v := range s.norm[:s.symbolLen] { + switch v { + case 0: + case -1, 1: + symbolTT[i].deltaNbBits = tl + symbolTT[i].deltaFindState = int16(total - 1) + total++ + default: + maxBitsOut := uint32(tableLog) - highBit(uint32(v-1)) + minStatePlus := uint32(v) << maxBitsOut + symbolTT[i].deltaNbBits = (maxBitsOut << 16) - minStatePlus + symbolTT[i].deltaFindState = int16(total - v) + total += v + } + } + if total != int16(tableSize) { + return fmt.Errorf("total mismatch %d (got) != %d (want)", total, tableSize) + } + } + return nil +} + +var rtbTable = [...]uint32{0, 473195, 504333, 520860, 550000, 700000, 750000, 830000} + +func (s *fseEncoder) setRLE(val byte) { + s.allocCtable() + s.actualTableLog = 0 + s.ct.stateTable = s.ct.stateTable[:1] + s.ct.symbolTT[val] = symbolTransform{ + deltaFindState: 0, + deltaNbBits: 0, + } + if debug { + println("setRLE: val", val, "symbolTT", s.ct.symbolTT[val]) + } + s.rleVal = val + s.useRLE = true +} + +// setBits will set output bits for the transform. +// if nil is provided, the number of bits is equal to the index. +func (s *fseEncoder) setBits(transform []byte) { + if s.reUsed || s.preDefined { + return + } + if s.useRLE { + if transform == nil { + s.ct.symbolTT[s.rleVal].outBits = s.rleVal + s.maxBits = s.rleVal + return + } + s.maxBits = transform[s.rleVal] + s.ct.symbolTT[s.rleVal].outBits = s.maxBits + return + } + if transform == nil { + for i := range s.ct.symbolTT[:s.symbolLen] { + s.ct.symbolTT[i].outBits = uint8(i) + } + s.maxBits = uint8(s.symbolLen - 1) + return + } + s.maxBits = 0 + for i, v := range transform[:s.symbolLen] { + s.ct.symbolTT[i].outBits = v + if v > s.maxBits { + // We could assume bits always going up, but we play safe. + s.maxBits = v + } + } +} + +// normalizeCount will normalize the count of the symbols so +// the total is equal to the table size. +// If successful, compression tables will also be made ready. +func (s *fseEncoder) normalizeCount(length int) error { + if s.reUsed { + return nil + } + s.optimalTableLog(length) + var ( + tableLog = s.actualTableLog + scale = 62 - uint64(tableLog) + step = (1 << 62) / uint64(length) + vStep = uint64(1) << (scale - 20) + stillToDistribute = int16(1 << tableLog) + largest int + largestP int16 + lowThreshold = (uint32)(length >> tableLog) + ) + if s.maxCount == length { + s.useRLE = true + return nil + } + s.useRLE = false + for i, cnt := range s.count[:s.symbolLen] { + // already handled + // if (count[s] == s.length) return 0; /* rle special case */ + + if cnt == 0 { + s.norm[i] = 0 + continue + } + if cnt <= lowThreshold { + s.norm[i] = -1 + stillToDistribute-- + } else { + proba := (int16)((uint64(cnt) * step) >> scale) + if proba < 8 { + restToBeat := vStep * uint64(rtbTable[proba]) + v := uint64(cnt)*step - (uint64(proba) << scale) + if v > restToBeat { + proba++ + } + } + if proba > largestP { + largestP = proba + largest = i + } + s.norm[i] = proba + stillToDistribute -= proba + } + } + + if -stillToDistribute >= (s.norm[largest] >> 1) { + // corner case, need another normalization method + err := s.normalizeCount2(length) + if err != nil { + return err + } + if debug { + err = s.validateNorm() + if err != nil { + return err + } + } + return s.buildCTable() + } + s.norm[largest] += stillToDistribute + if debug { + err := s.validateNorm() + if err != nil { + return err + } + } + return s.buildCTable() +} + +// Secondary normalization method. +// To be used when primary method fails. +func (s *fseEncoder) normalizeCount2(length int) error { + const notYetAssigned = -2 + var ( + distributed uint32 + total = uint32(length) + tableLog = s.actualTableLog + lowThreshold = uint32(total >> tableLog) + lowOne = uint32((total * 3) >> (tableLog + 1)) + ) + for i, cnt := range s.count[:s.symbolLen] { + if cnt == 0 { + s.norm[i] = 0 + continue + } + if cnt <= lowThreshold { + s.norm[i] = -1 + distributed++ + total -= cnt + continue + } + if cnt <= lowOne { + s.norm[i] = 1 + distributed++ + total -= cnt + continue + } + s.norm[i] = notYetAssigned + } + toDistribute := (1 << tableLog) - distributed + + if (total / toDistribute) > lowOne { + // risk of rounding to zero + lowOne = uint32((total * 3) / (toDistribute * 2)) + for i, cnt := range s.count[:s.symbolLen] { + if (s.norm[i] == notYetAssigned) && (cnt <= lowOne) { + s.norm[i] = 1 + distributed++ + total -= cnt + continue + } + } + toDistribute = (1 << tableLog) - distributed + } + if distributed == uint32(s.symbolLen)+1 { + // all values are pretty poor; + // probably incompressible data (should have already been detected); + // find max, then give all remaining points to max + var maxV int + var maxC uint32 + for i, cnt := range s.count[:s.symbolLen] { + if cnt > maxC { + maxV = i + maxC = cnt + } + } + s.norm[maxV] += int16(toDistribute) + return nil + } + + if total == 0 { + // all of the symbols were low enough for the lowOne or lowThreshold + for i := uint32(0); toDistribute > 0; i = (i + 1) % (uint32(s.symbolLen)) { + if s.norm[i] > 0 { + toDistribute-- + s.norm[i]++ + } + } + return nil + } + + var ( + vStepLog = 62 - uint64(tableLog) + mid = uint64((1 << (vStepLog - 1)) - 1) + rStep = (((1 << vStepLog) * uint64(toDistribute)) + mid) / uint64(total) // scale on remaining + tmpTotal = mid + ) + for i, cnt := range s.count[:s.symbolLen] { + if s.norm[i] == notYetAssigned { + var ( + end = tmpTotal + uint64(cnt)*rStep + sStart = uint32(tmpTotal >> vStepLog) + sEnd = uint32(end >> vStepLog) + weight = sEnd - sStart + ) + if weight < 1 { + return errors.New("weight < 1") + } + s.norm[i] = int16(weight) + tmpTotal = end + } + } + return nil +} + +// optimalTableLog calculates and sets the optimal tableLog in s.actualTableLog +func (s *fseEncoder) optimalTableLog(length int) { + tableLog := uint8(maxEncTableLog) + minBitsSrc := highBit(uint32(length)) + 1 + minBitsSymbols := highBit(uint32(s.symbolLen-1)) + 2 + minBits := uint8(minBitsSymbols) + if minBitsSrc < minBitsSymbols { + minBits = uint8(minBitsSrc) + } + + maxBitsSrc := uint8(highBit(uint32(length-1))) - 2 + if maxBitsSrc < tableLog { + // Accuracy can be reduced + tableLog = maxBitsSrc + } + if minBits > tableLog { + tableLog = minBits + } + // Need a minimum to safely represent all symbol values + if tableLog < minEncTablelog { + tableLog = minEncTablelog + } + if tableLog > maxEncTableLog { + tableLog = maxEncTableLog + } + s.actualTableLog = tableLog +} + +// validateNorm validates the normalized histogram table. +func (s *fseEncoder) validateNorm() (err error) { + var total int + for _, v := range s.norm[:s.symbolLen] { + if v >= 0 { + total += int(v) + } else { + total -= int(v) + } + } + defer func() { + if err == nil { + return + } + fmt.Printf("selected TableLog: %d, Symbol length: %d\n", s.actualTableLog, s.symbolLen) + for i, v := range s.norm[:s.symbolLen] { + fmt.Printf("%3d: %5d -> %4d \n", i, s.count[i], v) + } + }() + if total != (1 << s.actualTableLog) { + return fmt.Errorf("warning: Total == %d != %d", total, 1<> 3) + 3 + 2 + + // Write Table Size + bitStream = uint32(tableLog - minEncTablelog) + bitCount = uint(4) + remaining = int16(tableSize + 1) /* +1 for extra accuracy */ + threshold = int16(tableSize) + nbBits = uint(tableLog + 1) + outP = len(out) + ) + if cap(out) < outP+maxHeaderSize { + out = append(out, make([]byte, maxHeaderSize*3)...) + out = out[:len(out)-maxHeaderSize*3] + } + out = out[:outP+maxHeaderSize] + + // stops at 1 + for remaining > 1 { + if previous0 { + start := charnum + for s.norm[charnum] == 0 { + charnum++ + } + for charnum >= start+24 { + start += 24 + bitStream += uint32(0xFFFF) << bitCount + out[outP] = byte(bitStream) + out[outP+1] = byte(bitStream >> 8) + outP += 2 + bitStream >>= 16 + } + for charnum >= start+3 { + start += 3 + bitStream += 3 << bitCount + bitCount += 2 + } + bitStream += uint32(charnum-start) << bitCount + bitCount += 2 + if bitCount > 16 { + out[outP] = byte(bitStream) + out[outP+1] = byte(bitStream >> 8) + outP += 2 + bitStream >>= 16 + bitCount -= 16 + } + } + + count := s.norm[charnum] + charnum++ + max := (2*threshold - 1) - remaining + if count < 0 { + remaining += count + } else { + remaining -= count + } + count++ // +1 for extra accuracy + if count >= threshold { + count += max // [0..max[ [max..threshold[ (...) [threshold+max 2*threshold[ + } + bitStream += uint32(count) << bitCount + bitCount += nbBits + if count < max { + bitCount-- + } + + previous0 = count == 1 + if remaining < 1 { + return nil, errors.New("internal error: remaining < 1") + } + for remaining < threshold { + nbBits-- + threshold >>= 1 + } + + if bitCount > 16 { + out[outP] = byte(bitStream) + out[outP+1] = byte(bitStream >> 8) + outP += 2 + bitStream >>= 16 + bitCount -= 16 + } + } + + if outP+2 > len(out) { + return nil, fmt.Errorf("internal error: %d > %d, maxheader: %d, sl: %d, tl: %d, normcount: %v", outP+2, len(out), maxHeaderSize, s.symbolLen, int(tableLog), s.norm[:s.symbolLen]) + } + out[outP] = byte(bitStream) + out[outP+1] = byte(bitStream >> 8) + outP += int((bitCount + 7) / 8) + + if charnum > s.symbolLen { + return nil, errors.New("internal error: charnum > s.symbolLen") + } + return out[:outP], nil +} + +// Approximate symbol cost, as fractional value, using fixed-point format (accuracyLog fractional bits) +// note 1 : assume symbolValue is valid (<= maxSymbolValue) +// note 2 : if freq[symbolValue]==0, @return a fake cost of tableLog+1 bits * +func (s *fseEncoder) bitCost(symbolValue uint8, accuracyLog uint32) uint32 { + minNbBits := s.ct.symbolTT[symbolValue].deltaNbBits >> 16 + threshold := (minNbBits + 1) << 16 + if debug { + if !(s.actualTableLog < 16) { + panic("!s.actualTableLog < 16") + } + // ensure enough room for renormalization double shift + if !(uint8(accuracyLog) < 31-s.actualTableLog) { + panic("!uint8(accuracyLog) < 31-s.actualTableLog") + } + } + tableSize := uint32(1) << s.actualTableLog + deltaFromThreshold := threshold - (s.ct.symbolTT[symbolValue].deltaNbBits + tableSize) + // linear interpolation (very approximate) + normalizedDeltaFromThreshold := (deltaFromThreshold << accuracyLog) >> s.actualTableLog + bitMultiplier := uint32(1) << accuracyLog + if debug { + if s.ct.symbolTT[symbolValue].deltaNbBits+tableSize > threshold { + panic("s.ct.symbolTT[symbolValue].deltaNbBits+tableSize > threshold") + } + if normalizedDeltaFromThreshold > bitMultiplier { + panic("normalizedDeltaFromThreshold > bitMultiplier") + } + } + return (minNbBits+1)*bitMultiplier - normalizedDeltaFromThreshold +} + +// Returns the cost in bits of encoding the distribution in count using ctable. +// Histogram should only be up to the last non-zero symbol. +// Returns an -1 if ctable cannot represent all the symbols in count. +func (s *fseEncoder) approxSize(hist []uint32) uint32 { + if int(s.symbolLen) < len(hist) { + // More symbols than we have. + return math.MaxUint32 + } + if s.useRLE { + // We will never reuse RLE encoders. + return math.MaxUint32 + } + const kAccuracyLog = 8 + badCost := (uint32(s.actualTableLog) + 1) << kAccuracyLog + var cost uint32 + for i, v := range hist { + if v == 0 { + continue + } + if s.norm[i] == 0 { + return math.MaxUint32 + } + bitCost := s.bitCost(uint8(i), kAccuracyLog) + if bitCost > badCost { + return math.MaxUint32 + } + cost += v * bitCost + } + return cost >> kAccuracyLog +} + +// maxHeaderSize returns the maximum header size in bits. +// This is not exact size, but we want a penalty for new tables anyway. +func (s *fseEncoder) maxHeaderSize() uint32 { + if s.preDefined { + return 0 + } + if s.useRLE { + return 8 + } + return (((uint32(s.symbolLen) * uint32(s.actualTableLog)) >> 3) + 3) * 8 +} + +// cState contains the compression state of a stream. +type cState struct { + bw *bitWriter + stateTable []uint16 + state uint16 +} + +// init will initialize the compression state to the first symbol of the stream. +func (c *cState) init(bw *bitWriter, ct *cTable, first symbolTransform) { + c.bw = bw + c.stateTable = ct.stateTable + if len(c.stateTable) == 1 { + // RLE + c.stateTable[0] = uint16(0) + c.state = 0 + return + } + nbBitsOut := (first.deltaNbBits + (1 << 15)) >> 16 + im := int32((nbBitsOut << 16) - first.deltaNbBits) + lu := (im >> nbBitsOut) + int32(first.deltaFindState) + c.state = c.stateTable[lu] + return +} + +// encode the output symbol provided and write it to the bitstream. +func (c *cState) encode(symbolTT symbolTransform) { + nbBitsOut := (uint32(c.state) + symbolTT.deltaNbBits) >> 16 + dstState := int32(c.state>>(nbBitsOut&15)) + int32(symbolTT.deltaFindState) + c.bw.addBits16NC(c.state, uint8(nbBitsOut)) + c.state = c.stateTable[dstState] +} + +// flush will write the tablelog to the output and flush the remaining full bytes. +func (c *cState) flush(tableLog uint8) { + c.bw.flush32() + c.bw.addBits16NC(c.state, tableLog) +} diff --git a/vendor/github.com/klauspost/compress/zstd/fse_predefined.go b/vendor/github.com/klauspost/compress/zstd/fse_predefined.go new file mode 100644 index 0000000..6c17dc1 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/fse_predefined.go @@ -0,0 +1,158 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "fmt" + "math" + "sync" +) + +var ( + // fsePredef are the predefined fse tables as defined here: + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#default-distributions + // These values are already transformed. + fsePredef [3]fseDecoder + + // fsePredefEnc are the predefined encoder based on fse tables as defined here: + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#default-distributions + // These values are already transformed. + fsePredefEnc [3]fseEncoder + + // symbolTableX contain the transformations needed for each type as defined in + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#the-codes-for-literals-lengths-match-lengths-and-offsets + symbolTableX [3][]baseOffset + + // maxTableSymbol is the biggest supported symbol for each table type + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#the-codes-for-literals-lengths-match-lengths-and-offsets + maxTableSymbol = [3]uint8{tableLiteralLengths: maxLiteralLengthSymbol, tableOffsets: maxOffsetLengthSymbol, tableMatchLengths: maxMatchLengthSymbol} + + // bitTables is the bits table for each table. + bitTables = [3][]byte{tableLiteralLengths: llBitsTable[:], tableOffsets: nil, tableMatchLengths: mlBitsTable[:]} +) + +type tableIndex uint8 + +const ( + // indexes for fsePredef and symbolTableX + tableLiteralLengths tableIndex = 0 + tableOffsets tableIndex = 1 + tableMatchLengths tableIndex = 2 + + maxLiteralLengthSymbol = 35 + maxOffsetLengthSymbol = 30 + maxMatchLengthSymbol = 52 +) + +// baseOffset is used for calculating transformations. +type baseOffset struct { + baseLine uint32 + addBits uint8 +} + +// fillBase will precalculate base offsets with the given bit distributions. +func fillBase(dst []baseOffset, base uint32, bits ...uint8) { + if len(bits) != len(dst) { + panic(fmt.Sprintf("len(dst) (%d) != len(bits) (%d)", len(dst), len(bits))) + } + for i, bit := range bits { + if base > math.MaxInt32 { + panic(fmt.Sprintf("invalid decoding table, base overflows int32")) + } + + dst[i] = baseOffset{ + baseLine: base, + addBits: bit, + } + base += 1 << bit + } +} + +var predef sync.Once + +func initPredefined() { + predef.Do(func() { + // Literals length codes + tmp := make([]baseOffset, 36) + for i := range tmp[:16] { + tmp[i] = baseOffset{ + baseLine: uint32(i), + addBits: 0, + } + } + fillBase(tmp[16:], 16, 1, 1, 1, 1, 2, 2, 3, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) + symbolTableX[tableLiteralLengths] = tmp + + // Match length codes + tmp = make([]baseOffset, 53) + for i := range tmp[:32] { + tmp[i] = baseOffset{ + // The transformation adds the 3 length. + baseLine: uint32(i) + 3, + addBits: 0, + } + } + fillBase(tmp[32:], 35, 1, 1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) + symbolTableX[tableMatchLengths] = tmp + + // Offset codes + tmp = make([]baseOffset, maxOffsetBits+1) + tmp[1] = baseOffset{ + baseLine: 1, + addBits: 1, + } + fillBase(tmp[2:], 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) + symbolTableX[tableOffsets] = tmp + + // Fill predefined tables and transform them. + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#default-distributions + for i := range fsePredef[:] { + f := &fsePredef[i] + switch tableIndex(i) { + case tableLiteralLengths: + // https://github.com/facebook/zstd/blob/ededcfca57366461021c922720878c81a5854a0a/lib/decompress/zstd_decompress_block.c#L243 + f.actualTableLog = 6 + copy(f.norm[:], []int16{4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, + -1, -1, -1, -1}) + f.symbolLen = 36 + case tableOffsets: + // https://github.com/facebook/zstd/blob/ededcfca57366461021c922720878c81a5854a0a/lib/decompress/zstd_decompress_block.c#L281 + f.actualTableLog = 5 + copy(f.norm[:], []int16{ + 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1}) + f.symbolLen = 29 + case tableMatchLengths: + //https://github.com/facebook/zstd/blob/ededcfca57366461021c922720878c81a5854a0a/lib/decompress/zstd_decompress_block.c#L304 + f.actualTableLog = 6 + copy(f.norm[:], []int16{ + 1, 4, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, + -1, -1, -1, -1, -1}) + f.symbolLen = 53 + } + if err := f.buildDtable(); err != nil { + panic(fmt.Errorf("building table %v: %v", tableIndex(i), err)) + } + if err := f.transform(symbolTableX[i]); err != nil { + panic(fmt.Errorf("building table %v: %v", tableIndex(i), err)) + } + f.preDefined = true + + // Create encoder as well + enc := &fsePredefEnc[i] + copy(enc.norm[:], f.norm[:]) + enc.symbolLen = f.symbolLen + enc.actualTableLog = f.actualTableLog + if err := enc.buildCTable(); err != nil { + panic(fmt.Errorf("building encoding table %v: %v", tableIndex(i), err)) + } + enc.setBits(bitTables[i]) + enc.preDefined = true + } + }) +} diff --git a/vendor/github.com/klauspost/compress/zstd/hash.go b/vendor/github.com/klauspost/compress/zstd/hash.go new file mode 100644 index 0000000..4a75206 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/hash.go @@ -0,0 +1,77 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +const ( + prime3bytes = 506832829 + prime4bytes = 2654435761 + prime5bytes = 889523592379 + prime6bytes = 227718039650203 + prime7bytes = 58295818150454627 + prime8bytes = 0xcf1bbcdcb7a56463 +) + +// hashLen returns a hash of the lowest l bytes of u for a size size of h bytes. +// l must be >=4 and <=8. Any other value will return hash for 4 bytes. +// h should always be <32. +// Preferably h and l should be a constant. +// FIXME: This does NOT get resolved, if 'mls' is constant, +// so this cannot be used. +func hashLen(u uint64, hashLog, mls uint8) uint32 { + switch mls { + case 5: + return hash5(u, hashLog) + case 6: + return hash6(u, hashLog) + case 7: + return hash7(u, hashLog) + case 8: + return hash8(u, hashLog) + default: + return hash4x64(u, hashLog) + } +} + +// hash3 returns the hash of the lower 3 bytes of u to fit in a hash table with h bits. +// Preferably h should be a constant and should always be <32. +func hash3(u uint32, h uint8) uint32 { + return ((u << (32 - 24)) * prime3bytes) >> ((32 - h) & 31) +} + +// hash4 returns the hash of u to fit in a hash table with h bits. +// Preferably h should be a constant and should always be <32. +func hash4(u uint32, h uint8) uint32 { + return (u * prime4bytes) >> ((32 - h) & 31) +} + +// hash4x64 returns the hash of the lowest 4 bytes of u to fit in a hash table with h bits. +// Preferably h should be a constant and should always be <32. +func hash4x64(u uint64, h uint8) uint32 { + return (uint32(u) * prime4bytes) >> ((32 - h) & 31) +} + +// hash5 returns the hash of the lowest 5 bytes of u to fit in a hash table with h bits. +// Preferably h should be a constant and should always be <64. +func hash5(u uint64, h uint8) uint32 { + return uint32(((u << (64 - 40)) * prime5bytes) >> ((64 - h) & 63)) +} + +// hash6 returns the hash of the lowest 6 bytes of u to fit in a hash table with h bits. +// Preferably h should be a constant and should always be <64. +func hash6(u uint64, h uint8) uint32 { + return uint32(((u << (64 - 48)) * prime6bytes) >> ((64 - h) & 63)) +} + +// hash7 returns the hash of the lowest 7 bytes of u to fit in a hash table with h bits. +// Preferably h should be a constant and should always be <64. +func hash7(u uint64, h uint8) uint32 { + return uint32(((u << (64 - 56)) * prime7bytes) >> ((64 - h) & 63)) +} + +// hash8 returns the hash of u to fit in a hash table with h bits. +// Preferably h should be a constant and should always be <64. +func hash8(u uint64, h uint8) uint32 { + return uint32((u * prime8bytes) >> ((64 - h) & 63)) +} diff --git a/vendor/github.com/klauspost/compress/zstd/history.go b/vendor/github.com/klauspost/compress/zstd/history.go new file mode 100644 index 0000000..e8c419b --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/history.go @@ -0,0 +1,73 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "github.com/klauspost/compress/huff0" +) + +// history contains the information transferred between blocks. +type history struct { + b []byte + huffTree *huff0.Scratch + recentOffsets [3]int + decoders sequenceDecs + windowSize int + maxSize int + error bool +} + +// reset will reset the history to initial state of a frame. +// The history must already have been initialized to the desired size. +func (h *history) reset() { + h.b = h.b[:0] + h.error = false + h.recentOffsets = [3]int{1, 4, 8} + if f := h.decoders.litLengths.fse; f != nil && !f.preDefined { + fseDecoderPool.Put(f) + } + if f := h.decoders.offsets.fse; f != nil && !f.preDefined { + fseDecoderPool.Put(f) + } + if f := h.decoders.matchLengths.fse; f != nil && !f.preDefined { + fseDecoderPool.Put(f) + } + h.decoders = sequenceDecs{} + if h.huffTree != nil { + huffDecoderPool.Put(h.huffTree) + } + h.huffTree = nil + //printf("history created: %+v (l: %d, c: %d)", *h, len(h.b), cap(h.b)) +} + +// append bytes to history. +// This function will make sure there is space for it, +// if the buffer has been allocated with enough extra space. +func (h *history) append(b []byte) { + if len(b) >= h.windowSize { + // Discard all history by simply overwriting + h.b = h.b[:h.windowSize] + copy(h.b, b[len(b)-h.windowSize:]) + return + } + + // If there is space, append it. + if len(b) < cap(h.b)-len(h.b) { + h.b = append(h.b, b...) + return + } + + // Move data down so we only have window size left. + // We know we have less than window size in b at this point. + discard := len(b) + len(h.b) - h.windowSize + copy(h.b, h.b[discard:]) + h.b = h.b[:h.windowSize] + copy(h.b[h.windowSize-len(b):], b) +} + +// append bytes to history without ever discarding anything. +func (h *history) appendKeep(b []byte) { + h.b = append(h.b, b...) +} diff --git a/vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt new file mode 100644 index 0000000..24b5306 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright (c) 2016 Caleb Spare + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md new file mode 100644 index 0000000..69aa3bb --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md @@ -0,0 +1,58 @@ +# xxhash + +VENDORED: Go to [github.com/cespare/xxhash](https://github.com/cespare/xxhash) for original package. + + +[![GoDoc](https://godoc.org/github.com/cespare/xxhash?status.svg)](https://godoc.org/github.com/cespare/xxhash) +[![Build Status](https://travis-ci.org/cespare/xxhash.svg?branch=master)](https://travis-ci.org/cespare/xxhash) + +xxhash is a Go implementation of the 64-bit +[xxHash](http://cyan4973.github.io/xxHash/) algorithm, XXH64. This is a +high-quality hashing algorithm that is much faster than anything in the Go +standard library. + +This package provides a straightforward API: + +``` +func Sum64(b []byte) uint64 +func Sum64String(s string) uint64 +type Digest struct{ ... } + func New() *Digest +``` + +The `Digest` type implements hash.Hash64. Its key methods are: + +``` +func (*Digest) Write([]byte) (int, error) +func (*Digest) WriteString(string) (int, error) +func (*Digest) Sum64() uint64 +``` + +This implementation provides a fast pure-Go implementation and an even faster +assembly implementation for amd64. + +## Benchmarks + +Here are some quick benchmarks comparing the pure-Go and assembly +implementations of Sum64. + +| input size | purego | asm | +| --- | --- | --- | +| 5 B | 979.66 MB/s | 1291.17 MB/s | +| 100 B | 7475.26 MB/s | 7973.40 MB/s | +| 4 KB | 17573.46 MB/s | 17602.65 MB/s | +| 10 MB | 17131.46 MB/s | 17142.16 MB/s | + +These numbers were generated on Ubuntu 18.04 with an Intel i7-8700K CPU using +the following commands under Go 1.11.2: + +``` +$ go test -tags purego -benchtime 10s -bench '/xxhash,direct,bytes' +$ go test -benchtime 10s -bench '/xxhash,direct,bytes' +``` + +## Projects using this package + +- [InfluxDB](https://github.com/influxdata/influxdb) +- [Prometheus](https://github.com/prometheus/prometheus) +- [FreeCache](https://github.com/coocood/freecache) diff --git a/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go new file mode 100644 index 0000000..426b9ca --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go @@ -0,0 +1,238 @@ +// Package xxhash implements the 64-bit variant of xxHash (XXH64) as described +// at http://cyan4973.github.io/xxHash/. +// THIS IS VENDORED: Go to github.com/cespare/xxhash for original package. + +package xxhash + +import ( + "encoding/binary" + "errors" + "math/bits" +) + +const ( + prime1 uint64 = 11400714785074694791 + prime2 uint64 = 14029467366897019727 + prime3 uint64 = 1609587929392839161 + prime4 uint64 = 9650029242287828579 + prime5 uint64 = 2870177450012600261 +) + +// NOTE(caleb): I'm using both consts and vars of the primes. Using consts where +// possible in the Go code is worth a small (but measurable) performance boost +// by avoiding some MOVQs. Vars are needed for the asm and also are useful for +// convenience in the Go code in a few places where we need to intentionally +// avoid constant arithmetic (e.g., v1 := prime1 + prime2 fails because the +// result overflows a uint64). +var ( + prime1v = prime1 + prime2v = prime2 + prime3v = prime3 + prime4v = prime4 + prime5v = prime5 +) + +// Digest implements hash.Hash64. +type Digest struct { + v1 uint64 + v2 uint64 + v3 uint64 + v4 uint64 + total uint64 + mem [32]byte + n int // how much of mem is used +} + +// New creates a new Digest that computes the 64-bit xxHash algorithm. +func New() *Digest { + var d Digest + d.Reset() + return &d +} + +// Reset clears the Digest's state so that it can be reused. +func (d *Digest) Reset() { + d.v1 = prime1v + prime2 + d.v2 = prime2 + d.v3 = 0 + d.v4 = -prime1v + d.total = 0 + d.n = 0 +} + +// Size always returns 8 bytes. +func (d *Digest) Size() int { return 8 } + +// BlockSize always returns 32 bytes. +func (d *Digest) BlockSize() int { return 32 } + +// Write adds more data to d. It always returns len(b), nil. +func (d *Digest) Write(b []byte) (n int, err error) { + n = len(b) + d.total += uint64(n) + + if d.n+n < 32 { + // This new data doesn't even fill the current block. + copy(d.mem[d.n:], b) + d.n += n + return + } + + if d.n > 0 { + // Finish off the partial block. + copy(d.mem[d.n:], b) + d.v1 = round(d.v1, u64(d.mem[0:8])) + d.v2 = round(d.v2, u64(d.mem[8:16])) + d.v3 = round(d.v3, u64(d.mem[16:24])) + d.v4 = round(d.v4, u64(d.mem[24:32])) + b = b[32-d.n:] + d.n = 0 + } + + if len(b) >= 32 { + // One or more full blocks left. + nw := writeBlocks(d, b) + b = b[nw:] + } + + // Store any remaining partial block. + copy(d.mem[:], b) + d.n = len(b) + + return +} + +// Sum appends the current hash to b and returns the resulting slice. +func (d *Digest) Sum(b []byte) []byte { + s := d.Sum64() + return append( + b, + byte(s>>56), + byte(s>>48), + byte(s>>40), + byte(s>>32), + byte(s>>24), + byte(s>>16), + byte(s>>8), + byte(s), + ) +} + +// Sum64 returns the current hash. +func (d *Digest) Sum64() uint64 { + var h uint64 + + if d.total >= 32 { + v1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4 + h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) + h = mergeRound(h, v1) + h = mergeRound(h, v2) + h = mergeRound(h, v3) + h = mergeRound(h, v4) + } else { + h = d.v3 + prime5 + } + + h += d.total + + i, end := 0, d.n + for ; i+8 <= end; i += 8 { + k1 := round(0, u64(d.mem[i:i+8])) + h ^= k1 + h = rol27(h)*prime1 + prime4 + } + if i+4 <= end { + h ^= uint64(u32(d.mem[i:i+4])) * prime1 + h = rol23(h)*prime2 + prime3 + i += 4 + } + for i < end { + h ^= uint64(d.mem[i]) * prime5 + h = rol11(h) * prime1 + i++ + } + + h ^= h >> 33 + h *= prime2 + h ^= h >> 29 + h *= prime3 + h ^= h >> 32 + + return h +} + +const ( + magic = "xxh\x06" + marshaledSize = len(magic) + 8*5 + 32 +) + +// MarshalBinary implements the encoding.BinaryMarshaler interface. +func (d *Digest) MarshalBinary() ([]byte, error) { + b := make([]byte, 0, marshaledSize) + b = append(b, magic...) + b = appendUint64(b, d.v1) + b = appendUint64(b, d.v2) + b = appendUint64(b, d.v3) + b = appendUint64(b, d.v4) + b = appendUint64(b, d.total) + b = append(b, d.mem[:d.n]...) + b = b[:len(b)+len(d.mem)-d.n] + return b, nil +} + +// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface. +func (d *Digest) UnmarshalBinary(b []byte) error { + if len(b) < len(magic) || string(b[:len(magic)]) != magic { + return errors.New("xxhash: invalid hash state identifier") + } + if len(b) != marshaledSize { + return errors.New("xxhash: invalid hash state size") + } + b = b[len(magic):] + b, d.v1 = consumeUint64(b) + b, d.v2 = consumeUint64(b) + b, d.v3 = consumeUint64(b) + b, d.v4 = consumeUint64(b) + b, d.total = consumeUint64(b) + copy(d.mem[:], b) + b = b[len(d.mem):] + d.n = int(d.total % uint64(len(d.mem))) + return nil +} + +func appendUint64(b []byte, x uint64) []byte { + var a [8]byte + binary.LittleEndian.PutUint64(a[:], x) + return append(b, a[:]...) +} + +func consumeUint64(b []byte) ([]byte, uint64) { + x := u64(b) + return b[8:], x +} + +func u64(b []byte) uint64 { return binary.LittleEndian.Uint64(b) } +func u32(b []byte) uint32 { return binary.LittleEndian.Uint32(b) } + +func round(acc, input uint64) uint64 { + acc += input * prime2 + acc = rol31(acc) + acc *= prime1 + return acc +} + +func mergeRound(acc, val uint64) uint64 { + val = round(0, val) + acc ^= val + acc = acc*prime1 + prime4 + return acc +} + +func rol1(x uint64) uint64 { return bits.RotateLeft64(x, 1) } +func rol7(x uint64) uint64 { return bits.RotateLeft64(x, 7) } +func rol11(x uint64) uint64 { return bits.RotateLeft64(x, 11) } +func rol12(x uint64) uint64 { return bits.RotateLeft64(x, 12) } +func rol18(x uint64) uint64 { return bits.RotateLeft64(x, 18) } +func rol23(x uint64) uint64 { return bits.RotateLeft64(x, 23) } +func rol27(x uint64) uint64 { return bits.RotateLeft64(x, 27) } +func rol31(x uint64) uint64 { return bits.RotateLeft64(x, 31) } diff --git a/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.go b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.go new file mode 100644 index 0000000..35318d7 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.go @@ -0,0 +1,13 @@ +// +build !appengine +// +build gc +// +build !purego + +package xxhash + +// Sum64 computes the 64-bit xxHash digest of b. +// +//go:noescape +func Sum64(b []byte) uint64 + +//go:noescape +func writeBlocks(*Digest, []byte) int diff --git a/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s new file mode 100644 index 0000000..d580e32 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s @@ -0,0 +1,215 @@ +// +build !appengine +// +build gc +// +build !purego + +#include "textflag.h" + +// Register allocation: +// AX h +// CX pointer to advance through b +// DX n +// BX loop end +// R8 v1, k1 +// R9 v2 +// R10 v3 +// R11 v4 +// R12 tmp +// R13 prime1v +// R14 prime2v +// R15 prime4v + +// round reads from and advances the buffer pointer in CX. +// It assumes that R13 has prime1v and R14 has prime2v. +#define round(r) \ + MOVQ (CX), R12 \ + ADDQ $8, CX \ + IMULQ R14, R12 \ + ADDQ R12, r \ + ROLQ $31, r \ + IMULQ R13, r + +// mergeRound applies a merge round on the two registers acc and val. +// It assumes that R13 has prime1v, R14 has prime2v, and R15 has prime4v. +#define mergeRound(acc, val) \ + IMULQ R14, val \ + ROLQ $31, val \ + IMULQ R13, val \ + XORQ val, acc \ + IMULQ R13, acc \ + ADDQ R15, acc + +// func Sum64(b []byte) uint64 +TEXT ·Sum64(SB), NOSPLIT, $0-32 + // Load fixed primes. + MOVQ ·prime1v(SB), R13 + MOVQ ·prime2v(SB), R14 + MOVQ ·prime4v(SB), R15 + + // Load slice. + MOVQ b_base+0(FP), CX + MOVQ b_len+8(FP), DX + LEAQ (CX)(DX*1), BX + + // The first loop limit will be len(b)-32. + SUBQ $32, BX + + // Check whether we have at least one block. + CMPQ DX, $32 + JLT noBlocks + + // Set up initial state (v1, v2, v3, v4). + MOVQ R13, R8 + ADDQ R14, R8 + MOVQ R14, R9 + XORQ R10, R10 + XORQ R11, R11 + SUBQ R13, R11 + + // Loop until CX > BX. +blockLoop: + round(R8) + round(R9) + round(R10) + round(R11) + + CMPQ CX, BX + JLE blockLoop + + MOVQ R8, AX + ROLQ $1, AX + MOVQ R9, R12 + ROLQ $7, R12 + ADDQ R12, AX + MOVQ R10, R12 + ROLQ $12, R12 + ADDQ R12, AX + MOVQ R11, R12 + ROLQ $18, R12 + ADDQ R12, AX + + mergeRound(AX, R8) + mergeRound(AX, R9) + mergeRound(AX, R10) + mergeRound(AX, R11) + + JMP afterBlocks + +noBlocks: + MOVQ ·prime5v(SB), AX + +afterBlocks: + ADDQ DX, AX + + // Right now BX has len(b)-32, and we want to loop until CX > len(b)-8. + ADDQ $24, BX + + CMPQ CX, BX + JG fourByte + +wordLoop: + // Calculate k1. + MOVQ (CX), R8 + ADDQ $8, CX + IMULQ R14, R8 + ROLQ $31, R8 + IMULQ R13, R8 + + XORQ R8, AX + ROLQ $27, AX + IMULQ R13, AX + ADDQ R15, AX + + CMPQ CX, BX + JLE wordLoop + +fourByte: + ADDQ $4, BX + CMPQ CX, BX + JG singles + + MOVL (CX), R8 + ADDQ $4, CX + IMULQ R13, R8 + XORQ R8, AX + + ROLQ $23, AX + IMULQ R14, AX + ADDQ ·prime3v(SB), AX + +singles: + ADDQ $4, BX + CMPQ CX, BX + JGE finalize + +singlesLoop: + MOVBQZX (CX), R12 + ADDQ $1, CX + IMULQ ·prime5v(SB), R12 + XORQ R12, AX + + ROLQ $11, AX + IMULQ R13, AX + + CMPQ CX, BX + JL singlesLoop + +finalize: + MOVQ AX, R12 + SHRQ $33, R12 + XORQ R12, AX + IMULQ R14, AX + MOVQ AX, R12 + SHRQ $29, R12 + XORQ R12, AX + IMULQ ·prime3v(SB), AX + MOVQ AX, R12 + SHRQ $32, R12 + XORQ R12, AX + + MOVQ AX, ret+24(FP) + RET + +// writeBlocks uses the same registers as above except that it uses AX to store +// the d pointer. + +// func writeBlocks(d *Digest, b []byte) int +TEXT ·writeBlocks(SB), NOSPLIT, $0-40 + // Load fixed primes needed for round. + MOVQ ·prime1v(SB), R13 + MOVQ ·prime2v(SB), R14 + + // Load slice. + MOVQ b_base+8(FP), CX + MOVQ b_len+16(FP), DX + LEAQ (CX)(DX*1), BX + SUBQ $32, BX + + // Load vN from d. + MOVQ d+0(FP), AX + MOVQ 0(AX), R8 // v1 + MOVQ 8(AX), R9 // v2 + MOVQ 16(AX), R10 // v3 + MOVQ 24(AX), R11 // v4 + + // We don't need to check the loop condition here; this function is + // always called with at least one block of data to process. +blockLoop: + round(R8) + round(R9) + round(R10) + round(R11) + + CMPQ CX, BX + JLE blockLoop + + // Copy vN back to d. + MOVQ R8, 0(AX) + MOVQ R9, 8(AX) + MOVQ R10, 16(AX) + MOVQ R11, 24(AX) + + // The number of bytes written is CX minus the old base pointer. + SUBQ b_base+8(FP), CX + MOVQ CX, ret+32(FP) + + RET diff --git a/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go new file mode 100644 index 0000000..4a5a821 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go @@ -0,0 +1,76 @@ +// +build !amd64 appengine !gc purego + +package xxhash + +// Sum64 computes the 64-bit xxHash digest of b. +func Sum64(b []byte) uint64 { + // A simpler version would be + // d := New() + // d.Write(b) + // return d.Sum64() + // but this is faster, particularly for small inputs. + + n := len(b) + var h uint64 + + if n >= 32 { + v1 := prime1v + prime2 + v2 := prime2 + v3 := uint64(0) + v4 := -prime1v + for len(b) >= 32 { + v1 = round(v1, u64(b[0:8:len(b)])) + v2 = round(v2, u64(b[8:16:len(b)])) + v3 = round(v3, u64(b[16:24:len(b)])) + v4 = round(v4, u64(b[24:32:len(b)])) + b = b[32:len(b):len(b)] + } + h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) + h = mergeRound(h, v1) + h = mergeRound(h, v2) + h = mergeRound(h, v3) + h = mergeRound(h, v4) + } else { + h = prime5 + } + + h += uint64(n) + + i, end := 0, len(b) + for ; i+8 <= end; i += 8 { + k1 := round(0, u64(b[i:i+8:len(b)])) + h ^= k1 + h = rol27(h)*prime1 + prime4 + } + if i+4 <= end { + h ^= uint64(u32(b[i:i+4:len(b)])) * prime1 + h = rol23(h)*prime2 + prime3 + i += 4 + } + for ; i < end; i++ { + h ^= uint64(b[i]) * prime5 + h = rol11(h) * prime1 + } + + h ^= h >> 33 + h *= prime2 + h ^= h >> 29 + h *= prime3 + h ^= h >> 32 + + return h +} + +func writeBlocks(d *Digest, b []byte) int { + v1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4 + n := len(b) + for len(b) >= 32 { + v1 = round(v1, u64(b[0:8:len(b)])) + v2 = round(v2, u64(b[8:16:len(b)])) + v3 = round(v3, u64(b[16:24:len(b)])) + v4 = round(v4, u64(b[24:32:len(b)])) + b = b[32:len(b):len(b)] + } + d.v1, d.v2, d.v3, d.v4 = v1, v2, v3, v4 + return n - len(b) +} diff --git a/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go new file mode 100644 index 0000000..6f3b0cb --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go @@ -0,0 +1,11 @@ +package xxhash + +// Sum64String computes the 64-bit xxHash digest of s. +func Sum64String(s string) uint64 { + return Sum64([]byte(s)) +} + +// WriteString adds more data to d. It always returns len(s), nil. +func (d *Digest) WriteString(s string) (n int, err error) { + return d.Write([]byte(s)) +} diff --git a/vendor/github.com/klauspost/compress/zstd/seqdec.go b/vendor/github.com/klauspost/compress/zstd/seqdec.go new file mode 100644 index 0000000..15a45f7 --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/seqdec.go @@ -0,0 +1,402 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "errors" + "fmt" + "io" +) + +type seq struct { + litLen uint32 + matchLen uint32 + offset uint32 + + // Codes are stored here for the encoder + // so they only have to be looked up once. + llCode, mlCode, ofCode uint8 +} + +func (s seq) String() string { + if s.offset <= 3 { + if s.offset == 0 { + return fmt.Sprint("litLen:", s.litLen, ", matchLen:", s.matchLen+zstdMinMatch, ", offset: INVALID (0)") + } + return fmt.Sprint("litLen:", s.litLen, ", matchLen:", s.matchLen+zstdMinMatch, ", offset:", s.offset, " (repeat)") + } + return fmt.Sprint("litLen:", s.litLen, ", matchLen:", s.matchLen+zstdMinMatch, ", offset:", s.offset-3, " (new)") +} + +type seqCompMode uint8 + +const ( + compModePredefined seqCompMode = iota + compModeRLE + compModeFSE + compModeRepeat +) + +type sequenceDec struct { + // decoder keeps track of the current state and updates it from the bitstream. + fse *fseDecoder + state fseState + repeat bool +} + +// init the state of the decoder with input from stream. +func (s *sequenceDec) init(br *bitReader) error { + if s.fse == nil { + return errors.New("sequence decoder not defined") + } + s.state.init(br, s.fse.actualTableLog, s.fse.dt[:1<= 0; i-- { + if br.overread() { + printf("reading sequence %d, exceeded available data\n", seqs-i) + return io.ErrUnexpectedEOF + } + var litLen, matchOff, matchLen int + if br.off > 4+((maxOffsetBits+16+16)>>3) { + litLen, matchOff, matchLen = s.nextFast(br, llState, mlState, ofState) + br.fillFast() + } else { + litLen, matchOff, matchLen = s.next(br, llState, mlState, ofState) + br.fill() + } + + if debugSequences { + println("Seq", seqs-i-1, "Litlen:", litLen, "matchOff:", matchOff, "(abs) matchLen:", matchLen) + } + + if litLen > len(s.literals) { + return fmt.Errorf("unexpected literal count, want %d bytes, but only %d is available", litLen, len(s.literals)) + } + size := litLen + matchLen + len(s.out) + if size-startSize > maxBlockSize { + return fmt.Errorf("output (%d) bigger than max block size", size) + } + if size > cap(s.out) { + // Not enough size, will be extremely rarely triggered, + // but could be if destination slice is too small for sync operations. + // We add maxBlockSize to the capacity. + s.out = append(s.out, make([]byte, maxBlockSize)...) + s.out = s.out[:len(s.out)-maxBlockSize] + } + if matchLen > maxMatchLen { + return fmt.Errorf("match len (%d) bigger than max allowed length", matchLen) + } + if matchOff > len(s.out)+len(hist)+litLen { + return fmt.Errorf("match offset (%d) bigger than current history (%d)", matchOff, len(s.out)+len(hist)+litLen) + } + if matchOff == 0 && matchLen > 0 { + return fmt.Errorf("zero matchoff and matchlen > 0") + } + + s.out = append(s.out, s.literals[:litLen]...) + s.literals = s.literals[litLen:] + out := s.out + + // Copy from history. + // TODO: Blocks without history could be made to ignore this completely. + if v := matchOff - len(s.out); v > 0 { + // v is the start position in history from end. + start := len(s.hist) - v + if matchLen > v { + // Some goes into current block. + // Copy remainder of history + out = append(out, s.hist[start:]...) + matchOff -= v + matchLen -= v + } else { + out = append(out, s.hist[start:start+matchLen]...) + matchLen = 0 + } + } + // We must be in current buffer now + if matchLen > 0 { + start := len(s.out) - matchOff + if matchLen <= len(s.out)-start { + // No overlap + out = append(out, s.out[start:start+matchLen]...) + } else { + // Overlapping copy + // Extend destination slice and copy one byte at the time. + out = out[:len(out)+matchLen] + src := out[start : start+matchLen] + // Destination is the space we just added. + dst := out[len(out)-matchLen:] + dst = dst[:len(src)] + for i := range src { + dst[i] = src[i] + } + } + } + s.out = out + if i == 0 { + // This is the last sequence, so we shouldn't update state. + break + } + + // Manually inlined, ~ 5-20% faster + // Update all 3 states at once. Approx 20% faster. + nBits := llState.nbBits() + mlState.nbBits() + ofState.nbBits() + if nBits == 0 { + llState = llTable[llState.newState()&maxTableMask] + mlState = mlTable[mlState.newState()&maxTableMask] + ofState = ofTable[ofState.newState()&maxTableMask] + } else { + bits := br.getBitsFast(nBits) + lowBits := uint16(bits >> ((ofState.nbBits() + mlState.nbBits()) & 31)) + llState = llTable[(llState.newState()+lowBits)&maxTableMask] + + lowBits = uint16(bits >> (ofState.nbBits() & 31)) + lowBits &= bitMask[mlState.nbBits()&15] + mlState = mlTable[(mlState.newState()+lowBits)&maxTableMask] + + lowBits = uint16(bits) & bitMask[ofState.nbBits()&15] + ofState = ofTable[(ofState.newState()+lowBits)&maxTableMask] + } + } + + // Add final literals + s.out = append(s.out, s.literals...) + return nil +} + +// update states, at least 27 bits must be available. +func (s *sequenceDecs) update(br *bitReader) { + // Max 8 bits + s.litLengths.state.next(br) + // Max 9 bits + s.matchLengths.state.next(br) + // Max 8 bits + s.offsets.state.next(br) +} + +var bitMask [16]uint16 + +func init() { + for i := range bitMask[:] { + bitMask[i] = uint16((1 << uint(i)) - 1) + } +} + +// update states, at least 27 bits must be available. +func (s *sequenceDecs) updateAlt(br *bitReader) { + // Update all 3 states at once. Approx 20% faster. + a, b, c := s.litLengths.state.state, s.matchLengths.state.state, s.offsets.state.state + + nBits := a.nbBits() + b.nbBits() + c.nbBits() + if nBits == 0 { + s.litLengths.state.state = s.litLengths.state.dt[a.newState()] + s.matchLengths.state.state = s.matchLengths.state.dt[b.newState()] + s.offsets.state.state = s.offsets.state.dt[c.newState()] + return + } + bits := br.getBitsFast(nBits) + lowBits := uint16(bits >> ((c.nbBits() + b.nbBits()) & 31)) + s.litLengths.state.state = s.litLengths.state.dt[a.newState()+lowBits] + + lowBits = uint16(bits >> (c.nbBits() & 31)) + lowBits &= bitMask[b.nbBits()&15] + s.matchLengths.state.state = s.matchLengths.state.dt[b.newState()+lowBits] + + lowBits = uint16(bits) & bitMask[c.nbBits()&15] + s.offsets.state.state = s.offsets.state.dt[c.newState()+lowBits] +} + +// nextFast will return new states when there are at least 4 unused bytes left on the stream when done. +func (s *sequenceDecs) nextFast(br *bitReader, llState, mlState, ofState decSymbol) (ll, mo, ml int) { + // Final will not read from stream. + ll, llB := llState.final() + ml, mlB := mlState.final() + mo, moB := ofState.final() + + // extra bits are stored in reverse order. + br.fillFast() + mo += br.getBits(moB) + if s.maxBits > 32 { + br.fillFast() + } + ml += br.getBits(mlB) + ll += br.getBits(llB) + + if moB > 1 { + s.prevOffset[2] = s.prevOffset[1] + s.prevOffset[1] = s.prevOffset[0] + s.prevOffset[0] = mo + return + } + // mo = s.adjustOffset(mo, ll, moB) + // Inlined for rather big speedup + if ll == 0 { + // There is an exception though, when current sequence's literals_length = 0. + // In this case, repeated offsets are shifted by one, so an offset_value of 1 means Repeated_Offset2, + // an offset_value of 2 means Repeated_Offset3, and an offset_value of 3 means Repeated_Offset1 - 1_byte. + mo++ + } + + if mo == 0 { + mo = s.prevOffset[0] + return + } + var temp int + if mo == 3 { + temp = s.prevOffset[0] - 1 + } else { + temp = s.prevOffset[mo] + } + + if temp == 0 { + // 0 is not valid; input is corrupted; force offset to 1 + println("temp was 0") + temp = 1 + } + + if mo != 1 { + s.prevOffset[2] = s.prevOffset[1] + } + s.prevOffset[1] = s.prevOffset[0] + s.prevOffset[0] = temp + mo = temp + return +} + +func (s *sequenceDecs) next(br *bitReader, llState, mlState, ofState decSymbol) (ll, mo, ml int) { + // Final will not read from stream. + ll, llB := llState.final() + ml, mlB := mlState.final() + mo, moB := ofState.final() + + // extra bits are stored in reverse order. + br.fill() + if s.maxBits <= 32 { + mo += br.getBits(moB) + ml += br.getBits(mlB) + ll += br.getBits(llB) + } else { + mo += br.getBits(moB) + br.fill() + // matchlength+literal length, max 32 bits + ml += br.getBits(mlB) + ll += br.getBits(llB) + + } + mo = s.adjustOffset(mo, ll, moB) + return +} + +func (s *sequenceDecs) adjustOffset(offset, litLen int, offsetB uint8) int { + if offsetB > 1 { + s.prevOffset[2] = s.prevOffset[1] + s.prevOffset[1] = s.prevOffset[0] + s.prevOffset[0] = offset + return offset + } + + if litLen == 0 { + // There is an exception though, when current sequence's literals_length = 0. + // In this case, repeated offsets are shifted by one, so an offset_value of 1 means Repeated_Offset2, + // an offset_value of 2 means Repeated_Offset3, and an offset_value of 3 means Repeated_Offset1 - 1_byte. + offset++ + } + + if offset == 0 { + return s.prevOffset[0] + } + var temp int + if offset == 3 { + temp = s.prevOffset[0] - 1 + } else { + temp = s.prevOffset[offset] + } + + if temp == 0 { + // 0 is not valid; input is corrupted; force offset to 1 + println("temp was 0") + temp = 1 + } + + if offset != 1 { + s.prevOffset[2] = s.prevOffset[1] + } + s.prevOffset[1] = s.prevOffset[0] + s.prevOffset[0] = temp + return temp +} + +// mergeHistory will merge history. +func (s *sequenceDecs) mergeHistory(hist *sequenceDecs) (*sequenceDecs, error) { + for i := uint(0); i < 3; i++ { + var sNew, sHist *sequenceDec + switch i { + default: + // same as "case 0": + sNew = &s.litLengths + sHist = &hist.litLengths + case 1: + sNew = &s.offsets + sHist = &hist.offsets + case 2: + sNew = &s.matchLengths + sHist = &hist.matchLengths + } + if sNew.repeat { + if sHist.fse == nil { + return nil, fmt.Errorf("sequence stream %d, repeat requested, but no history", i) + } + continue + } + if sNew.fse == nil { + return nil, fmt.Errorf("sequence stream %d, no fse found", i) + } + if sHist.fse != nil && !sHist.fse.preDefined { + fseDecoderPool.Put(sHist.fse) + } + sHist.fse = sNew.fse + } + return hist, nil +} diff --git a/vendor/github.com/klauspost/compress/zstd/seqenc.go b/vendor/github.com/klauspost/compress/zstd/seqenc.go new file mode 100644 index 0000000..36bcc3c --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/seqenc.go @@ -0,0 +1,115 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import "math/bits" + +type seqCoders struct { + llEnc, ofEnc, mlEnc *fseEncoder + llPrev, ofPrev, mlPrev *fseEncoder +} + +// swap coders with another (block). +func (s *seqCoders) swap(other *seqCoders) { + *s, *other = *other, *s +} + +// setPrev will update the previous encoders to the actually used ones +// and make sure a fresh one is in the main slot. +func (s *seqCoders) setPrev(ll, ml, of *fseEncoder) { + compareSwap := func(used *fseEncoder, current, prev **fseEncoder) { + // We used the new one, more current to history and reuse the previous history + if *current == used { + *prev, *current = *current, *prev + c := *current + p := *prev + c.reUsed = false + p.reUsed = true + return + } + if used == *prev { + return + } + // Ensure we cannot reuse by accident + prevEnc := *prev + prevEnc.symbolLen = 0 + return + } + compareSwap(ll, &s.llEnc, &s.llPrev) + compareSwap(ml, &s.mlEnc, &s.mlPrev) + compareSwap(of, &s.ofEnc, &s.ofPrev) +} + +func highBit(val uint32) (n uint32) { + return uint32(bits.Len32(val) - 1) +} + +var llCodeTable = [64]byte{0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 16, 17, 17, 18, 18, 19, 19, + 20, 20, 20, 20, 21, 21, 21, 21, + 22, 22, 22, 22, 22, 22, 22, 22, + 23, 23, 23, 23, 23, 23, 23, 23, + 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24} + +// Up to 6 bits +const maxLLCode = 35 + +// llBitsTable translates from ll code to number of bits. +var llBitsTable = [maxLLCode + 1]byte{ + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 2, 2, 3, 3, + 4, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16} + +// llCode returns the code that represents the literal length requested. +func llCode(litLength uint32) uint8 { + const llDeltaCode = 19 + if litLength <= 63 { + // Compiler insists on bounds check (Go 1.12) + return llCodeTable[litLength&63] + } + return uint8(highBit(litLength)) + llDeltaCode +} + +var mlCodeTable = [128]byte{0, 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, 32, 33, 33, 34, 34, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, + 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42} + +// Up to 6 bits +const maxMLCode = 52 + +// mlBitsTable translates from ml code to number of bits. +var mlBitsTable = [maxMLCode + 1]byte{ + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 2, 2, 3, 3, + 4, 4, 5, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16} + +// note : mlBase = matchLength - MINMATCH; +// because it's the format it's stored in seqStore->sequences +func mlCode(mlBase uint32) uint8 { + const mlDeltaCode = 36 + if mlBase <= 127 { + // Compiler insists on bounds check (Go 1.12) + return mlCodeTable[mlBase&127] + } + return uint8(highBit(mlBase)) + mlDeltaCode +} + +func ofCode(offset uint32) uint8 { + // A valid offset will always be > 0. + return uint8(bits.Len32(offset) - 1) +} diff --git a/vendor/github.com/klauspost/compress/zstd/snappy.go b/vendor/github.com/klauspost/compress/zstd/snappy.go new file mode 100644 index 0000000..356956b --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/snappy.go @@ -0,0 +1,436 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +import ( + "encoding/binary" + "errors" + "hash/crc32" + "io" + + "github.com/klauspost/compress/huff0" + "github.com/klauspost/compress/snappy" +) + +const ( + snappyTagLiteral = 0x00 + snappyTagCopy1 = 0x01 + snappyTagCopy2 = 0x02 + snappyTagCopy4 = 0x03 +) + +const ( + snappyChecksumSize = 4 + snappyMagicBody = "sNaPpY" + + // snappyMaxBlockSize is the maximum size of the input to encodeBlock. It is not + // part of the wire format per se, but some parts of the encoder assume + // that an offset fits into a uint16. + // + // Also, for the framing format (Writer type instead of Encode function), + // https://github.com/google/snappy/blob/master/framing_format.txt says + // that "the uncompressed data in a chunk must be no longer than 65536 + // bytes". + snappyMaxBlockSize = 65536 + + // snappyMaxEncodedLenOfMaxBlockSize equals MaxEncodedLen(snappyMaxBlockSize), but is + // hard coded to be a const instead of a variable, so that obufLen can also + // be a const. Their equivalence is confirmed by + // TestMaxEncodedLenOfMaxBlockSize. + snappyMaxEncodedLenOfMaxBlockSize = 76490 +) + +const ( + chunkTypeCompressedData = 0x00 + chunkTypeUncompressedData = 0x01 + chunkTypePadding = 0xfe + chunkTypeStreamIdentifier = 0xff +) + +var ( + // ErrSnappyCorrupt reports that the input is invalid. + ErrSnappyCorrupt = errors.New("snappy: corrupt input") + // ErrSnappyTooLarge reports that the uncompressed length is too large. + ErrSnappyTooLarge = errors.New("snappy: decoded block is too large") + // ErrSnappyUnsupported reports that the input isn't supported. + ErrSnappyUnsupported = errors.New("snappy: unsupported input") + + errUnsupportedLiteralLength = errors.New("snappy: unsupported literal length") +) + +// SnappyConverter can read SnappyConverter-compressed streams and convert them to zstd. +// Conversion is done by converting the stream directly from Snappy without intermediate +// full decoding. +// Therefore the compression ratio is much less than what can be done by a full decompression +// and compression, and a faulty Snappy stream may lead to a faulty Zstandard stream without +// any errors being generated. +// No CRC value is being generated and not all CRC values of the Snappy stream are checked. +// However, it provides really fast recompression of Snappy streams. +// The converter can be reused to avoid allocations, even after errors. +type SnappyConverter struct { + r io.Reader + err error + buf []byte + block *blockEnc +} + +// Convert the Snappy stream supplied in 'in' and write the zStandard stream to 'w'. +// If any error is detected on the Snappy stream it is returned. +// The number of bytes written is returned. +func (r *SnappyConverter) Convert(in io.Reader, w io.Writer) (int64, error) { + initPredefined() + r.err = nil + r.r = in + if r.block == nil { + r.block = &blockEnc{} + r.block.init() + } + r.block.initNewEncode() + if len(r.buf) != snappyMaxEncodedLenOfMaxBlockSize+snappyChecksumSize { + r.buf = make([]byte, snappyMaxEncodedLenOfMaxBlockSize+snappyChecksumSize) + } + r.block.litEnc.Reuse = huff0.ReusePolicyNone + var written int64 + var readHeader bool + { + var header []byte + var n int + header, r.err = frameHeader{WindowSize: snappyMaxBlockSize}.appendTo(r.buf[:0]) + + n, r.err = w.Write(header) + if r.err != nil { + return written, r.err + } + written += int64(n) + } + + for { + if !r.readFull(r.buf[:4], true) { + // Add empty last block + r.block.reset(nil) + r.block.last = true + err := r.block.encodeLits(false) + if err != nil { + return written, err + } + n, err := w.Write(r.block.output) + if err != nil { + return written, err + } + written += int64(n) + + return written, r.err + } + chunkType := r.buf[0] + if !readHeader { + if chunkType != chunkTypeStreamIdentifier { + println("chunkType != chunkTypeStreamIdentifier", chunkType) + r.err = ErrSnappyCorrupt + return written, r.err + } + readHeader = true + } + chunkLen := int(r.buf[1]) | int(r.buf[2])<<8 | int(r.buf[3])<<16 + if chunkLen > len(r.buf) { + println("chunkLen > len(r.buf)", chunkType) + r.err = ErrSnappyUnsupported + return written, r.err + } + + // The chunk types are specified at + // https://github.com/google/snappy/blob/master/framing_format.txt + switch chunkType { + case chunkTypeCompressedData: + // Section 4.2. Compressed data (chunk type 0x00). + if chunkLen < snappyChecksumSize { + println("chunkLen < snappyChecksumSize", chunkLen, snappyChecksumSize) + r.err = ErrSnappyCorrupt + return written, r.err + } + buf := r.buf[:chunkLen] + if !r.readFull(buf, false) { + return written, r.err + } + //checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 + buf = buf[snappyChecksumSize:] + + n, hdr, err := snappyDecodedLen(buf) + if err != nil { + r.err = err + return written, r.err + } + buf = buf[hdr:] + if n > snappyMaxBlockSize { + println("n > snappyMaxBlockSize", n, snappyMaxBlockSize) + r.err = ErrSnappyCorrupt + return written, r.err + } + r.block.reset(nil) + r.block.pushOffsets() + if err := decodeSnappy(r.block, buf); err != nil { + r.err = err + return written, r.err + } + if r.block.size+r.block.extraLits != n { + printf("invalid size, want %d, got %d\n", n, r.block.size+r.block.extraLits) + r.err = ErrSnappyCorrupt + return written, r.err + } + err = r.block.encode(false) + switch err { + case errIncompressible: + r.block.popOffsets() + r.block.reset(nil) + r.block.literals, err = snappy.Decode(r.block.literals[:n], r.buf[snappyChecksumSize:chunkLen]) + if err != nil { + println("snappy.Decode:", err) + return written, err + } + err = r.block.encodeLits(false) + if err != nil { + return written, err + } + case nil: + default: + return written, err + } + + n, r.err = w.Write(r.block.output) + if r.err != nil { + return written, err + } + written += int64(n) + continue + case chunkTypeUncompressedData: + if debug { + println("Uncompressed, chunklen", chunkLen) + } + // Section 4.3. Uncompressed data (chunk type 0x01). + if chunkLen < snappyChecksumSize { + println("chunkLen < snappyChecksumSize", chunkLen, snappyChecksumSize) + r.err = ErrSnappyCorrupt + return written, r.err + } + r.block.reset(nil) + buf := r.buf[:snappyChecksumSize] + if !r.readFull(buf, false) { + return written, r.err + } + checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 + // Read directly into r.decoded instead of via r.buf. + n := chunkLen - snappyChecksumSize + if n > snappyMaxBlockSize { + println("n > snappyMaxBlockSize", n, snappyMaxBlockSize) + r.err = ErrSnappyCorrupt + return written, r.err + } + r.block.literals = r.block.literals[:n] + if !r.readFull(r.block.literals, false) { + return written, r.err + } + if snappyCRC(r.block.literals) != checksum { + println("literals crc mismatch") + r.err = ErrSnappyCorrupt + return written, r.err + } + err := r.block.encodeLits(false) + if err != nil { + return written, err + } + n, r.err = w.Write(r.block.output) + if r.err != nil { + return written, err + } + written += int64(n) + continue + + case chunkTypeStreamIdentifier: + if debug { + println("stream id", chunkLen, len(snappyMagicBody)) + } + // Section 4.1. Stream identifier (chunk type 0xff). + if chunkLen != len(snappyMagicBody) { + println("chunkLen != len(snappyMagicBody)", chunkLen, len(snappyMagicBody)) + r.err = ErrSnappyCorrupt + return written, r.err + } + if !r.readFull(r.buf[:len(snappyMagicBody)], false) { + return written, r.err + } + for i := 0; i < len(snappyMagicBody); i++ { + if r.buf[i] != snappyMagicBody[i] { + println("r.buf[i] != snappyMagicBody[i]", r.buf[i], snappyMagicBody[i], i) + r.err = ErrSnappyCorrupt + return written, r.err + } + } + continue + } + + if chunkType <= 0x7f { + // Section 4.5. Reserved unskippable chunks (chunk types 0x02-0x7f). + println("chunkType <= 0x7f") + r.err = ErrSnappyUnsupported + return written, r.err + } + // Section 4.4 Padding (chunk type 0xfe). + // Section 4.6. Reserved skippable chunks (chunk types 0x80-0xfd). + if !r.readFull(r.buf[:chunkLen], false) { + return written, r.err + } + } +} + +// decodeSnappy writes the decoding of src to dst. It assumes that the varint-encoded +// length of the decompressed bytes has already been read. +func decodeSnappy(blk *blockEnc, src []byte) error { + //decodeRef(make([]byte, snappyMaxBlockSize), src) + var s, length int + lits := blk.extraLits + var offset uint32 + for s < len(src) { + switch src[s] & 0x03 { + case snappyTagLiteral: + x := uint32(src[s] >> 2) + switch { + case x < 60: + s++ + case x == 60: + s += 2 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + println("uint(s) > uint(len(src)", s, src) + return ErrSnappyCorrupt + } + x = uint32(src[s-1]) + case x == 61: + s += 3 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + println("uint(s) > uint(len(src)", s, src) + return ErrSnappyCorrupt + } + x = uint32(src[s-2]) | uint32(src[s-1])<<8 + case x == 62: + s += 4 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + println("uint(s) > uint(len(src)", s, src) + return ErrSnappyCorrupt + } + x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 + case x == 63: + s += 5 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + println("uint(s) > uint(len(src)", s, src) + return ErrSnappyCorrupt + } + x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 + } + if x > snappyMaxBlockSize { + println("x > snappyMaxBlockSize", x, snappyMaxBlockSize) + return ErrSnappyCorrupt + } + length = int(x) + 1 + if length <= 0 { + println("length <= 0 ", length) + + return errUnsupportedLiteralLength + } + //if length > snappyMaxBlockSize-d || uint32(length) > len(src)-s { + // return ErrSnappyCorrupt + //} + + blk.literals = append(blk.literals, src[s:s+length]...) + //println(length, "litLen") + lits += length + s += length + continue + + case snappyTagCopy1: + s += 2 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + println("uint(s) > uint(len(src)", s, len(src)) + return ErrSnappyCorrupt + } + length = 4 + int(src[s-2])>>2&0x7 + offset = uint32(src[s-2])&0xe0<<3 | uint32(src[s-1]) + + case snappyTagCopy2: + s += 3 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + println("uint(s) > uint(len(src)", s, len(src)) + return ErrSnappyCorrupt + } + length = 1 + int(src[s-3])>>2 + offset = uint32(src[s-2]) | uint32(src[s-1])<<8 + + case snappyTagCopy4: + s += 5 + if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. + println("uint(s) > uint(len(src)", s, len(src)) + return ErrSnappyCorrupt + } + length = 1 + int(src[s-5])>>2 + offset = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 + } + + if offset <= 0 || blk.size+lits < int(offset) /*|| length > len(blk)-d */ { + println("offset <= 0 || blk.size+lits < int(offset)", offset, blk.size+lits, int(offset), blk.size, lits) + + return ErrSnappyCorrupt + } + + // Check if offset is one of the recent offsets. + // Adjusts the output offset accordingly. + // Gives a tiny bit of compression, typically around 1%. + if false { + offset = blk.matchOffset(offset, uint32(lits)) + } else { + offset += 3 + } + + blk.sequences = append(blk.sequences, seq{ + litLen: uint32(lits), + offset: offset, + matchLen: uint32(length) - zstdMinMatch, + }) + blk.size += length + lits + lits = 0 + } + blk.extraLits = lits + return nil +} + +func (r *SnappyConverter) readFull(p []byte, allowEOF bool) (ok bool) { + if _, r.err = io.ReadFull(r.r, p); r.err != nil { + if r.err == io.ErrUnexpectedEOF || (r.err == io.EOF && !allowEOF) { + r.err = ErrSnappyCorrupt + } + return false + } + return true +} + +var crcTable = crc32.MakeTable(crc32.Castagnoli) + +// crc implements the checksum specified in section 3 of +// https://github.com/google/snappy/blob/master/framing_format.txt +func snappyCRC(b []byte) uint32 { + c := crc32.Update(0, crcTable, b) + return uint32(c>>15|c<<17) + 0xa282ead8 +} + +// snappyDecodedLen returns the length of the decoded block and the number of bytes +// that the length header occupied. +func snappyDecodedLen(src []byte) (blockLen, headerLen int, err error) { + v, n := binary.Uvarint(src) + if n <= 0 || v > 0xffffffff { + return 0, 0, ErrSnappyCorrupt + } + + const wordSize = 32 << (^uint(0) >> 32 & 1) + if wordSize == 32 && v > 0x7fffffff { + return 0, 0, ErrSnappyTooLarge + } + return int(v), n, nil +} diff --git a/vendor/github.com/klauspost/compress/zstd/zstd.go b/vendor/github.com/klauspost/compress/zstd/zstd.go new file mode 100644 index 0000000..57a8a2f --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/zstd.go @@ -0,0 +1,136 @@ +// Package zstd provides decompression of zstandard files. +// +// For advanced usage and examples, go to the README: https://github.com/klauspost/compress/tree/master/zstd#zstd +package zstd + +import ( + "errors" + "log" + "math/bits" +) + +const debug = false +const debugSequences = false +const debugMatches = false + +// force encoder to use predefined tables. +const forcePreDef = false + +// zstdMinMatch is the minimum zstd match length. +const zstdMinMatch = 3 + +var ( + // ErrReservedBlockType is returned when a reserved block type is found. + // Typically this indicates wrong or corrupted input. + ErrReservedBlockType = errors.New("invalid input: reserved block type encountered") + + // ErrCompressedSizeTooBig is returned when a block is bigger than allowed. + // Typically this indicates wrong or corrupted input. + ErrCompressedSizeTooBig = errors.New("invalid input: compressed size too big") + + // ErrBlockTooSmall is returned when a block is too small to be decoded. + // Typically returned on invalid input. + ErrBlockTooSmall = errors.New("block too small") + + // ErrMagicMismatch is returned when a "magic" number isn't what is expected. + // Typically this indicates wrong or corrupted input. + ErrMagicMismatch = errors.New("invalid input: magic number mismatch") + + // ErrWindowSizeExceeded is returned when a reference exceeds the valid window size. + // Typically this indicates wrong or corrupted input. + ErrWindowSizeExceeded = errors.New("window size exceeded") + + // ErrWindowSizeTooSmall is returned when no window size is specified. + // Typically this indicates wrong or corrupted input. + ErrWindowSizeTooSmall = errors.New("invalid input: window size was too small") + + // ErrDecoderSizeExceeded is returned if decompressed size exceeds the configured limit. + ErrDecoderSizeExceeded = errors.New("decompressed size exceeds configured limit") + + // ErrUnknownDictionary is returned if the dictionary ID is unknown. + // For the time being dictionaries are not supported. + ErrUnknownDictionary = errors.New("unknown dictionary") + + // ErrFrameSizeExceeded is returned if the stated frame size is exceeded. + // This is only returned if SingleSegment is specified on the frame. + ErrFrameSizeExceeded = errors.New("frame size exceeded") + + // ErrCRCMismatch is returned if CRC mismatches. + ErrCRCMismatch = errors.New("CRC check failed") + + // ErrDecoderClosed will be returned if the Decoder was used after + // Close has been called. + ErrDecoderClosed = errors.New("decoder used after Close") +) + +func println(a ...interface{}) { + if debug { + log.Println(a...) + } +} + +func printf(format string, a ...interface{}) { + if debug { + log.Printf(format, a...) + } +} + +// matchLen returns the maximum length. +// a must be the shortest of the two. +// The function also returns whether all bytes matched. +func matchLen(a, b []byte) int { + b = b[:len(a)] + for i := 0; i < len(a)-7; i += 8 { + if diff := load64(a, i) ^ load64(b, i); diff != 0 { + return i + (bits.TrailingZeros64(diff) >> 3) + } + } + checked := (len(a) >> 3) << 3 + a = a[checked:] + b = b[checked:] + // TODO: We could do a 4 check. + for i := range a { + if a[i] != b[i] { + return int(i) + checked + } + } + return len(a) + checked +} + +// matchLen returns a match length in src between index s and t +func matchLenIn(src []byte, s, t int32) int32 { + s1 := len(src) + b := src[t:] + a := src[s:s1] + b = b[:len(a)] + // Extend the match to be as long as possible. + for i := range a { + if a[i] != b[i] { + return int32(i) + } + } + return int32(len(a)) +} + +func load3232(b []byte, i int32) uint32 { + // Help the compiler eliminate bounds checks on the read so it can be done in a single read. + b = b[i:] + b = b[:4] + return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 +} + +func load6432(b []byte, i int32) uint64 { + // Help the compiler eliminate bounds checks on the read so it can be done in a single read. + b = b[i:] + b = b[:8] + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | + uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 +} + +func load64(b []byte, i int) uint64 { + // Help the compiler eliminate bounds checks on the read so it can be done in a single read. + b = b[i:] + b = b[:8] + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | + uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 +} diff --git a/vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE b/vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/matttproud/golang_protobuf_extensions/NOTICE b/vendor/github.com/matttproud/golang_protobuf_extensions/NOTICE new file mode 100644 index 0000000..5d8cb5b --- /dev/null +++ b/vendor/github.com/matttproud/golang_protobuf_extensions/NOTICE @@ -0,0 +1 @@ +Copyright 2012 Matt T. Proud (matt.proud@gmail.com) diff --git a/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/decode.go b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/decode.go new file mode 100644 index 0000000..258c063 --- /dev/null +++ b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/decode.go @@ -0,0 +1,75 @@ +// Copyright 2013 Matt T. Proud +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package pbutil + +import ( + "encoding/binary" + "errors" + "io" + + "github.com/golang/protobuf/proto" +) + +var errInvalidVarint = errors.New("invalid varint32 encountered") + +// ReadDelimited decodes a message from the provided length-delimited stream, +// where the length is encoded as 32-bit varint prefix to the message body. +// It returns the total number of bytes read and any applicable error. This is +// roughly equivalent to the companion Java API's +// MessageLite#parseDelimitedFrom. As per the reader contract, this function +// calls r.Read repeatedly as required until exactly one message including its +// prefix is read and decoded (or an error has occurred). The function never +// reads more bytes from the stream than required. The function never returns +// an error if a message has been read and decoded correctly, even if the end +// of the stream has been reached in doing so. In that case, any subsequent +// calls return (0, io.EOF). +func ReadDelimited(r io.Reader, m proto.Message) (n int, err error) { + // Per AbstractParser#parsePartialDelimitedFrom with + // CodedInputStream#readRawVarint32. + var headerBuf [binary.MaxVarintLen32]byte + var bytesRead, varIntBytes int + var messageLength uint64 + for varIntBytes == 0 { // i.e. no varint has been decoded yet. + if bytesRead >= len(headerBuf) { + return bytesRead, errInvalidVarint + } + // We have to read byte by byte here to avoid reading more bytes + // than required. Each read byte is appended to what we have + // read before. + newBytesRead, err := r.Read(headerBuf[bytesRead : bytesRead+1]) + if newBytesRead == 0 { + if err != nil { + return bytesRead, err + } + // A Reader should not return (0, nil), but if it does, + // it should be treated as no-op (according to the + // Reader contract). So let's go on... + continue + } + bytesRead += newBytesRead + // Now present everything read so far to the varint decoder and + // see if a varint can be decoded already. + messageLength, varIntBytes = proto.DecodeVarint(headerBuf[:bytesRead]) + } + + messageBuf := make([]byte, messageLength) + newBytesRead, err := io.ReadFull(r, messageBuf) + bytesRead += newBytesRead + if err != nil { + return bytesRead, err + } + + return bytesRead, proto.Unmarshal(messageBuf, m) +} diff --git a/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/doc.go b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/doc.go new file mode 100644 index 0000000..c318385 --- /dev/null +++ b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/doc.go @@ -0,0 +1,16 @@ +// Copyright 2013 Matt T. Proud +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package pbutil provides record length-delimited Protocol Buffer streaming. +package pbutil diff --git a/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/encode.go b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/encode.go new file mode 100644 index 0000000..8fb59ad --- /dev/null +++ b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/encode.go @@ -0,0 +1,46 @@ +// Copyright 2013 Matt T. Proud +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package pbutil + +import ( + "encoding/binary" + "io" + + "github.com/golang/protobuf/proto" +) + +// WriteDelimited encodes and dumps a message to the provided writer prefixed +// with a 32-bit varint indicating the length of the encoded message, producing +// a length-delimited record stream, which can be used to chain together +// encoded messages of the same type together in a file. It returns the total +// number of bytes written and any applicable error. This is roughly +// equivalent to the companion Java API's MessageLite#writeDelimitedTo. +func WriteDelimited(w io.Writer, m proto.Message) (n int, err error) { + buffer, err := proto.Marshal(m) + if err != nil { + return 0, err + } + + var buf [binary.MaxVarintLen32]byte + encodedLength := binary.PutUvarint(buf[:], uint64(len(buffer))) + + sync, err := w.Write(buf[:encodedLength]) + if err != nil { + return sync, err + } + + n, err = w.Write(buffer) + return n + sync, err +} diff --git a/vendor/github.com/pierrec/lz4/.gitignore b/vendor/github.com/pierrec/lz4/.gitignore new file mode 100644 index 0000000..5e98735 --- /dev/null +++ b/vendor/github.com/pierrec/lz4/.gitignore @@ -0,0 +1,34 @@ +# Created by https://www.gitignore.io/api/macos + +### macOS ### +*.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# End of https://www.gitignore.io/api/macos + +cmd/*/*exe +.idea \ No newline at end of file diff --git a/vendor/github.com/pierrec/lz4/.travis.yml b/vendor/github.com/pierrec/lz4/.travis.yml new file mode 100644 index 0000000..fd6c6db --- /dev/null +++ b/vendor/github.com/pierrec/lz4/.travis.yml @@ -0,0 +1,24 @@ +language: go + +env: + - GO111MODULE=off + +go: + - 1.9.x + - 1.10.x + - 1.11.x + - 1.12.x + - master + +matrix: + fast_finish: true + allow_failures: + - go: master + +sudo: false + +script: + - go test -v -cpu=2 + - go test -v -cpu=2 -race + - go test -v -cpu=2 -tags noasm + - go test -v -cpu=2 -race -tags noasm diff --git a/vendor/github.com/pierrec/lz4/LICENSE b/vendor/github.com/pierrec/lz4/LICENSE new file mode 100644 index 0000000..bd899d8 --- /dev/null +++ b/vendor/github.com/pierrec/lz4/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2015, Pierre Curto +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of xxHash nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/vendor/github.com/pierrec/lz4/README.md b/vendor/github.com/pierrec/lz4/README.md new file mode 100644 index 0000000..4ee388e --- /dev/null +++ b/vendor/github.com/pierrec/lz4/README.md @@ -0,0 +1,90 @@ +# lz4 : LZ4 compression in pure Go + +[![GoDoc](https://godoc.org/github.com/pierrec/lz4?status.svg)](https://godoc.org/github.com/pierrec/lz4) +[![Build Status](https://travis-ci.org/pierrec/lz4.svg?branch=master)](https://travis-ci.org/pierrec/lz4) +[![Go Report Card](https://goreportcard.com/badge/github.com/pierrec/lz4)](https://goreportcard.com/report/github.com/pierrec/lz4) +[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/pierrec/lz4.svg?style=social)](https://github.com/pierrec/lz4/tags) + +## Overview + +This package provides a streaming interface to [LZ4 data streams](http://fastcompression.blogspot.fr/2013/04/lz4-streaming-format-final.html) as well as low level compress and uncompress functions for LZ4 data blocks. +The implementation is based on the reference C [one](https://github.com/lz4/lz4). + +## Install + +Assuming you have the go toolchain installed: + +``` +go get github.com/pierrec/lz4 +``` + +There is a command line interface tool to compress and decompress LZ4 files. + +``` +go install github.com/pierrec/lz4/cmd/lz4c +``` + +Usage + +``` +Usage of lz4c: + -version + print the program version + +Subcommands: +Compress the given files or from stdin to stdout. +compress [arguments] [ ...] + -bc + enable block checksum + -l int + compression level (0=fastest) + -sc + disable stream checksum + -size string + block max size [64K,256K,1M,4M] (default "4M") + +Uncompress the given files or from stdin to stdout. +uncompress [arguments] [ ...] + +``` + + +## Example + +``` +// Compress and uncompress an input string. +s := "hello world" +r := strings.NewReader(s) + +// The pipe will uncompress the data from the writer. +pr, pw := io.Pipe() +zw := lz4.NewWriter(pw) +zr := lz4.NewReader(pr) + +go func() { + // Compress the input string. + _, _ = io.Copy(zw, r) + _ = zw.Close() // Make sure the writer is closed + _ = pw.Close() // Terminate the pipe +}() + +_, _ = io.Copy(os.Stdout, zr) + +// Output: +// hello world +``` + +## Contributing + +Contributions are very welcome for bug fixing, performance improvements...! + +- Open an issue with a proper description +- Send a pull request with appropriate test case(s) + +## Contributors + +Thanks to all [contributors](https://github.com/pierrec/lz4/graphs/contributors) so far! + +Special thanks to [@Zariel](https://github.com/Zariel) for his asm implementation of the decoder. + +Special thanks to [@klauspost](https://github.com/klauspost) for his work on optimizing the code. diff --git a/vendor/github.com/pierrec/lz4/block.go b/vendor/github.com/pierrec/lz4/block.go new file mode 100644 index 0000000..b589af4 --- /dev/null +++ b/vendor/github.com/pierrec/lz4/block.go @@ -0,0 +1,387 @@ +package lz4 + +import ( + "encoding/binary" + "fmt" + "math/bits" +) + +// blockHash hashes the lower 6 bytes into a value < htSize. +func blockHash(x uint64) uint32 { + const prime6bytes = 227718039650203 + return uint32(((x << (64 - 48)) * prime6bytes) >> (64 - hashLog)) +} + +// CompressBlockBound returns the maximum size of a given buffer of size n, when not compressible. +func CompressBlockBound(n int) int { + return n + n/255 + 16 +} + +// UncompressBlock uncompresses the source buffer into the destination one, +// and returns the uncompressed size. +// +// The destination buffer must be sized appropriately. +// +// An error is returned if the source data is invalid or the destination buffer is too small. +func UncompressBlock(src, dst []byte) (int, error) { + if len(src) == 0 { + return 0, nil + } + if di := decodeBlock(dst, src); di >= 0 { + return di, nil + } + return 0, ErrInvalidSourceShortBuffer +} + +// CompressBlock compresses the source buffer into the destination one. +// This is the fast version of LZ4 compression and also the default one. +// The size of hashTable must be at least 64Kb. +// +// The size of the compressed data is returned. If it is 0 and no error, then the data is incompressible. +// +// An error is returned if the destination buffer is too small. +func CompressBlock(src, dst []byte, hashTable []int) (_ int, err error) { + if len(hashTable) < htSize { + return 0, fmt.Errorf("hash table too small, should be at least %d in size", htSize) + } + defer recoverBlock(&err) + + // adaptSkipLog sets how quickly the compressor begins skipping blocks when data is incompressible. + // This significantly speeds up incompressible data and usually has very small impact on compresssion. + // bytes to skip = 1 + (bytes since last match >> adaptSkipLog) + const adaptSkipLog = 7 + sn, dn := len(src)-mfLimit, len(dst) + if sn <= 0 || dn == 0 { + return 0, nil + } + // Prove to the compiler the table has at least htSize elements. + // The compiler can see that "uint32() >> hashShift" cannot be out of bounds. + hashTable = hashTable[:htSize] + + // si: Current position of the search. + // anchor: Position of the current literals. + var si, di, anchor int + + // Fast scan strategy: the hash table only stores the last 4 bytes sequences. + for si < sn { + // Hash the next 6 bytes (sequence)... + match := binary.LittleEndian.Uint64(src[si:]) + h := blockHash(match) + h2 := blockHash(match >> 8) + + // We check a match at s, s+1 and s+2 and pick the first one we get. + // Checking 3 only requires us to load the source one. + ref := hashTable[h] + ref2 := hashTable[h2] + hashTable[h] = si + hashTable[h2] = si + 1 + offset := si - ref + + // If offset <= 0 we got an old entry in the hash table. + if offset <= 0 || offset >= winSize || // Out of window. + uint32(match) != binary.LittleEndian.Uint32(src[ref:]) { // Hash collision on different matches. + // No match. Start calculating another hash. + // The processor can usually do this out-of-order. + h = blockHash(match >> 16) + ref = hashTable[h] + + // Check the second match at si+1 + si += 1 + offset = si - ref2 + + if offset <= 0 || offset >= winSize || + uint32(match>>8) != binary.LittleEndian.Uint32(src[ref2:]) { + // No match. Check the third match at si+2 + si += 1 + offset = si - ref + hashTable[h] = si + + if offset <= 0 || offset >= winSize || + uint32(match>>16) != binary.LittleEndian.Uint32(src[ref:]) { + // Skip one extra byte (at si+3) before we check 3 matches again. + si += 2 + (si-anchor)>>adaptSkipLog + continue + } + } + } + + // Match found. + lLen := si - anchor // Literal length. + // We already matched 4 bytes. + mLen := 4 + + // Extend backwards if we can, reducing literals. + tOff := si - offset - 1 + for lLen > 0 && tOff >= 0 && src[si-1] == src[tOff] { + si-- + tOff-- + lLen-- + mLen++ + } + + // Add the match length, so we continue search at the end. + // Use mLen to store the offset base. + si, mLen = si+mLen, si+minMatch + + // Find the longest match by looking by batches of 8 bytes. + for si+8 < sn { + x := binary.LittleEndian.Uint64(src[si:]) ^ binary.LittleEndian.Uint64(src[si-offset:]) + if x == 0 { + si += 8 + } else { + // Stop is first non-zero byte. + si += bits.TrailingZeros64(x) >> 3 + break + } + } + + mLen = si - mLen + if mLen < 0xF { + dst[di] = byte(mLen) + } else { + dst[di] = 0xF + } + + // Encode literals length. + if lLen < 0xF { + dst[di] |= byte(lLen << 4) + } else { + dst[di] |= 0xF0 + di++ + l := lLen - 0xF + for ; l >= 0xFF; l -= 0xFF { + dst[di] = 0xFF + di++ + } + dst[di] = byte(l) + } + di++ + + // Literals. + copy(dst[di:di+lLen], src[anchor:anchor+lLen]) + di += lLen + 2 + anchor = si + + // Encode offset. + _ = dst[di] // Bound check elimination. + dst[di-2], dst[di-1] = byte(offset), byte(offset>>8) + + // Encode match length part 2. + if mLen >= 0xF { + for mLen -= 0xF; mLen >= 0xFF; mLen -= 0xFF { + dst[di] = 0xFF + di++ + } + dst[di] = byte(mLen) + di++ + } + // Check if we can load next values. + if si >= sn { + break + } + // Hash match end-2 + h = blockHash(binary.LittleEndian.Uint64(src[si-2:])) + hashTable[h] = si - 2 + } + + if anchor == 0 { + // Incompressible. + return 0, nil + } + + // Last literals. + lLen := len(src) - anchor + if lLen < 0xF { + dst[di] = byte(lLen << 4) + } else { + dst[di] = 0xF0 + di++ + for lLen -= 0xF; lLen >= 0xFF; lLen -= 0xFF { + dst[di] = 0xFF + di++ + } + dst[di] = byte(lLen) + } + di++ + + // Write the last literals. + if di >= anchor { + // Incompressible. + return 0, nil + } + di += copy(dst[di:di+len(src)-anchor], src[anchor:]) + return di, nil +} + +// blockHash hashes 4 bytes into a value < winSize. +func blockHashHC(x uint32) uint32 { + const hasher uint32 = 2654435761 // Knuth multiplicative hash. + return x * hasher >> (32 - winSizeLog) +} + +// CompressBlockHC compresses the source buffer src into the destination dst +// with max search depth (use 0 or negative value for no max). +// +// CompressBlockHC compression ratio is better than CompressBlock but it is also slower. +// +// The size of the compressed data is returned. If it is 0 and no error, then the data is not compressible. +// +// An error is returned if the destination buffer is too small. +func CompressBlockHC(src, dst []byte, depth int) (_ int, err error) { + defer recoverBlock(&err) + + // adaptSkipLog sets how quickly the compressor begins skipping blocks when data is incompressible. + // This significantly speeds up incompressible data and usually has very small impact on compresssion. + // bytes to skip = 1 + (bytes since last match >> adaptSkipLog) + const adaptSkipLog = 7 + + sn, dn := len(src)-mfLimit, len(dst) + if sn <= 0 || dn == 0 { + return 0, nil + } + var si, di int + + // hashTable: stores the last position found for a given hash + // chainTable: stores previous positions for a given hash + var hashTable, chainTable [winSize]int + + if depth <= 0 { + depth = winSize + } + + anchor := si + for si < sn { + // Hash the next 4 bytes (sequence). + match := binary.LittleEndian.Uint32(src[si:]) + h := blockHashHC(match) + + // Follow the chain until out of window and give the longest match. + mLen := 0 + offset := 0 + for next, try := hashTable[h], depth; try > 0 && next > 0 && si-next < winSize; next = chainTable[next&winMask] { + // The first (mLen==0) or next byte (mLen>=minMatch) at current match length + // must match to improve on the match length. + if src[next+mLen] != src[si+mLen] { + continue + } + ml := 0 + // Compare the current position with a previous with the same hash. + for ml < sn-si { + x := binary.LittleEndian.Uint64(src[next+ml:]) ^ binary.LittleEndian.Uint64(src[si+ml:]) + if x == 0 { + ml += 8 + } else { + // Stop is first non-zero byte. + ml += bits.TrailingZeros64(x) >> 3 + break + } + } + if ml < minMatch || ml <= mLen { + // Match too small (>adaptSkipLog + continue + } + + // Match found. + // Update hash/chain tables with overlapping bytes: + // si already hashed, add everything from si+1 up to the match length. + winStart := si + 1 + if ws := si + mLen - winSize; ws > winStart { + winStart = ws + } + for si, ml := winStart, si+mLen; si < ml; { + match >>= 8 + match |= uint32(src[si+3]) << 24 + h := blockHashHC(match) + chainTable[si&winMask] = hashTable[h] + hashTable[h] = si + si++ + } + + lLen := si - anchor + si += mLen + mLen -= minMatch // Match length does not include minMatch. + + if mLen < 0xF { + dst[di] = byte(mLen) + } else { + dst[di] = 0xF + } + + // Encode literals length. + if lLen < 0xF { + dst[di] |= byte(lLen << 4) + } else { + dst[di] |= 0xF0 + di++ + l := lLen - 0xF + for ; l >= 0xFF; l -= 0xFF { + dst[di] = 0xFF + di++ + } + dst[di] = byte(l) + } + di++ + + // Literals. + copy(dst[di:di+lLen], src[anchor:anchor+lLen]) + di += lLen + anchor = si + + // Encode offset. + di += 2 + dst[di-2], dst[di-1] = byte(offset), byte(offset>>8) + + // Encode match length part 2. + if mLen >= 0xF { + for mLen -= 0xF; mLen >= 0xFF; mLen -= 0xFF { + dst[di] = 0xFF + di++ + } + dst[di] = byte(mLen) + di++ + } + } + + if anchor == 0 { + // Incompressible. + return 0, nil + } + + // Last literals. + lLen := len(src) - anchor + if lLen < 0xF { + dst[di] = byte(lLen << 4) + } else { + dst[di] = 0xF0 + di++ + lLen -= 0xF + for ; lLen >= 0xFF; lLen -= 0xFF { + dst[di] = 0xFF + di++ + } + dst[di] = byte(lLen) + } + di++ + + // Write the last literals. + if di >= anchor { + // Incompressible. + return 0, nil + } + di += copy(dst[di:di+len(src)-anchor], src[anchor:]) + return di, nil +} diff --git a/vendor/github.com/pierrec/lz4/debug.go b/vendor/github.com/pierrec/lz4/debug.go new file mode 100644 index 0000000..bc5e78d --- /dev/null +++ b/vendor/github.com/pierrec/lz4/debug.go @@ -0,0 +1,23 @@ +// +build lz4debug + +package lz4 + +import ( + "fmt" + "os" + "path/filepath" + "runtime" +) + +const debugFlag = true + +func debug(args ...interface{}) { + _, file, line, _ := runtime.Caller(1) + file = filepath.Base(file) + + f := fmt.Sprintf("LZ4: %s:%d %s", file, line, args[0]) + if f[len(f)-1] != '\n' { + f += "\n" + } + fmt.Fprintf(os.Stderr, f, args[1:]...) +} diff --git a/vendor/github.com/pierrec/lz4/debug_stub.go b/vendor/github.com/pierrec/lz4/debug_stub.go new file mode 100644 index 0000000..44211ad --- /dev/null +++ b/vendor/github.com/pierrec/lz4/debug_stub.go @@ -0,0 +1,7 @@ +// +build !lz4debug + +package lz4 + +const debugFlag = false + +func debug(args ...interface{}) {} diff --git a/vendor/github.com/pierrec/lz4/decode_amd64.go b/vendor/github.com/pierrec/lz4/decode_amd64.go new file mode 100644 index 0000000..43cc14f --- /dev/null +++ b/vendor/github.com/pierrec/lz4/decode_amd64.go @@ -0,0 +1,8 @@ +// +build !appengine +// +build gc +// +build !noasm + +package lz4 + +//go:noescape +func decodeBlock(dst, src []byte) int diff --git a/vendor/github.com/pierrec/lz4/decode_amd64.s b/vendor/github.com/pierrec/lz4/decode_amd64.s new file mode 100644 index 0000000..20fef39 --- /dev/null +++ b/vendor/github.com/pierrec/lz4/decode_amd64.s @@ -0,0 +1,375 @@ +// +build !appengine +// +build gc +// +build !noasm + +#include "textflag.h" + +// AX scratch +// BX scratch +// CX scratch +// DX token +// +// DI &dst +// SI &src +// R8 &dst + len(dst) +// R9 &src + len(src) +// R11 &dst +// R12 short output end +// R13 short input end +// func decodeBlock(dst, src []byte) int +// using 50 bytes of stack currently +TEXT ·decodeBlock(SB), NOSPLIT, $64-56 + MOVQ dst_base+0(FP), DI + MOVQ DI, R11 + MOVQ dst_len+8(FP), R8 + ADDQ DI, R8 + + MOVQ src_base+24(FP), SI + MOVQ src_len+32(FP), R9 + ADDQ SI, R9 + + // shortcut ends + // short output end + MOVQ R8, R12 + SUBQ $32, R12 + // short input end + MOVQ R9, R13 + SUBQ $16, R13 + +loop: + // for si < len(src) + CMPQ SI, R9 + JGE end + + // token := uint32(src[si]) + MOVBQZX (SI), DX + INCQ SI + + // lit_len = token >> 4 + // if lit_len > 0 + // CX = lit_len + MOVQ DX, CX + SHRQ $4, CX + + // if lit_len != 0xF + CMPQ CX, $0xF + JEQ lit_len_loop_pre + CMPQ DI, R12 + JGE lit_len_loop_pre + CMPQ SI, R13 + JGE lit_len_loop_pre + + // copy shortcut + + // A two-stage shortcut for the most common case: + // 1) If the literal length is 0..14, and there is enough space, + // enter the shortcut and copy 16 bytes on behalf of the literals + // (in the fast mode, only 8 bytes can be safely copied this way). + // 2) Further if the match length is 4..18, copy 18 bytes in a similar + // manner; but we ensure that there's enough space in the output for + // those 18 bytes earlier, upon entering the shortcut (in other words, + // there is a combined check for both stages). + + // copy literal + MOVOU (SI), X0 + MOVOU X0, (DI) + ADDQ CX, DI + ADDQ CX, SI + + MOVQ DX, CX + ANDQ $0xF, CX + + // The second stage: prepare for match copying, decode full info. + // If it doesn't work out, the info won't be wasted. + // offset := uint16(data[:2]) + MOVWQZX (SI), DX + ADDQ $2, SI + + MOVQ DI, AX + SUBQ DX, AX + CMPQ AX, DI + JGT err_short_buf + + // if we can't do the second stage then jump straight to read the + // match length, we already have the offset. + CMPQ CX, $0xF + JEQ match_len_loop_pre + CMPQ DX, $8 + JLT match_len_loop_pre + CMPQ AX, R11 + JLT err_short_buf + + // memcpy(op + 0, match + 0, 8); + MOVQ (AX), BX + MOVQ BX, (DI) + // memcpy(op + 8, match + 8, 8); + MOVQ 8(AX), BX + MOVQ BX, 8(DI) + // memcpy(op +16, match +16, 2); + MOVW 16(AX), BX + MOVW BX, 16(DI) + + ADDQ $4, DI // minmatch + ADDQ CX, DI + + // shortcut complete, load next token + JMP loop + +lit_len_loop_pre: + // if lit_len > 0 + CMPQ CX, $0 + JEQ offset + CMPQ CX, $0xF + JNE copy_literal + +lit_len_loop: + // for src[si] == 0xFF + CMPB (SI), $0xFF + JNE lit_len_finalise + + // bounds check src[si+1] + MOVQ SI, AX + ADDQ $1, AX + CMPQ AX, R9 + JGT err_short_buf + + // lit_len += 0xFF + ADDQ $0xFF, CX + INCQ SI + JMP lit_len_loop + +lit_len_finalise: + // lit_len += int(src[si]) + // si++ + MOVBQZX (SI), AX + ADDQ AX, CX + INCQ SI + +copy_literal: + // bounds check src and dst + MOVQ SI, AX + ADDQ CX, AX + CMPQ AX, R9 + JGT err_short_buf + + MOVQ DI, AX + ADDQ CX, AX + CMPQ AX, R8 + JGT err_short_buf + + // whats a good cut off to call memmove? + CMPQ CX, $16 + JGT memmove_lit + + // if len(dst[di:]) < 16 + MOVQ R8, AX + SUBQ DI, AX + CMPQ AX, $16 + JLT memmove_lit + + // if len(src[si:]) < 16 + MOVQ R9, AX + SUBQ SI, AX + CMPQ AX, $16 + JLT memmove_lit + + MOVOU (SI), X0 + MOVOU X0, (DI) + + JMP finish_lit_copy + +memmove_lit: + // memmove(to, from, len) + MOVQ DI, 0(SP) + MOVQ SI, 8(SP) + MOVQ CX, 16(SP) + // spill + MOVQ DI, 24(SP) + MOVQ SI, 32(SP) + MOVQ CX, 40(SP) // need len to inc SI, DI after + MOVB DX, 48(SP) + CALL runtime·memmove(SB) + + // restore registers + MOVQ 24(SP), DI + MOVQ 32(SP), SI + MOVQ 40(SP), CX + MOVB 48(SP), DX + + // recalc initial values + MOVQ dst_base+0(FP), R8 + MOVQ R8, R11 + ADDQ dst_len+8(FP), R8 + MOVQ src_base+24(FP), R9 + ADDQ src_len+32(FP), R9 + MOVQ R8, R12 + SUBQ $32, R12 + MOVQ R9, R13 + SUBQ $16, R13 + +finish_lit_copy: + ADDQ CX, SI + ADDQ CX, DI + + CMPQ SI, R9 + JGE end + +offset: + // CX := mLen + // free up DX to use for offset + MOVQ DX, CX + + MOVQ SI, AX + ADDQ $2, AX + CMPQ AX, R9 + JGT err_short_buf + + // offset + // DX := int(src[si]) | int(src[si+1])<<8 + MOVWQZX (SI), DX + ADDQ $2, SI + + // 0 offset is invalid + CMPQ DX, $0 + JEQ err_corrupt + + ANDB $0xF, CX + +match_len_loop_pre: + // if mlen != 0xF + CMPB CX, $0xF + JNE copy_match + +match_len_loop: + // for src[si] == 0xFF + // lit_len += 0xFF + CMPB (SI), $0xFF + JNE match_len_finalise + + // bounds check src[si+1] + MOVQ SI, AX + ADDQ $1, AX + CMPQ AX, R9 + JGT err_short_buf + + ADDQ $0xFF, CX + INCQ SI + JMP match_len_loop + +match_len_finalise: + // lit_len += int(src[si]) + // si++ + MOVBQZX (SI), AX + ADDQ AX, CX + INCQ SI + +copy_match: + // mLen += minMatch + ADDQ $4, CX + + // check we have match_len bytes left in dst + // di+match_len < len(dst) + MOVQ DI, AX + ADDQ CX, AX + CMPQ AX, R8 + JGT err_short_buf + + // DX = offset + // CX = match_len + // BX = &dst + (di - offset) + MOVQ DI, BX + SUBQ DX, BX + + // check BX is within dst + // if BX < &dst + CMPQ BX, R11 + JLT err_short_buf + + // if offset + match_len < di + MOVQ BX, AX + ADDQ CX, AX + CMPQ DI, AX + JGT copy_interior_match + + // AX := len(dst[:di]) + // MOVQ DI, AX + // SUBQ R11, AX + + // copy 16 bytes at a time + // if di-offset < 16 copy 16-(di-offset) bytes to di + // then do the remaining + +copy_match_loop: + // for match_len >= 0 + // dst[di] = dst[i] + // di++ + // i++ + MOVB (BX), AX + MOVB AX, (DI) + INCQ DI + INCQ BX + DECQ CX + + CMPQ CX, $0 + JGT copy_match_loop + + JMP loop + +copy_interior_match: + CMPQ CX, $16 + JGT memmove_match + + // if len(dst[di:]) < 16 + MOVQ R8, AX + SUBQ DI, AX + CMPQ AX, $16 + JLT memmove_match + + MOVOU (BX), X0 + MOVOU X0, (DI) + + ADDQ CX, DI + JMP loop + +memmove_match: + // memmove(to, from, len) + MOVQ DI, 0(SP) + MOVQ BX, 8(SP) + MOVQ CX, 16(SP) + // spill + MOVQ DI, 24(SP) + MOVQ SI, 32(SP) + MOVQ CX, 40(SP) // need len to inc SI, DI after + CALL runtime·memmove(SB) + + // restore registers + MOVQ 24(SP), DI + MOVQ 32(SP), SI + MOVQ 40(SP), CX + + // recalc initial values + MOVQ dst_base+0(FP), R8 + MOVQ R8, R11 // TODO: make these sensible numbers + ADDQ dst_len+8(FP), R8 + MOVQ src_base+24(FP), R9 + ADDQ src_len+32(FP), R9 + MOVQ R8, R12 + SUBQ $32, R12 + MOVQ R9, R13 + SUBQ $16, R13 + + ADDQ CX, DI + JMP loop + +err_corrupt: + MOVQ $-1, ret+48(FP) + RET + +err_short_buf: + MOVQ $-2, ret+48(FP) + RET + +end: + SUBQ R11, DI + MOVQ DI, ret+48(FP) + RET diff --git a/vendor/github.com/pierrec/lz4/decode_other.go b/vendor/github.com/pierrec/lz4/decode_other.go new file mode 100644 index 0000000..919888e --- /dev/null +++ b/vendor/github.com/pierrec/lz4/decode_other.go @@ -0,0 +1,98 @@ +// +build !amd64 appengine !gc noasm + +package lz4 + +func decodeBlock(dst, src []byte) (ret int) { + const hasError = -2 + defer func() { + if recover() != nil { + ret = hasError + } + }() + + var si, di int + for { + // Literals and match lengths (token). + b := int(src[si]) + si++ + + // Literals. + if lLen := b >> 4; lLen > 0 { + switch { + case lLen < 0xF && si+16 < len(src): + // Shortcut 1 + // if we have enough room in src and dst, and the literals length + // is small enough (0..14) then copy all 16 bytes, even if not all + // are part of the literals. + copy(dst[di:], src[si:si+16]) + si += lLen + di += lLen + if mLen := b & 0xF; mLen < 0xF { + // Shortcut 2 + // if the match length (4..18) fits within the literals, then copy + // all 18 bytes, even if not all are part of the literals. + mLen += 4 + if offset := int(src[si]) | int(src[si+1])<<8; mLen <= offset { + i := di - offset + end := i + 18 + if end > len(dst) { + // The remaining buffer may not hold 18 bytes. + // See https://github.com/pierrec/lz4/issues/51. + end = len(dst) + } + copy(dst[di:], dst[i:end]) + si += 2 + di += mLen + continue + } + } + case lLen == 0xF: + for src[si] == 0xFF { + lLen += 0xFF + si++ + } + lLen += int(src[si]) + si++ + fallthrough + default: + copy(dst[di:di+lLen], src[si:si+lLen]) + si += lLen + di += lLen + } + } + if si >= len(src) { + return di + } + + offset := int(src[si]) | int(src[si+1])<<8 + if offset == 0 { + return hasError + } + si += 2 + + // Match. + mLen := b & 0xF + if mLen == 0xF { + for src[si] == 0xFF { + mLen += 0xFF + si++ + } + mLen += int(src[si]) + si++ + } + mLen += minMatch + + // Copy the match. + expanded := dst[di-offset:] + if mLen > offset { + // Efficiently copy the match dst[di-offset:di] into the dst slice. + bytesToCopy := offset * (mLen / offset) + for n := offset; n <= bytesToCopy+offset; n *= 2 { + copy(expanded[n:], expanded[:n]) + } + di += bytesToCopy + mLen -= bytesToCopy + } + di += copy(dst[di:di+mLen], expanded[:mLen]) + } +} diff --git a/vendor/github.com/pierrec/lz4/errors.go b/vendor/github.com/pierrec/lz4/errors.go new file mode 100644 index 0000000..1c45d18 --- /dev/null +++ b/vendor/github.com/pierrec/lz4/errors.go @@ -0,0 +1,30 @@ +package lz4 + +import ( + "errors" + "fmt" + "os" + rdebug "runtime/debug" +) + +var ( + // ErrInvalidSourceShortBuffer is returned by UncompressBlock or CompressBLock when a compressed + // block is corrupted or the destination buffer is not large enough for the uncompressed data. + ErrInvalidSourceShortBuffer = errors.New("lz4: invalid source or destination buffer too short") + // ErrInvalid is returned when reading an invalid LZ4 archive. + ErrInvalid = errors.New("lz4: bad magic number") + // ErrBlockDependency is returned when attempting to decompress an archive created with block dependency. + ErrBlockDependency = errors.New("lz4: block dependency not supported") + // ErrUnsupportedSeek is returned when attempting to Seek any way but forward from the current position. + ErrUnsupportedSeek = errors.New("lz4: can only seek forward from io.SeekCurrent") +) + +func recoverBlock(e *error) { + if r := recover(); r != nil && *e == nil { + if debugFlag { + fmt.Fprintln(os.Stderr, r) + rdebug.PrintStack() + } + *e = ErrInvalidSourceShortBuffer + } +} diff --git a/vendor/github.com/pierrec/lz4/internal/xxh32/xxh32zero.go b/vendor/github.com/pierrec/lz4/internal/xxh32/xxh32zero.go new file mode 100644 index 0000000..7a76a6b --- /dev/null +++ b/vendor/github.com/pierrec/lz4/internal/xxh32/xxh32zero.go @@ -0,0 +1,223 @@ +// Package xxh32 implements the very fast XXH hashing algorithm (32 bits version). +// (https://github.com/Cyan4973/XXH/) +package xxh32 + +import ( + "encoding/binary" +) + +const ( + prime1 uint32 = 2654435761 + prime2 uint32 = 2246822519 + prime3 uint32 = 3266489917 + prime4 uint32 = 668265263 + prime5 uint32 = 374761393 + + primeMask = 0xFFFFFFFF + prime1plus2 = uint32((uint64(prime1) + uint64(prime2)) & primeMask) // 606290984 + prime1minus = uint32((-int64(prime1)) & primeMask) // 1640531535 +) + +// XXHZero represents an xxhash32 object with seed 0. +type XXHZero struct { + v1 uint32 + v2 uint32 + v3 uint32 + v4 uint32 + totalLen uint64 + buf [16]byte + bufused int +} + +// Sum appends the current hash to b and returns the resulting slice. +// It does not change the underlying hash state. +func (xxh XXHZero) Sum(b []byte) []byte { + h32 := xxh.Sum32() + return append(b, byte(h32), byte(h32>>8), byte(h32>>16), byte(h32>>24)) +} + +// Reset resets the Hash to its initial state. +func (xxh *XXHZero) Reset() { + xxh.v1 = prime1plus2 + xxh.v2 = prime2 + xxh.v3 = 0 + xxh.v4 = prime1minus + xxh.totalLen = 0 + xxh.bufused = 0 +} + +// Size returns the number of bytes returned by Sum(). +func (xxh *XXHZero) Size() int { + return 4 +} + +// BlockSize gives the minimum number of bytes accepted by Write(). +func (xxh *XXHZero) BlockSize() int { + return 1 +} + +// Write adds input bytes to the Hash. +// It never returns an error. +func (xxh *XXHZero) Write(input []byte) (int, error) { + if xxh.totalLen == 0 { + xxh.Reset() + } + n := len(input) + m := xxh.bufused + + xxh.totalLen += uint64(n) + + r := len(xxh.buf) - m + if n < r { + copy(xxh.buf[m:], input) + xxh.bufused += len(input) + return n, nil + } + + p := 0 + // Causes compiler to work directly from registers instead of stack: + v1, v2, v3, v4 := xxh.v1, xxh.v2, xxh.v3, xxh.v4 + if m > 0 { + // some data left from previous update + copy(xxh.buf[xxh.bufused:], input[:r]) + xxh.bufused += len(input) - r + + // fast rotl(13) + buf := xxh.buf[:16] // BCE hint. + v1 = rol13(v1+binary.LittleEndian.Uint32(buf[:])*prime2) * prime1 + v2 = rol13(v2+binary.LittleEndian.Uint32(buf[4:])*prime2) * prime1 + v3 = rol13(v3+binary.LittleEndian.Uint32(buf[8:])*prime2) * prime1 + v4 = rol13(v4+binary.LittleEndian.Uint32(buf[12:])*prime2) * prime1 + p = r + xxh.bufused = 0 + } + + for n := n - 16; p <= n; p += 16 { + sub := input[p:][:16] //BCE hint for compiler + v1 = rol13(v1+binary.LittleEndian.Uint32(sub[:])*prime2) * prime1 + v2 = rol13(v2+binary.LittleEndian.Uint32(sub[4:])*prime2) * prime1 + v3 = rol13(v3+binary.LittleEndian.Uint32(sub[8:])*prime2) * prime1 + v4 = rol13(v4+binary.LittleEndian.Uint32(sub[12:])*prime2) * prime1 + } + xxh.v1, xxh.v2, xxh.v3, xxh.v4 = v1, v2, v3, v4 + + copy(xxh.buf[xxh.bufused:], input[p:]) + xxh.bufused += len(input) - p + + return n, nil +} + +// Sum32 returns the 32 bits Hash value. +func (xxh *XXHZero) Sum32() uint32 { + h32 := uint32(xxh.totalLen) + if h32 >= 16 { + h32 += rol1(xxh.v1) + rol7(xxh.v2) + rol12(xxh.v3) + rol18(xxh.v4) + } else { + h32 += prime5 + } + + p := 0 + n := xxh.bufused + buf := xxh.buf + for n := n - 4; p <= n; p += 4 { + h32 += binary.LittleEndian.Uint32(buf[p:p+4]) * prime3 + h32 = rol17(h32) * prime4 + } + for ; p < n; p++ { + h32 += uint32(buf[p]) * prime5 + h32 = rol11(h32) * prime1 + } + + h32 ^= h32 >> 15 + h32 *= prime2 + h32 ^= h32 >> 13 + h32 *= prime3 + h32 ^= h32 >> 16 + + return h32 +} + +// ChecksumZero returns the 32bits Hash value. +func ChecksumZero(input []byte) uint32 { + n := len(input) + h32 := uint32(n) + + if n < 16 { + h32 += prime5 + } else { + v1 := prime1plus2 + v2 := prime2 + v3 := uint32(0) + v4 := prime1minus + p := 0 + for n := n - 16; p <= n; p += 16 { + sub := input[p:][:16] //BCE hint for compiler + v1 = rol13(v1+binary.LittleEndian.Uint32(sub[:])*prime2) * prime1 + v2 = rol13(v2+binary.LittleEndian.Uint32(sub[4:])*prime2) * prime1 + v3 = rol13(v3+binary.LittleEndian.Uint32(sub[8:])*prime2) * prime1 + v4 = rol13(v4+binary.LittleEndian.Uint32(sub[12:])*prime2) * prime1 + } + input = input[p:] + n -= p + h32 += rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) + } + + p := 0 + for n := n - 4; p <= n; p += 4 { + h32 += binary.LittleEndian.Uint32(input[p:p+4]) * prime3 + h32 = rol17(h32) * prime4 + } + for p < n { + h32 += uint32(input[p]) * prime5 + h32 = rol11(h32) * prime1 + p++ + } + + h32 ^= h32 >> 15 + h32 *= prime2 + h32 ^= h32 >> 13 + h32 *= prime3 + h32 ^= h32 >> 16 + + return h32 +} + +// Uint32Zero hashes x with seed 0. +func Uint32Zero(x uint32) uint32 { + h := prime5 + 4 + x*prime3 + h = rol17(h) * prime4 + h ^= h >> 15 + h *= prime2 + h ^= h >> 13 + h *= prime3 + h ^= h >> 16 + return h +} + +func rol1(u uint32) uint32 { + return u<<1 | u>>31 +} + +func rol7(u uint32) uint32 { + return u<<7 | u>>25 +} + +func rol11(u uint32) uint32 { + return u<<11 | u>>21 +} + +func rol12(u uint32) uint32 { + return u<<12 | u>>20 +} + +func rol13(u uint32) uint32 { + return u<<13 | u>>19 +} + +func rol17(u uint32) uint32 { + return u<<17 | u>>15 +} + +func rol18(u uint32) uint32 { + return u<<18 | u>>14 +} diff --git a/vendor/github.com/pierrec/lz4/lz4.go b/vendor/github.com/pierrec/lz4/lz4.go new file mode 100644 index 0000000..29864d8 --- /dev/null +++ b/vendor/github.com/pierrec/lz4/lz4.go @@ -0,0 +1,113 @@ +// Package lz4 implements reading and writing lz4 compressed data (a frame), +// as specified in http://fastcompression.blogspot.fr/2013/04/lz4-streaming-format-final.html. +// +// Although the block level compression and decompression functions are exposed and are fully compatible +// with the lz4 block format definition, they are low level and should not be used directly. +// For a complete description of an lz4 compressed block, see: +// http://fastcompression.blogspot.fr/2011/05/lz4-explained.html +// +// See https://github.com/Cyan4973/lz4 for the reference C implementation. +// +package lz4 + +import "math/bits" + +import "sync" + +const ( + // Extension is the LZ4 frame file name extension + Extension = ".lz4" + // Version is the LZ4 frame format version + Version = 1 + + frameMagic uint32 = 0x184D2204 + frameSkipMagic uint32 = 0x184D2A50 + + // The following constants are used to setup the compression algorithm. + minMatch = 4 // the minimum size of the match sequence size (4 bytes) + winSizeLog = 16 // LZ4 64Kb window size limit + winSize = 1 << winSizeLog + winMask = winSize - 1 // 64Kb window of previous data for dependent blocks + compressedBlockFlag = 1 << 31 + compressedBlockMask = compressedBlockFlag - 1 + + // hashLog determines the size of the hash table used to quickly find a previous match position. + // Its value influences the compression speed and memory usage, the lower the faster, + // but at the expense of the compression ratio. + // 16 seems to be the best compromise for fast compression. + hashLog = 16 + htSize = 1 << hashLog + + mfLimit = 10 + minMatch // The last match cannot start within the last 14 bytes. +) + +// map the block max size id with its value in bytes: 64Kb, 256Kb, 1Mb and 4Mb. +const ( + blockSize64K = 1 << (16 + 2*iota) + blockSize256K + blockSize1M + blockSize4M +) + +var ( + // Keep a pool of buffers for each valid block sizes. + bsMapValue = [...]*sync.Pool{ + newBufferPool(2 * blockSize64K), + newBufferPool(2 * blockSize256K), + newBufferPool(2 * blockSize1M), + newBufferPool(2 * blockSize4M), + } +) + +// newBufferPool returns a pool for buffers of the given size. +func newBufferPool(size int) *sync.Pool { + return &sync.Pool{ + New: func() interface{} { + return make([]byte, size) + }, + } +} + +// getBuffer returns a buffer to its pool. +func getBuffer(size int) []byte { + idx := blockSizeValueToIndex(size) - 4 + return bsMapValue[idx].Get().([]byte) +} + +// putBuffer returns a buffer to its pool. +func putBuffer(size int, buf []byte) { + if cap(buf) > 0 { + idx := blockSizeValueToIndex(size) - 4 + bsMapValue[idx].Put(buf[:cap(buf)]) + } +} +func blockSizeIndexToValue(i byte) int { + return 1 << (16 + 2*uint(i)) +} +func isValidBlockSize(size int) bool { + const blockSizeMask = blockSize64K | blockSize256K | blockSize1M | blockSize4M + + return size&blockSizeMask > 0 && bits.OnesCount(uint(size)) == 1 +} +func blockSizeValueToIndex(size int) byte { + return 4 + byte(bits.TrailingZeros(uint(size)>>16)/2) +} + +// Header describes the various flags that can be set on a Writer or obtained from a Reader. +// The default values match those of the LZ4 frame format definition +// (http://fastcompression.blogspot.com/2013/04/lz4-streaming-format-final.html). +// +// NB. in a Reader, in case of concatenated frames, the Header values may change between Read() calls. +// It is the caller responsibility to check them if necessary. +type Header struct { + BlockChecksum bool // Compressed blocks checksum flag. + NoChecksum bool // Frame checksum flag. + BlockMaxSize int // Size of the uncompressed data block (one of [64KB, 256KB, 1MB, 4MB]). Default=4MB. + Size uint64 // Frame total size. It is _not_ computed by the Writer. + CompressionLevel int // Compression level (higher is better, use 0 for fastest compression). + done bool // Header processed flag (Read or Write and checked). +} + +func (h *Header) Reset() { + h.done = false +} diff --git a/vendor/github.com/pierrec/lz4/lz4_go1.10.go b/vendor/github.com/pierrec/lz4/lz4_go1.10.go new file mode 100644 index 0000000..9a0fb00 --- /dev/null +++ b/vendor/github.com/pierrec/lz4/lz4_go1.10.go @@ -0,0 +1,29 @@ +//+build go1.10 + +package lz4 + +import ( + "fmt" + "strings" +) + +func (h Header) String() string { + var s strings.Builder + + s.WriteString(fmt.Sprintf("%T{", h)) + if h.BlockChecksum { + s.WriteString("BlockChecksum: true ") + } + if h.NoChecksum { + s.WriteString("NoChecksum: true ") + } + if bs := h.BlockMaxSize; bs != 0 && bs != 4<<20 { + s.WriteString(fmt.Sprintf("BlockMaxSize: %d ", bs)) + } + if l := h.CompressionLevel; l != 0 { + s.WriteString(fmt.Sprintf("CompressionLevel: %d ", l)) + } + s.WriteByte('}') + + return s.String() +} diff --git a/vendor/github.com/pierrec/lz4/lz4_notgo1.10.go b/vendor/github.com/pierrec/lz4/lz4_notgo1.10.go new file mode 100644 index 0000000..12c761a --- /dev/null +++ b/vendor/github.com/pierrec/lz4/lz4_notgo1.10.go @@ -0,0 +1,29 @@ +//+build !go1.10 + +package lz4 + +import ( + "bytes" + "fmt" +) + +func (h Header) String() string { + var s bytes.Buffer + + s.WriteString(fmt.Sprintf("%T{", h)) + if h.BlockChecksum { + s.WriteString("BlockChecksum: true ") + } + if h.NoChecksum { + s.WriteString("NoChecksum: true ") + } + if bs := h.BlockMaxSize; bs != 0 && bs != 4<<20 { + s.WriteString(fmt.Sprintf("BlockMaxSize: %d ", bs)) + } + if l := h.CompressionLevel; l != 0 { + s.WriteString(fmt.Sprintf("CompressionLevel: %d ", l)) + } + s.WriteByte('}') + + return s.String() +} diff --git a/vendor/github.com/pierrec/lz4/reader.go b/vendor/github.com/pierrec/lz4/reader.go new file mode 100644 index 0000000..87dd72b --- /dev/null +++ b/vendor/github.com/pierrec/lz4/reader.go @@ -0,0 +1,335 @@ +package lz4 + +import ( + "encoding/binary" + "fmt" + "io" + "io/ioutil" + + "github.com/pierrec/lz4/internal/xxh32" +) + +// Reader implements the LZ4 frame decoder. +// The Header is set after the first call to Read(). +// The Header may change between Read() calls in case of concatenated frames. +type Reader struct { + Header + // Handler called when a block has been successfully read. + // It provides the number of bytes read. + OnBlockDone func(size int) + + buf [8]byte // Scrap buffer. + pos int64 // Current position in src. + src io.Reader // Source. + zdata []byte // Compressed data. + data []byte // Uncompressed data. + idx int // Index of unread bytes into data. + checksum xxh32.XXHZero // Frame hash. + skip int64 // Bytes to skip before next read. + dpos int64 // Position in dest +} + +// NewReader returns a new LZ4 frame decoder. +// No access to the underlying io.Reader is performed. +func NewReader(src io.Reader) *Reader { + r := &Reader{src: src} + return r +} + +// readHeader checks the frame magic number and parses the frame descriptoz. +// Skippable frames are supported even as a first frame although the LZ4 +// specifications recommends skippable frames not to be used as first frames. +func (z *Reader) readHeader(first bool) error { + defer z.checksum.Reset() + + buf := z.buf[:] + for { + magic, err := z.readUint32() + if err != nil { + z.pos += 4 + if !first && err == io.ErrUnexpectedEOF { + return io.EOF + } + return err + } + if magic == frameMagic { + break + } + if magic>>8 != frameSkipMagic>>8 { + return ErrInvalid + } + skipSize, err := z.readUint32() + if err != nil { + return err + } + z.pos += 4 + m, err := io.CopyN(ioutil.Discard, z.src, int64(skipSize)) + if err != nil { + return err + } + z.pos += m + } + + // Header. + if _, err := io.ReadFull(z.src, buf[:2]); err != nil { + return err + } + z.pos += 8 + + b := buf[0] + if v := b >> 6; v != Version { + return fmt.Errorf("lz4: invalid version: got %d; expected %d", v, Version) + } + if b>>5&1 == 0 { + return ErrBlockDependency + } + z.BlockChecksum = b>>4&1 > 0 + frameSize := b>>3&1 > 0 + z.NoChecksum = b>>2&1 == 0 + + bmsID := buf[1] >> 4 & 0x7 + if bmsID < 4 || bmsID > 7 { + return fmt.Errorf("lz4: invalid block max size ID: %d", bmsID) + } + bSize := blockSizeIndexToValue(bmsID - 4) + z.BlockMaxSize = bSize + + // Allocate the compressed/uncompressed buffers. + // The compressed buffer cannot exceed the uncompressed one. + if n := 2 * bSize; cap(z.zdata) < n { + z.zdata = make([]byte, n, n) + } + if debugFlag { + debug("header block max size id=%d size=%d", bmsID, bSize) + } + z.zdata = z.zdata[:bSize] + z.data = z.zdata[:cap(z.zdata)][bSize:] + z.idx = len(z.data) + + _, _ = z.checksum.Write(buf[0:2]) + + if frameSize { + buf := buf[:8] + if _, err := io.ReadFull(z.src, buf); err != nil { + return err + } + z.Size = binary.LittleEndian.Uint64(buf) + z.pos += 8 + _, _ = z.checksum.Write(buf) + } + + // Header checksum. + if _, err := io.ReadFull(z.src, buf[:1]); err != nil { + return err + } + z.pos++ + if h := byte(z.checksum.Sum32() >> 8 & 0xFF); h != buf[0] { + return fmt.Errorf("lz4: invalid header checksum: got %x; expected %x", buf[0], h) + } + + z.Header.done = true + if debugFlag { + debug("header read: %v", z.Header) + } + + return nil +} + +// Read decompresses data from the underlying source into the supplied buffer. +// +// Since there can be multiple streams concatenated, Header values may +// change between calls to Read(). If that is the case, no data is actually read from +// the underlying io.Reader, to allow for potential input buffer resizing. +func (z *Reader) Read(buf []byte) (int, error) { + if debugFlag { + debug("Read buf len=%d", len(buf)) + } + if !z.Header.done { + if err := z.readHeader(true); err != nil { + return 0, err + } + if debugFlag { + debug("header read OK compressed buffer %d / %d uncompressed buffer %d : %d index=%d", + len(z.zdata), cap(z.zdata), len(z.data), cap(z.data), z.idx) + } + } + + if len(buf) == 0 { + return 0, nil + } + + if z.idx == len(z.data) { + // No data ready for reading, process the next block. + if debugFlag { + debug("reading block from writer") + } + // Reset uncompressed buffer + z.data = z.zdata[:cap(z.zdata)][len(z.zdata):] + + // Block length: 0 = end of frame, highest bit set: uncompressed. + bLen, err := z.readUint32() + if err != nil { + return 0, err + } + z.pos += 4 + + if bLen == 0 { + // End of frame reached. + if !z.NoChecksum { + // Validate the frame checksum. + checksum, err := z.readUint32() + if err != nil { + return 0, err + } + if debugFlag { + debug("frame checksum got=%x / want=%x", z.checksum.Sum32(), checksum) + } + z.pos += 4 + if h := z.checksum.Sum32(); checksum != h { + return 0, fmt.Errorf("lz4: invalid frame checksum: got %x; expected %x", h, checksum) + } + } + + // Get ready for the next concatenated frame and keep the position. + pos := z.pos + z.Reset(z.src) + z.pos = pos + + // Since multiple frames can be concatenated, check for more. + return 0, z.readHeader(false) + } + + if debugFlag { + debug("raw block size %d", bLen) + } + if bLen&compressedBlockFlag > 0 { + // Uncompressed block. + bLen &= compressedBlockMask + if debugFlag { + debug("uncompressed block size %d", bLen) + } + if int(bLen) > cap(z.data) { + return 0, fmt.Errorf("lz4: invalid block size: %d", bLen) + } + z.data = z.data[:bLen] + if _, err := io.ReadFull(z.src, z.data); err != nil { + return 0, err + } + z.pos += int64(bLen) + if z.OnBlockDone != nil { + z.OnBlockDone(int(bLen)) + } + + if z.BlockChecksum { + checksum, err := z.readUint32() + if err != nil { + return 0, err + } + z.pos += 4 + + if h := xxh32.ChecksumZero(z.data); h != checksum { + return 0, fmt.Errorf("lz4: invalid block checksum: got %x; expected %x", h, checksum) + } + } + + } else { + // Compressed block. + if debugFlag { + debug("compressed block size %d", bLen) + } + if int(bLen) > cap(z.data) { + return 0, fmt.Errorf("lz4: invalid block size: %d", bLen) + } + zdata := z.zdata[:bLen] + if _, err := io.ReadFull(z.src, zdata); err != nil { + return 0, err + } + z.pos += int64(bLen) + + if z.BlockChecksum { + checksum, err := z.readUint32() + if err != nil { + return 0, err + } + z.pos += 4 + + if h := xxh32.ChecksumZero(zdata); h != checksum { + return 0, fmt.Errorf("lz4: invalid block checksum: got %x; expected %x", h, checksum) + } + } + + n, err := UncompressBlock(zdata, z.data) + if err != nil { + return 0, err + } + z.data = z.data[:n] + if z.OnBlockDone != nil { + z.OnBlockDone(n) + } + } + + if !z.NoChecksum { + _, _ = z.checksum.Write(z.data) + if debugFlag { + debug("current frame checksum %x", z.checksum.Sum32()) + } + } + z.idx = 0 + } + + if z.skip > int64(len(z.data[z.idx:])) { + z.skip -= int64(len(z.data[z.idx:])) + z.dpos += int64(len(z.data[z.idx:])) + z.idx = len(z.data) + return 0, nil + } + + z.idx += int(z.skip) + z.dpos += z.skip + z.skip = 0 + + n := copy(buf, z.data[z.idx:]) + z.idx += n + z.dpos += int64(n) + if debugFlag { + debug("copied %d bytes to input", n) + } + + return n, nil +} + +// Seek implements io.Seeker, but supports seeking forward from the current +// position only. Any other seek will return an error. Allows skipping output +// bytes which aren't needed, which in some scenarios is faster than reading +// and discarding them. +// Note this may cause future calls to Read() to read 0 bytes if all of the +// data they would have returned is skipped. +func (z *Reader) Seek(offset int64, whence int) (int64, error) { + if offset < 0 || whence != io.SeekCurrent { + return z.dpos + z.skip, ErrUnsupportedSeek + } + z.skip += offset + return z.dpos + z.skip, nil +} + +// Reset discards the Reader's state and makes it equivalent to the +// result of its original state from NewReader, but reading from r instead. +// This permits reusing a Reader rather than allocating a new one. +func (z *Reader) Reset(r io.Reader) { + z.Header = Header{} + z.pos = 0 + z.src = r + z.zdata = z.zdata[:0] + z.data = z.data[:0] + z.idx = 0 + z.checksum.Reset() +} + +// readUint32 reads an uint32 into the supplied buffer. +// The idea is to make use of the already allocated buffers avoiding additional allocations. +func (z *Reader) readUint32() (uint32, error) { + buf := z.buf[:4] + _, err := io.ReadFull(z.src, buf) + x := binary.LittleEndian.Uint32(buf) + return x, err +} diff --git a/vendor/github.com/pierrec/lz4/writer.go b/vendor/github.com/pierrec/lz4/writer.go new file mode 100644 index 0000000..324f138 --- /dev/null +++ b/vendor/github.com/pierrec/lz4/writer.go @@ -0,0 +1,408 @@ +package lz4 + +import ( + "encoding/binary" + "fmt" + "github.com/pierrec/lz4/internal/xxh32" + "io" + "runtime" +) + +// zResult contains the results of compressing a block. +type zResult struct { + size uint32 // Block header + data []byte // Compressed data + checksum uint32 // Data checksum +} + +// Writer implements the LZ4 frame encoder. +type Writer struct { + Header + // Handler called when a block has been successfully written out. + // It provides the number of bytes written. + OnBlockDone func(size int) + + buf [19]byte // magic number(4) + header(flags(2)+[Size(8)+DictID(4)]+checksum(1)) does not exceed 19 bytes + dst io.Writer // Destination. + checksum xxh32.XXHZero // Frame checksum. + data []byte // Data to be compressed + buffer for compressed data. + idx int // Index into data. + hashtable [winSize]int // Hash table used in CompressBlock(). + + // For concurrency. + c chan chan zResult // Channel for block compression goroutines and writer goroutine. + err error // Any error encountered while writing to the underlying destination. +} + +// NewWriter returns a new LZ4 frame encoder. +// No access to the underlying io.Writer is performed. +// The supplied Header is checked at the first Write. +// It is ok to change it before the first Write but then not until a Reset() is performed. +func NewWriter(dst io.Writer) *Writer { + z := new(Writer) + z.Reset(dst) + return z +} + +// WithConcurrency sets the number of concurrent go routines used for compression. +// A negative value sets the concurrency to GOMAXPROCS. +func (z *Writer) WithConcurrency(n int) *Writer { + switch { + case n == 0 || n == 1: + z.c = nil + return z + case n < 0: + n = runtime.GOMAXPROCS(0) + } + z.c = make(chan chan zResult, n) + // Writer goroutine managing concurrent block compression goroutines. + go func() { + // Process next block compression item. + for c := range z.c { + // Read the next compressed block result. + // Waiting here ensures that the blocks are output in the order they were sent. + // The incoming channel is always closed as it indicates to the caller that + // the block has been processed. + res := <-c + n := len(res.data) + if n == 0 { + // Notify the block compression routine that we are done with its result. + // This is used when a sentinel block is sent to terminate the compression. + close(c) + return + } + // Write the block. + if err := z.writeUint32(res.size); err != nil && z.err == nil { + z.err = err + } + if _, err := z.dst.Write(res.data); err != nil && z.err == nil { + z.err = err + } + if z.BlockChecksum { + if err := z.writeUint32(res.checksum); err != nil && z.err == nil { + z.err = err + } + } + if isCompressed := res.size&compressedBlockFlag == 0; isCompressed { + // It is now safe to release the buffer as no longer in use by any goroutine. + putBuffer(cap(res.data), res.data) + } + if h := z.OnBlockDone; h != nil { + h(n) + } + close(c) + } + }() + return z +} + +// newBuffers instantiates new buffers which size matches the one in Header. +// The returned buffers are for decompression and compression respectively. +func (z *Writer) newBuffers() { + bSize := z.Header.BlockMaxSize + buf := getBuffer(bSize) + z.data = buf[:bSize] // Uncompressed buffer is the first half. +} + +// freeBuffers puts the writer's buffers back to the pool. +func (z *Writer) freeBuffers() { + // Put the buffer back into the pool, if any. + putBuffer(z.Header.BlockMaxSize, z.data) + z.data = nil +} + +// writeHeader builds and writes the header (magic+header) to the underlying io.Writer. +func (z *Writer) writeHeader() error { + // Default to 4Mb if BlockMaxSize is not set. + if z.Header.BlockMaxSize == 0 { + z.Header.BlockMaxSize = blockSize4M + } + // The only option that needs to be validated. + bSize := z.Header.BlockMaxSize + if !isValidBlockSize(z.Header.BlockMaxSize) { + return fmt.Errorf("lz4: invalid block max size: %d", bSize) + } + // Allocate the compressed/uncompressed buffers. + // The compressed buffer cannot exceed the uncompressed one. + z.newBuffers() + z.idx = 0 + + // Size is optional. + buf := z.buf[:] + + // Set the fixed size data: magic number, block max size and flags. + binary.LittleEndian.PutUint32(buf[0:], frameMagic) + flg := byte(Version << 6) + flg |= 1 << 5 // No block dependency. + if z.Header.BlockChecksum { + flg |= 1 << 4 + } + if z.Header.Size > 0 { + flg |= 1 << 3 + } + if !z.Header.NoChecksum { + flg |= 1 << 2 + } + buf[4] = flg + buf[5] = blockSizeValueToIndex(z.Header.BlockMaxSize) << 4 + + // Current buffer size: magic(4) + flags(1) + block max size (1). + n := 6 + // Optional items. + if z.Header.Size > 0 { + binary.LittleEndian.PutUint64(buf[n:], z.Header.Size) + n += 8 + } + + // The header checksum includes the flags, block max size and optional Size. + buf[n] = byte(xxh32.ChecksumZero(buf[4:n]) >> 8 & 0xFF) + z.checksum.Reset() + + // Header ready, write it out. + if _, err := z.dst.Write(buf[0 : n+1]); err != nil { + return err + } + z.Header.done = true + if debugFlag { + debug("wrote header %v", z.Header) + } + + return nil +} + +// Write compresses data from the supplied buffer into the underlying io.Writer. +// Write does not return until the data has been written. +func (z *Writer) Write(buf []byte) (int, error) { + if !z.Header.done { + if err := z.writeHeader(); err != nil { + return 0, err + } + } + if debugFlag { + debug("input buffer len=%d index=%d", len(buf), z.idx) + } + + zn := len(z.data) + var n int + for len(buf) > 0 { + if z.idx == 0 && len(buf) >= zn { + // Avoid a copy as there is enough data for a block. + if err := z.compressBlock(buf[:zn]); err != nil { + return n, err + } + n += zn + buf = buf[zn:] + continue + } + // Accumulate the data to be compressed. + m := copy(z.data[z.idx:], buf) + n += m + z.idx += m + buf = buf[m:] + if debugFlag { + debug("%d bytes copied to buf, current index %d", n, z.idx) + } + + if z.idx < len(z.data) { + // Buffer not filled. + if debugFlag { + debug("need more data for compression") + } + return n, nil + } + + // Buffer full. + if err := z.compressBlock(z.data); err != nil { + return n, err + } + z.idx = 0 + } + + return n, nil +} + +// compressBlock compresses a block. +func (z *Writer) compressBlock(data []byte) error { + if !z.NoChecksum { + _, _ = z.checksum.Write(data) + } + + if z.c != nil { + c := make(chan zResult) + z.c <- c // Send now to guarantee order + go writerCompressBlock(c, z.Header, data) + return nil + } + + zdata := z.data[z.Header.BlockMaxSize:cap(z.data)] + // The compressed block size cannot exceed the input's. + var zn int + + if level := z.Header.CompressionLevel; level != 0 { + zn, _ = CompressBlockHC(data, zdata, level) + } else { + zn, _ = CompressBlock(data, zdata, z.hashtable[:]) + } + + var bLen uint32 + if debugFlag { + debug("block compression %d => %d", len(data), zn) + } + if zn > 0 && zn < len(data) { + // Compressible and compressed size smaller than uncompressed: ok! + bLen = uint32(zn) + zdata = zdata[:zn] + } else { + // Uncompressed block. + bLen = uint32(len(data)) | compressedBlockFlag + zdata = data + } + if debugFlag { + debug("block compression to be written len=%d data len=%d", bLen, len(zdata)) + } + + // Write the block. + if err := z.writeUint32(bLen); err != nil { + return err + } + written, err := z.dst.Write(zdata) + if err != nil { + return err + } + if h := z.OnBlockDone; h != nil { + h(written) + } + + if !z.BlockChecksum { + if debugFlag { + debug("current frame checksum %x", z.checksum.Sum32()) + } + return nil + } + checksum := xxh32.ChecksumZero(zdata) + if debugFlag { + debug("block checksum %x", checksum) + defer func() { debug("current frame checksum %x", z.checksum.Sum32()) }() + } + return z.writeUint32(checksum) +} + +// Flush flushes any pending compressed data to the underlying writer. +// Flush does not return until the data has been written. +// If the underlying writer returns an error, Flush returns that error. +func (z *Writer) Flush() error { + if debugFlag { + debug("flush with index %d", z.idx) + } + if z.idx == 0 { + return nil + } + + data := z.data[:z.idx] + z.idx = 0 + if z.c == nil { + return z.compressBlock(data) + } + if !z.NoChecksum { + _, _ = z.checksum.Write(data) + } + c := make(chan zResult) + z.c <- c + writerCompressBlock(c, z.Header, data) + return nil +} + +func (z *Writer) close() error { + if z.c == nil { + return nil + } + // Send a sentinel block (no data to compress) to terminate the writer main goroutine. + c := make(chan zResult) + z.c <- c + c <- zResult{} + // Wait for the main goroutine to complete. + <-c + // At this point the main goroutine has shut down or is about to return. + z.c = nil + return z.err +} + +// Close closes the Writer, flushing any unwritten data to the underlying io.Writer, but does not close the underlying io.Writer. +func (z *Writer) Close() error { + if !z.Header.done { + if err := z.writeHeader(); err != nil { + return err + } + } + if err := z.Flush(); err != nil { + return err + } + if err := z.close(); err != nil { + return err + } + z.freeBuffers() + + if debugFlag { + debug("writing last empty block") + } + if err := z.writeUint32(0); err != nil { + return err + } + if z.NoChecksum { + return nil + } + checksum := z.checksum.Sum32() + if debugFlag { + debug("stream checksum %x", checksum) + } + return z.writeUint32(checksum) +} + +// Reset clears the state of the Writer z such that it is equivalent to its +// initial state from NewWriter, but instead writing to w. +// No access to the underlying io.Writer is performed. +func (z *Writer) Reset(w io.Writer) { + n := cap(z.c) + _ = z.close() + z.freeBuffers() + z.Header.Reset() + z.dst = w + z.checksum.Reset() + z.idx = 0 + z.err = nil + z.WithConcurrency(n) +} + +// writeUint32 writes a uint32 to the underlying writer. +func (z *Writer) writeUint32(x uint32) error { + buf := z.buf[:4] + binary.LittleEndian.PutUint32(buf, x) + _, err := z.dst.Write(buf) + return err +} + +// writerCompressBlock compresses data into a pooled buffer and writes its result +// out to the input channel. +func writerCompressBlock(c chan zResult, header Header, data []byte) { + zdata := getBuffer(header.BlockMaxSize) + // The compressed block size cannot exceed the input's. + var zn int + if level := header.CompressionLevel; level != 0 { + zn, _ = CompressBlockHC(data, zdata, level) + } else { + var hashTable [winSize]int + zn, _ = CompressBlock(data, zdata, hashTable[:]) + } + var res zResult + if zn > 0 && zn < len(data) { + res.size = uint32(zn) + res.data = zdata[:zn] + } else { + res.size = uint32(len(data)) | compressedBlockFlag + res.data = data + } + if header.BlockChecksum { + res.checksum = xxh32.ChecksumZero(res.data) + } + c <- res +} diff --git a/vendor/github.com/prometheus/client_golang/AUTHORS.md b/vendor/github.com/prometheus/client_golang/AUTHORS.md new file mode 100644 index 0000000..c5275d5 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/AUTHORS.md @@ -0,0 +1,18 @@ +The Prometheus project was started by Matt T. Proud (emeritus) and +Julius Volz in 2012. + +Maintainers of this repository: + +* Björn Rabenstein + +The following individuals have contributed code to this repository +(listed in alphabetical order): + +* Bernerd Schaefer +* Björn Rabenstein +* Daniel Bornkessel +* Jeff Younker +* Julius Volz +* Matt T. Proud +* Tobias Schmidt + diff --git a/vendor/github.com/prometheus/client_golang/LICENSE b/vendor/github.com/prometheus/client_golang/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/prometheus/client_golang/NOTICE b/vendor/github.com/prometheus/client_golang/NOTICE new file mode 100644 index 0000000..dd878a3 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/NOTICE @@ -0,0 +1,23 @@ +Prometheus instrumentation library for Go applications +Copyright 2012-2015 The Prometheus Authors + +This product includes software developed at +SoundCloud Ltd. (http://soundcloud.com/). + + +The following components are included in this product: + +perks - a fork of https://github.com/bmizerany/perks +https://github.com/beorn7/perks +Copyright 2013-2015 Blake Mizerany, Björn Rabenstein +See https://github.com/beorn7/perks/blob/master/README.md for license details. + +Go support for Protocol Buffers - Google's data interchange format +http://github.com/golang/protobuf/ +Copyright 2010 The Go Authors +See source code for license details. + +Support for streaming Protocol Buffer messages for the Go language (golang). +https://github.com/matttproud/golang_protobuf_extensions +Copyright 2013 Matt T. Proud +Licensed under the Apache License, Version 2.0 diff --git a/vendor/github.com/prometheus/client_golang/prometheus/.gitignore b/vendor/github.com/prometheus/client_golang/prometheus/.gitignore new file mode 100644 index 0000000..3460f03 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/.gitignore @@ -0,0 +1 @@ +command-line-arguments.test diff --git a/vendor/github.com/prometheus/client_golang/prometheus/README.md b/vendor/github.com/prometheus/client_golang/prometheus/README.md new file mode 100644 index 0000000..44986bf --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/README.md @@ -0,0 +1 @@ +See [![go-doc](https://godoc.org/github.com/prometheus/client_golang/prometheus?status.svg)](https://godoc.org/github.com/prometheus/client_golang/prometheus). diff --git a/vendor/github.com/prometheus/client_golang/prometheus/collector.go b/vendor/github.com/prometheus/client_golang/prometheus/collector.go new file mode 100644 index 0000000..623d3d8 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/collector.go @@ -0,0 +1,75 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +// Collector is the interface implemented by anything that can be used by +// Prometheus to collect metrics. A Collector has to be registered for +// collection. See Registerer.Register. +// +// The stock metrics provided by this package (Gauge, Counter, Summary, +// Histogram, Untyped) are also Collectors (which only ever collect one metric, +// namely itself). An implementer of Collector may, however, collect multiple +// metrics in a coordinated fashion and/or create metrics on the fly. Examples +// for collectors already implemented in this library are the metric vectors +// (i.e. collection of multiple instances of the same Metric but with different +// label values) like GaugeVec or SummaryVec, and the ExpvarCollector. +type Collector interface { + // Describe sends the super-set of all possible descriptors of metrics + // collected by this Collector to the provided channel and returns once + // the last descriptor has been sent. The sent descriptors fulfill the + // consistency and uniqueness requirements described in the Desc + // documentation. (It is valid if one and the same Collector sends + // duplicate descriptors. Those duplicates are simply ignored. However, + // two different Collectors must not send duplicate descriptors.) This + // method idempotently sends the same descriptors throughout the + // lifetime of the Collector. If a Collector encounters an error while + // executing this method, it must send an invalid descriptor (created + // with NewInvalidDesc) to signal the error to the registry. + Describe(chan<- *Desc) + // Collect is called by the Prometheus registry when collecting + // metrics. The implementation sends each collected metric via the + // provided channel and returns once the last metric has been sent. The + // descriptor of each sent metric is one of those returned by + // Describe. Returned metrics that share the same descriptor must differ + // in their variable label values. This method may be called + // concurrently and must therefore be implemented in a concurrency safe + // way. Blocking occurs at the expense of total performance of rendering + // all registered metrics. Ideally, Collector implementations support + // concurrent readers. + Collect(chan<- Metric) +} + +// selfCollector implements Collector for a single Metric so that the Metric +// collects itself. Add it as an anonymous field to a struct that implements +// Metric, and call init with the Metric itself as an argument. +type selfCollector struct { + self Metric +} + +// init provides the selfCollector with a reference to the metric it is supposed +// to collect. It is usually called within the factory function to create a +// metric. See example. +func (c *selfCollector) init(self Metric) { + c.self = self +} + +// Describe implements Collector. +func (c *selfCollector) Describe(ch chan<- *Desc) { + ch <- c.self.Desc() +} + +// Collect implements Collector. +func (c *selfCollector) Collect(ch chan<- Metric) { + ch <- c.self +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/counter.go b/vendor/github.com/prometheus/client_golang/prometheus/counter.go new file mode 100644 index 0000000..ee37949 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/counter.go @@ -0,0 +1,172 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +import ( + "errors" +) + +// Counter is a Metric that represents a single numerical value that only ever +// goes up. That implies that it cannot be used to count items whose number can +// also go down, e.g. the number of currently running goroutines. Those +// "counters" are represented by Gauges. +// +// A Counter is typically used to count requests served, tasks completed, errors +// occurred, etc. +// +// To create Counter instances, use NewCounter. +type Counter interface { + Metric + Collector + + // Set is used to set the Counter to an arbitrary value. It is only used + // if you have to transfer a value from an external counter into this + // Prometheus metric. Do not use it for regular handling of a + // Prometheus counter (as it can be used to break the contract of + // monotonically increasing values). + // + // Deprecated: Use NewConstMetric to create a counter for an external + // value. A Counter should never be set. + Set(float64) + // Inc increments the counter by 1. + Inc() + // Add adds the given value to the counter. It panics if the value is < + // 0. + Add(float64) +} + +// CounterOpts is an alias for Opts. See there for doc comments. +type CounterOpts Opts + +// NewCounter creates a new Counter based on the provided CounterOpts. +func NewCounter(opts CounterOpts) Counter { + desc := NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + nil, + opts.ConstLabels, + ) + result := &counter{value: value{desc: desc, valType: CounterValue, labelPairs: desc.constLabelPairs}} + result.init(result) // Init self-collection. + return result +} + +type counter struct { + value +} + +func (c *counter) Add(v float64) { + if v < 0 { + panic(errors.New("counter cannot decrease in value")) + } + c.value.Add(v) +} + +// CounterVec is a Collector that bundles a set of Counters that all share the +// same Desc, but have different values for their variable labels. This is used +// if you want to count the same thing partitioned by various dimensions +// (e.g. number of HTTP requests, partitioned by response code and +// method). Create instances with NewCounterVec. +// +// CounterVec embeds MetricVec. See there for a full list of methods with +// detailed documentation. +type CounterVec struct { + *MetricVec +} + +// NewCounterVec creates a new CounterVec based on the provided CounterOpts and +// partitioned by the given label names. At least one label name must be +// provided. +func NewCounterVec(opts CounterOpts, labelNames []string) *CounterVec { + desc := NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + labelNames, + opts.ConstLabels, + ) + return &CounterVec{ + MetricVec: newMetricVec(desc, func(lvs ...string) Metric { + result := &counter{value: value{ + desc: desc, + valType: CounterValue, + labelPairs: makeLabelPairs(desc, lvs), + }} + result.init(result) // Init self-collection. + return result + }), + } +} + +// GetMetricWithLabelValues replaces the method of the same name in +// MetricVec. The difference is that this method returns a Counter and not a +// Metric so that no type conversion is required. +func (m *CounterVec) GetMetricWithLabelValues(lvs ...string) (Counter, error) { + metric, err := m.MetricVec.GetMetricWithLabelValues(lvs...) + if metric != nil { + return metric.(Counter), err + } + return nil, err +} + +// GetMetricWith replaces the method of the same name in MetricVec. The +// difference is that this method returns a Counter and not a Metric so that no +// type conversion is required. +func (m *CounterVec) GetMetricWith(labels Labels) (Counter, error) { + metric, err := m.MetricVec.GetMetricWith(labels) + if metric != nil { + return metric.(Counter), err + } + return nil, err +} + +// WithLabelValues works as GetMetricWithLabelValues, but panics where +// GetMetricWithLabelValues would have returned an error. By not returning an +// error, WithLabelValues allows shortcuts like +// myVec.WithLabelValues("404", "GET").Add(42) +func (m *CounterVec) WithLabelValues(lvs ...string) Counter { + return m.MetricVec.WithLabelValues(lvs...).(Counter) +} + +// With works as GetMetricWith, but panics where GetMetricWithLabels would have +// returned an error. By not returning an error, With allows shortcuts like +// myVec.With(Labels{"code": "404", "method": "GET"}).Add(42) +func (m *CounterVec) With(labels Labels) Counter { + return m.MetricVec.With(labels).(Counter) +} + +// CounterFunc is a Counter whose value is determined at collect time by calling a +// provided function. +// +// To create CounterFunc instances, use NewCounterFunc. +type CounterFunc interface { + Metric + Collector +} + +// NewCounterFunc creates a new CounterFunc based on the provided +// CounterOpts. The value reported is determined by calling the given function +// from within the Write method. Take into account that metric collection may +// happen concurrently. If that results in concurrent calls to Write, like in +// the case where a CounterFunc is directly registered with Prometheus, the +// provided function must be concurrency-safe. The function should also honor +// the contract for a Counter (values only go up, not down), but compliance will +// not be checked. +func NewCounterFunc(opts CounterOpts, function func() float64) CounterFunc { + return newValueFunc(NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + nil, + opts.ConstLabels, + ), CounterValue, function) +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/desc.go b/vendor/github.com/prometheus/client_golang/prometheus/desc.go new file mode 100644 index 0000000..77f4b30 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/desc.go @@ -0,0 +1,205 @@ +// Copyright 2016 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +import ( + "errors" + "fmt" + "regexp" + "sort" + "strings" + + "github.com/golang/protobuf/proto" + + dto "github.com/prometheus/client_model/go" +) + +var ( + metricNameRE = regexp.MustCompile(`^[a-zA-Z_][a-zA-Z0-9_:]*$`) + labelNameRE = regexp.MustCompile("^[a-zA-Z_][a-zA-Z0-9_]*$") +) + +// reservedLabelPrefix is a prefix which is not legal in user-supplied +// label names. +const reservedLabelPrefix = "__" + +// Labels represents a collection of label name -> value mappings. This type is +// commonly used with the With(Labels) and GetMetricWith(Labels) methods of +// metric vector Collectors, e.g.: +// myVec.With(Labels{"code": "404", "method": "GET"}).Add(42) +// +// The other use-case is the specification of constant label pairs in Opts or to +// create a Desc. +type Labels map[string]string + +// Desc is the descriptor used by every Prometheus Metric. It is essentially +// the immutable meta-data of a Metric. The normal Metric implementations +// included in this package manage their Desc under the hood. Users only have to +// deal with Desc if they use advanced features like the ExpvarCollector or +// custom Collectors and Metrics. +// +// Descriptors registered with the same registry have to fulfill certain +// consistency and uniqueness criteria if they share the same fully-qualified +// name: They must have the same help string and the same label names (aka label +// dimensions) in each, constLabels and variableLabels, but they must differ in +// the values of the constLabels. +// +// Descriptors that share the same fully-qualified names and the same label +// values of their constLabels are considered equal. +// +// Use NewDesc to create new Desc instances. +type Desc struct { + // fqName has been built from Namespace, Subsystem, and Name. + fqName string + // help provides some helpful information about this metric. + help string + // constLabelPairs contains precalculated DTO label pairs based on + // the constant labels. + constLabelPairs []*dto.LabelPair + // VariableLabels contains names of labels for which the metric + // maintains variable values. + variableLabels []string + // id is a hash of the values of the ConstLabels and fqName. This + // must be unique among all registered descriptors and can therefore be + // used as an identifier of the descriptor. + id uint64 + // dimHash is a hash of the label names (preset and variable) and the + // Help string. Each Desc with the same fqName must have the same + // dimHash. + dimHash uint64 + // err is an error that occured during construction. It is reported on + // registration time. + err error +} + +// NewDesc allocates and initializes a new Desc. Errors are recorded in the Desc +// and will be reported on registration time. variableLabels and constLabels can +// be nil if no such labels should be set. fqName and help must not be empty. +// +// variableLabels only contain the label names. Their label values are variable +// and therefore not part of the Desc. (They are managed within the Metric.) +// +// For constLabels, the label values are constant. Therefore, they are fully +// specified in the Desc. See the Opts documentation for the implications of +// constant labels. +func NewDesc(fqName, help string, variableLabels []string, constLabels Labels) *Desc { + d := &Desc{ + fqName: fqName, + help: help, + variableLabels: variableLabels, + } + if help == "" { + d.err = errors.New("empty help string") + return d + } + if !metricNameRE.MatchString(fqName) { + d.err = fmt.Errorf("%q is not a valid metric name", fqName) + return d + } + // labelValues contains the label values of const labels (in order of + // their sorted label names) plus the fqName (at position 0). + labelValues := make([]string, 1, len(constLabels)+1) + labelValues[0] = fqName + labelNames := make([]string, 0, len(constLabels)+len(variableLabels)) + labelNameSet := map[string]struct{}{} + // First add only the const label names and sort them... + for labelName := range constLabels { + if !checkLabelName(labelName) { + d.err = fmt.Errorf("%q is not a valid label name", labelName) + return d + } + labelNames = append(labelNames, labelName) + labelNameSet[labelName] = struct{}{} + } + sort.Strings(labelNames) + // ... so that we can now add const label values in the order of their names. + for _, labelName := range labelNames { + labelValues = append(labelValues, constLabels[labelName]) + } + // Now add the variable label names, but prefix them with something that + // cannot be in a regular label name. That prevents matching the label + // dimension with a different mix between preset and variable labels. + for _, labelName := range variableLabels { + if !checkLabelName(labelName) { + d.err = fmt.Errorf("%q is not a valid label name", labelName) + return d + } + labelNames = append(labelNames, "$"+labelName) + labelNameSet[labelName] = struct{}{} + } + if len(labelNames) != len(labelNameSet) { + d.err = errors.New("duplicate label names") + return d + } + vh := hashNew() + for _, val := range labelValues { + vh = hashAdd(vh, val) + vh = hashAddByte(vh, separatorByte) + } + d.id = vh + // Sort labelNames so that order doesn't matter for the hash. + sort.Strings(labelNames) + // Now hash together (in this order) the help string and the sorted + // label names. + lh := hashNew() + lh = hashAdd(lh, help) + lh = hashAddByte(lh, separatorByte) + for _, labelName := range labelNames { + lh = hashAdd(lh, labelName) + lh = hashAddByte(lh, separatorByte) + } + d.dimHash = lh + + d.constLabelPairs = make([]*dto.LabelPair, 0, len(constLabels)) + for n, v := range constLabels { + d.constLabelPairs = append(d.constLabelPairs, &dto.LabelPair{ + Name: proto.String(n), + Value: proto.String(v), + }) + } + sort.Sort(LabelPairSorter(d.constLabelPairs)) + return d +} + +// NewInvalidDesc returns an invalid descriptor, i.e. a descriptor with the +// provided error set. If a collector returning such a descriptor is registered, +// registration will fail with the provided error. NewInvalidDesc can be used by +// a Collector to signal inability to describe itself. +func NewInvalidDesc(err error) *Desc { + return &Desc{ + err: err, + } +} + +func (d *Desc) String() string { + lpStrings := make([]string, 0, len(d.constLabelPairs)) + for _, lp := range d.constLabelPairs { + lpStrings = append( + lpStrings, + fmt.Sprintf("%s=%q", lp.GetName(), lp.GetValue()), + ) + } + return fmt.Sprintf( + "Desc{fqName: %q, help: %q, constLabels: {%s}, variableLabels: %v}", + d.fqName, + d.help, + strings.Join(lpStrings, ","), + d.variableLabels, + ) +} + +func checkLabelName(l string) bool { + return labelNameRE.MatchString(l) && + !strings.HasPrefix(l, reservedLabelPrefix) +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/doc.go b/vendor/github.com/prometheus/client_golang/prometheus/doc.go new file mode 100644 index 0000000..b15a2d3 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/doc.go @@ -0,0 +1,181 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package prometheus provides metrics primitives to instrument code for +// monitoring. It also offers a registry for metrics. Sub-packages allow to +// expose the registered metrics via HTTP (package promhttp) or push them to a +// Pushgateway (package push). +// +// All exported functions and methods are safe to be used concurrently unless +//specified otherwise. +// +// A Basic Example +// +// As a starting point, a very basic usage example: +// +// package main +// +// import ( +// "net/http" +// +// "github.com/prometheus/client_golang/prometheus" +// "github.com/prometheus/client_golang/prometheus/promhttp" +// ) +// +// var ( +// cpuTemp = prometheus.NewGauge(prometheus.GaugeOpts{ +// Name: "cpu_temperature_celsius", +// Help: "Current temperature of the CPU.", +// }) +// hdFailures = prometheus.NewCounterVec( +// prometheus.CounterOpts{ +// Name: "hd_errors_total", +// Help: "Number of hard-disk errors.", +// }, +// []string{"device"}, +// ) +// ) +// +// func init() { +// // Metrics have to be registered to be exposed: +// prometheus.MustRegister(cpuTemp) +// prometheus.MustRegister(hdFailures) +// } +// +// func main() { +// cpuTemp.Set(65.3) +// hdFailures.With(prometheus.Labels{"device":"/dev/sda"}).Inc() +// +// // The Handler function provides a default handler to expose metrics +// // via an HTTP server. "/metrics" is the usual endpoint for that. +// http.Handle("/metrics", promhttp.Handler()) +// http.ListenAndServe(":8080", nil) +// } +// +// +// This is a complete program that exports two metrics, a Gauge and a Counter, +// the latter with a label attached to turn it into a (one-dimensional) vector. +// +// Metrics +// +// The number of exported identifiers in this package might appear a bit +// overwhelming. Hovever, in addition to the basic plumbing shown in the example +// above, you only need to understand the different metric types and their +// vector versions for basic usage. +// +// Above, you have already touched the Counter and the Gauge. There are two more +// advanced metric types: the Summary and Histogram. A more thorough description +// of those four metric types can be found in the Prometheus docs: +// https://prometheus.io/docs/concepts/metric_types/ +// +// A fifth "type" of metric is Untyped. It behaves like a Gauge, but signals the +// Prometheus server not to assume anything about its type. +// +// In addition to the fundamental metric types Gauge, Counter, Summary, +// Histogram, and Untyped, a very important part of the Prometheus data model is +// the partitioning of samples along dimensions called labels, which results in +// metric vectors. The fundamental types are GaugeVec, CounterVec, SummaryVec, +// HistogramVec, and UntypedVec. +// +// While only the fundamental metric types implement the Metric interface, both +// the metrics and their vector versions implement the Collector interface. A +// Collector manages the collection of a number of Metrics, but for convenience, +// a Metric can also “collect itselfâ€. Note that Gauge, Counter, Summary, +// Histogram, and Untyped are interfaces themselves while GaugeVec, CounterVec, +// SummaryVec, HistogramVec, and UntypedVec are not. +// +// To create instances of Metrics and their vector versions, you need a suitable +// …Opts struct, i.e. GaugeOpts, CounterOpts, SummaryOpts, +// HistogramOpts, or UntypedOpts. +// +// Custom Collectors and constant Metrics +// +// While you could create your own implementations of Metric, most likely you +// will only ever implement the Collector interface on your own. At a first +// glance, a custom Collector seems handy to bundle Metrics for common +// registration (with the prime example of the different metric vectors above, +// which bundle all the metrics of the same name but with different labels). +// +// There is a more involved use case, too: If you already have metrics +// available, created outside of the Prometheus context, you don't need the +// interface of the various Metric types. You essentially want to mirror the +// existing numbers into Prometheus Metrics during collection. An own +// implementation of the Collector interface is perfect for that. You can create +// Metric instances “on the fly†using NewConstMetric, NewConstHistogram, and +// NewConstSummary (and their respective Must… versions). That will happen in +// the Collect method. The Describe method has to return separate Desc +// instances, representative of the “throw-away†metrics to be created +// later. NewDesc comes in handy to create those Desc instances. +// +// The Collector example illustrates the use case. You can also look at the +// source code of the processCollector (mirroring process metrics), the +// goCollector (mirroring Go metrics), or the expvarCollector (mirroring expvar +// metrics) as examples that are used in this package itself. +// +// If you just need to call a function to get a single float value to collect as +// a metric, GaugeFunc, CounterFunc, or UntypedFunc might be interesting +// shortcuts. +// +// Advanced Uses of the Registry +// +// While MustRegister is the by far most common way of registering a Collector, +// sometimes you might want to handle the errors the registration might +// cause. As suggested by the name, MustRegister panics if an error occurs. With +// the Register function, the error is returned and can be handled. +// +// An error is returned if the registered Collector is incompatible or +// inconsistent with already registered metrics. The registry aims for +// consistency of the collected metrics according to the Prometheus data +// model. Inconsistencies are ideally detected at registration time, not at +// collect time. The former will usually be detected at start-up time of a +// program, while the latter will only happen at scrape time, possibly not even +// on the first scrape if the inconsistency only becomes relevant later. That is +// the main reason why a Collector and a Metric have to describe themselves to +// the registry. +// +// So far, everything we did operated on the so-called default registry, as it +// can be found in the global DefaultRegistry variable. With NewRegistry, you +// can create a custom registry, or you can even implement the Registerer or +// Gatherer interfaces yourself. The methods Register and Unregister work in +// the same way on a custom registry as the global functions Register and +// Unregister on the default registry. +// +// There are a number of uses for custom registries: You can use registries +// with special properties, see NewPedanticRegistry. You can avoid global state, +// as it is imposed by the DefaultRegistry. You can use multiple registries at +// the same time to expose different metrics in different ways. You can use +// separate registries for testing purposes. +// +// Also note that the DefaultRegistry comes registered with a Collector for Go +// runtime metrics (via NewGoCollector) and a Collector for process metrics (via +// NewProcessCollector). With a custom registry, you are in control and decide +// yourself about the Collectors to register. +// +// HTTP Exposition +// +// The Registry implements the Gatherer interface. The caller of the Gather +// method can then expose the gathered metrics in some way. Usually, the metrics +// are served via HTTP on the /metrics endpoint. That's happening in the example +// above. The tools to expose metrics via HTTP are in the promhttp +// sub-package. (The top-level functions in the prometheus package are +// deprecated.) +// +// Pushing to the Pushgateway +// +// Function for pushing to the Pushgateway can be found in the push sub-package. +// +// Other Means of Exposition +// +// More ways of exposing metrics can easily be added. Sending metrics to +// Graphite would be an example that will soon be implemented. +package prometheus diff --git a/vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go b/vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go new file mode 100644 index 0000000..18a99d5 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go @@ -0,0 +1,119 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +import ( + "encoding/json" + "expvar" +) + +type expvarCollector struct { + exports map[string]*Desc +} + +// NewExpvarCollector returns a newly allocated expvar Collector that still has +// to be registered with a Prometheus registry. +// +// An expvar Collector collects metrics from the expvar interface. It provides a +// quick way to expose numeric values that are already exported via expvar as +// Prometheus metrics. Note that the data models of expvar and Prometheus are +// fundamentally different, and that the expvar Collector is inherently slower +// than native Prometheus metrics. Thus, the expvar Collector is probably great +// for experiments and prototying, but you should seriously consider a more +// direct implementation of Prometheus metrics for monitoring production +// systems. +// +// The exports map has the following meaning: +// +// The keys in the map correspond to expvar keys, i.e. for every expvar key you +// want to export as Prometheus metric, you need an entry in the exports +// map. The descriptor mapped to each key describes how to export the expvar +// value. It defines the name and the help string of the Prometheus metric +// proxying the expvar value. The type will always be Untyped. +// +// For descriptors without variable labels, the expvar value must be a number or +// a bool. The number is then directly exported as the Prometheus sample +// value. (For a bool, 'false' translates to 0 and 'true' to 1). Expvar values +// that are not numbers or bools are silently ignored. +// +// If the descriptor has one variable label, the expvar value must be an expvar +// map. The keys in the expvar map become the various values of the one +// Prometheus label. The values in the expvar map must be numbers or bools again +// as above. +// +// For descriptors with more than one variable label, the expvar must be a +// nested expvar map, i.e. where the values of the topmost map are maps again +// etc. until a depth is reached that corresponds to the number of labels. The +// leaves of that structure must be numbers or bools as above to serve as the +// sample values. +// +// Anything that does not fit into the scheme above is silently ignored. +func NewExpvarCollector(exports map[string]*Desc) Collector { + return &expvarCollector{ + exports: exports, + } +} + +// Describe implements Collector. +func (e *expvarCollector) Describe(ch chan<- *Desc) { + for _, desc := range e.exports { + ch <- desc + } +} + +// Collect implements Collector. +func (e *expvarCollector) Collect(ch chan<- Metric) { + for name, desc := range e.exports { + var m Metric + expVar := expvar.Get(name) + if expVar == nil { + continue + } + var v interface{} + labels := make([]string, len(desc.variableLabels)) + if err := json.Unmarshal([]byte(expVar.String()), &v); err != nil { + ch <- NewInvalidMetric(desc, err) + continue + } + var processValue func(v interface{}, i int) + processValue = func(v interface{}, i int) { + if i >= len(labels) { + copiedLabels := append(make([]string, 0, len(labels)), labels...) + switch v := v.(type) { + case float64: + m = MustNewConstMetric(desc, UntypedValue, v, copiedLabels...) + case bool: + if v { + m = MustNewConstMetric(desc, UntypedValue, 1, copiedLabels...) + } else { + m = MustNewConstMetric(desc, UntypedValue, 0, copiedLabels...) + } + default: + return + } + ch <- m + return + } + vm, ok := v.(map[string]interface{}) + if !ok { + return + } + for lv, val := range vm { + labels[i] = lv + processValue(val, i+1) + } + } + processValue(v, 0) + } +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/fnv.go b/vendor/github.com/prometheus/client_golang/prometheus/fnv.go new file mode 100644 index 0000000..e3b67df --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/fnv.go @@ -0,0 +1,29 @@ +package prometheus + +// Inline and byte-free variant of hash/fnv's fnv64a. + +const ( + offset64 = 14695981039346656037 + prime64 = 1099511628211 +) + +// hashNew initializies a new fnv64a hash value. +func hashNew() uint64 { + return offset64 +} + +// hashAdd adds a string to a fnv64a hash value, returning the updated hash. +func hashAdd(h uint64, s string) uint64 { + for i := 0; i < len(s); i++ { + h ^= uint64(s[i]) + h *= prime64 + } + return h +} + +// hashAddByte adds a byte to a fnv64a hash value, returning the updated hash. +func hashAddByte(h uint64, b byte) uint64 { + h ^= uint64(b) + h *= prime64 + return h +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/gauge.go b/vendor/github.com/prometheus/client_golang/prometheus/gauge.go new file mode 100644 index 0000000..8b70e51 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/gauge.go @@ -0,0 +1,140 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +// Gauge is a Metric that represents a single numerical value that can +// arbitrarily go up and down. +// +// A Gauge is typically used for measured values like temperatures or current +// memory usage, but also "counts" that can go up and down, like the number of +// running goroutines. +// +// To create Gauge instances, use NewGauge. +type Gauge interface { + Metric + Collector + + // Set sets the Gauge to an arbitrary value. + Set(float64) + // Inc increments the Gauge by 1. + Inc() + // Dec decrements the Gauge by 1. + Dec() + // Add adds the given value to the Gauge. (The value can be + // negative, resulting in a decrease of the Gauge.) + Add(float64) + // Sub subtracts the given value from the Gauge. (The value can be + // negative, resulting in an increase of the Gauge.) + Sub(float64) +} + +// GaugeOpts is an alias for Opts. See there for doc comments. +type GaugeOpts Opts + +// NewGauge creates a new Gauge based on the provided GaugeOpts. +func NewGauge(opts GaugeOpts) Gauge { + return newValue(NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + nil, + opts.ConstLabels, + ), GaugeValue, 0) +} + +// GaugeVec is a Collector that bundles a set of Gauges that all share the same +// Desc, but have different values for their variable labels. This is used if +// you want to count the same thing partitioned by various dimensions +// (e.g. number of operations queued, partitioned by user and operation +// type). Create instances with NewGaugeVec. +type GaugeVec struct { + *MetricVec +} + +// NewGaugeVec creates a new GaugeVec based on the provided GaugeOpts and +// partitioned by the given label names. At least one label name must be +// provided. +func NewGaugeVec(opts GaugeOpts, labelNames []string) *GaugeVec { + desc := NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + labelNames, + opts.ConstLabels, + ) + return &GaugeVec{ + MetricVec: newMetricVec(desc, func(lvs ...string) Metric { + return newValue(desc, GaugeValue, 0, lvs...) + }), + } +} + +// GetMetricWithLabelValues replaces the method of the same name in +// MetricVec. The difference is that this method returns a Gauge and not a +// Metric so that no type conversion is required. +func (m *GaugeVec) GetMetricWithLabelValues(lvs ...string) (Gauge, error) { + metric, err := m.MetricVec.GetMetricWithLabelValues(lvs...) + if metric != nil { + return metric.(Gauge), err + } + return nil, err +} + +// GetMetricWith replaces the method of the same name in MetricVec. The +// difference is that this method returns a Gauge and not a Metric so that no +// type conversion is required. +func (m *GaugeVec) GetMetricWith(labels Labels) (Gauge, error) { + metric, err := m.MetricVec.GetMetricWith(labels) + if metric != nil { + return metric.(Gauge), err + } + return nil, err +} + +// WithLabelValues works as GetMetricWithLabelValues, but panics where +// GetMetricWithLabelValues would have returned an error. By not returning an +// error, WithLabelValues allows shortcuts like +// myVec.WithLabelValues("404", "GET").Add(42) +func (m *GaugeVec) WithLabelValues(lvs ...string) Gauge { + return m.MetricVec.WithLabelValues(lvs...).(Gauge) +} + +// With works as GetMetricWith, but panics where GetMetricWithLabels would have +// returned an error. By not returning an error, With allows shortcuts like +// myVec.With(Labels{"code": "404", "method": "GET"}).Add(42) +func (m *GaugeVec) With(labels Labels) Gauge { + return m.MetricVec.With(labels).(Gauge) +} + +// GaugeFunc is a Gauge whose value is determined at collect time by calling a +// provided function. +// +// To create GaugeFunc instances, use NewGaugeFunc. +type GaugeFunc interface { + Metric + Collector +} + +// NewGaugeFunc creates a new GaugeFunc based on the provided GaugeOpts. The +// value reported is determined by calling the given function from within the +// Write method. Take into account that metric collection may happen +// concurrently. If that results in concurrent calls to Write, like in the case +// where a GaugeFunc is directly registered with Prometheus, the provided +// function must be concurrency-safe. +func NewGaugeFunc(opts GaugeOpts, function func() float64) GaugeFunc { + return newValueFunc(NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + nil, + opts.ConstLabels, + ), GaugeValue, function) +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go b/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go new file mode 100644 index 0000000..abc9d4e --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go @@ -0,0 +1,263 @@ +package prometheus + +import ( + "fmt" + "runtime" + "runtime/debug" + "time" +) + +type goCollector struct { + goroutines Gauge + gcDesc *Desc + + // metrics to describe and collect + metrics memStatsMetrics +} + +// NewGoCollector returns a collector which exports metrics about the current +// go process. +func NewGoCollector() Collector { + return &goCollector{ + goroutines: NewGauge(GaugeOpts{ + Namespace: "go", + Name: "goroutines", + Help: "Number of goroutines that currently exist.", + }), + gcDesc: NewDesc( + "go_gc_duration_seconds", + "A summary of the GC invocation durations.", + nil, nil), + metrics: memStatsMetrics{ + { + desc: NewDesc( + memstatNamespace("alloc_bytes"), + "Number of bytes allocated and still in use.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.Alloc) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("alloc_bytes_total"), + "Total number of bytes allocated, even if freed.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.TotalAlloc) }, + valType: CounterValue, + }, { + desc: NewDesc( + memstatNamespace("sys_bytes"), + "Number of bytes obtained by system. Sum of all system allocations.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.Sys) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("lookups_total"), + "Total number of pointer lookups.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.Lookups) }, + valType: CounterValue, + }, { + desc: NewDesc( + memstatNamespace("mallocs_total"), + "Total number of mallocs.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.Mallocs) }, + valType: CounterValue, + }, { + desc: NewDesc( + memstatNamespace("frees_total"), + "Total number of frees.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.Frees) }, + valType: CounterValue, + }, { + desc: NewDesc( + memstatNamespace("heap_alloc_bytes"), + "Number of heap bytes allocated and still in use.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.HeapAlloc) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("heap_sys_bytes"), + "Number of heap bytes obtained from system.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.HeapSys) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("heap_idle_bytes"), + "Number of heap bytes waiting to be used.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.HeapIdle) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("heap_inuse_bytes"), + "Number of heap bytes that are in use.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.HeapInuse) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("heap_released_bytes_total"), + "Total number of heap bytes released to OS.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.HeapReleased) }, + valType: CounterValue, + }, { + desc: NewDesc( + memstatNamespace("heap_objects"), + "Number of allocated objects.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.HeapObjects) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("stack_inuse_bytes"), + "Number of bytes in use by the stack allocator.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.StackInuse) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("stack_sys_bytes"), + "Number of bytes obtained from system for stack allocator.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.StackSys) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("mspan_inuse_bytes"), + "Number of bytes in use by mspan structures.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.MSpanInuse) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("mspan_sys_bytes"), + "Number of bytes used for mspan structures obtained from system.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.MSpanSys) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("mcache_inuse_bytes"), + "Number of bytes in use by mcache structures.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.MCacheInuse) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("mcache_sys_bytes"), + "Number of bytes used for mcache structures obtained from system.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.MCacheSys) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("buck_hash_sys_bytes"), + "Number of bytes used by the profiling bucket hash table.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.BuckHashSys) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("gc_sys_bytes"), + "Number of bytes used for garbage collection system metadata.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.GCSys) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("other_sys_bytes"), + "Number of bytes used for other system allocations.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.OtherSys) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("next_gc_bytes"), + "Number of heap bytes when next garbage collection will take place.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.NextGC) }, + valType: GaugeValue, + }, { + desc: NewDesc( + memstatNamespace("last_gc_time_seconds"), + "Number of seconds since 1970 of last garbage collection.", + nil, nil, + ), + eval: func(ms *runtime.MemStats) float64 { return float64(ms.LastGC) / 1e9 }, + valType: GaugeValue, + }, + }, + } +} + +func memstatNamespace(s string) string { + return fmt.Sprintf("go_memstats_%s", s) +} + +// Describe returns all descriptions of the collector. +func (c *goCollector) Describe(ch chan<- *Desc) { + ch <- c.goroutines.Desc() + ch <- c.gcDesc + + for _, i := range c.metrics { + ch <- i.desc + } +} + +// Collect returns the current state of all metrics of the collector. +func (c *goCollector) Collect(ch chan<- Metric) { + c.goroutines.Set(float64(runtime.NumGoroutine())) + ch <- c.goroutines + + var stats debug.GCStats + stats.PauseQuantiles = make([]time.Duration, 5) + debug.ReadGCStats(&stats) + + quantiles := make(map[float64]float64) + for idx, pq := range stats.PauseQuantiles[1:] { + quantiles[float64(idx+1)/float64(len(stats.PauseQuantiles)-1)] = pq.Seconds() + } + quantiles[0.0] = stats.PauseQuantiles[0].Seconds() + ch <- MustNewConstSummary(c.gcDesc, uint64(stats.NumGC), float64(stats.PauseTotal.Seconds()), quantiles) + + ms := &runtime.MemStats{} + runtime.ReadMemStats(ms) + for _, i := range c.metrics { + ch <- MustNewConstMetric(i.desc, i.valType, i.eval(ms)) + } +} + +// memStatsMetrics provide description, value, and value type for memstat metrics. +type memStatsMetrics []struct { + desc *Desc + eval func(*runtime.MemStats) float64 + valType ValueType +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/histogram.go b/vendor/github.com/prometheus/client_golang/prometheus/histogram.go new file mode 100644 index 0000000..9719e8f --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/histogram.go @@ -0,0 +1,444 @@ +// Copyright 2015 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +import ( + "fmt" + "math" + "sort" + "sync/atomic" + + "github.com/golang/protobuf/proto" + + dto "github.com/prometheus/client_model/go" +) + +// A Histogram counts individual observations from an event or sample stream in +// configurable buckets. Similar to a summary, it also provides a sum of +// observations and an observation count. +// +// On the Prometheus server, quantiles can be calculated from a Histogram using +// the histogram_quantile function in the query language. +// +// Note that Histograms, in contrast to Summaries, can be aggregated with the +// Prometheus query language (see the documentation for detailed +// procedures). However, Histograms require the user to pre-define suitable +// buckets, and they are in general less accurate. The Observe method of a +// Histogram has a very low performance overhead in comparison with the Observe +// method of a Summary. +// +// To create Histogram instances, use NewHistogram. +type Histogram interface { + Metric + Collector + + // Observe adds a single observation to the histogram. + Observe(float64) +} + +// bucketLabel is used for the label that defines the upper bound of a +// bucket of a histogram ("le" -> "less or equal"). +const bucketLabel = "le" + +// DefBuckets are the default Histogram buckets. The default buckets are +// tailored to broadly measure the response time (in seconds) of a network +// service. Most likely, however, you will be required to define buckets +// customized to your use case. +var ( + DefBuckets = []float64{.005, .01, .025, .05, .1, .25, .5, 1, 2.5, 5, 10} + + errBucketLabelNotAllowed = fmt.Errorf( + "%q is not allowed as label name in histograms", bucketLabel, + ) +) + +// LinearBuckets creates 'count' buckets, each 'width' wide, where the lowest +// bucket has an upper bound of 'start'. The final +Inf bucket is not counted +// and not included in the returned slice. The returned slice is meant to be +// used for the Buckets field of HistogramOpts. +// +// The function panics if 'count' is zero or negative. +func LinearBuckets(start, width float64, count int) []float64 { + if count < 1 { + panic("LinearBuckets needs a positive count") + } + buckets := make([]float64, count) + for i := range buckets { + buckets[i] = start + start += width + } + return buckets +} + +// ExponentialBuckets creates 'count' buckets, where the lowest bucket has an +// upper bound of 'start' and each following bucket's upper bound is 'factor' +// times the previous bucket's upper bound. The final +Inf bucket is not counted +// and not included in the returned slice. The returned slice is meant to be +// used for the Buckets field of HistogramOpts. +// +// The function panics if 'count' is 0 or negative, if 'start' is 0 or negative, +// or if 'factor' is less than or equal 1. +func ExponentialBuckets(start, factor float64, count int) []float64 { + if count < 1 { + panic("ExponentialBuckets needs a positive count") + } + if start <= 0 { + panic("ExponentialBuckets needs a positive start value") + } + if factor <= 1 { + panic("ExponentialBuckets needs a factor greater than 1") + } + buckets := make([]float64, count) + for i := range buckets { + buckets[i] = start + start *= factor + } + return buckets +} + +// HistogramOpts bundles the options for creating a Histogram metric. It is +// mandatory to set Name and Help to a non-empty string. All other fields are +// optional and can safely be left at their zero value. +type HistogramOpts struct { + // Namespace, Subsystem, and Name are components of the fully-qualified + // name of the Histogram (created by joining these components with + // "_"). Only Name is mandatory, the others merely help structuring the + // name. Note that the fully-qualified name of the Histogram must be a + // valid Prometheus metric name. + Namespace string + Subsystem string + Name string + + // Help provides information about this Histogram. Mandatory! + // + // Metrics with the same fully-qualified name must have the same Help + // string. + Help string + + // ConstLabels are used to attach fixed labels to this + // Histogram. Histograms with the same fully-qualified name must have the + // same label names in their ConstLabels. + // + // Note that in most cases, labels have a value that varies during the + // lifetime of a process. Those labels are usually managed with a + // HistogramVec. ConstLabels serve only special purposes. One is for the + // special case where the value of a label does not change during the + // lifetime of a process, e.g. if the revision of the running binary is + // put into a label. Another, more advanced purpose is if more than one + // Collector needs to collect Histograms with the same fully-qualified + // name. In that case, those Summaries must differ in the values of + // their ConstLabels. See the Collector examples. + // + // If the value of a label never changes (not even between binaries), + // that label most likely should not be a label at all (but part of the + // metric name). + ConstLabels Labels + + // Buckets defines the buckets into which observations are counted. Each + // element in the slice is the upper inclusive bound of a bucket. The + // values must be sorted in strictly increasing order. There is no need + // to add a highest bucket with +Inf bound, it will be added + // implicitly. The default value is DefBuckets. + Buckets []float64 +} + +// NewHistogram creates a new Histogram based on the provided HistogramOpts. It +// panics if the buckets in HistogramOpts are not in strictly increasing order. +func NewHistogram(opts HistogramOpts) Histogram { + return newHistogram( + NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + nil, + opts.ConstLabels, + ), + opts, + ) +} + +func newHistogram(desc *Desc, opts HistogramOpts, labelValues ...string) Histogram { + if len(desc.variableLabels) != len(labelValues) { + panic(errInconsistentCardinality) + } + + for _, n := range desc.variableLabels { + if n == bucketLabel { + panic(errBucketLabelNotAllowed) + } + } + for _, lp := range desc.constLabelPairs { + if lp.GetName() == bucketLabel { + panic(errBucketLabelNotAllowed) + } + } + + if len(opts.Buckets) == 0 { + opts.Buckets = DefBuckets + } + + h := &histogram{ + desc: desc, + upperBounds: opts.Buckets, + labelPairs: makeLabelPairs(desc, labelValues), + } + for i, upperBound := range h.upperBounds { + if i < len(h.upperBounds)-1 { + if upperBound >= h.upperBounds[i+1] { + panic(fmt.Errorf( + "histogram buckets must be in increasing order: %f >= %f", + upperBound, h.upperBounds[i+1], + )) + } + } else { + if math.IsInf(upperBound, +1) { + // The +Inf bucket is implicit. Remove it here. + h.upperBounds = h.upperBounds[:i] + } + } + } + // Finally we know the final length of h.upperBounds and can make counts. + h.counts = make([]uint64, len(h.upperBounds)) + + h.init(h) // Init self-collection. + return h +} + +type histogram struct { + // sumBits contains the bits of the float64 representing the sum of all + // observations. sumBits and count have to go first in the struct to + // guarantee alignment for atomic operations. + // http://golang.org/pkg/sync/atomic/#pkg-note-BUG + sumBits uint64 + count uint64 + + selfCollector + // Note that there is no mutex required. + + desc *Desc + + upperBounds []float64 + counts []uint64 + + labelPairs []*dto.LabelPair +} + +func (h *histogram) Desc() *Desc { + return h.desc +} + +func (h *histogram) Observe(v float64) { + // TODO(beorn7): For small numbers of buckets (<30), a linear search is + // slightly faster than the binary search. If we really care, we could + // switch from one search strategy to the other depending on the number + // of buckets. + // + // Microbenchmarks (BenchmarkHistogramNoLabels): + // 11 buckets: 38.3 ns/op linear - binary 48.7 ns/op + // 100 buckets: 78.1 ns/op linear - binary 54.9 ns/op + // 300 buckets: 154 ns/op linear - binary 61.6 ns/op + i := sort.SearchFloat64s(h.upperBounds, v) + if i < len(h.counts) { + atomic.AddUint64(&h.counts[i], 1) + } + atomic.AddUint64(&h.count, 1) + for { + oldBits := atomic.LoadUint64(&h.sumBits) + newBits := math.Float64bits(math.Float64frombits(oldBits) + v) + if atomic.CompareAndSwapUint64(&h.sumBits, oldBits, newBits) { + break + } + } +} + +func (h *histogram) Write(out *dto.Metric) error { + his := &dto.Histogram{} + buckets := make([]*dto.Bucket, len(h.upperBounds)) + + his.SampleSum = proto.Float64(math.Float64frombits(atomic.LoadUint64(&h.sumBits))) + his.SampleCount = proto.Uint64(atomic.LoadUint64(&h.count)) + var count uint64 + for i, upperBound := range h.upperBounds { + count += atomic.LoadUint64(&h.counts[i]) + buckets[i] = &dto.Bucket{ + CumulativeCount: proto.Uint64(count), + UpperBound: proto.Float64(upperBound), + } + } + his.Bucket = buckets + out.Histogram = his + out.Label = h.labelPairs + return nil +} + +// HistogramVec is a Collector that bundles a set of Histograms that all share the +// same Desc, but have different values for their variable labels. This is used +// if you want to count the same thing partitioned by various dimensions +// (e.g. HTTP request latencies, partitioned by status code and method). Create +// instances with NewHistogramVec. +type HistogramVec struct { + *MetricVec +} + +// NewHistogramVec creates a new HistogramVec based on the provided HistogramOpts and +// partitioned by the given label names. At least one label name must be +// provided. +func NewHistogramVec(opts HistogramOpts, labelNames []string) *HistogramVec { + desc := NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + labelNames, + opts.ConstLabels, + ) + return &HistogramVec{ + MetricVec: newMetricVec(desc, func(lvs ...string) Metric { + return newHistogram(desc, opts, lvs...) + }), + } +} + +// GetMetricWithLabelValues replaces the method of the same name in +// MetricVec. The difference is that this method returns a Histogram and not a +// Metric so that no type conversion is required. +func (m *HistogramVec) GetMetricWithLabelValues(lvs ...string) (Histogram, error) { + metric, err := m.MetricVec.GetMetricWithLabelValues(lvs...) + if metric != nil { + return metric.(Histogram), err + } + return nil, err +} + +// GetMetricWith replaces the method of the same name in MetricVec. The +// difference is that this method returns a Histogram and not a Metric so that no +// type conversion is required. +func (m *HistogramVec) GetMetricWith(labels Labels) (Histogram, error) { + metric, err := m.MetricVec.GetMetricWith(labels) + if metric != nil { + return metric.(Histogram), err + } + return nil, err +} + +// WithLabelValues works as GetMetricWithLabelValues, but panics where +// GetMetricWithLabelValues would have returned an error. By not returning an +// error, WithLabelValues allows shortcuts like +// myVec.WithLabelValues("404", "GET").Observe(42.21) +func (m *HistogramVec) WithLabelValues(lvs ...string) Histogram { + return m.MetricVec.WithLabelValues(lvs...).(Histogram) +} + +// With works as GetMetricWith, but panics where GetMetricWithLabels would have +// returned an error. By not returning an error, With allows shortcuts like +// myVec.With(Labels{"code": "404", "method": "GET"}).Observe(42.21) +func (m *HistogramVec) With(labels Labels) Histogram { + return m.MetricVec.With(labels).(Histogram) +} + +type constHistogram struct { + desc *Desc + count uint64 + sum float64 + buckets map[float64]uint64 + labelPairs []*dto.LabelPair +} + +func (h *constHistogram) Desc() *Desc { + return h.desc +} + +func (h *constHistogram) Write(out *dto.Metric) error { + his := &dto.Histogram{} + buckets := make([]*dto.Bucket, 0, len(h.buckets)) + + his.SampleCount = proto.Uint64(h.count) + his.SampleSum = proto.Float64(h.sum) + + for upperBound, count := range h.buckets { + buckets = append(buckets, &dto.Bucket{ + CumulativeCount: proto.Uint64(count), + UpperBound: proto.Float64(upperBound), + }) + } + + if len(buckets) > 0 { + sort.Sort(buckSort(buckets)) + } + his.Bucket = buckets + + out.Histogram = his + out.Label = h.labelPairs + + return nil +} + +// NewConstHistogram returns a metric representing a Prometheus histogram with +// fixed values for the count, sum, and bucket counts. As those parameters +// cannot be changed, the returned value does not implement the Histogram +// interface (but only the Metric interface). Users of this package will not +// have much use for it in regular operations. However, when implementing custom +// Collectors, it is useful as a throw-away metric that is generated on the fly +// to send it to Prometheus in the Collect method. +// +// buckets is a map of upper bounds to cumulative counts, excluding the +Inf +// bucket. +// +// NewConstHistogram returns an error if the length of labelValues is not +// consistent with the variable labels in Desc. +func NewConstHistogram( + desc *Desc, + count uint64, + sum float64, + buckets map[float64]uint64, + labelValues ...string, +) (Metric, error) { + if len(desc.variableLabels) != len(labelValues) { + return nil, errInconsistentCardinality + } + return &constHistogram{ + desc: desc, + count: count, + sum: sum, + buckets: buckets, + labelPairs: makeLabelPairs(desc, labelValues), + }, nil +} + +// MustNewConstHistogram is a version of NewConstHistogram that panics where +// NewConstMetric would have returned an error. +func MustNewConstHistogram( + desc *Desc, + count uint64, + sum float64, + buckets map[float64]uint64, + labelValues ...string, +) Metric { + m, err := NewConstHistogram(desc, count, sum, buckets, labelValues...) + if err != nil { + panic(err) + } + return m +} + +type buckSort []*dto.Bucket + +func (s buckSort) Len() int { + return len(s) +} + +func (s buckSort) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +func (s buckSort) Less(i, j int) bool { + return s[i].GetUpperBound() < s[j].GetUpperBound() +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/http.go b/vendor/github.com/prometheus/client_golang/prometheus/http.go new file mode 100644 index 0000000..67ee5ac --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/http.go @@ -0,0 +1,490 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +import ( + "bufio" + "bytes" + "compress/gzip" + "fmt" + "io" + "net" + "net/http" + "strconv" + "strings" + "sync" + "time" + + "github.com/prometheus/common/expfmt" +) + +// TODO(beorn7): Remove this whole file. It is a partial mirror of +// promhttp/http.go (to avoid circular import chains) where everything HTTP +// related should live. The functions here are just for avoiding +// breakage. Everything is deprecated. + +const ( + contentTypeHeader = "Content-Type" + contentLengthHeader = "Content-Length" + contentEncodingHeader = "Content-Encoding" + acceptEncodingHeader = "Accept-Encoding" +) + +var bufPool sync.Pool + +func getBuf() *bytes.Buffer { + buf := bufPool.Get() + if buf == nil { + return &bytes.Buffer{} + } + return buf.(*bytes.Buffer) +} + +func giveBuf(buf *bytes.Buffer) { + buf.Reset() + bufPool.Put(buf) +} + +// Handler returns an HTTP handler for the DefaultGatherer. It is +// already instrumented with InstrumentHandler (using "prometheus" as handler +// name). +// +// Deprecated: Please note the issues described in the doc comment of +// InstrumentHandler. You might want to consider using promhttp.Handler instead +// (which is non instrumented). +func Handler() http.Handler { + return InstrumentHandler("prometheus", UninstrumentedHandler()) +} + +// UninstrumentedHandler returns an HTTP handler for the DefaultGatherer. +// +// Deprecated: Use promhttp.Handler instead. See there for further documentation. +func UninstrumentedHandler() http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + mfs, err := DefaultGatherer.Gather() + if err != nil { + http.Error(w, "An error has occurred during metrics collection:\n\n"+err.Error(), http.StatusInternalServerError) + return + } + + contentType := expfmt.Negotiate(req.Header) + buf := getBuf() + defer giveBuf(buf) + writer, encoding := decorateWriter(req, buf) + enc := expfmt.NewEncoder(writer, contentType) + var lastErr error + for _, mf := range mfs { + if err := enc.Encode(mf); err != nil { + lastErr = err + http.Error(w, "An error has occurred during metrics encoding:\n\n"+err.Error(), http.StatusInternalServerError) + return + } + } + if closer, ok := writer.(io.Closer); ok { + closer.Close() + } + if lastErr != nil && buf.Len() == 0 { + http.Error(w, "No metrics encoded, last error:\n\n"+err.Error(), http.StatusInternalServerError) + return + } + header := w.Header() + header.Set(contentTypeHeader, string(contentType)) + header.Set(contentLengthHeader, fmt.Sprint(buf.Len())) + if encoding != "" { + header.Set(contentEncodingHeader, encoding) + } + w.Write(buf.Bytes()) + }) +} + +// decorateWriter wraps a writer to handle gzip compression if requested. It +// returns the decorated writer and the appropriate "Content-Encoding" header +// (which is empty if no compression is enabled). +func decorateWriter(request *http.Request, writer io.Writer) (io.Writer, string) { + header := request.Header.Get(acceptEncodingHeader) + parts := strings.Split(header, ",") + for _, part := range parts { + part := strings.TrimSpace(part) + if part == "gzip" || strings.HasPrefix(part, "gzip;") { + return gzip.NewWriter(writer), "gzip" + } + } + return writer, "" +} + +var instLabels = []string{"method", "code"} + +type nower interface { + Now() time.Time +} + +type nowFunc func() time.Time + +func (n nowFunc) Now() time.Time { + return n() +} + +var now nower = nowFunc(func() time.Time { + return time.Now() +}) + +func nowSeries(t ...time.Time) nower { + return nowFunc(func() time.Time { + defer func() { + t = t[1:] + }() + + return t[0] + }) +} + +// InstrumentHandler wraps the given HTTP handler for instrumentation. It +// registers four metric collectors (if not already done) and reports HTTP +// metrics to the (newly or already) registered collectors: http_requests_total +// (CounterVec), http_request_duration_microseconds (Summary), +// http_request_size_bytes (Summary), http_response_size_bytes (Summary). Each +// has a constant label named "handler" with the provided handlerName as +// value. http_requests_total is a metric vector partitioned by HTTP method +// (label name "method") and HTTP status code (label name "code"). +// +// Deprecated: InstrumentHandler has several issues: +// +// - It uses Summaries rather than Histograms. Summaries are not useful if +// aggregation across multiple instances is required. +// +// - It uses microseconds as unit, which is deprecated and should be replaced by +// seconds. +// +// - The size of the request is calculated in a separate goroutine. Since this +// calculator requires access to the request header, it creates a race with +// any writes to the header performed during request handling. +// httputil.ReverseProxy is a prominent example for a handler +// performing such writes. +// +// Upcoming versions of this package will provide ways of instrumenting HTTP +// handlers that are more flexible and have fewer issues. Please prefer direct +// instrumentation in the meantime. +func InstrumentHandler(handlerName string, handler http.Handler) http.HandlerFunc { + return InstrumentHandlerFunc(handlerName, handler.ServeHTTP) +} + +// InstrumentHandlerFunc wraps the given function for instrumentation. It +// otherwise works in the same way as InstrumentHandler (and shares the same +// issues). +// +// Deprecated: InstrumentHandlerFunc is deprecated for the same reasons as +// InstrumentHandler is. +func InstrumentHandlerFunc(handlerName string, handlerFunc func(http.ResponseWriter, *http.Request)) http.HandlerFunc { + return InstrumentHandlerFuncWithOpts( + SummaryOpts{ + Subsystem: "http", + ConstLabels: Labels{"handler": handlerName}, + }, + handlerFunc, + ) +} + +// InstrumentHandlerWithOpts works like InstrumentHandler (and shares the same +// issues) but provides more flexibility (at the cost of a more complex call +// syntax). As InstrumentHandler, this function registers four metric +// collectors, but it uses the provided SummaryOpts to create them. However, the +// fields "Name" and "Help" in the SummaryOpts are ignored. "Name" is replaced +// by "requests_total", "request_duration_microseconds", "request_size_bytes", +// and "response_size_bytes", respectively. "Help" is replaced by an appropriate +// help string. The names of the variable labels of the http_requests_total +// CounterVec are "method" (get, post, etc.), and "code" (HTTP status code). +// +// If InstrumentHandlerWithOpts is called as follows, it mimics exactly the +// behavior of InstrumentHandler: +// +// prometheus.InstrumentHandlerWithOpts( +// prometheus.SummaryOpts{ +// Subsystem: "http", +// ConstLabels: prometheus.Labels{"handler": handlerName}, +// }, +// handler, +// ) +// +// Technical detail: "requests_total" is a CounterVec, not a SummaryVec, so it +// cannot use SummaryOpts. Instead, a CounterOpts struct is created internally, +// and all its fields are set to the equally named fields in the provided +// SummaryOpts. +// +// Deprecated: InstrumentHandlerWithOpts is deprecated for the same reasons as +// InstrumentHandler is. +func InstrumentHandlerWithOpts(opts SummaryOpts, handler http.Handler) http.HandlerFunc { + return InstrumentHandlerFuncWithOpts(opts, handler.ServeHTTP) +} + +// InstrumentHandlerFuncWithOpts works like InstrumentHandlerFunc (and shares +// the same issues) but provides more flexibility (at the cost of a more complex +// call syntax). See InstrumentHandlerWithOpts for details how the provided +// SummaryOpts are used. +// +// Deprecated: InstrumentHandlerFuncWithOpts is deprecated for the same reasons +// as InstrumentHandler is. +func InstrumentHandlerFuncWithOpts(opts SummaryOpts, handlerFunc func(http.ResponseWriter, *http.Request)) http.HandlerFunc { + reqCnt := NewCounterVec( + CounterOpts{ + Namespace: opts.Namespace, + Subsystem: opts.Subsystem, + Name: "requests_total", + Help: "Total number of HTTP requests made.", + ConstLabels: opts.ConstLabels, + }, + instLabels, + ) + + opts.Name = "request_duration_microseconds" + opts.Help = "The HTTP request latencies in microseconds." + reqDur := NewSummary(opts) + + opts.Name = "request_size_bytes" + opts.Help = "The HTTP request sizes in bytes." + reqSz := NewSummary(opts) + + opts.Name = "response_size_bytes" + opts.Help = "The HTTP response sizes in bytes." + resSz := NewSummary(opts) + + regReqCnt := MustRegisterOrGet(reqCnt).(*CounterVec) + regReqDur := MustRegisterOrGet(reqDur).(Summary) + regReqSz := MustRegisterOrGet(reqSz).(Summary) + regResSz := MustRegisterOrGet(resSz).(Summary) + + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + now := time.Now() + + delegate := &responseWriterDelegator{ResponseWriter: w} + out := make(chan int) + urlLen := 0 + if r.URL != nil { + urlLen = len(r.URL.String()) + } + go computeApproximateRequestSize(r, out, urlLen) + + _, cn := w.(http.CloseNotifier) + _, fl := w.(http.Flusher) + _, hj := w.(http.Hijacker) + _, rf := w.(io.ReaderFrom) + var rw http.ResponseWriter + if cn && fl && hj && rf { + rw = &fancyResponseWriterDelegator{delegate} + } else { + rw = delegate + } + handlerFunc(rw, r) + + elapsed := float64(time.Since(now)) / float64(time.Microsecond) + + method := sanitizeMethod(r.Method) + code := sanitizeCode(delegate.status) + regReqCnt.WithLabelValues(method, code).Inc() + regReqDur.Observe(elapsed) + regResSz.Observe(float64(delegate.written)) + regReqSz.Observe(float64(<-out)) + }) +} + +func computeApproximateRequestSize(r *http.Request, out chan int, s int) { + s += len(r.Method) + s += len(r.Proto) + for name, values := range r.Header { + s += len(name) + for _, value := range values { + s += len(value) + } + } + s += len(r.Host) + + // N.B. r.Form and r.MultipartForm are assumed to be included in r.URL. + + if r.ContentLength != -1 { + s += int(r.ContentLength) + } + out <- s +} + +type responseWriterDelegator struct { + http.ResponseWriter + + handler, method string + status int + written int64 + wroteHeader bool +} + +func (r *responseWriterDelegator) WriteHeader(code int) { + r.status = code + r.wroteHeader = true + r.ResponseWriter.WriteHeader(code) +} + +func (r *responseWriterDelegator) Write(b []byte) (int, error) { + if !r.wroteHeader { + r.WriteHeader(http.StatusOK) + } + n, err := r.ResponseWriter.Write(b) + r.written += int64(n) + return n, err +} + +type fancyResponseWriterDelegator struct { + *responseWriterDelegator +} + +func (f *fancyResponseWriterDelegator) CloseNotify() <-chan bool { + return f.ResponseWriter.(http.CloseNotifier).CloseNotify() +} + +func (f *fancyResponseWriterDelegator) Flush() { + f.ResponseWriter.(http.Flusher).Flush() +} + +func (f *fancyResponseWriterDelegator) Hijack() (net.Conn, *bufio.ReadWriter, error) { + return f.ResponseWriter.(http.Hijacker).Hijack() +} + +func (f *fancyResponseWriterDelegator) ReadFrom(r io.Reader) (int64, error) { + if !f.wroteHeader { + f.WriteHeader(http.StatusOK) + } + n, err := f.ResponseWriter.(io.ReaderFrom).ReadFrom(r) + f.written += n + return n, err +} + +func sanitizeMethod(m string) string { + switch m { + case "GET", "get": + return "get" + case "PUT", "put": + return "put" + case "HEAD", "head": + return "head" + case "POST", "post": + return "post" + case "DELETE", "delete": + return "delete" + case "CONNECT", "connect": + return "connect" + case "OPTIONS", "options": + return "options" + case "NOTIFY", "notify": + return "notify" + default: + return strings.ToLower(m) + } +} + +func sanitizeCode(s int) string { + switch s { + case 100: + return "100" + case 101: + return "101" + + case 200: + return "200" + case 201: + return "201" + case 202: + return "202" + case 203: + return "203" + case 204: + return "204" + case 205: + return "205" + case 206: + return "206" + + case 300: + return "300" + case 301: + return "301" + case 302: + return "302" + case 304: + return "304" + case 305: + return "305" + case 307: + return "307" + + case 400: + return "400" + case 401: + return "401" + case 402: + return "402" + case 403: + return "403" + case 404: + return "404" + case 405: + return "405" + case 406: + return "406" + case 407: + return "407" + case 408: + return "408" + case 409: + return "409" + case 410: + return "410" + case 411: + return "411" + case 412: + return "412" + case 413: + return "413" + case 414: + return "414" + case 415: + return "415" + case 416: + return "416" + case 417: + return "417" + case 418: + return "418" + + case 500: + return "500" + case 501: + return "501" + case 502: + return "502" + case 503: + return "503" + case 504: + return "504" + case 505: + return "505" + + case 428: + return "428" + case 429: + return "429" + case 431: + return "431" + case 511: + return "511" + + default: + return strconv.Itoa(s) + } +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/metric.go b/vendor/github.com/prometheus/client_golang/prometheus/metric.go new file mode 100644 index 0000000..d4063d9 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/metric.go @@ -0,0 +1,166 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +import ( + "strings" + + dto "github.com/prometheus/client_model/go" +) + +const separatorByte byte = 255 + +// A Metric models a single sample value with its meta data being exported to +// Prometheus. Implementations of Metric in this package are Gauge, Counter, +// Histogram, Summary, and Untyped. +type Metric interface { + // Desc returns the descriptor for the Metric. This method idempotently + // returns the same descriptor throughout the lifetime of the + // Metric. The returned descriptor is immutable by contract. A Metric + // unable to describe itself must return an invalid descriptor (created + // with NewInvalidDesc). + Desc() *Desc + // Write encodes the Metric into a "Metric" Protocol Buffer data + // transmission object. + // + // Metric implementations must observe concurrency safety as reads of + // this metric may occur at any time, and any blocking occurs at the + // expense of total performance of rendering all registered + // metrics. Ideally, Metric implementations should support concurrent + // readers. + // + // While populating dto.Metric, it is the responsibility of the + // implementation to ensure validity of the Metric protobuf (like valid + // UTF-8 strings or syntactically valid metric and label names). It is + // recommended to sort labels lexicographically. (Implementers may find + // LabelPairSorter useful for that.) Callers of Write should still make + // sure of sorting if they depend on it. + Write(*dto.Metric) error + // TODO(beorn7): The original rationale of passing in a pre-allocated + // dto.Metric protobuf to save allocations has disappeared. The + // signature of this method should be changed to "Write() (*dto.Metric, + // error)". +} + +// Opts bundles the options for creating most Metric types. Each metric +// implementation XXX has its own XXXOpts type, but in most cases, it is just be +// an alias of this type (which might change when the requirement arises.) +// +// It is mandatory to set Name and Help to a non-empty string. All other fields +// are optional and can safely be left at their zero value. +type Opts struct { + // Namespace, Subsystem, and Name are components of the fully-qualified + // name of the Metric (created by joining these components with + // "_"). Only Name is mandatory, the others merely help structuring the + // name. Note that the fully-qualified name of the metric must be a + // valid Prometheus metric name. + Namespace string + Subsystem string + Name string + + // Help provides information about this metric. Mandatory! + // + // Metrics with the same fully-qualified name must have the same Help + // string. + Help string + + // ConstLabels are used to attach fixed labels to this metric. Metrics + // with the same fully-qualified name must have the same label names in + // their ConstLabels. + // + // Note that in most cases, labels have a value that varies during the + // lifetime of a process. Those labels are usually managed with a metric + // vector collector (like CounterVec, GaugeVec, UntypedVec). ConstLabels + // serve only special purposes. One is for the special case where the + // value of a label does not change during the lifetime of a process, + // e.g. if the revision of the running binary is put into a + // label. Another, more advanced purpose is if more than one Collector + // needs to collect Metrics with the same fully-qualified name. In that + // case, those Metrics must differ in the values of their + // ConstLabels. See the Collector examples. + // + // If the value of a label never changes (not even between binaries), + // that label most likely should not be a label at all (but part of the + // metric name). + ConstLabels Labels +} + +// BuildFQName joins the given three name components by "_". Empty name +// components are ignored. If the name parameter itself is empty, an empty +// string is returned, no matter what. Metric implementations included in this +// library use this function internally to generate the fully-qualified metric +// name from the name component in their Opts. Users of the library will only +// need this function if they implement their own Metric or instantiate a Desc +// (with NewDesc) directly. +func BuildFQName(namespace, subsystem, name string) string { + if name == "" { + return "" + } + switch { + case namespace != "" && subsystem != "": + return strings.Join([]string{namespace, subsystem, name}, "_") + case namespace != "": + return strings.Join([]string{namespace, name}, "_") + case subsystem != "": + return strings.Join([]string{subsystem, name}, "_") + } + return name +} + +// LabelPairSorter implements sort.Interface. It is used to sort a slice of +// dto.LabelPair pointers. This is useful for implementing the Write method of +// custom metrics. +type LabelPairSorter []*dto.LabelPair + +func (s LabelPairSorter) Len() int { + return len(s) +} + +func (s LabelPairSorter) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +func (s LabelPairSorter) Less(i, j int) bool { + return s[i].GetName() < s[j].GetName() +} + +type hashSorter []uint64 + +func (s hashSorter) Len() int { + return len(s) +} + +func (s hashSorter) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +func (s hashSorter) Less(i, j int) bool { + return s[i] < s[j] +} + +type invalidMetric struct { + desc *Desc + err error +} + +// NewInvalidMetric returns a metric whose Write method always returns the +// provided error. It is useful if a Collector finds itself unable to collect +// a metric and wishes to report an error to the registry. +func NewInvalidMetric(desc *Desc, err error) Metric { + return &invalidMetric{desc, err} +} + +func (m *invalidMetric) Desc() *Desc { return m.desc } + +func (m *invalidMetric) Write(*dto.Metric) error { return m.err } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go new file mode 100644 index 0000000..e31e62e --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go @@ -0,0 +1,142 @@ +// Copyright 2015 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +import "github.com/prometheus/procfs" + +type processCollector struct { + pid int + collectFn func(chan<- Metric) + pidFn func() (int, error) + cpuTotal Counter + openFDs, maxFDs Gauge + vsize, rss Gauge + startTime Gauge +} + +// NewProcessCollector returns a collector which exports the current state of +// process metrics including cpu, memory and file descriptor usage as well as +// the process start time for the given process id under the given namespace. +func NewProcessCollector(pid int, namespace string) Collector { + return NewProcessCollectorPIDFn( + func() (int, error) { return pid, nil }, + namespace, + ) +} + +// NewProcessCollectorPIDFn returns a collector which exports the current state +// of process metrics including cpu, memory and file descriptor usage as well +// as the process start time under the given namespace. The given pidFn is +// called on each collect and is used to determine the process to export +// metrics for. +func NewProcessCollectorPIDFn( + pidFn func() (int, error), + namespace string, +) Collector { + c := processCollector{ + pidFn: pidFn, + collectFn: func(chan<- Metric) {}, + + cpuTotal: NewCounter(CounterOpts{ + Namespace: namespace, + Name: "process_cpu_seconds_total", + Help: "Total user and system CPU time spent in seconds.", + }), + openFDs: NewGauge(GaugeOpts{ + Namespace: namespace, + Name: "process_open_fds", + Help: "Number of open file descriptors.", + }), + maxFDs: NewGauge(GaugeOpts{ + Namespace: namespace, + Name: "process_max_fds", + Help: "Maximum number of open file descriptors.", + }), + vsize: NewGauge(GaugeOpts{ + Namespace: namespace, + Name: "process_virtual_memory_bytes", + Help: "Virtual memory size in bytes.", + }), + rss: NewGauge(GaugeOpts{ + Namespace: namespace, + Name: "process_resident_memory_bytes", + Help: "Resident memory size in bytes.", + }), + startTime: NewGauge(GaugeOpts{ + Namespace: namespace, + Name: "process_start_time_seconds", + Help: "Start time of the process since unix epoch in seconds.", + }), + } + + // Set up process metric collection if supported by the runtime. + if _, err := procfs.NewStat(); err == nil { + c.collectFn = c.processCollect + } + + return &c +} + +// Describe returns all descriptions of the collector. +func (c *processCollector) Describe(ch chan<- *Desc) { + ch <- c.cpuTotal.Desc() + ch <- c.openFDs.Desc() + ch <- c.maxFDs.Desc() + ch <- c.vsize.Desc() + ch <- c.rss.Desc() + ch <- c.startTime.Desc() +} + +// Collect returns the current state of all metrics of the collector. +func (c *processCollector) Collect(ch chan<- Metric) { + c.collectFn(ch) +} + +// TODO(ts): Bring back error reporting by reverting 7faf9e7 as soon as the +// client allows users to configure the error behavior. +func (c *processCollector) processCollect(ch chan<- Metric) { + pid, err := c.pidFn() + if err != nil { + return + } + + p, err := procfs.NewProc(pid) + if err != nil { + return + } + + if stat, err := p.NewStat(); err == nil { + c.cpuTotal.Set(stat.CPUTime()) + ch <- c.cpuTotal + c.vsize.Set(float64(stat.VirtualMemory())) + ch <- c.vsize + c.rss.Set(float64(stat.ResidentMemory())) + ch <- c.rss + + if startTime, err := stat.StartTime(); err == nil { + c.startTime.Set(startTime) + ch <- c.startTime + } + } + + if fds, err := p.FileDescriptorsLen(); err == nil { + c.openFDs.Set(float64(fds)) + ch <- c.openFDs + } + + if limits, err := p.NewLimits(); err == nil { + c.maxFDs.Set(float64(limits.OpenFiles)) + ch <- c.maxFDs + } +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go new file mode 100644 index 0000000..b6dd5a2 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go @@ -0,0 +1,201 @@ +// Copyright 2016 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Copyright (c) 2013, The Prometheus Authors +// All rights reserved. +// +// Use of this source code is governed by a BSD-style license that can be found +// in the LICENSE file. + +// Package promhttp contains functions to create http.Handler instances to +// expose Prometheus metrics via HTTP. In later versions of this package, it +// will also contain tooling to instrument instances of http.Handler and +// http.RoundTripper. +// +// promhttp.Handler acts on the prometheus.DefaultGatherer. With HandlerFor, +// you can create a handler for a custom registry or anything that implements +// the Gatherer interface. It also allows to create handlers that act +// differently on errors or allow to log errors. +package promhttp + +import ( + "bytes" + "compress/gzip" + "fmt" + "io" + "net/http" + "strings" + "sync" + + "github.com/prometheus/common/expfmt" + + "github.com/prometheus/client_golang/prometheus" +) + +const ( + contentTypeHeader = "Content-Type" + contentLengthHeader = "Content-Length" + contentEncodingHeader = "Content-Encoding" + acceptEncodingHeader = "Accept-Encoding" +) + +var bufPool sync.Pool + +func getBuf() *bytes.Buffer { + buf := bufPool.Get() + if buf == nil { + return &bytes.Buffer{} + } + return buf.(*bytes.Buffer) +} + +func giveBuf(buf *bytes.Buffer) { + buf.Reset() + bufPool.Put(buf) +} + +// Handler returns an HTTP handler for the prometheus.DefaultGatherer. The +// Handler uses the default HandlerOpts, i.e. report the first error as an HTTP +// error, no error logging, and compression if requested by the client. +// +// If you want to create a Handler for the DefaultGatherer with different +// HandlerOpts, create it with HandlerFor with prometheus.DefaultGatherer and +// your desired HandlerOpts. +func Handler() http.Handler { + return HandlerFor(prometheus.DefaultGatherer, HandlerOpts{}) +} + +// HandlerFor returns an http.Handler for the provided Gatherer. The behavior +// of the Handler is defined by the provided HandlerOpts. +func HandlerFor(reg prometheus.Gatherer, opts HandlerOpts) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + mfs, err := reg.Gather() + if err != nil { + if opts.ErrorLog != nil { + opts.ErrorLog.Println("error gathering metrics:", err) + } + switch opts.ErrorHandling { + case PanicOnError: + panic(err) + case ContinueOnError: + if len(mfs) == 0 { + http.Error(w, "No metrics gathered, last error:\n\n"+err.Error(), http.StatusInternalServerError) + return + } + case HTTPErrorOnError: + http.Error(w, "An error has occurred during metrics gathering:\n\n"+err.Error(), http.StatusInternalServerError) + return + } + } + + contentType := expfmt.Negotiate(req.Header) + buf := getBuf() + defer giveBuf(buf) + writer, encoding := decorateWriter(req, buf, opts.DisableCompression) + enc := expfmt.NewEncoder(writer, contentType) + var lastErr error + for _, mf := range mfs { + if err := enc.Encode(mf); err != nil { + lastErr = err + if opts.ErrorLog != nil { + opts.ErrorLog.Println("error encoding metric family:", err) + } + switch opts.ErrorHandling { + case PanicOnError: + panic(err) + case ContinueOnError: + // Handled later. + case HTTPErrorOnError: + http.Error(w, "An error has occurred during metrics encoding:\n\n"+err.Error(), http.StatusInternalServerError) + return + } + } + } + if closer, ok := writer.(io.Closer); ok { + closer.Close() + } + if lastErr != nil && buf.Len() == 0 { + http.Error(w, "No metrics encoded, last error:\n\n"+err.Error(), http.StatusInternalServerError) + return + } + header := w.Header() + header.Set(contentTypeHeader, string(contentType)) + header.Set(contentLengthHeader, fmt.Sprint(buf.Len())) + if encoding != "" { + header.Set(contentEncodingHeader, encoding) + } + w.Write(buf.Bytes()) + // TODO(beorn7): Consider streaming serving of metrics. + }) +} + +// HandlerErrorHandling defines how a Handler serving metrics will handle +// errors. +type HandlerErrorHandling int + +// These constants cause handlers serving metrics to behave as described if +// errors are encountered. +const ( + // Serve an HTTP status code 500 upon the first error + // encountered. Report the error message in the body. + HTTPErrorOnError HandlerErrorHandling = iota + // Ignore errors and try to serve as many metrics as possible. However, + // if no metrics can be served, serve an HTTP status code 500 and the + // last error message in the body. Only use this in deliberate "best + // effort" metrics collection scenarios. It is recommended to at least + // log errors (by providing an ErrorLog in HandlerOpts) to not mask + // errors completely. + ContinueOnError + // Panic upon the first error encountered (useful for "crash only" apps). + PanicOnError +) + +// Logger is the minimal interface HandlerOpts needs for logging. Note that +// log.Logger from the standard library implements this interface, and it is +// easy to implement by custom loggers, if they don't do so already anyway. +type Logger interface { + Println(v ...interface{}) +} + +// HandlerOpts specifies options how to serve metrics via an http.Handler. The +// zero value of HandlerOpts is a reasonable default. +type HandlerOpts struct { + // ErrorLog specifies an optional logger for errors collecting and + // serving metrics. If nil, errors are not logged at all. + ErrorLog Logger + // ErrorHandling defines how errors are handled. Note that errors are + // logged regardless of the configured ErrorHandling provided ErrorLog + // is not nil. + ErrorHandling HandlerErrorHandling + // If DisableCompression is true, the handler will never compress the + // response, even if requested by the client. + DisableCompression bool +} + +// decorateWriter wraps a writer to handle gzip compression if requested. It +// returns the decorated writer and the appropriate "Content-Encoding" header +// (which is empty if no compression is enabled). +func decorateWriter(request *http.Request, writer io.Writer, compressionDisabled bool) (io.Writer, string) { + if compressionDisabled { + return writer, "" + } + header := request.Header.Get(acceptEncodingHeader) + parts := strings.Split(header, ",") + for _, part := range parts { + part := strings.TrimSpace(part) + if part == "gzip" || strings.HasPrefix(part, "gzip;") { + return gzip.NewWriter(writer), "gzip" + } + } + return writer, "" +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/registry.go b/vendor/github.com/prometheus/client_golang/prometheus/registry.go new file mode 100644 index 0000000..32a3986 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/registry.go @@ -0,0 +1,806 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +import ( + "bytes" + "errors" + "fmt" + "os" + "sort" + "sync" + + "github.com/golang/protobuf/proto" + + dto "github.com/prometheus/client_model/go" +) + +const ( + // Capacity for the channel to collect metrics and descriptors. + capMetricChan = 1000 + capDescChan = 10 +) + +// DefaultRegisterer and DefaultGatherer are the implementations of the +// Registerer and Gatherer interface a number of convenience functions in this +// package act on. Initially, both variables point to the same Registry, which +// has a process collector (see NewProcessCollector) and a Go collector (see +// NewGoCollector) already registered. This approach to keep default instances +// as global state mirrors the approach of other packages in the Go standard +// library. Note that there are caveats. Change the variables with caution and +// only if you understand the consequences. Users who want to avoid global state +// altogether should not use the convenience function and act on custom +// instances instead. +var ( + defaultRegistry = NewRegistry() + DefaultRegisterer Registerer = defaultRegistry + DefaultGatherer Gatherer = defaultRegistry +) + +func init() { + MustRegister(NewProcessCollector(os.Getpid(), "")) + MustRegister(NewGoCollector()) +} + +// NewRegistry creates a new vanilla Registry without any Collectors +// pre-registered. +func NewRegistry() *Registry { + return &Registry{ + collectorsByID: map[uint64]Collector{}, + descIDs: map[uint64]struct{}{}, + dimHashesByName: map[string]uint64{}, + } +} + +// NewPedanticRegistry returns a registry that checks during collection if each +// collected Metric is consistent with its reported Desc, and if the Desc has +// actually been registered with the registry. +// +// Usually, a Registry will be happy as long as the union of all collected +// Metrics is consistent and valid even if some metrics are not consistent with +// their own Desc or a Desc provided by their registered Collector. Well-behaved +// Collectors and Metrics will only provide consistent Descs. This Registry is +// useful to test the implementation of Collectors and Metrics. +func NewPedanticRegistry() *Registry { + r := NewRegistry() + r.pedanticChecksEnabled = true + return r +} + +// Registerer is the interface for the part of a registry in charge of +// registering and unregistering. Users of custom registries should use +// Registerer as type for registration purposes (rather then the Registry type +// directly). In that way, they are free to use custom Registerer implementation +// (e.g. for testing purposes). +type Registerer interface { + // Register registers a new Collector to be included in metrics + // collection. It returns an error if the descriptors provided by the + // Collector are invalid or if they — in combination with descriptors of + // already registered Collectors — do not fulfill the consistency and + // uniqueness criteria described in the documentation of metric.Desc. + // + // If the provided Collector is equal to a Collector already registered + // (which includes the case of re-registering the same Collector), the + // returned error is an instance of AlreadyRegisteredError, which + // contains the previously registered Collector. + // + // It is in general not safe to register the same Collector multiple + // times concurrently. + Register(Collector) error + // MustRegister works like Register but registers any number of + // Collectors and panics upon the first registration that causes an + // error. + MustRegister(...Collector) + // Unregister unregisters the Collector that equals the Collector passed + // in as an argument. (Two Collectors are considered equal if their + // Describe method yields the same set of descriptors.) The function + // returns whether a Collector was unregistered. + // + // Note that even after unregistering, it will not be possible to + // register a new Collector that is inconsistent with the unregistered + // Collector, e.g. a Collector collecting metrics with the same name but + // a different help string. The rationale here is that the same registry + // instance must only collect consistent metrics throughout its + // lifetime. + Unregister(Collector) bool +} + +// Gatherer is the interface for the part of a registry in charge of gathering +// the collected metrics into a number of MetricFamilies. The Gatherer interface +// comes with the same general implication as described for the Registerer +// interface. +type Gatherer interface { + // Gather calls the Collect method of the registered Collectors and then + // gathers the collected metrics into a lexicographically sorted slice + // of MetricFamily protobufs. Even if an error occurs, Gather attempts + // to gather as many metrics as possible. Hence, if a non-nil error is + // returned, the returned MetricFamily slice could be nil (in case of a + // fatal error that prevented any meaningful metric collection) or + // contain a number of MetricFamily protobufs, some of which might be + // incomplete, and some might be missing altogether. The returned error + // (which might be a MultiError) explains the details. In scenarios + // where complete collection is critical, the returned MetricFamily + // protobufs should be disregarded if the returned error is non-nil. + Gather() ([]*dto.MetricFamily, error) +} + +// Register registers the provided Collector with the DefaultRegisterer. +// +// Register is a shortcut for DefaultRegisterer.Register(c). See there for more +// details. +func Register(c Collector) error { + return DefaultRegisterer.Register(c) +} + +// MustRegister registers the provided Collectors with the DefaultRegisterer and +// panics if any error occurs. +// +// MustRegister is a shortcut for DefaultRegisterer.MustRegister(cs...). See +// there for more details. +func MustRegister(cs ...Collector) { + DefaultRegisterer.MustRegister(cs...) +} + +// RegisterOrGet registers the provided Collector with the DefaultRegisterer and +// returns the Collector, unless an equal Collector was registered before, in +// which case that Collector is returned. +// +// Deprecated: RegisterOrGet is merely a convenience function for the +// implementation as described in the documentation for +// AlreadyRegisteredError. As the use case is relatively rare, this function +// will be removed in a future version of this package to clean up the +// namespace. +func RegisterOrGet(c Collector) (Collector, error) { + if err := Register(c); err != nil { + if are, ok := err.(AlreadyRegisteredError); ok { + return are.ExistingCollector, nil + } + return nil, err + } + return c, nil +} + +// MustRegisterOrGet behaves like RegisterOrGet but panics instead of returning +// an error. +// +// Deprecated: This is deprecated for the same reason RegisterOrGet is. See +// there for details. +func MustRegisterOrGet(c Collector) Collector { + c, err := RegisterOrGet(c) + if err != nil { + panic(err) + } + return c +} + +// Unregister removes the registration of the provided Collector from the +// DefaultRegisterer. +// +// Unregister is a shortcut for DefaultRegisterer.Unregister(c). See there for +// more details. +func Unregister(c Collector) bool { + return DefaultRegisterer.Unregister(c) +} + +// GathererFunc turns a function into a Gatherer. +type GathererFunc func() ([]*dto.MetricFamily, error) + +// Gather implements Gatherer. +func (gf GathererFunc) Gather() ([]*dto.MetricFamily, error) { + return gf() +} + +// SetMetricFamilyInjectionHook replaces the DefaultGatherer with one that +// gathers from the previous DefaultGatherers but then merges the MetricFamily +// protobufs returned from the provided hook function with the MetricFamily +// protobufs returned from the original DefaultGatherer. +// +// Deprecated: This function manipulates the DefaultGatherer variable. Consider +// the implications, i.e. don't do this concurrently with any uses of the +// DefaultGatherer. In the rare cases where you need to inject MetricFamily +// protobufs directly, it is recommended to use a custom Registry and combine it +// with a custom Gatherer using the Gatherers type (see +// there). SetMetricFamilyInjectionHook only exists for compatibility reasons +// with previous versions of this package. +func SetMetricFamilyInjectionHook(hook func() []*dto.MetricFamily) { + DefaultGatherer = Gatherers{ + DefaultGatherer, + GathererFunc(func() ([]*dto.MetricFamily, error) { return hook(), nil }), + } +} + +// AlreadyRegisteredError is returned by the Register method if the Collector to +// be registered has already been registered before, or a different Collector +// that collects the same metrics has been registered before. Registration fails +// in that case, but you can detect from the kind of error what has +// happened. The error contains fields for the existing Collector and the +// (rejected) new Collector that equals the existing one. This can be used to +// find out if an equal Collector has been registered before and switch over to +// using the old one, as demonstrated in the example. +type AlreadyRegisteredError struct { + ExistingCollector, NewCollector Collector +} + +func (err AlreadyRegisteredError) Error() string { + return "duplicate metrics collector registration attempted" +} + +// MultiError is a slice of errors implementing the error interface. It is used +// by a Gatherer to report multiple errors during MetricFamily gathering. +type MultiError []error + +func (errs MultiError) Error() string { + if len(errs) == 0 { + return "" + } + buf := &bytes.Buffer{} + fmt.Fprintf(buf, "%d error(s) occurred:", len(errs)) + for _, err := range errs { + fmt.Fprintf(buf, "\n* %s", err) + } + return buf.String() +} + +// MaybeUnwrap returns nil if len(errs) is 0. It returns the first and only +// contained error as error if len(errs is 1). In all other cases, it returns +// the MultiError directly. This is helpful for returning a MultiError in a way +// that only uses the MultiError if needed. +func (errs MultiError) MaybeUnwrap() error { + switch len(errs) { + case 0: + return nil + case 1: + return errs[0] + default: + return errs + } +} + +// Registry registers Prometheus collectors, collects their metrics, and gathers +// them into MetricFamilies for exposition. It implements both Registerer and +// Gatherer. The zero value is not usable. Create instances with NewRegistry or +// NewPedanticRegistry. +type Registry struct { + mtx sync.RWMutex + collectorsByID map[uint64]Collector // ID is a hash of the descIDs. + descIDs map[uint64]struct{} + dimHashesByName map[string]uint64 + pedanticChecksEnabled bool +} + +// Register implements Registerer. +func (r *Registry) Register(c Collector) error { + var ( + descChan = make(chan *Desc, capDescChan) + newDescIDs = map[uint64]struct{}{} + newDimHashesByName = map[string]uint64{} + collectorID uint64 // Just a sum of all desc IDs. + duplicateDescErr error + ) + go func() { + c.Describe(descChan) + close(descChan) + }() + r.mtx.Lock() + defer r.mtx.Unlock() + // Coduct various tests... + for desc := range descChan { + + // Is the descriptor valid at all? + if desc.err != nil { + return fmt.Errorf("descriptor %s is invalid: %s", desc, desc.err) + } + + // Is the descID unique? + // (In other words: Is the fqName + constLabel combination unique?) + if _, exists := r.descIDs[desc.id]; exists { + duplicateDescErr = fmt.Errorf("descriptor %s already exists with the same fully-qualified name and const label values", desc) + } + // If it is not a duplicate desc in this collector, add it to + // the collectorID. (We allow duplicate descs within the same + // collector, but their existence must be a no-op.) + if _, exists := newDescIDs[desc.id]; !exists { + newDescIDs[desc.id] = struct{}{} + collectorID += desc.id + } + + // Are all the label names and the help string consistent with + // previous descriptors of the same name? + // First check existing descriptors... + if dimHash, exists := r.dimHashesByName[desc.fqName]; exists { + if dimHash != desc.dimHash { + return fmt.Errorf("a previously registered descriptor with the same fully-qualified name as %s has different label names or a different help string", desc) + } + } else { + // ...then check the new descriptors already seen. + if dimHash, exists := newDimHashesByName[desc.fqName]; exists { + if dimHash != desc.dimHash { + return fmt.Errorf("descriptors reported by collector have inconsistent label names or help strings for the same fully-qualified name, offender is %s", desc) + } + } else { + newDimHashesByName[desc.fqName] = desc.dimHash + } + } + } + // Did anything happen at all? + if len(newDescIDs) == 0 { + return errors.New("collector has no descriptors") + } + if existing, exists := r.collectorsByID[collectorID]; exists { + return AlreadyRegisteredError{ + ExistingCollector: existing, + NewCollector: c, + } + } + // If the collectorID is new, but at least one of the descs existed + // before, we are in trouble. + if duplicateDescErr != nil { + return duplicateDescErr + } + + // Only after all tests have passed, actually register. + r.collectorsByID[collectorID] = c + for hash := range newDescIDs { + r.descIDs[hash] = struct{}{} + } + for name, dimHash := range newDimHashesByName { + r.dimHashesByName[name] = dimHash + } + return nil +} + +// Unregister implements Registerer. +func (r *Registry) Unregister(c Collector) bool { + var ( + descChan = make(chan *Desc, capDescChan) + descIDs = map[uint64]struct{}{} + collectorID uint64 // Just a sum of the desc IDs. + ) + go func() { + c.Describe(descChan) + close(descChan) + }() + for desc := range descChan { + if _, exists := descIDs[desc.id]; !exists { + collectorID += desc.id + descIDs[desc.id] = struct{}{} + } + } + + r.mtx.RLock() + if _, exists := r.collectorsByID[collectorID]; !exists { + r.mtx.RUnlock() + return false + } + r.mtx.RUnlock() + + r.mtx.Lock() + defer r.mtx.Unlock() + + delete(r.collectorsByID, collectorID) + for id := range descIDs { + delete(r.descIDs, id) + } + // dimHashesByName is left untouched as those must be consistent + // throughout the lifetime of a program. + return true +} + +// MustRegister implements Registerer. +func (r *Registry) MustRegister(cs ...Collector) { + for _, c := range cs { + if err := r.Register(c); err != nil { + panic(err) + } + } +} + +// Gather implements Gatherer. +func (r *Registry) Gather() ([]*dto.MetricFamily, error) { + var ( + metricChan = make(chan Metric, capMetricChan) + metricHashes = map[uint64]struct{}{} + dimHashes = map[string]uint64{} + wg sync.WaitGroup + errs MultiError // The collected errors to return in the end. + registeredDescIDs map[uint64]struct{} // Only used for pedantic checks + ) + + r.mtx.RLock() + metricFamiliesByName := make(map[string]*dto.MetricFamily, len(r.dimHashesByName)) + + // Scatter. + // (Collectors could be complex and slow, so we call them all at once.) + wg.Add(len(r.collectorsByID)) + go func() { + wg.Wait() + close(metricChan) + }() + for _, collector := range r.collectorsByID { + go func(collector Collector) { + defer wg.Done() + collector.Collect(metricChan) + }(collector) + } + + // In case pedantic checks are enabled, we have to copy the map before + // giving up the RLock. + if r.pedanticChecksEnabled { + registeredDescIDs = make(map[uint64]struct{}, len(r.descIDs)) + for id := range r.descIDs { + registeredDescIDs[id] = struct{}{} + } + } + + r.mtx.RUnlock() + + // Drain metricChan in case of premature return. + defer func() { + for _ = range metricChan { + } + }() + + // Gather. + for metric := range metricChan { + // This could be done concurrently, too, but it required locking + // of metricFamiliesByName (and of metricHashes if checks are + // enabled). Most likely not worth it. + desc := metric.Desc() + dtoMetric := &dto.Metric{} + if err := metric.Write(dtoMetric); err != nil { + errs = append(errs, fmt.Errorf( + "error collecting metric %v: %s", desc, err, + )) + continue + } + metricFamily, ok := metricFamiliesByName[desc.fqName] + if ok { + if metricFamily.GetHelp() != desc.help { + errs = append(errs, fmt.Errorf( + "collected metric %s %s has help %q but should have %q", + desc.fqName, dtoMetric, desc.help, metricFamily.GetHelp(), + )) + continue + } + // TODO(beorn7): Simplify switch once Desc has type. + switch metricFamily.GetType() { + case dto.MetricType_COUNTER: + if dtoMetric.Counter == nil { + errs = append(errs, fmt.Errorf( + "collected metric %s %s should be a Counter", + desc.fqName, dtoMetric, + )) + continue + } + case dto.MetricType_GAUGE: + if dtoMetric.Gauge == nil { + errs = append(errs, fmt.Errorf( + "collected metric %s %s should be a Gauge", + desc.fqName, dtoMetric, + )) + continue + } + case dto.MetricType_SUMMARY: + if dtoMetric.Summary == nil { + errs = append(errs, fmt.Errorf( + "collected metric %s %s should be a Summary", + desc.fqName, dtoMetric, + )) + continue + } + case dto.MetricType_UNTYPED: + if dtoMetric.Untyped == nil { + errs = append(errs, fmt.Errorf( + "collected metric %s %s should be Untyped", + desc.fqName, dtoMetric, + )) + continue + } + case dto.MetricType_HISTOGRAM: + if dtoMetric.Histogram == nil { + errs = append(errs, fmt.Errorf( + "collected metric %s %s should be a Histogram", + desc.fqName, dtoMetric, + )) + continue + } + default: + panic("encountered MetricFamily with invalid type") + } + } else { + metricFamily = &dto.MetricFamily{} + metricFamily.Name = proto.String(desc.fqName) + metricFamily.Help = proto.String(desc.help) + // TODO(beorn7): Simplify switch once Desc has type. + switch { + case dtoMetric.Gauge != nil: + metricFamily.Type = dto.MetricType_GAUGE.Enum() + case dtoMetric.Counter != nil: + metricFamily.Type = dto.MetricType_COUNTER.Enum() + case dtoMetric.Summary != nil: + metricFamily.Type = dto.MetricType_SUMMARY.Enum() + case dtoMetric.Untyped != nil: + metricFamily.Type = dto.MetricType_UNTYPED.Enum() + case dtoMetric.Histogram != nil: + metricFamily.Type = dto.MetricType_HISTOGRAM.Enum() + default: + errs = append(errs, fmt.Errorf( + "empty metric collected: %s", dtoMetric, + )) + continue + } + metricFamiliesByName[desc.fqName] = metricFamily + } + if err := checkMetricConsistency(metricFamily, dtoMetric, metricHashes, dimHashes); err != nil { + errs = append(errs, err) + continue + } + if r.pedanticChecksEnabled { + // Is the desc registered at all? + if _, exist := registeredDescIDs[desc.id]; !exist { + errs = append(errs, fmt.Errorf( + "collected metric %s %s with unregistered descriptor %s", + metricFamily.GetName(), dtoMetric, desc, + )) + continue + } + if err := checkDescConsistency(metricFamily, dtoMetric, desc); err != nil { + errs = append(errs, err) + continue + } + } + metricFamily.Metric = append(metricFamily.Metric, dtoMetric) + } + return normalizeMetricFamilies(metricFamiliesByName), errs.MaybeUnwrap() +} + +// Gatherers is a slice of Gatherer instances that implements the Gatherer +// interface itself. Its Gather method calls Gather on all Gatherers in the +// slice in order and returns the merged results. Errors returned from the +// Gather calles are all returned in a flattened MultiError. Duplicate and +// inconsistent Metrics are skipped (first occurrence in slice order wins) and +// reported in the returned error. +// +// Gatherers can be used to merge the Gather results from multiple +// Registries. It also provides a way to directly inject existing MetricFamily +// protobufs into the gathering by creating a custom Gatherer with a Gather +// method that simply returns the existing MetricFamily protobufs. Note that no +// registration is involved (in contrast to Collector registration), so +// obviously registration-time checks cannot happen. Any inconsistencies between +// the gathered MetricFamilies are reported as errors by the Gather method, and +// inconsistent Metrics are dropped. Invalid parts of the MetricFamilies +// (e.g. syntactically invalid metric or label names) will go undetected. +type Gatherers []Gatherer + +// Gather implements Gatherer. +func (gs Gatherers) Gather() ([]*dto.MetricFamily, error) { + var ( + metricFamiliesByName = map[string]*dto.MetricFamily{} + metricHashes = map[uint64]struct{}{} + dimHashes = map[string]uint64{} + errs MultiError // The collected errors to return in the end. + ) + + for i, g := range gs { + mfs, err := g.Gather() + if err != nil { + if multiErr, ok := err.(MultiError); ok { + for _, err := range multiErr { + errs = append(errs, fmt.Errorf("[from Gatherer #%d] %s", i+1, err)) + } + } else { + errs = append(errs, fmt.Errorf("[from Gatherer #%d] %s", i+1, err)) + } + } + for _, mf := range mfs { + existingMF, exists := metricFamiliesByName[mf.GetName()] + if exists { + if existingMF.GetHelp() != mf.GetHelp() { + errs = append(errs, fmt.Errorf( + "gathered metric family %s has help %q but should have %q", + mf.GetName(), mf.GetHelp(), existingMF.GetHelp(), + )) + continue + } + if existingMF.GetType() != mf.GetType() { + errs = append(errs, fmt.Errorf( + "gathered metric family %s has type %s but should have %s", + mf.GetName(), mf.GetType(), existingMF.GetType(), + )) + continue + } + } else { + existingMF = &dto.MetricFamily{} + existingMF.Name = mf.Name + existingMF.Help = mf.Help + existingMF.Type = mf.Type + metricFamiliesByName[mf.GetName()] = existingMF + } + for _, m := range mf.Metric { + if err := checkMetricConsistency(existingMF, m, metricHashes, dimHashes); err != nil { + errs = append(errs, err) + continue + } + existingMF.Metric = append(existingMF.Metric, m) + } + } + } + return normalizeMetricFamilies(metricFamiliesByName), errs.MaybeUnwrap() +} + +// metricSorter is a sortable slice of *dto.Metric. +type metricSorter []*dto.Metric + +func (s metricSorter) Len() int { + return len(s) +} + +func (s metricSorter) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +func (s metricSorter) Less(i, j int) bool { + if len(s[i].Label) != len(s[j].Label) { + // This should not happen. The metrics are + // inconsistent. However, we have to deal with the fact, as + // people might use custom collectors or metric family injection + // to create inconsistent metrics. So let's simply compare the + // number of labels in this case. That will still yield + // reproducible sorting. + return len(s[i].Label) < len(s[j].Label) + } + for n, lp := range s[i].Label { + vi := lp.GetValue() + vj := s[j].Label[n].GetValue() + if vi != vj { + return vi < vj + } + } + + // We should never arrive here. Multiple metrics with the same + // label set in the same scrape will lead to undefined ingestion + // behavior. However, as above, we have to provide stable sorting + // here, even for inconsistent metrics. So sort equal metrics + // by their timestamp, with missing timestamps (implying "now") + // coming last. + if s[i].TimestampMs == nil { + return false + } + if s[j].TimestampMs == nil { + return true + } + return s[i].GetTimestampMs() < s[j].GetTimestampMs() +} + +// normalizeMetricFamilies returns a MetricFamily slice whith empty +// MetricFamilies pruned and the remaining MetricFamilies sorted by name within +// the slice, with the contained Metrics sorted within each MetricFamily. +func normalizeMetricFamilies(metricFamiliesByName map[string]*dto.MetricFamily) []*dto.MetricFamily { + for _, mf := range metricFamiliesByName { + sort.Sort(metricSorter(mf.Metric)) + } + names := make([]string, 0, len(metricFamiliesByName)) + for name, mf := range metricFamiliesByName { + if len(mf.Metric) > 0 { + names = append(names, name) + } + } + sort.Strings(names) + result := make([]*dto.MetricFamily, 0, len(names)) + for _, name := range names { + result = append(result, metricFamiliesByName[name]) + } + return result +} + +// checkMetricConsistency checks if the provided Metric is consistent with the +// provided MetricFamily. It also hashed the Metric labels and the MetricFamily +// name. If the resulting hash is alread in the provided metricHashes, an error +// is returned. If not, it is added to metricHashes. The provided dimHashes maps +// MetricFamily names to their dimHash (hashed sorted label names). If dimHashes +// doesn't yet contain a hash for the provided MetricFamily, it is +// added. Otherwise, an error is returned if the existing dimHashes in not equal +// the calculated dimHash. +func checkMetricConsistency( + metricFamily *dto.MetricFamily, + dtoMetric *dto.Metric, + metricHashes map[uint64]struct{}, + dimHashes map[string]uint64, +) error { + // Type consistency with metric family. + if metricFamily.GetType() == dto.MetricType_GAUGE && dtoMetric.Gauge == nil || + metricFamily.GetType() == dto.MetricType_COUNTER && dtoMetric.Counter == nil || + metricFamily.GetType() == dto.MetricType_SUMMARY && dtoMetric.Summary == nil || + metricFamily.GetType() == dto.MetricType_HISTOGRAM && dtoMetric.Histogram == nil || + metricFamily.GetType() == dto.MetricType_UNTYPED && dtoMetric.Untyped == nil { + return fmt.Errorf( + "collected metric %s %s is not a %s", + metricFamily.GetName(), dtoMetric, metricFamily.GetType(), + ) + } + + // Is the metric unique (i.e. no other metric with the same name and the same label values)? + h := hashNew() + h = hashAdd(h, metricFamily.GetName()) + h = hashAddByte(h, separatorByte) + dh := hashNew() + // Make sure label pairs are sorted. We depend on it for the consistency + // check. + sort.Sort(LabelPairSorter(dtoMetric.Label)) + for _, lp := range dtoMetric.Label { + h = hashAdd(h, lp.GetValue()) + h = hashAddByte(h, separatorByte) + dh = hashAdd(dh, lp.GetName()) + dh = hashAddByte(dh, separatorByte) + } + if _, exists := metricHashes[h]; exists { + return fmt.Errorf( + "collected metric %s %s was collected before with the same name and label values", + metricFamily.GetName(), dtoMetric, + ) + } + if dimHash, ok := dimHashes[metricFamily.GetName()]; ok { + if dimHash != dh { + return fmt.Errorf( + "collected metric %s %s has label dimensions inconsistent with previously collected metrics in the same metric family", + metricFamily.GetName(), dtoMetric, + ) + } + } else { + dimHashes[metricFamily.GetName()] = dh + } + metricHashes[h] = struct{}{} + return nil +} + +func checkDescConsistency( + metricFamily *dto.MetricFamily, + dtoMetric *dto.Metric, + desc *Desc, +) error { + // Desc help consistency with metric family help. + if metricFamily.GetHelp() != desc.help { + return fmt.Errorf( + "collected metric %s %s has help %q but should have %q", + metricFamily.GetName(), dtoMetric, metricFamily.GetHelp(), desc.help, + ) + } + + // Is the desc consistent with the content of the metric? + lpsFromDesc := make([]*dto.LabelPair, 0, len(dtoMetric.Label)) + lpsFromDesc = append(lpsFromDesc, desc.constLabelPairs...) + for _, l := range desc.variableLabels { + lpsFromDesc = append(lpsFromDesc, &dto.LabelPair{ + Name: proto.String(l), + }) + } + if len(lpsFromDesc) != len(dtoMetric.Label) { + return fmt.Errorf( + "labels in collected metric %s %s are inconsistent with descriptor %s", + metricFamily.GetName(), dtoMetric, desc, + ) + } + sort.Sort(LabelPairSorter(lpsFromDesc)) + for i, lpFromDesc := range lpsFromDesc { + lpFromMetric := dtoMetric.Label[i] + if lpFromDesc.GetName() != lpFromMetric.GetName() || + lpFromDesc.Value != nil && lpFromDesc.GetValue() != lpFromMetric.GetValue() { + return fmt.Errorf( + "labels in collected metric %s %s are inconsistent with descriptor %s", + metricFamily.GetName(), dtoMetric, desc, + ) + } + } + return nil +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/summary.go b/vendor/github.com/prometheus/client_golang/prometheus/summary.go new file mode 100644 index 0000000..bce05bf --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/summary.go @@ -0,0 +1,534 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +import ( + "fmt" + "math" + "sort" + "sync" + "time" + + "github.com/beorn7/perks/quantile" + "github.com/golang/protobuf/proto" + + dto "github.com/prometheus/client_model/go" +) + +// quantileLabel is used for the label that defines the quantile in a +// summary. +const quantileLabel = "quantile" + +// A Summary captures individual observations from an event or sample stream and +// summarizes them in a manner similar to traditional summary statistics: 1. sum +// of observations, 2. observation count, 3. rank estimations. +// +// A typical use-case is the observation of request latencies. By default, a +// Summary provides the median, the 90th and the 99th percentile of the latency +// as rank estimations. +// +// Note that the rank estimations cannot be aggregated in a meaningful way with +// the Prometheus query language (i.e. you cannot average or add them). If you +// need aggregatable quantiles (e.g. you want the 99th percentile latency of all +// queries served across all instances of a service), consider the Histogram +// metric type. See the Prometheus documentation for more details. +// +// To create Summary instances, use NewSummary. +type Summary interface { + Metric + Collector + + // Observe adds a single observation to the summary. + Observe(float64) +} + +// DefObjectives are the default Summary quantile values. +var ( + DefObjectives = map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001} + + errQuantileLabelNotAllowed = fmt.Errorf( + "%q is not allowed as label name in summaries", quantileLabel, + ) +) + +// Default values for SummaryOpts. +const ( + // DefMaxAge is the default duration for which observations stay + // relevant. + DefMaxAge time.Duration = 10 * time.Minute + // DefAgeBuckets is the default number of buckets used to calculate the + // age of observations. + DefAgeBuckets = 5 + // DefBufCap is the standard buffer size for collecting Summary observations. + DefBufCap = 500 +) + +// SummaryOpts bundles the options for creating a Summary metric. It is +// mandatory to set Name and Help to a non-empty string. All other fields are +// optional and can safely be left at their zero value. +type SummaryOpts struct { + // Namespace, Subsystem, and Name are components of the fully-qualified + // name of the Summary (created by joining these components with + // "_"). Only Name is mandatory, the others merely help structuring the + // name. Note that the fully-qualified name of the Summary must be a + // valid Prometheus metric name. + Namespace string + Subsystem string + Name string + + // Help provides information about this Summary. Mandatory! + // + // Metrics with the same fully-qualified name must have the same Help + // string. + Help string + + // ConstLabels are used to attach fixed labels to this + // Summary. Summaries with the same fully-qualified name must have the + // same label names in their ConstLabels. + // + // Note that in most cases, labels have a value that varies during the + // lifetime of a process. Those labels are usually managed with a + // SummaryVec. ConstLabels serve only special purposes. One is for the + // special case where the value of a label does not change during the + // lifetime of a process, e.g. if the revision of the running binary is + // put into a label. Another, more advanced purpose is if more than one + // Collector needs to collect Summaries with the same fully-qualified + // name. In that case, those Summaries must differ in the values of + // their ConstLabels. See the Collector examples. + // + // If the value of a label never changes (not even between binaries), + // that label most likely should not be a label at all (but part of the + // metric name). + ConstLabels Labels + + // Objectives defines the quantile rank estimates with their respective + // absolute error. If Objectives[q] = e, then the value reported + // for q will be the φ-quantile value for some φ between q-e and q+e. + // The default value is DefObjectives. + Objectives map[float64]float64 + + // MaxAge defines the duration for which an observation stays relevant + // for the summary. Must be positive. The default value is DefMaxAge. + MaxAge time.Duration + + // AgeBuckets is the number of buckets used to exclude observations that + // are older than MaxAge from the summary. A higher number has a + // resource penalty, so only increase it if the higher resolution is + // really required. For very high observation rates, you might want to + // reduce the number of age buckets. With only one age bucket, you will + // effectively see a complete reset of the summary each time MaxAge has + // passed. The default value is DefAgeBuckets. + AgeBuckets uint32 + + // BufCap defines the default sample stream buffer size. The default + // value of DefBufCap should suffice for most uses. If there is a need + // to increase the value, a multiple of 500 is recommended (because that + // is the internal buffer size of the underlying package + // "github.com/bmizerany/perks/quantile"). + BufCap uint32 +} + +// Great fuck-up with the sliding-window decay algorithm... The Merge method of +// perk/quantile is actually not working as advertised - and it might be +// unfixable, as the underlying algorithm is apparently not capable of merging +// summaries in the first place. To avoid using Merge, we are currently adding +// observations to _each_ age bucket, i.e. the effort to add a sample is +// essentially multiplied by the number of age buckets. When rotating age +// buckets, we empty the previous head stream. On scrape time, we simply take +// the quantiles from the head stream (no merging required). Result: More effort +// on observation time, less effort on scrape time, which is exactly the +// opposite of what we try to accomplish, but at least the results are correct. +// +// The quite elegant previous contraption to merge the age buckets efficiently +// on scrape time (see code up commit 6b9530d72ea715f0ba612c0120e6e09fbf1d49d0) +// can't be used anymore. + +// NewSummary creates a new Summary based on the provided SummaryOpts. +func NewSummary(opts SummaryOpts) Summary { + return newSummary( + NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + nil, + opts.ConstLabels, + ), + opts, + ) +} + +func newSummary(desc *Desc, opts SummaryOpts, labelValues ...string) Summary { + if len(desc.variableLabels) != len(labelValues) { + panic(errInconsistentCardinality) + } + + for _, n := range desc.variableLabels { + if n == quantileLabel { + panic(errQuantileLabelNotAllowed) + } + } + for _, lp := range desc.constLabelPairs { + if lp.GetName() == quantileLabel { + panic(errQuantileLabelNotAllowed) + } + } + + if len(opts.Objectives) == 0 { + opts.Objectives = DefObjectives + } + + if opts.MaxAge < 0 { + panic(fmt.Errorf("illegal max age MaxAge=%v", opts.MaxAge)) + } + if opts.MaxAge == 0 { + opts.MaxAge = DefMaxAge + } + + if opts.AgeBuckets == 0 { + opts.AgeBuckets = DefAgeBuckets + } + + if opts.BufCap == 0 { + opts.BufCap = DefBufCap + } + + s := &summary{ + desc: desc, + + objectives: opts.Objectives, + sortedObjectives: make([]float64, 0, len(opts.Objectives)), + + labelPairs: makeLabelPairs(desc, labelValues), + + hotBuf: make([]float64, 0, opts.BufCap), + coldBuf: make([]float64, 0, opts.BufCap), + streamDuration: opts.MaxAge / time.Duration(opts.AgeBuckets), + } + s.headStreamExpTime = time.Now().Add(s.streamDuration) + s.hotBufExpTime = s.headStreamExpTime + + for i := uint32(0); i < opts.AgeBuckets; i++ { + s.streams = append(s.streams, s.newStream()) + } + s.headStream = s.streams[0] + + for qu := range s.objectives { + s.sortedObjectives = append(s.sortedObjectives, qu) + } + sort.Float64s(s.sortedObjectives) + + s.init(s) // Init self-collection. + return s +} + +type summary struct { + selfCollector + + bufMtx sync.Mutex // Protects hotBuf and hotBufExpTime. + mtx sync.Mutex // Protects every other moving part. + // Lock bufMtx before mtx if both are needed. + + desc *Desc + + objectives map[float64]float64 + sortedObjectives []float64 + + labelPairs []*dto.LabelPair + + sum float64 + cnt uint64 + + hotBuf, coldBuf []float64 + + streams []*quantile.Stream + streamDuration time.Duration + headStream *quantile.Stream + headStreamIdx int + headStreamExpTime, hotBufExpTime time.Time +} + +func (s *summary) Desc() *Desc { + return s.desc +} + +func (s *summary) Observe(v float64) { + s.bufMtx.Lock() + defer s.bufMtx.Unlock() + + now := time.Now() + if now.After(s.hotBufExpTime) { + s.asyncFlush(now) + } + s.hotBuf = append(s.hotBuf, v) + if len(s.hotBuf) == cap(s.hotBuf) { + s.asyncFlush(now) + } +} + +func (s *summary) Write(out *dto.Metric) error { + sum := &dto.Summary{} + qs := make([]*dto.Quantile, 0, len(s.objectives)) + + s.bufMtx.Lock() + s.mtx.Lock() + // Swap bufs even if hotBuf is empty to set new hotBufExpTime. + s.swapBufs(time.Now()) + s.bufMtx.Unlock() + + s.flushColdBuf() + sum.SampleCount = proto.Uint64(s.cnt) + sum.SampleSum = proto.Float64(s.sum) + + for _, rank := range s.sortedObjectives { + var q float64 + if s.headStream.Count() == 0 { + q = math.NaN() + } else { + q = s.headStream.Query(rank) + } + qs = append(qs, &dto.Quantile{ + Quantile: proto.Float64(rank), + Value: proto.Float64(q), + }) + } + + s.mtx.Unlock() + + if len(qs) > 0 { + sort.Sort(quantSort(qs)) + } + sum.Quantile = qs + + out.Summary = sum + out.Label = s.labelPairs + return nil +} + +func (s *summary) newStream() *quantile.Stream { + return quantile.NewTargeted(s.objectives) +} + +// asyncFlush needs bufMtx locked. +func (s *summary) asyncFlush(now time.Time) { + s.mtx.Lock() + s.swapBufs(now) + + // Unblock the original goroutine that was responsible for the mutation + // that triggered the compaction. But hold onto the global non-buffer + // state mutex until the operation finishes. + go func() { + s.flushColdBuf() + s.mtx.Unlock() + }() +} + +// rotateStreams needs mtx AND bufMtx locked. +func (s *summary) maybeRotateStreams() { + for !s.hotBufExpTime.Equal(s.headStreamExpTime) { + s.headStream.Reset() + s.headStreamIdx++ + if s.headStreamIdx >= len(s.streams) { + s.headStreamIdx = 0 + } + s.headStream = s.streams[s.headStreamIdx] + s.headStreamExpTime = s.headStreamExpTime.Add(s.streamDuration) + } +} + +// flushColdBuf needs mtx locked. +func (s *summary) flushColdBuf() { + for _, v := range s.coldBuf { + for _, stream := range s.streams { + stream.Insert(v) + } + s.cnt++ + s.sum += v + } + s.coldBuf = s.coldBuf[0:0] + s.maybeRotateStreams() +} + +// swapBufs needs mtx AND bufMtx locked, coldBuf must be empty. +func (s *summary) swapBufs(now time.Time) { + if len(s.coldBuf) != 0 { + panic("coldBuf is not empty") + } + s.hotBuf, s.coldBuf = s.coldBuf, s.hotBuf + // hotBuf is now empty and gets new expiration set. + for now.After(s.hotBufExpTime) { + s.hotBufExpTime = s.hotBufExpTime.Add(s.streamDuration) + } +} + +type quantSort []*dto.Quantile + +func (s quantSort) Len() int { + return len(s) +} + +func (s quantSort) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +func (s quantSort) Less(i, j int) bool { + return s[i].GetQuantile() < s[j].GetQuantile() +} + +// SummaryVec is a Collector that bundles a set of Summaries that all share the +// same Desc, but have different values for their variable labels. This is used +// if you want to count the same thing partitioned by various dimensions +// (e.g. HTTP request latencies, partitioned by status code and method). Create +// instances with NewSummaryVec. +type SummaryVec struct { + *MetricVec +} + +// NewSummaryVec creates a new SummaryVec based on the provided SummaryOpts and +// partitioned by the given label names. At least one label name must be +// provided. +func NewSummaryVec(opts SummaryOpts, labelNames []string) *SummaryVec { + desc := NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + labelNames, + opts.ConstLabels, + ) + return &SummaryVec{ + MetricVec: newMetricVec(desc, func(lvs ...string) Metric { + return newSummary(desc, opts, lvs...) + }), + } +} + +// GetMetricWithLabelValues replaces the method of the same name in +// MetricVec. The difference is that this method returns a Summary and not a +// Metric so that no type conversion is required. +func (m *SummaryVec) GetMetricWithLabelValues(lvs ...string) (Summary, error) { + metric, err := m.MetricVec.GetMetricWithLabelValues(lvs...) + if metric != nil { + return metric.(Summary), err + } + return nil, err +} + +// GetMetricWith replaces the method of the same name in MetricVec. The +// difference is that this method returns a Summary and not a Metric so that no +// type conversion is required. +func (m *SummaryVec) GetMetricWith(labels Labels) (Summary, error) { + metric, err := m.MetricVec.GetMetricWith(labels) + if metric != nil { + return metric.(Summary), err + } + return nil, err +} + +// WithLabelValues works as GetMetricWithLabelValues, but panics where +// GetMetricWithLabelValues would have returned an error. By not returning an +// error, WithLabelValues allows shortcuts like +// myVec.WithLabelValues("404", "GET").Observe(42.21) +func (m *SummaryVec) WithLabelValues(lvs ...string) Summary { + return m.MetricVec.WithLabelValues(lvs...).(Summary) +} + +// With works as GetMetricWith, but panics where GetMetricWithLabels would have +// returned an error. By not returning an error, With allows shortcuts like +// myVec.With(Labels{"code": "404", "method": "GET"}).Observe(42.21) +func (m *SummaryVec) With(labels Labels) Summary { + return m.MetricVec.With(labels).(Summary) +} + +type constSummary struct { + desc *Desc + count uint64 + sum float64 + quantiles map[float64]float64 + labelPairs []*dto.LabelPair +} + +func (s *constSummary) Desc() *Desc { + return s.desc +} + +func (s *constSummary) Write(out *dto.Metric) error { + sum := &dto.Summary{} + qs := make([]*dto.Quantile, 0, len(s.quantiles)) + + sum.SampleCount = proto.Uint64(s.count) + sum.SampleSum = proto.Float64(s.sum) + + for rank, q := range s.quantiles { + qs = append(qs, &dto.Quantile{ + Quantile: proto.Float64(rank), + Value: proto.Float64(q), + }) + } + + if len(qs) > 0 { + sort.Sort(quantSort(qs)) + } + sum.Quantile = qs + + out.Summary = sum + out.Label = s.labelPairs + + return nil +} + +// NewConstSummary returns a metric representing a Prometheus summary with fixed +// values for the count, sum, and quantiles. As those parameters cannot be +// changed, the returned value does not implement the Summary interface (but +// only the Metric interface). Users of this package will not have much use for +// it in regular operations. However, when implementing custom Collectors, it is +// useful as a throw-away metric that is generated on the fly to send it to +// Prometheus in the Collect method. +// +// quantiles maps ranks to quantile values. For example, a median latency of +// 0.23s and a 99th percentile latency of 0.56s would be expressed as: +// map[float64]float64{0.5: 0.23, 0.99: 0.56} +// +// NewConstSummary returns an error if the length of labelValues is not +// consistent with the variable labels in Desc. +func NewConstSummary( + desc *Desc, + count uint64, + sum float64, + quantiles map[float64]float64, + labelValues ...string, +) (Metric, error) { + if len(desc.variableLabels) != len(labelValues) { + return nil, errInconsistentCardinality + } + return &constSummary{ + desc: desc, + count: count, + sum: sum, + quantiles: quantiles, + labelPairs: makeLabelPairs(desc, labelValues), + }, nil +} + +// MustNewConstSummary is a version of NewConstSummary that panics where +// NewConstMetric would have returned an error. +func MustNewConstSummary( + desc *Desc, + count uint64, + sum float64, + quantiles map[float64]float64, + labelValues ...string, +) Metric { + m, err := NewConstSummary(desc, count, sum, quantiles, labelValues...) + if err != nil { + panic(err) + } + return m +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/untyped.go b/vendor/github.com/prometheus/client_golang/prometheus/untyped.go new file mode 100644 index 0000000..5faf7e6 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/untyped.go @@ -0,0 +1,138 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +// Untyped is a Metric that represents a single numerical value that can +// arbitrarily go up and down. +// +// An Untyped metric works the same as a Gauge. The only difference is that to +// no type information is implied. +// +// To create Untyped instances, use NewUntyped. +type Untyped interface { + Metric + Collector + + // Set sets the Untyped metric to an arbitrary value. + Set(float64) + // Inc increments the Untyped metric by 1. + Inc() + // Dec decrements the Untyped metric by 1. + Dec() + // Add adds the given value to the Untyped metric. (The value can be + // negative, resulting in a decrease.) + Add(float64) + // Sub subtracts the given value from the Untyped metric. (The value can + // be negative, resulting in an increase.) + Sub(float64) +} + +// UntypedOpts is an alias for Opts. See there for doc comments. +type UntypedOpts Opts + +// NewUntyped creates a new Untyped metric from the provided UntypedOpts. +func NewUntyped(opts UntypedOpts) Untyped { + return newValue(NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + nil, + opts.ConstLabels, + ), UntypedValue, 0) +} + +// UntypedVec is a Collector that bundles a set of Untyped metrics that all +// share the same Desc, but have different values for their variable +// labels. This is used if you want to count the same thing partitioned by +// various dimensions. Create instances with NewUntypedVec. +type UntypedVec struct { + *MetricVec +} + +// NewUntypedVec creates a new UntypedVec based on the provided UntypedOpts and +// partitioned by the given label names. At least one label name must be +// provided. +func NewUntypedVec(opts UntypedOpts, labelNames []string) *UntypedVec { + desc := NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + labelNames, + opts.ConstLabels, + ) + return &UntypedVec{ + MetricVec: newMetricVec(desc, func(lvs ...string) Metric { + return newValue(desc, UntypedValue, 0, lvs...) + }), + } +} + +// GetMetricWithLabelValues replaces the method of the same name in +// MetricVec. The difference is that this method returns an Untyped and not a +// Metric so that no type conversion is required. +func (m *UntypedVec) GetMetricWithLabelValues(lvs ...string) (Untyped, error) { + metric, err := m.MetricVec.GetMetricWithLabelValues(lvs...) + if metric != nil { + return metric.(Untyped), err + } + return nil, err +} + +// GetMetricWith replaces the method of the same name in MetricVec. The +// difference is that this method returns an Untyped and not a Metric so that no +// type conversion is required. +func (m *UntypedVec) GetMetricWith(labels Labels) (Untyped, error) { + metric, err := m.MetricVec.GetMetricWith(labels) + if metric != nil { + return metric.(Untyped), err + } + return nil, err +} + +// WithLabelValues works as GetMetricWithLabelValues, but panics where +// GetMetricWithLabelValues would have returned an error. By not returning an +// error, WithLabelValues allows shortcuts like +// myVec.WithLabelValues("404", "GET").Add(42) +func (m *UntypedVec) WithLabelValues(lvs ...string) Untyped { + return m.MetricVec.WithLabelValues(lvs...).(Untyped) +} + +// With works as GetMetricWith, but panics where GetMetricWithLabels would have +// returned an error. By not returning an error, With allows shortcuts like +// myVec.With(Labels{"code": "404", "method": "GET"}).Add(42) +func (m *UntypedVec) With(labels Labels) Untyped { + return m.MetricVec.With(labels).(Untyped) +} + +// UntypedFunc is an Untyped whose value is determined at collect time by +// calling a provided function. +// +// To create UntypedFunc instances, use NewUntypedFunc. +type UntypedFunc interface { + Metric + Collector +} + +// NewUntypedFunc creates a new UntypedFunc based on the provided +// UntypedOpts. The value reported is determined by calling the given function +// from within the Write method. Take into account that metric collection may +// happen concurrently. If that results in concurrent calls to Write, like in +// the case where an UntypedFunc is directly registered with Prometheus, the +// provided function must be concurrency-safe. +func NewUntypedFunc(opts UntypedOpts, function func() float64) UntypedFunc { + return newValueFunc(NewDesc( + BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), + opts.Help, + nil, + opts.ConstLabels, + ), UntypedValue, function) +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/value.go b/vendor/github.com/prometheus/client_golang/prometheus/value.go new file mode 100644 index 0000000..a944c37 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/value.go @@ -0,0 +1,234 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +import ( + "errors" + "fmt" + "math" + "sort" + "sync/atomic" + + dto "github.com/prometheus/client_model/go" + + "github.com/golang/protobuf/proto" +) + +// ValueType is an enumeration of metric types that represent a simple value. +type ValueType int + +// Possible values for the ValueType enum. +const ( + _ ValueType = iota + CounterValue + GaugeValue + UntypedValue +) + +var errInconsistentCardinality = errors.New("inconsistent label cardinality") + +// value is a generic metric for simple values. It implements Metric, Collector, +// Counter, Gauge, and Untyped. Its effective type is determined by +// ValueType. This is a low-level building block used by the library to back the +// implementations of Counter, Gauge, and Untyped. +type value struct { + // valBits containst the bits of the represented float64 value. It has + // to go first in the struct to guarantee alignment for atomic + // operations. http://golang.org/pkg/sync/atomic/#pkg-note-BUG + valBits uint64 + + selfCollector + + desc *Desc + valType ValueType + labelPairs []*dto.LabelPair +} + +// newValue returns a newly allocated value with the given Desc, ValueType, +// sample value and label values. It panics if the number of label +// values is different from the number of variable labels in Desc. +func newValue(desc *Desc, valueType ValueType, val float64, labelValues ...string) *value { + if len(labelValues) != len(desc.variableLabels) { + panic(errInconsistentCardinality) + } + result := &value{ + desc: desc, + valType: valueType, + valBits: math.Float64bits(val), + labelPairs: makeLabelPairs(desc, labelValues), + } + result.init(result) + return result +} + +func (v *value) Desc() *Desc { + return v.desc +} + +func (v *value) Set(val float64) { + atomic.StoreUint64(&v.valBits, math.Float64bits(val)) +} + +func (v *value) Inc() { + v.Add(1) +} + +func (v *value) Dec() { + v.Add(-1) +} + +func (v *value) Add(val float64) { + for { + oldBits := atomic.LoadUint64(&v.valBits) + newBits := math.Float64bits(math.Float64frombits(oldBits) + val) + if atomic.CompareAndSwapUint64(&v.valBits, oldBits, newBits) { + return + } + } +} + +func (v *value) Sub(val float64) { + v.Add(val * -1) +} + +func (v *value) Write(out *dto.Metric) error { + val := math.Float64frombits(atomic.LoadUint64(&v.valBits)) + return populateMetric(v.valType, val, v.labelPairs, out) +} + +// valueFunc is a generic metric for simple values retrieved on collect time +// from a function. It implements Metric and Collector. Its effective type is +// determined by ValueType. This is a low-level building block used by the +// library to back the implementations of CounterFunc, GaugeFunc, and +// UntypedFunc. +type valueFunc struct { + selfCollector + + desc *Desc + valType ValueType + function func() float64 + labelPairs []*dto.LabelPair +} + +// newValueFunc returns a newly allocated valueFunc with the given Desc and +// ValueType. The value reported is determined by calling the given function +// from within the Write method. Take into account that metric collection may +// happen concurrently. If that results in concurrent calls to Write, like in +// the case where a valueFunc is directly registered with Prometheus, the +// provided function must be concurrency-safe. +func newValueFunc(desc *Desc, valueType ValueType, function func() float64) *valueFunc { + result := &valueFunc{ + desc: desc, + valType: valueType, + function: function, + labelPairs: makeLabelPairs(desc, nil), + } + result.init(result) + return result +} + +func (v *valueFunc) Desc() *Desc { + return v.desc +} + +func (v *valueFunc) Write(out *dto.Metric) error { + return populateMetric(v.valType, v.function(), v.labelPairs, out) +} + +// NewConstMetric returns a metric with one fixed value that cannot be +// changed. Users of this package will not have much use for it in regular +// operations. However, when implementing custom Collectors, it is useful as a +// throw-away metric that is generated on the fly to send it to Prometheus in +// the Collect method. NewConstMetric returns an error if the length of +// labelValues is not consistent with the variable labels in Desc. +func NewConstMetric(desc *Desc, valueType ValueType, value float64, labelValues ...string) (Metric, error) { + if len(desc.variableLabels) != len(labelValues) { + return nil, errInconsistentCardinality + } + return &constMetric{ + desc: desc, + valType: valueType, + val: value, + labelPairs: makeLabelPairs(desc, labelValues), + }, nil +} + +// MustNewConstMetric is a version of NewConstMetric that panics where +// NewConstMetric would have returned an error. +func MustNewConstMetric(desc *Desc, valueType ValueType, value float64, labelValues ...string) Metric { + m, err := NewConstMetric(desc, valueType, value, labelValues...) + if err != nil { + panic(err) + } + return m +} + +type constMetric struct { + desc *Desc + valType ValueType + val float64 + labelPairs []*dto.LabelPair +} + +func (m *constMetric) Desc() *Desc { + return m.desc +} + +func (m *constMetric) Write(out *dto.Metric) error { + return populateMetric(m.valType, m.val, m.labelPairs, out) +} + +func populateMetric( + t ValueType, + v float64, + labelPairs []*dto.LabelPair, + m *dto.Metric, +) error { + m.Label = labelPairs + switch t { + case CounterValue: + m.Counter = &dto.Counter{Value: proto.Float64(v)} + case GaugeValue: + m.Gauge = &dto.Gauge{Value: proto.Float64(v)} + case UntypedValue: + m.Untyped = &dto.Untyped{Value: proto.Float64(v)} + default: + return fmt.Errorf("encountered unknown type %v", t) + } + return nil +} + +func makeLabelPairs(desc *Desc, labelValues []string) []*dto.LabelPair { + totalLen := len(desc.variableLabels) + len(desc.constLabelPairs) + if totalLen == 0 { + // Super fast path. + return nil + } + if len(desc.variableLabels) == 0 { + // Moderately fast path. + return desc.constLabelPairs + } + labelPairs := make([]*dto.LabelPair, 0, totalLen) + for i, n := range desc.variableLabels { + labelPairs = append(labelPairs, &dto.LabelPair{ + Name: proto.String(n), + Value: proto.String(labelValues[i]), + }) + } + for _, lp := range desc.constLabelPairs { + labelPairs = append(labelPairs, lp) + } + sort.Sort(LabelPairSorter(labelPairs)) + return labelPairs +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/vec.go b/vendor/github.com/prometheus/client_golang/prometheus/vec.go new file mode 100644 index 0000000..7f3eef9 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/vec.go @@ -0,0 +1,404 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package prometheus + +import ( + "fmt" + "sync" + + "github.com/prometheus/common/model" +) + +// MetricVec is a Collector to bundle metrics of the same name that +// differ in their label values. MetricVec is usually not used directly but as a +// building block for implementations of vectors of a given metric +// type. GaugeVec, CounterVec, SummaryVec, and UntypedVec are examples already +// provided in this package. +type MetricVec struct { + mtx sync.RWMutex // Protects the children. + children map[uint64][]metricWithLabelValues + desc *Desc + + newMetric func(labelValues ...string) Metric + hashAdd func(h uint64, s string) uint64 // replace hash function for testing collision handling + hashAddByte func(h uint64, b byte) uint64 +} + +// newMetricVec returns an initialized MetricVec. The concrete value is +// returned for embedding into another struct. +func newMetricVec(desc *Desc, newMetric func(lvs ...string) Metric) *MetricVec { + return &MetricVec{ + children: map[uint64][]metricWithLabelValues{}, + desc: desc, + newMetric: newMetric, + hashAdd: hashAdd, + hashAddByte: hashAddByte, + } +} + +// metricWithLabelValues provides the metric and its label values for +// disambiguation on hash collision. +type metricWithLabelValues struct { + values []string + metric Metric +} + +// Describe implements Collector. The length of the returned slice +// is always one. +func (m *MetricVec) Describe(ch chan<- *Desc) { + ch <- m.desc +} + +// Collect implements Collector. +func (m *MetricVec) Collect(ch chan<- Metric) { + m.mtx.RLock() + defer m.mtx.RUnlock() + + for _, metrics := range m.children { + for _, metric := range metrics { + ch <- metric.metric + } + } +} + +// GetMetricWithLabelValues returns the Metric for the given slice of label +// values (same order as the VariableLabels in Desc). If that combination of +// label values is accessed for the first time, a new Metric is created. +// +// It is possible to call this method without using the returned Metric to only +// create the new Metric but leave it at its start value (e.g. a Summary or +// Histogram without any observations). See also the SummaryVec example. +// +// Keeping the Metric for later use is possible (and should be considered if +// performance is critical), but keep in mind that Reset, DeleteLabelValues and +// Delete can be used to delete the Metric from the MetricVec. In that case, the +// Metric will still exist, but it will not be exported anymore, even if a +// Metric with the same label values is created later. See also the CounterVec +// example. +// +// An error is returned if the number of label values is not the same as the +// number of VariableLabels in Desc. +// +// Note that for more than one label value, this method is prone to mistakes +// caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as +// an alternative to avoid that type of mistake. For higher label numbers, the +// latter has a much more readable (albeit more verbose) syntax, but it comes +// with a performance overhead (for creating and processing the Labels map). +// See also the GaugeVec example. +func (m *MetricVec) GetMetricWithLabelValues(lvs ...string) (Metric, error) { + h, err := m.hashLabelValues(lvs) + if err != nil { + return nil, err + } + + return m.getOrCreateMetricWithLabelValues(h, lvs), nil +} + +// GetMetricWith returns the Metric for the given Labels map (the label names +// must match those of the VariableLabels in Desc). If that label map is +// accessed for the first time, a new Metric is created. Implications of +// creating a Metric without using it and keeping the Metric for later use are +// the same as for GetMetricWithLabelValues. +// +// An error is returned if the number and names of the Labels are inconsistent +// with those of the VariableLabels in Desc. +// +// This method is used for the same purpose as +// GetMetricWithLabelValues(...string). See there for pros and cons of the two +// methods. +func (m *MetricVec) GetMetricWith(labels Labels) (Metric, error) { + h, err := m.hashLabels(labels) + if err != nil { + return nil, err + } + + return m.getOrCreateMetricWithLabels(h, labels), nil +} + +// WithLabelValues works as GetMetricWithLabelValues, but panics if an error +// occurs. The method allows neat syntax like: +// httpReqs.WithLabelValues("404", "POST").Inc() +func (m *MetricVec) WithLabelValues(lvs ...string) Metric { + metric, err := m.GetMetricWithLabelValues(lvs...) + if err != nil { + panic(err) + } + return metric +} + +// With works as GetMetricWith, but panics if an error occurs. The method allows +// neat syntax like: +// httpReqs.With(Labels{"status":"404", "method":"POST"}).Inc() +func (m *MetricVec) With(labels Labels) Metric { + metric, err := m.GetMetricWith(labels) + if err != nil { + panic(err) + } + return metric +} + +// DeleteLabelValues removes the metric where the variable labels are the same +// as those passed in as labels (same order as the VariableLabels in Desc). It +// returns true if a metric was deleted. +// +// It is not an error if the number of label values is not the same as the +// number of VariableLabels in Desc. However, such inconsistent label count can +// never match an actual Metric, so the method will always return false in that +// case. +// +// Note that for more than one label value, this method is prone to mistakes +// caused by an incorrect order of arguments. Consider Delete(Labels) as an +// alternative to avoid that type of mistake. For higher label numbers, the +// latter has a much more readable (albeit more verbose) syntax, but it comes +// with a performance overhead (for creating and processing the Labels map). +// See also the CounterVec example. +func (m *MetricVec) DeleteLabelValues(lvs ...string) bool { + m.mtx.Lock() + defer m.mtx.Unlock() + + h, err := m.hashLabelValues(lvs) + if err != nil { + return false + } + return m.deleteByHashWithLabelValues(h, lvs) +} + +// Delete deletes the metric where the variable labels are the same as those +// passed in as labels. It returns true if a metric was deleted. +// +// It is not an error if the number and names of the Labels are inconsistent +// with those of the VariableLabels in the Desc of the MetricVec. However, such +// inconsistent Labels can never match an actual Metric, so the method will +// always return false in that case. +// +// This method is used for the same purpose as DeleteLabelValues(...string). See +// there for pros and cons of the two methods. +func (m *MetricVec) Delete(labels Labels) bool { + m.mtx.Lock() + defer m.mtx.Unlock() + + h, err := m.hashLabels(labels) + if err != nil { + return false + } + + return m.deleteByHashWithLabels(h, labels) +} + +// deleteByHashWithLabelValues removes the metric from the hash bucket h. If +// there are multiple matches in the bucket, use lvs to select a metric and +// remove only that metric. +func (m *MetricVec) deleteByHashWithLabelValues(h uint64, lvs []string) bool { + metrics, ok := m.children[h] + if !ok { + return false + } + + i := m.findMetricWithLabelValues(metrics, lvs) + if i >= len(metrics) { + return false + } + + if len(metrics) > 1 { + m.children[h] = append(metrics[:i], metrics[i+1:]...) + } else { + delete(m.children, h) + } + return true +} + +// deleteByHashWithLabels removes the metric from the hash bucket h. If there +// are multiple matches in the bucket, use lvs to select a metric and remove +// only that metric. +func (m *MetricVec) deleteByHashWithLabels(h uint64, labels Labels) bool { + metrics, ok := m.children[h] + if !ok { + return false + } + i := m.findMetricWithLabels(metrics, labels) + if i >= len(metrics) { + return false + } + + if len(metrics) > 1 { + m.children[h] = append(metrics[:i], metrics[i+1:]...) + } else { + delete(m.children, h) + } + return true +} + +// Reset deletes all metrics in this vector. +func (m *MetricVec) Reset() { + m.mtx.Lock() + defer m.mtx.Unlock() + + for h := range m.children { + delete(m.children, h) + } +} + +func (m *MetricVec) hashLabelValues(vals []string) (uint64, error) { + if len(vals) != len(m.desc.variableLabels) { + return 0, errInconsistentCardinality + } + h := hashNew() + for _, val := range vals { + h = m.hashAdd(h, val) + h = m.hashAddByte(h, model.SeparatorByte) + } + return h, nil +} + +func (m *MetricVec) hashLabels(labels Labels) (uint64, error) { + if len(labels) != len(m.desc.variableLabels) { + return 0, errInconsistentCardinality + } + h := hashNew() + for _, label := range m.desc.variableLabels { + val, ok := labels[label] + if !ok { + return 0, fmt.Errorf("label name %q missing in label map", label) + } + h = m.hashAdd(h, val) + h = m.hashAddByte(h, model.SeparatorByte) + } + return h, nil +} + +// getOrCreateMetricWithLabelValues retrieves the metric by hash and label value +// or creates it and returns the new one. +// +// This function holds the mutex. +func (m *MetricVec) getOrCreateMetricWithLabelValues(hash uint64, lvs []string) Metric { + m.mtx.RLock() + metric, ok := m.getMetricWithLabelValues(hash, lvs) + m.mtx.RUnlock() + if ok { + return metric + } + + m.mtx.Lock() + defer m.mtx.Unlock() + metric, ok = m.getMetricWithLabelValues(hash, lvs) + if !ok { + // Copy to avoid allocation in case wo don't go down this code path. + copiedLVs := make([]string, len(lvs)) + copy(copiedLVs, lvs) + metric = m.newMetric(copiedLVs...) + m.children[hash] = append(m.children[hash], metricWithLabelValues{values: copiedLVs, metric: metric}) + } + return metric +} + +// getOrCreateMetricWithLabelValues retrieves the metric by hash and label value +// or creates it and returns the new one. +// +// This function holds the mutex. +func (m *MetricVec) getOrCreateMetricWithLabels(hash uint64, labels Labels) Metric { + m.mtx.RLock() + metric, ok := m.getMetricWithLabels(hash, labels) + m.mtx.RUnlock() + if ok { + return metric + } + + m.mtx.Lock() + defer m.mtx.Unlock() + metric, ok = m.getMetricWithLabels(hash, labels) + if !ok { + lvs := m.extractLabelValues(labels) + metric = m.newMetric(lvs...) + m.children[hash] = append(m.children[hash], metricWithLabelValues{values: lvs, metric: metric}) + } + return metric +} + +// getMetricWithLabelValues gets a metric while handling possible collisions in +// the hash space. Must be called while holding read mutex. +func (m *MetricVec) getMetricWithLabelValues(h uint64, lvs []string) (Metric, bool) { + metrics, ok := m.children[h] + if ok { + if i := m.findMetricWithLabelValues(metrics, lvs); i < len(metrics) { + return metrics[i].metric, true + } + } + return nil, false +} + +// getMetricWithLabels gets a metric while handling possible collisions in +// the hash space. Must be called while holding read mutex. +func (m *MetricVec) getMetricWithLabels(h uint64, labels Labels) (Metric, bool) { + metrics, ok := m.children[h] + if ok { + if i := m.findMetricWithLabels(metrics, labels); i < len(metrics) { + return metrics[i].metric, true + } + } + return nil, false +} + +// findMetricWithLabelValues returns the index of the matching metric or +// len(metrics) if not found. +func (m *MetricVec) findMetricWithLabelValues(metrics []metricWithLabelValues, lvs []string) int { + for i, metric := range metrics { + if m.matchLabelValues(metric.values, lvs) { + return i + } + } + return len(metrics) +} + +// findMetricWithLabels returns the index of the matching metric or len(metrics) +// if not found. +func (m *MetricVec) findMetricWithLabels(metrics []metricWithLabelValues, labels Labels) int { + for i, metric := range metrics { + if m.matchLabels(metric.values, labels) { + return i + } + } + return len(metrics) +} + +func (m *MetricVec) matchLabelValues(values []string, lvs []string) bool { + if len(values) != len(lvs) { + return false + } + for i, v := range values { + if v != lvs[i] { + return false + } + } + return true +} + +func (m *MetricVec) matchLabels(values []string, labels Labels) bool { + if len(labels) != len(values) { + return false + } + for i, k := range m.desc.variableLabels { + if values[i] != labels[k] { + return false + } + } + return true +} + +func (m *MetricVec) extractLabelValues(labels Labels) []string { + labelValues := make([]string, len(labels)) + for i, k := range m.desc.variableLabels { + labelValues[i] = labels[k] + } + return labelValues +} diff --git a/vendor/github.com/prometheus/client_model/LICENSE b/vendor/github.com/prometheus/client_model/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/vendor/github.com/prometheus/client_model/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/prometheus/client_model/NOTICE b/vendor/github.com/prometheus/client_model/NOTICE new file mode 100644 index 0000000..20110e4 --- /dev/null +++ b/vendor/github.com/prometheus/client_model/NOTICE @@ -0,0 +1,5 @@ +Data model artifacts for Prometheus. +Copyright 2012-2015 The Prometheus Authors + +This product includes software developed at +SoundCloud Ltd. (http://soundcloud.com/). diff --git a/vendor/github.com/prometheus/client_model/go/metrics.pb.go b/vendor/github.com/prometheus/client_model/go/metrics.pb.go new file mode 100644 index 0000000..b065f86 --- /dev/null +++ b/vendor/github.com/prometheus/client_model/go/metrics.pb.go @@ -0,0 +1,364 @@ +// Code generated by protoc-gen-go. +// source: metrics.proto +// DO NOT EDIT! + +/* +Package io_prometheus_client is a generated protocol buffer package. + +It is generated from these files: + metrics.proto + +It has these top-level messages: + LabelPair + Gauge + Counter + Quantile + Summary + Untyped + Histogram + Bucket + Metric + MetricFamily +*/ +package io_prometheus_client + +import proto "github.com/golang/protobuf/proto" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = math.Inf + +type MetricType int32 + +const ( + MetricType_COUNTER MetricType = 0 + MetricType_GAUGE MetricType = 1 + MetricType_SUMMARY MetricType = 2 + MetricType_UNTYPED MetricType = 3 + MetricType_HISTOGRAM MetricType = 4 +) + +var MetricType_name = map[int32]string{ + 0: "COUNTER", + 1: "GAUGE", + 2: "SUMMARY", + 3: "UNTYPED", + 4: "HISTOGRAM", +} +var MetricType_value = map[string]int32{ + "COUNTER": 0, + "GAUGE": 1, + "SUMMARY": 2, + "UNTYPED": 3, + "HISTOGRAM": 4, +} + +func (x MetricType) Enum() *MetricType { + p := new(MetricType) + *p = x + return p +} +func (x MetricType) String() string { + return proto.EnumName(MetricType_name, int32(x)) +} +func (x *MetricType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MetricType_value, data, "MetricType") + if err != nil { + return err + } + *x = MetricType(value) + return nil +} + +type LabelPair struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *LabelPair) Reset() { *m = LabelPair{} } +func (m *LabelPair) String() string { return proto.CompactTextString(m) } +func (*LabelPair) ProtoMessage() {} + +func (m *LabelPair) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *LabelPair) GetValue() string { + if m != nil && m.Value != nil { + return *m.Value + } + return "" +} + +type Gauge struct { + Value *float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Gauge) Reset() { *m = Gauge{} } +func (m *Gauge) String() string { return proto.CompactTextString(m) } +func (*Gauge) ProtoMessage() {} + +func (m *Gauge) GetValue() float64 { + if m != nil && m.Value != nil { + return *m.Value + } + return 0 +} + +type Counter struct { + Value *float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Counter) Reset() { *m = Counter{} } +func (m *Counter) String() string { return proto.CompactTextString(m) } +func (*Counter) ProtoMessage() {} + +func (m *Counter) GetValue() float64 { + if m != nil && m.Value != nil { + return *m.Value + } + return 0 +} + +type Quantile struct { + Quantile *float64 `protobuf:"fixed64,1,opt,name=quantile" json:"quantile,omitempty"` + Value *float64 `protobuf:"fixed64,2,opt,name=value" json:"value,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Quantile) Reset() { *m = Quantile{} } +func (m *Quantile) String() string { return proto.CompactTextString(m) } +func (*Quantile) ProtoMessage() {} + +func (m *Quantile) GetQuantile() float64 { + if m != nil && m.Quantile != nil { + return *m.Quantile + } + return 0 +} + +func (m *Quantile) GetValue() float64 { + if m != nil && m.Value != nil { + return *m.Value + } + return 0 +} + +type Summary struct { + SampleCount *uint64 `protobuf:"varint,1,opt,name=sample_count" json:"sample_count,omitempty"` + SampleSum *float64 `protobuf:"fixed64,2,opt,name=sample_sum" json:"sample_sum,omitempty"` + Quantile []*Quantile `protobuf:"bytes,3,rep,name=quantile" json:"quantile,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Summary) Reset() { *m = Summary{} } +func (m *Summary) String() string { return proto.CompactTextString(m) } +func (*Summary) ProtoMessage() {} + +func (m *Summary) GetSampleCount() uint64 { + if m != nil && m.SampleCount != nil { + return *m.SampleCount + } + return 0 +} + +func (m *Summary) GetSampleSum() float64 { + if m != nil && m.SampleSum != nil { + return *m.SampleSum + } + return 0 +} + +func (m *Summary) GetQuantile() []*Quantile { + if m != nil { + return m.Quantile + } + return nil +} + +type Untyped struct { + Value *float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Untyped) Reset() { *m = Untyped{} } +func (m *Untyped) String() string { return proto.CompactTextString(m) } +func (*Untyped) ProtoMessage() {} + +func (m *Untyped) GetValue() float64 { + if m != nil && m.Value != nil { + return *m.Value + } + return 0 +} + +type Histogram struct { + SampleCount *uint64 `protobuf:"varint,1,opt,name=sample_count" json:"sample_count,omitempty"` + SampleSum *float64 `protobuf:"fixed64,2,opt,name=sample_sum" json:"sample_sum,omitempty"` + Bucket []*Bucket `protobuf:"bytes,3,rep,name=bucket" json:"bucket,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Histogram) Reset() { *m = Histogram{} } +func (m *Histogram) String() string { return proto.CompactTextString(m) } +func (*Histogram) ProtoMessage() {} + +func (m *Histogram) GetSampleCount() uint64 { + if m != nil && m.SampleCount != nil { + return *m.SampleCount + } + return 0 +} + +func (m *Histogram) GetSampleSum() float64 { + if m != nil && m.SampleSum != nil { + return *m.SampleSum + } + return 0 +} + +func (m *Histogram) GetBucket() []*Bucket { + if m != nil { + return m.Bucket + } + return nil +} + +type Bucket struct { + CumulativeCount *uint64 `protobuf:"varint,1,opt,name=cumulative_count" json:"cumulative_count,omitempty"` + UpperBound *float64 `protobuf:"fixed64,2,opt,name=upper_bound" json:"upper_bound,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Bucket) Reset() { *m = Bucket{} } +func (m *Bucket) String() string { return proto.CompactTextString(m) } +func (*Bucket) ProtoMessage() {} + +func (m *Bucket) GetCumulativeCount() uint64 { + if m != nil && m.CumulativeCount != nil { + return *m.CumulativeCount + } + return 0 +} + +func (m *Bucket) GetUpperBound() float64 { + if m != nil && m.UpperBound != nil { + return *m.UpperBound + } + return 0 +} + +type Metric struct { + Label []*LabelPair `protobuf:"bytes,1,rep,name=label" json:"label,omitempty"` + Gauge *Gauge `protobuf:"bytes,2,opt,name=gauge" json:"gauge,omitempty"` + Counter *Counter `protobuf:"bytes,3,opt,name=counter" json:"counter,omitempty"` + Summary *Summary `protobuf:"bytes,4,opt,name=summary" json:"summary,omitempty"` + Untyped *Untyped `protobuf:"bytes,5,opt,name=untyped" json:"untyped,omitempty"` + Histogram *Histogram `protobuf:"bytes,7,opt,name=histogram" json:"histogram,omitempty"` + TimestampMs *int64 `protobuf:"varint,6,opt,name=timestamp_ms" json:"timestamp_ms,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Metric) Reset() { *m = Metric{} } +func (m *Metric) String() string { return proto.CompactTextString(m) } +func (*Metric) ProtoMessage() {} + +func (m *Metric) GetLabel() []*LabelPair { + if m != nil { + return m.Label + } + return nil +} + +func (m *Metric) GetGauge() *Gauge { + if m != nil { + return m.Gauge + } + return nil +} + +func (m *Metric) GetCounter() *Counter { + if m != nil { + return m.Counter + } + return nil +} + +func (m *Metric) GetSummary() *Summary { + if m != nil { + return m.Summary + } + return nil +} + +func (m *Metric) GetUntyped() *Untyped { + if m != nil { + return m.Untyped + } + return nil +} + +func (m *Metric) GetHistogram() *Histogram { + if m != nil { + return m.Histogram + } + return nil +} + +func (m *Metric) GetTimestampMs() int64 { + if m != nil && m.TimestampMs != nil { + return *m.TimestampMs + } + return 0 +} + +type MetricFamily struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Help *string `protobuf:"bytes,2,opt,name=help" json:"help,omitempty"` + Type *MetricType `protobuf:"varint,3,opt,name=type,enum=io.prometheus.client.MetricType" json:"type,omitempty"` + Metric []*Metric `protobuf:"bytes,4,rep,name=metric" json:"metric,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MetricFamily) Reset() { *m = MetricFamily{} } +func (m *MetricFamily) String() string { return proto.CompactTextString(m) } +func (*MetricFamily) ProtoMessage() {} + +func (m *MetricFamily) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *MetricFamily) GetHelp() string { + if m != nil && m.Help != nil { + return *m.Help + } + return "" +} + +func (m *MetricFamily) GetType() MetricType { + if m != nil && m.Type != nil { + return *m.Type + } + return MetricType_COUNTER +} + +func (m *MetricFamily) GetMetric() []*Metric { + if m != nil { + return m.Metric + } + return nil +} + +func init() { + proto.RegisterEnum("io.prometheus.client.MetricType", MetricType_name, MetricType_value) +} diff --git a/vendor/github.com/prometheus/common/LICENSE b/vendor/github.com/prometheus/common/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/vendor/github.com/prometheus/common/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/prometheus/common/NOTICE b/vendor/github.com/prometheus/common/NOTICE new file mode 100644 index 0000000..636a2c1 --- /dev/null +++ b/vendor/github.com/prometheus/common/NOTICE @@ -0,0 +1,5 @@ +Common libraries shared by Prometheus Go components. +Copyright 2015 The Prometheus Authors + +This product includes software developed at +SoundCloud Ltd. (http://soundcloud.com/). diff --git a/vendor/github.com/prometheus/common/expfmt/decode.go b/vendor/github.com/prometheus/common/expfmt/decode.go new file mode 100644 index 0000000..c092723 --- /dev/null +++ b/vendor/github.com/prometheus/common/expfmt/decode.go @@ -0,0 +1,429 @@ +// Copyright 2015 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package expfmt + +import ( + "fmt" + "io" + "math" + "mime" + "net/http" + + dto "github.com/prometheus/client_model/go" + + "github.com/matttproud/golang_protobuf_extensions/pbutil" + "github.com/prometheus/common/model" +) + +// Decoder types decode an input stream into metric families. +type Decoder interface { + Decode(*dto.MetricFamily) error +} + +// DecodeOptions contains options used by the Decoder and in sample extraction. +type DecodeOptions struct { + // Timestamp is added to each value from the stream that has no explicit timestamp set. + Timestamp model.Time +} + +// ResponseFormat extracts the correct format from a HTTP response header. +// If no matching format can be found FormatUnknown is returned. +func ResponseFormat(h http.Header) Format { + ct := h.Get(hdrContentType) + + mediatype, params, err := mime.ParseMediaType(ct) + if err != nil { + return FmtUnknown + } + + const textType = "text/plain" + + switch mediatype { + case ProtoType: + if p, ok := params["proto"]; ok && p != ProtoProtocol { + return FmtUnknown + } + if e, ok := params["encoding"]; ok && e != "delimited" { + return FmtUnknown + } + return FmtProtoDelim + + case textType: + if v, ok := params["version"]; ok && v != TextVersion { + return FmtUnknown + } + return FmtText + } + + return FmtUnknown +} + +// NewDecoder returns a new decoder based on the given input format. +// If the input format does not imply otherwise, a text format decoder is returned. +func NewDecoder(r io.Reader, format Format) Decoder { + switch format { + case FmtProtoDelim: + return &protoDecoder{r: r} + } + return &textDecoder{r: r} +} + +// protoDecoder implements the Decoder interface for protocol buffers. +type protoDecoder struct { + r io.Reader +} + +// Decode implements the Decoder interface. +func (d *protoDecoder) Decode(v *dto.MetricFamily) error { + _, err := pbutil.ReadDelimited(d.r, v) + if err != nil { + return err + } + if !model.IsValidMetricName(model.LabelValue(v.GetName())) { + return fmt.Errorf("invalid metric name %q", v.GetName()) + } + for _, m := range v.GetMetric() { + if m == nil { + continue + } + for _, l := range m.GetLabel() { + if l == nil { + continue + } + if !model.LabelValue(l.GetValue()).IsValid() { + return fmt.Errorf("invalid label value %q", l.GetValue()) + } + if !model.LabelName(l.GetName()).IsValid() { + return fmt.Errorf("invalid label name %q", l.GetName()) + } + } + } + return nil +} + +// textDecoder implements the Decoder interface for the text protocol. +type textDecoder struct { + r io.Reader + p TextParser + fams []*dto.MetricFamily +} + +// Decode implements the Decoder interface. +func (d *textDecoder) Decode(v *dto.MetricFamily) error { + // TODO(fabxc): Wrap this as a line reader to make streaming safer. + if len(d.fams) == 0 { + // No cached metric families, read everything and parse metrics. + fams, err := d.p.TextToMetricFamilies(d.r) + if err != nil { + return err + } + if len(fams) == 0 { + return io.EOF + } + d.fams = make([]*dto.MetricFamily, 0, len(fams)) + for _, f := range fams { + d.fams = append(d.fams, f) + } + } + + *v = *d.fams[0] + d.fams = d.fams[1:] + + return nil +} + +// SampleDecoder wraps a Decoder to extract samples from the metric families +// decoded by the wrapped Decoder. +type SampleDecoder struct { + Dec Decoder + Opts *DecodeOptions + + f dto.MetricFamily +} + +// Decode calls the Decode method of the wrapped Decoder and then extracts the +// samples from the decoded MetricFamily into the provided model.Vector. +func (sd *SampleDecoder) Decode(s *model.Vector) error { + err := sd.Dec.Decode(&sd.f) + if err != nil { + return err + } + *s, err = extractSamples(&sd.f, sd.Opts) + return err +} + +// ExtractSamples builds a slice of samples from the provided metric +// families. If an error occurrs during sample extraction, it continues to +// extract from the remaining metric families. The returned error is the last +// error that has occurred. +func ExtractSamples(o *DecodeOptions, fams ...*dto.MetricFamily) (model.Vector, error) { + var ( + all model.Vector + lastErr error + ) + for _, f := range fams { + some, err := extractSamples(f, o) + if err != nil { + lastErr = err + continue + } + all = append(all, some...) + } + return all, lastErr +} + +func extractSamples(f *dto.MetricFamily, o *DecodeOptions) (model.Vector, error) { + switch f.GetType() { + case dto.MetricType_COUNTER: + return extractCounter(o, f), nil + case dto.MetricType_GAUGE: + return extractGauge(o, f), nil + case dto.MetricType_SUMMARY: + return extractSummary(o, f), nil + case dto.MetricType_UNTYPED: + return extractUntyped(o, f), nil + case dto.MetricType_HISTOGRAM: + return extractHistogram(o, f), nil + } + return nil, fmt.Errorf("expfmt.extractSamples: unknown metric family type %v", f.GetType()) +} + +func extractCounter(o *DecodeOptions, f *dto.MetricFamily) model.Vector { + samples := make(model.Vector, 0, len(f.Metric)) + + for _, m := range f.Metric { + if m.Counter == nil { + continue + } + + lset := make(model.LabelSet, len(m.Label)+1) + for _, p := range m.Label { + lset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue()) + } + lset[model.MetricNameLabel] = model.LabelValue(f.GetName()) + + smpl := &model.Sample{ + Metric: model.Metric(lset), + Value: model.SampleValue(m.Counter.GetValue()), + } + + if m.TimestampMs != nil { + smpl.Timestamp = model.TimeFromUnixNano(*m.TimestampMs * 1000000) + } else { + smpl.Timestamp = o.Timestamp + } + + samples = append(samples, smpl) + } + + return samples +} + +func extractGauge(o *DecodeOptions, f *dto.MetricFamily) model.Vector { + samples := make(model.Vector, 0, len(f.Metric)) + + for _, m := range f.Metric { + if m.Gauge == nil { + continue + } + + lset := make(model.LabelSet, len(m.Label)+1) + for _, p := range m.Label { + lset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue()) + } + lset[model.MetricNameLabel] = model.LabelValue(f.GetName()) + + smpl := &model.Sample{ + Metric: model.Metric(lset), + Value: model.SampleValue(m.Gauge.GetValue()), + } + + if m.TimestampMs != nil { + smpl.Timestamp = model.TimeFromUnixNano(*m.TimestampMs * 1000000) + } else { + smpl.Timestamp = o.Timestamp + } + + samples = append(samples, smpl) + } + + return samples +} + +func extractUntyped(o *DecodeOptions, f *dto.MetricFamily) model.Vector { + samples := make(model.Vector, 0, len(f.Metric)) + + for _, m := range f.Metric { + if m.Untyped == nil { + continue + } + + lset := make(model.LabelSet, len(m.Label)+1) + for _, p := range m.Label { + lset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue()) + } + lset[model.MetricNameLabel] = model.LabelValue(f.GetName()) + + smpl := &model.Sample{ + Metric: model.Metric(lset), + Value: model.SampleValue(m.Untyped.GetValue()), + } + + if m.TimestampMs != nil { + smpl.Timestamp = model.TimeFromUnixNano(*m.TimestampMs * 1000000) + } else { + smpl.Timestamp = o.Timestamp + } + + samples = append(samples, smpl) + } + + return samples +} + +func extractSummary(o *DecodeOptions, f *dto.MetricFamily) model.Vector { + samples := make(model.Vector, 0, len(f.Metric)) + + for _, m := range f.Metric { + if m.Summary == nil { + continue + } + + timestamp := o.Timestamp + if m.TimestampMs != nil { + timestamp = model.TimeFromUnixNano(*m.TimestampMs * 1000000) + } + + for _, q := range m.Summary.Quantile { + lset := make(model.LabelSet, len(m.Label)+2) + for _, p := range m.Label { + lset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue()) + } + // BUG(matt): Update other names to "quantile". + lset[model.LabelName(model.QuantileLabel)] = model.LabelValue(fmt.Sprint(q.GetQuantile())) + lset[model.MetricNameLabel] = model.LabelValue(f.GetName()) + + samples = append(samples, &model.Sample{ + Metric: model.Metric(lset), + Value: model.SampleValue(q.GetValue()), + Timestamp: timestamp, + }) + } + + lset := make(model.LabelSet, len(m.Label)+1) + for _, p := range m.Label { + lset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue()) + } + lset[model.MetricNameLabel] = model.LabelValue(f.GetName() + "_sum") + + samples = append(samples, &model.Sample{ + Metric: model.Metric(lset), + Value: model.SampleValue(m.Summary.GetSampleSum()), + Timestamp: timestamp, + }) + + lset = make(model.LabelSet, len(m.Label)+1) + for _, p := range m.Label { + lset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue()) + } + lset[model.MetricNameLabel] = model.LabelValue(f.GetName() + "_count") + + samples = append(samples, &model.Sample{ + Metric: model.Metric(lset), + Value: model.SampleValue(m.Summary.GetSampleCount()), + Timestamp: timestamp, + }) + } + + return samples +} + +func extractHistogram(o *DecodeOptions, f *dto.MetricFamily) model.Vector { + samples := make(model.Vector, 0, len(f.Metric)) + + for _, m := range f.Metric { + if m.Histogram == nil { + continue + } + + timestamp := o.Timestamp + if m.TimestampMs != nil { + timestamp = model.TimeFromUnixNano(*m.TimestampMs * 1000000) + } + + infSeen := false + + for _, q := range m.Histogram.Bucket { + lset := make(model.LabelSet, len(m.Label)+2) + for _, p := range m.Label { + lset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue()) + } + lset[model.LabelName(model.BucketLabel)] = model.LabelValue(fmt.Sprint(q.GetUpperBound())) + lset[model.MetricNameLabel] = model.LabelValue(f.GetName() + "_bucket") + + if math.IsInf(q.GetUpperBound(), +1) { + infSeen = true + } + + samples = append(samples, &model.Sample{ + Metric: model.Metric(lset), + Value: model.SampleValue(q.GetCumulativeCount()), + Timestamp: timestamp, + }) + } + + lset := make(model.LabelSet, len(m.Label)+1) + for _, p := range m.Label { + lset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue()) + } + lset[model.MetricNameLabel] = model.LabelValue(f.GetName() + "_sum") + + samples = append(samples, &model.Sample{ + Metric: model.Metric(lset), + Value: model.SampleValue(m.Histogram.GetSampleSum()), + Timestamp: timestamp, + }) + + lset = make(model.LabelSet, len(m.Label)+1) + for _, p := range m.Label { + lset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue()) + } + lset[model.MetricNameLabel] = model.LabelValue(f.GetName() + "_count") + + count := &model.Sample{ + Metric: model.Metric(lset), + Value: model.SampleValue(m.Histogram.GetSampleCount()), + Timestamp: timestamp, + } + samples = append(samples, count) + + if !infSeen { + // Append an infinity bucket sample. + lset := make(model.LabelSet, len(m.Label)+2) + for _, p := range m.Label { + lset[model.LabelName(p.GetName())] = model.LabelValue(p.GetValue()) + } + lset[model.LabelName(model.BucketLabel)] = model.LabelValue("+Inf") + lset[model.MetricNameLabel] = model.LabelValue(f.GetName() + "_bucket") + + samples = append(samples, &model.Sample{ + Metric: model.Metric(lset), + Value: count.Value, + Timestamp: timestamp, + }) + } + } + + return samples +} diff --git a/vendor/github.com/prometheus/common/expfmt/encode.go b/vendor/github.com/prometheus/common/expfmt/encode.go new file mode 100644 index 0000000..11839ed --- /dev/null +++ b/vendor/github.com/prometheus/common/expfmt/encode.go @@ -0,0 +1,88 @@ +// Copyright 2015 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package expfmt + +import ( + "fmt" + "io" + "net/http" + + "github.com/golang/protobuf/proto" + "github.com/matttproud/golang_protobuf_extensions/pbutil" + "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg" + + dto "github.com/prometheus/client_model/go" +) + +// Encoder types encode metric families into an underlying wire protocol. +type Encoder interface { + Encode(*dto.MetricFamily) error +} + +type encoder func(*dto.MetricFamily) error + +func (e encoder) Encode(v *dto.MetricFamily) error { + return e(v) +} + +// Negotiate returns the Content-Type based on the given Accept header. +// If no appropriate accepted type is found, FmtText is returned. +func Negotiate(h http.Header) Format { + for _, ac := range goautoneg.ParseAccept(h.Get(hdrAccept)) { + // Check for protocol buffer + if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol { + switch ac.Params["encoding"] { + case "delimited": + return FmtProtoDelim + case "text": + return FmtProtoText + case "compact-text": + return FmtProtoCompact + } + } + // Check for text format. + ver := ac.Params["version"] + if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") { + return FmtText + } + } + return FmtText +} + +// NewEncoder returns a new encoder based on content type negotiation. +func NewEncoder(w io.Writer, format Format) Encoder { + switch format { + case FmtProtoDelim: + return encoder(func(v *dto.MetricFamily) error { + _, err := pbutil.WriteDelimited(w, v) + return err + }) + case FmtProtoCompact: + return encoder(func(v *dto.MetricFamily) error { + _, err := fmt.Fprintln(w, v.String()) + return err + }) + case FmtProtoText: + return encoder(func(v *dto.MetricFamily) error { + _, err := fmt.Fprintln(w, proto.MarshalTextString(v)) + return err + }) + case FmtText: + return encoder(func(v *dto.MetricFamily) error { + _, err := MetricFamilyToText(w, v) + return err + }) + } + panic("expfmt.NewEncoder: unknown format") +} diff --git a/vendor/github.com/prometheus/common/expfmt/expfmt.go b/vendor/github.com/prometheus/common/expfmt/expfmt.go new file mode 100644 index 0000000..c71bcb9 --- /dev/null +++ b/vendor/github.com/prometheus/common/expfmt/expfmt.go @@ -0,0 +1,38 @@ +// Copyright 2015 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package expfmt contains tools for reading and writing Prometheus metrics. +package expfmt + +// Format specifies the HTTP content type of the different wire protocols. +type Format string + +// Constants to assemble the Content-Type values for the different wire protocols. +const ( + TextVersion = "0.0.4" + ProtoType = `application/vnd.google.protobuf` + ProtoProtocol = `io.prometheus.client.MetricFamily` + ProtoFmt = ProtoType + "; proto=" + ProtoProtocol + ";" + + // The Content-Type values for the different wire protocols. + FmtUnknown Format = `` + FmtText Format = `text/plain; version=` + TextVersion + `; charset=utf-8` + FmtProtoDelim Format = ProtoFmt + ` encoding=delimited` + FmtProtoText Format = ProtoFmt + ` encoding=text` + FmtProtoCompact Format = ProtoFmt + ` encoding=compact-text` +) + +const ( + hdrContentType = "Content-Type" + hdrAccept = "Accept" +) diff --git a/vendor/github.com/prometheus/common/expfmt/fuzz.go b/vendor/github.com/prometheus/common/expfmt/fuzz.go new file mode 100644 index 0000000..dc2eede --- /dev/null +++ b/vendor/github.com/prometheus/common/expfmt/fuzz.go @@ -0,0 +1,36 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Build only when actually fuzzing +// +build gofuzz + +package expfmt + +import "bytes" + +// Fuzz text metric parser with with github.com/dvyukov/go-fuzz: +// +// go-fuzz-build github.com/prometheus/common/expfmt +// go-fuzz -bin expfmt-fuzz.zip -workdir fuzz +// +// Further input samples should go in the folder fuzz/corpus. +func Fuzz(in []byte) int { + parser := TextParser{} + _, err := parser.TextToMetricFamilies(bytes.NewReader(in)) + + if err != nil { + return 0 + } + + return 1 +} diff --git a/vendor/github.com/prometheus/common/expfmt/text_create.go b/vendor/github.com/prometheus/common/expfmt/text_create.go new file mode 100644 index 0000000..f11321c --- /dev/null +++ b/vendor/github.com/prometheus/common/expfmt/text_create.go @@ -0,0 +1,303 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package expfmt + +import ( + "fmt" + "io" + "math" + "strings" + + dto "github.com/prometheus/client_model/go" + "github.com/prometheus/common/model" +) + +// MetricFamilyToText converts a MetricFamily proto message into text format and +// writes the resulting lines to 'out'. It returns the number of bytes written +// and any error encountered. The output will have the same order as the input, +// no further sorting is performed. Furthermore, this function assumes the input +// is already sanitized and does not perform any sanity checks. If the input +// contains duplicate metrics or invalid metric or label names, the conversion +// will result in invalid text format output. +// +// This method fulfills the type 'prometheus.encoder'. +func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (int, error) { + var written int + + // Fail-fast checks. + if len(in.Metric) == 0 { + return written, fmt.Errorf("MetricFamily has no metrics: %s", in) + } + name := in.GetName() + if name == "" { + return written, fmt.Errorf("MetricFamily has no name: %s", in) + } + + // Comments, first HELP, then TYPE. + if in.Help != nil { + n, err := fmt.Fprintf( + out, "# HELP %s %s\n", + name, escapeString(*in.Help, false), + ) + written += n + if err != nil { + return written, err + } + } + metricType := in.GetType() + n, err := fmt.Fprintf( + out, "# TYPE %s %s\n", + name, strings.ToLower(metricType.String()), + ) + written += n + if err != nil { + return written, err + } + + // Finally the samples, one line for each. + for _, metric := range in.Metric { + switch metricType { + case dto.MetricType_COUNTER: + if metric.Counter == nil { + return written, fmt.Errorf( + "expected counter in metric %s %s", name, metric, + ) + } + n, err = writeSample( + name, metric, "", "", + metric.Counter.GetValue(), + out, + ) + case dto.MetricType_GAUGE: + if metric.Gauge == nil { + return written, fmt.Errorf( + "expected gauge in metric %s %s", name, metric, + ) + } + n, err = writeSample( + name, metric, "", "", + metric.Gauge.GetValue(), + out, + ) + case dto.MetricType_UNTYPED: + if metric.Untyped == nil { + return written, fmt.Errorf( + "expected untyped in metric %s %s", name, metric, + ) + } + n, err = writeSample( + name, metric, "", "", + metric.Untyped.GetValue(), + out, + ) + case dto.MetricType_SUMMARY: + if metric.Summary == nil { + return written, fmt.Errorf( + "expected summary in metric %s %s", name, metric, + ) + } + for _, q := range metric.Summary.Quantile { + n, err = writeSample( + name, metric, + model.QuantileLabel, fmt.Sprint(q.GetQuantile()), + q.GetValue(), + out, + ) + written += n + if err != nil { + return written, err + } + } + n, err = writeSample( + name+"_sum", metric, "", "", + metric.Summary.GetSampleSum(), + out, + ) + if err != nil { + return written, err + } + written += n + n, err = writeSample( + name+"_count", metric, "", "", + float64(metric.Summary.GetSampleCount()), + out, + ) + case dto.MetricType_HISTOGRAM: + if metric.Histogram == nil { + return written, fmt.Errorf( + "expected histogram in metric %s %s", name, metric, + ) + } + infSeen := false + for _, q := range metric.Histogram.Bucket { + n, err = writeSample( + name+"_bucket", metric, + model.BucketLabel, fmt.Sprint(q.GetUpperBound()), + float64(q.GetCumulativeCount()), + out, + ) + written += n + if err != nil { + return written, err + } + if math.IsInf(q.GetUpperBound(), +1) { + infSeen = true + } + } + if !infSeen { + n, err = writeSample( + name+"_bucket", metric, + model.BucketLabel, "+Inf", + float64(metric.Histogram.GetSampleCount()), + out, + ) + if err != nil { + return written, err + } + written += n + } + n, err = writeSample( + name+"_sum", metric, "", "", + metric.Histogram.GetSampleSum(), + out, + ) + if err != nil { + return written, err + } + written += n + n, err = writeSample( + name+"_count", metric, "", "", + float64(metric.Histogram.GetSampleCount()), + out, + ) + default: + return written, fmt.Errorf( + "unexpected type in metric %s %s", name, metric, + ) + } + written += n + if err != nil { + return written, err + } + } + return written, nil +} + +// writeSample writes a single sample in text format to out, given the metric +// name, the metric proto message itself, optionally an additional label name +// and value (use empty strings if not required), and the value. The function +// returns the number of bytes written and any error encountered. +func writeSample( + name string, + metric *dto.Metric, + additionalLabelName, additionalLabelValue string, + value float64, + out io.Writer, +) (int, error) { + var written int + n, err := fmt.Fprint(out, name) + written += n + if err != nil { + return written, err + } + n, err = labelPairsToText( + metric.Label, + additionalLabelName, additionalLabelValue, + out, + ) + written += n + if err != nil { + return written, err + } + n, err = fmt.Fprintf(out, " %v", value) + written += n + if err != nil { + return written, err + } + if metric.TimestampMs != nil { + n, err = fmt.Fprintf(out, " %v", *metric.TimestampMs) + written += n + if err != nil { + return written, err + } + } + n, err = out.Write([]byte{'\n'}) + written += n + if err != nil { + return written, err + } + return written, nil +} + +// labelPairsToText converts a slice of LabelPair proto messages plus the +// explicitly given additional label pair into text formatted as required by the +// text format and writes it to 'out'. An empty slice in combination with an +// empty string 'additionalLabelName' results in nothing being +// written. Otherwise, the label pairs are written, escaped as required by the +// text format, and enclosed in '{...}'. The function returns the number of +// bytes written and any error encountered. +func labelPairsToText( + in []*dto.LabelPair, + additionalLabelName, additionalLabelValue string, + out io.Writer, +) (int, error) { + if len(in) == 0 && additionalLabelName == "" { + return 0, nil + } + var written int + separator := '{' + for _, lp := range in { + n, err := fmt.Fprintf( + out, `%c%s="%s"`, + separator, lp.GetName(), escapeString(lp.GetValue(), true), + ) + written += n + if err != nil { + return written, err + } + separator = ',' + } + if additionalLabelName != "" { + n, err := fmt.Fprintf( + out, `%c%s="%s"`, + separator, additionalLabelName, + escapeString(additionalLabelValue, true), + ) + written += n + if err != nil { + return written, err + } + } + n, err := out.Write([]byte{'}'}) + written += n + if err != nil { + return written, err + } + return written, nil +} + +var ( + escape = strings.NewReplacer("\\", `\\`, "\n", `\n`) + escapeWithDoubleQuote = strings.NewReplacer("\\", `\\`, "\n", `\n`, "\"", `\"`) +) + +// escapeString replaces '\' by '\\', new line character by '\n', and - if +// includeDoubleQuote is true - '"' by '\"'. +func escapeString(v string, includeDoubleQuote bool) string { + if includeDoubleQuote { + return escapeWithDoubleQuote.Replace(v) + } + + return escape.Replace(v) +} diff --git a/vendor/github.com/prometheus/common/expfmt/text_parse.go b/vendor/github.com/prometheus/common/expfmt/text_parse.go new file mode 100644 index 0000000..b86290a --- /dev/null +++ b/vendor/github.com/prometheus/common/expfmt/text_parse.go @@ -0,0 +1,757 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package expfmt + +import ( + "bufio" + "bytes" + "fmt" + "io" + "math" + "strconv" + "strings" + + dto "github.com/prometheus/client_model/go" + + "github.com/golang/protobuf/proto" + "github.com/prometheus/common/model" +) + +// A stateFn is a function that represents a state in a state machine. By +// executing it, the state is progressed to the next state. The stateFn returns +// another stateFn, which represents the new state. The end state is represented +// by nil. +type stateFn func() stateFn + +// ParseError signals errors while parsing the simple and flat text-based +// exchange format. +type ParseError struct { + Line int + Msg string +} + +// Error implements the error interface. +func (e ParseError) Error() string { + return fmt.Sprintf("text format parsing error in line %d: %s", e.Line, e.Msg) +} + +// TextParser is used to parse the simple and flat text-based exchange format. Its +// zero value is ready to use. +type TextParser struct { + metricFamiliesByName map[string]*dto.MetricFamily + buf *bufio.Reader // Where the parsed input is read through. + err error // Most recent error. + lineCount int // Tracks the line count for error messages. + currentByte byte // The most recent byte read. + currentToken bytes.Buffer // Re-used each time a token has to be gathered from multiple bytes. + currentMF *dto.MetricFamily + currentMetric *dto.Metric + currentLabelPair *dto.LabelPair + + // The remaining member variables are only used for summaries/histograms. + currentLabels map[string]string // All labels including '__name__' but excluding 'quantile'/'le' + // Summary specific. + summaries map[uint64]*dto.Metric // Key is created with LabelsToSignature. + currentQuantile float64 + // Histogram specific. + histograms map[uint64]*dto.Metric // Key is created with LabelsToSignature. + currentBucket float64 + // These tell us if the currently processed line ends on '_count' or + // '_sum' respectively and belong to a summary/histogram, representing the sample + // count and sum of that summary/histogram. + currentIsSummaryCount, currentIsSummarySum bool + currentIsHistogramCount, currentIsHistogramSum bool +} + +// TextToMetricFamilies reads 'in' as the simple and flat text-based exchange +// format and creates MetricFamily proto messages. It returns the MetricFamily +// proto messages in a map where the metric names are the keys, along with any +// error encountered. +// +// If the input contains duplicate metrics (i.e. lines with the same metric name +// and exactly the same label set), the resulting MetricFamily will contain +// duplicate Metric proto messages. Similar is true for duplicate label +// names. Checks for duplicates have to be performed separately, if required. +// Also note that neither the metrics within each MetricFamily are sorted nor +// the label pairs within each Metric. Sorting is not required for the most +// frequent use of this method, which is sample ingestion in the Prometheus +// server. However, for presentation purposes, you might want to sort the +// metrics, and in some cases, you must sort the labels, e.g. for consumption by +// the metric family injection hook of the Prometheus registry. +// +// Summaries and histograms are rather special beasts. You would probably not +// use them in the simple text format anyway. This method can deal with +// summaries and histograms if they are presented in exactly the way the +// text.Create function creates them. +// +// This method must not be called concurrently. If you want to parse different +// input concurrently, instantiate a separate Parser for each goroutine. +func (p *TextParser) TextToMetricFamilies(in io.Reader) (map[string]*dto.MetricFamily, error) { + p.reset(in) + for nextState := p.startOfLine; nextState != nil; nextState = nextState() { + // Magic happens here... + } + // Get rid of empty metric families. + for k, mf := range p.metricFamiliesByName { + if len(mf.GetMetric()) == 0 { + delete(p.metricFamiliesByName, k) + } + } + // If p.err is io.EOF now, we have run into a premature end of the input + // stream. Turn this error into something nicer and more + // meaningful. (io.EOF is often used as a signal for the legitimate end + // of an input stream.) + if p.err == io.EOF { + p.parseError("unexpected end of input stream") + } + return p.metricFamiliesByName, p.err +} + +func (p *TextParser) reset(in io.Reader) { + p.metricFamiliesByName = map[string]*dto.MetricFamily{} + if p.buf == nil { + p.buf = bufio.NewReader(in) + } else { + p.buf.Reset(in) + } + p.err = nil + p.lineCount = 0 + if p.summaries == nil || len(p.summaries) > 0 { + p.summaries = map[uint64]*dto.Metric{} + } + if p.histograms == nil || len(p.histograms) > 0 { + p.histograms = map[uint64]*dto.Metric{} + } + p.currentQuantile = math.NaN() + p.currentBucket = math.NaN() +} + +// startOfLine represents the state where the next byte read from p.buf is the +// start of a line (or whitespace leading up to it). +func (p *TextParser) startOfLine() stateFn { + p.lineCount++ + if p.skipBlankTab(); p.err != nil { + // End of input reached. This is the only case where + // that is not an error but a signal that we are done. + p.err = nil + return nil + } + switch p.currentByte { + case '#': + return p.startComment + case '\n': + return p.startOfLine // Empty line, start the next one. + } + return p.readingMetricName +} + +// startComment represents the state where the next byte read from p.buf is the +// start of a comment (or whitespace leading up to it). +func (p *TextParser) startComment() stateFn { + if p.skipBlankTab(); p.err != nil { + return nil // Unexpected end of input. + } + if p.currentByte == '\n' { + return p.startOfLine + } + if p.readTokenUntilWhitespace(); p.err != nil { + return nil // Unexpected end of input. + } + // If we have hit the end of line already, there is nothing left + // to do. This is not considered a syntax error. + if p.currentByte == '\n' { + return p.startOfLine + } + keyword := p.currentToken.String() + if keyword != "HELP" && keyword != "TYPE" { + // Generic comment, ignore by fast forwarding to end of line. + for p.currentByte != '\n' { + if p.currentByte, p.err = p.buf.ReadByte(); p.err != nil { + return nil // Unexpected end of input. + } + } + return p.startOfLine + } + // There is something. Next has to be a metric name. + if p.skipBlankTab(); p.err != nil { + return nil // Unexpected end of input. + } + if p.readTokenAsMetricName(); p.err != nil { + return nil // Unexpected end of input. + } + if p.currentByte == '\n' { + // At the end of the line already. + // Again, this is not considered a syntax error. + return p.startOfLine + } + if !isBlankOrTab(p.currentByte) { + p.parseError("invalid metric name in comment") + return nil + } + p.setOrCreateCurrentMF() + if p.skipBlankTab(); p.err != nil { + return nil // Unexpected end of input. + } + if p.currentByte == '\n' { + // At the end of the line already. + // Again, this is not considered a syntax error. + return p.startOfLine + } + switch keyword { + case "HELP": + return p.readingHelp + case "TYPE": + return p.readingType + } + panic(fmt.Sprintf("code error: unexpected keyword %q", keyword)) +} + +// readingMetricName represents the state where the last byte read (now in +// p.currentByte) is the first byte of a metric name. +func (p *TextParser) readingMetricName() stateFn { + if p.readTokenAsMetricName(); p.err != nil { + return nil + } + if p.currentToken.Len() == 0 { + p.parseError("invalid metric name") + return nil + } + p.setOrCreateCurrentMF() + // Now is the time to fix the type if it hasn't happened yet. + if p.currentMF.Type == nil { + p.currentMF.Type = dto.MetricType_UNTYPED.Enum() + } + p.currentMetric = &dto.Metric{} + // Do not append the newly created currentMetric to + // currentMF.Metric right now. First wait if this is a summary, + // and the metric exists already, which we can only know after + // having read all the labels. + if p.skipBlankTabIfCurrentBlankTab(); p.err != nil { + return nil // Unexpected end of input. + } + return p.readingLabels +} + +// readingLabels represents the state where the last byte read (now in +// p.currentByte) is either the first byte of the label set (i.e. a '{'), or the +// first byte of the value (otherwise). +func (p *TextParser) readingLabels() stateFn { + // Summaries/histograms are special. We have to reset the + // currentLabels map, currentQuantile and currentBucket before starting to + // read labels. + if p.currentMF.GetType() == dto.MetricType_SUMMARY || p.currentMF.GetType() == dto.MetricType_HISTOGRAM { + p.currentLabels = map[string]string{} + p.currentLabels[string(model.MetricNameLabel)] = p.currentMF.GetName() + p.currentQuantile = math.NaN() + p.currentBucket = math.NaN() + } + if p.currentByte != '{' { + return p.readingValue + } + return p.startLabelName +} + +// startLabelName represents the state where the next byte read from p.buf is +// the start of a label name (or whitespace leading up to it). +func (p *TextParser) startLabelName() stateFn { + if p.skipBlankTab(); p.err != nil { + return nil // Unexpected end of input. + } + if p.currentByte == '}' { + if p.skipBlankTab(); p.err != nil { + return nil // Unexpected end of input. + } + return p.readingValue + } + if p.readTokenAsLabelName(); p.err != nil { + return nil // Unexpected end of input. + } + if p.currentToken.Len() == 0 { + p.parseError(fmt.Sprintf("invalid label name for metric %q", p.currentMF.GetName())) + return nil + } + p.currentLabelPair = &dto.LabelPair{Name: proto.String(p.currentToken.String())} + if p.currentLabelPair.GetName() == string(model.MetricNameLabel) { + p.parseError(fmt.Sprintf("label name %q is reserved", model.MetricNameLabel)) + return nil + } + // Special summary/histogram treatment. Don't add 'quantile' and 'le' + // labels to 'real' labels. + if !(p.currentMF.GetType() == dto.MetricType_SUMMARY && p.currentLabelPair.GetName() == model.QuantileLabel) && + !(p.currentMF.GetType() == dto.MetricType_HISTOGRAM && p.currentLabelPair.GetName() == model.BucketLabel) { + p.currentMetric.Label = append(p.currentMetric.Label, p.currentLabelPair) + } + if p.skipBlankTabIfCurrentBlankTab(); p.err != nil { + return nil // Unexpected end of input. + } + if p.currentByte != '=' { + p.parseError(fmt.Sprintf("expected '=' after label name, found %q", p.currentByte)) + return nil + } + return p.startLabelValue +} + +// startLabelValue represents the state where the next byte read from p.buf is +// the start of a (quoted) label value (or whitespace leading up to it). +func (p *TextParser) startLabelValue() stateFn { + if p.skipBlankTab(); p.err != nil { + return nil // Unexpected end of input. + } + if p.currentByte != '"' { + p.parseError(fmt.Sprintf("expected '\"' at start of label value, found %q", p.currentByte)) + return nil + } + if p.readTokenAsLabelValue(); p.err != nil { + return nil + } + if !model.LabelValue(p.currentToken.String()).IsValid() { + p.parseError(fmt.Sprintf("invalid label value %q", p.currentToken.String())) + return nil + } + p.currentLabelPair.Value = proto.String(p.currentToken.String()) + // Special treatment of summaries: + // - Quantile labels are special, will result in dto.Quantile later. + // - Other labels have to be added to currentLabels for signature calculation. + if p.currentMF.GetType() == dto.MetricType_SUMMARY { + if p.currentLabelPair.GetName() == model.QuantileLabel { + if p.currentQuantile, p.err = strconv.ParseFloat(p.currentLabelPair.GetValue(), 64); p.err != nil { + // Create a more helpful error message. + p.parseError(fmt.Sprintf("expected float as value for 'quantile' label, got %q", p.currentLabelPair.GetValue())) + return nil + } + } else { + p.currentLabels[p.currentLabelPair.GetName()] = p.currentLabelPair.GetValue() + } + } + // Similar special treatment of histograms. + if p.currentMF.GetType() == dto.MetricType_HISTOGRAM { + if p.currentLabelPair.GetName() == model.BucketLabel { + if p.currentBucket, p.err = strconv.ParseFloat(p.currentLabelPair.GetValue(), 64); p.err != nil { + // Create a more helpful error message. + p.parseError(fmt.Sprintf("expected float as value for 'le' label, got %q", p.currentLabelPair.GetValue())) + return nil + } + } else { + p.currentLabels[p.currentLabelPair.GetName()] = p.currentLabelPair.GetValue() + } + } + if p.skipBlankTab(); p.err != nil { + return nil // Unexpected end of input. + } + switch p.currentByte { + case ',': + return p.startLabelName + + case '}': + if p.skipBlankTab(); p.err != nil { + return nil // Unexpected end of input. + } + return p.readingValue + default: + p.parseError(fmt.Sprintf("unexpected end of label value %q", p.currentLabelPair.Value)) + return nil + } +} + +// readingValue represents the state where the last byte read (now in +// p.currentByte) is the first byte of the sample value (i.e. a float). +func (p *TextParser) readingValue() stateFn { + // When we are here, we have read all the labels, so for the + // special case of a summary/histogram, we can finally find out + // if the metric already exists. + if p.currentMF.GetType() == dto.MetricType_SUMMARY { + signature := model.LabelsToSignature(p.currentLabels) + if summary := p.summaries[signature]; summary != nil { + p.currentMetric = summary + } else { + p.summaries[signature] = p.currentMetric + p.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric) + } + } else if p.currentMF.GetType() == dto.MetricType_HISTOGRAM { + signature := model.LabelsToSignature(p.currentLabels) + if histogram := p.histograms[signature]; histogram != nil { + p.currentMetric = histogram + } else { + p.histograms[signature] = p.currentMetric + p.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric) + } + } else { + p.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric) + } + if p.readTokenUntilWhitespace(); p.err != nil { + return nil // Unexpected end of input. + } + value, err := strconv.ParseFloat(p.currentToken.String(), 64) + if err != nil { + // Create a more helpful error message. + p.parseError(fmt.Sprintf("expected float as value, got %q", p.currentToken.String())) + return nil + } + switch p.currentMF.GetType() { + case dto.MetricType_COUNTER: + p.currentMetric.Counter = &dto.Counter{Value: proto.Float64(value)} + case dto.MetricType_GAUGE: + p.currentMetric.Gauge = &dto.Gauge{Value: proto.Float64(value)} + case dto.MetricType_UNTYPED: + p.currentMetric.Untyped = &dto.Untyped{Value: proto.Float64(value)} + case dto.MetricType_SUMMARY: + // *sigh* + if p.currentMetric.Summary == nil { + p.currentMetric.Summary = &dto.Summary{} + } + switch { + case p.currentIsSummaryCount: + p.currentMetric.Summary.SampleCount = proto.Uint64(uint64(value)) + case p.currentIsSummarySum: + p.currentMetric.Summary.SampleSum = proto.Float64(value) + case !math.IsNaN(p.currentQuantile): + p.currentMetric.Summary.Quantile = append( + p.currentMetric.Summary.Quantile, + &dto.Quantile{ + Quantile: proto.Float64(p.currentQuantile), + Value: proto.Float64(value), + }, + ) + } + case dto.MetricType_HISTOGRAM: + // *sigh* + if p.currentMetric.Histogram == nil { + p.currentMetric.Histogram = &dto.Histogram{} + } + switch { + case p.currentIsHistogramCount: + p.currentMetric.Histogram.SampleCount = proto.Uint64(uint64(value)) + case p.currentIsHistogramSum: + p.currentMetric.Histogram.SampleSum = proto.Float64(value) + case !math.IsNaN(p.currentBucket): + p.currentMetric.Histogram.Bucket = append( + p.currentMetric.Histogram.Bucket, + &dto.Bucket{ + UpperBound: proto.Float64(p.currentBucket), + CumulativeCount: proto.Uint64(uint64(value)), + }, + ) + } + default: + p.err = fmt.Errorf("unexpected type for metric name %q", p.currentMF.GetName()) + } + if p.currentByte == '\n' { + return p.startOfLine + } + return p.startTimestamp +} + +// startTimestamp represents the state where the next byte read from p.buf is +// the start of the timestamp (or whitespace leading up to it). +func (p *TextParser) startTimestamp() stateFn { + if p.skipBlankTab(); p.err != nil { + return nil // Unexpected end of input. + } + if p.readTokenUntilWhitespace(); p.err != nil { + return nil // Unexpected end of input. + } + timestamp, err := strconv.ParseInt(p.currentToken.String(), 10, 64) + if err != nil { + // Create a more helpful error message. + p.parseError(fmt.Sprintf("expected integer as timestamp, got %q", p.currentToken.String())) + return nil + } + p.currentMetric.TimestampMs = proto.Int64(timestamp) + if p.readTokenUntilNewline(false); p.err != nil { + return nil // Unexpected end of input. + } + if p.currentToken.Len() > 0 { + p.parseError(fmt.Sprintf("spurious string after timestamp: %q", p.currentToken.String())) + return nil + } + return p.startOfLine +} + +// readingHelp represents the state where the last byte read (now in +// p.currentByte) is the first byte of the docstring after 'HELP'. +func (p *TextParser) readingHelp() stateFn { + if p.currentMF.Help != nil { + p.parseError(fmt.Sprintf("second HELP line for metric name %q", p.currentMF.GetName())) + return nil + } + // Rest of line is the docstring. + if p.readTokenUntilNewline(true); p.err != nil { + return nil // Unexpected end of input. + } + p.currentMF.Help = proto.String(p.currentToken.String()) + return p.startOfLine +} + +// readingType represents the state where the last byte read (now in +// p.currentByte) is the first byte of the type hint after 'HELP'. +func (p *TextParser) readingType() stateFn { + if p.currentMF.Type != nil { + p.parseError(fmt.Sprintf("second TYPE line for metric name %q, or TYPE reported after samples", p.currentMF.GetName())) + return nil + } + // Rest of line is the type. + if p.readTokenUntilNewline(false); p.err != nil { + return nil // Unexpected end of input. + } + metricType, ok := dto.MetricType_value[strings.ToUpper(p.currentToken.String())] + if !ok { + p.parseError(fmt.Sprintf("unknown metric type %q", p.currentToken.String())) + return nil + } + p.currentMF.Type = dto.MetricType(metricType).Enum() + return p.startOfLine +} + +// parseError sets p.err to a ParseError at the current line with the given +// message. +func (p *TextParser) parseError(msg string) { + p.err = ParseError{ + Line: p.lineCount, + Msg: msg, + } +} + +// skipBlankTab reads (and discards) bytes from p.buf until it encounters a byte +// that is neither ' ' nor '\t'. That byte is left in p.currentByte. +func (p *TextParser) skipBlankTab() { + for { + if p.currentByte, p.err = p.buf.ReadByte(); p.err != nil || !isBlankOrTab(p.currentByte) { + return + } + } +} + +// skipBlankTabIfCurrentBlankTab works exactly as skipBlankTab but doesn't do +// anything if p.currentByte is neither ' ' nor '\t'. +func (p *TextParser) skipBlankTabIfCurrentBlankTab() { + if isBlankOrTab(p.currentByte) { + p.skipBlankTab() + } +} + +// readTokenUntilWhitespace copies bytes from p.buf into p.currentToken. The +// first byte considered is the byte already read (now in p.currentByte). The +// first whitespace byte encountered is still copied into p.currentByte, but not +// into p.currentToken. +func (p *TextParser) readTokenUntilWhitespace() { + p.currentToken.Reset() + for p.err == nil && !isBlankOrTab(p.currentByte) && p.currentByte != '\n' { + p.currentToken.WriteByte(p.currentByte) + p.currentByte, p.err = p.buf.ReadByte() + } +} + +// readTokenUntilNewline copies bytes from p.buf into p.currentToken. The first +// byte considered is the byte already read (now in p.currentByte). The first +// newline byte encountered is still copied into p.currentByte, but not into +// p.currentToken. If recognizeEscapeSequence is true, two escape sequences are +// recognized: '\\' translates into '\', and '\n' into a line-feed character. +// All other escape sequences are invalid and cause an error. +func (p *TextParser) readTokenUntilNewline(recognizeEscapeSequence bool) { + p.currentToken.Reset() + escaped := false + for p.err == nil { + if recognizeEscapeSequence && escaped { + switch p.currentByte { + case '\\': + p.currentToken.WriteByte(p.currentByte) + case 'n': + p.currentToken.WriteByte('\n') + default: + p.parseError(fmt.Sprintf("invalid escape sequence '\\%c'", p.currentByte)) + return + } + escaped = false + } else { + switch p.currentByte { + case '\n': + return + case '\\': + escaped = true + default: + p.currentToken.WriteByte(p.currentByte) + } + } + p.currentByte, p.err = p.buf.ReadByte() + } +} + +// readTokenAsMetricName copies a metric name from p.buf into p.currentToken. +// The first byte considered is the byte already read (now in p.currentByte). +// The first byte not part of a metric name is still copied into p.currentByte, +// but not into p.currentToken. +func (p *TextParser) readTokenAsMetricName() { + p.currentToken.Reset() + if !isValidMetricNameStart(p.currentByte) { + return + } + for { + p.currentToken.WriteByte(p.currentByte) + p.currentByte, p.err = p.buf.ReadByte() + if p.err != nil || !isValidMetricNameContinuation(p.currentByte) { + return + } + } +} + +// readTokenAsLabelName copies a label name from p.buf into p.currentToken. +// The first byte considered is the byte already read (now in p.currentByte). +// The first byte not part of a label name is still copied into p.currentByte, +// but not into p.currentToken. +func (p *TextParser) readTokenAsLabelName() { + p.currentToken.Reset() + if !isValidLabelNameStart(p.currentByte) { + return + } + for { + p.currentToken.WriteByte(p.currentByte) + p.currentByte, p.err = p.buf.ReadByte() + if p.err != nil || !isValidLabelNameContinuation(p.currentByte) { + return + } + } +} + +// readTokenAsLabelValue copies a label value from p.buf into p.currentToken. +// In contrast to the other 'readTokenAs...' functions, which start with the +// last read byte in p.currentByte, this method ignores p.currentByte and starts +// with reading a new byte from p.buf. The first byte not part of a label value +// is still copied into p.currentByte, but not into p.currentToken. +func (p *TextParser) readTokenAsLabelValue() { + p.currentToken.Reset() + escaped := false + for { + if p.currentByte, p.err = p.buf.ReadByte(); p.err != nil { + return + } + if escaped { + switch p.currentByte { + case '"', '\\': + p.currentToken.WriteByte(p.currentByte) + case 'n': + p.currentToken.WriteByte('\n') + default: + p.parseError(fmt.Sprintf("invalid escape sequence '\\%c'", p.currentByte)) + return + } + escaped = false + continue + } + switch p.currentByte { + case '"': + return + case '\n': + p.parseError(fmt.Sprintf("label value %q contains unescaped new-line", p.currentToken.String())) + return + case '\\': + escaped = true + default: + p.currentToken.WriteByte(p.currentByte) + } + } +} + +func (p *TextParser) setOrCreateCurrentMF() { + p.currentIsSummaryCount = false + p.currentIsSummarySum = false + p.currentIsHistogramCount = false + p.currentIsHistogramSum = false + name := p.currentToken.String() + if p.currentMF = p.metricFamiliesByName[name]; p.currentMF != nil { + return + } + // Try out if this is a _sum or _count for a summary/histogram. + summaryName := summaryMetricName(name) + if p.currentMF = p.metricFamiliesByName[summaryName]; p.currentMF != nil { + if p.currentMF.GetType() == dto.MetricType_SUMMARY { + if isCount(name) { + p.currentIsSummaryCount = true + } + if isSum(name) { + p.currentIsSummarySum = true + } + return + } + } + histogramName := histogramMetricName(name) + if p.currentMF = p.metricFamiliesByName[histogramName]; p.currentMF != nil { + if p.currentMF.GetType() == dto.MetricType_HISTOGRAM { + if isCount(name) { + p.currentIsHistogramCount = true + } + if isSum(name) { + p.currentIsHistogramSum = true + } + return + } + } + p.currentMF = &dto.MetricFamily{Name: proto.String(name)} + p.metricFamiliesByName[name] = p.currentMF +} + +func isValidLabelNameStart(b byte) bool { + return (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' +} + +func isValidLabelNameContinuation(b byte) bool { + return isValidLabelNameStart(b) || (b >= '0' && b <= '9') +} + +func isValidMetricNameStart(b byte) bool { + return isValidLabelNameStart(b) || b == ':' +} + +func isValidMetricNameContinuation(b byte) bool { + return isValidLabelNameContinuation(b) || b == ':' +} + +func isBlankOrTab(b byte) bool { + return b == ' ' || b == '\t' +} + +func isCount(name string) bool { + return len(name) > 6 && name[len(name)-6:] == "_count" +} + +func isSum(name string) bool { + return len(name) > 4 && name[len(name)-4:] == "_sum" +} + +func isBucket(name string) bool { + return len(name) > 7 && name[len(name)-7:] == "_bucket" +} + +func summaryMetricName(name string) string { + switch { + case isCount(name): + return name[:len(name)-6] + case isSum(name): + return name[:len(name)-4] + default: + return name + } +} + +func histogramMetricName(name string) string { + switch { + case isCount(name): + return name[:len(name)-6] + case isSum(name): + return name[:len(name)-4] + case isBucket(name): + return name[:len(name)-7] + default: + return name + } +} diff --git a/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/README.txt b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/README.txt new file mode 100644 index 0000000..7723656 --- /dev/null +++ b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/README.txt @@ -0,0 +1,67 @@ +PACKAGE + +package goautoneg +import "bitbucket.org/ww/goautoneg" + +HTTP Content-Type Autonegotiation. + +The functions in this package implement the behaviour specified in +http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html + +Copyright (c) 2011, Open Knowledge Foundation Ltd. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + Neither the name of the Open Knowledge Foundation Ltd. nor the + names of its contributors may be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +FUNCTIONS + +func Negotiate(header string, alternatives []string) (content_type string) +Negotiate the most appropriate content_type given the accept header +and a list of alternatives. + +func ParseAccept(header string) (accept []Accept) +Parse an Accept Header string returning a sorted list +of clauses + + +TYPES + +type Accept struct { + Type, SubType string + Q float32 + Params map[string]string +} +Structure to represent a clause in an HTTP Accept Header + + +SUBDIRECTORIES + + .hg diff --git a/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go new file mode 100644 index 0000000..648b38c --- /dev/null +++ b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go @@ -0,0 +1,162 @@ +/* +HTTP Content-Type Autonegotiation. + +The functions in this package implement the behaviour specified in +http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html + +Copyright (c) 2011, Open Knowledge Foundation Ltd. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + Neither the name of the Open Knowledge Foundation Ltd. nor the + names of its contributors may be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ +package goautoneg + +import ( + "sort" + "strconv" + "strings" +) + +// Structure to represent a clause in an HTTP Accept Header +type Accept struct { + Type, SubType string + Q float64 + Params map[string]string +} + +// For internal use, so that we can use the sort interface +type accept_slice []Accept + +func (accept accept_slice) Len() int { + slice := []Accept(accept) + return len(slice) +} + +func (accept accept_slice) Less(i, j int) bool { + slice := []Accept(accept) + ai, aj := slice[i], slice[j] + if ai.Q > aj.Q { + return true + } + if ai.Type != "*" && aj.Type == "*" { + return true + } + if ai.SubType != "*" && aj.SubType == "*" { + return true + } + return false +} + +func (accept accept_slice) Swap(i, j int) { + slice := []Accept(accept) + slice[i], slice[j] = slice[j], slice[i] +} + +// Parse an Accept Header string returning a sorted list +// of clauses +func ParseAccept(header string) (accept []Accept) { + parts := strings.Split(header, ",") + accept = make([]Accept, 0, len(parts)) + for _, part := range parts { + part := strings.Trim(part, " ") + + a := Accept{} + a.Params = make(map[string]string) + a.Q = 1.0 + + mrp := strings.Split(part, ";") + + media_range := mrp[0] + sp := strings.Split(media_range, "/") + a.Type = strings.Trim(sp[0], " ") + + switch { + case len(sp) == 1 && a.Type == "*": + a.SubType = "*" + case len(sp) == 2: + a.SubType = strings.Trim(sp[1], " ") + default: + continue + } + + if len(mrp) == 1 { + accept = append(accept, a) + continue + } + + for _, param := range mrp[1:] { + sp := strings.SplitN(param, "=", 2) + if len(sp) != 2 { + continue + } + token := strings.Trim(sp[0], " ") + if token == "q" { + a.Q, _ = strconv.ParseFloat(sp[1], 32) + } else { + a.Params[token] = strings.Trim(sp[1], " ") + } + } + + accept = append(accept, a) + } + + slice := accept_slice(accept) + sort.Sort(slice) + + return +} + +// Negotiate the most appropriate content_type given the accept header +// and a list of alternatives. +func Negotiate(header string, alternatives []string) (content_type string) { + asp := make([][]string, 0, len(alternatives)) + for _, ctype := range alternatives { + asp = append(asp, strings.SplitN(ctype, "/", 2)) + } + for _, clause := range ParseAccept(header) { + for i, ctsp := range asp { + if clause.Type == ctsp[0] && clause.SubType == ctsp[1] { + content_type = alternatives[i] + return + } + if clause.Type == ctsp[0] && clause.SubType == "*" { + content_type = alternatives[i] + return + } + if clause.Type == "*" && clause.SubType == "*" { + content_type = alternatives[i] + return + } + } + } + return +} diff --git a/vendor/github.com/prometheus/common/model/alert.go b/vendor/github.com/prometheus/common/model/alert.go new file mode 100644 index 0000000..35e739c --- /dev/null +++ b/vendor/github.com/prometheus/common/model/alert.go @@ -0,0 +1,136 @@ +// Copyright 2013 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +import ( + "fmt" + "time" +) + +type AlertStatus string + +const ( + AlertFiring AlertStatus = "firing" + AlertResolved AlertStatus = "resolved" +) + +// Alert is a generic representation of an alert in the Prometheus eco-system. +type Alert struct { + // Label value pairs for purpose of aggregation, matching, and disposition + // dispatching. This must minimally include an "alertname" label. + Labels LabelSet `json:"labels"` + + // Extra key/value information which does not define alert identity. + Annotations LabelSet `json:"annotations"` + + // The known time range for this alert. Both ends are optional. + StartsAt time.Time `json:"startsAt,omitempty"` + EndsAt time.Time `json:"endsAt,omitempty"` + GeneratorURL string `json:"generatorURL"` +} + +// Name returns the name of the alert. It is equivalent to the "alertname" label. +func (a *Alert) Name() string { + return string(a.Labels[AlertNameLabel]) +} + +// Fingerprint returns a unique hash for the alert. It is equivalent to +// the fingerprint of the alert's label set. +func (a *Alert) Fingerprint() Fingerprint { + return a.Labels.Fingerprint() +} + +func (a *Alert) String() string { + s := fmt.Sprintf("%s[%s]", a.Name(), a.Fingerprint().String()[:7]) + if a.Resolved() { + return s + "[resolved]" + } + return s + "[active]" +} + +// Resolved returns true iff the activity interval ended in the past. +func (a *Alert) Resolved() bool { + return a.ResolvedAt(time.Now()) +} + +// ResolvedAt returns true off the activity interval ended before +// the given timestamp. +func (a *Alert) ResolvedAt(ts time.Time) bool { + if a.EndsAt.IsZero() { + return false + } + return !a.EndsAt.After(ts) +} + +// Status returns the status of the alert. +func (a *Alert) Status() AlertStatus { + if a.Resolved() { + return AlertResolved + } + return AlertFiring +} + +// Validate checks whether the alert data is inconsistent. +func (a *Alert) Validate() error { + if a.StartsAt.IsZero() { + return fmt.Errorf("start time missing") + } + if !a.EndsAt.IsZero() && a.EndsAt.Before(a.StartsAt) { + return fmt.Errorf("start time must be before end time") + } + if err := a.Labels.Validate(); err != nil { + return fmt.Errorf("invalid label set: %s", err) + } + if len(a.Labels) == 0 { + return fmt.Errorf("at least one label pair required") + } + if err := a.Annotations.Validate(); err != nil { + return fmt.Errorf("invalid annotations: %s", err) + } + return nil +} + +// Alert is a list of alerts that can be sorted in chronological order. +type Alerts []*Alert + +func (as Alerts) Len() int { return len(as) } +func (as Alerts) Swap(i, j int) { as[i], as[j] = as[j], as[i] } + +func (as Alerts) Less(i, j int) bool { + if as[i].StartsAt.Before(as[j].StartsAt) { + return true + } + if as[i].EndsAt.Before(as[j].EndsAt) { + return true + } + return as[i].Fingerprint() < as[j].Fingerprint() +} + +// HasFiring returns true iff one of the alerts is not resolved. +func (as Alerts) HasFiring() bool { + for _, a := range as { + if !a.Resolved() { + return true + } + } + return false +} + +// Status returns StatusFiring iff at least one of the alerts is firing. +func (as Alerts) Status() AlertStatus { + if as.HasFiring() { + return AlertFiring + } + return AlertResolved +} diff --git a/vendor/github.com/prometheus/common/model/fingerprinting.go b/vendor/github.com/prometheus/common/model/fingerprinting.go new file mode 100644 index 0000000..fc4de41 --- /dev/null +++ b/vendor/github.com/prometheus/common/model/fingerprinting.go @@ -0,0 +1,105 @@ +// Copyright 2013 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +import ( + "fmt" + "strconv" +) + +// Fingerprint provides a hash-capable representation of a Metric. +// For our purposes, FNV-1A 64-bit is used. +type Fingerprint uint64 + +// FingerprintFromString transforms a string representation into a Fingerprint. +func FingerprintFromString(s string) (Fingerprint, error) { + num, err := strconv.ParseUint(s, 16, 64) + return Fingerprint(num), err +} + +// ParseFingerprint parses the input string into a fingerprint. +func ParseFingerprint(s string) (Fingerprint, error) { + num, err := strconv.ParseUint(s, 16, 64) + if err != nil { + return 0, err + } + return Fingerprint(num), nil +} + +func (f Fingerprint) String() string { + return fmt.Sprintf("%016x", uint64(f)) +} + +// Fingerprints represents a collection of Fingerprint subject to a given +// natural sorting scheme. It implements sort.Interface. +type Fingerprints []Fingerprint + +// Len implements sort.Interface. +func (f Fingerprints) Len() int { + return len(f) +} + +// Less implements sort.Interface. +func (f Fingerprints) Less(i, j int) bool { + return f[i] < f[j] +} + +// Swap implements sort.Interface. +func (f Fingerprints) Swap(i, j int) { + f[i], f[j] = f[j], f[i] +} + +// FingerprintSet is a set of Fingerprints. +type FingerprintSet map[Fingerprint]struct{} + +// Equal returns true if both sets contain the same elements (and not more). +func (s FingerprintSet) Equal(o FingerprintSet) bool { + if len(s) != len(o) { + return false + } + + for k := range s { + if _, ok := o[k]; !ok { + return false + } + } + + return true +} + +// Intersection returns the elements contained in both sets. +func (s FingerprintSet) Intersection(o FingerprintSet) FingerprintSet { + myLength, otherLength := len(s), len(o) + if myLength == 0 || otherLength == 0 { + return FingerprintSet{} + } + + subSet := s + superSet := o + + if otherLength < myLength { + subSet = o + superSet = s + } + + out := FingerprintSet{} + + for k := range subSet { + if _, ok := superSet[k]; ok { + out[k] = struct{}{} + } + } + + return out +} diff --git a/vendor/github.com/prometheus/common/model/fnv.go b/vendor/github.com/prometheus/common/model/fnv.go new file mode 100644 index 0000000..038fc1c --- /dev/null +++ b/vendor/github.com/prometheus/common/model/fnv.go @@ -0,0 +1,42 @@ +// Copyright 2015 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +// Inline and byte-free variant of hash/fnv's fnv64a. + +const ( + offset64 = 14695981039346656037 + prime64 = 1099511628211 +) + +// hashNew initializies a new fnv64a hash value. +func hashNew() uint64 { + return offset64 +} + +// hashAdd adds a string to a fnv64a hash value, returning the updated hash. +func hashAdd(h uint64, s string) uint64 { + for i := 0; i < len(s); i++ { + h ^= uint64(s[i]) + h *= prime64 + } + return h +} + +// hashAddByte adds a byte to a fnv64a hash value, returning the updated hash. +func hashAddByte(h uint64, b byte) uint64 { + h ^= uint64(b) + h *= prime64 + return h +} diff --git a/vendor/github.com/prometheus/common/model/labels.go b/vendor/github.com/prometheus/common/model/labels.go new file mode 100644 index 0000000..41051a0 --- /dev/null +++ b/vendor/github.com/prometheus/common/model/labels.go @@ -0,0 +1,210 @@ +// Copyright 2013 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +import ( + "encoding/json" + "fmt" + "regexp" + "strings" + "unicode/utf8" +) + +const ( + // AlertNameLabel is the name of the label containing the an alert's name. + AlertNameLabel = "alertname" + + // ExportedLabelPrefix is the prefix to prepend to the label names present in + // exported metrics if a label of the same name is added by the server. + ExportedLabelPrefix = "exported_" + + // MetricNameLabel is the label name indicating the metric name of a + // timeseries. + MetricNameLabel = "__name__" + + // SchemeLabel is the name of the label that holds the scheme on which to + // scrape a target. + SchemeLabel = "__scheme__" + + // AddressLabel is the name of the label that holds the address of + // a scrape target. + AddressLabel = "__address__" + + // MetricsPathLabel is the name of the label that holds the path on which to + // scrape a target. + MetricsPathLabel = "__metrics_path__" + + // ReservedLabelPrefix is a prefix which is not legal in user-supplied + // label names. + ReservedLabelPrefix = "__" + + // MetaLabelPrefix is a prefix for labels that provide meta information. + // Labels with this prefix are used for intermediate label processing and + // will not be attached to time series. + MetaLabelPrefix = "__meta_" + + // TmpLabelPrefix is a prefix for temporary labels as part of relabelling. + // Labels with this prefix are used for intermediate label processing and + // will not be attached to time series. This is reserved for use in + // Prometheus configuration files by users. + TmpLabelPrefix = "__tmp_" + + // ParamLabelPrefix is a prefix for labels that provide URL parameters + // used to scrape a target. + ParamLabelPrefix = "__param_" + + // JobLabel is the label name indicating the job from which a timeseries + // was scraped. + JobLabel = "job" + + // InstanceLabel is the label name used for the instance label. + InstanceLabel = "instance" + + // BucketLabel is used for the label that defines the upper bound of a + // bucket of a histogram ("le" -> "less or equal"). + BucketLabel = "le" + + // QuantileLabel is used for the label that defines the quantile in a + // summary. + QuantileLabel = "quantile" +) + +// LabelNameRE is a regular expression matching valid label names. Note that the +// IsValid method of LabelName performs the same check but faster than a match +// with this regular expression. +var LabelNameRE = regexp.MustCompile("^[a-zA-Z_][a-zA-Z0-9_]*$") + +// A LabelName is a key for a LabelSet or Metric. It has a value associated +// therewith. +type LabelName string + +// IsValid is true iff the label name matches the pattern of LabelNameRE. This +// method, however, does not use LabelNameRE for the check but a much faster +// hardcoded implementation. +func (ln LabelName) IsValid() bool { + if len(ln) == 0 { + return false + } + for i, b := range ln { + if !((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || (b >= '0' && b <= '9' && i > 0)) { + return false + } + } + return true +} + +// UnmarshalYAML implements the yaml.Unmarshaler interface. +func (ln *LabelName) UnmarshalYAML(unmarshal func(interface{}) error) error { + var s string + if err := unmarshal(&s); err != nil { + return err + } + if !LabelName(s).IsValid() { + return fmt.Errorf("%q is not a valid label name", s) + } + *ln = LabelName(s) + return nil +} + +// UnmarshalJSON implements the json.Unmarshaler interface. +func (ln *LabelName) UnmarshalJSON(b []byte) error { + var s string + if err := json.Unmarshal(b, &s); err != nil { + return err + } + if !LabelName(s).IsValid() { + return fmt.Errorf("%q is not a valid label name", s) + } + *ln = LabelName(s) + return nil +} + +// LabelNames is a sortable LabelName slice. In implements sort.Interface. +type LabelNames []LabelName + +func (l LabelNames) Len() int { + return len(l) +} + +func (l LabelNames) Less(i, j int) bool { + return l[i] < l[j] +} + +func (l LabelNames) Swap(i, j int) { + l[i], l[j] = l[j], l[i] +} + +func (l LabelNames) String() string { + labelStrings := make([]string, 0, len(l)) + for _, label := range l { + labelStrings = append(labelStrings, string(label)) + } + return strings.Join(labelStrings, ", ") +} + +// A LabelValue is an associated value for a LabelName. +type LabelValue string + +// IsValid returns true iff the string is a valid UTF8. +func (lv LabelValue) IsValid() bool { + return utf8.ValidString(string(lv)) +} + +// LabelValues is a sortable LabelValue slice. It implements sort.Interface. +type LabelValues []LabelValue + +func (l LabelValues) Len() int { + return len(l) +} + +func (l LabelValues) Less(i, j int) bool { + return string(l[i]) < string(l[j]) +} + +func (l LabelValues) Swap(i, j int) { + l[i], l[j] = l[j], l[i] +} + +// LabelPair pairs a name with a value. +type LabelPair struct { + Name LabelName + Value LabelValue +} + +// LabelPairs is a sortable slice of LabelPair pointers. It implements +// sort.Interface. +type LabelPairs []*LabelPair + +func (l LabelPairs) Len() int { + return len(l) +} + +func (l LabelPairs) Less(i, j int) bool { + switch { + case l[i].Name > l[j].Name: + return false + case l[i].Name < l[j].Name: + return true + case l[i].Value > l[j].Value: + return false + case l[i].Value < l[j].Value: + return true + default: + return false + } +} + +func (l LabelPairs) Swap(i, j int) { + l[i], l[j] = l[j], l[i] +} diff --git a/vendor/github.com/prometheus/common/model/labelset.go b/vendor/github.com/prometheus/common/model/labelset.go new file mode 100644 index 0000000..6eda08a --- /dev/null +++ b/vendor/github.com/prometheus/common/model/labelset.go @@ -0,0 +1,169 @@ +// Copyright 2013 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +import ( + "encoding/json" + "fmt" + "sort" + "strings" +) + +// A LabelSet is a collection of LabelName and LabelValue pairs. The LabelSet +// may be fully-qualified down to the point where it may resolve to a single +// Metric in the data store or not. All operations that occur within the realm +// of a LabelSet can emit a vector of Metric entities to which the LabelSet may +// match. +type LabelSet map[LabelName]LabelValue + +// Validate checks whether all names and values in the label set +// are valid. +func (ls LabelSet) Validate() error { + for ln, lv := range ls { + if !ln.IsValid() { + return fmt.Errorf("invalid name %q", ln) + } + if !lv.IsValid() { + return fmt.Errorf("invalid value %q", lv) + } + } + return nil +} + +// Equal returns true iff both label sets have exactly the same key/value pairs. +func (ls LabelSet) Equal(o LabelSet) bool { + if len(ls) != len(o) { + return false + } + for ln, lv := range ls { + olv, ok := o[ln] + if !ok { + return false + } + if olv != lv { + return false + } + } + return true +} + +// Before compares the metrics, using the following criteria: +// +// If m has fewer labels than o, it is before o. If it has more, it is not. +// +// If the number of labels is the same, the superset of all label names is +// sorted alphanumerically. The first differing label pair found in that order +// determines the outcome: If the label does not exist at all in m, then m is +// before o, and vice versa. Otherwise the label value is compared +// alphanumerically. +// +// If m and o are equal, the method returns false. +func (ls LabelSet) Before(o LabelSet) bool { + if len(ls) < len(o) { + return true + } + if len(ls) > len(o) { + return false + } + + lns := make(LabelNames, 0, len(ls)+len(o)) + for ln := range ls { + lns = append(lns, ln) + } + for ln := range o { + lns = append(lns, ln) + } + // It's probably not worth it to de-dup lns. + sort.Sort(lns) + for _, ln := range lns { + mlv, ok := ls[ln] + if !ok { + return true + } + olv, ok := o[ln] + if !ok { + return false + } + if mlv < olv { + return true + } + if mlv > olv { + return false + } + } + return false +} + +// Clone returns a copy of the label set. +func (ls LabelSet) Clone() LabelSet { + lsn := make(LabelSet, len(ls)) + for ln, lv := range ls { + lsn[ln] = lv + } + return lsn +} + +// Merge is a helper function to non-destructively merge two label sets. +func (l LabelSet) Merge(other LabelSet) LabelSet { + result := make(LabelSet, len(l)) + + for k, v := range l { + result[k] = v + } + + for k, v := range other { + result[k] = v + } + + return result +} + +func (l LabelSet) String() string { + lstrs := make([]string, 0, len(l)) + for l, v := range l { + lstrs = append(lstrs, fmt.Sprintf("%s=%q", l, v)) + } + + sort.Strings(lstrs) + return fmt.Sprintf("{%s}", strings.Join(lstrs, ", ")) +} + +// Fingerprint returns the LabelSet's fingerprint. +func (ls LabelSet) Fingerprint() Fingerprint { + return labelSetToFingerprint(ls) +} + +// FastFingerprint returns the LabelSet's Fingerprint calculated by a faster hashing +// algorithm, which is, however, more susceptible to hash collisions. +func (ls LabelSet) FastFingerprint() Fingerprint { + return labelSetToFastFingerprint(ls) +} + +// UnmarshalJSON implements the json.Unmarshaler interface. +func (l *LabelSet) UnmarshalJSON(b []byte) error { + var m map[LabelName]LabelValue + if err := json.Unmarshal(b, &m); err != nil { + return err + } + // encoding/json only unmarshals maps of the form map[string]T. It treats + // LabelName as a string and does not call its UnmarshalJSON method. + // Thus, we have to replicate the behavior here. + for ln := range m { + if !ln.IsValid() { + return fmt.Errorf("%q is not a valid label name", ln) + } + } + *l = LabelSet(m) + return nil +} diff --git a/vendor/github.com/prometheus/common/model/metric.go b/vendor/github.com/prometheus/common/model/metric.go new file mode 100644 index 0000000..f725090 --- /dev/null +++ b/vendor/github.com/prometheus/common/model/metric.go @@ -0,0 +1,103 @@ +// Copyright 2013 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +import ( + "fmt" + "regexp" + "sort" + "strings" +) + +var ( + separator = []byte{0} + // MetricNameRE is a regular expression matching valid metric + // names. Note that the IsValidMetricName function performs the same + // check but faster than a match with this regular expression. + MetricNameRE = regexp.MustCompile(`^[a-zA-Z_:][a-zA-Z0-9_:]*$`) +) + +// A Metric is similar to a LabelSet, but the key difference is that a Metric is +// a singleton and refers to one and only one stream of samples. +type Metric LabelSet + +// Equal compares the metrics. +func (m Metric) Equal(o Metric) bool { + return LabelSet(m).Equal(LabelSet(o)) +} + +// Before compares the metrics' underlying label sets. +func (m Metric) Before(o Metric) bool { + return LabelSet(m).Before(LabelSet(o)) +} + +// Clone returns a copy of the Metric. +func (m Metric) Clone() Metric { + clone := make(Metric, len(m)) + for k, v := range m { + clone[k] = v + } + return clone +} + +func (m Metric) String() string { + metricName, hasName := m[MetricNameLabel] + numLabels := len(m) - 1 + if !hasName { + numLabels = len(m) + } + labelStrings := make([]string, 0, numLabels) + for label, value := range m { + if label != MetricNameLabel { + labelStrings = append(labelStrings, fmt.Sprintf("%s=%q", label, value)) + } + } + + switch numLabels { + case 0: + if hasName { + return string(metricName) + } + return "{}" + default: + sort.Strings(labelStrings) + return fmt.Sprintf("%s{%s}", metricName, strings.Join(labelStrings, ", ")) + } +} + +// Fingerprint returns a Metric's Fingerprint. +func (m Metric) Fingerprint() Fingerprint { + return LabelSet(m).Fingerprint() +} + +// FastFingerprint returns a Metric's Fingerprint calculated by a faster hashing +// algorithm, which is, however, more susceptible to hash collisions. +func (m Metric) FastFingerprint() Fingerprint { + return LabelSet(m).FastFingerprint() +} + +// IsValidMetricName returns true iff name matches the pattern of MetricNameRE. +// This function, however, does not use MetricNameRE for the check but a much +// faster hardcoded implementation. +func IsValidMetricName(n LabelValue) bool { + if len(n) == 0 { + return false + } + for i, b := range n { + if !((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || b == ':' || (b >= '0' && b <= '9' && i > 0)) { + return false + } + } + return true +} diff --git a/vendor/github.com/prometheus/common/model/model.go b/vendor/github.com/prometheus/common/model/model.go new file mode 100644 index 0000000..a7b9691 --- /dev/null +++ b/vendor/github.com/prometheus/common/model/model.go @@ -0,0 +1,16 @@ +// Copyright 2013 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package model contains common data structures that are shared across +// Prometheus components and libraries. +package model diff --git a/vendor/github.com/prometheus/common/model/signature.go b/vendor/github.com/prometheus/common/model/signature.go new file mode 100644 index 0000000..8762b13 --- /dev/null +++ b/vendor/github.com/prometheus/common/model/signature.go @@ -0,0 +1,144 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +import ( + "sort" +) + +// SeparatorByte is a byte that cannot occur in valid UTF-8 sequences and is +// used to separate label names, label values, and other strings from each other +// when calculating their combined hash value (aka signature aka fingerprint). +const SeparatorByte byte = 255 + +var ( + // cache the signature of an empty label set. + emptyLabelSignature = hashNew() +) + +// LabelsToSignature returns a quasi-unique signature (i.e., fingerprint) for a +// given label set. (Collisions are possible but unlikely if the number of label +// sets the function is applied to is small.) +func LabelsToSignature(labels map[string]string) uint64 { + if len(labels) == 0 { + return emptyLabelSignature + } + + labelNames := make([]string, 0, len(labels)) + for labelName := range labels { + labelNames = append(labelNames, labelName) + } + sort.Strings(labelNames) + + sum := hashNew() + for _, labelName := range labelNames { + sum = hashAdd(sum, labelName) + sum = hashAddByte(sum, SeparatorByte) + sum = hashAdd(sum, labels[labelName]) + sum = hashAddByte(sum, SeparatorByte) + } + return sum +} + +// labelSetToFingerprint works exactly as LabelsToSignature but takes a LabelSet as +// parameter (rather than a label map) and returns a Fingerprint. +func labelSetToFingerprint(ls LabelSet) Fingerprint { + if len(ls) == 0 { + return Fingerprint(emptyLabelSignature) + } + + labelNames := make(LabelNames, 0, len(ls)) + for labelName := range ls { + labelNames = append(labelNames, labelName) + } + sort.Sort(labelNames) + + sum := hashNew() + for _, labelName := range labelNames { + sum = hashAdd(sum, string(labelName)) + sum = hashAddByte(sum, SeparatorByte) + sum = hashAdd(sum, string(ls[labelName])) + sum = hashAddByte(sum, SeparatorByte) + } + return Fingerprint(sum) +} + +// labelSetToFastFingerprint works similar to labelSetToFingerprint but uses a +// faster and less allocation-heavy hash function, which is more susceptible to +// create hash collisions. Therefore, collision detection should be applied. +func labelSetToFastFingerprint(ls LabelSet) Fingerprint { + if len(ls) == 0 { + return Fingerprint(emptyLabelSignature) + } + + var result uint64 + for labelName, labelValue := range ls { + sum := hashNew() + sum = hashAdd(sum, string(labelName)) + sum = hashAddByte(sum, SeparatorByte) + sum = hashAdd(sum, string(labelValue)) + result ^= sum + } + return Fingerprint(result) +} + +// SignatureForLabels works like LabelsToSignature but takes a Metric as +// parameter (rather than a label map) and only includes the labels with the +// specified LabelNames into the signature calculation. The labels passed in +// will be sorted by this function. +func SignatureForLabels(m Metric, labels ...LabelName) uint64 { + if len(labels) == 0 { + return emptyLabelSignature + } + + sort.Sort(LabelNames(labels)) + + sum := hashNew() + for _, label := range labels { + sum = hashAdd(sum, string(label)) + sum = hashAddByte(sum, SeparatorByte) + sum = hashAdd(sum, string(m[label])) + sum = hashAddByte(sum, SeparatorByte) + } + return sum +} + +// SignatureWithoutLabels works like LabelsToSignature but takes a Metric as +// parameter (rather than a label map) and excludes the labels with any of the +// specified LabelNames from the signature calculation. +func SignatureWithoutLabels(m Metric, labels map[LabelName]struct{}) uint64 { + if len(m) == 0 { + return emptyLabelSignature + } + + labelNames := make(LabelNames, 0, len(m)) + for labelName := range m { + if _, exclude := labels[labelName]; !exclude { + labelNames = append(labelNames, labelName) + } + } + if len(labelNames) == 0 { + return emptyLabelSignature + } + sort.Sort(labelNames) + + sum := hashNew() + for _, labelName := range labelNames { + sum = hashAdd(sum, string(labelName)) + sum = hashAddByte(sum, SeparatorByte) + sum = hashAdd(sum, string(m[labelName])) + sum = hashAddByte(sum, SeparatorByte) + } + return sum +} diff --git a/vendor/github.com/prometheus/common/model/silence.go b/vendor/github.com/prometheus/common/model/silence.go new file mode 100644 index 0000000..bb99889 --- /dev/null +++ b/vendor/github.com/prometheus/common/model/silence.go @@ -0,0 +1,106 @@ +// Copyright 2015 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +import ( + "encoding/json" + "fmt" + "regexp" + "time" +) + +// Matcher describes a matches the value of a given label. +type Matcher struct { + Name LabelName `json:"name"` + Value string `json:"value"` + IsRegex bool `json:"isRegex"` +} + +func (m *Matcher) UnmarshalJSON(b []byte) error { + type plain Matcher + if err := json.Unmarshal(b, (*plain)(m)); err != nil { + return err + } + + if len(m.Name) == 0 { + return fmt.Errorf("label name in matcher must not be empty") + } + if m.IsRegex { + if _, err := regexp.Compile(m.Value); err != nil { + return err + } + } + return nil +} + +// Validate returns true iff all fields of the matcher have valid values. +func (m *Matcher) Validate() error { + if !m.Name.IsValid() { + return fmt.Errorf("invalid name %q", m.Name) + } + if m.IsRegex { + if _, err := regexp.Compile(m.Value); err != nil { + return fmt.Errorf("invalid regular expression %q", m.Value) + } + } else if !LabelValue(m.Value).IsValid() || len(m.Value) == 0 { + return fmt.Errorf("invalid value %q", m.Value) + } + return nil +} + +// Silence defines the representation of a silence definition in the Prometheus +// eco-system. +type Silence struct { + ID uint64 `json:"id,omitempty"` + + Matchers []*Matcher `json:"matchers"` + + StartsAt time.Time `json:"startsAt"` + EndsAt time.Time `json:"endsAt"` + + CreatedAt time.Time `json:"createdAt,omitempty"` + CreatedBy string `json:"createdBy"` + Comment string `json:"comment,omitempty"` +} + +// Validate returns true iff all fields of the silence have valid values. +func (s *Silence) Validate() error { + if len(s.Matchers) == 0 { + return fmt.Errorf("at least one matcher required") + } + for _, m := range s.Matchers { + if err := m.Validate(); err != nil { + return fmt.Errorf("invalid matcher: %s", err) + } + } + if s.StartsAt.IsZero() { + return fmt.Errorf("start time missing") + } + if s.EndsAt.IsZero() { + return fmt.Errorf("end time missing") + } + if s.EndsAt.Before(s.StartsAt) { + return fmt.Errorf("start time must be before end time") + } + if s.CreatedBy == "" { + return fmt.Errorf("creator information missing") + } + if s.Comment == "" { + return fmt.Errorf("comment missing") + } + if s.CreatedAt.IsZero() { + return fmt.Errorf("creation timestamp missing") + } + return nil +} diff --git a/vendor/github.com/prometheus/common/model/time.go b/vendor/github.com/prometheus/common/model/time.go new file mode 100644 index 0000000..74ed5a9 --- /dev/null +++ b/vendor/github.com/prometheus/common/model/time.go @@ -0,0 +1,264 @@ +// Copyright 2013 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +import ( + "fmt" + "math" + "regexp" + "strconv" + "strings" + "time" +) + +const ( + // MinimumTick is the minimum supported time resolution. This has to be + // at least time.Second in order for the code below to work. + minimumTick = time.Millisecond + // second is the Time duration equivalent to one second. + second = int64(time.Second / minimumTick) + // The number of nanoseconds per minimum tick. + nanosPerTick = int64(minimumTick / time.Nanosecond) + + // Earliest is the earliest Time representable. Handy for + // initializing a high watermark. + Earliest = Time(math.MinInt64) + // Latest is the latest Time representable. Handy for initializing + // a low watermark. + Latest = Time(math.MaxInt64) +) + +// Time is the number of milliseconds since the epoch +// (1970-01-01 00:00 UTC) excluding leap seconds. +type Time int64 + +// Interval describes and interval between two timestamps. +type Interval struct { + Start, End Time +} + +// Now returns the current time as a Time. +func Now() Time { + return TimeFromUnixNano(time.Now().UnixNano()) +} + +// TimeFromUnix returns the Time equivalent to the Unix Time t +// provided in seconds. +func TimeFromUnix(t int64) Time { + return Time(t * second) +} + +// TimeFromUnixNano returns the Time equivalent to the Unix Time +// t provided in nanoseconds. +func TimeFromUnixNano(t int64) Time { + return Time(t / nanosPerTick) +} + +// Equal reports whether two Times represent the same instant. +func (t Time) Equal(o Time) bool { + return t == o +} + +// Before reports whether the Time t is before o. +func (t Time) Before(o Time) bool { + return t < o +} + +// After reports whether the Time t is after o. +func (t Time) After(o Time) bool { + return t > o +} + +// Add returns the Time t + d. +func (t Time) Add(d time.Duration) Time { + return t + Time(d/minimumTick) +} + +// Sub returns the Duration t - o. +func (t Time) Sub(o Time) time.Duration { + return time.Duration(t-o) * minimumTick +} + +// Time returns the time.Time representation of t. +func (t Time) Time() time.Time { + return time.Unix(int64(t)/second, (int64(t)%second)*nanosPerTick) +} + +// Unix returns t as a Unix time, the number of seconds elapsed +// since January 1, 1970 UTC. +func (t Time) Unix() int64 { + return int64(t) / second +} + +// UnixNano returns t as a Unix time, the number of nanoseconds elapsed +// since January 1, 1970 UTC. +func (t Time) UnixNano() int64 { + return int64(t) * nanosPerTick +} + +// The number of digits after the dot. +var dotPrecision = int(math.Log10(float64(second))) + +// String returns a string representation of the Time. +func (t Time) String() string { + return strconv.FormatFloat(float64(t)/float64(second), 'f', -1, 64) +} + +// MarshalJSON implements the json.Marshaler interface. +func (t Time) MarshalJSON() ([]byte, error) { + return []byte(t.String()), nil +} + +// UnmarshalJSON implements the json.Unmarshaler interface. +func (t *Time) UnmarshalJSON(b []byte) error { + p := strings.Split(string(b), ".") + switch len(p) { + case 1: + v, err := strconv.ParseInt(string(p[0]), 10, 64) + if err != nil { + return err + } + *t = Time(v * second) + + case 2: + v, err := strconv.ParseInt(string(p[0]), 10, 64) + if err != nil { + return err + } + v *= second + + prec := dotPrecision - len(p[1]) + if prec < 0 { + p[1] = p[1][:dotPrecision] + } else if prec > 0 { + p[1] = p[1] + strings.Repeat("0", prec) + } + + va, err := strconv.ParseInt(p[1], 10, 32) + if err != nil { + return err + } + + *t = Time(v + va) + + default: + return fmt.Errorf("invalid time %q", string(b)) + } + return nil +} + +// Duration wraps time.Duration. It is used to parse the custom duration format +// from YAML. +// This type should not propagate beyond the scope of input/output processing. +type Duration time.Duration + +// Set implements pflag/flag.Value +func (d *Duration) Set(s string) error { + var err error + *d, err = ParseDuration(s) + return err +} + +// Type implements pflag.Value +func (d *Duration) Type() string { + return "duration" +} + +var durationRE = regexp.MustCompile("^([0-9]+)(y|w|d|h|m|s|ms)$") + +// ParseDuration parses a string into a time.Duration, assuming that a year +// always has 365d, a week always has 7d, and a day always has 24h. +func ParseDuration(durationStr string) (Duration, error) { + matches := durationRE.FindStringSubmatch(durationStr) + if len(matches) != 3 { + return 0, fmt.Errorf("not a valid duration string: %q", durationStr) + } + var ( + n, _ = strconv.Atoi(matches[1]) + dur = time.Duration(n) * time.Millisecond + ) + switch unit := matches[2]; unit { + case "y": + dur *= 1000 * 60 * 60 * 24 * 365 + case "w": + dur *= 1000 * 60 * 60 * 24 * 7 + case "d": + dur *= 1000 * 60 * 60 * 24 + case "h": + dur *= 1000 * 60 * 60 + case "m": + dur *= 1000 * 60 + case "s": + dur *= 1000 + case "ms": + // Value already correct + default: + return 0, fmt.Errorf("invalid time unit in duration string: %q", unit) + } + return Duration(dur), nil +} + +func (d Duration) String() string { + var ( + ms = int64(time.Duration(d) / time.Millisecond) + unit = "ms" + ) + if ms == 0 { + return "0s" + } + factors := map[string]int64{ + "y": 1000 * 60 * 60 * 24 * 365, + "w": 1000 * 60 * 60 * 24 * 7, + "d": 1000 * 60 * 60 * 24, + "h": 1000 * 60 * 60, + "m": 1000 * 60, + "s": 1000, + "ms": 1, + } + + switch int64(0) { + case ms % factors["y"]: + unit = "y" + case ms % factors["w"]: + unit = "w" + case ms % factors["d"]: + unit = "d" + case ms % factors["h"]: + unit = "h" + case ms % factors["m"]: + unit = "m" + case ms % factors["s"]: + unit = "s" + } + return fmt.Sprintf("%v%v", ms/factors[unit], unit) +} + +// MarshalYAML implements the yaml.Marshaler interface. +func (d Duration) MarshalYAML() (interface{}, error) { + return d.String(), nil +} + +// UnmarshalYAML implements the yaml.Unmarshaler interface. +func (d *Duration) UnmarshalYAML(unmarshal func(interface{}) error) error { + var s string + if err := unmarshal(&s); err != nil { + return err + } + dur, err := ParseDuration(s) + if err != nil { + return err + } + *d = dur + return nil +} diff --git a/vendor/github.com/prometheus/common/model/value.go b/vendor/github.com/prometheus/common/model/value.go new file mode 100644 index 0000000..c9d8fb1 --- /dev/null +++ b/vendor/github.com/prometheus/common/model/value.go @@ -0,0 +1,416 @@ +// Copyright 2013 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +import ( + "encoding/json" + "fmt" + "math" + "sort" + "strconv" + "strings" +) + +var ( + // ZeroSamplePair is the pseudo zero-value of SamplePair used to signal a + // non-existing sample pair. It is a SamplePair with timestamp Earliest and + // value 0.0. Note that the natural zero value of SamplePair has a timestamp + // of 0, which is possible to appear in a real SamplePair and thus not + // suitable to signal a non-existing SamplePair. + ZeroSamplePair = SamplePair{Timestamp: Earliest} + + // ZeroSample is the pseudo zero-value of Sample used to signal a + // non-existing sample. It is a Sample with timestamp Earliest, value 0.0, + // and metric nil. Note that the natural zero value of Sample has a timestamp + // of 0, which is possible to appear in a real Sample and thus not suitable + // to signal a non-existing Sample. + ZeroSample = Sample{Timestamp: Earliest} +) + +// A SampleValue is a representation of a value for a given sample at a given +// time. +type SampleValue float64 + +// MarshalJSON implements json.Marshaler. +func (v SampleValue) MarshalJSON() ([]byte, error) { + return json.Marshal(v.String()) +} + +// UnmarshalJSON implements json.Unmarshaler. +func (v *SampleValue) UnmarshalJSON(b []byte) error { + if len(b) < 2 || b[0] != '"' || b[len(b)-1] != '"' { + return fmt.Errorf("sample value must be a quoted string") + } + f, err := strconv.ParseFloat(string(b[1:len(b)-1]), 64) + if err != nil { + return err + } + *v = SampleValue(f) + return nil +} + +// Equal returns true if the value of v and o is equal or if both are NaN. Note +// that v==o is false if both are NaN. If you want the conventional float +// behavior, use == to compare two SampleValues. +func (v SampleValue) Equal(o SampleValue) bool { + if v == o { + return true + } + return math.IsNaN(float64(v)) && math.IsNaN(float64(o)) +} + +func (v SampleValue) String() string { + return strconv.FormatFloat(float64(v), 'f', -1, 64) +} + +// SamplePair pairs a SampleValue with a Timestamp. +type SamplePair struct { + Timestamp Time + Value SampleValue +} + +// MarshalJSON implements json.Marshaler. +func (s SamplePair) MarshalJSON() ([]byte, error) { + t, err := json.Marshal(s.Timestamp) + if err != nil { + return nil, err + } + v, err := json.Marshal(s.Value) + if err != nil { + return nil, err + } + return []byte(fmt.Sprintf("[%s,%s]", t, v)), nil +} + +// UnmarshalJSON implements json.Unmarshaler. +func (s *SamplePair) UnmarshalJSON(b []byte) error { + v := [...]json.Unmarshaler{&s.Timestamp, &s.Value} + return json.Unmarshal(b, &v) +} + +// Equal returns true if this SamplePair and o have equal Values and equal +// Timestamps. The semantics of Value equality is defined by SampleValue.Equal. +func (s *SamplePair) Equal(o *SamplePair) bool { + return s == o || (s.Value.Equal(o.Value) && s.Timestamp.Equal(o.Timestamp)) +} + +func (s SamplePair) String() string { + return fmt.Sprintf("%s @[%s]", s.Value, s.Timestamp) +} + +// Sample is a sample pair associated with a metric. +type Sample struct { + Metric Metric `json:"metric"` + Value SampleValue `json:"value"` + Timestamp Time `json:"timestamp"` +} + +// Equal compares first the metrics, then the timestamp, then the value. The +// semantics of value equality is defined by SampleValue.Equal. +func (s *Sample) Equal(o *Sample) bool { + if s == o { + return true + } + + if !s.Metric.Equal(o.Metric) { + return false + } + if !s.Timestamp.Equal(o.Timestamp) { + return false + } + + return s.Value.Equal(o.Value) +} + +func (s Sample) String() string { + return fmt.Sprintf("%s => %s", s.Metric, SamplePair{ + Timestamp: s.Timestamp, + Value: s.Value, + }) +} + +// MarshalJSON implements json.Marshaler. +func (s Sample) MarshalJSON() ([]byte, error) { + v := struct { + Metric Metric `json:"metric"` + Value SamplePair `json:"value"` + }{ + Metric: s.Metric, + Value: SamplePair{ + Timestamp: s.Timestamp, + Value: s.Value, + }, + } + + return json.Marshal(&v) +} + +// UnmarshalJSON implements json.Unmarshaler. +func (s *Sample) UnmarshalJSON(b []byte) error { + v := struct { + Metric Metric `json:"metric"` + Value SamplePair `json:"value"` + }{ + Metric: s.Metric, + Value: SamplePair{ + Timestamp: s.Timestamp, + Value: s.Value, + }, + } + + if err := json.Unmarshal(b, &v); err != nil { + return err + } + + s.Metric = v.Metric + s.Timestamp = v.Value.Timestamp + s.Value = v.Value.Value + + return nil +} + +// Samples is a sortable Sample slice. It implements sort.Interface. +type Samples []*Sample + +func (s Samples) Len() int { + return len(s) +} + +// Less compares first the metrics, then the timestamp. +func (s Samples) Less(i, j int) bool { + switch { + case s[i].Metric.Before(s[j].Metric): + return true + case s[j].Metric.Before(s[i].Metric): + return false + case s[i].Timestamp.Before(s[j].Timestamp): + return true + default: + return false + } +} + +func (s Samples) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +// Equal compares two sets of samples and returns true if they are equal. +func (s Samples) Equal(o Samples) bool { + if len(s) != len(o) { + return false + } + + for i, sample := range s { + if !sample.Equal(o[i]) { + return false + } + } + return true +} + +// SampleStream is a stream of Values belonging to an attached COWMetric. +type SampleStream struct { + Metric Metric `json:"metric"` + Values []SamplePair `json:"values"` +} + +func (ss SampleStream) String() string { + vals := make([]string, len(ss.Values)) + for i, v := range ss.Values { + vals[i] = v.String() + } + return fmt.Sprintf("%s =>\n%s", ss.Metric, strings.Join(vals, "\n")) +} + +// Value is a generic interface for values resulting from a query evaluation. +type Value interface { + Type() ValueType + String() string +} + +func (Matrix) Type() ValueType { return ValMatrix } +func (Vector) Type() ValueType { return ValVector } +func (*Scalar) Type() ValueType { return ValScalar } +func (*String) Type() ValueType { return ValString } + +type ValueType int + +const ( + ValNone ValueType = iota + ValScalar + ValVector + ValMatrix + ValString +) + +// MarshalJSON implements json.Marshaler. +func (et ValueType) MarshalJSON() ([]byte, error) { + return json.Marshal(et.String()) +} + +func (et *ValueType) UnmarshalJSON(b []byte) error { + var s string + if err := json.Unmarshal(b, &s); err != nil { + return err + } + switch s { + case "": + *et = ValNone + case "scalar": + *et = ValScalar + case "vector": + *et = ValVector + case "matrix": + *et = ValMatrix + case "string": + *et = ValString + default: + return fmt.Errorf("unknown value type %q", s) + } + return nil +} + +func (e ValueType) String() string { + switch e { + case ValNone: + return "" + case ValScalar: + return "scalar" + case ValVector: + return "vector" + case ValMatrix: + return "matrix" + case ValString: + return "string" + } + panic("ValueType.String: unhandled value type") +} + +// Scalar is a scalar value evaluated at the set timestamp. +type Scalar struct { + Value SampleValue `json:"value"` + Timestamp Time `json:"timestamp"` +} + +func (s Scalar) String() string { + return fmt.Sprintf("scalar: %v @[%v]", s.Value, s.Timestamp) +} + +// MarshalJSON implements json.Marshaler. +func (s Scalar) MarshalJSON() ([]byte, error) { + v := strconv.FormatFloat(float64(s.Value), 'f', -1, 64) + return json.Marshal([...]interface{}{s.Timestamp, string(v)}) +} + +// UnmarshalJSON implements json.Unmarshaler. +func (s *Scalar) UnmarshalJSON(b []byte) error { + var f string + v := [...]interface{}{&s.Timestamp, &f} + + if err := json.Unmarshal(b, &v); err != nil { + return err + } + + value, err := strconv.ParseFloat(f, 64) + if err != nil { + return fmt.Errorf("error parsing sample value: %s", err) + } + s.Value = SampleValue(value) + return nil +} + +// String is a string value evaluated at the set timestamp. +type String struct { + Value string `json:"value"` + Timestamp Time `json:"timestamp"` +} + +func (s *String) String() string { + return s.Value +} + +// MarshalJSON implements json.Marshaler. +func (s String) MarshalJSON() ([]byte, error) { + return json.Marshal([]interface{}{s.Timestamp, s.Value}) +} + +// UnmarshalJSON implements json.Unmarshaler. +func (s *String) UnmarshalJSON(b []byte) error { + v := [...]interface{}{&s.Timestamp, &s.Value} + return json.Unmarshal(b, &v) +} + +// Vector is basically only an alias for Samples, but the +// contract is that in a Vector, all Samples have the same timestamp. +type Vector []*Sample + +func (vec Vector) String() string { + entries := make([]string, len(vec)) + for i, s := range vec { + entries[i] = s.String() + } + return strings.Join(entries, "\n") +} + +func (vec Vector) Len() int { return len(vec) } +func (vec Vector) Swap(i, j int) { vec[i], vec[j] = vec[j], vec[i] } + +// Less compares first the metrics, then the timestamp. +func (vec Vector) Less(i, j int) bool { + switch { + case vec[i].Metric.Before(vec[j].Metric): + return true + case vec[j].Metric.Before(vec[i].Metric): + return false + case vec[i].Timestamp.Before(vec[j].Timestamp): + return true + default: + return false + } +} + +// Equal compares two sets of samples and returns true if they are equal. +func (vec Vector) Equal(o Vector) bool { + if len(vec) != len(o) { + return false + } + + for i, sample := range vec { + if !sample.Equal(o[i]) { + return false + } + } + return true +} + +// Matrix is a list of time series. +type Matrix []*SampleStream + +func (m Matrix) Len() int { return len(m) } +func (m Matrix) Less(i, j int) bool { return m[i].Metric.Before(m[j].Metric) } +func (m Matrix) Swap(i, j int) { m[i], m[j] = m[j], m[i] } + +func (mat Matrix) String() string { + matCp := make(Matrix, len(mat)) + copy(matCp, mat) + sort.Sort(matCp) + + strs := make([]string, len(matCp)) + + for i, ss := range matCp { + strs[i] = ss.String() + } + + return strings.Join(strs, "\n") +} diff --git a/vendor/github.com/prometheus/procfs/.gitignore b/vendor/github.com/prometheus/procfs/.gitignore new file mode 100644 index 0000000..25e3659 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/.gitignore @@ -0,0 +1 @@ +/fixtures/ diff --git a/vendor/github.com/prometheus/procfs/.travis.yml b/vendor/github.com/prometheus/procfs/.travis.yml new file mode 100644 index 0000000..5416cf8 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/.travis.yml @@ -0,0 +1,15 @@ +sudo: false + +language: go + +go: +- 1.7.x +- 1.8.x +- 1.9.x +- 1.10.x +- 1.x + +go_import_path: github.com/prometheus/procfs + +script: +- make style check_license vet test staticcheck diff --git a/vendor/github.com/prometheus/procfs/CONTRIBUTING.md b/vendor/github.com/prometheus/procfs/CONTRIBUTING.md new file mode 100644 index 0000000..40503ed --- /dev/null +++ b/vendor/github.com/prometheus/procfs/CONTRIBUTING.md @@ -0,0 +1,18 @@ +# Contributing + +Prometheus uses GitHub to manage reviews of pull requests. + +* If you have a trivial fix or improvement, go ahead and create a pull request, + addressing (with `@...`) the maintainer of this repository (see + [MAINTAINERS.md](MAINTAINERS.md)) in the description of the pull request. + +* If you plan to do something more involved, first discuss your ideas + on our [mailing list](https://groups.google.com/forum/?fromgroups#!forum/prometheus-developers). + This will avoid unnecessary work and surely give you and us a good deal + of inspiration. + +* Relevant coding style guidelines are the [Go Code Review + Comments](https://code.google.com/p/go-wiki/wiki/CodeReviewComments) + and the _Formatting and style_ section of Peter Bourgon's [Go: Best + Practices for Production + Environments](http://peter.bourgon.org/go-in-production/#formatting-and-style). diff --git a/vendor/github.com/prometheus/procfs/LICENSE b/vendor/github.com/prometheus/procfs/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/prometheus/procfs/MAINTAINERS.md b/vendor/github.com/prometheus/procfs/MAINTAINERS.md new file mode 100644 index 0000000..35993c4 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/MAINTAINERS.md @@ -0,0 +1 @@ +* Tobias Schmidt diff --git a/vendor/github.com/prometheus/procfs/Makefile b/vendor/github.com/prometheus/procfs/Makefile new file mode 100644 index 0000000..5c8f726 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/Makefile @@ -0,0 +1,71 @@ +# Copyright 2018 The Prometheus Authors +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Ensure GOBIN is not set during build so that promu is installed to the correct path +unexport GOBIN + +GO ?= go +GOFMT ?= $(GO)fmt +FIRST_GOPATH := $(firstword $(subst :, ,$(shell $(GO) env GOPATH))) +STATICCHECK := $(FIRST_GOPATH)/bin/staticcheck +pkgs = $(shell $(GO) list ./... | grep -v /vendor/) + +PREFIX ?= $(shell pwd) +BIN_DIR ?= $(shell pwd) + +ifdef DEBUG + bindata_flags = -debug +endif + +STATICCHECK_IGNORE = + +all: format staticcheck build test + +style: + @echo ">> checking code style" + @! $(GOFMT) -d $(shell find . -path ./vendor -prune -o -name '*.go' -print) | grep '^' + +check_license: + @echo ">> checking license header" + @./scripts/check_license.sh + +test: fixtures/.unpacked sysfs/fixtures/.unpacked + @echo ">> running all tests" + @$(GO) test -race $(shell $(GO) list ./... | grep -v /vendor/ | grep -v examples) + +format: + @echo ">> formatting code" + @$(GO) fmt $(pkgs) + +vet: + @echo ">> vetting code" + @$(GO) vet $(pkgs) + +staticcheck: $(STATICCHECK) + @echo ">> running staticcheck" + @$(STATICCHECK) -ignore "$(STATICCHECK_IGNORE)" $(pkgs) + +%/.unpacked: %.ttar + ./ttar -C $(dir $*) -x -f $*.ttar + touch $@ + +$(FIRST_GOPATH)/bin/staticcheck: + @GOOS= GOARCH= $(GO) get -u honnef.co/go/tools/cmd/staticcheck + +.PHONY: all style check_license format test vet staticcheck + +# Declaring the binaries at their default locations as PHONY targets is a hack +# to ensure the latest version is downloaded on every make execution. +# If this is not desired, copy/symlink these binaries to a different path and +# set the respective environment variables. +.PHONY: $(GOPATH)/bin/staticcheck diff --git a/vendor/github.com/prometheus/procfs/NOTICE b/vendor/github.com/prometheus/procfs/NOTICE new file mode 100644 index 0000000..53c5e9a --- /dev/null +++ b/vendor/github.com/prometheus/procfs/NOTICE @@ -0,0 +1,7 @@ +procfs provides functions to retrieve system, kernel and process +metrics from the pseudo-filesystem proc. + +Copyright 2014-2015 The Prometheus Authors + +This product includes software developed at +SoundCloud Ltd. (http://soundcloud.com/). diff --git a/vendor/github.com/prometheus/procfs/README.md b/vendor/github.com/prometheus/procfs/README.md new file mode 100644 index 0000000..2095494 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/README.md @@ -0,0 +1,11 @@ +# procfs + +This procfs package provides functions to retrieve system, kernel and process +metrics from the pseudo-filesystem proc. + +*WARNING*: This package is a work in progress. Its API may still break in +backwards-incompatible ways without warnings. Use it at your own risk. + +[![GoDoc](https://godoc.org/github.com/prometheus/procfs?status.png)](https://godoc.org/github.com/prometheus/procfs) +[![Build Status](https://travis-ci.org/prometheus/procfs.svg?branch=master)](https://travis-ci.org/prometheus/procfs) +[![Go Report Card](https://goreportcard.com/badge/github.com/prometheus/procfs)](https://goreportcard.com/report/github.com/prometheus/procfs) diff --git a/vendor/github.com/prometheus/procfs/buddyinfo.go b/vendor/github.com/prometheus/procfs/buddyinfo.go new file mode 100644 index 0000000..d3a8268 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/buddyinfo.go @@ -0,0 +1,95 @@ +// Copyright 2017 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "bufio" + "fmt" + "io" + "os" + "strconv" + "strings" +) + +// A BuddyInfo is the details parsed from /proc/buddyinfo. +// The data is comprised of an array of free fragments of each size. +// The sizes are 2^n*PAGE_SIZE, where n is the array index. +type BuddyInfo struct { + Node string + Zone string + Sizes []float64 +} + +// NewBuddyInfo reads the buddyinfo statistics. +func NewBuddyInfo() ([]BuddyInfo, error) { + fs, err := NewFS(DefaultMountPoint) + if err != nil { + return nil, err + } + + return fs.NewBuddyInfo() +} + +// NewBuddyInfo reads the buddyinfo statistics from the specified `proc` filesystem. +func (fs FS) NewBuddyInfo() ([]BuddyInfo, error) { + file, err := os.Open(fs.Path("buddyinfo")) + if err != nil { + return nil, err + } + defer file.Close() + + return parseBuddyInfo(file) +} + +func parseBuddyInfo(r io.Reader) ([]BuddyInfo, error) { + var ( + buddyInfo = []BuddyInfo{} + scanner = bufio.NewScanner(r) + bucketCount = -1 + ) + + for scanner.Scan() { + var err error + line := scanner.Text() + parts := strings.Fields(line) + + if len(parts) < 4 { + return nil, fmt.Errorf("invalid number of fields when parsing buddyinfo") + } + + node := strings.TrimRight(parts[1], ",") + zone := strings.TrimRight(parts[3], ",") + arraySize := len(parts[4:]) + + if bucketCount == -1 { + bucketCount = arraySize + } else { + if bucketCount != arraySize { + return nil, fmt.Errorf("mismatch in number of buddyinfo buckets, previous count %d, new count %d", bucketCount, arraySize) + } + } + + sizes := make([]float64, arraySize) + for i := 0; i < arraySize; i++ { + sizes[i], err = strconv.ParseFloat(parts[i+4], 64) + if err != nil { + return nil, fmt.Errorf("invalid value in buddyinfo: %s", err) + } + } + + buddyInfo = append(buddyInfo, BuddyInfo{node, zone, sizes}) + } + + return buddyInfo, scanner.Err() +} diff --git a/vendor/github.com/prometheus/procfs/doc.go b/vendor/github.com/prometheus/procfs/doc.go new file mode 100644 index 0000000..e2acd6d --- /dev/null +++ b/vendor/github.com/prometheus/procfs/doc.go @@ -0,0 +1,45 @@ +// Copyright 2014 Prometheus Team +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package procfs provides functions to retrieve system, kernel and process +// metrics from the pseudo-filesystem proc. +// +// Example: +// +// package main +// +// import ( +// "fmt" +// "log" +// +// "github.com/prometheus/procfs" +// ) +// +// func main() { +// p, err := procfs.Self() +// if err != nil { +// log.Fatalf("could not get process: %s", err) +// } +// +// stat, err := p.NewStat() +// if err != nil { +// log.Fatalf("could not get process stat: %s", err) +// } +// +// fmt.Printf("command: %s\n", stat.Comm) +// fmt.Printf("cpu time: %fs\n", stat.CPUTime()) +// fmt.Printf("vsize: %dB\n", stat.VirtualMemory()) +// fmt.Printf("rss: %dB\n", stat.ResidentMemory()) +// } +// +package procfs diff --git a/vendor/github.com/prometheus/procfs/fixtures.ttar b/vendor/github.com/prometheus/procfs/fixtures.ttar new file mode 100644 index 0000000..3ee8291 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/fixtures.ttar @@ -0,0 +1,446 @@ +# Archive created by ttar -c -f fixtures.ttar fixtures/ +Directory: fixtures +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/26231 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/cmdline +Lines: 1 +vimNULLBYTEtest.goNULLBYTE+10NULLBYTEEOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/comm +Lines: 1 +vim +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/exe +SymlinkTo: /usr/bin/vim +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/26231/fd +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/fd/0 +SymlinkTo: ../../symlinktargets/abc +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/fd/1 +SymlinkTo: ../../symlinktargets/def +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/fd/10 +SymlinkTo: ../../symlinktargets/xyz +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/fd/2 +SymlinkTo: ../../symlinktargets/ghi +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/fd/3 +SymlinkTo: ../../symlinktargets/uvw +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/io +Lines: 7 +rchar: 750339 +wchar: 818609 +syscr: 7405 +syscw: 5245 +read_bytes: 1024 +write_bytes: 2048 +cancelled_write_bytes: -1024 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/limits +Lines: 17 +Limit Soft Limit Hard Limit Units +Max cpu time unlimited unlimited seconds +Max file size unlimited unlimited bytes +Max data size unlimited unlimited bytes +Max stack size 8388608 unlimited bytes +Max core file size 0 unlimited bytes +Max resident set unlimited unlimited bytes +Max processes 62898 62898 processes +Max open files 2048 4096 files +Max locked memory 65536 65536 bytes +Max address space 8589934592 unlimited bytes +Max file locks unlimited unlimited locks +Max pending signals 62898 62898 signals +Max msgqueue size 819200 819200 bytes +Max nice priority 0 0 +Max realtime priority 0 0 +Max realtime timeout unlimited unlimited us +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/mountstats +Lines: 19 +device rootfs mounted on / with fstype rootfs +device sysfs mounted on /sys with fstype sysfs +device proc mounted on /proc with fstype proc +device /dev/sda1 mounted on / with fstype ext4 +device 192.168.1.1:/srv/test mounted on /mnt/nfs/test with fstype nfs4 statvers=1.1 + opts: rw,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,acregmin=3,acregmax=60,acdirmin=30,acdirmax=60,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.5,local_lock=none + age: 13968 + caps: caps=0xfff7,wtmult=512,dtsize=32768,bsize=0,namlen=255 + nfsv4: bm0=0xfdffafff,bm1=0xf9be3e,bm2=0x0,acl=0x0,pnfs=not configured + sec: flavor=1,pseudoflavor=1 + events: 52 226 0 0 1 13 398 0 0 331 0 47 0 0 77 0 0 77 0 0 0 0 0 0 0 0 0 + bytes: 1207640230 0 0 0 1210214218 0 295483 0 + RPC iostats version: 1.0 p/v: 100003/4 (nfs) + xprt: tcp 832 0 1 0 11 6428 6428 0 12154 0 24 26 5726 + per-op statistics + NULL: 0 0 0 0 0 0 0 0 + READ: 1298 1298 0 207680 1210292152 6 79386 79407 + WRITE: 0 0 0 0 0 0 0 0 + +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/26231/net +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/net/dev +Lines: 4 +Inter-| Receive | Transmit + face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed + lo: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + eth0: 438 5 0 0 0 0 0 0 648 8 0 0 0 0 0 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/26231/ns +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/ns/mnt +SymlinkTo: mnt:[4026531840] +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/ns/net +SymlinkTo: net:[4026531993] +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26231/stat +Lines: 1 +26231 (vim) R 5392 7446 5392 34835 7446 4218880 32533 309516 26 82 1677 44 158 99 20 0 1 0 82375 56274944 1981 18446744073709551615 4194304 6294284 140736914091744 140736914087944 139965136429984 0 0 12288 1870679807 0 0 0 17 0 0 0 31 0 0 8391624 8481048 16420864 140736914093252 140736914093279 140736914093279 140736914096107 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/26232 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26232/cmdline +Lines: 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26232/comm +Lines: 1 +ata_sff +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/26232/fd +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26232/fd/0 +SymlinkTo: ../../symlinktargets/abc +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26232/fd/1 +SymlinkTo: ../../symlinktargets/def +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26232/fd/2 +SymlinkTo: ../../symlinktargets/ghi +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26232/fd/3 +SymlinkTo: ../../symlinktargets/uvw +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26232/fd/4 +SymlinkTo: ../../symlinktargets/xyz +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26232/limits +Lines: 17 +Limit Soft Limit Hard Limit Units +Max cpu time unlimited unlimited seconds +Max file size unlimited unlimited bytes +Max data size unlimited unlimited bytes +Max stack size 8388608 unlimited bytes +Max core file size 0 unlimited bytes +Max resident set unlimited unlimited bytes +Max processes 29436 29436 processes +Max open files 1024 4096 files +Max locked memory 65536 65536 bytes +Max address space unlimited unlimited bytes +Max file locks unlimited unlimited locks +Max pending signals 29436 29436 signals +Max msgqueue size 819200 819200 bytes +Max nice priority 0 0 +Max realtime priority 0 0 +Max realtime timeout unlimited unlimited us +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26232/stat +Lines: 1 +33 (ata_sff) S 2 0 0 0 -1 69238880 0 0 0 0 0 0 0 0 0 -20 1 0 5 0 0 18446744073709551615 0 0 0 0 0 0 0 2147483647 0 18446744073709551615 0 0 17 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/26233 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/26233/cmdline +Lines: 1 +com.github.uiautomatorNULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTENULLBYTEEOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/584 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/584/stat +Lines: 2 +1020 ((a b ) ( c d) ) R 28378 1020 28378 34842 1020 4218880 286 0 0 0 0 0 0 0 20 0 1 0 10839175 10395648 155 18446744073709551615 4194304 4238788 140736466511168 140736466511168 140609271124624 0 0 0 0 0 0 0 17 5 0 0 0 0 0 6336016 6337300 25579520 140736466515030 140736466515061 140736466515061 140736466518002 0 +#!/bin/cat /proc/self/stat +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/buddyinfo +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/buddyinfo/short +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/buddyinfo/short/buddyinfo +Lines: 3 +Node 0, zone +Node 0, zone +Node 0, zone +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/buddyinfo/sizemismatch +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/buddyinfo/sizemismatch/buddyinfo +Lines: 3 +Node 0, zone DMA 1 0 1 0 2 1 1 0 1 1 3 +Node 0, zone DMA32 759 572 791 475 194 45 12 0 0 0 0 0 +Node 0, zone Normal 4381 1093 185 1530 567 102 4 0 0 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/buddyinfo/valid +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/buddyinfo/valid/buddyinfo +Lines: 3 +Node 0, zone DMA 1 0 1 0 2 1 1 0 1 1 3 +Node 0, zone DMA32 759 572 791 475 194 45 12 0 0 0 0 +Node 0, zone Normal 4381 1093 185 1530 567 102 4 0 0 0 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/fs +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/fs/xfs +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/fs/xfs/stat +Lines: 23 +extent_alloc 92447 97589 92448 93751 +abt 0 0 0 0 +blk_map 1767055 188820 184891 92447 92448 2140766 0 +bmbt 0 0 0 0 +dir 185039 92447 92444 136422 +trans 706 944304 0 +ig 185045 58807 0 126238 0 33637 22 +log 2883 113448 9 17360 739 +push_ail 945014 0 134260 15483 0 3940 464 159985 0 40 +xstrat 92447 0 +rw 107739 94045 +attr 4 0 0 0 +icluster 8677 7849 135802 +vnodes 92601 0 0 0 92444 92444 92444 0 +buf 2666287 7122 2659202 3599 2 7085 0 10297 7085 +abtb2 184941 1277345 13257 13278 0 0 0 0 0 0 0 0 0 0 2746147 +abtc2 345295 2416764 172637 172658 0 0 0 0 0 0 0 0 0 0 21406023 +bmbt2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +ibt2 343004 1358467 0 0 0 0 0 0 0 0 0 0 0 0 0 +fibt2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +qm 0 0 0 0 0 0 0 0 +xpc 399724544 92823103 86219234 +debug 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/mdstat +Lines: 26 +Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] +md3 : active raid6 sda1[8] sdh1[7] sdg1[6] sdf1[5] sde1[11] sdd1[3] sdc1[10] sdb1[9] + 5853468288 blocks super 1.2 level 6, 64k chunk, algorithm 2 [8/8] [UUUUUUUU] + +md127 : active raid1 sdi2[0] sdj2[1] + 312319552 blocks [2/2] [UU] + +md0 : active raid1 sdk[2](S) sdi1[0] sdj1[1] + 248896 blocks [2/2] [UU] + +md4 : inactive raid1 sda3[0] sdb3[1] + 4883648 blocks [2/2] [UU] + +md6 : active raid1 sdb2[2] sda2[0] + 195310144 blocks [2/1] [U_] + [=>...................] recovery = 8.5% (16775552/195310144) finish=17.0min speed=259783K/sec + +md8 : active raid1 sdb1[1] sda1[0] + 195310144 blocks [2/2] [UU] + [=>...................] resync = 8.5% (16775552/195310144) finish=17.0min speed=259783K/sec + +md7 : active raid6 sdb1[0] sde1[3] sdd1[2] sdc1[1] + 7813735424 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/3] [U_UU] + bitmap: 0/30 pages [0KB], 65536KB chunk + +unused devices: +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/net +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/net/dev +Lines: 6 +Inter-| Receive | Transmit + face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed +vethf345468: 648 8 0 0 0 0 0 0 438 5 0 0 0 0 0 0 + lo: 1664039048 1566805 0 0 0 0 0 0 1664039048 1566805 0 0 0 0 0 0 +docker0: 2568 38 0 0 0 0 0 0 438 5 0 0 0 0 0 0 + eth0: 874354587 1036395 0 0 0 0 0 0 563352563 732147 0 0 0 0 0 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/net/ip_vs +Lines: 21 +IP Virtual Server version 1.2.1 (size=4096) +Prot LocalAddress:Port Scheduler Flags + -> RemoteAddress:Port Forward Weight ActiveConn InActConn +TCP C0A80016:0CEA wlc + -> C0A85216:0CEA Tunnel 100 248 2 + -> C0A85318:0CEA Tunnel 100 248 2 + -> C0A85315:0CEA Tunnel 100 248 1 +TCP C0A80039:0CEA wlc + -> C0A85416:0CEA Tunnel 0 0 0 + -> C0A85215:0CEA Tunnel 100 1499 0 + -> C0A83215:0CEA Tunnel 100 1498 0 +TCP C0A80037:0CEA wlc + -> C0A8321A:0CEA Tunnel 0 0 0 + -> C0A83120:0CEA Tunnel 100 0 0 +TCP [2620:0000:0000:0000:0000:0000:0000:0001]:0050 sh + -> [2620:0000:0000:0000:0000:0000:0000:0002]:0050 Route 1 0 0 + -> [2620:0000:0000:0000:0000:0000:0000:0003]:0050 Route 1 0 0 + -> [2620:0000:0000:0000:0000:0000:0000:0004]:0050 Route 1 1 1 +FWM 10001000 wlc + -> C0A8321A:0CEA Route 0 0 1 + -> C0A83215:0CEA Route 0 0 2 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/net/ip_vs_stats +Lines: 6 + Total Incoming Outgoing Incoming Outgoing + Conns Packets Packets Bytes Bytes + 16AA370 E33656E5 0 51D8C8883AB3 0 + + Conns/s Pkts/s Pkts/s Bytes/s Bytes/s + 4 1FB3C 0 1282A8F 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/net/rpc +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/net/rpc/nfs +Lines: 5 +net 18628 0 18628 6 +rpc 4329785 0 4338291 +proc2 18 2 69 0 0 4410 0 0 0 0 0 0 0 0 0 0 0 99 2 +proc3 22 1 4084749 29200 94754 32580 186 47747 7981 8639 0 6356 0 6962 0 7958 0 0 241 4 4 2 39 +proc4 61 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/net/rpc/nfsd +Lines: 11 +rc 0 6 18622 +fh 0 0 0 0 0 +io 157286400 0 +th 8 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 +ra 32 0 0 0 0 0 0 0 0 0 0 0 +net 18628 0 18628 6 +rpc 18628 0 0 0 0 +proc2 18 2 69 0 0 4410 0 0 0 0 0 0 0 0 0 0 0 99 2 +proc3 22 2 112 0 2719 111 0 0 0 0 0 0 0 0 0 0 0 27 216 0 2 1 0 +proc4 2 2 10853 +proc4ops 72 0 0 0 1098 2 0 0 0 0 8179 5896 0 0 0 0 5900 0 0 2 0 2 0 9609 0 2 150 1272 0 0 0 1236 0 0 0 0 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/net/xfrm_stat +Lines: 28 +XfrmInError 1 +XfrmInBufferError 2 +XfrmInHdrError 4 +XfrmInNoStates 3 +XfrmInStateProtoError 40 +XfrmInStateModeError 100 +XfrmInStateSeqError 6000 +XfrmInStateExpired 4 +XfrmInStateMismatch 23451 +XfrmInStateInvalid 55555 +XfrmInTmplMismatch 51 +XfrmInNoPols 65432 +XfrmInPolBlock 100 +XfrmInPolError 10000 +XfrmOutError 1000000 +XfrmOutBundleGenError 43321 +XfrmOutBundleCheckError 555 +XfrmOutNoStates 869 +XfrmOutStateProtoError 4542 +XfrmOutStateModeError 4 +XfrmOutStateSeqError 543 +XfrmOutStateExpired 565 +XfrmOutPolBlock 43456 +XfrmOutPolDead 7656 +XfrmOutPolError 1454 +XfrmFwdHdrError 6654 +XfrmOutStateInvalid 28765 +XfrmAcquireError 24532 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/self +SymlinkTo: 26231 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/stat +Lines: 16 +cpu 301854 612 111922 8979004 3552 2 3944 0 0 0 +cpu0 44490 19 21045 1087069 220 1 3410 0 0 0 +cpu1 47869 23 16474 1110787 591 0 46 0 0 0 +cpu2 46504 36 15916 1112321 441 0 326 0 0 0 +cpu3 47054 102 15683 1113230 533 0 60 0 0 0 +cpu4 28413 25 10776 1140321 217 0 8 0 0 0 +cpu5 29271 101 11586 1136270 672 0 30 0 0 0 +cpu6 29152 36 10276 1139721 319 0 29 0 0 0 +cpu7 29098 268 10164 1139282 555 0 31 0 0 0 +intr 8885917 17 0 0 0 0 0 0 0 1 79281 0 0 0 0 0 0 0 231237 0 0 0 0 250586 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223424 190745 13 906 1283803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +ctxt 38014093 +btime 1418183276 +processes 26442 +procs_running 2 +procs_blocked 1 +softirq 5057579 250191 1481983 1647 211099 186066 0 1783454 622196 12499 508444 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/symlinktargets +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/symlinktargets/README +Lines: 2 +This directory contains some empty files that are the symlinks the files in the "fd" directory point to. +They are otherwise ignored by the tests +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/symlinktargets/abc +Lines: 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/symlinktargets/def +Lines: 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/symlinktargets/ghi +Lines: 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/symlinktargets/uvw +Lines: 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/symlinktargets/xyz +Lines: 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/github.com/prometheus/procfs/fs.go b/vendor/github.com/prometheus/procfs/fs.go new file mode 100644 index 0000000..b6c6b2c --- /dev/null +++ b/vendor/github.com/prometheus/procfs/fs.go @@ -0,0 +1,82 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "fmt" + "os" + "path" + + "github.com/prometheus/procfs/nfs" + "github.com/prometheus/procfs/xfs" +) + +// FS represents the pseudo-filesystem proc, which provides an interface to +// kernel data structures. +type FS string + +// DefaultMountPoint is the common mount point of the proc filesystem. +const DefaultMountPoint = "/proc" + +// NewFS returns a new FS mounted under the given mountPoint. It will error +// if the mount point can't be read. +func NewFS(mountPoint string) (FS, error) { + info, err := os.Stat(mountPoint) + if err != nil { + return "", fmt.Errorf("could not read %s: %s", mountPoint, err) + } + if !info.IsDir() { + return "", fmt.Errorf("mount point %s is not a directory", mountPoint) + } + + return FS(mountPoint), nil +} + +// Path returns the path of the given subsystem relative to the procfs root. +func (fs FS) Path(p ...string) string { + return path.Join(append([]string{string(fs)}, p...)...) +} + +// XFSStats retrieves XFS filesystem runtime statistics. +func (fs FS) XFSStats() (*xfs.Stats, error) { + f, err := os.Open(fs.Path("fs/xfs/stat")) + if err != nil { + return nil, err + } + defer f.Close() + + return xfs.ParseStats(f) +} + +// NFSClientRPCStats retrieves NFS client RPC statistics. +func (fs FS) NFSClientRPCStats() (*nfs.ClientRPCStats, error) { + f, err := os.Open(fs.Path("net/rpc/nfs")) + if err != nil { + return nil, err + } + defer f.Close() + + return nfs.ParseClientRPCStats(f) +} + +// NFSdServerRPCStats retrieves NFS daemon RPC statistics. +func (fs FS) NFSdServerRPCStats() (*nfs.ServerRPCStats, error) { + f, err := os.Open(fs.Path("net/rpc/nfsd")) + if err != nil { + return nil, err + } + defer f.Close() + + return nfs.ParseServerRPCStats(f) +} diff --git a/vendor/github.com/prometheus/procfs/internal/util/parse.go b/vendor/github.com/prometheus/procfs/internal/util/parse.go new file mode 100644 index 0000000..1ad21c9 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/internal/util/parse.go @@ -0,0 +1,46 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package util + +import "strconv" + +// ParseUint32s parses a slice of strings into a slice of uint32s. +func ParseUint32s(ss []string) ([]uint32, error) { + us := make([]uint32, 0, len(ss)) + for _, s := range ss { + u, err := strconv.ParseUint(s, 10, 32) + if err != nil { + return nil, err + } + + us = append(us, uint32(u)) + } + + return us, nil +} + +// ParseUint64s parses a slice of strings into a slice of uint64s. +func ParseUint64s(ss []string) ([]uint64, error) { + us := make([]uint64, 0, len(ss)) + for _, s := range ss { + u, err := strconv.ParseUint(s, 10, 64) + if err != nil { + return nil, err + } + + us = append(us, u) + } + + return us, nil +} diff --git a/vendor/github.com/prometheus/procfs/ipvs.go b/vendor/github.com/prometheus/procfs/ipvs.go new file mode 100644 index 0000000..e36d4a3 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/ipvs.go @@ -0,0 +1,259 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "bufio" + "encoding/hex" + "errors" + "fmt" + "io" + "io/ioutil" + "net" + "os" + "strconv" + "strings" +) + +// IPVSStats holds IPVS statistics, as exposed by the kernel in `/proc/net/ip_vs_stats`. +type IPVSStats struct { + // Total count of connections. + Connections uint64 + // Total incoming packages processed. + IncomingPackets uint64 + // Total outgoing packages processed. + OutgoingPackets uint64 + // Total incoming traffic. + IncomingBytes uint64 + // Total outgoing traffic. + OutgoingBytes uint64 +} + +// IPVSBackendStatus holds current metrics of one virtual / real address pair. +type IPVSBackendStatus struct { + // The local (virtual) IP address. + LocalAddress net.IP + // The remote (real) IP address. + RemoteAddress net.IP + // The local (virtual) port. + LocalPort uint16 + // The remote (real) port. + RemotePort uint16 + // The local firewall mark + LocalMark string + // The transport protocol (TCP, UDP). + Proto string + // The current number of active connections for this virtual/real address pair. + ActiveConn uint64 + // The current number of inactive connections for this virtual/real address pair. + InactConn uint64 + // The current weight of this virtual/real address pair. + Weight uint64 +} + +// NewIPVSStats reads the IPVS statistics. +func NewIPVSStats() (IPVSStats, error) { + fs, err := NewFS(DefaultMountPoint) + if err != nil { + return IPVSStats{}, err + } + + return fs.NewIPVSStats() +} + +// NewIPVSStats reads the IPVS statistics from the specified `proc` filesystem. +func (fs FS) NewIPVSStats() (IPVSStats, error) { + file, err := os.Open(fs.Path("net/ip_vs_stats")) + if err != nil { + return IPVSStats{}, err + } + defer file.Close() + + return parseIPVSStats(file) +} + +// parseIPVSStats performs the actual parsing of `ip_vs_stats`. +func parseIPVSStats(file io.Reader) (IPVSStats, error) { + var ( + statContent []byte + statLines []string + statFields []string + stats IPVSStats + ) + + statContent, err := ioutil.ReadAll(file) + if err != nil { + return IPVSStats{}, err + } + + statLines = strings.SplitN(string(statContent), "\n", 4) + if len(statLines) != 4 { + return IPVSStats{}, errors.New("ip_vs_stats corrupt: too short") + } + + statFields = strings.Fields(statLines[2]) + if len(statFields) != 5 { + return IPVSStats{}, errors.New("ip_vs_stats corrupt: unexpected number of fields") + } + + stats.Connections, err = strconv.ParseUint(statFields[0], 16, 64) + if err != nil { + return IPVSStats{}, err + } + stats.IncomingPackets, err = strconv.ParseUint(statFields[1], 16, 64) + if err != nil { + return IPVSStats{}, err + } + stats.OutgoingPackets, err = strconv.ParseUint(statFields[2], 16, 64) + if err != nil { + return IPVSStats{}, err + } + stats.IncomingBytes, err = strconv.ParseUint(statFields[3], 16, 64) + if err != nil { + return IPVSStats{}, err + } + stats.OutgoingBytes, err = strconv.ParseUint(statFields[4], 16, 64) + if err != nil { + return IPVSStats{}, err + } + + return stats, nil +} + +// NewIPVSBackendStatus reads and returns the status of all (virtual,real) server pairs. +func NewIPVSBackendStatus() ([]IPVSBackendStatus, error) { + fs, err := NewFS(DefaultMountPoint) + if err != nil { + return []IPVSBackendStatus{}, err + } + + return fs.NewIPVSBackendStatus() +} + +// NewIPVSBackendStatus reads and returns the status of all (virtual,real) server pairs from the specified `proc` filesystem. +func (fs FS) NewIPVSBackendStatus() ([]IPVSBackendStatus, error) { + file, err := os.Open(fs.Path("net/ip_vs")) + if err != nil { + return nil, err + } + defer file.Close() + + return parseIPVSBackendStatus(file) +} + +func parseIPVSBackendStatus(file io.Reader) ([]IPVSBackendStatus, error) { + var ( + status []IPVSBackendStatus + scanner = bufio.NewScanner(file) + proto string + localMark string + localAddress net.IP + localPort uint16 + err error + ) + + for scanner.Scan() { + fields := strings.Fields(scanner.Text()) + if len(fields) == 0 { + continue + } + switch { + case fields[0] == "IP" || fields[0] == "Prot" || fields[1] == "RemoteAddress:Port": + continue + case fields[0] == "TCP" || fields[0] == "UDP": + if len(fields) < 2 { + continue + } + proto = fields[0] + localMark = "" + localAddress, localPort, err = parseIPPort(fields[1]) + if err != nil { + return nil, err + } + case fields[0] == "FWM": + if len(fields) < 2 { + continue + } + proto = fields[0] + localMark = fields[1] + localAddress = nil + localPort = 0 + case fields[0] == "->": + if len(fields) < 6 { + continue + } + remoteAddress, remotePort, err := parseIPPort(fields[1]) + if err != nil { + return nil, err + } + weight, err := strconv.ParseUint(fields[3], 10, 64) + if err != nil { + return nil, err + } + activeConn, err := strconv.ParseUint(fields[4], 10, 64) + if err != nil { + return nil, err + } + inactConn, err := strconv.ParseUint(fields[5], 10, 64) + if err != nil { + return nil, err + } + status = append(status, IPVSBackendStatus{ + LocalAddress: localAddress, + LocalPort: localPort, + LocalMark: localMark, + RemoteAddress: remoteAddress, + RemotePort: remotePort, + Proto: proto, + Weight: weight, + ActiveConn: activeConn, + InactConn: inactConn, + }) + } + } + return status, nil +} + +func parseIPPort(s string) (net.IP, uint16, error) { + var ( + ip net.IP + err error + ) + + switch len(s) { + case 13: + ip, err = hex.DecodeString(s[0:8]) + if err != nil { + return nil, 0, err + } + case 46: + ip = net.ParseIP(s[1:40]) + if ip == nil { + return nil, 0, fmt.Errorf("invalid IPv6 address: %s", s[1:40]) + } + default: + return nil, 0, fmt.Errorf("unexpected IP:Port: %s", s) + } + + portString := s[len(s)-4:] + if len(portString) != 4 { + return nil, 0, fmt.Errorf("unexpected port string format: %s", portString) + } + port, err := strconv.ParseUint(portString, 16, 16) + if err != nil { + return nil, 0, err + } + + return ip, uint16(port), nil +} diff --git a/vendor/github.com/prometheus/procfs/mdstat.go b/vendor/github.com/prometheus/procfs/mdstat.go new file mode 100644 index 0000000..9dc1958 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/mdstat.go @@ -0,0 +1,151 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "fmt" + "io/ioutil" + "regexp" + "strconv" + "strings" +) + +var ( + statuslineRE = regexp.MustCompile(`(\d+) blocks .*\[(\d+)/(\d+)\] \[[U_]+\]`) + buildlineRE = regexp.MustCompile(`\((\d+)/\d+\)`) +) + +// MDStat holds info parsed from /proc/mdstat. +type MDStat struct { + // Name of the device. + Name string + // activity-state of the device. + ActivityState string + // Number of active disks. + DisksActive int64 + // Total number of disks the device consists of. + DisksTotal int64 + // Number of blocks the device holds. + BlocksTotal int64 + // Number of blocks on the device that are in sync. + BlocksSynced int64 +} + +// ParseMDStat parses an mdstat-file and returns a struct with the relevant infos. +func (fs FS) ParseMDStat() (mdstates []MDStat, err error) { + mdStatusFilePath := fs.Path("mdstat") + content, err := ioutil.ReadFile(mdStatusFilePath) + if err != nil { + return []MDStat{}, fmt.Errorf("error parsing %s: %s", mdStatusFilePath, err) + } + + mdStates := []MDStat{} + lines := strings.Split(string(content), "\n") + for i, l := range lines { + if l == "" { + continue + } + if l[0] == ' ' { + continue + } + if strings.HasPrefix(l, "Personalities") || strings.HasPrefix(l, "unused") { + continue + } + + mainLine := strings.Split(l, " ") + if len(mainLine) < 3 { + return mdStates, fmt.Errorf("error parsing mdline: %s", l) + } + mdName := mainLine[0] + activityState := mainLine[2] + + if len(lines) <= i+3 { + return mdStates, fmt.Errorf( + "error parsing %s: too few lines for md device %s", + mdStatusFilePath, + mdName, + ) + } + + active, total, size, err := evalStatusline(lines[i+1]) + if err != nil { + return mdStates, fmt.Errorf("error parsing %s: %s", mdStatusFilePath, err) + } + + // j is the line number of the syncing-line. + j := i + 2 + if strings.Contains(lines[i+2], "bitmap") { // skip bitmap line + j = i + 3 + } + + // If device is syncing at the moment, get the number of currently + // synced bytes, otherwise that number equals the size of the device. + syncedBlocks := size + if strings.Contains(lines[j], "recovery") || strings.Contains(lines[j], "resync") { + syncedBlocks, err = evalBuildline(lines[j]) + if err != nil { + return mdStates, fmt.Errorf("error parsing %s: %s", mdStatusFilePath, err) + } + } + + mdStates = append(mdStates, MDStat{ + Name: mdName, + ActivityState: activityState, + DisksActive: active, + DisksTotal: total, + BlocksTotal: size, + BlocksSynced: syncedBlocks, + }) + } + + return mdStates, nil +} + +func evalStatusline(statusline string) (active, total, size int64, err error) { + matches := statuslineRE.FindStringSubmatch(statusline) + if len(matches) != 4 { + return 0, 0, 0, fmt.Errorf("unexpected statusline: %s", statusline) + } + + size, err = strconv.ParseInt(matches[1], 10, 64) + if err != nil { + return 0, 0, 0, fmt.Errorf("unexpected statusline %s: %s", statusline, err) + } + + total, err = strconv.ParseInt(matches[2], 10, 64) + if err != nil { + return 0, 0, 0, fmt.Errorf("unexpected statusline %s: %s", statusline, err) + } + + active, err = strconv.ParseInt(matches[3], 10, 64) + if err != nil { + return 0, 0, 0, fmt.Errorf("unexpected statusline %s: %s", statusline, err) + } + + return active, total, size, nil +} + +func evalBuildline(buildline string) (syncedBlocks int64, err error) { + matches := buildlineRE.FindStringSubmatch(buildline) + if len(matches) != 2 { + return 0, fmt.Errorf("unexpected buildline: %s", buildline) + } + + syncedBlocks, err = strconv.ParseInt(matches[1], 10, 64) + if err != nil { + return 0, fmt.Errorf("%s in buildline: %s", err, buildline) + } + + return syncedBlocks, nil +} diff --git a/vendor/github.com/prometheus/procfs/mountstats.go b/vendor/github.com/prometheus/procfs/mountstats.go new file mode 100644 index 0000000..e95ddbc --- /dev/null +++ b/vendor/github.com/prometheus/procfs/mountstats.go @@ -0,0 +1,569 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +// While implementing parsing of /proc/[pid]/mountstats, this blog was used +// heavily as a reference: +// https://utcc.utoronto.ca/~cks/space/blog/linux/NFSMountstatsIndex +// +// Special thanks to Chris Siebenmann for all of his posts explaining the +// various statistics available for NFS. + +import ( + "bufio" + "fmt" + "io" + "strconv" + "strings" + "time" +) + +// Constants shared between multiple functions. +const ( + deviceEntryLen = 8 + + fieldBytesLen = 8 + fieldEventsLen = 27 + + statVersion10 = "1.0" + statVersion11 = "1.1" + + fieldTransport10Len = 10 + fieldTransport11Len = 13 +) + +// A Mount is a device mount parsed from /proc/[pid]/mountstats. +type Mount struct { + // Name of the device. + Device string + // The mount point of the device. + Mount string + // The filesystem type used by the device. + Type string + // If available additional statistics related to this Mount. + // Use a type assertion to determine if additional statistics are available. + Stats MountStats +} + +// A MountStats is a type which contains detailed statistics for a specific +// type of Mount. +type MountStats interface { + mountStats() +} + +// A MountStatsNFS is a MountStats implementation for NFSv3 and v4 mounts. +type MountStatsNFS struct { + // The version of statistics provided. + StatVersion string + // The age of the NFS mount. + Age time.Duration + // Statistics related to byte counters for various operations. + Bytes NFSBytesStats + // Statistics related to various NFS event occurrences. + Events NFSEventsStats + // Statistics broken down by filesystem operation. + Operations []NFSOperationStats + // Statistics about the NFS RPC transport. + Transport NFSTransportStats +} + +// mountStats implements MountStats. +func (m MountStatsNFS) mountStats() {} + +// A NFSBytesStats contains statistics about the number of bytes read and written +// by an NFS client to and from an NFS server. +type NFSBytesStats struct { + // Number of bytes read using the read() syscall. + Read uint64 + // Number of bytes written using the write() syscall. + Write uint64 + // Number of bytes read using the read() syscall in O_DIRECT mode. + DirectRead uint64 + // Number of bytes written using the write() syscall in O_DIRECT mode. + DirectWrite uint64 + // Number of bytes read from the NFS server, in total. + ReadTotal uint64 + // Number of bytes written to the NFS server, in total. + WriteTotal uint64 + // Number of pages read directly via mmap()'d files. + ReadPages uint64 + // Number of pages written directly via mmap()'d files. + WritePages uint64 +} + +// A NFSEventsStats contains statistics about NFS event occurrences. +type NFSEventsStats struct { + // Number of times cached inode attributes are re-validated from the server. + InodeRevalidate uint64 + // Number of times cached dentry nodes are re-validated from the server. + DnodeRevalidate uint64 + // Number of times an inode cache is cleared. + DataInvalidate uint64 + // Number of times cached inode attributes are invalidated. + AttributeInvalidate uint64 + // Number of times files or directories have been open()'d. + VFSOpen uint64 + // Number of times a directory lookup has occurred. + VFSLookup uint64 + // Number of times permissions have been checked. + VFSAccess uint64 + // Number of updates (and potential writes) to pages. + VFSUpdatePage uint64 + // Number of pages read directly via mmap()'d files. + VFSReadPage uint64 + // Number of times a group of pages have been read. + VFSReadPages uint64 + // Number of pages written directly via mmap()'d files. + VFSWritePage uint64 + // Number of times a group of pages have been written. + VFSWritePages uint64 + // Number of times directory entries have been read with getdents(). + VFSGetdents uint64 + // Number of times attributes have been set on inodes. + VFSSetattr uint64 + // Number of pending writes that have been forcefully flushed to the server. + VFSFlush uint64 + // Number of times fsync() has been called on directories and files. + VFSFsync uint64 + // Number of times locking has been attempted on a file. + VFSLock uint64 + // Number of times files have been closed and released. + VFSFileRelease uint64 + // Unknown. Possibly unused. + CongestionWait uint64 + // Number of times files have been truncated. + Truncation uint64 + // Number of times a file has been grown due to writes beyond its existing end. + WriteExtension uint64 + // Number of times a file was removed while still open by another process. + SillyRename uint64 + // Number of times the NFS server gave less data than expected while reading. + ShortRead uint64 + // Number of times the NFS server wrote less data than expected while writing. + ShortWrite uint64 + // Number of times the NFS server indicated EJUKEBOX; retrieving data from + // offline storage. + JukeboxDelay uint64 + // Number of NFS v4.1+ pNFS reads. + PNFSRead uint64 + // Number of NFS v4.1+ pNFS writes. + PNFSWrite uint64 +} + +// A NFSOperationStats contains statistics for a single operation. +type NFSOperationStats struct { + // The name of the operation. + Operation string + // Number of requests performed for this operation. + Requests uint64 + // Number of times an actual RPC request has been transmitted for this operation. + Transmissions uint64 + // Number of times a request has had a major timeout. + MajorTimeouts uint64 + // Number of bytes sent for this operation, including RPC headers and payload. + BytesSent uint64 + // Number of bytes received for this operation, including RPC headers and payload. + BytesReceived uint64 + // Duration all requests spent queued for transmission before they were sent. + CumulativeQueueTime time.Duration + // Duration it took to get a reply back after the request was transmitted. + CumulativeTotalResponseTime time.Duration + // Duration from when a request was enqueued to when it was completely handled. + CumulativeTotalRequestTime time.Duration +} + +// A NFSTransportStats contains statistics for the NFS mount RPC requests and +// responses. +type NFSTransportStats struct { + // The local port used for the NFS mount. + Port uint64 + // Number of times the client has had to establish a connection from scratch + // to the NFS server. + Bind uint64 + // Number of times the client has made a TCP connection to the NFS server. + Connect uint64 + // Duration (in jiffies, a kernel internal unit of time) the NFS mount has + // spent waiting for connections to the server to be established. + ConnectIdleTime uint64 + // Duration since the NFS mount last saw any RPC traffic. + IdleTime time.Duration + // Number of RPC requests for this mount sent to the NFS server. + Sends uint64 + // Number of RPC responses for this mount received from the NFS server. + Receives uint64 + // Number of times the NFS server sent a response with a transaction ID + // unknown to this client. + BadTransactionIDs uint64 + // A running counter, incremented on each request as the current difference + // ebetween sends and receives. + CumulativeActiveRequests uint64 + // A running counter, incremented on each request by the current backlog + // queue size. + CumulativeBacklog uint64 + + // Stats below only available with stat version 1.1. + + // Maximum number of simultaneously active RPC requests ever used. + MaximumRPCSlotsUsed uint64 + // A running counter, incremented on each request as the current size of the + // sending queue. + CumulativeSendingQueue uint64 + // A running counter, incremented on each request as the current size of the + // pending queue. + CumulativePendingQueue uint64 +} + +// parseMountStats parses a /proc/[pid]/mountstats file and returns a slice +// of Mount structures containing detailed information about each mount. +// If available, statistics for each mount are parsed as well. +func parseMountStats(r io.Reader) ([]*Mount, error) { + const ( + device = "device" + statVersionPrefix = "statvers=" + + nfs3Type = "nfs" + nfs4Type = "nfs4" + ) + + var mounts []*Mount + + s := bufio.NewScanner(r) + for s.Scan() { + // Only look for device entries in this function + ss := strings.Fields(string(s.Bytes())) + if len(ss) == 0 || ss[0] != device { + continue + } + + m, err := parseMount(ss) + if err != nil { + return nil, err + } + + // Does this mount also possess statistics information? + if len(ss) > deviceEntryLen { + // Only NFSv3 and v4 are supported for parsing statistics + if m.Type != nfs3Type && m.Type != nfs4Type { + return nil, fmt.Errorf("cannot parse MountStats for fstype %q", m.Type) + } + + statVersion := strings.TrimPrefix(ss[8], statVersionPrefix) + + stats, err := parseMountStatsNFS(s, statVersion) + if err != nil { + return nil, err + } + + m.Stats = stats + } + + mounts = append(mounts, m) + } + + return mounts, s.Err() +} + +// parseMount parses an entry in /proc/[pid]/mountstats in the format: +// device [device] mounted on [mount] with fstype [type] +func parseMount(ss []string) (*Mount, error) { + if len(ss) < deviceEntryLen { + return nil, fmt.Errorf("invalid device entry: %v", ss) + } + + // Check for specific words appearing at specific indices to ensure + // the format is consistent with what we expect + format := []struct { + i int + s string + }{ + {i: 0, s: "device"}, + {i: 2, s: "mounted"}, + {i: 3, s: "on"}, + {i: 5, s: "with"}, + {i: 6, s: "fstype"}, + } + + for _, f := range format { + if ss[f.i] != f.s { + return nil, fmt.Errorf("invalid device entry: %v", ss) + } + } + + return &Mount{ + Device: ss[1], + Mount: ss[4], + Type: ss[7], + }, nil +} + +// parseMountStatsNFS parses a MountStatsNFS by scanning additional information +// related to NFS statistics. +func parseMountStatsNFS(s *bufio.Scanner, statVersion string) (*MountStatsNFS, error) { + // Field indicators for parsing specific types of data + const ( + fieldAge = "age:" + fieldBytes = "bytes:" + fieldEvents = "events:" + fieldPerOpStats = "per-op" + fieldTransport = "xprt:" + ) + + stats := &MountStatsNFS{ + StatVersion: statVersion, + } + + for s.Scan() { + ss := strings.Fields(string(s.Bytes())) + if len(ss) == 0 { + break + } + if len(ss) < 2 { + return nil, fmt.Errorf("not enough information for NFS stats: %v", ss) + } + + switch ss[0] { + case fieldAge: + // Age integer is in seconds + d, err := time.ParseDuration(ss[1] + "s") + if err != nil { + return nil, err + } + + stats.Age = d + case fieldBytes: + bstats, err := parseNFSBytesStats(ss[1:]) + if err != nil { + return nil, err + } + + stats.Bytes = *bstats + case fieldEvents: + estats, err := parseNFSEventsStats(ss[1:]) + if err != nil { + return nil, err + } + + stats.Events = *estats + case fieldTransport: + if len(ss) < 3 { + return nil, fmt.Errorf("not enough information for NFS transport stats: %v", ss) + } + + tstats, err := parseNFSTransportStats(ss[2:], statVersion) + if err != nil { + return nil, err + } + + stats.Transport = *tstats + } + + // When encountering "per-operation statistics", we must break this + // loop and parse them separately to ensure we can terminate parsing + // before reaching another device entry; hence why this 'if' statement + // is not just another switch case + if ss[0] == fieldPerOpStats { + break + } + } + + if err := s.Err(); err != nil { + return nil, err + } + + // NFS per-operation stats appear last before the next device entry + perOpStats, err := parseNFSOperationStats(s) + if err != nil { + return nil, err + } + + stats.Operations = perOpStats + + return stats, nil +} + +// parseNFSBytesStats parses a NFSBytesStats line using an input set of +// integer fields. +func parseNFSBytesStats(ss []string) (*NFSBytesStats, error) { + if len(ss) != fieldBytesLen { + return nil, fmt.Errorf("invalid NFS bytes stats: %v", ss) + } + + ns := make([]uint64, 0, fieldBytesLen) + for _, s := range ss { + n, err := strconv.ParseUint(s, 10, 64) + if err != nil { + return nil, err + } + + ns = append(ns, n) + } + + return &NFSBytesStats{ + Read: ns[0], + Write: ns[1], + DirectRead: ns[2], + DirectWrite: ns[3], + ReadTotal: ns[4], + WriteTotal: ns[5], + ReadPages: ns[6], + WritePages: ns[7], + }, nil +} + +// parseNFSEventsStats parses a NFSEventsStats line using an input set of +// integer fields. +func parseNFSEventsStats(ss []string) (*NFSEventsStats, error) { + if len(ss) != fieldEventsLen { + return nil, fmt.Errorf("invalid NFS events stats: %v", ss) + } + + ns := make([]uint64, 0, fieldEventsLen) + for _, s := range ss { + n, err := strconv.ParseUint(s, 10, 64) + if err != nil { + return nil, err + } + + ns = append(ns, n) + } + + return &NFSEventsStats{ + InodeRevalidate: ns[0], + DnodeRevalidate: ns[1], + DataInvalidate: ns[2], + AttributeInvalidate: ns[3], + VFSOpen: ns[4], + VFSLookup: ns[5], + VFSAccess: ns[6], + VFSUpdatePage: ns[7], + VFSReadPage: ns[8], + VFSReadPages: ns[9], + VFSWritePage: ns[10], + VFSWritePages: ns[11], + VFSGetdents: ns[12], + VFSSetattr: ns[13], + VFSFlush: ns[14], + VFSFsync: ns[15], + VFSLock: ns[16], + VFSFileRelease: ns[17], + CongestionWait: ns[18], + Truncation: ns[19], + WriteExtension: ns[20], + SillyRename: ns[21], + ShortRead: ns[22], + ShortWrite: ns[23], + JukeboxDelay: ns[24], + PNFSRead: ns[25], + PNFSWrite: ns[26], + }, nil +} + +// parseNFSOperationStats parses a slice of NFSOperationStats by scanning +// additional information about per-operation statistics until an empty +// line is reached. +func parseNFSOperationStats(s *bufio.Scanner) ([]NFSOperationStats, error) { + const ( + // Number of expected fields in each per-operation statistics set + numFields = 9 + ) + + var ops []NFSOperationStats + + for s.Scan() { + ss := strings.Fields(string(s.Bytes())) + if len(ss) == 0 { + // Must break when reading a blank line after per-operation stats to + // enable top-level function to parse the next device entry + break + } + + if len(ss) != numFields { + return nil, fmt.Errorf("invalid NFS per-operations stats: %v", ss) + } + + // Skip string operation name for integers + ns := make([]uint64, 0, numFields-1) + for _, st := range ss[1:] { + n, err := strconv.ParseUint(st, 10, 64) + if err != nil { + return nil, err + } + + ns = append(ns, n) + } + + ops = append(ops, NFSOperationStats{ + Operation: strings.TrimSuffix(ss[0], ":"), + Requests: ns[0], + Transmissions: ns[1], + MajorTimeouts: ns[2], + BytesSent: ns[3], + BytesReceived: ns[4], + CumulativeQueueTime: time.Duration(ns[5]) * time.Millisecond, + CumulativeTotalResponseTime: time.Duration(ns[6]) * time.Millisecond, + CumulativeTotalRequestTime: time.Duration(ns[7]) * time.Millisecond, + }) + } + + return ops, s.Err() +} + +// parseNFSTransportStats parses a NFSTransportStats line using an input set of +// integer fields matched to a specific stats version. +func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats, error) { + switch statVersion { + case statVersion10: + if len(ss) != fieldTransport10Len { + return nil, fmt.Errorf("invalid NFS transport stats 1.0 statement: %v", ss) + } + case statVersion11: + if len(ss) != fieldTransport11Len { + return nil, fmt.Errorf("invalid NFS transport stats 1.1 statement: %v", ss) + } + default: + return nil, fmt.Errorf("unrecognized NFS transport stats version: %q", statVersion) + } + + // Allocate enough for v1.1 stats since zero value for v1.1 stats will be okay + // in a v1.0 response. + // + // Note: slice length must be set to length of v1.1 stats to avoid a panic when + // only v1.0 stats are present. + // See: https://github.com/prometheus/node_exporter/issues/571. + ns := make([]uint64, fieldTransport11Len) + for i, s := range ss { + n, err := strconv.ParseUint(s, 10, 64) + if err != nil { + return nil, err + } + + ns[i] = n + } + + return &NFSTransportStats{ + Port: ns[0], + Bind: ns[1], + Connect: ns[2], + ConnectIdleTime: ns[3], + IdleTime: time.Duration(ns[4]) * time.Second, + Sends: ns[5], + Receives: ns[6], + BadTransactionIDs: ns[7], + CumulativeActiveRequests: ns[8], + CumulativeBacklog: ns[9], + MaximumRPCSlotsUsed: ns[10], + CumulativeSendingQueue: ns[11], + CumulativePendingQueue: ns[12], + }, nil +} diff --git a/vendor/github.com/prometheus/procfs/net_dev.go b/vendor/github.com/prometheus/procfs/net_dev.go new file mode 100644 index 0000000..3f25233 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/net_dev.go @@ -0,0 +1,216 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "bufio" + "errors" + "os" + "sort" + "strconv" + "strings" +) + +// NetDevLine is single line parsed from /proc/net/dev or /proc/[pid]/net/dev. +type NetDevLine struct { + Name string `json:"name"` // The name of the interface. + RxBytes uint64 `json:"rx_bytes"` // Cumulative count of bytes received. + RxPackets uint64 `json:"rx_packets"` // Cumulative count of packets received. + RxErrors uint64 `json:"rx_errors"` // Cumulative count of receive errors encountered. + RxDropped uint64 `json:"rx_dropped"` // Cumulative count of packets dropped while receiving. + RxFIFO uint64 `json:"rx_fifo"` // Cumulative count of FIFO buffer errors. + RxFrame uint64 `json:"rx_frame"` // Cumulative count of packet framing errors. + RxCompressed uint64 `json:"rx_compressed"` // Cumulative count of compressed packets received by the device driver. + RxMulticast uint64 `json:"rx_multicast"` // Cumulative count of multicast frames received by the device driver. + TxBytes uint64 `json:"tx_bytes"` // Cumulative count of bytes transmitted. + TxPackets uint64 `json:"tx_packets"` // Cumulative count of packets transmitted. + TxErrors uint64 `json:"tx_errors"` // Cumulative count of transmit errors encountered. + TxDropped uint64 `json:"tx_dropped"` // Cumulative count of packets dropped while transmitting. + TxFIFO uint64 `json:"tx_fifo"` // Cumulative count of FIFO buffer errors. + TxCollisions uint64 `json:"tx_collisions"` // Cumulative count of collisions detected on the interface. + TxCarrier uint64 `json:"tx_carrier"` // Cumulative count of carrier losses detected by the device driver. + TxCompressed uint64 `json:"tx_compressed"` // Cumulative count of compressed packets transmitted by the device driver. +} + +// NetDev is parsed from /proc/net/dev or /proc/[pid]/net/dev. The map keys +// are interface names. +type NetDev map[string]NetDevLine + +// NewNetDev returns kernel/system statistics read from /proc/net/dev. +func NewNetDev() (NetDev, error) { + fs, err := NewFS(DefaultMountPoint) + if err != nil { + return nil, err + } + + return fs.NewNetDev() +} + +// NewNetDev returns kernel/system statistics read from /proc/net/dev. +func (fs FS) NewNetDev() (NetDev, error) { + return newNetDev(fs.Path("net/dev")) +} + +// NewNetDev returns kernel/system statistics read from /proc/[pid]/net/dev. +func (p Proc) NewNetDev() (NetDev, error) { + return newNetDev(p.path("net/dev")) +} + +// newNetDev creates a new NetDev from the contents of the given file. +func newNetDev(file string) (NetDev, error) { + f, err := os.Open(file) + if err != nil { + return NetDev{}, err + } + defer f.Close() + + nd := NetDev{} + s := bufio.NewScanner(f) + for n := 0; s.Scan(); n++ { + // Skip the 2 header lines. + if n < 2 { + continue + } + + line, err := nd.parseLine(s.Text()) + if err != nil { + return nd, err + } + + nd[line.Name] = *line + } + + return nd, s.Err() +} + +// parseLine parses a single line from the /proc/net/dev file. Header lines +// must be filtered prior to calling this method. +func (nd NetDev) parseLine(rawLine string) (*NetDevLine, error) { + parts := strings.SplitN(rawLine, ":", 2) + if len(parts) != 2 { + return nil, errors.New("invalid net/dev line, missing colon") + } + fields := strings.Fields(strings.TrimSpace(parts[1])) + + var err error + line := &NetDevLine{} + + // Interface Name + line.Name = strings.TrimSpace(parts[0]) + if line.Name == "" { + return nil, errors.New("invalid net/dev line, empty interface name") + } + + // RX + line.RxBytes, err = strconv.ParseUint(fields[0], 10, 64) + if err != nil { + return nil, err + } + line.RxPackets, err = strconv.ParseUint(fields[1], 10, 64) + if err != nil { + return nil, err + } + line.RxErrors, err = strconv.ParseUint(fields[2], 10, 64) + if err != nil { + return nil, err + } + line.RxDropped, err = strconv.ParseUint(fields[3], 10, 64) + if err != nil { + return nil, err + } + line.RxFIFO, err = strconv.ParseUint(fields[4], 10, 64) + if err != nil { + return nil, err + } + line.RxFrame, err = strconv.ParseUint(fields[5], 10, 64) + if err != nil { + return nil, err + } + line.RxCompressed, err = strconv.ParseUint(fields[6], 10, 64) + if err != nil { + return nil, err + } + line.RxMulticast, err = strconv.ParseUint(fields[7], 10, 64) + if err != nil { + return nil, err + } + + // TX + line.TxBytes, err = strconv.ParseUint(fields[8], 10, 64) + if err != nil { + return nil, err + } + line.TxPackets, err = strconv.ParseUint(fields[9], 10, 64) + if err != nil { + return nil, err + } + line.TxErrors, err = strconv.ParseUint(fields[10], 10, 64) + if err != nil { + return nil, err + } + line.TxDropped, err = strconv.ParseUint(fields[11], 10, 64) + if err != nil { + return nil, err + } + line.TxFIFO, err = strconv.ParseUint(fields[12], 10, 64) + if err != nil { + return nil, err + } + line.TxCollisions, err = strconv.ParseUint(fields[13], 10, 64) + if err != nil { + return nil, err + } + line.TxCarrier, err = strconv.ParseUint(fields[14], 10, 64) + if err != nil { + return nil, err + } + line.TxCompressed, err = strconv.ParseUint(fields[15], 10, 64) + if err != nil { + return nil, err + } + + return line, nil +} + +// Total aggregates the values across interfaces and returns a new NetDevLine. +// The Name field will be a sorted comma separated list of interface names. +func (nd NetDev) Total() NetDevLine { + total := NetDevLine{} + + names := make([]string, 0, len(nd)) + for _, ifc := range nd { + names = append(names, ifc.Name) + total.RxBytes += ifc.RxBytes + total.RxPackets += ifc.RxPackets + total.RxPackets += ifc.RxPackets + total.RxErrors += ifc.RxErrors + total.RxDropped += ifc.RxDropped + total.RxFIFO += ifc.RxFIFO + total.RxFrame += ifc.RxFrame + total.RxCompressed += ifc.RxCompressed + total.RxMulticast += ifc.RxMulticast + total.TxBytes += ifc.TxBytes + total.TxPackets += ifc.TxPackets + total.TxErrors += ifc.TxErrors + total.TxDropped += ifc.TxDropped + total.TxFIFO += ifc.TxFIFO + total.TxCollisions += ifc.TxCollisions + total.TxCarrier += ifc.TxCarrier + total.TxCompressed += ifc.TxCompressed + } + sort.Strings(names) + total.Name = strings.Join(names, ", ") + + return total +} diff --git a/vendor/github.com/prometheus/procfs/nfs/nfs.go b/vendor/github.com/prometheus/procfs/nfs/nfs.go new file mode 100644 index 0000000..651bf68 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/nfs/nfs.go @@ -0,0 +1,263 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package nfs implements parsing of /proc/net/rpc/nfsd. +// Fields are documented in https://www.svennd.be/nfsd-stats-explained-procnetrpcnfsd/ +package nfs + +// ReplyCache models the "rc" line. +type ReplyCache struct { + Hits uint64 + Misses uint64 + NoCache uint64 +} + +// FileHandles models the "fh" line. +type FileHandles struct { + Stale uint64 + TotalLookups uint64 + AnonLookups uint64 + DirNoCache uint64 + NoDirNoCache uint64 +} + +// InputOutput models the "io" line. +type InputOutput struct { + Read uint64 + Write uint64 +} + +// Threads models the "th" line. +type Threads struct { + Threads uint64 + FullCnt uint64 +} + +// ReadAheadCache models the "ra" line. +type ReadAheadCache struct { + CacheSize uint64 + CacheHistogram []uint64 + NotFound uint64 +} + +// Network models the "net" line. +type Network struct { + NetCount uint64 + UDPCount uint64 + TCPCount uint64 + TCPConnect uint64 +} + +// ClientRPC models the nfs "rpc" line. +type ClientRPC struct { + RPCCount uint64 + Retransmissions uint64 + AuthRefreshes uint64 +} + +// ServerRPC models the nfsd "rpc" line. +type ServerRPC struct { + RPCCount uint64 + BadCnt uint64 + BadFmt uint64 + BadAuth uint64 + BadcInt uint64 +} + +// V2Stats models the "proc2" line. +type V2Stats struct { + Null uint64 + GetAttr uint64 + SetAttr uint64 + Root uint64 + Lookup uint64 + ReadLink uint64 + Read uint64 + WrCache uint64 + Write uint64 + Create uint64 + Remove uint64 + Rename uint64 + Link uint64 + SymLink uint64 + MkDir uint64 + RmDir uint64 + ReadDir uint64 + FsStat uint64 +} + +// V3Stats models the "proc3" line. +type V3Stats struct { + Null uint64 + GetAttr uint64 + SetAttr uint64 + Lookup uint64 + Access uint64 + ReadLink uint64 + Read uint64 + Write uint64 + Create uint64 + MkDir uint64 + SymLink uint64 + MkNod uint64 + Remove uint64 + RmDir uint64 + Rename uint64 + Link uint64 + ReadDir uint64 + ReadDirPlus uint64 + FsStat uint64 + FsInfo uint64 + PathConf uint64 + Commit uint64 +} + +// ClientV4Stats models the nfs "proc4" line. +type ClientV4Stats struct { + Null uint64 + Read uint64 + Write uint64 + Commit uint64 + Open uint64 + OpenConfirm uint64 + OpenNoattr uint64 + OpenDowngrade uint64 + Close uint64 + Setattr uint64 + FsInfo uint64 + Renew uint64 + SetClientID uint64 + SetClientIDConfirm uint64 + Lock uint64 + Lockt uint64 + Locku uint64 + Access uint64 + Getattr uint64 + Lookup uint64 + LookupRoot uint64 + Remove uint64 + Rename uint64 + Link uint64 + Symlink uint64 + Create uint64 + Pathconf uint64 + StatFs uint64 + ReadLink uint64 + ReadDir uint64 + ServerCaps uint64 + DelegReturn uint64 + GetACL uint64 + SetACL uint64 + FsLocations uint64 + ReleaseLockowner uint64 + Secinfo uint64 + FsidPresent uint64 + ExchangeID uint64 + CreateSession uint64 + DestroySession uint64 + Sequence uint64 + GetLeaseTime uint64 + ReclaimComplete uint64 + LayoutGet uint64 + GetDeviceInfo uint64 + LayoutCommit uint64 + LayoutReturn uint64 + SecinfoNoName uint64 + TestStateID uint64 + FreeStateID uint64 + GetDeviceList uint64 + BindConnToSession uint64 + DestroyClientID uint64 + Seek uint64 + Allocate uint64 + DeAllocate uint64 + LayoutStats uint64 + Clone uint64 +} + +// ServerV4Stats models the nfsd "proc4" line. +type ServerV4Stats struct { + Null uint64 + Compound uint64 +} + +// V4Ops models the "proc4ops" line: NFSv4 operations +// Variable list, see: +// v4.0 https://tools.ietf.org/html/rfc3010 (38 operations) +// v4.1 https://tools.ietf.org/html/rfc5661 (58 operations) +// v4.2 https://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-41 (71 operations) +type V4Ops struct { + //Values uint64 // Variable depending on v4.x sub-version. TODO: Will this always at least include the fields in this struct? + Op0Unused uint64 + Op1Unused uint64 + Op2Future uint64 + Access uint64 + Close uint64 + Commit uint64 + Create uint64 + DelegPurge uint64 + DelegReturn uint64 + GetAttr uint64 + GetFH uint64 + Link uint64 + Lock uint64 + Lockt uint64 + Locku uint64 + Lookup uint64 + LookupRoot uint64 + Nverify uint64 + Open uint64 + OpenAttr uint64 + OpenConfirm uint64 + OpenDgrd uint64 + PutFH uint64 + PutPubFH uint64 + PutRootFH uint64 + Read uint64 + ReadDir uint64 + ReadLink uint64 + Remove uint64 + Rename uint64 + Renew uint64 + RestoreFH uint64 + SaveFH uint64 + SecInfo uint64 + SetAttr uint64 + Verify uint64 + Write uint64 + RelLockOwner uint64 +} + +// ClientRPCStats models all stats from /proc/net/rpc/nfs. +type ClientRPCStats struct { + Network Network + ClientRPC ClientRPC + V2Stats V2Stats + V3Stats V3Stats + ClientV4Stats ClientV4Stats +} + +// ServerRPCStats models all stats from /proc/net/rpc/nfsd. +type ServerRPCStats struct { + ReplyCache ReplyCache + FileHandles FileHandles + InputOutput InputOutput + Threads Threads + ReadAheadCache ReadAheadCache + Network Network + ServerRPC ServerRPC + V2Stats V2Stats + V3Stats V3Stats + ServerV4Stats ServerV4Stats + V4Ops V4Ops +} diff --git a/vendor/github.com/prometheus/procfs/nfs/parse.go b/vendor/github.com/prometheus/procfs/nfs/parse.go new file mode 100644 index 0000000..95a83cc --- /dev/null +++ b/vendor/github.com/prometheus/procfs/nfs/parse.go @@ -0,0 +1,317 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package nfs + +import ( + "fmt" +) + +func parseReplyCache(v []uint64) (ReplyCache, error) { + if len(v) != 3 { + return ReplyCache{}, fmt.Errorf("invalid ReplyCache line %q", v) + } + + return ReplyCache{ + Hits: v[0], + Misses: v[1], + NoCache: v[2], + }, nil +} + +func parseFileHandles(v []uint64) (FileHandles, error) { + if len(v) != 5 { + return FileHandles{}, fmt.Errorf("invalid FileHandles, line %q", v) + } + + return FileHandles{ + Stale: v[0], + TotalLookups: v[1], + AnonLookups: v[2], + DirNoCache: v[3], + NoDirNoCache: v[4], + }, nil +} + +func parseInputOutput(v []uint64) (InputOutput, error) { + if len(v) != 2 { + return InputOutput{}, fmt.Errorf("invalid InputOutput line %q", v) + } + + return InputOutput{ + Read: v[0], + Write: v[1], + }, nil +} + +func parseThreads(v []uint64) (Threads, error) { + if len(v) != 2 { + return Threads{}, fmt.Errorf("invalid Threads line %q", v) + } + + return Threads{ + Threads: v[0], + FullCnt: v[1], + }, nil +} + +func parseReadAheadCache(v []uint64) (ReadAheadCache, error) { + if len(v) != 12 { + return ReadAheadCache{}, fmt.Errorf("invalid ReadAheadCache line %q", v) + } + + return ReadAheadCache{ + CacheSize: v[0], + CacheHistogram: v[1:11], + NotFound: v[11], + }, nil +} + +func parseNetwork(v []uint64) (Network, error) { + if len(v) != 4 { + return Network{}, fmt.Errorf("invalid Network line %q", v) + } + + return Network{ + NetCount: v[0], + UDPCount: v[1], + TCPCount: v[2], + TCPConnect: v[3], + }, nil +} + +func parseServerRPC(v []uint64) (ServerRPC, error) { + if len(v) != 5 { + return ServerRPC{}, fmt.Errorf("invalid RPC line %q", v) + } + + return ServerRPC{ + RPCCount: v[0], + BadCnt: v[1], + BadFmt: v[2], + BadAuth: v[3], + BadcInt: v[4], + }, nil +} + +func parseClientRPC(v []uint64) (ClientRPC, error) { + if len(v) != 3 { + return ClientRPC{}, fmt.Errorf("invalid RPC line %q", v) + } + + return ClientRPC{ + RPCCount: v[0], + Retransmissions: v[1], + AuthRefreshes: v[2], + }, nil +} + +func parseV2Stats(v []uint64) (V2Stats, error) { + values := int(v[0]) + if len(v[1:]) != values || values != 18 { + return V2Stats{}, fmt.Errorf("invalid V2Stats line %q", v) + } + + return V2Stats{ + Null: v[1], + GetAttr: v[2], + SetAttr: v[3], + Root: v[4], + Lookup: v[5], + ReadLink: v[6], + Read: v[7], + WrCache: v[8], + Write: v[9], + Create: v[10], + Remove: v[11], + Rename: v[12], + Link: v[13], + SymLink: v[14], + MkDir: v[15], + RmDir: v[16], + ReadDir: v[17], + FsStat: v[18], + }, nil +} + +func parseV3Stats(v []uint64) (V3Stats, error) { + values := int(v[0]) + if len(v[1:]) != values || values != 22 { + return V3Stats{}, fmt.Errorf("invalid V3Stats line %q", v) + } + + return V3Stats{ + Null: v[1], + GetAttr: v[2], + SetAttr: v[3], + Lookup: v[4], + Access: v[5], + ReadLink: v[6], + Read: v[7], + Write: v[8], + Create: v[9], + MkDir: v[10], + SymLink: v[11], + MkNod: v[12], + Remove: v[13], + RmDir: v[14], + Rename: v[15], + Link: v[16], + ReadDir: v[17], + ReadDirPlus: v[18], + FsStat: v[19], + FsInfo: v[20], + PathConf: v[21], + Commit: v[22], + }, nil +} + +func parseClientV4Stats(v []uint64) (ClientV4Stats, error) { + values := int(v[0]) + if len(v[1:]) != values { + return ClientV4Stats{}, fmt.Errorf("invalid ClientV4Stats line %q", v) + } + + // This function currently supports mapping 59 NFS v4 client stats. Older + // kernels may emit fewer stats, so we must detect this and pad out the + // values to match the expected slice size. + if values < 59 { + newValues := make([]uint64, 60) + copy(newValues, v) + v = newValues + } + + return ClientV4Stats{ + Null: v[1], + Read: v[2], + Write: v[3], + Commit: v[4], + Open: v[5], + OpenConfirm: v[6], + OpenNoattr: v[7], + OpenDowngrade: v[8], + Close: v[9], + Setattr: v[10], + FsInfo: v[11], + Renew: v[12], + SetClientID: v[13], + SetClientIDConfirm: v[14], + Lock: v[15], + Lockt: v[16], + Locku: v[17], + Access: v[18], + Getattr: v[19], + Lookup: v[20], + LookupRoot: v[21], + Remove: v[22], + Rename: v[23], + Link: v[24], + Symlink: v[25], + Create: v[26], + Pathconf: v[27], + StatFs: v[28], + ReadLink: v[29], + ReadDir: v[30], + ServerCaps: v[31], + DelegReturn: v[32], + GetACL: v[33], + SetACL: v[34], + FsLocations: v[35], + ReleaseLockowner: v[36], + Secinfo: v[37], + FsidPresent: v[38], + ExchangeID: v[39], + CreateSession: v[40], + DestroySession: v[41], + Sequence: v[42], + GetLeaseTime: v[43], + ReclaimComplete: v[44], + LayoutGet: v[45], + GetDeviceInfo: v[46], + LayoutCommit: v[47], + LayoutReturn: v[48], + SecinfoNoName: v[49], + TestStateID: v[50], + FreeStateID: v[51], + GetDeviceList: v[52], + BindConnToSession: v[53], + DestroyClientID: v[54], + Seek: v[55], + Allocate: v[56], + DeAllocate: v[57], + LayoutStats: v[58], + Clone: v[59], + }, nil +} + +func parseServerV4Stats(v []uint64) (ServerV4Stats, error) { + values := int(v[0]) + if len(v[1:]) != values || values != 2 { + return ServerV4Stats{}, fmt.Errorf("invalid V4Stats line %q", v) + } + + return ServerV4Stats{ + Null: v[1], + Compound: v[2], + }, nil +} + +func parseV4Ops(v []uint64) (V4Ops, error) { + values := int(v[0]) + if len(v[1:]) != values || values < 39 { + return V4Ops{}, fmt.Errorf("invalid V4Ops line %q", v) + } + + stats := V4Ops{ + Op0Unused: v[1], + Op1Unused: v[2], + Op2Future: v[3], + Access: v[4], + Close: v[5], + Commit: v[6], + Create: v[7], + DelegPurge: v[8], + DelegReturn: v[9], + GetAttr: v[10], + GetFH: v[11], + Link: v[12], + Lock: v[13], + Lockt: v[14], + Locku: v[15], + Lookup: v[16], + LookupRoot: v[17], + Nverify: v[18], + Open: v[19], + OpenAttr: v[20], + OpenConfirm: v[21], + OpenDgrd: v[22], + PutFH: v[23], + PutPubFH: v[24], + PutRootFH: v[25], + Read: v[26], + ReadDir: v[27], + ReadLink: v[28], + Remove: v[29], + Rename: v[30], + Renew: v[31], + RestoreFH: v[32], + SaveFH: v[33], + SecInfo: v[34], + SetAttr: v[35], + Verify: v[36], + Write: v[37], + RelLockOwner: v[38], + } + + return stats, nil +} diff --git a/vendor/github.com/prometheus/procfs/nfs/parse_nfs.go b/vendor/github.com/prometheus/procfs/nfs/parse_nfs.go new file mode 100644 index 0000000..c0d3a5a --- /dev/null +++ b/vendor/github.com/prometheus/procfs/nfs/parse_nfs.go @@ -0,0 +1,67 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package nfs + +import ( + "bufio" + "fmt" + "io" + "strings" + + "github.com/prometheus/procfs/internal/util" +) + +// ParseClientRPCStats returns stats read from /proc/net/rpc/nfs +func ParseClientRPCStats(r io.Reader) (*ClientRPCStats, error) { + stats := &ClientRPCStats{} + + scanner := bufio.NewScanner(r) + for scanner.Scan() { + line := scanner.Text() + parts := strings.Fields(scanner.Text()) + // require at least + if len(parts) < 2 { + return nil, fmt.Errorf("invalid NFS metric line %q", line) + } + + values, err := util.ParseUint64s(parts[1:]) + if err != nil { + return nil, fmt.Errorf("error parsing NFS metric line: %s", err) + } + + switch metricLine := parts[0]; metricLine { + case "net": + stats.Network, err = parseNetwork(values) + case "rpc": + stats.ClientRPC, err = parseClientRPC(values) + case "proc2": + stats.V2Stats, err = parseV2Stats(values) + case "proc3": + stats.V3Stats, err = parseV3Stats(values) + case "proc4": + stats.ClientV4Stats, err = parseClientV4Stats(values) + default: + return nil, fmt.Errorf("unknown NFS metric line %q", metricLine) + } + if err != nil { + return nil, fmt.Errorf("errors parsing NFS metric line: %s", err) + } + } + + if err := scanner.Err(); err != nil { + return nil, fmt.Errorf("error scanning NFS file: %s", err) + } + + return stats, nil +} diff --git a/vendor/github.com/prometheus/procfs/nfs/parse_nfsd.go b/vendor/github.com/prometheus/procfs/nfs/parse_nfsd.go new file mode 100644 index 0000000..57bb4a3 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/nfs/parse_nfsd.go @@ -0,0 +1,89 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package nfs + +import ( + "bufio" + "fmt" + "io" + "strings" + + "github.com/prometheus/procfs/internal/util" +) + +// ParseServerRPCStats returns stats read from /proc/net/rpc/nfsd +func ParseServerRPCStats(r io.Reader) (*ServerRPCStats, error) { + stats := &ServerRPCStats{} + + scanner := bufio.NewScanner(r) + for scanner.Scan() { + line := scanner.Text() + parts := strings.Fields(scanner.Text()) + // require at least + if len(parts) < 2 { + return nil, fmt.Errorf("invalid NFSd metric line %q", line) + } + label := parts[0] + + var values []uint64 + var err error + if label == "th" { + if len(parts) < 3 { + return nil, fmt.Errorf("invalid NFSd th metric line %q", line) + } + values, err = util.ParseUint64s(parts[1:3]) + } else { + values, err = util.ParseUint64s(parts[1:]) + } + if err != nil { + return nil, fmt.Errorf("error parsing NFSd metric line: %s", err) + } + + switch metricLine := parts[0]; metricLine { + case "rc": + stats.ReplyCache, err = parseReplyCache(values) + case "fh": + stats.FileHandles, err = parseFileHandles(values) + case "io": + stats.InputOutput, err = parseInputOutput(values) + case "th": + stats.Threads, err = parseThreads(values) + case "ra": + stats.ReadAheadCache, err = parseReadAheadCache(values) + case "net": + stats.Network, err = parseNetwork(values) + case "rpc": + stats.ServerRPC, err = parseServerRPC(values) + case "proc2": + stats.V2Stats, err = parseV2Stats(values) + case "proc3": + stats.V3Stats, err = parseV3Stats(values) + case "proc4": + stats.ServerV4Stats, err = parseServerV4Stats(values) + case "proc4ops": + stats.V4Ops, err = parseV4Ops(values) + default: + return nil, fmt.Errorf("unknown NFSd metric line %q", metricLine) + } + if err != nil { + return nil, fmt.Errorf("errors parsing NFSd metric line: %s", err) + } + } + + if err := scanner.Err(); err != nil { + return nil, fmt.Errorf("error scanning NFSd file: %s", err) + } + + return stats, nil +} diff --git a/vendor/github.com/prometheus/procfs/proc.go b/vendor/github.com/prometheus/procfs/proc.go new file mode 100644 index 0000000..7cf5b8a --- /dev/null +++ b/vendor/github.com/prometheus/procfs/proc.go @@ -0,0 +1,238 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "bytes" + "fmt" + "io/ioutil" + "os" + "strconv" + "strings" +) + +// Proc provides information about a running process. +type Proc struct { + // The process ID. + PID int + + fs FS +} + +// Procs represents a list of Proc structs. +type Procs []Proc + +func (p Procs) Len() int { return len(p) } +func (p Procs) Swap(i, j int) { p[i], p[j] = p[j], p[i] } +func (p Procs) Less(i, j int) bool { return p[i].PID < p[j].PID } + +// Self returns a process for the current process read via /proc/self. +func Self() (Proc, error) { + fs, err := NewFS(DefaultMountPoint) + if err != nil { + return Proc{}, err + } + return fs.Self() +} + +// NewProc returns a process for the given pid under /proc. +func NewProc(pid int) (Proc, error) { + fs, err := NewFS(DefaultMountPoint) + if err != nil { + return Proc{}, err + } + return fs.NewProc(pid) +} + +// AllProcs returns a list of all currently available processes under /proc. +func AllProcs() (Procs, error) { + fs, err := NewFS(DefaultMountPoint) + if err != nil { + return Procs{}, err + } + return fs.AllProcs() +} + +// Self returns a process for the current process. +func (fs FS) Self() (Proc, error) { + p, err := os.Readlink(fs.Path("self")) + if err != nil { + return Proc{}, err + } + pid, err := strconv.Atoi(strings.Replace(p, string(fs), "", -1)) + if err != nil { + return Proc{}, err + } + return fs.NewProc(pid) +} + +// NewProc returns a process for the given pid. +func (fs FS) NewProc(pid int) (Proc, error) { + if _, err := os.Stat(fs.Path(strconv.Itoa(pid))); err != nil { + return Proc{}, err + } + return Proc{PID: pid, fs: fs}, nil +} + +// AllProcs returns a list of all currently available processes. +func (fs FS) AllProcs() (Procs, error) { + d, err := os.Open(fs.Path()) + if err != nil { + return Procs{}, err + } + defer d.Close() + + names, err := d.Readdirnames(-1) + if err != nil { + return Procs{}, fmt.Errorf("could not read %s: %s", d.Name(), err) + } + + p := Procs{} + for _, n := range names { + pid, err := strconv.ParseInt(n, 10, 64) + if err != nil { + continue + } + p = append(p, Proc{PID: int(pid), fs: fs}) + } + + return p, nil +} + +// CmdLine returns the command line of a process. +func (p Proc) CmdLine() ([]string, error) { + f, err := os.Open(p.path("cmdline")) + if err != nil { + return nil, err + } + defer f.Close() + + data, err := ioutil.ReadAll(f) + if err != nil { + return nil, err + } + + if len(data) < 1 { + return []string{}, nil + } + + return strings.Split(string(bytes.TrimRight(data, string("\x00"))), string(byte(0))), nil +} + +// Comm returns the command name of a process. +func (p Proc) Comm() (string, error) { + f, err := os.Open(p.path("comm")) + if err != nil { + return "", err + } + defer f.Close() + + data, err := ioutil.ReadAll(f) + if err != nil { + return "", err + } + + return strings.TrimSpace(string(data)), nil +} + +// Executable returns the absolute path of the executable command of a process. +func (p Proc) Executable() (string, error) { + exe, err := os.Readlink(p.path("exe")) + if os.IsNotExist(err) { + return "", nil + } + + return exe, err +} + +// FileDescriptors returns the currently open file descriptors of a process. +func (p Proc) FileDescriptors() ([]uintptr, error) { + names, err := p.fileDescriptors() + if err != nil { + return nil, err + } + + fds := make([]uintptr, len(names)) + for i, n := range names { + fd, err := strconv.ParseInt(n, 10, 32) + if err != nil { + return nil, fmt.Errorf("could not parse fd %s: %s", n, err) + } + fds[i] = uintptr(fd) + } + + return fds, nil +} + +// FileDescriptorTargets returns the targets of all file descriptors of a process. +// If a file descriptor is not a symlink to a file (like a socket), that value will be the empty string. +func (p Proc) FileDescriptorTargets() ([]string, error) { + names, err := p.fileDescriptors() + if err != nil { + return nil, err + } + + targets := make([]string, len(names)) + + for i, name := range names { + target, err := os.Readlink(p.path("fd", name)) + if err == nil { + targets[i] = target + } + } + + return targets, nil +} + +// FileDescriptorsLen returns the number of currently open file descriptors of +// a process. +func (p Proc) FileDescriptorsLen() (int, error) { + fds, err := p.fileDescriptors() + if err != nil { + return 0, err + } + + return len(fds), nil +} + +// MountStats retrieves statistics and configuration for mount points in a +// process's namespace. +func (p Proc) MountStats() ([]*Mount, error) { + f, err := os.Open(p.path("mountstats")) + if err != nil { + return nil, err + } + defer f.Close() + + return parseMountStats(f) +} + +func (p Proc) fileDescriptors() ([]string, error) { + d, err := os.Open(p.path("fd")) + if err != nil { + return nil, err + } + defer d.Close() + + names, err := d.Readdirnames(-1) + if err != nil { + return nil, fmt.Errorf("could not read %s: %s", d.Name(), err) + } + + return names, nil +} + +func (p Proc) path(pa ...string) string { + return p.fs.Path(append([]string{strconv.Itoa(p.PID)}, pa...)...) +} diff --git a/vendor/github.com/prometheus/procfs/proc_io.go b/vendor/github.com/prometheus/procfs/proc_io.go new file mode 100644 index 0000000..0251c83 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/proc_io.go @@ -0,0 +1,65 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "fmt" + "io/ioutil" + "os" +) + +// ProcIO models the content of /proc//io. +type ProcIO struct { + // Chars read. + RChar uint64 + // Chars written. + WChar uint64 + // Read syscalls. + SyscR uint64 + // Write syscalls. + SyscW uint64 + // Bytes read. + ReadBytes uint64 + // Bytes written. + WriteBytes uint64 + // Bytes written, but taking into account truncation. See + // Documentation/filesystems/proc.txt in the kernel sources for + // detailed explanation. + CancelledWriteBytes int64 +} + +// NewIO creates a new ProcIO instance from a given Proc instance. +func (p Proc) NewIO() (ProcIO, error) { + pio := ProcIO{} + + f, err := os.Open(p.path("io")) + if err != nil { + return pio, err + } + defer f.Close() + + data, err := ioutil.ReadAll(f) + if err != nil { + return pio, err + } + + ioFormat := "rchar: %d\nwchar: %d\nsyscr: %d\nsyscw: %d\n" + + "read_bytes: %d\nwrite_bytes: %d\n" + + "cancelled_write_bytes: %d\n" + + _, err = fmt.Sscanf(string(data), ioFormat, &pio.RChar, &pio.WChar, &pio.SyscR, + &pio.SyscW, &pio.ReadBytes, &pio.WriteBytes, &pio.CancelledWriteBytes) + + return pio, err +} diff --git a/vendor/github.com/prometheus/procfs/proc_limits.go b/vendor/github.com/prometheus/procfs/proc_limits.go new file mode 100644 index 0000000..f04ba6f --- /dev/null +++ b/vendor/github.com/prometheus/procfs/proc_limits.go @@ -0,0 +1,150 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "bufio" + "fmt" + "os" + "regexp" + "strconv" +) + +// ProcLimits represents the soft limits for each of the process's resource +// limits. For more information see getrlimit(2): +// http://man7.org/linux/man-pages/man2/getrlimit.2.html. +type ProcLimits struct { + // CPU time limit in seconds. + CPUTime int64 + // Maximum size of files that the process may create. + FileSize int64 + // Maximum size of the process's data segment (initialized data, + // uninitialized data, and heap). + DataSize int64 + // Maximum size of the process stack in bytes. + StackSize int64 + // Maximum size of a core file. + CoreFileSize int64 + // Limit of the process's resident set in pages. + ResidentSet int64 + // Maximum number of processes that can be created for the real user ID of + // the calling process. + Processes int64 + // Value one greater than the maximum file descriptor number that can be + // opened by this process. + OpenFiles int64 + // Maximum number of bytes of memory that may be locked into RAM. + LockedMemory int64 + // Maximum size of the process's virtual memory address space in bytes. + AddressSpace int64 + // Limit on the combined number of flock(2) locks and fcntl(2) leases that + // this process may establish. + FileLocks int64 + // Limit of signals that may be queued for the real user ID of the calling + // process. + PendingSignals int64 + // Limit on the number of bytes that can be allocated for POSIX message + // queues for the real user ID of the calling process. + MsqqueueSize int64 + // Limit of the nice priority set using setpriority(2) or nice(2). + NicePriority int64 + // Limit of the real-time priority set using sched_setscheduler(2) or + // sched_setparam(2). + RealtimePriority int64 + // Limit (in microseconds) on the amount of CPU time that a process + // scheduled under a real-time scheduling policy may consume without making + // a blocking system call. + RealtimeTimeout int64 +} + +const ( + limitsFields = 3 + limitsUnlimited = "unlimited" +) + +var ( + limitsDelimiter = regexp.MustCompile(" +") +) + +// NewLimits returns the current soft limits of the process. +func (p Proc) NewLimits() (ProcLimits, error) { + f, err := os.Open(p.path("limits")) + if err != nil { + return ProcLimits{}, err + } + defer f.Close() + + var ( + l = ProcLimits{} + s = bufio.NewScanner(f) + ) + for s.Scan() { + fields := limitsDelimiter.Split(s.Text(), limitsFields) + if len(fields) != limitsFields { + return ProcLimits{}, fmt.Errorf( + "couldn't parse %s line %s", f.Name(), s.Text()) + } + + switch fields[0] { + case "Max cpu time": + l.CPUTime, err = parseInt(fields[1]) + case "Max file size": + l.FileSize, err = parseInt(fields[1]) + case "Max data size": + l.DataSize, err = parseInt(fields[1]) + case "Max stack size": + l.StackSize, err = parseInt(fields[1]) + case "Max core file size": + l.CoreFileSize, err = parseInt(fields[1]) + case "Max resident set": + l.ResidentSet, err = parseInt(fields[1]) + case "Max processes": + l.Processes, err = parseInt(fields[1]) + case "Max open files": + l.OpenFiles, err = parseInt(fields[1]) + case "Max locked memory": + l.LockedMemory, err = parseInt(fields[1]) + case "Max address space": + l.AddressSpace, err = parseInt(fields[1]) + case "Max file locks": + l.FileLocks, err = parseInt(fields[1]) + case "Max pending signals": + l.PendingSignals, err = parseInt(fields[1]) + case "Max msgqueue size": + l.MsqqueueSize, err = parseInt(fields[1]) + case "Max nice priority": + l.NicePriority, err = parseInt(fields[1]) + case "Max realtime priority": + l.RealtimePriority, err = parseInt(fields[1]) + case "Max realtime timeout": + l.RealtimeTimeout, err = parseInt(fields[1]) + } + if err != nil { + return ProcLimits{}, err + } + } + + return l, s.Err() +} + +func parseInt(s string) (int64, error) { + if s == limitsUnlimited { + return -1, nil + } + i, err := strconv.ParseInt(s, 10, 64) + if err != nil { + return 0, fmt.Errorf("couldn't parse value %s: %s", s, err) + } + return i, nil +} diff --git a/vendor/github.com/prometheus/procfs/proc_ns.go b/vendor/github.com/prometheus/procfs/proc_ns.go new file mode 100644 index 0000000..d06c26e --- /dev/null +++ b/vendor/github.com/prometheus/procfs/proc_ns.go @@ -0,0 +1,68 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "fmt" + "os" + "strconv" + "strings" +) + +// Namespace represents a single namespace of a process. +type Namespace struct { + Type string // Namespace type. + Inode uint32 // Inode number of the namespace. If two processes are in the same namespace their inodes will match. +} + +// Namespaces contains all of the namespaces that the process is contained in. +type Namespaces map[string]Namespace + +// NewNamespaces reads from /proc/[pid/ns/* to get the namespaces of which the +// process is a member. +func (p Proc) NewNamespaces() (Namespaces, error) { + d, err := os.Open(p.path("ns")) + if err != nil { + return nil, err + } + defer d.Close() + + names, err := d.Readdirnames(-1) + if err != nil { + return nil, fmt.Errorf("failed to read contents of ns dir: %v", err) + } + + ns := make(Namespaces, len(names)) + for _, name := range names { + target, err := os.Readlink(p.path("ns", name)) + if err != nil { + return nil, err + } + + fields := strings.SplitN(target, ":", 2) + if len(fields) != 2 { + return nil, fmt.Errorf("failed to parse namespace type and inode from '%v'", target) + } + + typ := fields[0] + inode, err := strconv.ParseUint(strings.Trim(fields[1], "[]"), 10, 32) + if err != nil { + return nil, fmt.Errorf("failed to parse inode from '%v': %v", fields[1], err) + } + + ns[name] = Namespace{typ, uint32(inode)} + } + + return ns, nil +} diff --git a/vendor/github.com/prometheus/procfs/proc_stat.go b/vendor/github.com/prometheus/procfs/proc_stat.go new file mode 100644 index 0000000..3cf2a9f --- /dev/null +++ b/vendor/github.com/prometheus/procfs/proc_stat.go @@ -0,0 +1,188 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "bytes" + "fmt" + "io/ioutil" + "os" +) + +// Originally, this USER_HZ value was dynamically retrieved via a sysconf call +// which required cgo. However, that caused a lot of problems regarding +// cross-compilation. Alternatives such as running a binary to determine the +// value, or trying to derive it in some other way were all problematic. After +// much research it was determined that USER_HZ is actually hardcoded to 100 on +// all Go-supported platforms as of the time of this writing. This is why we +// decided to hardcode it here as well. It is not impossible that there could +// be systems with exceptions, but they should be very exotic edge cases, and +// in that case, the worst outcome will be two misreported metrics. +// +// See also the following discussions: +// +// - https://github.com/prometheus/node_exporter/issues/52 +// - https://github.com/prometheus/procfs/pull/2 +// - http://stackoverflow.com/questions/17410841/how-does-user-hz-solve-the-jiffy-scaling-issue +const userHZ = 100 + +// ProcStat provides status information about the process, +// read from /proc/[pid]/stat. +type ProcStat struct { + // The process ID. + PID int + // The filename of the executable. + Comm string + // The process state. + State string + // The PID of the parent of this process. + PPID int + // The process group ID of the process. + PGRP int + // The session ID of the process. + Session int + // The controlling terminal of the process. + TTY int + // The ID of the foreground process group of the controlling terminal of + // the process. + TPGID int + // The kernel flags word of the process. + Flags uint + // The number of minor faults the process has made which have not required + // loading a memory page from disk. + MinFlt uint + // The number of minor faults that the process's waited-for children have + // made. + CMinFlt uint + // The number of major faults the process has made which have required + // loading a memory page from disk. + MajFlt uint + // The number of major faults that the process's waited-for children have + // made. + CMajFlt uint + // Amount of time that this process has been scheduled in user mode, + // measured in clock ticks. + UTime uint + // Amount of time that this process has been scheduled in kernel mode, + // measured in clock ticks. + STime uint + // Amount of time that this process's waited-for children have been + // scheduled in user mode, measured in clock ticks. + CUTime uint + // Amount of time that this process's waited-for children have been + // scheduled in kernel mode, measured in clock ticks. + CSTime uint + // For processes running a real-time scheduling policy, this is the negated + // scheduling priority, minus one. + Priority int + // The nice value, a value in the range 19 (low priority) to -20 (high + // priority). + Nice int + // Number of threads in this process. + NumThreads int + // The time the process started after system boot, the value is expressed + // in clock ticks. + Starttime uint64 + // Virtual memory size in bytes. + VSize int + // Resident set size in pages. + RSS int + + fs FS +} + +// NewStat returns the current status information of the process. +func (p Proc) NewStat() (ProcStat, error) { + f, err := os.Open(p.path("stat")) + if err != nil { + return ProcStat{}, err + } + defer f.Close() + + data, err := ioutil.ReadAll(f) + if err != nil { + return ProcStat{}, err + } + + var ( + ignore int + + s = ProcStat{PID: p.PID, fs: p.fs} + l = bytes.Index(data, []byte("(")) + r = bytes.LastIndex(data, []byte(")")) + ) + + if l < 0 || r < 0 { + return ProcStat{}, fmt.Errorf( + "unexpected format, couldn't extract comm: %s", + data, + ) + } + + s.Comm = string(data[l+1 : r]) + _, err = fmt.Fscan( + bytes.NewBuffer(data[r+2:]), + &s.State, + &s.PPID, + &s.PGRP, + &s.Session, + &s.TTY, + &s.TPGID, + &s.Flags, + &s.MinFlt, + &s.CMinFlt, + &s.MajFlt, + &s.CMajFlt, + &s.UTime, + &s.STime, + &s.CUTime, + &s.CSTime, + &s.Priority, + &s.Nice, + &s.NumThreads, + &ignore, + &s.Starttime, + &s.VSize, + &s.RSS, + ) + if err != nil { + return ProcStat{}, err + } + + return s, nil +} + +// VirtualMemory returns the virtual memory size in bytes. +func (s ProcStat) VirtualMemory() int { + return s.VSize +} + +// ResidentMemory returns the resident memory size in bytes. +func (s ProcStat) ResidentMemory() int { + return s.RSS * os.Getpagesize() +} + +// StartTime returns the unix timestamp of the process in seconds. +func (s ProcStat) StartTime() (float64, error) { + stat, err := s.fs.NewStat() + if err != nil { + return 0, err + } + return float64(stat.BootTime) + (float64(s.Starttime) / userHZ), nil +} + +// CPUTime returns the total CPU user and system time in seconds. +func (s ProcStat) CPUTime() float64 { + return float64(s.UTime+s.STime) / userHZ +} diff --git a/vendor/github.com/prometheus/procfs/stat.go b/vendor/github.com/prometheus/procfs/stat.go new file mode 100644 index 0000000..61eb6b0 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/stat.go @@ -0,0 +1,232 @@ +// Copyright 2018 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "bufio" + "fmt" + "io" + "os" + "strconv" + "strings" +) + +// CPUStat shows how much time the cpu spend in various stages. +type CPUStat struct { + User float64 + Nice float64 + System float64 + Idle float64 + Iowait float64 + IRQ float64 + SoftIRQ float64 + Steal float64 + Guest float64 + GuestNice float64 +} + +// SoftIRQStat represent the softirq statistics as exported in the procfs stat file. +// A nice introduction can be found at https://0xax.gitbooks.io/linux-insides/content/interrupts/interrupts-9.html +// It is possible to get per-cpu stats by reading /proc/softirqs +type SoftIRQStat struct { + Hi uint64 + Timer uint64 + NetTx uint64 + NetRx uint64 + Block uint64 + BlockIoPoll uint64 + Tasklet uint64 + Sched uint64 + Hrtimer uint64 + Rcu uint64 +} + +// Stat represents kernel/system statistics. +type Stat struct { + // Boot time in seconds since the Epoch. + BootTime uint64 + // Summed up cpu statistics. + CPUTotal CPUStat + // Per-CPU statistics. + CPU []CPUStat + // Number of times interrupts were handled, which contains numbered and unnumbered IRQs. + IRQTotal uint64 + // Number of times a numbered IRQ was triggered. + IRQ []uint64 + // Number of times a context switch happened. + ContextSwitches uint64 + // Number of times a process was created. + ProcessCreated uint64 + // Number of processes currently running. + ProcessesRunning uint64 + // Number of processes currently blocked (waiting for IO). + ProcessesBlocked uint64 + // Number of times a softirq was scheduled. + SoftIRQTotal uint64 + // Detailed softirq statistics. + SoftIRQ SoftIRQStat +} + +// NewStat returns kernel/system statistics read from /proc/stat. +func NewStat() (Stat, error) { + fs, err := NewFS(DefaultMountPoint) + if err != nil { + return Stat{}, err + } + + return fs.NewStat() +} + +// Parse a cpu statistics line and returns the CPUStat struct plus the cpu id (or -1 for the overall sum). +func parseCPUStat(line string) (CPUStat, int64, error) { + cpuStat := CPUStat{} + var cpu string + + count, err := fmt.Sscanf(line, "%s %f %f %f %f %f %f %f %f %f %f", + &cpu, + &cpuStat.User, &cpuStat.Nice, &cpuStat.System, &cpuStat.Idle, + &cpuStat.Iowait, &cpuStat.IRQ, &cpuStat.SoftIRQ, &cpuStat.Steal, + &cpuStat.Guest, &cpuStat.GuestNice) + + if err != nil && err != io.EOF { + return CPUStat{}, -1, fmt.Errorf("couldn't parse %s (cpu): %s", line, err) + } + if count == 0 { + return CPUStat{}, -1, fmt.Errorf("couldn't parse %s (cpu): 0 elements parsed", line) + } + + cpuStat.User /= userHZ + cpuStat.Nice /= userHZ + cpuStat.System /= userHZ + cpuStat.Idle /= userHZ + cpuStat.Iowait /= userHZ + cpuStat.IRQ /= userHZ + cpuStat.SoftIRQ /= userHZ + cpuStat.Steal /= userHZ + cpuStat.Guest /= userHZ + cpuStat.GuestNice /= userHZ + + if cpu == "cpu" { + return cpuStat, -1, nil + } + + cpuID, err := strconv.ParseInt(cpu[3:], 10, 64) + if err != nil { + return CPUStat{}, -1, fmt.Errorf("couldn't parse %s (cpu/cpuid): %s", line, err) + } + + return cpuStat, cpuID, nil +} + +// Parse a softirq line. +func parseSoftIRQStat(line string) (SoftIRQStat, uint64, error) { + softIRQStat := SoftIRQStat{} + var total uint64 + var prefix string + + _, err := fmt.Sscanf(line, "%s %d %d %d %d %d %d %d %d %d %d %d", + &prefix, &total, + &softIRQStat.Hi, &softIRQStat.Timer, &softIRQStat.NetTx, &softIRQStat.NetRx, + &softIRQStat.Block, &softIRQStat.BlockIoPoll, + &softIRQStat.Tasklet, &softIRQStat.Sched, + &softIRQStat.Hrtimer, &softIRQStat.Rcu) + + if err != nil { + return SoftIRQStat{}, 0, fmt.Errorf("couldn't parse %s (softirq): %s", line, err) + } + + return softIRQStat, total, nil +} + +// NewStat returns an information about current kernel/system statistics. +func (fs FS) NewStat() (Stat, error) { + // See https://www.kernel.org/doc/Documentation/filesystems/proc.txt + + f, err := os.Open(fs.Path("stat")) + if err != nil { + return Stat{}, err + } + defer f.Close() + + stat := Stat{} + + scanner := bufio.NewScanner(f) + for scanner.Scan() { + line := scanner.Text() + parts := strings.Fields(scanner.Text()) + // require at least + if len(parts) < 2 { + continue + } + switch { + case parts[0] == "btime": + if stat.BootTime, err = strconv.ParseUint(parts[1], 10, 64); err != nil { + return Stat{}, fmt.Errorf("couldn't parse %s (btime): %s", parts[1], err) + } + case parts[0] == "intr": + if stat.IRQTotal, err = strconv.ParseUint(parts[1], 10, 64); err != nil { + return Stat{}, fmt.Errorf("couldn't parse %s (intr): %s", parts[1], err) + } + numberedIRQs := parts[2:] + stat.IRQ = make([]uint64, len(numberedIRQs)) + for i, count := range numberedIRQs { + if stat.IRQ[i], err = strconv.ParseUint(count, 10, 64); err != nil { + return Stat{}, fmt.Errorf("couldn't parse %s (intr%d): %s", count, i, err) + } + } + case parts[0] == "ctxt": + if stat.ContextSwitches, err = strconv.ParseUint(parts[1], 10, 64); err != nil { + return Stat{}, fmt.Errorf("couldn't parse %s (ctxt): %s", parts[1], err) + } + case parts[0] == "processes": + if stat.ProcessCreated, err = strconv.ParseUint(parts[1], 10, 64); err != nil { + return Stat{}, fmt.Errorf("couldn't parse %s (processes): %s", parts[1], err) + } + case parts[0] == "procs_running": + if stat.ProcessesRunning, err = strconv.ParseUint(parts[1], 10, 64); err != nil { + return Stat{}, fmt.Errorf("couldn't parse %s (procs_running): %s", parts[1], err) + } + case parts[0] == "procs_blocked": + if stat.ProcessesBlocked, err = strconv.ParseUint(parts[1], 10, 64); err != nil { + return Stat{}, fmt.Errorf("couldn't parse %s (procs_blocked): %s", parts[1], err) + } + case parts[0] == "softirq": + softIRQStats, total, err := parseSoftIRQStat(line) + if err != nil { + return Stat{}, err + } + stat.SoftIRQTotal = total + stat.SoftIRQ = softIRQStats + case strings.HasPrefix(parts[0], "cpu"): + cpuStat, cpuID, err := parseCPUStat(line) + if err != nil { + return Stat{}, err + } + if cpuID == -1 { + stat.CPUTotal = cpuStat + } else { + for int64(len(stat.CPU)) <= cpuID { + stat.CPU = append(stat.CPU, CPUStat{}) + } + stat.CPU[cpuID] = cpuStat + } + } + } + + if err := scanner.Err(); err != nil { + return Stat{}, fmt.Errorf("couldn't parse %s: %s", f.Name(), err) + } + + return stat, nil +} diff --git a/vendor/github.com/prometheus/procfs/ttar b/vendor/github.com/prometheus/procfs/ttar new file mode 100644 index 0000000..b0171a1 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/ttar @@ -0,0 +1,389 @@ +#!/usr/bin/env bash + +# Purpose: plain text tar format +# Limitations: - only suitable for text files, directories, and symlinks +# - stores only filename, content, and mode +# - not designed for untrusted input +# +# Note: must work with bash version 3.2 (macOS) + +# Copyright 2017 Roger Luethi +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -o errexit -o nounset + +# Sanitize environment (for instance, standard sorting of glob matches) +export LC_ALL=C + +path="" +CMD="" +ARG_STRING="$*" + +#------------------------------------------------------------------------------ +# Not all sed implementations can work on null bytes. In order to make ttar +# work out of the box on macOS, use Python as a stream editor. + +USE_PYTHON=0 + +PYTHON_CREATE_FILTER=$(cat << 'PCF' +#!/usr/bin/env python + +import re +import sys + +for line in sys.stdin: + line = re.sub(r'EOF', r'\EOF', line) + line = re.sub(r'NULLBYTE', r'\NULLBYTE', line) + line = re.sub('\x00', r'NULLBYTE', line) + sys.stdout.write(line) +PCF +) + +PYTHON_EXTRACT_FILTER=$(cat << 'PEF' +#!/usr/bin/env python + +import re +import sys + +for line in sys.stdin: + line = re.sub(r'(?/dev/null; then + echo "ERROR Python not found. Aborting." + exit 2 + fi + USE_PYTHON=1 + fi +} + +#------------------------------------------------------------------------------ + +function usage { + bname=$(basename "$0") + cat << USAGE +Usage: $bname [-C ] -c -f (create archive) + $bname -t -f (list archive contents) + $bname [-C ] -x -f (extract archive) + +Options: + -C (change directory) + -v (verbose) + +Example: Change to sysfs directory, create ttar file from fixtures directory + $bname -C sysfs -c -f sysfs/fixtures.ttar fixtures/ +USAGE +exit "$1" +} + +function vecho { + if [ "${VERBOSE:-}" == "yes" ]; then + echo >&7 "$@" + fi +} + +function set_cmd { + if [ -n "$CMD" ]; then + echo "ERROR: more than one command given" + echo + usage 2 + fi + CMD=$1 +} + +unset VERBOSE + +while getopts :cf:htxvC: opt; do + case $opt in + c) + set_cmd "create" + ;; + f) + ARCHIVE=$OPTARG + ;; + h) + usage 0 + ;; + t) + set_cmd "list" + ;; + x) + set_cmd "extract" + ;; + v) + VERBOSE=yes + exec 7>&1 + ;; + C) + CDIR=$OPTARG + ;; + *) + echo >&2 "ERROR: invalid option -$OPTARG" + echo + usage 1 + ;; + esac +done + +# Remove processed options from arguments +shift $(( OPTIND - 1 )); + +if [ "${CMD:-}" == "" ]; then + echo >&2 "ERROR: no command given" + echo + usage 1 +elif [ "${ARCHIVE:-}" == "" ]; then + echo >&2 "ERROR: no archive name given" + echo + usage 1 +fi + +function list { + local path="" + local size=0 + local line_no=0 + local ttar_file=$1 + if [ -n "${2:-}" ]; then + echo >&2 "ERROR: too many arguments." + echo + usage 1 + fi + if [ ! -e "$ttar_file" ]; then + echo >&2 "ERROR: file not found ($ttar_file)" + echo + usage 1 + fi + while read -r line; do + line_no=$(( line_no + 1 )) + if [ $size -gt 0 ]; then + size=$(( size - 1 )) + continue + fi + if [[ $line =~ ^Path:\ (.*)$ ]]; then + path=${BASH_REMATCH[1]} + elif [[ $line =~ ^Lines:\ (.*)$ ]]; then + size=${BASH_REMATCH[1]} + echo "$path" + elif [[ $line =~ ^Directory:\ (.*)$ ]]; then + path=${BASH_REMATCH[1]} + echo "$path/" + elif [[ $line =~ ^SymlinkTo:\ (.*)$ ]]; then + echo "$path -> ${BASH_REMATCH[1]}" + fi + done < "$ttar_file" +} + +function extract { + local path="" + local size=0 + local line_no=0 + local ttar_file=$1 + if [ -n "${2:-}" ]; then + echo >&2 "ERROR: too many arguments." + echo + usage 1 + fi + if [ ! -e "$ttar_file" ]; then + echo >&2 "ERROR: file not found ($ttar_file)" + echo + usage 1 + fi + while IFS= read -r line; do + line_no=$(( line_no + 1 )) + local eof_without_newline + if [ "$size" -gt 0 ]; then + if [[ "$line" =~ [^\\]EOF ]]; then + # An EOF not preceeded by a backslash indicates that the line + # does not end with a newline + eof_without_newline=1 + else + eof_without_newline=0 + fi + # Replace NULLBYTE with null byte if at beginning of line + # Replace NULLBYTE with null byte unless preceeded by backslash + # Remove one backslash in front of NULLBYTE (if any) + # Remove EOF unless preceeded by backslash + # Remove one backslash in front of EOF + if [ $USE_PYTHON -eq 1 ]; then + echo -n "$line" | python -c "$PYTHON_EXTRACT_FILTER" >> "$path" + else + # The repeated pattern makes up for sed's lack of negative + # lookbehind assertions (for consecutive null bytes). + echo -n "$line" | \ + sed -e 's/^NULLBYTE/\x0/g; + s/\([^\\]\)NULLBYTE/\1\x0/g; + s/\([^\\]\)NULLBYTE/\1\x0/g; + s/\\NULLBYTE/NULLBYTE/g; + s/\([^\\]\)EOF/\1/g; + s/\\EOF/EOF/g; + ' >> "$path" + fi + if [[ "$eof_without_newline" -eq 0 ]]; then + echo >> "$path" + fi + size=$(( size - 1 )) + continue + fi + if [[ $line =~ ^Path:\ (.*)$ ]]; then + path=${BASH_REMATCH[1]} + if [ -e "$path" ] || [ -L "$path" ]; then + rm "$path" + fi + elif [[ $line =~ ^Lines:\ (.*)$ ]]; then + size=${BASH_REMATCH[1]} + # Create file even if it is zero-length. + touch "$path" + vecho " $path" + elif [[ $line =~ ^Mode:\ (.*)$ ]]; then + mode=${BASH_REMATCH[1]} + chmod "$mode" "$path" + vecho "$mode" + elif [[ $line =~ ^Directory:\ (.*)$ ]]; then + path=${BASH_REMATCH[1]} + mkdir -p "$path" + vecho " $path/" + elif [[ $line =~ ^SymlinkTo:\ (.*)$ ]]; then + ln -s "${BASH_REMATCH[1]}" "$path" + vecho " $path -> ${BASH_REMATCH[1]}" + elif [[ $line =~ ^# ]]; then + # Ignore comments between files + continue + else + echo >&2 "ERROR: Unknown keyword on line $line_no: $line" + exit 1 + fi + done < "$ttar_file" +} + +function div { + echo "# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" \ + "- - - - - -" +} + +function get_mode { + local mfile=$1 + if [ -z "${STAT_OPTION:-}" ]; then + if stat -c '%a' "$mfile" >/dev/null 2>&1; then + # GNU stat + STAT_OPTION='-c' + STAT_FORMAT='%a' + else + # BSD stat + STAT_OPTION='-f' + # Octal output, user/group/other (omit file type, sticky bit) + STAT_FORMAT='%OLp' + fi + fi + stat "${STAT_OPTION}" "${STAT_FORMAT}" "$mfile" +} + +function _create { + shopt -s nullglob + local mode + local eof_without_newline + while (( "$#" )); do + file=$1 + if [ -L "$file" ]; then + echo "Path: $file" + symlinkTo=$(readlink "$file") + echo "SymlinkTo: $symlinkTo" + vecho " $file -> $symlinkTo" + div + elif [ -d "$file" ]; then + # Strip trailing slash (if there is one) + file=${file%/} + echo "Directory: $file" + mode=$(get_mode "$file") + echo "Mode: $mode" + vecho "$mode $file/" + div + # Find all files and dirs, including hidden/dot files + for x in "$file/"{*,.[^.]*}; do + _create "$x" + done + elif [ -f "$file" ]; then + echo "Path: $file" + lines=$(wc -l "$file"|awk '{print $1}') + eof_without_newline=0 + if [[ "$(wc -c "$file"|awk '{print $1}')" -gt 0 ]] && \ + [[ "$(tail -c 1 "$file" | wc -l)" -eq 0 ]]; then + eof_without_newline=1 + lines=$((lines+1)) + fi + echo "Lines: $lines" + # Add backslash in front of EOF + # Add backslash in front of NULLBYTE + # Replace null byte with NULLBYTE + if [ $USE_PYTHON -eq 1 ]; then + < "$file" python -c "$PYTHON_CREATE_FILTER" + else + < "$file" \ + sed 's/EOF/\\EOF/g; + s/NULLBYTE/\\NULLBYTE/g; + s/\x0/NULLBYTE/g; + ' + fi + if [[ "$eof_without_newline" -eq 1 ]]; then + # Finish line with EOF to indicate that the original line did + # not end with a linefeed + echo "EOF" + fi + mode=$(get_mode "$file") + echo "Mode: $mode" + vecho "$mode $file" + div + else + echo >&2 "ERROR: file not found ($file in $(pwd))" + exit 2 + fi + shift + done +} + +function create { + ttar_file=$1 + shift + if [ -z "${1:-}" ]; then + echo >&2 "ERROR: missing arguments." + echo + usage 1 + fi + if [ -e "$ttar_file" ]; then + rm "$ttar_file" + fi + exec > "$ttar_file" + echo "# Archive created by ttar $ARG_STRING" + _create "$@" +} + +test_environment + +if [ -n "${CDIR:-}" ]; then + if [[ "$ARCHIVE" != /* ]]; then + # Relative path: preserve the archive's location before changing + # directory + ARCHIVE="$(pwd)/$ARCHIVE" + fi + cd "$CDIR" +fi + +"$CMD" "$ARCHIVE" "$@" diff --git a/vendor/github.com/prometheus/procfs/xfrm.go b/vendor/github.com/prometheus/procfs/xfrm.go new file mode 100644 index 0000000..ffe9df5 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/xfrm.go @@ -0,0 +1,187 @@ +// Copyright 2017 Prometheus Team +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package procfs + +import ( + "bufio" + "fmt" + "os" + "strconv" + "strings" +) + +// XfrmStat models the contents of /proc/net/xfrm_stat. +type XfrmStat struct { + // All errors which are not matched by other + XfrmInError int + // No buffer is left + XfrmInBufferError int + // Header Error + XfrmInHdrError int + // No state found + // i.e. either inbound SPI, address, or IPSEC protocol at SA is wrong + XfrmInNoStates int + // Transformation protocol specific error + // e.g. SA Key is wrong + XfrmInStateProtoError int + // Transformation mode specific error + XfrmInStateModeError int + // Sequence error + // e.g. sequence number is out of window + XfrmInStateSeqError int + // State is expired + XfrmInStateExpired int + // State has mismatch option + // e.g. UDP encapsulation type is mismatched + XfrmInStateMismatch int + // State is invalid + XfrmInStateInvalid int + // No matching template for states + // e.g. Inbound SAs are correct but SP rule is wrong + XfrmInTmplMismatch int + // No policy is found for states + // e.g. Inbound SAs are correct but no SP is found + XfrmInNoPols int + // Policy discards + XfrmInPolBlock int + // Policy error + XfrmInPolError int + // All errors which are not matched by others + XfrmOutError int + // Bundle generation error + XfrmOutBundleGenError int + // Bundle check error + XfrmOutBundleCheckError int + // No state was found + XfrmOutNoStates int + // Transformation protocol specific error + XfrmOutStateProtoError int + // Transportation mode specific error + XfrmOutStateModeError int + // Sequence error + // i.e sequence number overflow + XfrmOutStateSeqError int + // State is expired + XfrmOutStateExpired int + // Policy discads + XfrmOutPolBlock int + // Policy is dead + XfrmOutPolDead int + // Policy Error + XfrmOutPolError int + XfrmFwdHdrError int + XfrmOutStateInvalid int + XfrmAcquireError int +} + +// NewXfrmStat reads the xfrm_stat statistics. +func NewXfrmStat() (XfrmStat, error) { + fs, err := NewFS(DefaultMountPoint) + if err != nil { + return XfrmStat{}, err + } + + return fs.NewXfrmStat() +} + +// NewXfrmStat reads the xfrm_stat statistics from the 'proc' filesystem. +func (fs FS) NewXfrmStat() (XfrmStat, error) { + file, err := os.Open(fs.Path("net/xfrm_stat")) + if err != nil { + return XfrmStat{}, err + } + defer file.Close() + + var ( + x = XfrmStat{} + s = bufio.NewScanner(file) + ) + + for s.Scan() { + fields := strings.Fields(s.Text()) + + if len(fields) != 2 { + return XfrmStat{}, fmt.Errorf( + "couldnt parse %s line %s", file.Name(), s.Text()) + } + + name := fields[0] + value, err := strconv.Atoi(fields[1]) + if err != nil { + return XfrmStat{}, err + } + + switch name { + case "XfrmInError": + x.XfrmInError = value + case "XfrmInBufferError": + x.XfrmInBufferError = value + case "XfrmInHdrError": + x.XfrmInHdrError = value + case "XfrmInNoStates": + x.XfrmInNoStates = value + case "XfrmInStateProtoError": + x.XfrmInStateProtoError = value + case "XfrmInStateModeError": + x.XfrmInStateModeError = value + case "XfrmInStateSeqError": + x.XfrmInStateSeqError = value + case "XfrmInStateExpired": + x.XfrmInStateExpired = value + case "XfrmInStateInvalid": + x.XfrmInStateInvalid = value + case "XfrmInTmplMismatch": + x.XfrmInTmplMismatch = value + case "XfrmInNoPols": + x.XfrmInNoPols = value + case "XfrmInPolBlock": + x.XfrmInPolBlock = value + case "XfrmInPolError": + x.XfrmInPolError = value + case "XfrmOutError": + x.XfrmOutError = value + case "XfrmInStateMismatch": + x.XfrmInStateMismatch = value + case "XfrmOutBundleGenError": + x.XfrmOutBundleGenError = value + case "XfrmOutBundleCheckError": + x.XfrmOutBundleCheckError = value + case "XfrmOutNoStates": + x.XfrmOutNoStates = value + case "XfrmOutStateProtoError": + x.XfrmOutStateProtoError = value + case "XfrmOutStateModeError": + x.XfrmOutStateModeError = value + case "XfrmOutStateSeqError": + x.XfrmOutStateSeqError = value + case "XfrmOutStateExpired": + x.XfrmOutStateExpired = value + case "XfrmOutPolBlock": + x.XfrmOutPolBlock = value + case "XfrmOutPolDead": + x.XfrmOutPolDead = value + case "XfrmOutPolError": + x.XfrmOutPolError = value + case "XfrmFwdHdrError": + x.XfrmFwdHdrError = value + case "XfrmOutStateInvalid": + x.XfrmOutStateInvalid = value + case "XfrmAcquireError": + x.XfrmAcquireError = value + } + + } + + return x, s.Err() +} diff --git a/vendor/github.com/prometheus/procfs/xfs/parse.go b/vendor/github.com/prometheus/procfs/xfs/parse.go new file mode 100644 index 0000000..2bc0ef3 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/xfs/parse.go @@ -0,0 +1,330 @@ +// Copyright 2017 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package xfs + +import ( + "bufio" + "fmt" + "io" + "strings" + + "github.com/prometheus/procfs/internal/util" +) + +// ParseStats parses a Stats from an input io.Reader, using the format +// found in /proc/fs/xfs/stat. +func ParseStats(r io.Reader) (*Stats, error) { + const ( + // Fields parsed into stats structures. + fieldExtentAlloc = "extent_alloc" + fieldAbt = "abt" + fieldBlkMap = "blk_map" + fieldBmbt = "bmbt" + fieldDir = "dir" + fieldTrans = "trans" + fieldIg = "ig" + fieldLog = "log" + fieldRw = "rw" + fieldAttr = "attr" + fieldIcluster = "icluster" + fieldVnodes = "vnodes" + fieldBuf = "buf" + fieldXpc = "xpc" + + // Unimplemented at this time due to lack of documentation. + fieldPushAil = "push_ail" + fieldXstrat = "xstrat" + fieldAbtb2 = "abtb2" + fieldAbtc2 = "abtc2" + fieldBmbt2 = "bmbt2" + fieldIbt2 = "ibt2" + fieldFibt2 = "fibt2" + fieldQm = "qm" + fieldDebug = "debug" + ) + + var xfss Stats + + s := bufio.NewScanner(r) + for s.Scan() { + // Expect at least a string label and a single integer value, ex: + // - abt 0 + // - rw 1 2 + ss := strings.Fields(string(s.Bytes())) + if len(ss) < 2 { + continue + } + label := ss[0] + + // Extended precision counters are uint64 values. + if label == fieldXpc { + us, err := util.ParseUint64s(ss[1:]) + if err != nil { + return nil, err + } + + xfss.ExtendedPrecision, err = extendedPrecisionStats(us) + if err != nil { + return nil, err + } + + continue + } + + // All other counters are uint32 values. + us, err := util.ParseUint32s(ss[1:]) + if err != nil { + return nil, err + } + + switch label { + case fieldExtentAlloc: + xfss.ExtentAllocation, err = extentAllocationStats(us) + case fieldAbt: + xfss.AllocationBTree, err = btreeStats(us) + case fieldBlkMap: + xfss.BlockMapping, err = blockMappingStats(us) + case fieldBmbt: + xfss.BlockMapBTree, err = btreeStats(us) + case fieldDir: + xfss.DirectoryOperation, err = directoryOperationStats(us) + case fieldTrans: + xfss.Transaction, err = transactionStats(us) + case fieldIg: + xfss.InodeOperation, err = inodeOperationStats(us) + case fieldLog: + xfss.LogOperation, err = logOperationStats(us) + case fieldRw: + xfss.ReadWrite, err = readWriteStats(us) + case fieldAttr: + xfss.AttributeOperation, err = attributeOperationStats(us) + case fieldIcluster: + xfss.InodeClustering, err = inodeClusteringStats(us) + case fieldVnodes: + xfss.Vnode, err = vnodeStats(us) + case fieldBuf: + xfss.Buffer, err = bufferStats(us) + } + if err != nil { + return nil, err + } + } + + return &xfss, s.Err() +} + +// extentAllocationStats builds an ExtentAllocationStats from a slice of uint32s. +func extentAllocationStats(us []uint32) (ExtentAllocationStats, error) { + if l := len(us); l != 4 { + return ExtentAllocationStats{}, fmt.Errorf("incorrect number of values for XFS extent allocation stats: %d", l) + } + + return ExtentAllocationStats{ + ExtentsAllocated: us[0], + BlocksAllocated: us[1], + ExtentsFreed: us[2], + BlocksFreed: us[3], + }, nil +} + +// btreeStats builds a BTreeStats from a slice of uint32s. +func btreeStats(us []uint32) (BTreeStats, error) { + if l := len(us); l != 4 { + return BTreeStats{}, fmt.Errorf("incorrect number of values for XFS btree stats: %d", l) + } + + return BTreeStats{ + Lookups: us[0], + Compares: us[1], + RecordsInserted: us[2], + RecordsDeleted: us[3], + }, nil +} + +// BlockMappingStat builds a BlockMappingStats from a slice of uint32s. +func blockMappingStats(us []uint32) (BlockMappingStats, error) { + if l := len(us); l != 7 { + return BlockMappingStats{}, fmt.Errorf("incorrect number of values for XFS block mapping stats: %d", l) + } + + return BlockMappingStats{ + Reads: us[0], + Writes: us[1], + Unmaps: us[2], + ExtentListInsertions: us[3], + ExtentListDeletions: us[4], + ExtentListLookups: us[5], + ExtentListCompares: us[6], + }, nil +} + +// DirectoryOperationStats builds a DirectoryOperationStats from a slice of uint32s. +func directoryOperationStats(us []uint32) (DirectoryOperationStats, error) { + if l := len(us); l != 4 { + return DirectoryOperationStats{}, fmt.Errorf("incorrect number of values for XFS directory operation stats: %d", l) + } + + return DirectoryOperationStats{ + Lookups: us[0], + Creates: us[1], + Removes: us[2], + Getdents: us[3], + }, nil +} + +// TransactionStats builds a TransactionStats from a slice of uint32s. +func transactionStats(us []uint32) (TransactionStats, error) { + if l := len(us); l != 3 { + return TransactionStats{}, fmt.Errorf("incorrect number of values for XFS transaction stats: %d", l) + } + + return TransactionStats{ + Sync: us[0], + Async: us[1], + Empty: us[2], + }, nil +} + +// InodeOperationStats builds an InodeOperationStats from a slice of uint32s. +func inodeOperationStats(us []uint32) (InodeOperationStats, error) { + if l := len(us); l != 7 { + return InodeOperationStats{}, fmt.Errorf("incorrect number of values for XFS inode operation stats: %d", l) + } + + return InodeOperationStats{ + Attempts: us[0], + Found: us[1], + Recycle: us[2], + Missed: us[3], + Duplicate: us[4], + Reclaims: us[5], + AttributeChange: us[6], + }, nil +} + +// LogOperationStats builds a LogOperationStats from a slice of uint32s. +func logOperationStats(us []uint32) (LogOperationStats, error) { + if l := len(us); l != 5 { + return LogOperationStats{}, fmt.Errorf("incorrect number of values for XFS log operation stats: %d", l) + } + + return LogOperationStats{ + Writes: us[0], + Blocks: us[1], + NoInternalBuffers: us[2], + Force: us[3], + ForceSleep: us[4], + }, nil +} + +// ReadWriteStats builds a ReadWriteStats from a slice of uint32s. +func readWriteStats(us []uint32) (ReadWriteStats, error) { + if l := len(us); l != 2 { + return ReadWriteStats{}, fmt.Errorf("incorrect number of values for XFS read write stats: %d", l) + } + + return ReadWriteStats{ + Read: us[0], + Write: us[1], + }, nil +} + +// AttributeOperationStats builds an AttributeOperationStats from a slice of uint32s. +func attributeOperationStats(us []uint32) (AttributeOperationStats, error) { + if l := len(us); l != 4 { + return AttributeOperationStats{}, fmt.Errorf("incorrect number of values for XFS attribute operation stats: %d", l) + } + + return AttributeOperationStats{ + Get: us[0], + Set: us[1], + Remove: us[2], + List: us[3], + }, nil +} + +// InodeClusteringStats builds an InodeClusteringStats from a slice of uint32s. +func inodeClusteringStats(us []uint32) (InodeClusteringStats, error) { + if l := len(us); l != 3 { + return InodeClusteringStats{}, fmt.Errorf("incorrect number of values for XFS inode clustering stats: %d", l) + } + + return InodeClusteringStats{ + Iflush: us[0], + Flush: us[1], + FlushInode: us[2], + }, nil +} + +// VnodeStats builds a VnodeStats from a slice of uint32s. +func vnodeStats(us []uint32) (VnodeStats, error) { + // The attribute "Free" appears to not be available on older XFS + // stats versions. Therefore, 7 or 8 elements may appear in + // this slice. + l := len(us) + if l != 7 && l != 8 { + return VnodeStats{}, fmt.Errorf("incorrect number of values for XFS vnode stats: %d", l) + } + + s := VnodeStats{ + Active: us[0], + Allocate: us[1], + Get: us[2], + Hold: us[3], + Release: us[4], + Reclaim: us[5], + Remove: us[6], + } + + // Skip adding free, unless it is present. The zero value will + // be used in place of an actual count. + if l == 7 { + return s, nil + } + + s.Free = us[7] + return s, nil +} + +// BufferStats builds a BufferStats from a slice of uint32s. +func bufferStats(us []uint32) (BufferStats, error) { + if l := len(us); l != 9 { + return BufferStats{}, fmt.Errorf("incorrect number of values for XFS buffer stats: %d", l) + } + + return BufferStats{ + Get: us[0], + Create: us[1], + GetLocked: us[2], + GetLockedWaited: us[3], + BusyLocked: us[4], + MissLocked: us[5], + PageRetries: us[6], + PageFound: us[7], + GetRead: us[8], + }, nil +} + +// ExtendedPrecisionStats builds an ExtendedPrecisionStats from a slice of uint32s. +func extendedPrecisionStats(us []uint64) (ExtendedPrecisionStats, error) { + if l := len(us); l != 3 { + return ExtendedPrecisionStats{}, fmt.Errorf("incorrect number of values for XFS extended precision stats: %d", l) + } + + return ExtendedPrecisionStats{ + FlushBytes: us[0], + WriteBytes: us[1], + ReadBytes: us[2], + }, nil +} diff --git a/vendor/github.com/prometheus/procfs/xfs/xfs.go b/vendor/github.com/prometheus/procfs/xfs/xfs.go new file mode 100644 index 0000000..d86794b --- /dev/null +++ b/vendor/github.com/prometheus/procfs/xfs/xfs.go @@ -0,0 +1,163 @@ +// Copyright 2017 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package xfs provides access to statistics exposed by the XFS filesystem. +package xfs + +// Stats contains XFS filesystem runtime statistics, parsed from +// /proc/fs/xfs/stat. +// +// The names and meanings of each statistic were taken from +// http://xfs.org/index.php/Runtime_Stats and xfs_stats.h in the Linux +// kernel source. Most counters are uint32s (same data types used in +// xfs_stats.h), but some of the "extended precision stats" are uint64s. +type Stats struct { + // The name of the filesystem used to source these statistics. + // If empty, this indicates aggregated statistics for all XFS + // filesystems on the host. + Name string + + ExtentAllocation ExtentAllocationStats + AllocationBTree BTreeStats + BlockMapping BlockMappingStats + BlockMapBTree BTreeStats + DirectoryOperation DirectoryOperationStats + Transaction TransactionStats + InodeOperation InodeOperationStats + LogOperation LogOperationStats + ReadWrite ReadWriteStats + AttributeOperation AttributeOperationStats + InodeClustering InodeClusteringStats + Vnode VnodeStats + Buffer BufferStats + ExtendedPrecision ExtendedPrecisionStats +} + +// ExtentAllocationStats contains statistics regarding XFS extent allocations. +type ExtentAllocationStats struct { + ExtentsAllocated uint32 + BlocksAllocated uint32 + ExtentsFreed uint32 + BlocksFreed uint32 +} + +// BTreeStats contains statistics regarding an XFS internal B-tree. +type BTreeStats struct { + Lookups uint32 + Compares uint32 + RecordsInserted uint32 + RecordsDeleted uint32 +} + +// BlockMappingStats contains statistics regarding XFS block maps. +type BlockMappingStats struct { + Reads uint32 + Writes uint32 + Unmaps uint32 + ExtentListInsertions uint32 + ExtentListDeletions uint32 + ExtentListLookups uint32 + ExtentListCompares uint32 +} + +// DirectoryOperationStats contains statistics regarding XFS directory entries. +type DirectoryOperationStats struct { + Lookups uint32 + Creates uint32 + Removes uint32 + Getdents uint32 +} + +// TransactionStats contains statistics regarding XFS metadata transactions. +type TransactionStats struct { + Sync uint32 + Async uint32 + Empty uint32 +} + +// InodeOperationStats contains statistics regarding XFS inode operations. +type InodeOperationStats struct { + Attempts uint32 + Found uint32 + Recycle uint32 + Missed uint32 + Duplicate uint32 + Reclaims uint32 + AttributeChange uint32 +} + +// LogOperationStats contains statistics regarding the XFS log buffer. +type LogOperationStats struct { + Writes uint32 + Blocks uint32 + NoInternalBuffers uint32 + Force uint32 + ForceSleep uint32 +} + +// ReadWriteStats contains statistics regarding the number of read and write +// system calls for XFS filesystems. +type ReadWriteStats struct { + Read uint32 + Write uint32 +} + +// AttributeOperationStats contains statistics regarding manipulation of +// XFS extended file attributes. +type AttributeOperationStats struct { + Get uint32 + Set uint32 + Remove uint32 + List uint32 +} + +// InodeClusteringStats contains statistics regarding XFS inode clustering +// operations. +type InodeClusteringStats struct { + Iflush uint32 + Flush uint32 + FlushInode uint32 +} + +// VnodeStats contains statistics regarding XFS vnode operations. +type VnodeStats struct { + Active uint32 + Allocate uint32 + Get uint32 + Hold uint32 + Release uint32 + Reclaim uint32 + Remove uint32 + Free uint32 +} + +// BufferStats contains statistics regarding XFS read/write I/O buffers. +type BufferStats struct { + Get uint32 + Create uint32 + GetLocked uint32 + GetLockedWaited uint32 + BusyLocked uint32 + MissLocked uint32 + PageRetries uint32 + PageFound uint32 + GetRead uint32 +} + +// ExtendedPrecisionStats contains high precision counters used to track the +// total number of bytes read, written, or flushed, during XFS operations. +type ExtendedPrecisionStats struct { + FlushBytes uint64 + WriteBytes uint64 + ReadBytes uint64 +} diff --git a/vendor/github.com/rcrowley/go-metrics/.gitignore b/vendor/github.com/rcrowley/go-metrics/.gitignore new file mode 100644 index 0000000..83c8f82 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/.gitignore @@ -0,0 +1,9 @@ +*.[68] +*.a +*.out +*.swp +_obj +_testmain.go +cmd/metrics-bench/metrics-bench +cmd/metrics-example/metrics-example +cmd/never-read/never-read diff --git a/vendor/github.com/rcrowley/go-metrics/.travis.yml b/vendor/github.com/rcrowley/go-metrics/.travis.yml new file mode 100644 index 0000000..aead076 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/.travis.yml @@ -0,0 +1,20 @@ +language: go + +go: + - "1.3" + - "1.4" + - "1.5" + - "1.6" + - "1.7" + - "1.8" + - "1.9" + - "1.10" + - "1.11" + - "1.12" + +script: + - ./validate.sh + +# this should give us faster builds according to +# http://docs.travis-ci.com/user/migrating-from-legacy/ +sudo: false diff --git a/vendor/github.com/rcrowley/go-metrics/LICENSE b/vendor/github.com/rcrowley/go-metrics/LICENSE new file mode 100644 index 0000000..363fa9e --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/LICENSE @@ -0,0 +1,29 @@ +Copyright 2012 Richard Crowley. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY RICHARD CROWLEY ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL RICHARD CROWLEY OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation +are those of the authors and should not be interpreted as representing +official policies, either expressed or implied, of Richard Crowley. diff --git a/vendor/github.com/rcrowley/go-metrics/README.md b/vendor/github.com/rcrowley/go-metrics/README.md new file mode 100644 index 0000000..27ddfee --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/README.md @@ -0,0 +1,171 @@ +go-metrics +========== + +![travis build status](https://travis-ci.org/rcrowley/go-metrics.svg?branch=master) + +Go port of Coda Hale's Metrics library: . + +Documentation: . + +Usage +----- + +Create and update metrics: + +```go +c := metrics.NewCounter() +metrics.Register("foo", c) +c.Inc(47) + +g := metrics.NewGauge() +metrics.Register("bar", g) +g.Update(47) + +r := NewRegistry() +g := metrics.NewRegisteredFunctionalGauge("cache-evictions", r, func() int64 { return cache.getEvictionsCount() }) + +s := metrics.NewExpDecaySample(1028, 0.015) // or metrics.NewUniformSample(1028) +h := metrics.NewHistogram(s) +metrics.Register("baz", h) +h.Update(47) + +m := metrics.NewMeter() +metrics.Register("quux", m) +m.Mark(47) + +t := metrics.NewTimer() +metrics.Register("bang", t) +t.Time(func() {}) +t.Update(47) +``` + +Register() is not threadsafe. For threadsafe metric registration use +GetOrRegister: + +```go +t := metrics.GetOrRegisterTimer("account.create.latency", nil) +t.Time(func() {}) +t.Update(47) +``` + +**NOTE:** Be sure to unregister short-lived meters and timers otherwise they will +leak memory: + +```go +// Will call Stop() on the Meter to allow for garbage collection +metrics.Unregister("quux") +// Or similarly for a Timer that embeds a Meter +metrics.Unregister("bang") +``` + +Periodically log every metric in human-readable form to standard error: + +```go +go metrics.Log(metrics.DefaultRegistry, 5 * time.Second, log.New(os.Stderr, "metrics: ", log.Lmicroseconds)) +``` + +Periodically log every metric in slightly-more-parseable form to syslog: + +```go +w, _ := syslog.Dial("unixgram", "/dev/log", syslog.LOG_INFO, "metrics") +go metrics.Syslog(metrics.DefaultRegistry, 60e9, w) +``` + +Periodically emit every metric to Graphite using the [Graphite client](https://github.com/cyberdelia/go-metrics-graphite): + +```go + +import "github.com/cyberdelia/go-metrics-graphite" + +addr, _ := net.ResolveTCPAddr("tcp", "127.0.0.1:2003") +go graphite.Graphite(metrics.DefaultRegistry, 10e9, "metrics", addr) +``` + +Periodically emit every metric into InfluxDB: + +**NOTE:** this has been pulled out of the library due to constant fluctuations +in the InfluxDB API. In fact, all client libraries are on their way out. see +issues [#121](https://github.com/rcrowley/go-metrics/issues/121) and +[#124](https://github.com/rcrowley/go-metrics/issues/124) for progress and details. + +```go +import "github.com/vrischmann/go-metrics-influxdb" + +go influxdb.InfluxDB(metrics.DefaultRegistry, + 10e9, + "127.0.0.1:8086", + "database-name", + "username", + "password" +) +``` + +Periodically upload every metric to Librato using the [Librato client](https://github.com/mihasya/go-metrics-librato): + +**Note**: the client included with this repository under the `librato` package +has been deprecated and moved to the repository linked above. + +```go +import "github.com/mihasya/go-metrics-librato" + +go librato.Librato(metrics.DefaultRegistry, + 10e9, // interval + "example@example.com", // account owner email address + "token", // Librato API token + "hostname", // source + []float64{0.95}, // percentiles to send + time.Millisecond, // time unit +) +``` + +Periodically emit every metric to StatHat: + +```go +import "github.com/rcrowley/go-metrics/stathat" + +go stathat.Stathat(metrics.DefaultRegistry, 10e9, "example@example.com") +``` + +Maintain all metrics along with expvars at `/debug/metrics`: + +This uses the same mechanism as [the official expvar](http://golang.org/pkg/expvar/) +but exposed under `/debug/metrics`, which shows a json representation of all your usual expvars +as well as all your go-metrics. + + +```go +import "github.com/rcrowley/go-metrics/exp" + +exp.Exp(metrics.DefaultRegistry) +``` + +Installation +------------ + +```sh +go get github.com/rcrowley/go-metrics +``` + +StatHat support additionally requires their Go client: + +```sh +go get github.com/stathat/go +``` + +Publishing Metrics +------------------ + +Clients are available for the following destinations: + +* AppOptics - https://github.com/ysamlan/go-metrics-appoptics +* Librato - https://github.com/mihasya/go-metrics-librato +* Graphite - https://github.com/cyberdelia/go-metrics-graphite +* InfluxDB - https://github.com/vrischmann/go-metrics-influxdb +* Ganglia - https://github.com/appscode/metlia +* Prometheus - https://github.com/deathowl/go-metrics-prometheus +* DataDog - https://github.com/syntaqx/go-metrics-datadog +* SignalFX - https://github.com/pascallouisperez/go-metrics-signalfx +* Honeycomb - https://github.com/getspine/go-metrics-honeycomb +* Wavefront - https://github.com/wavefrontHQ/go-metrics-wavefront +* Open-Falcon - https://github.com/g4zhuj/go-metrics-falcon +* AWS CloudWatch - [https://github.com/savaki/cloudmetrics](https://github.com/savaki/cloudmetrics) diff --git a/vendor/github.com/rcrowley/go-metrics/counter.go b/vendor/github.com/rcrowley/go-metrics/counter.go new file mode 100644 index 0000000..bb7b039 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/counter.go @@ -0,0 +1,112 @@ +package metrics + +import "sync/atomic" + +// Counters hold an int64 value that can be incremented and decremented. +type Counter interface { + Clear() + Count() int64 + Dec(int64) + Inc(int64) + Snapshot() Counter +} + +// GetOrRegisterCounter returns an existing Counter or constructs and registers +// a new StandardCounter. +func GetOrRegisterCounter(name string, r Registry) Counter { + if nil == r { + r = DefaultRegistry + } + return r.GetOrRegister(name, NewCounter).(Counter) +} + +// NewCounter constructs a new StandardCounter. +func NewCounter() Counter { + if UseNilMetrics { + return NilCounter{} + } + return &StandardCounter{0} +} + +// NewRegisteredCounter constructs and registers a new StandardCounter. +func NewRegisteredCounter(name string, r Registry) Counter { + c := NewCounter() + if nil == r { + r = DefaultRegistry + } + r.Register(name, c) + return c +} + +// CounterSnapshot is a read-only copy of another Counter. +type CounterSnapshot int64 + +// Clear panics. +func (CounterSnapshot) Clear() { + panic("Clear called on a CounterSnapshot") +} + +// Count returns the count at the time the snapshot was taken. +func (c CounterSnapshot) Count() int64 { return int64(c) } + +// Dec panics. +func (CounterSnapshot) Dec(int64) { + panic("Dec called on a CounterSnapshot") +} + +// Inc panics. +func (CounterSnapshot) Inc(int64) { + panic("Inc called on a CounterSnapshot") +} + +// Snapshot returns the snapshot. +func (c CounterSnapshot) Snapshot() Counter { return c } + +// NilCounter is a no-op Counter. +type NilCounter struct{} + +// Clear is a no-op. +func (NilCounter) Clear() {} + +// Count is a no-op. +func (NilCounter) Count() int64 { return 0 } + +// Dec is a no-op. +func (NilCounter) Dec(i int64) {} + +// Inc is a no-op. +func (NilCounter) Inc(i int64) {} + +// Snapshot is a no-op. +func (NilCounter) Snapshot() Counter { return NilCounter{} } + +// StandardCounter is the standard implementation of a Counter and uses the +// sync/atomic package to manage a single int64 value. +type StandardCounter struct { + count int64 +} + +// Clear sets the counter to zero. +func (c *StandardCounter) Clear() { + atomic.StoreInt64(&c.count, 0) +} + +// Count returns the current count. +func (c *StandardCounter) Count() int64 { + return atomic.LoadInt64(&c.count) +} + +// Dec decrements the counter by the given amount. +func (c *StandardCounter) Dec(i int64) { + atomic.AddInt64(&c.count, -i) +} + +// Inc increments the counter by the given amount. +func (c *StandardCounter) Inc(i int64) { + atomic.AddInt64(&c.count, i) +} + +// Snapshot returns a read-only copy of the counter. +func (c *StandardCounter) Snapshot() Counter { + return CounterSnapshot(c.Count()) +} diff --git a/vendor/github.com/rcrowley/go-metrics/debug.go b/vendor/github.com/rcrowley/go-metrics/debug.go new file mode 100644 index 0000000..179e5aa --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/debug.go @@ -0,0 +1,80 @@ +package metrics + +import ( + "runtime/debug" + "sync" + "time" +) + +var ( + debugMetrics struct { + GCStats struct { + LastGC Gauge + NumGC Gauge + Pause Histogram + //PauseQuantiles Histogram + PauseTotal Gauge + } + ReadGCStats Timer + } + gcStats debug.GCStats + registerDebugMetricsOnce = sync.Once{} +) + +// Capture new values for the Go garbage collector statistics exported in +// debug.GCStats. This is designed to be called as a goroutine. +func CaptureDebugGCStats(r Registry, d time.Duration) { + for _ = range time.Tick(d) { + CaptureDebugGCStatsOnce(r) + } +} + +// Capture new values for the Go garbage collector statistics exported in +// debug.GCStats. This is designed to be called in a background goroutine. +// Giving a registry which has not been given to RegisterDebugGCStats will +// panic. +// +// Be careful (but much less so) with this because debug.ReadGCStats calls +// the C function runtime·lock(runtime·mheap) which, while not a stop-the-world +// operation, isn't something you want to be doing all the time. +func CaptureDebugGCStatsOnce(r Registry) { + lastGC := gcStats.LastGC + t := time.Now() + debug.ReadGCStats(&gcStats) + debugMetrics.ReadGCStats.UpdateSince(t) + + debugMetrics.GCStats.LastGC.Update(int64(gcStats.LastGC.UnixNano())) + debugMetrics.GCStats.NumGC.Update(int64(gcStats.NumGC)) + if lastGC != gcStats.LastGC && 0 < len(gcStats.Pause) { + debugMetrics.GCStats.Pause.Update(int64(gcStats.Pause[0])) + } + //debugMetrics.GCStats.PauseQuantiles.Update(gcStats.PauseQuantiles) + debugMetrics.GCStats.PauseTotal.Update(int64(gcStats.PauseTotal)) +} + +// Register metrics for the Go garbage collector statistics exported in +// debug.GCStats. The metrics are named by their fully-qualified Go symbols, +// i.e. debug.GCStats.PauseTotal. +func RegisterDebugGCStats(r Registry) { + registerDebugMetricsOnce.Do(func() { + debugMetrics.GCStats.LastGC = NewGauge() + debugMetrics.GCStats.NumGC = NewGauge() + debugMetrics.GCStats.Pause = NewHistogram(NewExpDecaySample(1028, 0.015)) + //debugMetrics.GCStats.PauseQuantiles = NewHistogram(NewExpDecaySample(1028, 0.015)) + debugMetrics.GCStats.PauseTotal = NewGauge() + debugMetrics.ReadGCStats = NewTimer() + + r.Register("debug.GCStats.LastGC", debugMetrics.GCStats.LastGC) + r.Register("debug.GCStats.NumGC", debugMetrics.GCStats.NumGC) + r.Register("debug.GCStats.Pause", debugMetrics.GCStats.Pause) + //r.Register("debug.GCStats.PauseQuantiles", debugMetrics.GCStats.PauseQuantiles) + r.Register("debug.GCStats.PauseTotal", debugMetrics.GCStats.PauseTotal) + r.Register("debug.ReadGCStats", debugMetrics.ReadGCStats) + }) +} + +// Allocate an initial slice for gcStats.Pause to avoid allocations during +// normal operation. +func init() { + gcStats.Pause = make([]time.Duration, 11) +} diff --git a/vendor/github.com/rcrowley/go-metrics/ewma.go b/vendor/github.com/rcrowley/go-metrics/ewma.go new file mode 100644 index 0000000..a8183dd --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/ewma.go @@ -0,0 +1,138 @@ +package metrics + +import ( + "math" + "sync" + "sync/atomic" +) + +// EWMAs continuously calculate an exponentially-weighted moving average +// based on an outside source of clock ticks. +type EWMA interface { + Rate() float64 + Snapshot() EWMA + Tick() + Update(int64) +} + +// NewEWMA constructs a new EWMA with the given alpha. +func NewEWMA(alpha float64) EWMA { + if UseNilMetrics { + return NilEWMA{} + } + return &StandardEWMA{alpha: alpha} +} + +// NewEWMA1 constructs a new EWMA for a one-minute moving average. +func NewEWMA1() EWMA { + return NewEWMA(1 - math.Exp(-5.0/60.0/1)) +} + +// NewEWMA5 constructs a new EWMA for a five-minute moving average. +func NewEWMA5() EWMA { + return NewEWMA(1 - math.Exp(-5.0/60.0/5)) +} + +// NewEWMA15 constructs a new EWMA for a fifteen-minute moving average. +func NewEWMA15() EWMA { + return NewEWMA(1 - math.Exp(-5.0/60.0/15)) +} + +// EWMASnapshot is a read-only copy of another EWMA. +type EWMASnapshot float64 + +// Rate returns the rate of events per second at the time the snapshot was +// taken. +func (a EWMASnapshot) Rate() float64 { return float64(a) } + +// Snapshot returns the snapshot. +func (a EWMASnapshot) Snapshot() EWMA { return a } + +// Tick panics. +func (EWMASnapshot) Tick() { + panic("Tick called on an EWMASnapshot") +} + +// Update panics. +func (EWMASnapshot) Update(int64) { + panic("Update called on an EWMASnapshot") +} + +// NilEWMA is a no-op EWMA. +type NilEWMA struct{} + +// Rate is a no-op. +func (NilEWMA) Rate() float64 { return 0.0 } + +// Snapshot is a no-op. +func (NilEWMA) Snapshot() EWMA { return NilEWMA{} } + +// Tick is a no-op. +func (NilEWMA) Tick() {} + +// Update is a no-op. +func (NilEWMA) Update(n int64) {} + +// StandardEWMA is the standard implementation of an EWMA and tracks the number +// of uncounted events and processes them on each tick. It uses the +// sync/atomic package to manage uncounted events. +type StandardEWMA struct { + uncounted int64 // /!\ this should be the first member to ensure 64-bit alignment + alpha float64 + rate uint64 + init uint32 + mutex sync.Mutex +} + +// Rate returns the moving average rate of events per second. +func (a *StandardEWMA) Rate() float64 { + currentRate := math.Float64frombits(atomic.LoadUint64(&a.rate)) * float64(1e9) + return currentRate +} + +// Snapshot returns a read-only copy of the EWMA. +func (a *StandardEWMA) Snapshot() EWMA { + return EWMASnapshot(a.Rate()) +} + +// Tick ticks the clock to update the moving average. It assumes it is called +// every five seconds. +func (a *StandardEWMA) Tick() { + // Optimization to avoid mutex locking in the hot-path. + if atomic.LoadUint32(&a.init) == 1 { + a.updateRate(a.fetchInstantRate()) + } else { + // Slow-path: this is only needed on the first Tick() and preserves transactional updating + // of init and rate in the else block. The first conditional is needed below because + // a different thread could have set a.init = 1 between the time of the first atomic load and when + // the lock was acquired. + a.mutex.Lock() + if atomic.LoadUint32(&a.init) == 1 { + // The fetchInstantRate() uses atomic loading, which is unecessary in this critical section + // but again, this section is only invoked on the first successful Tick() operation. + a.updateRate(a.fetchInstantRate()) + } else { + atomic.StoreUint32(&a.init, 1) + atomic.StoreUint64(&a.rate, math.Float64bits(a.fetchInstantRate())) + } + a.mutex.Unlock() + } +} + +func (a *StandardEWMA) fetchInstantRate() float64 { + count := atomic.LoadInt64(&a.uncounted) + atomic.AddInt64(&a.uncounted, -count) + instantRate := float64(count) / float64(5e9) + return instantRate +} + +func (a *StandardEWMA) updateRate(instantRate float64) { + currentRate := math.Float64frombits(atomic.LoadUint64(&a.rate)) + currentRate += a.alpha * (instantRate - currentRate) + atomic.StoreUint64(&a.rate, math.Float64bits(currentRate)) +} + +// Update adds n uncounted events. +func (a *StandardEWMA) Update(n int64) { + atomic.AddInt64(&a.uncounted, n) +} diff --git a/vendor/github.com/rcrowley/go-metrics/gauge.go b/vendor/github.com/rcrowley/go-metrics/gauge.go new file mode 100644 index 0000000..cb57a93 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/gauge.go @@ -0,0 +1,120 @@ +package metrics + +import "sync/atomic" + +// Gauges hold an int64 value that can be set arbitrarily. +type Gauge interface { + Snapshot() Gauge + Update(int64) + Value() int64 +} + +// GetOrRegisterGauge returns an existing Gauge or constructs and registers a +// new StandardGauge. +func GetOrRegisterGauge(name string, r Registry) Gauge { + if nil == r { + r = DefaultRegistry + } + return r.GetOrRegister(name, NewGauge).(Gauge) +} + +// NewGauge constructs a new StandardGauge. +func NewGauge() Gauge { + if UseNilMetrics { + return NilGauge{} + } + return &StandardGauge{0} +} + +// NewRegisteredGauge constructs and registers a new StandardGauge. +func NewRegisteredGauge(name string, r Registry) Gauge { + c := NewGauge() + if nil == r { + r = DefaultRegistry + } + r.Register(name, c) + return c +} + +// NewFunctionalGauge constructs a new FunctionalGauge. +func NewFunctionalGauge(f func() int64) Gauge { + if UseNilMetrics { + return NilGauge{} + } + return &FunctionalGauge{value: f} +} + +// NewRegisteredFunctionalGauge constructs and registers a new StandardGauge. +func NewRegisteredFunctionalGauge(name string, r Registry, f func() int64) Gauge { + c := NewFunctionalGauge(f) + if nil == r { + r = DefaultRegistry + } + r.Register(name, c) + return c +} + +// GaugeSnapshot is a read-only copy of another Gauge. +type GaugeSnapshot int64 + +// Snapshot returns the snapshot. +func (g GaugeSnapshot) Snapshot() Gauge { return g } + +// Update panics. +func (GaugeSnapshot) Update(int64) { + panic("Update called on a GaugeSnapshot") +} + +// Value returns the value at the time the snapshot was taken. +func (g GaugeSnapshot) Value() int64 { return int64(g) } + +// NilGauge is a no-op Gauge. +type NilGauge struct{} + +// Snapshot is a no-op. +func (NilGauge) Snapshot() Gauge { return NilGauge{} } + +// Update is a no-op. +func (NilGauge) Update(v int64) {} + +// Value is a no-op. +func (NilGauge) Value() int64 { return 0 } + +// StandardGauge is the standard implementation of a Gauge and uses the +// sync/atomic package to manage a single int64 value. +type StandardGauge struct { + value int64 +} + +// Snapshot returns a read-only copy of the gauge. +func (g *StandardGauge) Snapshot() Gauge { + return GaugeSnapshot(g.Value()) +} + +// Update updates the gauge's value. +func (g *StandardGauge) Update(v int64) { + atomic.StoreInt64(&g.value, v) +} + +// Value returns the gauge's current value. +func (g *StandardGauge) Value() int64 { + return atomic.LoadInt64(&g.value) +} + +// FunctionalGauge returns value from given function +type FunctionalGauge struct { + value func() int64 +} + +// Value returns the gauge's current value. +func (g FunctionalGauge) Value() int64 { + return g.value() +} + +// Snapshot returns the snapshot. +func (g FunctionalGauge) Snapshot() Gauge { return GaugeSnapshot(g.Value()) } + +// Update panics. +func (FunctionalGauge) Update(int64) { + panic("Update called on a FunctionalGauge") +} diff --git a/vendor/github.com/rcrowley/go-metrics/gauge_float64.go b/vendor/github.com/rcrowley/go-metrics/gauge_float64.go new file mode 100644 index 0000000..3962e6d --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/gauge_float64.go @@ -0,0 +1,125 @@ +package metrics + +import ( + "math" + "sync/atomic" +) + +// GaugeFloat64s hold a float64 value that can be set arbitrarily. +type GaugeFloat64 interface { + Snapshot() GaugeFloat64 + Update(float64) + Value() float64 +} + +// GetOrRegisterGaugeFloat64 returns an existing GaugeFloat64 or constructs and registers a +// new StandardGaugeFloat64. +func GetOrRegisterGaugeFloat64(name string, r Registry) GaugeFloat64 { + if nil == r { + r = DefaultRegistry + } + return r.GetOrRegister(name, NewGaugeFloat64()).(GaugeFloat64) +} + +// NewGaugeFloat64 constructs a new StandardGaugeFloat64. +func NewGaugeFloat64() GaugeFloat64 { + if UseNilMetrics { + return NilGaugeFloat64{} + } + return &StandardGaugeFloat64{ + value: 0.0, + } +} + +// NewRegisteredGaugeFloat64 constructs and registers a new StandardGaugeFloat64. +func NewRegisteredGaugeFloat64(name string, r Registry) GaugeFloat64 { + c := NewGaugeFloat64() + if nil == r { + r = DefaultRegistry + } + r.Register(name, c) + return c +} + +// NewFunctionalGauge constructs a new FunctionalGauge. +func NewFunctionalGaugeFloat64(f func() float64) GaugeFloat64 { + if UseNilMetrics { + return NilGaugeFloat64{} + } + return &FunctionalGaugeFloat64{value: f} +} + +// NewRegisteredFunctionalGauge constructs and registers a new StandardGauge. +func NewRegisteredFunctionalGaugeFloat64(name string, r Registry, f func() float64) GaugeFloat64 { + c := NewFunctionalGaugeFloat64(f) + if nil == r { + r = DefaultRegistry + } + r.Register(name, c) + return c +} + +// GaugeFloat64Snapshot is a read-only copy of another GaugeFloat64. +type GaugeFloat64Snapshot float64 + +// Snapshot returns the snapshot. +func (g GaugeFloat64Snapshot) Snapshot() GaugeFloat64 { return g } + +// Update panics. +func (GaugeFloat64Snapshot) Update(float64) { + panic("Update called on a GaugeFloat64Snapshot") +} + +// Value returns the value at the time the snapshot was taken. +func (g GaugeFloat64Snapshot) Value() float64 { return float64(g) } + +// NilGauge is a no-op Gauge. +type NilGaugeFloat64 struct{} + +// Snapshot is a no-op. +func (NilGaugeFloat64) Snapshot() GaugeFloat64 { return NilGaugeFloat64{} } + +// Update is a no-op. +func (NilGaugeFloat64) Update(v float64) {} + +// Value is a no-op. +func (NilGaugeFloat64) Value() float64 { return 0.0 } + +// StandardGaugeFloat64 is the standard implementation of a GaugeFloat64 and uses +// sync.Mutex to manage a single float64 value. +type StandardGaugeFloat64 struct { + value uint64 +} + +// Snapshot returns a read-only copy of the gauge. +func (g *StandardGaugeFloat64) Snapshot() GaugeFloat64 { + return GaugeFloat64Snapshot(g.Value()) +} + +// Update updates the gauge's value. +func (g *StandardGaugeFloat64) Update(v float64) { + atomic.StoreUint64(&g.value, math.Float64bits(v)) +} + +// Value returns the gauge's current value. +func (g *StandardGaugeFloat64) Value() float64 { + return math.Float64frombits(atomic.LoadUint64(&g.value)) +} + +// FunctionalGaugeFloat64 returns value from given function +type FunctionalGaugeFloat64 struct { + value func() float64 +} + +// Value returns the gauge's current value. +func (g FunctionalGaugeFloat64) Value() float64 { + return g.value() +} + +// Snapshot returns the snapshot. +func (g FunctionalGaugeFloat64) Snapshot() GaugeFloat64 { return GaugeFloat64Snapshot(g.Value()) } + +// Update panics. +func (FunctionalGaugeFloat64) Update(float64) { + panic("Update called on a FunctionalGaugeFloat64") +} diff --git a/vendor/github.com/rcrowley/go-metrics/graphite.go b/vendor/github.com/rcrowley/go-metrics/graphite.go new file mode 100644 index 0000000..abd0a7d --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/graphite.go @@ -0,0 +1,113 @@ +package metrics + +import ( + "bufio" + "fmt" + "log" + "net" + "strconv" + "strings" + "time" +) + +// GraphiteConfig provides a container with configuration parameters for +// the Graphite exporter +type GraphiteConfig struct { + Addr *net.TCPAddr // Network address to connect to + Registry Registry // Registry to be exported + FlushInterval time.Duration // Flush interval + DurationUnit time.Duration // Time conversion unit for durations + Prefix string // Prefix to be prepended to metric names + Percentiles []float64 // Percentiles to export from timers and histograms +} + +// Graphite is a blocking exporter function which reports metrics in r +// to a graphite server located at addr, flushing them every d duration +// and prepending metric names with prefix. +func Graphite(r Registry, d time.Duration, prefix string, addr *net.TCPAddr) { + GraphiteWithConfig(GraphiteConfig{ + Addr: addr, + Registry: r, + FlushInterval: d, + DurationUnit: time.Nanosecond, + Prefix: prefix, + Percentiles: []float64{0.5, 0.75, 0.95, 0.99, 0.999}, + }) +} + +// GraphiteWithConfig is a blocking exporter function just like Graphite, +// but it takes a GraphiteConfig instead. +func GraphiteWithConfig(c GraphiteConfig) { + log.Printf("WARNING: This go-metrics client has been DEPRECATED! It has been moved to https://github.com/cyberdelia/go-metrics-graphite and will be removed from rcrowley/go-metrics on August 12th 2015") + for _ = range time.Tick(c.FlushInterval) { + if err := graphite(&c); nil != err { + log.Println(err) + } + } +} + +// GraphiteOnce performs a single submission to Graphite, returning a +// non-nil error on failed connections. This can be used in a loop +// similar to GraphiteWithConfig for custom error handling. +func GraphiteOnce(c GraphiteConfig) error { + log.Printf("WARNING: This go-metrics client has been DEPRECATED! It has been moved to https://github.com/cyberdelia/go-metrics-graphite and will be removed from rcrowley/go-metrics on August 12th 2015") + return graphite(&c) +} + +func graphite(c *GraphiteConfig) error { + now := time.Now().Unix() + du := float64(c.DurationUnit) + conn, err := net.DialTCP("tcp", nil, c.Addr) + if nil != err { + return err + } + defer conn.Close() + w := bufio.NewWriter(conn) + c.Registry.Each(func(name string, i interface{}) { + switch metric := i.(type) { + case Counter: + fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, metric.Count(), now) + case Gauge: + fmt.Fprintf(w, "%s.%s.value %d %d\n", c.Prefix, name, metric.Value(), now) + case GaugeFloat64: + fmt.Fprintf(w, "%s.%s.value %f %d\n", c.Prefix, name, metric.Value(), now) + case Histogram: + h := metric.Snapshot() + ps := h.Percentiles(c.Percentiles) + fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, h.Count(), now) + fmt.Fprintf(w, "%s.%s.min %d %d\n", c.Prefix, name, h.Min(), now) + fmt.Fprintf(w, "%s.%s.max %d %d\n", c.Prefix, name, h.Max(), now) + fmt.Fprintf(w, "%s.%s.mean %.2f %d\n", c.Prefix, name, h.Mean(), now) + fmt.Fprintf(w, "%s.%s.std-dev %.2f %d\n", c.Prefix, name, h.StdDev(), now) + for psIdx, psKey := range c.Percentiles { + key := strings.Replace(strconv.FormatFloat(psKey*100.0, 'f', -1, 64), ".", "", 1) + fmt.Fprintf(w, "%s.%s.%s-percentile %.2f %d\n", c.Prefix, name, key, ps[psIdx], now) + } + case Meter: + m := metric.Snapshot() + fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, m.Count(), now) + fmt.Fprintf(w, "%s.%s.one-minute %.2f %d\n", c.Prefix, name, m.Rate1(), now) + fmt.Fprintf(w, "%s.%s.five-minute %.2f %d\n", c.Prefix, name, m.Rate5(), now) + fmt.Fprintf(w, "%s.%s.fifteen-minute %.2f %d\n", c.Prefix, name, m.Rate15(), now) + fmt.Fprintf(w, "%s.%s.mean %.2f %d\n", c.Prefix, name, m.RateMean(), now) + case Timer: + t := metric.Snapshot() + ps := t.Percentiles(c.Percentiles) + fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, t.Count(), now) + fmt.Fprintf(w, "%s.%s.min %d %d\n", c.Prefix, name, t.Min()/int64(du), now) + fmt.Fprintf(w, "%s.%s.max %d %d\n", c.Prefix, name, t.Max()/int64(du), now) + fmt.Fprintf(w, "%s.%s.mean %.2f %d\n", c.Prefix, name, t.Mean()/du, now) + fmt.Fprintf(w, "%s.%s.std-dev %.2f %d\n", c.Prefix, name, t.StdDev()/du, now) + for psIdx, psKey := range c.Percentiles { + key := strings.Replace(strconv.FormatFloat(psKey*100.0, 'f', -1, 64), ".", "", 1) + fmt.Fprintf(w, "%s.%s.%s-percentile %.2f %d\n", c.Prefix, name, key, ps[psIdx], now) + } + fmt.Fprintf(w, "%s.%s.one-minute %.2f %d\n", c.Prefix, name, t.Rate1(), now) + fmt.Fprintf(w, "%s.%s.five-minute %.2f %d\n", c.Prefix, name, t.Rate5(), now) + fmt.Fprintf(w, "%s.%s.fifteen-minute %.2f %d\n", c.Prefix, name, t.Rate15(), now) + fmt.Fprintf(w, "%s.%s.mean-rate %.2f %d\n", c.Prefix, name, t.RateMean(), now) + } + w.Flush() + }) + return nil +} diff --git a/vendor/github.com/rcrowley/go-metrics/healthcheck.go b/vendor/github.com/rcrowley/go-metrics/healthcheck.go new file mode 100644 index 0000000..445131c --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/healthcheck.go @@ -0,0 +1,61 @@ +package metrics + +// Healthchecks hold an error value describing an arbitrary up/down status. +type Healthcheck interface { + Check() + Error() error + Healthy() + Unhealthy(error) +} + +// NewHealthcheck constructs a new Healthcheck which will use the given +// function to update its status. +func NewHealthcheck(f func(Healthcheck)) Healthcheck { + if UseNilMetrics { + return NilHealthcheck{} + } + return &StandardHealthcheck{nil, f} +} + +// NilHealthcheck is a no-op. +type NilHealthcheck struct{} + +// Check is a no-op. +func (NilHealthcheck) Check() {} + +// Error is a no-op. +func (NilHealthcheck) Error() error { return nil } + +// Healthy is a no-op. +func (NilHealthcheck) Healthy() {} + +// Unhealthy is a no-op. +func (NilHealthcheck) Unhealthy(error) {} + +// StandardHealthcheck is the standard implementation of a Healthcheck and +// stores the status and a function to call to update the status. +type StandardHealthcheck struct { + err error + f func(Healthcheck) +} + +// Check runs the healthcheck function to update the healthcheck's status. +func (h *StandardHealthcheck) Check() { + h.f(h) +} + +// Error returns the healthcheck's status, which will be nil if it is healthy. +func (h *StandardHealthcheck) Error() error { + return h.err +} + +// Healthy marks the healthcheck as healthy. +func (h *StandardHealthcheck) Healthy() { + h.err = nil +} + +// Unhealthy marks the healthcheck as unhealthy. The error is stored and +// may be retrieved by the Error method. +func (h *StandardHealthcheck) Unhealthy(err error) { + h.err = err +} diff --git a/vendor/github.com/rcrowley/go-metrics/histogram.go b/vendor/github.com/rcrowley/go-metrics/histogram.go new file mode 100644 index 0000000..dbc837f --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/histogram.go @@ -0,0 +1,202 @@ +package metrics + +// Histograms calculate distribution statistics from a series of int64 values. +type Histogram interface { + Clear() + Count() int64 + Max() int64 + Mean() float64 + Min() int64 + Percentile(float64) float64 + Percentiles([]float64) []float64 + Sample() Sample + Snapshot() Histogram + StdDev() float64 + Sum() int64 + Update(int64) + Variance() float64 +} + +// GetOrRegisterHistogram returns an existing Histogram or constructs and +// registers a new StandardHistogram. +func GetOrRegisterHistogram(name string, r Registry, s Sample) Histogram { + if nil == r { + r = DefaultRegistry + } + return r.GetOrRegister(name, func() Histogram { return NewHistogram(s) }).(Histogram) +} + +// NewHistogram constructs a new StandardHistogram from a Sample. +func NewHistogram(s Sample) Histogram { + if UseNilMetrics { + return NilHistogram{} + } + return &StandardHistogram{sample: s} +} + +// NewRegisteredHistogram constructs and registers a new StandardHistogram from +// a Sample. +func NewRegisteredHistogram(name string, r Registry, s Sample) Histogram { + c := NewHistogram(s) + if nil == r { + r = DefaultRegistry + } + r.Register(name, c) + return c +} + +// HistogramSnapshot is a read-only copy of another Histogram. +type HistogramSnapshot struct { + sample *SampleSnapshot +} + +// Clear panics. +func (*HistogramSnapshot) Clear() { + panic("Clear called on a HistogramSnapshot") +} + +// Count returns the number of samples recorded at the time the snapshot was +// taken. +func (h *HistogramSnapshot) Count() int64 { return h.sample.Count() } + +// Max returns the maximum value in the sample at the time the snapshot was +// taken. +func (h *HistogramSnapshot) Max() int64 { return h.sample.Max() } + +// Mean returns the mean of the values in the sample at the time the snapshot +// was taken. +func (h *HistogramSnapshot) Mean() float64 { return h.sample.Mean() } + +// Min returns the minimum value in the sample at the time the snapshot was +// taken. +func (h *HistogramSnapshot) Min() int64 { return h.sample.Min() } + +// Percentile returns an arbitrary percentile of values in the sample at the +// time the snapshot was taken. +func (h *HistogramSnapshot) Percentile(p float64) float64 { + return h.sample.Percentile(p) +} + +// Percentiles returns a slice of arbitrary percentiles of values in the sample +// at the time the snapshot was taken. +func (h *HistogramSnapshot) Percentiles(ps []float64) []float64 { + return h.sample.Percentiles(ps) +} + +// Sample returns the Sample underlying the histogram. +func (h *HistogramSnapshot) Sample() Sample { return h.sample } + +// Snapshot returns the snapshot. +func (h *HistogramSnapshot) Snapshot() Histogram { return h } + +// StdDev returns the standard deviation of the values in the sample at the +// time the snapshot was taken. +func (h *HistogramSnapshot) StdDev() float64 { return h.sample.StdDev() } + +// Sum returns the sum in the sample at the time the snapshot was taken. +func (h *HistogramSnapshot) Sum() int64 { return h.sample.Sum() } + +// Update panics. +func (*HistogramSnapshot) Update(int64) { + panic("Update called on a HistogramSnapshot") +} + +// Variance returns the variance of inputs at the time the snapshot was taken. +func (h *HistogramSnapshot) Variance() float64 { return h.sample.Variance() } + +// NilHistogram is a no-op Histogram. +type NilHistogram struct{} + +// Clear is a no-op. +func (NilHistogram) Clear() {} + +// Count is a no-op. +func (NilHistogram) Count() int64 { return 0 } + +// Max is a no-op. +func (NilHistogram) Max() int64 { return 0 } + +// Mean is a no-op. +func (NilHistogram) Mean() float64 { return 0.0 } + +// Min is a no-op. +func (NilHistogram) Min() int64 { return 0 } + +// Percentile is a no-op. +func (NilHistogram) Percentile(p float64) float64 { return 0.0 } + +// Percentiles is a no-op. +func (NilHistogram) Percentiles(ps []float64) []float64 { + return make([]float64, len(ps)) +} + +// Sample is a no-op. +func (NilHistogram) Sample() Sample { return NilSample{} } + +// Snapshot is a no-op. +func (NilHistogram) Snapshot() Histogram { return NilHistogram{} } + +// StdDev is a no-op. +func (NilHistogram) StdDev() float64 { return 0.0 } + +// Sum is a no-op. +func (NilHistogram) Sum() int64 { return 0 } + +// Update is a no-op. +func (NilHistogram) Update(v int64) {} + +// Variance is a no-op. +func (NilHistogram) Variance() float64 { return 0.0 } + +// StandardHistogram is the standard implementation of a Histogram and uses a +// Sample to bound its memory use. +type StandardHistogram struct { + sample Sample +} + +// Clear clears the histogram and its sample. +func (h *StandardHistogram) Clear() { h.sample.Clear() } + +// Count returns the number of samples recorded since the histogram was last +// cleared. +func (h *StandardHistogram) Count() int64 { return h.sample.Count() } + +// Max returns the maximum value in the sample. +func (h *StandardHistogram) Max() int64 { return h.sample.Max() } + +// Mean returns the mean of the values in the sample. +func (h *StandardHistogram) Mean() float64 { return h.sample.Mean() } + +// Min returns the minimum value in the sample. +func (h *StandardHistogram) Min() int64 { return h.sample.Min() } + +// Percentile returns an arbitrary percentile of the values in the sample. +func (h *StandardHistogram) Percentile(p float64) float64 { + return h.sample.Percentile(p) +} + +// Percentiles returns a slice of arbitrary percentiles of the values in the +// sample. +func (h *StandardHistogram) Percentiles(ps []float64) []float64 { + return h.sample.Percentiles(ps) +} + +// Sample returns the Sample underlying the histogram. +func (h *StandardHistogram) Sample() Sample { return h.sample } + +// Snapshot returns a read-only copy of the histogram. +func (h *StandardHistogram) Snapshot() Histogram { + return &HistogramSnapshot{sample: h.sample.Snapshot().(*SampleSnapshot)} +} + +// StdDev returns the standard deviation of the values in the sample. +func (h *StandardHistogram) StdDev() float64 { return h.sample.StdDev() } + +// Sum returns the sum in the sample. +func (h *StandardHistogram) Sum() int64 { return h.sample.Sum() } + +// Update samples a new value. +func (h *StandardHistogram) Update(v int64) { h.sample.Update(v) } + +// Variance returns the variance of the values in the sample. +func (h *StandardHistogram) Variance() float64 { return h.sample.Variance() } diff --git a/vendor/github.com/rcrowley/go-metrics/json.go b/vendor/github.com/rcrowley/go-metrics/json.go new file mode 100644 index 0000000..174b947 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/json.go @@ -0,0 +1,31 @@ +package metrics + +import ( + "encoding/json" + "io" + "time" +) + +// MarshalJSON returns a byte slice containing a JSON representation of all +// the metrics in the Registry. +func (r *StandardRegistry) MarshalJSON() ([]byte, error) { + return json.Marshal(r.GetAll()) +} + +// WriteJSON writes metrics from the given registry periodically to the +// specified io.Writer as JSON. +func WriteJSON(r Registry, d time.Duration, w io.Writer) { + for _ = range time.Tick(d) { + WriteJSONOnce(r, w) + } +} + +// WriteJSONOnce writes metrics from the given registry to the specified +// io.Writer as JSON. +func WriteJSONOnce(r Registry, w io.Writer) { + json.NewEncoder(w).Encode(r) +} + +func (p *PrefixedRegistry) MarshalJSON() ([]byte, error) { + return json.Marshal(p.GetAll()) +} diff --git a/vendor/github.com/rcrowley/go-metrics/log.go b/vendor/github.com/rcrowley/go-metrics/log.go new file mode 100644 index 0000000..2614a0a --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/log.go @@ -0,0 +1,100 @@ +package metrics + +import ( + "time" +) + +type Logger interface { + Printf(format string, v ...interface{}) +} + +// Log outputs each metric in the given registry periodically using the given logger. +func Log(r Registry, freq time.Duration, l Logger) { + LogScaled(r, freq, time.Nanosecond, l) +} + +// LogOnCue outputs each metric in the given registry on demand through the channel +// using the given logger +func LogOnCue(r Registry, ch chan interface{}, l Logger) { + LogScaledOnCue(r, ch, time.Nanosecond, l) +} + +// LogScaled outputs each metric in the given registry periodically using the given +// logger. Print timings in `scale` units (eg time.Millisecond) rather than nanos. +func LogScaled(r Registry, freq time.Duration, scale time.Duration, l Logger) { + ch := make(chan interface{}) + go func(channel chan interface{}) { + for _ = range time.Tick(freq) { + channel <- struct{}{} + } + }(ch) + LogScaledOnCue(r, ch, scale, l) +} + +// LogScaledOnCue outputs each metric in the given registry on demand through the channel +// using the given logger. Print timings in `scale` units (eg time.Millisecond) rather +// than nanos. +func LogScaledOnCue(r Registry, ch chan interface{}, scale time.Duration, l Logger) { + du := float64(scale) + duSuffix := scale.String()[1:] + + for _ = range ch { + r.Each(func(name string, i interface{}) { + switch metric := i.(type) { + case Counter: + l.Printf("counter %s\n", name) + l.Printf(" count: %9d\n", metric.Count()) + case Gauge: + l.Printf("gauge %s\n", name) + l.Printf(" value: %9d\n", metric.Value()) + case GaugeFloat64: + l.Printf("gauge %s\n", name) + l.Printf(" value: %f\n", metric.Value()) + case Healthcheck: + metric.Check() + l.Printf("healthcheck %s\n", name) + l.Printf(" error: %v\n", metric.Error()) + case Histogram: + h := metric.Snapshot() + ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) + l.Printf("histogram %s\n", name) + l.Printf(" count: %9d\n", h.Count()) + l.Printf(" min: %9d\n", h.Min()) + l.Printf(" max: %9d\n", h.Max()) + l.Printf(" mean: %12.2f\n", h.Mean()) + l.Printf(" stddev: %12.2f\n", h.StdDev()) + l.Printf(" median: %12.2f\n", ps[0]) + l.Printf(" 75%%: %12.2f\n", ps[1]) + l.Printf(" 95%%: %12.2f\n", ps[2]) + l.Printf(" 99%%: %12.2f\n", ps[3]) + l.Printf(" 99.9%%: %12.2f\n", ps[4]) + case Meter: + m := metric.Snapshot() + l.Printf("meter %s\n", name) + l.Printf(" count: %9d\n", m.Count()) + l.Printf(" 1-min rate: %12.2f\n", m.Rate1()) + l.Printf(" 5-min rate: %12.2f\n", m.Rate5()) + l.Printf(" 15-min rate: %12.2f\n", m.Rate15()) + l.Printf(" mean rate: %12.2f\n", m.RateMean()) + case Timer: + t := metric.Snapshot() + ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) + l.Printf("timer %s\n", name) + l.Printf(" count: %9d\n", t.Count()) + l.Printf(" min: %12.2f%s\n", float64(t.Min())/du, duSuffix) + l.Printf(" max: %12.2f%s\n", float64(t.Max())/du, duSuffix) + l.Printf(" mean: %12.2f%s\n", t.Mean()/du, duSuffix) + l.Printf(" stddev: %12.2f%s\n", t.StdDev()/du, duSuffix) + l.Printf(" median: %12.2f%s\n", ps[0]/du, duSuffix) + l.Printf(" 75%%: %12.2f%s\n", ps[1]/du, duSuffix) + l.Printf(" 95%%: %12.2f%s\n", ps[2]/du, duSuffix) + l.Printf(" 99%%: %12.2f%s\n", ps[3]/du, duSuffix) + l.Printf(" 99.9%%: %12.2f%s\n", ps[4]/du, duSuffix) + l.Printf(" 1-min rate: %12.2f\n", t.Rate1()) + l.Printf(" 5-min rate: %12.2f\n", t.Rate5()) + l.Printf(" 15-min rate: %12.2f\n", t.Rate15()) + l.Printf(" mean rate: %12.2f\n", t.RateMean()) + } + }) + } +} diff --git a/vendor/github.com/rcrowley/go-metrics/memory.md b/vendor/github.com/rcrowley/go-metrics/memory.md new file mode 100644 index 0000000..47454f5 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/memory.md @@ -0,0 +1,285 @@ +Memory usage +============ + +(Highly unscientific.) + +Command used to gather static memory usage: + +```sh +grep ^Vm "/proc/$(ps fax | grep [m]etrics-bench | awk '{print $1}')/status" +``` + +Program used to gather baseline memory usage: + +```go +package main + +import "time" + +func main() { + time.Sleep(600e9) +} +``` + +Baseline +-------- + +``` +VmPeak: 42604 kB +VmSize: 42604 kB +VmLck: 0 kB +VmHWM: 1120 kB +VmRSS: 1120 kB +VmData: 35460 kB +VmStk: 136 kB +VmExe: 1020 kB +VmLib: 1848 kB +VmPTE: 36 kB +VmSwap: 0 kB +``` + +Program used to gather metric memory usage (with other metrics being similar): + +```go +package main + +import ( + "fmt" + "metrics" + "time" +) + +func main() { + fmt.Sprintf("foo") + metrics.NewRegistry() + time.Sleep(600e9) +} +``` + +1000 counters registered +------------------------ + +``` +VmPeak: 44016 kB +VmSize: 44016 kB +VmLck: 0 kB +VmHWM: 1928 kB +VmRSS: 1928 kB +VmData: 36868 kB +VmStk: 136 kB +VmExe: 1024 kB +VmLib: 1848 kB +VmPTE: 40 kB +VmSwap: 0 kB +``` + +**1.412 kB virtual, TODO 0.808 kB resident per counter.** + +100000 counters registered +-------------------------- + +``` +VmPeak: 55024 kB +VmSize: 55024 kB +VmLck: 0 kB +VmHWM: 12440 kB +VmRSS: 12440 kB +VmData: 47876 kB +VmStk: 136 kB +VmExe: 1024 kB +VmLib: 1848 kB +VmPTE: 64 kB +VmSwap: 0 kB +``` + +**0.1242 kB virtual, 0.1132 kB resident per counter.** + +1000 gauges registered +---------------------- + +``` +VmPeak: 44012 kB +VmSize: 44012 kB +VmLck: 0 kB +VmHWM: 1928 kB +VmRSS: 1928 kB +VmData: 36868 kB +VmStk: 136 kB +VmExe: 1020 kB +VmLib: 1848 kB +VmPTE: 40 kB +VmSwap: 0 kB +``` + +**1.408 kB virtual, 0.808 kB resident per counter.** + +100000 gauges registered +------------------------ + +``` +VmPeak: 55020 kB +VmSize: 55020 kB +VmLck: 0 kB +VmHWM: 12432 kB +VmRSS: 12432 kB +VmData: 47876 kB +VmStk: 136 kB +VmExe: 1020 kB +VmLib: 1848 kB +VmPTE: 60 kB +VmSwap: 0 kB +``` + +**0.12416 kB virtual, 0.11312 resident per gauge.** + +1000 histograms with a uniform sample size of 1028 +-------------------------------------------------- + +``` +VmPeak: 72272 kB +VmSize: 72272 kB +VmLck: 0 kB +VmHWM: 16204 kB +VmRSS: 16204 kB +VmData: 65100 kB +VmStk: 136 kB +VmExe: 1048 kB +VmLib: 1848 kB +VmPTE: 80 kB +VmSwap: 0 kB +``` + +**29.668 kB virtual, TODO 15.084 resident per histogram.** + +10000 histograms with a uniform sample size of 1028 +--------------------------------------------------- + +``` +VmPeak: 256912 kB +VmSize: 256912 kB +VmLck: 0 kB +VmHWM: 146204 kB +VmRSS: 146204 kB +VmData: 249740 kB +VmStk: 136 kB +VmExe: 1048 kB +VmLib: 1848 kB +VmPTE: 448 kB +VmSwap: 0 kB +``` + +**21.4308 kB virtual, 14.5084 kB resident per histogram.** + +50000 histograms with a uniform sample size of 1028 +--------------------------------------------------- + +``` +VmPeak: 908112 kB +VmSize: 908112 kB +VmLck: 0 kB +VmHWM: 645832 kB +VmRSS: 645588 kB +VmData: 900940 kB +VmStk: 136 kB +VmExe: 1048 kB +VmLib: 1848 kB +VmPTE: 1716 kB +VmSwap: 1544 kB +``` + +**17.31016 kB virtual, 12.88936 kB resident per histogram.** + +1000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015 +------------------------------------------------------------------------------------- + +``` +VmPeak: 62480 kB +VmSize: 62480 kB +VmLck: 0 kB +VmHWM: 11572 kB +VmRSS: 11572 kB +VmData: 55308 kB +VmStk: 136 kB +VmExe: 1048 kB +VmLib: 1848 kB +VmPTE: 64 kB +VmSwap: 0 kB +``` + +**19.876 kB virtual, 10.452 kB resident per histogram.** + +10000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015 +-------------------------------------------------------------------------------------- + +``` +VmPeak: 153296 kB +VmSize: 153296 kB +VmLck: 0 kB +VmHWM: 101176 kB +VmRSS: 101176 kB +VmData: 146124 kB +VmStk: 136 kB +VmExe: 1048 kB +VmLib: 1848 kB +VmPTE: 240 kB +VmSwap: 0 kB +``` + +**11.0692 kB virtual, 10.0056 kB resident per histogram.** + +50000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015 +-------------------------------------------------------------------------------------- + +``` +VmPeak: 557264 kB +VmSize: 557264 kB +VmLck: 0 kB +VmHWM: 501056 kB +VmRSS: 501056 kB +VmData: 550092 kB +VmStk: 136 kB +VmExe: 1048 kB +VmLib: 1848 kB +VmPTE: 1032 kB +VmSwap: 0 kB +``` + +**10.2932 kB virtual, 9.99872 kB resident per histogram.** + +1000 meters +----------- + +``` +VmPeak: 74504 kB +VmSize: 74504 kB +VmLck: 0 kB +VmHWM: 24124 kB +VmRSS: 24124 kB +VmData: 67340 kB +VmStk: 136 kB +VmExe: 1040 kB +VmLib: 1848 kB +VmPTE: 92 kB +VmSwap: 0 kB +``` + +**31.9 kB virtual, 23.004 kB resident per meter.** + +10000 meters +------------ + +``` +VmPeak: 278920 kB +VmSize: 278920 kB +VmLck: 0 kB +VmHWM: 227300 kB +VmRSS: 227300 kB +VmData: 271756 kB +VmStk: 136 kB +VmExe: 1040 kB +VmLib: 1848 kB +VmPTE: 488 kB +VmSwap: 0 kB +``` + +**23.6316 kB virtual, 22.618 kB resident per meter.** diff --git a/vendor/github.com/rcrowley/go-metrics/meter.go b/vendor/github.com/rcrowley/go-metrics/meter.go new file mode 100644 index 0000000..223669b --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/meter.go @@ -0,0 +1,251 @@ +package metrics + +import ( + "math" + "sync" + "sync/atomic" + "time" +) + +// Meters count events to produce exponentially-weighted moving average rates +// at one-, five-, and fifteen-minutes and a mean rate. +type Meter interface { + Count() int64 + Mark(int64) + Rate1() float64 + Rate5() float64 + Rate15() float64 + RateMean() float64 + Snapshot() Meter + Stop() +} + +// GetOrRegisterMeter returns an existing Meter or constructs and registers a +// new StandardMeter. +// Be sure to unregister the meter from the registry once it is of no use to +// allow for garbage collection. +func GetOrRegisterMeter(name string, r Registry) Meter { + if nil == r { + r = DefaultRegistry + } + return r.GetOrRegister(name, NewMeter).(Meter) +} + +// NewMeter constructs a new StandardMeter and launches a goroutine. +// Be sure to call Stop() once the meter is of no use to allow for garbage collection. +func NewMeter() Meter { + if UseNilMetrics { + return NilMeter{} + } + m := newStandardMeter() + arbiter.Lock() + defer arbiter.Unlock() + arbiter.meters[m] = struct{}{} + if !arbiter.started { + arbiter.started = true + go arbiter.tick() + } + return m +} + +// NewMeter constructs and registers a new StandardMeter and launches a +// goroutine. +// Be sure to unregister the meter from the registry once it is of no use to +// allow for garbage collection. +func NewRegisteredMeter(name string, r Registry) Meter { + c := NewMeter() + if nil == r { + r = DefaultRegistry + } + r.Register(name, c) + return c +} + +// MeterSnapshot is a read-only copy of another Meter. +type MeterSnapshot struct { + count int64 + rate1, rate5, rate15, rateMean uint64 +} + +// Count returns the count of events at the time the snapshot was taken. +func (m *MeterSnapshot) Count() int64 { return m.count } + +// Mark panics. +func (*MeterSnapshot) Mark(n int64) { + panic("Mark called on a MeterSnapshot") +} + +// Rate1 returns the one-minute moving average rate of events per second at the +// time the snapshot was taken. +func (m *MeterSnapshot) Rate1() float64 { return math.Float64frombits(m.rate1) } + +// Rate5 returns the five-minute moving average rate of events per second at +// the time the snapshot was taken. +func (m *MeterSnapshot) Rate5() float64 { return math.Float64frombits(m.rate5) } + +// Rate15 returns the fifteen-minute moving average rate of events per second +// at the time the snapshot was taken. +func (m *MeterSnapshot) Rate15() float64 { return math.Float64frombits(m.rate15) } + +// RateMean returns the meter's mean rate of events per second at the time the +// snapshot was taken. +func (m *MeterSnapshot) RateMean() float64 { return math.Float64frombits(m.rateMean) } + +// Snapshot returns the snapshot. +func (m *MeterSnapshot) Snapshot() Meter { return m } + +// Stop is a no-op. +func (m *MeterSnapshot) Stop() {} + +// NilMeter is a no-op Meter. +type NilMeter struct{} + +// Count is a no-op. +func (NilMeter) Count() int64 { return 0 } + +// Mark is a no-op. +func (NilMeter) Mark(n int64) {} + +// Rate1 is a no-op. +func (NilMeter) Rate1() float64 { return 0.0 } + +// Rate5 is a no-op. +func (NilMeter) Rate5() float64 { return 0.0 } + +// Rate15is a no-op. +func (NilMeter) Rate15() float64 { return 0.0 } + +// RateMean is a no-op. +func (NilMeter) RateMean() float64 { return 0.0 } + +// Snapshot is a no-op. +func (NilMeter) Snapshot() Meter { return NilMeter{} } + +// Stop is a no-op. +func (NilMeter) Stop() {} + +// StandardMeter is the standard implementation of a Meter. +type StandardMeter struct { + snapshot *MeterSnapshot + a1, a5, a15 EWMA + startTime time.Time + stopped uint32 +} + +func newStandardMeter() *StandardMeter { + return &StandardMeter{ + snapshot: &MeterSnapshot{}, + a1: NewEWMA1(), + a5: NewEWMA5(), + a15: NewEWMA15(), + startTime: time.Now(), + } +} + +// Stop stops the meter, Mark() will be a no-op if you use it after being stopped. +func (m *StandardMeter) Stop() { + if atomic.CompareAndSwapUint32(&m.stopped, 0, 1) { + arbiter.Lock() + delete(arbiter.meters, m) + arbiter.Unlock() + } +} + +// Count returns the number of events recorded. +func (m *StandardMeter) Count() int64 { + return atomic.LoadInt64(&m.snapshot.count) +} + +// Mark records the occurance of n events. +func (m *StandardMeter) Mark(n int64) { + if atomic.LoadUint32(&m.stopped) == 1 { + return + } + + atomic.AddInt64(&m.snapshot.count, n) + + m.a1.Update(n) + m.a5.Update(n) + m.a15.Update(n) + m.updateSnapshot() +} + +// Rate1 returns the one-minute moving average rate of events per second. +func (m *StandardMeter) Rate1() float64 { + return math.Float64frombits(atomic.LoadUint64(&m.snapshot.rate1)) +} + +// Rate5 returns the five-minute moving average rate of events per second. +func (m *StandardMeter) Rate5() float64 { + return math.Float64frombits(atomic.LoadUint64(&m.snapshot.rate5)) +} + +// Rate15 returns the fifteen-minute moving average rate of events per second. +func (m *StandardMeter) Rate15() float64 { + return math.Float64frombits(atomic.LoadUint64(&m.snapshot.rate15)) +} + +// RateMean returns the meter's mean rate of events per second. +func (m *StandardMeter) RateMean() float64 { + return math.Float64frombits(atomic.LoadUint64(&m.snapshot.rateMean)) +} + +// Snapshot returns a read-only copy of the meter. +func (m *StandardMeter) Snapshot() Meter { + copiedSnapshot := MeterSnapshot{ + count: atomic.LoadInt64(&m.snapshot.count), + rate1: atomic.LoadUint64(&m.snapshot.rate1), + rate5: atomic.LoadUint64(&m.snapshot.rate5), + rate15: atomic.LoadUint64(&m.snapshot.rate15), + rateMean: atomic.LoadUint64(&m.snapshot.rateMean), + } + return &copiedSnapshot +} + +func (m *StandardMeter) updateSnapshot() { + rate1 := math.Float64bits(m.a1.Rate()) + rate5 := math.Float64bits(m.a5.Rate()) + rate15 := math.Float64bits(m.a15.Rate()) + rateMean := math.Float64bits(float64(m.Count()) / time.Since(m.startTime).Seconds()) + + atomic.StoreUint64(&m.snapshot.rate1, rate1) + atomic.StoreUint64(&m.snapshot.rate5, rate5) + atomic.StoreUint64(&m.snapshot.rate15, rate15) + atomic.StoreUint64(&m.snapshot.rateMean, rateMean) +} + +func (m *StandardMeter) tick() { + m.a1.Tick() + m.a5.Tick() + m.a15.Tick() + m.updateSnapshot() +} + +// meterArbiter ticks meters every 5s from a single goroutine. +// meters are references in a set for future stopping. +type meterArbiter struct { + sync.RWMutex + started bool + meters map[*StandardMeter]struct{} + ticker *time.Ticker +} + +var arbiter = meterArbiter{ticker: time.NewTicker(5e9), meters: make(map[*StandardMeter]struct{})} + +// Ticks meters on the scheduled interval +func (ma *meterArbiter) tick() { + for { + select { + case <-ma.ticker.C: + ma.tickMeters() + } + } +} + +func (ma *meterArbiter) tickMeters() { + ma.RLock() + defer ma.RUnlock() + for meter := range ma.meters { + meter.tick() + } +} diff --git a/vendor/github.com/rcrowley/go-metrics/metrics.go b/vendor/github.com/rcrowley/go-metrics/metrics.go new file mode 100644 index 0000000..b97a49e --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/metrics.go @@ -0,0 +1,13 @@ +// Go port of Coda Hale's Metrics library +// +// +// +// Coda Hale's original work: +package metrics + +// UseNilMetrics is checked by the constructor functions for all of the +// standard metrics. If it is true, the metric returned is a stub. +// +// This global kill-switch helps quantify the observer effect and makes +// for less cluttered pprof profiles. +var UseNilMetrics bool = false diff --git a/vendor/github.com/rcrowley/go-metrics/opentsdb.go b/vendor/github.com/rcrowley/go-metrics/opentsdb.go new file mode 100644 index 0000000..266b6c9 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/opentsdb.go @@ -0,0 +1,119 @@ +package metrics + +import ( + "bufio" + "fmt" + "log" + "net" + "os" + "strings" + "time" +) + +var shortHostName string = "" + +// OpenTSDBConfig provides a container with configuration parameters for +// the OpenTSDB exporter +type OpenTSDBConfig struct { + Addr *net.TCPAddr // Network address to connect to + Registry Registry // Registry to be exported + FlushInterval time.Duration // Flush interval + DurationUnit time.Duration // Time conversion unit for durations + Prefix string // Prefix to be prepended to metric names +} + +// OpenTSDB is a blocking exporter function which reports metrics in r +// to a TSDB server located at addr, flushing them every d duration +// and prepending metric names with prefix. +func OpenTSDB(r Registry, d time.Duration, prefix string, addr *net.TCPAddr) { + OpenTSDBWithConfig(OpenTSDBConfig{ + Addr: addr, + Registry: r, + FlushInterval: d, + DurationUnit: time.Nanosecond, + Prefix: prefix, + }) +} + +// OpenTSDBWithConfig is a blocking exporter function just like OpenTSDB, +// but it takes a OpenTSDBConfig instead. +func OpenTSDBWithConfig(c OpenTSDBConfig) { + for _ = range time.Tick(c.FlushInterval) { + if err := openTSDB(&c); nil != err { + log.Println(err) + } + } +} + +func getShortHostname() string { + if shortHostName == "" { + host, _ := os.Hostname() + if index := strings.Index(host, "."); index > 0 { + shortHostName = host[:index] + } else { + shortHostName = host + } + } + return shortHostName +} + +func openTSDB(c *OpenTSDBConfig) error { + shortHostname := getShortHostname() + now := time.Now().Unix() + du := float64(c.DurationUnit) + conn, err := net.DialTCP("tcp", nil, c.Addr) + if nil != err { + return err + } + defer conn.Close() + w := bufio.NewWriter(conn) + c.Registry.Each(func(name string, i interface{}) { + switch metric := i.(type) { + case Counter: + fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, metric.Count(), shortHostname) + case Gauge: + fmt.Fprintf(w, "put %s.%s.value %d %d host=%s\n", c.Prefix, name, now, metric.Value(), shortHostname) + case GaugeFloat64: + fmt.Fprintf(w, "put %s.%s.value %d %f host=%s\n", c.Prefix, name, now, metric.Value(), shortHostname) + case Histogram: + h := metric.Snapshot() + ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) + fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, h.Count(), shortHostname) + fmt.Fprintf(w, "put %s.%s.min %d %d host=%s\n", c.Prefix, name, now, h.Min(), shortHostname) + fmt.Fprintf(w, "put %s.%s.max %d %d host=%s\n", c.Prefix, name, now, h.Max(), shortHostname) + fmt.Fprintf(w, "put %s.%s.mean %d %.2f host=%s\n", c.Prefix, name, now, h.Mean(), shortHostname) + fmt.Fprintf(w, "put %s.%s.std-dev %d %.2f host=%s\n", c.Prefix, name, now, h.StdDev(), shortHostname) + fmt.Fprintf(w, "put %s.%s.50-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[0], shortHostname) + fmt.Fprintf(w, "put %s.%s.75-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[1], shortHostname) + fmt.Fprintf(w, "put %s.%s.95-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[2], shortHostname) + fmt.Fprintf(w, "put %s.%s.99-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[3], shortHostname) + fmt.Fprintf(w, "put %s.%s.999-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[4], shortHostname) + case Meter: + m := metric.Snapshot() + fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, m.Count(), shortHostname) + fmt.Fprintf(w, "put %s.%s.one-minute %d %.2f host=%s\n", c.Prefix, name, now, m.Rate1(), shortHostname) + fmt.Fprintf(w, "put %s.%s.five-minute %d %.2f host=%s\n", c.Prefix, name, now, m.Rate5(), shortHostname) + fmt.Fprintf(w, "put %s.%s.fifteen-minute %d %.2f host=%s\n", c.Prefix, name, now, m.Rate15(), shortHostname) + fmt.Fprintf(w, "put %s.%s.mean %d %.2f host=%s\n", c.Prefix, name, now, m.RateMean(), shortHostname) + case Timer: + t := metric.Snapshot() + ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) + fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, t.Count(), shortHostname) + fmt.Fprintf(w, "put %s.%s.min %d %d host=%s\n", c.Prefix, name, now, t.Min()/int64(du), shortHostname) + fmt.Fprintf(w, "put %s.%s.max %d %d host=%s\n", c.Prefix, name, now, t.Max()/int64(du), shortHostname) + fmt.Fprintf(w, "put %s.%s.mean %d %.2f host=%s\n", c.Prefix, name, now, t.Mean()/du, shortHostname) + fmt.Fprintf(w, "put %s.%s.std-dev %d %.2f host=%s\n", c.Prefix, name, now, t.StdDev()/du, shortHostname) + fmt.Fprintf(w, "put %s.%s.50-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[0]/du, shortHostname) + fmt.Fprintf(w, "put %s.%s.75-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[1]/du, shortHostname) + fmt.Fprintf(w, "put %s.%s.95-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[2]/du, shortHostname) + fmt.Fprintf(w, "put %s.%s.99-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[3]/du, shortHostname) + fmt.Fprintf(w, "put %s.%s.999-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[4]/du, shortHostname) + fmt.Fprintf(w, "put %s.%s.one-minute %d %.2f host=%s\n", c.Prefix, name, now, t.Rate1(), shortHostname) + fmt.Fprintf(w, "put %s.%s.five-minute %d %.2f host=%s\n", c.Prefix, name, now, t.Rate5(), shortHostname) + fmt.Fprintf(w, "put %s.%s.fifteen-minute %d %.2f host=%s\n", c.Prefix, name, now, t.Rate15(), shortHostname) + fmt.Fprintf(w, "put %s.%s.mean-rate %d %.2f host=%s\n", c.Prefix, name, now, t.RateMean(), shortHostname) + } + w.Flush() + }) + return nil +} diff --git a/vendor/github.com/rcrowley/go-metrics/registry.go b/vendor/github.com/rcrowley/go-metrics/registry.go new file mode 100644 index 0000000..a8e6722 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/registry.go @@ -0,0 +1,373 @@ +package metrics + +import ( + "fmt" + "reflect" + "strings" + "sync" +) + +// DuplicateMetric is the error returned by Registry.Register when a metric +// already exists. If you mean to Register that metric you must first +// Unregister the existing metric. +type DuplicateMetric string + +func (err DuplicateMetric) Error() string { + return fmt.Sprintf("duplicate metric: %s", string(err)) +} + +// A Registry holds references to a set of metrics by name and can iterate +// over them, calling callback functions provided by the user. +// +// This is an interface so as to encourage other structs to implement +// the Registry API as appropriate. +type Registry interface { + + // Call the given function for each registered metric. + Each(func(string, interface{})) + + // Get the metric by the given name or nil if none is registered. + Get(string) interface{} + + // GetAll metrics in the Registry. + GetAll() map[string]map[string]interface{} + + // Gets an existing metric or registers the given one. + // The interface can be the metric to register if not found in registry, + // or a function returning the metric for lazy instantiation. + GetOrRegister(string, interface{}) interface{} + + // Register the given metric under the given name. + Register(string, interface{}) error + + // Run all registered healthchecks. + RunHealthchecks() + + // Unregister the metric with the given name. + Unregister(string) + + // Unregister all metrics. (Mostly for testing.) + UnregisterAll() +} + +// The standard implementation of a Registry is a mutex-protected map +// of names to metrics. +type StandardRegistry struct { + metrics map[string]interface{} + mutex sync.RWMutex +} + +// Create a new registry. +func NewRegistry() Registry { + return &StandardRegistry{metrics: make(map[string]interface{})} +} + +// Call the given function for each registered metric. +func (r *StandardRegistry) Each(f func(string, interface{})) { + metrics := r.registered() + for i := range metrics { + kv := &metrics[i] + f(kv.name, kv.value) + } +} + +// Get the metric by the given name or nil if none is registered. +func (r *StandardRegistry) Get(name string) interface{} { + r.mutex.RLock() + defer r.mutex.RUnlock() + return r.metrics[name] +} + +// Gets an existing metric or creates and registers a new one. Threadsafe +// alternative to calling Get and Register on failure. +// The interface can be the metric to register if not found in registry, +// or a function returning the metric for lazy instantiation. +func (r *StandardRegistry) GetOrRegister(name string, i interface{}) interface{} { + // access the read lock first which should be re-entrant + r.mutex.RLock() + metric, ok := r.metrics[name] + r.mutex.RUnlock() + if ok { + return metric + } + + // only take the write lock if we'll be modifying the metrics map + r.mutex.Lock() + defer r.mutex.Unlock() + if metric, ok := r.metrics[name]; ok { + return metric + } + if v := reflect.ValueOf(i); v.Kind() == reflect.Func { + i = v.Call(nil)[0].Interface() + } + r.register(name, i) + return i +} + +// Register the given metric under the given name. Returns a DuplicateMetric +// if a metric by the given name is already registered. +func (r *StandardRegistry) Register(name string, i interface{}) error { + r.mutex.Lock() + defer r.mutex.Unlock() + return r.register(name, i) +} + +// Run all registered healthchecks. +func (r *StandardRegistry) RunHealthchecks() { + r.mutex.RLock() + defer r.mutex.RUnlock() + for _, i := range r.metrics { + if h, ok := i.(Healthcheck); ok { + h.Check() + } + } +} + +// GetAll metrics in the Registry +func (r *StandardRegistry) GetAll() map[string]map[string]interface{} { + data := make(map[string]map[string]interface{}) + r.Each(func(name string, i interface{}) { + values := make(map[string]interface{}) + switch metric := i.(type) { + case Counter: + values["count"] = metric.Count() + case Gauge: + values["value"] = metric.Value() + case GaugeFloat64: + values["value"] = metric.Value() + case Healthcheck: + values["error"] = nil + metric.Check() + if err := metric.Error(); nil != err { + values["error"] = metric.Error().Error() + } + case Histogram: + h := metric.Snapshot() + ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) + values["count"] = h.Count() + values["min"] = h.Min() + values["max"] = h.Max() + values["mean"] = h.Mean() + values["stddev"] = h.StdDev() + values["median"] = ps[0] + values["75%"] = ps[1] + values["95%"] = ps[2] + values["99%"] = ps[3] + values["99.9%"] = ps[4] + case Meter: + m := metric.Snapshot() + values["count"] = m.Count() + values["1m.rate"] = m.Rate1() + values["5m.rate"] = m.Rate5() + values["15m.rate"] = m.Rate15() + values["mean.rate"] = m.RateMean() + case Timer: + t := metric.Snapshot() + ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) + values["count"] = t.Count() + values["min"] = t.Min() + values["max"] = t.Max() + values["mean"] = t.Mean() + values["stddev"] = t.StdDev() + values["median"] = ps[0] + values["75%"] = ps[1] + values["95%"] = ps[2] + values["99%"] = ps[3] + values["99.9%"] = ps[4] + values["1m.rate"] = t.Rate1() + values["5m.rate"] = t.Rate5() + values["15m.rate"] = t.Rate15() + values["mean.rate"] = t.RateMean() + } + data[name] = values + }) + return data +} + +// Unregister the metric with the given name. +func (r *StandardRegistry) Unregister(name string) { + r.mutex.Lock() + defer r.mutex.Unlock() + r.stop(name) + delete(r.metrics, name) +} + +// Unregister all metrics. (Mostly for testing.) +func (r *StandardRegistry) UnregisterAll() { + r.mutex.Lock() + defer r.mutex.Unlock() + for name, _ := range r.metrics { + r.stop(name) + delete(r.metrics, name) + } +} + +func (r *StandardRegistry) register(name string, i interface{}) error { + if _, ok := r.metrics[name]; ok { + return DuplicateMetric(name) + } + switch i.(type) { + case Counter, Gauge, GaugeFloat64, Healthcheck, Histogram, Meter, Timer: + r.metrics[name] = i + } + return nil +} + +type metricKV struct { + name string + value interface{} +} + +func (r *StandardRegistry) registered() []metricKV { + r.mutex.RLock() + defer r.mutex.RUnlock() + metrics := make([]metricKV, 0, len(r.metrics)) + for name, i := range r.metrics { + metrics = append(metrics, metricKV{ + name: name, + value: i, + }) + } + return metrics +} + +func (r *StandardRegistry) stop(name string) { + if i, ok := r.metrics[name]; ok { + if s, ok := i.(Stoppable); ok { + s.Stop() + } + } +} + +// Stoppable defines the metrics which has to be stopped. +type Stoppable interface { + Stop() +} + +type PrefixedRegistry struct { + underlying Registry + prefix string +} + +func NewPrefixedRegistry(prefix string) Registry { + return &PrefixedRegistry{ + underlying: NewRegistry(), + prefix: prefix, + } +} + +func NewPrefixedChildRegistry(parent Registry, prefix string) Registry { + return &PrefixedRegistry{ + underlying: parent, + prefix: prefix, + } +} + +// Call the given function for each registered metric. +func (r *PrefixedRegistry) Each(fn func(string, interface{})) { + wrappedFn := func(prefix string) func(string, interface{}) { + return func(name string, iface interface{}) { + if strings.HasPrefix(name, prefix) { + fn(name, iface) + } else { + return + } + } + } + + baseRegistry, prefix := findPrefix(r, "") + baseRegistry.Each(wrappedFn(prefix)) +} + +func findPrefix(registry Registry, prefix string) (Registry, string) { + switch r := registry.(type) { + case *PrefixedRegistry: + return findPrefix(r.underlying, r.prefix+prefix) + case *StandardRegistry: + return r, prefix + } + return nil, "" +} + +// Get the metric by the given name or nil if none is registered. +func (r *PrefixedRegistry) Get(name string) interface{} { + realName := r.prefix + name + return r.underlying.Get(realName) +} + +// Gets an existing metric or registers the given one. +// The interface can be the metric to register if not found in registry, +// or a function returning the metric for lazy instantiation. +func (r *PrefixedRegistry) GetOrRegister(name string, metric interface{}) interface{} { + realName := r.prefix + name + return r.underlying.GetOrRegister(realName, metric) +} + +// Register the given metric under the given name. The name will be prefixed. +func (r *PrefixedRegistry) Register(name string, metric interface{}) error { + realName := r.prefix + name + return r.underlying.Register(realName, metric) +} + +// Run all registered healthchecks. +func (r *PrefixedRegistry) RunHealthchecks() { + r.underlying.RunHealthchecks() +} + +// GetAll metrics in the Registry +func (r *PrefixedRegistry) GetAll() map[string]map[string]interface{} { + return r.underlying.GetAll() +} + +// Unregister the metric with the given name. The name will be prefixed. +func (r *PrefixedRegistry) Unregister(name string) { + realName := r.prefix + name + r.underlying.Unregister(realName) +} + +// Unregister all metrics. (Mostly for testing.) +func (r *PrefixedRegistry) UnregisterAll() { + r.underlying.UnregisterAll() +} + +var DefaultRegistry Registry = NewRegistry() + +// Call the given function for each registered metric. +func Each(f func(string, interface{})) { + DefaultRegistry.Each(f) +} + +// Get the metric by the given name or nil if none is registered. +func Get(name string) interface{} { + return DefaultRegistry.Get(name) +} + +// Gets an existing metric or creates and registers a new one. Threadsafe +// alternative to calling Get and Register on failure. +func GetOrRegister(name string, i interface{}) interface{} { + return DefaultRegistry.GetOrRegister(name, i) +} + +// Register the given metric under the given name. Returns a DuplicateMetric +// if a metric by the given name is already registered. +func Register(name string, i interface{}) error { + return DefaultRegistry.Register(name, i) +} + +// Register the given metric under the given name. Panics if a metric by the +// given name is already registered. +func MustRegister(name string, i interface{}) { + if err := Register(name, i); err != nil { + panic(err) + } +} + +// Run all registered healthchecks. +func RunHealthchecks() { + DefaultRegistry.RunHealthchecks() +} + +// Unregister the metric with the given name. +func Unregister(name string) { + DefaultRegistry.Unregister(name) +} diff --git a/vendor/github.com/rcrowley/go-metrics/runtime.go b/vendor/github.com/rcrowley/go-metrics/runtime.go new file mode 100644 index 0000000..4047ab3 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/runtime.go @@ -0,0 +1,216 @@ +package metrics + +import ( + "runtime" + "runtime/pprof" + "sync" + "time" +) + +var ( + memStats runtime.MemStats + runtimeMetrics struct { + MemStats struct { + Alloc Gauge + BuckHashSys Gauge + DebugGC Gauge + EnableGC Gauge + Frees Gauge + HeapAlloc Gauge + HeapIdle Gauge + HeapInuse Gauge + HeapObjects Gauge + HeapReleased Gauge + HeapSys Gauge + LastGC Gauge + Lookups Gauge + Mallocs Gauge + MCacheInuse Gauge + MCacheSys Gauge + MSpanInuse Gauge + MSpanSys Gauge + NextGC Gauge + NumGC Gauge + GCCPUFraction GaugeFloat64 + PauseNs Histogram + PauseTotalNs Gauge + StackInuse Gauge + StackSys Gauge + Sys Gauge + TotalAlloc Gauge + } + NumCgoCall Gauge + NumGoroutine Gauge + NumThread Gauge + ReadMemStats Timer + } + frees uint64 + lookups uint64 + mallocs uint64 + numGC uint32 + numCgoCalls int64 + + threadCreateProfile = pprof.Lookup("threadcreate") + registerRuntimeMetricsOnce = sync.Once{} +) + +// Capture new values for the Go runtime statistics exported in +// runtime.MemStats. This is designed to be called as a goroutine. +func CaptureRuntimeMemStats(r Registry, d time.Duration) { + for _ = range time.Tick(d) { + CaptureRuntimeMemStatsOnce(r) + } +} + +// Capture new values for the Go runtime statistics exported in +// runtime.MemStats. This is designed to be called in a background +// goroutine. Giving a registry which has not been given to +// RegisterRuntimeMemStats will panic. +// +// Be very careful with this because runtime.ReadMemStats calls the C +// functions runtime·semacquire(&runtime·worldsema) and runtime·stoptheworld() +// and that last one does what it says on the tin. +func CaptureRuntimeMemStatsOnce(r Registry) { + t := time.Now() + runtime.ReadMemStats(&memStats) // This takes 50-200us. + runtimeMetrics.ReadMemStats.UpdateSince(t) + + runtimeMetrics.MemStats.Alloc.Update(int64(memStats.Alloc)) + runtimeMetrics.MemStats.BuckHashSys.Update(int64(memStats.BuckHashSys)) + if memStats.DebugGC { + runtimeMetrics.MemStats.DebugGC.Update(1) + } else { + runtimeMetrics.MemStats.DebugGC.Update(0) + } + if memStats.EnableGC { + runtimeMetrics.MemStats.EnableGC.Update(1) + } else { + runtimeMetrics.MemStats.EnableGC.Update(0) + } + + runtimeMetrics.MemStats.Frees.Update(int64(memStats.Frees - frees)) + runtimeMetrics.MemStats.HeapAlloc.Update(int64(memStats.HeapAlloc)) + runtimeMetrics.MemStats.HeapIdle.Update(int64(memStats.HeapIdle)) + runtimeMetrics.MemStats.HeapInuse.Update(int64(memStats.HeapInuse)) + runtimeMetrics.MemStats.HeapObjects.Update(int64(memStats.HeapObjects)) + runtimeMetrics.MemStats.HeapReleased.Update(int64(memStats.HeapReleased)) + runtimeMetrics.MemStats.HeapSys.Update(int64(memStats.HeapSys)) + runtimeMetrics.MemStats.LastGC.Update(int64(memStats.LastGC)) + runtimeMetrics.MemStats.Lookups.Update(int64(memStats.Lookups - lookups)) + runtimeMetrics.MemStats.Mallocs.Update(int64(memStats.Mallocs - mallocs)) + runtimeMetrics.MemStats.MCacheInuse.Update(int64(memStats.MCacheInuse)) + runtimeMetrics.MemStats.MCacheSys.Update(int64(memStats.MCacheSys)) + runtimeMetrics.MemStats.MSpanInuse.Update(int64(memStats.MSpanInuse)) + runtimeMetrics.MemStats.MSpanSys.Update(int64(memStats.MSpanSys)) + runtimeMetrics.MemStats.NextGC.Update(int64(memStats.NextGC)) + runtimeMetrics.MemStats.NumGC.Update(int64(memStats.NumGC - numGC)) + runtimeMetrics.MemStats.GCCPUFraction.Update(gcCPUFraction(&memStats)) + + // + i := numGC % uint32(len(memStats.PauseNs)) + ii := memStats.NumGC % uint32(len(memStats.PauseNs)) + if memStats.NumGC-numGC >= uint32(len(memStats.PauseNs)) { + for i = 0; i < uint32(len(memStats.PauseNs)); i++ { + runtimeMetrics.MemStats.PauseNs.Update(int64(memStats.PauseNs[i])) + } + } else { + if i > ii { + for ; i < uint32(len(memStats.PauseNs)); i++ { + runtimeMetrics.MemStats.PauseNs.Update(int64(memStats.PauseNs[i])) + } + i = 0 + } + for ; i < ii; i++ { + runtimeMetrics.MemStats.PauseNs.Update(int64(memStats.PauseNs[i])) + } + } + frees = memStats.Frees + lookups = memStats.Lookups + mallocs = memStats.Mallocs + numGC = memStats.NumGC + + runtimeMetrics.MemStats.PauseTotalNs.Update(int64(memStats.PauseTotalNs)) + runtimeMetrics.MemStats.StackInuse.Update(int64(memStats.StackInuse)) + runtimeMetrics.MemStats.StackSys.Update(int64(memStats.StackSys)) + runtimeMetrics.MemStats.Sys.Update(int64(memStats.Sys)) + runtimeMetrics.MemStats.TotalAlloc.Update(int64(memStats.TotalAlloc)) + + currentNumCgoCalls := numCgoCall() + runtimeMetrics.NumCgoCall.Update(currentNumCgoCalls - numCgoCalls) + numCgoCalls = currentNumCgoCalls + + runtimeMetrics.NumGoroutine.Update(int64(runtime.NumGoroutine())) + + runtimeMetrics.NumThread.Update(int64(threadCreateProfile.Count())) +} + +// Register runtimeMetrics for the Go runtime statistics exported in runtime and +// specifically runtime.MemStats. The runtimeMetrics are named by their +// fully-qualified Go symbols, i.e. runtime.MemStats.Alloc. +func RegisterRuntimeMemStats(r Registry) { + registerRuntimeMetricsOnce.Do(func() { + runtimeMetrics.MemStats.Alloc = NewGauge() + runtimeMetrics.MemStats.BuckHashSys = NewGauge() + runtimeMetrics.MemStats.DebugGC = NewGauge() + runtimeMetrics.MemStats.EnableGC = NewGauge() + runtimeMetrics.MemStats.Frees = NewGauge() + runtimeMetrics.MemStats.HeapAlloc = NewGauge() + runtimeMetrics.MemStats.HeapIdle = NewGauge() + runtimeMetrics.MemStats.HeapInuse = NewGauge() + runtimeMetrics.MemStats.HeapObjects = NewGauge() + runtimeMetrics.MemStats.HeapReleased = NewGauge() + runtimeMetrics.MemStats.HeapSys = NewGauge() + runtimeMetrics.MemStats.LastGC = NewGauge() + runtimeMetrics.MemStats.Lookups = NewGauge() + runtimeMetrics.MemStats.Mallocs = NewGauge() + runtimeMetrics.MemStats.MCacheInuse = NewGauge() + runtimeMetrics.MemStats.MCacheSys = NewGauge() + runtimeMetrics.MemStats.MSpanInuse = NewGauge() + runtimeMetrics.MemStats.MSpanSys = NewGauge() + runtimeMetrics.MemStats.NextGC = NewGauge() + runtimeMetrics.MemStats.NumGC = NewGauge() + runtimeMetrics.MemStats.GCCPUFraction = NewGaugeFloat64() + runtimeMetrics.MemStats.PauseNs = NewHistogram(NewExpDecaySample(1028, 0.015)) + runtimeMetrics.MemStats.PauseTotalNs = NewGauge() + runtimeMetrics.MemStats.StackInuse = NewGauge() + runtimeMetrics.MemStats.StackSys = NewGauge() + runtimeMetrics.MemStats.Sys = NewGauge() + runtimeMetrics.MemStats.TotalAlloc = NewGauge() + runtimeMetrics.NumCgoCall = NewGauge() + runtimeMetrics.NumGoroutine = NewGauge() + runtimeMetrics.NumThread = NewGauge() + runtimeMetrics.ReadMemStats = NewTimer() + + r.Register("runtime.MemStats.Alloc", runtimeMetrics.MemStats.Alloc) + r.Register("runtime.MemStats.BuckHashSys", runtimeMetrics.MemStats.BuckHashSys) + r.Register("runtime.MemStats.DebugGC", runtimeMetrics.MemStats.DebugGC) + r.Register("runtime.MemStats.EnableGC", runtimeMetrics.MemStats.EnableGC) + r.Register("runtime.MemStats.Frees", runtimeMetrics.MemStats.Frees) + r.Register("runtime.MemStats.HeapAlloc", runtimeMetrics.MemStats.HeapAlloc) + r.Register("runtime.MemStats.HeapIdle", runtimeMetrics.MemStats.HeapIdle) + r.Register("runtime.MemStats.HeapInuse", runtimeMetrics.MemStats.HeapInuse) + r.Register("runtime.MemStats.HeapObjects", runtimeMetrics.MemStats.HeapObjects) + r.Register("runtime.MemStats.HeapReleased", runtimeMetrics.MemStats.HeapReleased) + r.Register("runtime.MemStats.HeapSys", runtimeMetrics.MemStats.HeapSys) + r.Register("runtime.MemStats.LastGC", runtimeMetrics.MemStats.LastGC) + r.Register("runtime.MemStats.Lookups", runtimeMetrics.MemStats.Lookups) + r.Register("runtime.MemStats.Mallocs", runtimeMetrics.MemStats.Mallocs) + r.Register("runtime.MemStats.MCacheInuse", runtimeMetrics.MemStats.MCacheInuse) + r.Register("runtime.MemStats.MCacheSys", runtimeMetrics.MemStats.MCacheSys) + r.Register("runtime.MemStats.MSpanInuse", runtimeMetrics.MemStats.MSpanInuse) + r.Register("runtime.MemStats.MSpanSys", runtimeMetrics.MemStats.MSpanSys) + r.Register("runtime.MemStats.NextGC", runtimeMetrics.MemStats.NextGC) + r.Register("runtime.MemStats.NumGC", runtimeMetrics.MemStats.NumGC) + r.Register("runtime.MemStats.GCCPUFraction", runtimeMetrics.MemStats.GCCPUFraction) + r.Register("runtime.MemStats.PauseNs", runtimeMetrics.MemStats.PauseNs) + r.Register("runtime.MemStats.PauseTotalNs", runtimeMetrics.MemStats.PauseTotalNs) + r.Register("runtime.MemStats.StackInuse", runtimeMetrics.MemStats.StackInuse) + r.Register("runtime.MemStats.StackSys", runtimeMetrics.MemStats.StackSys) + r.Register("runtime.MemStats.Sys", runtimeMetrics.MemStats.Sys) + r.Register("runtime.MemStats.TotalAlloc", runtimeMetrics.MemStats.TotalAlloc) + r.Register("runtime.NumCgoCall", runtimeMetrics.NumCgoCall) + r.Register("runtime.NumGoroutine", runtimeMetrics.NumGoroutine) + r.Register("runtime.NumThread", runtimeMetrics.NumThread) + r.Register("runtime.ReadMemStats", runtimeMetrics.ReadMemStats) + }) +} diff --git a/vendor/github.com/rcrowley/go-metrics/runtime_cgo.go b/vendor/github.com/rcrowley/go-metrics/runtime_cgo.go new file mode 100644 index 0000000..e3391f4 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/runtime_cgo.go @@ -0,0 +1,10 @@ +// +build cgo +// +build !appengine + +package metrics + +import "runtime" + +func numCgoCall() int64 { + return runtime.NumCgoCall() +} diff --git a/vendor/github.com/rcrowley/go-metrics/runtime_gccpufraction.go b/vendor/github.com/rcrowley/go-metrics/runtime_gccpufraction.go new file mode 100644 index 0000000..ca12c05 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/runtime_gccpufraction.go @@ -0,0 +1,9 @@ +// +build go1.5 + +package metrics + +import "runtime" + +func gcCPUFraction(memStats *runtime.MemStats) float64 { + return memStats.GCCPUFraction +} diff --git a/vendor/github.com/rcrowley/go-metrics/runtime_no_cgo.go b/vendor/github.com/rcrowley/go-metrics/runtime_no_cgo.go new file mode 100644 index 0000000..616a3b4 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/runtime_no_cgo.go @@ -0,0 +1,7 @@ +// +build !cgo appengine + +package metrics + +func numCgoCall() int64 { + return 0 +} diff --git a/vendor/github.com/rcrowley/go-metrics/runtime_no_gccpufraction.go b/vendor/github.com/rcrowley/go-metrics/runtime_no_gccpufraction.go new file mode 100644 index 0000000..be96aa6 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/runtime_no_gccpufraction.go @@ -0,0 +1,9 @@ +// +build !go1.5 + +package metrics + +import "runtime" + +func gcCPUFraction(memStats *runtime.MemStats) float64 { + return 0 +} diff --git a/vendor/github.com/rcrowley/go-metrics/sample.go b/vendor/github.com/rcrowley/go-metrics/sample.go new file mode 100644 index 0000000..fecee5e --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/sample.go @@ -0,0 +1,616 @@ +package metrics + +import ( + "math" + "math/rand" + "sort" + "sync" + "time" +) + +const rescaleThreshold = time.Hour + +// Samples maintain a statistically-significant selection of values from +// a stream. +type Sample interface { + Clear() + Count() int64 + Max() int64 + Mean() float64 + Min() int64 + Percentile(float64) float64 + Percentiles([]float64) []float64 + Size() int + Snapshot() Sample + StdDev() float64 + Sum() int64 + Update(int64) + Values() []int64 + Variance() float64 +} + +// ExpDecaySample is an exponentially-decaying sample using a forward-decaying +// priority reservoir. See Cormode et al's "Forward Decay: A Practical Time +// Decay Model for Streaming Systems". +// +// +type ExpDecaySample struct { + alpha float64 + count int64 + mutex sync.Mutex + reservoirSize int + t0, t1 time.Time + values *expDecaySampleHeap +} + +// NewExpDecaySample constructs a new exponentially-decaying sample with the +// given reservoir size and alpha. +func NewExpDecaySample(reservoirSize int, alpha float64) Sample { + if UseNilMetrics { + return NilSample{} + } + s := &ExpDecaySample{ + alpha: alpha, + reservoirSize: reservoirSize, + t0: time.Now(), + values: newExpDecaySampleHeap(reservoirSize), + } + s.t1 = s.t0.Add(rescaleThreshold) + return s +} + +// Clear clears all samples. +func (s *ExpDecaySample) Clear() { + s.mutex.Lock() + defer s.mutex.Unlock() + s.count = 0 + s.t0 = time.Now() + s.t1 = s.t0.Add(rescaleThreshold) + s.values.Clear() +} + +// Count returns the number of samples recorded, which may exceed the +// reservoir size. +func (s *ExpDecaySample) Count() int64 { + s.mutex.Lock() + defer s.mutex.Unlock() + return s.count +} + +// Max returns the maximum value in the sample, which may not be the maximum +// value ever to be part of the sample. +func (s *ExpDecaySample) Max() int64 { + return SampleMax(s.Values()) +} + +// Mean returns the mean of the values in the sample. +func (s *ExpDecaySample) Mean() float64 { + return SampleMean(s.Values()) +} + +// Min returns the minimum value in the sample, which may not be the minimum +// value ever to be part of the sample. +func (s *ExpDecaySample) Min() int64 { + return SampleMin(s.Values()) +} + +// Percentile returns an arbitrary percentile of values in the sample. +func (s *ExpDecaySample) Percentile(p float64) float64 { + return SamplePercentile(s.Values(), p) +} + +// Percentiles returns a slice of arbitrary percentiles of values in the +// sample. +func (s *ExpDecaySample) Percentiles(ps []float64) []float64 { + return SamplePercentiles(s.Values(), ps) +} + +// Size returns the size of the sample, which is at most the reservoir size. +func (s *ExpDecaySample) Size() int { + s.mutex.Lock() + defer s.mutex.Unlock() + return s.values.Size() +} + +// Snapshot returns a read-only copy of the sample. +func (s *ExpDecaySample) Snapshot() Sample { + s.mutex.Lock() + defer s.mutex.Unlock() + vals := s.values.Values() + values := make([]int64, len(vals)) + for i, v := range vals { + values[i] = v.v + } + return &SampleSnapshot{ + count: s.count, + values: values, + } +} + +// StdDev returns the standard deviation of the values in the sample. +func (s *ExpDecaySample) StdDev() float64 { + return SampleStdDev(s.Values()) +} + +// Sum returns the sum of the values in the sample. +func (s *ExpDecaySample) Sum() int64 { + return SampleSum(s.Values()) +} + +// Update samples a new value. +func (s *ExpDecaySample) Update(v int64) { + s.update(time.Now(), v) +} + +// Values returns a copy of the values in the sample. +func (s *ExpDecaySample) Values() []int64 { + s.mutex.Lock() + defer s.mutex.Unlock() + vals := s.values.Values() + values := make([]int64, len(vals)) + for i, v := range vals { + values[i] = v.v + } + return values +} + +// Variance returns the variance of the values in the sample. +func (s *ExpDecaySample) Variance() float64 { + return SampleVariance(s.Values()) +} + +// update samples a new value at a particular timestamp. This is a method all +// its own to facilitate testing. +func (s *ExpDecaySample) update(t time.Time, v int64) { + s.mutex.Lock() + defer s.mutex.Unlock() + s.count++ + if s.values.Size() == s.reservoirSize { + s.values.Pop() + } + s.values.Push(expDecaySample{ + k: math.Exp(t.Sub(s.t0).Seconds()*s.alpha) / rand.Float64(), + v: v, + }) + if t.After(s.t1) { + values := s.values.Values() + t0 := s.t0 + s.values.Clear() + s.t0 = t + s.t1 = s.t0.Add(rescaleThreshold) + for _, v := range values { + v.k = v.k * math.Exp(-s.alpha*s.t0.Sub(t0).Seconds()) + s.values.Push(v) + } + } +} + +// NilSample is a no-op Sample. +type NilSample struct{} + +// Clear is a no-op. +func (NilSample) Clear() {} + +// Count is a no-op. +func (NilSample) Count() int64 { return 0 } + +// Max is a no-op. +func (NilSample) Max() int64 { return 0 } + +// Mean is a no-op. +func (NilSample) Mean() float64 { return 0.0 } + +// Min is a no-op. +func (NilSample) Min() int64 { return 0 } + +// Percentile is a no-op. +func (NilSample) Percentile(p float64) float64 { return 0.0 } + +// Percentiles is a no-op. +func (NilSample) Percentiles(ps []float64) []float64 { + return make([]float64, len(ps)) +} + +// Size is a no-op. +func (NilSample) Size() int { return 0 } + +// Sample is a no-op. +func (NilSample) Snapshot() Sample { return NilSample{} } + +// StdDev is a no-op. +func (NilSample) StdDev() float64 { return 0.0 } + +// Sum is a no-op. +func (NilSample) Sum() int64 { return 0 } + +// Update is a no-op. +func (NilSample) Update(v int64) {} + +// Values is a no-op. +func (NilSample) Values() []int64 { return []int64{} } + +// Variance is a no-op. +func (NilSample) Variance() float64 { return 0.0 } + +// SampleMax returns the maximum value of the slice of int64. +func SampleMax(values []int64) int64 { + if 0 == len(values) { + return 0 + } + var max int64 = math.MinInt64 + for _, v := range values { + if max < v { + max = v + } + } + return max +} + +// SampleMean returns the mean value of the slice of int64. +func SampleMean(values []int64) float64 { + if 0 == len(values) { + return 0.0 + } + return float64(SampleSum(values)) / float64(len(values)) +} + +// SampleMin returns the minimum value of the slice of int64. +func SampleMin(values []int64) int64 { + if 0 == len(values) { + return 0 + } + var min int64 = math.MaxInt64 + for _, v := range values { + if min > v { + min = v + } + } + return min +} + +// SamplePercentiles returns an arbitrary percentile of the slice of int64. +func SamplePercentile(values int64Slice, p float64) float64 { + return SamplePercentiles(values, []float64{p})[0] +} + +// SamplePercentiles returns a slice of arbitrary percentiles of the slice of +// int64. +func SamplePercentiles(values int64Slice, ps []float64) []float64 { + scores := make([]float64, len(ps)) + size := len(values) + if size > 0 { + sort.Sort(values) + for i, p := range ps { + pos := p * float64(size+1) + if pos < 1.0 { + scores[i] = float64(values[0]) + } else if pos >= float64(size) { + scores[i] = float64(values[size-1]) + } else { + lower := float64(values[int(pos)-1]) + upper := float64(values[int(pos)]) + scores[i] = lower + (pos-math.Floor(pos))*(upper-lower) + } + } + } + return scores +} + +// SampleSnapshot is a read-only copy of another Sample. +type SampleSnapshot struct { + count int64 + values []int64 +} + +func NewSampleSnapshot(count int64, values []int64) *SampleSnapshot { + return &SampleSnapshot{ + count: count, + values: values, + } +} + +// Clear panics. +func (*SampleSnapshot) Clear() { + panic("Clear called on a SampleSnapshot") +} + +// Count returns the count of inputs at the time the snapshot was taken. +func (s *SampleSnapshot) Count() int64 { return s.count } + +// Max returns the maximal value at the time the snapshot was taken. +func (s *SampleSnapshot) Max() int64 { return SampleMax(s.values) } + +// Mean returns the mean value at the time the snapshot was taken. +func (s *SampleSnapshot) Mean() float64 { return SampleMean(s.values) } + +// Min returns the minimal value at the time the snapshot was taken. +func (s *SampleSnapshot) Min() int64 { return SampleMin(s.values) } + +// Percentile returns an arbitrary percentile of values at the time the +// snapshot was taken. +func (s *SampleSnapshot) Percentile(p float64) float64 { + return SamplePercentile(s.values, p) +} + +// Percentiles returns a slice of arbitrary percentiles of values at the time +// the snapshot was taken. +func (s *SampleSnapshot) Percentiles(ps []float64) []float64 { + return SamplePercentiles(s.values, ps) +} + +// Size returns the size of the sample at the time the snapshot was taken. +func (s *SampleSnapshot) Size() int { return len(s.values) } + +// Snapshot returns the snapshot. +func (s *SampleSnapshot) Snapshot() Sample { return s } + +// StdDev returns the standard deviation of values at the time the snapshot was +// taken. +func (s *SampleSnapshot) StdDev() float64 { return SampleStdDev(s.values) } + +// Sum returns the sum of values at the time the snapshot was taken. +func (s *SampleSnapshot) Sum() int64 { return SampleSum(s.values) } + +// Update panics. +func (*SampleSnapshot) Update(int64) { + panic("Update called on a SampleSnapshot") +} + +// Values returns a copy of the values in the sample. +func (s *SampleSnapshot) Values() []int64 { + values := make([]int64, len(s.values)) + copy(values, s.values) + return values +} + +// Variance returns the variance of values at the time the snapshot was taken. +func (s *SampleSnapshot) Variance() float64 { return SampleVariance(s.values) } + +// SampleStdDev returns the standard deviation of the slice of int64. +func SampleStdDev(values []int64) float64 { + return math.Sqrt(SampleVariance(values)) +} + +// SampleSum returns the sum of the slice of int64. +func SampleSum(values []int64) int64 { + var sum int64 + for _, v := range values { + sum += v + } + return sum +} + +// SampleVariance returns the variance of the slice of int64. +func SampleVariance(values []int64) float64 { + if 0 == len(values) { + return 0.0 + } + m := SampleMean(values) + var sum float64 + for _, v := range values { + d := float64(v) - m + sum += d * d + } + return sum / float64(len(values)) +} + +// A uniform sample using Vitter's Algorithm R. +// +// +type UniformSample struct { + count int64 + mutex sync.Mutex + reservoirSize int + values []int64 +} + +// NewUniformSample constructs a new uniform sample with the given reservoir +// size. +func NewUniformSample(reservoirSize int) Sample { + if UseNilMetrics { + return NilSample{} + } + return &UniformSample{ + reservoirSize: reservoirSize, + values: make([]int64, 0, reservoirSize), + } +} + +// Clear clears all samples. +func (s *UniformSample) Clear() { + s.mutex.Lock() + defer s.mutex.Unlock() + s.count = 0 + s.values = make([]int64, 0, s.reservoirSize) +} + +// Count returns the number of samples recorded, which may exceed the +// reservoir size. +func (s *UniformSample) Count() int64 { + s.mutex.Lock() + defer s.mutex.Unlock() + return s.count +} + +// Max returns the maximum value in the sample, which may not be the maximum +// value ever to be part of the sample. +func (s *UniformSample) Max() int64 { + s.mutex.Lock() + defer s.mutex.Unlock() + return SampleMax(s.values) +} + +// Mean returns the mean of the values in the sample. +func (s *UniformSample) Mean() float64 { + s.mutex.Lock() + defer s.mutex.Unlock() + return SampleMean(s.values) +} + +// Min returns the minimum value in the sample, which may not be the minimum +// value ever to be part of the sample. +func (s *UniformSample) Min() int64 { + s.mutex.Lock() + defer s.mutex.Unlock() + return SampleMin(s.values) +} + +// Percentile returns an arbitrary percentile of values in the sample. +func (s *UniformSample) Percentile(p float64) float64 { + s.mutex.Lock() + defer s.mutex.Unlock() + return SamplePercentile(s.values, p) +} + +// Percentiles returns a slice of arbitrary percentiles of values in the +// sample. +func (s *UniformSample) Percentiles(ps []float64) []float64 { + s.mutex.Lock() + defer s.mutex.Unlock() + return SamplePercentiles(s.values, ps) +} + +// Size returns the size of the sample, which is at most the reservoir size. +func (s *UniformSample) Size() int { + s.mutex.Lock() + defer s.mutex.Unlock() + return len(s.values) +} + +// Snapshot returns a read-only copy of the sample. +func (s *UniformSample) Snapshot() Sample { + s.mutex.Lock() + defer s.mutex.Unlock() + values := make([]int64, len(s.values)) + copy(values, s.values) + return &SampleSnapshot{ + count: s.count, + values: values, + } +} + +// StdDev returns the standard deviation of the values in the sample. +func (s *UniformSample) StdDev() float64 { + s.mutex.Lock() + defer s.mutex.Unlock() + return SampleStdDev(s.values) +} + +// Sum returns the sum of the values in the sample. +func (s *UniformSample) Sum() int64 { + s.mutex.Lock() + defer s.mutex.Unlock() + return SampleSum(s.values) +} + +// Update samples a new value. +func (s *UniformSample) Update(v int64) { + s.mutex.Lock() + defer s.mutex.Unlock() + s.count++ + if len(s.values) < s.reservoirSize { + s.values = append(s.values, v) + } else { + r := rand.Int63n(s.count) + if r < int64(len(s.values)) { + s.values[int(r)] = v + } + } +} + +// Values returns a copy of the values in the sample. +func (s *UniformSample) Values() []int64 { + s.mutex.Lock() + defer s.mutex.Unlock() + values := make([]int64, len(s.values)) + copy(values, s.values) + return values +} + +// Variance returns the variance of the values in the sample. +func (s *UniformSample) Variance() float64 { + s.mutex.Lock() + defer s.mutex.Unlock() + return SampleVariance(s.values) +} + +// expDecaySample represents an individual sample in a heap. +type expDecaySample struct { + k float64 + v int64 +} + +func newExpDecaySampleHeap(reservoirSize int) *expDecaySampleHeap { + return &expDecaySampleHeap{make([]expDecaySample, 0, reservoirSize)} +} + +// expDecaySampleHeap is a min-heap of expDecaySamples. +// The internal implementation is copied from the standard library's container/heap +type expDecaySampleHeap struct { + s []expDecaySample +} + +func (h *expDecaySampleHeap) Clear() { + h.s = h.s[:0] +} + +func (h *expDecaySampleHeap) Push(s expDecaySample) { + n := len(h.s) + h.s = h.s[0 : n+1] + h.s[n] = s + h.up(n) +} + +func (h *expDecaySampleHeap) Pop() expDecaySample { + n := len(h.s) - 1 + h.s[0], h.s[n] = h.s[n], h.s[0] + h.down(0, n) + + n = len(h.s) + s := h.s[n-1] + h.s = h.s[0 : n-1] + return s +} + +func (h *expDecaySampleHeap) Size() int { + return len(h.s) +} + +func (h *expDecaySampleHeap) Values() []expDecaySample { + return h.s +} + +func (h *expDecaySampleHeap) up(j int) { + for { + i := (j - 1) / 2 // parent + if i == j || !(h.s[j].k < h.s[i].k) { + break + } + h.s[i], h.s[j] = h.s[j], h.s[i] + j = i + } +} + +func (h *expDecaySampleHeap) down(i, n int) { + for { + j1 := 2*i + 1 + if j1 >= n || j1 < 0 { // j1 < 0 after int overflow + break + } + j := j1 // left child + if j2 := j1 + 1; j2 < n && !(h.s[j1].k < h.s[j2].k) { + j = j2 // = 2*i + 2 // right child + } + if !(h.s[j].k < h.s[i].k) { + break + } + h.s[i], h.s[j] = h.s[j], h.s[i] + i = j + } +} + +type int64Slice []int64 + +func (p int64Slice) Len() int { return len(p) } +func (p int64Slice) Less(i, j int) bool { return p[i] < p[j] } +func (p int64Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } diff --git a/vendor/github.com/rcrowley/go-metrics/syslog.go b/vendor/github.com/rcrowley/go-metrics/syslog.go new file mode 100644 index 0000000..693f190 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/syslog.go @@ -0,0 +1,78 @@ +// +build !windows + +package metrics + +import ( + "fmt" + "log/syslog" + "time" +) + +// Output each metric in the given registry to syslog periodically using +// the given syslogger. +func Syslog(r Registry, d time.Duration, w *syslog.Writer) { + for _ = range time.Tick(d) { + r.Each(func(name string, i interface{}) { + switch metric := i.(type) { + case Counter: + w.Info(fmt.Sprintf("counter %s: count: %d", name, metric.Count())) + case Gauge: + w.Info(fmt.Sprintf("gauge %s: value: %d", name, metric.Value())) + case GaugeFloat64: + w.Info(fmt.Sprintf("gauge %s: value: %f", name, metric.Value())) + case Healthcheck: + metric.Check() + w.Info(fmt.Sprintf("healthcheck %s: error: %v", name, metric.Error())) + case Histogram: + h := metric.Snapshot() + ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) + w.Info(fmt.Sprintf( + "histogram %s: count: %d min: %d max: %d mean: %.2f stddev: %.2f median: %.2f 75%%: %.2f 95%%: %.2f 99%%: %.2f 99.9%%: %.2f", + name, + h.Count(), + h.Min(), + h.Max(), + h.Mean(), + h.StdDev(), + ps[0], + ps[1], + ps[2], + ps[3], + ps[4], + )) + case Meter: + m := metric.Snapshot() + w.Info(fmt.Sprintf( + "meter %s: count: %d 1-min: %.2f 5-min: %.2f 15-min: %.2f mean: %.2f", + name, + m.Count(), + m.Rate1(), + m.Rate5(), + m.Rate15(), + m.RateMean(), + )) + case Timer: + t := metric.Snapshot() + ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) + w.Info(fmt.Sprintf( + "timer %s: count: %d min: %d max: %d mean: %.2f stddev: %.2f median: %.2f 75%%: %.2f 95%%: %.2f 99%%: %.2f 99.9%%: %.2f 1-min: %.2f 5-min: %.2f 15-min: %.2f mean-rate: %.2f", + name, + t.Count(), + t.Min(), + t.Max(), + t.Mean(), + t.StdDev(), + ps[0], + ps[1], + ps[2], + ps[3], + ps[4], + t.Rate1(), + t.Rate5(), + t.Rate15(), + t.RateMean(), + )) + } + }) + } +} diff --git a/vendor/github.com/rcrowley/go-metrics/timer.go b/vendor/github.com/rcrowley/go-metrics/timer.go new file mode 100644 index 0000000..d6ec4c6 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/timer.go @@ -0,0 +1,329 @@ +package metrics + +import ( + "sync" + "time" +) + +// Timers capture the duration and rate of events. +type Timer interface { + Count() int64 + Max() int64 + Mean() float64 + Min() int64 + Percentile(float64) float64 + Percentiles([]float64) []float64 + Rate1() float64 + Rate5() float64 + Rate15() float64 + RateMean() float64 + Snapshot() Timer + StdDev() float64 + Stop() + Sum() int64 + Time(func()) + Update(time.Duration) + UpdateSince(time.Time) + Variance() float64 +} + +// GetOrRegisterTimer returns an existing Timer or constructs and registers a +// new StandardTimer. +// Be sure to unregister the meter from the registry once it is of no use to +// allow for garbage collection. +func GetOrRegisterTimer(name string, r Registry) Timer { + if nil == r { + r = DefaultRegistry + } + return r.GetOrRegister(name, NewTimer).(Timer) +} + +// NewCustomTimer constructs a new StandardTimer from a Histogram and a Meter. +// Be sure to call Stop() once the timer is of no use to allow for garbage collection. +func NewCustomTimer(h Histogram, m Meter) Timer { + if UseNilMetrics { + return NilTimer{} + } + return &StandardTimer{ + histogram: h, + meter: m, + } +} + +// NewRegisteredTimer constructs and registers a new StandardTimer. +// Be sure to unregister the meter from the registry once it is of no use to +// allow for garbage collection. +func NewRegisteredTimer(name string, r Registry) Timer { + c := NewTimer() + if nil == r { + r = DefaultRegistry + } + r.Register(name, c) + return c +} + +// NewTimer constructs a new StandardTimer using an exponentially-decaying +// sample with the same reservoir size and alpha as UNIX load averages. +// Be sure to call Stop() once the timer is of no use to allow for garbage collection. +func NewTimer() Timer { + if UseNilMetrics { + return NilTimer{} + } + return &StandardTimer{ + histogram: NewHistogram(NewExpDecaySample(1028, 0.015)), + meter: NewMeter(), + } +} + +// NilTimer is a no-op Timer. +type NilTimer struct { + h Histogram + m Meter +} + +// Count is a no-op. +func (NilTimer) Count() int64 { return 0 } + +// Max is a no-op. +func (NilTimer) Max() int64 { return 0 } + +// Mean is a no-op. +func (NilTimer) Mean() float64 { return 0.0 } + +// Min is a no-op. +func (NilTimer) Min() int64 { return 0 } + +// Percentile is a no-op. +func (NilTimer) Percentile(p float64) float64 { return 0.0 } + +// Percentiles is a no-op. +func (NilTimer) Percentiles(ps []float64) []float64 { + return make([]float64, len(ps)) +} + +// Rate1 is a no-op. +func (NilTimer) Rate1() float64 { return 0.0 } + +// Rate5 is a no-op. +func (NilTimer) Rate5() float64 { return 0.0 } + +// Rate15 is a no-op. +func (NilTimer) Rate15() float64 { return 0.0 } + +// RateMean is a no-op. +func (NilTimer) RateMean() float64 { return 0.0 } + +// Snapshot is a no-op. +func (NilTimer) Snapshot() Timer { return NilTimer{} } + +// StdDev is a no-op. +func (NilTimer) StdDev() float64 { return 0.0 } + +// Stop is a no-op. +func (NilTimer) Stop() {} + +// Sum is a no-op. +func (NilTimer) Sum() int64 { return 0 } + +// Time is a no-op. +func (NilTimer) Time(func()) {} + +// Update is a no-op. +func (NilTimer) Update(time.Duration) {} + +// UpdateSince is a no-op. +func (NilTimer) UpdateSince(time.Time) {} + +// Variance is a no-op. +func (NilTimer) Variance() float64 { return 0.0 } + +// StandardTimer is the standard implementation of a Timer and uses a Histogram +// and Meter. +type StandardTimer struct { + histogram Histogram + meter Meter + mutex sync.Mutex +} + +// Count returns the number of events recorded. +func (t *StandardTimer) Count() int64 { + return t.histogram.Count() +} + +// Max returns the maximum value in the sample. +func (t *StandardTimer) Max() int64 { + return t.histogram.Max() +} + +// Mean returns the mean of the values in the sample. +func (t *StandardTimer) Mean() float64 { + return t.histogram.Mean() +} + +// Min returns the minimum value in the sample. +func (t *StandardTimer) Min() int64 { + return t.histogram.Min() +} + +// Percentile returns an arbitrary percentile of the values in the sample. +func (t *StandardTimer) Percentile(p float64) float64 { + return t.histogram.Percentile(p) +} + +// Percentiles returns a slice of arbitrary percentiles of the values in the +// sample. +func (t *StandardTimer) Percentiles(ps []float64) []float64 { + return t.histogram.Percentiles(ps) +} + +// Rate1 returns the one-minute moving average rate of events per second. +func (t *StandardTimer) Rate1() float64 { + return t.meter.Rate1() +} + +// Rate5 returns the five-minute moving average rate of events per second. +func (t *StandardTimer) Rate5() float64 { + return t.meter.Rate5() +} + +// Rate15 returns the fifteen-minute moving average rate of events per second. +func (t *StandardTimer) Rate15() float64 { + return t.meter.Rate15() +} + +// RateMean returns the meter's mean rate of events per second. +func (t *StandardTimer) RateMean() float64 { + return t.meter.RateMean() +} + +// Snapshot returns a read-only copy of the timer. +func (t *StandardTimer) Snapshot() Timer { + t.mutex.Lock() + defer t.mutex.Unlock() + return &TimerSnapshot{ + histogram: t.histogram.Snapshot().(*HistogramSnapshot), + meter: t.meter.Snapshot().(*MeterSnapshot), + } +} + +// StdDev returns the standard deviation of the values in the sample. +func (t *StandardTimer) StdDev() float64 { + return t.histogram.StdDev() +} + +// Stop stops the meter. +func (t *StandardTimer) Stop() { + t.meter.Stop() +} + +// Sum returns the sum in the sample. +func (t *StandardTimer) Sum() int64 { + return t.histogram.Sum() +} + +// Record the duration of the execution of the given function. +func (t *StandardTimer) Time(f func()) { + ts := time.Now() + f() + t.Update(time.Since(ts)) +} + +// Record the duration of an event. +func (t *StandardTimer) Update(d time.Duration) { + t.mutex.Lock() + defer t.mutex.Unlock() + t.histogram.Update(int64(d)) + t.meter.Mark(1) +} + +// Record the duration of an event that started at a time and ends now. +func (t *StandardTimer) UpdateSince(ts time.Time) { + t.mutex.Lock() + defer t.mutex.Unlock() + t.histogram.Update(int64(time.Since(ts))) + t.meter.Mark(1) +} + +// Variance returns the variance of the values in the sample. +func (t *StandardTimer) Variance() float64 { + return t.histogram.Variance() +} + +// TimerSnapshot is a read-only copy of another Timer. +type TimerSnapshot struct { + histogram *HistogramSnapshot + meter *MeterSnapshot +} + +// Count returns the number of events recorded at the time the snapshot was +// taken. +func (t *TimerSnapshot) Count() int64 { return t.histogram.Count() } + +// Max returns the maximum value at the time the snapshot was taken. +func (t *TimerSnapshot) Max() int64 { return t.histogram.Max() } + +// Mean returns the mean value at the time the snapshot was taken. +func (t *TimerSnapshot) Mean() float64 { return t.histogram.Mean() } + +// Min returns the minimum value at the time the snapshot was taken. +func (t *TimerSnapshot) Min() int64 { return t.histogram.Min() } + +// Percentile returns an arbitrary percentile of sampled values at the time the +// snapshot was taken. +func (t *TimerSnapshot) Percentile(p float64) float64 { + return t.histogram.Percentile(p) +} + +// Percentiles returns a slice of arbitrary percentiles of sampled values at +// the time the snapshot was taken. +func (t *TimerSnapshot) Percentiles(ps []float64) []float64 { + return t.histogram.Percentiles(ps) +} + +// Rate1 returns the one-minute moving average rate of events per second at the +// time the snapshot was taken. +func (t *TimerSnapshot) Rate1() float64 { return t.meter.Rate1() } + +// Rate5 returns the five-minute moving average rate of events per second at +// the time the snapshot was taken. +func (t *TimerSnapshot) Rate5() float64 { return t.meter.Rate5() } + +// Rate15 returns the fifteen-minute moving average rate of events per second +// at the time the snapshot was taken. +func (t *TimerSnapshot) Rate15() float64 { return t.meter.Rate15() } + +// RateMean returns the meter's mean rate of events per second at the time the +// snapshot was taken. +func (t *TimerSnapshot) RateMean() float64 { return t.meter.RateMean() } + +// Snapshot returns the snapshot. +func (t *TimerSnapshot) Snapshot() Timer { return t } + +// StdDev returns the standard deviation of the values at the time the snapshot +// was taken. +func (t *TimerSnapshot) StdDev() float64 { return t.histogram.StdDev() } + +// Stop is a no-op. +func (t *TimerSnapshot) Stop() {} + +// Sum returns the sum at the time the snapshot was taken. +func (t *TimerSnapshot) Sum() int64 { return t.histogram.Sum() } + +// Time panics. +func (*TimerSnapshot) Time(func()) { + panic("Time called on a TimerSnapshot") +} + +// Update panics. +func (*TimerSnapshot) Update(time.Duration) { + panic("Update called on a TimerSnapshot") +} + +// UpdateSince panics. +func (*TimerSnapshot) UpdateSince(time.Time) { + panic("UpdateSince called on a TimerSnapshot") +} + +// Variance returns the variance of the values at the time the snapshot was +// taken. +func (t *TimerSnapshot) Variance() float64 { return t.histogram.Variance() } diff --git a/vendor/github.com/rcrowley/go-metrics/validate.sh b/vendor/github.com/rcrowley/go-metrics/validate.sh new file mode 100644 index 0000000..c4ae91e --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/validate.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e + +# check there are no formatting issues +GOFMT_LINES=`gofmt -l . | wc -l | xargs` +test $GOFMT_LINES -eq 0 || echo "gofmt needs to be run, ${GOFMT_LINES} files have issues" + +# run the tests for the root package +go test -race . diff --git a/vendor/github.com/rcrowley/go-metrics/writer.go b/vendor/github.com/rcrowley/go-metrics/writer.go new file mode 100644 index 0000000..091e971 --- /dev/null +++ b/vendor/github.com/rcrowley/go-metrics/writer.go @@ -0,0 +1,100 @@ +package metrics + +import ( + "fmt" + "io" + "sort" + "time" +) + +// Write sorts writes each metric in the given registry periodically to the +// given io.Writer. +func Write(r Registry, d time.Duration, w io.Writer) { + for _ = range time.Tick(d) { + WriteOnce(r, w) + } +} + +// WriteOnce sorts and writes metrics in the given registry to the given +// io.Writer. +func WriteOnce(r Registry, w io.Writer) { + var namedMetrics namedMetricSlice + r.Each(func(name string, i interface{}) { + namedMetrics = append(namedMetrics, namedMetric{name, i}) + }) + + sort.Sort(namedMetrics) + for _, namedMetric := range namedMetrics { + switch metric := namedMetric.m.(type) { + case Counter: + fmt.Fprintf(w, "counter %s\n", namedMetric.name) + fmt.Fprintf(w, " count: %9d\n", metric.Count()) + case Gauge: + fmt.Fprintf(w, "gauge %s\n", namedMetric.name) + fmt.Fprintf(w, " value: %9d\n", metric.Value()) + case GaugeFloat64: + fmt.Fprintf(w, "gauge %s\n", namedMetric.name) + fmt.Fprintf(w, " value: %f\n", metric.Value()) + case Healthcheck: + metric.Check() + fmt.Fprintf(w, "healthcheck %s\n", namedMetric.name) + fmt.Fprintf(w, " error: %v\n", metric.Error()) + case Histogram: + h := metric.Snapshot() + ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) + fmt.Fprintf(w, "histogram %s\n", namedMetric.name) + fmt.Fprintf(w, " count: %9d\n", h.Count()) + fmt.Fprintf(w, " min: %9d\n", h.Min()) + fmt.Fprintf(w, " max: %9d\n", h.Max()) + fmt.Fprintf(w, " mean: %12.2f\n", h.Mean()) + fmt.Fprintf(w, " stddev: %12.2f\n", h.StdDev()) + fmt.Fprintf(w, " median: %12.2f\n", ps[0]) + fmt.Fprintf(w, " 75%%: %12.2f\n", ps[1]) + fmt.Fprintf(w, " 95%%: %12.2f\n", ps[2]) + fmt.Fprintf(w, " 99%%: %12.2f\n", ps[3]) + fmt.Fprintf(w, " 99.9%%: %12.2f\n", ps[4]) + case Meter: + m := metric.Snapshot() + fmt.Fprintf(w, "meter %s\n", namedMetric.name) + fmt.Fprintf(w, " count: %9d\n", m.Count()) + fmt.Fprintf(w, " 1-min rate: %12.2f\n", m.Rate1()) + fmt.Fprintf(w, " 5-min rate: %12.2f\n", m.Rate5()) + fmt.Fprintf(w, " 15-min rate: %12.2f\n", m.Rate15()) + fmt.Fprintf(w, " mean rate: %12.2f\n", m.RateMean()) + case Timer: + t := metric.Snapshot() + ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) + fmt.Fprintf(w, "timer %s\n", namedMetric.name) + fmt.Fprintf(w, " count: %9d\n", t.Count()) + fmt.Fprintf(w, " min: %9d\n", t.Min()) + fmt.Fprintf(w, " max: %9d\n", t.Max()) + fmt.Fprintf(w, " mean: %12.2f\n", t.Mean()) + fmt.Fprintf(w, " stddev: %12.2f\n", t.StdDev()) + fmt.Fprintf(w, " median: %12.2f\n", ps[0]) + fmt.Fprintf(w, " 75%%: %12.2f\n", ps[1]) + fmt.Fprintf(w, " 95%%: %12.2f\n", ps[2]) + fmt.Fprintf(w, " 99%%: %12.2f\n", ps[3]) + fmt.Fprintf(w, " 99.9%%: %12.2f\n", ps[4]) + fmt.Fprintf(w, " 1-min rate: %12.2f\n", t.Rate1()) + fmt.Fprintf(w, " 5-min rate: %12.2f\n", t.Rate5()) + fmt.Fprintf(w, " 15-min rate: %12.2f\n", t.Rate15()) + fmt.Fprintf(w, " mean rate: %12.2f\n", t.RateMean()) + } + } +} + +type namedMetric struct { + name string + m interface{} +} + +// namedMetricSlice is a slice of namedMetrics that implements sort.Interface. +type namedMetricSlice []namedMetric + +func (nms namedMetricSlice) Len() int { return len(nms) } + +func (nms namedMetricSlice) Swap(i, j int) { nms[i], nms[j] = nms[j], nms[i] } + +func (nms namedMetricSlice) Less(i, j int) bool { + return nms[i].name < nms[j].name +} diff --git a/vendor/github.com/spf13/pflag/.gitignore b/vendor/github.com/spf13/pflag/.gitignore new file mode 100644 index 0000000..c3da290 --- /dev/null +++ b/vendor/github.com/spf13/pflag/.gitignore @@ -0,0 +1,2 @@ +.idea/* + diff --git a/vendor/github.com/spf13/pflag/.travis.yml b/vendor/github.com/spf13/pflag/.travis.yml new file mode 100644 index 0000000..f8a63b3 --- /dev/null +++ b/vendor/github.com/spf13/pflag/.travis.yml @@ -0,0 +1,21 @@ +sudo: false + +language: go + +go: + - 1.7.3 + - 1.8.1 + - tip + +matrix: + allow_failures: + - go: tip + +install: + - go get github.com/golang/lint/golint + - export PATH=$GOPATH/bin:$PATH + - go install ./... + +script: + - verify/all.sh -v + - go test ./... diff --git a/vendor/github.com/spf13/pflag/LICENSE b/vendor/github.com/spf13/pflag/LICENSE new file mode 100644 index 0000000..63ed1cf --- /dev/null +++ b/vendor/github.com/spf13/pflag/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2012 Alex Ogier. All rights reserved. +Copyright (c) 2012 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/spf13/pflag/README.md b/vendor/github.com/spf13/pflag/README.md new file mode 100644 index 0000000..b052414 --- /dev/null +++ b/vendor/github.com/spf13/pflag/README.md @@ -0,0 +1,296 @@ +[![Build Status](https://travis-ci.org/spf13/pflag.svg?branch=master)](https://travis-ci.org/spf13/pflag) +[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/pflag)](https://goreportcard.com/report/github.com/spf13/pflag) +[![GoDoc](https://godoc.org/github.com/spf13/pflag?status.svg)](https://godoc.org/github.com/spf13/pflag) + +## Description + +pflag is a drop-in replacement for Go's flag package, implementing +POSIX/GNU-style --flags. + +pflag is compatible with the [GNU extensions to the POSIX recommendations +for command-line options][1]. For a more precise description, see the +"Command-line flag syntax" section below. + +[1]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html + +pflag is available under the same style of BSD license as the Go language, +which can be found in the LICENSE file. + +## Installation + +pflag is available using the standard `go get` command. + +Install by running: + + go get github.com/spf13/pflag + +Run tests by running: + + go test github.com/spf13/pflag + +## Usage + +pflag is a drop-in replacement of Go's native flag package. If you import +pflag under the name "flag" then all code should continue to function +with no changes. + +``` go +import flag "github.com/spf13/pflag" +``` + +There is one exception to this: if you directly instantiate the Flag struct +there is one more field "Shorthand" that you will need to set. +Most code never instantiates this struct directly, and instead uses +functions such as String(), BoolVar(), and Var(), and is therefore +unaffected. + +Define flags using flag.String(), Bool(), Int(), etc. + +This declares an integer flag, -flagname, stored in the pointer ip, with type *int. + +``` go +var ip *int = flag.Int("flagname", 1234, "help message for flagname") +``` + +If you like, you can bind the flag to a variable using the Var() functions. + +``` go +var flagvar int +func init() { + flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") +} +``` + +Or you can create custom flags that satisfy the Value interface (with +pointer receivers) and couple them to flag parsing by + +``` go +flag.Var(&flagVal, "name", "help message for flagname") +``` + +For such flags, the default value is just the initial value of the variable. + +After all flags are defined, call + +``` go +flag.Parse() +``` + +to parse the command line into the defined flags. + +Flags may then be used directly. If you're using the flags themselves, +they are all pointers; if you bind to variables, they're values. + +``` go +fmt.Println("ip has value ", *ip) +fmt.Println("flagvar has value ", flagvar) +``` + +There are helpers function to get values later if you have the FlagSet but +it was difficult to keep up with all of the flag pointers in your code. +If you have a pflag.FlagSet with a flag called 'flagname' of type int you +can use GetInt() to get the int value. But notice that 'flagname' must exist +and it must be an int. GetString("flagname") will fail. + +``` go +i, err := flagset.GetInt("flagname") +``` + +After parsing, the arguments after the flag are available as the +slice flag.Args() or individually as flag.Arg(i). +The arguments are indexed from 0 through flag.NArg()-1. + +The pflag package also defines some new functions that are not in flag, +that give one-letter shorthands for flags. You can use these by appending +'P' to the name of any function that defines a flag. + +``` go +var ip = flag.IntP("flagname", "f", 1234, "help message") +var flagvar bool +func init() { + flag.BoolVarP(&flagvar, "boolname", "b", true, "help message") +} +flag.VarP(&flagVal, "varname", "v", "help message") +``` + +Shorthand letters can be used with single dashes on the command line. +Boolean shorthand flags can be combined with other shorthand flags. + +The default set of command-line flags is controlled by +top-level functions. The FlagSet type allows one to define +independent sets of flags, such as to implement subcommands +in a command-line interface. The methods of FlagSet are +analogous to the top-level functions for the command-line +flag set. + +## Setting no option default values for flags + +After you create a flag it is possible to set the pflag.NoOptDefVal for +the given flag. Doing this changes the meaning of the flag slightly. If +a flag has a NoOptDefVal and the flag is set on the command line without +an option the flag will be set to the NoOptDefVal. For example given: + +``` go +var ip = flag.IntP("flagname", "f", 1234, "help message") +flag.Lookup("flagname").NoOptDefVal = "4321" +``` + +Would result in something like + +| Parsed Arguments | Resulting Value | +| ------------- | ------------- | +| --flagname=1357 | ip=1357 | +| --flagname | ip=4321 | +| [nothing] | ip=1234 | + +## Command line flag syntax + +``` +--flag // boolean flags, or flags with no option default values +--flag x // only on flags without a default value +--flag=x +``` + +Unlike the flag package, a single dash before an option means something +different than a double dash. Single dashes signify a series of shorthand +letters for flags. All but the last shorthand letter must be boolean flags +or a flag with a default value + +``` +// boolean or flags where the 'no option default value' is set +-f +-f=true +-abc +but +-b true is INVALID + +// non-boolean and flags without a 'no option default value' +-n 1234 +-n=1234 +-n1234 + +// mixed +-abcs "hello" +-absd="hello" +-abcs1234 +``` + +Flag parsing stops after the terminator "--". Unlike the flag package, +flags can be interspersed with arguments anywhere on the command line +before this terminator. + +Integer flags accept 1234, 0664, 0x1234 and may be negative. +Boolean flags (in their long form) accept 1, 0, t, f, true, false, +TRUE, FALSE, True, False. +Duration flags accept any input valid for time.ParseDuration. + +## Mutating or "Normalizing" Flag names + +It is possible to set a custom flag name 'normalization function.' It allows flag names to be mutated both when created in the code and when used on the command line to some 'normalized' form. The 'normalized' form is used for comparison. Two examples of using the custom normalization func follow. + +**Example #1**: You want -, _, and . in flags to compare the same. aka --my-flag == --my_flag == --my.flag + +``` go +func wordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName { + from := []string{"-", "_"} + to := "." + for _, sep := range from { + name = strings.Replace(name, sep, to, -1) + } + return pflag.NormalizedName(name) +} + +myFlagSet.SetNormalizeFunc(wordSepNormalizeFunc) +``` + +**Example #2**: You want to alias two flags. aka --old-flag-name == --new-flag-name + +``` go +func aliasNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName { + switch name { + case "old-flag-name": + name = "new-flag-name" + break + } + return pflag.NormalizedName(name) +} + +myFlagSet.SetNormalizeFunc(aliasNormalizeFunc) +``` + +## Deprecating a flag or its shorthand +It is possible to deprecate a flag, or just its shorthand. Deprecating a flag/shorthand hides it from help text and prints a usage message when the deprecated flag/shorthand is used. + +**Example #1**: You want to deprecate a flag named "badflag" as well as inform the users what flag they should use instead. +```go +// deprecate a flag by specifying its name and a usage message +flags.MarkDeprecated("badflag", "please use --good-flag instead") +``` +This hides "badflag" from help text, and prints `Flag --badflag has been deprecated, please use --good-flag instead` when "badflag" is used. + +**Example #2**: You want to keep a flag name "noshorthandflag" but deprecate its shortname "n". +```go +// deprecate a flag shorthand by specifying its flag name and a usage message +flags.MarkShorthandDeprecated("noshorthandflag", "please use --noshorthandflag only") +``` +This hides the shortname "n" from help text, and prints `Flag shorthand -n has been deprecated, please use --noshorthandflag only` when the shorthand "n" is used. + +Note that usage message is essential here, and it should not be empty. + +## Hidden flags +It is possible to mark a flag as hidden, meaning it will still function as normal, however will not show up in usage/help text. + +**Example**: You have a flag named "secretFlag" that you need for internal use only and don't want it showing up in help text, or for its usage text to be available. +```go +// hide a flag by specifying its name +flags.MarkHidden("secretFlag") +``` + +## Disable sorting of flags +`pflag` allows you to disable sorting of flags for help and usage message. + +**Example**: +```go +flags.BoolP("verbose", "v", false, "verbose output") +flags.String("coolflag", "yeaah", "it's really cool flag") +flags.Int("usefulflag", 777, "sometimes it's very useful") +flags.SortFlags = false +flags.PrintDefaults() +``` +**Output**: +``` + -v, --verbose verbose output + --coolflag string it's really cool flag (default "yeaah") + --usefulflag int sometimes it's very useful (default 777) +``` + + +## Supporting Go flags when using pflag +In order to support flags defined using Go's `flag` package, they must be added to the `pflag` flagset. This is usually necessary +to support flags defined by third-party dependencies (e.g. `golang/glog`). + +**Example**: You want to add the Go flags to the `CommandLine` flagset +```go +import ( + goflag "flag" + flag "github.com/spf13/pflag" +) + +var ip *int = flag.Int("flagname", 1234, "help message for flagname") + +func main() { + flag.CommandLine.AddGoFlagSet(goflag.CommandLine) + flag.Parse() +} +``` + +## More info + +You can see the full reference documentation of the pflag package +[at godoc.org][3], or through go's standard documentation system by +running `godoc -http=:6060` and browsing to +[http://localhost:6060/pkg/github.com/spf13/pflag][2] after +installation. + +[2]: http://localhost:6060/pkg/github.com/spf13/pflag +[3]: http://godoc.org/github.com/spf13/pflag diff --git a/vendor/github.com/spf13/pflag/bool.go b/vendor/github.com/spf13/pflag/bool.go new file mode 100644 index 0000000..c4c5c0b --- /dev/null +++ b/vendor/github.com/spf13/pflag/bool.go @@ -0,0 +1,94 @@ +package pflag + +import "strconv" + +// optional interface to indicate boolean flags that can be +// supplied without "=value" text +type boolFlag interface { + Value + IsBoolFlag() bool +} + +// -- bool Value +type boolValue bool + +func newBoolValue(val bool, p *bool) *boolValue { + *p = val + return (*boolValue)(p) +} + +func (b *boolValue) Set(s string) error { + v, err := strconv.ParseBool(s) + *b = boolValue(v) + return err +} + +func (b *boolValue) Type() string { + return "bool" +} + +func (b *boolValue) String() string { return strconv.FormatBool(bool(*b)) } + +func (b *boolValue) IsBoolFlag() bool { return true } + +func boolConv(sval string) (interface{}, error) { + return strconv.ParseBool(sval) +} + +// GetBool return the bool value of a flag with the given name +func (f *FlagSet) GetBool(name string) (bool, error) { + val, err := f.getFlagType(name, "bool", boolConv) + if err != nil { + return false, err + } + return val.(bool), nil +} + +// BoolVar defines a bool flag with specified name, default value, and usage string. +// The argument p points to a bool variable in which to store the value of the flag. +func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) { + f.BoolVarP(p, name, "", value, usage) +} + +// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BoolVarP(p *bool, name, shorthand string, value bool, usage string) { + flag := f.VarPF(newBoolValue(value, p), name, shorthand, usage) + flag.NoOptDefVal = "true" +} + +// BoolVar defines a bool flag with specified name, default value, and usage string. +// The argument p points to a bool variable in which to store the value of the flag. +func BoolVar(p *bool, name string, value bool, usage string) { + BoolVarP(p, name, "", value, usage) +} + +// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash. +func BoolVarP(p *bool, name, shorthand string, value bool, usage string) { + flag := CommandLine.VarPF(newBoolValue(value, p), name, shorthand, usage) + flag.NoOptDefVal = "true" +} + +// Bool defines a bool flag with specified name, default value, and usage string. +// The return value is the address of a bool variable that stores the value of the flag. +func (f *FlagSet) Bool(name string, value bool, usage string) *bool { + return f.BoolP(name, "", value, usage) +} + +// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BoolP(name, shorthand string, value bool, usage string) *bool { + p := new(bool) + f.BoolVarP(p, name, shorthand, value, usage) + return p +} + +// Bool defines a bool flag with specified name, default value, and usage string. +// The return value is the address of a bool variable that stores the value of the flag. +func Bool(name string, value bool, usage string) *bool { + return BoolP(name, "", value, usage) +} + +// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash. +func BoolP(name, shorthand string, value bool, usage string) *bool { + b := CommandLine.BoolP(name, shorthand, value, usage) + return b +} diff --git a/vendor/github.com/spf13/pflag/bool_slice.go b/vendor/github.com/spf13/pflag/bool_slice.go new file mode 100644 index 0000000..5af02f1 --- /dev/null +++ b/vendor/github.com/spf13/pflag/bool_slice.go @@ -0,0 +1,147 @@ +package pflag + +import ( + "io" + "strconv" + "strings" +) + +// -- boolSlice Value +type boolSliceValue struct { + value *[]bool + changed bool +} + +func newBoolSliceValue(val []bool, p *[]bool) *boolSliceValue { + bsv := new(boolSliceValue) + bsv.value = p + *bsv.value = val + return bsv +} + +// Set converts, and assigns, the comma-separated boolean argument string representation as the []bool value of this flag. +// If Set is called on a flag that already has a []bool assigned, the newly converted values will be appended. +func (s *boolSliceValue) Set(val string) error { + + // remove all quote characters + rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "") + + // read flag arguments with CSV parser + boolStrSlice, err := readAsCSV(rmQuote.Replace(val)) + if err != nil && err != io.EOF { + return err + } + + // parse boolean values into slice + out := make([]bool, 0, len(boolStrSlice)) + for _, boolStr := range boolStrSlice { + b, err := strconv.ParseBool(strings.TrimSpace(boolStr)) + if err != nil { + return err + } + out = append(out, b) + } + + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + + s.changed = true + + return nil +} + +// Type returns a string that uniquely represents this flag's type. +func (s *boolSliceValue) Type() string { + return "boolSlice" +} + +// String defines a "native" format for this boolean slice flag value. +func (s *boolSliceValue) String() string { + + boolStrSlice := make([]string, len(*s.value)) + for i, b := range *s.value { + boolStrSlice[i] = strconv.FormatBool(b) + } + + out, _ := writeAsCSV(boolStrSlice) + + return "[" + out + "]" +} + +func boolSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Empty string would cause a slice with one (empty) entry + if len(val) == 0 { + return []bool{}, nil + } + ss := strings.Split(val, ",") + out := make([]bool, len(ss)) + for i, t := range ss { + var err error + out[i], err = strconv.ParseBool(t) + if err != nil { + return nil, err + } + } + return out, nil +} + +// GetBoolSlice returns the []bool value of a flag with the given name. +func (f *FlagSet) GetBoolSlice(name string) ([]bool, error) { + val, err := f.getFlagType(name, "boolSlice", boolSliceConv) + if err != nil { + return []bool{}, err + } + return val.([]bool), nil +} + +// BoolSliceVar defines a boolSlice flag with specified name, default value, and usage string. +// The argument p points to a []bool variable in which to store the value of the flag. +func (f *FlagSet) BoolSliceVar(p *[]bool, name string, value []bool, usage string) { + f.VarP(newBoolSliceValue(value, p), name, "", usage) +} + +// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) { + f.VarP(newBoolSliceValue(value, p), name, shorthand, usage) +} + +// BoolSliceVar defines a []bool flag with specified name, default value, and usage string. +// The argument p points to a []bool variable in which to store the value of the flag. +func BoolSliceVar(p *[]bool, name string, value []bool, usage string) { + CommandLine.VarP(newBoolSliceValue(value, p), name, "", usage) +} + +// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash. +func BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) { + CommandLine.VarP(newBoolSliceValue(value, p), name, shorthand, usage) +} + +// BoolSlice defines a []bool flag with specified name, default value, and usage string. +// The return value is the address of a []bool variable that stores the value of the flag. +func (f *FlagSet) BoolSlice(name string, value []bool, usage string) *[]bool { + p := []bool{} + f.BoolSliceVarP(&p, name, "", value, usage) + return &p +} + +// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool { + p := []bool{} + f.BoolSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// BoolSlice defines a []bool flag with specified name, default value, and usage string. +// The return value is the address of a []bool variable that stores the value of the flag. +func BoolSlice(name string, value []bool, usage string) *[]bool { + return CommandLine.BoolSliceP(name, "", value, usage) +} + +// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash. +func BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool { + return CommandLine.BoolSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/bytes.go b/vendor/github.com/spf13/pflag/bytes.go new file mode 100644 index 0000000..12c58db --- /dev/null +++ b/vendor/github.com/spf13/pflag/bytes.go @@ -0,0 +1,105 @@ +package pflag + +import ( + "encoding/hex" + "fmt" + "strings" +) + +// BytesHex adapts []byte for use as a flag. Value of flag is HEX encoded +type bytesHexValue []byte + +func (bytesHex bytesHexValue) String() string { + return fmt.Sprintf("%X", []byte(bytesHex)) +} + +func (bytesHex *bytesHexValue) Set(value string) error { + bin, err := hex.DecodeString(strings.TrimSpace(value)) + + if err != nil { + return err + } + + *bytesHex = bin + + return nil +} + +func (*bytesHexValue) Type() string { + return "bytesHex" +} + +func newBytesHexValue(val []byte, p *[]byte) *bytesHexValue { + *p = val + return (*bytesHexValue)(p) +} + +func bytesHexConv(sval string) (interface{}, error) { + + bin, err := hex.DecodeString(sval) + + if err == nil { + return bin, nil + } + + return nil, fmt.Errorf("invalid string being converted to Bytes: %s %s", sval, err) +} + +// GetBytesHex return the []byte value of a flag with the given name +func (f *FlagSet) GetBytesHex(name string) ([]byte, error) { + val, err := f.getFlagType(name, "bytesHex", bytesHexConv) + + if err != nil { + return []byte{}, err + } + + return val.([]byte), nil +} + +// BytesHexVar defines an []byte flag with specified name, default value, and usage string. +// The argument p points to an []byte variable in which to store the value of the flag. +func (f *FlagSet) BytesHexVar(p *[]byte, name string, value []byte, usage string) { + f.VarP(newBytesHexValue(value, p), name, "", usage) +} + +// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) { + f.VarP(newBytesHexValue(value, p), name, shorthand, usage) +} + +// BytesHexVar defines an []byte flag with specified name, default value, and usage string. +// The argument p points to an []byte variable in which to store the value of the flag. +func BytesHexVar(p *[]byte, name string, value []byte, usage string) { + CommandLine.VarP(newBytesHexValue(value, p), name, "", usage) +} + +// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash. +func BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) { + CommandLine.VarP(newBytesHexValue(value, p), name, shorthand, usage) +} + +// BytesHex defines an []byte flag with specified name, default value, and usage string. +// The return value is the address of an []byte variable that stores the value of the flag. +func (f *FlagSet) BytesHex(name string, value []byte, usage string) *[]byte { + p := new([]byte) + f.BytesHexVarP(p, name, "", value, usage) + return p +} + +// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BytesHexP(name, shorthand string, value []byte, usage string) *[]byte { + p := new([]byte) + f.BytesHexVarP(p, name, shorthand, value, usage) + return p +} + +// BytesHex defines an []byte flag with specified name, default value, and usage string. +// The return value is the address of an []byte variable that stores the value of the flag. +func BytesHex(name string, value []byte, usage string) *[]byte { + return CommandLine.BytesHexP(name, "", value, usage) +} + +// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash. +func BytesHexP(name, shorthand string, value []byte, usage string) *[]byte { + return CommandLine.BytesHexP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/count.go b/vendor/github.com/spf13/pflag/count.go new file mode 100644 index 0000000..aa126e4 --- /dev/null +++ b/vendor/github.com/spf13/pflag/count.go @@ -0,0 +1,96 @@ +package pflag + +import "strconv" + +// -- count Value +type countValue int + +func newCountValue(val int, p *int) *countValue { + *p = val + return (*countValue)(p) +} + +func (i *countValue) Set(s string) error { + // "+1" means that no specific value was passed, so increment + if s == "+1" { + *i = countValue(*i + 1) + return nil + } + v, err := strconv.ParseInt(s, 0, 0) + *i = countValue(v) + return err +} + +func (i *countValue) Type() string { + return "count" +} + +func (i *countValue) String() string { return strconv.Itoa(int(*i)) } + +func countConv(sval string) (interface{}, error) { + i, err := strconv.Atoi(sval) + if err != nil { + return nil, err + } + return i, nil +} + +// GetCount return the int value of a flag with the given name +func (f *FlagSet) GetCount(name string) (int, error) { + val, err := f.getFlagType(name, "count", countConv) + if err != nil { + return 0, err + } + return val.(int), nil +} + +// CountVar defines a count flag with specified name, default value, and usage string. +// The argument p points to an int variable in which to store the value of the flag. +// A count flag will add 1 to its value evey time it is found on the command line +func (f *FlagSet) CountVar(p *int, name string, usage string) { + f.CountVarP(p, name, "", usage) +} + +// CountVarP is like CountVar only take a shorthand for the flag name. +func (f *FlagSet) CountVarP(p *int, name, shorthand string, usage string) { + flag := f.VarPF(newCountValue(0, p), name, shorthand, usage) + flag.NoOptDefVal = "+1" +} + +// CountVar like CountVar only the flag is placed on the CommandLine instead of a given flag set +func CountVar(p *int, name string, usage string) { + CommandLine.CountVar(p, name, usage) +} + +// CountVarP is like CountVar only take a shorthand for the flag name. +func CountVarP(p *int, name, shorthand string, usage string) { + CommandLine.CountVarP(p, name, shorthand, usage) +} + +// Count defines a count flag with specified name, default value, and usage string. +// The return value is the address of an int variable that stores the value of the flag. +// A count flag will add 1 to its value evey time it is found on the command line +func (f *FlagSet) Count(name string, usage string) *int { + p := new(int) + f.CountVarP(p, name, "", usage) + return p +} + +// CountP is like Count only takes a shorthand for the flag name. +func (f *FlagSet) CountP(name, shorthand string, usage string) *int { + p := new(int) + f.CountVarP(p, name, shorthand, usage) + return p +} + +// Count defines a count flag with specified name, default value, and usage string. +// The return value is the address of an int variable that stores the value of the flag. +// A count flag will add 1 to its value evey time it is found on the command line +func Count(name string, usage string) *int { + return CommandLine.CountP(name, "", usage) +} + +// CountP is like Count only takes a shorthand for the flag name. +func CountP(name, shorthand string, usage string) *int { + return CommandLine.CountP(name, shorthand, usage) +} diff --git a/vendor/github.com/spf13/pflag/duration.go b/vendor/github.com/spf13/pflag/duration.go new file mode 100644 index 0000000..e9debef --- /dev/null +++ b/vendor/github.com/spf13/pflag/duration.go @@ -0,0 +1,86 @@ +package pflag + +import ( + "time" +) + +// -- time.Duration Value +type durationValue time.Duration + +func newDurationValue(val time.Duration, p *time.Duration) *durationValue { + *p = val + return (*durationValue)(p) +} + +func (d *durationValue) Set(s string) error { + v, err := time.ParseDuration(s) + *d = durationValue(v) + return err +} + +func (d *durationValue) Type() string { + return "duration" +} + +func (d *durationValue) String() string { return (*time.Duration)(d).String() } + +func durationConv(sval string) (interface{}, error) { + return time.ParseDuration(sval) +} + +// GetDuration return the duration value of a flag with the given name +func (f *FlagSet) GetDuration(name string) (time.Duration, error) { + val, err := f.getFlagType(name, "duration", durationConv) + if err != nil { + return 0, err + } + return val.(time.Duration), nil +} + +// DurationVar defines a time.Duration flag with specified name, default value, and usage string. +// The argument p points to a time.Duration variable in which to store the value of the flag. +func (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string) { + f.VarP(newDurationValue(value, p), name, "", usage) +} + +// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) { + f.VarP(newDurationValue(value, p), name, shorthand, usage) +} + +// DurationVar defines a time.Duration flag with specified name, default value, and usage string. +// The argument p points to a time.Duration variable in which to store the value of the flag. +func DurationVar(p *time.Duration, name string, value time.Duration, usage string) { + CommandLine.VarP(newDurationValue(value, p), name, "", usage) +} + +// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash. +func DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) { + CommandLine.VarP(newDurationValue(value, p), name, shorthand, usage) +} + +// Duration defines a time.Duration flag with specified name, default value, and usage string. +// The return value is the address of a time.Duration variable that stores the value of the flag. +func (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration { + p := new(time.Duration) + f.DurationVarP(p, name, "", value, usage) + return p +} + +// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration { + p := new(time.Duration) + f.DurationVarP(p, name, shorthand, value, usage) + return p +} + +// Duration defines a time.Duration flag with specified name, default value, and usage string. +// The return value is the address of a time.Duration variable that stores the value of the flag. +func Duration(name string, value time.Duration, usage string) *time.Duration { + return CommandLine.DurationP(name, "", value, usage) +} + +// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash. +func DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration { + return CommandLine.DurationP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/duration_slice.go b/vendor/github.com/spf13/pflag/duration_slice.go new file mode 100644 index 0000000..52c6b6d --- /dev/null +++ b/vendor/github.com/spf13/pflag/duration_slice.go @@ -0,0 +1,128 @@ +package pflag + +import ( + "fmt" + "strings" + "time" +) + +// -- durationSlice Value +type durationSliceValue struct { + value *[]time.Duration + changed bool +} + +func newDurationSliceValue(val []time.Duration, p *[]time.Duration) *durationSliceValue { + dsv := new(durationSliceValue) + dsv.value = p + *dsv.value = val + return dsv +} + +func (s *durationSliceValue) Set(val string) error { + ss := strings.Split(val, ",") + out := make([]time.Duration, len(ss)) + for i, d := range ss { + var err error + out[i], err = time.ParseDuration(d) + if err != nil { + return err + } + + } + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + s.changed = true + return nil +} + +func (s *durationSliceValue) Type() string { + return "durationSlice" +} + +func (s *durationSliceValue) String() string { + out := make([]string, len(*s.value)) + for i, d := range *s.value { + out[i] = fmt.Sprintf("%s", d) + } + return "[" + strings.Join(out, ",") + "]" +} + +func durationSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Empty string would cause a slice with one (empty) entry + if len(val) == 0 { + return []time.Duration{}, nil + } + ss := strings.Split(val, ",") + out := make([]time.Duration, len(ss)) + for i, d := range ss { + var err error + out[i], err = time.ParseDuration(d) + if err != nil { + return nil, err + } + + } + return out, nil +} + +// GetDurationSlice returns the []time.Duration value of a flag with the given name +func (f *FlagSet) GetDurationSlice(name string) ([]time.Duration, error) { + val, err := f.getFlagType(name, "durationSlice", durationSliceConv) + if err != nil { + return []time.Duration{}, err + } + return val.([]time.Duration), nil +} + +// DurationSliceVar defines a durationSlice flag with specified name, default value, and usage string. +// The argument p points to a []time.Duration variable in which to store the value of the flag. +func (f *FlagSet) DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) { + f.VarP(newDurationSliceValue(value, p), name, "", usage) +} + +// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) { + f.VarP(newDurationSliceValue(value, p), name, shorthand, usage) +} + +// DurationSliceVar defines a duration[] flag with specified name, default value, and usage string. +// The argument p points to a duration[] variable in which to store the value of the flag. +func DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) { + CommandLine.VarP(newDurationSliceValue(value, p), name, "", usage) +} + +// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash. +func DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) { + CommandLine.VarP(newDurationSliceValue(value, p), name, shorthand, usage) +} + +// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string. +// The return value is the address of a []time.Duration variable that stores the value of the flag. +func (f *FlagSet) DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration { + p := []time.Duration{} + f.DurationSliceVarP(&p, name, "", value, usage) + return &p +} + +// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration { + p := []time.Duration{} + f.DurationSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string. +// The return value is the address of a []time.Duration variable that stores the value of the flag. +func DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration { + return CommandLine.DurationSliceP(name, "", value, usage) +} + +// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash. +func DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration { + return CommandLine.DurationSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/flag.go b/vendor/github.com/spf13/pflag/flag.go new file mode 100644 index 0000000..5eadc84 --- /dev/null +++ b/vendor/github.com/spf13/pflag/flag.go @@ -0,0 +1,1223 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package pflag is a drop-in replacement for Go's flag package, implementing +POSIX/GNU-style --flags. + +pflag is compatible with the GNU extensions to the POSIX recommendations +for command-line options. See +http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html + +Usage: + +pflag is a drop-in replacement of Go's native flag package. If you import +pflag under the name "flag" then all code should continue to function +with no changes. + + import flag "github.com/spf13/pflag" + +There is one exception to this: if you directly instantiate the Flag struct +there is one more field "Shorthand" that you will need to set. +Most code never instantiates this struct directly, and instead uses +functions such as String(), BoolVar(), and Var(), and is therefore +unaffected. + +Define flags using flag.String(), Bool(), Int(), etc. + +This declares an integer flag, -flagname, stored in the pointer ip, with type *int. + var ip = flag.Int("flagname", 1234, "help message for flagname") +If you like, you can bind the flag to a variable using the Var() functions. + var flagvar int + func init() { + flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") + } +Or you can create custom flags that satisfy the Value interface (with +pointer receivers) and couple them to flag parsing by + flag.Var(&flagVal, "name", "help message for flagname") +For such flags, the default value is just the initial value of the variable. + +After all flags are defined, call + flag.Parse() +to parse the command line into the defined flags. + +Flags may then be used directly. If you're using the flags themselves, +they are all pointers; if you bind to variables, they're values. + fmt.Println("ip has value ", *ip) + fmt.Println("flagvar has value ", flagvar) + +After parsing, the arguments after the flag are available as the +slice flag.Args() or individually as flag.Arg(i). +The arguments are indexed from 0 through flag.NArg()-1. + +The pflag package also defines some new functions that are not in flag, +that give one-letter shorthands for flags. You can use these by appending +'P' to the name of any function that defines a flag. + var ip = flag.IntP("flagname", "f", 1234, "help message") + var flagvar bool + func init() { + flag.BoolVarP("boolname", "b", true, "help message") + } + flag.VarP(&flagVar, "varname", "v", 1234, "help message") +Shorthand letters can be used with single dashes on the command line. +Boolean shorthand flags can be combined with other shorthand flags. + +Command line flag syntax: + --flag // boolean flags only + --flag=x + +Unlike the flag package, a single dash before an option means something +different than a double dash. Single dashes signify a series of shorthand +letters for flags. All but the last shorthand letter must be boolean flags. + // boolean flags + -f + -abc + // non-boolean flags + -n 1234 + -Ifile + // mixed + -abcs "hello" + -abcn1234 + +Flag parsing stops after the terminator "--". Unlike the flag package, +flags can be interspersed with arguments anywhere on the command line +before this terminator. + +Integer flags accept 1234, 0664, 0x1234 and may be negative. +Boolean flags (in their long form) accept 1, 0, t, f, true, false, +TRUE, FALSE, True, False. +Duration flags accept any input valid for time.ParseDuration. + +The default set of command-line flags is controlled by +top-level functions. The FlagSet type allows one to define +independent sets of flags, such as to implement subcommands +in a command-line interface. The methods of FlagSet are +analogous to the top-level functions for the command-line +flag set. +*/ +package pflag + +import ( + "bytes" + "errors" + goflag "flag" + "fmt" + "io" + "os" + "sort" + "strings" +) + +// ErrHelp is the error returned if the flag -help is invoked but no such flag is defined. +var ErrHelp = errors.New("pflag: help requested") + +// ErrorHandling defines how to handle flag parsing errors. +type ErrorHandling int + +const ( + // ContinueOnError will return an err from Parse() if an error is found + ContinueOnError ErrorHandling = iota + // ExitOnError will call os.Exit(2) if an error is found when parsing + ExitOnError + // PanicOnError will panic() if an error is found when parsing flags + PanicOnError +) + +// ParseErrorsWhitelist defines the parsing errors that can be ignored +type ParseErrorsWhitelist struct { + // UnknownFlags will ignore unknown flags errors and continue parsing rest of the flags + UnknownFlags bool +} + +// NormalizedName is a flag name that has been normalized according to rules +// for the FlagSet (e.g. making '-' and '_' equivalent). +type NormalizedName string + +// A FlagSet represents a set of defined flags. +type FlagSet struct { + // Usage is the function called when an error occurs while parsing flags. + // The field is a function (not a method) that may be changed to point to + // a custom error handler. + Usage func() + + // SortFlags is used to indicate, if user wants to have sorted flags in + // help/usage messages. + SortFlags bool + + // ParseErrorsWhitelist is used to configure a whitelist of errors + ParseErrorsWhitelist ParseErrorsWhitelist + + name string + parsed bool + actual map[NormalizedName]*Flag + orderedActual []*Flag + sortedActual []*Flag + formal map[NormalizedName]*Flag + orderedFormal []*Flag + sortedFormal []*Flag + shorthands map[byte]*Flag + args []string // arguments after flags + argsLenAtDash int // len(args) when a '--' was located when parsing, or -1 if no -- + errorHandling ErrorHandling + output io.Writer // nil means stderr; use out() accessor + interspersed bool // allow interspersed option/non-option args + normalizeNameFunc func(f *FlagSet, name string) NormalizedName + + addedGoFlagSets []*goflag.FlagSet +} + +// A Flag represents the state of a flag. +type Flag struct { + Name string // name as it appears on command line + Shorthand string // one-letter abbreviated flag + Usage string // help message + Value Value // value as set + DefValue string // default value (as text); for usage message + Changed bool // If the user set the value (or if left to default) + NoOptDefVal string // default value (as text); if the flag is on the command line without any options + Deprecated string // If this flag is deprecated, this string is the new or now thing to use + Hidden bool // used by cobra.Command to allow flags to be hidden from help/usage text + ShorthandDeprecated string // If the shorthand of this flag is deprecated, this string is the new or now thing to use + Annotations map[string][]string // used by cobra.Command bash autocomple code +} + +// Value is the interface to the dynamic value stored in a flag. +// (The default value is represented as a string.) +type Value interface { + String() string + Set(string) error + Type() string +} + +// sortFlags returns the flags as a slice in lexicographical sorted order. +func sortFlags(flags map[NormalizedName]*Flag) []*Flag { + list := make(sort.StringSlice, len(flags)) + i := 0 + for k := range flags { + list[i] = string(k) + i++ + } + list.Sort() + result := make([]*Flag, len(list)) + for i, name := range list { + result[i] = flags[NormalizedName(name)] + } + return result +} + +// SetNormalizeFunc allows you to add a function which can translate flag names. +// Flags added to the FlagSet will be translated and then when anything tries to +// look up the flag that will also be translated. So it would be possible to create +// a flag named "getURL" and have it translated to "geturl". A user could then pass +// "--getUrl" which may also be translated to "geturl" and everything will work. +func (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) NormalizedName) { + f.normalizeNameFunc = n + f.sortedFormal = f.sortedFormal[:0] + for fname, flag := range f.formal { + nname := f.normalizeFlagName(flag.Name) + if fname == nname { + continue + } + flag.Name = string(nname) + delete(f.formal, fname) + f.formal[nname] = flag + if _, set := f.actual[fname]; set { + delete(f.actual, fname) + f.actual[nname] = flag + } + } +} + +// GetNormalizeFunc returns the previously set NormalizeFunc of a function which +// does no translation, if not set previously. +func (f *FlagSet) GetNormalizeFunc() func(f *FlagSet, name string) NormalizedName { + if f.normalizeNameFunc != nil { + return f.normalizeNameFunc + } + return func(f *FlagSet, name string) NormalizedName { return NormalizedName(name) } +} + +func (f *FlagSet) normalizeFlagName(name string) NormalizedName { + n := f.GetNormalizeFunc() + return n(f, name) +} + +func (f *FlagSet) out() io.Writer { + if f.output == nil { + return os.Stderr + } + return f.output +} + +// SetOutput sets the destination for usage and error messages. +// If output is nil, os.Stderr is used. +func (f *FlagSet) SetOutput(output io.Writer) { + f.output = output +} + +// VisitAll visits the flags in lexicographical order or +// in primordial order if f.SortFlags is false, calling fn for each. +// It visits all flags, even those not set. +func (f *FlagSet) VisitAll(fn func(*Flag)) { + if len(f.formal) == 0 { + return + } + + var flags []*Flag + if f.SortFlags { + if len(f.formal) != len(f.sortedFormal) { + f.sortedFormal = sortFlags(f.formal) + } + flags = f.sortedFormal + } else { + flags = f.orderedFormal + } + + for _, flag := range flags { + fn(flag) + } +} + +// HasFlags returns a bool to indicate if the FlagSet has any flags defined. +func (f *FlagSet) HasFlags() bool { + return len(f.formal) > 0 +} + +// HasAvailableFlags returns a bool to indicate if the FlagSet has any flags +// that are not hidden. +func (f *FlagSet) HasAvailableFlags() bool { + for _, flag := range f.formal { + if !flag.Hidden { + return true + } + } + return false +} + +// VisitAll visits the command-line flags in lexicographical order or +// in primordial order if f.SortFlags is false, calling fn for each. +// It visits all flags, even those not set. +func VisitAll(fn func(*Flag)) { + CommandLine.VisitAll(fn) +} + +// Visit visits the flags in lexicographical order or +// in primordial order if f.SortFlags is false, calling fn for each. +// It visits only those flags that have been set. +func (f *FlagSet) Visit(fn func(*Flag)) { + if len(f.actual) == 0 { + return + } + + var flags []*Flag + if f.SortFlags { + if len(f.actual) != len(f.sortedActual) { + f.sortedActual = sortFlags(f.actual) + } + flags = f.sortedActual + } else { + flags = f.orderedActual + } + + for _, flag := range flags { + fn(flag) + } +} + +// Visit visits the command-line flags in lexicographical order or +// in primordial order if f.SortFlags is false, calling fn for each. +// It visits only those flags that have been set. +func Visit(fn func(*Flag)) { + CommandLine.Visit(fn) +} + +// Lookup returns the Flag structure of the named flag, returning nil if none exists. +func (f *FlagSet) Lookup(name string) *Flag { + return f.lookup(f.normalizeFlagName(name)) +} + +// ShorthandLookup returns the Flag structure of the short handed flag, +// returning nil if none exists. +// It panics, if len(name) > 1. +func (f *FlagSet) ShorthandLookup(name string) *Flag { + if name == "" { + return nil + } + if len(name) > 1 { + msg := fmt.Sprintf("can not look up shorthand which is more than one ASCII character: %q", name) + fmt.Fprintf(f.out(), msg) + panic(msg) + } + c := name[0] + return f.shorthands[c] +} + +// lookup returns the Flag structure of the named flag, returning nil if none exists. +func (f *FlagSet) lookup(name NormalizedName) *Flag { + return f.formal[name] +} + +// func to return a given type for a given flag name +func (f *FlagSet) getFlagType(name string, ftype string, convFunc func(sval string) (interface{}, error)) (interface{}, error) { + flag := f.Lookup(name) + if flag == nil { + err := fmt.Errorf("flag accessed but not defined: %s", name) + return nil, err + } + + if flag.Value.Type() != ftype { + err := fmt.Errorf("trying to get %s value of flag of type %s", ftype, flag.Value.Type()) + return nil, err + } + + sval := flag.Value.String() + result, err := convFunc(sval) + if err != nil { + return nil, err + } + return result, nil +} + +// ArgsLenAtDash will return the length of f.Args at the moment when a -- was +// found during arg parsing. This allows your program to know which args were +// before the -- and which came after. +func (f *FlagSet) ArgsLenAtDash() int { + return f.argsLenAtDash +} + +// MarkDeprecated indicated that a flag is deprecated in your program. It will +// continue to function but will not show up in help or usage messages. Using +// this flag will also print the given usageMessage. +func (f *FlagSet) MarkDeprecated(name string, usageMessage string) error { + flag := f.Lookup(name) + if flag == nil { + return fmt.Errorf("flag %q does not exist", name) + } + if usageMessage == "" { + return fmt.Errorf("deprecated message for flag %q must be set", name) + } + flag.Deprecated = usageMessage + flag.Hidden = true + return nil +} + +// MarkShorthandDeprecated will mark the shorthand of a flag deprecated in your +// program. It will continue to function but will not show up in help or usage +// messages. Using this flag will also print the given usageMessage. +func (f *FlagSet) MarkShorthandDeprecated(name string, usageMessage string) error { + flag := f.Lookup(name) + if flag == nil { + return fmt.Errorf("flag %q does not exist", name) + } + if usageMessage == "" { + return fmt.Errorf("deprecated message for flag %q must be set", name) + } + flag.ShorthandDeprecated = usageMessage + return nil +} + +// MarkHidden sets a flag to 'hidden' in your program. It will continue to +// function but will not show up in help or usage messages. +func (f *FlagSet) MarkHidden(name string) error { + flag := f.Lookup(name) + if flag == nil { + return fmt.Errorf("flag %q does not exist", name) + } + flag.Hidden = true + return nil +} + +// Lookup returns the Flag structure of the named command-line flag, +// returning nil if none exists. +func Lookup(name string) *Flag { + return CommandLine.Lookup(name) +} + +// ShorthandLookup returns the Flag structure of the short handed flag, +// returning nil if none exists. +func ShorthandLookup(name string) *Flag { + return CommandLine.ShorthandLookup(name) +} + +// Set sets the value of the named flag. +func (f *FlagSet) Set(name, value string) error { + normalName := f.normalizeFlagName(name) + flag, ok := f.formal[normalName] + if !ok { + return fmt.Errorf("no such flag -%v", name) + } + + err := flag.Value.Set(value) + if err != nil { + var flagName string + if flag.Shorthand != "" && flag.ShorthandDeprecated == "" { + flagName = fmt.Sprintf("-%s, --%s", flag.Shorthand, flag.Name) + } else { + flagName = fmt.Sprintf("--%s", flag.Name) + } + return fmt.Errorf("invalid argument %q for %q flag: %v", value, flagName, err) + } + + if !flag.Changed { + if f.actual == nil { + f.actual = make(map[NormalizedName]*Flag) + } + f.actual[normalName] = flag + f.orderedActual = append(f.orderedActual, flag) + + flag.Changed = true + } + + if flag.Deprecated != "" { + fmt.Fprintf(f.out(), "Flag --%s has been deprecated, %s\n", flag.Name, flag.Deprecated) + } + return nil +} + +// SetAnnotation allows one to set arbitrary annotations on a flag in the FlagSet. +// This is sometimes used by spf13/cobra programs which want to generate additional +// bash completion information. +func (f *FlagSet) SetAnnotation(name, key string, values []string) error { + normalName := f.normalizeFlagName(name) + flag, ok := f.formal[normalName] + if !ok { + return fmt.Errorf("no such flag -%v", name) + } + if flag.Annotations == nil { + flag.Annotations = map[string][]string{} + } + flag.Annotations[key] = values + return nil +} + +// Changed returns true if the flag was explicitly set during Parse() and false +// otherwise +func (f *FlagSet) Changed(name string) bool { + flag := f.Lookup(name) + // If a flag doesn't exist, it wasn't changed.... + if flag == nil { + return false + } + return flag.Changed +} + +// Set sets the value of the named command-line flag. +func Set(name, value string) error { + return CommandLine.Set(name, value) +} + +// PrintDefaults prints, to standard error unless configured +// otherwise, the default values of all defined flags in the set. +func (f *FlagSet) PrintDefaults() { + usages := f.FlagUsages() + fmt.Fprint(f.out(), usages) +} + +// defaultIsZeroValue returns true if the default value for this flag represents +// a zero value. +func (f *Flag) defaultIsZeroValue() bool { + switch f.Value.(type) { + case boolFlag: + return f.DefValue == "false" + case *durationValue: + // Beginning in Go 1.7, duration zero values are "0s" + return f.DefValue == "0" || f.DefValue == "0s" + case *intValue, *int8Value, *int32Value, *int64Value, *uintValue, *uint8Value, *uint16Value, *uint32Value, *uint64Value, *countValue, *float32Value, *float64Value: + return f.DefValue == "0" + case *stringValue: + return f.DefValue == "" + case *ipValue, *ipMaskValue, *ipNetValue: + return f.DefValue == "" + case *intSliceValue, *stringSliceValue, *stringArrayValue: + return f.DefValue == "[]" + default: + switch f.Value.String() { + case "false": + return true + case "": + return true + case "": + return true + case "0": + return true + } + return false + } +} + +// UnquoteUsage extracts a back-quoted name from the usage +// string for a flag and returns it and the un-quoted usage. +// Given "a `name` to show" it returns ("name", "a name to show"). +// If there are no back quotes, the name is an educated guess of the +// type of the flag's value, or the empty string if the flag is boolean. +func UnquoteUsage(flag *Flag) (name string, usage string) { + // Look for a back-quoted name, but avoid the strings package. + usage = flag.Usage + for i := 0; i < len(usage); i++ { + if usage[i] == '`' { + for j := i + 1; j < len(usage); j++ { + if usage[j] == '`' { + name = usage[i+1 : j] + usage = usage[:i] + name + usage[j+1:] + return name, usage + } + } + break // Only one back quote; use type name. + } + } + + name = flag.Value.Type() + switch name { + case "bool": + name = "" + case "float64": + name = "float" + case "int64": + name = "int" + case "uint64": + name = "uint" + case "stringSlice": + name = "strings" + case "intSlice": + name = "ints" + case "uintSlice": + name = "uints" + case "boolSlice": + name = "bools" + } + + return +} + +// Splits the string `s` on whitespace into an initial substring up to +// `i` runes in length and the remainder. Will go `slop` over `i` if +// that encompasses the entire string (which allows the caller to +// avoid short orphan words on the final line). +func wrapN(i, slop int, s string) (string, string) { + if i+slop > len(s) { + return s, "" + } + + w := strings.LastIndexAny(s[:i], " \t\n") + if w <= 0 { + return s, "" + } + nlPos := strings.LastIndex(s[:i], "\n") + if nlPos > 0 && nlPos < w { + return s[:nlPos], s[nlPos+1:] + } + return s[:w], s[w+1:] +} + +// Wraps the string `s` to a maximum width `w` with leading indent +// `i`. The first line is not indented (this is assumed to be done by +// caller). Pass `w` == 0 to do no wrapping +func wrap(i, w int, s string) string { + if w == 0 { + return strings.Replace(s, "\n", "\n"+strings.Repeat(" ", i), -1) + } + + // space between indent i and end of line width w into which + // we should wrap the text. + wrap := w - i + + var r, l string + + // Not enough space for sensible wrapping. Wrap as a block on + // the next line instead. + if wrap < 24 { + i = 16 + wrap = w - i + r += "\n" + strings.Repeat(" ", i) + } + // If still not enough space then don't even try to wrap. + if wrap < 24 { + return strings.Replace(s, "\n", r, -1) + } + + // Try to avoid short orphan words on the final line, by + // allowing wrapN to go a bit over if that would fit in the + // remainder of the line. + slop := 5 + wrap = wrap - slop + + // Handle first line, which is indented by the caller (or the + // special case above) + l, s = wrapN(wrap, slop, s) + r = r + strings.Replace(l, "\n", "\n"+strings.Repeat(" ", i), -1) + + // Now wrap the rest + for s != "" { + var t string + + t, s = wrapN(wrap, slop, s) + r = r + "\n" + strings.Repeat(" ", i) + strings.Replace(t, "\n", "\n"+strings.Repeat(" ", i), -1) + } + + return r + +} + +// FlagUsagesWrapped returns a string containing the usage information +// for all flags in the FlagSet. Wrapped to `cols` columns (0 for no +// wrapping) +func (f *FlagSet) FlagUsagesWrapped(cols int) string { + buf := new(bytes.Buffer) + + lines := make([]string, 0, len(f.formal)) + + maxlen := 0 + f.VisitAll(func(flag *Flag) { + if flag.Hidden { + return + } + + line := "" + if flag.Shorthand != "" && flag.ShorthandDeprecated == "" { + line = fmt.Sprintf(" -%s, --%s", flag.Shorthand, flag.Name) + } else { + line = fmt.Sprintf(" --%s", flag.Name) + } + + varname, usage := UnquoteUsage(flag) + if varname != "" { + line += " " + varname + } + if flag.NoOptDefVal != "" { + switch flag.Value.Type() { + case "string": + line += fmt.Sprintf("[=\"%s\"]", flag.NoOptDefVal) + case "bool": + if flag.NoOptDefVal != "true" { + line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) + } + case "count": + if flag.NoOptDefVal != "+1" { + line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) + } + default: + line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) + } + } + + // This special character will be replaced with spacing once the + // correct alignment is calculated + line += "\x00" + if len(line) > maxlen { + maxlen = len(line) + } + + line += usage + if !flag.defaultIsZeroValue() { + if flag.Value.Type() == "string" { + line += fmt.Sprintf(" (default %q)", flag.DefValue) + } else { + line += fmt.Sprintf(" (default %s)", flag.DefValue) + } + } + if len(flag.Deprecated) != 0 { + line += fmt.Sprintf(" (DEPRECATED: %s)", flag.Deprecated) + } + + lines = append(lines, line) + }) + + for _, line := range lines { + sidx := strings.Index(line, "\x00") + spacing := strings.Repeat(" ", maxlen-sidx) + // maxlen + 2 comes from + 1 for the \x00 and + 1 for the (deliberate) off-by-one in maxlen-sidx + fmt.Fprintln(buf, line[:sidx], spacing, wrap(maxlen+2, cols, line[sidx+1:])) + } + + return buf.String() +} + +// FlagUsages returns a string containing the usage information for all flags in +// the FlagSet +func (f *FlagSet) FlagUsages() string { + return f.FlagUsagesWrapped(0) +} + +// PrintDefaults prints to standard error the default values of all defined command-line flags. +func PrintDefaults() { + CommandLine.PrintDefaults() +} + +// defaultUsage is the default function to print a usage message. +func defaultUsage(f *FlagSet) { + fmt.Fprintf(f.out(), "Usage of %s:\n", f.name) + f.PrintDefaults() +} + +// NOTE: Usage is not just defaultUsage(CommandLine) +// because it serves (via godoc flag Usage) as the example +// for how to write your own usage function. + +// Usage prints to standard error a usage message documenting all defined command-line flags. +// The function is a variable that may be changed to point to a custom function. +// By default it prints a simple header and calls PrintDefaults; for details about the +// format of the output and how to control it, see the documentation for PrintDefaults. +var Usage = func() { + fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0]) + PrintDefaults() +} + +// NFlag returns the number of flags that have been set. +func (f *FlagSet) NFlag() int { return len(f.actual) } + +// NFlag returns the number of command-line flags that have been set. +func NFlag() int { return len(CommandLine.actual) } + +// Arg returns the i'th argument. Arg(0) is the first remaining argument +// after flags have been processed. +func (f *FlagSet) Arg(i int) string { + if i < 0 || i >= len(f.args) { + return "" + } + return f.args[i] +} + +// Arg returns the i'th command-line argument. Arg(0) is the first remaining argument +// after flags have been processed. +func Arg(i int) string { + return CommandLine.Arg(i) +} + +// NArg is the number of arguments remaining after flags have been processed. +func (f *FlagSet) NArg() int { return len(f.args) } + +// NArg is the number of arguments remaining after flags have been processed. +func NArg() int { return len(CommandLine.args) } + +// Args returns the non-flag arguments. +func (f *FlagSet) Args() []string { return f.args } + +// Args returns the non-flag command-line arguments. +func Args() []string { return CommandLine.args } + +// Var defines a flag with the specified name and usage string. The type and +// value of the flag are represented by the first argument, of type Value, which +// typically holds a user-defined implementation of Value. For instance, the +// caller could create a flag that turns a comma-separated string into a slice +// of strings by giving the slice the methods of Value; in particular, Set would +// decompose the comma-separated string into the slice. +func (f *FlagSet) Var(value Value, name string, usage string) { + f.VarP(value, name, "", usage) +} + +// VarPF is like VarP, but returns the flag created +func (f *FlagSet) VarPF(value Value, name, shorthand, usage string) *Flag { + // Remember the default value as a string; it won't change. + flag := &Flag{ + Name: name, + Shorthand: shorthand, + Usage: usage, + Value: value, + DefValue: value.String(), + } + f.AddFlag(flag) + return flag +} + +// VarP is like Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) VarP(value Value, name, shorthand, usage string) { + f.VarPF(value, name, shorthand, usage) +} + +// AddFlag will add the flag to the FlagSet +func (f *FlagSet) AddFlag(flag *Flag) { + normalizedFlagName := f.normalizeFlagName(flag.Name) + + _, alreadyThere := f.formal[normalizedFlagName] + if alreadyThere { + msg := fmt.Sprintf("%s flag redefined: %s", f.name, flag.Name) + fmt.Fprintln(f.out(), msg) + panic(msg) // Happens only if flags are declared with identical names + } + if f.formal == nil { + f.formal = make(map[NormalizedName]*Flag) + } + + flag.Name = string(normalizedFlagName) + f.formal[normalizedFlagName] = flag + f.orderedFormal = append(f.orderedFormal, flag) + + if flag.Shorthand == "" { + return + } + if len(flag.Shorthand) > 1 { + msg := fmt.Sprintf("%q shorthand is more than one ASCII character", flag.Shorthand) + fmt.Fprintf(f.out(), msg) + panic(msg) + } + if f.shorthands == nil { + f.shorthands = make(map[byte]*Flag) + } + c := flag.Shorthand[0] + used, alreadyThere := f.shorthands[c] + if alreadyThere { + msg := fmt.Sprintf("unable to redefine %q shorthand in %q flagset: it's already used for %q flag", c, f.name, used.Name) + fmt.Fprintf(f.out(), msg) + panic(msg) + } + f.shorthands[c] = flag +} + +// AddFlagSet adds one FlagSet to another. If a flag is already present in f +// the flag from newSet will be ignored. +func (f *FlagSet) AddFlagSet(newSet *FlagSet) { + if newSet == nil { + return + } + newSet.VisitAll(func(flag *Flag) { + if f.Lookup(flag.Name) == nil { + f.AddFlag(flag) + } + }) +} + +// Var defines a flag with the specified name and usage string. The type and +// value of the flag are represented by the first argument, of type Value, which +// typically holds a user-defined implementation of Value. For instance, the +// caller could create a flag that turns a comma-separated string into a slice +// of strings by giving the slice the methods of Value; in particular, Set would +// decompose the comma-separated string into the slice. +func Var(value Value, name string, usage string) { + CommandLine.VarP(value, name, "", usage) +} + +// VarP is like Var, but accepts a shorthand letter that can be used after a single dash. +func VarP(value Value, name, shorthand, usage string) { + CommandLine.VarP(value, name, shorthand, usage) +} + +// failf prints to standard error a formatted error and usage message and +// returns the error. +func (f *FlagSet) failf(format string, a ...interface{}) error { + err := fmt.Errorf(format, a...) + if f.errorHandling != ContinueOnError { + fmt.Fprintln(f.out(), err) + f.usage() + } + return err +} + +// usage calls the Usage method for the flag set, or the usage function if +// the flag set is CommandLine. +func (f *FlagSet) usage() { + if f == CommandLine { + Usage() + } else if f.Usage == nil { + defaultUsage(f) + } else { + f.Usage() + } +} + +//--unknown (args will be empty) +//--unknown --next-flag ... (args will be --next-flag ...) +//--unknown arg ... (args will be arg ...) +func stripUnknownFlagValue(args []string) []string { + if len(args) == 0 { + //--unknown + return args + } + + first := args[0] + if first[0] == '-' { + //--unknown --next-flag ... + return args + } + + //--unknown arg ... (args will be arg ...) + return args[1:] +} + +func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []string, err error) { + a = args + name := s[2:] + if len(name) == 0 || name[0] == '-' || name[0] == '=' { + err = f.failf("bad flag syntax: %s", s) + return + } + + split := strings.SplitN(name, "=", 2) + name = split[0] + flag, exists := f.formal[f.normalizeFlagName(name)] + + if !exists { + switch { + case name == "help": + f.usage() + return a, ErrHelp + case f.ParseErrorsWhitelist.UnknownFlags: + // --unknown=unknownval arg ... + // we do not want to lose arg in this case + if len(split) >= 2 { + return a, nil + } + + return stripUnknownFlagValue(a), nil + default: + err = f.failf("unknown flag: --%s", name) + return + } + } + + var value string + if len(split) == 2 { + // '--flag=arg' + value = split[1] + } else if flag.NoOptDefVal != "" { + // '--flag' (arg was optional) + value = flag.NoOptDefVal + } else if len(a) > 0 { + // '--flag arg' + value = a[0] + a = a[1:] + } else { + // '--flag' (arg was required) + err = f.failf("flag needs an argument: %s", s) + return + } + + err = fn(flag, value) + if err != nil { + f.failf(err.Error()) + } + return +} + +func (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parseFunc) (outShorts string, outArgs []string, err error) { + if strings.HasPrefix(shorthands, "test.") { + return + } + + outArgs = args + outShorts = shorthands[1:] + c := shorthands[0] + + flag, exists := f.shorthands[c] + if !exists { + switch { + case c == 'h': + f.usage() + err = ErrHelp + return + case f.ParseErrorsWhitelist.UnknownFlags: + // '-f=arg arg ...' + // we do not want to lose arg in this case + if len(shorthands) > 2 && shorthands[1] == '=' { + outShorts = "" + return + } + + outArgs = stripUnknownFlagValue(outArgs) + return + default: + err = f.failf("unknown shorthand flag: %q in -%s", c, shorthands) + return + } + } + + var value string + if len(shorthands) > 2 && shorthands[1] == '=' { + // '-f=arg' + value = shorthands[2:] + outShorts = "" + } else if flag.NoOptDefVal != "" { + // '-f' (arg was optional) + value = flag.NoOptDefVal + } else if len(shorthands) > 1 { + // '-farg' + value = shorthands[1:] + outShorts = "" + } else if len(args) > 0 { + // '-f arg' + value = args[0] + outArgs = args[1:] + } else { + // '-f' (arg was required) + err = f.failf("flag needs an argument: %q in -%s", c, shorthands) + return + } + + if flag.ShorthandDeprecated != "" { + fmt.Fprintf(f.out(), "Flag shorthand -%s has been deprecated, %s\n", flag.Shorthand, flag.ShorthandDeprecated) + } + + err = fn(flag, value) + if err != nil { + f.failf(err.Error()) + } + return +} + +func (f *FlagSet) parseShortArg(s string, args []string, fn parseFunc) (a []string, err error) { + a = args + shorthands := s[1:] + + // "shorthands" can be a series of shorthand letters of flags (e.g. "-vvv"). + for len(shorthands) > 0 { + shorthands, a, err = f.parseSingleShortArg(shorthands, args, fn) + if err != nil { + return + } + } + + return +} + +func (f *FlagSet) parseArgs(args []string, fn parseFunc) (err error) { + for len(args) > 0 { + s := args[0] + args = args[1:] + if len(s) == 0 || s[0] != '-' || len(s) == 1 { + if !f.interspersed { + f.args = append(f.args, s) + f.args = append(f.args, args...) + return nil + } + f.args = append(f.args, s) + continue + } + + if s[1] == '-' { + if len(s) == 2 { // "--" terminates the flags + f.argsLenAtDash = len(f.args) + f.args = append(f.args, args...) + break + } + args, err = f.parseLongArg(s, args, fn) + } else { + args, err = f.parseShortArg(s, args, fn) + } + if err != nil { + return + } + } + return +} + +// Parse parses flag definitions from the argument list, which should not +// include the command name. Must be called after all flags in the FlagSet +// are defined and before flags are accessed by the program. +// The return value will be ErrHelp if -help was set but not defined. +func (f *FlagSet) Parse(arguments []string) error { + if f.addedGoFlagSets != nil { + for _, goFlagSet := range f.addedGoFlagSets { + goFlagSet.Parse(nil) + } + } + f.parsed = true + + if len(arguments) < 0 { + return nil + } + + f.args = make([]string, 0, len(arguments)) + + set := func(flag *Flag, value string) error { + return f.Set(flag.Name, value) + } + + err := f.parseArgs(arguments, set) + if err != nil { + switch f.errorHandling { + case ContinueOnError: + return err + case ExitOnError: + fmt.Println(err) + os.Exit(2) + case PanicOnError: + panic(err) + } + } + return nil +} + +type parseFunc func(flag *Flag, value string) error + +// ParseAll parses flag definitions from the argument list, which should not +// include the command name. The arguments for fn are flag and value. Must be +// called after all flags in the FlagSet are defined and before flags are +// accessed by the program. The return value will be ErrHelp if -help was set +// but not defined. +func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string) error) error { + f.parsed = true + f.args = make([]string, 0, len(arguments)) + + err := f.parseArgs(arguments, fn) + if err != nil { + switch f.errorHandling { + case ContinueOnError: + return err + case ExitOnError: + os.Exit(2) + case PanicOnError: + panic(err) + } + } + return nil +} + +// Parsed reports whether f.Parse has been called. +func (f *FlagSet) Parsed() bool { + return f.parsed +} + +// Parse parses the command-line flags from os.Args[1:]. Must be called +// after all flags are defined and before flags are accessed by the program. +func Parse() { + // Ignore errors; CommandLine is set for ExitOnError. + CommandLine.Parse(os.Args[1:]) +} + +// ParseAll parses the command-line flags from os.Args[1:] and called fn for each. +// The arguments for fn are flag and value. Must be called after all flags are +// defined and before flags are accessed by the program. +func ParseAll(fn func(flag *Flag, value string) error) { + // Ignore errors; CommandLine is set for ExitOnError. + CommandLine.ParseAll(os.Args[1:], fn) +} + +// SetInterspersed sets whether to support interspersed option/non-option arguments. +func SetInterspersed(interspersed bool) { + CommandLine.SetInterspersed(interspersed) +} + +// Parsed returns true if the command-line flags have been parsed. +func Parsed() bool { + return CommandLine.Parsed() +} + +// CommandLine is the default set of command-line flags, parsed from os.Args. +var CommandLine = NewFlagSet(os.Args[0], ExitOnError) + +// NewFlagSet returns a new, empty flag set with the specified name, +// error handling property and SortFlags set to true. +func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet { + f := &FlagSet{ + name: name, + errorHandling: errorHandling, + argsLenAtDash: -1, + interspersed: true, + SortFlags: true, + } + return f +} + +// SetInterspersed sets whether to support interspersed option/non-option arguments. +func (f *FlagSet) SetInterspersed(interspersed bool) { + f.interspersed = interspersed +} + +// Init sets the name and error handling property for a flag set. +// By default, the zero FlagSet uses an empty name and the +// ContinueOnError error handling policy. +func (f *FlagSet) Init(name string, errorHandling ErrorHandling) { + f.name = name + f.errorHandling = errorHandling + f.argsLenAtDash = -1 +} diff --git a/vendor/github.com/spf13/pflag/float32.go b/vendor/github.com/spf13/pflag/float32.go new file mode 100644 index 0000000..a243f81 --- /dev/null +++ b/vendor/github.com/spf13/pflag/float32.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- float32 Value +type float32Value float32 + +func newFloat32Value(val float32, p *float32) *float32Value { + *p = val + return (*float32Value)(p) +} + +func (f *float32Value) Set(s string) error { + v, err := strconv.ParseFloat(s, 32) + *f = float32Value(v) + return err +} + +func (f *float32Value) Type() string { + return "float32" +} + +func (f *float32Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 32) } + +func float32Conv(sval string) (interface{}, error) { + v, err := strconv.ParseFloat(sval, 32) + if err != nil { + return 0, err + } + return float32(v), nil +} + +// GetFloat32 return the float32 value of a flag with the given name +func (f *FlagSet) GetFloat32(name string) (float32, error) { + val, err := f.getFlagType(name, "float32", float32Conv) + if err != nil { + return 0, err + } + return val.(float32), nil +} + +// Float32Var defines a float32 flag with specified name, default value, and usage string. +// The argument p points to a float32 variable in which to store the value of the flag. +func (f *FlagSet) Float32Var(p *float32, name string, value float32, usage string) { + f.VarP(newFloat32Value(value, p), name, "", usage) +} + +// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Float32VarP(p *float32, name, shorthand string, value float32, usage string) { + f.VarP(newFloat32Value(value, p), name, shorthand, usage) +} + +// Float32Var defines a float32 flag with specified name, default value, and usage string. +// The argument p points to a float32 variable in which to store the value of the flag. +func Float32Var(p *float32, name string, value float32, usage string) { + CommandLine.VarP(newFloat32Value(value, p), name, "", usage) +} + +// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash. +func Float32VarP(p *float32, name, shorthand string, value float32, usage string) { + CommandLine.VarP(newFloat32Value(value, p), name, shorthand, usage) +} + +// Float32 defines a float32 flag with specified name, default value, and usage string. +// The return value is the address of a float32 variable that stores the value of the flag. +func (f *FlagSet) Float32(name string, value float32, usage string) *float32 { + p := new(float32) + f.Float32VarP(p, name, "", value, usage) + return p +} + +// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Float32P(name, shorthand string, value float32, usage string) *float32 { + p := new(float32) + f.Float32VarP(p, name, shorthand, value, usage) + return p +} + +// Float32 defines a float32 flag with specified name, default value, and usage string. +// The return value is the address of a float32 variable that stores the value of the flag. +func Float32(name string, value float32, usage string) *float32 { + return CommandLine.Float32P(name, "", value, usage) +} + +// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash. +func Float32P(name, shorthand string, value float32, usage string) *float32 { + return CommandLine.Float32P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/float64.go b/vendor/github.com/spf13/pflag/float64.go new file mode 100644 index 0000000..04b5492 --- /dev/null +++ b/vendor/github.com/spf13/pflag/float64.go @@ -0,0 +1,84 @@ +package pflag + +import "strconv" + +// -- float64 Value +type float64Value float64 + +func newFloat64Value(val float64, p *float64) *float64Value { + *p = val + return (*float64Value)(p) +} + +func (f *float64Value) Set(s string) error { + v, err := strconv.ParseFloat(s, 64) + *f = float64Value(v) + return err +} + +func (f *float64Value) Type() string { + return "float64" +} + +func (f *float64Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 64) } + +func float64Conv(sval string) (interface{}, error) { + return strconv.ParseFloat(sval, 64) +} + +// GetFloat64 return the float64 value of a flag with the given name +func (f *FlagSet) GetFloat64(name string) (float64, error) { + val, err := f.getFlagType(name, "float64", float64Conv) + if err != nil { + return 0, err + } + return val.(float64), nil +} + +// Float64Var defines a float64 flag with specified name, default value, and usage string. +// The argument p points to a float64 variable in which to store the value of the flag. +func (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string) { + f.VarP(newFloat64Value(value, p), name, "", usage) +} + +// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value float64, usage string) { + f.VarP(newFloat64Value(value, p), name, shorthand, usage) +} + +// Float64Var defines a float64 flag with specified name, default value, and usage string. +// The argument p points to a float64 variable in which to store the value of the flag. +func Float64Var(p *float64, name string, value float64, usage string) { + CommandLine.VarP(newFloat64Value(value, p), name, "", usage) +} + +// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash. +func Float64VarP(p *float64, name, shorthand string, value float64, usage string) { + CommandLine.VarP(newFloat64Value(value, p), name, shorthand, usage) +} + +// Float64 defines a float64 flag with specified name, default value, and usage string. +// The return value is the address of a float64 variable that stores the value of the flag. +func (f *FlagSet) Float64(name string, value float64, usage string) *float64 { + p := new(float64) + f.Float64VarP(p, name, "", value, usage) + return p +} + +// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Float64P(name, shorthand string, value float64, usage string) *float64 { + p := new(float64) + f.Float64VarP(p, name, shorthand, value, usage) + return p +} + +// Float64 defines a float64 flag with specified name, default value, and usage string. +// The return value is the address of a float64 variable that stores the value of the flag. +func Float64(name string, value float64, usage string) *float64 { + return CommandLine.Float64P(name, "", value, usage) +} + +// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash. +func Float64P(name, shorthand string, value float64, usage string) *float64 { + return CommandLine.Float64P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/golangflag.go b/vendor/github.com/spf13/pflag/golangflag.go new file mode 100644 index 0000000..d3dd72b --- /dev/null +++ b/vendor/github.com/spf13/pflag/golangflag.go @@ -0,0 +1,105 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pflag + +import ( + goflag "flag" + "reflect" + "strings" +) + +// flagValueWrapper implements pflag.Value around a flag.Value. The main +// difference here is the addition of the Type method that returns a string +// name of the type. As this is generally unknown, we approximate that with +// reflection. +type flagValueWrapper struct { + inner goflag.Value + flagType string +} + +// We are just copying the boolFlag interface out of goflag as that is what +// they use to decide if a flag should get "true" when no arg is given. +type goBoolFlag interface { + goflag.Value + IsBoolFlag() bool +} + +func wrapFlagValue(v goflag.Value) Value { + // If the flag.Value happens to also be a pflag.Value, just use it directly. + if pv, ok := v.(Value); ok { + return pv + } + + pv := &flagValueWrapper{ + inner: v, + } + + t := reflect.TypeOf(v) + if t.Kind() == reflect.Interface || t.Kind() == reflect.Ptr { + t = t.Elem() + } + + pv.flagType = strings.TrimSuffix(t.Name(), "Value") + return pv +} + +func (v *flagValueWrapper) String() string { + return v.inner.String() +} + +func (v *flagValueWrapper) Set(s string) error { + return v.inner.Set(s) +} + +func (v *flagValueWrapper) Type() string { + return v.flagType +} + +// PFlagFromGoFlag will return a *pflag.Flag given a *flag.Flag +// If the *flag.Flag.Name was a single character (ex: `v`) it will be accessiblei +// with both `-v` and `--v` in flags. If the golang flag was more than a single +// character (ex: `verbose`) it will only be accessible via `--verbose` +func PFlagFromGoFlag(goflag *goflag.Flag) *Flag { + // Remember the default value as a string; it won't change. + flag := &Flag{ + Name: goflag.Name, + Usage: goflag.Usage, + Value: wrapFlagValue(goflag.Value), + // Looks like golang flags don't set DefValue correctly :-( + //DefValue: goflag.DefValue, + DefValue: goflag.Value.String(), + } + // Ex: if the golang flag was -v, allow both -v and --v to work + if len(flag.Name) == 1 { + flag.Shorthand = flag.Name + } + if fv, ok := goflag.Value.(goBoolFlag); ok && fv.IsBoolFlag() { + flag.NoOptDefVal = "true" + } + return flag +} + +// AddGoFlag will add the given *flag.Flag to the pflag.FlagSet +func (f *FlagSet) AddGoFlag(goflag *goflag.Flag) { + if f.Lookup(goflag.Name) != nil { + return + } + newflag := PFlagFromGoFlag(goflag) + f.AddFlag(newflag) +} + +// AddGoFlagSet will add the given *flag.FlagSet to the pflag.FlagSet +func (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) { + if newSet == nil { + return + } + newSet.VisitAll(func(goflag *goflag.Flag) { + f.AddGoFlag(goflag) + }) + if f.addedGoFlagSets == nil { + f.addedGoFlagSets = make([]*goflag.FlagSet, 0) + } + f.addedGoFlagSets = append(f.addedGoFlagSets, newSet) +} diff --git a/vendor/github.com/spf13/pflag/int.go b/vendor/github.com/spf13/pflag/int.go new file mode 100644 index 0000000..1474b89 --- /dev/null +++ b/vendor/github.com/spf13/pflag/int.go @@ -0,0 +1,84 @@ +package pflag + +import "strconv" + +// -- int Value +type intValue int + +func newIntValue(val int, p *int) *intValue { + *p = val + return (*intValue)(p) +} + +func (i *intValue) Set(s string) error { + v, err := strconv.ParseInt(s, 0, 64) + *i = intValue(v) + return err +} + +func (i *intValue) Type() string { + return "int" +} + +func (i *intValue) String() string { return strconv.Itoa(int(*i)) } + +func intConv(sval string) (interface{}, error) { + return strconv.Atoi(sval) +} + +// GetInt return the int value of a flag with the given name +func (f *FlagSet) GetInt(name string) (int, error) { + val, err := f.getFlagType(name, "int", intConv) + if err != nil { + return 0, err + } + return val.(int), nil +} + +// IntVar defines an int flag with specified name, default value, and usage string. +// The argument p points to an int variable in which to store the value of the flag. +func (f *FlagSet) IntVar(p *int, name string, value int, usage string) { + f.VarP(newIntValue(value, p), name, "", usage) +} + +// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IntVarP(p *int, name, shorthand string, value int, usage string) { + f.VarP(newIntValue(value, p), name, shorthand, usage) +} + +// IntVar defines an int flag with specified name, default value, and usage string. +// The argument p points to an int variable in which to store the value of the flag. +func IntVar(p *int, name string, value int, usage string) { + CommandLine.VarP(newIntValue(value, p), name, "", usage) +} + +// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash. +func IntVarP(p *int, name, shorthand string, value int, usage string) { + CommandLine.VarP(newIntValue(value, p), name, shorthand, usage) +} + +// Int defines an int flag with specified name, default value, and usage string. +// The return value is the address of an int variable that stores the value of the flag. +func (f *FlagSet) Int(name string, value int, usage string) *int { + p := new(int) + f.IntVarP(p, name, "", value, usage) + return p +} + +// IntP is like Int, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IntP(name, shorthand string, value int, usage string) *int { + p := new(int) + f.IntVarP(p, name, shorthand, value, usage) + return p +} + +// Int defines an int flag with specified name, default value, and usage string. +// The return value is the address of an int variable that stores the value of the flag. +func Int(name string, value int, usage string) *int { + return CommandLine.IntP(name, "", value, usage) +} + +// IntP is like Int, but accepts a shorthand letter that can be used after a single dash. +func IntP(name, shorthand string, value int, usage string) *int { + return CommandLine.IntP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/int16.go b/vendor/github.com/spf13/pflag/int16.go new file mode 100644 index 0000000..f1a01d0 --- /dev/null +++ b/vendor/github.com/spf13/pflag/int16.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- int16 Value +type int16Value int16 + +func newInt16Value(val int16, p *int16) *int16Value { + *p = val + return (*int16Value)(p) +} + +func (i *int16Value) Set(s string) error { + v, err := strconv.ParseInt(s, 0, 16) + *i = int16Value(v) + return err +} + +func (i *int16Value) Type() string { + return "int16" +} + +func (i *int16Value) String() string { return strconv.FormatInt(int64(*i), 10) } + +func int16Conv(sval string) (interface{}, error) { + v, err := strconv.ParseInt(sval, 0, 16) + if err != nil { + return 0, err + } + return int16(v), nil +} + +// GetInt16 returns the int16 value of a flag with the given name +func (f *FlagSet) GetInt16(name string) (int16, error) { + val, err := f.getFlagType(name, "int16", int16Conv) + if err != nil { + return 0, err + } + return val.(int16), nil +} + +// Int16Var defines an int16 flag with specified name, default value, and usage string. +// The argument p points to an int16 variable in which to store the value of the flag. +func (f *FlagSet) Int16Var(p *int16, name string, value int16, usage string) { + f.VarP(newInt16Value(value, p), name, "", usage) +} + +// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int16VarP(p *int16, name, shorthand string, value int16, usage string) { + f.VarP(newInt16Value(value, p), name, shorthand, usage) +} + +// Int16Var defines an int16 flag with specified name, default value, and usage string. +// The argument p points to an int16 variable in which to store the value of the flag. +func Int16Var(p *int16, name string, value int16, usage string) { + CommandLine.VarP(newInt16Value(value, p), name, "", usage) +} + +// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash. +func Int16VarP(p *int16, name, shorthand string, value int16, usage string) { + CommandLine.VarP(newInt16Value(value, p), name, shorthand, usage) +} + +// Int16 defines an int16 flag with specified name, default value, and usage string. +// The return value is the address of an int16 variable that stores the value of the flag. +func (f *FlagSet) Int16(name string, value int16, usage string) *int16 { + p := new(int16) + f.Int16VarP(p, name, "", value, usage) + return p +} + +// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int16P(name, shorthand string, value int16, usage string) *int16 { + p := new(int16) + f.Int16VarP(p, name, shorthand, value, usage) + return p +} + +// Int16 defines an int16 flag with specified name, default value, and usage string. +// The return value is the address of an int16 variable that stores the value of the flag. +func Int16(name string, value int16, usage string) *int16 { + return CommandLine.Int16P(name, "", value, usage) +} + +// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash. +func Int16P(name, shorthand string, value int16, usage string) *int16 { + return CommandLine.Int16P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/int32.go b/vendor/github.com/spf13/pflag/int32.go new file mode 100644 index 0000000..9b95944 --- /dev/null +++ b/vendor/github.com/spf13/pflag/int32.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- int32 Value +type int32Value int32 + +func newInt32Value(val int32, p *int32) *int32Value { + *p = val + return (*int32Value)(p) +} + +func (i *int32Value) Set(s string) error { + v, err := strconv.ParseInt(s, 0, 32) + *i = int32Value(v) + return err +} + +func (i *int32Value) Type() string { + return "int32" +} + +func (i *int32Value) String() string { return strconv.FormatInt(int64(*i), 10) } + +func int32Conv(sval string) (interface{}, error) { + v, err := strconv.ParseInt(sval, 0, 32) + if err != nil { + return 0, err + } + return int32(v), nil +} + +// GetInt32 return the int32 value of a flag with the given name +func (f *FlagSet) GetInt32(name string) (int32, error) { + val, err := f.getFlagType(name, "int32", int32Conv) + if err != nil { + return 0, err + } + return val.(int32), nil +} + +// Int32Var defines an int32 flag with specified name, default value, and usage string. +// The argument p points to an int32 variable in which to store the value of the flag. +func (f *FlagSet) Int32Var(p *int32, name string, value int32, usage string) { + f.VarP(newInt32Value(value, p), name, "", usage) +} + +// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int32VarP(p *int32, name, shorthand string, value int32, usage string) { + f.VarP(newInt32Value(value, p), name, shorthand, usage) +} + +// Int32Var defines an int32 flag with specified name, default value, and usage string. +// The argument p points to an int32 variable in which to store the value of the flag. +func Int32Var(p *int32, name string, value int32, usage string) { + CommandLine.VarP(newInt32Value(value, p), name, "", usage) +} + +// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash. +func Int32VarP(p *int32, name, shorthand string, value int32, usage string) { + CommandLine.VarP(newInt32Value(value, p), name, shorthand, usage) +} + +// Int32 defines an int32 flag with specified name, default value, and usage string. +// The return value is the address of an int32 variable that stores the value of the flag. +func (f *FlagSet) Int32(name string, value int32, usage string) *int32 { + p := new(int32) + f.Int32VarP(p, name, "", value, usage) + return p +} + +// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int32P(name, shorthand string, value int32, usage string) *int32 { + p := new(int32) + f.Int32VarP(p, name, shorthand, value, usage) + return p +} + +// Int32 defines an int32 flag with specified name, default value, and usage string. +// The return value is the address of an int32 variable that stores the value of the flag. +func Int32(name string, value int32, usage string) *int32 { + return CommandLine.Int32P(name, "", value, usage) +} + +// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash. +func Int32P(name, shorthand string, value int32, usage string) *int32 { + return CommandLine.Int32P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/int64.go b/vendor/github.com/spf13/pflag/int64.go new file mode 100644 index 0000000..0026d78 --- /dev/null +++ b/vendor/github.com/spf13/pflag/int64.go @@ -0,0 +1,84 @@ +package pflag + +import "strconv" + +// -- int64 Value +type int64Value int64 + +func newInt64Value(val int64, p *int64) *int64Value { + *p = val + return (*int64Value)(p) +} + +func (i *int64Value) Set(s string) error { + v, err := strconv.ParseInt(s, 0, 64) + *i = int64Value(v) + return err +} + +func (i *int64Value) Type() string { + return "int64" +} + +func (i *int64Value) String() string { return strconv.FormatInt(int64(*i), 10) } + +func int64Conv(sval string) (interface{}, error) { + return strconv.ParseInt(sval, 0, 64) +} + +// GetInt64 return the int64 value of a flag with the given name +func (f *FlagSet) GetInt64(name string) (int64, error) { + val, err := f.getFlagType(name, "int64", int64Conv) + if err != nil { + return 0, err + } + return val.(int64), nil +} + +// Int64Var defines an int64 flag with specified name, default value, and usage string. +// The argument p points to an int64 variable in which to store the value of the flag. +func (f *FlagSet) Int64Var(p *int64, name string, value int64, usage string) { + f.VarP(newInt64Value(value, p), name, "", usage) +} + +// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int64VarP(p *int64, name, shorthand string, value int64, usage string) { + f.VarP(newInt64Value(value, p), name, shorthand, usage) +} + +// Int64Var defines an int64 flag with specified name, default value, and usage string. +// The argument p points to an int64 variable in which to store the value of the flag. +func Int64Var(p *int64, name string, value int64, usage string) { + CommandLine.VarP(newInt64Value(value, p), name, "", usage) +} + +// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash. +func Int64VarP(p *int64, name, shorthand string, value int64, usage string) { + CommandLine.VarP(newInt64Value(value, p), name, shorthand, usage) +} + +// Int64 defines an int64 flag with specified name, default value, and usage string. +// The return value is the address of an int64 variable that stores the value of the flag. +func (f *FlagSet) Int64(name string, value int64, usage string) *int64 { + p := new(int64) + f.Int64VarP(p, name, "", value, usage) + return p +} + +// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int64P(name, shorthand string, value int64, usage string) *int64 { + p := new(int64) + f.Int64VarP(p, name, shorthand, value, usage) + return p +} + +// Int64 defines an int64 flag with specified name, default value, and usage string. +// The return value is the address of an int64 variable that stores the value of the flag. +func Int64(name string, value int64, usage string) *int64 { + return CommandLine.Int64P(name, "", value, usage) +} + +// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash. +func Int64P(name, shorthand string, value int64, usage string) *int64 { + return CommandLine.Int64P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/int8.go b/vendor/github.com/spf13/pflag/int8.go new file mode 100644 index 0000000..4da9222 --- /dev/null +++ b/vendor/github.com/spf13/pflag/int8.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- int8 Value +type int8Value int8 + +func newInt8Value(val int8, p *int8) *int8Value { + *p = val + return (*int8Value)(p) +} + +func (i *int8Value) Set(s string) error { + v, err := strconv.ParseInt(s, 0, 8) + *i = int8Value(v) + return err +} + +func (i *int8Value) Type() string { + return "int8" +} + +func (i *int8Value) String() string { return strconv.FormatInt(int64(*i), 10) } + +func int8Conv(sval string) (interface{}, error) { + v, err := strconv.ParseInt(sval, 0, 8) + if err != nil { + return 0, err + } + return int8(v), nil +} + +// GetInt8 return the int8 value of a flag with the given name +func (f *FlagSet) GetInt8(name string) (int8, error) { + val, err := f.getFlagType(name, "int8", int8Conv) + if err != nil { + return 0, err + } + return val.(int8), nil +} + +// Int8Var defines an int8 flag with specified name, default value, and usage string. +// The argument p points to an int8 variable in which to store the value of the flag. +func (f *FlagSet) Int8Var(p *int8, name string, value int8, usage string) { + f.VarP(newInt8Value(value, p), name, "", usage) +} + +// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int8VarP(p *int8, name, shorthand string, value int8, usage string) { + f.VarP(newInt8Value(value, p), name, shorthand, usage) +} + +// Int8Var defines an int8 flag with specified name, default value, and usage string. +// The argument p points to an int8 variable in which to store the value of the flag. +func Int8Var(p *int8, name string, value int8, usage string) { + CommandLine.VarP(newInt8Value(value, p), name, "", usage) +} + +// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash. +func Int8VarP(p *int8, name, shorthand string, value int8, usage string) { + CommandLine.VarP(newInt8Value(value, p), name, shorthand, usage) +} + +// Int8 defines an int8 flag with specified name, default value, and usage string. +// The return value is the address of an int8 variable that stores the value of the flag. +func (f *FlagSet) Int8(name string, value int8, usage string) *int8 { + p := new(int8) + f.Int8VarP(p, name, "", value, usage) + return p +} + +// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int8P(name, shorthand string, value int8, usage string) *int8 { + p := new(int8) + f.Int8VarP(p, name, shorthand, value, usage) + return p +} + +// Int8 defines an int8 flag with specified name, default value, and usage string. +// The return value is the address of an int8 variable that stores the value of the flag. +func Int8(name string, value int8, usage string) *int8 { + return CommandLine.Int8P(name, "", value, usage) +} + +// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash. +func Int8P(name, shorthand string, value int8, usage string) *int8 { + return CommandLine.Int8P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/int_slice.go b/vendor/github.com/spf13/pflag/int_slice.go new file mode 100644 index 0000000..1e7c9ed --- /dev/null +++ b/vendor/github.com/spf13/pflag/int_slice.go @@ -0,0 +1,128 @@ +package pflag + +import ( + "fmt" + "strconv" + "strings" +) + +// -- intSlice Value +type intSliceValue struct { + value *[]int + changed bool +} + +func newIntSliceValue(val []int, p *[]int) *intSliceValue { + isv := new(intSliceValue) + isv.value = p + *isv.value = val + return isv +} + +func (s *intSliceValue) Set(val string) error { + ss := strings.Split(val, ",") + out := make([]int, len(ss)) + for i, d := range ss { + var err error + out[i], err = strconv.Atoi(d) + if err != nil { + return err + } + + } + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + s.changed = true + return nil +} + +func (s *intSliceValue) Type() string { + return "intSlice" +} + +func (s *intSliceValue) String() string { + out := make([]string, len(*s.value)) + for i, d := range *s.value { + out[i] = fmt.Sprintf("%d", d) + } + return "[" + strings.Join(out, ",") + "]" +} + +func intSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Empty string would cause a slice with one (empty) entry + if len(val) == 0 { + return []int{}, nil + } + ss := strings.Split(val, ",") + out := make([]int, len(ss)) + for i, d := range ss { + var err error + out[i], err = strconv.Atoi(d) + if err != nil { + return nil, err + } + + } + return out, nil +} + +// GetIntSlice return the []int value of a flag with the given name +func (f *FlagSet) GetIntSlice(name string) ([]int, error) { + val, err := f.getFlagType(name, "intSlice", intSliceConv) + if err != nil { + return []int{}, err + } + return val.([]int), nil +} + +// IntSliceVar defines a intSlice flag with specified name, default value, and usage string. +// The argument p points to a []int variable in which to store the value of the flag. +func (f *FlagSet) IntSliceVar(p *[]int, name string, value []int, usage string) { + f.VarP(newIntSliceValue(value, p), name, "", usage) +} + +// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) { + f.VarP(newIntSliceValue(value, p), name, shorthand, usage) +} + +// IntSliceVar defines a int[] flag with specified name, default value, and usage string. +// The argument p points to a int[] variable in which to store the value of the flag. +func IntSliceVar(p *[]int, name string, value []int, usage string) { + CommandLine.VarP(newIntSliceValue(value, p), name, "", usage) +} + +// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash. +func IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) { + CommandLine.VarP(newIntSliceValue(value, p), name, shorthand, usage) +} + +// IntSlice defines a []int flag with specified name, default value, and usage string. +// The return value is the address of a []int variable that stores the value of the flag. +func (f *FlagSet) IntSlice(name string, value []int, usage string) *[]int { + p := []int{} + f.IntSliceVarP(&p, name, "", value, usage) + return &p +} + +// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IntSliceP(name, shorthand string, value []int, usage string) *[]int { + p := []int{} + f.IntSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// IntSlice defines a []int flag with specified name, default value, and usage string. +// The return value is the address of a []int variable that stores the value of the flag. +func IntSlice(name string, value []int, usage string) *[]int { + return CommandLine.IntSliceP(name, "", value, usage) +} + +// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash. +func IntSliceP(name, shorthand string, value []int, usage string) *[]int { + return CommandLine.IntSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/ip.go b/vendor/github.com/spf13/pflag/ip.go new file mode 100644 index 0000000..3d414ba --- /dev/null +++ b/vendor/github.com/spf13/pflag/ip.go @@ -0,0 +1,94 @@ +package pflag + +import ( + "fmt" + "net" + "strings" +) + +// -- net.IP value +type ipValue net.IP + +func newIPValue(val net.IP, p *net.IP) *ipValue { + *p = val + return (*ipValue)(p) +} + +func (i *ipValue) String() string { return net.IP(*i).String() } +func (i *ipValue) Set(s string) error { + ip := net.ParseIP(strings.TrimSpace(s)) + if ip == nil { + return fmt.Errorf("failed to parse IP: %q", s) + } + *i = ipValue(ip) + return nil +} + +func (i *ipValue) Type() string { + return "ip" +} + +func ipConv(sval string) (interface{}, error) { + ip := net.ParseIP(sval) + if ip != nil { + return ip, nil + } + return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval) +} + +// GetIP return the net.IP value of a flag with the given name +func (f *FlagSet) GetIP(name string) (net.IP, error) { + val, err := f.getFlagType(name, "ip", ipConv) + if err != nil { + return nil, err + } + return val.(net.IP), nil +} + +// IPVar defines an net.IP flag with specified name, default value, and usage string. +// The argument p points to an net.IP variable in which to store the value of the flag. +func (f *FlagSet) IPVar(p *net.IP, name string, value net.IP, usage string) { + f.VarP(newIPValue(value, p), name, "", usage) +} + +// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) { + f.VarP(newIPValue(value, p), name, shorthand, usage) +} + +// IPVar defines an net.IP flag with specified name, default value, and usage string. +// The argument p points to an net.IP variable in which to store the value of the flag. +func IPVar(p *net.IP, name string, value net.IP, usage string) { + CommandLine.VarP(newIPValue(value, p), name, "", usage) +} + +// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash. +func IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) { + CommandLine.VarP(newIPValue(value, p), name, shorthand, usage) +} + +// IP defines an net.IP flag with specified name, default value, and usage string. +// The return value is the address of an net.IP variable that stores the value of the flag. +func (f *FlagSet) IP(name string, value net.IP, usage string) *net.IP { + p := new(net.IP) + f.IPVarP(p, name, "", value, usage) + return p +} + +// IPP is like IP, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPP(name, shorthand string, value net.IP, usage string) *net.IP { + p := new(net.IP) + f.IPVarP(p, name, shorthand, value, usage) + return p +} + +// IP defines an net.IP flag with specified name, default value, and usage string. +// The return value is the address of an net.IP variable that stores the value of the flag. +func IP(name string, value net.IP, usage string) *net.IP { + return CommandLine.IPP(name, "", value, usage) +} + +// IPP is like IP, but accepts a shorthand letter that can be used after a single dash. +func IPP(name, shorthand string, value net.IP, usage string) *net.IP { + return CommandLine.IPP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/ip_slice.go b/vendor/github.com/spf13/pflag/ip_slice.go new file mode 100644 index 0000000..7dd196f --- /dev/null +++ b/vendor/github.com/spf13/pflag/ip_slice.go @@ -0,0 +1,148 @@ +package pflag + +import ( + "fmt" + "io" + "net" + "strings" +) + +// -- ipSlice Value +type ipSliceValue struct { + value *[]net.IP + changed bool +} + +func newIPSliceValue(val []net.IP, p *[]net.IP) *ipSliceValue { + ipsv := new(ipSliceValue) + ipsv.value = p + *ipsv.value = val + return ipsv +} + +// Set converts, and assigns, the comma-separated IP argument string representation as the []net.IP value of this flag. +// If Set is called on a flag that already has a []net.IP assigned, the newly converted values will be appended. +func (s *ipSliceValue) Set(val string) error { + + // remove all quote characters + rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "") + + // read flag arguments with CSV parser + ipStrSlice, err := readAsCSV(rmQuote.Replace(val)) + if err != nil && err != io.EOF { + return err + } + + // parse ip values into slice + out := make([]net.IP, 0, len(ipStrSlice)) + for _, ipStr := range ipStrSlice { + ip := net.ParseIP(strings.TrimSpace(ipStr)) + if ip == nil { + return fmt.Errorf("invalid string being converted to IP address: %s", ipStr) + } + out = append(out, ip) + } + + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + + s.changed = true + + return nil +} + +// Type returns a string that uniquely represents this flag's type. +func (s *ipSliceValue) Type() string { + return "ipSlice" +} + +// String defines a "native" format for this net.IP slice flag value. +func (s *ipSliceValue) String() string { + + ipStrSlice := make([]string, len(*s.value)) + for i, ip := range *s.value { + ipStrSlice[i] = ip.String() + } + + out, _ := writeAsCSV(ipStrSlice) + + return "[" + out + "]" +} + +func ipSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Emtpy string would cause a slice with one (empty) entry + if len(val) == 0 { + return []net.IP{}, nil + } + ss := strings.Split(val, ",") + out := make([]net.IP, len(ss)) + for i, sval := range ss { + ip := net.ParseIP(strings.TrimSpace(sval)) + if ip == nil { + return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval) + } + out[i] = ip + } + return out, nil +} + +// GetIPSlice returns the []net.IP value of a flag with the given name +func (f *FlagSet) GetIPSlice(name string) ([]net.IP, error) { + val, err := f.getFlagType(name, "ipSlice", ipSliceConv) + if err != nil { + return []net.IP{}, err + } + return val.([]net.IP), nil +} + +// IPSliceVar defines a ipSlice flag with specified name, default value, and usage string. +// The argument p points to a []net.IP variable in which to store the value of the flag. +func (f *FlagSet) IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) { + f.VarP(newIPSliceValue(value, p), name, "", usage) +} + +// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) { + f.VarP(newIPSliceValue(value, p), name, shorthand, usage) +} + +// IPSliceVar defines a []net.IP flag with specified name, default value, and usage string. +// The argument p points to a []net.IP variable in which to store the value of the flag. +func IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) { + CommandLine.VarP(newIPSliceValue(value, p), name, "", usage) +} + +// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash. +func IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) { + CommandLine.VarP(newIPSliceValue(value, p), name, shorthand, usage) +} + +// IPSlice defines a []net.IP flag with specified name, default value, and usage string. +// The return value is the address of a []net.IP variable that stores the value of that flag. +func (f *FlagSet) IPSlice(name string, value []net.IP, usage string) *[]net.IP { + p := []net.IP{} + f.IPSliceVarP(&p, name, "", value, usage) + return &p +} + +// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP { + p := []net.IP{} + f.IPSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// IPSlice defines a []net.IP flag with specified name, default value, and usage string. +// The return value is the address of a []net.IP variable that stores the value of the flag. +func IPSlice(name string, value []net.IP, usage string) *[]net.IP { + return CommandLine.IPSliceP(name, "", value, usage) +} + +// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash. +func IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP { + return CommandLine.IPSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/ipmask.go b/vendor/github.com/spf13/pflag/ipmask.go new file mode 100644 index 0000000..5bd44bd --- /dev/null +++ b/vendor/github.com/spf13/pflag/ipmask.go @@ -0,0 +1,122 @@ +package pflag + +import ( + "fmt" + "net" + "strconv" +) + +// -- net.IPMask value +type ipMaskValue net.IPMask + +func newIPMaskValue(val net.IPMask, p *net.IPMask) *ipMaskValue { + *p = val + return (*ipMaskValue)(p) +} + +func (i *ipMaskValue) String() string { return net.IPMask(*i).String() } +func (i *ipMaskValue) Set(s string) error { + ip := ParseIPv4Mask(s) + if ip == nil { + return fmt.Errorf("failed to parse IP mask: %q", s) + } + *i = ipMaskValue(ip) + return nil +} + +func (i *ipMaskValue) Type() string { + return "ipMask" +} + +// ParseIPv4Mask written in IP form (e.g. 255.255.255.0). +// This function should really belong to the net package. +func ParseIPv4Mask(s string) net.IPMask { + mask := net.ParseIP(s) + if mask == nil { + if len(s) != 8 { + return nil + } + // net.IPMask.String() actually outputs things like ffffff00 + // so write a horrible parser for that as well :-( + m := []int{} + for i := 0; i < 4; i++ { + b := "0x" + s[2*i:2*i+2] + d, err := strconv.ParseInt(b, 0, 0) + if err != nil { + return nil + } + m = append(m, int(d)) + } + s := fmt.Sprintf("%d.%d.%d.%d", m[0], m[1], m[2], m[3]) + mask = net.ParseIP(s) + if mask == nil { + return nil + } + } + return net.IPv4Mask(mask[12], mask[13], mask[14], mask[15]) +} + +func parseIPv4Mask(sval string) (interface{}, error) { + mask := ParseIPv4Mask(sval) + if mask == nil { + return nil, fmt.Errorf("unable to parse %s as net.IPMask", sval) + } + return mask, nil +} + +// GetIPv4Mask return the net.IPv4Mask value of a flag with the given name +func (f *FlagSet) GetIPv4Mask(name string) (net.IPMask, error) { + val, err := f.getFlagType(name, "ipMask", parseIPv4Mask) + if err != nil { + return nil, err + } + return val.(net.IPMask), nil +} + +// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string. +// The argument p points to an net.IPMask variable in which to store the value of the flag. +func (f *FlagSet) IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) { + f.VarP(newIPMaskValue(value, p), name, "", usage) +} + +// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) { + f.VarP(newIPMaskValue(value, p), name, shorthand, usage) +} + +// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string. +// The argument p points to an net.IPMask variable in which to store the value of the flag. +func IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) { + CommandLine.VarP(newIPMaskValue(value, p), name, "", usage) +} + +// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash. +func IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) { + CommandLine.VarP(newIPMaskValue(value, p), name, shorthand, usage) +} + +// IPMask defines an net.IPMask flag with specified name, default value, and usage string. +// The return value is the address of an net.IPMask variable that stores the value of the flag. +func (f *FlagSet) IPMask(name string, value net.IPMask, usage string) *net.IPMask { + p := new(net.IPMask) + f.IPMaskVarP(p, name, "", value, usage) + return p +} + +// IPMaskP is like IPMask, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask { + p := new(net.IPMask) + f.IPMaskVarP(p, name, shorthand, value, usage) + return p +} + +// IPMask defines an net.IPMask flag with specified name, default value, and usage string. +// The return value is the address of an net.IPMask variable that stores the value of the flag. +func IPMask(name string, value net.IPMask, usage string) *net.IPMask { + return CommandLine.IPMaskP(name, "", value, usage) +} + +// IPMaskP is like IP, but accepts a shorthand letter that can be used after a single dash. +func IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask { + return CommandLine.IPMaskP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/ipnet.go b/vendor/github.com/spf13/pflag/ipnet.go new file mode 100644 index 0000000..e2c1b8b --- /dev/null +++ b/vendor/github.com/spf13/pflag/ipnet.go @@ -0,0 +1,98 @@ +package pflag + +import ( + "fmt" + "net" + "strings" +) + +// IPNet adapts net.IPNet for use as a flag. +type ipNetValue net.IPNet + +func (ipnet ipNetValue) String() string { + n := net.IPNet(ipnet) + return n.String() +} + +func (ipnet *ipNetValue) Set(value string) error { + _, n, err := net.ParseCIDR(strings.TrimSpace(value)) + if err != nil { + return err + } + *ipnet = ipNetValue(*n) + return nil +} + +func (*ipNetValue) Type() string { + return "ipNet" +} + +func newIPNetValue(val net.IPNet, p *net.IPNet) *ipNetValue { + *p = val + return (*ipNetValue)(p) +} + +func ipNetConv(sval string) (interface{}, error) { + _, n, err := net.ParseCIDR(strings.TrimSpace(sval)) + if err == nil { + return *n, nil + } + return nil, fmt.Errorf("invalid string being converted to IPNet: %s", sval) +} + +// GetIPNet return the net.IPNet value of a flag with the given name +func (f *FlagSet) GetIPNet(name string) (net.IPNet, error) { + val, err := f.getFlagType(name, "ipNet", ipNetConv) + if err != nil { + return net.IPNet{}, err + } + return val.(net.IPNet), nil +} + +// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string. +// The argument p points to an net.IPNet variable in which to store the value of the flag. +func (f *FlagSet) IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) { + f.VarP(newIPNetValue(value, p), name, "", usage) +} + +// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) { + f.VarP(newIPNetValue(value, p), name, shorthand, usage) +} + +// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string. +// The argument p points to an net.IPNet variable in which to store the value of the flag. +func IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) { + CommandLine.VarP(newIPNetValue(value, p), name, "", usage) +} + +// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash. +func IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) { + CommandLine.VarP(newIPNetValue(value, p), name, shorthand, usage) +} + +// IPNet defines an net.IPNet flag with specified name, default value, and usage string. +// The return value is the address of an net.IPNet variable that stores the value of the flag. +func (f *FlagSet) IPNet(name string, value net.IPNet, usage string) *net.IPNet { + p := new(net.IPNet) + f.IPNetVarP(p, name, "", value, usage) + return p +} + +// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet { + p := new(net.IPNet) + f.IPNetVarP(p, name, shorthand, value, usage) + return p +} + +// IPNet defines an net.IPNet flag with specified name, default value, and usage string. +// The return value is the address of an net.IPNet variable that stores the value of the flag. +func IPNet(name string, value net.IPNet, usage string) *net.IPNet { + return CommandLine.IPNetP(name, "", value, usage) +} + +// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash. +func IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet { + return CommandLine.IPNetP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/string.go b/vendor/github.com/spf13/pflag/string.go new file mode 100644 index 0000000..04e0a26 --- /dev/null +++ b/vendor/github.com/spf13/pflag/string.go @@ -0,0 +1,80 @@ +package pflag + +// -- string Value +type stringValue string + +func newStringValue(val string, p *string) *stringValue { + *p = val + return (*stringValue)(p) +} + +func (s *stringValue) Set(val string) error { + *s = stringValue(val) + return nil +} +func (s *stringValue) Type() string { + return "string" +} + +func (s *stringValue) String() string { return string(*s) } + +func stringConv(sval string) (interface{}, error) { + return sval, nil +} + +// GetString return the string value of a flag with the given name +func (f *FlagSet) GetString(name string) (string, error) { + val, err := f.getFlagType(name, "string", stringConv) + if err != nil { + return "", err + } + return val.(string), nil +} + +// StringVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a string variable in which to store the value of the flag. +func (f *FlagSet) StringVar(p *string, name string, value string, usage string) { + f.VarP(newStringValue(value, p), name, "", usage) +} + +// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringVarP(p *string, name, shorthand string, value string, usage string) { + f.VarP(newStringValue(value, p), name, shorthand, usage) +} + +// StringVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a string variable in which to store the value of the flag. +func StringVar(p *string, name string, value string, usage string) { + CommandLine.VarP(newStringValue(value, p), name, "", usage) +} + +// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash. +func StringVarP(p *string, name, shorthand string, value string, usage string) { + CommandLine.VarP(newStringValue(value, p), name, shorthand, usage) +} + +// String defines a string flag with specified name, default value, and usage string. +// The return value is the address of a string variable that stores the value of the flag. +func (f *FlagSet) String(name string, value string, usage string) *string { + p := new(string) + f.StringVarP(p, name, "", value, usage) + return p +} + +// StringP is like String, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringP(name, shorthand string, value string, usage string) *string { + p := new(string) + f.StringVarP(p, name, shorthand, value, usage) + return p +} + +// String defines a string flag with specified name, default value, and usage string. +// The return value is the address of a string variable that stores the value of the flag. +func String(name string, value string, usage string) *string { + return CommandLine.StringP(name, "", value, usage) +} + +// StringP is like String, but accepts a shorthand letter that can be used after a single dash. +func StringP(name, shorthand string, value string, usage string) *string { + return CommandLine.StringP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/string_array.go b/vendor/github.com/spf13/pflag/string_array.go new file mode 100644 index 0000000..fa7bc60 --- /dev/null +++ b/vendor/github.com/spf13/pflag/string_array.go @@ -0,0 +1,103 @@ +package pflag + +// -- stringArray Value +type stringArrayValue struct { + value *[]string + changed bool +} + +func newStringArrayValue(val []string, p *[]string) *stringArrayValue { + ssv := new(stringArrayValue) + ssv.value = p + *ssv.value = val + return ssv +} + +func (s *stringArrayValue) Set(val string) error { + if !s.changed { + *s.value = []string{val} + s.changed = true + } else { + *s.value = append(*s.value, val) + } + return nil +} + +func (s *stringArrayValue) Type() string { + return "stringArray" +} + +func (s *stringArrayValue) String() string { + str, _ := writeAsCSV(*s.value) + return "[" + str + "]" +} + +func stringArrayConv(sval string) (interface{}, error) { + sval = sval[1 : len(sval)-1] + // An empty string would cause a array with one (empty) string + if len(sval) == 0 { + return []string{}, nil + } + return readAsCSV(sval) +} + +// GetStringArray return the []string value of a flag with the given name +func (f *FlagSet) GetStringArray(name string) ([]string, error) { + val, err := f.getFlagType(name, "stringArray", stringArrayConv) + if err != nil { + return []string{}, err + } + return val.([]string), nil +} + +// StringArrayVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a []string variable in which to store the values of the multiple flags. +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. +func (f *FlagSet) StringArrayVar(p *[]string, name string, value []string, usage string) { + f.VarP(newStringArrayValue(value, p), name, "", usage) +} + +// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) { + f.VarP(newStringArrayValue(value, p), name, shorthand, usage) +} + +// StringArrayVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a []string variable in which to store the value of the flag. +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. +func StringArrayVar(p *[]string, name string, value []string, usage string) { + CommandLine.VarP(newStringArrayValue(value, p), name, "", usage) +} + +// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash. +func StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) { + CommandLine.VarP(newStringArrayValue(value, p), name, shorthand, usage) +} + +// StringArray defines a string flag with specified name, default value, and usage string. +// The return value is the address of a []string variable that stores the value of the flag. +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. +func (f *FlagSet) StringArray(name string, value []string, usage string) *[]string { + p := []string{} + f.StringArrayVarP(&p, name, "", value, usage) + return &p +} + +// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringArrayP(name, shorthand string, value []string, usage string) *[]string { + p := []string{} + f.StringArrayVarP(&p, name, shorthand, value, usage) + return &p +} + +// StringArray defines a string flag with specified name, default value, and usage string. +// The return value is the address of a []string variable that stores the value of the flag. +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. +func StringArray(name string, value []string, usage string) *[]string { + return CommandLine.StringArrayP(name, "", value, usage) +} + +// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash. +func StringArrayP(name, shorthand string, value []string, usage string) *[]string { + return CommandLine.StringArrayP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/string_slice.go b/vendor/github.com/spf13/pflag/string_slice.go new file mode 100644 index 0000000..0cd3ccc --- /dev/null +++ b/vendor/github.com/spf13/pflag/string_slice.go @@ -0,0 +1,149 @@ +package pflag + +import ( + "bytes" + "encoding/csv" + "strings" +) + +// -- stringSlice Value +type stringSliceValue struct { + value *[]string + changed bool +} + +func newStringSliceValue(val []string, p *[]string) *stringSliceValue { + ssv := new(stringSliceValue) + ssv.value = p + *ssv.value = val + return ssv +} + +func readAsCSV(val string) ([]string, error) { + if val == "" { + return []string{}, nil + } + stringReader := strings.NewReader(val) + csvReader := csv.NewReader(stringReader) + return csvReader.Read() +} + +func writeAsCSV(vals []string) (string, error) { + b := &bytes.Buffer{} + w := csv.NewWriter(b) + err := w.Write(vals) + if err != nil { + return "", err + } + w.Flush() + return strings.TrimSuffix(b.String(), "\n"), nil +} + +func (s *stringSliceValue) Set(val string) error { + v, err := readAsCSV(val) + if err != nil { + return err + } + if !s.changed { + *s.value = v + } else { + *s.value = append(*s.value, v...) + } + s.changed = true + return nil +} + +func (s *stringSliceValue) Type() string { + return "stringSlice" +} + +func (s *stringSliceValue) String() string { + str, _ := writeAsCSV(*s.value) + return "[" + str + "]" +} + +func stringSliceConv(sval string) (interface{}, error) { + sval = sval[1 : len(sval)-1] + // An empty string would cause a slice with one (empty) string + if len(sval) == 0 { + return []string{}, nil + } + return readAsCSV(sval) +} + +// GetStringSlice return the []string value of a flag with the given name +func (f *FlagSet) GetStringSlice(name string) ([]string, error) { + val, err := f.getFlagType(name, "stringSlice", stringSliceConv) + if err != nil { + return []string{}, err + } + return val.([]string), nil +} + +// StringSliceVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a []string variable in which to store the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} +func (f *FlagSet) StringSliceVar(p *[]string, name string, value []string, usage string) { + f.VarP(newStringSliceValue(value, p), name, "", usage) +} + +// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) { + f.VarP(newStringSliceValue(value, p), name, shorthand, usage) +} + +// StringSliceVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a []string variable in which to store the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} +func StringSliceVar(p *[]string, name string, value []string, usage string) { + CommandLine.VarP(newStringSliceValue(value, p), name, "", usage) +} + +// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash. +func StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) { + CommandLine.VarP(newStringSliceValue(value, p), name, shorthand, usage) +} + +// StringSlice defines a string flag with specified name, default value, and usage string. +// The return value is the address of a []string variable that stores the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} +func (f *FlagSet) StringSlice(name string, value []string, usage string) *[]string { + p := []string{} + f.StringSliceVarP(&p, name, "", value, usage) + return &p +} + +// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringSliceP(name, shorthand string, value []string, usage string) *[]string { + p := []string{} + f.StringSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// StringSlice defines a string flag with specified name, default value, and usage string. +// The return value is the address of a []string variable that stores the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} +func StringSlice(name string, value []string, usage string) *[]string { + return CommandLine.StringSliceP(name, "", value, usage) +} + +// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash. +func StringSliceP(name, shorthand string, value []string, usage string) *[]string { + return CommandLine.StringSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint.go b/vendor/github.com/spf13/pflag/uint.go new file mode 100644 index 0000000..dcbc2b7 --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- uint Value +type uintValue uint + +func newUintValue(val uint, p *uint) *uintValue { + *p = val + return (*uintValue)(p) +} + +func (i *uintValue) Set(s string) error { + v, err := strconv.ParseUint(s, 0, 64) + *i = uintValue(v) + return err +} + +func (i *uintValue) Type() string { + return "uint" +} + +func (i *uintValue) String() string { return strconv.FormatUint(uint64(*i), 10) } + +func uintConv(sval string) (interface{}, error) { + v, err := strconv.ParseUint(sval, 0, 0) + if err != nil { + return 0, err + } + return uint(v), nil +} + +// GetUint return the uint value of a flag with the given name +func (f *FlagSet) GetUint(name string) (uint, error) { + val, err := f.getFlagType(name, "uint", uintConv) + if err != nil { + return 0, err + } + return val.(uint), nil +} + +// UintVar defines a uint flag with specified name, default value, and usage string. +// The argument p points to a uint variable in which to store the value of the flag. +func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) { + f.VarP(newUintValue(value, p), name, "", usage) +} + +// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) UintVarP(p *uint, name, shorthand string, value uint, usage string) { + f.VarP(newUintValue(value, p), name, shorthand, usage) +} + +// UintVar defines a uint flag with specified name, default value, and usage string. +// The argument p points to a uint variable in which to store the value of the flag. +func UintVar(p *uint, name string, value uint, usage string) { + CommandLine.VarP(newUintValue(value, p), name, "", usage) +} + +// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash. +func UintVarP(p *uint, name, shorthand string, value uint, usage string) { + CommandLine.VarP(newUintValue(value, p), name, shorthand, usage) +} + +// Uint defines a uint flag with specified name, default value, and usage string. +// The return value is the address of a uint variable that stores the value of the flag. +func (f *FlagSet) Uint(name string, value uint, usage string) *uint { + p := new(uint) + f.UintVarP(p, name, "", value, usage) + return p +} + +// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) UintP(name, shorthand string, value uint, usage string) *uint { + p := new(uint) + f.UintVarP(p, name, shorthand, value, usage) + return p +} + +// Uint defines a uint flag with specified name, default value, and usage string. +// The return value is the address of a uint variable that stores the value of the flag. +func Uint(name string, value uint, usage string) *uint { + return CommandLine.UintP(name, "", value, usage) +} + +// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash. +func UintP(name, shorthand string, value uint, usage string) *uint { + return CommandLine.UintP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint16.go b/vendor/github.com/spf13/pflag/uint16.go new file mode 100644 index 0000000..7e9914e --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint16.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- uint16 value +type uint16Value uint16 + +func newUint16Value(val uint16, p *uint16) *uint16Value { + *p = val + return (*uint16Value)(p) +} + +func (i *uint16Value) Set(s string) error { + v, err := strconv.ParseUint(s, 0, 16) + *i = uint16Value(v) + return err +} + +func (i *uint16Value) Type() string { + return "uint16" +} + +func (i *uint16Value) String() string { return strconv.FormatUint(uint64(*i), 10) } + +func uint16Conv(sval string) (interface{}, error) { + v, err := strconv.ParseUint(sval, 0, 16) + if err != nil { + return 0, err + } + return uint16(v), nil +} + +// GetUint16 return the uint16 value of a flag with the given name +func (f *FlagSet) GetUint16(name string) (uint16, error) { + val, err := f.getFlagType(name, "uint16", uint16Conv) + if err != nil { + return 0, err + } + return val.(uint16), nil +} + +// Uint16Var defines a uint flag with specified name, default value, and usage string. +// The argument p points to a uint variable in which to store the value of the flag. +func (f *FlagSet) Uint16Var(p *uint16, name string, value uint16, usage string) { + f.VarP(newUint16Value(value, p), name, "", usage) +} + +// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) { + f.VarP(newUint16Value(value, p), name, shorthand, usage) +} + +// Uint16Var defines a uint flag with specified name, default value, and usage string. +// The argument p points to a uint variable in which to store the value of the flag. +func Uint16Var(p *uint16, name string, value uint16, usage string) { + CommandLine.VarP(newUint16Value(value, p), name, "", usage) +} + +// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash. +func Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) { + CommandLine.VarP(newUint16Value(value, p), name, shorthand, usage) +} + +// Uint16 defines a uint flag with specified name, default value, and usage string. +// The return value is the address of a uint variable that stores the value of the flag. +func (f *FlagSet) Uint16(name string, value uint16, usage string) *uint16 { + p := new(uint16) + f.Uint16VarP(p, name, "", value, usage) + return p +} + +// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint16P(name, shorthand string, value uint16, usage string) *uint16 { + p := new(uint16) + f.Uint16VarP(p, name, shorthand, value, usage) + return p +} + +// Uint16 defines a uint flag with specified name, default value, and usage string. +// The return value is the address of a uint variable that stores the value of the flag. +func Uint16(name string, value uint16, usage string) *uint16 { + return CommandLine.Uint16P(name, "", value, usage) +} + +// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash. +func Uint16P(name, shorthand string, value uint16, usage string) *uint16 { + return CommandLine.Uint16P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint32.go b/vendor/github.com/spf13/pflag/uint32.go new file mode 100644 index 0000000..d802453 --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint32.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- uint32 value +type uint32Value uint32 + +func newUint32Value(val uint32, p *uint32) *uint32Value { + *p = val + return (*uint32Value)(p) +} + +func (i *uint32Value) Set(s string) error { + v, err := strconv.ParseUint(s, 0, 32) + *i = uint32Value(v) + return err +} + +func (i *uint32Value) Type() string { + return "uint32" +} + +func (i *uint32Value) String() string { return strconv.FormatUint(uint64(*i), 10) } + +func uint32Conv(sval string) (interface{}, error) { + v, err := strconv.ParseUint(sval, 0, 32) + if err != nil { + return 0, err + } + return uint32(v), nil +} + +// GetUint32 return the uint32 value of a flag with the given name +func (f *FlagSet) GetUint32(name string) (uint32, error) { + val, err := f.getFlagType(name, "uint32", uint32Conv) + if err != nil { + return 0, err + } + return val.(uint32), nil +} + +// Uint32Var defines a uint32 flag with specified name, default value, and usage string. +// The argument p points to a uint32 variable in which to store the value of the flag. +func (f *FlagSet) Uint32Var(p *uint32, name string, value uint32, usage string) { + f.VarP(newUint32Value(value, p), name, "", usage) +} + +// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) { + f.VarP(newUint32Value(value, p), name, shorthand, usage) +} + +// Uint32Var defines a uint32 flag with specified name, default value, and usage string. +// The argument p points to a uint32 variable in which to store the value of the flag. +func Uint32Var(p *uint32, name string, value uint32, usage string) { + CommandLine.VarP(newUint32Value(value, p), name, "", usage) +} + +// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash. +func Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) { + CommandLine.VarP(newUint32Value(value, p), name, shorthand, usage) +} + +// Uint32 defines a uint32 flag with specified name, default value, and usage string. +// The return value is the address of a uint32 variable that stores the value of the flag. +func (f *FlagSet) Uint32(name string, value uint32, usage string) *uint32 { + p := new(uint32) + f.Uint32VarP(p, name, "", value, usage) + return p +} + +// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint32P(name, shorthand string, value uint32, usage string) *uint32 { + p := new(uint32) + f.Uint32VarP(p, name, shorthand, value, usage) + return p +} + +// Uint32 defines a uint32 flag with specified name, default value, and usage string. +// The return value is the address of a uint32 variable that stores the value of the flag. +func Uint32(name string, value uint32, usage string) *uint32 { + return CommandLine.Uint32P(name, "", value, usage) +} + +// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash. +func Uint32P(name, shorthand string, value uint32, usage string) *uint32 { + return CommandLine.Uint32P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint64.go b/vendor/github.com/spf13/pflag/uint64.go new file mode 100644 index 0000000..f62240f --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint64.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- uint64 Value +type uint64Value uint64 + +func newUint64Value(val uint64, p *uint64) *uint64Value { + *p = val + return (*uint64Value)(p) +} + +func (i *uint64Value) Set(s string) error { + v, err := strconv.ParseUint(s, 0, 64) + *i = uint64Value(v) + return err +} + +func (i *uint64Value) Type() string { + return "uint64" +} + +func (i *uint64Value) String() string { return strconv.FormatUint(uint64(*i), 10) } + +func uint64Conv(sval string) (interface{}, error) { + v, err := strconv.ParseUint(sval, 0, 64) + if err != nil { + return 0, err + } + return uint64(v), nil +} + +// GetUint64 return the uint64 value of a flag with the given name +func (f *FlagSet) GetUint64(name string) (uint64, error) { + val, err := f.getFlagType(name, "uint64", uint64Conv) + if err != nil { + return 0, err + } + return val.(uint64), nil +} + +// Uint64Var defines a uint64 flag with specified name, default value, and usage string. +// The argument p points to a uint64 variable in which to store the value of the flag. +func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string) { + f.VarP(newUint64Value(value, p), name, "", usage) +} + +// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) { + f.VarP(newUint64Value(value, p), name, shorthand, usage) +} + +// Uint64Var defines a uint64 flag with specified name, default value, and usage string. +// The argument p points to a uint64 variable in which to store the value of the flag. +func Uint64Var(p *uint64, name string, value uint64, usage string) { + CommandLine.VarP(newUint64Value(value, p), name, "", usage) +} + +// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash. +func Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) { + CommandLine.VarP(newUint64Value(value, p), name, shorthand, usage) +} + +// Uint64 defines a uint64 flag with specified name, default value, and usage string. +// The return value is the address of a uint64 variable that stores the value of the flag. +func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64 { + p := new(uint64) + f.Uint64VarP(p, name, "", value, usage) + return p +} + +// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint64P(name, shorthand string, value uint64, usage string) *uint64 { + p := new(uint64) + f.Uint64VarP(p, name, shorthand, value, usage) + return p +} + +// Uint64 defines a uint64 flag with specified name, default value, and usage string. +// The return value is the address of a uint64 variable that stores the value of the flag. +func Uint64(name string, value uint64, usage string) *uint64 { + return CommandLine.Uint64P(name, "", value, usage) +} + +// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash. +func Uint64P(name, shorthand string, value uint64, usage string) *uint64 { + return CommandLine.Uint64P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint8.go b/vendor/github.com/spf13/pflag/uint8.go new file mode 100644 index 0000000..bb0e83c --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint8.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- uint8 Value +type uint8Value uint8 + +func newUint8Value(val uint8, p *uint8) *uint8Value { + *p = val + return (*uint8Value)(p) +} + +func (i *uint8Value) Set(s string) error { + v, err := strconv.ParseUint(s, 0, 8) + *i = uint8Value(v) + return err +} + +func (i *uint8Value) Type() string { + return "uint8" +} + +func (i *uint8Value) String() string { return strconv.FormatUint(uint64(*i), 10) } + +func uint8Conv(sval string) (interface{}, error) { + v, err := strconv.ParseUint(sval, 0, 8) + if err != nil { + return 0, err + } + return uint8(v), nil +} + +// GetUint8 return the uint8 value of a flag with the given name +func (f *FlagSet) GetUint8(name string) (uint8, error) { + val, err := f.getFlagType(name, "uint8", uint8Conv) + if err != nil { + return 0, err + } + return val.(uint8), nil +} + +// Uint8Var defines a uint8 flag with specified name, default value, and usage string. +// The argument p points to a uint8 variable in which to store the value of the flag. +func (f *FlagSet) Uint8Var(p *uint8, name string, value uint8, usage string) { + f.VarP(newUint8Value(value, p), name, "", usage) +} + +// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) { + f.VarP(newUint8Value(value, p), name, shorthand, usage) +} + +// Uint8Var defines a uint8 flag with specified name, default value, and usage string. +// The argument p points to a uint8 variable in which to store the value of the flag. +func Uint8Var(p *uint8, name string, value uint8, usage string) { + CommandLine.VarP(newUint8Value(value, p), name, "", usage) +} + +// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash. +func Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) { + CommandLine.VarP(newUint8Value(value, p), name, shorthand, usage) +} + +// Uint8 defines a uint8 flag with specified name, default value, and usage string. +// The return value is the address of a uint8 variable that stores the value of the flag. +func (f *FlagSet) Uint8(name string, value uint8, usage string) *uint8 { + p := new(uint8) + f.Uint8VarP(p, name, "", value, usage) + return p +} + +// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint8P(name, shorthand string, value uint8, usage string) *uint8 { + p := new(uint8) + f.Uint8VarP(p, name, shorthand, value, usage) + return p +} + +// Uint8 defines a uint8 flag with specified name, default value, and usage string. +// The return value is the address of a uint8 variable that stores the value of the flag. +func Uint8(name string, value uint8, usage string) *uint8 { + return CommandLine.Uint8P(name, "", value, usage) +} + +// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash. +func Uint8P(name, shorthand string, value uint8, usage string) *uint8 { + return CommandLine.Uint8P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint_slice.go b/vendor/github.com/spf13/pflag/uint_slice.go new file mode 100644 index 0000000..edd94c6 --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint_slice.go @@ -0,0 +1,126 @@ +package pflag + +import ( + "fmt" + "strconv" + "strings" +) + +// -- uintSlice Value +type uintSliceValue struct { + value *[]uint + changed bool +} + +func newUintSliceValue(val []uint, p *[]uint) *uintSliceValue { + uisv := new(uintSliceValue) + uisv.value = p + *uisv.value = val + return uisv +} + +func (s *uintSliceValue) Set(val string) error { + ss := strings.Split(val, ",") + out := make([]uint, len(ss)) + for i, d := range ss { + u, err := strconv.ParseUint(d, 10, 0) + if err != nil { + return err + } + out[i] = uint(u) + } + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + s.changed = true + return nil +} + +func (s *uintSliceValue) Type() string { + return "uintSlice" +} + +func (s *uintSliceValue) String() string { + out := make([]string, len(*s.value)) + for i, d := range *s.value { + out[i] = fmt.Sprintf("%d", d) + } + return "[" + strings.Join(out, ",") + "]" +} + +func uintSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Empty string would cause a slice with one (empty) entry + if len(val) == 0 { + return []uint{}, nil + } + ss := strings.Split(val, ",") + out := make([]uint, len(ss)) + for i, d := range ss { + u, err := strconv.ParseUint(d, 10, 0) + if err != nil { + return nil, err + } + out[i] = uint(u) + } + return out, nil +} + +// GetUintSlice returns the []uint value of a flag with the given name. +func (f *FlagSet) GetUintSlice(name string) ([]uint, error) { + val, err := f.getFlagType(name, "uintSlice", uintSliceConv) + if err != nil { + return []uint{}, err + } + return val.([]uint), nil +} + +// UintSliceVar defines a uintSlice flag with specified name, default value, and usage string. +// The argument p points to a []uint variable in which to store the value of the flag. +func (f *FlagSet) UintSliceVar(p *[]uint, name string, value []uint, usage string) { + f.VarP(newUintSliceValue(value, p), name, "", usage) +} + +// UintSliceVarP is like UintSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) { + f.VarP(newUintSliceValue(value, p), name, shorthand, usage) +} + +// UintSliceVar defines a uint[] flag with specified name, default value, and usage string. +// The argument p points to a uint[] variable in which to store the value of the flag. +func UintSliceVar(p *[]uint, name string, value []uint, usage string) { + CommandLine.VarP(newUintSliceValue(value, p), name, "", usage) +} + +// UintSliceVarP is like the UintSliceVar, but accepts a shorthand letter that can be used after a single dash. +func UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) { + CommandLine.VarP(newUintSliceValue(value, p), name, shorthand, usage) +} + +// UintSlice defines a []uint flag with specified name, default value, and usage string. +// The return value is the address of a []uint variable that stores the value of the flag. +func (f *FlagSet) UintSlice(name string, value []uint, usage string) *[]uint { + p := []uint{} + f.UintSliceVarP(&p, name, "", value, usage) + return &p +} + +// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) UintSliceP(name, shorthand string, value []uint, usage string) *[]uint { + p := []uint{} + f.UintSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// UintSlice defines a []uint flag with specified name, default value, and usage string. +// The return value is the address of a []uint variable that stores the value of the flag. +func UintSlice(name string, value []uint, usage string) *[]uint { + return CommandLine.UintSliceP(name, "", value, usage) +} + +// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash. +func UintSliceP(name, shorthand string, value []uint, usage string) *[]uint { + return CommandLine.UintSliceP(name, shorthand, value, usage) +} diff --git a/vendor/golang.org/x/crypto/AUTHORS b/vendor/golang.org/x/crypto/AUTHORS new file mode 100644 index 0000000..2b00ddb --- /dev/null +++ b/vendor/golang.org/x/crypto/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at https://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/crypto/CONTRIBUTORS b/vendor/golang.org/x/crypto/CONTRIBUTORS new file mode 100644 index 0000000..1fbd3e9 --- /dev/null +++ b/vendor/golang.org/x/crypto/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at https://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/crypto/LICENSE b/vendor/golang.org/x/crypto/LICENSE new file mode 100644 index 0000000..6a66aea --- /dev/null +++ b/vendor/golang.org/x/crypto/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/crypto/PATENTS b/vendor/golang.org/x/crypto/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/vendor/golang.org/x/crypto/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/crypto/md4/md4.go b/vendor/golang.org/x/crypto/md4/md4.go new file mode 100644 index 0000000..59d3480 --- /dev/null +++ b/vendor/golang.org/x/crypto/md4/md4.go @@ -0,0 +1,122 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package md4 implements the MD4 hash algorithm as defined in RFC 1320. +// +// Deprecated: MD4 is cryptographically broken and should should only be used +// where compatibility with legacy systems, not security, is the goal. Instead, +// use a secure hash like SHA-256 (from crypto/sha256). +package md4 // import "golang.org/x/crypto/md4" + +import ( + "crypto" + "hash" +) + +func init() { + crypto.RegisterHash(crypto.MD4, New) +} + +// The size of an MD4 checksum in bytes. +const Size = 16 + +// The blocksize of MD4 in bytes. +const BlockSize = 64 + +const ( + _Chunk = 64 + _Init0 = 0x67452301 + _Init1 = 0xEFCDAB89 + _Init2 = 0x98BADCFE + _Init3 = 0x10325476 +) + +// digest represents the partial evaluation of a checksum. +type digest struct { + s [4]uint32 + x [_Chunk]byte + nx int + len uint64 +} + +func (d *digest) Reset() { + d.s[0] = _Init0 + d.s[1] = _Init1 + d.s[2] = _Init2 + d.s[3] = _Init3 + d.nx = 0 + d.len = 0 +} + +// New returns a new hash.Hash computing the MD4 checksum. +func New() hash.Hash { + d := new(digest) + d.Reset() + return d +} + +func (d *digest) Size() int { return Size } + +func (d *digest) BlockSize() int { return BlockSize } + +func (d *digest) Write(p []byte) (nn int, err error) { + nn = len(p) + d.len += uint64(nn) + if d.nx > 0 { + n := len(p) + if n > _Chunk-d.nx { + n = _Chunk - d.nx + } + for i := 0; i < n; i++ { + d.x[d.nx+i] = p[i] + } + d.nx += n + if d.nx == _Chunk { + _Block(d, d.x[0:]) + d.nx = 0 + } + p = p[n:] + } + n := _Block(d, p) + p = p[n:] + if len(p) > 0 { + d.nx = copy(d.x[:], p) + } + return +} + +func (d0 *digest) Sum(in []byte) []byte { + // Make a copy of d0, so that caller can keep writing and summing. + d := new(digest) + *d = *d0 + + // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64. + len := d.len + var tmp [64]byte + tmp[0] = 0x80 + if len%64 < 56 { + d.Write(tmp[0 : 56-len%64]) + } else { + d.Write(tmp[0 : 64+56-len%64]) + } + + // Length in bits. + len <<= 3 + for i := uint(0); i < 8; i++ { + tmp[i] = byte(len >> (8 * i)) + } + d.Write(tmp[0:8]) + + if d.nx != 0 { + panic("d.nx != 0") + } + + for _, s := range d.s { + in = append(in, byte(s>>0)) + in = append(in, byte(s>>8)) + in = append(in, byte(s>>16)) + in = append(in, byte(s>>24)) + } + return in +} diff --git a/vendor/golang.org/x/crypto/md4/md4block.go b/vendor/golang.org/x/crypto/md4/md4block.go new file mode 100644 index 0000000..3fed475 --- /dev/null +++ b/vendor/golang.org/x/crypto/md4/md4block.go @@ -0,0 +1,89 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// MD4 block step. +// In its own file so that a faster assembly or C version +// can be substituted easily. + +package md4 + +var shift1 = []uint{3, 7, 11, 19} +var shift2 = []uint{3, 5, 9, 13} +var shift3 = []uint{3, 9, 11, 15} + +var xIndex2 = []uint{0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15} +var xIndex3 = []uint{0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15} + +func _Block(dig *digest, p []byte) int { + a := dig.s[0] + b := dig.s[1] + c := dig.s[2] + d := dig.s[3] + n := 0 + var X [16]uint32 + for len(p) >= _Chunk { + aa, bb, cc, dd := a, b, c, d + + j := 0 + for i := 0; i < 16; i++ { + X[i] = uint32(p[j]) | uint32(p[j+1])<<8 | uint32(p[j+2])<<16 | uint32(p[j+3])<<24 + j += 4 + } + + // If this needs to be made faster in the future, + // the usual trick is to unroll each of these + // loops by a factor of 4; that lets you replace + // the shift[] lookups with constants and, + // with suitable variable renaming in each + // unrolled body, delete the a, b, c, d = d, a, b, c + // (or you can let the optimizer do the renaming). + // + // The index variables are uint so that % by a power + // of two can be optimized easily by a compiler. + + // Round 1. + for i := uint(0); i < 16; i++ { + x := i + s := shift1[i%4] + f := ((c ^ d) & b) ^ d + a += f + X[x] + a = a<>(32-s) + a, b, c, d = d, a, b, c + } + + // Round 2. + for i := uint(0); i < 16; i++ { + x := xIndex2[i] + s := shift2[i%4] + g := (b & c) | (b & d) | (c & d) + a += g + X[x] + 0x5a827999 + a = a<>(32-s) + a, b, c, d = d, a, b, c + } + + // Round 3. + for i := uint(0); i < 16; i++ { + x := xIndex3[i] + s := shift3[i%4] + h := b ^ c ^ d + a += h + X[x] + 0x6ed9eba1 + a = a<>(32-s) + a, b, c, d = d, a, b, c + } + + a += aa + b += bb + c += cc + d += dd + + p = p[_Chunk:] + n += _Chunk + } + + dig.s[0] = a + dig.s[1] = b + dig.s[2] = c + dig.s[3] = d + return n +} diff --git a/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go new file mode 100644 index 0000000..593f653 --- /dev/null +++ b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go @@ -0,0 +1,77 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC +2898 / PKCS #5 v2.0. + +A key derivation function is useful when encrypting data based on a password +or any other not-fully-random data. It uses a pseudorandom function to derive +a secure encryption key based on the password. + +While v2.0 of the standard defines only one pseudorandom function to use, +HMAC-SHA1, the drafted v2.1 specification allows use of all five FIPS Approved +Hash Functions SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 for HMAC. To +choose, you can pass the `New` functions from the different SHA packages to +pbkdf2.Key. +*/ +package pbkdf2 // import "golang.org/x/crypto/pbkdf2" + +import ( + "crypto/hmac" + "hash" +) + +// Key derives a key from the password, salt and iteration count, returning a +// []byte of length keylen that can be used as cryptographic key. The key is +// derived based on the method described as PBKDF2 with the HMAC variant using +// the supplied hash function. +// +// For example, to use a HMAC-SHA-1 based PBKDF2 key derivation function, you +// can get a derived key for e.g. AES-256 (which needs a 32-byte key) by +// doing: +// +// dk := pbkdf2.Key([]byte("some password"), salt, 4096, 32, sha1.New) +// +// Remember to get a good random salt. At least 8 bytes is recommended by the +// RFC. +// +// Using a higher iteration count will increase the cost of an exhaustive +// search but will also make derivation proportionally slower. +func Key(password, salt []byte, iter, keyLen int, h func() hash.Hash) []byte { + prf := hmac.New(h, password) + hashLen := prf.Size() + numBlocks := (keyLen + hashLen - 1) / hashLen + + var buf [4]byte + dk := make([]byte, 0, numBlocks*hashLen) + U := make([]byte, hashLen) + for block := 1; block <= numBlocks; block++ { + // N.B.: || means concatenation, ^ means XOR + // for each block T_i = U_1 ^ U_2 ^ ... ^ U_iter + // U_1 = PRF(password, salt || uint(i)) + prf.Reset() + prf.Write(salt) + buf[0] = byte(block >> 24) + buf[1] = byte(block >> 16) + buf[2] = byte(block >> 8) + buf[3] = byte(block) + prf.Write(buf[:4]) + dk = prf.Sum(dk) + T := dk[len(dk)-hashLen:] + copy(U, T) + + // U_n = PRF(password, U_(n-1)) + for n := 2; n <= iter; n++ { + prf.Reset() + prf.Write(U) + U = U[:0] + U = prf.Sum(U) + for x := range U { + T[x] ^= U[x] + } + } + } + return dk[:keyLen] +} diff --git a/vendor/golang.org/x/net/AUTHORS b/vendor/golang.org/x/net/AUTHORS new file mode 100644 index 0000000..15167cd --- /dev/null +++ b/vendor/golang.org/x/net/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/net/CONTRIBUTORS b/vendor/golang.org/x/net/CONTRIBUTORS new file mode 100644 index 0000000..1c4577e --- /dev/null +++ b/vendor/golang.org/x/net/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/net/LICENSE b/vendor/golang.org/x/net/LICENSE new file mode 100644 index 0000000..6a66aea --- /dev/null +++ b/vendor/golang.org/x/net/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/net/PATENTS b/vendor/golang.org/x/net/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/vendor/golang.org/x/net/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/net/context/context.go b/vendor/golang.org/x/net/context/context.go new file mode 100644 index 0000000..a3c021d --- /dev/null +++ b/vendor/golang.org/x/net/context/context.go @@ -0,0 +1,56 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package context defines the Context type, which carries deadlines, +// cancelation signals, and other request-scoped values across API boundaries +// and between processes. +// As of Go 1.7 this package is available in the standard library under the +// name context. https://golang.org/pkg/context. +// +// Incoming requests to a server should create a Context, and outgoing calls to +// servers should accept a Context. The chain of function calls between must +// propagate the Context, optionally replacing it with a modified copy created +// using WithDeadline, WithTimeout, WithCancel, or WithValue. +// +// Programs that use Contexts should follow these rules to keep interfaces +// consistent across packages and enable static analysis tools to check context +// propagation: +// +// Do not store Contexts inside a struct type; instead, pass a Context +// explicitly to each function that needs it. The Context should be the first +// parameter, typically named ctx: +// +// func DoSomething(ctx context.Context, arg Arg) error { +// // ... use ctx ... +// } +// +// Do not pass a nil Context, even if a function permits it. Pass context.TODO +// if you are unsure about which Context to use. +// +// Use context Values only for request-scoped data that transits processes and +// APIs, not for passing optional parameters to functions. +// +// The same Context may be passed to functions running in different goroutines; +// Contexts are safe for simultaneous use by multiple goroutines. +// +// See http://blog.golang.org/context for example code for a server that uses +// Contexts. +package context // import "golang.org/x/net/context" + +// Background returns a non-nil, empty Context. It is never canceled, has no +// values, and has no deadline. It is typically used by the main function, +// initialization, and tests, and as the top-level Context for incoming +// requests. +func Background() Context { + return background +} + +// TODO returns a non-nil, empty Context. Code should use context.TODO when +// it's unclear which Context to use or it is not yet available (because the +// surrounding function has not yet been extended to accept a Context +// parameter). TODO is recognized by static analysis tools that determine +// whether Contexts are propagated correctly in a program. +func TODO() Context { + return todo +} diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go new file mode 100644 index 0000000..344bd14 --- /dev/null +++ b/vendor/golang.org/x/net/context/go17.go @@ -0,0 +1,73 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.7 +// +build go1.7 + +package context + +import ( + "context" // standard library's context, as of Go 1.7 + "time" +) + +var ( + todo = context.TODO() + background = context.Background() +) + +// Canceled is the error returned by Context.Err when the context is canceled. +var Canceled = context.Canceled + +// DeadlineExceeded is the error returned by Context.Err when the context's +// deadline passes. +var DeadlineExceeded = context.DeadlineExceeded + +// WithCancel returns a copy of parent with a new Done channel. The returned +// context's Done channel is closed when the returned cancel function is called +// or when the parent context's Done channel is closed, whichever happens first. +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete. +func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { + ctx, f := context.WithCancel(parent) + return ctx, CancelFunc(f) +} + +// WithDeadline returns a copy of the parent context with the deadline adjusted +// to be no later than d. If the parent's deadline is already earlier than d, +// WithDeadline(parent, d) is semantically equivalent to parent. The returned +// context's Done channel is closed when the deadline expires, when the returned +// cancel function is called, or when the parent context's Done channel is +// closed, whichever happens first. +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete. +func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { + ctx, f := context.WithDeadline(parent, deadline) + return ctx, CancelFunc(f) +} + +// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete: +// +// func slowOperationWithTimeout(ctx context.Context) (Result, error) { +// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) +// defer cancel() // releases resources if slowOperation completes before timeout elapses +// return slowOperation(ctx) +// } +func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { + return WithDeadline(parent, time.Now().Add(timeout)) +} + +// WithValue returns a copy of parent in which the value associated with key is +// val. +// +// Use context Values only for request-scoped data that transits processes and +// APIs, not for passing optional parameters to functions. +func WithValue(parent Context, key interface{}, val interface{}) Context { + return context.WithValue(parent, key, val) +} diff --git a/vendor/golang.org/x/net/context/go19.go b/vendor/golang.org/x/net/context/go19.go new file mode 100644 index 0000000..64d31ec --- /dev/null +++ b/vendor/golang.org/x/net/context/go19.go @@ -0,0 +1,21 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.9 +// +build go1.9 + +package context + +import "context" // standard library's context, as of Go 1.7 + +// A Context carries a deadline, a cancelation signal, and other values across +// API boundaries. +// +// Context's methods may be called by multiple goroutines simultaneously. +type Context = context.Context + +// A CancelFunc tells an operation to abandon its work. +// A CancelFunc does not wait for the work to stop. +// After the first call, subsequent calls to a CancelFunc do nothing. +type CancelFunc = context.CancelFunc diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go new file mode 100644 index 0000000..5270db5 --- /dev/null +++ b/vendor/golang.org/x/net/context/pre_go17.go @@ -0,0 +1,301 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.7 +// +build !go1.7 + +package context + +import ( + "errors" + "fmt" + "sync" + "time" +) + +// An emptyCtx is never canceled, has no values, and has no deadline. It is not +// struct{}, since vars of this type must have distinct addresses. +type emptyCtx int + +func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { + return +} + +func (*emptyCtx) Done() <-chan struct{} { + return nil +} + +func (*emptyCtx) Err() error { + return nil +} + +func (*emptyCtx) Value(key interface{}) interface{} { + return nil +} + +func (e *emptyCtx) String() string { + switch e { + case background: + return "context.Background" + case todo: + return "context.TODO" + } + return "unknown empty Context" +} + +var ( + background = new(emptyCtx) + todo = new(emptyCtx) +) + +// Canceled is the error returned by Context.Err when the context is canceled. +var Canceled = errors.New("context canceled") + +// DeadlineExceeded is the error returned by Context.Err when the context's +// deadline passes. +var DeadlineExceeded = errors.New("context deadline exceeded") + +// WithCancel returns a copy of parent with a new Done channel. The returned +// context's Done channel is closed when the returned cancel function is called +// or when the parent context's Done channel is closed, whichever happens first. +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete. +func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { + c := newCancelCtx(parent) + propagateCancel(parent, c) + return c, func() { c.cancel(true, Canceled) } +} + +// newCancelCtx returns an initialized cancelCtx. +func newCancelCtx(parent Context) *cancelCtx { + return &cancelCtx{ + Context: parent, + done: make(chan struct{}), + } +} + +// propagateCancel arranges for child to be canceled when parent is. +func propagateCancel(parent Context, child canceler) { + if parent.Done() == nil { + return // parent is never canceled + } + if p, ok := parentCancelCtx(parent); ok { + p.mu.Lock() + if p.err != nil { + // parent has already been canceled + child.cancel(false, p.err) + } else { + if p.children == nil { + p.children = make(map[canceler]bool) + } + p.children[child] = true + } + p.mu.Unlock() + } else { + go func() { + select { + case <-parent.Done(): + child.cancel(false, parent.Err()) + case <-child.Done(): + } + }() + } +} + +// parentCancelCtx follows a chain of parent references until it finds a +// *cancelCtx. This function understands how each of the concrete types in this +// package represents its parent. +func parentCancelCtx(parent Context) (*cancelCtx, bool) { + for { + switch c := parent.(type) { + case *cancelCtx: + return c, true + case *timerCtx: + return c.cancelCtx, true + case *valueCtx: + parent = c.Context + default: + return nil, false + } + } +} + +// removeChild removes a context from its parent. +func removeChild(parent Context, child canceler) { + p, ok := parentCancelCtx(parent) + if !ok { + return + } + p.mu.Lock() + if p.children != nil { + delete(p.children, child) + } + p.mu.Unlock() +} + +// A canceler is a context type that can be canceled directly. The +// implementations are *cancelCtx and *timerCtx. +type canceler interface { + cancel(removeFromParent bool, err error) + Done() <-chan struct{} +} + +// A cancelCtx can be canceled. When canceled, it also cancels any children +// that implement canceler. +type cancelCtx struct { + Context + + done chan struct{} // closed by the first cancel call. + + mu sync.Mutex + children map[canceler]bool // set to nil by the first cancel call + err error // set to non-nil by the first cancel call +} + +func (c *cancelCtx) Done() <-chan struct{} { + return c.done +} + +func (c *cancelCtx) Err() error { + c.mu.Lock() + defer c.mu.Unlock() + return c.err +} + +func (c *cancelCtx) String() string { + return fmt.Sprintf("%v.WithCancel", c.Context) +} + +// cancel closes c.done, cancels each of c's children, and, if +// removeFromParent is true, removes c from its parent's children. +func (c *cancelCtx) cancel(removeFromParent bool, err error) { + if err == nil { + panic("context: internal error: missing cancel error") + } + c.mu.Lock() + if c.err != nil { + c.mu.Unlock() + return // already canceled + } + c.err = err + close(c.done) + for child := range c.children { + // NOTE: acquiring the child's lock while holding parent's lock. + child.cancel(false, err) + } + c.children = nil + c.mu.Unlock() + + if removeFromParent { + removeChild(c.Context, c) + } +} + +// WithDeadline returns a copy of the parent context with the deadline adjusted +// to be no later than d. If the parent's deadline is already earlier than d, +// WithDeadline(parent, d) is semantically equivalent to parent. The returned +// context's Done channel is closed when the deadline expires, when the returned +// cancel function is called, or when the parent context's Done channel is +// closed, whichever happens first. +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete. +func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { + if cur, ok := parent.Deadline(); ok && cur.Before(deadline) { + // The current deadline is already sooner than the new one. + return WithCancel(parent) + } + c := &timerCtx{ + cancelCtx: newCancelCtx(parent), + deadline: deadline, + } + propagateCancel(parent, c) + d := deadline.Sub(time.Now()) + if d <= 0 { + c.cancel(true, DeadlineExceeded) // deadline has already passed + return c, func() { c.cancel(true, Canceled) } + } + c.mu.Lock() + defer c.mu.Unlock() + if c.err == nil { + c.timer = time.AfterFunc(d, func() { + c.cancel(true, DeadlineExceeded) + }) + } + return c, func() { c.cancel(true, Canceled) } +} + +// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to +// implement Done and Err. It implements cancel by stopping its timer then +// delegating to cancelCtx.cancel. +type timerCtx struct { + *cancelCtx + timer *time.Timer // Under cancelCtx.mu. + + deadline time.Time +} + +func (c *timerCtx) Deadline() (deadline time.Time, ok bool) { + return c.deadline, true +} + +func (c *timerCtx) String() string { + return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now())) +} + +func (c *timerCtx) cancel(removeFromParent bool, err error) { + c.cancelCtx.cancel(false, err) + if removeFromParent { + // Remove this timerCtx from its parent cancelCtx's children. + removeChild(c.cancelCtx.Context, c) + } + c.mu.Lock() + if c.timer != nil { + c.timer.Stop() + c.timer = nil + } + c.mu.Unlock() +} + +// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete: +// +// func slowOperationWithTimeout(ctx context.Context) (Result, error) { +// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) +// defer cancel() // releases resources if slowOperation completes before timeout elapses +// return slowOperation(ctx) +// } +func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { + return WithDeadline(parent, time.Now().Add(timeout)) +} + +// WithValue returns a copy of parent in which the value associated with key is +// val. +// +// Use context Values only for request-scoped data that transits processes and +// APIs, not for passing optional parameters to functions. +func WithValue(parent Context, key interface{}, val interface{}) Context { + return &valueCtx{parent, key, val} +} + +// A valueCtx carries a key-value pair. It implements Value for that key and +// delegates all other calls to the embedded Context. +type valueCtx struct { + Context + key, val interface{} +} + +func (c *valueCtx) String() string { + return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val) +} + +func (c *valueCtx) Value(key interface{}) interface{} { + if c.key == key { + return c.val + } + return c.Context.Value(key) +} diff --git a/vendor/golang.org/x/net/context/pre_go19.go b/vendor/golang.org/x/net/context/pre_go19.go new file mode 100644 index 0000000..1f97153 --- /dev/null +++ b/vendor/golang.org/x/net/context/pre_go19.go @@ -0,0 +1,110 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.9 +// +build !go1.9 + +package context + +import "time" + +// A Context carries a deadline, a cancelation signal, and other values across +// API boundaries. +// +// Context's methods may be called by multiple goroutines simultaneously. +type Context interface { + // Deadline returns the time when work done on behalf of this context + // should be canceled. Deadline returns ok==false when no deadline is + // set. Successive calls to Deadline return the same results. + Deadline() (deadline time.Time, ok bool) + + // Done returns a channel that's closed when work done on behalf of this + // context should be canceled. Done may return nil if this context can + // never be canceled. Successive calls to Done return the same value. + // + // WithCancel arranges for Done to be closed when cancel is called; + // WithDeadline arranges for Done to be closed when the deadline + // expires; WithTimeout arranges for Done to be closed when the timeout + // elapses. + // + // Done is provided for use in select statements: + // + // // Stream generates values with DoSomething and sends them to out + // // until DoSomething returns an error or ctx.Done is closed. + // func Stream(ctx context.Context, out chan<- Value) error { + // for { + // v, err := DoSomething(ctx) + // if err != nil { + // return err + // } + // select { + // case <-ctx.Done(): + // return ctx.Err() + // case out <- v: + // } + // } + // } + // + // See http://blog.golang.org/pipelines for more examples of how to use + // a Done channel for cancelation. + Done() <-chan struct{} + + // Err returns a non-nil error value after Done is closed. Err returns + // Canceled if the context was canceled or DeadlineExceeded if the + // context's deadline passed. No other values for Err are defined. + // After Done is closed, successive calls to Err return the same value. + Err() error + + // Value returns the value associated with this context for key, or nil + // if no value is associated with key. Successive calls to Value with + // the same key returns the same result. + // + // Use context values only for request-scoped data that transits + // processes and API boundaries, not for passing optional parameters to + // functions. + // + // A key identifies a specific value in a Context. Functions that wish + // to store values in Context typically allocate a key in a global + // variable then use that key as the argument to context.WithValue and + // Context.Value. A key can be any type that supports equality; + // packages should define keys as an unexported type to avoid + // collisions. + // + // Packages that define a Context key should provide type-safe accessors + // for the values stores using that key: + // + // // Package user defines a User type that's stored in Contexts. + // package user + // + // import "golang.org/x/net/context" + // + // // User is the type of value stored in the Contexts. + // type User struct {...} + // + // // key is an unexported type for keys defined in this package. + // // This prevents collisions with keys defined in other packages. + // type key int + // + // // userKey is the key for user.User values in Contexts. It is + // // unexported; clients use user.NewContext and user.FromContext + // // instead of using this key directly. + // var userKey key = 0 + // + // // NewContext returns a new Context that carries value u. + // func NewContext(ctx context.Context, u *User) context.Context { + // return context.WithValue(ctx, userKey, u) + // } + // + // // FromContext returns the User value stored in ctx, if any. + // func FromContext(ctx context.Context) (*User, bool) { + // u, ok := ctx.Value(userKey).(*User) + // return u, ok + // } + Value(key interface{}) interface{} +} + +// A CancelFunc tells an operation to abandon its work. +// A CancelFunc does not wait for the work to stop. +// After the first call, subsequent calls to a CancelFunc do nothing. +type CancelFunc func() diff --git a/vendor/golang.org/x/net/http/httpguts/guts.go b/vendor/golang.org/x/net/http/httpguts/guts.go new file mode 100644 index 0000000..e6cd0ce --- /dev/null +++ b/vendor/golang.org/x/net/http/httpguts/guts.go @@ -0,0 +1,50 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package httpguts provides functions implementing various details +// of the HTTP specification. +// +// This package is shared by the standard library (which vendors it) +// and x/net/http2. It comes with no API stability promise. +package httpguts + +import ( + "net/textproto" + "strings" +) + +// ValidTrailerHeader reports whether name is a valid header field name to appear +// in trailers. +// See RFC 7230, Section 4.1.2 +func ValidTrailerHeader(name string) bool { + name = textproto.CanonicalMIMEHeaderKey(name) + if strings.HasPrefix(name, "If-") || badTrailer[name] { + return false + } + return true +} + +var badTrailer = map[string]bool{ + "Authorization": true, + "Cache-Control": true, + "Connection": true, + "Content-Encoding": true, + "Content-Length": true, + "Content-Range": true, + "Content-Type": true, + "Expect": true, + "Host": true, + "Keep-Alive": true, + "Max-Forwards": true, + "Pragma": true, + "Proxy-Authenticate": true, + "Proxy-Authorization": true, + "Proxy-Connection": true, + "Range": true, + "Realm": true, + "Te": true, + "Trailer": true, + "Transfer-Encoding": true, + "Www-Authenticate": true, +} diff --git a/vendor/golang.org/x/net/http/httpguts/httplex.go b/vendor/golang.org/x/net/http/httpguts/httplex.go new file mode 100644 index 0000000..c79aa73 --- /dev/null +++ b/vendor/golang.org/x/net/http/httpguts/httplex.go @@ -0,0 +1,348 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package httpguts + +import ( + "net" + "strings" + "unicode/utf8" + + "golang.org/x/net/idna" +) + +var isTokenTable = [127]bool{ + '!': true, + '#': true, + '$': true, + '%': true, + '&': true, + '\'': true, + '*': true, + '+': true, + '-': true, + '.': true, + '0': true, + '1': true, + '2': true, + '3': true, + '4': true, + '5': true, + '6': true, + '7': true, + '8': true, + '9': true, + 'A': true, + 'B': true, + 'C': true, + 'D': true, + 'E': true, + 'F': true, + 'G': true, + 'H': true, + 'I': true, + 'J': true, + 'K': true, + 'L': true, + 'M': true, + 'N': true, + 'O': true, + 'P': true, + 'Q': true, + 'R': true, + 'S': true, + 'T': true, + 'U': true, + 'W': true, + 'V': true, + 'X': true, + 'Y': true, + 'Z': true, + '^': true, + '_': true, + '`': true, + 'a': true, + 'b': true, + 'c': true, + 'd': true, + 'e': true, + 'f': true, + 'g': true, + 'h': true, + 'i': true, + 'j': true, + 'k': true, + 'l': true, + 'm': true, + 'n': true, + 'o': true, + 'p': true, + 'q': true, + 'r': true, + 's': true, + 't': true, + 'u': true, + 'v': true, + 'w': true, + 'x': true, + 'y': true, + 'z': true, + '|': true, + '~': true, +} + +func IsTokenRune(r rune) bool { + i := int(r) + return i < len(isTokenTable) && isTokenTable[i] +} + +func isNotToken(r rune) bool { + return !IsTokenRune(r) +} + +// HeaderValuesContainsToken reports whether any string in values +// contains the provided token, ASCII case-insensitively. +func HeaderValuesContainsToken(values []string, token string) bool { + for _, v := range values { + if headerValueContainsToken(v, token) { + return true + } + } + return false +} + +// isOWS reports whether b is an optional whitespace byte, as defined +// by RFC 7230 section 3.2.3. +func isOWS(b byte) bool { return b == ' ' || b == '\t' } + +// trimOWS returns x with all optional whitespace removes from the +// beginning and end. +func trimOWS(x string) string { + // TODO: consider using strings.Trim(x, " \t") instead, + // if and when it's fast enough. See issue 10292. + // But this ASCII-only code will probably always beat UTF-8 + // aware code. + for len(x) > 0 && isOWS(x[0]) { + x = x[1:] + } + for len(x) > 0 && isOWS(x[len(x)-1]) { + x = x[:len(x)-1] + } + return x +} + +// headerValueContainsToken reports whether v (assumed to be a +// 0#element, in the ABNF extension described in RFC 7230 section 7) +// contains token amongst its comma-separated tokens, ASCII +// case-insensitively. +func headerValueContainsToken(v string, token string) bool { + for comma := strings.IndexByte(v, ','); comma != -1; comma = strings.IndexByte(v, ',') { + if tokenEqual(trimOWS(v[:comma]), token) { + return true + } + v = v[comma+1:] + } + return tokenEqual(trimOWS(v), token) +} + +// lowerASCII returns the ASCII lowercase version of b. +func lowerASCII(b byte) byte { + if 'A' <= b && b <= 'Z' { + return b + ('a' - 'A') + } + return b +} + +// tokenEqual reports whether t1 and t2 are equal, ASCII case-insensitively. +func tokenEqual(t1, t2 string) bool { + if len(t1) != len(t2) { + return false + } + for i, b := range t1 { + if b >= utf8.RuneSelf { + // No UTF-8 or non-ASCII allowed in tokens. + return false + } + if lowerASCII(byte(b)) != lowerASCII(t2[i]) { + return false + } + } + return true +} + +// isLWS reports whether b is linear white space, according +// to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 +// LWS = [CRLF] 1*( SP | HT ) +func isLWS(b byte) bool { return b == ' ' || b == '\t' } + +// isCTL reports whether b is a control byte, according +// to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 +// CTL = +func isCTL(b byte) bool { + const del = 0x7f // a CTL + return b < ' ' || b == del +} + +// ValidHeaderFieldName reports whether v is a valid HTTP/1.x header name. +// HTTP/2 imposes the additional restriction that uppercase ASCII +// letters are not allowed. +// +// RFC 7230 says: +// header-field = field-name ":" OWS field-value OWS +// field-name = token +// token = 1*tchar +// tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / +// "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA +func ValidHeaderFieldName(v string) bool { + if len(v) == 0 { + return false + } + for _, r := range v { + if !IsTokenRune(r) { + return false + } + } + return true +} + +// ValidHostHeader reports whether h is a valid host header. +func ValidHostHeader(h string) bool { + // The latest spec is actually this: + // + // http://tools.ietf.org/html/rfc7230#section-5.4 + // Host = uri-host [ ":" port ] + // + // Where uri-host is: + // http://tools.ietf.org/html/rfc3986#section-3.2.2 + // + // But we're going to be much more lenient for now and just + // search for any byte that's not a valid byte in any of those + // expressions. + for i := 0; i < len(h); i++ { + if !validHostByte[h[i]] { + return false + } + } + return true +} + +// See the validHostHeader comment. +var validHostByte = [256]bool{ + '0': true, '1': true, '2': true, '3': true, '4': true, '5': true, '6': true, '7': true, + '8': true, '9': true, + + 'a': true, 'b': true, 'c': true, 'd': true, 'e': true, 'f': true, 'g': true, 'h': true, + 'i': true, 'j': true, 'k': true, 'l': true, 'm': true, 'n': true, 'o': true, 'p': true, + 'q': true, 'r': true, 's': true, 't': true, 'u': true, 'v': true, 'w': true, 'x': true, + 'y': true, 'z': true, + + 'A': true, 'B': true, 'C': true, 'D': true, 'E': true, 'F': true, 'G': true, 'H': true, + 'I': true, 'J': true, 'K': true, 'L': true, 'M': true, 'N': true, 'O': true, 'P': true, + 'Q': true, 'R': true, 'S': true, 'T': true, 'U': true, 'V': true, 'W': true, 'X': true, + 'Y': true, 'Z': true, + + '!': true, // sub-delims + '$': true, // sub-delims + '%': true, // pct-encoded (and used in IPv6 zones) + '&': true, // sub-delims + '(': true, // sub-delims + ')': true, // sub-delims + '*': true, // sub-delims + '+': true, // sub-delims + ',': true, // sub-delims + '-': true, // unreserved + '.': true, // unreserved + ':': true, // IPv6address + Host expression's optional port + ';': true, // sub-delims + '=': true, // sub-delims + '[': true, + '\'': true, // sub-delims + ']': true, + '_': true, // unreserved + '~': true, // unreserved +} + +// ValidHeaderFieldValue reports whether v is a valid "field-value" according to +// http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 : +// +// message-header = field-name ":" [ field-value ] +// field-value = *( field-content | LWS ) +// field-content = +// +// http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 : +// +// TEXT = +// LWS = [CRLF] 1*( SP | HT ) +// CTL = +// +// RFC 7230 says: +// field-value = *( field-content / obs-fold ) +// obj-fold = N/A to http2, and deprecated +// field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] +// field-vchar = VCHAR / obs-text +// obs-text = %x80-FF +// VCHAR = "any visible [USASCII] character" +// +// http2 further says: "Similarly, HTTP/2 allows header field values +// that are not valid. While most of the values that can be encoded +// will not alter header field parsing, carriage return (CR, ASCII +// 0xd), line feed (LF, ASCII 0xa), and the zero character (NUL, ASCII +// 0x0) might be exploited by an attacker if they are translated +// verbatim. Any request or response that contains a character not +// permitted in a header field value MUST be treated as malformed +// (Section 8.1.2.6). Valid characters are defined by the +// field-content ABNF rule in Section 3.2 of [RFC7230]." +// +// This function does not (yet?) properly handle the rejection of +// strings that begin or end with SP or HTAB. +func ValidHeaderFieldValue(v string) bool { + for i := 0; i < len(v); i++ { + b := v[i] + if isCTL(b) && !isLWS(b) { + return false + } + } + return true +} + +func isASCII(s string) bool { + for i := 0; i < len(s); i++ { + if s[i] >= utf8.RuneSelf { + return false + } + } + return true +} + +// PunycodeHostPort returns the IDNA Punycode version +// of the provided "host" or "host:port" string. +func PunycodeHostPort(v string) (string, error) { + if isASCII(v) { + return v, nil + } + + host, port, err := net.SplitHostPort(v) + if err != nil { + // The input 'v' argument was just a "host" argument, + // without a port. This error should not be returned + // to the caller. + host = v + port = "" + } + host, err = idna.ToASCII(host) + if err != nil { + // Non-UTF-8? Not representable in Punycode, in any + // case. + return "", err + } + if port == "" { + return host, nil + } + return net.JoinHostPort(host, port), nil +} diff --git a/vendor/golang.org/x/net/http2/.gitignore b/vendor/golang.org/x/net/http2/.gitignore new file mode 100644 index 0000000..190f122 --- /dev/null +++ b/vendor/golang.org/x/net/http2/.gitignore @@ -0,0 +1,2 @@ +*~ +h2i/h2i diff --git a/vendor/golang.org/x/net/http2/Dockerfile b/vendor/golang.org/x/net/http2/Dockerfile new file mode 100644 index 0000000..8512245 --- /dev/null +++ b/vendor/golang.org/x/net/http2/Dockerfile @@ -0,0 +1,51 @@ +# +# This Dockerfile builds a recent curl with HTTP/2 client support, using +# a recent nghttp2 build. +# +# See the Makefile for how to tag it. If Docker and that image is found, the +# Go tests use this curl binary for integration tests. +# + +FROM ubuntu:trusty + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y git-core build-essential wget + +RUN apt-get install -y --no-install-recommends \ + autotools-dev libtool pkg-config zlib1g-dev \ + libcunit1-dev libssl-dev libxml2-dev libevent-dev \ + automake autoconf + +# The list of packages nghttp2 recommends for h2load: +RUN apt-get install -y --no-install-recommends make binutils \ + autoconf automake autotools-dev \ + libtool pkg-config zlib1g-dev libcunit1-dev libssl-dev libxml2-dev \ + libev-dev libevent-dev libjansson-dev libjemalloc-dev \ + cython python3.4-dev python-setuptools + +# Note: setting NGHTTP2_VER before the git clone, so an old git clone isn't cached: +ENV NGHTTP2_VER 895da9a +RUN cd /root && git clone https://github.com/tatsuhiro-t/nghttp2.git + +WORKDIR /root/nghttp2 +RUN git reset --hard $NGHTTP2_VER +RUN autoreconf -i +RUN automake +RUN autoconf +RUN ./configure +RUN make +RUN make install + +WORKDIR /root +RUN wget https://curl.se/download/curl-7.45.0.tar.gz +RUN tar -zxvf curl-7.45.0.tar.gz +WORKDIR /root/curl-7.45.0 +RUN ./configure --with-ssl --with-nghttp2=/usr/local +RUN make +RUN make install +RUN ldconfig + +CMD ["-h"] +ENTRYPOINT ["/usr/local/bin/curl"] + diff --git a/vendor/golang.org/x/net/http2/Makefile b/vendor/golang.org/x/net/http2/Makefile new file mode 100644 index 0000000..55fd826 --- /dev/null +++ b/vendor/golang.org/x/net/http2/Makefile @@ -0,0 +1,3 @@ +curlimage: + docker build -t gohttp2/curl . + diff --git a/vendor/golang.org/x/net/http2/ascii.go b/vendor/golang.org/x/net/http2/ascii.go new file mode 100644 index 0000000..17caa20 --- /dev/null +++ b/vendor/golang.org/x/net/http2/ascii.go @@ -0,0 +1,53 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import "strings" + +// The HTTP protocols are defined in terms of ASCII, not Unicode. This file +// contains helper functions which may use Unicode-aware functions which would +// otherwise be unsafe and could introduce vulnerabilities if used improperly. + +// asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t +// are equal, ASCII-case-insensitively. +func asciiEqualFold(s, t string) bool { + if len(s) != len(t) { + return false + } + for i := 0; i < len(s); i++ { + if lower(s[i]) != lower(t[i]) { + return false + } + } + return true +} + +// lower returns the ASCII lowercase version of b. +func lower(b byte) byte { + if 'A' <= b && b <= 'Z' { + return b + ('a' - 'A') + } + return b +} + +// isASCIIPrint returns whether s is ASCII and printable according to +// https://tools.ietf.org/html/rfc20#section-4.2. +func isASCIIPrint(s string) bool { + for i := 0; i < len(s); i++ { + if s[i] < ' ' || s[i] > '~' { + return false + } + } + return true +} + +// asciiToLower returns the lowercase version of s if s is ASCII and printable, +// and whether or not it was. +func asciiToLower(s string) (lower string, ok bool) { + if !isASCIIPrint(s) { + return "", false + } + return strings.ToLower(s), true +} diff --git a/vendor/golang.org/x/net/http2/ciphers.go b/vendor/golang.org/x/net/http2/ciphers.go new file mode 100644 index 0000000..c9a0cf3 --- /dev/null +++ b/vendor/golang.org/x/net/http2/ciphers.go @@ -0,0 +1,641 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +// A list of the possible cipher suite ids. Taken from +// https://www.iana.org/assignments/tls-parameters/tls-parameters.txt + +const ( + cipher_TLS_NULL_WITH_NULL_NULL uint16 = 0x0000 + cipher_TLS_RSA_WITH_NULL_MD5 uint16 = 0x0001 + cipher_TLS_RSA_WITH_NULL_SHA uint16 = 0x0002 + cipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5 uint16 = 0x0003 + cipher_TLS_RSA_WITH_RC4_128_MD5 uint16 = 0x0004 + cipher_TLS_RSA_WITH_RC4_128_SHA uint16 = 0x0005 + cipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 uint16 = 0x0006 + cipher_TLS_RSA_WITH_IDEA_CBC_SHA uint16 = 0x0007 + cipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0008 + cipher_TLS_RSA_WITH_DES_CBC_SHA uint16 = 0x0009 + cipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x000A + cipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x000B + cipher_TLS_DH_DSS_WITH_DES_CBC_SHA uint16 = 0x000C + cipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA uint16 = 0x000D + cipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x000E + cipher_TLS_DH_RSA_WITH_DES_CBC_SHA uint16 = 0x000F + cipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x0010 + cipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0011 + cipher_TLS_DHE_DSS_WITH_DES_CBC_SHA uint16 = 0x0012 + cipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA uint16 = 0x0013 + cipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0014 + cipher_TLS_DHE_RSA_WITH_DES_CBC_SHA uint16 = 0x0015 + cipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x0016 + cipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 uint16 = 0x0017 + cipher_TLS_DH_anon_WITH_RC4_128_MD5 uint16 = 0x0018 + cipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0019 + cipher_TLS_DH_anon_WITH_DES_CBC_SHA uint16 = 0x001A + cipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA uint16 = 0x001B + // Reserved uint16 = 0x001C-1D + cipher_TLS_KRB5_WITH_DES_CBC_SHA uint16 = 0x001E + cipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA uint16 = 0x001F + cipher_TLS_KRB5_WITH_RC4_128_SHA uint16 = 0x0020 + cipher_TLS_KRB5_WITH_IDEA_CBC_SHA uint16 = 0x0021 + cipher_TLS_KRB5_WITH_DES_CBC_MD5 uint16 = 0x0022 + cipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5 uint16 = 0x0023 + cipher_TLS_KRB5_WITH_RC4_128_MD5 uint16 = 0x0024 + cipher_TLS_KRB5_WITH_IDEA_CBC_MD5 uint16 = 0x0025 + cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA uint16 = 0x0026 + cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA uint16 = 0x0027 + cipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA uint16 = 0x0028 + cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 uint16 = 0x0029 + cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 uint16 = 0x002A + cipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5 uint16 = 0x002B + cipher_TLS_PSK_WITH_NULL_SHA uint16 = 0x002C + cipher_TLS_DHE_PSK_WITH_NULL_SHA uint16 = 0x002D + cipher_TLS_RSA_PSK_WITH_NULL_SHA uint16 = 0x002E + cipher_TLS_RSA_WITH_AES_128_CBC_SHA uint16 = 0x002F + cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA uint16 = 0x0030 + cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA uint16 = 0x0031 + cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA uint16 = 0x0032 + cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA uint16 = 0x0033 + cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA uint16 = 0x0034 + cipher_TLS_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0035 + cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA uint16 = 0x0036 + cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0037 + cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA uint16 = 0x0038 + cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0039 + cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA uint16 = 0x003A + cipher_TLS_RSA_WITH_NULL_SHA256 uint16 = 0x003B + cipher_TLS_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x003C + cipher_TLS_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x003D + cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256 uint16 = 0x003E + cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x003F + cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 uint16 = 0x0040 + cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0041 + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0042 + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0043 + cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0044 + cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0045 + cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0046 + // Reserved uint16 = 0x0047-4F + // Reserved uint16 = 0x0050-58 + // Reserved uint16 = 0x0059-5C + // Unassigned uint16 = 0x005D-5F + // Reserved uint16 = 0x0060-66 + cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x0067 + cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256 uint16 = 0x0068 + cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x0069 + cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 uint16 = 0x006A + cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x006B + cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256 uint16 = 0x006C + cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256 uint16 = 0x006D + // Unassigned uint16 = 0x006E-83 + cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0084 + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0085 + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0086 + cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0087 + cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0088 + cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0089 + cipher_TLS_PSK_WITH_RC4_128_SHA uint16 = 0x008A + cipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0x008B + cipher_TLS_PSK_WITH_AES_128_CBC_SHA uint16 = 0x008C + cipher_TLS_PSK_WITH_AES_256_CBC_SHA uint16 = 0x008D + cipher_TLS_DHE_PSK_WITH_RC4_128_SHA uint16 = 0x008E + cipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0x008F + cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA uint16 = 0x0090 + cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA uint16 = 0x0091 + cipher_TLS_RSA_PSK_WITH_RC4_128_SHA uint16 = 0x0092 + cipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0x0093 + cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA uint16 = 0x0094 + cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA uint16 = 0x0095 + cipher_TLS_RSA_WITH_SEED_CBC_SHA uint16 = 0x0096 + cipher_TLS_DH_DSS_WITH_SEED_CBC_SHA uint16 = 0x0097 + cipher_TLS_DH_RSA_WITH_SEED_CBC_SHA uint16 = 0x0098 + cipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA uint16 = 0x0099 + cipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA uint16 = 0x009A + cipher_TLS_DH_anon_WITH_SEED_CBC_SHA uint16 = 0x009B + cipher_TLS_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x009C + cipher_TLS_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x009D + cipher_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x009E + cipher_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x009F + cipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x00A0 + cipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x00A1 + cipher_TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 uint16 = 0x00A2 + cipher_TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 uint16 = 0x00A3 + cipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256 uint16 = 0x00A4 + cipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384 uint16 = 0x00A5 + cipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256 uint16 = 0x00A6 + cipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384 uint16 = 0x00A7 + cipher_TLS_PSK_WITH_AES_128_GCM_SHA256 uint16 = 0x00A8 + cipher_TLS_PSK_WITH_AES_256_GCM_SHA384 uint16 = 0x00A9 + cipher_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 uint16 = 0x00AA + cipher_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 uint16 = 0x00AB + cipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 uint16 = 0x00AC + cipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 uint16 = 0x00AD + cipher_TLS_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0x00AE + cipher_TLS_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0x00AF + cipher_TLS_PSK_WITH_NULL_SHA256 uint16 = 0x00B0 + cipher_TLS_PSK_WITH_NULL_SHA384 uint16 = 0x00B1 + cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0x00B2 + cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0x00B3 + cipher_TLS_DHE_PSK_WITH_NULL_SHA256 uint16 = 0x00B4 + cipher_TLS_DHE_PSK_WITH_NULL_SHA384 uint16 = 0x00B5 + cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0x00B6 + cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0x00B7 + cipher_TLS_RSA_PSK_WITH_NULL_SHA256 uint16 = 0x00B8 + cipher_TLS_RSA_PSK_WITH_NULL_SHA384 uint16 = 0x00B9 + cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BA + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BB + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BC + cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BD + cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BE + cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BF + cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C0 + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C1 + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C2 + cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C3 + cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C4 + cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C5 + // Unassigned uint16 = 0x00C6-FE + cipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV uint16 = 0x00FF + // Unassigned uint16 = 0x01-55,* + cipher_TLS_FALLBACK_SCSV uint16 = 0x5600 + // Unassigned uint16 = 0x5601 - 0xC000 + cipher_TLS_ECDH_ECDSA_WITH_NULL_SHA uint16 = 0xC001 + cipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA uint16 = 0xC002 + cipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC003 + cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA uint16 = 0xC004 + cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA uint16 = 0xC005 + cipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA uint16 = 0xC006 + cipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA uint16 = 0xC007 + cipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC008 + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA uint16 = 0xC009 + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA uint16 = 0xC00A + cipher_TLS_ECDH_RSA_WITH_NULL_SHA uint16 = 0xC00B + cipher_TLS_ECDH_RSA_WITH_RC4_128_SHA uint16 = 0xC00C + cipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC00D + cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA uint16 = 0xC00E + cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA uint16 = 0xC00F + cipher_TLS_ECDHE_RSA_WITH_NULL_SHA uint16 = 0xC010 + cipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA uint16 = 0xC011 + cipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC012 + cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA uint16 = 0xC013 + cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA uint16 = 0xC014 + cipher_TLS_ECDH_anon_WITH_NULL_SHA uint16 = 0xC015 + cipher_TLS_ECDH_anon_WITH_RC4_128_SHA uint16 = 0xC016 + cipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA uint16 = 0xC017 + cipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA uint16 = 0xC018 + cipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA uint16 = 0xC019 + cipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC01A + cipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC01B + cipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA uint16 = 0xC01C + cipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA uint16 = 0xC01D + cipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA uint16 = 0xC01E + cipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA uint16 = 0xC01F + cipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA uint16 = 0xC020 + cipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA uint16 = 0xC021 + cipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA uint16 = 0xC022 + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 uint16 = 0xC023 + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC024 + cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 uint16 = 0xC025 + cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC026 + cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0xC027 + cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC028 + cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0xC029 + cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC02A + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 uint16 = 0xC02B + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 uint16 = 0xC02C + cipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 uint16 = 0xC02D + cipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 uint16 = 0xC02E + cipher_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0xC02F + cipher_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0xC030 + cipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0xC031 + cipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0xC032 + cipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA uint16 = 0xC033 + cipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0xC034 + cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA uint16 = 0xC035 + cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA uint16 = 0xC036 + cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0xC037 + cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0xC038 + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA uint16 = 0xC039 + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA256 uint16 = 0xC03A + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA384 uint16 = 0xC03B + cipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC03C + cipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC03D + cipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC03E + cipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC03F + cipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC040 + cipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC041 + cipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC042 + cipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC043 + cipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC044 + cipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC045 + cipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC046 + cipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC047 + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC048 + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC049 + cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC04A + cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC04B + cipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC04C + cipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC04D + cipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC04E + cipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC04F + cipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC050 + cipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC051 + cipher_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC052 + cipher_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC053 + cipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC054 + cipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC055 + cipher_TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC056 + cipher_TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC057 + cipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC058 + cipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC059 + cipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC05A + cipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC05B + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC05C + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC05D + cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC05E + cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC05F + cipher_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC060 + cipher_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC061 + cipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC062 + cipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC063 + cipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC064 + cipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC065 + cipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC066 + cipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC067 + cipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC068 + cipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC069 + cipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC06A + cipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC06B + cipher_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC06C + cipher_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC06D + cipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC06E + cipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC06F + cipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC070 + cipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC071 + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC072 + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC073 + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC074 + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC075 + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC076 + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC077 + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC078 + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC079 + cipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC07A + cipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC07B + cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC07C + cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC07D + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC07E + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC07F + cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC080 + cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC081 + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC082 + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC083 + cipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC084 + cipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC085 + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC086 + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC087 + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC088 + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC089 + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC08A + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC08B + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC08C + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC08D + cipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC08E + cipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC08F + cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC090 + cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC091 + cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC092 + cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC093 + cipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC094 + cipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC095 + cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC096 + cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC097 + cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC098 + cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC099 + cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC09A + cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC09B + cipher_TLS_RSA_WITH_AES_128_CCM uint16 = 0xC09C + cipher_TLS_RSA_WITH_AES_256_CCM uint16 = 0xC09D + cipher_TLS_DHE_RSA_WITH_AES_128_CCM uint16 = 0xC09E + cipher_TLS_DHE_RSA_WITH_AES_256_CCM uint16 = 0xC09F + cipher_TLS_RSA_WITH_AES_128_CCM_8 uint16 = 0xC0A0 + cipher_TLS_RSA_WITH_AES_256_CCM_8 uint16 = 0xC0A1 + cipher_TLS_DHE_RSA_WITH_AES_128_CCM_8 uint16 = 0xC0A2 + cipher_TLS_DHE_RSA_WITH_AES_256_CCM_8 uint16 = 0xC0A3 + cipher_TLS_PSK_WITH_AES_128_CCM uint16 = 0xC0A4 + cipher_TLS_PSK_WITH_AES_256_CCM uint16 = 0xC0A5 + cipher_TLS_DHE_PSK_WITH_AES_128_CCM uint16 = 0xC0A6 + cipher_TLS_DHE_PSK_WITH_AES_256_CCM uint16 = 0xC0A7 + cipher_TLS_PSK_WITH_AES_128_CCM_8 uint16 = 0xC0A8 + cipher_TLS_PSK_WITH_AES_256_CCM_8 uint16 = 0xC0A9 + cipher_TLS_PSK_DHE_WITH_AES_128_CCM_8 uint16 = 0xC0AA + cipher_TLS_PSK_DHE_WITH_AES_256_CCM_8 uint16 = 0xC0AB + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM uint16 = 0xC0AC + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM uint16 = 0xC0AD + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 uint16 = 0xC0AE + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 uint16 = 0xC0AF + // Unassigned uint16 = 0xC0B0-FF + // Unassigned uint16 = 0xC1-CB,* + // Unassigned uint16 = 0xCC00-A7 + cipher_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCA8 + cipher_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCA9 + cipher_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAA + cipher_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAB + cipher_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAC + cipher_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAD + cipher_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAE +) + +// isBadCipher reports whether the cipher is blacklisted by the HTTP/2 spec. +// References: +// https://tools.ietf.org/html/rfc7540#appendix-A +// Reject cipher suites from Appendix A. +// "This list includes those cipher suites that do not +// offer an ephemeral key exchange and those that are +// based on the TLS null, stream or block cipher type" +func isBadCipher(cipher uint16) bool { + switch cipher { + case cipher_TLS_NULL_WITH_NULL_NULL, + cipher_TLS_RSA_WITH_NULL_MD5, + cipher_TLS_RSA_WITH_NULL_SHA, + cipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5, + cipher_TLS_RSA_WITH_RC4_128_MD5, + cipher_TLS_RSA_WITH_RC4_128_SHA, + cipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5, + cipher_TLS_RSA_WITH_IDEA_CBC_SHA, + cipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_RSA_WITH_DES_CBC_SHA, + cipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_DH_DSS_WITH_DES_CBC_SHA, + cipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_DH_RSA_WITH_DES_CBC_SHA, + cipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_DES_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_DES_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5, + cipher_TLS_DH_anon_WITH_RC4_128_MD5, + cipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_DH_anon_WITH_DES_CBC_SHA, + cipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_KRB5_WITH_DES_CBC_SHA, + cipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_KRB5_WITH_RC4_128_SHA, + cipher_TLS_KRB5_WITH_IDEA_CBC_SHA, + cipher_TLS_KRB5_WITH_DES_CBC_MD5, + cipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5, + cipher_TLS_KRB5_WITH_RC4_128_MD5, + cipher_TLS_KRB5_WITH_IDEA_CBC_MD5, + cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, + cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA, + cipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA, + cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5, + cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5, + cipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5, + cipher_TLS_PSK_WITH_NULL_SHA, + cipher_TLS_DHE_PSK_WITH_NULL_SHA, + cipher_TLS_RSA_PSK_WITH_NULL_SHA, + cipher_TLS_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA, + cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA, + cipher_TLS_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA, + cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA, + cipher_TLS_RSA_WITH_NULL_SHA256, + cipher_TLS_RSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_RSA_WITH_AES_256_CBC_SHA256, + cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256, + cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, + cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256, + cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256, + cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, + cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, + cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256, + cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256, + cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_PSK_WITH_RC4_128_SHA, + cipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_PSK_WITH_AES_128_CBC_SHA, + cipher_TLS_PSK_WITH_AES_256_CBC_SHA, + cipher_TLS_DHE_PSK_WITH_RC4_128_SHA, + cipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA, + cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA, + cipher_TLS_RSA_PSK_WITH_RC4_128_SHA, + cipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA, + cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA, + cipher_TLS_RSA_WITH_SEED_CBC_SHA, + cipher_TLS_DH_DSS_WITH_SEED_CBC_SHA, + cipher_TLS_DH_RSA_WITH_SEED_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA, + cipher_TLS_DH_anon_WITH_SEED_CBC_SHA, + cipher_TLS_RSA_WITH_AES_128_GCM_SHA256, + cipher_TLS_RSA_WITH_AES_256_GCM_SHA384, + cipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256, + cipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384, + cipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256, + cipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384, + cipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256, + cipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384, + cipher_TLS_PSK_WITH_AES_128_GCM_SHA256, + cipher_TLS_PSK_WITH_AES_256_GCM_SHA384, + cipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, + cipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, + cipher_TLS_PSK_WITH_AES_128_CBC_SHA256, + cipher_TLS_PSK_WITH_AES_256_CBC_SHA384, + cipher_TLS_PSK_WITH_NULL_SHA256, + cipher_TLS_PSK_WITH_NULL_SHA384, + cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, + cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, + cipher_TLS_DHE_PSK_WITH_NULL_SHA256, + cipher_TLS_DHE_PSK_WITH_NULL_SHA384, + cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, + cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, + cipher_TLS_RSA_PSK_WITH_NULL_SHA256, + cipher_TLS_RSA_PSK_WITH_NULL_SHA384, + cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV, + cipher_TLS_ECDH_ECDSA_WITH_NULL_SHA, + cipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA, + cipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDH_RSA_WITH_NULL_SHA, + cipher_TLS_ECDH_RSA_WITH_RC4_128_SHA, + cipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDHE_RSA_WITH_NULL_SHA, + cipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA, + cipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDH_anon_WITH_NULL_SHA, + cipher_TLS_ECDH_anon_WITH_RC4_128_SHA, + cipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA, + cipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA, + cipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA, + cipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA, + cipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, + cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, + cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, + cipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, + cipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, + cipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA, + cipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, + cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA, + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA256, + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA384, + cipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_RSA_WITH_AES_128_CCM, + cipher_TLS_RSA_WITH_AES_256_CCM, + cipher_TLS_RSA_WITH_AES_128_CCM_8, + cipher_TLS_RSA_WITH_AES_256_CCM_8, + cipher_TLS_PSK_WITH_AES_128_CCM, + cipher_TLS_PSK_WITH_AES_256_CCM, + cipher_TLS_PSK_WITH_AES_128_CCM_8, + cipher_TLS_PSK_WITH_AES_256_CCM_8: + return true + default: + return false + } +} diff --git a/vendor/golang.org/x/net/http2/client_conn_pool.go b/vendor/golang.org/x/net/http2/client_conn_pool.go new file mode 100644 index 0000000..652bc11 --- /dev/null +++ b/vendor/golang.org/x/net/http2/client_conn_pool.go @@ -0,0 +1,313 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Transport code's client connection pooling. + +package http2 + +import ( + "context" + "crypto/tls" + "errors" + "net/http" + "sync" +) + +// ClientConnPool manages a pool of HTTP/2 client connections. +type ClientConnPool interface { + GetClientConn(req *http.Request, addr string) (*ClientConn, error) + MarkDead(*ClientConn) +} + +// clientConnPoolIdleCloser is the interface implemented by ClientConnPool +// implementations which can close their idle connections. +type clientConnPoolIdleCloser interface { + ClientConnPool + closeIdleConnections() +} + +var ( + _ clientConnPoolIdleCloser = (*clientConnPool)(nil) + _ clientConnPoolIdleCloser = noDialClientConnPool{} +) + +// TODO: use singleflight for dialing and addConnCalls? +type clientConnPool struct { + t *Transport + + mu sync.Mutex // TODO: maybe switch to RWMutex + // TODO: add support for sharing conns based on cert names + // (e.g. share conn for googleapis.com and appspot.com) + conns map[string][]*ClientConn // key is host:port + dialing map[string]*dialCall // currently in-flight dials + keys map[*ClientConn][]string + addConnCalls map[string]*addConnCall // in-flight addConnIfNeede calls +} + +func (p *clientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) { + return p.getClientConn(req, addr, dialOnMiss) +} + +const ( + dialOnMiss = true + noDialOnMiss = false +) + +// shouldTraceGetConn reports whether getClientConn should call any +// ClientTrace.GetConn hook associated with the http.Request. +// +// This complexity is needed to avoid double calls of the GetConn hook +// during the back-and-forth between net/http and x/net/http2 (when the +// net/http.Transport is upgraded to also speak http2), as well as support +// the case where x/net/http2 is being used directly. +func (p *clientConnPool) shouldTraceGetConn(st clientConnIdleState) bool { + // If our Transport wasn't made via ConfigureTransport, always + // trace the GetConn hook if provided, because that means the + // http2 package is being used directly and it's the one + // dialing, as opposed to net/http. + if _, ok := p.t.ConnPool.(noDialClientConnPool); !ok { + return true + } + // Otherwise, only use the GetConn hook if this connection has + // been used previously for other requests. For fresh + // connections, the net/http package does the dialing. + return !st.freshConn +} + +func (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMiss bool) (*ClientConn, error) { + if isConnectionCloseRequest(req) && dialOnMiss { + // It gets its own connection. + traceGetConn(req, addr) + const singleUse = true + cc, err := p.t.dialClientConn(req.Context(), addr, singleUse) + if err != nil { + return nil, err + } + return cc, nil + } + for { + p.mu.Lock() + for _, cc := range p.conns[addr] { + if st := cc.idleState(); st.canTakeNewRequest { + if p.shouldTraceGetConn(st) { + traceGetConn(req, addr) + } + p.mu.Unlock() + return cc, nil + } + } + if !dialOnMiss { + p.mu.Unlock() + return nil, ErrNoCachedConn + } + traceGetConn(req, addr) + call := p.getStartDialLocked(req.Context(), addr) + p.mu.Unlock() + <-call.done + if shouldRetryDial(call, req) { + continue + } + return call.res, call.err + } +} + +// dialCall is an in-flight Transport dial call to a host. +type dialCall struct { + _ incomparable + p *clientConnPool + // the context associated with the request + // that created this dialCall + ctx context.Context + done chan struct{} // closed when done + res *ClientConn // valid after done is closed + err error // valid after done is closed +} + +// requires p.mu is held. +func (p *clientConnPool) getStartDialLocked(ctx context.Context, addr string) *dialCall { + if call, ok := p.dialing[addr]; ok { + // A dial is already in-flight. Don't start another. + return call + } + call := &dialCall{p: p, done: make(chan struct{}), ctx: ctx} + if p.dialing == nil { + p.dialing = make(map[string]*dialCall) + } + p.dialing[addr] = call + go call.dial(call.ctx, addr) + return call +} + +// run in its own goroutine. +func (c *dialCall) dial(ctx context.Context, addr string) { + const singleUse = false // shared conn + c.res, c.err = c.p.t.dialClientConn(ctx, addr, singleUse) + close(c.done) + + c.p.mu.Lock() + delete(c.p.dialing, addr) + if c.err == nil { + c.p.addConnLocked(addr, c.res) + } + c.p.mu.Unlock() +} + +// addConnIfNeeded makes a NewClientConn out of c if a connection for key doesn't +// already exist. It coalesces concurrent calls with the same key. +// This is used by the http1 Transport code when it creates a new connection. Because +// the http1 Transport doesn't de-dup TCP dials to outbound hosts (because it doesn't know +// the protocol), it can get into a situation where it has multiple TLS connections. +// This code decides which ones live or die. +// The return value used is whether c was used. +// c is never closed. +func (p *clientConnPool) addConnIfNeeded(key string, t *Transport, c *tls.Conn) (used bool, err error) { + p.mu.Lock() + for _, cc := range p.conns[key] { + if cc.CanTakeNewRequest() { + p.mu.Unlock() + return false, nil + } + } + call, dup := p.addConnCalls[key] + if !dup { + if p.addConnCalls == nil { + p.addConnCalls = make(map[string]*addConnCall) + } + call = &addConnCall{ + p: p, + done: make(chan struct{}), + } + p.addConnCalls[key] = call + go call.run(t, key, c) + } + p.mu.Unlock() + + <-call.done + if call.err != nil { + return false, call.err + } + return !dup, nil +} + +type addConnCall struct { + _ incomparable + p *clientConnPool + done chan struct{} // closed when done + err error +} + +func (c *addConnCall) run(t *Transport, key string, tc *tls.Conn) { + cc, err := t.NewClientConn(tc) + + p := c.p + p.mu.Lock() + if err != nil { + c.err = err + } else { + p.addConnLocked(key, cc) + } + delete(p.addConnCalls, key) + p.mu.Unlock() + close(c.done) +} + +// p.mu must be held +func (p *clientConnPool) addConnLocked(key string, cc *ClientConn) { + for _, v := range p.conns[key] { + if v == cc { + return + } + } + if p.conns == nil { + p.conns = make(map[string][]*ClientConn) + } + if p.keys == nil { + p.keys = make(map[*ClientConn][]string) + } + p.conns[key] = append(p.conns[key], cc) + p.keys[cc] = append(p.keys[cc], key) +} + +func (p *clientConnPool) MarkDead(cc *ClientConn) { + p.mu.Lock() + defer p.mu.Unlock() + for _, key := range p.keys[cc] { + vv, ok := p.conns[key] + if !ok { + continue + } + newList := filterOutClientConn(vv, cc) + if len(newList) > 0 { + p.conns[key] = newList + } else { + delete(p.conns, key) + } + } + delete(p.keys, cc) +} + +func (p *clientConnPool) closeIdleConnections() { + p.mu.Lock() + defer p.mu.Unlock() + // TODO: don't close a cc if it was just added to the pool + // milliseconds ago and has never been used. There's currently + // a small race window with the HTTP/1 Transport's integration + // where it can add an idle conn just before using it, and + // somebody else can concurrently call CloseIdleConns and + // break some caller's RoundTrip. + for _, vv := range p.conns { + for _, cc := range vv { + cc.closeIfIdle() + } + } +} + +func filterOutClientConn(in []*ClientConn, exclude *ClientConn) []*ClientConn { + out := in[:0] + for _, v := range in { + if v != exclude { + out = append(out, v) + } + } + // If we filtered it out, zero out the last item to prevent + // the GC from seeing it. + if len(in) != len(out) { + in[len(in)-1] = nil + } + return out +} + +// noDialClientConnPool is an implementation of http2.ClientConnPool +// which never dials. We let the HTTP/1.1 client dial and use its TLS +// connection instead. +type noDialClientConnPool struct{ *clientConnPool } + +func (p noDialClientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) { + return p.getClientConn(req, addr, noDialOnMiss) +} + +// shouldRetryDial reports whether the current request should +// retry dialing after the call finished unsuccessfully, for example +// if the dial was canceled because of a context cancellation or +// deadline expiry. +func shouldRetryDial(call *dialCall, req *http.Request) bool { + if call.err == nil { + // No error, no need to retry + return false + } + if call.ctx == req.Context() { + // If the call has the same context as the request, the dial + // should not be retried, since any cancellation will have come + // from this request. + return false + } + if !errors.Is(call.err, context.Canceled) && !errors.Is(call.err, context.DeadlineExceeded) { + // If the call error is not because of a context cancellation or a deadline expiry, + // the dial should not be retried. + return false + } + // Only retry if the error is a context cancellation error or deadline expiry + // and the context associated with the call was canceled or expired. + return call.ctx.Err() != nil +} diff --git a/vendor/golang.org/x/net/http2/databuffer.go b/vendor/golang.org/x/net/http2/databuffer.go new file mode 100644 index 0000000..a3067f8 --- /dev/null +++ b/vendor/golang.org/x/net/http2/databuffer.go @@ -0,0 +1,146 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "errors" + "fmt" + "sync" +) + +// Buffer chunks are allocated from a pool to reduce pressure on GC. +// The maximum wasted space per dataBuffer is 2x the largest size class, +// which happens when the dataBuffer has multiple chunks and there is +// one unread byte in both the first and last chunks. We use a few size +// classes to minimize overheads for servers that typically receive very +// small request bodies. +// +// TODO: Benchmark to determine if the pools are necessary. The GC may have +// improved enough that we can instead allocate chunks like this: +// make([]byte, max(16<<10, expectedBytesRemaining)) +var ( + dataChunkSizeClasses = []int{ + 1 << 10, + 2 << 10, + 4 << 10, + 8 << 10, + 16 << 10, + } + dataChunkPools = [...]sync.Pool{ + {New: func() interface{} { return make([]byte, 1<<10) }}, + {New: func() interface{} { return make([]byte, 2<<10) }}, + {New: func() interface{} { return make([]byte, 4<<10) }}, + {New: func() interface{} { return make([]byte, 8<<10) }}, + {New: func() interface{} { return make([]byte, 16<<10) }}, + } +) + +func getDataBufferChunk(size int64) []byte { + i := 0 + for ; i < len(dataChunkSizeClasses)-1; i++ { + if size <= int64(dataChunkSizeClasses[i]) { + break + } + } + return dataChunkPools[i].Get().([]byte) +} + +func putDataBufferChunk(p []byte) { + for i, n := range dataChunkSizeClasses { + if len(p) == n { + dataChunkPools[i].Put(p) + return + } + } + panic(fmt.Sprintf("unexpected buffer len=%v", len(p))) +} + +// dataBuffer is an io.ReadWriter backed by a list of data chunks. +// Each dataBuffer is used to read DATA frames on a single stream. +// The buffer is divided into chunks so the server can limit the +// total memory used by a single connection without limiting the +// request body size on any single stream. +type dataBuffer struct { + chunks [][]byte + r int // next byte to read is chunks[0][r] + w int // next byte to write is chunks[len(chunks)-1][w] + size int // total buffered bytes + expected int64 // we expect at least this many bytes in future Write calls (ignored if <= 0) +} + +var errReadEmpty = errors.New("read from empty dataBuffer") + +// Read copies bytes from the buffer into p. +// It is an error to read when no data is available. +func (b *dataBuffer) Read(p []byte) (int, error) { + if b.size == 0 { + return 0, errReadEmpty + } + var ntotal int + for len(p) > 0 && b.size > 0 { + readFrom := b.bytesFromFirstChunk() + n := copy(p, readFrom) + p = p[n:] + ntotal += n + b.r += n + b.size -= n + // If the first chunk has been consumed, advance to the next chunk. + if b.r == len(b.chunks[0]) { + putDataBufferChunk(b.chunks[0]) + end := len(b.chunks) - 1 + copy(b.chunks[:end], b.chunks[1:]) + b.chunks[end] = nil + b.chunks = b.chunks[:end] + b.r = 0 + } + } + return ntotal, nil +} + +func (b *dataBuffer) bytesFromFirstChunk() []byte { + if len(b.chunks) == 1 { + return b.chunks[0][b.r:b.w] + } + return b.chunks[0][b.r:] +} + +// Len returns the number of bytes of the unread portion of the buffer. +func (b *dataBuffer) Len() int { + return b.size +} + +// Write appends p to the buffer. +func (b *dataBuffer) Write(p []byte) (int, error) { + ntotal := len(p) + for len(p) > 0 { + // If the last chunk is empty, allocate a new chunk. Try to allocate + // enough to fully copy p plus any additional bytes we expect to + // receive. However, this may allocate less than len(p). + want := int64(len(p)) + if b.expected > want { + want = b.expected + } + chunk := b.lastChunkOrAlloc(want) + n := copy(chunk[b.w:], p) + p = p[n:] + b.w += n + b.size += n + b.expected -= int64(n) + } + return ntotal, nil +} + +func (b *dataBuffer) lastChunkOrAlloc(want int64) []byte { + if len(b.chunks) != 0 { + last := b.chunks[len(b.chunks)-1] + if b.w < len(last) { + return last + } + } + chunk := getDataBufferChunk(want) + b.chunks = append(b.chunks, chunk) + b.w = 0 + return chunk +} diff --git a/vendor/golang.org/x/net/http2/errors.go b/vendor/golang.org/x/net/http2/errors.go new file mode 100644 index 0000000..2663e5d --- /dev/null +++ b/vendor/golang.org/x/net/http2/errors.go @@ -0,0 +1,145 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "errors" + "fmt" +) + +// An ErrCode is an unsigned 32-bit error code as defined in the HTTP/2 spec. +type ErrCode uint32 + +const ( + ErrCodeNo ErrCode = 0x0 + ErrCodeProtocol ErrCode = 0x1 + ErrCodeInternal ErrCode = 0x2 + ErrCodeFlowControl ErrCode = 0x3 + ErrCodeSettingsTimeout ErrCode = 0x4 + ErrCodeStreamClosed ErrCode = 0x5 + ErrCodeFrameSize ErrCode = 0x6 + ErrCodeRefusedStream ErrCode = 0x7 + ErrCodeCancel ErrCode = 0x8 + ErrCodeCompression ErrCode = 0x9 + ErrCodeConnect ErrCode = 0xa + ErrCodeEnhanceYourCalm ErrCode = 0xb + ErrCodeInadequateSecurity ErrCode = 0xc + ErrCodeHTTP11Required ErrCode = 0xd +) + +var errCodeName = map[ErrCode]string{ + ErrCodeNo: "NO_ERROR", + ErrCodeProtocol: "PROTOCOL_ERROR", + ErrCodeInternal: "INTERNAL_ERROR", + ErrCodeFlowControl: "FLOW_CONTROL_ERROR", + ErrCodeSettingsTimeout: "SETTINGS_TIMEOUT", + ErrCodeStreamClosed: "STREAM_CLOSED", + ErrCodeFrameSize: "FRAME_SIZE_ERROR", + ErrCodeRefusedStream: "REFUSED_STREAM", + ErrCodeCancel: "CANCEL", + ErrCodeCompression: "COMPRESSION_ERROR", + ErrCodeConnect: "CONNECT_ERROR", + ErrCodeEnhanceYourCalm: "ENHANCE_YOUR_CALM", + ErrCodeInadequateSecurity: "INADEQUATE_SECURITY", + ErrCodeHTTP11Required: "HTTP_1_1_REQUIRED", +} + +func (e ErrCode) String() string { + if s, ok := errCodeName[e]; ok { + return s + } + return fmt.Sprintf("unknown error code 0x%x", uint32(e)) +} + +func (e ErrCode) stringToken() string { + if s, ok := errCodeName[e]; ok { + return s + } + return fmt.Sprintf("ERR_UNKNOWN_%d", uint32(e)) +} + +// ConnectionError is an error that results in the termination of the +// entire connection. +type ConnectionError ErrCode + +func (e ConnectionError) Error() string { return fmt.Sprintf("connection error: %s", ErrCode(e)) } + +// StreamError is an error that only affects one stream within an +// HTTP/2 connection. +type StreamError struct { + StreamID uint32 + Code ErrCode + Cause error // optional additional detail +} + +// errFromPeer is a sentinel error value for StreamError.Cause to +// indicate that the StreamError was sent from the peer over the wire +// and wasn't locally generated in the Transport. +var errFromPeer = errors.New("received from peer") + +func streamError(id uint32, code ErrCode) StreamError { + return StreamError{StreamID: id, Code: code} +} + +func (e StreamError) Error() string { + if e.Cause != nil { + return fmt.Sprintf("stream error: stream ID %d; %v; %v", e.StreamID, e.Code, e.Cause) + } + return fmt.Sprintf("stream error: stream ID %d; %v", e.StreamID, e.Code) +} + +// 6.9.1 The Flow Control Window +// "If a sender receives a WINDOW_UPDATE that causes a flow control +// window to exceed this maximum it MUST terminate either the stream +// or the connection, as appropriate. For streams, [...]; for the +// connection, a GOAWAY frame with a FLOW_CONTROL_ERROR code." +type goAwayFlowError struct{} + +func (goAwayFlowError) Error() string { return "connection exceeded flow control window size" } + +// connError represents an HTTP/2 ConnectionError error code, along +// with a string (for debugging) explaining why. +// +// Errors of this type are only returned by the frame parser functions +// and converted into ConnectionError(Code), after stashing away +// the Reason into the Framer's errDetail field, accessible via +// the (*Framer).ErrorDetail method. +type connError struct { + Code ErrCode // the ConnectionError error code + Reason string // additional reason +} + +func (e connError) Error() string { + return fmt.Sprintf("http2: connection error: %v: %v", e.Code, e.Reason) +} + +type pseudoHeaderError string + +func (e pseudoHeaderError) Error() string { + return fmt.Sprintf("invalid pseudo-header %q", string(e)) +} + +type duplicatePseudoHeaderError string + +func (e duplicatePseudoHeaderError) Error() string { + return fmt.Sprintf("duplicate pseudo-header %q", string(e)) +} + +type headerFieldNameError string + +func (e headerFieldNameError) Error() string { + return fmt.Sprintf("invalid header field name %q", string(e)) +} + +type headerFieldValueError string + +func (e headerFieldValueError) Error() string { + return fmt.Sprintf("invalid header field value %q", string(e)) +} + +var ( + errMixPseudoHeaderTypes = errors.New("mix of request and response pseudo headers") + errPseudoAfterRegular = errors.New("pseudo header field after regular") +) diff --git a/vendor/golang.org/x/net/http2/flow.go b/vendor/golang.org/x/net/http2/flow.go new file mode 100644 index 0000000..b51f0e0 --- /dev/null +++ b/vendor/golang.org/x/net/http2/flow.go @@ -0,0 +1,52 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Flow control + +package http2 + +// flow is the flow control window's size. +type flow struct { + _ incomparable + + // n is the number of DATA bytes we're allowed to send. + // A flow is kept both on a conn and a per-stream. + n int32 + + // conn points to the shared connection-level flow that is + // shared by all streams on that conn. It is nil for the flow + // that's on the conn directly. + conn *flow +} + +func (f *flow) setConnFlow(cf *flow) { f.conn = cf } + +func (f *flow) available() int32 { + n := f.n + if f.conn != nil && f.conn.n < n { + n = f.conn.n + } + return n +} + +func (f *flow) take(n int32) { + if n > f.available() { + panic("internal error: took too much") + } + f.n -= n + if f.conn != nil { + f.conn.n -= n + } +} + +// add adds n bytes (positive or negative) to the flow control window. +// It returns false if the sum would exceed 2^31-1. +func (f *flow) add(n int32) bool { + sum := f.n + n + if (sum > n) == (f.n > 0) { + f.n = sum + return true + } + return false +} diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go new file mode 100644 index 0000000..b95d6f2 --- /dev/null +++ b/vendor/golang.org/x/net/http2/frame.go @@ -0,0 +1,1614 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + "log" + "strings" + "sync" + + "golang.org/x/net/http/httpguts" + "golang.org/x/net/http2/hpack" +) + +const frameHeaderLen = 9 + +var padZeros = make([]byte, 255) // zeros for padding + +// A FrameType is a registered frame type as defined in +// http://http2.github.io/http2-spec/#rfc.section.11.2 +type FrameType uint8 + +const ( + FrameData FrameType = 0x0 + FrameHeaders FrameType = 0x1 + FramePriority FrameType = 0x2 + FrameRSTStream FrameType = 0x3 + FrameSettings FrameType = 0x4 + FramePushPromise FrameType = 0x5 + FramePing FrameType = 0x6 + FrameGoAway FrameType = 0x7 + FrameWindowUpdate FrameType = 0x8 + FrameContinuation FrameType = 0x9 +) + +var frameName = map[FrameType]string{ + FrameData: "DATA", + FrameHeaders: "HEADERS", + FramePriority: "PRIORITY", + FrameRSTStream: "RST_STREAM", + FrameSettings: "SETTINGS", + FramePushPromise: "PUSH_PROMISE", + FramePing: "PING", + FrameGoAway: "GOAWAY", + FrameWindowUpdate: "WINDOW_UPDATE", + FrameContinuation: "CONTINUATION", +} + +func (t FrameType) String() string { + if s, ok := frameName[t]; ok { + return s + } + return fmt.Sprintf("UNKNOWN_FRAME_TYPE_%d", uint8(t)) +} + +// Flags is a bitmask of HTTP/2 flags. +// The meaning of flags varies depending on the frame type. +type Flags uint8 + +// Has reports whether f contains all (0 or more) flags in v. +func (f Flags) Has(v Flags) bool { + return (f & v) == v +} + +// Frame-specific FrameHeader flag bits. +const ( + // Data Frame + FlagDataEndStream Flags = 0x1 + FlagDataPadded Flags = 0x8 + + // Headers Frame + FlagHeadersEndStream Flags = 0x1 + FlagHeadersEndHeaders Flags = 0x4 + FlagHeadersPadded Flags = 0x8 + FlagHeadersPriority Flags = 0x20 + + // Settings Frame + FlagSettingsAck Flags = 0x1 + + // Ping Frame + FlagPingAck Flags = 0x1 + + // Continuation Frame + FlagContinuationEndHeaders Flags = 0x4 + + FlagPushPromiseEndHeaders Flags = 0x4 + FlagPushPromisePadded Flags = 0x8 +) + +var flagName = map[FrameType]map[Flags]string{ + FrameData: { + FlagDataEndStream: "END_STREAM", + FlagDataPadded: "PADDED", + }, + FrameHeaders: { + FlagHeadersEndStream: "END_STREAM", + FlagHeadersEndHeaders: "END_HEADERS", + FlagHeadersPadded: "PADDED", + FlagHeadersPriority: "PRIORITY", + }, + FrameSettings: { + FlagSettingsAck: "ACK", + }, + FramePing: { + FlagPingAck: "ACK", + }, + FrameContinuation: { + FlagContinuationEndHeaders: "END_HEADERS", + }, + FramePushPromise: { + FlagPushPromiseEndHeaders: "END_HEADERS", + FlagPushPromisePadded: "PADDED", + }, +} + +// a frameParser parses a frame given its FrameHeader and payload +// bytes. The length of payload will always equal fh.Length (which +// might be 0). +type frameParser func(fc *frameCache, fh FrameHeader, payload []byte) (Frame, error) + +var frameParsers = map[FrameType]frameParser{ + FrameData: parseDataFrame, + FrameHeaders: parseHeadersFrame, + FramePriority: parsePriorityFrame, + FrameRSTStream: parseRSTStreamFrame, + FrameSettings: parseSettingsFrame, + FramePushPromise: parsePushPromise, + FramePing: parsePingFrame, + FrameGoAway: parseGoAwayFrame, + FrameWindowUpdate: parseWindowUpdateFrame, + FrameContinuation: parseContinuationFrame, +} + +func typeFrameParser(t FrameType) frameParser { + if f := frameParsers[t]; f != nil { + return f + } + return parseUnknownFrame +} + +// A FrameHeader is the 9 byte header of all HTTP/2 frames. +// +// See http://http2.github.io/http2-spec/#FrameHeader +type FrameHeader struct { + valid bool // caller can access []byte fields in the Frame + + // Type is the 1 byte frame type. There are ten standard frame + // types, but extension frame types may be written by WriteRawFrame + // and will be returned by ReadFrame (as UnknownFrame). + Type FrameType + + // Flags are the 1 byte of 8 potential bit flags per frame. + // They are specific to the frame type. + Flags Flags + + // Length is the length of the frame, not including the 9 byte header. + // The maximum size is one byte less than 16MB (uint24), but only + // frames up to 16KB are allowed without peer agreement. + Length uint32 + + // StreamID is which stream this frame is for. Certain frames + // are not stream-specific, in which case this field is 0. + StreamID uint32 +} + +// Header returns h. It exists so FrameHeaders can be embedded in other +// specific frame types and implement the Frame interface. +func (h FrameHeader) Header() FrameHeader { return h } + +func (h FrameHeader) String() string { + var buf bytes.Buffer + buf.WriteString("[FrameHeader ") + h.writeDebug(&buf) + buf.WriteByte(']') + return buf.String() +} + +func (h FrameHeader) writeDebug(buf *bytes.Buffer) { + buf.WriteString(h.Type.String()) + if h.Flags != 0 { + buf.WriteString(" flags=") + set := 0 + for i := uint8(0); i < 8; i++ { + if h.Flags&(1< 1 { + buf.WriteByte('|') + } + name := flagName[h.Type][Flags(1<>24), + byte(streamID>>16), + byte(streamID>>8), + byte(streamID)) +} + +func (f *Framer) endWrite() error { + // Now that we know the final size, fill in the FrameHeader in + // the space previously reserved for it. Abuse append. + length := len(f.wbuf) - frameHeaderLen + if length >= (1 << 24) { + return ErrFrameTooLarge + } + _ = append(f.wbuf[:0], + byte(length>>16), + byte(length>>8), + byte(length)) + if f.logWrites { + f.logWrite() + } + + n, err := f.w.Write(f.wbuf) + if err == nil && n != len(f.wbuf) { + err = io.ErrShortWrite + } + return err +} + +func (f *Framer) logWrite() { + if f.debugFramer == nil { + f.debugFramerBuf = new(bytes.Buffer) + f.debugFramer = NewFramer(nil, f.debugFramerBuf) + f.debugFramer.logReads = false // we log it ourselves, saying "wrote" below + // Let us read anything, even if we accidentally wrote it + // in the wrong order: + f.debugFramer.AllowIllegalReads = true + } + f.debugFramerBuf.Write(f.wbuf) + fr, err := f.debugFramer.ReadFrame() + if err != nil { + f.debugWriteLoggerf("http2: Framer %p: failed to decode just-written frame", f) + return + } + f.debugWriteLoggerf("http2: Framer %p: wrote %v", f, summarizeFrame(fr)) +} + +func (f *Framer) writeByte(v byte) { f.wbuf = append(f.wbuf, v) } +func (f *Framer) writeBytes(v []byte) { f.wbuf = append(f.wbuf, v...) } +func (f *Framer) writeUint16(v uint16) { f.wbuf = append(f.wbuf, byte(v>>8), byte(v)) } +func (f *Framer) writeUint32(v uint32) { + f.wbuf = append(f.wbuf, byte(v>>24), byte(v>>16), byte(v>>8), byte(v)) +} + +const ( + minMaxFrameSize = 1 << 14 + maxFrameSize = 1<<24 - 1 +) + +// SetReuseFrames allows the Framer to reuse Frames. +// If called on a Framer, Frames returned by calls to ReadFrame are only +// valid until the next call to ReadFrame. +func (fr *Framer) SetReuseFrames() { + if fr.frameCache != nil { + return + } + fr.frameCache = &frameCache{} +} + +type frameCache struct { + dataFrame DataFrame +} + +func (fc *frameCache) getDataFrame() *DataFrame { + if fc == nil { + return &DataFrame{} + } + return &fc.dataFrame +} + +// NewFramer returns a Framer that writes frames to w and reads them from r. +func NewFramer(w io.Writer, r io.Reader) *Framer { + fr := &Framer{ + w: w, + r: r, + logReads: logFrameReads, + logWrites: logFrameWrites, + debugReadLoggerf: log.Printf, + debugWriteLoggerf: log.Printf, + } + fr.getReadBuf = func(size uint32) []byte { + if cap(fr.readBuf) >= int(size) { + return fr.readBuf[:size] + } + fr.readBuf = make([]byte, size) + return fr.readBuf + } + fr.SetMaxReadFrameSize(maxFrameSize) + return fr +} + +// SetMaxReadFrameSize sets the maximum size of a frame +// that will be read by a subsequent call to ReadFrame. +// It is the caller's responsibility to advertise this +// limit with a SETTINGS frame. +func (fr *Framer) SetMaxReadFrameSize(v uint32) { + if v > maxFrameSize { + v = maxFrameSize + } + fr.maxReadSize = v +} + +// ErrorDetail returns a more detailed error of the last error +// returned by Framer.ReadFrame. For instance, if ReadFrame +// returns a StreamError with code PROTOCOL_ERROR, ErrorDetail +// will say exactly what was invalid. ErrorDetail is not guaranteed +// to return a non-nil value and like the rest of the http2 package, +// its return value is not protected by an API compatibility promise. +// ErrorDetail is reset after the next call to ReadFrame. +func (fr *Framer) ErrorDetail() error { + return fr.errDetail +} + +// ErrFrameTooLarge is returned from Framer.ReadFrame when the peer +// sends a frame that is larger than declared with SetMaxReadFrameSize. +var ErrFrameTooLarge = errors.New("http2: frame too large") + +// terminalReadFrameError reports whether err is an unrecoverable +// error from ReadFrame and no other frames should be read. +func terminalReadFrameError(err error) bool { + if _, ok := err.(StreamError); ok { + return false + } + return err != nil +} + +// ReadFrame reads a single frame. The returned Frame is only valid +// until the next call to ReadFrame. +// +// If the frame is larger than previously set with SetMaxReadFrameSize, the +// returned error is ErrFrameTooLarge. Other errors may be of type +// ConnectionError, StreamError, or anything else from the underlying +// reader. +func (fr *Framer) ReadFrame() (Frame, error) { + fr.errDetail = nil + if fr.lastFrame != nil { + fr.lastFrame.invalidate() + } + fh, err := readFrameHeader(fr.headerBuf[:], fr.r) + if err != nil { + return nil, err + } + if fh.Length > fr.maxReadSize { + return nil, ErrFrameTooLarge + } + payload := fr.getReadBuf(fh.Length) + if _, err := io.ReadFull(fr.r, payload); err != nil { + return nil, err + } + f, err := typeFrameParser(fh.Type)(fr.frameCache, fh, payload) + if err != nil { + if ce, ok := err.(connError); ok { + return nil, fr.connError(ce.Code, ce.Reason) + } + return nil, err + } + if err := fr.checkFrameOrder(f); err != nil { + return nil, err + } + if fr.logReads { + fr.debugReadLoggerf("http2: Framer %p: read %v", fr, summarizeFrame(f)) + } + if fh.Type == FrameHeaders && fr.ReadMetaHeaders != nil { + return fr.readMetaFrame(f.(*HeadersFrame)) + } + return f, nil +} + +// connError returns ConnectionError(code) but first +// stashes away a public reason to the caller can optionally relay it +// to the peer before hanging up on them. This might help others debug +// their implementations. +func (fr *Framer) connError(code ErrCode, reason string) error { + fr.errDetail = errors.New(reason) + return ConnectionError(code) +} + +// checkFrameOrder reports an error if f is an invalid frame to return +// next from ReadFrame. Mostly it checks whether HEADERS and +// CONTINUATION frames are contiguous. +func (fr *Framer) checkFrameOrder(f Frame) error { + last := fr.lastFrame + fr.lastFrame = f + if fr.AllowIllegalReads { + return nil + } + + fh := f.Header() + if fr.lastHeaderStream != 0 { + if fh.Type != FrameContinuation { + return fr.connError(ErrCodeProtocol, + fmt.Sprintf("got %s for stream %d; expected CONTINUATION following %s for stream %d", + fh.Type, fh.StreamID, + last.Header().Type, fr.lastHeaderStream)) + } + if fh.StreamID != fr.lastHeaderStream { + return fr.connError(ErrCodeProtocol, + fmt.Sprintf("got CONTINUATION for stream %d; expected stream %d", + fh.StreamID, fr.lastHeaderStream)) + } + } else if fh.Type == FrameContinuation { + return fr.connError(ErrCodeProtocol, fmt.Sprintf("unexpected CONTINUATION for stream %d", fh.StreamID)) + } + + switch fh.Type { + case FrameHeaders, FrameContinuation: + if fh.Flags.Has(FlagHeadersEndHeaders) { + fr.lastHeaderStream = 0 + } else { + fr.lastHeaderStream = fh.StreamID + } + } + + return nil +} + +// A DataFrame conveys arbitrary, variable-length sequences of octets +// associated with a stream. +// See http://http2.github.io/http2-spec/#rfc.section.6.1 +type DataFrame struct { + FrameHeader + data []byte +} + +func (f *DataFrame) StreamEnded() bool { + return f.FrameHeader.Flags.Has(FlagDataEndStream) +} + +// Data returns the frame's data octets, not including any padding +// size byte or padding suffix bytes. +// The caller must not retain the returned memory past the next +// call to ReadFrame. +func (f *DataFrame) Data() []byte { + f.checkValid() + return f.data +} + +func parseDataFrame(fc *frameCache, fh FrameHeader, payload []byte) (Frame, error) { + if fh.StreamID == 0 { + // DATA frames MUST be associated with a stream. If a + // DATA frame is received whose stream identifier + // field is 0x0, the recipient MUST respond with a + // connection error (Section 5.4.1) of type + // PROTOCOL_ERROR. + return nil, connError{ErrCodeProtocol, "DATA frame with stream ID 0"} + } + f := fc.getDataFrame() + f.FrameHeader = fh + + var padSize byte + if fh.Flags.Has(FlagDataPadded) { + var err error + payload, padSize, err = readByte(payload) + if err != nil { + return nil, err + } + } + if int(padSize) > len(payload) { + // If the length of the padding is greater than the + // length of the frame payload, the recipient MUST + // treat this as a connection error. + // Filed: https://github.com/http2/http2-spec/issues/610 + return nil, connError{ErrCodeProtocol, "pad size larger than data payload"} + } + f.data = payload[:len(payload)-int(padSize)] + return f, nil +} + +var ( + errStreamID = errors.New("invalid stream ID") + errDepStreamID = errors.New("invalid dependent stream ID") + errPadLength = errors.New("pad length too large") + errPadBytes = errors.New("padding bytes must all be zeros unless AllowIllegalWrites is enabled") +) + +func validStreamIDOrZero(streamID uint32) bool { + return streamID&(1<<31) == 0 +} + +func validStreamID(streamID uint32) bool { + return streamID != 0 && streamID&(1<<31) == 0 +} + +// WriteData writes a DATA frame. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility not to violate the maximum frame size +// and to not call other Write methods concurrently. +func (f *Framer) WriteData(streamID uint32, endStream bool, data []byte) error { + return f.WriteDataPadded(streamID, endStream, data, nil) +} + +// WriteDataPadded writes a DATA frame with optional padding. +// +// If pad is nil, the padding bit is not sent. +// The length of pad must not exceed 255 bytes. +// The bytes of pad must all be zero, unless f.AllowIllegalWrites is set. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility not to violate the maximum frame size +// and to not call other Write methods concurrently. +func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error { + if !validStreamID(streamID) && !f.AllowIllegalWrites { + return errStreamID + } + if len(pad) > 0 { + if len(pad) > 255 { + return errPadLength + } + if !f.AllowIllegalWrites { + for _, b := range pad { + if b != 0 { + // "Padding octets MUST be set to zero when sending." + return errPadBytes + } + } + } + } + var flags Flags + if endStream { + flags |= FlagDataEndStream + } + if pad != nil { + flags |= FlagDataPadded + } + f.startWrite(FrameData, flags, streamID) + if pad != nil { + f.wbuf = append(f.wbuf, byte(len(pad))) + } + f.wbuf = append(f.wbuf, data...) + f.wbuf = append(f.wbuf, pad...) + return f.endWrite() +} + +// A SettingsFrame conveys configuration parameters that affect how +// endpoints communicate, such as preferences and constraints on peer +// behavior. +// +// See http://http2.github.io/http2-spec/#SETTINGS +type SettingsFrame struct { + FrameHeader + p []byte +} + +func parseSettingsFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { + if fh.Flags.Has(FlagSettingsAck) && fh.Length > 0 { + // When this (ACK 0x1) bit is set, the payload of the + // SETTINGS frame MUST be empty. Receipt of a + // SETTINGS frame with the ACK flag set and a length + // field value other than 0 MUST be treated as a + // connection error (Section 5.4.1) of type + // FRAME_SIZE_ERROR. + return nil, ConnectionError(ErrCodeFrameSize) + } + if fh.StreamID != 0 { + // SETTINGS frames always apply to a connection, + // never a single stream. The stream identifier for a + // SETTINGS frame MUST be zero (0x0). If an endpoint + // receives a SETTINGS frame whose stream identifier + // field is anything other than 0x0, the endpoint MUST + // respond with a connection error (Section 5.4.1) of + // type PROTOCOL_ERROR. + return nil, ConnectionError(ErrCodeProtocol) + } + if len(p)%6 != 0 { + // Expecting even number of 6 byte settings. + return nil, ConnectionError(ErrCodeFrameSize) + } + f := &SettingsFrame{FrameHeader: fh, p: p} + if v, ok := f.Value(SettingInitialWindowSize); ok && v > (1<<31)-1 { + // Values above the maximum flow control window size of 2^31 - 1 MUST + // be treated as a connection error (Section 5.4.1) of type + // FLOW_CONTROL_ERROR. + return nil, ConnectionError(ErrCodeFlowControl) + } + return f, nil +} + +func (f *SettingsFrame) IsAck() bool { + return f.FrameHeader.Flags.Has(FlagSettingsAck) +} + +func (f *SettingsFrame) Value(id SettingID) (v uint32, ok bool) { + f.checkValid() + for i := 0; i < f.NumSettings(); i++ { + if s := f.Setting(i); s.ID == id { + return s.Val, true + } + } + return 0, false +} + +// Setting returns the setting from the frame at the given 0-based index. +// The index must be >= 0 and less than f.NumSettings(). +func (f *SettingsFrame) Setting(i int) Setting { + buf := f.p + return Setting{ + ID: SettingID(binary.BigEndian.Uint16(buf[i*6 : i*6+2])), + Val: binary.BigEndian.Uint32(buf[i*6+2 : i*6+6]), + } +} + +func (f *SettingsFrame) NumSettings() int { return len(f.p) / 6 } + +// HasDuplicates reports whether f contains any duplicate setting IDs. +func (f *SettingsFrame) HasDuplicates() bool { + num := f.NumSettings() + if num == 0 { + return false + } + // If it's small enough (the common case), just do the n^2 + // thing and avoid a map allocation. + if num < 10 { + for i := 0; i < num; i++ { + idi := f.Setting(i).ID + for j := i + 1; j < num; j++ { + idj := f.Setting(j).ID + if idi == idj { + return true + } + } + } + return false + } + seen := map[SettingID]bool{} + for i := 0; i < num; i++ { + id := f.Setting(i).ID + if seen[id] { + return true + } + seen[id] = true + } + return false +} + +// ForeachSetting runs fn for each setting. +// It stops and returns the first error. +func (f *SettingsFrame) ForeachSetting(fn func(Setting) error) error { + f.checkValid() + for i := 0; i < f.NumSettings(); i++ { + if err := fn(f.Setting(i)); err != nil { + return err + } + } + return nil +} + +// WriteSettings writes a SETTINGS frame with zero or more settings +// specified and the ACK bit not set. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WriteSettings(settings ...Setting) error { + f.startWrite(FrameSettings, 0, 0) + for _, s := range settings { + f.writeUint16(uint16(s.ID)) + f.writeUint32(s.Val) + } + return f.endWrite() +} + +// WriteSettingsAck writes an empty SETTINGS frame with the ACK bit set. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WriteSettingsAck() error { + f.startWrite(FrameSettings, FlagSettingsAck, 0) + return f.endWrite() +} + +// A PingFrame is a mechanism for measuring a minimal round trip time +// from the sender, as well as determining whether an idle connection +// is still functional. +// See http://http2.github.io/http2-spec/#rfc.section.6.7 +type PingFrame struct { + FrameHeader + Data [8]byte +} + +func (f *PingFrame) IsAck() bool { return f.Flags.Has(FlagPingAck) } + +func parsePingFrame(_ *frameCache, fh FrameHeader, payload []byte) (Frame, error) { + if len(payload) != 8 { + return nil, ConnectionError(ErrCodeFrameSize) + } + if fh.StreamID != 0 { + return nil, ConnectionError(ErrCodeProtocol) + } + f := &PingFrame{FrameHeader: fh} + copy(f.Data[:], payload) + return f, nil +} + +func (f *Framer) WritePing(ack bool, data [8]byte) error { + var flags Flags + if ack { + flags = FlagPingAck + } + f.startWrite(FramePing, flags, 0) + f.writeBytes(data[:]) + return f.endWrite() +} + +// A GoAwayFrame informs the remote peer to stop creating streams on this connection. +// See http://http2.github.io/http2-spec/#rfc.section.6.8 +type GoAwayFrame struct { + FrameHeader + LastStreamID uint32 + ErrCode ErrCode + debugData []byte +} + +// DebugData returns any debug data in the GOAWAY frame. Its contents +// are not defined. +// The caller must not retain the returned memory past the next +// call to ReadFrame. +func (f *GoAwayFrame) DebugData() []byte { + f.checkValid() + return f.debugData +} + +func parseGoAwayFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { + if fh.StreamID != 0 { + return nil, ConnectionError(ErrCodeProtocol) + } + if len(p) < 8 { + return nil, ConnectionError(ErrCodeFrameSize) + } + return &GoAwayFrame{ + FrameHeader: fh, + LastStreamID: binary.BigEndian.Uint32(p[:4]) & (1<<31 - 1), + ErrCode: ErrCode(binary.BigEndian.Uint32(p[4:8])), + debugData: p[8:], + }, nil +} + +func (f *Framer) WriteGoAway(maxStreamID uint32, code ErrCode, debugData []byte) error { + f.startWrite(FrameGoAway, 0, 0) + f.writeUint32(maxStreamID & (1<<31 - 1)) + f.writeUint32(uint32(code)) + f.writeBytes(debugData) + return f.endWrite() +} + +// An UnknownFrame is the frame type returned when the frame type is unknown +// or no specific frame type parser exists. +type UnknownFrame struct { + FrameHeader + p []byte +} + +// Payload returns the frame's payload (after the header). It is not +// valid to call this method after a subsequent call to +// Framer.ReadFrame, nor is it valid to retain the returned slice. +// The memory is owned by the Framer and is invalidated when the next +// frame is read. +func (f *UnknownFrame) Payload() []byte { + f.checkValid() + return f.p +} + +func parseUnknownFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { + return &UnknownFrame{fh, p}, nil +} + +// A WindowUpdateFrame is used to implement flow control. +// See http://http2.github.io/http2-spec/#rfc.section.6.9 +type WindowUpdateFrame struct { + FrameHeader + Increment uint32 // never read with high bit set +} + +func parseWindowUpdateFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { + if len(p) != 4 { + return nil, ConnectionError(ErrCodeFrameSize) + } + inc := binary.BigEndian.Uint32(p[:4]) & 0x7fffffff // mask off high reserved bit + if inc == 0 { + // A receiver MUST treat the receipt of a + // WINDOW_UPDATE frame with an flow control window + // increment of 0 as a stream error (Section 5.4.2) of + // type PROTOCOL_ERROR; errors on the connection flow + // control window MUST be treated as a connection + // error (Section 5.4.1). + if fh.StreamID == 0 { + return nil, ConnectionError(ErrCodeProtocol) + } + return nil, streamError(fh.StreamID, ErrCodeProtocol) + } + return &WindowUpdateFrame{ + FrameHeader: fh, + Increment: inc, + }, nil +} + +// WriteWindowUpdate writes a WINDOW_UPDATE frame. +// The increment value must be between 1 and 2,147,483,647, inclusive. +// If the Stream ID is zero, the window update applies to the +// connection as a whole. +func (f *Framer) WriteWindowUpdate(streamID, incr uint32) error { + // "The legal range for the increment to the flow control window is 1 to 2^31-1 (2,147,483,647) octets." + if (incr < 1 || incr > 2147483647) && !f.AllowIllegalWrites { + return errors.New("illegal window increment value") + } + f.startWrite(FrameWindowUpdate, 0, streamID) + f.writeUint32(incr) + return f.endWrite() +} + +// A HeadersFrame is used to open a stream and additionally carries a +// header block fragment. +type HeadersFrame struct { + FrameHeader + + // Priority is set if FlagHeadersPriority is set in the FrameHeader. + Priority PriorityParam + + headerFragBuf []byte // not owned +} + +func (f *HeadersFrame) HeaderBlockFragment() []byte { + f.checkValid() + return f.headerFragBuf +} + +func (f *HeadersFrame) HeadersEnded() bool { + return f.FrameHeader.Flags.Has(FlagHeadersEndHeaders) +} + +func (f *HeadersFrame) StreamEnded() bool { + return f.FrameHeader.Flags.Has(FlagHeadersEndStream) +} + +func (f *HeadersFrame) HasPriority() bool { + return f.FrameHeader.Flags.Has(FlagHeadersPriority) +} + +func parseHeadersFrame(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err error) { + hf := &HeadersFrame{ + FrameHeader: fh, + } + if fh.StreamID == 0 { + // HEADERS frames MUST be associated with a stream. If a HEADERS frame + // is received whose stream identifier field is 0x0, the recipient MUST + // respond with a connection error (Section 5.4.1) of type + // PROTOCOL_ERROR. + return nil, connError{ErrCodeProtocol, "HEADERS frame with stream ID 0"} + } + var padLength uint8 + if fh.Flags.Has(FlagHeadersPadded) { + if p, padLength, err = readByte(p); err != nil { + return + } + } + if fh.Flags.Has(FlagHeadersPriority) { + var v uint32 + p, v, err = readUint32(p) + if err != nil { + return nil, err + } + hf.Priority.StreamDep = v & 0x7fffffff + hf.Priority.Exclusive = (v != hf.Priority.StreamDep) // high bit was set + p, hf.Priority.Weight, err = readByte(p) + if err != nil { + return nil, err + } + } + if len(p)-int(padLength) < 0 { + return nil, streamError(fh.StreamID, ErrCodeProtocol) + } + hf.headerFragBuf = p[:len(p)-int(padLength)] + return hf, nil +} + +// HeadersFrameParam are the parameters for writing a HEADERS frame. +type HeadersFrameParam struct { + // StreamID is the required Stream ID to initiate. + StreamID uint32 + // BlockFragment is part (or all) of a Header Block. + BlockFragment []byte + + // EndStream indicates that the header block is the last that + // the endpoint will send for the identified stream. Setting + // this flag causes the stream to enter one of "half closed" + // states. + EndStream bool + + // EndHeaders indicates that this frame contains an entire + // header block and is not followed by any + // CONTINUATION frames. + EndHeaders bool + + // PadLength is the optional number of bytes of zeros to add + // to this frame. + PadLength uint8 + + // Priority, if non-zero, includes stream priority information + // in the HEADER frame. + Priority PriorityParam +} + +// WriteHeaders writes a single HEADERS frame. +// +// This is a low-level header writing method. Encoding headers and +// splitting them into any necessary CONTINUATION frames is handled +// elsewhere. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WriteHeaders(p HeadersFrameParam) error { + if !validStreamID(p.StreamID) && !f.AllowIllegalWrites { + return errStreamID + } + var flags Flags + if p.PadLength != 0 { + flags |= FlagHeadersPadded + } + if p.EndStream { + flags |= FlagHeadersEndStream + } + if p.EndHeaders { + flags |= FlagHeadersEndHeaders + } + if !p.Priority.IsZero() { + flags |= FlagHeadersPriority + } + f.startWrite(FrameHeaders, flags, p.StreamID) + if p.PadLength != 0 { + f.writeByte(p.PadLength) + } + if !p.Priority.IsZero() { + v := p.Priority.StreamDep + if !validStreamIDOrZero(v) && !f.AllowIllegalWrites { + return errDepStreamID + } + if p.Priority.Exclusive { + v |= 1 << 31 + } + f.writeUint32(v) + f.writeByte(p.Priority.Weight) + } + f.wbuf = append(f.wbuf, p.BlockFragment...) + f.wbuf = append(f.wbuf, padZeros[:p.PadLength]...) + return f.endWrite() +} + +// A PriorityFrame specifies the sender-advised priority of a stream. +// See http://http2.github.io/http2-spec/#rfc.section.6.3 +type PriorityFrame struct { + FrameHeader + PriorityParam +} + +// PriorityParam are the stream prioritzation parameters. +type PriorityParam struct { + // StreamDep is a 31-bit stream identifier for the + // stream that this stream depends on. Zero means no + // dependency. + StreamDep uint32 + + // Exclusive is whether the dependency is exclusive. + Exclusive bool + + // Weight is the stream's zero-indexed weight. It should be + // set together with StreamDep, or neither should be set. Per + // the spec, "Add one to the value to obtain a weight between + // 1 and 256." + Weight uint8 +} + +func (p PriorityParam) IsZero() bool { + return p == PriorityParam{} +} + +func parsePriorityFrame(_ *frameCache, fh FrameHeader, payload []byte) (Frame, error) { + if fh.StreamID == 0 { + return nil, connError{ErrCodeProtocol, "PRIORITY frame with stream ID 0"} + } + if len(payload) != 5 { + return nil, connError{ErrCodeFrameSize, fmt.Sprintf("PRIORITY frame payload size was %d; want 5", len(payload))} + } + v := binary.BigEndian.Uint32(payload[:4]) + streamID := v & 0x7fffffff // mask off high bit + return &PriorityFrame{ + FrameHeader: fh, + PriorityParam: PriorityParam{ + Weight: payload[4], + StreamDep: streamID, + Exclusive: streamID != v, // was high bit set? + }, + }, nil +} + +// WritePriority writes a PRIORITY frame. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WritePriority(streamID uint32, p PriorityParam) error { + if !validStreamID(streamID) && !f.AllowIllegalWrites { + return errStreamID + } + if !validStreamIDOrZero(p.StreamDep) { + return errDepStreamID + } + f.startWrite(FramePriority, 0, streamID) + v := p.StreamDep + if p.Exclusive { + v |= 1 << 31 + } + f.writeUint32(v) + f.writeByte(p.Weight) + return f.endWrite() +} + +// A RSTStreamFrame allows for abnormal termination of a stream. +// See http://http2.github.io/http2-spec/#rfc.section.6.4 +type RSTStreamFrame struct { + FrameHeader + ErrCode ErrCode +} + +func parseRSTStreamFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { + if len(p) != 4 { + return nil, ConnectionError(ErrCodeFrameSize) + } + if fh.StreamID == 0 { + return nil, ConnectionError(ErrCodeProtocol) + } + return &RSTStreamFrame{fh, ErrCode(binary.BigEndian.Uint32(p[:4]))}, nil +} + +// WriteRSTStream writes a RST_STREAM frame. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WriteRSTStream(streamID uint32, code ErrCode) error { + if !validStreamID(streamID) && !f.AllowIllegalWrites { + return errStreamID + } + f.startWrite(FrameRSTStream, 0, streamID) + f.writeUint32(uint32(code)) + return f.endWrite() +} + +// A ContinuationFrame is used to continue a sequence of header block fragments. +// See http://http2.github.io/http2-spec/#rfc.section.6.10 +type ContinuationFrame struct { + FrameHeader + headerFragBuf []byte +} + +func parseContinuationFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { + if fh.StreamID == 0 { + return nil, connError{ErrCodeProtocol, "CONTINUATION frame with stream ID 0"} + } + return &ContinuationFrame{fh, p}, nil +} + +func (f *ContinuationFrame) HeaderBlockFragment() []byte { + f.checkValid() + return f.headerFragBuf +} + +func (f *ContinuationFrame) HeadersEnded() bool { + return f.FrameHeader.Flags.Has(FlagContinuationEndHeaders) +} + +// WriteContinuation writes a CONTINUATION frame. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WriteContinuation(streamID uint32, endHeaders bool, headerBlockFragment []byte) error { + if !validStreamID(streamID) && !f.AllowIllegalWrites { + return errStreamID + } + var flags Flags + if endHeaders { + flags |= FlagContinuationEndHeaders + } + f.startWrite(FrameContinuation, flags, streamID) + f.wbuf = append(f.wbuf, headerBlockFragment...) + return f.endWrite() +} + +// A PushPromiseFrame is used to initiate a server stream. +// See http://http2.github.io/http2-spec/#rfc.section.6.6 +type PushPromiseFrame struct { + FrameHeader + PromiseID uint32 + headerFragBuf []byte // not owned +} + +func (f *PushPromiseFrame) HeaderBlockFragment() []byte { + f.checkValid() + return f.headerFragBuf +} + +func (f *PushPromiseFrame) HeadersEnded() bool { + return f.FrameHeader.Flags.Has(FlagPushPromiseEndHeaders) +} + +func parsePushPromise(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err error) { + pp := &PushPromiseFrame{ + FrameHeader: fh, + } + if pp.StreamID == 0 { + // PUSH_PROMISE frames MUST be associated with an existing, + // peer-initiated stream. The stream identifier of a + // PUSH_PROMISE frame indicates the stream it is associated + // with. If the stream identifier field specifies the value + // 0x0, a recipient MUST respond with a connection error + // (Section 5.4.1) of type PROTOCOL_ERROR. + return nil, ConnectionError(ErrCodeProtocol) + } + // The PUSH_PROMISE frame includes optional padding. + // Padding fields and flags are identical to those defined for DATA frames + var padLength uint8 + if fh.Flags.Has(FlagPushPromisePadded) { + if p, padLength, err = readByte(p); err != nil { + return + } + } + + p, pp.PromiseID, err = readUint32(p) + if err != nil { + return + } + pp.PromiseID = pp.PromiseID & (1<<31 - 1) + + if int(padLength) > len(p) { + // like the DATA frame, error out if padding is longer than the body. + return nil, ConnectionError(ErrCodeProtocol) + } + pp.headerFragBuf = p[:len(p)-int(padLength)] + return pp, nil +} + +// PushPromiseParam are the parameters for writing a PUSH_PROMISE frame. +type PushPromiseParam struct { + // StreamID is the required Stream ID to initiate. + StreamID uint32 + + // PromiseID is the required Stream ID which this + // Push Promises + PromiseID uint32 + + // BlockFragment is part (or all) of a Header Block. + BlockFragment []byte + + // EndHeaders indicates that this frame contains an entire + // header block and is not followed by any + // CONTINUATION frames. + EndHeaders bool + + // PadLength is the optional number of bytes of zeros to add + // to this frame. + PadLength uint8 +} + +// WritePushPromise writes a single PushPromise Frame. +// +// As with Header Frames, This is the low level call for writing +// individual frames. Continuation frames are handled elsewhere. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WritePushPromise(p PushPromiseParam) error { + if !validStreamID(p.StreamID) && !f.AllowIllegalWrites { + return errStreamID + } + var flags Flags + if p.PadLength != 0 { + flags |= FlagPushPromisePadded + } + if p.EndHeaders { + flags |= FlagPushPromiseEndHeaders + } + f.startWrite(FramePushPromise, flags, p.StreamID) + if p.PadLength != 0 { + f.writeByte(p.PadLength) + } + if !validStreamID(p.PromiseID) && !f.AllowIllegalWrites { + return errStreamID + } + f.writeUint32(p.PromiseID) + f.wbuf = append(f.wbuf, p.BlockFragment...) + f.wbuf = append(f.wbuf, padZeros[:p.PadLength]...) + return f.endWrite() +} + +// WriteRawFrame writes a raw frame. This can be used to write +// extension frames unknown to this package. +func (f *Framer) WriteRawFrame(t FrameType, flags Flags, streamID uint32, payload []byte) error { + f.startWrite(t, flags, streamID) + f.writeBytes(payload) + return f.endWrite() +} + +func readByte(p []byte) (remain []byte, b byte, err error) { + if len(p) == 0 { + return nil, 0, io.ErrUnexpectedEOF + } + return p[1:], p[0], nil +} + +func readUint32(p []byte) (remain []byte, v uint32, err error) { + if len(p) < 4 { + return nil, 0, io.ErrUnexpectedEOF + } + return p[4:], binary.BigEndian.Uint32(p[:4]), nil +} + +type streamEnder interface { + StreamEnded() bool +} + +type headersEnder interface { + HeadersEnded() bool +} + +type headersOrContinuation interface { + headersEnder + HeaderBlockFragment() []byte +} + +// A MetaHeadersFrame is the representation of one HEADERS frame and +// zero or more contiguous CONTINUATION frames and the decoding of +// their HPACK-encoded contents. +// +// This type of frame does not appear on the wire and is only returned +// by the Framer when Framer.ReadMetaHeaders is set. +type MetaHeadersFrame struct { + *HeadersFrame + + // Fields are the fields contained in the HEADERS and + // CONTINUATION frames. The underlying slice is owned by the + // Framer and must not be retained after the next call to + // ReadFrame. + // + // Fields are guaranteed to be in the correct http2 order and + // not have unknown pseudo header fields or invalid header + // field names or values. Required pseudo header fields may be + // missing, however. Use the MetaHeadersFrame.Pseudo accessor + // method access pseudo headers. + Fields []hpack.HeaderField + + // Truncated is whether the max header list size limit was hit + // and Fields is incomplete. The hpack decoder state is still + // valid, however. + Truncated bool +} + +// PseudoValue returns the given pseudo header field's value. +// The provided pseudo field should not contain the leading colon. +func (mh *MetaHeadersFrame) PseudoValue(pseudo string) string { + for _, hf := range mh.Fields { + if !hf.IsPseudo() { + return "" + } + if hf.Name[1:] == pseudo { + return hf.Value + } + } + return "" +} + +// RegularFields returns the regular (non-pseudo) header fields of mh. +// The caller does not own the returned slice. +func (mh *MetaHeadersFrame) RegularFields() []hpack.HeaderField { + for i, hf := range mh.Fields { + if !hf.IsPseudo() { + return mh.Fields[i:] + } + } + return nil +} + +// PseudoFields returns the pseudo header fields of mh. +// The caller does not own the returned slice. +func (mh *MetaHeadersFrame) PseudoFields() []hpack.HeaderField { + for i, hf := range mh.Fields { + if !hf.IsPseudo() { + return mh.Fields[:i] + } + } + return mh.Fields +} + +func (mh *MetaHeadersFrame) checkPseudos() error { + var isRequest, isResponse bool + pf := mh.PseudoFields() + for i, hf := range pf { + switch hf.Name { + case ":method", ":path", ":scheme", ":authority": + isRequest = true + case ":status": + isResponse = true + default: + return pseudoHeaderError(hf.Name) + } + // Check for duplicates. + // This would be a bad algorithm, but N is 4. + // And this doesn't allocate. + for _, hf2 := range pf[:i] { + if hf.Name == hf2.Name { + return duplicatePseudoHeaderError(hf.Name) + } + } + } + if isRequest && isResponse { + return errMixPseudoHeaderTypes + } + return nil +} + +func (fr *Framer) maxHeaderStringLen() int { + v := fr.maxHeaderListSize() + if uint32(int(v)) == v { + return int(v) + } + // They had a crazy big number for MaxHeaderBytes anyway, + // so give them unlimited header lengths: + return 0 +} + +// readMetaFrame returns 0 or more CONTINUATION frames from fr and +// merge them into the provided hf and returns a MetaHeadersFrame +// with the decoded hpack values. +func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { + if fr.AllowIllegalReads { + return nil, errors.New("illegal use of AllowIllegalReads with ReadMetaHeaders") + } + mh := &MetaHeadersFrame{ + HeadersFrame: hf, + } + var remainSize = fr.maxHeaderListSize() + var sawRegular bool + + var invalid error // pseudo header field errors + hdec := fr.ReadMetaHeaders + hdec.SetEmitEnabled(true) + hdec.SetMaxStringLength(fr.maxHeaderStringLen()) + hdec.SetEmitFunc(func(hf hpack.HeaderField) { + if VerboseLogs && fr.logReads { + fr.debugReadLoggerf("http2: decoded hpack field %+v", hf) + } + if !httpguts.ValidHeaderFieldValue(hf.Value) { + invalid = headerFieldValueError(hf.Value) + } + isPseudo := strings.HasPrefix(hf.Name, ":") + if isPseudo { + if sawRegular { + invalid = errPseudoAfterRegular + } + } else { + sawRegular = true + if !validWireHeaderFieldName(hf.Name) { + invalid = headerFieldNameError(hf.Name) + } + } + + if invalid != nil { + hdec.SetEmitEnabled(false) + return + } + + size := hf.Size() + if size > remainSize { + hdec.SetEmitEnabled(false) + mh.Truncated = true + return + } + remainSize -= size + + mh.Fields = append(mh.Fields, hf) + }) + // Lose reference to MetaHeadersFrame: + defer hdec.SetEmitFunc(func(hf hpack.HeaderField) {}) + + var hc headersOrContinuation = hf + for { + frag := hc.HeaderBlockFragment() + if _, err := hdec.Write(frag); err != nil { + return nil, ConnectionError(ErrCodeCompression) + } + + if hc.HeadersEnded() { + break + } + if f, err := fr.ReadFrame(); err != nil { + return nil, err + } else { + hc = f.(*ContinuationFrame) // guaranteed by checkFrameOrder + } + } + + mh.HeadersFrame.headerFragBuf = nil + mh.HeadersFrame.invalidate() + + if err := hdec.Close(); err != nil { + return nil, ConnectionError(ErrCodeCompression) + } + if invalid != nil { + fr.errDetail = invalid + if VerboseLogs { + log.Printf("http2: invalid header: %v", invalid) + } + return nil, StreamError{mh.StreamID, ErrCodeProtocol, invalid} + } + if err := mh.checkPseudos(); err != nil { + fr.errDetail = err + if VerboseLogs { + log.Printf("http2: invalid pseudo headers: %v", err) + } + return nil, StreamError{mh.StreamID, ErrCodeProtocol, err} + } + return mh, nil +} + +func summarizeFrame(f Frame) string { + var buf bytes.Buffer + f.Header().writeDebug(&buf) + switch f := f.(type) { + case *SettingsFrame: + n := 0 + f.ForeachSetting(func(s Setting) error { + n++ + if n == 1 { + buf.WriteString(", settings:") + } + fmt.Fprintf(&buf, " %v=%v,", s.ID, s.Val) + return nil + }) + if n > 0 { + buf.Truncate(buf.Len() - 1) // remove trailing comma + } + case *DataFrame: + data := f.Data() + const max = 256 + if len(data) > max { + data = data[:max] + } + fmt.Fprintf(&buf, " data=%q", data) + if len(f.Data()) > max { + fmt.Fprintf(&buf, " (%d bytes omitted)", len(f.Data())-max) + } + case *WindowUpdateFrame: + if f.StreamID == 0 { + buf.WriteString(" (conn)") + } + fmt.Fprintf(&buf, " incr=%v", f.Increment) + case *PingFrame: + fmt.Fprintf(&buf, " ping=%q", f.Data[:]) + case *GoAwayFrame: + fmt.Fprintf(&buf, " LastStreamID=%v ErrCode=%v Debug=%q", + f.LastStreamID, f.ErrCode, f.debugData) + case *RSTStreamFrame: + fmt.Fprintf(&buf, " ErrCode=%v", f.ErrCode) + } + return buf.String() +} diff --git a/vendor/golang.org/x/net/http2/go111.go b/vendor/golang.org/x/net/http2/go111.go new file mode 100644 index 0000000..5bf62b0 --- /dev/null +++ b/vendor/golang.org/x/net/http2/go111.go @@ -0,0 +1,30 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.11 +// +build go1.11 + +package http2 + +import ( + "net/http/httptrace" + "net/textproto" +) + +func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { + return trace != nil && trace.WroteHeaderField != nil +} + +func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) { + if trace != nil && trace.WroteHeaderField != nil { + trace.WroteHeaderField(k, []string{v}) + } +} + +func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { + if trace != nil { + return trace.Got1xxResponse + } + return nil +} diff --git a/vendor/golang.org/x/net/http2/go115.go b/vendor/golang.org/x/net/http2/go115.go new file mode 100644 index 0000000..908af1a --- /dev/null +++ b/vendor/golang.org/x/net/http2/go115.go @@ -0,0 +1,27 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.15 +// +build go1.15 + +package http2 + +import ( + "context" + "crypto/tls" +) + +// dialTLSWithContext uses tls.Dialer, added in Go 1.15, to open a TLS +// connection. +func (t *Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) { + dialer := &tls.Dialer{ + Config: cfg, + } + cn, err := dialer.DialContext(ctx, network, addr) + if err != nil { + return nil, err + } + tlsCn := cn.(*tls.Conn) // DialContext comment promises this will always succeed + return tlsCn, nil +} diff --git a/vendor/golang.org/x/net/http2/gotrack.go b/vendor/golang.org/x/net/http2/gotrack.go new file mode 100644 index 0000000..9933c9f --- /dev/null +++ b/vendor/golang.org/x/net/http2/gotrack.go @@ -0,0 +1,170 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Defensive debug-only utility to track that functions run on the +// goroutine that they're supposed to. + +package http2 + +import ( + "bytes" + "errors" + "fmt" + "os" + "runtime" + "strconv" + "sync" +) + +var DebugGoroutines = os.Getenv("DEBUG_HTTP2_GOROUTINES") == "1" + +type goroutineLock uint64 + +func newGoroutineLock() goroutineLock { + if !DebugGoroutines { + return 0 + } + return goroutineLock(curGoroutineID()) +} + +func (g goroutineLock) check() { + if !DebugGoroutines { + return + } + if curGoroutineID() != uint64(g) { + panic("running on the wrong goroutine") + } +} + +func (g goroutineLock) checkNotOn() { + if !DebugGoroutines { + return + } + if curGoroutineID() == uint64(g) { + panic("running on the wrong goroutine") + } +} + +var goroutineSpace = []byte("goroutine ") + +func curGoroutineID() uint64 { + bp := littleBuf.Get().(*[]byte) + defer littleBuf.Put(bp) + b := *bp + b = b[:runtime.Stack(b, false)] + // Parse the 4707 out of "goroutine 4707 [" + b = bytes.TrimPrefix(b, goroutineSpace) + i := bytes.IndexByte(b, ' ') + if i < 0 { + panic(fmt.Sprintf("No space found in %q", b)) + } + b = b[:i] + n, err := parseUintBytes(b, 10, 64) + if err != nil { + panic(fmt.Sprintf("Failed to parse goroutine ID out of %q: %v", b, err)) + } + return n +} + +var littleBuf = sync.Pool{ + New: func() interface{} { + buf := make([]byte, 64) + return &buf + }, +} + +// parseUintBytes is like strconv.ParseUint, but using a []byte. +func parseUintBytes(s []byte, base int, bitSize int) (n uint64, err error) { + var cutoff, maxVal uint64 + + if bitSize == 0 { + bitSize = int(strconv.IntSize) + } + + s0 := s + switch { + case len(s) < 1: + err = strconv.ErrSyntax + goto Error + + case 2 <= base && base <= 36: + // valid base; nothing to do + + case base == 0: + // Look for octal, hex prefix. + switch { + case s[0] == '0' && len(s) > 1 && (s[1] == 'x' || s[1] == 'X'): + base = 16 + s = s[2:] + if len(s) < 1 { + err = strconv.ErrSyntax + goto Error + } + case s[0] == '0': + base = 8 + default: + base = 10 + } + + default: + err = errors.New("invalid base " + strconv.Itoa(base)) + goto Error + } + + n = 0 + cutoff = cutoff64(base) + maxVal = 1<= base { + n = 0 + err = strconv.ErrSyntax + goto Error + } + + if n >= cutoff { + // n*base overflows + n = 1<<64 - 1 + err = strconv.ErrRange + goto Error + } + n *= uint64(base) + + n1 := n + uint64(v) + if n1 < n || n1 > maxVal { + // n+v overflows + n = 1<<64 - 1 + err = strconv.ErrRange + goto Error + } + n = n1 + } + + return n, nil + +Error: + return n, &strconv.NumError{Func: "ParseUint", Num: string(s0), Err: err} +} + +// Return the first number n such that n*base >= 1<<64. +func cutoff64(base int) uint64 { + if base < 2 { + return 0 + } + return (1<<64-1)/uint64(base) + 1 +} diff --git a/vendor/golang.org/x/net/http2/headermap.go b/vendor/golang.org/x/net/http2/headermap.go new file mode 100644 index 0000000..9e12941 --- /dev/null +++ b/vendor/golang.org/x/net/http2/headermap.go @@ -0,0 +1,87 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "net/http" + "sync" +) + +var ( + commonBuildOnce sync.Once + commonLowerHeader map[string]string // Go-Canonical-Case -> lower-case + commonCanonHeader map[string]string // lower-case -> Go-Canonical-Case +) + +func buildCommonHeaderMapsOnce() { + commonBuildOnce.Do(buildCommonHeaderMaps) +} + +func buildCommonHeaderMaps() { + common := []string{ + "accept", + "accept-charset", + "accept-encoding", + "accept-language", + "accept-ranges", + "age", + "access-control-allow-origin", + "allow", + "authorization", + "cache-control", + "content-disposition", + "content-encoding", + "content-language", + "content-length", + "content-location", + "content-range", + "content-type", + "cookie", + "date", + "etag", + "expect", + "expires", + "from", + "host", + "if-match", + "if-modified-since", + "if-none-match", + "if-unmodified-since", + "last-modified", + "link", + "location", + "max-forwards", + "proxy-authenticate", + "proxy-authorization", + "range", + "referer", + "refresh", + "retry-after", + "server", + "set-cookie", + "strict-transport-security", + "trailer", + "transfer-encoding", + "user-agent", + "vary", + "via", + "www-authenticate", + } + commonLowerHeader = make(map[string]string, len(common)) + commonCanonHeader = make(map[string]string, len(common)) + for _, v := range common { + chk := http.CanonicalHeaderKey(v) + commonLowerHeader[chk] = v + commonCanonHeader[v] = chk + } +} + +func lowerHeader(v string) (lower string, ascii bool) { + buildCommonHeaderMapsOnce() + if s, ok := commonLowerHeader[v]; ok { + return s, true + } + return asciiToLower(v) +} diff --git a/vendor/golang.org/x/net/http2/hpack/encode.go b/vendor/golang.org/x/net/http2/hpack/encode.go new file mode 100644 index 0000000..97f1783 --- /dev/null +++ b/vendor/golang.org/x/net/http2/hpack/encode.go @@ -0,0 +1,240 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package hpack + +import ( + "io" +) + +const ( + uint32Max = ^uint32(0) + initialHeaderTableSize = 4096 +) + +type Encoder struct { + dynTab dynamicTable + // minSize is the minimum table size set by + // SetMaxDynamicTableSize after the previous Header Table Size + // Update. + minSize uint32 + // maxSizeLimit is the maximum table size this encoder + // supports. This will protect the encoder from too large + // size. + maxSizeLimit uint32 + // tableSizeUpdate indicates whether "Header Table Size + // Update" is required. + tableSizeUpdate bool + w io.Writer + buf []byte +} + +// NewEncoder returns a new Encoder which performs HPACK encoding. An +// encoded data is written to w. +func NewEncoder(w io.Writer) *Encoder { + e := &Encoder{ + minSize: uint32Max, + maxSizeLimit: initialHeaderTableSize, + tableSizeUpdate: false, + w: w, + } + e.dynTab.table.init() + e.dynTab.setMaxSize(initialHeaderTableSize) + return e +} + +// WriteField encodes f into a single Write to e's underlying Writer. +// This function may also produce bytes for "Header Table Size Update" +// if necessary. If produced, it is done before encoding f. +func (e *Encoder) WriteField(f HeaderField) error { + e.buf = e.buf[:0] + + if e.tableSizeUpdate { + e.tableSizeUpdate = false + if e.minSize < e.dynTab.maxSize { + e.buf = appendTableSize(e.buf, e.minSize) + } + e.minSize = uint32Max + e.buf = appendTableSize(e.buf, e.dynTab.maxSize) + } + + idx, nameValueMatch := e.searchTable(f) + if nameValueMatch { + e.buf = appendIndexed(e.buf, idx) + } else { + indexing := e.shouldIndex(f) + if indexing { + e.dynTab.add(f) + } + + if idx == 0 { + e.buf = appendNewName(e.buf, f, indexing) + } else { + e.buf = appendIndexedName(e.buf, f, idx, indexing) + } + } + n, err := e.w.Write(e.buf) + if err == nil && n != len(e.buf) { + err = io.ErrShortWrite + } + return err +} + +// searchTable searches f in both stable and dynamic header tables. +// The static header table is searched first. Only when there is no +// exact match for both name and value, the dynamic header table is +// then searched. If there is no match, i is 0. If both name and value +// match, i is the matched index and nameValueMatch becomes true. If +// only name matches, i points to that index and nameValueMatch +// becomes false. +func (e *Encoder) searchTable(f HeaderField) (i uint64, nameValueMatch bool) { + i, nameValueMatch = staticTable.search(f) + if nameValueMatch { + return i, true + } + + j, nameValueMatch := e.dynTab.table.search(f) + if nameValueMatch || (i == 0 && j != 0) { + return j + uint64(staticTable.len()), nameValueMatch + } + + return i, false +} + +// SetMaxDynamicTableSize changes the dynamic header table size to v. +// The actual size is bounded by the value passed to +// SetMaxDynamicTableSizeLimit. +func (e *Encoder) SetMaxDynamicTableSize(v uint32) { + if v > e.maxSizeLimit { + v = e.maxSizeLimit + } + if v < e.minSize { + e.minSize = v + } + e.tableSizeUpdate = true + e.dynTab.setMaxSize(v) +} + +// SetMaxDynamicTableSizeLimit changes the maximum value that can be +// specified in SetMaxDynamicTableSize to v. By default, it is set to +// 4096, which is the same size of the default dynamic header table +// size described in HPACK specification. If the current maximum +// dynamic header table size is strictly greater than v, "Header Table +// Size Update" will be done in the next WriteField call and the +// maximum dynamic header table size is truncated to v. +func (e *Encoder) SetMaxDynamicTableSizeLimit(v uint32) { + e.maxSizeLimit = v + if e.dynTab.maxSize > v { + e.tableSizeUpdate = true + e.dynTab.setMaxSize(v) + } +} + +// shouldIndex reports whether f should be indexed. +func (e *Encoder) shouldIndex(f HeaderField) bool { + return !f.Sensitive && f.Size() <= e.dynTab.maxSize +} + +// appendIndexed appends index i, as encoded in "Indexed Header Field" +// representation, to dst and returns the extended buffer. +func appendIndexed(dst []byte, i uint64) []byte { + first := len(dst) + dst = appendVarInt(dst, 7, i) + dst[first] |= 0x80 + return dst +} + +// appendNewName appends f, as encoded in one of "Literal Header field +// - New Name" representation variants, to dst and returns the +// extended buffer. +// +// If f.Sensitive is true, "Never Indexed" representation is used. If +// f.Sensitive is false and indexing is true, "Incremental Indexing" +// representation is used. +func appendNewName(dst []byte, f HeaderField, indexing bool) []byte { + dst = append(dst, encodeTypeByte(indexing, f.Sensitive)) + dst = appendHpackString(dst, f.Name) + return appendHpackString(dst, f.Value) +} + +// appendIndexedName appends f and index i referring indexed name +// entry, as encoded in one of "Literal Header field - Indexed Name" +// representation variants, to dst and returns the extended buffer. +// +// If f.Sensitive is true, "Never Indexed" representation is used. If +// f.Sensitive is false and indexing is true, "Incremental Indexing" +// representation is used. +func appendIndexedName(dst []byte, f HeaderField, i uint64, indexing bool) []byte { + first := len(dst) + var n byte + if indexing { + n = 6 + } else { + n = 4 + } + dst = appendVarInt(dst, n, i) + dst[first] |= encodeTypeByte(indexing, f.Sensitive) + return appendHpackString(dst, f.Value) +} + +// appendTableSize appends v, as encoded in "Header Table Size Update" +// representation, to dst and returns the extended buffer. +func appendTableSize(dst []byte, v uint32) []byte { + first := len(dst) + dst = appendVarInt(dst, 5, uint64(v)) + dst[first] |= 0x20 + return dst +} + +// appendVarInt appends i, as encoded in variable integer form using n +// bit prefix, to dst and returns the extended buffer. +// +// See +// http://http2.github.io/http2-spec/compression.html#integer.representation +func appendVarInt(dst []byte, n byte, i uint64) []byte { + k := uint64((1 << n) - 1) + if i < k { + return append(dst, byte(i)) + } + dst = append(dst, byte(k)) + i -= k + for ; i >= 128; i >>= 7 { + dst = append(dst, byte(0x80|(i&0x7f))) + } + return append(dst, byte(i)) +} + +// appendHpackString appends s, as encoded in "String Literal" +// representation, to dst and returns the extended buffer. +// +// s will be encoded in Huffman codes only when it produces strictly +// shorter byte string. +func appendHpackString(dst []byte, s string) []byte { + huffmanLength := HuffmanEncodeLength(s) + if huffmanLength < uint64(len(s)) { + first := len(dst) + dst = appendVarInt(dst, 7, huffmanLength) + dst = AppendHuffmanString(dst, s) + dst[first] |= 0x80 + } else { + dst = appendVarInt(dst, 7, uint64(len(s))) + dst = append(dst, s...) + } + return dst +} + +// encodeTypeByte returns type byte. If sensitive is true, type byte +// for "Never Indexed" representation is returned. If sensitive is +// false and indexing is true, type byte for "Incremental Indexing" +// representation is returned. Otherwise, type byte for "Without +// Indexing" is returned. +func encodeTypeByte(indexing, sensitive bool) byte { + if sensitive { + return 0x10 + } + if indexing { + return 0x40 + } + return 0 +} diff --git a/vendor/golang.org/x/net/http2/hpack/hpack.go b/vendor/golang.org/x/net/http2/hpack/hpack.go new file mode 100644 index 0000000..85f18a2 --- /dev/null +++ b/vendor/golang.org/x/net/http2/hpack/hpack.go @@ -0,0 +1,504 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package hpack implements HPACK, a compression format for +// efficiently representing HTTP header fields in the context of HTTP/2. +// +// See http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09 +package hpack + +import ( + "bytes" + "errors" + "fmt" +) + +// A DecodingError is something the spec defines as a decoding error. +type DecodingError struct { + Err error +} + +func (de DecodingError) Error() string { + return fmt.Sprintf("decoding error: %v", de.Err) +} + +// An InvalidIndexError is returned when an encoder references a table +// entry before the static table or after the end of the dynamic table. +type InvalidIndexError int + +func (e InvalidIndexError) Error() string { + return fmt.Sprintf("invalid indexed representation index %d", int(e)) +} + +// A HeaderField is a name-value pair. Both the name and value are +// treated as opaque sequences of octets. +type HeaderField struct { + Name, Value string + + // Sensitive means that this header field should never be + // indexed. + Sensitive bool +} + +// IsPseudo reports whether the header field is an http2 pseudo header. +// That is, it reports whether it starts with a colon. +// It is not otherwise guaranteed to be a valid pseudo header field, +// though. +func (hf HeaderField) IsPseudo() bool { + return len(hf.Name) != 0 && hf.Name[0] == ':' +} + +func (hf HeaderField) String() string { + var suffix string + if hf.Sensitive { + suffix = " (sensitive)" + } + return fmt.Sprintf("header field %q = %q%s", hf.Name, hf.Value, suffix) +} + +// Size returns the size of an entry per RFC 7541 section 4.1. +func (hf HeaderField) Size() uint32 { + // http://http2.github.io/http2-spec/compression.html#rfc.section.4.1 + // "The size of the dynamic table is the sum of the size of + // its entries. The size of an entry is the sum of its name's + // length in octets (as defined in Section 5.2), its value's + // length in octets (see Section 5.2), plus 32. The size of + // an entry is calculated using the length of the name and + // value without any Huffman encoding applied." + + // This can overflow if somebody makes a large HeaderField + // Name and/or Value by hand, but we don't care, because that + // won't happen on the wire because the encoding doesn't allow + // it. + return uint32(len(hf.Name) + len(hf.Value) + 32) +} + +// A Decoder is the decoding context for incremental processing of +// header blocks. +type Decoder struct { + dynTab dynamicTable + emit func(f HeaderField) + + emitEnabled bool // whether calls to emit are enabled + maxStrLen int // 0 means unlimited + + // buf is the unparsed buffer. It's only written to + // saveBuf if it was truncated in the middle of a header + // block. Because it's usually not owned, we can only + // process it under Write. + buf []byte // not owned; only valid during Write + + // saveBuf is previous data passed to Write which we weren't able + // to fully parse before. Unlike buf, we own this data. + saveBuf bytes.Buffer + + firstField bool // processing the first field of the header block +} + +// NewDecoder returns a new decoder with the provided maximum dynamic +// table size. The emitFunc will be called for each valid field +// parsed, in the same goroutine as calls to Write, before Write returns. +func NewDecoder(maxDynamicTableSize uint32, emitFunc func(f HeaderField)) *Decoder { + d := &Decoder{ + emit: emitFunc, + emitEnabled: true, + firstField: true, + } + d.dynTab.table.init() + d.dynTab.allowedMaxSize = maxDynamicTableSize + d.dynTab.setMaxSize(maxDynamicTableSize) + return d +} + +// ErrStringLength is returned by Decoder.Write when the max string length +// (as configured by Decoder.SetMaxStringLength) would be violated. +var ErrStringLength = errors.New("hpack: string too long") + +// SetMaxStringLength sets the maximum size of a HeaderField name or +// value string. If a string exceeds this length (even after any +// decompression), Write will return ErrStringLength. +// A value of 0 means unlimited and is the default from NewDecoder. +func (d *Decoder) SetMaxStringLength(n int) { + d.maxStrLen = n +} + +// SetEmitFunc changes the callback used when new header fields +// are decoded. +// It must be non-nil. It does not affect EmitEnabled. +func (d *Decoder) SetEmitFunc(emitFunc func(f HeaderField)) { + d.emit = emitFunc +} + +// SetEmitEnabled controls whether the emitFunc provided to NewDecoder +// should be called. The default is true. +// +// This facility exists to let servers enforce MAX_HEADER_LIST_SIZE +// while still decoding and keeping in-sync with decoder state, but +// without doing unnecessary decompression or generating unnecessary +// garbage for header fields past the limit. +func (d *Decoder) SetEmitEnabled(v bool) { d.emitEnabled = v } + +// EmitEnabled reports whether calls to the emitFunc provided to NewDecoder +// are currently enabled. The default is true. +func (d *Decoder) EmitEnabled() bool { return d.emitEnabled } + +// TODO: add method *Decoder.Reset(maxSize, emitFunc) to let callers re-use Decoders and their +// underlying buffers for garbage reasons. + +func (d *Decoder) SetMaxDynamicTableSize(v uint32) { + d.dynTab.setMaxSize(v) +} + +// SetAllowedMaxDynamicTableSize sets the upper bound that the encoded +// stream (via dynamic table size updates) may set the maximum size +// to. +func (d *Decoder) SetAllowedMaxDynamicTableSize(v uint32) { + d.dynTab.allowedMaxSize = v +} + +type dynamicTable struct { + // http://http2.github.io/http2-spec/compression.html#rfc.section.2.3.2 + table headerFieldTable + size uint32 // in bytes + maxSize uint32 // current maxSize + allowedMaxSize uint32 // maxSize may go up to this, inclusive +} + +func (dt *dynamicTable) setMaxSize(v uint32) { + dt.maxSize = v + dt.evict() +} + +func (dt *dynamicTable) add(f HeaderField) { + dt.table.addEntry(f) + dt.size += f.Size() + dt.evict() +} + +// If we're too big, evict old stuff. +func (dt *dynamicTable) evict() { + var n int + for dt.size > dt.maxSize && n < dt.table.len() { + dt.size -= dt.table.ents[n].Size() + n++ + } + dt.table.evictOldest(n) +} + +func (d *Decoder) maxTableIndex() int { + // This should never overflow. RFC 7540 Section 6.5.2 limits the size of + // the dynamic table to 2^32 bytes, where each entry will occupy more than + // one byte. Further, the staticTable has a fixed, small length. + return d.dynTab.table.len() + staticTable.len() +} + +func (d *Decoder) at(i uint64) (hf HeaderField, ok bool) { + // See Section 2.3.3. + if i == 0 { + return + } + if i <= uint64(staticTable.len()) { + return staticTable.ents[i-1], true + } + if i > uint64(d.maxTableIndex()) { + return + } + // In the dynamic table, newer entries have lower indices. + // However, dt.ents[0] is the oldest entry. Hence, dt.ents is + // the reversed dynamic table. + dt := d.dynTab.table + return dt.ents[dt.len()-(int(i)-staticTable.len())], true +} + +// Decode decodes an entire block. +// +// TODO: remove this method and make it incremental later? This is +// easier for debugging now. +func (d *Decoder) DecodeFull(p []byte) ([]HeaderField, error) { + var hf []HeaderField + saveFunc := d.emit + defer func() { d.emit = saveFunc }() + d.emit = func(f HeaderField) { hf = append(hf, f) } + if _, err := d.Write(p); err != nil { + return nil, err + } + if err := d.Close(); err != nil { + return nil, err + } + return hf, nil +} + +// Close declares that the decoding is complete and resets the Decoder +// to be reused again for a new header block. If there is any remaining +// data in the decoder's buffer, Close returns an error. +func (d *Decoder) Close() error { + if d.saveBuf.Len() > 0 { + d.saveBuf.Reset() + return DecodingError{errors.New("truncated headers")} + } + d.firstField = true + return nil +} + +func (d *Decoder) Write(p []byte) (n int, err error) { + if len(p) == 0 { + // Prevent state machine CPU attacks (making us redo + // work up to the point of finding out we don't have + // enough data) + return + } + // Only copy the data if we have to. Optimistically assume + // that p will contain a complete header block. + if d.saveBuf.Len() == 0 { + d.buf = p + } else { + d.saveBuf.Write(p) + d.buf = d.saveBuf.Bytes() + d.saveBuf.Reset() + } + + for len(d.buf) > 0 { + err = d.parseHeaderFieldRepr() + if err == errNeedMore { + // Extra paranoia, making sure saveBuf won't + // get too large. All the varint and string + // reading code earlier should already catch + // overlong things and return ErrStringLength, + // but keep this as a last resort. + const varIntOverhead = 8 // conservative + if d.maxStrLen != 0 && int64(len(d.buf)) > 2*(int64(d.maxStrLen)+varIntOverhead) { + return 0, ErrStringLength + } + d.saveBuf.Write(d.buf) + return len(p), nil + } + d.firstField = false + if err != nil { + break + } + } + return len(p), err +} + +// errNeedMore is an internal sentinel error value that means the +// buffer is truncated and we need to read more data before we can +// continue parsing. +var errNeedMore = errors.New("need more data") + +type indexType int + +const ( + indexedTrue indexType = iota + indexedFalse + indexedNever +) + +func (v indexType) indexed() bool { return v == indexedTrue } +func (v indexType) sensitive() bool { return v == indexedNever } + +// returns errNeedMore if there isn't enough data available. +// any other error is fatal. +// consumes d.buf iff it returns nil. +// precondition: must be called with len(d.buf) > 0 +func (d *Decoder) parseHeaderFieldRepr() error { + b := d.buf[0] + switch { + case b&128 != 0: + // Indexed representation. + // High bit set? + // http://http2.github.io/http2-spec/compression.html#rfc.section.6.1 + return d.parseFieldIndexed() + case b&192 == 64: + // 6.2.1 Literal Header Field with Incremental Indexing + // 0b10xxxxxx: top two bits are 10 + // http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.1 + return d.parseFieldLiteral(6, indexedTrue) + case b&240 == 0: + // 6.2.2 Literal Header Field without Indexing + // 0b0000xxxx: top four bits are 0000 + // http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.2 + return d.parseFieldLiteral(4, indexedFalse) + case b&240 == 16: + // 6.2.3 Literal Header Field never Indexed + // 0b0001xxxx: top four bits are 0001 + // http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.3 + return d.parseFieldLiteral(4, indexedNever) + case b&224 == 32: + // 6.3 Dynamic Table Size Update + // Top three bits are '001'. + // http://http2.github.io/http2-spec/compression.html#rfc.section.6.3 + return d.parseDynamicTableSizeUpdate() + } + + return DecodingError{errors.New("invalid encoding")} +} + +// (same invariants and behavior as parseHeaderFieldRepr) +func (d *Decoder) parseFieldIndexed() error { + buf := d.buf + idx, buf, err := readVarInt(7, buf) + if err != nil { + return err + } + hf, ok := d.at(idx) + if !ok { + return DecodingError{InvalidIndexError(idx)} + } + d.buf = buf + return d.callEmit(HeaderField{Name: hf.Name, Value: hf.Value}) +} + +// (same invariants and behavior as parseHeaderFieldRepr) +func (d *Decoder) parseFieldLiteral(n uint8, it indexType) error { + buf := d.buf + nameIdx, buf, err := readVarInt(n, buf) + if err != nil { + return err + } + + var hf HeaderField + wantStr := d.emitEnabled || it.indexed() + if nameIdx > 0 { + ihf, ok := d.at(nameIdx) + if !ok { + return DecodingError{InvalidIndexError(nameIdx)} + } + hf.Name = ihf.Name + } else { + hf.Name, buf, err = d.readString(buf, wantStr) + if err != nil { + return err + } + } + hf.Value, buf, err = d.readString(buf, wantStr) + if err != nil { + return err + } + d.buf = buf + if it.indexed() { + d.dynTab.add(hf) + } + hf.Sensitive = it.sensitive() + return d.callEmit(hf) +} + +func (d *Decoder) callEmit(hf HeaderField) error { + if d.maxStrLen != 0 { + if len(hf.Name) > d.maxStrLen || len(hf.Value) > d.maxStrLen { + return ErrStringLength + } + } + if d.emitEnabled { + d.emit(hf) + } + return nil +} + +// (same invariants and behavior as parseHeaderFieldRepr) +func (d *Decoder) parseDynamicTableSizeUpdate() error { + // RFC 7541, sec 4.2: This dynamic table size update MUST occur at the + // beginning of the first header block following the change to the dynamic table size. + if !d.firstField && d.dynTab.size > 0 { + return DecodingError{errors.New("dynamic table size update MUST occur at the beginning of a header block")} + } + + buf := d.buf + size, buf, err := readVarInt(5, buf) + if err != nil { + return err + } + if size > uint64(d.dynTab.allowedMaxSize) { + return DecodingError{errors.New("dynamic table size update too large")} + } + d.dynTab.setMaxSize(uint32(size)) + d.buf = buf + return nil +} + +var errVarintOverflow = DecodingError{errors.New("varint integer overflow")} + +// readVarInt reads an unsigned variable length integer off the +// beginning of p. n is the parameter as described in +// http://http2.github.io/http2-spec/compression.html#rfc.section.5.1. +// +// n must always be between 1 and 8. +// +// The returned remain buffer is either a smaller suffix of p, or err != nil. +// The error is errNeedMore if p doesn't contain a complete integer. +func readVarInt(n byte, p []byte) (i uint64, remain []byte, err error) { + if n < 1 || n > 8 { + panic("bad n") + } + if len(p) == 0 { + return 0, p, errNeedMore + } + i = uint64(p[0]) + if n < 8 { + i &= (1 << uint64(n)) - 1 + } + if i < (1< 0 { + b := p[0] + p = p[1:] + i += uint64(b&127) << m + if b&128 == 0 { + return i, p, nil + } + m += 7 + if m >= 63 { // TODO: proper overflow check. making this up. + return 0, origP, errVarintOverflow + } + } + return 0, origP, errNeedMore +} + +// readString decodes an hpack string from p. +// +// wantStr is whether s will be used. If false, decompression and +// []byte->string garbage are skipped if s will be ignored +// anyway. This does mean that huffman decoding errors for non-indexed +// strings past the MAX_HEADER_LIST_SIZE are ignored, but the server +// is returning an error anyway, and because they're not indexed, the error +// won't affect the decoding state. +func (d *Decoder) readString(p []byte, wantStr bool) (s string, remain []byte, err error) { + if len(p) == 0 { + return "", p, errNeedMore + } + isHuff := p[0]&128 != 0 + strLen, p, err := readVarInt(7, p) + if err != nil { + return "", p, err + } + if d.maxStrLen != 0 && strLen > uint64(d.maxStrLen) { + return "", nil, ErrStringLength + } + if uint64(len(p)) < strLen { + return "", p, errNeedMore + } + if !isHuff { + if wantStr { + s = string(p[:strLen]) + } + return s, p[strLen:], nil + } + + if wantStr { + buf := bufPool.Get().(*bytes.Buffer) + buf.Reset() // don't trust others + defer bufPool.Put(buf) + if err := huffmanDecode(buf, d.maxStrLen, p[:strLen]); err != nil { + buf.Reset() + return "", nil, err + } + s = buf.String() + buf.Reset() // be nice to GC + } + return s, p[strLen:], nil +} diff --git a/vendor/golang.org/x/net/http2/hpack/huffman.go b/vendor/golang.org/x/net/http2/hpack/huffman.go new file mode 100644 index 0000000..a1ab2f0 --- /dev/null +++ b/vendor/golang.org/x/net/http2/hpack/huffman.go @@ -0,0 +1,229 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package hpack + +import ( + "bytes" + "errors" + "io" + "sync" +) + +var bufPool = sync.Pool{ + New: func() interface{} { return new(bytes.Buffer) }, +} + +// HuffmanDecode decodes the string in v and writes the expanded +// result to w, returning the number of bytes written to w and the +// Write call's return value. At most one Write call is made. +func HuffmanDecode(w io.Writer, v []byte) (int, error) { + buf := bufPool.Get().(*bytes.Buffer) + buf.Reset() + defer bufPool.Put(buf) + if err := huffmanDecode(buf, 0, v); err != nil { + return 0, err + } + return w.Write(buf.Bytes()) +} + +// HuffmanDecodeToString decodes the string in v. +func HuffmanDecodeToString(v []byte) (string, error) { + buf := bufPool.Get().(*bytes.Buffer) + buf.Reset() + defer bufPool.Put(buf) + if err := huffmanDecode(buf, 0, v); err != nil { + return "", err + } + return buf.String(), nil +} + +// ErrInvalidHuffman is returned for errors found decoding +// Huffman-encoded strings. +var ErrInvalidHuffman = errors.New("hpack: invalid Huffman-encoded data") + +// huffmanDecode decodes v to buf. +// If maxLen is greater than 0, attempts to write more to buf than +// maxLen bytes will return ErrStringLength. +func huffmanDecode(buf *bytes.Buffer, maxLen int, v []byte) error { + rootHuffmanNode := getRootHuffmanNode() + n := rootHuffmanNode + // cur is the bit buffer that has not been fed into n. + // cbits is the number of low order bits in cur that are valid. + // sbits is the number of bits of the symbol prefix being decoded. + cur, cbits, sbits := uint(0), uint8(0), uint8(0) + for _, b := range v { + cur = cur<<8 | uint(b) + cbits += 8 + sbits += 8 + for cbits >= 8 { + idx := byte(cur >> (cbits - 8)) + n = n.children[idx] + if n == nil { + return ErrInvalidHuffman + } + if n.children == nil { + if maxLen != 0 && buf.Len() == maxLen { + return ErrStringLength + } + buf.WriteByte(n.sym) + cbits -= n.codeLen + n = rootHuffmanNode + sbits = cbits + } else { + cbits -= 8 + } + } + } + for cbits > 0 { + n = n.children[byte(cur<<(8-cbits))] + if n == nil { + return ErrInvalidHuffman + } + if n.children != nil || n.codeLen > cbits { + break + } + if maxLen != 0 && buf.Len() == maxLen { + return ErrStringLength + } + buf.WriteByte(n.sym) + cbits -= n.codeLen + n = rootHuffmanNode + sbits = cbits + } + if sbits > 7 { + // Either there was an incomplete symbol, or overlong padding. + // Both are decoding errors per RFC 7541 section 5.2. + return ErrInvalidHuffman + } + if mask := uint(1< 8 { + codeLen -= 8 + i := uint8(code >> codeLen) + if cur.children[i] == nil { + cur.children[i] = newInternalNode() + } + cur = cur.children[i] + } + shift := 8 - codeLen + start, end := int(uint8(code<> (nbits - rembits)) + dst[len(dst)-1] |= t + } + + return dst +} + +// HuffmanEncodeLength returns the number of bytes required to encode +// s in Huffman codes. The result is round up to byte boundary. +func HuffmanEncodeLength(s string) uint64 { + n := uint64(0) + for i := 0; i < len(s); i++ { + n += uint64(huffmanCodeLen[s[i]]) + } + return (n + 7) / 8 +} + +// appendByteToHuffmanCode appends Huffman code for c to dst and +// returns the extended buffer and the remaining bits in the last +// element. The appending is not byte aligned and the remaining bits +// in the last element of dst is given in rembits. +func appendByteToHuffmanCode(dst []byte, rembits uint8, c byte) ([]byte, uint8) { + code := huffmanCodes[c] + nbits := huffmanCodeLen[c] + + for { + if rembits > nbits { + t := uint8(code << (rembits - nbits)) + dst[len(dst)-1] |= t + rembits -= nbits + break + } + + t := uint8(code >> (nbits - rembits)) + dst[len(dst)-1] |= t + + nbits -= rembits + rembits = 8 + + if nbits == 0 { + break + } + + dst = append(dst, 0) + } + + return dst, rembits +} diff --git a/vendor/golang.org/x/net/http2/hpack/tables.go b/vendor/golang.org/x/net/http2/hpack/tables.go new file mode 100644 index 0000000..a66cfbe --- /dev/null +++ b/vendor/golang.org/x/net/http2/hpack/tables.go @@ -0,0 +1,479 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package hpack + +import ( + "fmt" +) + +// headerFieldTable implements a list of HeaderFields. +// This is used to implement the static and dynamic tables. +type headerFieldTable struct { + // For static tables, entries are never evicted. + // + // For dynamic tables, entries are evicted from ents[0] and added to the end. + // Each entry has a unique id that starts at one and increments for each + // entry that is added. This unique id is stable across evictions, meaning + // it can be used as a pointer to a specific entry. As in hpack, unique ids + // are 1-based. The unique id for ents[k] is k + evictCount + 1. + // + // Zero is not a valid unique id. + // + // evictCount should not overflow in any remotely practical situation. In + // practice, we will have one dynamic table per HTTP/2 connection. If we + // assume a very powerful server that handles 1M QPS per connection and each + // request adds (then evicts) 100 entries from the table, it would still take + // 2M years for evictCount to overflow. + ents []HeaderField + evictCount uint64 + + // byName maps a HeaderField name to the unique id of the newest entry with + // the same name. See above for a definition of "unique id". + byName map[string]uint64 + + // byNameValue maps a HeaderField name/value pair to the unique id of the newest + // entry with the same name and value. See above for a definition of "unique id". + byNameValue map[pairNameValue]uint64 +} + +type pairNameValue struct { + name, value string +} + +func (t *headerFieldTable) init() { + t.byName = make(map[string]uint64) + t.byNameValue = make(map[pairNameValue]uint64) +} + +// len reports the number of entries in the table. +func (t *headerFieldTable) len() int { + return len(t.ents) +} + +// addEntry adds a new entry. +func (t *headerFieldTable) addEntry(f HeaderField) { + id := uint64(t.len()) + t.evictCount + 1 + t.byName[f.Name] = id + t.byNameValue[pairNameValue{f.Name, f.Value}] = id + t.ents = append(t.ents, f) +} + +// evictOldest evicts the n oldest entries in the table. +func (t *headerFieldTable) evictOldest(n int) { + if n > t.len() { + panic(fmt.Sprintf("evictOldest(%v) on table with %v entries", n, t.len())) + } + for k := 0; k < n; k++ { + f := t.ents[k] + id := t.evictCount + uint64(k) + 1 + if t.byName[f.Name] == id { + delete(t.byName, f.Name) + } + if p := (pairNameValue{f.Name, f.Value}); t.byNameValue[p] == id { + delete(t.byNameValue, p) + } + } + copy(t.ents, t.ents[n:]) + for k := t.len() - n; k < t.len(); k++ { + t.ents[k] = HeaderField{} // so strings can be garbage collected + } + t.ents = t.ents[:t.len()-n] + if t.evictCount+uint64(n) < t.evictCount { + panic("evictCount overflow") + } + t.evictCount += uint64(n) +} + +// search finds f in the table. If there is no match, i is 0. +// If both name and value match, i is the matched index and nameValueMatch +// becomes true. If only name matches, i points to that index and +// nameValueMatch becomes false. +// +// The returned index is a 1-based HPACK index. For dynamic tables, HPACK says +// that index 1 should be the newest entry, but t.ents[0] is the oldest entry, +// meaning t.ents is reversed for dynamic tables. Hence, when t is a dynamic +// table, the return value i actually refers to the entry t.ents[t.len()-i]. +// +// All tables are assumed to be a dynamic tables except for the global +// staticTable pointer. +// +// See Section 2.3.3. +func (t *headerFieldTable) search(f HeaderField) (i uint64, nameValueMatch bool) { + if !f.Sensitive { + if id := t.byNameValue[pairNameValue{f.Name, f.Value}]; id != 0 { + return t.idToIndex(id), true + } + } + if id := t.byName[f.Name]; id != 0 { + return t.idToIndex(id), false + } + return 0, false +} + +// idToIndex converts a unique id to an HPACK index. +// See Section 2.3.3. +func (t *headerFieldTable) idToIndex(id uint64) uint64 { + if id <= t.evictCount { + panic(fmt.Sprintf("id (%v) <= evictCount (%v)", id, t.evictCount)) + } + k := id - t.evictCount - 1 // convert id to an index t.ents[k] + if t != staticTable { + return uint64(t.len()) - k // dynamic table + } + return k + 1 +} + +// http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07#appendix-B +var staticTable = newStaticTable() +var staticTableEntries = [...]HeaderField{ + {Name: ":authority"}, + {Name: ":method", Value: "GET"}, + {Name: ":method", Value: "POST"}, + {Name: ":path", Value: "/"}, + {Name: ":path", Value: "/index.html"}, + {Name: ":scheme", Value: "http"}, + {Name: ":scheme", Value: "https"}, + {Name: ":status", Value: "200"}, + {Name: ":status", Value: "204"}, + {Name: ":status", Value: "206"}, + {Name: ":status", Value: "304"}, + {Name: ":status", Value: "400"}, + {Name: ":status", Value: "404"}, + {Name: ":status", Value: "500"}, + {Name: "accept-charset"}, + {Name: "accept-encoding", Value: "gzip, deflate"}, + {Name: "accept-language"}, + {Name: "accept-ranges"}, + {Name: "accept"}, + {Name: "access-control-allow-origin"}, + {Name: "age"}, + {Name: "allow"}, + {Name: "authorization"}, + {Name: "cache-control"}, + {Name: "content-disposition"}, + {Name: "content-encoding"}, + {Name: "content-language"}, + {Name: "content-length"}, + {Name: "content-location"}, + {Name: "content-range"}, + {Name: "content-type"}, + {Name: "cookie"}, + {Name: "date"}, + {Name: "etag"}, + {Name: "expect"}, + {Name: "expires"}, + {Name: "from"}, + {Name: "host"}, + {Name: "if-match"}, + {Name: "if-modified-since"}, + {Name: "if-none-match"}, + {Name: "if-range"}, + {Name: "if-unmodified-since"}, + {Name: "last-modified"}, + {Name: "link"}, + {Name: "location"}, + {Name: "max-forwards"}, + {Name: "proxy-authenticate"}, + {Name: "proxy-authorization"}, + {Name: "range"}, + {Name: "referer"}, + {Name: "refresh"}, + {Name: "retry-after"}, + {Name: "server"}, + {Name: "set-cookie"}, + {Name: "strict-transport-security"}, + {Name: "transfer-encoding"}, + {Name: "user-agent"}, + {Name: "vary"}, + {Name: "via"}, + {Name: "www-authenticate"}, +} + +func newStaticTable() *headerFieldTable { + t := &headerFieldTable{} + t.init() + for _, e := range staticTableEntries[:] { + t.addEntry(e) + } + return t +} + +var huffmanCodes = [256]uint32{ + 0x1ff8, + 0x7fffd8, + 0xfffffe2, + 0xfffffe3, + 0xfffffe4, + 0xfffffe5, + 0xfffffe6, + 0xfffffe7, + 0xfffffe8, + 0xffffea, + 0x3ffffffc, + 0xfffffe9, + 0xfffffea, + 0x3ffffffd, + 0xfffffeb, + 0xfffffec, + 0xfffffed, + 0xfffffee, + 0xfffffef, + 0xffffff0, + 0xffffff1, + 0xffffff2, + 0x3ffffffe, + 0xffffff3, + 0xffffff4, + 0xffffff5, + 0xffffff6, + 0xffffff7, + 0xffffff8, + 0xffffff9, + 0xffffffa, + 0xffffffb, + 0x14, + 0x3f8, + 0x3f9, + 0xffa, + 0x1ff9, + 0x15, + 0xf8, + 0x7fa, + 0x3fa, + 0x3fb, + 0xf9, + 0x7fb, + 0xfa, + 0x16, + 0x17, + 0x18, + 0x0, + 0x1, + 0x2, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x5c, + 0xfb, + 0x7ffc, + 0x20, + 0xffb, + 0x3fc, + 0x1ffa, + 0x21, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0xfc, + 0x73, + 0xfd, + 0x1ffb, + 0x7fff0, + 0x1ffc, + 0x3ffc, + 0x22, + 0x7ffd, + 0x3, + 0x23, + 0x4, + 0x24, + 0x5, + 0x25, + 0x26, + 0x27, + 0x6, + 0x74, + 0x75, + 0x28, + 0x29, + 0x2a, + 0x7, + 0x2b, + 0x76, + 0x2c, + 0x8, + 0x9, + 0x2d, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7ffe, + 0x7fc, + 0x3ffd, + 0x1ffd, + 0xffffffc, + 0xfffe6, + 0x3fffd2, + 0xfffe7, + 0xfffe8, + 0x3fffd3, + 0x3fffd4, + 0x3fffd5, + 0x7fffd9, + 0x3fffd6, + 0x7fffda, + 0x7fffdb, + 0x7fffdc, + 0x7fffdd, + 0x7fffde, + 0xffffeb, + 0x7fffdf, + 0xffffec, + 0xffffed, + 0x3fffd7, + 0x7fffe0, + 0xffffee, + 0x7fffe1, + 0x7fffe2, + 0x7fffe3, + 0x7fffe4, + 0x1fffdc, + 0x3fffd8, + 0x7fffe5, + 0x3fffd9, + 0x7fffe6, + 0x7fffe7, + 0xffffef, + 0x3fffda, + 0x1fffdd, + 0xfffe9, + 0x3fffdb, + 0x3fffdc, + 0x7fffe8, + 0x7fffe9, + 0x1fffde, + 0x7fffea, + 0x3fffdd, + 0x3fffde, + 0xfffff0, + 0x1fffdf, + 0x3fffdf, + 0x7fffeb, + 0x7fffec, + 0x1fffe0, + 0x1fffe1, + 0x3fffe0, + 0x1fffe2, + 0x7fffed, + 0x3fffe1, + 0x7fffee, + 0x7fffef, + 0xfffea, + 0x3fffe2, + 0x3fffe3, + 0x3fffe4, + 0x7ffff0, + 0x3fffe5, + 0x3fffe6, + 0x7ffff1, + 0x3ffffe0, + 0x3ffffe1, + 0xfffeb, + 0x7fff1, + 0x3fffe7, + 0x7ffff2, + 0x3fffe8, + 0x1ffffec, + 0x3ffffe2, + 0x3ffffe3, + 0x3ffffe4, + 0x7ffffde, + 0x7ffffdf, + 0x3ffffe5, + 0xfffff1, + 0x1ffffed, + 0x7fff2, + 0x1fffe3, + 0x3ffffe6, + 0x7ffffe0, + 0x7ffffe1, + 0x3ffffe7, + 0x7ffffe2, + 0xfffff2, + 0x1fffe4, + 0x1fffe5, + 0x3ffffe8, + 0x3ffffe9, + 0xffffffd, + 0x7ffffe3, + 0x7ffffe4, + 0x7ffffe5, + 0xfffec, + 0xfffff3, + 0xfffed, + 0x1fffe6, + 0x3fffe9, + 0x1fffe7, + 0x1fffe8, + 0x7ffff3, + 0x3fffea, + 0x3fffeb, + 0x1ffffee, + 0x1ffffef, + 0xfffff4, + 0xfffff5, + 0x3ffffea, + 0x7ffff4, + 0x3ffffeb, + 0x7ffffe6, + 0x3ffffec, + 0x3ffffed, + 0x7ffffe7, + 0x7ffffe8, + 0x7ffffe9, + 0x7ffffea, + 0x7ffffeb, + 0xffffffe, + 0x7ffffec, + 0x7ffffed, + 0x7ffffee, + 0x7ffffef, + 0x7fffff0, + 0x3ffffee, +} + +var huffmanCodeLen = [256]uint8{ + 13, 23, 28, 28, 28, 28, 28, 28, 28, 24, 30, 28, 28, 30, 28, 28, + 28, 28, 28, 28, 28, 28, 30, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 6, 10, 10, 12, 13, 6, 8, 11, 10, 10, 8, 11, 8, 6, 6, 6, + 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 8, 15, 6, 12, 10, + 13, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 13, 19, 13, 14, 6, + 15, 5, 6, 5, 6, 5, 6, 6, 6, 5, 7, 7, 6, 6, 6, 5, + 6, 7, 6, 5, 5, 6, 7, 7, 7, 7, 7, 15, 11, 14, 13, 28, + 20, 22, 20, 20, 22, 22, 22, 23, 22, 23, 23, 23, 23, 23, 24, 23, + 24, 24, 22, 23, 24, 23, 23, 23, 23, 21, 22, 23, 22, 23, 23, 24, + 22, 21, 20, 22, 22, 23, 23, 21, 23, 22, 22, 24, 21, 22, 23, 23, + 21, 21, 22, 21, 23, 22, 23, 23, 20, 22, 22, 22, 23, 22, 22, 23, + 26, 26, 20, 19, 22, 23, 22, 25, 26, 26, 26, 27, 27, 26, 24, 25, + 19, 21, 26, 27, 27, 26, 27, 24, 21, 21, 26, 26, 28, 27, 27, 27, + 20, 24, 20, 21, 22, 21, 21, 23, 22, 22, 25, 25, 24, 24, 26, 23, + 26, 27, 26, 26, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 26, +} diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go new file mode 100644 index 0000000..5571ccf --- /dev/null +++ b/vendor/golang.org/x/net/http2/http2.go @@ -0,0 +1,385 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package http2 implements the HTTP/2 protocol. +// +// This package is low-level and intended to be used directly by very +// few people. Most users will use it indirectly through the automatic +// use by the net/http package (from Go 1.6 and later). +// For use in earlier Go versions see ConfigureServer. (Transport support +// requires Go 1.6 or later) +// +// See https://http2.github.io/ for more information on HTTP/2. +// +// See https://http2.golang.org/ for a test server running this code. +// +package http2 // import "golang.org/x/net/http2" + +import ( + "bufio" + "crypto/tls" + "fmt" + "io" + "net/http" + "os" + "sort" + "strconv" + "strings" + "sync" + + "golang.org/x/net/http/httpguts" +) + +var ( + VerboseLogs bool + logFrameWrites bool + logFrameReads bool + inTests bool +) + +func init() { + e := os.Getenv("GODEBUG") + if strings.Contains(e, "http2debug=1") { + VerboseLogs = true + } + if strings.Contains(e, "http2debug=2") { + VerboseLogs = true + logFrameWrites = true + logFrameReads = true + } +} + +const ( + // ClientPreface is the string that must be sent by new + // connections from clients. + ClientPreface = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" + + // SETTINGS_MAX_FRAME_SIZE default + // http://http2.github.io/http2-spec/#rfc.section.6.5.2 + initialMaxFrameSize = 16384 + + // NextProtoTLS is the NPN/ALPN protocol negotiated during + // HTTP/2's TLS setup. + NextProtoTLS = "h2" + + // http://http2.github.io/http2-spec/#SettingValues + initialHeaderTableSize = 4096 + + initialWindowSize = 65535 // 6.9.2 Initial Flow Control Window Size + + defaultMaxReadFrameSize = 1 << 20 +) + +var ( + clientPreface = []byte(ClientPreface) +) + +type streamState int + +// HTTP/2 stream states. +// +// See http://tools.ietf.org/html/rfc7540#section-5.1. +// +// For simplicity, the server code merges "reserved (local)" into +// "half-closed (remote)". This is one less state transition to track. +// The only downside is that we send PUSH_PROMISEs slightly less +// liberally than allowable. More discussion here: +// https://lists.w3.org/Archives/Public/ietf-http-wg/2016JulSep/0599.html +// +// "reserved (remote)" is omitted since the client code does not +// support server push. +const ( + stateIdle streamState = iota + stateOpen + stateHalfClosedLocal + stateHalfClosedRemote + stateClosed +) + +var stateName = [...]string{ + stateIdle: "Idle", + stateOpen: "Open", + stateHalfClosedLocal: "HalfClosedLocal", + stateHalfClosedRemote: "HalfClosedRemote", + stateClosed: "Closed", +} + +func (st streamState) String() string { + return stateName[st] +} + +// Setting is a setting parameter: which setting it is, and its value. +type Setting struct { + // ID is which setting is being set. + // See http://http2.github.io/http2-spec/#SettingValues + ID SettingID + + // Val is the value. + Val uint32 +} + +func (s Setting) String() string { + return fmt.Sprintf("[%v = %d]", s.ID, s.Val) +} + +// Valid reports whether the setting is valid. +func (s Setting) Valid() error { + // Limits and error codes from 6.5.2 Defined SETTINGS Parameters + switch s.ID { + case SettingEnablePush: + if s.Val != 1 && s.Val != 0 { + return ConnectionError(ErrCodeProtocol) + } + case SettingInitialWindowSize: + if s.Val > 1<<31-1 { + return ConnectionError(ErrCodeFlowControl) + } + case SettingMaxFrameSize: + if s.Val < 16384 || s.Val > 1<<24-1 { + return ConnectionError(ErrCodeProtocol) + } + } + return nil +} + +// A SettingID is an HTTP/2 setting as defined in +// http://http2.github.io/http2-spec/#iana-settings +type SettingID uint16 + +const ( + SettingHeaderTableSize SettingID = 0x1 + SettingEnablePush SettingID = 0x2 + SettingMaxConcurrentStreams SettingID = 0x3 + SettingInitialWindowSize SettingID = 0x4 + SettingMaxFrameSize SettingID = 0x5 + SettingMaxHeaderListSize SettingID = 0x6 +) + +var settingName = map[SettingID]string{ + SettingHeaderTableSize: "HEADER_TABLE_SIZE", + SettingEnablePush: "ENABLE_PUSH", + SettingMaxConcurrentStreams: "MAX_CONCURRENT_STREAMS", + SettingInitialWindowSize: "INITIAL_WINDOW_SIZE", + SettingMaxFrameSize: "MAX_FRAME_SIZE", + SettingMaxHeaderListSize: "MAX_HEADER_LIST_SIZE", +} + +func (s SettingID) String() string { + if v, ok := settingName[s]; ok { + return v + } + return fmt.Sprintf("UNKNOWN_SETTING_%d", uint16(s)) +} + +// validWireHeaderFieldName reports whether v is a valid header field +// name (key). See httpguts.ValidHeaderName for the base rules. +// +// Further, http2 says: +// "Just as in HTTP/1.x, header field names are strings of ASCII +// characters that are compared in a case-insensitive +// fashion. However, header field names MUST be converted to +// lowercase prior to their encoding in HTTP/2. " +func validWireHeaderFieldName(v string) bool { + if len(v) == 0 { + return false + } + for _, r := range v { + if !httpguts.IsTokenRune(r) { + return false + } + if 'A' <= r && r <= 'Z' { + return false + } + } + return true +} + +func httpCodeString(code int) string { + switch code { + case 200: + return "200" + case 404: + return "404" + } + return strconv.Itoa(code) +} + +// from pkg io +type stringWriter interface { + WriteString(s string) (n int, err error) +} + +// A gate lets two goroutines coordinate their activities. +type gate chan struct{} + +func (g gate) Done() { g <- struct{}{} } +func (g gate) Wait() { <-g } + +// A closeWaiter is like a sync.WaitGroup but only goes 1 to 0 (open to closed). +type closeWaiter chan struct{} + +// Init makes a closeWaiter usable. +// It exists because so a closeWaiter value can be placed inside a +// larger struct and have the Mutex and Cond's memory in the same +// allocation. +func (cw *closeWaiter) Init() { + *cw = make(chan struct{}) +} + +// Close marks the closeWaiter as closed and unblocks any waiters. +func (cw closeWaiter) Close() { + close(cw) +} + +// Wait waits for the closeWaiter to become closed. +func (cw closeWaiter) Wait() { + <-cw +} + +// bufferedWriter is a buffered writer that writes to w. +// Its buffered writer is lazily allocated as needed, to minimize +// idle memory usage with many connections. +type bufferedWriter struct { + _ incomparable + w io.Writer // immutable + bw *bufio.Writer // non-nil when data is buffered +} + +func newBufferedWriter(w io.Writer) *bufferedWriter { + return &bufferedWriter{w: w} +} + +// bufWriterPoolBufferSize is the size of bufio.Writer's +// buffers created using bufWriterPool. +// +// TODO: pick a less arbitrary value? this is a bit under +// (3 x typical 1500 byte MTU) at least. Other than that, +// not much thought went into it. +const bufWriterPoolBufferSize = 4 << 10 + +var bufWriterPool = sync.Pool{ + New: func() interface{} { + return bufio.NewWriterSize(nil, bufWriterPoolBufferSize) + }, +} + +func (w *bufferedWriter) Available() int { + if w.bw == nil { + return bufWriterPoolBufferSize + } + return w.bw.Available() +} + +func (w *bufferedWriter) Write(p []byte) (n int, err error) { + if w.bw == nil { + bw := bufWriterPool.Get().(*bufio.Writer) + bw.Reset(w.w) + w.bw = bw + } + return w.bw.Write(p) +} + +func (w *bufferedWriter) Flush() error { + bw := w.bw + if bw == nil { + return nil + } + err := bw.Flush() + bw.Reset(nil) + bufWriterPool.Put(bw) + w.bw = nil + return err +} + +func mustUint31(v int32) uint32 { + if v < 0 || v > 2147483647 { + panic("out of range") + } + return uint32(v) +} + +// bodyAllowedForStatus reports whether a given response status code +// permits a body. See RFC 7230, section 3.3. +func bodyAllowedForStatus(status int) bool { + switch { + case status >= 100 && status <= 199: + return false + case status == 204: + return false + case status == 304: + return false + } + return true +} + +type httpError struct { + _ incomparable + msg string + timeout bool +} + +func (e *httpError) Error() string { return e.msg } +func (e *httpError) Timeout() bool { return e.timeout } +func (e *httpError) Temporary() bool { return true } + +var errTimeout error = &httpError{msg: "http2: timeout awaiting response headers", timeout: true} + +type connectionStater interface { + ConnectionState() tls.ConnectionState +} + +var sorterPool = sync.Pool{New: func() interface{} { return new(sorter) }} + +type sorter struct { + v []string // owned by sorter +} + +func (s *sorter) Len() int { return len(s.v) } +func (s *sorter) Swap(i, j int) { s.v[i], s.v[j] = s.v[j], s.v[i] } +func (s *sorter) Less(i, j int) bool { return s.v[i] < s.v[j] } + +// Keys returns the sorted keys of h. +// +// The returned slice is only valid until s used again or returned to +// its pool. +func (s *sorter) Keys(h http.Header) []string { + keys := s.v[:0] + for k := range h { + keys = append(keys, k) + } + s.v = keys + sort.Sort(s) + return keys +} + +func (s *sorter) SortStrings(ss []string) { + // Our sorter works on s.v, which sorter owns, so + // stash it away while we sort the user's buffer. + save := s.v + s.v = ss + sort.Sort(s) + s.v = save +} + +// validPseudoPath reports whether v is a valid :path pseudo-header +// value. It must be either: +// +// *) a non-empty string starting with '/' +// *) the string '*', for OPTIONS requests. +// +// For now this is only used a quick check for deciding when to clean +// up Opaque URLs before sending requests from the Transport. +// See golang.org/issue/16847 +// +// We used to enforce that the path also didn't start with "//", but +// Google's GFE accepts such paths and Chrome sends them, so ignore +// that part of the spec. See golang.org/issue/19103. +func validPseudoPath(v string) bool { + return (len(v) > 0 && v[0] == '/') || v == "*" +} + +// incomparable is a zero-width, non-comparable type. Adding it to a struct +// makes that struct also non-comparable, and generally doesn't add +// any size (as long as it's first). +type incomparable [0]func() diff --git a/vendor/golang.org/x/net/http2/not_go111.go b/vendor/golang.org/x/net/http2/not_go111.go new file mode 100644 index 0000000..cc0baa8 --- /dev/null +++ b/vendor/golang.org/x/net/http2/not_go111.go @@ -0,0 +1,21 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.11 +// +build !go1.11 + +package http2 + +import ( + "net/http/httptrace" + "net/textproto" +) + +func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { return false } + +func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) {} + +func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { + return nil +} diff --git a/vendor/golang.org/x/net/http2/not_go115.go b/vendor/golang.org/x/net/http2/not_go115.go new file mode 100644 index 0000000..e6c04cf --- /dev/null +++ b/vendor/golang.org/x/net/http2/not_go115.go @@ -0,0 +1,31 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.15 +// +build !go1.15 + +package http2 + +import ( + "context" + "crypto/tls" +) + +// dialTLSWithContext opens a TLS connection. +func (t *Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) { + cn, err := tls.Dial(network, addr, cfg) + if err != nil { + return nil, err + } + if err := cn.Handshake(); err != nil { + return nil, err + } + if cfg.InsecureSkipVerify { + return cn, nil + } + if err := cn.VerifyHostname(cfg.ServerName); err != nil { + return nil, err + } + return cn, nil +} diff --git a/vendor/golang.org/x/net/http2/pipe.go b/vendor/golang.org/x/net/http2/pipe.go new file mode 100644 index 0000000..2a5399e --- /dev/null +++ b/vendor/golang.org/x/net/http2/pipe.go @@ -0,0 +1,168 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "errors" + "io" + "sync" +) + +// pipe is a goroutine-safe io.Reader/io.Writer pair. It's like +// io.Pipe except there are no PipeReader/PipeWriter halves, and the +// underlying buffer is an interface. (io.Pipe is always unbuffered) +type pipe struct { + mu sync.Mutex + c sync.Cond // c.L lazily initialized to &p.mu + b pipeBuffer // nil when done reading + unread int // bytes unread when done + err error // read error once empty. non-nil means closed. + breakErr error // immediate read error (caller doesn't see rest of b) + donec chan struct{} // closed on error + readFn func() // optional code to run in Read before error +} + +type pipeBuffer interface { + Len() int + io.Writer + io.Reader +} + +func (p *pipe) Len() int { + p.mu.Lock() + defer p.mu.Unlock() + if p.b == nil { + return p.unread + } + return p.b.Len() +} + +// Read waits until data is available and copies bytes +// from the buffer into p. +func (p *pipe) Read(d []byte) (n int, err error) { + p.mu.Lock() + defer p.mu.Unlock() + if p.c.L == nil { + p.c.L = &p.mu + } + for { + if p.breakErr != nil { + return 0, p.breakErr + } + if p.b != nil && p.b.Len() > 0 { + return p.b.Read(d) + } + if p.err != nil { + if p.readFn != nil { + p.readFn() // e.g. copy trailers + p.readFn = nil // not sticky like p.err + } + p.b = nil + return 0, p.err + } + p.c.Wait() + } +} + +var errClosedPipeWrite = errors.New("write on closed buffer") + +// Write copies bytes from p into the buffer and wakes a reader. +// It is an error to write more data than the buffer can hold. +func (p *pipe) Write(d []byte) (n int, err error) { + p.mu.Lock() + defer p.mu.Unlock() + if p.c.L == nil { + p.c.L = &p.mu + } + defer p.c.Signal() + if p.err != nil { + return 0, errClosedPipeWrite + } + if p.breakErr != nil { + p.unread += len(d) + return len(d), nil // discard when there is no reader + } + return p.b.Write(d) +} + +// CloseWithError causes the next Read (waking up a current blocked +// Read if needed) to return the provided err after all data has been +// read. +// +// The error must be non-nil. +func (p *pipe) CloseWithError(err error) { p.closeWithError(&p.err, err, nil) } + +// BreakWithError causes the next Read (waking up a current blocked +// Read if needed) to return the provided err immediately, without +// waiting for unread data. +func (p *pipe) BreakWithError(err error) { p.closeWithError(&p.breakErr, err, nil) } + +// closeWithErrorAndCode is like CloseWithError but also sets some code to run +// in the caller's goroutine before returning the error. +func (p *pipe) closeWithErrorAndCode(err error, fn func()) { p.closeWithError(&p.err, err, fn) } + +func (p *pipe) closeWithError(dst *error, err error, fn func()) { + if err == nil { + panic("err must be non-nil") + } + p.mu.Lock() + defer p.mu.Unlock() + if p.c.L == nil { + p.c.L = &p.mu + } + defer p.c.Signal() + if *dst != nil { + // Already been done. + return + } + p.readFn = fn + if dst == &p.breakErr { + if p.b != nil { + p.unread += p.b.Len() + } + p.b = nil + } + *dst = err + p.closeDoneLocked() +} + +// requires p.mu be held. +func (p *pipe) closeDoneLocked() { + if p.donec == nil { + return + } + // Close if unclosed. This isn't racy since we always + // hold p.mu while closing. + select { + case <-p.donec: + default: + close(p.donec) + } +} + +// Err returns the error (if any) first set by BreakWithError or CloseWithError. +func (p *pipe) Err() error { + p.mu.Lock() + defer p.mu.Unlock() + if p.breakErr != nil { + return p.breakErr + } + return p.err +} + +// Done returns a channel which is closed if and when this pipe is closed +// with CloseWithError. +func (p *pipe) Done() <-chan struct{} { + p.mu.Lock() + defer p.mu.Unlock() + if p.donec == nil { + p.donec = make(chan struct{}) + if p.err != nil || p.breakErr != nil { + // Already hit an error. + p.closeDoneLocked() + } + } + return p.donec +} diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go new file mode 100644 index 0000000..d986655 --- /dev/null +++ b/vendor/golang.org/x/net/http2/server.go @@ -0,0 +1,3021 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// TODO: turn off the serve goroutine when idle, so +// an idle conn only has the readFrames goroutine active. (which could +// also be optimized probably to pin less memory in crypto/tls). This +// would involve tracking when the serve goroutine is active (atomic +// int32 read/CAS probably?) and starting it up when frames arrive, +// and shutting it down when all handlers exit. the occasional PING +// packets could use time.AfterFunc to call sc.wakeStartServeLoop() +// (which is a no-op if already running) and then queue the PING write +// as normal. The serve loop would then exit in most cases (if no +// Handlers running) and not be woken up again until the PING packet +// returns. + +// TODO (maybe): add a mechanism for Handlers to going into +// half-closed-local mode (rw.(io.Closer) test?) but not exit their +// handler, and continue to be able to read from the +// Request.Body. This would be a somewhat semantic change from HTTP/1 +// (or at least what we expose in net/http), so I'd probably want to +// add it there too. For now, this package says that returning from +// the Handler ServeHTTP function means you're both done reading and +// done writing, without a way to stop just one or the other. + +package http2 + +import ( + "bufio" + "bytes" + "context" + "crypto/tls" + "errors" + "fmt" + "io" + "log" + "math" + "net" + "net/http" + "net/textproto" + "net/url" + "os" + "reflect" + "runtime" + "strconv" + "strings" + "sync" + "time" + + "golang.org/x/net/http/httpguts" + "golang.org/x/net/http2/hpack" +) + +const ( + prefaceTimeout = 10 * time.Second + firstSettingsTimeout = 2 * time.Second // should be in-flight with preface anyway + handlerChunkWriteSize = 4 << 10 + defaultMaxStreams = 250 // TODO: make this 100 as the GFE seems to? + maxQueuedControlFrames = 10000 +) + +var ( + errClientDisconnected = errors.New("client disconnected") + errClosedBody = errors.New("body closed by handler") + errHandlerComplete = errors.New("http2: request body closed due to handler exiting") + errStreamClosed = errors.New("http2: stream closed") +) + +var responseWriterStatePool = sync.Pool{ + New: func() interface{} { + rws := &responseWriterState{} + rws.bw = bufio.NewWriterSize(chunkWriter{rws}, handlerChunkWriteSize) + return rws + }, +} + +// Test hooks. +var ( + testHookOnConn func() + testHookGetServerConn func(*serverConn) + testHookOnPanicMu *sync.Mutex // nil except in tests + testHookOnPanic func(sc *serverConn, panicVal interface{}) (rePanic bool) +) + +// Server is an HTTP/2 server. +type Server struct { + // MaxHandlers limits the number of http.Handler ServeHTTP goroutines + // which may run at a time over all connections. + // Negative or zero no limit. + // TODO: implement + MaxHandlers int + + // MaxConcurrentStreams optionally specifies the number of + // concurrent streams that each client may have open at a + // time. This is unrelated to the number of http.Handler goroutines + // which may be active globally, which is MaxHandlers. + // If zero, MaxConcurrentStreams defaults to at least 100, per + // the HTTP/2 spec's recommendations. + MaxConcurrentStreams uint32 + + // MaxReadFrameSize optionally specifies the largest frame + // this server is willing to read. A valid value is between + // 16k and 16M, inclusive. If zero or otherwise invalid, a + // default value is used. + MaxReadFrameSize uint32 + + // PermitProhibitedCipherSuites, if true, permits the use of + // cipher suites prohibited by the HTTP/2 spec. + PermitProhibitedCipherSuites bool + + // IdleTimeout specifies how long until idle clients should be + // closed with a GOAWAY frame. PING frames are not considered + // activity for the purposes of IdleTimeout. + IdleTimeout time.Duration + + // MaxUploadBufferPerConnection is the size of the initial flow + // control window for each connections. The HTTP/2 spec does not + // allow this to be smaller than 65535 or larger than 2^32-1. + // If the value is outside this range, a default value will be + // used instead. + MaxUploadBufferPerConnection int32 + + // MaxUploadBufferPerStream is the size of the initial flow control + // window for each stream. The HTTP/2 spec does not allow this to + // be larger than 2^32-1. If the value is zero or larger than the + // maximum, a default value will be used instead. + MaxUploadBufferPerStream int32 + + // NewWriteScheduler constructs a write scheduler for a connection. + // If nil, a default scheduler is chosen. + NewWriteScheduler func() WriteScheduler + + // CountError, if non-nil, is called on HTTP/2 server errors. + // It's intended to increment a metric for monitoring, such + // as an expvar or Prometheus metric. + // The errType consists of only ASCII word characters. + CountError func(errType string) + + // Internal state. This is a pointer (rather than embedded directly) + // so that we don't embed a Mutex in this struct, which will make the + // struct non-copyable, which might break some callers. + state *serverInternalState +} + +func (s *Server) initialConnRecvWindowSize() int32 { + if s.MaxUploadBufferPerConnection > initialWindowSize { + return s.MaxUploadBufferPerConnection + } + return 1 << 20 +} + +func (s *Server) initialStreamRecvWindowSize() int32 { + if s.MaxUploadBufferPerStream > 0 { + return s.MaxUploadBufferPerStream + } + return 1 << 20 +} + +func (s *Server) maxReadFrameSize() uint32 { + if v := s.MaxReadFrameSize; v >= minMaxFrameSize && v <= maxFrameSize { + return v + } + return defaultMaxReadFrameSize +} + +func (s *Server) maxConcurrentStreams() uint32 { + if v := s.MaxConcurrentStreams; v > 0 { + return v + } + return defaultMaxStreams +} + +// maxQueuedControlFrames is the maximum number of control frames like +// SETTINGS, PING and RST_STREAM that will be queued for writing before +// the connection is closed to prevent memory exhaustion attacks. +func (s *Server) maxQueuedControlFrames() int { + // TODO: if anybody asks, add a Server field, and remember to define the + // behavior of negative values. + return maxQueuedControlFrames +} + +type serverInternalState struct { + mu sync.Mutex + activeConns map[*serverConn]struct{} +} + +func (s *serverInternalState) registerConn(sc *serverConn) { + if s == nil { + return // if the Server was used without calling ConfigureServer + } + s.mu.Lock() + s.activeConns[sc] = struct{}{} + s.mu.Unlock() +} + +func (s *serverInternalState) unregisterConn(sc *serverConn) { + if s == nil { + return // if the Server was used without calling ConfigureServer + } + s.mu.Lock() + delete(s.activeConns, sc) + s.mu.Unlock() +} + +func (s *serverInternalState) startGracefulShutdown() { + if s == nil { + return // if the Server was used without calling ConfigureServer + } + s.mu.Lock() + for sc := range s.activeConns { + sc.startGracefulShutdown() + } + s.mu.Unlock() +} + +// ConfigureServer adds HTTP/2 support to a net/http Server. +// +// The configuration conf may be nil. +// +// ConfigureServer must be called before s begins serving. +func ConfigureServer(s *http.Server, conf *Server) error { + if s == nil { + panic("nil *http.Server") + } + if conf == nil { + conf = new(Server) + } + conf.state = &serverInternalState{activeConns: make(map[*serverConn]struct{})} + if h1, h2 := s, conf; h2.IdleTimeout == 0 { + if h1.IdleTimeout != 0 { + h2.IdleTimeout = h1.IdleTimeout + } else { + h2.IdleTimeout = h1.ReadTimeout + } + } + s.RegisterOnShutdown(conf.state.startGracefulShutdown) + + if s.TLSConfig == nil { + s.TLSConfig = new(tls.Config) + } else if s.TLSConfig.CipherSuites != nil && s.TLSConfig.MinVersion < tls.VersionTLS13 { + // If they already provided a TLS 1.0–1.2 CipherSuite list, return an + // error if it is missing ECDHE_RSA_WITH_AES_128_GCM_SHA256 or + // ECDHE_ECDSA_WITH_AES_128_GCM_SHA256. + haveRequired := false + for _, cs := range s.TLSConfig.CipherSuites { + switch cs { + case tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, + // Alternative MTI cipher to not discourage ECDSA-only servers. + // See http://golang.org/cl/30721 for further information. + tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: + haveRequired = true + } + } + if !haveRequired { + return fmt.Errorf("http2: TLSConfig.CipherSuites is missing an HTTP/2-required AES_128_GCM_SHA256 cipher (need at least one of TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 or TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256)") + } + } + + // Note: not setting MinVersion to tls.VersionTLS12, + // as we don't want to interfere with HTTP/1.1 traffic + // on the user's server. We enforce TLS 1.2 later once + // we accept a connection. Ideally this should be done + // during next-proto selection, but using TLS <1.2 with + // HTTP/2 is still the client's bug. + + s.TLSConfig.PreferServerCipherSuites = true + + if !strSliceContains(s.TLSConfig.NextProtos, NextProtoTLS) { + s.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, NextProtoTLS) + } + if !strSliceContains(s.TLSConfig.NextProtos, "http/1.1") { + s.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, "http/1.1") + } + + if s.TLSNextProto == nil { + s.TLSNextProto = map[string]func(*http.Server, *tls.Conn, http.Handler){} + } + protoHandler := func(hs *http.Server, c *tls.Conn, h http.Handler) { + if testHookOnConn != nil { + testHookOnConn() + } + // The TLSNextProto interface predates contexts, so + // the net/http package passes down its per-connection + // base context via an exported but unadvertised + // method on the Handler. This is for internal + // net/http<=>http2 use only. + var ctx context.Context + type baseContexter interface { + BaseContext() context.Context + } + if bc, ok := h.(baseContexter); ok { + ctx = bc.BaseContext() + } + conf.ServeConn(c, &ServeConnOpts{ + Context: ctx, + Handler: h, + BaseConfig: hs, + }) + } + s.TLSNextProto[NextProtoTLS] = protoHandler + return nil +} + +// ServeConnOpts are options for the Server.ServeConn method. +type ServeConnOpts struct { + // Context is the base context to use. + // If nil, context.Background is used. + Context context.Context + + // BaseConfig optionally sets the base configuration + // for values. If nil, defaults are used. + BaseConfig *http.Server + + // Handler specifies which handler to use for processing + // requests. If nil, BaseConfig.Handler is used. If BaseConfig + // or BaseConfig.Handler is nil, http.DefaultServeMux is used. + Handler http.Handler +} + +func (o *ServeConnOpts) context() context.Context { + if o != nil && o.Context != nil { + return o.Context + } + return context.Background() +} + +func (o *ServeConnOpts) baseConfig() *http.Server { + if o != nil && o.BaseConfig != nil { + return o.BaseConfig + } + return new(http.Server) +} + +func (o *ServeConnOpts) handler() http.Handler { + if o != nil { + if o.Handler != nil { + return o.Handler + } + if o.BaseConfig != nil && o.BaseConfig.Handler != nil { + return o.BaseConfig.Handler + } + } + return http.DefaultServeMux +} + +// ServeConn serves HTTP/2 requests on the provided connection and +// blocks until the connection is no longer readable. +// +// ServeConn starts speaking HTTP/2 assuming that c has not had any +// reads or writes. It writes its initial settings frame and expects +// to be able to read the preface and settings frame from the +// client. If c has a ConnectionState method like a *tls.Conn, the +// ConnectionState is used to verify the TLS ciphersuite and to set +// the Request.TLS field in Handlers. +// +// ServeConn does not support h2c by itself. Any h2c support must be +// implemented in terms of providing a suitably-behaving net.Conn. +// +// The opts parameter is optional. If nil, default values are used. +func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { + baseCtx, cancel := serverConnBaseContext(c, opts) + defer cancel() + + sc := &serverConn{ + srv: s, + hs: opts.baseConfig(), + conn: c, + baseCtx: baseCtx, + remoteAddrStr: c.RemoteAddr().String(), + bw: newBufferedWriter(c), + handler: opts.handler(), + streams: make(map[uint32]*stream), + readFrameCh: make(chan readFrameResult), + wantWriteFrameCh: make(chan FrameWriteRequest, 8), + serveMsgCh: make(chan interface{}, 8), + wroteFrameCh: make(chan frameWriteResult, 1), // buffered; one send in writeFrameAsync + bodyReadCh: make(chan bodyReadMsg), // buffering doesn't matter either way + doneServing: make(chan struct{}), + clientMaxStreams: math.MaxUint32, // Section 6.5.2: "Initially, there is no limit to this value" + advMaxStreams: s.maxConcurrentStreams(), + initialStreamSendWindowSize: initialWindowSize, + maxFrameSize: initialMaxFrameSize, + headerTableSize: initialHeaderTableSize, + serveG: newGoroutineLock(), + pushEnabled: true, + } + + s.state.registerConn(sc) + defer s.state.unregisterConn(sc) + + // The net/http package sets the write deadline from the + // http.Server.WriteTimeout during the TLS handshake, but then + // passes the connection off to us with the deadline already set. + // Write deadlines are set per stream in serverConn.newStream. + // Disarm the net.Conn write deadline here. + if sc.hs.WriteTimeout != 0 { + sc.conn.SetWriteDeadline(time.Time{}) + } + + if s.NewWriteScheduler != nil { + sc.writeSched = s.NewWriteScheduler() + } else { + sc.writeSched = NewRandomWriteScheduler() + } + + // These start at the RFC-specified defaults. If there is a higher + // configured value for inflow, that will be updated when we send a + // WINDOW_UPDATE shortly after sending SETTINGS. + sc.flow.add(initialWindowSize) + sc.inflow.add(initialWindowSize) + sc.hpackEncoder = hpack.NewEncoder(&sc.headerWriteBuf) + + fr := NewFramer(sc.bw, c) + fr.ReadMetaHeaders = hpack.NewDecoder(initialHeaderTableSize, nil) + fr.MaxHeaderListSize = sc.maxHeaderListSize() + fr.SetMaxReadFrameSize(s.maxReadFrameSize()) + sc.framer = fr + + if tc, ok := c.(connectionStater); ok { + sc.tlsState = new(tls.ConnectionState) + *sc.tlsState = tc.ConnectionState() + // 9.2 Use of TLS Features + // An implementation of HTTP/2 over TLS MUST use TLS + // 1.2 or higher with the restrictions on feature set + // and cipher suite described in this section. Due to + // implementation limitations, it might not be + // possible to fail TLS negotiation. An endpoint MUST + // immediately terminate an HTTP/2 connection that + // does not meet the TLS requirements described in + // this section with a connection error (Section + // 5.4.1) of type INADEQUATE_SECURITY. + if sc.tlsState.Version < tls.VersionTLS12 { + sc.rejectConn(ErrCodeInadequateSecurity, "TLS version too low") + return + } + + if sc.tlsState.ServerName == "" { + // Client must use SNI, but we don't enforce that anymore, + // since it was causing problems when connecting to bare IP + // addresses during development. + // + // TODO: optionally enforce? Or enforce at the time we receive + // a new request, and verify the ServerName matches the :authority? + // But that precludes proxy situations, perhaps. + // + // So for now, do nothing here again. + } + + if !s.PermitProhibitedCipherSuites && isBadCipher(sc.tlsState.CipherSuite) { + // "Endpoints MAY choose to generate a connection error + // (Section 5.4.1) of type INADEQUATE_SECURITY if one of + // the prohibited cipher suites are negotiated." + // + // We choose that. In my opinion, the spec is weak + // here. It also says both parties must support at least + // TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 so there's no + // excuses here. If we really must, we could allow an + // "AllowInsecureWeakCiphers" option on the server later. + // Let's see how it plays out first. + sc.rejectConn(ErrCodeInadequateSecurity, fmt.Sprintf("Prohibited TLS 1.2 Cipher Suite: %x", sc.tlsState.CipherSuite)) + return + } + } + + if hook := testHookGetServerConn; hook != nil { + hook(sc) + } + sc.serve() +} + +func serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx context.Context, cancel func()) { + ctx, cancel = context.WithCancel(opts.context()) + ctx = context.WithValue(ctx, http.LocalAddrContextKey, c.LocalAddr()) + if hs := opts.baseConfig(); hs != nil { + ctx = context.WithValue(ctx, http.ServerContextKey, hs) + } + return +} + +func (sc *serverConn) rejectConn(err ErrCode, debug string) { + sc.vlogf("http2: server rejecting conn: %v, %s", err, debug) + // ignoring errors. hanging up anyway. + sc.framer.WriteGoAway(0, err, []byte(debug)) + sc.bw.Flush() + sc.conn.Close() +} + +type serverConn struct { + // Immutable: + srv *Server + hs *http.Server + conn net.Conn + bw *bufferedWriter // writing to conn + handler http.Handler + baseCtx context.Context + framer *Framer + doneServing chan struct{} // closed when serverConn.serve ends + readFrameCh chan readFrameResult // written by serverConn.readFrames + wantWriteFrameCh chan FrameWriteRequest // from handlers -> serve + wroteFrameCh chan frameWriteResult // from writeFrameAsync -> serve, tickles more frame writes + bodyReadCh chan bodyReadMsg // from handlers -> serve + serveMsgCh chan interface{} // misc messages & code to send to / run on the serve loop + flow flow // conn-wide (not stream-specific) outbound flow control + inflow flow // conn-wide inbound flow control + tlsState *tls.ConnectionState // shared by all handlers, like net/http + remoteAddrStr string + writeSched WriteScheduler + + // Everything following is owned by the serve loop; use serveG.check(): + serveG goroutineLock // used to verify funcs are on serve() + pushEnabled bool + sawFirstSettings bool // got the initial SETTINGS frame after the preface + needToSendSettingsAck bool + unackedSettings int // how many SETTINGS have we sent without ACKs? + queuedControlFrames int // control frames in the writeSched queue + clientMaxStreams uint32 // SETTINGS_MAX_CONCURRENT_STREAMS from client (our PUSH_PROMISE limit) + advMaxStreams uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client + curClientStreams uint32 // number of open streams initiated by the client + curPushedStreams uint32 // number of open streams initiated by server push + maxClientStreamID uint32 // max ever seen from client (odd), or 0 if there have been no client requests + maxPushPromiseID uint32 // ID of the last push promise (even), or 0 if there have been no pushes + streams map[uint32]*stream + initialStreamSendWindowSize int32 + maxFrameSize int32 + headerTableSize uint32 + peerMaxHeaderListSize uint32 // zero means unknown (default) + canonHeader map[string]string // http2-lower-case -> Go-Canonical-Case + writingFrame bool // started writing a frame (on serve goroutine or separate) + writingFrameAsync bool // started a frame on its own goroutine but haven't heard back on wroteFrameCh + needsFrameFlush bool // last frame write wasn't a flush + inGoAway bool // we've started to or sent GOAWAY + inFrameScheduleLoop bool // whether we're in the scheduleFrameWrite loop + needToSendGoAway bool // we need to schedule a GOAWAY frame write + goAwayCode ErrCode + shutdownTimer *time.Timer // nil until used + idleTimer *time.Timer // nil if unused + + // Owned by the writeFrameAsync goroutine: + headerWriteBuf bytes.Buffer + hpackEncoder *hpack.Encoder + + // Used by startGracefulShutdown. + shutdownOnce sync.Once +} + +func (sc *serverConn) maxHeaderListSize() uint32 { + n := sc.hs.MaxHeaderBytes + if n <= 0 { + n = http.DefaultMaxHeaderBytes + } + // http2's count is in a slightly different unit and includes 32 bytes per pair. + // So, take the net/http.Server value and pad it up a bit, assuming 10 headers. + const perFieldOverhead = 32 // per http2 spec + const typicalHeaders = 10 // conservative + return uint32(n + typicalHeaders*perFieldOverhead) +} + +func (sc *serverConn) curOpenStreams() uint32 { + sc.serveG.check() + return sc.curClientStreams + sc.curPushedStreams +} + +// stream represents a stream. This is the minimal metadata needed by +// the serve goroutine. Most of the actual stream state is owned by +// the http.Handler's goroutine in the responseWriter. Because the +// responseWriter's responseWriterState is recycled at the end of a +// handler, this struct intentionally has no pointer to the +// *responseWriter{,State} itself, as the Handler ending nils out the +// responseWriter's state field. +type stream struct { + // immutable: + sc *serverConn + id uint32 + body *pipe // non-nil if expecting DATA frames + cw closeWaiter // closed wait stream transitions to closed state + ctx context.Context + cancelCtx func() + + // owned by serverConn's serve loop: + bodyBytes int64 // body bytes seen so far + declBodyBytes int64 // or -1 if undeclared + flow flow // limits writing from Handler to client + inflow flow // what the client is allowed to POST/etc to us + state streamState + resetQueued bool // RST_STREAM queued for write; set by sc.resetStream + gotTrailerHeader bool // HEADER frame for trailers was seen + wroteHeaders bool // whether we wrote headers (not status 100) + writeDeadline *time.Timer // nil if unused + + trailer http.Header // accumulated trailers + reqTrailer http.Header // handler's Request.Trailer +} + +func (sc *serverConn) Framer() *Framer { return sc.framer } +func (sc *serverConn) CloseConn() error { return sc.conn.Close() } +func (sc *serverConn) Flush() error { return sc.bw.Flush() } +func (sc *serverConn) HeaderEncoder() (*hpack.Encoder, *bytes.Buffer) { + return sc.hpackEncoder, &sc.headerWriteBuf +} + +func (sc *serverConn) state(streamID uint32) (streamState, *stream) { + sc.serveG.check() + // http://tools.ietf.org/html/rfc7540#section-5.1 + if st, ok := sc.streams[streamID]; ok { + return st.state, st + } + // "The first use of a new stream identifier implicitly closes all + // streams in the "idle" state that might have been initiated by + // that peer with a lower-valued stream identifier. For example, if + // a client sends a HEADERS frame on stream 7 without ever sending a + // frame on stream 5, then stream 5 transitions to the "closed" + // state when the first frame for stream 7 is sent or received." + if streamID%2 == 1 { + if streamID <= sc.maxClientStreamID { + return stateClosed, nil + } + } else { + if streamID <= sc.maxPushPromiseID { + return stateClosed, nil + } + } + return stateIdle, nil +} + +// setConnState calls the net/http ConnState hook for this connection, if configured. +// Note that the net/http package does StateNew and StateClosed for us. +// There is currently no plan for StateHijacked or hijacking HTTP/2 connections. +func (sc *serverConn) setConnState(state http.ConnState) { + if sc.hs.ConnState != nil { + sc.hs.ConnState(sc.conn, state) + } +} + +func (sc *serverConn) vlogf(format string, args ...interface{}) { + if VerboseLogs { + sc.logf(format, args...) + } +} + +func (sc *serverConn) logf(format string, args ...interface{}) { + if lg := sc.hs.ErrorLog; lg != nil { + lg.Printf(format, args...) + } else { + log.Printf(format, args...) + } +} + +// errno returns v's underlying uintptr, else 0. +// +// TODO: remove this helper function once http2 can use build +// tags. See comment in isClosedConnError. +func errno(v error) uintptr { + if rv := reflect.ValueOf(v); rv.Kind() == reflect.Uintptr { + return uintptr(rv.Uint()) + } + return 0 +} + +// isClosedConnError reports whether err is an error from use of a closed +// network connection. +func isClosedConnError(err error) bool { + if err == nil { + return false + } + + // TODO: remove this string search and be more like the Windows + // case below. That might involve modifying the standard library + // to return better error types. + str := err.Error() + if strings.Contains(str, "use of closed network connection") { + return true + } + + // TODO(bradfitz): x/tools/cmd/bundle doesn't really support + // build tags, so I can't make an http2_windows.go file with + // Windows-specific stuff. Fix that and move this, once we + // have a way to bundle this into std's net/http somehow. + if runtime.GOOS == "windows" { + if oe, ok := err.(*net.OpError); ok && oe.Op == "read" { + if se, ok := oe.Err.(*os.SyscallError); ok && se.Syscall == "wsarecv" { + const WSAECONNABORTED = 10053 + const WSAECONNRESET = 10054 + if n := errno(se.Err); n == WSAECONNRESET || n == WSAECONNABORTED { + return true + } + } + } + } + return false +} + +func (sc *serverConn) condlogf(err error, format string, args ...interface{}) { + if err == nil { + return + } + if err == io.EOF || err == io.ErrUnexpectedEOF || isClosedConnError(err) || err == errPrefaceTimeout { + // Boring, expected errors. + sc.vlogf(format, args...) + } else { + sc.logf(format, args...) + } +} + +func (sc *serverConn) canonicalHeader(v string) string { + sc.serveG.check() + buildCommonHeaderMapsOnce() + cv, ok := commonCanonHeader[v] + if ok { + return cv + } + cv, ok = sc.canonHeader[v] + if ok { + return cv + } + if sc.canonHeader == nil { + sc.canonHeader = make(map[string]string) + } + cv = http.CanonicalHeaderKey(v) + sc.canonHeader[v] = cv + return cv +} + +type readFrameResult struct { + f Frame // valid until readMore is called + err error + + // readMore should be called once the consumer no longer needs or + // retains f. After readMore, f is invalid and more frames can be + // read. + readMore func() +} + +// readFrames is the loop that reads incoming frames. +// It takes care to only read one frame at a time, blocking until the +// consumer is done with the frame. +// It's run on its own goroutine. +func (sc *serverConn) readFrames() { + gate := make(gate) + gateDone := gate.Done + for { + f, err := sc.framer.ReadFrame() + select { + case sc.readFrameCh <- readFrameResult{f, err, gateDone}: + case <-sc.doneServing: + return + } + select { + case <-gate: + case <-sc.doneServing: + return + } + if terminalReadFrameError(err) { + return + } + } +} + +// frameWriteResult is the message passed from writeFrameAsync to the serve goroutine. +type frameWriteResult struct { + _ incomparable + wr FrameWriteRequest // what was written (or attempted) + err error // result of the writeFrame call +} + +// writeFrameAsync runs in its own goroutine and writes a single frame +// and then reports when it's done. +// At most one goroutine can be running writeFrameAsync at a time per +// serverConn. +func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest) { + err := wr.write.writeFrame(sc) + sc.wroteFrameCh <- frameWriteResult{wr: wr, err: err} +} + +func (sc *serverConn) closeAllStreamsOnConnClose() { + sc.serveG.check() + for _, st := range sc.streams { + sc.closeStream(st, errClientDisconnected) + } +} + +func (sc *serverConn) stopShutdownTimer() { + sc.serveG.check() + if t := sc.shutdownTimer; t != nil { + t.Stop() + } +} + +func (sc *serverConn) notePanic() { + // Note: this is for serverConn.serve panicking, not http.Handler code. + if testHookOnPanicMu != nil { + testHookOnPanicMu.Lock() + defer testHookOnPanicMu.Unlock() + } + if testHookOnPanic != nil { + if e := recover(); e != nil { + if testHookOnPanic(sc, e) { + panic(e) + } + } + } +} + +func (sc *serverConn) serve() { + sc.serveG.check() + defer sc.notePanic() + defer sc.conn.Close() + defer sc.closeAllStreamsOnConnClose() + defer sc.stopShutdownTimer() + defer close(sc.doneServing) // unblocks handlers trying to send + + if VerboseLogs { + sc.vlogf("http2: server connection from %v on %p", sc.conn.RemoteAddr(), sc.hs) + } + + sc.writeFrame(FrameWriteRequest{ + write: writeSettings{ + {SettingMaxFrameSize, sc.srv.maxReadFrameSize()}, + {SettingMaxConcurrentStreams, sc.advMaxStreams}, + {SettingMaxHeaderListSize, sc.maxHeaderListSize()}, + {SettingInitialWindowSize, uint32(sc.srv.initialStreamRecvWindowSize())}, + }, + }) + sc.unackedSettings++ + + // Each connection starts with initialWindowSize inflow tokens. + // If a higher value is configured, we add more tokens. + if diff := sc.srv.initialConnRecvWindowSize() - initialWindowSize; diff > 0 { + sc.sendWindowUpdate(nil, int(diff)) + } + + if err := sc.readPreface(); err != nil { + sc.condlogf(err, "http2: server: error reading preface from client %v: %v", sc.conn.RemoteAddr(), err) + return + } + // Now that we've got the preface, get us out of the + // "StateNew" state. We can't go directly to idle, though. + // Active means we read some data and anticipate a request. We'll + // do another Active when we get a HEADERS frame. + sc.setConnState(http.StateActive) + sc.setConnState(http.StateIdle) + + if sc.srv.IdleTimeout != 0 { + sc.idleTimer = time.AfterFunc(sc.srv.IdleTimeout, sc.onIdleTimer) + defer sc.idleTimer.Stop() + } + + go sc.readFrames() // closed by defer sc.conn.Close above + + settingsTimer := time.AfterFunc(firstSettingsTimeout, sc.onSettingsTimer) + defer settingsTimer.Stop() + + loopNum := 0 + for { + loopNum++ + select { + case wr := <-sc.wantWriteFrameCh: + if se, ok := wr.write.(StreamError); ok { + sc.resetStream(se) + break + } + sc.writeFrame(wr) + case res := <-sc.wroteFrameCh: + sc.wroteFrame(res) + case res := <-sc.readFrameCh: + // Process any written frames before reading new frames from the client since a + // written frame could have triggered a new stream to be started. + if sc.writingFrameAsync { + select { + case wroteRes := <-sc.wroteFrameCh: + sc.wroteFrame(wroteRes) + default: + } + } + if !sc.processFrameFromReader(res) { + return + } + res.readMore() + if settingsTimer != nil { + settingsTimer.Stop() + settingsTimer = nil + } + case m := <-sc.bodyReadCh: + sc.noteBodyRead(m.st, m.n) + case msg := <-sc.serveMsgCh: + switch v := msg.(type) { + case func(int): + v(loopNum) // for testing + case *serverMessage: + switch v { + case settingsTimerMsg: + sc.logf("timeout waiting for SETTINGS frames from %v", sc.conn.RemoteAddr()) + return + case idleTimerMsg: + sc.vlogf("connection is idle") + sc.goAway(ErrCodeNo) + case shutdownTimerMsg: + sc.vlogf("GOAWAY close timer fired; closing conn from %v", sc.conn.RemoteAddr()) + return + case gracefulShutdownMsg: + sc.startGracefulShutdownInternal() + default: + panic("unknown timer") + } + case *startPushRequest: + sc.startPush(v) + default: + panic(fmt.Sprintf("unexpected type %T", v)) + } + } + + // If the peer is causing us to generate a lot of control frames, + // but not reading them from us, assume they are trying to make us + // run out of memory. + if sc.queuedControlFrames > sc.srv.maxQueuedControlFrames() { + sc.vlogf("http2: too many control frames in send queue, closing connection") + return + } + + // Start the shutdown timer after sending a GOAWAY. When sending GOAWAY + // with no error code (graceful shutdown), don't start the timer until + // all open streams have been completed. + sentGoAway := sc.inGoAway && !sc.needToSendGoAway && !sc.writingFrame + gracefulShutdownComplete := sc.goAwayCode == ErrCodeNo && sc.curOpenStreams() == 0 + if sentGoAway && sc.shutdownTimer == nil && (sc.goAwayCode != ErrCodeNo || gracefulShutdownComplete) { + sc.shutDownIn(goAwayTimeout) + } + } +} + +func (sc *serverConn) awaitGracefulShutdown(sharedCh <-chan struct{}, privateCh chan struct{}) { + select { + case <-sc.doneServing: + case <-sharedCh: + close(privateCh) + } +} + +type serverMessage int + +// Message values sent to serveMsgCh. +var ( + settingsTimerMsg = new(serverMessage) + idleTimerMsg = new(serverMessage) + shutdownTimerMsg = new(serverMessage) + gracefulShutdownMsg = new(serverMessage) +) + +func (sc *serverConn) onSettingsTimer() { sc.sendServeMsg(settingsTimerMsg) } +func (sc *serverConn) onIdleTimer() { sc.sendServeMsg(idleTimerMsg) } +func (sc *serverConn) onShutdownTimer() { sc.sendServeMsg(shutdownTimerMsg) } + +func (sc *serverConn) sendServeMsg(msg interface{}) { + sc.serveG.checkNotOn() // NOT + select { + case sc.serveMsgCh <- msg: + case <-sc.doneServing: + } +} + +var errPrefaceTimeout = errors.New("timeout waiting for client preface") + +// readPreface reads the ClientPreface greeting from the peer or +// returns errPrefaceTimeout on timeout, or an error if the greeting +// is invalid. +func (sc *serverConn) readPreface() error { + errc := make(chan error, 1) + go func() { + // Read the client preface + buf := make([]byte, len(ClientPreface)) + if _, err := io.ReadFull(sc.conn, buf); err != nil { + errc <- err + } else if !bytes.Equal(buf, clientPreface) { + errc <- fmt.Errorf("bogus greeting %q", buf) + } else { + errc <- nil + } + }() + timer := time.NewTimer(prefaceTimeout) // TODO: configurable on *Server? + defer timer.Stop() + select { + case <-timer.C: + return errPrefaceTimeout + case err := <-errc: + if err == nil { + if VerboseLogs { + sc.vlogf("http2: server: client %v said hello", sc.conn.RemoteAddr()) + } + } + return err + } +} + +var errChanPool = sync.Pool{ + New: func() interface{} { return make(chan error, 1) }, +} + +var writeDataPool = sync.Pool{ + New: func() interface{} { return new(writeData) }, +} + +// writeDataFromHandler writes DATA response frames from a handler on +// the given stream. +func (sc *serverConn) writeDataFromHandler(stream *stream, data []byte, endStream bool) error { + ch := errChanPool.Get().(chan error) + writeArg := writeDataPool.Get().(*writeData) + *writeArg = writeData{stream.id, data, endStream} + err := sc.writeFrameFromHandler(FrameWriteRequest{ + write: writeArg, + stream: stream, + done: ch, + }) + if err != nil { + return err + } + var frameWriteDone bool // the frame write is done (successfully or not) + select { + case err = <-ch: + frameWriteDone = true + case <-sc.doneServing: + return errClientDisconnected + case <-stream.cw: + // If both ch and stream.cw were ready (as might + // happen on the final Write after an http.Handler + // ends), prefer the write result. Otherwise this + // might just be us successfully closing the stream. + // The writeFrameAsync and serve goroutines guarantee + // that the ch send will happen before the stream.cw + // close. + select { + case err = <-ch: + frameWriteDone = true + default: + return errStreamClosed + } + } + errChanPool.Put(ch) + if frameWriteDone { + writeDataPool.Put(writeArg) + } + return err +} + +// writeFrameFromHandler sends wr to sc.wantWriteFrameCh, but aborts +// if the connection has gone away. +// +// This must not be run from the serve goroutine itself, else it might +// deadlock writing to sc.wantWriteFrameCh (which is only mildly +// buffered and is read by serve itself). If you're on the serve +// goroutine, call writeFrame instead. +func (sc *serverConn) writeFrameFromHandler(wr FrameWriteRequest) error { + sc.serveG.checkNotOn() // NOT + select { + case sc.wantWriteFrameCh <- wr: + return nil + case <-sc.doneServing: + // Serve loop is gone. + // Client has closed their connection to the server. + return errClientDisconnected + } +} + +// writeFrame schedules a frame to write and sends it if there's nothing +// already being written. +// +// There is no pushback here (the serve goroutine never blocks). It's +// the http.Handlers that block, waiting for their previous frames to +// make it onto the wire +// +// If you're not on the serve goroutine, use writeFrameFromHandler instead. +func (sc *serverConn) writeFrame(wr FrameWriteRequest) { + sc.serveG.check() + + // If true, wr will not be written and wr.done will not be signaled. + var ignoreWrite bool + + // We are not allowed to write frames on closed streams. RFC 7540 Section + // 5.1.1 says: "An endpoint MUST NOT send frames other than PRIORITY on + // a closed stream." Our server never sends PRIORITY, so that exception + // does not apply. + // + // The serverConn might close an open stream while the stream's handler + // is still running. For example, the server might close a stream when it + // receives bad data from the client. If this happens, the handler might + // attempt to write a frame after the stream has been closed (since the + // handler hasn't yet been notified of the close). In this case, we simply + // ignore the frame. The handler will notice that the stream is closed when + // it waits for the frame to be written. + // + // As an exception to this rule, we allow sending RST_STREAM after close. + // This allows us to immediately reject new streams without tracking any + // state for those streams (except for the queued RST_STREAM frame). This + // may result in duplicate RST_STREAMs in some cases, but the client should + // ignore those. + if wr.StreamID() != 0 { + _, isReset := wr.write.(StreamError) + if state, _ := sc.state(wr.StreamID()); state == stateClosed && !isReset { + ignoreWrite = true + } + } + + // Don't send a 100-continue response if we've already sent headers. + // See golang.org/issue/14030. + switch wr.write.(type) { + case *writeResHeaders: + wr.stream.wroteHeaders = true + case write100ContinueHeadersFrame: + if wr.stream.wroteHeaders { + // We do not need to notify wr.done because this frame is + // never written with wr.done != nil. + if wr.done != nil { + panic("wr.done != nil for write100ContinueHeadersFrame") + } + ignoreWrite = true + } + } + + if !ignoreWrite { + if wr.isControl() { + sc.queuedControlFrames++ + // For extra safety, detect wraparounds, which should not happen, + // and pull the plug. + if sc.queuedControlFrames < 0 { + sc.conn.Close() + } + } + sc.writeSched.Push(wr) + } + sc.scheduleFrameWrite() +} + +// startFrameWrite starts a goroutine to write wr (in a separate +// goroutine since that might block on the network), and updates the +// serve goroutine's state about the world, updated from info in wr. +func (sc *serverConn) startFrameWrite(wr FrameWriteRequest) { + sc.serveG.check() + if sc.writingFrame { + panic("internal error: can only be writing one frame at a time") + } + + st := wr.stream + if st != nil { + switch st.state { + case stateHalfClosedLocal: + switch wr.write.(type) { + case StreamError, handlerPanicRST, writeWindowUpdate: + // RFC 7540 Section 5.1 allows sending RST_STREAM, PRIORITY, and WINDOW_UPDATE + // in this state. (We never send PRIORITY from the server, so that is not checked.) + default: + panic(fmt.Sprintf("internal error: attempt to send frame on a half-closed-local stream: %v", wr)) + } + case stateClosed: + panic(fmt.Sprintf("internal error: attempt to send frame on a closed stream: %v", wr)) + } + } + if wpp, ok := wr.write.(*writePushPromise); ok { + var err error + wpp.promisedID, err = wpp.allocatePromisedID() + if err != nil { + sc.writingFrameAsync = false + wr.replyToWriter(err) + return + } + } + + sc.writingFrame = true + sc.needsFrameFlush = true + if wr.write.staysWithinBuffer(sc.bw.Available()) { + sc.writingFrameAsync = false + err := wr.write.writeFrame(sc) + sc.wroteFrame(frameWriteResult{wr: wr, err: err}) + } else { + sc.writingFrameAsync = true + go sc.writeFrameAsync(wr) + } +} + +// errHandlerPanicked is the error given to any callers blocked in a read from +// Request.Body when the main goroutine panics. Since most handlers read in the +// main ServeHTTP goroutine, this will show up rarely. +var errHandlerPanicked = errors.New("http2: handler panicked") + +// wroteFrame is called on the serve goroutine with the result of +// whatever happened on writeFrameAsync. +func (sc *serverConn) wroteFrame(res frameWriteResult) { + sc.serveG.check() + if !sc.writingFrame { + panic("internal error: expected to be already writing a frame") + } + sc.writingFrame = false + sc.writingFrameAsync = false + + wr := res.wr + + if writeEndsStream(wr.write) { + st := wr.stream + if st == nil { + panic("internal error: expecting non-nil stream") + } + switch st.state { + case stateOpen: + // Here we would go to stateHalfClosedLocal in + // theory, but since our handler is done and + // the net/http package provides no mechanism + // for closing a ResponseWriter while still + // reading data (see possible TODO at top of + // this file), we go into closed state here + // anyway, after telling the peer we're + // hanging up on them. We'll transition to + // stateClosed after the RST_STREAM frame is + // written. + st.state = stateHalfClosedLocal + // Section 8.1: a server MAY request that the client abort + // transmission of a request without error by sending a + // RST_STREAM with an error code of NO_ERROR after sending + // a complete response. + sc.resetStream(streamError(st.id, ErrCodeNo)) + case stateHalfClosedRemote: + sc.closeStream(st, errHandlerComplete) + } + } else { + switch v := wr.write.(type) { + case StreamError: + // st may be unknown if the RST_STREAM was generated to reject bad input. + if st, ok := sc.streams[v.StreamID]; ok { + sc.closeStream(st, v) + } + case handlerPanicRST: + sc.closeStream(wr.stream, errHandlerPanicked) + } + } + + // Reply (if requested) to unblock the ServeHTTP goroutine. + wr.replyToWriter(res.err) + + sc.scheduleFrameWrite() +} + +// scheduleFrameWrite tickles the frame writing scheduler. +// +// If a frame is already being written, nothing happens. This will be called again +// when the frame is done being written. +// +// If a frame isn't being written and we need to send one, the best frame +// to send is selected by writeSched. +// +// If a frame isn't being written and there's nothing else to send, we +// flush the write buffer. +func (sc *serverConn) scheduleFrameWrite() { + sc.serveG.check() + if sc.writingFrame || sc.inFrameScheduleLoop { + return + } + sc.inFrameScheduleLoop = true + for !sc.writingFrameAsync { + if sc.needToSendGoAway { + sc.needToSendGoAway = false + sc.startFrameWrite(FrameWriteRequest{ + write: &writeGoAway{ + maxStreamID: sc.maxClientStreamID, + code: sc.goAwayCode, + }, + }) + continue + } + if sc.needToSendSettingsAck { + sc.needToSendSettingsAck = false + sc.startFrameWrite(FrameWriteRequest{write: writeSettingsAck{}}) + continue + } + if !sc.inGoAway || sc.goAwayCode == ErrCodeNo { + if wr, ok := sc.writeSched.Pop(); ok { + if wr.isControl() { + sc.queuedControlFrames-- + } + sc.startFrameWrite(wr) + continue + } + } + if sc.needsFrameFlush { + sc.startFrameWrite(FrameWriteRequest{write: flushFrameWriter{}}) + sc.needsFrameFlush = false // after startFrameWrite, since it sets this true + continue + } + break + } + sc.inFrameScheduleLoop = false +} + +// startGracefulShutdown gracefully shuts down a connection. This +// sends GOAWAY with ErrCodeNo to tell the client we're gracefully +// shutting down. The connection isn't closed until all current +// streams are done. +// +// startGracefulShutdown returns immediately; it does not wait until +// the connection has shut down. +func (sc *serverConn) startGracefulShutdown() { + sc.serveG.checkNotOn() // NOT + sc.shutdownOnce.Do(func() { sc.sendServeMsg(gracefulShutdownMsg) }) +} + +// After sending GOAWAY with an error code (non-graceful shutdown), the +// connection will close after goAwayTimeout. +// +// If we close the connection immediately after sending GOAWAY, there may +// be unsent data in our kernel receive buffer, which will cause the kernel +// to send a TCP RST on close() instead of a FIN. This RST will abort the +// connection immediately, whether or not the client had received the GOAWAY. +// +// Ideally we should delay for at least 1 RTT + epsilon so the client has +// a chance to read the GOAWAY and stop sending messages. Measuring RTT +// is hard, so we approximate with 1 second. See golang.org/issue/18701. +// +// This is a var so it can be shorter in tests, where all requests uses the +// loopback interface making the expected RTT very small. +// +// TODO: configurable? +var goAwayTimeout = 1 * time.Second + +func (sc *serverConn) startGracefulShutdownInternal() { + sc.goAway(ErrCodeNo) +} + +func (sc *serverConn) goAway(code ErrCode) { + sc.serveG.check() + if sc.inGoAway { + return + } + sc.inGoAway = true + sc.needToSendGoAway = true + sc.goAwayCode = code + sc.scheduleFrameWrite() +} + +func (sc *serverConn) shutDownIn(d time.Duration) { + sc.serveG.check() + sc.shutdownTimer = time.AfterFunc(d, sc.onShutdownTimer) +} + +func (sc *serverConn) resetStream(se StreamError) { + sc.serveG.check() + sc.writeFrame(FrameWriteRequest{write: se}) + if st, ok := sc.streams[se.StreamID]; ok { + st.resetQueued = true + } +} + +// processFrameFromReader processes the serve loop's read from readFrameCh from the +// frame-reading goroutine. +// processFrameFromReader returns whether the connection should be kept open. +func (sc *serverConn) processFrameFromReader(res readFrameResult) bool { + sc.serveG.check() + err := res.err + if err != nil { + if err == ErrFrameTooLarge { + sc.goAway(ErrCodeFrameSize) + return true // goAway will close the loop + } + clientGone := err == io.EOF || err == io.ErrUnexpectedEOF || isClosedConnError(err) + if clientGone { + // TODO: could we also get into this state if + // the peer does a half close + // (e.g. CloseWrite) because they're done + // sending frames but they're still wanting + // our open replies? Investigate. + // TODO: add CloseWrite to crypto/tls.Conn first + // so we have a way to test this? I suppose + // just for testing we could have a non-TLS mode. + return false + } + } else { + f := res.f + if VerboseLogs { + sc.vlogf("http2: server read frame %v", summarizeFrame(f)) + } + err = sc.processFrame(f) + if err == nil { + return true + } + } + + switch ev := err.(type) { + case StreamError: + sc.resetStream(ev) + return true + case goAwayFlowError: + sc.goAway(ErrCodeFlowControl) + return true + case ConnectionError: + sc.logf("http2: server connection error from %v: %v", sc.conn.RemoteAddr(), ev) + sc.goAway(ErrCode(ev)) + return true // goAway will handle shutdown + default: + if res.err != nil { + sc.vlogf("http2: server closing client connection; error reading frame from client %s: %v", sc.conn.RemoteAddr(), err) + } else { + sc.logf("http2: server closing client connection: %v", err) + } + return false + } +} + +func (sc *serverConn) processFrame(f Frame) error { + sc.serveG.check() + + // First frame received must be SETTINGS. + if !sc.sawFirstSettings { + if _, ok := f.(*SettingsFrame); !ok { + return sc.countError("first_settings", ConnectionError(ErrCodeProtocol)) + } + sc.sawFirstSettings = true + } + + switch f := f.(type) { + case *SettingsFrame: + return sc.processSettings(f) + case *MetaHeadersFrame: + return sc.processHeaders(f) + case *WindowUpdateFrame: + return sc.processWindowUpdate(f) + case *PingFrame: + return sc.processPing(f) + case *DataFrame: + return sc.processData(f) + case *RSTStreamFrame: + return sc.processResetStream(f) + case *PriorityFrame: + return sc.processPriority(f) + case *GoAwayFrame: + return sc.processGoAway(f) + case *PushPromiseFrame: + // A client cannot push. Thus, servers MUST treat the receipt of a PUSH_PROMISE + // frame as a connection error (Section 5.4.1) of type PROTOCOL_ERROR. + return sc.countError("push_promise", ConnectionError(ErrCodeProtocol)) + default: + sc.vlogf("http2: server ignoring frame: %v", f.Header()) + return nil + } +} + +func (sc *serverConn) processPing(f *PingFrame) error { + sc.serveG.check() + if f.IsAck() { + // 6.7 PING: " An endpoint MUST NOT respond to PING frames + // containing this flag." + return nil + } + if f.StreamID != 0 { + // "PING frames are not associated with any individual + // stream. If a PING frame is received with a stream + // identifier field value other than 0x0, the recipient MUST + // respond with a connection error (Section 5.4.1) of type + // PROTOCOL_ERROR." + return sc.countError("ping_on_stream", ConnectionError(ErrCodeProtocol)) + } + if sc.inGoAway && sc.goAwayCode != ErrCodeNo { + return nil + } + sc.writeFrame(FrameWriteRequest{write: writePingAck{f}}) + return nil +} + +func (sc *serverConn) processWindowUpdate(f *WindowUpdateFrame) error { + sc.serveG.check() + switch { + case f.StreamID != 0: // stream-level flow control + state, st := sc.state(f.StreamID) + if state == stateIdle { + // Section 5.1: "Receiving any frame other than HEADERS + // or PRIORITY on a stream in this state MUST be + // treated as a connection error (Section 5.4.1) of + // type PROTOCOL_ERROR." + return sc.countError("stream_idle", ConnectionError(ErrCodeProtocol)) + } + if st == nil { + // "WINDOW_UPDATE can be sent by a peer that has sent a + // frame bearing the END_STREAM flag. This means that a + // receiver could receive a WINDOW_UPDATE frame on a "half + // closed (remote)" or "closed" stream. A receiver MUST + // NOT treat this as an error, see Section 5.1." + return nil + } + if !st.flow.add(int32(f.Increment)) { + return sc.countError("bad_flow", streamError(f.StreamID, ErrCodeFlowControl)) + } + default: // connection-level flow control + if !sc.flow.add(int32(f.Increment)) { + return goAwayFlowError{} + } + } + sc.scheduleFrameWrite() + return nil +} + +func (sc *serverConn) processResetStream(f *RSTStreamFrame) error { + sc.serveG.check() + + state, st := sc.state(f.StreamID) + if state == stateIdle { + // 6.4 "RST_STREAM frames MUST NOT be sent for a + // stream in the "idle" state. If a RST_STREAM frame + // identifying an idle stream is received, the + // recipient MUST treat this as a connection error + // (Section 5.4.1) of type PROTOCOL_ERROR. + return sc.countError("reset_idle_stream", ConnectionError(ErrCodeProtocol)) + } + if st != nil { + st.cancelCtx() + sc.closeStream(st, streamError(f.StreamID, f.ErrCode)) + } + return nil +} + +func (sc *serverConn) closeStream(st *stream, err error) { + sc.serveG.check() + if st.state == stateIdle || st.state == stateClosed { + panic(fmt.Sprintf("invariant; can't close stream in state %v", st.state)) + } + st.state = stateClosed + if st.writeDeadline != nil { + st.writeDeadline.Stop() + } + if st.isPushed() { + sc.curPushedStreams-- + } else { + sc.curClientStreams-- + } + delete(sc.streams, st.id) + if len(sc.streams) == 0 { + sc.setConnState(http.StateIdle) + if sc.srv.IdleTimeout != 0 { + sc.idleTimer.Reset(sc.srv.IdleTimeout) + } + if h1ServerKeepAlivesDisabled(sc.hs) { + sc.startGracefulShutdownInternal() + } + } + if p := st.body; p != nil { + // Return any buffered unread bytes worth of conn-level flow control. + // See golang.org/issue/16481 + sc.sendWindowUpdate(nil, p.Len()) + + p.CloseWithError(err) + } + st.cw.Close() // signals Handler's CloseNotifier, unblocks writes, etc + sc.writeSched.CloseStream(st.id) +} + +func (sc *serverConn) processSettings(f *SettingsFrame) error { + sc.serveG.check() + if f.IsAck() { + sc.unackedSettings-- + if sc.unackedSettings < 0 { + // Why is the peer ACKing settings we never sent? + // The spec doesn't mention this case, but + // hang up on them anyway. + return sc.countError("ack_mystery", ConnectionError(ErrCodeProtocol)) + } + return nil + } + if f.NumSettings() > 100 || f.HasDuplicates() { + // This isn't actually in the spec, but hang up on + // suspiciously large settings frames or those with + // duplicate entries. + return sc.countError("settings_big_or_dups", ConnectionError(ErrCodeProtocol)) + } + if err := f.ForeachSetting(sc.processSetting); err != nil { + return err + } + // TODO: judging by RFC 7540, Section 6.5.3 each SETTINGS frame should be + // acknowledged individually, even if multiple are received before the ACK. + sc.needToSendSettingsAck = true + sc.scheduleFrameWrite() + return nil +} + +func (sc *serverConn) processSetting(s Setting) error { + sc.serveG.check() + if err := s.Valid(); err != nil { + return err + } + if VerboseLogs { + sc.vlogf("http2: server processing setting %v", s) + } + switch s.ID { + case SettingHeaderTableSize: + sc.headerTableSize = s.Val + sc.hpackEncoder.SetMaxDynamicTableSize(s.Val) + case SettingEnablePush: + sc.pushEnabled = s.Val != 0 + case SettingMaxConcurrentStreams: + sc.clientMaxStreams = s.Val + case SettingInitialWindowSize: + return sc.processSettingInitialWindowSize(s.Val) + case SettingMaxFrameSize: + sc.maxFrameSize = int32(s.Val) // the maximum valid s.Val is < 2^31 + case SettingMaxHeaderListSize: + sc.peerMaxHeaderListSize = s.Val + default: + // Unknown setting: "An endpoint that receives a SETTINGS + // frame with any unknown or unsupported identifier MUST + // ignore that setting." + if VerboseLogs { + sc.vlogf("http2: server ignoring unknown setting %v", s) + } + } + return nil +} + +func (sc *serverConn) processSettingInitialWindowSize(val uint32) error { + sc.serveG.check() + // Note: val already validated to be within range by + // processSetting's Valid call. + + // "A SETTINGS frame can alter the initial flow control window + // size for all current streams. When the value of + // SETTINGS_INITIAL_WINDOW_SIZE changes, a receiver MUST + // adjust the size of all stream flow control windows that it + // maintains by the difference between the new value and the + // old value." + old := sc.initialStreamSendWindowSize + sc.initialStreamSendWindowSize = int32(val) + growth := int32(val) - old // may be negative + for _, st := range sc.streams { + if !st.flow.add(growth) { + // 6.9.2 Initial Flow Control Window Size + // "An endpoint MUST treat a change to + // SETTINGS_INITIAL_WINDOW_SIZE that causes any flow + // control window to exceed the maximum size as a + // connection error (Section 5.4.1) of type + // FLOW_CONTROL_ERROR." + return sc.countError("setting_win_size", ConnectionError(ErrCodeFlowControl)) + } + } + return nil +} + +func (sc *serverConn) processData(f *DataFrame) error { + sc.serveG.check() + id := f.Header().StreamID + if sc.inGoAway && (sc.goAwayCode != ErrCodeNo || id > sc.maxClientStreamID) { + // Discard all DATA frames if the GOAWAY is due to an + // error, or: + // + // Section 6.8: After sending a GOAWAY frame, the sender + // can discard frames for streams initiated by the + // receiver with identifiers higher than the identified + // last stream. + return nil + } + + data := f.Data() + state, st := sc.state(id) + if id == 0 || state == stateIdle { + // Section 6.1: "DATA frames MUST be associated with a + // stream. If a DATA frame is received whose stream + // identifier field is 0x0, the recipient MUST respond + // with a connection error (Section 5.4.1) of type + // PROTOCOL_ERROR." + // + // Section 5.1: "Receiving any frame other than HEADERS + // or PRIORITY on a stream in this state MUST be + // treated as a connection error (Section 5.4.1) of + // type PROTOCOL_ERROR." + return sc.countError("data_on_idle", ConnectionError(ErrCodeProtocol)) + } + + // "If a DATA frame is received whose stream is not in "open" + // or "half closed (local)" state, the recipient MUST respond + // with a stream error (Section 5.4.2) of type STREAM_CLOSED." + if st == nil || state != stateOpen || st.gotTrailerHeader || st.resetQueued { + // This includes sending a RST_STREAM if the stream is + // in stateHalfClosedLocal (which currently means that + // the http.Handler returned, so it's done reading & + // done writing). Try to stop the client from sending + // more DATA. + + // But still enforce their connection-level flow control, + // and return any flow control bytes since we're not going + // to consume them. + if sc.inflow.available() < int32(f.Length) { + return sc.countError("data_flow", streamError(id, ErrCodeFlowControl)) + } + // Deduct the flow control from inflow, since we're + // going to immediately add it back in + // sendWindowUpdate, which also schedules sending the + // frames. + sc.inflow.take(int32(f.Length)) + sc.sendWindowUpdate(nil, int(f.Length)) // conn-level + + if st != nil && st.resetQueued { + // Already have a stream error in flight. Don't send another. + return nil + } + return sc.countError("closed", streamError(id, ErrCodeStreamClosed)) + } + if st.body == nil { + panic("internal error: should have a body in this state") + } + + // Sender sending more than they'd declared? + if st.declBodyBytes != -1 && st.bodyBytes+int64(len(data)) > st.declBodyBytes { + st.body.CloseWithError(fmt.Errorf("sender tried to send more than declared Content-Length of %d bytes", st.declBodyBytes)) + // RFC 7540, sec 8.1.2.6: A request or response is also malformed if the + // value of a content-length header field does not equal the sum of the + // DATA frame payload lengths that form the body. + return sc.countError("send_too_much", streamError(id, ErrCodeProtocol)) + } + if f.Length > 0 { + // Check whether the client has flow control quota. + if st.inflow.available() < int32(f.Length) { + return sc.countError("flow_on_data_length", streamError(id, ErrCodeFlowControl)) + } + st.inflow.take(int32(f.Length)) + + if len(data) > 0 { + wrote, err := st.body.Write(data) + if err != nil { + sc.sendWindowUpdate(nil, int(f.Length)-wrote) + return sc.countError("body_write_err", streamError(id, ErrCodeStreamClosed)) + } + if wrote != len(data) { + panic("internal error: bad Writer") + } + st.bodyBytes += int64(len(data)) + } + + // Return any padded flow control now, since we won't + // refund it later on body reads. + if pad := int32(f.Length) - int32(len(data)); pad > 0 { + sc.sendWindowUpdate32(nil, pad) + sc.sendWindowUpdate32(st, pad) + } + } + if f.StreamEnded() { + st.endStream() + } + return nil +} + +func (sc *serverConn) processGoAway(f *GoAwayFrame) error { + sc.serveG.check() + if f.ErrCode != ErrCodeNo { + sc.logf("http2: received GOAWAY %+v, starting graceful shutdown", f) + } else { + sc.vlogf("http2: received GOAWAY %+v, starting graceful shutdown", f) + } + sc.startGracefulShutdownInternal() + // http://tools.ietf.org/html/rfc7540#section-6.8 + // We should not create any new streams, which means we should disable push. + sc.pushEnabled = false + return nil +} + +// isPushed reports whether the stream is server-initiated. +func (st *stream) isPushed() bool { + return st.id%2 == 0 +} + +// endStream closes a Request.Body's pipe. It is called when a DATA +// frame says a request body is over (or after trailers). +func (st *stream) endStream() { + sc := st.sc + sc.serveG.check() + + if st.declBodyBytes != -1 && st.declBodyBytes != st.bodyBytes { + st.body.CloseWithError(fmt.Errorf("request declared a Content-Length of %d but only wrote %d bytes", + st.declBodyBytes, st.bodyBytes)) + } else { + st.body.closeWithErrorAndCode(io.EOF, st.copyTrailersToHandlerRequest) + st.body.CloseWithError(io.EOF) + } + st.state = stateHalfClosedRemote +} + +// copyTrailersToHandlerRequest is run in the Handler's goroutine in +// its Request.Body.Read just before it gets io.EOF. +func (st *stream) copyTrailersToHandlerRequest() { + for k, vv := range st.trailer { + if _, ok := st.reqTrailer[k]; ok { + // Only copy it over it was pre-declared. + st.reqTrailer[k] = vv + } + } +} + +// onWriteTimeout is run on its own goroutine (from time.AfterFunc) +// when the stream's WriteTimeout has fired. +func (st *stream) onWriteTimeout() { + st.sc.writeFrameFromHandler(FrameWriteRequest{write: streamError(st.id, ErrCodeInternal)}) +} + +func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { + sc.serveG.check() + id := f.StreamID + if sc.inGoAway { + // Ignore. + return nil + } + // http://tools.ietf.org/html/rfc7540#section-5.1.1 + // Streams initiated by a client MUST use odd-numbered stream + // identifiers. [...] An endpoint that receives an unexpected + // stream identifier MUST respond with a connection error + // (Section 5.4.1) of type PROTOCOL_ERROR. + if id%2 != 1 { + return sc.countError("headers_even", ConnectionError(ErrCodeProtocol)) + } + // A HEADERS frame can be used to create a new stream or + // send a trailer for an open one. If we already have a stream + // open, let it process its own HEADERS frame (trailers at this + // point, if it's valid). + if st := sc.streams[f.StreamID]; st != nil { + if st.resetQueued { + // We're sending RST_STREAM to close the stream, so don't bother + // processing this frame. + return nil + } + // RFC 7540, sec 5.1: If an endpoint receives additional frames, other than + // WINDOW_UPDATE, PRIORITY, or RST_STREAM, for a stream that is in + // this state, it MUST respond with a stream error (Section 5.4.2) of + // type STREAM_CLOSED. + if st.state == stateHalfClosedRemote { + return sc.countError("headers_half_closed", streamError(id, ErrCodeStreamClosed)) + } + return st.processTrailerHeaders(f) + } + + // [...] The identifier of a newly established stream MUST be + // numerically greater than all streams that the initiating + // endpoint has opened or reserved. [...] An endpoint that + // receives an unexpected stream identifier MUST respond with + // a connection error (Section 5.4.1) of type PROTOCOL_ERROR. + if id <= sc.maxClientStreamID { + return sc.countError("stream_went_down", ConnectionError(ErrCodeProtocol)) + } + sc.maxClientStreamID = id + + if sc.idleTimer != nil { + sc.idleTimer.Stop() + } + + // http://tools.ietf.org/html/rfc7540#section-5.1.2 + // [...] Endpoints MUST NOT exceed the limit set by their peer. An + // endpoint that receives a HEADERS frame that causes their + // advertised concurrent stream limit to be exceeded MUST treat + // this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR + // or REFUSED_STREAM. + if sc.curClientStreams+1 > sc.advMaxStreams { + if sc.unackedSettings == 0 { + // They should know better. + return sc.countError("over_max_streams", streamError(id, ErrCodeProtocol)) + } + // Assume it's a network race, where they just haven't + // received our last SETTINGS update. But actually + // this can't happen yet, because we don't yet provide + // a way for users to adjust server parameters at + // runtime. + return sc.countError("over_max_streams_race", streamError(id, ErrCodeRefusedStream)) + } + + initialState := stateOpen + if f.StreamEnded() { + initialState = stateHalfClosedRemote + } + st := sc.newStream(id, 0, initialState) + + if f.HasPriority() { + if err := sc.checkPriority(f.StreamID, f.Priority); err != nil { + return err + } + sc.writeSched.AdjustStream(st.id, f.Priority) + } + + rw, req, err := sc.newWriterAndRequest(st, f) + if err != nil { + return err + } + st.reqTrailer = req.Trailer + if st.reqTrailer != nil { + st.trailer = make(http.Header) + } + st.body = req.Body.(*requestBody).pipe // may be nil + st.declBodyBytes = req.ContentLength + + handler := sc.handler.ServeHTTP + if f.Truncated { + // Their header list was too long. Send a 431 error. + handler = handleHeaderListTooLong + } else if err := checkValidHTTP2RequestHeaders(req.Header); err != nil { + handler = new400Handler(err) + } + + // The net/http package sets the read deadline from the + // http.Server.ReadTimeout during the TLS handshake, but then + // passes the connection off to us with the deadline already + // set. Disarm it here after the request headers are read, + // similar to how the http1 server works. Here it's + // technically more like the http1 Server's ReadHeaderTimeout + // (in Go 1.8), though. That's a more sane option anyway. + if sc.hs.ReadTimeout != 0 { + sc.conn.SetReadDeadline(time.Time{}) + } + + go sc.runHandler(rw, req, handler) + return nil +} + +func (st *stream) processTrailerHeaders(f *MetaHeadersFrame) error { + sc := st.sc + sc.serveG.check() + if st.gotTrailerHeader { + return sc.countError("dup_trailers", ConnectionError(ErrCodeProtocol)) + } + st.gotTrailerHeader = true + if !f.StreamEnded() { + return sc.countError("trailers_not_ended", streamError(st.id, ErrCodeProtocol)) + } + + if len(f.PseudoFields()) > 0 { + return sc.countError("trailers_pseudo", streamError(st.id, ErrCodeProtocol)) + } + if st.trailer != nil { + for _, hf := range f.RegularFields() { + key := sc.canonicalHeader(hf.Name) + if !httpguts.ValidTrailerHeader(key) { + // TODO: send more details to the peer somehow. But http2 has + // no way to send debug data at a stream level. Discuss with + // HTTP folk. + return sc.countError("trailers_bogus", streamError(st.id, ErrCodeProtocol)) + } + st.trailer[key] = append(st.trailer[key], hf.Value) + } + } + st.endStream() + return nil +} + +func (sc *serverConn) checkPriority(streamID uint32, p PriorityParam) error { + if streamID == p.StreamDep { + // Section 5.3.1: "A stream cannot depend on itself. An endpoint MUST treat + // this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR." + // Section 5.3.3 says that a stream can depend on one of its dependencies, + // so it's only self-dependencies that are forbidden. + return sc.countError("priority", streamError(streamID, ErrCodeProtocol)) + } + return nil +} + +func (sc *serverConn) processPriority(f *PriorityFrame) error { + if sc.inGoAway { + return nil + } + if err := sc.checkPriority(f.StreamID, f.PriorityParam); err != nil { + return err + } + sc.writeSched.AdjustStream(f.StreamID, f.PriorityParam) + return nil +} + +func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream { + sc.serveG.check() + if id == 0 { + panic("internal error: cannot create stream with id 0") + } + + ctx, cancelCtx := context.WithCancel(sc.baseCtx) + st := &stream{ + sc: sc, + id: id, + state: state, + ctx: ctx, + cancelCtx: cancelCtx, + } + st.cw.Init() + st.flow.conn = &sc.flow // link to conn-level counter + st.flow.add(sc.initialStreamSendWindowSize) + st.inflow.conn = &sc.inflow // link to conn-level counter + st.inflow.add(sc.srv.initialStreamRecvWindowSize()) + if sc.hs.WriteTimeout != 0 { + st.writeDeadline = time.AfterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) + } + + sc.streams[id] = st + sc.writeSched.OpenStream(st.id, OpenStreamOptions{PusherID: pusherID}) + if st.isPushed() { + sc.curPushedStreams++ + } else { + sc.curClientStreams++ + } + if sc.curOpenStreams() == 1 { + sc.setConnState(http.StateActive) + } + + return st +} + +func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*responseWriter, *http.Request, error) { + sc.serveG.check() + + rp := requestParam{ + method: f.PseudoValue("method"), + scheme: f.PseudoValue("scheme"), + authority: f.PseudoValue("authority"), + path: f.PseudoValue("path"), + } + + isConnect := rp.method == "CONNECT" + if isConnect { + if rp.path != "" || rp.scheme != "" || rp.authority == "" { + return nil, nil, streamError(f.StreamID, ErrCodeProtocol) + } + } else if rp.method == "" || rp.path == "" || (rp.scheme != "https" && rp.scheme != "http") { + // See 8.1.2.6 Malformed Requests and Responses: + // + // Malformed requests or responses that are detected + // MUST be treated as a stream error (Section 5.4.2) + // of type PROTOCOL_ERROR." + // + // 8.1.2.3 Request Pseudo-Header Fields + // "All HTTP/2 requests MUST include exactly one valid + // value for the :method, :scheme, and :path + // pseudo-header fields" + return nil, nil, sc.countError("bad_path_method", streamError(f.StreamID, ErrCodeProtocol)) + } + + bodyOpen := !f.StreamEnded() + if rp.method == "HEAD" && bodyOpen { + // HEAD requests can't have bodies + return nil, nil, sc.countError("head_body", streamError(f.StreamID, ErrCodeProtocol)) + } + + rp.header = make(http.Header) + for _, hf := range f.RegularFields() { + rp.header.Add(sc.canonicalHeader(hf.Name), hf.Value) + } + if rp.authority == "" { + rp.authority = rp.header.Get("Host") + } + + rw, req, err := sc.newWriterAndRequestNoBody(st, rp) + if err != nil { + return nil, nil, err + } + if bodyOpen { + if vv, ok := rp.header["Content-Length"]; ok { + if cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil { + req.ContentLength = int64(cl) + } else { + req.ContentLength = 0 + } + } else { + req.ContentLength = -1 + } + req.Body.(*requestBody).pipe = &pipe{ + b: &dataBuffer{expected: req.ContentLength}, + } + } + return rw, req, nil +} + +type requestParam struct { + method string + scheme, authority, path string + header http.Header +} + +func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*responseWriter, *http.Request, error) { + sc.serveG.check() + + var tlsState *tls.ConnectionState // nil if not scheme https + if rp.scheme == "https" { + tlsState = sc.tlsState + } + + needsContinue := rp.header.Get("Expect") == "100-continue" + if needsContinue { + rp.header.Del("Expect") + } + // Merge Cookie headers into one "; "-delimited value. + if cookies := rp.header["Cookie"]; len(cookies) > 1 { + rp.header.Set("Cookie", strings.Join(cookies, "; ")) + } + + // Setup Trailers + var trailer http.Header + for _, v := range rp.header["Trailer"] { + for _, key := range strings.Split(v, ",") { + key = http.CanonicalHeaderKey(textproto.TrimString(key)) + switch key { + case "Transfer-Encoding", "Trailer", "Content-Length": + // Bogus. (copy of http1 rules) + // Ignore. + default: + if trailer == nil { + trailer = make(http.Header) + } + trailer[key] = nil + } + } + } + delete(rp.header, "Trailer") + + var url_ *url.URL + var requestURI string + if rp.method == "CONNECT" { + url_ = &url.URL{Host: rp.authority} + requestURI = rp.authority // mimic HTTP/1 server behavior + } else { + var err error + url_, err = url.ParseRequestURI(rp.path) + if err != nil { + return nil, nil, sc.countError("bad_path", streamError(st.id, ErrCodeProtocol)) + } + requestURI = rp.path + } + + body := &requestBody{ + conn: sc, + stream: st, + needsContinue: needsContinue, + } + req := &http.Request{ + Method: rp.method, + URL: url_, + RemoteAddr: sc.remoteAddrStr, + Header: rp.header, + RequestURI: requestURI, + Proto: "HTTP/2.0", + ProtoMajor: 2, + ProtoMinor: 0, + TLS: tlsState, + Host: rp.authority, + Body: body, + Trailer: trailer, + } + req = req.WithContext(st.ctx) + + rws := responseWriterStatePool.Get().(*responseWriterState) + bwSave := rws.bw + *rws = responseWriterState{} // zero all the fields + rws.conn = sc + rws.bw = bwSave + rws.bw.Reset(chunkWriter{rws}) + rws.stream = st + rws.req = req + rws.body = body + + rw := &responseWriter{rws: rws} + return rw, req, nil +} + +// Run on its own goroutine. +func (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) { + didPanic := true + defer func() { + rw.rws.stream.cancelCtx() + if didPanic { + e := recover() + sc.writeFrameFromHandler(FrameWriteRequest{ + write: handlerPanicRST{rw.rws.stream.id}, + stream: rw.rws.stream, + }) + // Same as net/http: + if e != nil && e != http.ErrAbortHandler { + const size = 64 << 10 + buf := make([]byte, size) + buf = buf[:runtime.Stack(buf, false)] + sc.logf("http2: panic serving %v: %v\n%s", sc.conn.RemoteAddr(), e, buf) + } + return + } + rw.handlerDone() + }() + handler(rw, req) + didPanic = false +} + +func handleHeaderListTooLong(w http.ResponseWriter, r *http.Request) { + // 10.5.1 Limits on Header Block Size: + // .. "A server that receives a larger header block than it is + // willing to handle can send an HTTP 431 (Request Header Fields Too + // Large) status code" + const statusRequestHeaderFieldsTooLarge = 431 // only in Go 1.6+ + w.WriteHeader(statusRequestHeaderFieldsTooLarge) + io.WriteString(w, "

HTTP Error 431

Request Header Field(s) Too Large

") +} + +// called from handler goroutines. +// h may be nil. +func (sc *serverConn) writeHeaders(st *stream, headerData *writeResHeaders) error { + sc.serveG.checkNotOn() // NOT on + var errc chan error + if headerData.h != nil { + // If there's a header map (which we don't own), so we have to block on + // waiting for this frame to be written, so an http.Flush mid-handler + // writes out the correct value of keys, before a handler later potentially + // mutates it. + errc = errChanPool.Get().(chan error) + } + if err := sc.writeFrameFromHandler(FrameWriteRequest{ + write: headerData, + stream: st, + done: errc, + }); err != nil { + return err + } + if errc != nil { + select { + case err := <-errc: + errChanPool.Put(errc) + return err + case <-sc.doneServing: + return errClientDisconnected + case <-st.cw: + return errStreamClosed + } + } + return nil +} + +// called from handler goroutines. +func (sc *serverConn) write100ContinueHeaders(st *stream) { + sc.writeFrameFromHandler(FrameWriteRequest{ + write: write100ContinueHeadersFrame{st.id}, + stream: st, + }) +} + +// A bodyReadMsg tells the server loop that the http.Handler read n +// bytes of the DATA from the client on the given stream. +type bodyReadMsg struct { + st *stream + n int +} + +// called from handler goroutines. +// Notes that the handler for the given stream ID read n bytes of its body +// and schedules flow control tokens to be sent. +func (sc *serverConn) noteBodyReadFromHandler(st *stream, n int, err error) { + sc.serveG.checkNotOn() // NOT on + if n > 0 { + select { + case sc.bodyReadCh <- bodyReadMsg{st, n}: + case <-sc.doneServing: + } + } +} + +func (sc *serverConn) noteBodyRead(st *stream, n int) { + sc.serveG.check() + sc.sendWindowUpdate(nil, n) // conn-level + if st.state != stateHalfClosedRemote && st.state != stateClosed { + // Don't send this WINDOW_UPDATE if the stream is closed + // remotely. + sc.sendWindowUpdate(st, n) + } +} + +// st may be nil for conn-level +func (sc *serverConn) sendWindowUpdate(st *stream, n int) { + sc.serveG.check() + // "The legal range for the increment to the flow control + // window is 1 to 2^31-1 (2,147,483,647) octets." + // A Go Read call on 64-bit machines could in theory read + // a larger Read than this. Very unlikely, but we handle it here + // rather than elsewhere for now. + const maxUint31 = 1<<31 - 1 + for n >= maxUint31 { + sc.sendWindowUpdate32(st, maxUint31) + n -= maxUint31 + } + sc.sendWindowUpdate32(st, int32(n)) +} + +// st may be nil for conn-level +func (sc *serverConn) sendWindowUpdate32(st *stream, n int32) { + sc.serveG.check() + if n == 0 { + return + } + if n < 0 { + panic("negative update") + } + var streamID uint32 + if st != nil { + streamID = st.id + } + sc.writeFrame(FrameWriteRequest{ + write: writeWindowUpdate{streamID: streamID, n: uint32(n)}, + stream: st, + }) + var ok bool + if st == nil { + ok = sc.inflow.add(n) + } else { + ok = st.inflow.add(n) + } + if !ok { + panic("internal error; sent too many window updates without decrements?") + } +} + +// requestBody is the Handler's Request.Body type. +// Read and Close may be called concurrently. +type requestBody struct { + _ incomparable + stream *stream + conn *serverConn + closed bool // for use by Close only + sawEOF bool // for use by Read only + pipe *pipe // non-nil if we have a HTTP entity message body + needsContinue bool // need to send a 100-continue +} + +func (b *requestBody) Close() error { + if b.pipe != nil && !b.closed { + b.pipe.BreakWithError(errClosedBody) + } + b.closed = true + return nil +} + +func (b *requestBody) Read(p []byte) (n int, err error) { + if b.needsContinue { + b.needsContinue = false + b.conn.write100ContinueHeaders(b.stream) + } + if b.pipe == nil || b.sawEOF { + return 0, io.EOF + } + n, err = b.pipe.Read(p) + if err == io.EOF { + b.sawEOF = true + } + if b.conn == nil && inTests { + return + } + b.conn.noteBodyReadFromHandler(b.stream, n, err) + return +} + +// responseWriter is the http.ResponseWriter implementation. It's +// intentionally small (1 pointer wide) to minimize garbage. The +// responseWriterState pointer inside is zeroed at the end of a +// request (in handlerDone) and calls on the responseWriter thereafter +// simply crash (caller's mistake), but the much larger responseWriterState +// and buffers are reused between multiple requests. +type responseWriter struct { + rws *responseWriterState +} + +// Optional http.ResponseWriter interfaces implemented. +var ( + _ http.CloseNotifier = (*responseWriter)(nil) + _ http.Flusher = (*responseWriter)(nil) + _ stringWriter = (*responseWriter)(nil) +) + +type responseWriterState struct { + // immutable within a request: + stream *stream + req *http.Request + body *requestBody // to close at end of request, if DATA frames didn't + conn *serverConn + + // TODO: adjust buffer writing sizes based on server config, frame size updates from peer, etc + bw *bufio.Writer // writing to a chunkWriter{this *responseWriterState} + + // mutated by http.Handler goroutine: + handlerHeader http.Header // nil until called + snapHeader http.Header // snapshot of handlerHeader at WriteHeader time + trailers []string // set in writeChunk + status int // status code passed to WriteHeader + wroteHeader bool // WriteHeader called (explicitly or implicitly). Not necessarily sent to user yet. + sentHeader bool // have we sent the header frame? + handlerDone bool // handler has finished + dirty bool // a Write failed; don't reuse this responseWriterState + + sentContentLen int64 // non-zero if handler set a Content-Length header + wroteBytes int64 + + closeNotifierMu sync.Mutex // guards closeNotifierCh + closeNotifierCh chan bool // nil until first used +} + +type chunkWriter struct{ rws *responseWriterState } + +func (cw chunkWriter) Write(p []byte) (n int, err error) { return cw.rws.writeChunk(p) } + +func (rws *responseWriterState) hasTrailers() bool { return len(rws.trailers) > 0 } + +func (rws *responseWriterState) hasNonemptyTrailers() bool { + for _, trailer := range rws.trailers { + if _, ok := rws.handlerHeader[trailer]; ok { + return true + } + } + return false +} + +// declareTrailer is called for each Trailer header when the +// response header is written. It notes that a header will need to be +// written in the trailers at the end of the response. +func (rws *responseWriterState) declareTrailer(k string) { + k = http.CanonicalHeaderKey(k) + if !httpguts.ValidTrailerHeader(k) { + // Forbidden by RFC 7230, section 4.1.2. + rws.conn.logf("ignoring invalid trailer %q", k) + return + } + if !strSliceContains(rws.trailers, k) { + rws.trailers = append(rws.trailers, k) + } +} + +// writeChunk writes chunks from the bufio.Writer. But because +// bufio.Writer may bypass its chunking, sometimes p may be +// arbitrarily large. +// +// writeChunk is also responsible (on the first chunk) for sending the +// HEADER response. +func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { + if !rws.wroteHeader { + rws.writeHeader(200) + } + + isHeadResp := rws.req.Method == "HEAD" + if !rws.sentHeader { + rws.sentHeader = true + var ctype, clen string + if clen = rws.snapHeader.Get("Content-Length"); clen != "" { + rws.snapHeader.Del("Content-Length") + if cl, err := strconv.ParseUint(clen, 10, 63); err == nil { + rws.sentContentLen = int64(cl) + } else { + clen = "" + } + } + if clen == "" && rws.handlerDone && bodyAllowedForStatus(rws.status) && (len(p) > 0 || !isHeadResp) { + clen = strconv.Itoa(len(p)) + } + _, hasContentType := rws.snapHeader["Content-Type"] + // If the Content-Encoding is non-blank, we shouldn't + // sniff the body. See Issue golang.org/issue/31753. + ce := rws.snapHeader.Get("Content-Encoding") + hasCE := len(ce) > 0 + if !hasCE && !hasContentType && bodyAllowedForStatus(rws.status) && len(p) > 0 { + ctype = http.DetectContentType(p) + } + var date string + if _, ok := rws.snapHeader["Date"]; !ok { + // TODO(bradfitz): be faster here, like net/http? measure. + date = time.Now().UTC().Format(http.TimeFormat) + } + + for _, v := range rws.snapHeader["Trailer"] { + foreachHeaderElement(v, rws.declareTrailer) + } + + // "Connection" headers aren't allowed in HTTP/2 (RFC 7540, 8.1.2.2), + // but respect "Connection" == "close" to mean sending a GOAWAY and tearing + // down the TCP connection when idle, like we do for HTTP/1. + // TODO: remove more Connection-specific header fields here, in addition + // to "Connection". + if _, ok := rws.snapHeader["Connection"]; ok { + v := rws.snapHeader.Get("Connection") + delete(rws.snapHeader, "Connection") + if v == "close" { + rws.conn.startGracefulShutdown() + } + } + + endStream := (rws.handlerDone && !rws.hasTrailers() && len(p) == 0) || isHeadResp + err = rws.conn.writeHeaders(rws.stream, &writeResHeaders{ + streamID: rws.stream.id, + httpResCode: rws.status, + h: rws.snapHeader, + endStream: endStream, + contentType: ctype, + contentLength: clen, + date: date, + }) + if err != nil { + rws.dirty = true + return 0, err + } + if endStream { + return 0, nil + } + } + if isHeadResp { + return len(p), nil + } + if len(p) == 0 && !rws.handlerDone { + return 0, nil + } + + if rws.handlerDone { + rws.promoteUndeclaredTrailers() + } + + // only send trailers if they have actually been defined by the + // server handler. + hasNonemptyTrailers := rws.hasNonemptyTrailers() + endStream := rws.handlerDone && !hasNonemptyTrailers + if len(p) > 0 || endStream { + // only send a 0 byte DATA frame if we're ending the stream. + if err := rws.conn.writeDataFromHandler(rws.stream, p, endStream); err != nil { + rws.dirty = true + return 0, err + } + } + + if rws.handlerDone && hasNonemptyTrailers { + err = rws.conn.writeHeaders(rws.stream, &writeResHeaders{ + streamID: rws.stream.id, + h: rws.handlerHeader, + trailers: rws.trailers, + endStream: true, + }) + if err != nil { + rws.dirty = true + } + return len(p), err + } + return len(p), nil +} + +// TrailerPrefix is a magic prefix for ResponseWriter.Header map keys +// that, if present, signals that the map entry is actually for +// the response trailers, and not the response headers. The prefix +// is stripped after the ServeHTTP call finishes and the values are +// sent in the trailers. +// +// This mechanism is intended only for trailers that are not known +// prior to the headers being written. If the set of trailers is fixed +// or known before the header is written, the normal Go trailers mechanism +// is preferred: +// https://golang.org/pkg/net/http/#ResponseWriter +// https://golang.org/pkg/net/http/#example_ResponseWriter_trailers +const TrailerPrefix = "Trailer:" + +// promoteUndeclaredTrailers permits http.Handlers to set trailers +// after the header has already been flushed. Because the Go +// ResponseWriter interface has no way to set Trailers (only the +// Header), and because we didn't want to expand the ResponseWriter +// interface, and because nobody used trailers, and because RFC 7230 +// says you SHOULD (but not must) predeclare any trailers in the +// header, the official ResponseWriter rules said trailers in Go must +// be predeclared, and then we reuse the same ResponseWriter.Header() +// map to mean both Headers and Trailers. When it's time to write the +// Trailers, we pick out the fields of Headers that were declared as +// trailers. That worked for a while, until we found the first major +// user of Trailers in the wild: gRPC (using them only over http2), +// and gRPC libraries permit setting trailers mid-stream without +// predeclaring them. So: change of plans. We still permit the old +// way, but we also permit this hack: if a Header() key begins with +// "Trailer:", the suffix of that key is a Trailer. Because ':' is an +// invalid token byte anyway, there is no ambiguity. (And it's already +// filtered out) It's mildly hacky, but not terrible. +// +// This method runs after the Handler is done and promotes any Header +// fields to be trailers. +func (rws *responseWriterState) promoteUndeclaredTrailers() { + for k, vv := range rws.handlerHeader { + if !strings.HasPrefix(k, TrailerPrefix) { + continue + } + trailerKey := strings.TrimPrefix(k, TrailerPrefix) + rws.declareTrailer(trailerKey) + rws.handlerHeader[http.CanonicalHeaderKey(trailerKey)] = vv + } + + if len(rws.trailers) > 1 { + sorter := sorterPool.Get().(*sorter) + sorter.SortStrings(rws.trailers) + sorterPool.Put(sorter) + } +} + +func (w *responseWriter) Flush() { + rws := w.rws + if rws == nil { + panic("Header called after Handler finished") + } + if rws.bw.Buffered() > 0 { + if err := rws.bw.Flush(); err != nil { + // Ignore the error. The frame writer already knows. + return + } + } else { + // The bufio.Writer won't call chunkWriter.Write + // (writeChunk with zero bytes, so we have to do it + // ourselves to force the HTTP response header and/or + // final DATA frame (with END_STREAM) to be sent. + rws.writeChunk(nil) + } +} + +func (w *responseWriter) CloseNotify() <-chan bool { + rws := w.rws + if rws == nil { + panic("CloseNotify called after Handler finished") + } + rws.closeNotifierMu.Lock() + ch := rws.closeNotifierCh + if ch == nil { + ch = make(chan bool, 1) + rws.closeNotifierCh = ch + cw := rws.stream.cw + go func() { + cw.Wait() // wait for close + ch <- true + }() + } + rws.closeNotifierMu.Unlock() + return ch +} + +func (w *responseWriter) Header() http.Header { + rws := w.rws + if rws == nil { + panic("Header called after Handler finished") + } + if rws.handlerHeader == nil { + rws.handlerHeader = make(http.Header) + } + return rws.handlerHeader +} + +// checkWriteHeaderCode is a copy of net/http's checkWriteHeaderCode. +func checkWriteHeaderCode(code int) { + // Issue 22880: require valid WriteHeader status codes. + // For now we only enforce that it's three digits. + // In the future we might block things over 599 (600 and above aren't defined + // at http://httpwg.org/specs/rfc7231.html#status.codes) + // and we might block under 200 (once we have more mature 1xx support). + // But for now any three digits. + // + // We used to send "HTTP/1.1 000 0" on the wire in responses but there's + // no equivalent bogus thing we can realistically send in HTTP/2, + // so we'll consistently panic instead and help people find their bugs + // early. (We can't return an error from WriteHeader even if we wanted to.) + if code < 100 || code > 999 { + panic(fmt.Sprintf("invalid WriteHeader code %v", code)) + } +} + +func (w *responseWriter) WriteHeader(code int) { + rws := w.rws + if rws == nil { + panic("WriteHeader called after Handler finished") + } + rws.writeHeader(code) +} + +func (rws *responseWriterState) writeHeader(code int) { + if !rws.wroteHeader { + checkWriteHeaderCode(code) + rws.wroteHeader = true + rws.status = code + if len(rws.handlerHeader) > 0 { + rws.snapHeader = cloneHeader(rws.handlerHeader) + } + } +} + +func cloneHeader(h http.Header) http.Header { + h2 := make(http.Header, len(h)) + for k, vv := range h { + vv2 := make([]string, len(vv)) + copy(vv2, vv) + h2[k] = vv2 + } + return h2 +} + +// The Life Of A Write is like this: +// +// * Handler calls w.Write or w.WriteString -> +// * -> rws.bw (*bufio.Writer) -> +// * (Handler might call Flush) +// * -> chunkWriter{rws} +// * -> responseWriterState.writeChunk(p []byte) +// * -> responseWriterState.writeChunk (most of the magic; see comment there) +func (w *responseWriter) Write(p []byte) (n int, err error) { + return w.write(len(p), p, "") +} + +func (w *responseWriter) WriteString(s string) (n int, err error) { + return w.write(len(s), nil, s) +} + +// either dataB or dataS is non-zero. +func (w *responseWriter) write(lenData int, dataB []byte, dataS string) (n int, err error) { + rws := w.rws + if rws == nil { + panic("Write called after Handler finished") + } + if !rws.wroteHeader { + w.WriteHeader(200) + } + if !bodyAllowedForStatus(rws.status) { + return 0, http.ErrBodyNotAllowed + } + rws.wroteBytes += int64(len(dataB)) + int64(len(dataS)) // only one can be set + if rws.sentContentLen != 0 && rws.wroteBytes > rws.sentContentLen { + // TODO: send a RST_STREAM + return 0, errors.New("http2: handler wrote more than declared Content-Length") + } + + if dataB != nil { + return rws.bw.Write(dataB) + } else { + return rws.bw.WriteString(dataS) + } +} + +func (w *responseWriter) handlerDone() { + rws := w.rws + dirty := rws.dirty + rws.handlerDone = true + w.Flush() + w.rws = nil + if !dirty { + // Only recycle the pool if all prior Write calls to + // the serverConn goroutine completed successfully. If + // they returned earlier due to resets from the peer + // there might still be write goroutines outstanding + // from the serverConn referencing the rws memory. See + // issue 20704. + responseWriterStatePool.Put(rws) + } +} + +// Push errors. +var ( + ErrRecursivePush = errors.New("http2: recursive push not allowed") + ErrPushLimitReached = errors.New("http2: push would exceed peer's SETTINGS_MAX_CONCURRENT_STREAMS") +) + +var _ http.Pusher = (*responseWriter)(nil) + +func (w *responseWriter) Push(target string, opts *http.PushOptions) error { + st := w.rws.stream + sc := st.sc + sc.serveG.checkNotOn() + + // No recursive pushes: "PUSH_PROMISE frames MUST only be sent on a peer-initiated stream." + // http://tools.ietf.org/html/rfc7540#section-6.6 + if st.isPushed() { + return ErrRecursivePush + } + + if opts == nil { + opts = new(http.PushOptions) + } + + // Default options. + if opts.Method == "" { + opts.Method = "GET" + } + if opts.Header == nil { + opts.Header = http.Header{} + } + wantScheme := "http" + if w.rws.req.TLS != nil { + wantScheme = "https" + } + + // Validate the request. + u, err := url.Parse(target) + if err != nil { + return err + } + if u.Scheme == "" { + if !strings.HasPrefix(target, "/") { + return fmt.Errorf("target must be an absolute URL or an absolute path: %q", target) + } + u.Scheme = wantScheme + u.Host = w.rws.req.Host + } else { + if u.Scheme != wantScheme { + return fmt.Errorf("cannot push URL with scheme %q from request with scheme %q", u.Scheme, wantScheme) + } + if u.Host == "" { + return errors.New("URL must have a host") + } + } + for k := range opts.Header { + if strings.HasPrefix(k, ":") { + return fmt.Errorf("promised request headers cannot include pseudo header %q", k) + } + // These headers are meaningful only if the request has a body, + // but PUSH_PROMISE requests cannot have a body. + // http://tools.ietf.org/html/rfc7540#section-8.2 + // Also disallow Host, since the promised URL must be absolute. + if asciiEqualFold(k, "content-length") || + asciiEqualFold(k, "content-encoding") || + asciiEqualFold(k, "trailer") || + asciiEqualFold(k, "te") || + asciiEqualFold(k, "expect") || + asciiEqualFold(k, "host") { + return fmt.Errorf("promised request headers cannot include %q", k) + } + } + if err := checkValidHTTP2RequestHeaders(opts.Header); err != nil { + return err + } + + // The RFC effectively limits promised requests to GET and HEAD: + // "Promised requests MUST be cacheable [GET, HEAD, or POST], and MUST be safe [GET or HEAD]" + // http://tools.ietf.org/html/rfc7540#section-8.2 + if opts.Method != "GET" && opts.Method != "HEAD" { + return fmt.Errorf("method %q must be GET or HEAD", opts.Method) + } + + msg := &startPushRequest{ + parent: st, + method: opts.Method, + url: u, + header: cloneHeader(opts.Header), + done: errChanPool.Get().(chan error), + } + + select { + case <-sc.doneServing: + return errClientDisconnected + case <-st.cw: + return errStreamClosed + case sc.serveMsgCh <- msg: + } + + select { + case <-sc.doneServing: + return errClientDisconnected + case <-st.cw: + return errStreamClosed + case err := <-msg.done: + errChanPool.Put(msg.done) + return err + } +} + +type startPushRequest struct { + parent *stream + method string + url *url.URL + header http.Header + done chan error +} + +func (sc *serverConn) startPush(msg *startPushRequest) { + sc.serveG.check() + + // http://tools.ietf.org/html/rfc7540#section-6.6. + // PUSH_PROMISE frames MUST only be sent on a peer-initiated stream that + // is in either the "open" or "half-closed (remote)" state. + if msg.parent.state != stateOpen && msg.parent.state != stateHalfClosedRemote { + // responseWriter.Push checks that the stream is peer-initiated. + msg.done <- errStreamClosed + return + } + + // http://tools.ietf.org/html/rfc7540#section-6.6. + if !sc.pushEnabled { + msg.done <- http.ErrNotSupported + return + } + + // PUSH_PROMISE frames must be sent in increasing order by stream ID, so + // we allocate an ID for the promised stream lazily, when the PUSH_PROMISE + // is written. Once the ID is allocated, we start the request handler. + allocatePromisedID := func() (uint32, error) { + sc.serveG.check() + + // Check this again, just in case. Technically, we might have received + // an updated SETTINGS by the time we got around to writing this frame. + if !sc.pushEnabled { + return 0, http.ErrNotSupported + } + // http://tools.ietf.org/html/rfc7540#section-6.5.2. + if sc.curPushedStreams+1 > sc.clientMaxStreams { + return 0, ErrPushLimitReached + } + + // http://tools.ietf.org/html/rfc7540#section-5.1.1. + // Streams initiated by the server MUST use even-numbered identifiers. + // A server that is unable to establish a new stream identifier can send a GOAWAY + // frame so that the client is forced to open a new connection for new streams. + if sc.maxPushPromiseID+2 >= 1<<31 { + sc.startGracefulShutdownInternal() + return 0, ErrPushLimitReached + } + sc.maxPushPromiseID += 2 + promisedID := sc.maxPushPromiseID + + // http://tools.ietf.org/html/rfc7540#section-8.2. + // Strictly speaking, the new stream should start in "reserved (local)", then + // transition to "half closed (remote)" after sending the initial HEADERS, but + // we start in "half closed (remote)" for simplicity. + // See further comments at the definition of stateHalfClosedRemote. + promised := sc.newStream(promisedID, msg.parent.id, stateHalfClosedRemote) + rw, req, err := sc.newWriterAndRequestNoBody(promised, requestParam{ + method: msg.method, + scheme: msg.url.Scheme, + authority: msg.url.Host, + path: msg.url.RequestURI(), + header: cloneHeader(msg.header), // clone since handler runs concurrently with writing the PUSH_PROMISE + }) + if err != nil { + // Should not happen, since we've already validated msg.url. + panic(fmt.Sprintf("newWriterAndRequestNoBody(%+v): %v", msg.url, err)) + } + + go sc.runHandler(rw, req, sc.handler.ServeHTTP) + return promisedID, nil + } + + sc.writeFrame(FrameWriteRequest{ + write: &writePushPromise{ + streamID: msg.parent.id, + method: msg.method, + url: msg.url, + h: msg.header, + allocatePromisedID: allocatePromisedID, + }, + stream: msg.parent, + done: msg.done, + }) +} + +// foreachHeaderElement splits v according to the "#rule" construction +// in RFC 7230 section 7 and calls fn for each non-empty element. +func foreachHeaderElement(v string, fn func(string)) { + v = textproto.TrimString(v) + if v == "" { + return + } + if !strings.Contains(v, ",") { + fn(v) + return + } + for _, f := range strings.Split(v, ",") { + if f = textproto.TrimString(f); f != "" { + fn(f) + } + } +} + +// From http://httpwg.org/specs/rfc7540.html#rfc.section.8.1.2.2 +var connHeaders = []string{ + "Connection", + "Keep-Alive", + "Proxy-Connection", + "Transfer-Encoding", + "Upgrade", +} + +// checkValidHTTP2RequestHeaders checks whether h is a valid HTTP/2 request, +// per RFC 7540 Section 8.1.2.2. +// The returned error is reported to users. +func checkValidHTTP2RequestHeaders(h http.Header) error { + for _, k := range connHeaders { + if _, ok := h[k]; ok { + return fmt.Errorf("request header %q is not valid in HTTP/2", k) + } + } + te := h["Te"] + if len(te) > 0 && (len(te) > 1 || (te[0] != "trailers" && te[0] != "")) { + return errors.New(`request header "TE" may only be "trailers" in HTTP/2`) + } + return nil +} + +func new400Handler(err error) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + http.Error(w, err.Error(), http.StatusBadRequest) + } +} + +// h1ServerKeepAlivesDisabled reports whether hs has its keep-alives +// disabled. See comments on h1ServerShutdownChan above for why +// the code is written this way. +func h1ServerKeepAlivesDisabled(hs *http.Server) bool { + var x interface{} = hs + type I interface { + doKeepAlives() bool + } + if hs, ok := x.(I); ok { + return !hs.doKeepAlives() + } + return false +} + +func (sc *serverConn) countError(name string, err error) error { + if sc == nil || sc.srv == nil { + return err + } + f := sc.srv.CountError + if f == nil { + return err + } + var typ string + var code ErrCode + switch e := err.(type) { + case ConnectionError: + typ = "conn" + code = ErrCode(e) + case StreamError: + typ = "stream" + code = ErrCode(e.Code) + default: + return err + } + codeStr := errCodeName[code] + if codeStr == "" { + codeStr = strconv.Itoa(int(code)) + } + f(fmt.Sprintf("%s_%s_%s", typ, codeStr, name)) + return err +} diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go new file mode 100644 index 0000000..dc4bdde --- /dev/null +++ b/vendor/golang.org/x/net/http2/transport.go @@ -0,0 +1,2908 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Transport code. + +package http2 + +import ( + "bufio" + "bytes" + "compress/gzip" + "context" + "crypto/rand" + "crypto/tls" + "errors" + "fmt" + "io" + "io/ioutil" + "log" + "math" + mathrand "math/rand" + "net" + "net/http" + "net/http/httptrace" + "net/textproto" + "sort" + "strconv" + "strings" + "sync" + "sync/atomic" + "time" + + "golang.org/x/net/http/httpguts" + "golang.org/x/net/http2/hpack" + "golang.org/x/net/idna" +) + +const ( + // transportDefaultConnFlow is how many connection-level flow control + // tokens we give the server at start-up, past the default 64k. + transportDefaultConnFlow = 1 << 30 + + // transportDefaultStreamFlow is how many stream-level flow + // control tokens we announce to the peer, and how many bytes + // we buffer per stream. + transportDefaultStreamFlow = 4 << 20 + + // transportDefaultStreamMinRefresh is the minimum number of bytes we'll send + // a stream-level WINDOW_UPDATE for at a time. + transportDefaultStreamMinRefresh = 4 << 10 + + defaultUserAgent = "Go-http-client/2.0" + + // initialMaxConcurrentStreams is a connections maxConcurrentStreams until + // it's received servers initial SETTINGS frame, which corresponds with the + // spec's minimum recommended value. + initialMaxConcurrentStreams = 100 + + // defaultMaxConcurrentStreams is a connections default maxConcurrentStreams + // if the server doesn't include one in its initial SETTINGS frame. + defaultMaxConcurrentStreams = 1000 +) + +// Transport is an HTTP/2 Transport. +// +// A Transport internally caches connections to servers. It is safe +// for concurrent use by multiple goroutines. +type Transport struct { + // DialTLS specifies an optional dial function for creating + // TLS connections for requests. + // + // If DialTLS is nil, tls.Dial is used. + // + // If the returned net.Conn has a ConnectionState method like tls.Conn, + // it will be used to set http.Response.TLS. + DialTLS func(network, addr string, cfg *tls.Config) (net.Conn, error) + + // TLSClientConfig specifies the TLS configuration to use with + // tls.Client. If nil, the default configuration is used. + TLSClientConfig *tls.Config + + // ConnPool optionally specifies an alternate connection pool to use. + // If nil, the default is used. + ConnPool ClientConnPool + + // DisableCompression, if true, prevents the Transport from + // requesting compression with an "Accept-Encoding: gzip" + // request header when the Request contains no existing + // Accept-Encoding value. If the Transport requests gzip on + // its own and gets a gzipped response, it's transparently + // decoded in the Response.Body. However, if the user + // explicitly requested gzip it is not automatically + // uncompressed. + DisableCompression bool + + // AllowHTTP, if true, permits HTTP/2 requests using the insecure, + // plain-text "http" scheme. Note that this does not enable h2c support. + AllowHTTP bool + + // MaxHeaderListSize is the http2 SETTINGS_MAX_HEADER_LIST_SIZE to + // send in the initial settings frame. It is how many bytes + // of response headers are allowed. Unlike the http2 spec, zero here + // means to use a default limit (currently 10MB). If you actually + // want to advertise an unlimited value to the peer, Transport + // interprets the highest possible value here (0xffffffff or 1<<32-1) + // to mean no limit. + MaxHeaderListSize uint32 + + // StrictMaxConcurrentStreams controls whether the server's + // SETTINGS_MAX_CONCURRENT_STREAMS should be respected + // globally. If false, new TCP connections are created to the + // server as needed to keep each under the per-connection + // SETTINGS_MAX_CONCURRENT_STREAMS limit. If true, the + // server's SETTINGS_MAX_CONCURRENT_STREAMS is interpreted as + // a global limit and callers of RoundTrip block when needed, + // waiting for their turn. + StrictMaxConcurrentStreams bool + + // ReadIdleTimeout is the timeout after which a health check using ping + // frame will be carried out if no frame is received on the connection. + // Note that a ping response will is considered a received frame, so if + // there is no other traffic on the connection, the health check will + // be performed every ReadIdleTimeout interval. + // If zero, no health check is performed. + ReadIdleTimeout time.Duration + + // PingTimeout is the timeout after which the connection will be closed + // if a response to Ping is not received. + // Defaults to 15s. + PingTimeout time.Duration + + // CountError, if non-nil, is called on HTTP/2 transport errors. + // It's intended to increment a metric for monitoring, such + // as an expvar or Prometheus metric. + // The errType consists of only ASCII word characters. + CountError func(errType string) + + // t1, if non-nil, is the standard library Transport using + // this transport. Its settings are used (but not its + // RoundTrip method, etc). + t1 *http.Transport + + connPoolOnce sync.Once + connPoolOrDef ClientConnPool // non-nil version of ConnPool +} + +func (t *Transport) maxHeaderListSize() uint32 { + if t.MaxHeaderListSize == 0 { + return 10 << 20 + } + if t.MaxHeaderListSize == 0xffffffff { + return 0 + } + return t.MaxHeaderListSize +} + +func (t *Transport) disableCompression() bool { + return t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression) +} + +func (t *Transport) pingTimeout() time.Duration { + if t.PingTimeout == 0 { + return 15 * time.Second + } + return t.PingTimeout + +} + +// ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2. +// It returns an error if t1 has already been HTTP/2-enabled. +// +// Use ConfigureTransports instead to configure the HTTP/2 Transport. +func ConfigureTransport(t1 *http.Transport) error { + _, err := ConfigureTransports(t1) + return err +} + +// ConfigureTransports configures a net/http HTTP/1 Transport to use HTTP/2. +// It returns a new HTTP/2 Transport for further configuration. +// It returns an error if t1 has already been HTTP/2-enabled. +func ConfigureTransports(t1 *http.Transport) (*Transport, error) { + return configureTransports(t1) +} + +func configureTransports(t1 *http.Transport) (*Transport, error) { + connPool := new(clientConnPool) + t2 := &Transport{ + ConnPool: noDialClientConnPool{connPool}, + t1: t1, + } + connPool.t = t2 + if err := registerHTTPSProtocol(t1, noDialH2RoundTripper{t2}); err != nil { + return nil, err + } + if t1.TLSClientConfig == nil { + t1.TLSClientConfig = new(tls.Config) + } + if !strSliceContains(t1.TLSClientConfig.NextProtos, "h2") { + t1.TLSClientConfig.NextProtos = append([]string{"h2"}, t1.TLSClientConfig.NextProtos...) + } + if !strSliceContains(t1.TLSClientConfig.NextProtos, "http/1.1") { + t1.TLSClientConfig.NextProtos = append(t1.TLSClientConfig.NextProtos, "http/1.1") + } + upgradeFn := func(authority string, c *tls.Conn) http.RoundTripper { + addr := authorityAddr("https", authority) + if used, err := connPool.addConnIfNeeded(addr, t2, c); err != nil { + go c.Close() + return erringRoundTripper{err} + } else if !used { + // Turns out we don't need this c. + // For example, two goroutines made requests to the same host + // at the same time, both kicking off TCP dials. (since protocol + // was unknown) + go c.Close() + } + return t2 + } + if m := t1.TLSNextProto; len(m) == 0 { + t1.TLSNextProto = map[string]func(string, *tls.Conn) http.RoundTripper{ + "h2": upgradeFn, + } + } else { + m["h2"] = upgradeFn + } + return t2, nil +} + +func (t *Transport) connPool() ClientConnPool { + t.connPoolOnce.Do(t.initConnPool) + return t.connPoolOrDef +} + +func (t *Transport) initConnPool() { + if t.ConnPool != nil { + t.connPoolOrDef = t.ConnPool + } else { + t.connPoolOrDef = &clientConnPool{t: t} + } +} + +// ClientConn is the state of a single HTTP/2 client connection to an +// HTTP/2 server. +type ClientConn struct { + t *Transport + tconn net.Conn // usually *tls.Conn, except specialized impls + tlsState *tls.ConnectionState // nil only for specialized impls + reused uint32 // whether conn is being reused; atomic + singleUse bool // whether being used for a single http.Request + + // readLoop goroutine fields: + readerDone chan struct{} // closed on error + readerErr error // set before readerDone is closed + + idleTimeout time.Duration // or 0 for never + idleTimer *time.Timer + + mu sync.Mutex // guards following + cond *sync.Cond // hold mu; broadcast on flow/closed changes + flow flow // our conn-level flow control quota (cs.flow is per stream) + inflow flow // peer's conn-level flow control + doNotReuse bool // whether conn is marked to not be reused for any future requests + closing bool + closed bool + seenSettings bool // true if we've seen a settings frame, false otherwise + wantSettingsAck bool // we sent a SETTINGS frame and haven't heard back + goAway *GoAwayFrame // if non-nil, the GoAwayFrame we received + goAwayDebug string // goAway frame's debug data, retained as a string + streams map[uint32]*clientStream // client-initiated + nextStreamID uint32 + pendingRequests int // requests blocked and waiting to be sent because len(streams) == maxConcurrentStreams + pings map[[8]byte]chan struct{} // in flight ping data to notification channel + br *bufio.Reader + lastActive time.Time + lastIdle time.Time // time last idle + // Settings from peer: (also guarded by wmu) + maxFrameSize uint32 + maxConcurrentStreams uint32 + peerMaxHeaderListSize uint64 + initialWindowSize uint32 + + // reqHeaderMu is a 1-element semaphore channel controlling access to sending new requests. + // Write to reqHeaderMu to lock it, read from it to unlock. + // Lock reqmu BEFORE mu or wmu. + reqHeaderMu chan struct{} + + // wmu is held while writing. + // Acquire BEFORE mu when holding both, to avoid blocking mu on network writes. + // Only acquire both at the same time when changing peer settings. + wmu sync.Mutex + bw *bufio.Writer + fr *Framer + werr error // first write error that has occurred + hbuf bytes.Buffer // HPACK encoder writes into this + henc *hpack.Encoder +} + +// clientStream is the state for a single HTTP/2 stream. One of these +// is created for each Transport.RoundTrip call. +type clientStream struct { + cc *ClientConn + req *http.Request + trace *httptrace.ClientTrace // or nil + ID uint32 + resc chan resAndError + bufPipe pipe // buffered pipe with the flow-controlled response payload + startedWrite bool // started request body write; guarded by cc.mu + requestedGzip bool + on100 func() // optional code to run if get a 100 continue response + + flow flow // guarded by cc.mu + inflow flow // guarded by cc.mu + bytesRemain int64 // -1 means unknown; owned by transportResponseBody.Read + readErr error // sticky read error; owned by transportResponseBody.Read + stopReqBody error // if non-nil, stop writing req body; guarded by cc.mu + didReset bool // whether we sent a RST_STREAM to the server; guarded by cc.mu + + peerReset chan struct{} // closed on peer reset + resetErr error // populated before peerReset is closed + + done chan struct{} // closed when stream remove from cc.streams map; close calls guarded by cc.mu + + // owned by clientConnReadLoop: + firstByte bool // got the first response byte + pastHeaders bool // got first MetaHeadersFrame (actual headers) + pastTrailers bool // got optional second MetaHeadersFrame (trailers) + num1xx uint8 // number of 1xx responses seen + + trailer http.Header // accumulated trailers + resTrailer *http.Header // client's Response.Trailer +} + +// awaitRequestCancel waits for the user to cancel a request or for the done +// channel to be signaled. A non-nil error is returned only if the request was +// canceled. +func awaitRequestCancel(req *http.Request, done <-chan struct{}) error { + ctx := req.Context() + if req.Cancel == nil && ctx.Done() == nil { + return nil + } + select { + case <-req.Cancel: + return errRequestCanceled + case <-ctx.Done(): + return ctx.Err() + case <-done: + return nil + } +} + +var got1xxFuncForTests func(int, textproto.MIMEHeader) error + +// get1xxTraceFunc returns the value of request's httptrace.ClientTrace.Got1xxResponse func, +// if any. It returns nil if not set or if the Go version is too old. +func (cs *clientStream) get1xxTraceFunc() func(int, textproto.MIMEHeader) error { + if fn := got1xxFuncForTests; fn != nil { + return fn + } + return traceGot1xxResponseFunc(cs.trace) +} + +// awaitRequestCancel waits for the user to cancel a request, its context to +// expire, or for the request to be done (any way it might be removed from the +// cc.streams map: peer reset, successful completion, TCP connection breakage, +// etc). If the request is canceled, then cs will be canceled and closed. +func (cs *clientStream) awaitRequestCancel(req *http.Request) { + if err := awaitRequestCancel(req, cs.done); err != nil { + cs.cancelStream() + cs.bufPipe.CloseWithError(err) + } +} + +func (cs *clientStream) cancelStream() { + cc := cs.cc + cc.mu.Lock() + didReset := cs.didReset + cs.didReset = true + cc.mu.Unlock() + + if !didReset { + cc.writeStreamReset(cs.ID, ErrCodeCancel, nil) + cc.forgetStreamID(cs.ID) + } +} + +// checkResetOrDone reports any error sent in a RST_STREAM frame by the +// server, or errStreamClosed if the stream is complete. +func (cs *clientStream) checkResetOrDone() error { + select { + case <-cs.peerReset: + return cs.resetErr + case <-cs.done: + return errStreamClosed + default: + return nil + } +} + +func (cs *clientStream) getStartedWrite() bool { + cc := cs.cc + cc.mu.Lock() + defer cc.mu.Unlock() + return cs.startedWrite +} + +func (cs *clientStream) abortRequestBodyWrite(err error) { + if err == nil { + panic("nil error") + } + cc := cs.cc + cc.mu.Lock() + if cs.stopReqBody == nil { + cs.stopReqBody = err + cc.cond.Broadcast() + // Close the body after releasing the mutex, in case it blocks. + if body := cs.req.Body; body != nil { + defer body.Close() + } + } + cc.mu.Unlock() +} + +type stickyErrWriter struct { + w io.Writer + err *error +} + +func (sew stickyErrWriter) Write(p []byte) (n int, err error) { + if *sew.err != nil { + return 0, *sew.err + } + n, err = sew.w.Write(p) + *sew.err = err + return +} + +// noCachedConnError is the concrete type of ErrNoCachedConn, which +// needs to be detected by net/http regardless of whether it's its +// bundled version (in h2_bundle.go with a rewritten type name) or +// from a user's x/net/http2. As such, as it has a unique method name +// (IsHTTP2NoCachedConnError) that net/http sniffs for via func +// isNoCachedConnError. +type noCachedConnError struct{} + +func (noCachedConnError) IsHTTP2NoCachedConnError() {} +func (noCachedConnError) Error() string { return "http2: no cached connection was available" } + +// isNoCachedConnError reports whether err is of type noCachedConnError +// or its equivalent renamed type in net/http2's h2_bundle.go. Both types +// may coexist in the same running program. +func isNoCachedConnError(err error) bool { + _, ok := err.(interface{ IsHTTP2NoCachedConnError() }) + return ok +} + +var ErrNoCachedConn error = noCachedConnError{} + +// RoundTripOpt are options for the Transport.RoundTripOpt method. +type RoundTripOpt struct { + // OnlyCachedConn controls whether RoundTripOpt may + // create a new TCP connection. If set true and + // no cached connection is available, RoundTripOpt + // will return ErrNoCachedConn. + OnlyCachedConn bool +} + +func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { + return t.RoundTripOpt(req, RoundTripOpt{}) +} + +// authorityAddr returns a given authority (a host/IP, or host:port / ip:port) +// and returns a host:port. The port 443 is added if needed. +func authorityAddr(scheme string, authority string) (addr string) { + host, port, err := net.SplitHostPort(authority) + if err != nil { // authority didn't have a port + port = "443" + if scheme == "http" { + port = "80" + } + host = authority + } + if a, err := idna.ToASCII(host); err == nil { + host = a + } + // IPv6 address literal, without a port: + if strings.HasPrefix(host, "[") && strings.HasSuffix(host, "]") { + return host + ":" + port + } + return net.JoinHostPort(host, port) +} + +// RoundTripOpt is like RoundTrip, but takes options. +func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Response, error) { + if !(req.URL.Scheme == "https" || (req.URL.Scheme == "http" && t.AllowHTTP)) { + return nil, errors.New("http2: unsupported scheme") + } + + addr := authorityAddr(req.URL.Scheme, req.URL.Host) + for retry := 0; ; retry++ { + cc, err := t.connPool().GetClientConn(req, addr) + if err != nil { + t.vlogf("http2: Transport failed to get client conn for %s: %v", addr, err) + return nil, err + } + reused := !atomic.CompareAndSwapUint32(&cc.reused, 0, 1) + traceGotConn(req, cc, reused) + body := req.Body + res, gotErrAfterReqBodyWrite, err := cc.roundTrip(req) + if err != nil && retry <= 6 { + if req, err = shouldRetryRequest(req, err, gotErrAfterReqBodyWrite); err == nil { + // After the first retry, do exponential backoff with 10% jitter. + if retry == 0 { + continue + } + backoff := float64(uint(1) << (uint(retry) - 1)) + backoff += backoff * (0.1 * mathrand.Float64()) + select { + case <-time.After(time.Second * time.Duration(backoff)): + continue + case <-req.Context().Done(): + err = req.Context().Err() + } + } + } + if err != nil { + t.vlogf("RoundTrip failure: %v", err) + // If the error occurred after the body write started, + // the body writer will close the body. Otherwise, do so here. + if body != nil && !gotErrAfterReqBodyWrite { + body.Close() + } + return nil, err + } + return res, nil + } +} + +// CloseIdleConnections closes any connections which were previously +// connected from previous requests but are now sitting idle. +// It does not interrupt any connections currently in use. +func (t *Transport) CloseIdleConnections() { + if cp, ok := t.connPool().(clientConnPoolIdleCloser); ok { + cp.closeIdleConnections() + } +} + +var ( + errClientConnClosed = errors.New("http2: client conn is closed") + errClientConnUnusable = errors.New("http2: client conn not usable") + errClientConnGotGoAway = errors.New("http2: Transport received Server's graceful shutdown GOAWAY") +) + +// shouldRetryRequest is called by RoundTrip when a request fails to get +// response headers. It is always called with a non-nil error. +// It returns either a request to retry (either the same request, or a +// modified clone), or an error if the request can't be replayed. +func shouldRetryRequest(req *http.Request, err error, afterBodyWrite bool) (*http.Request, error) { + if !canRetryError(err) { + return nil, err + } + // If the Body is nil (or http.NoBody), it's safe to reuse + // this request and its Body. + if req.Body == nil || req.Body == http.NoBody { + return req, nil + } + + // If the request body can be reset back to its original + // state via the optional req.GetBody, do that. + if req.GetBody != nil { + req.Body.Close() + body, err := req.GetBody() + if err != nil { + return nil, err + } + newReq := *req + newReq.Body = body + return &newReq, nil + } + + // The Request.Body can't reset back to the beginning, but we + // don't seem to have started to read from it yet, so reuse + // the request directly. The "afterBodyWrite" means the + // bodyWrite process has started, which becomes true before + // the first Read. + if !afterBodyWrite { + return req, nil + } + + return nil, fmt.Errorf("http2: Transport: cannot retry err [%v] after Request.Body was written; define Request.GetBody to avoid this error", err) +} + +func canRetryError(err error) bool { + if err == errClientConnUnusable || err == errClientConnGotGoAway { + return true + } + if se, ok := err.(StreamError); ok { + if se.Code == ErrCodeProtocol && se.Cause == errFromPeer { + // See golang/go#47635, golang/go#42777 + return true + } + return se.Code == ErrCodeRefusedStream + } + return false +} + +func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse bool) (*ClientConn, error) { + host, _, err := net.SplitHostPort(addr) + if err != nil { + return nil, err + } + tconn, err := t.dialTLS(ctx)("tcp", addr, t.newTLSConfig(host)) + if err != nil { + return nil, err + } + return t.newClientConn(tconn, singleUse) +} + +func (t *Transport) newTLSConfig(host string) *tls.Config { + cfg := new(tls.Config) + if t.TLSClientConfig != nil { + *cfg = *t.TLSClientConfig.Clone() + } + if !strSliceContains(cfg.NextProtos, NextProtoTLS) { + cfg.NextProtos = append([]string{NextProtoTLS}, cfg.NextProtos...) + } + if cfg.ServerName == "" { + cfg.ServerName = host + } + return cfg +} + +func (t *Transport) dialTLS(ctx context.Context) func(string, string, *tls.Config) (net.Conn, error) { + if t.DialTLS != nil { + return t.DialTLS + } + return func(network, addr string, cfg *tls.Config) (net.Conn, error) { + tlsCn, err := t.dialTLSWithContext(ctx, network, addr, cfg) + if err != nil { + return nil, err + } + state := tlsCn.ConnectionState() + if p := state.NegotiatedProtocol; p != NextProtoTLS { + return nil, fmt.Errorf("http2: unexpected ALPN protocol %q; want %q", p, NextProtoTLS) + } + if !state.NegotiatedProtocolIsMutual { + return nil, errors.New("http2: could not negotiate protocol mutually") + } + return tlsCn, nil + } +} + +// disableKeepAlives reports whether connections should be closed as +// soon as possible after handling the first request. +func (t *Transport) disableKeepAlives() bool { + return t.t1 != nil && t.t1.DisableKeepAlives +} + +func (t *Transport) expectContinueTimeout() time.Duration { + if t.t1 == nil { + return 0 + } + return t.t1.ExpectContinueTimeout +} + +func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) { + return t.newClientConn(c, t.disableKeepAlives()) +} + +func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, error) { + cc := &ClientConn{ + t: t, + tconn: c, + readerDone: make(chan struct{}), + nextStreamID: 1, + maxFrameSize: 16 << 10, // spec default + initialWindowSize: 65535, // spec default + maxConcurrentStreams: initialMaxConcurrentStreams, // "infinite", per spec. Use a smaller value until we have received server settings. + peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead. + streams: make(map[uint32]*clientStream), + singleUse: singleUse, + wantSettingsAck: true, + pings: make(map[[8]byte]chan struct{}), + reqHeaderMu: make(chan struct{}, 1), + } + if d := t.idleConnTimeout(); d != 0 { + cc.idleTimeout = d + cc.idleTimer = time.AfterFunc(d, cc.onIdleTimeout) + } + if VerboseLogs { + t.vlogf("http2: Transport creating client conn %p to %v", cc, c.RemoteAddr()) + } + + cc.cond = sync.NewCond(&cc.mu) + cc.flow.add(int32(initialWindowSize)) + + // TODO: adjust this writer size to account for frame size + + // MTU + crypto/tls record padding. + cc.bw = bufio.NewWriter(stickyErrWriter{c, &cc.werr}) + cc.br = bufio.NewReader(c) + cc.fr = NewFramer(cc.bw, cc.br) + cc.fr.ReadMetaHeaders = hpack.NewDecoder(initialHeaderTableSize, nil) + cc.fr.MaxHeaderListSize = t.maxHeaderListSize() + + // TODO: SetMaxDynamicTableSize, SetMaxDynamicTableSizeLimit on + // henc in response to SETTINGS frames? + cc.henc = hpack.NewEncoder(&cc.hbuf) + + if t.AllowHTTP { + cc.nextStreamID = 3 + } + + if cs, ok := c.(connectionStater); ok { + state := cs.ConnectionState() + cc.tlsState = &state + } + + initialSettings := []Setting{ + {ID: SettingEnablePush, Val: 0}, + {ID: SettingInitialWindowSize, Val: transportDefaultStreamFlow}, + } + if max := t.maxHeaderListSize(); max != 0 { + initialSettings = append(initialSettings, Setting{ID: SettingMaxHeaderListSize, Val: max}) + } + + cc.bw.Write(clientPreface) + cc.fr.WriteSettings(initialSettings...) + cc.fr.WriteWindowUpdate(0, transportDefaultConnFlow) + cc.inflow.add(transportDefaultConnFlow + initialWindowSize) + cc.bw.Flush() + if cc.werr != nil { + cc.Close() + return nil, cc.werr + } + + go cc.readLoop() + return cc, nil +} + +func (cc *ClientConn) healthCheck() { + pingTimeout := cc.t.pingTimeout() + // We don't need to periodically ping in the health check, because the readLoop of ClientConn will + // trigger the healthCheck again if there is no frame received. + ctx, cancel := context.WithTimeout(context.Background(), pingTimeout) + defer cancel() + err := cc.Ping(ctx) + if err != nil { + cc.closeForLostPing() + cc.t.connPool().MarkDead(cc) + return + } +} + +// SetDoNotReuse marks cc as not reusable for future HTTP requests. +func (cc *ClientConn) SetDoNotReuse() { + cc.mu.Lock() + defer cc.mu.Unlock() + cc.doNotReuse = true +} + +func (cc *ClientConn) setGoAway(f *GoAwayFrame) { + cc.mu.Lock() + defer cc.mu.Unlock() + + old := cc.goAway + cc.goAway = f + + // Merge the previous and current GoAway error frames. + if cc.goAwayDebug == "" { + cc.goAwayDebug = string(f.DebugData()) + } + if old != nil && old.ErrCode != ErrCodeNo { + cc.goAway.ErrCode = old.ErrCode + } + last := f.LastStreamID + for streamID, cs := range cc.streams { + if streamID > last { + select { + case cs.resc <- resAndError{err: errClientConnGotGoAway}: + default: + } + } + } +} + +// CanTakeNewRequest reports whether the connection can take a new request, +// meaning it has not been closed or received or sent a GOAWAY. +func (cc *ClientConn) CanTakeNewRequest() bool { + cc.mu.Lock() + defer cc.mu.Unlock() + return cc.canTakeNewRequestLocked() +} + +// clientConnIdleState describes the suitability of a client +// connection to initiate a new RoundTrip request. +type clientConnIdleState struct { + canTakeNewRequest bool + freshConn bool // whether it's unused by any previous request +} + +func (cc *ClientConn) idleState() clientConnIdleState { + cc.mu.Lock() + defer cc.mu.Unlock() + return cc.idleStateLocked() +} + +func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) { + if cc.singleUse && cc.nextStreamID > 1 { + return + } + var maxConcurrentOkay bool + if cc.t.StrictMaxConcurrentStreams { + // We'll tell the caller we can take a new request to + // prevent the caller from dialing a new TCP + // connection, but then we'll block later before + // writing it. + maxConcurrentOkay = true + } else { + maxConcurrentOkay = int64(len(cc.streams)+1) <= int64(cc.maxConcurrentStreams) + } + + st.canTakeNewRequest = cc.goAway == nil && !cc.closed && !cc.closing && maxConcurrentOkay && + !cc.doNotReuse && + int64(cc.nextStreamID)+2*int64(cc.pendingRequests) < math.MaxInt32 && + !cc.tooIdleLocked() + st.freshConn = cc.nextStreamID == 1 && st.canTakeNewRequest + return +} + +func (cc *ClientConn) canTakeNewRequestLocked() bool { + st := cc.idleStateLocked() + return st.canTakeNewRequest +} + +// tooIdleLocked reports whether this connection has been been sitting idle +// for too much wall time. +func (cc *ClientConn) tooIdleLocked() bool { + // The Round(0) strips the monontonic clock reading so the + // times are compared based on their wall time. We don't want + // to reuse a connection that's been sitting idle during + // VM/laptop suspend if monotonic time was also frozen. + return cc.idleTimeout != 0 && !cc.lastIdle.IsZero() && time.Since(cc.lastIdle.Round(0)) > cc.idleTimeout +} + +// onIdleTimeout is called from a time.AfterFunc goroutine. It will +// only be called when we're idle, but because we're coming from a new +// goroutine, there could be a new request coming in at the same time, +// so this simply calls the synchronized closeIfIdle to shut down this +// connection. The timer could just call closeIfIdle, but this is more +// clear. +func (cc *ClientConn) onIdleTimeout() { + cc.closeIfIdle() +} + +func (cc *ClientConn) closeIfIdle() { + cc.mu.Lock() + if len(cc.streams) > 0 { + cc.mu.Unlock() + return + } + cc.closed = true + nextID := cc.nextStreamID + // TODO: do clients send GOAWAY too? maybe? Just Close: + cc.mu.Unlock() + + if VerboseLogs { + cc.vlogf("http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)", cc, cc.singleUse, nextID-2) + } + cc.tconn.Close() +} + +var shutdownEnterWaitStateHook = func() {} + +// Shutdown gracefully close the client connection, waiting for running streams to complete. +func (cc *ClientConn) Shutdown(ctx context.Context) error { + if err := cc.sendGoAway(); err != nil { + return err + } + // Wait for all in-flight streams to complete or connection to close + done := make(chan error, 1) + cancelled := false // guarded by cc.mu + go func() { + cc.mu.Lock() + defer cc.mu.Unlock() + for { + if len(cc.streams) == 0 || cc.closed { + cc.closed = true + done <- cc.tconn.Close() + break + } + if cancelled { + break + } + cc.cond.Wait() + } + }() + shutdownEnterWaitStateHook() + select { + case err := <-done: + return err + case <-ctx.Done(): + cc.mu.Lock() + // Free the goroutine above + cancelled = true + cc.cond.Broadcast() + cc.mu.Unlock() + return ctx.Err() + } +} + +func (cc *ClientConn) sendGoAway() error { + cc.mu.Lock() + closing := cc.closing + cc.closing = true + maxStreamID := cc.nextStreamID + cc.mu.Unlock() + if closing { + // GOAWAY sent already + return nil + } + + cc.wmu.Lock() + defer cc.wmu.Unlock() + // Send a graceful shutdown frame to server + if err := cc.fr.WriteGoAway(maxStreamID, ErrCodeNo, nil); err != nil { + return err + } + if err := cc.bw.Flush(); err != nil { + return err + } + // Prevent new requests + return nil +} + +// closes the client connection immediately. In-flight requests are interrupted. +// err is sent to streams. +func (cc *ClientConn) closeForError(err error) error { + cc.mu.Lock() + streams := cc.streams + cc.streams = nil + cc.closed = true + cc.mu.Unlock() + + for _, cs := range streams { + select { + case cs.resc <- resAndError{err: err}: + default: + } + cs.bufPipe.CloseWithError(err) + } + + cc.mu.Lock() + defer cc.cond.Broadcast() + defer cc.mu.Unlock() + return cc.tconn.Close() +} + +// Close closes the client connection immediately. +// +// In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead. +func (cc *ClientConn) Close() error { + err := errors.New("http2: client connection force closed via ClientConn.Close") + return cc.closeForError(err) +} + +// closes the client connection immediately. In-flight requests are interrupted. +func (cc *ClientConn) closeForLostPing() error { + err := errors.New("http2: client connection lost") + if f := cc.t.CountError; f != nil { + f("conn_close_lost_ping") + } + return cc.closeForError(err) +} + +// errRequestCanceled is a copy of net/http's errRequestCanceled because it's not +// exported. At least they'll be DeepEqual for h1-vs-h2 comparisons tests. +var errRequestCanceled = errors.New("net/http: request canceled") + +func commaSeparatedTrailers(req *http.Request) (string, error) { + keys := make([]string, 0, len(req.Trailer)) + for k := range req.Trailer { + k = http.CanonicalHeaderKey(k) + switch k { + case "Transfer-Encoding", "Trailer", "Content-Length": + return "", fmt.Errorf("invalid Trailer key %q", k) + } + keys = append(keys, k) + } + if len(keys) > 0 { + sort.Strings(keys) + return strings.Join(keys, ","), nil + } + return "", nil +} + +func (cc *ClientConn) responseHeaderTimeout() time.Duration { + if cc.t.t1 != nil { + return cc.t.t1.ResponseHeaderTimeout + } + // No way to do this (yet?) with just an http2.Transport. Probably + // no need. Request.Cancel this is the new way. We only need to support + // this for compatibility with the old http.Transport fields when + // we're doing transparent http2. + return 0 +} + +// checkConnHeaders checks whether req has any invalid connection-level headers. +// per RFC 7540 section 8.1.2.2: Connection-Specific Header Fields. +// Certain headers are special-cased as okay but not transmitted later. +func checkConnHeaders(req *http.Request) error { + if v := req.Header.Get("Upgrade"); v != "" { + return fmt.Errorf("http2: invalid Upgrade request header: %q", req.Header["Upgrade"]) + } + if vv := req.Header["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") { + return fmt.Errorf("http2: invalid Transfer-Encoding request header: %q", vv) + } + if vv := req.Header["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !asciiEqualFold(vv[0], "close") && !asciiEqualFold(vv[0], "keep-alive")) { + return fmt.Errorf("http2: invalid Connection request header: %q", vv) + } + return nil +} + +// actualContentLength returns a sanitized version of +// req.ContentLength, where 0 actually means zero (not unknown) and -1 +// means unknown. +func actualContentLength(req *http.Request) int64 { + if req.Body == nil || req.Body == http.NoBody { + return 0 + } + if req.ContentLength != 0 { + return req.ContentLength + } + return -1 +} + +func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { + resp, _, err := cc.roundTrip(req) + return resp, err +} + +func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAfterReqBodyWrite bool, err error) { + ctx := req.Context() + if err := checkConnHeaders(req); err != nil { + return nil, false, err + } + if cc.idleTimer != nil { + cc.idleTimer.Stop() + } + + trailers, err := commaSeparatedTrailers(req) + if err != nil { + return nil, false, err + } + hasTrailers := trailers != "" + + // Acquire the new-request lock by writing to reqHeaderMu. + // This lock guards the critical section covering allocating a new stream ID + // (requires mu) and creating the stream (requires wmu). + if cc.reqHeaderMu == nil { + panic("RoundTrip on initialized ClientConn") // for tests + } + select { + case cc.reqHeaderMu <- struct{}{}: + case <-req.Cancel: + return nil, false, errRequestCanceled + case <-ctx.Done(): + return nil, false, ctx.Err() + } + reqHeaderMuNeedsUnlock := true + defer func() { + if reqHeaderMuNeedsUnlock { + <-cc.reqHeaderMu + } + }() + + cc.mu.Lock() + if err := cc.awaitOpenSlotForRequest(req); err != nil { + cc.mu.Unlock() + return nil, false, err + } + + body := req.Body + contentLen := actualContentLength(req) + hasBody := contentLen != 0 + + // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? + var requestedGzip bool + if !cc.t.disableCompression() && + req.Header.Get("Accept-Encoding") == "" && + req.Header.Get("Range") == "" && + req.Method != "HEAD" { + // Request gzip only, not deflate. Deflate is ambiguous and + // not as universally supported anyway. + // See: https://zlib.net/zlib_faq.html#faq39 + // + // Note that we don't request this for HEAD requests, + // due to a bug in nginx: + // http://trac.nginx.org/nginx/ticket/358 + // https://golang.org/issue/5522 + // + // We don't request gzip if the request is for a range, since + // auto-decoding a portion of a gzipped document will just fail + // anyway. See https://golang.org/issue/8923 + requestedGzip = true + } + + cs := cc.newStream() + cs.req = req + cs.trace = httptrace.ContextClientTrace(req.Context()) + cs.requestedGzip = requestedGzip + bodyWriter := cc.t.getBodyWriterState(cs, body) + cs.on100 = bodyWriter.on100 + cc.mu.Unlock() + + // we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} (DATA is + // sent by writeRequestBody below, along with any Trailers, + // again in form HEADERS{1}, CONTINUATION{0,}) + cc.wmu.Lock() + hdrs, err := cc.encodeHeaders(req, requestedGzip, trailers, contentLen) + if err != nil { + cc.wmu.Unlock() + return nil, false, err + } + + defer func() { + cc.wmu.Lock() + werr := cc.werr + cc.wmu.Unlock() + if werr != nil { + cc.Close() + } + }() + + endStream := !hasBody && !hasTrailers + err = cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs) + cc.wmu.Unlock() + <-cc.reqHeaderMu // release the new-request lock + reqHeaderMuNeedsUnlock = false + traceWroteHeaders(cs.trace) + + if err != nil { + if hasBody { + bodyWriter.cancel() + } + cc.forgetStreamID(cs.ID) + // Don't bother sending a RST_STREAM (our write already failed; + // no need to keep writing) + traceWroteRequest(cs.trace, err) + // TODO(dneil): An error occurred while writing the headers. + // Should we return an error indicating that this request can be retried? + return nil, false, err + } + + var respHeaderTimer <-chan time.Time + if hasBody { + bodyWriter.scheduleBodyWrite() + } else { + traceWroteRequest(cs.trace, nil) + if d := cc.responseHeaderTimeout(); d != 0 { + timer := time.NewTimer(d) + defer timer.Stop() + respHeaderTimer = timer.C + } + } + + readLoopResCh := cs.resc + bodyWritten := false + + handleReadLoopResponse := func(re resAndError) (*http.Response, bool, error) { + res := re.res + if re.err != nil || res.StatusCode > 299 { + // On error or status code 3xx, 4xx, 5xx, etc abort any + // ongoing write, assuming that the server doesn't care + // about our request body. If the server replied with 1xx or + // 2xx, however, then assume the server DOES potentially + // want our body (e.g. full-duplex streaming: + // golang.org/issue/13444). If it turns out the server + // doesn't, they'll RST_STREAM us soon enough. This is a + // heuristic to avoid adding knobs to Transport. Hopefully + // we can keep it. + bodyWriter.cancel() + cs.abortRequestBodyWrite(errStopReqBodyWrite) + if hasBody && !bodyWritten { + <-bodyWriter.resc + } + } + if re.err != nil { + cc.forgetStreamID(cs.ID) + return nil, cs.getStartedWrite(), re.err + } + res.Request = req + res.TLS = cc.tlsState + return res, false, nil + } + + handleError := func(err error) (*http.Response, bool, error) { + if !hasBody || bodyWritten { + cc.writeStreamReset(cs.ID, ErrCodeCancel, nil) + } else { + bodyWriter.cancel() + cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel) + <-bodyWriter.resc + } + cc.forgetStreamID(cs.ID) + return nil, cs.getStartedWrite(), err + } + + for { + select { + case re := <-readLoopResCh: + return handleReadLoopResponse(re) + case <-respHeaderTimer: + return handleError(errTimeout) + case <-ctx.Done(): + return handleError(ctx.Err()) + case <-req.Cancel: + return handleError(errRequestCanceled) + case <-cs.peerReset: + // processResetStream already removed the + // stream from the streams map; no need for + // forgetStreamID. + return nil, cs.getStartedWrite(), cs.resetErr + case err := <-bodyWriter.resc: + bodyWritten = true + // Prefer the read loop's response, if available. Issue 16102. + select { + case re := <-readLoopResCh: + return handleReadLoopResponse(re) + default: + } + if err != nil { + cc.forgetStreamID(cs.ID) + return nil, cs.getStartedWrite(), err + } + if d := cc.responseHeaderTimeout(); d != 0 { + timer := time.NewTimer(d) + defer timer.Stop() + respHeaderTimer = timer.C + } + } + } +} + +// awaitOpenSlotForRequest waits until len(streams) < maxConcurrentStreams. +// Must hold cc.mu. +func (cc *ClientConn) awaitOpenSlotForRequest(req *http.Request) error { + var waitingForConn chan struct{} + var waitingForConnErr error // guarded by cc.mu + for { + cc.lastActive = time.Now() + if cc.closed || !cc.canTakeNewRequestLocked() { + if waitingForConn != nil { + close(waitingForConn) + } + return errClientConnUnusable + } + cc.lastIdle = time.Time{} + if int64(len(cc.streams)) < int64(cc.maxConcurrentStreams) { + if waitingForConn != nil { + close(waitingForConn) + } + return nil + } + // Unfortunately, we cannot wait on a condition variable and channel at + // the same time, so instead, we spin up a goroutine to check if the + // request is canceled while we wait for a slot to open in the connection. + if waitingForConn == nil { + waitingForConn = make(chan struct{}) + go func() { + if err := awaitRequestCancel(req, waitingForConn); err != nil { + cc.mu.Lock() + waitingForConnErr = err + cc.cond.Broadcast() + cc.mu.Unlock() + } + }() + } + cc.pendingRequests++ + cc.cond.Wait() + cc.pendingRequests-- + if waitingForConnErr != nil { + return waitingForConnErr + } + } +} + +// requires cc.wmu be held +func (cc *ClientConn) writeHeaders(streamID uint32, endStream bool, maxFrameSize int, hdrs []byte) error { + first := true // first frame written (HEADERS is first, then CONTINUATION) + for len(hdrs) > 0 && cc.werr == nil { + chunk := hdrs + if len(chunk) > maxFrameSize { + chunk = chunk[:maxFrameSize] + } + hdrs = hdrs[len(chunk):] + endHeaders := len(hdrs) == 0 + if first { + cc.fr.WriteHeaders(HeadersFrameParam{ + StreamID: streamID, + BlockFragment: chunk, + EndStream: endStream, + EndHeaders: endHeaders, + }) + first = false + } else { + cc.fr.WriteContinuation(streamID, endHeaders, chunk) + } + } + // TODO(bradfitz): this Flush could potentially block (as + // could the WriteHeaders call(s) above), which means they + // wouldn't respond to Request.Cancel being readable. That's + // rare, but this should probably be in a goroutine. + cc.bw.Flush() + return cc.werr +} + +// internal error values; they don't escape to callers +var ( + // abort request body write; don't send cancel + errStopReqBodyWrite = errors.New("http2: aborting request body write") + + // abort request body write, but send stream reset of cancel. + errStopReqBodyWriteAndCancel = errors.New("http2: canceling request") + + errReqBodyTooLong = errors.New("http2: request body larger than specified content length") +) + +// frameScratchBufferLen returns the length of a buffer to use for +// outgoing request bodies to read/write to/from. +// +// It returns max(1, min(peer's advertised max frame size, +// Request.ContentLength+1, 512KB)). +func (cs *clientStream) frameScratchBufferLen(maxFrameSize int) int { + const max = 512 << 10 + n := int64(maxFrameSize) + if n > max { + n = max + } + if cl := actualContentLength(cs.req); cl != -1 && cl+1 < n { + // Add an extra byte past the declared content-length to + // give the caller's Request.Body io.Reader a chance to + // give us more bytes than they declared, so we can catch it + // early. + n = cl + 1 + } + if n < 1 { + return 1 + } + return int(n) // doesn't truncate; max is 512K +} + +var bufPool sync.Pool // of *[]byte + +func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) (err error) { + cc := cs.cc + sentEnd := false // whether we sent the final DATA frame w/ END_STREAM + + defer func() { + traceWroteRequest(cs.trace, err) + // TODO: write h12Compare test showing whether + // Request.Body is closed by the Transport, + // and in multiple cases: server replies <=299 and >299 + // while still writing request body + var cerr error + cc.mu.Lock() + if cs.stopReqBody == nil { + cs.stopReqBody = errStopReqBodyWrite + cerr = bodyCloser.Close() + } + cc.mu.Unlock() + if err == nil { + err = cerr + } + }() + + req := cs.req + hasTrailers := req.Trailer != nil + remainLen := actualContentLength(req) + hasContentLen := remainLen != -1 + + cc.mu.Lock() + maxFrameSize := int(cc.maxFrameSize) + cc.mu.Unlock() + + // Scratch buffer for reading into & writing from. + scratchLen := cs.frameScratchBufferLen(maxFrameSize) + var buf []byte + if bp, ok := bufPool.Get().(*[]byte); ok && len(*bp) >= scratchLen { + defer bufPool.Put(bp) + buf = *bp + } else { + buf = make([]byte, scratchLen) + defer bufPool.Put(&buf) + } + + var sawEOF bool + for !sawEOF { + n, err := body.Read(buf[:len(buf)]) + if hasContentLen { + remainLen -= int64(n) + if remainLen == 0 && err == nil { + // The request body's Content-Length was predeclared and + // we just finished reading it all, but the underlying io.Reader + // returned the final chunk with a nil error (which is one of + // the two valid things a Reader can do at EOF). Because we'd prefer + // to send the END_STREAM bit early, double-check that we're actually + // at EOF. Subsequent reads should return (0, EOF) at this point. + // If either value is different, we return an error in one of two ways below. + var scratch [1]byte + var n1 int + n1, err = body.Read(scratch[:]) + remainLen -= int64(n1) + } + if remainLen < 0 { + err = errReqBodyTooLong + cc.writeStreamReset(cs.ID, ErrCodeCancel, err) + return err + } + } + if err == io.EOF { + sawEOF = true + err = nil + } else if err != nil { + cc.writeStreamReset(cs.ID, ErrCodeCancel, err) + return err + } + + remain := buf[:n] + for len(remain) > 0 && err == nil { + var allowed int32 + allowed, err = cs.awaitFlowControl(len(remain)) + switch { + case err == errStopReqBodyWrite: + return err + case err == errStopReqBodyWriteAndCancel: + cc.writeStreamReset(cs.ID, ErrCodeCancel, nil) + return err + case err != nil: + return err + } + cc.wmu.Lock() + data := remain[:allowed] + remain = remain[allowed:] + sentEnd = sawEOF && len(remain) == 0 && !hasTrailers + err = cc.fr.WriteData(cs.ID, sentEnd, data) + if err == nil { + // TODO(bradfitz): this flush is for latency, not bandwidth. + // Most requests won't need this. Make this opt-in or + // opt-out? Use some heuristic on the body type? Nagel-like + // timers? Based on 'n'? Only last chunk of this for loop, + // unless flow control tokens are low? For now, always. + // If we change this, see comment below. + err = cc.bw.Flush() + } + cc.wmu.Unlock() + } + if err != nil { + return err + } + } + + if sentEnd { + // Already sent END_STREAM (which implies we have no + // trailers) and flushed, because currently all + // WriteData frames above get a flush. So we're done. + return nil + } + + cc.wmu.Lock() + var trls []byte + if hasTrailers { + trls, err = cc.encodeTrailers(req) + if err != nil { + cc.wmu.Unlock() + cc.writeStreamReset(cs.ID, ErrCodeInternal, err) + cc.forgetStreamID(cs.ID) + return err + } + } + defer cc.wmu.Unlock() + + // Two ways to send END_STREAM: either with trailers, or + // with an empty DATA frame. + if len(trls) > 0 { + err = cc.writeHeaders(cs.ID, true, maxFrameSize, trls) + } else { + err = cc.fr.WriteData(cs.ID, true, nil) + } + if ferr := cc.bw.Flush(); ferr != nil && err == nil { + err = ferr + } + return err +} + +// awaitFlowControl waits for [1, min(maxBytes, cc.cs.maxFrameSize)] flow +// control tokens from the server. +// It returns either the non-zero number of tokens taken or an error +// if the stream is dead. +func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) { + cc := cs.cc + cc.mu.Lock() + defer cc.mu.Unlock() + for { + if cc.closed { + return 0, errClientConnClosed + } + if cs.stopReqBody != nil { + return 0, cs.stopReqBody + } + if err := cs.checkResetOrDone(); err != nil { + return 0, err + } + if a := cs.flow.available(); a > 0 { + take := a + if int(take) > maxBytes { + + take = int32(maxBytes) // can't truncate int; take is int32 + } + if take > int32(cc.maxFrameSize) { + take = int32(cc.maxFrameSize) + } + cs.flow.take(take) + return take, nil + } + cc.cond.Wait() + } +} + +// requires cc.wmu be held. +func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) { + cc.hbuf.Reset() + + host := req.Host + if host == "" { + host = req.URL.Host + } + host, err := httpguts.PunycodeHostPort(host) + if err != nil { + return nil, err + } + + var path string + if req.Method != "CONNECT" { + path = req.URL.RequestURI() + if !validPseudoPath(path) { + orig := path + path = strings.TrimPrefix(path, req.URL.Scheme+"://"+host) + if !validPseudoPath(path) { + if req.URL.Opaque != "" { + return nil, fmt.Errorf("invalid request :path %q from URL.Opaque = %q", orig, req.URL.Opaque) + } else { + return nil, fmt.Errorf("invalid request :path %q", orig) + } + } + } + } + + // Check for any invalid headers and return an error before we + // potentially pollute our hpack state. (We want to be able to + // continue to reuse the hpack encoder for future requests) + for k, vv := range req.Header { + if !httpguts.ValidHeaderFieldName(k) { + return nil, fmt.Errorf("invalid HTTP header name %q", k) + } + for _, v := range vv { + if !httpguts.ValidHeaderFieldValue(v) { + return nil, fmt.Errorf("invalid HTTP header value %q for header %q", v, k) + } + } + } + + enumerateHeaders := func(f func(name, value string)) { + // 8.1.2.3 Request Pseudo-Header Fields + // The :path pseudo-header field includes the path and query parts of the + // target URI (the path-absolute production and optionally a '?' character + // followed by the query production (see Sections 3.3 and 3.4 of + // [RFC3986]). + f(":authority", host) + m := req.Method + if m == "" { + m = http.MethodGet + } + f(":method", m) + if req.Method != "CONNECT" { + f(":path", path) + f(":scheme", req.URL.Scheme) + } + if trailers != "" { + f("trailer", trailers) + } + + var didUA bool + for k, vv := range req.Header { + if asciiEqualFold(k, "host") || asciiEqualFold(k, "content-length") { + // Host is :authority, already sent. + // Content-Length is automatic, set below. + continue + } else if asciiEqualFold(k, "connection") || + asciiEqualFold(k, "proxy-connection") || + asciiEqualFold(k, "transfer-encoding") || + asciiEqualFold(k, "upgrade") || + asciiEqualFold(k, "keep-alive") { + // Per 8.1.2.2 Connection-Specific Header + // Fields, don't send connection-specific + // fields. We have already checked if any + // are error-worthy so just ignore the rest. + continue + } else if asciiEqualFold(k, "user-agent") { + // Match Go's http1 behavior: at most one + // User-Agent. If set to nil or empty string, + // then omit it. Otherwise if not mentioned, + // include the default (below). + didUA = true + if len(vv) < 1 { + continue + } + vv = vv[:1] + if vv[0] == "" { + continue + } + } else if asciiEqualFold(k, "cookie") { + // Per 8.1.2.5 To allow for better compression efficiency, the + // Cookie header field MAY be split into separate header fields, + // each with one or more cookie-pairs. + for _, v := range vv { + for { + p := strings.IndexByte(v, ';') + if p < 0 { + break + } + f("cookie", v[:p]) + p++ + // strip space after semicolon if any. + for p+1 <= len(v) && v[p] == ' ' { + p++ + } + v = v[p:] + } + if len(v) > 0 { + f("cookie", v) + } + } + continue + } + + for _, v := range vv { + f(k, v) + } + } + if shouldSendReqContentLength(req.Method, contentLength) { + f("content-length", strconv.FormatInt(contentLength, 10)) + } + if addGzipHeader { + f("accept-encoding", "gzip") + } + if !didUA { + f("user-agent", defaultUserAgent) + } + } + + // Do a first pass over the headers counting bytes to ensure + // we don't exceed cc.peerMaxHeaderListSize. This is done as a + // separate pass before encoding the headers to prevent + // modifying the hpack state. + hlSize := uint64(0) + enumerateHeaders(func(name, value string) { + hf := hpack.HeaderField{Name: name, Value: value} + hlSize += uint64(hf.Size()) + }) + + if hlSize > cc.peerMaxHeaderListSize { + return nil, errRequestHeaderListSize + } + + trace := httptrace.ContextClientTrace(req.Context()) + traceHeaders := traceHasWroteHeaderField(trace) + + // Header list size is ok. Write the headers. + enumerateHeaders(func(name, value string) { + name, ascii := asciiToLower(name) + if !ascii { + // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header + // field names have to be ASCII characters (just as in HTTP/1.x). + return + } + cc.writeHeader(name, value) + if traceHeaders { + traceWroteHeaderField(trace, name, value) + } + }) + + return cc.hbuf.Bytes(), nil +} + +// shouldSendReqContentLength reports whether the http2.Transport should send +// a "content-length" request header. This logic is basically a copy of the net/http +// transferWriter.shouldSendContentLength. +// The contentLength is the corrected contentLength (so 0 means actually 0, not unknown). +// -1 means unknown. +func shouldSendReqContentLength(method string, contentLength int64) bool { + if contentLength > 0 { + return true + } + if contentLength < 0 { + return false + } + // For zero bodies, whether we send a content-length depends on the method. + // It also kinda doesn't matter for http2 either way, with END_STREAM. + switch method { + case "POST", "PUT", "PATCH": + return true + default: + return false + } +} + +// requires cc.wmu be held. +func (cc *ClientConn) encodeTrailers(req *http.Request) ([]byte, error) { + cc.hbuf.Reset() + + hlSize := uint64(0) + for k, vv := range req.Trailer { + for _, v := range vv { + hf := hpack.HeaderField{Name: k, Value: v} + hlSize += uint64(hf.Size()) + } + } + if hlSize > cc.peerMaxHeaderListSize { + return nil, errRequestHeaderListSize + } + + for k, vv := range req.Trailer { + lowKey, ascii := asciiToLower(k) + if !ascii { + // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header + // field names have to be ASCII characters (just as in HTTP/1.x). + continue + } + // Transfer-Encoding, etc.. have already been filtered at the + // start of RoundTrip + for _, v := range vv { + cc.writeHeader(lowKey, v) + } + } + return cc.hbuf.Bytes(), nil +} + +func (cc *ClientConn) writeHeader(name, value string) { + if VerboseLogs { + log.Printf("http2: Transport encoding header %q = %q", name, value) + } + cc.henc.WriteField(hpack.HeaderField{Name: name, Value: value}) +} + +type resAndError struct { + _ incomparable + res *http.Response + err error +} + +// requires cc.mu be held. +func (cc *ClientConn) newStream() *clientStream { + cs := &clientStream{ + cc: cc, + ID: cc.nextStreamID, + resc: make(chan resAndError, 1), + peerReset: make(chan struct{}), + done: make(chan struct{}), + } + cs.flow.add(int32(cc.initialWindowSize)) + cs.flow.setConnFlow(&cc.flow) + cs.inflow.add(transportDefaultStreamFlow) + cs.inflow.setConnFlow(&cc.inflow) + cc.nextStreamID += 2 + cc.streams[cs.ID] = cs + return cs +} + +func (cc *ClientConn) forgetStreamID(id uint32) { + cc.streamByID(id, true) +} + +func (cc *ClientConn) streamByID(id uint32, andRemove bool) *clientStream { + cc.mu.Lock() + defer cc.mu.Unlock() + cs := cc.streams[id] + if andRemove && cs != nil && !cc.closed { + cc.lastActive = time.Now() + delete(cc.streams, id) + if len(cc.streams) == 0 && cc.idleTimer != nil { + cc.idleTimer.Reset(cc.idleTimeout) + cc.lastIdle = time.Now() + } + close(cs.done) + // Wake up checkResetOrDone via clientStream.awaitFlowControl and + // wake up RoundTrip if there is a pending request. + cc.cond.Broadcast() + } + return cs +} + +// clientConnReadLoop is the state owned by the clientConn's frame-reading readLoop. +type clientConnReadLoop struct { + _ incomparable + cc *ClientConn + closeWhenIdle bool +} + +// readLoop runs in its own goroutine and reads and dispatches frames. +func (cc *ClientConn) readLoop() { + rl := &clientConnReadLoop{cc: cc} + defer rl.cleanup() + cc.readerErr = rl.run() + if ce, ok := cc.readerErr.(ConnectionError); ok { + cc.wmu.Lock() + cc.fr.WriteGoAway(0, ErrCode(ce), nil) + cc.wmu.Unlock() + } +} + +// GoAwayError is returned by the Transport when the server closes the +// TCP connection after sending a GOAWAY frame. +type GoAwayError struct { + LastStreamID uint32 + ErrCode ErrCode + DebugData string +} + +func (e GoAwayError) Error() string { + return fmt.Sprintf("http2: server sent GOAWAY and closed the connection; LastStreamID=%v, ErrCode=%v, debug=%q", + e.LastStreamID, e.ErrCode, e.DebugData) +} + +func isEOFOrNetReadError(err error) bool { + if err == io.EOF { + return true + } + ne, ok := err.(*net.OpError) + return ok && ne.Op == "read" +} + +func (rl *clientConnReadLoop) cleanup() { + cc := rl.cc + defer cc.tconn.Close() + defer cc.t.connPool().MarkDead(cc) + defer close(cc.readerDone) + + if cc.idleTimer != nil { + cc.idleTimer.Stop() + } + + // Close any response bodies if the server closes prematurely. + // TODO: also do this if we've written the headers but not + // gotten a response yet. + err := cc.readerErr + cc.mu.Lock() + if cc.goAway != nil && isEOFOrNetReadError(err) { + err = GoAwayError{ + LastStreamID: cc.goAway.LastStreamID, + ErrCode: cc.goAway.ErrCode, + DebugData: cc.goAwayDebug, + } + } else if err == io.EOF { + err = io.ErrUnexpectedEOF + } + cc.closed = true + streams := cc.streams + cc.streams = nil + cc.mu.Unlock() + for _, cs := range streams { + cs.bufPipe.CloseWithError(err) // no-op if already closed + select { + case cs.resc <- resAndError{err: err}: + default: + } + close(cs.done) + } + cc.mu.Lock() + cc.cond.Broadcast() + cc.mu.Unlock() +} + +// countReadFrameError calls Transport.CountError with a string +// representing err. +func (cc *ClientConn) countReadFrameError(err error) { + f := cc.t.CountError + if f == nil || err == nil { + return + } + if ce, ok := err.(ConnectionError); ok { + errCode := ErrCode(ce) + f(fmt.Sprintf("read_frame_conn_error_%s", errCode.stringToken())) + return + } + if errors.Is(err, io.EOF) { + f("read_frame_eof") + return + } + if errors.Is(err, io.ErrUnexpectedEOF) { + f("read_frame_unexpected_eof") + return + } + if errors.Is(err, ErrFrameTooLarge) { + f("read_frame_too_large") + return + } + f("read_frame_other") +} + +func (rl *clientConnReadLoop) run() error { + cc := rl.cc + rl.closeWhenIdle = cc.t.disableKeepAlives() || cc.singleUse + gotReply := false // ever saw a HEADERS reply + gotSettings := false + readIdleTimeout := cc.t.ReadIdleTimeout + var t *time.Timer + if readIdleTimeout != 0 { + t = time.AfterFunc(readIdleTimeout, cc.healthCheck) + defer t.Stop() + } + for { + f, err := cc.fr.ReadFrame() + if t != nil { + t.Reset(readIdleTimeout) + } + if err != nil { + cc.vlogf("http2: Transport readFrame error on conn %p: (%T) %v", cc, err, err) + } + if se, ok := err.(StreamError); ok { + if cs := cc.streamByID(se.StreamID, false); cs != nil { + cs.cc.writeStreamReset(cs.ID, se.Code, err) + cs.cc.forgetStreamID(cs.ID) + if se.Cause == nil { + se.Cause = cc.fr.errDetail + } + rl.endStreamError(cs, se) + } + continue + } else if err != nil { + cc.countReadFrameError(err) + return err + } + if VerboseLogs { + cc.vlogf("http2: Transport received %s", summarizeFrame(f)) + } + if !gotSettings { + if _, ok := f.(*SettingsFrame); !ok { + cc.logf("protocol error: received %T before a SETTINGS frame", f) + return ConnectionError(ErrCodeProtocol) + } + gotSettings = true + } + maybeIdle := false // whether frame might transition us to idle + + switch f := f.(type) { + case *MetaHeadersFrame: + err = rl.processHeaders(f) + maybeIdle = true + gotReply = true + case *DataFrame: + err = rl.processData(f) + maybeIdle = true + case *GoAwayFrame: + err = rl.processGoAway(f) + maybeIdle = true + case *RSTStreamFrame: + err = rl.processResetStream(f) + maybeIdle = true + case *SettingsFrame: + err = rl.processSettings(f) + case *PushPromiseFrame: + err = rl.processPushPromise(f) + case *WindowUpdateFrame: + err = rl.processWindowUpdate(f) + case *PingFrame: + err = rl.processPing(f) + default: + cc.logf("Transport: unhandled response frame type %T", f) + } + if err != nil { + if VerboseLogs { + cc.vlogf("http2: Transport conn %p received error from processing frame %v: %v", cc, summarizeFrame(f), err) + } + return err + } + if rl.closeWhenIdle && gotReply && maybeIdle { + cc.closeIfIdle() + } + } +} + +func (rl *clientConnReadLoop) processHeaders(f *MetaHeadersFrame) error { + cc := rl.cc + cs := cc.streamByID(f.StreamID, false) + if cs == nil { + // We'd get here if we canceled a request while the + // server had its response still in flight. So if this + // was just something we canceled, ignore it. + return nil + } + if f.StreamEnded() { + // Issue 20521: If the stream has ended, streamByID() causes + // clientStream.done to be closed, which causes the request's bodyWriter + // to be closed with an errStreamClosed, which may be received by + // clientConn.RoundTrip before the result of processing these headers. + // Deferring stream closure allows the header processing to occur first. + // clientConn.RoundTrip may still receive the bodyWriter error first, but + // the fix for issue 16102 prioritises any response. + // + // Issue 22413: If there is no request body, we should close the + // stream before writing to cs.resc so that the stream is closed + // immediately once RoundTrip returns. + if cs.req.Body != nil { + defer cc.forgetStreamID(f.StreamID) + } else { + cc.forgetStreamID(f.StreamID) + } + } + if !cs.firstByte { + if cs.trace != nil { + // TODO(bradfitz): move first response byte earlier, + // when we first read the 9 byte header, not waiting + // until all the HEADERS+CONTINUATION frames have been + // merged. This works for now. + traceFirstResponseByte(cs.trace) + } + cs.firstByte = true + } + if !cs.pastHeaders { + cs.pastHeaders = true + } else { + return rl.processTrailers(cs, f) + } + + res, err := rl.handleResponse(cs, f) + if err != nil { + if _, ok := err.(ConnectionError); ok { + return err + } + // Any other error type is a stream error. + cs.cc.writeStreamReset(f.StreamID, ErrCodeProtocol, err) + cc.forgetStreamID(cs.ID) + cs.resc <- resAndError{err: err} + return nil // return nil from process* funcs to keep conn alive + } + if res == nil { + // (nil, nil) special case. See handleResponse docs. + return nil + } + cs.resTrailer = &res.Trailer + cs.resc <- resAndError{res: res} + return nil +} + +// may return error types nil, or ConnectionError. Any other error value +// is a StreamError of type ErrCodeProtocol. The returned error in that case +// is the detail. +// +// As a special case, handleResponse may return (nil, nil) to skip the +// frame (currently only used for 1xx responses). +func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFrame) (*http.Response, error) { + if f.Truncated { + return nil, errResponseHeaderListSize + } + + status := f.PseudoValue("status") + if status == "" { + return nil, errors.New("malformed response from server: missing status pseudo header") + } + statusCode, err := strconv.Atoi(status) + if err != nil { + return nil, errors.New("malformed response from server: malformed non-numeric status pseudo header") + } + + regularFields := f.RegularFields() + strs := make([]string, len(regularFields)) + header := make(http.Header, len(regularFields)) + res := &http.Response{ + Proto: "HTTP/2.0", + ProtoMajor: 2, + Header: header, + StatusCode: statusCode, + Status: status + " " + http.StatusText(statusCode), + } + for _, hf := range regularFields { + key := http.CanonicalHeaderKey(hf.Name) + if key == "Trailer" { + t := res.Trailer + if t == nil { + t = make(http.Header) + res.Trailer = t + } + foreachHeaderElement(hf.Value, func(v string) { + t[http.CanonicalHeaderKey(v)] = nil + }) + } else { + vv := header[key] + if vv == nil && len(strs) > 0 { + // More than likely this will be a single-element key. + // Most headers aren't multi-valued. + // Set the capacity on strs[0] to 1, so any future append + // won't extend the slice into the other strings. + vv, strs = strs[:1:1], strs[1:] + vv[0] = hf.Value + header[key] = vv + } else { + header[key] = append(vv, hf.Value) + } + } + } + + if statusCode >= 100 && statusCode <= 199 { + cs.num1xx++ + const max1xxResponses = 5 // arbitrary bound on number of informational responses, same as net/http + if cs.num1xx > max1xxResponses { + return nil, errors.New("http2: too many 1xx informational responses") + } + if fn := cs.get1xxTraceFunc(); fn != nil { + if err := fn(statusCode, textproto.MIMEHeader(header)); err != nil { + return nil, err + } + } + if statusCode == 100 { + traceGot100Continue(cs.trace) + if cs.on100 != nil { + cs.on100() // forces any write delay timer to fire + } + } + cs.pastHeaders = false // do it all again + return nil, nil + } + + streamEnded := f.StreamEnded() + isHead := cs.req.Method == "HEAD" + if !streamEnded || isHead { + res.ContentLength = -1 + if clens := res.Header["Content-Length"]; len(clens) == 1 { + if cl, err := strconv.ParseUint(clens[0], 10, 63); err == nil { + res.ContentLength = int64(cl) + } else { + // TODO: care? unlike http/1, it won't mess up our framing, so it's + // more safe smuggling-wise to ignore. + } + } else if len(clens) > 1 { + // TODO: care? unlike http/1, it won't mess up our framing, so it's + // more safe smuggling-wise to ignore. + } + } + + if streamEnded || isHead { + res.Body = noBody + return res, nil + } + + cs.bufPipe = pipe{b: &dataBuffer{expected: res.ContentLength}} + cs.bytesRemain = res.ContentLength + res.Body = transportResponseBody{cs} + go cs.awaitRequestCancel(cs.req) + + if cs.requestedGzip && res.Header.Get("Content-Encoding") == "gzip" { + res.Header.Del("Content-Encoding") + res.Header.Del("Content-Length") + res.ContentLength = -1 + res.Body = &gzipReader{body: res.Body} + res.Uncompressed = true + } + return res, nil +} + +func (rl *clientConnReadLoop) processTrailers(cs *clientStream, f *MetaHeadersFrame) error { + if cs.pastTrailers { + // Too many HEADERS frames for this stream. + return ConnectionError(ErrCodeProtocol) + } + cs.pastTrailers = true + if !f.StreamEnded() { + // We expect that any headers for trailers also + // has END_STREAM. + return ConnectionError(ErrCodeProtocol) + } + if len(f.PseudoFields()) > 0 { + // No pseudo header fields are defined for trailers. + // TODO: ConnectionError might be overly harsh? Check. + return ConnectionError(ErrCodeProtocol) + } + + trailer := make(http.Header) + for _, hf := range f.RegularFields() { + key := http.CanonicalHeaderKey(hf.Name) + trailer[key] = append(trailer[key], hf.Value) + } + cs.trailer = trailer + + rl.endStream(cs) + return nil +} + +// transportResponseBody is the concrete type of Transport.RoundTrip's +// Response.Body. It is an io.ReadCloser. On Read, it reads from cs.body. +// On Close it sends RST_STREAM if EOF wasn't already seen. +type transportResponseBody struct { + cs *clientStream +} + +func (b transportResponseBody) Read(p []byte) (n int, err error) { + cs := b.cs + cc := cs.cc + + if cs.readErr != nil { + return 0, cs.readErr + } + n, err = b.cs.bufPipe.Read(p) + if cs.bytesRemain != -1 { + if int64(n) > cs.bytesRemain { + n = int(cs.bytesRemain) + if err == nil { + err = errors.New("net/http: server replied with more than declared Content-Length; truncated") + cc.writeStreamReset(cs.ID, ErrCodeProtocol, err) + } + cs.readErr = err + return int(cs.bytesRemain), err + } + cs.bytesRemain -= int64(n) + if err == io.EOF && cs.bytesRemain > 0 { + err = io.ErrUnexpectedEOF + cs.readErr = err + return n, err + } + } + if n == 0 { + // No flow control tokens to send back. + return + } + + cc.mu.Lock() + var connAdd, streamAdd int32 + // Check the conn-level first, before the stream-level. + if v := cc.inflow.available(); v < transportDefaultConnFlow/2 { + connAdd = transportDefaultConnFlow - v + cc.inflow.add(connAdd) + } + if err == nil { // No need to refresh if the stream is over or failed. + // Consider any buffered body data (read from the conn but not + // consumed by the client) when computing flow control for this + // stream. + v := int(cs.inflow.available()) + cs.bufPipe.Len() + if v < transportDefaultStreamFlow-transportDefaultStreamMinRefresh { + streamAdd = int32(transportDefaultStreamFlow - v) + cs.inflow.add(streamAdd) + } + } + cc.mu.Unlock() + + if connAdd != 0 || streamAdd != 0 { + cc.wmu.Lock() + defer cc.wmu.Unlock() + if connAdd != 0 { + cc.fr.WriteWindowUpdate(0, mustUint31(connAdd)) + } + if streamAdd != 0 { + cc.fr.WriteWindowUpdate(cs.ID, mustUint31(streamAdd)) + } + cc.bw.Flush() + } + return +} + +var errClosedResponseBody = errors.New("http2: response body closed") + +func (b transportResponseBody) Close() error { + cs := b.cs + cc := cs.cc + + serverSentStreamEnd := cs.bufPipe.Err() == io.EOF + unread := cs.bufPipe.Len() + + if unread > 0 || !serverSentStreamEnd { + cc.mu.Lock() + if !serverSentStreamEnd { + cs.didReset = true + } + // Return connection-level flow control. + if unread > 0 { + cc.inflow.add(int32(unread)) + } + cc.mu.Unlock() + + cc.wmu.Lock() + if !serverSentStreamEnd { + cc.fr.WriteRSTStream(cs.ID, ErrCodeCancel) + } + // Return connection-level flow control. + if unread > 0 { + cc.fr.WriteWindowUpdate(0, uint32(unread)) + } + cc.bw.Flush() + cc.wmu.Unlock() + } + + cs.bufPipe.BreakWithError(errClosedResponseBody) + cc.forgetStreamID(cs.ID) + return nil +} + +func (rl *clientConnReadLoop) processData(f *DataFrame) error { + cc := rl.cc + cs := cc.streamByID(f.StreamID, f.StreamEnded()) + data := f.Data() + if cs == nil { + cc.mu.Lock() + neverSent := cc.nextStreamID + cc.mu.Unlock() + if f.StreamID >= neverSent { + // We never asked for this. + cc.logf("http2: Transport received unsolicited DATA frame; closing connection") + return ConnectionError(ErrCodeProtocol) + } + // We probably did ask for this, but canceled. Just ignore it. + // TODO: be stricter here? only silently ignore things which + // we canceled, but not things which were closed normally + // by the peer? Tough without accumulating too much state. + + // But at least return their flow control: + if f.Length > 0 { + cc.mu.Lock() + cc.inflow.add(int32(f.Length)) + cc.mu.Unlock() + + cc.wmu.Lock() + cc.fr.WriteWindowUpdate(0, uint32(f.Length)) + cc.bw.Flush() + cc.wmu.Unlock() + } + return nil + } + if !cs.firstByte { + cc.logf("protocol error: received DATA before a HEADERS frame") + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, + Code: ErrCodeProtocol, + }) + return nil + } + if f.Length > 0 { + if cs.req.Method == "HEAD" && len(data) > 0 { + cc.logf("protocol error: received DATA on a HEAD request") + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, + Code: ErrCodeProtocol, + }) + return nil + } + // Check connection-level flow control. + cc.mu.Lock() + if cs.inflow.available() >= int32(f.Length) { + cs.inflow.take(int32(f.Length)) + } else { + cc.mu.Unlock() + return ConnectionError(ErrCodeFlowControl) + } + // Return any padded flow control now, since we won't + // refund it later on body reads. + var refund int + if pad := int(f.Length) - len(data); pad > 0 { + refund += pad + } + // Return len(data) now if the stream is already closed, + // since data will never be read. + didReset := cs.didReset + if didReset { + refund += len(data) + } + if refund > 0 { + cc.inflow.add(int32(refund)) + } + cc.mu.Unlock() + + if refund > 0 { + cc.wmu.Lock() + cc.fr.WriteWindowUpdate(0, uint32(refund)) + if !didReset { + cs.inflow.add(int32(refund)) + cc.fr.WriteWindowUpdate(cs.ID, uint32(refund)) + } + cc.bw.Flush() + cc.wmu.Unlock() + } + + if len(data) > 0 && !didReset { + if _, err := cs.bufPipe.Write(data); err != nil { + rl.endStreamError(cs, err) + return err + } + } + } + + if f.StreamEnded() { + rl.endStream(cs) + } + return nil +} + +func (rl *clientConnReadLoop) endStream(cs *clientStream) { + // TODO: check that any declared content-length matches, like + // server.go's (*stream).endStream method. + rl.endStreamError(cs, nil) +} + +func (rl *clientConnReadLoop) endStreamError(cs *clientStream, err error) { + var code func() + if err == nil { + err = io.EOF + code = cs.copyTrailers + } + if isConnectionCloseRequest(cs.req) { + rl.closeWhenIdle = true + } + cs.bufPipe.closeWithErrorAndCode(err, code) + + select { + case cs.resc <- resAndError{err: err}: + default: + } +} + +func (cs *clientStream) copyTrailers() { + for k, vv := range cs.trailer { + t := cs.resTrailer + if *t == nil { + *t = make(http.Header) + } + (*t)[k] = vv + } +} + +func (rl *clientConnReadLoop) processGoAway(f *GoAwayFrame) error { + cc := rl.cc + cc.t.connPool().MarkDead(cc) + if f.ErrCode != 0 { + // TODO: deal with GOAWAY more. particularly the error code + cc.vlogf("transport got GOAWAY with error code = %v", f.ErrCode) + if fn := cc.t.CountError; fn != nil { + fn("recv_goaway_" + f.ErrCode.stringToken()) + } + + } + cc.setGoAway(f) + return nil +} + +func (rl *clientConnReadLoop) processSettings(f *SettingsFrame) error { + cc := rl.cc + // Locking both mu and wmu here allows frame encoding to read settings with only wmu held. + // Acquiring wmu when f.IsAck() is unnecessary, but convenient and mostly harmless. + cc.wmu.Lock() + defer cc.wmu.Unlock() + + if err := rl.processSettingsNoWrite(f); err != nil { + return err + } + if !f.IsAck() { + cc.fr.WriteSettingsAck() + cc.bw.Flush() + } + return nil +} + +func (rl *clientConnReadLoop) processSettingsNoWrite(f *SettingsFrame) error { + cc := rl.cc + cc.mu.Lock() + defer cc.mu.Unlock() + + if f.IsAck() { + if cc.wantSettingsAck { + cc.wantSettingsAck = false + return nil + } + return ConnectionError(ErrCodeProtocol) + } + + var seenMaxConcurrentStreams bool + err := f.ForeachSetting(func(s Setting) error { + switch s.ID { + case SettingMaxFrameSize: + cc.maxFrameSize = s.Val + case SettingMaxConcurrentStreams: + cc.maxConcurrentStreams = s.Val + seenMaxConcurrentStreams = true + case SettingMaxHeaderListSize: + cc.peerMaxHeaderListSize = uint64(s.Val) + case SettingInitialWindowSize: + // Values above the maximum flow-control + // window size of 2^31-1 MUST be treated as a + // connection error (Section 5.4.1) of type + // FLOW_CONTROL_ERROR. + if s.Val > math.MaxInt32 { + return ConnectionError(ErrCodeFlowControl) + } + + // Adjust flow control of currently-open + // frames by the difference of the old initial + // window size and this one. + delta := int32(s.Val) - int32(cc.initialWindowSize) + for _, cs := range cc.streams { + cs.flow.add(delta) + } + cc.cond.Broadcast() + + cc.initialWindowSize = s.Val + default: + // TODO(bradfitz): handle more settings? SETTINGS_HEADER_TABLE_SIZE probably. + cc.vlogf("Unhandled Setting: %v", s) + } + return nil + }) + if err != nil { + return err + } + + if !cc.seenSettings { + if !seenMaxConcurrentStreams { + // This was the servers initial SETTINGS frame and it + // didn't contain a MAX_CONCURRENT_STREAMS field so + // increase the number of concurrent streams this + // connection can establish to our default. + cc.maxConcurrentStreams = defaultMaxConcurrentStreams + } + cc.seenSettings = true + } + + return nil +} + +func (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error { + cc := rl.cc + cs := cc.streamByID(f.StreamID, false) + if f.StreamID != 0 && cs == nil { + return nil + } + + cc.mu.Lock() + defer cc.mu.Unlock() + + fl := &cc.flow + if cs != nil { + fl = &cs.flow + } + if !fl.add(int32(f.Increment)) { + return ConnectionError(ErrCodeFlowControl) + } + cc.cond.Broadcast() + return nil +} + +func (rl *clientConnReadLoop) processResetStream(f *RSTStreamFrame) error { + cs := rl.cc.streamByID(f.StreamID, true) + if cs == nil { + // TODO: return error if server tries to RST_STEAM an idle stream + return nil + } + select { + case <-cs.peerReset: + // Already reset. + // This is the only goroutine + // which closes this, so there + // isn't a race. + default: + serr := streamError(cs.ID, f.ErrCode) + if f.ErrCode == ErrCodeProtocol { + rl.cc.SetDoNotReuse() + serr.Cause = errFromPeer + } + if fn := cs.cc.t.CountError; fn != nil { + fn("recv_rststream_" + f.ErrCode.stringToken()) + } + cs.resetErr = serr + close(cs.peerReset) + cs.bufPipe.CloseWithError(serr) + cs.cc.cond.Broadcast() // wake up checkResetOrDone via clientStream.awaitFlowControl + } + return nil +} + +// Ping sends a PING frame to the server and waits for the ack. +func (cc *ClientConn) Ping(ctx context.Context) error { + c := make(chan struct{}) + // Generate a random payload + var p [8]byte + for { + if _, err := rand.Read(p[:]); err != nil { + return err + } + cc.mu.Lock() + // check for dup before insert + if _, found := cc.pings[p]; !found { + cc.pings[p] = c + cc.mu.Unlock() + break + } + cc.mu.Unlock() + } + cc.wmu.Lock() + if err := cc.fr.WritePing(false, p); err != nil { + cc.wmu.Unlock() + return err + } + if err := cc.bw.Flush(); err != nil { + cc.wmu.Unlock() + return err + } + cc.wmu.Unlock() + select { + case <-c: + return nil + case <-ctx.Done(): + return ctx.Err() + case <-cc.readerDone: + // connection closed + return cc.readerErr + } +} + +func (rl *clientConnReadLoop) processPing(f *PingFrame) error { + if f.IsAck() { + cc := rl.cc + cc.mu.Lock() + defer cc.mu.Unlock() + // If ack, notify listener if any + if c, ok := cc.pings[f.Data]; ok { + close(c) + delete(cc.pings, f.Data) + } + return nil + } + cc := rl.cc + cc.wmu.Lock() + defer cc.wmu.Unlock() + if err := cc.fr.WritePing(true, f.Data); err != nil { + return err + } + return cc.bw.Flush() +} + +func (rl *clientConnReadLoop) processPushPromise(f *PushPromiseFrame) error { + // We told the peer we don't want them. + // Spec says: + // "PUSH_PROMISE MUST NOT be sent if the SETTINGS_ENABLE_PUSH + // setting of the peer endpoint is set to 0. An endpoint that + // has set this setting and has received acknowledgement MUST + // treat the receipt of a PUSH_PROMISE frame as a connection + // error (Section 5.4.1) of type PROTOCOL_ERROR." + return ConnectionError(ErrCodeProtocol) +} + +func (cc *ClientConn) writeStreamReset(streamID uint32, code ErrCode, err error) { + // TODO: map err to more interesting error codes, once the + // HTTP community comes up with some. But currently for + // RST_STREAM there's no equivalent to GOAWAY frame's debug + // data, and the error codes are all pretty vague ("cancel"). + cc.wmu.Lock() + cc.fr.WriteRSTStream(streamID, code) + cc.bw.Flush() + cc.wmu.Unlock() +} + +var ( + errResponseHeaderListSize = errors.New("http2: response header list larger than advertised limit") + errRequestHeaderListSize = errors.New("http2: request header list larger than peer's advertised limit") +) + +func (cc *ClientConn) logf(format string, args ...interface{}) { + cc.t.logf(format, args...) +} + +func (cc *ClientConn) vlogf(format string, args ...interface{}) { + cc.t.vlogf(format, args...) +} + +func (t *Transport) vlogf(format string, args ...interface{}) { + if VerboseLogs { + t.logf(format, args...) + } +} + +func (t *Transport) logf(format string, args ...interface{}) { + log.Printf(format, args...) +} + +var noBody io.ReadCloser = ioutil.NopCloser(bytes.NewReader(nil)) + +func strSliceContains(ss []string, s string) bool { + for _, v := range ss { + if v == s { + return true + } + } + return false +} + +type erringRoundTripper struct{ err error } + +func (rt erringRoundTripper) RoundTripErr() error { return rt.err } +func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { return nil, rt.err } + +// gzipReader wraps a response body so it can lazily +// call gzip.NewReader on the first call to Read +type gzipReader struct { + _ incomparable + body io.ReadCloser // underlying Response.Body + zr *gzip.Reader // lazily-initialized gzip reader + zerr error // sticky error +} + +func (gz *gzipReader) Read(p []byte) (n int, err error) { + if gz.zerr != nil { + return 0, gz.zerr + } + if gz.zr == nil { + gz.zr, err = gzip.NewReader(gz.body) + if err != nil { + gz.zerr = err + return 0, err + } + } + return gz.zr.Read(p) +} + +func (gz *gzipReader) Close() error { + return gz.body.Close() +} + +type errorReader struct{ err error } + +func (r errorReader) Read(p []byte) (int, error) { return 0, r.err } + +// bodyWriterState encapsulates various state around the Transport's writing +// of the request body, particularly regarding doing delayed writes of the body +// when the request contains "Expect: 100-continue". +type bodyWriterState struct { + cs *clientStream + timer *time.Timer // if non-nil, we're doing a delayed write + fnonce *sync.Once // to call fn with + fn func() // the code to run in the goroutine, writing the body + resc chan error // result of fn's execution + delay time.Duration // how long we should delay a delayed write for +} + +func (t *Transport) getBodyWriterState(cs *clientStream, body io.Reader) (s bodyWriterState) { + s.cs = cs + if body == nil { + return + } + resc := make(chan error, 1) + s.resc = resc + s.fn = func() { + cs.cc.mu.Lock() + cs.startedWrite = true + cs.cc.mu.Unlock() + resc <- cs.writeRequestBody(body, cs.req.Body) + } + s.delay = t.expectContinueTimeout() + if s.delay == 0 || + !httpguts.HeaderValuesContainsToken( + cs.req.Header["Expect"], + "100-continue") { + return + } + s.fnonce = new(sync.Once) + + // Arm the timer with a very large duration, which we'll + // intentionally lower later. It has to be large now because + // we need a handle to it before writing the headers, but the + // s.delay value is defined to not start until after the + // request headers were written. + const hugeDuration = 365 * 24 * time.Hour + s.timer = time.AfterFunc(hugeDuration, func() { + s.fnonce.Do(s.fn) + }) + return +} + +func (s bodyWriterState) cancel() { + if s.timer != nil { + if s.timer.Stop() { + s.resc <- nil + } + } +} + +func (s bodyWriterState) on100() { + if s.timer == nil { + // If we didn't do a delayed write, ignore the server's + // bogus 100 continue response. + return + } + s.timer.Stop() + go func() { s.fnonce.Do(s.fn) }() +} + +// scheduleBodyWrite starts writing the body, either immediately (in +// the common case) or after the delay timeout. It should not be +// called until after the headers have been written. +func (s bodyWriterState) scheduleBodyWrite() { + if s.timer == nil { + // We're not doing a delayed write (see + // getBodyWriterState), so just start the writing + // goroutine immediately. + go s.fn() + return + } + traceWait100Continue(s.cs.trace) + if s.timer.Stop() { + s.timer.Reset(s.delay) + } +} + +// isConnectionCloseRequest reports whether req should use its own +// connection for a single request and then close the connection. +func isConnectionCloseRequest(req *http.Request) bool { + return req.Close || httpguts.HeaderValuesContainsToken(req.Header["Connection"], "close") +} + +// registerHTTPSProtocol calls Transport.RegisterProtocol but +// converting panics into errors. +func registerHTTPSProtocol(t *http.Transport, rt noDialH2RoundTripper) (err error) { + defer func() { + if e := recover(); e != nil { + err = fmt.Errorf("%v", e) + } + }() + t.RegisterProtocol("https", rt) + return nil +} + +// noDialH2RoundTripper is a RoundTripper which only tries to complete the request +// if there's already has a cached connection to the host. +// (The field is exported so it can be accessed via reflect from net/http; tested +// by TestNoDialH2RoundTripperType) +type noDialH2RoundTripper struct{ *Transport } + +func (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + res, err := rt.Transport.RoundTrip(req) + if isNoCachedConnError(err) { + return nil, http.ErrSkipAltProtocol + } + return res, err +} + +func (t *Transport) idleConnTimeout() time.Duration { + if t.t1 != nil { + return t.t1.IdleConnTimeout + } + return 0 +} + +func traceGetConn(req *http.Request, hostPort string) { + trace := httptrace.ContextClientTrace(req.Context()) + if trace == nil || trace.GetConn == nil { + return + } + trace.GetConn(hostPort) +} + +func traceGotConn(req *http.Request, cc *ClientConn, reused bool) { + trace := httptrace.ContextClientTrace(req.Context()) + if trace == nil || trace.GotConn == nil { + return + } + ci := httptrace.GotConnInfo{Conn: cc.tconn} + ci.Reused = reused + cc.mu.Lock() + ci.WasIdle = len(cc.streams) == 0 && reused + if ci.WasIdle && !cc.lastActive.IsZero() { + ci.IdleTime = time.Now().Sub(cc.lastActive) + } + cc.mu.Unlock() + + trace.GotConn(ci) +} + +func traceWroteHeaders(trace *httptrace.ClientTrace) { + if trace != nil && trace.WroteHeaders != nil { + trace.WroteHeaders() + } +} + +func traceGot100Continue(trace *httptrace.ClientTrace) { + if trace != nil && trace.Got100Continue != nil { + trace.Got100Continue() + } +} + +func traceWait100Continue(trace *httptrace.ClientTrace) { + if trace != nil && trace.Wait100Continue != nil { + trace.Wait100Continue() + } +} + +func traceWroteRequest(trace *httptrace.ClientTrace, err error) { + if trace != nil && trace.WroteRequest != nil { + trace.WroteRequest(httptrace.WroteRequestInfo{Err: err}) + } +} + +func traceFirstResponseByte(trace *httptrace.ClientTrace) { + if trace != nil && trace.GotFirstResponseByte != nil { + trace.GotFirstResponseByte() + } +} diff --git a/vendor/golang.org/x/net/http2/write.go b/vendor/golang.org/x/net/http2/write.go new file mode 100644 index 0000000..33f6139 --- /dev/null +++ b/vendor/golang.org/x/net/http2/write.go @@ -0,0 +1,370 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "bytes" + "fmt" + "log" + "net/http" + "net/url" + + "golang.org/x/net/http/httpguts" + "golang.org/x/net/http2/hpack" +) + +// writeFramer is implemented by any type that is used to write frames. +type writeFramer interface { + writeFrame(writeContext) error + + // staysWithinBuffer reports whether this writer promises that + // it will only write less than or equal to size bytes, and it + // won't Flush the write context. + staysWithinBuffer(size int) bool +} + +// writeContext is the interface needed by the various frame writer +// types below. All the writeFrame methods below are scheduled via the +// frame writing scheduler (see writeScheduler in writesched.go). +// +// This interface is implemented by *serverConn. +// +// TODO: decide whether to a) use this in the client code (which didn't +// end up using this yet, because it has a simpler design, not +// currently implementing priorities), or b) delete this and +// make the server code a bit more concrete. +type writeContext interface { + Framer() *Framer + Flush() error + CloseConn() error + // HeaderEncoder returns an HPACK encoder that writes to the + // returned buffer. + HeaderEncoder() (*hpack.Encoder, *bytes.Buffer) +} + +// writeEndsStream reports whether w writes a frame that will transition +// the stream to a half-closed local state. This returns false for RST_STREAM, +// which closes the entire stream (not just the local half). +func writeEndsStream(w writeFramer) bool { + switch v := w.(type) { + case *writeData: + return v.endStream + case *writeResHeaders: + return v.endStream + case nil: + // This can only happen if the caller reuses w after it's + // been intentionally nil'ed out to prevent use. Keep this + // here to catch future refactoring breaking it. + panic("writeEndsStream called on nil writeFramer") + } + return false +} + +type flushFrameWriter struct{} + +func (flushFrameWriter) writeFrame(ctx writeContext) error { + return ctx.Flush() +} + +func (flushFrameWriter) staysWithinBuffer(max int) bool { return false } + +type writeSettings []Setting + +func (s writeSettings) staysWithinBuffer(max int) bool { + const settingSize = 6 // uint16 + uint32 + return frameHeaderLen+settingSize*len(s) <= max + +} + +func (s writeSettings) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteSettings([]Setting(s)...) +} + +type writeGoAway struct { + maxStreamID uint32 + code ErrCode +} + +func (p *writeGoAway) writeFrame(ctx writeContext) error { + err := ctx.Framer().WriteGoAway(p.maxStreamID, p.code, nil) + ctx.Flush() // ignore error: we're hanging up on them anyway + return err +} + +func (*writeGoAway) staysWithinBuffer(max int) bool { return false } // flushes + +type writeData struct { + streamID uint32 + p []byte + endStream bool +} + +func (w *writeData) String() string { + return fmt.Sprintf("writeData(stream=%d, p=%d, endStream=%v)", w.streamID, len(w.p), w.endStream) +} + +func (w *writeData) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteData(w.streamID, w.endStream, w.p) +} + +func (w *writeData) staysWithinBuffer(max int) bool { + return frameHeaderLen+len(w.p) <= max +} + +// handlerPanicRST is the message sent from handler goroutines when +// the handler panics. +type handlerPanicRST struct { + StreamID uint32 +} + +func (hp handlerPanicRST) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteRSTStream(hp.StreamID, ErrCodeInternal) +} + +func (hp handlerPanicRST) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max } + +func (se StreamError) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteRSTStream(se.StreamID, se.Code) +} + +func (se StreamError) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max } + +type writePingAck struct{ pf *PingFrame } + +func (w writePingAck) writeFrame(ctx writeContext) error { + return ctx.Framer().WritePing(true, w.pf.Data) +} + +func (w writePingAck) staysWithinBuffer(max int) bool { return frameHeaderLen+len(w.pf.Data) <= max } + +type writeSettingsAck struct{} + +func (writeSettingsAck) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteSettingsAck() +} + +func (writeSettingsAck) staysWithinBuffer(max int) bool { return frameHeaderLen <= max } + +// splitHeaderBlock splits headerBlock into fragments so that each fragment fits +// in a single frame, then calls fn for each fragment. firstFrag/lastFrag are true +// for the first/last fragment, respectively. +func splitHeaderBlock(ctx writeContext, headerBlock []byte, fn func(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error) error { + // For now we're lazy and just pick the minimum MAX_FRAME_SIZE + // that all peers must support (16KB). Later we could care + // more and send larger frames if the peer advertised it, but + // there's little point. Most headers are small anyway (so we + // generally won't have CONTINUATION frames), and extra frames + // only waste 9 bytes anyway. + const maxFrameSize = 16384 + + first := true + for len(headerBlock) > 0 { + frag := headerBlock + if len(frag) > maxFrameSize { + frag = frag[:maxFrameSize] + } + headerBlock = headerBlock[len(frag):] + if err := fn(ctx, frag, first, len(headerBlock) == 0); err != nil { + return err + } + first = false + } + return nil +} + +// writeResHeaders is a request to write a HEADERS and 0+ CONTINUATION frames +// for HTTP response headers or trailers from a server handler. +type writeResHeaders struct { + streamID uint32 + httpResCode int // 0 means no ":status" line + h http.Header // may be nil + trailers []string // if non-nil, which keys of h to write. nil means all. + endStream bool + + date string + contentType string + contentLength string +} + +func encKV(enc *hpack.Encoder, k, v string) { + if VerboseLogs { + log.Printf("http2: server encoding header %q = %q", k, v) + } + enc.WriteField(hpack.HeaderField{Name: k, Value: v}) +} + +func (w *writeResHeaders) staysWithinBuffer(max int) bool { + // TODO: this is a common one. It'd be nice to return true + // here and get into the fast path if we could be clever and + // calculate the size fast enough, or at least a conservative + // upper bound that usually fires. (Maybe if w.h and + // w.trailers are nil, so we don't need to enumerate it.) + // Otherwise I'm afraid that just calculating the length to + // answer this question would be slower than the ~2µs benefit. + return false +} + +func (w *writeResHeaders) writeFrame(ctx writeContext) error { + enc, buf := ctx.HeaderEncoder() + buf.Reset() + + if w.httpResCode != 0 { + encKV(enc, ":status", httpCodeString(w.httpResCode)) + } + + encodeHeaders(enc, w.h, w.trailers) + + if w.contentType != "" { + encKV(enc, "content-type", w.contentType) + } + if w.contentLength != "" { + encKV(enc, "content-length", w.contentLength) + } + if w.date != "" { + encKV(enc, "date", w.date) + } + + headerBlock := buf.Bytes() + if len(headerBlock) == 0 && w.trailers == nil { + panic("unexpected empty hpack") + } + + return splitHeaderBlock(ctx, headerBlock, w.writeHeaderBlock) +} + +func (w *writeResHeaders) writeHeaderBlock(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error { + if firstFrag { + return ctx.Framer().WriteHeaders(HeadersFrameParam{ + StreamID: w.streamID, + BlockFragment: frag, + EndStream: w.endStream, + EndHeaders: lastFrag, + }) + } else { + return ctx.Framer().WriteContinuation(w.streamID, lastFrag, frag) + } +} + +// writePushPromise is a request to write a PUSH_PROMISE and 0+ CONTINUATION frames. +type writePushPromise struct { + streamID uint32 // pusher stream + method string // for :method + url *url.URL // for :scheme, :authority, :path + h http.Header + + // Creates an ID for a pushed stream. This runs on serveG just before + // the frame is written. The returned ID is copied to promisedID. + allocatePromisedID func() (uint32, error) + promisedID uint32 +} + +func (w *writePushPromise) staysWithinBuffer(max int) bool { + // TODO: see writeResHeaders.staysWithinBuffer + return false +} + +func (w *writePushPromise) writeFrame(ctx writeContext) error { + enc, buf := ctx.HeaderEncoder() + buf.Reset() + + encKV(enc, ":method", w.method) + encKV(enc, ":scheme", w.url.Scheme) + encKV(enc, ":authority", w.url.Host) + encKV(enc, ":path", w.url.RequestURI()) + encodeHeaders(enc, w.h, nil) + + headerBlock := buf.Bytes() + if len(headerBlock) == 0 { + panic("unexpected empty hpack") + } + + return splitHeaderBlock(ctx, headerBlock, w.writeHeaderBlock) +} + +func (w *writePushPromise) writeHeaderBlock(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error { + if firstFrag { + return ctx.Framer().WritePushPromise(PushPromiseParam{ + StreamID: w.streamID, + PromiseID: w.promisedID, + BlockFragment: frag, + EndHeaders: lastFrag, + }) + } else { + return ctx.Framer().WriteContinuation(w.streamID, lastFrag, frag) + } +} + +type write100ContinueHeadersFrame struct { + streamID uint32 +} + +func (w write100ContinueHeadersFrame) writeFrame(ctx writeContext) error { + enc, buf := ctx.HeaderEncoder() + buf.Reset() + encKV(enc, ":status", "100") + return ctx.Framer().WriteHeaders(HeadersFrameParam{ + StreamID: w.streamID, + BlockFragment: buf.Bytes(), + EndStream: false, + EndHeaders: true, + }) +} + +func (w write100ContinueHeadersFrame) staysWithinBuffer(max int) bool { + // Sloppy but conservative: + return 9+2*(len(":status")+len("100")) <= max +} + +type writeWindowUpdate struct { + streamID uint32 // or 0 for conn-level + n uint32 +} + +func (wu writeWindowUpdate) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max } + +func (wu writeWindowUpdate) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteWindowUpdate(wu.streamID, wu.n) +} + +// encodeHeaders encodes an http.Header. If keys is not nil, then (k, h[k]) +// is encoded only if k is in keys. +func encodeHeaders(enc *hpack.Encoder, h http.Header, keys []string) { + if keys == nil { + sorter := sorterPool.Get().(*sorter) + // Using defer here, since the returned keys from the + // sorter.Keys method is only valid until the sorter + // is returned: + defer sorterPool.Put(sorter) + keys = sorter.Keys(h) + } + for _, k := range keys { + vv := h[k] + k, ascii := lowerHeader(k) + if !ascii { + // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header + // field names have to be ASCII characters (just as in HTTP/1.x). + continue + } + if !validWireHeaderFieldName(k) { + // Skip it as backup paranoia. Per + // golang.org/issue/14048, these should + // already be rejected at a higher level. + continue + } + isTE := k == "transfer-encoding" + for _, v := range vv { + if !httpguts.ValidHeaderFieldValue(v) { + // TODO: return an error? golang.org/issue/14048 + // For now just omit it. + continue + } + // TODO: more of "8.1.2.2 Connection-Specific Header Fields" + if isTE && v != "trailers" { + continue + } + encKV(enc, k, v) + } + } +} diff --git a/vendor/golang.org/x/net/http2/writesched.go b/vendor/golang.org/x/net/http2/writesched.go new file mode 100644 index 0000000..f24d2b1 --- /dev/null +++ b/vendor/golang.org/x/net/http2/writesched.go @@ -0,0 +1,248 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import "fmt" + +// WriteScheduler is the interface implemented by HTTP/2 write schedulers. +// Methods are never called concurrently. +type WriteScheduler interface { + // OpenStream opens a new stream in the write scheduler. + // It is illegal to call this with streamID=0 or with a streamID that is + // already open -- the call may panic. + OpenStream(streamID uint32, options OpenStreamOptions) + + // CloseStream closes a stream in the write scheduler. Any frames queued on + // this stream should be discarded. It is illegal to call this on a stream + // that is not open -- the call may panic. + CloseStream(streamID uint32) + + // AdjustStream adjusts the priority of the given stream. This may be called + // on a stream that has not yet been opened or has been closed. Note that + // RFC 7540 allows PRIORITY frames to be sent on streams in any state. See: + // https://tools.ietf.org/html/rfc7540#section-5.1 + AdjustStream(streamID uint32, priority PriorityParam) + + // Push queues a frame in the scheduler. In most cases, this will not be + // called with wr.StreamID()!=0 unless that stream is currently open. The one + // exception is RST_STREAM frames, which may be sent on idle or closed streams. + Push(wr FrameWriteRequest) + + // Pop dequeues the next frame to write. Returns false if no frames can + // be written. Frames with a given wr.StreamID() are Pop'd in the same + // order they are Push'd. No frames should be discarded except by CloseStream. + Pop() (wr FrameWriteRequest, ok bool) +} + +// OpenStreamOptions specifies extra options for WriteScheduler.OpenStream. +type OpenStreamOptions struct { + // PusherID is zero if the stream was initiated by the client. Otherwise, + // PusherID names the stream that pushed the newly opened stream. + PusherID uint32 +} + +// FrameWriteRequest is a request to write a frame. +type FrameWriteRequest struct { + // write is the interface value that does the writing, once the + // WriteScheduler has selected this frame to write. The write + // functions are all defined in write.go. + write writeFramer + + // stream is the stream on which this frame will be written. + // nil for non-stream frames like PING and SETTINGS. + stream *stream + + // done, if non-nil, must be a buffered channel with space for + // 1 message and is sent the return value from write (or an + // earlier error) when the frame has been written. + done chan error +} + +// StreamID returns the id of the stream this frame will be written to. +// 0 is used for non-stream frames such as PING and SETTINGS. +func (wr FrameWriteRequest) StreamID() uint32 { + if wr.stream == nil { + if se, ok := wr.write.(StreamError); ok { + // (*serverConn).resetStream doesn't set + // stream because it doesn't necessarily have + // one. So special case this type of write + // message. + return se.StreamID + } + return 0 + } + return wr.stream.id +} + +// isControl reports whether wr is a control frame for MaxQueuedControlFrames +// purposes. That includes non-stream frames and RST_STREAM frames. +func (wr FrameWriteRequest) isControl() bool { + return wr.stream == nil +} + +// DataSize returns the number of flow control bytes that must be consumed +// to write this entire frame. This is 0 for non-DATA frames. +func (wr FrameWriteRequest) DataSize() int { + if wd, ok := wr.write.(*writeData); ok { + return len(wd.p) + } + return 0 +} + +// Consume consumes min(n, available) bytes from this frame, where available +// is the number of flow control bytes available on the stream. Consume returns +// 0, 1, or 2 frames, where the integer return value gives the number of frames +// returned. +// +// If flow control prevents consuming any bytes, this returns (_, _, 0). If +// the entire frame was consumed, this returns (wr, _, 1). Otherwise, this +// returns (consumed, rest, 2), where 'consumed' contains the consumed bytes and +// 'rest' contains the remaining bytes. The consumed bytes are deducted from the +// underlying stream's flow control budget. +func (wr FrameWriteRequest) Consume(n int32) (FrameWriteRequest, FrameWriteRequest, int) { + var empty FrameWriteRequest + + // Non-DATA frames are always consumed whole. + wd, ok := wr.write.(*writeData) + if !ok || len(wd.p) == 0 { + return wr, empty, 1 + } + + // Might need to split after applying limits. + allowed := wr.stream.flow.available() + if n < allowed { + allowed = n + } + if wr.stream.sc.maxFrameSize < allowed { + allowed = wr.stream.sc.maxFrameSize + } + if allowed <= 0 { + return empty, empty, 0 + } + if len(wd.p) > int(allowed) { + wr.stream.flow.take(allowed) + consumed := FrameWriteRequest{ + stream: wr.stream, + write: &writeData{ + streamID: wd.streamID, + p: wd.p[:allowed], + // Even if the original had endStream set, there + // are bytes remaining because len(wd.p) > allowed, + // so we know endStream is false. + endStream: false, + }, + // Our caller is blocking on the final DATA frame, not + // this intermediate frame, so no need to wait. + done: nil, + } + rest := FrameWriteRequest{ + stream: wr.stream, + write: &writeData{ + streamID: wd.streamID, + p: wd.p[allowed:], + endStream: wd.endStream, + }, + done: wr.done, + } + return consumed, rest, 2 + } + + // The frame is consumed whole. + // NB: This cast cannot overflow because allowed is <= math.MaxInt32. + wr.stream.flow.take(int32(len(wd.p))) + return wr, empty, 1 +} + +// String is for debugging only. +func (wr FrameWriteRequest) String() string { + var des string + if s, ok := wr.write.(fmt.Stringer); ok { + des = s.String() + } else { + des = fmt.Sprintf("%T", wr.write) + } + return fmt.Sprintf("[FrameWriteRequest stream=%d, ch=%v, writer=%v]", wr.StreamID(), wr.done != nil, des) +} + +// replyToWriter sends err to wr.done and panics if the send must block +// This does nothing if wr.done is nil. +func (wr *FrameWriteRequest) replyToWriter(err error) { + if wr.done == nil { + return + } + select { + case wr.done <- err: + default: + panic(fmt.Sprintf("unbuffered done channel passed in for type %T", wr.write)) + } + wr.write = nil // prevent use (assume it's tainted after wr.done send) +} + +// writeQueue is used by implementations of WriteScheduler. +type writeQueue struct { + s []FrameWriteRequest +} + +func (q *writeQueue) empty() bool { return len(q.s) == 0 } + +func (q *writeQueue) push(wr FrameWriteRequest) { + q.s = append(q.s, wr) +} + +func (q *writeQueue) shift() FrameWriteRequest { + if len(q.s) == 0 { + panic("invalid use of queue") + } + wr := q.s[0] + // TODO: less copy-happy queue. + copy(q.s, q.s[1:]) + q.s[len(q.s)-1] = FrameWriteRequest{} + q.s = q.s[:len(q.s)-1] + return wr +} + +// consume consumes up to n bytes from q.s[0]. If the frame is +// entirely consumed, it is removed from the queue. If the frame +// is partially consumed, the frame is kept with the consumed +// bytes removed. Returns true iff any bytes were consumed. +func (q *writeQueue) consume(n int32) (FrameWriteRequest, bool) { + if len(q.s) == 0 { + return FrameWriteRequest{}, false + } + consumed, rest, numresult := q.s[0].Consume(n) + switch numresult { + case 0: + return FrameWriteRequest{}, false + case 1: + q.shift() + case 2: + q.s[0] = rest + } + return consumed, true +} + +type writeQueuePool []*writeQueue + +// put inserts an unused writeQueue into the pool. +func (p *writeQueuePool) put(q *writeQueue) { + for i := range q.s { + q.s[i] = FrameWriteRequest{} + } + q.s = q.s[:0] + *p = append(*p, q) +} + +// get returns an empty writeQueue. +func (p *writeQueuePool) get() *writeQueue { + ln := len(*p) + if ln == 0 { + return new(writeQueue) + } + x := ln - 1 + q := (*p)[x] + (*p)[x] = nil + *p = (*p)[:x] + return q +} diff --git a/vendor/golang.org/x/net/http2/writesched_priority.go b/vendor/golang.org/x/net/http2/writesched_priority.go new file mode 100644 index 0000000..2618b2c --- /dev/null +++ b/vendor/golang.org/x/net/http2/writesched_priority.go @@ -0,0 +1,452 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "fmt" + "math" + "sort" +) + +// RFC 7540, Section 5.3.5: the default weight is 16. +const priorityDefaultWeight = 15 // 16 = 15 + 1 + +// PriorityWriteSchedulerConfig configures a priorityWriteScheduler. +type PriorityWriteSchedulerConfig struct { + // MaxClosedNodesInTree controls the maximum number of closed streams to + // retain in the priority tree. Setting this to zero saves a small amount + // of memory at the cost of performance. + // + // See RFC 7540, Section 5.3.4: + // "It is possible for a stream to become closed while prioritization + // information ... is in transit. ... This potentially creates suboptimal + // prioritization, since the stream could be given a priority that is + // different from what is intended. To avoid these problems, an endpoint + // SHOULD retain stream prioritization state for a period after streams + // become closed. The longer state is retained, the lower the chance that + // streams are assigned incorrect or default priority values." + MaxClosedNodesInTree int + + // MaxIdleNodesInTree controls the maximum number of idle streams to + // retain in the priority tree. Setting this to zero saves a small amount + // of memory at the cost of performance. + // + // See RFC 7540, Section 5.3.4: + // Similarly, streams that are in the "idle" state can be assigned + // priority or become a parent of other streams. This allows for the + // creation of a grouping node in the dependency tree, which enables + // more flexible expressions of priority. Idle streams begin with a + // default priority (Section 5.3.5). + MaxIdleNodesInTree int + + // ThrottleOutOfOrderWrites enables write throttling to help ensure that + // data is delivered in priority order. This works around a race where + // stream B depends on stream A and both streams are about to call Write + // to queue DATA frames. If B wins the race, a naive scheduler would eagerly + // write as much data from B as possible, but this is suboptimal because A + // is a higher-priority stream. With throttling enabled, we write a small + // amount of data from B to minimize the amount of bandwidth that B can + // steal from A. + ThrottleOutOfOrderWrites bool +} + +// NewPriorityWriteScheduler constructs a WriteScheduler that schedules +// frames by following HTTP/2 priorities as described in RFC 7540 Section 5.3. +// If cfg is nil, default options are used. +func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler { + if cfg == nil { + // For justification of these defaults, see: + // https://docs.google.com/document/d/1oLhNg1skaWD4_DtaoCxdSRN5erEXrH-KnLrMwEpOtFY + cfg = &PriorityWriteSchedulerConfig{ + MaxClosedNodesInTree: 10, + MaxIdleNodesInTree: 10, + ThrottleOutOfOrderWrites: false, + } + } + + ws := &priorityWriteScheduler{ + nodes: make(map[uint32]*priorityNode), + maxClosedNodesInTree: cfg.MaxClosedNodesInTree, + maxIdleNodesInTree: cfg.MaxIdleNodesInTree, + enableWriteThrottle: cfg.ThrottleOutOfOrderWrites, + } + ws.nodes[0] = &ws.root + if cfg.ThrottleOutOfOrderWrites { + ws.writeThrottleLimit = 1024 + } else { + ws.writeThrottleLimit = math.MaxInt32 + } + return ws +} + +type priorityNodeState int + +const ( + priorityNodeOpen priorityNodeState = iota + priorityNodeClosed + priorityNodeIdle +) + +// priorityNode is a node in an HTTP/2 priority tree. +// Each node is associated with a single stream ID. +// See RFC 7540, Section 5.3. +type priorityNode struct { + q writeQueue // queue of pending frames to write + id uint32 // id of the stream, or 0 for the root of the tree + weight uint8 // the actual weight is weight+1, so the value is in [1,256] + state priorityNodeState // open | closed | idle + bytes int64 // number of bytes written by this node, or 0 if closed + subtreeBytes int64 // sum(node.bytes) of all nodes in this subtree + + // These links form the priority tree. + parent *priorityNode + kids *priorityNode // start of the kids list + prev, next *priorityNode // doubly-linked list of siblings +} + +func (n *priorityNode) setParent(parent *priorityNode) { + if n == parent { + panic("setParent to self") + } + if n.parent == parent { + return + } + // Unlink from current parent. + if parent := n.parent; parent != nil { + if n.prev == nil { + parent.kids = n.next + } else { + n.prev.next = n.next + } + if n.next != nil { + n.next.prev = n.prev + } + } + // Link to new parent. + // If parent=nil, remove n from the tree. + // Always insert at the head of parent.kids (this is assumed by walkReadyInOrder). + n.parent = parent + if parent == nil { + n.next = nil + n.prev = nil + } else { + n.next = parent.kids + n.prev = nil + if n.next != nil { + n.next.prev = n + } + parent.kids = n + } +} + +func (n *priorityNode) addBytes(b int64) { + n.bytes += b + for ; n != nil; n = n.parent { + n.subtreeBytes += b + } +} + +// walkReadyInOrder iterates over the tree in priority order, calling f for each node +// with a non-empty write queue. When f returns true, this function returns true and the +// walk halts. tmp is used as scratch space for sorting. +// +// f(n, openParent) takes two arguments: the node to visit, n, and a bool that is true +// if any ancestor p of n is still open (ignoring the root node). +func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f func(*priorityNode, bool) bool) bool { + if !n.q.empty() && f(n, openParent) { + return true + } + if n.kids == nil { + return false + } + + // Don't consider the root "open" when updating openParent since + // we can't send data frames on the root stream (only control frames). + if n.id != 0 { + openParent = openParent || (n.state == priorityNodeOpen) + } + + // Common case: only one kid or all kids have the same weight. + // Some clients don't use weights; other clients (like web browsers) + // use mostly-linear priority trees. + w := n.kids.weight + needSort := false + for k := n.kids.next; k != nil; k = k.next { + if k.weight != w { + needSort = true + break + } + } + if !needSort { + for k := n.kids; k != nil; k = k.next { + if k.walkReadyInOrder(openParent, tmp, f) { + return true + } + } + return false + } + + // Uncommon case: sort the child nodes. We remove the kids from the parent, + // then re-insert after sorting so we can reuse tmp for future sort calls. + *tmp = (*tmp)[:0] + for n.kids != nil { + *tmp = append(*tmp, n.kids) + n.kids.setParent(nil) + } + sort.Sort(sortPriorityNodeSiblings(*tmp)) + for i := len(*tmp) - 1; i >= 0; i-- { + (*tmp)[i].setParent(n) // setParent inserts at the head of n.kids + } + for k := n.kids; k != nil; k = k.next { + if k.walkReadyInOrder(openParent, tmp, f) { + return true + } + } + return false +} + +type sortPriorityNodeSiblings []*priorityNode + +func (z sortPriorityNodeSiblings) Len() int { return len(z) } +func (z sortPriorityNodeSiblings) Swap(i, k int) { z[i], z[k] = z[k], z[i] } +func (z sortPriorityNodeSiblings) Less(i, k int) bool { + // Prefer the subtree that has sent fewer bytes relative to its weight. + // See sections 5.3.2 and 5.3.4. + wi, bi := float64(z[i].weight+1), float64(z[i].subtreeBytes) + wk, bk := float64(z[k].weight+1), float64(z[k].subtreeBytes) + if bi == 0 && bk == 0 { + return wi >= wk + } + if bk == 0 { + return false + } + return bi/bk <= wi/wk +} + +type priorityWriteScheduler struct { + // root is the root of the priority tree, where root.id = 0. + // The root queues control frames that are not associated with any stream. + root priorityNode + + // nodes maps stream ids to priority tree nodes. + nodes map[uint32]*priorityNode + + // maxID is the maximum stream id in nodes. + maxID uint32 + + // lists of nodes that have been closed or are idle, but are kept in + // the tree for improved prioritization. When the lengths exceed either + // maxClosedNodesInTree or maxIdleNodesInTree, old nodes are discarded. + closedNodes, idleNodes []*priorityNode + + // From the config. + maxClosedNodesInTree int + maxIdleNodesInTree int + writeThrottleLimit int32 + enableWriteThrottle bool + + // tmp is scratch space for priorityNode.walkReadyInOrder to reduce allocations. + tmp []*priorityNode + + // pool of empty queues for reuse. + queuePool writeQueuePool +} + +func (ws *priorityWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) { + // The stream may be currently idle but cannot be opened or closed. + if curr := ws.nodes[streamID]; curr != nil { + if curr.state != priorityNodeIdle { + panic(fmt.Sprintf("stream %d already opened", streamID)) + } + curr.state = priorityNodeOpen + return + } + + // RFC 7540, Section 5.3.5: + // "All streams are initially assigned a non-exclusive dependency on stream 0x0. + // Pushed streams initially depend on their associated stream. In both cases, + // streams are assigned a default weight of 16." + parent := ws.nodes[options.PusherID] + if parent == nil { + parent = &ws.root + } + n := &priorityNode{ + q: *ws.queuePool.get(), + id: streamID, + weight: priorityDefaultWeight, + state: priorityNodeOpen, + } + n.setParent(parent) + ws.nodes[streamID] = n + if streamID > ws.maxID { + ws.maxID = streamID + } +} + +func (ws *priorityWriteScheduler) CloseStream(streamID uint32) { + if streamID == 0 { + panic("violation of WriteScheduler interface: cannot close stream 0") + } + if ws.nodes[streamID] == nil { + panic(fmt.Sprintf("violation of WriteScheduler interface: unknown stream %d", streamID)) + } + if ws.nodes[streamID].state != priorityNodeOpen { + panic(fmt.Sprintf("violation of WriteScheduler interface: stream %d already closed", streamID)) + } + + n := ws.nodes[streamID] + n.state = priorityNodeClosed + n.addBytes(-n.bytes) + + q := n.q + ws.queuePool.put(&q) + n.q.s = nil + if ws.maxClosedNodesInTree > 0 { + ws.addClosedOrIdleNode(&ws.closedNodes, ws.maxClosedNodesInTree, n) + } else { + ws.removeNode(n) + } +} + +func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) { + if streamID == 0 { + panic("adjustPriority on root") + } + + // If streamID does not exist, there are two cases: + // - A closed stream that has been removed (this will have ID <= maxID) + // - An idle stream that is being used for "grouping" (this will have ID > maxID) + n := ws.nodes[streamID] + if n == nil { + if streamID <= ws.maxID || ws.maxIdleNodesInTree == 0 { + return + } + ws.maxID = streamID + n = &priorityNode{ + q: *ws.queuePool.get(), + id: streamID, + weight: priorityDefaultWeight, + state: priorityNodeIdle, + } + n.setParent(&ws.root) + ws.nodes[streamID] = n + ws.addClosedOrIdleNode(&ws.idleNodes, ws.maxIdleNodesInTree, n) + } + + // Section 5.3.1: A dependency on a stream that is not currently in the tree + // results in that stream being given a default priority (Section 5.3.5). + parent := ws.nodes[priority.StreamDep] + if parent == nil { + n.setParent(&ws.root) + n.weight = priorityDefaultWeight + return + } + + // Ignore if the client tries to make a node its own parent. + if n == parent { + return + } + + // Section 5.3.3: + // "If a stream is made dependent on one of its own dependencies, the + // formerly dependent stream is first moved to be dependent on the + // reprioritized stream's previous parent. The moved dependency retains + // its weight." + // + // That is: if parent depends on n, move parent to depend on n.parent. + for x := parent.parent; x != nil; x = x.parent { + if x == n { + parent.setParent(n.parent) + break + } + } + + // Section 5.3.3: The exclusive flag causes the stream to become the sole + // dependency of its parent stream, causing other dependencies to become + // dependent on the exclusive stream. + if priority.Exclusive { + k := parent.kids + for k != nil { + next := k.next + if k != n { + k.setParent(n) + } + k = next + } + } + + n.setParent(parent) + n.weight = priority.Weight +} + +func (ws *priorityWriteScheduler) Push(wr FrameWriteRequest) { + var n *priorityNode + if id := wr.StreamID(); id == 0 { + n = &ws.root + } else { + n = ws.nodes[id] + if n == nil { + // id is an idle or closed stream. wr should not be a HEADERS or + // DATA frame. However, wr can be a RST_STREAM. In this case, we + // push wr onto the root, rather than creating a new priorityNode, + // since RST_STREAM is tiny and the stream's priority is unknown + // anyway. See issue #17919. + if wr.DataSize() > 0 { + panic("add DATA on non-open stream") + } + n = &ws.root + } + } + n.q.push(wr) +} + +func (ws *priorityWriteScheduler) Pop() (wr FrameWriteRequest, ok bool) { + ws.root.walkReadyInOrder(false, &ws.tmp, func(n *priorityNode, openParent bool) bool { + limit := int32(math.MaxInt32) + if openParent { + limit = ws.writeThrottleLimit + } + wr, ok = n.q.consume(limit) + if !ok { + return false + } + n.addBytes(int64(wr.DataSize())) + // If B depends on A and B continuously has data available but A + // does not, gradually increase the throttling limit to allow B to + // steal more and more bandwidth from A. + if openParent { + ws.writeThrottleLimit += 1024 + if ws.writeThrottleLimit < 0 { + ws.writeThrottleLimit = math.MaxInt32 + } + } else if ws.enableWriteThrottle { + ws.writeThrottleLimit = 1024 + } + return true + }) + return wr, ok +} + +func (ws *priorityWriteScheduler) addClosedOrIdleNode(list *[]*priorityNode, maxSize int, n *priorityNode) { + if maxSize == 0 { + return + } + if len(*list) == maxSize { + // Remove the oldest node, then shift left. + ws.removeNode((*list)[0]) + x := (*list)[1:] + copy(*list, x) + *list = (*list)[:len(x)] + } + *list = append(*list, n) +} + +func (ws *priorityWriteScheduler) removeNode(n *priorityNode) { + for k := n.kids; k != nil; k = k.next { + k.setParent(n.parent) + } + n.setParent(nil) + delete(ws.nodes, n.id) +} diff --git a/vendor/golang.org/x/net/http2/writesched_random.go b/vendor/golang.org/x/net/http2/writesched_random.go new file mode 100644 index 0000000..9a7b9e5 --- /dev/null +++ b/vendor/golang.org/x/net/http2/writesched_random.go @@ -0,0 +1,77 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import "math" + +// NewRandomWriteScheduler constructs a WriteScheduler that ignores HTTP/2 +// priorities. Control frames like SETTINGS and PING are written before DATA +// frames, but if no control frames are queued and multiple streams have queued +// HEADERS or DATA frames, Pop selects a ready stream arbitrarily. +func NewRandomWriteScheduler() WriteScheduler { + return &randomWriteScheduler{sq: make(map[uint32]*writeQueue)} +} + +type randomWriteScheduler struct { + // zero are frames not associated with a specific stream. + zero writeQueue + + // sq contains the stream-specific queues, keyed by stream ID. + // When a stream is idle, closed, or emptied, it's deleted + // from the map. + sq map[uint32]*writeQueue + + // pool of empty queues for reuse. + queuePool writeQueuePool +} + +func (ws *randomWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) { + // no-op: idle streams are not tracked +} + +func (ws *randomWriteScheduler) CloseStream(streamID uint32) { + q, ok := ws.sq[streamID] + if !ok { + return + } + delete(ws.sq, streamID) + ws.queuePool.put(q) +} + +func (ws *randomWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) { + // no-op: priorities are ignored +} + +func (ws *randomWriteScheduler) Push(wr FrameWriteRequest) { + id := wr.StreamID() + if id == 0 { + ws.zero.push(wr) + return + } + q, ok := ws.sq[id] + if !ok { + q = ws.queuePool.get() + ws.sq[id] = q + } + q.push(wr) +} + +func (ws *randomWriteScheduler) Pop() (FrameWriteRequest, bool) { + // Control frames first. + if !ws.zero.empty() { + return ws.zero.shift(), true + } + // Iterate over all non-idle streams until finding one that can be consumed. + for streamID, q := range ws.sq { + if wr, ok := q.consume(math.MaxInt32); ok { + if q.empty() { + delete(ws.sq, streamID) + ws.queuePool.put(q) + } + return wr, true + } + } + return FrameWriteRequest{}, false +} diff --git a/vendor/golang.org/x/net/idna/idna10.0.0.go b/vendor/golang.org/x/net/idna/idna10.0.0.go new file mode 100644 index 0000000..5208ba6 --- /dev/null +++ b/vendor/golang.org/x/net/idna/idna10.0.0.go @@ -0,0 +1,770 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.10 +// +build go1.10 + +// Package idna implements IDNA2008 using the compatibility processing +// defined by UTS (Unicode Technical Standard) #46, which defines a standard to +// deal with the transition from IDNA2003. +// +// IDNA2008 (Internationalized Domain Names for Applications), is defined in RFC +// 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894. +// UTS #46 is defined in https://www.unicode.org/reports/tr46. +// See https://unicode.org/cldr/utility/idna.jsp for a visualization of the +// differences between these two standards. +package idna // import "golang.org/x/net/idna" + +import ( + "fmt" + "strings" + "unicode/utf8" + + "golang.org/x/text/secure/bidirule" + "golang.org/x/text/unicode/bidi" + "golang.org/x/text/unicode/norm" +) + +// NOTE: Unlike common practice in Go APIs, the functions will return a +// sanitized domain name in case of errors. Browsers sometimes use a partially +// evaluated string as lookup. +// TODO: the current error handling is, in my opinion, the least opinionated. +// Other strategies are also viable, though: +// Option 1) Return an empty string in case of error, but allow the user to +// specify explicitly which errors to ignore. +// Option 2) Return the partially evaluated string if it is itself a valid +// string, otherwise return the empty string in case of error. +// Option 3) Option 1 and 2. +// Option 4) Always return an empty string for now and implement Option 1 as +// needed, and document that the return string may not be empty in case of +// error in the future. +// I think Option 1 is best, but it is quite opinionated. + +// ToASCII is a wrapper for Punycode.ToASCII. +func ToASCII(s string) (string, error) { + return Punycode.process(s, true) +} + +// ToUnicode is a wrapper for Punycode.ToUnicode. +func ToUnicode(s string) (string, error) { + return Punycode.process(s, false) +} + +// An Option configures a Profile at creation time. +type Option func(*options) + +// Transitional sets a Profile to use the Transitional mapping as defined in UTS +// #46. This will cause, for example, "ß" to be mapped to "ss". Using the +// transitional mapping provides a compromise between IDNA2003 and IDNA2008 +// compatibility. It is used by most browsers when resolving domain names. This +// option is only meaningful if combined with MapForLookup. +func Transitional(transitional bool) Option { + return func(o *options) { o.transitional = true } +} + +// VerifyDNSLength sets whether a Profile should fail if any of the IDN parts +// are longer than allowed by the RFC. +// +// This option corresponds to the VerifyDnsLength flag in UTS #46. +func VerifyDNSLength(verify bool) Option { + return func(o *options) { o.verifyDNSLength = verify } +} + +// RemoveLeadingDots removes leading label separators. Leading runes that map to +// dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well. +func RemoveLeadingDots(remove bool) Option { + return func(o *options) { o.removeLeadingDots = remove } +} + +// ValidateLabels sets whether to check the mandatory label validation criteria +// as defined in Section 5.4 of RFC 5891. This includes testing for correct use +// of hyphens ('-'), normalization, validity of runes, and the context rules. +// In particular, ValidateLabels also sets the CheckHyphens and CheckJoiners flags +// in UTS #46. +func ValidateLabels(enable bool) Option { + return func(o *options) { + // Don't override existing mappings, but set one that at least checks + // normalization if it is not set. + if o.mapping == nil && enable { + o.mapping = normalize + } + o.trie = trie + o.checkJoiners = enable + o.checkHyphens = enable + if enable { + o.fromPuny = validateFromPunycode + } else { + o.fromPuny = nil + } + } +} + +// CheckHyphens sets whether to check for correct use of hyphens ('-') in +// labels. Most web browsers do not have this option set, since labels such as +// "r3---sn-apo3qvuoxuxbt-j5pe" are in common use. +// +// This option corresponds to the CheckHyphens flag in UTS #46. +func CheckHyphens(enable bool) Option { + return func(o *options) { o.checkHyphens = enable } +} + +// CheckJoiners sets whether to check the ContextJ rules as defined in Appendix +// A of RFC 5892, concerning the use of joiner runes. +// +// This option corresponds to the CheckJoiners flag in UTS #46. +func CheckJoiners(enable bool) Option { + return func(o *options) { + o.trie = trie + o.checkJoiners = enable + } +} + +// StrictDomainName limits the set of permissible ASCII characters to those +// allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the +// hyphen). This is set by default for MapForLookup and ValidateForRegistration, +// but is only useful if ValidateLabels is set. +// +// This option is useful, for instance, for browsers that allow characters +// outside this range, for example a '_' (U+005F LOW LINE). See +// http://www.rfc-editor.org/std/std3.txt for more details. +// +// This option corresponds to the UseSTD3ASCIIRules flag in UTS #46. +func StrictDomainName(use bool) Option { + return func(o *options) { o.useSTD3Rules = use } +} + +// NOTE: the following options pull in tables. The tables should not be linked +// in as long as the options are not used. + +// BidiRule enables the Bidi rule as defined in RFC 5893. Any application +// that relies on proper validation of labels should include this rule. +// +// This option corresponds to the CheckBidi flag in UTS #46. +func BidiRule() Option { + return func(o *options) { o.bidirule = bidirule.ValidString } +} + +// ValidateForRegistration sets validation options to verify that a given IDN is +// properly formatted for registration as defined by Section 4 of RFC 5891. +func ValidateForRegistration() Option { + return func(o *options) { + o.mapping = validateRegistration + StrictDomainName(true)(o) + ValidateLabels(true)(o) + VerifyDNSLength(true)(o) + BidiRule()(o) + } +} + +// MapForLookup sets validation and mapping options such that a given IDN is +// transformed for domain name lookup according to the requirements set out in +// Section 5 of RFC 5891. The mappings follow the recommendations of RFC 5894, +// RFC 5895 and UTS 46. It does not add the Bidi Rule. Use the BidiRule option +// to add this check. +// +// The mappings include normalization and mapping case, width and other +// compatibility mappings. +func MapForLookup() Option { + return func(o *options) { + o.mapping = validateAndMap + StrictDomainName(true)(o) + ValidateLabels(true)(o) + } +} + +type options struct { + transitional bool + useSTD3Rules bool + checkHyphens bool + checkJoiners bool + verifyDNSLength bool + removeLeadingDots bool + + trie *idnaTrie + + // fromPuny calls validation rules when converting A-labels to U-labels. + fromPuny func(p *Profile, s string) error + + // mapping implements a validation and mapping step as defined in RFC 5895 + // or UTS 46, tailored to, for example, domain registration or lookup. + mapping func(p *Profile, s string) (mapped string, isBidi bool, err error) + + // bidirule, if specified, checks whether s conforms to the Bidi Rule + // defined in RFC 5893. + bidirule func(s string) bool +} + +// A Profile defines the configuration of an IDNA mapper. +type Profile struct { + options +} + +func apply(o *options, opts []Option) { + for _, f := range opts { + f(o) + } +} + +// New creates a new Profile. +// +// With no options, the returned Profile is the most permissive and equals the +// Punycode Profile. Options can be passed to further restrict the Profile. The +// MapForLookup and ValidateForRegistration options set a collection of options, +// for lookup and registration purposes respectively, which can be tailored by +// adding more fine-grained options, where later options override earlier +// options. +func New(o ...Option) *Profile { + p := &Profile{} + apply(&p.options, o) + return p +} + +// ToASCII converts a domain or domain label to its ASCII form. For example, +// ToASCII("bücher.example.com") is "xn--bcher-kva.example.com", and +// ToASCII("golang") is "golang". If an error is encountered it will return +// an error and a (partially) processed result. +func (p *Profile) ToASCII(s string) (string, error) { + return p.process(s, true) +} + +// ToUnicode converts a domain or domain label to its Unicode form. For example, +// ToUnicode("xn--bcher-kva.example.com") is "bücher.example.com", and +// ToUnicode("golang") is "golang". If an error is encountered it will return +// an error and a (partially) processed result. +func (p *Profile) ToUnicode(s string) (string, error) { + pp := *p + pp.transitional = false + return pp.process(s, false) +} + +// String reports a string with a description of the profile for debugging +// purposes. The string format may change with different versions. +func (p *Profile) String() string { + s := "" + if p.transitional { + s = "Transitional" + } else { + s = "NonTransitional" + } + if p.useSTD3Rules { + s += ":UseSTD3Rules" + } + if p.checkHyphens { + s += ":CheckHyphens" + } + if p.checkJoiners { + s += ":CheckJoiners" + } + if p.verifyDNSLength { + s += ":VerifyDNSLength" + } + return s +} + +var ( + // Punycode is a Profile that does raw punycode processing with a minimum + // of validation. + Punycode *Profile = punycode + + // Lookup is the recommended profile for looking up domain names, according + // to Section 5 of RFC 5891. The exact configuration of this profile may + // change over time. + Lookup *Profile = lookup + + // Display is the recommended profile for displaying domain names. + // The configuration of this profile may change over time. + Display *Profile = display + + // Registration is the recommended profile for checking whether a given + // IDN is valid for registration, according to Section 4 of RFC 5891. + Registration *Profile = registration + + punycode = &Profile{} + lookup = &Profile{options{ + transitional: true, + useSTD3Rules: true, + checkHyphens: true, + checkJoiners: true, + trie: trie, + fromPuny: validateFromPunycode, + mapping: validateAndMap, + bidirule: bidirule.ValidString, + }} + display = &Profile{options{ + useSTD3Rules: true, + checkHyphens: true, + checkJoiners: true, + trie: trie, + fromPuny: validateFromPunycode, + mapping: validateAndMap, + bidirule: bidirule.ValidString, + }} + registration = &Profile{options{ + useSTD3Rules: true, + verifyDNSLength: true, + checkHyphens: true, + checkJoiners: true, + trie: trie, + fromPuny: validateFromPunycode, + mapping: validateRegistration, + bidirule: bidirule.ValidString, + }} + + // TODO: profiles + // Register: recommended for approving domain names: don't do any mappings + // but rather reject on invalid input. Bundle or block deviation characters. +) + +type labelError struct{ label, code_ string } + +func (e labelError) code() string { return e.code_ } +func (e labelError) Error() string { + return fmt.Sprintf("idna: invalid label %q", e.label) +} + +type runeError rune + +func (e runeError) code() string { return "P1" } +func (e runeError) Error() string { + return fmt.Sprintf("idna: disallowed rune %U", e) +} + +// process implements the algorithm described in section 4 of UTS #46, +// see https://www.unicode.org/reports/tr46. +func (p *Profile) process(s string, toASCII bool) (string, error) { + var err error + var isBidi bool + if p.mapping != nil { + s, isBidi, err = p.mapping(p, s) + } + // Remove leading empty labels. + if p.removeLeadingDots { + for ; len(s) > 0 && s[0] == '.'; s = s[1:] { + } + } + // TODO: allow for a quick check of the tables data. + // It seems like we should only create this error on ToASCII, but the + // UTS 46 conformance tests suggests we should always check this. + if err == nil && p.verifyDNSLength && s == "" { + err = &labelError{s, "A4"} + } + labels := labelIter{orig: s} + for ; !labels.done(); labels.next() { + label := labels.label() + if label == "" { + // Empty labels are not okay. The label iterator skips the last + // label if it is empty. + if err == nil && p.verifyDNSLength { + err = &labelError{s, "A4"} + } + continue + } + if strings.HasPrefix(label, acePrefix) { + u, err2 := decode(label[len(acePrefix):]) + if err2 != nil { + if err == nil { + err = err2 + } + // Spec says keep the old label. + continue + } + isBidi = isBidi || bidirule.DirectionString(u) != bidi.LeftToRight + labels.set(u) + if err == nil && p.fromPuny != nil { + err = p.fromPuny(p, u) + } + if err == nil { + // This should be called on NonTransitional, according to the + // spec, but that currently does not have any effect. Use the + // original profile to preserve options. + err = p.validateLabel(u) + } + } else if err == nil { + err = p.validateLabel(label) + } + } + if isBidi && p.bidirule != nil && err == nil { + for labels.reset(); !labels.done(); labels.next() { + if !p.bidirule(labels.label()) { + err = &labelError{s, "B"} + break + } + } + } + if toASCII { + for labels.reset(); !labels.done(); labels.next() { + label := labels.label() + if !ascii(label) { + a, err2 := encode(acePrefix, label) + if err == nil { + err = err2 + } + label = a + labels.set(a) + } + n := len(label) + if p.verifyDNSLength && err == nil && (n == 0 || n > 63) { + err = &labelError{label, "A4"} + } + } + } + s = labels.result() + if toASCII && p.verifyDNSLength && err == nil { + // Compute the length of the domain name minus the root label and its dot. + n := len(s) + if n > 0 && s[n-1] == '.' { + n-- + } + if len(s) < 1 || n > 253 { + err = &labelError{s, "A4"} + } + } + return s, err +} + +func normalize(p *Profile, s string) (mapped string, isBidi bool, err error) { + // TODO: consider first doing a quick check to see if any of these checks + // need to be done. This will make it slower in the general case, but + // faster in the common case. + mapped = norm.NFC.String(s) + isBidi = bidirule.DirectionString(mapped) == bidi.RightToLeft + return mapped, isBidi, nil +} + +func validateRegistration(p *Profile, s string) (idem string, bidi bool, err error) { + // TODO: filter need for normalization in loop below. + if !norm.NFC.IsNormalString(s) { + return s, false, &labelError{s, "V1"} + } + for i := 0; i < len(s); { + v, sz := trie.lookupString(s[i:]) + if sz == 0 { + return s, bidi, runeError(utf8.RuneError) + } + bidi = bidi || info(v).isBidi(s[i:]) + // Copy bytes not copied so far. + switch p.simplify(info(v).category()) { + // TODO: handle the NV8 defined in the Unicode idna data set to allow + // for strict conformance to IDNA2008. + case valid, deviation: + case disallowed, mapped, unknown, ignored: + r, _ := utf8.DecodeRuneInString(s[i:]) + return s, bidi, runeError(r) + } + i += sz + } + return s, bidi, nil +} + +func (c info) isBidi(s string) bool { + if !c.isMapped() { + return c&attributesMask == rtl + } + // TODO: also store bidi info for mapped data. This is possible, but a bit + // cumbersome and not for the common case. + p, _ := bidi.LookupString(s) + switch p.Class() { + case bidi.R, bidi.AL, bidi.AN: + return true + } + return false +} + +func validateAndMap(p *Profile, s string) (vm string, bidi bool, err error) { + var ( + b []byte + k int + ) + // combinedInfoBits contains the or-ed bits of all runes. We use this + // to derive the mayNeedNorm bit later. This may trigger normalization + // overeagerly, but it will not do so in the common case. The end result + // is another 10% saving on BenchmarkProfile for the common case. + var combinedInfoBits info + for i := 0; i < len(s); { + v, sz := trie.lookupString(s[i:]) + if sz == 0 { + b = append(b, s[k:i]...) + b = append(b, "\ufffd"...) + k = len(s) + if err == nil { + err = runeError(utf8.RuneError) + } + break + } + combinedInfoBits |= info(v) + bidi = bidi || info(v).isBidi(s[i:]) + start := i + i += sz + // Copy bytes not copied so far. + switch p.simplify(info(v).category()) { + case valid: + continue + case disallowed: + if err == nil { + r, _ := utf8.DecodeRuneInString(s[start:]) + err = runeError(r) + } + continue + case mapped, deviation: + b = append(b, s[k:start]...) + b = info(v).appendMapping(b, s[start:i]) + case ignored: + b = append(b, s[k:start]...) + // drop the rune + case unknown: + b = append(b, s[k:start]...) + b = append(b, "\ufffd"...) + } + k = i + } + if k == 0 { + // No changes so far. + if combinedInfoBits&mayNeedNorm != 0 { + s = norm.NFC.String(s) + } + } else { + b = append(b, s[k:]...) + if norm.NFC.QuickSpan(b) != len(b) { + b = norm.NFC.Bytes(b) + } + // TODO: the punycode converters require strings as input. + s = string(b) + } + return s, bidi, err +} + +// A labelIter allows iterating over domain name labels. +type labelIter struct { + orig string + slice []string + curStart int + curEnd int + i int +} + +func (l *labelIter) reset() { + l.curStart = 0 + l.curEnd = 0 + l.i = 0 +} + +func (l *labelIter) done() bool { + return l.curStart >= len(l.orig) +} + +func (l *labelIter) result() string { + if l.slice != nil { + return strings.Join(l.slice, ".") + } + return l.orig +} + +func (l *labelIter) label() string { + if l.slice != nil { + return l.slice[l.i] + } + p := strings.IndexByte(l.orig[l.curStart:], '.') + l.curEnd = l.curStart + p + if p == -1 { + l.curEnd = len(l.orig) + } + return l.orig[l.curStart:l.curEnd] +} + +// next sets the value to the next label. It skips the last label if it is empty. +func (l *labelIter) next() { + l.i++ + if l.slice != nil { + if l.i >= len(l.slice) || l.i == len(l.slice)-1 && l.slice[l.i] == "" { + l.curStart = len(l.orig) + } + } else { + l.curStart = l.curEnd + 1 + if l.curStart == len(l.orig)-1 && l.orig[l.curStart] == '.' { + l.curStart = len(l.orig) + } + } +} + +func (l *labelIter) set(s string) { + if l.slice == nil { + l.slice = strings.Split(l.orig, ".") + } + l.slice[l.i] = s +} + +// acePrefix is the ASCII Compatible Encoding prefix. +const acePrefix = "xn--" + +func (p *Profile) simplify(cat category) category { + switch cat { + case disallowedSTD3Mapped: + if p.useSTD3Rules { + cat = disallowed + } else { + cat = mapped + } + case disallowedSTD3Valid: + if p.useSTD3Rules { + cat = disallowed + } else { + cat = valid + } + case deviation: + if !p.transitional { + cat = valid + } + case validNV8, validXV8: + // TODO: handle V2008 + cat = valid + } + return cat +} + +func validateFromPunycode(p *Profile, s string) error { + if !norm.NFC.IsNormalString(s) { + return &labelError{s, "V1"} + } + // TODO: detect whether string may have to be normalized in the following + // loop. + for i := 0; i < len(s); { + v, sz := trie.lookupString(s[i:]) + if sz == 0 { + return runeError(utf8.RuneError) + } + if c := p.simplify(info(v).category()); c != valid && c != deviation { + return &labelError{s, "V6"} + } + i += sz + } + return nil +} + +const ( + zwnj = "\u200c" + zwj = "\u200d" +) + +type joinState int8 + +const ( + stateStart joinState = iota + stateVirama + stateBefore + stateBeforeVirama + stateAfter + stateFAIL +) + +var joinStates = [][numJoinTypes]joinState{ + stateStart: { + joiningL: stateBefore, + joiningD: stateBefore, + joinZWNJ: stateFAIL, + joinZWJ: stateFAIL, + joinVirama: stateVirama, + }, + stateVirama: { + joiningL: stateBefore, + joiningD: stateBefore, + }, + stateBefore: { + joiningL: stateBefore, + joiningD: stateBefore, + joiningT: stateBefore, + joinZWNJ: stateAfter, + joinZWJ: stateFAIL, + joinVirama: stateBeforeVirama, + }, + stateBeforeVirama: { + joiningL: stateBefore, + joiningD: stateBefore, + joiningT: stateBefore, + }, + stateAfter: { + joiningL: stateFAIL, + joiningD: stateBefore, + joiningT: stateAfter, + joiningR: stateStart, + joinZWNJ: stateFAIL, + joinZWJ: stateFAIL, + joinVirama: stateAfter, // no-op as we can't accept joiners here + }, + stateFAIL: { + 0: stateFAIL, + joiningL: stateFAIL, + joiningD: stateFAIL, + joiningT: stateFAIL, + joiningR: stateFAIL, + joinZWNJ: stateFAIL, + joinZWJ: stateFAIL, + joinVirama: stateFAIL, + }, +} + +// validateLabel validates the criteria from Section 4.1. Item 1, 4, and 6 are +// already implicitly satisfied by the overall implementation. +func (p *Profile) validateLabel(s string) (err error) { + if s == "" { + if p.verifyDNSLength { + return &labelError{s, "A4"} + } + return nil + } + if p.checkHyphens { + if len(s) > 4 && s[2] == '-' && s[3] == '-' { + return &labelError{s, "V2"} + } + if s[0] == '-' || s[len(s)-1] == '-' { + return &labelError{s, "V3"} + } + } + if !p.checkJoiners { + return nil + } + trie := p.trie // p.checkJoiners is only set if trie is set. + // TODO: merge the use of this in the trie. + v, sz := trie.lookupString(s) + x := info(v) + if x.isModifier() { + return &labelError{s, "V5"} + } + // Quickly return in the absence of zero-width (non) joiners. + if strings.Index(s, zwj) == -1 && strings.Index(s, zwnj) == -1 { + return nil + } + st := stateStart + for i := 0; ; { + jt := x.joinType() + if s[i:i+sz] == zwj { + jt = joinZWJ + } else if s[i:i+sz] == zwnj { + jt = joinZWNJ + } + st = joinStates[st][jt] + if x.isViramaModifier() { + st = joinStates[st][joinVirama] + } + if i += sz; i == len(s) { + break + } + v, sz = trie.lookupString(s[i:]) + x = info(v) + } + if st == stateFAIL || st == stateAfter { + return &labelError{s, "C"} + } + return nil +} + +func ascii(s string) bool { + for i := 0; i < len(s); i++ { + if s[i] >= utf8.RuneSelf { + return false + } + } + return true +} diff --git a/vendor/golang.org/x/net/idna/idna9.0.0.go b/vendor/golang.org/x/net/idna/idna9.0.0.go new file mode 100644 index 0000000..55f718f --- /dev/null +++ b/vendor/golang.org/x/net/idna/idna9.0.0.go @@ -0,0 +1,718 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.10 +// +build !go1.10 + +// Package idna implements IDNA2008 using the compatibility processing +// defined by UTS (Unicode Technical Standard) #46, which defines a standard to +// deal with the transition from IDNA2003. +// +// IDNA2008 (Internationalized Domain Names for Applications), is defined in RFC +// 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894. +// UTS #46 is defined in https://www.unicode.org/reports/tr46. +// See https://unicode.org/cldr/utility/idna.jsp for a visualization of the +// differences between these two standards. +package idna // import "golang.org/x/net/idna" + +import ( + "fmt" + "strings" + "unicode/utf8" + + "golang.org/x/text/secure/bidirule" + "golang.org/x/text/unicode/norm" +) + +// NOTE: Unlike common practice in Go APIs, the functions will return a +// sanitized domain name in case of errors. Browsers sometimes use a partially +// evaluated string as lookup. +// TODO: the current error handling is, in my opinion, the least opinionated. +// Other strategies are also viable, though: +// Option 1) Return an empty string in case of error, but allow the user to +// specify explicitly which errors to ignore. +// Option 2) Return the partially evaluated string if it is itself a valid +// string, otherwise return the empty string in case of error. +// Option 3) Option 1 and 2. +// Option 4) Always return an empty string for now and implement Option 1 as +// needed, and document that the return string may not be empty in case of +// error in the future. +// I think Option 1 is best, but it is quite opinionated. + +// ToASCII is a wrapper for Punycode.ToASCII. +func ToASCII(s string) (string, error) { + return Punycode.process(s, true) +} + +// ToUnicode is a wrapper for Punycode.ToUnicode. +func ToUnicode(s string) (string, error) { + return Punycode.process(s, false) +} + +// An Option configures a Profile at creation time. +type Option func(*options) + +// Transitional sets a Profile to use the Transitional mapping as defined in UTS +// #46. This will cause, for example, "ß" to be mapped to "ss". Using the +// transitional mapping provides a compromise between IDNA2003 and IDNA2008 +// compatibility. It is used by most browsers when resolving domain names. This +// option is only meaningful if combined with MapForLookup. +func Transitional(transitional bool) Option { + return func(o *options) { o.transitional = true } +} + +// VerifyDNSLength sets whether a Profile should fail if any of the IDN parts +// are longer than allowed by the RFC. +// +// This option corresponds to the VerifyDnsLength flag in UTS #46. +func VerifyDNSLength(verify bool) Option { + return func(o *options) { o.verifyDNSLength = verify } +} + +// RemoveLeadingDots removes leading label separators. Leading runes that map to +// dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well. +func RemoveLeadingDots(remove bool) Option { + return func(o *options) { o.removeLeadingDots = remove } +} + +// ValidateLabels sets whether to check the mandatory label validation criteria +// as defined in Section 5.4 of RFC 5891. This includes testing for correct use +// of hyphens ('-'), normalization, validity of runes, and the context rules. +// In particular, ValidateLabels also sets the CheckHyphens and CheckJoiners flags +// in UTS #46. +func ValidateLabels(enable bool) Option { + return func(o *options) { + // Don't override existing mappings, but set one that at least checks + // normalization if it is not set. + if o.mapping == nil && enable { + o.mapping = normalize + } + o.trie = trie + o.checkJoiners = enable + o.checkHyphens = enable + if enable { + o.fromPuny = validateFromPunycode + } else { + o.fromPuny = nil + } + } +} + +// CheckHyphens sets whether to check for correct use of hyphens ('-') in +// labels. Most web browsers do not have this option set, since labels such as +// "r3---sn-apo3qvuoxuxbt-j5pe" are in common use. +// +// This option corresponds to the CheckHyphens flag in UTS #46. +func CheckHyphens(enable bool) Option { + return func(o *options) { o.checkHyphens = enable } +} + +// CheckJoiners sets whether to check the ContextJ rules as defined in Appendix +// A of RFC 5892, concerning the use of joiner runes. +// +// This option corresponds to the CheckJoiners flag in UTS #46. +func CheckJoiners(enable bool) Option { + return func(o *options) { + o.trie = trie + o.checkJoiners = enable + } +} + +// StrictDomainName limits the set of permissable ASCII characters to those +// allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the +// hyphen). This is set by default for MapForLookup and ValidateForRegistration, +// but is only useful if ValidateLabels is set. +// +// This option is useful, for instance, for browsers that allow characters +// outside this range, for example a '_' (U+005F LOW LINE). See +// http://www.rfc-editor.org/std/std3.txt for more details. +// +// This option corresponds to the UseSTD3ASCIIRules flag in UTS #46. +func StrictDomainName(use bool) Option { + return func(o *options) { o.useSTD3Rules = use } +} + +// NOTE: the following options pull in tables. The tables should not be linked +// in as long as the options are not used. + +// BidiRule enables the Bidi rule as defined in RFC 5893. Any application +// that relies on proper validation of labels should include this rule. +// +// This option corresponds to the CheckBidi flag in UTS #46. +func BidiRule() Option { + return func(o *options) { o.bidirule = bidirule.ValidString } +} + +// ValidateForRegistration sets validation options to verify that a given IDN is +// properly formatted for registration as defined by Section 4 of RFC 5891. +func ValidateForRegistration() Option { + return func(o *options) { + o.mapping = validateRegistration + StrictDomainName(true)(o) + ValidateLabels(true)(o) + VerifyDNSLength(true)(o) + BidiRule()(o) + } +} + +// MapForLookup sets validation and mapping options such that a given IDN is +// transformed for domain name lookup according to the requirements set out in +// Section 5 of RFC 5891. The mappings follow the recommendations of RFC 5894, +// RFC 5895 and UTS 46. It does not add the Bidi Rule. Use the BidiRule option +// to add this check. +// +// The mappings include normalization and mapping case, width and other +// compatibility mappings. +func MapForLookup() Option { + return func(o *options) { + o.mapping = validateAndMap + StrictDomainName(true)(o) + ValidateLabels(true)(o) + RemoveLeadingDots(true)(o) + } +} + +type options struct { + transitional bool + useSTD3Rules bool + checkHyphens bool + checkJoiners bool + verifyDNSLength bool + removeLeadingDots bool + + trie *idnaTrie + + // fromPuny calls validation rules when converting A-labels to U-labels. + fromPuny func(p *Profile, s string) error + + // mapping implements a validation and mapping step as defined in RFC 5895 + // or UTS 46, tailored to, for example, domain registration or lookup. + mapping func(p *Profile, s string) (string, error) + + // bidirule, if specified, checks whether s conforms to the Bidi Rule + // defined in RFC 5893. + bidirule func(s string) bool +} + +// A Profile defines the configuration of a IDNA mapper. +type Profile struct { + options +} + +func apply(o *options, opts []Option) { + for _, f := range opts { + f(o) + } +} + +// New creates a new Profile. +// +// With no options, the returned Profile is the most permissive and equals the +// Punycode Profile. Options can be passed to further restrict the Profile. The +// MapForLookup and ValidateForRegistration options set a collection of options, +// for lookup and registration purposes respectively, which can be tailored by +// adding more fine-grained options, where later options override earlier +// options. +func New(o ...Option) *Profile { + p := &Profile{} + apply(&p.options, o) + return p +} + +// ToASCII converts a domain or domain label to its ASCII form. For example, +// ToASCII("bücher.example.com") is "xn--bcher-kva.example.com", and +// ToASCII("golang") is "golang". If an error is encountered it will return +// an error and a (partially) processed result. +func (p *Profile) ToASCII(s string) (string, error) { + return p.process(s, true) +} + +// ToUnicode converts a domain or domain label to its Unicode form. For example, +// ToUnicode("xn--bcher-kva.example.com") is "bücher.example.com", and +// ToUnicode("golang") is "golang". If an error is encountered it will return +// an error and a (partially) processed result. +func (p *Profile) ToUnicode(s string) (string, error) { + pp := *p + pp.transitional = false + return pp.process(s, false) +} + +// String reports a string with a description of the profile for debugging +// purposes. The string format may change with different versions. +func (p *Profile) String() string { + s := "" + if p.transitional { + s = "Transitional" + } else { + s = "NonTransitional" + } + if p.useSTD3Rules { + s += ":UseSTD3Rules" + } + if p.checkHyphens { + s += ":CheckHyphens" + } + if p.checkJoiners { + s += ":CheckJoiners" + } + if p.verifyDNSLength { + s += ":VerifyDNSLength" + } + return s +} + +var ( + // Punycode is a Profile that does raw punycode processing with a minimum + // of validation. + Punycode *Profile = punycode + + // Lookup is the recommended profile for looking up domain names, according + // to Section 5 of RFC 5891. The exact configuration of this profile may + // change over time. + Lookup *Profile = lookup + + // Display is the recommended profile for displaying domain names. + // The configuration of this profile may change over time. + Display *Profile = display + + // Registration is the recommended profile for checking whether a given + // IDN is valid for registration, according to Section 4 of RFC 5891. + Registration *Profile = registration + + punycode = &Profile{} + lookup = &Profile{options{ + transitional: true, + removeLeadingDots: true, + useSTD3Rules: true, + checkHyphens: true, + checkJoiners: true, + trie: trie, + fromPuny: validateFromPunycode, + mapping: validateAndMap, + bidirule: bidirule.ValidString, + }} + display = &Profile{options{ + useSTD3Rules: true, + removeLeadingDots: true, + checkHyphens: true, + checkJoiners: true, + trie: trie, + fromPuny: validateFromPunycode, + mapping: validateAndMap, + bidirule: bidirule.ValidString, + }} + registration = &Profile{options{ + useSTD3Rules: true, + verifyDNSLength: true, + checkHyphens: true, + checkJoiners: true, + trie: trie, + fromPuny: validateFromPunycode, + mapping: validateRegistration, + bidirule: bidirule.ValidString, + }} + + // TODO: profiles + // Register: recommended for approving domain names: don't do any mappings + // but rather reject on invalid input. Bundle or block deviation characters. +) + +type labelError struct{ label, code_ string } + +func (e labelError) code() string { return e.code_ } +func (e labelError) Error() string { + return fmt.Sprintf("idna: invalid label %q", e.label) +} + +type runeError rune + +func (e runeError) code() string { return "P1" } +func (e runeError) Error() string { + return fmt.Sprintf("idna: disallowed rune %U", e) +} + +// process implements the algorithm described in section 4 of UTS #46, +// see https://www.unicode.org/reports/tr46. +func (p *Profile) process(s string, toASCII bool) (string, error) { + var err error + if p.mapping != nil { + s, err = p.mapping(p, s) + } + // Remove leading empty labels. + if p.removeLeadingDots { + for ; len(s) > 0 && s[0] == '.'; s = s[1:] { + } + } + // It seems like we should only create this error on ToASCII, but the + // UTS 46 conformance tests suggests we should always check this. + if err == nil && p.verifyDNSLength && s == "" { + err = &labelError{s, "A4"} + } + labels := labelIter{orig: s} + for ; !labels.done(); labels.next() { + label := labels.label() + if label == "" { + // Empty labels are not okay. The label iterator skips the last + // label if it is empty. + if err == nil && p.verifyDNSLength { + err = &labelError{s, "A4"} + } + continue + } + if strings.HasPrefix(label, acePrefix) { + u, err2 := decode(label[len(acePrefix):]) + if err2 != nil { + if err == nil { + err = err2 + } + // Spec says keep the old label. + continue + } + labels.set(u) + if err == nil && p.fromPuny != nil { + err = p.fromPuny(p, u) + } + if err == nil { + // This should be called on NonTransitional, according to the + // spec, but that currently does not have any effect. Use the + // original profile to preserve options. + err = p.validateLabel(u) + } + } else if err == nil { + err = p.validateLabel(label) + } + } + if toASCII { + for labels.reset(); !labels.done(); labels.next() { + label := labels.label() + if !ascii(label) { + a, err2 := encode(acePrefix, label) + if err == nil { + err = err2 + } + label = a + labels.set(a) + } + n := len(label) + if p.verifyDNSLength && err == nil && (n == 0 || n > 63) { + err = &labelError{label, "A4"} + } + } + } + s = labels.result() + if toASCII && p.verifyDNSLength && err == nil { + // Compute the length of the domain name minus the root label and its dot. + n := len(s) + if n > 0 && s[n-1] == '.' { + n-- + } + if len(s) < 1 || n > 253 { + err = &labelError{s, "A4"} + } + } + return s, err +} + +func normalize(p *Profile, s string) (string, error) { + return norm.NFC.String(s), nil +} + +func validateRegistration(p *Profile, s string) (string, error) { + if !norm.NFC.IsNormalString(s) { + return s, &labelError{s, "V1"} + } + for i := 0; i < len(s); { + v, sz := trie.lookupString(s[i:]) + // Copy bytes not copied so far. + switch p.simplify(info(v).category()) { + // TODO: handle the NV8 defined in the Unicode idna data set to allow + // for strict conformance to IDNA2008. + case valid, deviation: + case disallowed, mapped, unknown, ignored: + r, _ := utf8.DecodeRuneInString(s[i:]) + return s, runeError(r) + } + i += sz + } + return s, nil +} + +func validateAndMap(p *Profile, s string) (string, error) { + var ( + err error + b []byte + k int + ) + for i := 0; i < len(s); { + v, sz := trie.lookupString(s[i:]) + start := i + i += sz + // Copy bytes not copied so far. + switch p.simplify(info(v).category()) { + case valid: + continue + case disallowed: + if err == nil { + r, _ := utf8.DecodeRuneInString(s[start:]) + err = runeError(r) + } + continue + case mapped, deviation: + b = append(b, s[k:start]...) + b = info(v).appendMapping(b, s[start:i]) + case ignored: + b = append(b, s[k:start]...) + // drop the rune + case unknown: + b = append(b, s[k:start]...) + b = append(b, "\ufffd"...) + } + k = i + } + if k == 0 { + // No changes so far. + s = norm.NFC.String(s) + } else { + b = append(b, s[k:]...) + if norm.NFC.QuickSpan(b) != len(b) { + b = norm.NFC.Bytes(b) + } + // TODO: the punycode converters require strings as input. + s = string(b) + } + return s, err +} + +// A labelIter allows iterating over domain name labels. +type labelIter struct { + orig string + slice []string + curStart int + curEnd int + i int +} + +func (l *labelIter) reset() { + l.curStart = 0 + l.curEnd = 0 + l.i = 0 +} + +func (l *labelIter) done() bool { + return l.curStart >= len(l.orig) +} + +func (l *labelIter) result() string { + if l.slice != nil { + return strings.Join(l.slice, ".") + } + return l.orig +} + +func (l *labelIter) label() string { + if l.slice != nil { + return l.slice[l.i] + } + p := strings.IndexByte(l.orig[l.curStart:], '.') + l.curEnd = l.curStart + p + if p == -1 { + l.curEnd = len(l.orig) + } + return l.orig[l.curStart:l.curEnd] +} + +// next sets the value to the next label. It skips the last label if it is empty. +func (l *labelIter) next() { + l.i++ + if l.slice != nil { + if l.i >= len(l.slice) || l.i == len(l.slice)-1 && l.slice[l.i] == "" { + l.curStart = len(l.orig) + } + } else { + l.curStart = l.curEnd + 1 + if l.curStart == len(l.orig)-1 && l.orig[l.curStart] == '.' { + l.curStart = len(l.orig) + } + } +} + +func (l *labelIter) set(s string) { + if l.slice == nil { + l.slice = strings.Split(l.orig, ".") + } + l.slice[l.i] = s +} + +// acePrefix is the ASCII Compatible Encoding prefix. +const acePrefix = "xn--" + +func (p *Profile) simplify(cat category) category { + switch cat { + case disallowedSTD3Mapped: + if p.useSTD3Rules { + cat = disallowed + } else { + cat = mapped + } + case disallowedSTD3Valid: + if p.useSTD3Rules { + cat = disallowed + } else { + cat = valid + } + case deviation: + if !p.transitional { + cat = valid + } + case validNV8, validXV8: + // TODO: handle V2008 + cat = valid + } + return cat +} + +func validateFromPunycode(p *Profile, s string) error { + if !norm.NFC.IsNormalString(s) { + return &labelError{s, "V1"} + } + for i := 0; i < len(s); { + v, sz := trie.lookupString(s[i:]) + if c := p.simplify(info(v).category()); c != valid && c != deviation { + return &labelError{s, "V6"} + } + i += sz + } + return nil +} + +const ( + zwnj = "\u200c" + zwj = "\u200d" +) + +type joinState int8 + +const ( + stateStart joinState = iota + stateVirama + stateBefore + stateBeforeVirama + stateAfter + stateFAIL +) + +var joinStates = [][numJoinTypes]joinState{ + stateStart: { + joiningL: stateBefore, + joiningD: stateBefore, + joinZWNJ: stateFAIL, + joinZWJ: stateFAIL, + joinVirama: stateVirama, + }, + stateVirama: { + joiningL: stateBefore, + joiningD: stateBefore, + }, + stateBefore: { + joiningL: stateBefore, + joiningD: stateBefore, + joiningT: stateBefore, + joinZWNJ: stateAfter, + joinZWJ: stateFAIL, + joinVirama: stateBeforeVirama, + }, + stateBeforeVirama: { + joiningL: stateBefore, + joiningD: stateBefore, + joiningT: stateBefore, + }, + stateAfter: { + joiningL: stateFAIL, + joiningD: stateBefore, + joiningT: stateAfter, + joiningR: stateStart, + joinZWNJ: stateFAIL, + joinZWJ: stateFAIL, + joinVirama: stateAfter, // no-op as we can't accept joiners here + }, + stateFAIL: { + 0: stateFAIL, + joiningL: stateFAIL, + joiningD: stateFAIL, + joiningT: stateFAIL, + joiningR: stateFAIL, + joinZWNJ: stateFAIL, + joinZWJ: stateFAIL, + joinVirama: stateFAIL, + }, +} + +// validateLabel validates the criteria from Section 4.1. Item 1, 4, and 6 are +// already implicitly satisfied by the overall implementation. +func (p *Profile) validateLabel(s string) error { + if s == "" { + if p.verifyDNSLength { + return &labelError{s, "A4"} + } + return nil + } + if p.bidirule != nil && !p.bidirule(s) { + return &labelError{s, "B"} + } + if p.checkHyphens { + if len(s) > 4 && s[2] == '-' && s[3] == '-' { + return &labelError{s, "V2"} + } + if s[0] == '-' || s[len(s)-1] == '-' { + return &labelError{s, "V3"} + } + } + if !p.checkJoiners { + return nil + } + trie := p.trie // p.checkJoiners is only set if trie is set. + // TODO: merge the use of this in the trie. + v, sz := trie.lookupString(s) + x := info(v) + if x.isModifier() { + return &labelError{s, "V5"} + } + // Quickly return in the absence of zero-width (non) joiners. + if strings.Index(s, zwj) == -1 && strings.Index(s, zwnj) == -1 { + return nil + } + st := stateStart + for i := 0; ; { + jt := x.joinType() + if s[i:i+sz] == zwj { + jt = joinZWJ + } else if s[i:i+sz] == zwnj { + jt = joinZWNJ + } + st = joinStates[st][jt] + if x.isViramaModifier() { + st = joinStates[st][joinVirama] + } + if i += sz; i == len(s) { + break + } + v, sz = trie.lookupString(s[i:]) + x = info(v) + } + if st == stateFAIL || st == stateAfter { + return &labelError{s, "C"} + } + return nil +} + +func ascii(s string) bool { + for i := 0; i < len(s); i++ { + if s[i] >= utf8.RuneSelf { + return false + } + } + return true +} diff --git a/vendor/golang.org/x/net/idna/punycode.go b/vendor/golang.org/x/net/idna/punycode.go new file mode 100644 index 0000000..02c7d59 --- /dev/null +++ b/vendor/golang.org/x/net/idna/punycode.go @@ -0,0 +1,203 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package idna + +// This file implements the Punycode algorithm from RFC 3492. + +import ( + "math" + "strings" + "unicode/utf8" +) + +// These parameter values are specified in section 5. +// +// All computation is done with int32s, so that overflow behavior is identical +// regardless of whether int is 32-bit or 64-bit. +const ( + base int32 = 36 + damp int32 = 700 + initialBias int32 = 72 + initialN int32 = 128 + skew int32 = 38 + tmax int32 = 26 + tmin int32 = 1 +) + +func punyError(s string) error { return &labelError{s, "A3"} } + +// decode decodes a string as specified in section 6.2. +func decode(encoded string) (string, error) { + if encoded == "" { + return "", nil + } + pos := 1 + strings.LastIndex(encoded, "-") + if pos == 1 { + return "", punyError(encoded) + } + if pos == len(encoded) { + return encoded[:len(encoded)-1], nil + } + output := make([]rune, 0, len(encoded)) + if pos != 0 { + for _, r := range encoded[:pos-1] { + output = append(output, r) + } + } + i, n, bias := int32(0), initialN, initialBias + for pos < len(encoded) { + oldI, w := i, int32(1) + for k := base; ; k += base { + if pos == len(encoded) { + return "", punyError(encoded) + } + digit, ok := decodeDigit(encoded[pos]) + if !ok { + return "", punyError(encoded) + } + pos++ + i += digit * w + if i < 0 { + return "", punyError(encoded) + } + t := k - bias + if t < tmin { + t = tmin + } else if t > tmax { + t = tmax + } + if digit < t { + break + } + w *= base - t + if w >= math.MaxInt32/base { + return "", punyError(encoded) + } + } + x := int32(len(output) + 1) + bias = adapt(i-oldI, x, oldI == 0) + n += i / x + i %= x + if n > utf8.MaxRune || len(output) >= 1024 { + return "", punyError(encoded) + } + output = append(output, 0) + copy(output[i+1:], output[i:]) + output[i] = n + i++ + } + return string(output), nil +} + +// encode encodes a string as specified in section 6.3 and prepends prefix to +// the result. +// +// The "while h < length(input)" line in the specification becomes "for +// remaining != 0" in the Go code, because len(s) in Go is in bytes, not runes. +func encode(prefix, s string) (string, error) { + output := make([]byte, len(prefix), len(prefix)+1+2*len(s)) + copy(output, prefix) + delta, n, bias := int32(0), initialN, initialBias + b, remaining := int32(0), int32(0) + for _, r := range s { + if r < 0x80 { + b++ + output = append(output, byte(r)) + } else { + remaining++ + } + } + h := b + if b > 0 { + output = append(output, '-') + } + for remaining != 0 { + m := int32(0x7fffffff) + for _, r := range s { + if m > r && r >= n { + m = r + } + } + delta += (m - n) * (h + 1) + if delta < 0 { + return "", punyError(s) + } + n = m + for _, r := range s { + if r < n { + delta++ + if delta < 0 { + return "", punyError(s) + } + continue + } + if r > n { + continue + } + q := delta + for k := base; ; k += base { + t := k - bias + if t < tmin { + t = tmin + } else if t > tmax { + t = tmax + } + if q < t { + break + } + output = append(output, encodeDigit(t+(q-t)%(base-t))) + q = (q - t) / (base - t) + } + output = append(output, encodeDigit(q)) + bias = adapt(delta, h+1, h == b) + delta = 0 + h++ + remaining-- + } + delta++ + n++ + } + return string(output), nil +} + +func decodeDigit(x byte) (digit int32, ok bool) { + switch { + case '0' <= x && x <= '9': + return int32(x - ('0' - 26)), true + case 'A' <= x && x <= 'Z': + return int32(x - 'A'), true + case 'a' <= x && x <= 'z': + return int32(x - 'a'), true + } + return 0, false +} + +func encodeDigit(digit int32) byte { + switch { + case 0 <= digit && digit < 26: + return byte(digit + 'a') + case 26 <= digit && digit < 36: + return byte(digit + ('0' - 26)) + } + panic("idna: internal error in punycode encoding") +} + +// adapt is the bias adaptation function specified in section 6.1. +func adapt(delta, numPoints int32, firstTime bool) int32 { + if firstTime { + delta /= damp + } else { + delta /= 2 + } + delta += delta / numPoints + k := int32(0) + for delta > ((base-tmin)*tmax)/2 { + delta /= base - tmin + k += base + } + return k + (base-tmin+1)*delta/(delta+skew) +} diff --git a/vendor/golang.org/x/net/idna/tables10.0.0.go b/vendor/golang.org/x/net/idna/tables10.0.0.go new file mode 100644 index 0000000..d1d62ef --- /dev/null +++ b/vendor/golang.org/x/net/idna/tables10.0.0.go @@ -0,0 +1,4560 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.10 && !go1.13 +// +build go1.10,!go1.13 + +package idna + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "10.0.0" + +var mappings string = "" + // Size: 8175 bytes + "\x00\x01 \x03 ̈\x01a\x03 Ì„\x012\x013\x03 Ì\x03 ̧\x011\x01o\x051â„4\x051â„2" + + "\x053â„4\x03i̇\x03l·\x03ʼn\x01s\x03dž\x03â±¥\x03ⱦ\x01h\x01j\x01r\x01w\x01y" + + "\x03 ̆\x03 ̇\x03 ÌŠ\x03 ̨\x03 ̃\x03 Ì‹\x01l\x01x\x04̈Ì\x03 ι\x01;\x05 ̈Ì" + + "\x04Õ¥Ö‚\x04اٴ\x04وٴ\x04Û‡Ù´\x04يٴ\x06क़\x06ख़\x06ग़\x06ज़\x06ड़\x06ढ़\x06फ़" + + "\x06य़\x06ড়\x06ঢ়\x06য়\x06ਲ਼\x06ਸ਼\x06ਖ਼\x06ਗ਼\x06ਜ਼\x06ਫ਼\x06ଡ଼\x06ଢ଼" + + "\x06à¹à¸²\x06à»àº²\x06ຫນ\x06ຫມ\x06གྷ\x06ཌྷ\x06དྷ\x06བྷ\x06ཛྷ\x06ཀྵ\x06ཱི\x06ཱུ" + + "\x06ྲྀ\x09ྲཱྀ\x06ླྀ\x09ླཱྀ\x06ཱྀ\x06ྒྷ\x06ྜྷ\x06ྡྷ\x06ྦྷ\x06ྫྷ\x06à¾à¾µ\x02" + + "в\x02д\x02о\x02Ñ\x02Ñ‚\x02ÑŠ\x02Ñ£\x02æ\x01b\x01d\x01e\x02Ç\x01g\x01i\x01k" + + "\x01m\x01n\x02È£\x01p\x01t\x01u\x02É\x02É‘\x02É™\x02É›\x02Éœ\x02Å‹\x02É”\x02ɯ" + + "\x01v\x02β\x02γ\x02δ\x02φ\x02χ\x02Ï\x02н\x02É’\x01c\x02É•\x02ð\x01f\x02ÉŸ" + + "\x02É¡\x02É¥\x02ɨ\x02É©\x02ɪ\x02Ê\x02É­\x02ÊŸ\x02ɱ\x02É°\x02ɲ\x02ɳ\x02É´\x02ɵ" + + "\x02ɸ\x02Ê‚\x02ʃ\x02Æ«\x02ʉ\x02ÊŠ\x02Ê‹\x02ÊŒ\x01z\x02Ê\x02Ê‘\x02Ê’\x02θ\x02ss" + + "\x02ά\x02έ\x02ή\x02ί\x02ÏŒ\x02Ï\x02ÏŽ\x05ἀι\x05á¼Î¹\x05ἂι\x05ἃι\x05ἄι\x05ἅι" + + "\x05ἆι\x05ἇι\x05ἠι\x05ἡι\x05ἢι\x05ἣι\x05ἤι\x05ἥι\x05ἦι\x05ἧι\x05ὠι\x05ὡι" + + "\x05ὢι\x05ὣι\x05ὤι\x05ὥι\x05ὦι\x05ὧι\x05ὰι\x04αι\x04άι\x05ᾶι\x02ι\x05 ̈͂" + + "\x05ὴι\x04ηι\x04ήι\x05ῆι\x05 Ì“Ì€\x05 Ì“Ì\x05 Ì“Í‚\x02Î\x05 ̔̀\x05 Ì”Ì\x05 ̔͂" + + "\x02ΰ\x05 ̈̀\x01`\x05ὼι\x04ωι\x04ώι\x05ῶι\x06′′\x09′′′\x06‵‵\x09‵‵‵\x02!" + + "!\x02??\x02?!\x02!?\x0c′′′′\x010\x014\x015\x016\x017\x018\x019\x01+\x01=" + + "\x01(\x01)\x02rs\x02ħ\x02no\x01q\x02sm\x02tm\x02ω\x02Ã¥\x02×\x02ב\x02×’" + + "\x02ד\x02Ï€\x051â„7\x051â„9\x061â„10\x051â„3\x052â„3\x051â„5\x052â„5\x053â„5\x054" + + "â„5\x051â„6\x055â„6\x051â„8\x053â„8\x055â„8\x057â„8\x041â„\x02ii\x02iv\x02vi" + + "\x04viii\x02ix\x02xi\x050â„3\x06∫∫\x09∫∫∫\x06∮∮\x09∮∮∮\x0210\x0211\x0212" + + "\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)" + + "\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\x0c∫∫∫∫" + + "\x02==\x05â«Ì¸\x02É«\x02ɽ\x02È¿\x02É€\x01.\x04 ã‚™\x04 ã‚š\x06より\x06コト\x05(á„€)\x05" + + "(á„‚)\x05(ᄃ)\x05(á„…)\x05(ᄆ)\x05(ᄇ)\x05(ᄉ)\x05(á„‹)\x05(á„Œ)\x05(á„Ž)\x05(á„)\x05(á„" + + ")\x05(á„‘)\x05(á„’)\x05(ê°€)\x05(나)\x05(다)\x05(ë¼)\x05(마)\x05(ë°”)\x05(사)\x05(ì•„)" + + "\x05(ìž)\x05(ì°¨)\x05(ì¹´)\x05(타)\x05(파)\x05(하)\x05(주)\x08(오전)\x08(오후)\x05(一)" + + "\x05(二)\x05(三)\x05(å››)\x05(五)\x05(å…­)\x05(七)\x05(å…«)\x05(ä¹)\x05(å)\x05(月)" + + "\x05(ç«)\x05(æ°´)\x05(木)\x05(金)\x05(土)\x05(æ—¥)\x05(æ ª)\x05(有)\x05(社)\x05(å)" + + "\x05(特)\x05(財)\x05(ç¥)\x05(労)\x05(代)\x05(呼)\x05(å­¦)\x05(監)\x05(ä¼)\x05(資)" + + "\x05(å”)\x05(祭)\x05(休)\x05(自)\x05(至)\x0221\x0222\x0223\x0224\x0225\x0226" + + "\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06참고\x06주ì˜\x0236" + + "\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248" + + "\x0249\x0250\x041月\x042月\x043月\x044月\x045月\x046月\x047月\x048月\x049月\x0510" + + "月\x0511月\x0512月\x02hg\x02ev\x0cアパート\x0cアルファ\x0cアンペア\x09アール\x0cイニング\x09" + + "インãƒ\x09ウォン\x0fエスクード\x0cエーカー\x09オンス\x09オーム\x09カイリ\x0cカラット\x0cカロリー\x09ガロ" + + "ン\x09ガンマ\x06ギガ\x09ギニー\x0cキュリー\x0cギルダー\x06キロ\x0fキログラム\x12キロメートル\x0fキロワッ" + + "ト\x09グラム\x0fグラムトン\x0fクルゼイロ\x0cクローãƒ\x09ケース\x09コルナ\x09コーãƒ\x0cサイクル\x0fサンãƒ" + + "ーム\x0cシリング\x09センãƒ\x09セント\x09ダース\x06デシ\x06ドル\x06トン\x06ナノ\x09ノット\x09ãƒã‚¤ãƒ„" + + "\x0fパーセント\x09パーツ\x0cãƒãƒ¼ãƒ¬ãƒ«\x0fピアストル\x09ピクル\x06ピコ\x06ビル\x0fファラッド\x0cフィート" + + "\x0fブッシェル\x09フラン\x0fヘクタール\x06ペソ\x09ペニヒ\x09ヘルツ\x09ペンス\x09ページ\x09ベータ\x0cãƒã‚¤" + + "ント\x09ボルト\x06ホン\x09ãƒãƒ³ãƒ‰\x09ホール\x09ホーン\x0cマイクロ\x09マイル\x09マッãƒ\x09マルク\x0fマ" + + "ンション\x0cミクロン\x06ミリ\x0fミリãƒãƒ¼ãƒ«\x06メガ\x0cメガトン\x0cメートル\x09ヤード\x09ヤール\x09ユアン" + + "\x0cリットル\x06リラ\x09ルピー\x0cルーブル\x06レム\x0fレントゲン\x09ワット\x040点\x041点\x042点" + + "\x043点\x044点\x045点\x046点\x047点\x048点\x049点\x0510点\x0511点\x0512点\x0513点" + + "\x0514点\x0515点\x0516点\x0517点\x0518点\x0519点\x0520点\x0521点\x0522点\x0523点" + + "\x0524点\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06å¹³æˆ\x06昭和\x06大正\x06明治\x0cæ ª" + + "å¼ä¼šç¤¾\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02m" + + "g\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m" + + "3\x05m∕s\x06m∕s2\x07rad∕s\x08rad∕s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv" + + "\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c∕kg\x02db\x02gy\x02" + + "ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02" + + "wb\x05v∕m\x05a∕m\x041æ—¥\x042æ—¥\x043æ—¥\x044æ—¥\x045æ—¥\x046æ—¥\x047æ—¥\x048æ—¥\x049æ—¥" + + "\x0510æ—¥\x0511æ—¥\x0512æ—¥\x0513æ—¥\x0514æ—¥\x0515æ—¥\x0516æ—¥\x0517æ—¥\x0518æ—¥\x0519æ—¥" + + "\x0520æ—¥\x0521æ—¥\x0522æ—¥\x0523æ—¥\x0524æ—¥\x0525æ—¥\x0526æ—¥\x0527æ—¥\x0528æ—¥\x0529æ—¥" + + "\x0530æ—¥\x0531æ—¥\x02ÑŒ\x02ɦ\x02ɬ\x02Êž\x02ʇ\x02Å“\x04𤋮\x04𢡊\x04𢡄\x04ð£•\x04𥉉" + + "\x04ð¥³\x04𧻓\x02ff\x02fi\x02fl\x02st\x04Õ´Õ¶\x04Õ´Õ¥\x04Õ´Õ«\x04Õ¾Õ¶\x04Õ´Õ­\x04×™Ö´" + + "\x04ײַ\x02×¢\x02×”\x02×›\x02ל\x02×\x02ר\x02ת\x04ש×\x04שׂ\x06שּ×\x06שּׂ\x04×" + + "Ö·\x04×Ö¸\x04×Ö¼\x04בּ\x04×’Ö¼\x04דּ\x04×”Ö¼\x04וּ\x04×–Ö¼\x04טּ\x04×™Ö¼\x04ךּ\x04" + + "×›Ö¼\x04לּ\x04מּ\x04× Ö¼\x04סּ\x04×£Ö¼\x04פּ\x04צּ\x04קּ\x04רּ\x04שּ\x04תּ" + + "\x04וֹ\x04בֿ\x04×›Ö¿\x04פֿ\x04×ל\x02Ù±\x02Ù»\x02Ù¾\x02Ú€\x02Ùº\x02Ù¿\x02Ù¹\x02Ú¤" + + "\x02Ú¦\x02Ú„\x02Úƒ\x02Ú†\x02Ú‡\x02Ú\x02ÚŒ\x02ÚŽ\x02Úˆ\x02Ú˜\x02Ú‘\x02Ú©\x02Ú¯\x02Ú³" + + "\x02Ú±\x02Úº\x02Ú»\x02Û€\x02Û\x02Ú¾\x02Û’\x02Û“\x02Ú­\x02Û‡\x02Û†\x02Ûˆ\x02Û‹\x02Û…" + + "\x02Û‰\x02Û\x02Ù‰\x04ئا\x04ئە\x04ئو\x04ئۇ\x04ئۆ\x04ئۈ\x04ئÛ\x04ئى\x02ÛŒ\x04" + + "ئج\x04ئح\x04ئم\x04ئي\x04بج\x04بح\x04بخ\x04بم\x04بى\x04بي\x04تج\x04تح" + + "\x04تخ\x04تم\x04تى\x04تي\x04ثج\x04ثم\x04ثى\x04ثي\x04جح\x04جم\x04حج\x04حم" + + "\x04خج\x04خح\x04خم\x04سج\x04سح\x04سخ\x04سم\x04صح\x04صم\x04ضج\x04ضح\x04ضخ" + + "\x04ضم\x04طح\x04طم\x04ظم\x04عج\x04عم\x04غج\x04غم\x04Ùج\x04ÙØ­\x04ÙØ®\x04ÙÙ…" + + "\x04ÙÙ‰\x04ÙÙŠ\x04قح\x04قم\x04قى\x04قي\x04كا\x04كج\x04كح\x04كخ\x04كل\x04كم" + + "\x04كى\x04كي\x04لج\x04لح\x04لخ\x04لم\x04لى\x04لي\x04مج\x04مح\x04مخ\x04مم" + + "\x04مى\x04مي\x04نج\x04نح\x04نخ\x04نم\x04نى\x04ني\x04هج\x04هم\x04هى\x04هي" + + "\x04يج\x04يح\x04يخ\x04يم\x04يى\x04يي\x04ذٰ\x04رٰ\x04ىٰ\x05 ٌّ\x05 ÙÙ‘\x05" + + " ÙŽÙ‘\x05 ÙÙ‘\x05 ÙÙ‘\x05 ّٰ\x04ئر\x04ئز\x04ئن\x04بر\x04بز\x04بن\x04تر\x04تز" + + "\x04تن\x04ثر\x04ثز\x04ثن\x04ما\x04نر\x04نز\x04نن\x04ير\x04يز\x04ين\x04ئخ" + + "\x04ئه\x04به\x04ته\x04صخ\x04له\x04نه\x04هٰ\x04يه\x04ثه\x04سه\x04شم\x04شه" + + "\x06Ù€ÙŽÙ‘\x06Ù€ÙÙ‘\x06Ù€ÙÙ‘\x04طى\x04طي\x04عى\x04عي\x04غى\x04غي\x04سى\x04سي" + + "\x04شى\x04شي\x04حى\x04حي\x04جى\x04جي\x04خى\x04خي\x04صى\x04صي\x04ضى\x04ضي" + + "\x04شج\x04شح\x04شخ\x04شر\x04سر\x04صر\x04ضر\x04اً\x06تجم\x06تحج\x06تحم" + + "\x06تخم\x06تمج\x06تمح\x06تمخ\x06جمح\x06حمي\x06حمى\x06سحج\x06سجح\x06سجى" + + "\x06سمح\x06سمج\x06سمم\x06صحح\x06صمم\x06شحم\x06شجي\x06شمخ\x06شمم\x06ضحى" + + "\x06ضخم\x06طمح\x06طمم\x06طمي\x06عجم\x06عمم\x06عمى\x06غمم\x06غمي\x06غمى" + + "\x06Ùخم\x06قمح\x06قمم\x06لحم\x06لحي\x06لحى\x06لجج\x06لخم\x06لمح\x06محج" + + "\x06محم\x06محي\x06مجح\x06مجم\x06مخج\x06مخم\x06مجخ\x06همج\x06همم\x06نحم" + + "\x06نحى\x06نجم\x06نجى\x06نمي\x06نمى\x06يمم\x06بخي\x06تجي\x06تجى\x06تخي" + + "\x06تخى\x06تمي\x06تمى\x06جمي\x06جحى\x06جمى\x06سخى\x06صحي\x06شحي\x06ضحي" + + "\x06لجي\x06لمي\x06يحي\x06يجي\x06يمي\x06ممي\x06قمي\x06نحي\x06عمي\x06كمي" + + "\x06نجح\x06مخي\x06لجم\x06كمم\x06جحي\x06حجي\x06مجي\x06Ùمي\x06بحي\x06سخي" + + "\x06نجي\x06صلے\x06قلے\x08الله\x08اكبر\x08محمد\x08صلعم\x08رسول\x08عليه" + + "\x08وسلم\x06صلى!صلى الله عليه وسلم\x0fجل جلاله\x08ریال\x01,\x01:\x01!" + + "\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\\x01$" + + "\x01%\x01@\x04ـً\x04Ù€ÙŽ\x04Ù€Ù\x04Ù€Ù\x04ـّ\x04ـْ\x02Ø¡\x02Ø¢\x02Ø£\x02ؤ\x02Ø¥" + + "\x02ئ\x02ا\x02ب\x02Ø©\x02ت\x02Ø«\x02ج\x02Ø­\x02Ø®\x02د\x02Ø°\x02ر\x02ز\x02س" + + "\x02Ø´\x02ص\x02ض\x02Ø·\x02ظ\x02ع\x02غ\x02Ù\x02Ù‚\x02Ùƒ\x02Ù„\x02Ù…\x02Ù†\x02Ù‡" + + "\x02Ùˆ\x02ÙŠ\x04لآ\x04لأ\x04لإ\x04لا\x01\x22\x01'\x01/\x01^\x01|\x01~\x02¢" + + "\x02£\x02¬\x02¦\x02Â¥\x08ð…—ð…¥\x08ð…˜ð…¥\x0cð…˜ð…¥ð…®\x0cð…˜ð…¥ð…¯\x0cð…˜ð…¥ð…°\x0cð…˜ð…¥ð…±\x0cð…˜ð…¥ð…²\x08ð†¹" + + "ð…¥\x08ð†ºð…¥\x0cð†¹ð…¥ð…®\x0cð†ºð…¥ð…®\x0cð†¹ð…¥ð…¯\x0cð†ºð…¥ð…¯\x02ı\x02È·\x02α\x02ε\x02ζ\x02η\x02" + + "κ\x02λ\x02μ\x02ν\x02ξ\x02ο\x02σ\x02Ï„\x02Ï…\x02ψ\x03∇\x03∂\x02Ï\x02Ù®\x02Ú¡" + + "\x02Ù¯\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029,\x03(a)" + + "\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)\x03(k)" + + "\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)\x03(u)" + + "\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07〔s〕\x02wz\x02hv\x02sd\x03ppv\x02w" + + "c\x02mc\x02md\x02dj\x06ã»ã‹\x06ココ\x03サ\x03手\x03å­—\x03åŒ\x03デ\x03二\x03多\x03解" + + "\x03天\x03交\x03映\x03ç„¡\x03æ–™\x03å‰\x03後\x03å†\x03æ–°\x03åˆ\x03終\x03生\x03販\x03声" + + "\x03å¹\x03æ¼”\x03投\x03æ•\x03一\x03三\x03éŠ\x03å·¦\x03中\x03å³\x03指\x03èµ°\x03打\x03ç¦" + + "\x03空\x03åˆ\x03満\x03有\x03月\x03申\x03割\x03å–¶\x03é…\x09〔本〕\x09〔三〕\x09〔二〕\x09〔安" + + "〕\x09〔点〕\x09〔打〕\x09〔盗〕\x09〔å‹ã€•\x09〔敗〕\x03å¾—\x03å¯\x03丽\x03丸\x03ä¹\x03ä½ \x03" + + "ä¾®\x03ä¾»\x03倂\x03åº\x03å‚™\x03僧\x03åƒ\x03ã’ž\x03å…\x03å…”\x03å…¤\x03å…·\x03ã’¹\x03å…§\x03" + + "冗\x03冤\x03仌\x03冬\x03况\x03凵\x03刃\x03ã“Ÿ\x03刻\x03剆\x03剷\x03㔕\x03勇\x03勉\x03" + + "勤\x03勺\x03包\x03匆\x03北\x03å‰\x03å‘\x03åš\x03å³\x03å½\x03å¿\x03ç°\x03åŠ\x03åŸ\x03" + + "å«\x03å±\x03å†\x03å’ž\x03å¸\x03呈\x03周\x03å’¢\x03哶\x03å”\x03å•“\x03å•£\x03å–„\x03å–™\x03" + + "å–«\x03å–³\x03å—‚\x03圖\x03嘆\x03圗\x03噑\x03å™´\x03切\x03壮\x03城\x03埴\x03å \x03åž‹\x03" + + "å ²\x03å ±\x03墬\x03売\x03壷\x03夆\x03夢\x03奢\x03姬\x03娛\x03娧\x03姘\x03婦\x03ã›®\x03" + + "嬈\x03嬾\x03寃\x03寘\x03寧\x03寳\x03寿\x03å°†\x03å°¢\x03ãž\x03å± \x03å±®\x03å³€\x03å²\x03" + + "嵃\x03åµ®\x03嵫\x03åµ¼\x03å·¡\x03å·¢\x03ã ¯\x03å·½\x03帨\x03帽\x03幩\x03ã¡¢\x03㡼\x03庰\x03" + + "庳\x03庶\x03廊\x03廾\x03èˆ\x03å¼¢\x03㣇\x03å½¢\x03彫\x03㣣\x03徚\x03å¿\x03å¿—\x03忹\x03" + + "æ‚\x03㤺\x03㤜\x03æ‚”\x03惇\x03æ…ˆ\x03æ…Œ\x03æ…Ž\x03æ…º\x03憎\x03憲\x03憤\x03憯\x03懞\x03" + + "懲\x03懶\x03æˆ\x03戛\x03æ‰\x03抱\x03æ‹”\x03æ\x03挽\x03拼\x03æ¨\x03掃\x03æ¤\x03æ¢\x03" + + "æ…\x03掩\x03㨮\x03æ‘©\x03摾\x03æ’\x03æ‘·\x03㩬\x03æ•\x03敬\x03æ—£\x03書\x03晉\x03㬙\x03" + + "æš‘\x03㬈\x03㫤\x03冒\x03冕\x03最\x03æšœ\x03è‚­\x03ä™\x03朗\x03望\x03朡\x03æž\x03æ“\x03" + + "ã­‰\x03柺\x03æž…\x03æ¡’\x03梅\x03梎\x03æ Ÿ\x03椔\x03ã®\x03楂\x03榣\x03槪\x03檨\x03æ«›\x03" + + "ã°˜\x03次\x03æ­”\x03㱎\x03æ­²\x03殟\x03殺\x03æ®»\x03汎\x03沿\x03æ³\x03汧\x03æ´–\x03æ´¾\x03" + + "æµ·\x03æµ\x03浩\x03浸\x03涅\x03æ´´\x03港\x03æ¹®\x03ã´³\x03滋\x03滇\x03æ·¹\x03æ½®\x03濆\x03" + + "瀹\x03瀞\x03瀛\x03㶖\x03çŠ\x03ç½\x03ç·\x03ç‚­\x03ç……\x03熜\x03爨\x03爵\x03ç‰\x03犀\x03" + + "犕\x03çº\x03王\x03㺬\x03玥\x03㺸\x03瑇\x03ç‘œ\x03瑱\x03ç’…\x03ç“Š\x03ã¼›\x03甤\x03甾\x03" + + "ç•°\x03ç˜\x03㿼\x03䀈\x03ç›´\x03眞\x03真\x03çŠ\x03䀹\x03çž‹\x03ä†\x03ä‚–\x03ç¡Ž\x03碌\x03" + + "磌\x03䃣\x03祖\x03ç¦\x03秫\x03䄯\x03ç©€\x03ç©Š\x03ç©\x03䈂\x03篆\x03築\x03䈧\x03ç³’\x03" + + "䊠\x03糨\x03ç³£\x03ç´€\x03çµ£\x03äŒ\x03ç·‡\x03縂\x03ç¹…\x03䌴\x03ä™\x03罺\x03羕\x03翺\x03" + + "者\x03è \x03è°\x03ä•\x03育\x03脃\x03ä‹\x03脾\x03媵\x03舄\x03辞\x03ä‘«\x03芑\x03芋\x03" + + "èŠ\x03劳\x03花\x03芳\x03芽\x03苦\x03è‹¥\x03èŒ\x03è£\x03莭\x03茣\x03莽\x03è§\x03è‘—\x03" + + "è“\x03èŠ\x03èŒ\x03èœ\x03䔫\x03蓱\x03蓳\x03è”–\x03蕤\x03ä•\x03ä•¡\x03ä•«\x03è™\x03虜\x03" + + "虧\x03虩\x03èš©\x03蚈\x03蜎\x03蛢\x03è¹\x03蜨\x03è«\x03螆\x03蟡\x03è \x03ä—¹\x03è¡ \x03" + + "è¡£\x03裗\x03裞\x03䘵\x03裺\x03ã’»\x03äš¾\x03䛇\x03誠\x03è«­\x03變\x03豕\x03貫\x03è³\x03" + + "è´›\x03èµ·\x03è·‹\x03趼\x03è·°\x03è»”\x03輸\x03é‚”\x03郱\x03é„‘\x03é„›\x03鈸\x03é‹—\x03鋘\x03" + + "鉼\x03é¹\x03é•\x03é–‹\x03䦕\x03é–·\x03䧦\x03雃\x03嶲\x03霣\x03ä©®\x03䩶\x03韠\x03䪲\x03" + + "é ‹\x03é ©\x03飢\x03䬳\x03餩\x03馧\x03駂\x03駾\x03䯎\x03鬒\x03é±€\x03é³½\x03䳎\x03ä³­\x03" + + "鵧\x03䳸\x03麻\x03äµ–\x03黹\x03黾\x03é¼…\x03é¼\x03é¼–\x03é¼»" + +var xorData string = "" + // Size: 4855 bytes + "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" + + "\x02\x0f\x1f\x02\x0f\x1d\x02\x01\x13\x02\x0f\x16\x02\x0f\x0b\x02\x0f3" + + "\x02\x0f7\x02\x0f?\x02\x0f/\x02\x0f*\x02\x0c&\x02\x0c*\x02\x0c;\x02\x0c9" + + "\x02\x0c%\x02\xab\xed\x02\xab\xe2\x02\xab\xe3\x02\xa9\xe0\x02\xa9\xe1" + + "\x02\xa9\xe6\x02\xa3\xcb\x02\xa3\xc8\x02\xa3\xc9\x02\x01#\x02\x01\x08" + + "\x02\x0e>\x02\x0e'\x02\x0f\x03\x02\x03\x0d\x02\x03\x09\x02\x03\x17\x02" + + "\x03\x0e\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07" + + "\x0d\x02\x02\x0c\x02\x0c0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\x22" + + "\x02\x01)\x02\x01\x0a\x02\x01\x0c\x02\x02\x06\x02\x02\x02\x02\x03\x10" + + "\x03\x037 \x03\x0b+\x03\x02\x01\x04\x02\x01\x02\x02\x019\x02\x03\x1c\x02" + + "\x02$\x03\x80p$\x02\x03:\x02\x03\x0a\x03\xc1r.\x03\xc1r,\x03\xc1r\x02" + + "\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xc1s<\x03\xc1s*" + + "\x03\xc2L$\x03\xc2L;\x02\x09)\x02\x0a\x19\x03\x83\xab\xe3\x03\x83\xab" + + "\xf2\x03 4\xe0\x03\x81\xab\xea\x03\x81\xab\xf3\x03 4\xef\x03\x96\xe1\xcd" + + "\x03\x84\xe5\xc3\x02\x0d\x11\x03\x8b\xec\xcb\x03\x94\xec\xcf\x03\x9a\xec" + + "\xc2\x03\x8b\xec\xdb\x03\x94\xec\xdf\x03\x9a\xec\xd2\x03\x01\x0c!\x03" + + "\x01\x0c#\x03Ê \x9d\x03Ê£\x9c\x03Ê¢\x9f\x03Ê¥\x9e\x03ʤ\x91\x03ʧ\x90\x03ʦ\x93" + + "\x03Ê©\x92\x03ʨ\x95\x03\xca\xf3\xb5\x03\xca\xf0\xb4\x03\xca\xf1\xb7\x03" + + "\xca\xf6\xb6\x03\xca\xf7\x89\x03\xca\xf4\x88\x03\xca\xf5\x8b\x03\xca\xfa" + + "\x8a\x03\xca\xfb\x8d\x03\xca\xf8\x8c\x03\xca\xf9\x8f\x03\xca\xfe\x8e\x03" + + "\xca\xff\x81\x03\xca\xfc\x80\x03\xca\xfd\x83\x03\xca\xe2\x82\x03\xca\xe3" + + "\x85\x03\xca\xe0\x84\x03\xca\xe1\x87\x03\xca\xe6\x86\x03\xca\xe7\x99\x03" + + "\xca\xe4\x98\x03\xca\xe5\x9b\x03\xca\xea\x9a\x03\xca\xeb\x9d\x03\xca\xe8" + + "\x9c\x03Ø“\x89\x03ß”\x8b\x02\x010\x03\x03\x04\x1e\x03\x04\x15\x12\x03\x0b" + + "\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06\x05" + + "\x1d\x03\x06\x06\x00\x03\x06\x06\x0a\x03\x06\x06'\x03\x06\x062\x03\x0786" + + "\x03\x079/\x03\x079 \x03\x07:\x0e\x03\x07:\x1b\x03\x07:%\x03\x07;/\x03" + + "\x07;%\x03\x074\x11\x03\x076\x09\x03\x077*\x03\x070\x01\x03\x070\x0f\x03" + + "\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-\x03" + + "\x073\x14\x03\x073>\x03\x07'\x09\x03\x07 \x00\x03\x07\x1f\x0b\x03\x07" + + "\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03\x07" + + "\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\x0c&\x03\x07\x0c\x08\x03\x07" + + "\x0c\x13\x03\x07\x0d\x02\x03\x07\x0d\x1c\x03\x07\x0b5\x03\x07\x0b\x0a" + + "\x03\x07\x0b\x01\x03\x07\x0b\x0f\x03\x07\x05\x00\x03\x07\x05\x09\x03\x07" + + "\x05\x0b\x03\x07\x07\x01\x03\x07\x07\x08\x03\x07\x00<\x03\x07\x00+\x03" + + "\x07\x01)\x03\x07\x01\x1b\x03\x07\x01\x08\x03\x07\x03?\x03\x0445\x03\x04" + + "4\x08\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03\x04+ " + + "\x03\x04+<\x03\x04*&\x03\x04*\x22\x03\x04&8\x03\x04!\x01\x03\x04!\x22" + + "\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04\x03" + + "\x04\x12\x0a\x03\x04\x0d\x1d\x03\x04\x0d\x07\x03\x04\x0d \x03\x05<>\x03" + + "\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1d\x03\x054\x02\x03\x054" + + "\x07\x03\x0571\x03\x053\x1a\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03\x05)" + + ":\x03\x05)<\x03\x05)\x0c\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$\x1e" + + "\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\x226\x03" + + "\x05\x22\x0c\x03\x05\x22\x1c\x03\x05\x19\x0a\x03\x05\x1b\x09\x03\x05\x1b" + + "\x0c\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\x0c\x03\x05\x0c\x05\x03" + + "\x05\x0e\x0f\x03\x05\x01\x0e\x03\x05\x00(\x03\x05\x030\x03\x05\x03\x06" + + "\x03\x0a==\x03\x0a=1\x03\x0a=,\x03\x0a=\x0c\x03\x0a??\x03\x0a<\x08\x03" + + "\x0a9!\x03\x0a9)\x03\x0a97\x03\x0a99\x03\x0a6\x0a\x03\x0a6\x1c\x03\x0a6" + + "\x17\x03\x0a7'\x03\x0a78\x03\x0a73\x03\x0a'\x01\x03\x0a'&\x03\x0a\x1f" + + "\x0e\x03\x0a\x1f\x03\x03\x0a\x1f3\x03\x0a\x1b/\x03\x0a\x18\x19\x03\x0a" + + "\x19\x01\x03\x0a\x16\x14\x03\x0a\x0e\x22\x03\x0a\x0f\x10\x03\x0a\x0f\x02" + + "\x03\x0a\x0f \x03\x0a\x0c\x04\x03\x0a\x0b>\x03\x0a\x0b+\x03\x0a\x08/\x03" + + "\x0a\x046\x03\x0a\x05\x14\x03\x0a\x00\x04\x03\x0a\x00\x10\x03\x0a\x00" + + "\x14\x03\x0b<3\x03\x0b;*\x03\x0b9\x22\x03\x0b9)\x03\x0b97\x03\x0b+\x10" + + "\x03\x0b((\x03\x0b&5\x03\x0b$\x1c\x03\x0b$\x12\x03\x0b%\x04\x03\x0b#<" + + "\x03\x0b#0\x03\x0b#\x0d\x03\x0b#\x19\x03\x0b!:\x03\x0b!\x1f\x03\x0b!\x00" + + "\x03\x0b\x1e5\x03\x0b\x1c\x1d\x03\x0b\x1d-\x03\x0b\x1d(\x03\x0b\x18.\x03" + + "\x0b\x18 \x03\x0b\x18\x16\x03\x0b\x14\x13\x03\x0b\x15$\x03\x0b\x15\x22" + + "\x03\x0b\x12\x1b\x03\x0b\x12\x10\x03\x0b\x132\x03\x0b\x13=\x03\x0b\x12" + + "\x18\x03\x0b\x0c&\x03\x0b\x061\x03\x0b\x06:\x03\x0b\x05#\x03\x0b\x05<" + + "\x03\x0b\x04\x0b\x03\x0b\x04\x04\x03\x0b\x04\x1b\x03\x0b\x042\x03\x0b" + + "\x041\x03\x0b\x03\x03\x03\x0b\x03\x1d\x03\x0b\x03/\x03\x0b\x03+\x03\x0b" + + "\x02\x1b\x03\x0b\x02\x00\x03\x0b\x01\x1e\x03\x0b\x01\x08\x03\x0b\x015" + + "\x03\x06\x0d9\x03\x06\x0d=\x03\x06\x0d?\x03\x02\x001\x03\x02\x003\x03" + + "\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1b\x03\x02\x004\x03\x02\x00<\x03" + + "\x02\x02\x0a\x03\x02\x02\x0e\x03\x02\x01\x1a\x03\x02\x01\x07\x03\x02\x01" + + "\x05\x03\x02\x01\x0b\x03\x02\x01%\x03\x02\x01\x0c\x03\x02\x01\x04\x03" + + "\x02\x01\x1c\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03" + + "\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02" + + "\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022" + + "\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01" + + "\x11\x03\x02\x01\x1e\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0f\x03" + + "\x02\x01\x08\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\x0d\x03\x02\x03" + + "\x13\x03\x02\x03\x1d\x03\x02\x03\x1f\x03\x02\x00\x03\x03\x02\x00\x0d\x03" + + "\x02\x00\x01\x03\x02\x00\x1b\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00" + + "\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1f\x03\x07>\x1d\x03\x06\x1d\x0e" + + "\x03\x07>\x1c\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>" + + "\x02\x03\x06\x224\x03\x06\x1a.\x03\x07<%\x03\x06\x1c\x0b\x03\x0609\x03" + + "\x05\x1f\x01\x03\x04'\x08\x03\x93\xfd\xf5\x03\x02\x0d \x03\x02\x0d#\x03" + + "\x02\x0d!\x03\x02\x0d&\x03\x02\x0d\x22\x03\x02\x0d/\x03\x02\x0d,\x03\x02" + + "\x0d$\x03\x02\x0d'\x03\x02\x0d%\x03\x02\x0d;\x03\x02\x0d=\x03\x02\x0d?" + + "\x03\x099.\x03\x08\x0b7\x03\x08\x02\x14\x03\x08\x14\x0d\x03\x08.:\x03" + + "\x089'\x03\x0f\x0b\x18\x03\x0f\x1c1\x03\x0f\x17&\x03\x0f9\x1f\x03\x0f0" + + "\x0c\x03\x0e\x0a9\x03\x0e\x056\x03\x0e\x1c#\x03\x0f\x13\x0e\x03\x072\x00" + + "\x03\x070\x0d\x03\x072\x0b\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0f(\x03" + + "\x072\x05\x03\x06\x0f,\x03\x073\x15\x03\x06\x07\x08\x03\x05\x16\x02\x03" + + "\x04\x0b \x03\x05:8\x03\x05\x16%\x03\x0a\x0d\x1f\x03\x06\x16\x10\x03\x05" + + "\x1d5\x03\x05*;\x03\x05\x16\x1b\x03\x04.-\x03\x06\x1a\x19\x03\x04\x03," + + "\x03\x0b87\x03\x04/\x0a\x03\x06\x00,\x03\x04-\x01\x03\x04\x1e-\x03\x06/(" + + "\x03\x0a\x0b5\x03\x06\x0e7\x03\x06\x07.\x03\x0597\x03\x0a*%\x03\x0760" + + "\x03\x06\x0c;\x03\x05'\x00\x03\x072.\x03\x072\x08\x03\x06=\x01\x03\x06" + + "\x05\x1b\x03\x06\x06\x12\x03\x06$=\x03\x06'\x0d\x03\x04\x11\x0f\x03\x076" + + ",\x03\x06\x07;\x03\x06.,\x03\x86\xf9\xea\x03\x8f\xff\xeb\x02\x092\x02" + + "\x095\x02\x094\x02\x09;\x02\x09>\x02\x098\x02\x09*\x02\x09/\x02\x09,\x02" + + "\x09%\x02\x09&\x02\x09#\x02\x09 \x02\x08!\x02\x08%\x02\x08$\x02\x08+\x02" + + "\x08.\x02\x08*\x02\x08&\x02\x088\x02\x08>\x02\x084\x02\x086\x02\x080\x02" + + "\x08\x10\x02\x08\x17\x02\x08\x12\x02\x08\x1d\x02\x08\x1f\x02\x08\x13\x02" + + "\x08\x15\x02\x08\x14\x02\x08\x0c\x03\x8b\xfd\xd0\x03\x81\xec\xc6\x03\x87" + + "\xe0\x8a\x03-2\xe3\x03\x80\xef\xe4\x03-2\xea\x03\x88\xe6\xeb\x03\x8e\xe6" + + "\xe8\x03\x84\xe6\xe9\x03\x97\xe6\xee\x03-2\xf9\x03-2\xf6\x03\x8e\xe3\xad" + + "\x03\x80\xe3\x92\x03\x88\xe3\x90\x03\x8e\xe3\x90\x03\x80\xe3\x97\x03\x88" + + "\xe3\x95\x03\x88\xfe\xcb\x03\x8e\xfe\xca\x03\x84\xfe\xcd\x03\x91\xef\xc9" + + "\x03-2\xc1\x03-2\xc0\x03-2\xcb\x03\x88@\x09\x03\x8e@\x08\x03\x8f\xe0\xf5" + + "\x03\x8e\xe6\xf9\x03\x8e\xe0\xfa\x03\x93\xff\xf4\x03\x84\xee\xd3\x03\x0b" + + "(\x04\x023 \x021;\x02\x01*\x03\x0b#\x10\x03\x0b 0\x03\x0b!\x10\x03\x0b!0" + + "\x03\x07\x15\x08\x03\x09?5\x03\x07\x1f\x08\x03\x07\x17\x0b\x03\x09\x1f" + + "\x15\x03\x0b\x1c7\x03\x0a+#\x03\x06\x1a\x1b\x03\x06\x1a\x14\x03\x0a\x01" + + "\x18\x03\x06#\x1b\x03\x0a2\x0c\x03\x0a\x01\x04\x03\x09#;\x03\x08='\x03" + + "\x08\x1a\x0a\x03\x07\x03\x0a\x111\x03\x09\x1b\x09\x03\x073.\x03\x07\x01\x00" + + "\x03\x09/,\x03\x07#>\x03\x07\x048\x03\x0a\x1f\x22\x03\x098>\x03\x09\x11" + + "\x00\x03\x08/\x17\x03\x06'\x22\x03\x0b\x1a+\x03\x0a\x22\x19\x03\x0a/1" + + "\x03\x0974\x03\x09\x0f\x22\x03\x08,\x22\x03\x08?\x14\x03\x07$5\x03\x07<3" + + "\x03\x07=*\x03\x07\x13\x18\x03\x068\x0a\x03\x06\x09\x16\x03\x06\x13\x00" + + "\x03\x08\x067\x03\x08\x01\x03\x03\x08\x12\x1d\x03\x07+7\x03\x06(;\x03" + + "\x06\x1c?\x03\x07\x0e\x17\x03\x0a\x06\x1d\x03\x0a\x19\x07\x03\x08\x14$" + + "\x03\x07$;\x03\x08,$\x03\x08\x06\x0d\x03\x07\x16\x0a\x03\x06>>\x03\x0a" + + "\x06\x12\x03\x0a\x14)\x03\x09\x0d\x1f\x03\x09\x12\x17\x03\x09\x19\x01" + + "\x03\x08\x11 \x03\x08\x1d'\x03\x06<\x1a\x03\x0a.\x00\x03\x07'\x18\x03" + + "\x0a\x22\x08\x03\x08\x0d\x0a\x03\x08\x13)\x03\x07*)\x03\x06<,\x03\x07" + + "\x0b\x1a\x03\x09.\x14\x03\x09\x0d\x1e\x03\x07\x0e#\x03\x0b\x1d'\x03\x0a" + + "\x0a8\x03\x09%2\x03\x08+&\x03\x080\x12\x03\x0a)4\x03\x08\x06\x1f\x03\x0b" + + "\x1b\x1a\x03\x0a\x1b\x0f\x03\x0b\x1d*\x03\x09\x16$\x03\x090\x11\x03\x08" + + "\x11\x08\x03\x0a*(\x03\x0a\x042\x03\x089,\x03\x074'\x03\x07\x0f\x05\x03" + + "\x09\x0b\x0a\x03\x07\x1b\x01\x03\x09\x17:\x03\x09.\x0d\x03\x07.\x11\x03" + + "\x09+\x15\x03\x080\x13\x03\x0b\x1f\x19\x03\x0a \x11\x03\x0a\x220\x03\x09" + + "\x07;\x03\x08\x16\x1c\x03\x07,\x13\x03\x07\x0e/\x03\x06\x221\x03\x0a." + + "\x0a\x03\x0a7\x02\x03\x0a\x032\x03\x0a\x1d.\x03\x091\x06\x03\x09\x19:" + + "\x03\x08\x02/\x03\x060+\x03\x06\x0f-\x03\x06\x1c\x1f\x03\x06\x1d\x07\x03" + + "\x0a,\x11\x03\x09=\x0d\x03\x09\x0b;\x03\x07\x1b/\x03\x0a\x1f:\x03\x09 " + + "\x1f\x03\x09.\x10\x03\x094\x0b\x03\x09\x1a1\x03\x08#\x1a\x03\x084\x1d" + + "\x03\x08\x01\x1f\x03\x08\x11\x22\x03\x07'8\x03\x07\x1a>\x03\x0757\x03" + + "\x06&9\x03\x06+\x11\x03\x0a.\x0b\x03\x0a,>\x03\x0a4#\x03\x08%\x17\x03" + + "\x07\x05\x22\x03\x07\x0c\x0b\x03\x0a\x1d+\x03\x0a\x19\x16\x03\x09+\x1f" + + "\x03\x09\x08\x0b\x03\x08\x16\x18\x03\x08+\x12\x03\x0b\x1d\x0c\x03\x0a=" + + "\x10\x03\x0a\x09\x0d\x03\x0a\x10\x11\x03\x09&0\x03\x08(\x1f\x03\x087\x07" + + "\x03\x08\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06," + + "\x03\x0b\x18>\x03\x08\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\x09%\x18\x03" + + "\x0b\x1c<\x03\x0a%!\x03\x0a\x09\x12\x03\x0a\x16\x02\x03\x090'\x03\x09" + + "\x0e=\x03\x08 \x0e\x03\x08>\x03\x03\x074>\x03\x06&?\x03\x06\x19\x09\x03" + + "\x06?(\x03\x0a-\x0e\x03\x09:3\x03\x098:\x03\x09\x12\x0b\x03\x09\x1d\x17" + + "\x03\x087\x05\x03\x082\x14\x03\x08\x06%\x03\x08\x13\x1f\x03\x06\x06\x0e" + + "\x03\x0a\x22<\x03\x09/<\x03\x06>+\x03\x0a'?\x03\x0a\x13\x0c\x03\x09\x10<" + + "\x03\x07\x1b=\x03\x0a\x19\x13\x03\x09\x22\x1d\x03\x09\x07\x0d\x03\x08)" + + "\x1c\x03\x06=\x1a\x03\x0a/4\x03\x0a7\x11\x03\x0a\x16:\x03\x09?3\x03\x09:" + + "/\x03\x09\x05\x0a\x03\x09\x14\x06\x03\x087\x22\x03\x080\x07\x03\x08\x1a" + + "\x1f\x03\x07\x04(\x03\x07\x04\x09\x03\x06 %\x03\x06<\x08\x03\x0a+\x14" + + "\x03\x09\x1d\x16\x03\x0a70\x03\x08 >\x03\x0857\x03\x070\x0a\x03\x06=\x12" + + "\x03\x06\x16%\x03\x06\x1d,\x03\x099#\x03\x09\x10>\x03\x07 \x1e\x03\x08" + + "\x0c<\x03\x08\x0b\x18\x03\x08\x15+\x03\x08,:\x03\x08%\x22\x03\x07\x0a$" + + "\x03\x0b\x1c=\x03\x07+\x08\x03\x0a/\x05\x03\x0a \x07\x03\x0a\x12'\x03" + + "\x09#\x11\x03\x08\x1b\x15\x03\x0a\x06\x01\x03\x09\x1c\x1b\x03\x0922\x03" + + "\x07\x14<\x03\x07\x09\x04\x03\x061\x04\x03\x07\x0e\x01\x03\x0a\x13\x18" + + "\x03\x0a-\x0c\x03\x0a?\x0d\x03\x0a\x09\x0a\x03\x091&\x03\x0a/\x0b\x03" + + "\x08$<\x03\x083\x1d\x03\x08\x0c$\x03\x08\x0d\x07\x03\x08\x0d?\x03\x08" + + "\x0e\x14\x03\x065\x0a\x03\x08\x1a#\x03\x08\x16#\x03\x0702\x03\x07\x03" + + "\x1a\x03\x06(\x1d\x03\x06+\x1b\x03\x06\x0b\x05\x03\x06\x0b\x17\x03\x06" + + "\x0c\x04\x03\x06\x1e\x19\x03\x06+0\x03\x062\x18\x03\x0b\x16\x1e\x03\x0a+" + + "\x16\x03\x0a-?\x03\x0a#:\x03\x0a#\x10\x03\x0a%$\x03\x0a>+\x03\x0a01\x03" + + "\x0a1\x10\x03\x0a\x099\x03\x0a\x0a\x12\x03\x0a\x19\x1f\x03\x0a\x19\x12" + + "\x03\x09*)\x03\x09-\x16\x03\x09.1\x03\x09.2\x03\x09<\x0e\x03\x09> \x03" + + "\x093\x12\x03\x09\x0b\x01\x03\x09\x1c2\x03\x09\x11\x1c\x03\x09\x15%\x03" + + "\x08,&\x03\x08!\x22\x03\x089(\x03\x08\x0b\x1a\x03\x08\x0d2\x03\x08\x0c" + + "\x04\x03\x08\x0c\x06\x03\x08\x0c\x1f\x03\x08\x0c\x0c\x03\x08\x0f\x1f\x03" + + "\x08\x0f\x1d\x03\x08\x00\x14\x03\x08\x03\x14\x03\x08\x06\x16\x03\x08\x1e" + + "#\x03\x08\x11\x11\x03\x08\x10\x18\x03\x08\x14(\x03\x07)\x1e\x03\x07.1" + + "\x03\x07 $\x03\x07 '\x03\x078\x08\x03\x07\x0d0\x03\x07\x0f7\x03\x07\x05#" + + "\x03\x07\x05\x1a\x03\x07\x1a7\x03\x07\x1d-\x03\x07\x17\x10\x03\x06)\x1f" + + "\x03\x062\x0b\x03\x066\x16\x03\x06\x09\x11\x03\x09(\x1e\x03\x07!5\x03" + + "\x0b\x11\x16\x03\x0a/\x04\x03\x0a,\x1a\x03\x0b\x173\x03\x0a,1\x03\x0a/5" + + "\x03\x0a\x221\x03\x0a\x22\x0d\x03\x0a?%\x03\x0a<,\x03\x0a?#\x03\x0a>\x19" + + "\x03\x0a\x08&\x03\x0a\x0b\x0e\x03\x0a\x0c:\x03\x0a\x0c+\x03\x0a\x03\x22" + + "\x03\x0a\x06)\x03\x0a\x11\x10\x03\x0a\x11\x1a\x03\x0a\x17-\x03\x0a\x14(" + + "\x03\x09)\x1e\x03\x09/\x09\x03\x09.\x00\x03\x09,\x07\x03\x09/*\x03\x09-9" + + "\x03\x09\x228\x03\x09%\x09\x03\x09:\x12\x03\x09;\x1d\x03\x09?\x06\x03" + + "\x093%\x03\x096\x05\x03\x096\x08\x03\x097\x02\x03\x09\x07,\x03\x09\x04," + + "\x03\x09\x1f\x16\x03\x09\x11\x03\x03\x09\x11\x12\x03\x09\x168\x03\x08*" + + "\x05\x03\x08/2\x03\x084:\x03\x08\x22+\x03\x08 0\x03\x08&\x0a\x03\x08;" + + "\x10\x03\x08>$\x03\x08>\x18\x03\x0829\x03\x082:\x03\x081,\x03\x081<\x03" + + "\x081\x1c\x03\x087#\x03\x087*\x03\x08\x09'\x03\x08\x00\x1d\x03\x08\x05-" + + "\x03\x08\x1f4\x03\x08\x1d\x04\x03\x08\x16\x0f\x03\x07*7\x03\x07'!\x03" + + "\x07%\x1b\x03\x077\x0c\x03\x07\x0c1\x03\x07\x0c.\x03\x07\x00\x06\x03\x07" + + "\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03" + + "\x07\x06\x06\x03\x07\x05\x0a\x03\x07\x1f\x09\x03\x07\x17:\x03\x06*1\x03" + + "\x06-\x1d\x03\x06\x223\x03\x062:\x03\x060$\x03\x066\x1e\x03\x064\x12\x03" + + "\x0645\x03\x06\x0b\x00\x03\x06\x0b7\x03\x06\x07\x1f\x03\x06\x15\x12\x03" + + "\x0c\x05\x0f\x03\x0b+\x0b\x03\x0b+-\x03\x06\x16\x1b\x03\x06\x15\x17\x03" + + "\x89\xca\xea\x03\x89\xca\xe8\x03\x0c8\x10\x03\x0c8\x01\x03\x0c8\x0f\x03" + + "\x0d8%\x03\x0d8!\x03\x0c8-\x03\x0c8/\x03\x0c8+\x03\x0c87\x03\x0c85\x03" + + "\x0c9\x09\x03\x0c9\x0d\x03\x0c9\x0f\x03\x0c9\x0b\x03\xcfu\x0c\x03\xcfu" + + "\x0f\x03\xcfu\x0e\x03\xcfu\x09\x03\x0c9\x10\x03\x0d9\x0c\x03\xcf`;\x03" + + "\xcf`>\x03\xcf`9\x03\xcf`8\x03\xcf`7\x03\xcf`*\x03\xcf`-\x03\xcf`,\x03" + + "\x0d\x1b\x1a\x03\x0d\x1b&\x03\x0c=.\x03\x0c=%\x03\x0c>\x1e\x03\x0c>\x14" + + "\x03\x0c?\x06\x03\x0c?\x0b\x03\x0c?\x0c\x03\x0c?\x0d\x03\x0c?\x02\x03" + + "\x0c>\x0f\x03\x0c>\x08\x03\x0c>\x09\x03\x0c>,\x03\x0c>\x0c\x03\x0c?\x13" + + "\x03\x0c?\x16\x03\x0c?\x15\x03\x0c?\x1c\x03\x0c?\x1f\x03\x0c?\x1d\x03" + + "\x0c?\x1a\x03\x0c?\x17\x03\x0c?\x08\x03\x0c?\x09\x03\x0c?\x0e\x03\x0c?" + + "\x04\x03\x0c?\x05\x03\x0c" + + "\x03\x0c=2\x03\x0c=6\x03\x0c<\x07\x03\x0c<\x05\x03\x0e:!\x03\x0e:#\x03" + + "\x0e8\x09\x03\x0e:&\x03\x0e8\x0b\x03\x0e:$\x03\x0e:,\x03\x0e8\x1a\x03" + + "\x0e8\x1e\x03\x0e:*\x03\x0e:7\x03\x0e:5\x03\x0e:;\x03\x0e:\x15\x03\x0e:<" + + "\x03\x0e:4\x03\x0e:'\x03\x0e:-\x03\x0e:%\x03\x0e:?\x03\x0e:=\x03\x0e:)" + + "\x03\x0e:/\x03\xcfs'\x03\x0d=\x0f\x03\x0d+*\x03\x0d99\x03\x0d9;\x03\x0d9" + + "?\x03\x0d)\x0d\x03\x0d(%\x02\x01\x18\x02\x01(\x02\x01\x1e\x03\x0f$!\x03" + + "\x0f87\x03\x0f4\x0e\x03\x0f5\x1d\x03\x06'\x03\x03\x0f\x08\x18\x03\x0f" + + "\x0d\x1b\x03\x0e2=\x03\x0e;\x08\x03\x0e:\x0b\x03\x0e\x06$\x03\x0e\x0d)" + + "\x03\x0e\x16\x1f\x03\x0e\x16\x1b\x03\x0d$\x0a\x03\x05,\x1d\x03\x0d. \x03" + + "\x0d.#\x03\x0c(/\x03\x09%\x02\x03\x0d90\x03\x0d\x0e4\x03\x0d\x0d\x0f\x03" + + "\x0c#\x00\x03\x0c,\x1e\x03\x0c2\x0e\x03\x0c\x01\x17\x03\x0c\x09:\x03\x0e" + + "\x173\x03\x0c\x08\x03\x03\x0c\x11\x07\x03\x0c\x10\x18\x03\x0c\x1f\x1c" + + "\x03\x0c\x19\x0e\x03\x0c\x1a\x1f\x03\x0f0>\x03\x0b->\x03\x0b<+\x03\x0b8" + + "\x13\x03\x0b\x043\x03\x0b\x14\x03\x03\x0b\x16%\x03\x0d\x22&\x03\x0b\x1a" + + "\x1a\x03\x0b\x1a\x04\x03\x0a%9\x03\x0a&2\x03\x0a&0\x03\x0a!\x1a\x03\x0a!" + + "7\x03\x0a5\x10\x03\x0a=4\x03\x0a?\x0e\x03\x0a>\x10\x03\x0a\x00 \x03\x0a" + + "\x0f:\x03\x0a\x0f9\x03\x0a\x0b\x0a\x03\x0a\x17%\x03\x0a\x1b-\x03\x09-" + + "\x1a\x03\x09,4\x03\x09.,\x03\x09)\x09\x03\x096!\x03\x091\x1f\x03\x093" + + "\x16\x03\x0c+\x1f\x03\x098 \x03\x098=\x03\x0c(\x1a\x03\x0c(\x16\x03\x09" + + "\x0a+\x03\x09\x16\x12\x03\x09\x13\x0e\x03\x09\x153\x03\x08)!\x03\x09\x1a" + + "\x01\x03\x09\x18\x01\x03\x08%#\x03\x08>\x22\x03\x08\x05%\x03\x08\x02*" + + "\x03\x08\x15;\x03\x08\x1b7\x03\x0f\x07\x1d\x03\x0f\x04\x03\x03\x070\x0c" + + "\x03\x07;\x0b\x03\x07\x08\x17\x03\x07\x12\x06\x03\x06/-\x03\x0671\x03" + + "\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1e\x03\x05,\x17\x03\x05 \x1d\x03" + + "\x05\x22\x05\x03\x050\x1d" + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// idnaTrie. Total size: 29052 bytes (28.37 KiB). Checksum: ef06e7ecc26f36dd. +type idnaTrie struct{} + +func newIdnaTrie(i int) *idnaTrie { + return &idnaTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *idnaTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 125: + return uint16(idnaValues[n<<6+uint32(b)]) + default: + n -= 125 + return uint16(idnaSparse.lookup(n, b)) + } +} + +// idnaValues: 127 blocks, 8128 entries, 16256 bytes +// The third block is the zero block. +var idnaValues = [8128]uint16{ + // Block 0x0, offset 0x0 + 0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080, + 0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080, + 0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080, + 0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080, + 0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080, + 0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080, + 0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080, + 0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080, + 0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008, + 0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080, + 0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080, + // Block 0x1, offset 0x40 + 0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105, + 0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105, + 0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105, + 0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105, + 0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080, + 0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008, + 0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008, + 0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008, + 0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008, + 0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080, + 0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040, + 0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040, + 0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040, + 0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040, + 0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040, + 0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018, + 0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018, + 0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a, + 0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005, + 0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018, + 0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018, + // Block 0x4, offset 0x100 + 0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008, + 0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008, + 0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008, + 0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008, + 0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008, + 0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008, + 0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008, + 0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008, + 0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008, + 0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d, + 0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199, + // Block 0x5, offset 0x140 + 0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d, + 0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008, + 0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008, + 0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008, + 0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008, + 0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008, + 0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008, + 0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008, + 0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008, + 0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d, + 0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9, + // Block 0x6, offset 0x180 + 0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008, + 0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d, + 0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d, + 0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d, + 0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155, + 0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008, + 0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d, + 0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd, + 0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d, + 0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008, + 0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9, + 0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d, + 0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d, + 0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d, + 0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008, + 0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008, + 0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008, + 0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008, + 0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008, + 0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008, + 0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008, + // Block 0x8, offset 0x200 + 0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008, + 0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008, + 0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008, + 0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008, + 0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008, + 0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008, + 0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008, + 0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008, + 0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008, + 0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d, + 0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008, + // Block 0x9, offset 0x240 + 0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018, + 0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008, + 0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008, + 0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018, + 0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a, + 0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369, + 0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018, + 0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018, + 0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018, + 0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018, + 0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018, + // Block 0xa, offset 0x280 + 0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d, + 0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308, + 0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308, + 0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308, + 0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308, + 0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308, + 0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308, + 0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308, + 0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008, + 0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008, + 0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2, + 0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040, + 0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105, + 0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105, + 0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105, + 0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d, + 0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d, + 0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008, + 0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008, + 0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008, + 0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008, + // Block 0xc, offset 0x300 + 0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008, + 0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008, + 0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd, + 0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008, + 0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008, + 0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008, + 0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008, + 0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008, + 0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd, + 0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008, + 0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d, + // Block 0xd, offset 0x340 + 0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008, + 0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008, + 0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008, + 0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008, + 0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008, + 0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008, + 0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008, + 0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008, + 0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008, + 0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008, + 0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008, + // Block 0xe, offset 0x380 + 0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308, + 0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008, + 0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008, + 0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008, + 0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008, + 0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008, + 0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008, + 0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008, + 0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008, + 0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008, + 0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d, + 0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d, + 0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008, + 0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008, + 0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008, + 0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008, + 0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008, + 0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008, + 0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008, + 0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008, + 0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008, + // Block 0x10, offset 0x400 + 0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008, + 0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008, + 0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008, + 0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008, + 0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008, + 0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008, + 0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008, + 0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008, + 0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5, + 0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5, + 0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5, + // Block 0x11, offset 0x440 + 0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840, + 0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818, + 0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308, + 0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308, + 0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040, + 0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08, + 0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08, + 0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08, + 0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08, + 0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08, + 0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08, + // Block 0x12, offset 0x480 + 0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08, + 0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308, + 0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308, + 0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308, + 0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308, + 0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808, + 0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808, + 0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08, + 0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429, + 0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08, + 0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08, + 0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08, + 0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08, + 0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308, + 0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840, + 0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308, + 0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018, + 0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08, + 0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008, + 0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08, + 0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08, + // Block 0x14, offset 0x500 + 0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818, + 0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818, + 0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308, + 0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08, + 0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08, + 0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08, + 0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08, + 0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08, + 0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308, + 0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308, + 0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308, + // Block 0x15, offset 0x540 + 0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08, + 0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08, + 0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08, + 0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808, + 0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040, + 0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08, + 0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08, + 0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040, + 0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040, + 0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040, + 0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040, + // Block 0x16, offset 0x580 + 0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308, + 0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008, + 0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308, + 0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308, + 0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1, + 0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308, + 0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008, + 0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008, + 0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008, + 0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008, + 0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008, + 0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008, + 0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040, + 0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008, + 0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008, + 0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008, + 0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040, + 0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008, + 0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040, + 0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040, + 0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008, + // Block 0x18, offset 0x600 + 0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040, + 0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008, + 0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040, + 0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008, + 0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1, + 0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308, + 0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008, + 0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008, + 0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018, + 0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018, + 0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x0040, 0x63f: 0x0040, + // Block 0x19, offset 0x640 + 0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008, + 0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040, + 0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040, + 0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008, + 0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008, + 0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008, + 0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040, + 0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008, + 0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008, + 0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040, + 0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008, + // Block 0x1a, offset 0x680 + 0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040, + 0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308, + 0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308, + 0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040, + 0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040, + 0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040, + 0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008, + 0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008, + 0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308, + 0x6b6: 0x0040, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040, + 0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008, + 0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008, + 0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008, + 0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008, + 0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008, + 0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008, + 0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040, + 0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008, + 0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008, + 0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040, + 0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008, + // Block 0x1c, offset 0x700 + 0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308, + 0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008, + 0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040, + 0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040, + 0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040, + 0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308, + 0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008, + 0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008, + 0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040, + 0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308, + 0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308, + // Block 0x1d, offset 0x740 + 0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008, + 0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008, + 0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040, + 0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008, + 0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008, + 0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008, + 0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040, + 0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008, + 0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008, + 0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040, + 0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308, + // Block 0x1e, offset 0x780 + 0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040, + 0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008, + 0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040, + 0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008, + 0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9, + 0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308, + 0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008, + 0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008, + 0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018, + 0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040, + 0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008, + 0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040, + 0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040, + 0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040, + 0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040, + 0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008, + 0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008, + 0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008, + 0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008, + 0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040, + 0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008, + // Block 0x20, offset 0x800 + 0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040, + 0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308, + 0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040, + 0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040, + 0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040, + 0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308, + 0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008, + 0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008, + 0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040, + 0x836: 0x0040, 0x837: 0x0040, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018, + 0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018, + // Block 0x21, offset 0x840 + 0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0040, 0x845: 0x0008, + 0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008, + 0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040, + 0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008, + 0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008, + 0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008, + 0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040, + 0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008, + 0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008, + 0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040, + 0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308, + // Block 0x22, offset 0x880 + 0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040, + 0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008, + 0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040, + 0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040, + 0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040, + 0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308, + 0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008, + 0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008, + 0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040, + 0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040, + 0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040, + 0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008, + 0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040, + 0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008, + 0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018, + 0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308, + 0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008, + 0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008, + 0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018, + 0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008, + 0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008, + // Block 0x24, offset 0x900 + 0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040, + 0x906: 0x0040, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0040, 0x90a: 0x0008, 0x90b: 0x0040, + 0x90c: 0x0040, 0x90d: 0x0008, 0x90e: 0x0040, 0x90f: 0x0040, 0x910: 0x0040, 0x911: 0x0040, + 0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008, + 0x918: 0x0040, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008, + 0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0040, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008, + 0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0040, 0x929: 0x0040, + 0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0040, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008, + 0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308, + 0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x0040, 0x93b: 0x3308, + 0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040, + // Block 0x25, offset 0x940 + 0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008, + 0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008, + 0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008, + 0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79, + 0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008, + 0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008, + 0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9, + 0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040, + 0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59, + 0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308, + 0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008, + // Block 0x26, offset 0x980 + 0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018, + 0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008, + 0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308, + 0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308, + 0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11, + 0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308, + 0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308, + 0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308, + 0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308, + 0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308, + 0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008, + 0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008, + 0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008, + 0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008, + 0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008, + 0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008, + 0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008, + 0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008, + 0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41, + 0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008, + 0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269, + // Block 0x28, offset 0xa00 + 0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1, + 0xa06: 0x059d, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011, + 0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041, + 0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05b5, 0xa15: 0x05b5, 0xa16: 0x0f99, 0xa17: 0x0fa9, + 0xa18: 0x0fb9, 0xa19: 0x059d, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05cd, 0xa1d: 0x1099, + 0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269, + 0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1, + 0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008, + 0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008, + 0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008, + 0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008, + // Block 0x29, offset 0xa40 + 0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008, + 0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008, + 0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008, + 0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008, + 0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169, + 0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9, + 0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05e5, 0xa68: 0x1239, 0xa69: 0x1251, + 0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9, + 0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359, + 0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x05fd, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1, + 0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429, + // Block 0x2a, offset 0xa80 + 0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008, + 0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008, + 0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008, + 0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008, + 0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008, + 0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008, + 0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008, + 0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008, + 0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008, + 0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008, + 0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008, + // Block 0x2b, offset 0xac0 + 0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008, + 0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008, + 0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008, + 0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008, + 0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x0615, 0xadb: 0x0635, 0xadc: 0x0008, 0xadd: 0x0008, + 0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008, + 0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008, + 0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008, + 0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008, + 0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008, + 0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008, + 0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045, + 0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008, + 0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008, + 0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045, + 0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008, + 0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045, + 0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045, + 0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489, + 0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1, + 0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040, + // Block 0x2d, offset 0xb40 + 0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1, + 0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591, + 0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1, + 0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1, + 0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771, + 0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891, + 0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831, + 0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951, + 0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040, + 0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x064d, 0xb7b: 0x1459, + 0xb7c: 0x19b1, 0xb7d: 0x0666, 0xb7e: 0x1a31, 0xb7f: 0x0686, + // Block 0x2e, offset 0xb80 + 0xb80: 0x06a6, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040, + 0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06c5, 0xb89: 0x1471, 0xb8a: 0x06dd, 0xb8b: 0x1489, + 0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008, + 0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008, + 0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x06f5, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2, + 0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61, + 0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045, + 0xbaa: 0x070d, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa, + 0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040, + 0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x0725, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9, + 0xbbc: 0x1ce9, 0xbbd: 0x073e, 0xbbe: 0x075e, 0xbbf: 0x0040, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a, + 0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0, + 0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d, + 0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x077e, + 0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018, + 0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018, + 0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040, + 0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a, + 0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018, + 0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018, + 0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x079e, 0xbff: 0x0018, + // Block 0x30, offset 0xc00 + 0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018, + 0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018, + 0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018, + 0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9, + 0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018, + 0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340, + 0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040, + 0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340, + 0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61, + 0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07bd, + 0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71, + // Block 0x31, offset 0xc40 + 0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61, + 0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07d5, + 0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09, + 0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359, + 0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040, + 0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018, + 0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018, + 0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018, + 0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018, + 0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018, + 0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018, + // Block 0x32, offset 0xc80 + 0xc80: 0x07ee, 0xc81: 0x080e, 0xc82: 0x1159, 0xc83: 0x082d, 0xc84: 0x0018, 0xc85: 0x084e, + 0xc86: 0x086e, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x088d, 0xc8a: 0x0f31, 0xc8b: 0x0249, + 0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41, + 0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018, + 0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269, + 0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08ad, 0xca2: 0x2061, 0xca3: 0x0018, + 0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018, + 0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09, + 0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9, + 0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08cd, + 0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x08ed, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9, + 0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018, + 0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151, + 0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279, + 0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399, + 0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x0905, 0xce3: 0x2439, + 0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x0925, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369, + 0xcea: 0x24a9, 0xceb: 0x0945, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61, + 0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x0965, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451, + 0xcf6: 0x0985, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09a5, + 0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61, + // Block 0x34, offset 0xd00 + 0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018, + 0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040, + 0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040, + 0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040, + 0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040, + 0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51, + 0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601, + 0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691, + 0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a06, 0xd35: 0x0a26, + 0xd36: 0x0a46, 0xd37: 0x0a66, 0xd38: 0x0a86, 0xd39: 0x0aa6, 0xd3a: 0x0ac6, 0xd3b: 0x0ae6, + 0xd3c: 0x0b06, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a, + // Block 0x35, offset 0xd40 + 0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a, + 0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040, + 0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040, + 0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040, + 0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b26, 0xd5d: 0x0b46, + 0xd5e: 0x0b66, 0xd5f: 0x0b86, 0xd60: 0x0ba6, 0xd61: 0x0bc6, 0xd62: 0x0be6, 0xd63: 0x0c06, + 0xd64: 0x0c26, 0xd65: 0x0c46, 0xd66: 0x0c66, 0xd67: 0x0c86, 0xd68: 0x0ca6, 0xd69: 0x0cc6, + 0xd6a: 0x0ce6, 0xd6b: 0x0d06, 0xd6c: 0x0d26, 0xd6d: 0x0d46, 0xd6e: 0x0d66, 0xd6f: 0x0d86, + 0xd70: 0x0da6, 0xd71: 0x0dc6, 0xd72: 0x0de6, 0xd73: 0x0e06, 0xd74: 0x0e26, 0xd75: 0x0e46, + 0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199, + 0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259, + // Block 0x36, offset 0xd80 + 0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99, + 0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089, + 0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9, + 0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249, + 0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71, + 0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9, + 0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1, + 0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018, + 0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018, + 0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018, + 0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008, + 0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008, + 0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008, + 0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008, + 0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008, + 0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ebd, + 0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d, + 0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9, + 0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d, + 0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008, + 0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9, + // Block 0x38, offset 0xe00 + 0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008, + 0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008, + 0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008, + 0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008, + 0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008, + 0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008, + 0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018, + 0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308, + 0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040, + 0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018, + 0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018, + // Block 0x39, offset 0xe40 + 0xe40: 0x26fd, 0xe41: 0x271d, 0xe42: 0x273d, 0xe43: 0x275d, 0xe44: 0x277d, 0xe45: 0x279d, + 0xe46: 0x27bd, 0xe47: 0x27dd, 0xe48: 0x27fd, 0xe49: 0x281d, 0xe4a: 0x283d, 0xe4b: 0x285d, + 0xe4c: 0x287d, 0xe4d: 0x289d, 0xe4e: 0x28bd, 0xe4f: 0x28dd, 0xe50: 0x28fd, 0xe51: 0x291d, + 0xe52: 0x293d, 0xe53: 0x295d, 0xe54: 0x297d, 0xe55: 0x299d, 0xe56: 0x0040, 0xe57: 0x0040, + 0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040, + 0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040, + 0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040, + 0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040, + 0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040, + 0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040, + 0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040, + // Block 0x3a, offset 0xe80 + 0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008, + 0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018, + 0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018, + 0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018, + 0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018, + 0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018, + 0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018, + 0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018, + 0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018, + 0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29bd, 0xeb9: 0x29dd, 0xeba: 0x29fd, 0xebb: 0x0018, + 0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018, + // Block 0x3b, offset 0xec0 + 0xec0: 0x2b3d, 0xec1: 0x2b5d, 0xec2: 0x2b7d, 0xec3: 0x2b9d, 0xec4: 0x2bbd, 0xec5: 0x2bdd, + 0xec6: 0x2bdd, 0xec7: 0x2bdd, 0xec8: 0x2bfd, 0xec9: 0x2bfd, 0xeca: 0x2bfd, 0xecb: 0x2bfd, + 0xecc: 0x2c1d, 0xecd: 0x2c1d, 0xece: 0x2c1d, 0xecf: 0x2c3d, 0xed0: 0x2c5d, 0xed1: 0x2c5d, + 0xed2: 0x2a7d, 0xed3: 0x2a7d, 0xed4: 0x2c5d, 0xed5: 0x2c5d, 0xed6: 0x2c7d, 0xed7: 0x2c7d, + 0xed8: 0x2c5d, 0xed9: 0x2c5d, 0xeda: 0x2a7d, 0xedb: 0x2a7d, 0xedc: 0x2c5d, 0xedd: 0x2c5d, + 0xede: 0x2c3d, 0xedf: 0x2c3d, 0xee0: 0x2c9d, 0xee1: 0x2c9d, 0xee2: 0x2cbd, 0xee3: 0x2cbd, + 0xee4: 0x0040, 0xee5: 0x2cdd, 0xee6: 0x2cfd, 0xee7: 0x2d1d, 0xee8: 0x2d1d, 0xee9: 0x2d3d, + 0xeea: 0x2d5d, 0xeeb: 0x2d7d, 0xeec: 0x2d9d, 0xeed: 0x2dbd, 0xeee: 0x2ddd, 0xeef: 0x2dfd, + 0xef0: 0x2e1d, 0xef1: 0x2e3d, 0xef2: 0x2e3d, 0xef3: 0x2e5d, 0xef4: 0x2e7d, 0xef5: 0x2e7d, + 0xef6: 0x2e9d, 0xef7: 0x2ebd, 0xef8: 0x2e5d, 0xef9: 0x2edd, 0xefa: 0x2efd, 0xefb: 0x2edd, + 0xefc: 0x2e5d, 0xefd: 0x2f1d, 0xefe: 0x2f3d, 0xeff: 0x2f5d, + // Block 0x3c, offset 0xf00 + 0xf00: 0x2f7d, 0xf01: 0x2f9d, 0xf02: 0x2cfd, 0xf03: 0x2cdd, 0xf04: 0x2fbd, 0xf05: 0x2fdd, + 0xf06: 0x2ffd, 0xf07: 0x301d, 0xf08: 0x303d, 0xf09: 0x305d, 0xf0a: 0x307d, 0xf0b: 0x309d, + 0xf0c: 0x30bd, 0xf0d: 0x30dd, 0xf0e: 0x30fd, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018, + 0xf12: 0x311d, 0xf13: 0x313d, 0xf14: 0x315d, 0xf15: 0x317d, 0xf16: 0x319d, 0xf17: 0x31bd, + 0xf18: 0x31dd, 0xf19: 0x31fd, 0xf1a: 0x321d, 0xf1b: 0x323d, 0xf1c: 0x315d, 0xf1d: 0x325d, + 0xf1e: 0x327d, 0xf1f: 0x329d, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008, + 0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008, + 0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008, + 0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008, + 0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040, + 0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040, + // Block 0x3d, offset 0xf40 + 0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32bd, 0xf45: 0x32dd, + 0xf46: 0x32fd, 0xf47: 0x331d, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018, + 0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x333d, 0xf51: 0x3761, + 0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1, + 0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881, + 0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x335d, 0xf61: 0x337d, 0xf62: 0x339d, 0xf63: 0x33bd, + 0xf64: 0x33dd, 0xf65: 0x33dd, 0xf66: 0x33fd, 0xf67: 0x341d, 0xf68: 0x343d, 0xf69: 0x345d, + 0xf6a: 0x347d, 0xf6b: 0x349d, 0xf6c: 0x34bd, 0xf6d: 0x34dd, 0xf6e: 0x34fd, 0xf6f: 0x351d, + 0xf70: 0x353d, 0xf71: 0x355d, 0xf72: 0x357d, 0xf73: 0x359d, 0xf74: 0x35bd, 0xf75: 0x35dd, + 0xf76: 0x35fd, 0xf77: 0x361d, 0xf78: 0x363d, 0xf79: 0x365d, 0xf7a: 0x367d, 0xf7b: 0x369d, + 0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36bd, 0xf7f: 0x0018, + // Block 0x3e, offset 0xf80 + 0xf80: 0x36dd, 0xf81: 0x36fd, 0xf82: 0x371d, 0xf83: 0x373d, 0xf84: 0x375d, 0xf85: 0x377d, + 0xf86: 0x379d, 0xf87: 0x37bd, 0xf88: 0x37dd, 0xf89: 0x37fd, 0xf8a: 0x381d, 0xf8b: 0x383d, + 0xf8c: 0x385d, 0xf8d: 0x387d, 0xf8e: 0x389d, 0xf8f: 0x38bd, 0xf90: 0x38dd, 0xf91: 0x38fd, + 0xf92: 0x391d, 0xf93: 0x393d, 0xf94: 0x395d, 0xf95: 0x397d, 0xf96: 0x399d, 0xf97: 0x39bd, + 0xf98: 0x39dd, 0xf99: 0x39fd, 0xf9a: 0x3a1d, 0xf9b: 0x3a3d, 0xf9c: 0x3a5d, 0xf9d: 0x3a7d, + 0xf9e: 0x3a9d, 0xf9f: 0x3abd, 0xfa0: 0x3add, 0xfa1: 0x3afd, 0xfa2: 0x3b1d, 0xfa3: 0x3b3d, + 0xfa4: 0x3b5d, 0xfa5: 0x3b7d, 0xfa6: 0x127d, 0xfa7: 0x3b9d, 0xfa8: 0x3bbd, 0xfa9: 0x3bdd, + 0xfaa: 0x3bfd, 0xfab: 0x3c1d, 0xfac: 0x3c3d, 0xfad: 0x3c5d, 0xfae: 0x239d, 0xfaf: 0x3c7d, + 0xfb0: 0x3c9d, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999, + 0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29, + 0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69, + 0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69, + 0xfcc: 0x3c99, 0xfcd: 0x3cbd, 0xfce: 0x3cb1, 0xfcf: 0x3cdd, 0xfd0: 0x3cfd, 0xfd1: 0x3d15, + 0xfd2: 0x3d2d, 0xfd3: 0x3d45, 0xfd4: 0x3d5d, 0xfd5: 0x3d5d, 0xfd6: 0x3d45, 0xfd7: 0x3d75, + 0xfd8: 0x07bd, 0xfd9: 0x3d8d, 0xfda: 0x3da5, 0xfdb: 0x3dbd, 0xfdc: 0x3dd5, 0xfdd: 0x3ded, + 0xfde: 0x3e05, 0xfdf: 0x3e1d, 0xfe0: 0x3e35, 0xfe1: 0x3e4d, 0xfe2: 0x3e65, 0xfe3: 0x3e7d, + 0xfe4: 0x3e95, 0xfe5: 0x3e95, 0xfe6: 0x3ead, 0xfe7: 0x3ead, 0xfe8: 0x3ec5, 0xfe9: 0x3ec5, + 0xfea: 0x3edd, 0xfeb: 0x3ef5, 0xfec: 0x3f0d, 0xfed: 0x3f25, 0xfee: 0x3f3d, 0xfef: 0x3f3d, + 0xff0: 0x3f55, 0xff1: 0x3f55, 0xff2: 0x3f55, 0xff3: 0x3f6d, 0xff4: 0x3f85, 0xff5: 0x3f9d, + 0xff6: 0x3fb5, 0xff7: 0x3f9d, 0xff8: 0x3fcd, 0xff9: 0x3fe5, 0xffa: 0x3f6d, 0xffb: 0x3ffd, + 0xffc: 0x4015, 0xffd: 0x4015, 0xffe: 0x4015, 0xfff: 0x0040, + // Block 0x40, offset 0x1000 + 0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9, + 0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1, + 0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9, + 0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549, + 0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1, + 0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11, + 0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91, + 0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9, + 0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011, + 0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209, + 0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361, + // Block 0x41, offset 0x1040 + 0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541, + 0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781, + 0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979, + 0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89, + 0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1, + 0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99, + 0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9, + 0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9, + 0x1070: 0x6009, 0x1071: 0x402d, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x404d, 0x1075: 0x6069, + 0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x406d, 0x1079: 0x406d, 0x107a: 0x60b1, 0x107b: 0x60c9, + 0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9, + // Block 0x42, offset 0x1080 + 0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x408d, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271, + 0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40ad, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9, + 0x108c: 0x40cd, 0x108d: 0x40cd, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x40ed, + 0x1092: 0x410d, 0x1093: 0x412d, 0x1094: 0x414d, 0x1095: 0x416d, 0x1096: 0x6359, 0x1097: 0x6371, + 0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x418d, 0x109c: 0x63d1, 0x109d: 0x63e9, + 0x109e: 0x6401, 0x109f: 0x41ad, 0x10a0: 0x41cd, 0x10a1: 0x6419, 0x10a2: 0x41ed, 0x10a3: 0x420d, + 0x10a4: 0x422d, 0x10a5: 0x6431, 0x10a6: 0x424d, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211, + 0x10aa: 0x426d, 0x10ab: 0x428d, 0x10ac: 0x42ad, 0x10ad: 0x42cd, 0x10ae: 0x64b1, 0x10af: 0x64f1, + 0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x42ed, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599, + 0x10b6: 0x430d, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9, + 0x10bc: 0x432d, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x434d, 0x10c1: 0x436d, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671, + 0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709, + 0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781, + 0x10d2: 0x438d, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43ad, 0x10d6: 0x43cd, 0x10d7: 0x67b1, + 0x10d8: 0x0040, 0x10d9: 0x43ed, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811, + 0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901, + 0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1, + 0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11, + 0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31, + 0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51, + 0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x440d, + // Block 0x44, offset 0x1100 + 0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008, + 0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008, + 0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008, + 0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008, + 0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008, + 0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008, + 0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008, + 0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308, + 0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308, + 0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308, + 0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008, + // Block 0x45, offset 0x1140 + 0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008, + 0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008, + 0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008, + 0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008, + 0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11, + 0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008, + 0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008, + 0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008, + 0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008, + 0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008, + 0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008, + // Block 0x46, offset 0x1180 + 0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018, + 0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018, + 0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018, + 0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008, + 0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008, + 0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008, + 0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008, + 0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008, + 0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008, + 0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008, + 0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008, + // Block 0x47, offset 0x11c0 + 0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008, + 0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008, + 0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008, + 0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008, + 0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008, + 0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008, + 0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008, + 0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008, + 0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008, + 0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d, + 0x11fc: 0x0008, 0x11fd: 0x442d, 0x11fe: 0xe00d, 0x11ff: 0x0008, + // Block 0x48, offset 0x1200 + 0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008, + 0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d, + 0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008, + 0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008, + 0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008, + 0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008, + 0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008, + 0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0040, + 0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x444d, 0x1234: 0xe00d, 0x1235: 0x0008, + 0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0x0040, 0x1239: 0x0040, 0x123a: 0x0040, 0x123b: 0x0040, + 0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040, + // Block 0x49, offset 0x1240 + 0x1240: 0x64d5, 0x1241: 0x64f5, 0x1242: 0x6515, 0x1243: 0x6535, 0x1244: 0x6555, 0x1245: 0x6575, + 0x1246: 0x6595, 0x1247: 0x65b5, 0x1248: 0x65d5, 0x1249: 0x65f5, 0x124a: 0x6615, 0x124b: 0x6635, + 0x124c: 0x6655, 0x124d: 0x6675, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x6695, 0x1251: 0x0008, + 0x1252: 0x66b5, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x66d5, 0x1256: 0x66f5, 0x1257: 0x6715, + 0x1258: 0x6735, 0x1259: 0x6755, 0x125a: 0x6775, 0x125b: 0x6795, 0x125c: 0x67b5, 0x125d: 0x67d5, + 0x125e: 0x67f5, 0x125f: 0x0008, 0x1260: 0x6815, 0x1261: 0x0008, 0x1262: 0x6835, 0x1263: 0x0008, + 0x1264: 0x0008, 0x1265: 0x6855, 0x1266: 0x6875, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008, + 0x126a: 0x6895, 0x126b: 0x68b5, 0x126c: 0x68d5, 0x126d: 0x68f5, 0x126e: 0x6915, 0x126f: 0x6935, + 0x1270: 0x6955, 0x1271: 0x6975, 0x1272: 0x6995, 0x1273: 0x69b5, 0x1274: 0x69d5, 0x1275: 0x69f5, + 0x1276: 0x6a15, 0x1277: 0x6a35, 0x1278: 0x6a55, 0x1279: 0x6a75, 0x127a: 0x6a95, 0x127b: 0x6ab5, + 0x127c: 0x6ad5, 0x127d: 0x6af5, 0x127e: 0x6b15, 0x127f: 0x6b35, + // Block 0x4a, offset 0x1280 + 0x1280: 0x7a95, 0x1281: 0x7ab5, 0x1282: 0x7ad5, 0x1283: 0x7af5, 0x1284: 0x7b15, 0x1285: 0x7b35, + 0x1286: 0x7b55, 0x1287: 0x7b75, 0x1288: 0x7b95, 0x1289: 0x7bb5, 0x128a: 0x7bd5, 0x128b: 0x7bf5, + 0x128c: 0x7c15, 0x128d: 0x7c35, 0x128e: 0x7c55, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19, + 0x1292: 0x7c75, 0x1293: 0x7c95, 0x1294: 0x7cb5, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91, + 0x1298: 0x7cd5, 0x1299: 0x7cf5, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040, + 0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040, + 0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040, + 0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040, + 0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040, + 0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040, + 0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d15, 0x12c4: 0x7d35, 0x12c5: 0x7001, + 0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040, + 0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040, + 0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9, + 0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1, + 0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149, + 0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2, + 0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1, + 0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1, + 0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479, + 0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040, + // Block 0x4c, offset 0x1300 + 0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040, + 0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659, + 0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721, + 0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751, + 0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769, + 0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799, + 0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1, + 0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1, + 0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9, + 0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829, + 0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841, + // Block 0x4d, offset 0x1340 + 0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871, + 0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9, + 0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9, + 0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919, + 0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931, + 0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961, + 0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991, + 0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1, + 0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818, + 0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818, + 0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040, + 0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040, + 0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040, + 0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09, + 0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479, + 0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81, + 0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1, + 0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19, + 0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91, + 0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1, + 0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1, + 0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1, + 0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1, + 0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991, + 0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81, + 0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a, + 0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99, + 0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89, + 0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79, + 0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19, + 0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469, + // Block 0x50, offset 0x1400 + 0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649, + 0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9, + 0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49, + 0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21, + 0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9, + 0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01, + 0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91, + 0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9, + 0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171, + 0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289, + 0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329, + // Block 0x51, offset 0x1440 + 0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1, + 0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621, + 0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739, + 0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1, + 0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9, + 0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29, + 0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079, + 0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1, + 0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171, + 0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261, + 0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301, + // Block 0x52, offset 0x1480 + 0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1, + 0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1, + 0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171, + 0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261, + 0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351, + 0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441, + 0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509, + 0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1, + 0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081, + 0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239, + 0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040, + 0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040, + 0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609, + 0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721, + 0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839, + 0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919, + 0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9, + 0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9, + 0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9, + 0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1, + 0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79, + // Block 0x54, offset 0x1500 + 0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989, + 0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040, + 0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040, + 0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040, + 0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040, + 0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040, + 0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040, + 0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040, + 0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9, + 0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12, + 0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040, + // Block 0x55, offset 0x1540 + 0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0, + 0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0, + 0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d55, + 0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7d75, + 0x1558: 0x7d95, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040, + 0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308, + 0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308, + 0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308, + 0x1570: 0x0040, 0x1571: 0x7db5, 0x1572: 0x7dd5, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2, + 0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7df5, 0x157a: 0x7e15, 0x157b: 0x7e35, + 0x157c: 0x7df5, 0x157d: 0x7e55, 0x157e: 0x7e75, 0x157f: 0x7e55, + // Block 0x56, offset 0x1580 + 0x1580: 0x7e95, 0x1581: 0x7eb5, 0x1582: 0x7ed5, 0x1583: 0x7eb5, 0x1584: 0x7ef5, 0x1585: 0x0018, + 0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f16, 0x158a: 0x7f36, 0x158b: 0x7f56, + 0x158c: 0x7f76, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7f95, + 0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa, + 0x1598: 0x7fb5, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7e95, + 0x159e: 0x7ef5, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99, + 0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda, + 0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040, + 0x15b0: 0x7fd6, 0x15b1: 0xb009, 0x15b2: 0x7ff6, 0x15b3: 0x0808, 0x15b4: 0x8016, 0x15b5: 0x0040, + 0x15b6: 0x8036, 0x15b7: 0xb031, 0x15b8: 0x8056, 0x15b9: 0xb059, 0x15ba: 0x8076, 0x15bb: 0xb081, + 0x15bc: 0x8096, 0x15bd: 0xb0a9, 0x15be: 0x80b6, 0x15bf: 0xb0d1, + // Block 0x57, offset 0x15c0 + 0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141, + 0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171, + 0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1, + 0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1, + 0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201, + 0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219, + 0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249, + 0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291, + 0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1, + 0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9, + 0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1, + // Block 0x58, offset 0x1600 + 0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321, + 0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339, + 0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369, + 0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381, + 0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1, + 0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9, + 0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9, + 0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1, + 0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441, + 0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9, + 0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0, + // Block 0x59, offset 0x1640 + 0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea, + 0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2, + 0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9, + 0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81, + 0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2, + 0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159, + 0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41, + 0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9, + 0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9, + 0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a, + 0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a, + // Block 0x5a, offset 0x1680 + 0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09, + 0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51, + 0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039, + 0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279, + 0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a, + 0x169e: 0xb532, 0x169f: 0x80d5, 0x16a0: 0x80f5, 0x16a1: 0x29d1, 0x16a2: 0x8115, 0x16a3: 0x8115, + 0x16a4: 0x8135, 0x16a5: 0x8155, 0x16a6: 0x8175, 0x16a7: 0x8195, 0x16a8: 0x81b5, 0x16a9: 0x81d5, + 0x16aa: 0x81f5, 0x16ab: 0x8215, 0x16ac: 0x8235, 0x16ad: 0x8255, 0x16ae: 0x8275, 0x16af: 0x8295, + 0x16b0: 0x82b5, 0x16b1: 0x82d5, 0x16b2: 0x82f5, 0x16b3: 0x8315, 0x16b4: 0x8335, 0x16b5: 0x8355, + 0x16b6: 0x8375, 0x16b7: 0x8395, 0x16b8: 0x83b5, 0x16b9: 0x83d5, 0x16ba: 0x83f5, 0x16bb: 0x8415, + 0x16bc: 0x81b5, 0x16bd: 0x8435, 0x16be: 0x8455, 0x16bf: 0x8215, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x8475, 0x16c1: 0x8495, 0x16c2: 0x84b5, 0x16c3: 0x84d5, 0x16c4: 0x84f5, 0x16c5: 0x8515, + 0x16c6: 0x8535, 0x16c7: 0x8555, 0x16c8: 0x84d5, 0x16c9: 0x8575, 0x16ca: 0x84d5, 0x16cb: 0x8595, + 0x16cc: 0x8595, 0x16cd: 0x85b5, 0x16ce: 0x85b5, 0x16cf: 0x85d5, 0x16d0: 0x8515, 0x16d1: 0x85f5, + 0x16d2: 0x8615, 0x16d3: 0x85f5, 0x16d4: 0x8635, 0x16d5: 0x8615, 0x16d6: 0x8655, 0x16d7: 0x8655, + 0x16d8: 0x8675, 0x16d9: 0x8675, 0x16da: 0x8695, 0x16db: 0x8695, 0x16dc: 0x8615, 0x16dd: 0x8115, + 0x16de: 0x86b5, 0x16df: 0x86d5, 0x16e0: 0x0040, 0x16e1: 0x86f5, 0x16e2: 0x8715, 0x16e3: 0x8735, + 0x16e4: 0x8755, 0x16e5: 0x8735, 0x16e6: 0x8775, 0x16e7: 0x8795, 0x16e8: 0x87b5, 0x16e9: 0x87b5, + 0x16ea: 0x87d5, 0x16eb: 0x87d5, 0x16ec: 0x87f5, 0x16ed: 0x87f5, 0x16ee: 0x87d5, 0x16ef: 0x87d5, + 0x16f0: 0x8815, 0x16f1: 0x8835, 0x16f2: 0x8855, 0x16f3: 0x8875, 0x16f4: 0x8895, 0x16f5: 0x88b5, + 0x16f6: 0x88b5, 0x16f7: 0x88b5, 0x16f8: 0x88d5, 0x16f9: 0x88d5, 0x16fa: 0x88d5, 0x16fb: 0x88d5, + 0x16fc: 0x87b5, 0x16fd: 0x87b5, 0x16fe: 0x87b5, 0x16ff: 0x0040, + // Block 0x5c, offset 0x1700 + 0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x8715, 0x1703: 0x86f5, 0x1704: 0x88f5, 0x1705: 0x86f5, + 0x1706: 0x8715, 0x1707: 0x86f5, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x8915, 0x170b: 0x8715, + 0x170c: 0x8935, 0x170d: 0x88f5, 0x170e: 0x8935, 0x170f: 0x8715, 0x1710: 0x0040, 0x1711: 0x0040, + 0x1712: 0x8955, 0x1713: 0x8975, 0x1714: 0x8875, 0x1715: 0x8935, 0x1716: 0x88f5, 0x1717: 0x8935, + 0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x8995, 0x171b: 0x89b5, 0x171c: 0x8995, 0x171d: 0x0040, + 0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x89d6, + 0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x89f5, 0x1727: 0x0040, 0x1728: 0x8a15, 0x1729: 0x8a35, + 0x172a: 0x8a55, 0x172b: 0x8a35, 0x172c: 0x8a75, 0x172d: 0x8a95, 0x172e: 0x8ab5, 0x172f: 0x0040, + 0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040, + 0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340, + 0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040, + // Block 0x5d, offset 0x1740 + 0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08, + 0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808, + 0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08, + 0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908, + 0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08, + 0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808, + 0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040, + 0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18, + 0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818, + 0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040, + 0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040, + // Block 0x5e, offset 0x1780 + 0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08, + 0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08, + 0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08, + 0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040, + 0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040, + 0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040, + 0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18, + 0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818, + 0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040, + 0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040, + 0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008, + 0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008, + 0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040, + 0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008, + 0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008, + 0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008, + 0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040, + 0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008, + 0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008, + 0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x0040, + 0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008, + // Block 0x60, offset 0x1800 + 0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040, + 0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008, + 0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040, + 0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008, + 0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008, + 0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008, + 0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308, + 0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040, + 0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040, + 0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040, + 0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040, + // Block 0x61, offset 0x1840 + 0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199, + 0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359, + 0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269, + 0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369, + 0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9, + 0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259, + 0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99, + 0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089, + 0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9, + 0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249, + 0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359, + // Block 0x62, offset 0x1880 + 0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269, + 0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369, + 0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9, + 0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259, + 0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99, + 0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089, + 0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9, + 0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249, + 0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71, + 0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9, + 0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9, + 0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259, + 0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99, + 0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089, + 0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040, + 0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040, + 0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71, + 0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9, + 0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1, + 0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199, + 0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259, + // Block 0x64, offset 0x1900 + 0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99, + 0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089, + 0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9, + 0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249, + 0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71, + 0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9, + 0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1, + 0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199, + 0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359, + 0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269, + 0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089, + // Block 0x65, offset 0x1940 + 0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9, + 0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040, + 0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71, + 0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9, + 0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040, + 0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199, + 0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359, + 0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269, + 0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369, + 0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9, + 0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040, + // Block 0x66, offset 0x1980 + 0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040, + 0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9, + 0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040, + 0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199, + 0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359, + 0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269, + 0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369, + 0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9, + 0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259, + 0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99, + 0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1, + 0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199, + 0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359, + 0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269, + 0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369, + 0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9, + 0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259, + 0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99, + 0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089, + 0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9, + 0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199, + // Block 0x68, offset 0x1a00 + 0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359, + 0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269, + 0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369, + 0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9, + 0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259, + 0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99, + 0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089, + 0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9, + 0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249, + 0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71, + 0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269, + // Block 0x69, offset 0x1a40 + 0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369, + 0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9, + 0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259, + 0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99, + 0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089, + 0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9, + 0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249, + 0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71, + 0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9, + 0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1, + 0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259, + 0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99, + 0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089, + 0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9, + 0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249, + 0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71, + 0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9, + 0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1, + 0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199, + 0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359, + 0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089, + 0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9, + 0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249, + 0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71, + 0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9, + 0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1, + 0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099, + 0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429, + 0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71, + 0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9, + 0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9, + 0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11, + 0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109, + 0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1, + 0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429, + 0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099, + 0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429, + 0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71, + 0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9, + 0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01, + 0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11, + 0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109, + 0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1, + 0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429, + 0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099, + 0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429, + 0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71, + 0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9, + 0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01, + 0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1, + 0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109, + 0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1, + 0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429, + 0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099, + 0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429, + 0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71, + 0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9, + 0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01, + 0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1, + 0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41, + 0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1, + 0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429, + 0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099, + 0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429, + 0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71, + 0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9, + 0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01, + 0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1, + 0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41, + 0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1, + 0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429, + 0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41, + 0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079, + 0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1, + 0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61, + 0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9, + 0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81, + 0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079, + 0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1, + 0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61, + 0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1, + // Block 0x71, offset 0x1c40 + 0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115, + 0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135, + 0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115, + 0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175, + 0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115, + 0x1c5e: 0x8b05, 0x1c5f: 0x8b05, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08, + 0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08, + 0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08, + 0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08, + 0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08, + 0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08, + // Block 0x72, offset 0x1c80 + 0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411, + 0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1, + 0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9, + 0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231, + 0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949, + 0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040, + 0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429, + 0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339, + 0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1, + 0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351, + 0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040, + 0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1, + 0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9, + 0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231, + 0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949, + 0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040, + 0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429, + 0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339, + 0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1, + 0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351, + 0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040, + // Block 0x74, offset 0x1d00 + 0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411, + 0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1, + 0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9, + 0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231, + 0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040, + 0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249, + 0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429, + 0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339, + 0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1, + 0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351, + 0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040, + // Block 0x75, offset 0x1d40 + 0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02, + 0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018, + 0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2, + 0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72, + 0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32, + 0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2, + 0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2, + 0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0040, + 0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199, + 0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359, + 0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99, + // Block 0x76, offset 0x1d80 + 0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089, + 0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1, + 0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018, + 0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018, + 0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018, + 0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018, + 0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018, + 0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0x0040, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040, + 0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018, + 0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018, + 0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018, + // Block 0x77, offset 0x1dc0 + 0x1dc0: 0xc1d9, 0x1dc1: 0xc211, 0x1dc2: 0xc249, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040, + 0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040, + 0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc269, 0x1dd1: 0xc289, + 0x1dd2: 0xc2a9, 0x1dd3: 0xc2c9, 0x1dd4: 0xc2e9, 0x1dd5: 0xc309, 0x1dd6: 0xc329, 0x1dd7: 0xc349, + 0x1dd8: 0xc369, 0x1dd9: 0xc389, 0x1dda: 0xc3a9, 0x1ddb: 0xc3c9, 0x1ddc: 0xc3e9, 0x1ddd: 0xc409, + 0x1dde: 0xc429, 0x1ddf: 0xc449, 0x1de0: 0xc469, 0x1de1: 0xc489, 0x1de2: 0xc4a9, 0x1de3: 0xc4c9, + 0x1de4: 0xc4e9, 0x1de5: 0xc509, 0x1de6: 0xc529, 0x1de7: 0xc549, 0x1de8: 0xc569, 0x1de9: 0xc589, + 0x1dea: 0xc5a9, 0x1deb: 0xc5c9, 0x1dec: 0xc5e9, 0x1ded: 0xc609, 0x1dee: 0xc629, 0x1def: 0xc649, + 0x1df0: 0xc669, 0x1df1: 0xc689, 0x1df2: 0xc6a9, 0x1df3: 0xc6c9, 0x1df4: 0xc6e9, 0x1df5: 0xc709, + 0x1df6: 0xc729, 0x1df7: 0xc749, 0x1df8: 0xc769, 0x1df9: 0xc789, 0x1dfa: 0xc7a9, 0x1dfb: 0xc7c9, + 0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040, + // Block 0x78, offset 0x1e00 + 0x1e00: 0xcaf9, 0x1e01: 0xcb19, 0x1e02: 0xcb39, 0x1e03: 0x8b1d, 0x1e04: 0xcb59, 0x1e05: 0xcb79, + 0x1e06: 0xcb99, 0x1e07: 0xcbb9, 0x1e08: 0xcbd9, 0x1e09: 0xcbf9, 0x1e0a: 0xcc19, 0x1e0b: 0xcc39, + 0x1e0c: 0xcc59, 0x1e0d: 0x8b3d, 0x1e0e: 0xcc79, 0x1e0f: 0xcc99, 0x1e10: 0xccb9, 0x1e11: 0xccd9, + 0x1e12: 0x8b5d, 0x1e13: 0xccf9, 0x1e14: 0xcd19, 0x1e15: 0xc429, 0x1e16: 0x8b7d, 0x1e17: 0xcd39, + 0x1e18: 0xcd59, 0x1e19: 0xcd79, 0x1e1a: 0xcd99, 0x1e1b: 0xcdb9, 0x1e1c: 0x8b9d, 0x1e1d: 0xcdd9, + 0x1e1e: 0xcdf9, 0x1e1f: 0xce19, 0x1e20: 0xce39, 0x1e21: 0xce59, 0x1e22: 0xc789, 0x1e23: 0xce79, + 0x1e24: 0xce99, 0x1e25: 0xceb9, 0x1e26: 0xced9, 0x1e27: 0xcef9, 0x1e28: 0xcf19, 0x1e29: 0xcf39, + 0x1e2a: 0xcf59, 0x1e2b: 0xcf79, 0x1e2c: 0xcf99, 0x1e2d: 0xcfb9, 0x1e2e: 0xcfd9, 0x1e2f: 0xcff9, + 0x1e30: 0xd019, 0x1e31: 0xd039, 0x1e32: 0xd039, 0x1e33: 0xd039, 0x1e34: 0x8bbd, 0x1e35: 0xd059, + 0x1e36: 0xd079, 0x1e37: 0xd099, 0x1e38: 0x8bdd, 0x1e39: 0xd0b9, 0x1e3a: 0xd0d9, 0x1e3b: 0xd0f9, + 0x1e3c: 0xd119, 0x1e3d: 0xd139, 0x1e3e: 0xd159, 0x1e3f: 0xd179, + // Block 0x79, offset 0x1e40 + 0x1e40: 0xd199, 0x1e41: 0xd1b9, 0x1e42: 0xd1d9, 0x1e43: 0xd1f9, 0x1e44: 0xd219, 0x1e45: 0xd239, + 0x1e46: 0xd239, 0x1e47: 0xd259, 0x1e48: 0xd279, 0x1e49: 0xd299, 0x1e4a: 0xd2b9, 0x1e4b: 0xd2d9, + 0x1e4c: 0xd2f9, 0x1e4d: 0xd319, 0x1e4e: 0xd339, 0x1e4f: 0xd359, 0x1e50: 0xd379, 0x1e51: 0xd399, + 0x1e52: 0xd3b9, 0x1e53: 0xd3d9, 0x1e54: 0xd3f9, 0x1e55: 0xd419, 0x1e56: 0xd439, 0x1e57: 0xd459, + 0x1e58: 0xd479, 0x1e59: 0x8bfd, 0x1e5a: 0xd499, 0x1e5b: 0xd4b9, 0x1e5c: 0xd4d9, 0x1e5d: 0xc309, + 0x1e5e: 0xd4f9, 0x1e5f: 0xd519, 0x1e60: 0x8c1d, 0x1e61: 0x8c3d, 0x1e62: 0xd539, 0x1e63: 0xd559, + 0x1e64: 0xd579, 0x1e65: 0xd599, 0x1e66: 0xd5b9, 0x1e67: 0xd5d9, 0x1e68: 0x2040, 0x1e69: 0xd5f9, + 0x1e6a: 0xd619, 0x1e6b: 0xd619, 0x1e6c: 0x8c5d, 0x1e6d: 0xd639, 0x1e6e: 0xd659, 0x1e6f: 0xd679, + 0x1e70: 0xd699, 0x1e71: 0x8c7d, 0x1e72: 0xd6b9, 0x1e73: 0xd6d9, 0x1e74: 0x2040, 0x1e75: 0xd6f9, + 0x1e76: 0xd719, 0x1e77: 0xd739, 0x1e78: 0xd759, 0x1e79: 0xd779, 0x1e7a: 0xd799, 0x1e7b: 0x8c9d, + 0x1e7c: 0xd7b9, 0x1e7d: 0x8cbd, 0x1e7e: 0xd7d9, 0x1e7f: 0xd7f9, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0xd819, 0x1e81: 0xd839, 0x1e82: 0xd859, 0x1e83: 0xd879, 0x1e84: 0xd899, 0x1e85: 0xd8b9, + 0x1e86: 0xd8d9, 0x1e87: 0xd8f9, 0x1e88: 0xd919, 0x1e89: 0x8cdd, 0x1e8a: 0xd939, 0x1e8b: 0xd959, + 0x1e8c: 0xd979, 0x1e8d: 0xd999, 0x1e8e: 0xd9b9, 0x1e8f: 0x8cfd, 0x1e90: 0xd9d9, 0x1e91: 0x8d1d, + 0x1e92: 0x8d3d, 0x1e93: 0xd9f9, 0x1e94: 0xda19, 0x1e95: 0xda19, 0x1e96: 0xda39, 0x1e97: 0x8d5d, + 0x1e98: 0x8d7d, 0x1e99: 0xda59, 0x1e9a: 0xda79, 0x1e9b: 0xda99, 0x1e9c: 0xdab9, 0x1e9d: 0xdad9, + 0x1e9e: 0xdaf9, 0x1e9f: 0xdb19, 0x1ea0: 0xdb39, 0x1ea1: 0xdb59, 0x1ea2: 0xdb79, 0x1ea3: 0xdb99, + 0x1ea4: 0x8d9d, 0x1ea5: 0xdbb9, 0x1ea6: 0xdbd9, 0x1ea7: 0xdbf9, 0x1ea8: 0xdc19, 0x1ea9: 0xdbf9, + 0x1eaa: 0xdc39, 0x1eab: 0xdc59, 0x1eac: 0xdc79, 0x1ead: 0xdc99, 0x1eae: 0xdcb9, 0x1eaf: 0xdcd9, + 0x1eb0: 0xdcf9, 0x1eb1: 0xdd19, 0x1eb2: 0xdd39, 0x1eb3: 0xdd59, 0x1eb4: 0xdd79, 0x1eb5: 0xdd99, + 0x1eb6: 0xddb9, 0x1eb7: 0xddd9, 0x1eb8: 0x8dbd, 0x1eb9: 0xddf9, 0x1eba: 0xde19, 0x1ebb: 0xde39, + 0x1ebc: 0xde59, 0x1ebd: 0xde79, 0x1ebe: 0x8ddd, 0x1ebf: 0xde99, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0xe599, 0x1ec1: 0xe5b9, 0x1ec2: 0xe5d9, 0x1ec3: 0xe5f9, 0x1ec4: 0xe619, 0x1ec5: 0xe639, + 0x1ec6: 0x8efd, 0x1ec7: 0xe659, 0x1ec8: 0xe679, 0x1ec9: 0xe699, 0x1eca: 0xe6b9, 0x1ecb: 0xe6d9, + 0x1ecc: 0xe6f9, 0x1ecd: 0x8f1d, 0x1ece: 0xe719, 0x1ecf: 0xe739, 0x1ed0: 0x8f3d, 0x1ed1: 0x8f5d, + 0x1ed2: 0xe759, 0x1ed3: 0xe779, 0x1ed4: 0xe799, 0x1ed5: 0xe7b9, 0x1ed6: 0xe7d9, 0x1ed7: 0xe7f9, + 0x1ed8: 0xe819, 0x1ed9: 0xe839, 0x1eda: 0xe859, 0x1edb: 0x8f7d, 0x1edc: 0xe879, 0x1edd: 0x8f9d, + 0x1ede: 0xe899, 0x1edf: 0x2040, 0x1ee0: 0xe8b9, 0x1ee1: 0xe8d9, 0x1ee2: 0xe8f9, 0x1ee3: 0x8fbd, + 0x1ee4: 0xe919, 0x1ee5: 0xe939, 0x1ee6: 0x8fdd, 0x1ee7: 0x8ffd, 0x1ee8: 0xe959, 0x1ee9: 0xe979, + 0x1eea: 0xe999, 0x1eeb: 0xe9b9, 0x1eec: 0xe9d9, 0x1eed: 0xe9d9, 0x1eee: 0xe9f9, 0x1eef: 0xea19, + 0x1ef0: 0xea39, 0x1ef1: 0xea59, 0x1ef2: 0xea79, 0x1ef3: 0xea99, 0x1ef4: 0xeab9, 0x1ef5: 0x901d, + 0x1ef6: 0xead9, 0x1ef7: 0x903d, 0x1ef8: 0xeaf9, 0x1ef9: 0x905d, 0x1efa: 0xeb19, 0x1efb: 0x907d, + 0x1efc: 0x909d, 0x1efd: 0x90bd, 0x1efe: 0xeb39, 0x1eff: 0xeb59, + // Block 0x7c, offset 0x1f00 + 0x1f00: 0xeb79, 0x1f01: 0x90dd, 0x1f02: 0x90fd, 0x1f03: 0x911d, 0x1f04: 0x913d, 0x1f05: 0xeb99, + 0x1f06: 0xebb9, 0x1f07: 0xebb9, 0x1f08: 0xebd9, 0x1f09: 0xebf9, 0x1f0a: 0xec19, 0x1f0b: 0xec39, + 0x1f0c: 0xec59, 0x1f0d: 0x915d, 0x1f0e: 0xec79, 0x1f0f: 0xec99, 0x1f10: 0xecb9, 0x1f11: 0xecd9, + 0x1f12: 0x917d, 0x1f13: 0xecf9, 0x1f14: 0x919d, 0x1f15: 0x91bd, 0x1f16: 0xed19, 0x1f17: 0xed39, + 0x1f18: 0xed59, 0x1f19: 0xed79, 0x1f1a: 0xed99, 0x1f1b: 0xedb9, 0x1f1c: 0x91dd, 0x1f1d: 0x91fd, + 0x1f1e: 0x921d, 0x1f1f: 0x2040, 0x1f20: 0xedd9, 0x1f21: 0x923d, 0x1f22: 0xedf9, 0x1f23: 0xee19, + 0x1f24: 0xee39, 0x1f25: 0x925d, 0x1f26: 0xee59, 0x1f27: 0xee79, 0x1f28: 0xee99, 0x1f29: 0xeeb9, + 0x1f2a: 0xeed9, 0x1f2b: 0x927d, 0x1f2c: 0xeef9, 0x1f2d: 0xef19, 0x1f2e: 0xef39, 0x1f2f: 0xef59, + 0x1f30: 0xef79, 0x1f31: 0xef99, 0x1f32: 0x929d, 0x1f33: 0x92bd, 0x1f34: 0xefb9, 0x1f35: 0x92dd, + 0x1f36: 0xefd9, 0x1f37: 0x92fd, 0x1f38: 0xeff9, 0x1f39: 0xf019, 0x1f3a: 0xf039, 0x1f3b: 0x931d, + 0x1f3c: 0x933d, 0x1f3d: 0xf059, 0x1f3e: 0x935d, 0x1f3f: 0xf079, + // Block 0x7d, offset 0x1f40 + 0x1f40: 0xf6b9, 0x1f41: 0xf6d9, 0x1f42: 0xf6f9, 0x1f43: 0xf719, 0x1f44: 0xf739, 0x1f45: 0x951d, + 0x1f46: 0xf759, 0x1f47: 0xf779, 0x1f48: 0xf799, 0x1f49: 0xf7b9, 0x1f4a: 0xf7d9, 0x1f4b: 0x953d, + 0x1f4c: 0x955d, 0x1f4d: 0xf7f9, 0x1f4e: 0xf819, 0x1f4f: 0xf839, 0x1f50: 0xf859, 0x1f51: 0xf879, + 0x1f52: 0xf899, 0x1f53: 0x957d, 0x1f54: 0xf8b9, 0x1f55: 0xf8d9, 0x1f56: 0xf8f9, 0x1f57: 0xf919, + 0x1f58: 0x959d, 0x1f59: 0x95bd, 0x1f5a: 0xf939, 0x1f5b: 0xf959, 0x1f5c: 0xf979, 0x1f5d: 0x95dd, + 0x1f5e: 0xf999, 0x1f5f: 0xf9b9, 0x1f60: 0x6815, 0x1f61: 0x95fd, 0x1f62: 0xf9d9, 0x1f63: 0xf9f9, + 0x1f64: 0xfa19, 0x1f65: 0x961d, 0x1f66: 0xfa39, 0x1f67: 0xfa59, 0x1f68: 0xfa79, 0x1f69: 0xfa99, + 0x1f6a: 0xfab9, 0x1f6b: 0xfad9, 0x1f6c: 0xfaf9, 0x1f6d: 0x963d, 0x1f6e: 0xfb19, 0x1f6f: 0xfb39, + 0x1f70: 0xfb59, 0x1f71: 0x965d, 0x1f72: 0xfb79, 0x1f73: 0xfb99, 0x1f74: 0xfbb9, 0x1f75: 0xfbd9, + 0x1f76: 0x7b35, 0x1f77: 0x967d, 0x1f78: 0xfbf9, 0x1f79: 0xfc19, 0x1f7a: 0xfc39, 0x1f7b: 0x969d, + 0x1f7c: 0xfc59, 0x1f7d: 0x96bd, 0x1f7e: 0xfc79, 0x1f7f: 0xfc79, + // Block 0x7e, offset 0x1f80 + 0x1f80: 0xfc99, 0x1f81: 0x96dd, 0x1f82: 0xfcb9, 0x1f83: 0xfcd9, 0x1f84: 0xfcf9, 0x1f85: 0xfd19, + 0x1f86: 0xfd39, 0x1f87: 0xfd59, 0x1f88: 0xfd79, 0x1f89: 0x96fd, 0x1f8a: 0xfd99, 0x1f8b: 0xfdb9, + 0x1f8c: 0xfdd9, 0x1f8d: 0xfdf9, 0x1f8e: 0xfe19, 0x1f8f: 0xfe39, 0x1f90: 0x971d, 0x1f91: 0xfe59, + 0x1f92: 0x973d, 0x1f93: 0x975d, 0x1f94: 0x977d, 0x1f95: 0xfe79, 0x1f96: 0xfe99, 0x1f97: 0xfeb9, + 0x1f98: 0xfed9, 0x1f99: 0xfef9, 0x1f9a: 0xff19, 0x1f9b: 0xff39, 0x1f9c: 0xff59, 0x1f9d: 0x979d, + 0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040, + 0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040, + 0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040, + 0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040, + 0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040, + 0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040, +} + +// idnaIndex: 36 blocks, 2304 entries, 4608 bytes +// Block 0 is the zero block. +var idnaIndex = [2304]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05, + 0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a, + 0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84, + 0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07, + 0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c, + 0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21, + // Block 0x4, offset 0x100 + 0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16, + 0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d, + 0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91, + 0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96, + // Block 0x5, offset 0x140 + 0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e, + 0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6, + 0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f, + 0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae, + 0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6, + 0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe, + 0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3, + 0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c, + // Block 0x6, offset 0x180 + 0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b, + 0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b, + 0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b, + 0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b, + 0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b, + 0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0xd0, + 0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5, + 0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1, + 0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41, + 0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f, + 0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f, + 0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f, + 0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f, + 0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f, + 0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f, + // Block 0x8, offset 0x200 + 0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f, + 0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f, + 0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f, + 0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f, + 0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f, + 0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f, + 0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b, + 0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f, + // Block 0x9, offset 0x240 + 0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f, + 0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f, + 0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f, + 0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f, + 0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f, + 0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f, + 0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f, + 0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f, + // Block 0xa, offset 0x280 + 0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f, + 0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f, + 0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f, + 0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f, + 0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f, + 0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f, + 0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f, + 0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe3, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f, + 0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f, + 0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f, + 0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8, + 0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0, + 0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8, + 0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f, + 0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f, + // Block 0xc, offset 0x300 + 0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f, + 0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f, + 0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f, + 0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf9, 0x31f: 0xfa, + // Block 0xd, offset 0x340 + 0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba, + 0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba, + 0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba, + 0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba, + 0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba, + 0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba, + 0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba, + 0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba, + // Block 0xe, offset 0x380 + 0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba, + 0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba, + 0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba, + 0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba, + 0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfb, 0x3a5: 0xfc, 0x3a6: 0xfd, 0x3a7: 0xfe, + 0x3a8: 0x47, 0x3a9: 0xff, 0x3aa: 0x100, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c, + 0x3b0: 0x101, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x102, 0x3b7: 0x52, + 0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x103, 0x3c1: 0x104, 0x3c2: 0x9f, 0x3c3: 0x105, 0x3c4: 0x106, 0x3c5: 0x9b, 0x3c6: 0x107, 0x3c7: 0x108, + 0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x109, 0x3cb: 0x10a, 0x3cc: 0x10b, 0x3cd: 0x10c, 0x3ce: 0x10d, 0x3cf: 0x10e, + 0x3d0: 0x10f, 0x3d1: 0x9f, 0x3d2: 0x110, 0x3d3: 0x111, 0x3d4: 0x112, 0x3d5: 0x113, 0x3d6: 0xba, 0x3d7: 0xba, + 0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x114, 0x3dd: 0x115, 0x3de: 0xba, 0x3df: 0xba, + 0x3e0: 0x116, 0x3e1: 0x117, 0x3e2: 0x118, 0x3e3: 0x119, 0x3e4: 0x11a, 0x3e5: 0xba, 0x3e6: 0x11b, 0x3e7: 0x11c, + 0x3e8: 0x11d, 0x3e9: 0x11e, 0x3ea: 0x11f, 0x3eb: 0x5b, 0x3ec: 0x120, 0x3ed: 0x121, 0x3ee: 0x5c, 0x3ef: 0xba, + 0x3f0: 0x122, 0x3f1: 0x123, 0x3f2: 0x124, 0x3f3: 0x125, 0x3f4: 0xba, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba, + 0x3f8: 0xba, 0x3f9: 0x126, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0xba, 0x3fd: 0xba, 0x3fe: 0xba, 0x3ff: 0xba, + // Block 0x10, offset 0x400 + 0x400: 0x127, 0x401: 0x128, 0x402: 0x129, 0x403: 0x12a, 0x404: 0x12b, 0x405: 0x12c, 0x406: 0x12d, 0x407: 0x12e, + 0x408: 0x12f, 0x409: 0xba, 0x40a: 0x130, 0x40b: 0x131, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba, + 0x410: 0x132, 0x411: 0x133, 0x412: 0x134, 0x413: 0x135, 0x414: 0xba, 0x415: 0xba, 0x416: 0x136, 0x417: 0x137, + 0x418: 0x138, 0x419: 0x139, 0x41a: 0x13a, 0x41b: 0x13b, 0x41c: 0x13c, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba, + 0x420: 0xba, 0x421: 0xba, 0x422: 0x13d, 0x423: 0x13e, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba, + 0x428: 0x13f, 0x429: 0x140, 0x42a: 0x141, 0x42b: 0x142, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba, + 0x430: 0x143, 0x431: 0x144, 0x432: 0x145, 0x433: 0xba, 0x434: 0x146, 0x435: 0x147, 0x436: 0xba, 0x437: 0xba, + 0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0xba, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba, + // Block 0x11, offset 0x440 + 0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f, + 0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x148, 0x44f: 0xba, + 0x450: 0x9b, 0x451: 0x149, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x14a, 0x456: 0xba, 0x457: 0xba, + 0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba, + 0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba, + 0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba, + 0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba, + 0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba, + // Block 0x12, offset 0x480 + 0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f, + 0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f, + 0x490: 0x14b, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba, + 0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba, + 0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba, + 0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba, + 0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba, + 0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba, + // Block 0x13, offset 0x4c0 + 0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba, + 0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba, + 0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f, + 0x4d8: 0x9f, 0x4d9: 0x14c, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba, + 0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba, + 0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba, + 0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba, + 0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba, + // Block 0x14, offset 0x500 + 0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba, + 0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba, + 0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba, + 0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba, + 0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f, + 0x528: 0x142, 0x529: 0x14d, 0x52a: 0xba, 0x52b: 0x14e, 0x52c: 0x14f, 0x52d: 0x150, 0x52e: 0x151, 0x52f: 0xba, + 0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba, + 0x538: 0xba, 0x539: 0xba, 0x53a: 0xba, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x152, 0x53e: 0x153, 0x53f: 0x154, + // Block 0x15, offset 0x540 + 0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f, + 0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f, + 0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f, + 0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x155, + 0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f, + 0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x156, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba, + 0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba, + 0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba, + // Block 0x16, offset 0x580 + 0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x157, 0x585: 0x158, 0x586: 0x9f, 0x587: 0x9f, + 0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x159, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba, + 0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba, + 0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba, + 0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba, + 0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba, + 0x5b0: 0x9f, 0x5b1: 0x15a, 0x5b2: 0x15b, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba, + 0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x15c, 0x5c4: 0x15d, 0x5c5: 0x15e, 0x5c6: 0x15f, 0x5c7: 0x160, + 0x5c8: 0x9b, 0x5c9: 0x161, 0x5ca: 0xba, 0x5cb: 0xba, 0x5cc: 0x9b, 0x5cd: 0x162, 0x5ce: 0xba, 0x5cf: 0xba, + 0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66, + 0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e, + 0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b, + 0x5e8: 0x163, 0x5e9: 0x164, 0x5ea: 0x165, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba, + 0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba, + 0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba, + // Block 0x18, offset 0x600 + 0x600: 0x166, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba, + 0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba, + 0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba, + 0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba, + 0x620: 0x122, 0x621: 0x122, 0x622: 0x122, 0x623: 0x167, 0x624: 0x6f, 0x625: 0x168, 0x626: 0xba, 0x627: 0xba, + 0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba, + 0x630: 0xba, 0x631: 0xba, 0x632: 0xba, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba, + 0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x169, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba, + // Block 0x19, offset 0x640 + 0x640: 0x16a, 0x641: 0x9b, 0x642: 0x16b, 0x643: 0x16c, 0x644: 0x73, 0x645: 0x74, 0x646: 0x16d, 0x647: 0x16e, + 0x648: 0x75, 0x649: 0x16f, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b, + 0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b, + 0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x170, 0x65c: 0x9b, 0x65d: 0x171, 0x65e: 0x9b, 0x65f: 0x172, + 0x660: 0x173, 0x661: 0x174, 0x662: 0x175, 0x663: 0xba, 0x664: 0x176, 0x665: 0x177, 0x666: 0x178, 0x667: 0x179, + 0x668: 0xba, 0x669: 0xba, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba, + 0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba, + 0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba, + // Block 0x1a, offset 0x680 + 0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f, + 0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f, + 0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f, + 0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x17a, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f, + 0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f, + 0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f, + 0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f, + 0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f, + 0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f, + 0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f, + 0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x17b, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f, + 0x6e0: 0x17c, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f, + 0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f, + 0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f, + 0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f, + // Block 0x1c, offset 0x700 + 0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f, + 0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f, + 0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f, + 0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f, + 0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f, + 0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f, + 0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f, + 0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x17d, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f, + // Block 0x1d, offset 0x740 + 0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f, + 0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f, + 0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f, + 0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f, + 0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f, + 0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x17e, + 0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba, + 0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba, + // Block 0x1e, offset 0x780 + 0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba, + 0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba, + 0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba, + 0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba, + 0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x17f, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x180, 0x7a7: 0x7b, + 0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba, + 0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba, + 0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba, + // Block 0x1f, offset 0x7c0 + 0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07, + 0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17, + 0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07, + 0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c, + 0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b, + 0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b, + // Block 0x20, offset 0x800 + 0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b, + 0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b, + 0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b, + 0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b, + 0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b, + 0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b, + 0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b, + 0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b, + // Block 0x21, offset 0x840 + 0x840: 0x181, 0x841: 0x182, 0x842: 0xba, 0x843: 0xba, 0x844: 0x183, 0x845: 0x183, 0x846: 0x183, 0x847: 0x184, + 0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba, + 0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba, + 0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba, + 0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba, + 0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba, + 0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba, + 0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba, + // Block 0x22, offset 0x880 + 0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b, + 0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b, + 0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b, + 0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b, + 0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b, + 0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b, + 0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b, + 0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b, + 0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b, +} + +// idnaSparseOffset: 264 entries, 528 bytes +var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x34, 0x3f, 0x4b, 0x4f, 0x5e, 0x63, 0x6b, 0x77, 0x85, 0x8a, 0x93, 0xa3, 0xb1, 0xbd, 0xc9, 0xda, 0xe4, 0xeb, 0xf8, 0x109, 0x110, 0x11b, 0x12a, 0x138, 0x142, 0x144, 0x149, 0x14c, 0x14f, 0x151, 0x15d, 0x168, 0x170, 0x176, 0x17c, 0x181, 0x186, 0x189, 0x18d, 0x193, 0x198, 0x1a4, 0x1ae, 0x1b4, 0x1c5, 0x1cf, 0x1d2, 0x1da, 0x1dd, 0x1ea, 0x1f2, 0x1f6, 0x1fd, 0x205, 0x215, 0x221, 0x223, 0x22d, 0x239, 0x245, 0x251, 0x259, 0x25e, 0x268, 0x279, 0x27d, 0x288, 0x28c, 0x295, 0x29d, 0x2a3, 0x2a8, 0x2ab, 0x2af, 0x2b5, 0x2b9, 0x2bd, 0x2c3, 0x2ca, 0x2d0, 0x2d8, 0x2df, 0x2ea, 0x2f4, 0x2f8, 0x2fb, 0x301, 0x305, 0x307, 0x30a, 0x30c, 0x30f, 0x319, 0x31c, 0x32b, 0x32f, 0x334, 0x337, 0x33b, 0x340, 0x345, 0x34b, 0x351, 0x360, 0x366, 0x36a, 0x379, 0x37e, 0x386, 0x390, 0x39b, 0x3a3, 0x3b4, 0x3bd, 0x3cd, 0x3da, 0x3e4, 0x3e9, 0x3f6, 0x3fa, 0x3ff, 0x401, 0x405, 0x407, 0x40b, 0x414, 0x41a, 0x41e, 0x42e, 0x438, 0x43d, 0x440, 0x446, 0x44d, 0x452, 0x456, 0x45c, 0x461, 0x46a, 0x46f, 0x475, 0x47c, 0x483, 0x48a, 0x48e, 0x493, 0x496, 0x49b, 0x4a7, 0x4ad, 0x4b2, 0x4b9, 0x4c1, 0x4c6, 0x4ca, 0x4da, 0x4e1, 0x4e5, 0x4e9, 0x4f0, 0x4f2, 0x4f5, 0x4f8, 0x4fc, 0x500, 0x506, 0x50f, 0x51b, 0x522, 0x52b, 0x533, 0x53a, 0x548, 0x555, 0x562, 0x56b, 0x56f, 0x57d, 0x585, 0x590, 0x599, 0x59f, 0x5a7, 0x5b0, 0x5ba, 0x5bd, 0x5c9, 0x5cc, 0x5d1, 0x5de, 0x5e7, 0x5f3, 0x5f6, 0x600, 0x609, 0x615, 0x622, 0x62a, 0x62d, 0x632, 0x635, 0x638, 0x63b, 0x642, 0x649, 0x64d, 0x658, 0x65b, 0x661, 0x666, 0x66a, 0x66d, 0x670, 0x673, 0x676, 0x679, 0x67e, 0x688, 0x68b, 0x68f, 0x69e, 0x6aa, 0x6ae, 0x6b3, 0x6b8, 0x6bc, 0x6c1, 0x6ca, 0x6d5, 0x6db, 0x6e3, 0x6e7, 0x6eb, 0x6f1, 0x6f7, 0x6fc, 0x6ff, 0x70f, 0x716, 0x719, 0x71c, 0x720, 0x726, 0x72b, 0x730, 0x735, 0x738, 0x73d, 0x740, 0x743, 0x747, 0x74b, 0x74e, 0x75e, 0x76f, 0x774, 0x776, 0x778} + +// idnaSparseValues: 1915 entries, 7660 bytes +var idnaSparseValues = [1915]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x07}, + {value: 0xe105, lo: 0x80, hi: 0x96}, + {value: 0x0018, lo: 0x97, hi: 0x97}, + {value: 0xe105, lo: 0x98, hi: 0x9e}, + {value: 0x001f, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbf}, + // Block 0x1, offset 0x8 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0xe01d, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0335, lo: 0x83, hi: 0x83}, + {value: 0x034d, lo: 0x84, hi: 0x84}, + {value: 0x0365, lo: 0x85, hi: 0x85}, + {value: 0xe00d, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0xe00d, lo: 0x88, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x89}, + {value: 0xe00d, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe00d, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0x8d}, + {value: 0xe00d, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0xbf}, + // Block 0x2, offset 0x19 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x0249, lo: 0xb0, hi: 0xb0}, + {value: 0x037d, lo: 0xb1, hi: 0xb1}, + {value: 0x0259, lo: 0xb2, hi: 0xb2}, + {value: 0x0269, lo: 0xb3, hi: 0xb3}, + {value: 0x034d, lo: 0xb4, hi: 0xb4}, + {value: 0x0395, lo: 0xb5, hi: 0xb5}, + {value: 0xe1bd, lo: 0xb6, hi: 0xb6}, + {value: 0x0279, lo: 0xb7, hi: 0xb7}, + {value: 0x0289, lo: 0xb8, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbf}, + // Block 0x3, offset 0x25 + {value: 0x0000, lo: 0x01}, + {value: 0x3308, lo: 0x80, hi: 0xbf}, + // Block 0x4, offset 0x27 + {value: 0x0000, lo: 0x04}, + {value: 0x03f5, lo: 0x80, hi: 0x8f}, + {value: 0xe105, lo: 0x90, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x5, offset 0x2c + {value: 0x0000, lo: 0x07}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x0545, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x0008, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xbf}, + // Block 0x6, offset 0x34 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0401, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x88}, + {value: 0x0018, lo: 0x89, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x7, offset 0x3f + {value: 0x0000, lo: 0x0b}, + {value: 0x0818, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x82}, + {value: 0x0818, lo: 0x83, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x85}, + {value: 0x0818, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0808, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x8, offset 0x4b + {value: 0x0000, lo: 0x03}, + {value: 0x0a08, lo: 0x80, hi: 0x87}, + {value: 0x0c08, lo: 0x88, hi: 0x99}, + {value: 0x0a08, lo: 0x9a, hi: 0xbf}, + // Block 0x9, offset 0x4f + {value: 0x0000, lo: 0x0e}, + {value: 0x3308, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0c08, lo: 0x8d, hi: 0x8d}, + {value: 0x0a08, lo: 0x8e, hi: 0x98}, + {value: 0x0c08, lo: 0x99, hi: 0x9b}, + {value: 0x0a08, lo: 0x9c, hi: 0xaa}, + {value: 0x0c08, lo: 0xab, hi: 0xac}, + {value: 0x0a08, lo: 0xad, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb1}, + {value: 0x0a08, lo: 0xb2, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb4}, + {value: 0x0a08, lo: 0xb5, hi: 0xb7}, + {value: 0x0c08, lo: 0xb8, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbf}, + // Block 0xa, offset 0x5e + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xb0}, + {value: 0x0808, lo: 0xb1, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xb, offset 0x63 + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x89}, + {value: 0x0a08, lo: 0x8a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0xc, offset 0x6b + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x99}, + {value: 0x0808, lo: 0x9a, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa3}, + {value: 0x0808, lo: 0xa4, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa7}, + {value: 0x0808, lo: 0xa8, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0818, lo: 0xb0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xd, offset 0x77 + {value: 0x0000, lo: 0x0d}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0a08, lo: 0xa0, hi: 0xa9}, + {value: 0x0c08, lo: 0xaa, hi: 0xac}, + {value: 0x0808, lo: 0xad, hi: 0xad}, + {value: 0x0c08, lo: 0xae, hi: 0xae}, + {value: 0x0a08, lo: 0xaf, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb2}, + {value: 0x0a08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0a08, lo: 0xb6, hi: 0xb8}, + {value: 0x0c08, lo: 0xb9, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0xe, offset 0x85 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0xa1}, + {value: 0x0840, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xbf}, + // Block 0xf, offset 0x8a + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x10, offset 0x93 + {value: 0x0000, lo: 0x0f}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x85}, + {value: 0x3008, lo: 0x86, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8c}, + {value: 0x3b08, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x11, offset 0xa3 + {value: 0x0000, lo: 0x0d}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x12, offset 0xb1 + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xba}, + {value: 0x3b08, lo: 0xbb, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x13, offset 0xbd + {value: 0x0000, lo: 0x0b}, + {value: 0x0040, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x14, offset 0xc9 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x89}, + {value: 0x3b08, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x3008, lo: 0x98, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x15, offset 0xda + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb2}, + {value: 0x08f1, lo: 0xb3, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb9}, + {value: 0x3b08, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0x16, offset 0xe4 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x8e}, + {value: 0x0018, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0xbf}, + // Block 0x17, offset 0xeb + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0961, lo: 0x9c, hi: 0x9c}, + {value: 0x0999, lo: 0x9d, hi: 0x9d}, + {value: 0x0008, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x18, offset 0xf8 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe03d, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x19, offset 0x109 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0x1a, offset 0x110 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0x11b + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xa1}, + {value: 0x3008, lo: 0xa2, hi: 0xa4}, + {value: 0x0008, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xbf}, + // Block 0x1c, offset 0x12a + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x8c}, + {value: 0x3308, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x3008, lo: 0x9a, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x1d, offset 0x138 + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x86}, + {value: 0x055d, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8c}, + {value: 0x055d, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0xe105, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0x1e, offset 0x142 + {value: 0x0000, lo: 0x01}, + {value: 0x0018, lo: 0x80, hi: 0xbf}, + // Block 0x1f, offset 0x144 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa0}, + {value: 0x2018, lo: 0xa1, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x20, offset 0x149 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa7}, + {value: 0x2018, lo: 0xa8, hi: 0xbf}, + // Block 0x21, offset 0x14c + {value: 0x0000, lo: 0x02}, + {value: 0x2018, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0xbf}, + // Block 0x22, offset 0x14f + {value: 0x0000, lo: 0x01}, + {value: 0x0008, lo: 0x80, hi: 0xbf}, + // Block 0x23, offset 0x151 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x24, offset 0x15d + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x25, offset 0x168 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x26, offset 0x170 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x27, offset 0x176 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x28, offset 0x17c + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x29, offset 0x181 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x2a, offset 0x186 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x2b, offset 0x189 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xbf}, + // Block 0x2c, offset 0x18d + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x2d, offset 0x193 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x2e, offset 0x198 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x3b08, lo: 0x94, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x2f, offset 0x1a4 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x30, offset 0x1ae + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xb3}, + {value: 0x3340, lo: 0xb4, hi: 0xb5}, + {value: 0x3008, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x31, offset 0x1b4 + {value: 0x0000, lo: 0x10}, + {value: 0x3008, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x91}, + {value: 0x3b08, lo: 0x92, hi: 0x92}, + {value: 0x3308, lo: 0x93, hi: 0x93}, + {value: 0x0018, lo: 0x94, hi: 0x96}, + {value: 0x0008, lo: 0x97, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x32, offset 0x1c5 + {value: 0x0000, lo: 0x09}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x86}, + {value: 0x0218, lo: 0x87, hi: 0x87}, + {value: 0x0018, lo: 0x88, hi: 0x8a}, + {value: 0x33c0, lo: 0x8b, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0208, lo: 0xa0, hi: 0xbf}, + // Block 0x33, offset 0x1cf + {value: 0x0000, lo: 0x02}, + {value: 0x0208, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x34, offset 0x1d2 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0208, lo: 0x87, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xa9}, + {value: 0x0208, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x35, offset 0x1da + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0x36, offset 0x1dd + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x37, offset 0x1ea + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x38, offset 0x1f2 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x39, offset 0x1f6 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0028, lo: 0x9a, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xbf}, + // Block 0x3a, offset 0x1fd + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x3308, lo: 0x97, hi: 0x98}, + {value: 0x3008, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x3b, offset 0x205 + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x94}, + {value: 0x3008, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3b08, lo: 0xa0, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xac}, + {value: 0x3008, lo: 0xad, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x215 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xbd}, + {value: 0x3318, lo: 0xbe, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x221 + {value: 0x0000, lo: 0x01}, + {value: 0x0040, lo: 0x80, hi: 0xbf}, + // Block 0x3e, offset 0x223 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3008, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbf}, + // Block 0x3f, offset 0x22d + {value: 0x0000, lo: 0x0b}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x3808, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x40, offset 0x239 + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3808, lo: 0xaa, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xbf}, + // Block 0x41, offset 0x245 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3008, lo: 0xaa, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3808, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbf}, + // Block 0x42, offset 0x251 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x3008, lo: 0xa4, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbf}, + // Block 0x43, offset 0x259 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x44, offset 0x25e + {value: 0x0000, lo: 0x09}, + {value: 0x0e29, lo: 0x80, hi: 0x80}, + {value: 0x0e41, lo: 0x81, hi: 0x81}, + {value: 0x0e59, lo: 0x82, hi: 0x82}, + {value: 0x0e71, lo: 0x83, hi: 0x83}, + {value: 0x0e89, lo: 0x84, hi: 0x85}, + {value: 0x0ea1, lo: 0x86, hi: 0x86}, + {value: 0x0eb9, lo: 0x87, hi: 0x87}, + {value: 0x057d, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0x45, offset 0x268 + {value: 0x0000, lo: 0x10}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x92}, + {value: 0x0018, lo: 0x93, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa8}, + {value: 0x0008, lo: 0xa9, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x46, offset 0x279 + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0x47, offset 0x27d + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x87}, + {value: 0xe045, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0xe045, lo: 0x98, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0xe045, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbf}, + // Block 0x48, offset 0x288 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x3318, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbf}, + // Block 0x49, offset 0x28c + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x24c1, lo: 0x89, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x4a, offset 0x295 + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x24f1, lo: 0xac, hi: 0xac}, + {value: 0x2529, lo: 0xad, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xae}, + {value: 0x2579, lo: 0xaf, hi: 0xaf}, + {value: 0x25b1, lo: 0xb0, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0x4b, offset 0x29d + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x9f}, + {value: 0x0080, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xad}, + {value: 0x0080, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x4c, offset 0x2a3 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xa8}, + {value: 0x09c5, lo: 0xa9, hi: 0xa9}, + {value: 0x09e5, lo: 0xaa, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xbf}, + // Block 0x4d, offset 0x2a8 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xbf}, + // Block 0x4e, offset 0x2ab + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x28c1, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x4f, offset 0x2af + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0e66, lo: 0xb4, hi: 0xb4}, + {value: 0x292a, lo: 0xb5, hi: 0xb5}, + {value: 0x0e86, lo: 0xb6, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x50, offset 0x2b5 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x9b}, + {value: 0x2941, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0xbf}, + // Block 0x51, offset 0x2b9 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x52, offset 0x2bd + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbc}, + {value: 0x0018, lo: 0xbd, hi: 0xbf}, + // Block 0x53, offset 0x2c3 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x92}, + {value: 0x0040, lo: 0x93, hi: 0xab}, + {value: 0x0018, lo: 0xac, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x54, offset 0x2ca + {value: 0x0000, lo: 0x05}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x03f5, lo: 0x90, hi: 0x9f}, + {value: 0x0ea5, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x55, offset 0x2d0 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x56, offset 0x2d8 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xae}, + {value: 0xe075, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0x57, offset 0x2df + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x58, offset 0x2ea + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xbf}, + // Block 0x59, offset 0x2f4 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x5a, offset 0x2f8 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0xbf}, + // Block 0x5b, offset 0x2fb + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9e}, + {value: 0x0edd, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x5c, offset 0x301 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb2}, + {value: 0x0efd, lo: 0xb3, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x5d, offset 0x305 + {value: 0x0020, lo: 0x01}, + {value: 0x0f1d, lo: 0x80, hi: 0xbf}, + // Block 0x5e, offset 0x307 + {value: 0x0020, lo: 0x02}, + {value: 0x171d, lo: 0x80, hi: 0x8f}, + {value: 0x18fd, lo: 0x90, hi: 0xbf}, + // Block 0x5f, offset 0x30a + {value: 0x0020, lo: 0x01}, + {value: 0x1efd, lo: 0x80, hi: 0xbf}, + // Block 0x60, offset 0x30c + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x61, offset 0x30f + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9a}, + {value: 0x29e2, lo: 0x9b, hi: 0x9b}, + {value: 0x2a0a, lo: 0x9c, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9e}, + {value: 0x2a31, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xbf}, + // Block 0x62, offset 0x319 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbe}, + {value: 0x2a69, lo: 0xbf, hi: 0xbf}, + // Block 0x63, offset 0x31c + {value: 0x0000, lo: 0x0e}, + {value: 0x0040, lo: 0x80, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xb0}, + {value: 0x2a1d, lo: 0xb1, hi: 0xb1}, + {value: 0x2a3d, lo: 0xb2, hi: 0xb2}, + {value: 0x2a5d, lo: 0xb3, hi: 0xb3}, + {value: 0x2a7d, lo: 0xb4, hi: 0xb4}, + {value: 0x2a5d, lo: 0xb5, hi: 0xb5}, + {value: 0x2a9d, lo: 0xb6, hi: 0xb6}, + {value: 0x2abd, lo: 0xb7, hi: 0xb7}, + {value: 0x2add, lo: 0xb8, hi: 0xb9}, + {value: 0x2afd, lo: 0xba, hi: 0xbb}, + {value: 0x2b1d, lo: 0xbc, hi: 0xbd}, + {value: 0x2afd, lo: 0xbe, hi: 0xbf}, + // Block 0x64, offset 0x32b + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x65, offset 0x32f + {value: 0x0030, lo: 0x04}, + {value: 0x2aa2, lo: 0x80, hi: 0x9d}, + {value: 0x305a, lo: 0x9e, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x30a2, lo: 0xa0, hi: 0xbf}, + // Block 0x66, offset 0x334 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xbf}, + // Block 0x67, offset 0x337 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x68, offset 0x33b + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x69, offset 0x340 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xbf}, + // Block 0x6a, offset 0x345 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb1}, + {value: 0x0018, lo: 0xb2, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6b, offset 0x34b + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0xb6}, + {value: 0x0008, lo: 0xb7, hi: 0xb7}, + {value: 0x2009, lo: 0xb8, hi: 0xb8}, + {value: 0x6e89, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xbf}, + // Block 0x6c, offset 0x351 + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x3308, lo: 0x8b, hi: 0x8b}, + {value: 0x0008, lo: 0x8c, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x6d, offset 0x360 + {value: 0x0000, lo: 0x05}, + {value: 0x0208, lo: 0x80, hi: 0xb1}, + {value: 0x0108, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6e, offset 0x366 + {value: 0x0000, lo: 0x03}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xbf}, + // Block 0x6f, offset 0x36a + {value: 0x0000, lo: 0x0e}, + {value: 0x3008, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xba}, + {value: 0x0008, lo: 0xbb, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x70, offset 0x379 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x71, offset 0x37e + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x91}, + {value: 0x3008, lo: 0x92, hi: 0x92}, + {value: 0x3808, lo: 0x93, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x72, offset 0x386 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb9}, + {value: 0x3008, lo: 0xba, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbf}, + // Block 0x73, offset 0x390 + {value: 0x0000, lo: 0x0a}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x74, offset 0x39b + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x75, offset 0x3a3 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8c}, + {value: 0x3008, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbd}, + {value: 0x0008, lo: 0xbe, hi: 0xbf}, + // Block 0x76, offset 0x3b4 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x77, offset 0x3bd + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x9a}, + {value: 0x0008, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3b08, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x78, offset 0x3cd + {value: 0x0000, lo: 0x0c}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x90}, + {value: 0x0008, lo: 0x91, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x79, offset 0x3da + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x4465, lo: 0x9c, hi: 0x9c}, + {value: 0x447d, lo: 0x9d, hi: 0x9d}, + {value: 0x2971, lo: 0x9e, hi: 0x9e}, + {value: 0xe06d, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xaf}, + {value: 0x4495, lo: 0xb0, hi: 0xbf}, + // Block 0x7a, offset 0x3e4 + {value: 0x0000, lo: 0x04}, + {value: 0x44b5, lo: 0x80, hi: 0x8f}, + {value: 0x44d5, lo: 0x90, hi: 0x9f}, + {value: 0x44f5, lo: 0xa0, hi: 0xaf}, + {value: 0x44d5, lo: 0xb0, hi: 0xbf}, + // Block 0x7b, offset 0x3e9 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3b08, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x7c, offset 0x3f6 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x7d, offset 0x3fa + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x7e, offset 0x3ff + {value: 0x0020, lo: 0x01}, + {value: 0x4515, lo: 0x80, hi: 0xbf}, + // Block 0x7f, offset 0x401 + {value: 0x0020, lo: 0x03}, + {value: 0x4d15, lo: 0x80, hi: 0x94}, + {value: 0x4ad5, lo: 0x95, hi: 0x95}, + {value: 0x4fb5, lo: 0x96, hi: 0xbf}, + // Block 0x80, offset 0x405 + {value: 0x0020, lo: 0x01}, + {value: 0x54f5, lo: 0x80, hi: 0xbf}, + // Block 0x81, offset 0x407 + {value: 0x0020, lo: 0x03}, + {value: 0x5cf5, lo: 0x80, hi: 0x84}, + {value: 0x5655, lo: 0x85, hi: 0x85}, + {value: 0x5d95, lo: 0x86, hi: 0xbf}, + // Block 0x82, offset 0x40b + {value: 0x0020, lo: 0x08}, + {value: 0x6b55, lo: 0x80, hi: 0x8f}, + {value: 0x6d15, lo: 0x90, hi: 0x90}, + {value: 0x6d55, lo: 0x91, hi: 0xab}, + {value: 0x6ea1, lo: 0xac, hi: 0xac}, + {value: 0x70b5, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x70d5, lo: 0xb0, hi: 0xbf}, + // Block 0x83, offset 0x414 + {value: 0x0020, lo: 0x05}, + {value: 0x72d5, lo: 0x80, hi: 0xad}, + {value: 0x6535, lo: 0xae, hi: 0xae}, + {value: 0x7895, lo: 0xaf, hi: 0xb5}, + {value: 0x6f55, lo: 0xb6, hi: 0xb6}, + {value: 0x7975, lo: 0xb7, hi: 0xbf}, + // Block 0x84, offset 0x41a + {value: 0x0028, lo: 0x03}, + {value: 0x7c21, lo: 0x80, hi: 0x82}, + {value: 0x7be1, lo: 0x83, hi: 0x83}, + {value: 0x7c99, lo: 0x84, hi: 0xbf}, + // Block 0x85, offset 0x41e + {value: 0x0038, lo: 0x0f}, + {value: 0x9db1, lo: 0x80, hi: 0x83}, + {value: 0x9e59, lo: 0x84, hi: 0x85}, + {value: 0x9e91, lo: 0x86, hi: 0x87}, + {value: 0x9ec9, lo: 0x88, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0xa089, lo: 0x92, hi: 0x97}, + {value: 0xa1a1, lo: 0x98, hi: 0x9c}, + {value: 0xa281, lo: 0x9d, hi: 0xb3}, + {value: 0x9d41, lo: 0xb4, hi: 0xb4}, + {value: 0x9db1, lo: 0xb5, hi: 0xb5}, + {value: 0xa789, lo: 0xb6, hi: 0xbb}, + {value: 0xa869, lo: 0xbc, hi: 0xbc}, + {value: 0xa7f9, lo: 0xbd, hi: 0xbd}, + {value: 0xa8d9, lo: 0xbe, hi: 0xbf}, + // Block 0x86, offset 0x42e + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x0008, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x87, offset 0x438 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0x88, offset 0x43d + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x89, offset 0x440 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x8a, offset 0x446 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x8b, offset 0x44d + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x8c, offset 0x452 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x8d, offset 0x456 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x8e, offset 0x45c + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xbf}, + // Block 0x8f, offset 0x461 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x90, offset 0x46a + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x91, offset 0x46f + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0x92, offset 0x475 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x97}, + {value: 0x8ad5, lo: 0x98, hi: 0x9f}, + {value: 0x8aed, lo: 0xa0, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xbf}, + // Block 0x93, offset 0x47c + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x8aed, lo: 0xb0, hi: 0xb7}, + {value: 0x8ad5, lo: 0xb8, hi: 0xbf}, + // Block 0x94, offset 0x483 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x95, offset 0x48a + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x96, offset 0x48e + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xae}, + {value: 0x0018, lo: 0xaf, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x97, offset 0x493 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x98, offset 0x496 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xbf}, + // Block 0x99, offset 0x49b + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0808, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0808, lo: 0x8a, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb6}, + {value: 0x0808, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbb}, + {value: 0x0808, lo: 0xbc, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x0808, lo: 0xbf, hi: 0xbf}, + // Block 0x9a, offset 0x4a7 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x96}, + {value: 0x0818, lo: 0x97, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb6}, + {value: 0x0818, lo: 0xb7, hi: 0xbf}, + // Block 0x9b, offset 0x4ad + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa6}, + {value: 0x0818, lo: 0xa7, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x9c, offset 0x4b2 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xba}, + {value: 0x0818, lo: 0xbb, hi: 0xbf}, + // Block 0x9d, offset 0x4b9 + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0818, lo: 0x96, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbe}, + {value: 0x0818, lo: 0xbf, hi: 0xbf}, + // Block 0x9e, offset 0x4c1 + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbb}, + {value: 0x0818, lo: 0xbc, hi: 0xbd}, + {value: 0x0808, lo: 0xbe, hi: 0xbf}, + // Block 0x9f, offset 0x4c6 + {value: 0x0000, lo: 0x03}, + {value: 0x0818, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x0818, lo: 0x92, hi: 0xbf}, + // Block 0xa0, offset 0x4ca + {value: 0x0000, lo: 0x0f}, + {value: 0x0808, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x94}, + {value: 0x0808, lo: 0x95, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x98}, + {value: 0x0808, lo: 0x99, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xa1, offset 0x4da + {value: 0x0000, lo: 0x06}, + {value: 0x0818, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0818, lo: 0x90, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xbc}, + {value: 0x0818, lo: 0xbd, hi: 0xbf}, + // Block 0xa2, offset 0x4e1 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xa3, offset 0x4e5 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb8}, + {value: 0x0018, lo: 0xb9, hi: 0xbf}, + // Block 0xa4, offset 0x4e9 + {value: 0x0000, lo: 0x06}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0818, lo: 0x98, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb7}, + {value: 0x0818, lo: 0xb8, hi: 0xbf}, + // Block 0xa5, offset 0x4f0 + {value: 0x0000, lo: 0x01}, + {value: 0x0808, lo: 0x80, hi: 0xbf}, + // Block 0xa6, offset 0x4f2 + {value: 0x0000, lo: 0x02}, + {value: 0x0808, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0xa7, offset 0x4f5 + {value: 0x0000, lo: 0x02}, + {value: 0x03dd, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xa8, offset 0x4f8 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xbf}, + // Block 0xa9, offset 0x4fc + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0818, lo: 0xa0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xaa, offset 0x500 + {value: 0x0000, lo: 0x05}, + {value: 0x3008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xab, offset 0x506 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x91}, + {value: 0x0018, lo: 0x92, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xac, offset 0x50f + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbc}, + {value: 0x0340, lo: 0xbd, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0xad, offset 0x51b + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xae, offset 0x522 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb2}, + {value: 0x3b08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xbf}, + // Block 0xaf, offset 0x52b + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xb0, offset 0x533 + {value: 0x0000, lo: 0x06}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xbe}, + {value: 0x3008, lo: 0xbf, hi: 0xbf}, + // Block 0xb1, offset 0x53a + {value: 0x0000, lo: 0x0d}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x89}, + {value: 0x3308, lo: 0x8a, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xb2, offset 0x548 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3808, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xb3, offset 0x555 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xb4, offset 0x562 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x3308, lo: 0x9f, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa9}, + {value: 0x3b08, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xb5, offset 0x56b + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xb6, offset 0x56f + {value: 0x0000, lo: 0x0d}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0xb7, offset 0x57d + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xb8, offset 0x585 + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x85}, + {value: 0x0018, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xb9, offset 0x590 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xba, offset 0x599 + {value: 0x0000, lo: 0x05}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9b}, + {value: 0x3308, lo: 0x9c, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0xbb, offset 0x59f + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xbc, offset 0x5a7 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xbd, offset 0x5b0 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb5}, + {value: 0x3808, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0xbe, offset 0x5ba + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0xbf}, + // Block 0xbf, offset 0x5bd + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbf}, + // Block 0xc0, offset 0x5c9 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xbf}, + // Block 0xc1, offset 0x5cc + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0xc2, offset 0x5d1 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xc3, offset 0x5de + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x3b08, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0xbf}, + // Block 0xc4, offset 0x5e7 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x89}, + {value: 0x3308, lo: 0x8a, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x98}, + {value: 0x3b08, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xa2}, + {value: 0x0040, lo: 0xa3, hi: 0xbf}, + // Block 0xc5, offset 0x5f3 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xc6, offset 0x5f6 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xc7, offset 0x600 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xbf}, + // Block 0xc8, offset 0x609 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xa9}, + {value: 0x3308, lo: 0xaa, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xc9, offset 0x615 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xca, offset 0x622 + {value: 0x0000, lo: 0x07}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xcb, offset 0x62a + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xcc, offset 0x62d + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xcd, offset 0x632 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0xbf}, + // Block 0xce, offset 0x635 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xbf}, + // Block 0xcf, offset 0x638 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0xbf}, + // Block 0xd0, offset 0x63b + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xd1, offset 0x642 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xd2, offset 0x649 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0xd3, offset 0x64d + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0xd4, offset 0x658 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0xd5, offset 0x65b + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3008, lo: 0x91, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xd6, offset 0x661 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xd7, offset 0x666 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xbf}, + // Block 0xd8, offset 0x66a + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xd9, offset 0x66d + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xda, offset 0x670 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xbf}, + // Block 0xdb, offset 0x673 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xdc, offset 0x676 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0xdd, offset 0x679 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0xde, offset 0x67e + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x03c0, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xbf}, + // Block 0xdf, offset 0x688 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xe0, offset 0x68b + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xbf}, + // Block 0xe1, offset 0x68f + {value: 0x0000, lo: 0x0e}, + {value: 0x0018, lo: 0x80, hi: 0x9d}, + {value: 0xb5b9, lo: 0x9e, hi: 0x9e}, + {value: 0xb601, lo: 0x9f, hi: 0x9f}, + {value: 0xb649, lo: 0xa0, hi: 0xa0}, + {value: 0xb6b1, lo: 0xa1, hi: 0xa1}, + {value: 0xb719, lo: 0xa2, hi: 0xa2}, + {value: 0xb781, lo: 0xa3, hi: 0xa3}, + {value: 0xb7e9, lo: 0xa4, hi: 0xa4}, + {value: 0x3018, lo: 0xa5, hi: 0xa6}, + {value: 0x3318, lo: 0xa7, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xac}, + {value: 0x3018, lo: 0xad, hi: 0xb2}, + {value: 0x0340, lo: 0xb3, hi: 0xba}, + {value: 0x3318, lo: 0xbb, hi: 0xbf}, + // Block 0xe2, offset 0x69e + {value: 0x0000, lo: 0x0b}, + {value: 0x3318, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0x84}, + {value: 0x3318, lo: 0x85, hi: 0x8b}, + {value: 0x0018, lo: 0x8c, hi: 0xa9}, + {value: 0x3318, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xba}, + {value: 0xb851, lo: 0xbb, hi: 0xbb}, + {value: 0xb899, lo: 0xbc, hi: 0xbc}, + {value: 0xb8e1, lo: 0xbd, hi: 0xbd}, + {value: 0xb949, lo: 0xbe, hi: 0xbe}, + {value: 0xb9b1, lo: 0xbf, hi: 0xbf}, + // Block 0xe3, offset 0x6aa + {value: 0x0000, lo: 0x03}, + {value: 0xba19, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xbf}, + // Block 0xe4, offset 0x6ae + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x3318, lo: 0x82, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0xbf}, + // Block 0xe5, offset 0x6b3 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xe6, offset 0x6b8 + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0xe7, offset 0x6bc + {value: 0x0000, lo: 0x04}, + {value: 0x3308, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0xe8, offset 0x6c1 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x3308, lo: 0xa1, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xe9, offset 0x6ca + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xbf}, + // Block 0xea, offset 0x6d5 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x86}, + {value: 0x0818, lo: 0x87, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0xeb, offset 0x6db + {value: 0x0000, lo: 0x07}, + {value: 0x0a08, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0818, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xec, offset 0x6e3 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xed, offset 0x6e7 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0xee, offset 0x6eb + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0xef, offset 0x6f1 + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xf0, offset 0x6f7 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x8f}, + {value: 0xc1c1, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xf1, offset 0x6fc + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xbf}, + // Block 0xf2, offset 0x6ff + {value: 0x0000, lo: 0x0f}, + {value: 0xc7e9, lo: 0x80, hi: 0x80}, + {value: 0xc839, lo: 0x81, hi: 0x81}, + {value: 0xc889, lo: 0x82, hi: 0x82}, + {value: 0xc8d9, lo: 0x83, hi: 0x83}, + {value: 0xc929, lo: 0x84, hi: 0x84}, + {value: 0xc979, lo: 0x85, hi: 0x85}, + {value: 0xc9c9, lo: 0x86, hi: 0x86}, + {value: 0xca19, lo: 0x87, hi: 0x87}, + {value: 0xca69, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0xcab9, lo: 0x90, hi: 0x90}, + {value: 0xcad9, lo: 0x91, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xbf}, + // Block 0xf3, offset 0x70f + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xf4, offset 0x716 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0xf5, offset 0x719 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0xbf}, + // Block 0xf6, offset 0x71c + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0xf7, offset 0x720 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0xf8, offset 0x726 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xbf}, + // Block 0xf9, offset 0x72b + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xfa, offset 0x730 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xbf}, + // Block 0xfb, offset 0x735 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0xbf}, + // Block 0xfc, offset 0x738 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xbf}, + // Block 0xfd, offset 0x73d + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0xfe, offset 0x740 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xff, offset 0x743 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x100, offset 0x747 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x101, offset 0x74b + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x102, offset 0x74e + {value: 0x0020, lo: 0x0f}, + {value: 0xdeb9, lo: 0x80, hi: 0x89}, + {value: 0x8dfd, lo: 0x8a, hi: 0x8a}, + {value: 0xdff9, lo: 0x8b, hi: 0x9c}, + {value: 0x8e1d, lo: 0x9d, hi: 0x9d}, + {value: 0xe239, lo: 0x9e, hi: 0xa2}, + {value: 0x8e3d, lo: 0xa3, hi: 0xa3}, + {value: 0xe2d9, lo: 0xa4, hi: 0xab}, + {value: 0x7ed5, lo: 0xac, hi: 0xac}, + {value: 0xe3d9, lo: 0xad, hi: 0xaf}, + {value: 0x8e5d, lo: 0xb0, hi: 0xb0}, + {value: 0xe439, lo: 0xb1, hi: 0xb6}, + {value: 0x8e7d, lo: 0xb7, hi: 0xb9}, + {value: 0xe4f9, lo: 0xba, hi: 0xba}, + {value: 0x8edd, lo: 0xbb, hi: 0xbb}, + {value: 0xe519, lo: 0xbc, hi: 0xbf}, + // Block 0x103, offset 0x75e + {value: 0x0020, lo: 0x10}, + {value: 0x937d, lo: 0x80, hi: 0x80}, + {value: 0xf099, lo: 0x81, hi: 0x86}, + {value: 0x939d, lo: 0x87, hi: 0x8a}, + {value: 0xd9f9, lo: 0x8b, hi: 0x8b}, + {value: 0xf159, lo: 0x8c, hi: 0x96}, + {value: 0x941d, lo: 0x97, hi: 0x97}, + {value: 0xf2b9, lo: 0x98, hi: 0xa3}, + {value: 0x943d, lo: 0xa4, hi: 0xa6}, + {value: 0xf439, lo: 0xa7, hi: 0xaa}, + {value: 0x949d, lo: 0xab, hi: 0xab}, + {value: 0xf4b9, lo: 0xac, hi: 0xac}, + {value: 0x94bd, lo: 0xad, hi: 0xad}, + {value: 0xf4d9, lo: 0xae, hi: 0xaf}, + {value: 0x94dd, lo: 0xb0, hi: 0xb1}, + {value: 0xf519, lo: 0xb2, hi: 0xbe}, + {value: 0x2040, lo: 0xbf, hi: 0xbf}, + // Block 0x104, offset 0x76f + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0340, lo: 0x81, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x9f}, + {value: 0x0340, lo: 0xa0, hi: 0xbf}, + // Block 0x105, offset 0x774 + {value: 0x0000, lo: 0x01}, + {value: 0x0340, lo: 0x80, hi: 0xbf}, + // Block 0x106, offset 0x776 + {value: 0x0000, lo: 0x01}, + {value: 0x33c0, lo: 0x80, hi: 0xbf}, + // Block 0x107, offset 0x778 + {value: 0x0000, lo: 0x02}, + {value: 0x33c0, lo: 0x80, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, +} + +// Total table size 42114 bytes (41KiB); checksum: 355A58A4 diff --git a/vendor/golang.org/x/net/idna/tables11.0.0.go b/vendor/golang.org/x/net/idna/tables11.0.0.go new file mode 100644 index 0000000..167efba --- /dev/null +++ b/vendor/golang.org/x/net/idna/tables11.0.0.go @@ -0,0 +1,4654 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.13 && !go1.14 +// +build go1.13,!go1.14 + +package idna + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "11.0.0" + +var mappings string = "" + // Size: 8175 bytes + "\x00\x01 \x03 ̈\x01a\x03 Ì„\x012\x013\x03 Ì\x03 ̧\x011\x01o\x051â„4\x051â„2" + + "\x053â„4\x03i̇\x03l·\x03ʼn\x01s\x03dž\x03â±¥\x03ⱦ\x01h\x01j\x01r\x01w\x01y" + + "\x03 ̆\x03 ̇\x03 ÌŠ\x03 ̨\x03 ̃\x03 Ì‹\x01l\x01x\x04̈Ì\x03 ι\x01;\x05 ̈Ì" + + "\x04Õ¥Ö‚\x04اٴ\x04وٴ\x04Û‡Ù´\x04يٴ\x06क़\x06ख़\x06ग़\x06ज़\x06ड़\x06ढ़\x06फ़" + + "\x06य़\x06ড়\x06ঢ়\x06য়\x06ਲ਼\x06ਸ਼\x06ਖ਼\x06ਗ਼\x06ਜ਼\x06ਫ਼\x06ଡ଼\x06ଢ଼" + + "\x06à¹à¸²\x06à»àº²\x06ຫນ\x06ຫມ\x06གྷ\x06ཌྷ\x06དྷ\x06བྷ\x06ཛྷ\x06ཀྵ\x06ཱི\x06ཱུ" + + "\x06ྲྀ\x09ྲཱྀ\x06ླྀ\x09ླཱྀ\x06ཱྀ\x06ྒྷ\x06ྜྷ\x06ྡྷ\x06ྦྷ\x06ྫྷ\x06à¾à¾µ\x02" + + "в\x02д\x02о\x02Ñ\x02Ñ‚\x02ÑŠ\x02Ñ£\x02æ\x01b\x01d\x01e\x02Ç\x01g\x01i\x01k" + + "\x01m\x01n\x02È£\x01p\x01t\x01u\x02É\x02É‘\x02É™\x02É›\x02Éœ\x02Å‹\x02É”\x02ɯ" + + "\x01v\x02β\x02γ\x02δ\x02φ\x02χ\x02Ï\x02н\x02É’\x01c\x02É•\x02ð\x01f\x02ÉŸ" + + "\x02É¡\x02É¥\x02ɨ\x02É©\x02ɪ\x02Ê\x02É­\x02ÊŸ\x02ɱ\x02É°\x02ɲ\x02ɳ\x02É´\x02ɵ" + + "\x02ɸ\x02Ê‚\x02ʃ\x02Æ«\x02ʉ\x02ÊŠ\x02Ê‹\x02ÊŒ\x01z\x02Ê\x02Ê‘\x02Ê’\x02θ\x02ss" + + "\x02ά\x02έ\x02ή\x02ί\x02ÏŒ\x02Ï\x02ÏŽ\x05ἀι\x05á¼Î¹\x05ἂι\x05ἃι\x05ἄι\x05ἅι" + + "\x05ἆι\x05ἇι\x05ἠι\x05ἡι\x05ἢι\x05ἣι\x05ἤι\x05ἥι\x05ἦι\x05ἧι\x05ὠι\x05ὡι" + + "\x05ὢι\x05ὣι\x05ὤι\x05ὥι\x05ὦι\x05ὧι\x05ὰι\x04αι\x04άι\x05ᾶι\x02ι\x05 ̈͂" + + "\x05ὴι\x04ηι\x04ήι\x05ῆι\x05 Ì“Ì€\x05 Ì“Ì\x05 Ì“Í‚\x02Î\x05 ̔̀\x05 Ì”Ì\x05 ̔͂" + + "\x02ΰ\x05 ̈̀\x01`\x05ὼι\x04ωι\x04ώι\x05ῶι\x06′′\x09′′′\x06‵‵\x09‵‵‵\x02!" + + "!\x02??\x02?!\x02!?\x0c′′′′\x010\x014\x015\x016\x017\x018\x019\x01+\x01=" + + "\x01(\x01)\x02rs\x02ħ\x02no\x01q\x02sm\x02tm\x02ω\x02Ã¥\x02×\x02ב\x02×’" + + "\x02ד\x02Ï€\x051â„7\x051â„9\x061â„10\x051â„3\x052â„3\x051â„5\x052â„5\x053â„5\x054" + + "â„5\x051â„6\x055â„6\x051â„8\x053â„8\x055â„8\x057â„8\x041â„\x02ii\x02iv\x02vi" + + "\x04viii\x02ix\x02xi\x050â„3\x06∫∫\x09∫∫∫\x06∮∮\x09∮∮∮\x0210\x0211\x0212" + + "\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)" + + "\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\x0c∫∫∫∫" + + "\x02==\x05â«Ì¸\x02É«\x02ɽ\x02È¿\x02É€\x01.\x04 ã‚™\x04 ã‚š\x06より\x06コト\x05(á„€)\x05" + + "(á„‚)\x05(ᄃ)\x05(á„…)\x05(ᄆ)\x05(ᄇ)\x05(ᄉ)\x05(á„‹)\x05(á„Œ)\x05(á„Ž)\x05(á„)\x05(á„" + + ")\x05(á„‘)\x05(á„’)\x05(ê°€)\x05(나)\x05(다)\x05(ë¼)\x05(마)\x05(ë°”)\x05(사)\x05(ì•„)" + + "\x05(ìž)\x05(ì°¨)\x05(ì¹´)\x05(타)\x05(파)\x05(하)\x05(주)\x08(오전)\x08(오후)\x05(一)" + + "\x05(二)\x05(三)\x05(å››)\x05(五)\x05(å…­)\x05(七)\x05(å…«)\x05(ä¹)\x05(å)\x05(月)" + + "\x05(ç«)\x05(æ°´)\x05(木)\x05(金)\x05(土)\x05(æ—¥)\x05(æ ª)\x05(有)\x05(社)\x05(å)" + + "\x05(特)\x05(財)\x05(ç¥)\x05(労)\x05(代)\x05(呼)\x05(å­¦)\x05(監)\x05(ä¼)\x05(資)" + + "\x05(å”)\x05(祭)\x05(休)\x05(自)\x05(至)\x0221\x0222\x0223\x0224\x0225\x0226" + + "\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06참고\x06주ì˜\x0236" + + "\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248" + + "\x0249\x0250\x041月\x042月\x043月\x044月\x045月\x046月\x047月\x048月\x049月\x0510" + + "月\x0511月\x0512月\x02hg\x02ev\x0cアパート\x0cアルファ\x0cアンペア\x09アール\x0cイニング\x09" + + "インãƒ\x09ウォン\x0fエスクード\x0cエーカー\x09オンス\x09オーム\x09カイリ\x0cカラット\x0cカロリー\x09ガロ" + + "ン\x09ガンマ\x06ギガ\x09ギニー\x0cキュリー\x0cギルダー\x06キロ\x0fキログラム\x12キロメートル\x0fキロワッ" + + "ト\x09グラム\x0fグラムトン\x0fクルゼイロ\x0cクローãƒ\x09ケース\x09コルナ\x09コーãƒ\x0cサイクル\x0fサンãƒ" + + "ーム\x0cシリング\x09センãƒ\x09セント\x09ダース\x06デシ\x06ドル\x06トン\x06ナノ\x09ノット\x09ãƒã‚¤ãƒ„" + + "\x0fパーセント\x09パーツ\x0cãƒãƒ¼ãƒ¬ãƒ«\x0fピアストル\x09ピクル\x06ピコ\x06ビル\x0fファラッド\x0cフィート" + + "\x0fブッシェル\x09フラン\x0fヘクタール\x06ペソ\x09ペニヒ\x09ヘルツ\x09ペンス\x09ページ\x09ベータ\x0cãƒã‚¤" + + "ント\x09ボルト\x06ホン\x09ãƒãƒ³ãƒ‰\x09ホール\x09ホーン\x0cマイクロ\x09マイル\x09マッãƒ\x09マルク\x0fマ" + + "ンション\x0cミクロン\x06ミリ\x0fミリãƒãƒ¼ãƒ«\x06メガ\x0cメガトン\x0cメートル\x09ヤード\x09ヤール\x09ユアン" + + "\x0cリットル\x06リラ\x09ルピー\x0cルーブル\x06レム\x0fレントゲン\x09ワット\x040点\x041点\x042点" + + "\x043点\x044点\x045点\x046点\x047点\x048点\x049点\x0510点\x0511点\x0512点\x0513点" + + "\x0514点\x0515点\x0516点\x0517点\x0518点\x0519点\x0520点\x0521点\x0522点\x0523点" + + "\x0524点\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06å¹³æˆ\x06昭和\x06大正\x06明治\x0cæ ª" + + "å¼ä¼šç¤¾\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02m" + + "g\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m" + + "3\x05m∕s\x06m∕s2\x07rad∕s\x08rad∕s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv" + + "\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c∕kg\x02db\x02gy\x02" + + "ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02" + + "wb\x05v∕m\x05a∕m\x041æ—¥\x042æ—¥\x043æ—¥\x044æ—¥\x045æ—¥\x046æ—¥\x047æ—¥\x048æ—¥\x049æ—¥" + + "\x0510æ—¥\x0511æ—¥\x0512æ—¥\x0513æ—¥\x0514æ—¥\x0515æ—¥\x0516æ—¥\x0517æ—¥\x0518æ—¥\x0519æ—¥" + + "\x0520æ—¥\x0521æ—¥\x0522æ—¥\x0523æ—¥\x0524æ—¥\x0525æ—¥\x0526æ—¥\x0527æ—¥\x0528æ—¥\x0529æ—¥" + + "\x0530æ—¥\x0531æ—¥\x02ÑŒ\x02ɦ\x02ɬ\x02Êž\x02ʇ\x02Å“\x04𤋮\x04𢡊\x04𢡄\x04ð£•\x04𥉉" + + "\x04ð¥³\x04𧻓\x02ff\x02fi\x02fl\x02st\x04Õ´Õ¶\x04Õ´Õ¥\x04Õ´Õ«\x04Õ¾Õ¶\x04Õ´Õ­\x04×™Ö´" + + "\x04ײַ\x02×¢\x02×”\x02×›\x02ל\x02×\x02ר\x02ת\x04ש×\x04שׂ\x06שּ×\x06שּׂ\x04×" + + "Ö·\x04×Ö¸\x04×Ö¼\x04בּ\x04×’Ö¼\x04דּ\x04×”Ö¼\x04וּ\x04×–Ö¼\x04טּ\x04×™Ö¼\x04ךּ\x04" + + "×›Ö¼\x04לּ\x04מּ\x04× Ö¼\x04סּ\x04×£Ö¼\x04פּ\x04צּ\x04קּ\x04רּ\x04שּ\x04תּ" + + "\x04וֹ\x04בֿ\x04×›Ö¿\x04פֿ\x04×ל\x02Ù±\x02Ù»\x02Ù¾\x02Ú€\x02Ùº\x02Ù¿\x02Ù¹\x02Ú¤" + + "\x02Ú¦\x02Ú„\x02Úƒ\x02Ú†\x02Ú‡\x02Ú\x02ÚŒ\x02ÚŽ\x02Úˆ\x02Ú˜\x02Ú‘\x02Ú©\x02Ú¯\x02Ú³" + + "\x02Ú±\x02Úº\x02Ú»\x02Û€\x02Û\x02Ú¾\x02Û’\x02Û“\x02Ú­\x02Û‡\x02Û†\x02Ûˆ\x02Û‹\x02Û…" + + "\x02Û‰\x02Û\x02Ù‰\x04ئا\x04ئە\x04ئو\x04ئۇ\x04ئۆ\x04ئۈ\x04ئÛ\x04ئى\x02ÛŒ\x04" + + "ئج\x04ئح\x04ئم\x04ئي\x04بج\x04بح\x04بخ\x04بم\x04بى\x04بي\x04تج\x04تح" + + "\x04تخ\x04تم\x04تى\x04تي\x04ثج\x04ثم\x04ثى\x04ثي\x04جح\x04جم\x04حج\x04حم" + + "\x04خج\x04خح\x04خم\x04سج\x04سح\x04سخ\x04سم\x04صح\x04صم\x04ضج\x04ضح\x04ضخ" + + "\x04ضم\x04طح\x04طم\x04ظم\x04عج\x04عم\x04غج\x04غم\x04Ùج\x04ÙØ­\x04ÙØ®\x04ÙÙ…" + + "\x04ÙÙ‰\x04ÙÙŠ\x04قح\x04قم\x04قى\x04قي\x04كا\x04كج\x04كح\x04كخ\x04كل\x04كم" + + "\x04كى\x04كي\x04لج\x04لح\x04لخ\x04لم\x04لى\x04لي\x04مج\x04مح\x04مخ\x04مم" + + "\x04مى\x04مي\x04نج\x04نح\x04نخ\x04نم\x04نى\x04ني\x04هج\x04هم\x04هى\x04هي" + + "\x04يج\x04يح\x04يخ\x04يم\x04يى\x04يي\x04ذٰ\x04رٰ\x04ىٰ\x05 ٌّ\x05 ÙÙ‘\x05" + + " ÙŽÙ‘\x05 ÙÙ‘\x05 ÙÙ‘\x05 ّٰ\x04ئر\x04ئز\x04ئن\x04بر\x04بز\x04بن\x04تر\x04تز" + + "\x04تن\x04ثر\x04ثز\x04ثن\x04ما\x04نر\x04نز\x04نن\x04ير\x04يز\x04ين\x04ئخ" + + "\x04ئه\x04به\x04ته\x04صخ\x04له\x04نه\x04هٰ\x04يه\x04ثه\x04سه\x04شم\x04شه" + + "\x06Ù€ÙŽÙ‘\x06Ù€ÙÙ‘\x06Ù€ÙÙ‘\x04طى\x04طي\x04عى\x04عي\x04غى\x04غي\x04سى\x04سي" + + "\x04شى\x04شي\x04حى\x04حي\x04جى\x04جي\x04خى\x04خي\x04صى\x04صي\x04ضى\x04ضي" + + "\x04شج\x04شح\x04شخ\x04شر\x04سر\x04صر\x04ضر\x04اً\x06تجم\x06تحج\x06تحم" + + "\x06تخم\x06تمج\x06تمح\x06تمخ\x06جمح\x06حمي\x06حمى\x06سحج\x06سجح\x06سجى" + + "\x06سمح\x06سمج\x06سمم\x06صحح\x06صمم\x06شحم\x06شجي\x06شمخ\x06شمم\x06ضحى" + + "\x06ضخم\x06طمح\x06طمم\x06طمي\x06عجم\x06عمم\x06عمى\x06غمم\x06غمي\x06غمى" + + "\x06Ùخم\x06قمح\x06قمم\x06لحم\x06لحي\x06لحى\x06لجج\x06لخم\x06لمح\x06محج" + + "\x06محم\x06محي\x06مجح\x06مجم\x06مخج\x06مخم\x06مجخ\x06همج\x06همم\x06نحم" + + "\x06نحى\x06نجم\x06نجى\x06نمي\x06نمى\x06يمم\x06بخي\x06تجي\x06تجى\x06تخي" + + "\x06تخى\x06تمي\x06تمى\x06جمي\x06جحى\x06جمى\x06سخى\x06صحي\x06شحي\x06ضحي" + + "\x06لجي\x06لمي\x06يحي\x06يجي\x06يمي\x06ممي\x06قمي\x06نحي\x06عمي\x06كمي" + + "\x06نجح\x06مخي\x06لجم\x06كمم\x06جحي\x06حجي\x06مجي\x06Ùمي\x06بحي\x06سخي" + + "\x06نجي\x06صلے\x06قلے\x08الله\x08اكبر\x08محمد\x08صلعم\x08رسول\x08عليه" + + "\x08وسلم\x06صلى!صلى الله عليه وسلم\x0fجل جلاله\x08ریال\x01,\x01:\x01!" + + "\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\\x01$" + + "\x01%\x01@\x04ـً\x04Ù€ÙŽ\x04Ù€Ù\x04Ù€Ù\x04ـّ\x04ـْ\x02Ø¡\x02Ø¢\x02Ø£\x02ؤ\x02Ø¥" + + "\x02ئ\x02ا\x02ب\x02Ø©\x02ت\x02Ø«\x02ج\x02Ø­\x02Ø®\x02د\x02Ø°\x02ر\x02ز\x02س" + + "\x02Ø´\x02ص\x02ض\x02Ø·\x02ظ\x02ع\x02غ\x02Ù\x02Ù‚\x02Ùƒ\x02Ù„\x02Ù…\x02Ù†\x02Ù‡" + + "\x02Ùˆ\x02ÙŠ\x04لآ\x04لأ\x04لإ\x04لا\x01\x22\x01'\x01/\x01^\x01|\x01~\x02¢" + + "\x02£\x02¬\x02¦\x02Â¥\x08ð…—ð…¥\x08ð…˜ð…¥\x0cð…˜ð…¥ð…®\x0cð…˜ð…¥ð…¯\x0cð…˜ð…¥ð…°\x0cð…˜ð…¥ð…±\x0cð…˜ð…¥ð…²\x08ð†¹" + + "ð…¥\x08ð†ºð…¥\x0cð†¹ð…¥ð…®\x0cð†ºð…¥ð…®\x0cð†¹ð…¥ð…¯\x0cð†ºð…¥ð…¯\x02ı\x02È·\x02α\x02ε\x02ζ\x02η\x02" + + "κ\x02λ\x02μ\x02ν\x02ξ\x02ο\x02σ\x02Ï„\x02Ï…\x02ψ\x03∇\x03∂\x02Ï\x02Ù®\x02Ú¡" + + "\x02Ù¯\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029,\x03(a)" + + "\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)\x03(k)" + + "\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)\x03(u)" + + "\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07〔s〕\x02wz\x02hv\x02sd\x03ppv\x02w" + + "c\x02mc\x02md\x02dj\x06ã»ã‹\x06ココ\x03サ\x03手\x03å­—\x03åŒ\x03デ\x03二\x03多\x03解" + + "\x03天\x03交\x03映\x03ç„¡\x03æ–™\x03å‰\x03後\x03å†\x03æ–°\x03åˆ\x03終\x03生\x03販\x03声" + + "\x03å¹\x03æ¼”\x03投\x03æ•\x03一\x03三\x03éŠ\x03å·¦\x03中\x03å³\x03指\x03èµ°\x03打\x03ç¦" + + "\x03空\x03åˆ\x03満\x03有\x03月\x03申\x03割\x03å–¶\x03é…\x09〔本〕\x09〔三〕\x09〔二〕\x09〔安" + + "〕\x09〔点〕\x09〔打〕\x09〔盗〕\x09〔å‹ã€•\x09〔敗〕\x03å¾—\x03å¯\x03丽\x03丸\x03ä¹\x03ä½ \x03" + + "ä¾®\x03ä¾»\x03倂\x03åº\x03å‚™\x03僧\x03åƒ\x03ã’ž\x03å…\x03å…”\x03å…¤\x03å…·\x03ã’¹\x03å…§\x03" + + "冗\x03冤\x03仌\x03冬\x03况\x03凵\x03刃\x03ã“Ÿ\x03刻\x03剆\x03剷\x03㔕\x03勇\x03勉\x03" + + "勤\x03勺\x03包\x03匆\x03北\x03å‰\x03å‘\x03åš\x03å³\x03å½\x03å¿\x03ç°\x03åŠ\x03åŸ\x03" + + "å«\x03å±\x03å†\x03å’ž\x03å¸\x03呈\x03周\x03å’¢\x03哶\x03å”\x03å•“\x03å•£\x03å–„\x03å–™\x03" + + "å–«\x03å–³\x03å—‚\x03圖\x03嘆\x03圗\x03噑\x03å™´\x03切\x03壮\x03城\x03埴\x03å \x03åž‹\x03" + + "å ²\x03å ±\x03墬\x03売\x03壷\x03夆\x03夢\x03奢\x03姬\x03娛\x03娧\x03姘\x03婦\x03ã›®\x03" + + "嬈\x03嬾\x03寃\x03寘\x03寧\x03寳\x03寿\x03å°†\x03å°¢\x03ãž\x03å± \x03å±®\x03å³€\x03å²\x03" + + "嵃\x03åµ®\x03嵫\x03åµ¼\x03å·¡\x03å·¢\x03ã ¯\x03å·½\x03帨\x03帽\x03幩\x03ã¡¢\x03㡼\x03庰\x03" + + "庳\x03庶\x03廊\x03廾\x03èˆ\x03å¼¢\x03㣇\x03å½¢\x03彫\x03㣣\x03徚\x03å¿\x03å¿—\x03忹\x03" + + "æ‚\x03㤺\x03㤜\x03æ‚”\x03惇\x03æ…ˆ\x03æ…Œ\x03æ…Ž\x03æ…º\x03憎\x03憲\x03憤\x03憯\x03懞\x03" + + "懲\x03懶\x03æˆ\x03戛\x03æ‰\x03抱\x03æ‹”\x03æ\x03挽\x03拼\x03æ¨\x03掃\x03æ¤\x03æ¢\x03" + + "æ…\x03掩\x03㨮\x03æ‘©\x03摾\x03æ’\x03æ‘·\x03㩬\x03æ•\x03敬\x03æ—£\x03書\x03晉\x03㬙\x03" + + "æš‘\x03㬈\x03㫤\x03冒\x03冕\x03最\x03æšœ\x03è‚­\x03ä™\x03朗\x03望\x03朡\x03æž\x03æ“\x03" + + "ã­‰\x03柺\x03æž…\x03æ¡’\x03梅\x03梎\x03æ Ÿ\x03椔\x03ã®\x03楂\x03榣\x03槪\x03檨\x03æ«›\x03" + + "ã°˜\x03次\x03æ­”\x03㱎\x03æ­²\x03殟\x03殺\x03æ®»\x03汎\x03沿\x03æ³\x03汧\x03æ´–\x03æ´¾\x03" + + "æµ·\x03æµ\x03浩\x03浸\x03涅\x03æ´´\x03港\x03æ¹®\x03ã´³\x03滋\x03滇\x03æ·¹\x03æ½®\x03濆\x03" + + "瀹\x03瀞\x03瀛\x03㶖\x03çŠ\x03ç½\x03ç·\x03ç‚­\x03ç……\x03熜\x03爨\x03爵\x03ç‰\x03犀\x03" + + "犕\x03çº\x03王\x03㺬\x03玥\x03㺸\x03瑇\x03ç‘œ\x03瑱\x03ç’…\x03ç“Š\x03ã¼›\x03甤\x03甾\x03" + + "ç•°\x03ç˜\x03㿼\x03䀈\x03ç›´\x03眞\x03真\x03çŠ\x03䀹\x03çž‹\x03ä†\x03ä‚–\x03ç¡Ž\x03碌\x03" + + "磌\x03䃣\x03祖\x03ç¦\x03秫\x03䄯\x03ç©€\x03ç©Š\x03ç©\x03䈂\x03篆\x03築\x03䈧\x03ç³’\x03" + + "䊠\x03糨\x03ç³£\x03ç´€\x03çµ£\x03äŒ\x03ç·‡\x03縂\x03ç¹…\x03䌴\x03ä™\x03罺\x03羕\x03翺\x03" + + "者\x03è \x03è°\x03ä•\x03育\x03脃\x03ä‹\x03脾\x03媵\x03舄\x03辞\x03ä‘«\x03芑\x03芋\x03" + + "èŠ\x03劳\x03花\x03芳\x03芽\x03苦\x03è‹¥\x03èŒ\x03è£\x03莭\x03茣\x03莽\x03è§\x03è‘—\x03" + + "è“\x03èŠ\x03èŒ\x03èœ\x03䔫\x03蓱\x03蓳\x03è”–\x03蕤\x03ä•\x03ä•¡\x03ä•«\x03è™\x03虜\x03" + + "虧\x03虩\x03èš©\x03蚈\x03蜎\x03蛢\x03è¹\x03蜨\x03è«\x03螆\x03蟡\x03è \x03ä—¹\x03è¡ \x03" + + "è¡£\x03裗\x03裞\x03䘵\x03裺\x03ã’»\x03äš¾\x03䛇\x03誠\x03è«­\x03變\x03豕\x03貫\x03è³\x03" + + "è´›\x03èµ·\x03è·‹\x03趼\x03è·°\x03è»”\x03輸\x03é‚”\x03郱\x03é„‘\x03é„›\x03鈸\x03é‹—\x03鋘\x03" + + "鉼\x03é¹\x03é•\x03é–‹\x03䦕\x03é–·\x03䧦\x03雃\x03嶲\x03霣\x03ä©®\x03䩶\x03韠\x03䪲\x03" + + "é ‹\x03é ©\x03飢\x03䬳\x03餩\x03馧\x03駂\x03駾\x03䯎\x03鬒\x03é±€\x03é³½\x03䳎\x03ä³­\x03" + + "鵧\x03䳸\x03麻\x03äµ–\x03黹\x03黾\x03é¼…\x03é¼\x03é¼–\x03é¼»" + +var xorData string = "" + // Size: 4855 bytes + "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" + + "\x02\x0f\x1f\x02\x0f\x1d\x02\x01\x13\x02\x0f\x16\x02\x0f\x0b\x02\x0f3" + + "\x02\x0f7\x02\x0f?\x02\x0f/\x02\x0f*\x02\x0c&\x02\x0c*\x02\x0c;\x02\x0c9" + + "\x02\x0c%\x02\xab\xed\x02\xab\xe2\x02\xab\xe3\x02\xa9\xe0\x02\xa9\xe1" + + "\x02\xa9\xe6\x02\xa3\xcb\x02\xa3\xc8\x02\xa3\xc9\x02\x01#\x02\x01\x08" + + "\x02\x0e>\x02\x0e'\x02\x0f\x03\x02\x03\x0d\x02\x03\x09\x02\x03\x17\x02" + + "\x03\x0e\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07" + + "\x0d\x02\x02\x0c\x02\x0c0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\x22" + + "\x02\x01)\x02\x01\x0a\x02\x01\x0c\x02\x02\x06\x02\x02\x02\x02\x03\x10" + + "\x03\x037 \x03\x0b+\x03\x02\x01\x04\x02\x01\x02\x02\x019\x02\x03\x1c\x02" + + "\x02$\x03\x80p$\x02\x03:\x02\x03\x0a\x03\xc1r.\x03\xc1r,\x03\xc1r\x02" + + "\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xc1s<\x03\xc1s*" + + "\x03\xc2L$\x03\xc2L;\x02\x09)\x02\x0a\x19\x03\x83\xab\xe3\x03\x83\xab" + + "\xf2\x03 4\xe0\x03\x81\xab\xea\x03\x81\xab\xf3\x03 4\xef\x03\x96\xe1\xcd" + + "\x03\x84\xe5\xc3\x02\x0d\x11\x03\x8b\xec\xcb\x03\x94\xec\xcf\x03\x9a\xec" + + "\xc2\x03\x8b\xec\xdb\x03\x94\xec\xdf\x03\x9a\xec\xd2\x03\x01\x0c!\x03" + + "\x01\x0c#\x03Ê \x9d\x03Ê£\x9c\x03Ê¢\x9f\x03Ê¥\x9e\x03ʤ\x91\x03ʧ\x90\x03ʦ\x93" + + "\x03Ê©\x92\x03ʨ\x95\x03\xca\xf3\xb5\x03\xca\xf0\xb4\x03\xca\xf1\xb7\x03" + + "\xca\xf6\xb6\x03\xca\xf7\x89\x03\xca\xf4\x88\x03\xca\xf5\x8b\x03\xca\xfa" + + "\x8a\x03\xca\xfb\x8d\x03\xca\xf8\x8c\x03\xca\xf9\x8f\x03\xca\xfe\x8e\x03" + + "\xca\xff\x81\x03\xca\xfc\x80\x03\xca\xfd\x83\x03\xca\xe2\x82\x03\xca\xe3" + + "\x85\x03\xca\xe0\x84\x03\xca\xe1\x87\x03\xca\xe6\x86\x03\xca\xe7\x99\x03" + + "\xca\xe4\x98\x03\xca\xe5\x9b\x03\xca\xea\x9a\x03\xca\xeb\x9d\x03\xca\xe8" + + "\x9c\x03Ø“\x89\x03ß”\x8b\x02\x010\x03\x03\x04\x1e\x03\x04\x15\x12\x03\x0b" + + "\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06\x05" + + "\x1d\x03\x06\x06\x00\x03\x06\x06\x0a\x03\x06\x06'\x03\x06\x062\x03\x0786" + + "\x03\x079/\x03\x079 \x03\x07:\x0e\x03\x07:\x1b\x03\x07:%\x03\x07;/\x03" + + "\x07;%\x03\x074\x11\x03\x076\x09\x03\x077*\x03\x070\x01\x03\x070\x0f\x03" + + "\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-\x03" + + "\x073\x14\x03\x073>\x03\x07'\x09\x03\x07 \x00\x03\x07\x1f\x0b\x03\x07" + + "\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03\x07" + + "\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\x0c&\x03\x07\x0c\x08\x03\x07" + + "\x0c\x13\x03\x07\x0d\x02\x03\x07\x0d\x1c\x03\x07\x0b5\x03\x07\x0b\x0a" + + "\x03\x07\x0b\x01\x03\x07\x0b\x0f\x03\x07\x05\x00\x03\x07\x05\x09\x03\x07" + + "\x05\x0b\x03\x07\x07\x01\x03\x07\x07\x08\x03\x07\x00<\x03\x07\x00+\x03" + + "\x07\x01)\x03\x07\x01\x1b\x03\x07\x01\x08\x03\x07\x03?\x03\x0445\x03\x04" + + "4\x08\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03\x04+ " + + "\x03\x04+<\x03\x04*&\x03\x04*\x22\x03\x04&8\x03\x04!\x01\x03\x04!\x22" + + "\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04\x03" + + "\x04\x12\x0a\x03\x04\x0d\x1d\x03\x04\x0d\x07\x03\x04\x0d \x03\x05<>\x03" + + "\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1d\x03\x054\x02\x03\x054" + + "\x07\x03\x0571\x03\x053\x1a\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03\x05)" + + ":\x03\x05)<\x03\x05)\x0c\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$\x1e" + + "\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\x226\x03" + + "\x05\x22\x0c\x03\x05\x22\x1c\x03\x05\x19\x0a\x03\x05\x1b\x09\x03\x05\x1b" + + "\x0c\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\x0c\x03\x05\x0c\x05\x03" + + "\x05\x0e\x0f\x03\x05\x01\x0e\x03\x05\x00(\x03\x05\x030\x03\x05\x03\x06" + + "\x03\x0a==\x03\x0a=1\x03\x0a=,\x03\x0a=\x0c\x03\x0a??\x03\x0a<\x08\x03" + + "\x0a9!\x03\x0a9)\x03\x0a97\x03\x0a99\x03\x0a6\x0a\x03\x0a6\x1c\x03\x0a6" + + "\x17\x03\x0a7'\x03\x0a78\x03\x0a73\x03\x0a'\x01\x03\x0a'&\x03\x0a\x1f" + + "\x0e\x03\x0a\x1f\x03\x03\x0a\x1f3\x03\x0a\x1b/\x03\x0a\x18\x19\x03\x0a" + + "\x19\x01\x03\x0a\x16\x14\x03\x0a\x0e\x22\x03\x0a\x0f\x10\x03\x0a\x0f\x02" + + "\x03\x0a\x0f \x03\x0a\x0c\x04\x03\x0a\x0b>\x03\x0a\x0b+\x03\x0a\x08/\x03" + + "\x0a\x046\x03\x0a\x05\x14\x03\x0a\x00\x04\x03\x0a\x00\x10\x03\x0a\x00" + + "\x14\x03\x0b<3\x03\x0b;*\x03\x0b9\x22\x03\x0b9)\x03\x0b97\x03\x0b+\x10" + + "\x03\x0b((\x03\x0b&5\x03\x0b$\x1c\x03\x0b$\x12\x03\x0b%\x04\x03\x0b#<" + + "\x03\x0b#0\x03\x0b#\x0d\x03\x0b#\x19\x03\x0b!:\x03\x0b!\x1f\x03\x0b!\x00" + + "\x03\x0b\x1e5\x03\x0b\x1c\x1d\x03\x0b\x1d-\x03\x0b\x1d(\x03\x0b\x18.\x03" + + "\x0b\x18 \x03\x0b\x18\x16\x03\x0b\x14\x13\x03\x0b\x15$\x03\x0b\x15\x22" + + "\x03\x0b\x12\x1b\x03\x0b\x12\x10\x03\x0b\x132\x03\x0b\x13=\x03\x0b\x12" + + "\x18\x03\x0b\x0c&\x03\x0b\x061\x03\x0b\x06:\x03\x0b\x05#\x03\x0b\x05<" + + "\x03\x0b\x04\x0b\x03\x0b\x04\x04\x03\x0b\x04\x1b\x03\x0b\x042\x03\x0b" + + "\x041\x03\x0b\x03\x03\x03\x0b\x03\x1d\x03\x0b\x03/\x03\x0b\x03+\x03\x0b" + + "\x02\x1b\x03\x0b\x02\x00\x03\x0b\x01\x1e\x03\x0b\x01\x08\x03\x0b\x015" + + "\x03\x06\x0d9\x03\x06\x0d=\x03\x06\x0d?\x03\x02\x001\x03\x02\x003\x03" + + "\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1b\x03\x02\x004\x03\x02\x00<\x03" + + "\x02\x02\x0a\x03\x02\x02\x0e\x03\x02\x01\x1a\x03\x02\x01\x07\x03\x02\x01" + + "\x05\x03\x02\x01\x0b\x03\x02\x01%\x03\x02\x01\x0c\x03\x02\x01\x04\x03" + + "\x02\x01\x1c\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03" + + "\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02" + + "\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022" + + "\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01" + + "\x11\x03\x02\x01\x1e\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0f\x03" + + "\x02\x01\x08\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\x0d\x03\x02\x03" + + "\x13\x03\x02\x03\x1d\x03\x02\x03\x1f\x03\x02\x00\x03\x03\x02\x00\x0d\x03" + + "\x02\x00\x01\x03\x02\x00\x1b\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00" + + "\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1f\x03\x07>\x1d\x03\x06\x1d\x0e" + + "\x03\x07>\x1c\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>" + + "\x02\x03\x06\x224\x03\x06\x1a.\x03\x07<%\x03\x06\x1c\x0b\x03\x0609\x03" + + "\x05\x1f\x01\x03\x04'\x08\x03\x93\xfd\xf5\x03\x02\x0d \x03\x02\x0d#\x03" + + "\x02\x0d!\x03\x02\x0d&\x03\x02\x0d\x22\x03\x02\x0d/\x03\x02\x0d,\x03\x02" + + "\x0d$\x03\x02\x0d'\x03\x02\x0d%\x03\x02\x0d;\x03\x02\x0d=\x03\x02\x0d?" + + "\x03\x099.\x03\x08\x0b7\x03\x08\x02\x14\x03\x08\x14\x0d\x03\x08.:\x03" + + "\x089'\x03\x0f\x0b\x18\x03\x0f\x1c1\x03\x0f\x17&\x03\x0f9\x1f\x03\x0f0" + + "\x0c\x03\x0e\x0a9\x03\x0e\x056\x03\x0e\x1c#\x03\x0f\x13\x0e\x03\x072\x00" + + "\x03\x070\x0d\x03\x072\x0b\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0f(\x03" + + "\x072\x05\x03\x06\x0f,\x03\x073\x15\x03\x06\x07\x08\x03\x05\x16\x02\x03" + + "\x04\x0b \x03\x05:8\x03\x05\x16%\x03\x0a\x0d\x1f\x03\x06\x16\x10\x03\x05" + + "\x1d5\x03\x05*;\x03\x05\x16\x1b\x03\x04.-\x03\x06\x1a\x19\x03\x04\x03," + + "\x03\x0b87\x03\x04/\x0a\x03\x06\x00,\x03\x04-\x01\x03\x04\x1e-\x03\x06/(" + + "\x03\x0a\x0b5\x03\x06\x0e7\x03\x06\x07.\x03\x0597\x03\x0a*%\x03\x0760" + + "\x03\x06\x0c;\x03\x05'\x00\x03\x072.\x03\x072\x08\x03\x06=\x01\x03\x06" + + "\x05\x1b\x03\x06\x06\x12\x03\x06$=\x03\x06'\x0d\x03\x04\x11\x0f\x03\x076" + + ",\x03\x06\x07;\x03\x06.,\x03\x86\xf9\xea\x03\x8f\xff\xeb\x02\x092\x02" + + "\x095\x02\x094\x02\x09;\x02\x09>\x02\x098\x02\x09*\x02\x09/\x02\x09,\x02" + + "\x09%\x02\x09&\x02\x09#\x02\x09 \x02\x08!\x02\x08%\x02\x08$\x02\x08+\x02" + + "\x08.\x02\x08*\x02\x08&\x02\x088\x02\x08>\x02\x084\x02\x086\x02\x080\x02" + + "\x08\x10\x02\x08\x17\x02\x08\x12\x02\x08\x1d\x02\x08\x1f\x02\x08\x13\x02" + + "\x08\x15\x02\x08\x14\x02\x08\x0c\x03\x8b\xfd\xd0\x03\x81\xec\xc6\x03\x87" + + "\xe0\x8a\x03-2\xe3\x03\x80\xef\xe4\x03-2\xea\x03\x88\xe6\xeb\x03\x8e\xe6" + + "\xe8\x03\x84\xe6\xe9\x03\x97\xe6\xee\x03-2\xf9\x03-2\xf6\x03\x8e\xe3\xad" + + "\x03\x80\xe3\x92\x03\x88\xe3\x90\x03\x8e\xe3\x90\x03\x80\xe3\x97\x03\x88" + + "\xe3\x95\x03\x88\xfe\xcb\x03\x8e\xfe\xca\x03\x84\xfe\xcd\x03\x91\xef\xc9" + + "\x03-2\xc1\x03-2\xc0\x03-2\xcb\x03\x88@\x09\x03\x8e@\x08\x03\x8f\xe0\xf5" + + "\x03\x8e\xe6\xf9\x03\x8e\xe0\xfa\x03\x93\xff\xf4\x03\x84\xee\xd3\x03\x0b" + + "(\x04\x023 \x021;\x02\x01*\x03\x0b#\x10\x03\x0b 0\x03\x0b!\x10\x03\x0b!0" + + "\x03\x07\x15\x08\x03\x09?5\x03\x07\x1f\x08\x03\x07\x17\x0b\x03\x09\x1f" + + "\x15\x03\x0b\x1c7\x03\x0a+#\x03\x06\x1a\x1b\x03\x06\x1a\x14\x03\x0a\x01" + + "\x18\x03\x06#\x1b\x03\x0a2\x0c\x03\x0a\x01\x04\x03\x09#;\x03\x08='\x03" + + "\x08\x1a\x0a\x03\x07\x03\x0a\x111\x03\x09\x1b\x09\x03\x073.\x03\x07\x01\x00" + + "\x03\x09/,\x03\x07#>\x03\x07\x048\x03\x0a\x1f\x22\x03\x098>\x03\x09\x11" + + "\x00\x03\x08/\x17\x03\x06'\x22\x03\x0b\x1a+\x03\x0a\x22\x19\x03\x0a/1" + + "\x03\x0974\x03\x09\x0f\x22\x03\x08,\x22\x03\x08?\x14\x03\x07$5\x03\x07<3" + + "\x03\x07=*\x03\x07\x13\x18\x03\x068\x0a\x03\x06\x09\x16\x03\x06\x13\x00" + + "\x03\x08\x067\x03\x08\x01\x03\x03\x08\x12\x1d\x03\x07+7\x03\x06(;\x03" + + "\x06\x1c?\x03\x07\x0e\x17\x03\x0a\x06\x1d\x03\x0a\x19\x07\x03\x08\x14$" + + "\x03\x07$;\x03\x08,$\x03\x08\x06\x0d\x03\x07\x16\x0a\x03\x06>>\x03\x0a" + + "\x06\x12\x03\x0a\x14)\x03\x09\x0d\x1f\x03\x09\x12\x17\x03\x09\x19\x01" + + "\x03\x08\x11 \x03\x08\x1d'\x03\x06<\x1a\x03\x0a.\x00\x03\x07'\x18\x03" + + "\x0a\x22\x08\x03\x08\x0d\x0a\x03\x08\x13)\x03\x07*)\x03\x06<,\x03\x07" + + "\x0b\x1a\x03\x09.\x14\x03\x09\x0d\x1e\x03\x07\x0e#\x03\x0b\x1d'\x03\x0a" + + "\x0a8\x03\x09%2\x03\x08+&\x03\x080\x12\x03\x0a)4\x03\x08\x06\x1f\x03\x0b" + + "\x1b\x1a\x03\x0a\x1b\x0f\x03\x0b\x1d*\x03\x09\x16$\x03\x090\x11\x03\x08" + + "\x11\x08\x03\x0a*(\x03\x0a\x042\x03\x089,\x03\x074'\x03\x07\x0f\x05\x03" + + "\x09\x0b\x0a\x03\x07\x1b\x01\x03\x09\x17:\x03\x09.\x0d\x03\x07.\x11\x03" + + "\x09+\x15\x03\x080\x13\x03\x0b\x1f\x19\x03\x0a \x11\x03\x0a\x220\x03\x09" + + "\x07;\x03\x08\x16\x1c\x03\x07,\x13\x03\x07\x0e/\x03\x06\x221\x03\x0a." + + "\x0a\x03\x0a7\x02\x03\x0a\x032\x03\x0a\x1d.\x03\x091\x06\x03\x09\x19:" + + "\x03\x08\x02/\x03\x060+\x03\x06\x0f-\x03\x06\x1c\x1f\x03\x06\x1d\x07\x03" + + "\x0a,\x11\x03\x09=\x0d\x03\x09\x0b;\x03\x07\x1b/\x03\x0a\x1f:\x03\x09 " + + "\x1f\x03\x09.\x10\x03\x094\x0b\x03\x09\x1a1\x03\x08#\x1a\x03\x084\x1d" + + "\x03\x08\x01\x1f\x03\x08\x11\x22\x03\x07'8\x03\x07\x1a>\x03\x0757\x03" + + "\x06&9\x03\x06+\x11\x03\x0a.\x0b\x03\x0a,>\x03\x0a4#\x03\x08%\x17\x03" + + "\x07\x05\x22\x03\x07\x0c\x0b\x03\x0a\x1d+\x03\x0a\x19\x16\x03\x09+\x1f" + + "\x03\x09\x08\x0b\x03\x08\x16\x18\x03\x08+\x12\x03\x0b\x1d\x0c\x03\x0a=" + + "\x10\x03\x0a\x09\x0d\x03\x0a\x10\x11\x03\x09&0\x03\x08(\x1f\x03\x087\x07" + + "\x03\x08\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06," + + "\x03\x0b\x18>\x03\x08\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\x09%\x18\x03" + + "\x0b\x1c<\x03\x0a%!\x03\x0a\x09\x12\x03\x0a\x16\x02\x03\x090'\x03\x09" + + "\x0e=\x03\x08 \x0e\x03\x08>\x03\x03\x074>\x03\x06&?\x03\x06\x19\x09\x03" + + "\x06?(\x03\x0a-\x0e\x03\x09:3\x03\x098:\x03\x09\x12\x0b\x03\x09\x1d\x17" + + "\x03\x087\x05\x03\x082\x14\x03\x08\x06%\x03\x08\x13\x1f\x03\x06\x06\x0e" + + "\x03\x0a\x22<\x03\x09/<\x03\x06>+\x03\x0a'?\x03\x0a\x13\x0c\x03\x09\x10<" + + "\x03\x07\x1b=\x03\x0a\x19\x13\x03\x09\x22\x1d\x03\x09\x07\x0d\x03\x08)" + + "\x1c\x03\x06=\x1a\x03\x0a/4\x03\x0a7\x11\x03\x0a\x16:\x03\x09?3\x03\x09:" + + "/\x03\x09\x05\x0a\x03\x09\x14\x06\x03\x087\x22\x03\x080\x07\x03\x08\x1a" + + "\x1f\x03\x07\x04(\x03\x07\x04\x09\x03\x06 %\x03\x06<\x08\x03\x0a+\x14" + + "\x03\x09\x1d\x16\x03\x0a70\x03\x08 >\x03\x0857\x03\x070\x0a\x03\x06=\x12" + + "\x03\x06\x16%\x03\x06\x1d,\x03\x099#\x03\x09\x10>\x03\x07 \x1e\x03\x08" + + "\x0c<\x03\x08\x0b\x18\x03\x08\x15+\x03\x08,:\x03\x08%\x22\x03\x07\x0a$" + + "\x03\x0b\x1c=\x03\x07+\x08\x03\x0a/\x05\x03\x0a \x07\x03\x0a\x12'\x03" + + "\x09#\x11\x03\x08\x1b\x15\x03\x0a\x06\x01\x03\x09\x1c\x1b\x03\x0922\x03" + + "\x07\x14<\x03\x07\x09\x04\x03\x061\x04\x03\x07\x0e\x01\x03\x0a\x13\x18" + + "\x03\x0a-\x0c\x03\x0a?\x0d\x03\x0a\x09\x0a\x03\x091&\x03\x0a/\x0b\x03" + + "\x08$<\x03\x083\x1d\x03\x08\x0c$\x03\x08\x0d\x07\x03\x08\x0d?\x03\x08" + + "\x0e\x14\x03\x065\x0a\x03\x08\x1a#\x03\x08\x16#\x03\x0702\x03\x07\x03" + + "\x1a\x03\x06(\x1d\x03\x06+\x1b\x03\x06\x0b\x05\x03\x06\x0b\x17\x03\x06" + + "\x0c\x04\x03\x06\x1e\x19\x03\x06+0\x03\x062\x18\x03\x0b\x16\x1e\x03\x0a+" + + "\x16\x03\x0a-?\x03\x0a#:\x03\x0a#\x10\x03\x0a%$\x03\x0a>+\x03\x0a01\x03" + + "\x0a1\x10\x03\x0a\x099\x03\x0a\x0a\x12\x03\x0a\x19\x1f\x03\x0a\x19\x12" + + "\x03\x09*)\x03\x09-\x16\x03\x09.1\x03\x09.2\x03\x09<\x0e\x03\x09> \x03" + + "\x093\x12\x03\x09\x0b\x01\x03\x09\x1c2\x03\x09\x11\x1c\x03\x09\x15%\x03" + + "\x08,&\x03\x08!\x22\x03\x089(\x03\x08\x0b\x1a\x03\x08\x0d2\x03\x08\x0c" + + "\x04\x03\x08\x0c\x06\x03\x08\x0c\x1f\x03\x08\x0c\x0c\x03\x08\x0f\x1f\x03" + + "\x08\x0f\x1d\x03\x08\x00\x14\x03\x08\x03\x14\x03\x08\x06\x16\x03\x08\x1e" + + "#\x03\x08\x11\x11\x03\x08\x10\x18\x03\x08\x14(\x03\x07)\x1e\x03\x07.1" + + "\x03\x07 $\x03\x07 '\x03\x078\x08\x03\x07\x0d0\x03\x07\x0f7\x03\x07\x05#" + + "\x03\x07\x05\x1a\x03\x07\x1a7\x03\x07\x1d-\x03\x07\x17\x10\x03\x06)\x1f" + + "\x03\x062\x0b\x03\x066\x16\x03\x06\x09\x11\x03\x09(\x1e\x03\x07!5\x03" + + "\x0b\x11\x16\x03\x0a/\x04\x03\x0a,\x1a\x03\x0b\x173\x03\x0a,1\x03\x0a/5" + + "\x03\x0a\x221\x03\x0a\x22\x0d\x03\x0a?%\x03\x0a<,\x03\x0a?#\x03\x0a>\x19" + + "\x03\x0a\x08&\x03\x0a\x0b\x0e\x03\x0a\x0c:\x03\x0a\x0c+\x03\x0a\x03\x22" + + "\x03\x0a\x06)\x03\x0a\x11\x10\x03\x0a\x11\x1a\x03\x0a\x17-\x03\x0a\x14(" + + "\x03\x09)\x1e\x03\x09/\x09\x03\x09.\x00\x03\x09,\x07\x03\x09/*\x03\x09-9" + + "\x03\x09\x228\x03\x09%\x09\x03\x09:\x12\x03\x09;\x1d\x03\x09?\x06\x03" + + "\x093%\x03\x096\x05\x03\x096\x08\x03\x097\x02\x03\x09\x07,\x03\x09\x04," + + "\x03\x09\x1f\x16\x03\x09\x11\x03\x03\x09\x11\x12\x03\x09\x168\x03\x08*" + + "\x05\x03\x08/2\x03\x084:\x03\x08\x22+\x03\x08 0\x03\x08&\x0a\x03\x08;" + + "\x10\x03\x08>$\x03\x08>\x18\x03\x0829\x03\x082:\x03\x081,\x03\x081<\x03" + + "\x081\x1c\x03\x087#\x03\x087*\x03\x08\x09'\x03\x08\x00\x1d\x03\x08\x05-" + + "\x03\x08\x1f4\x03\x08\x1d\x04\x03\x08\x16\x0f\x03\x07*7\x03\x07'!\x03" + + "\x07%\x1b\x03\x077\x0c\x03\x07\x0c1\x03\x07\x0c.\x03\x07\x00\x06\x03\x07" + + "\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03" + + "\x07\x06\x06\x03\x07\x05\x0a\x03\x07\x1f\x09\x03\x07\x17:\x03\x06*1\x03" + + "\x06-\x1d\x03\x06\x223\x03\x062:\x03\x060$\x03\x066\x1e\x03\x064\x12\x03" + + "\x0645\x03\x06\x0b\x00\x03\x06\x0b7\x03\x06\x07\x1f\x03\x06\x15\x12\x03" + + "\x0c\x05\x0f\x03\x0b+\x0b\x03\x0b+-\x03\x06\x16\x1b\x03\x06\x15\x17\x03" + + "\x89\xca\xea\x03\x89\xca\xe8\x03\x0c8\x10\x03\x0c8\x01\x03\x0c8\x0f\x03" + + "\x0d8%\x03\x0d8!\x03\x0c8-\x03\x0c8/\x03\x0c8+\x03\x0c87\x03\x0c85\x03" + + "\x0c9\x09\x03\x0c9\x0d\x03\x0c9\x0f\x03\x0c9\x0b\x03\xcfu\x0c\x03\xcfu" + + "\x0f\x03\xcfu\x0e\x03\xcfu\x09\x03\x0c9\x10\x03\x0d9\x0c\x03\xcf`;\x03" + + "\xcf`>\x03\xcf`9\x03\xcf`8\x03\xcf`7\x03\xcf`*\x03\xcf`-\x03\xcf`,\x03" + + "\x0d\x1b\x1a\x03\x0d\x1b&\x03\x0c=.\x03\x0c=%\x03\x0c>\x1e\x03\x0c>\x14" + + "\x03\x0c?\x06\x03\x0c?\x0b\x03\x0c?\x0c\x03\x0c?\x0d\x03\x0c?\x02\x03" + + "\x0c>\x0f\x03\x0c>\x08\x03\x0c>\x09\x03\x0c>,\x03\x0c>\x0c\x03\x0c?\x13" + + "\x03\x0c?\x16\x03\x0c?\x15\x03\x0c?\x1c\x03\x0c?\x1f\x03\x0c?\x1d\x03" + + "\x0c?\x1a\x03\x0c?\x17\x03\x0c?\x08\x03\x0c?\x09\x03\x0c?\x0e\x03\x0c?" + + "\x04\x03\x0c?\x05\x03\x0c" + + "\x03\x0c=2\x03\x0c=6\x03\x0c<\x07\x03\x0c<\x05\x03\x0e:!\x03\x0e:#\x03" + + "\x0e8\x09\x03\x0e:&\x03\x0e8\x0b\x03\x0e:$\x03\x0e:,\x03\x0e8\x1a\x03" + + "\x0e8\x1e\x03\x0e:*\x03\x0e:7\x03\x0e:5\x03\x0e:;\x03\x0e:\x15\x03\x0e:<" + + "\x03\x0e:4\x03\x0e:'\x03\x0e:-\x03\x0e:%\x03\x0e:?\x03\x0e:=\x03\x0e:)" + + "\x03\x0e:/\x03\xcfs'\x03\x0d=\x0f\x03\x0d+*\x03\x0d99\x03\x0d9;\x03\x0d9" + + "?\x03\x0d)\x0d\x03\x0d(%\x02\x01\x18\x02\x01(\x02\x01\x1e\x03\x0f$!\x03" + + "\x0f87\x03\x0f4\x0e\x03\x0f5\x1d\x03\x06'\x03\x03\x0f\x08\x18\x03\x0f" + + "\x0d\x1b\x03\x0e2=\x03\x0e;\x08\x03\x0e:\x0b\x03\x0e\x06$\x03\x0e\x0d)" + + "\x03\x0e\x16\x1f\x03\x0e\x16\x1b\x03\x0d$\x0a\x03\x05,\x1d\x03\x0d. \x03" + + "\x0d.#\x03\x0c(/\x03\x09%\x02\x03\x0d90\x03\x0d\x0e4\x03\x0d\x0d\x0f\x03" + + "\x0c#\x00\x03\x0c,\x1e\x03\x0c2\x0e\x03\x0c\x01\x17\x03\x0c\x09:\x03\x0e" + + "\x173\x03\x0c\x08\x03\x03\x0c\x11\x07\x03\x0c\x10\x18\x03\x0c\x1f\x1c" + + "\x03\x0c\x19\x0e\x03\x0c\x1a\x1f\x03\x0f0>\x03\x0b->\x03\x0b<+\x03\x0b8" + + "\x13\x03\x0b\x043\x03\x0b\x14\x03\x03\x0b\x16%\x03\x0d\x22&\x03\x0b\x1a" + + "\x1a\x03\x0b\x1a\x04\x03\x0a%9\x03\x0a&2\x03\x0a&0\x03\x0a!\x1a\x03\x0a!" + + "7\x03\x0a5\x10\x03\x0a=4\x03\x0a?\x0e\x03\x0a>\x10\x03\x0a\x00 \x03\x0a" + + "\x0f:\x03\x0a\x0f9\x03\x0a\x0b\x0a\x03\x0a\x17%\x03\x0a\x1b-\x03\x09-" + + "\x1a\x03\x09,4\x03\x09.,\x03\x09)\x09\x03\x096!\x03\x091\x1f\x03\x093" + + "\x16\x03\x0c+\x1f\x03\x098 \x03\x098=\x03\x0c(\x1a\x03\x0c(\x16\x03\x09" + + "\x0a+\x03\x09\x16\x12\x03\x09\x13\x0e\x03\x09\x153\x03\x08)!\x03\x09\x1a" + + "\x01\x03\x09\x18\x01\x03\x08%#\x03\x08>\x22\x03\x08\x05%\x03\x08\x02*" + + "\x03\x08\x15;\x03\x08\x1b7\x03\x0f\x07\x1d\x03\x0f\x04\x03\x03\x070\x0c" + + "\x03\x07;\x0b\x03\x07\x08\x17\x03\x07\x12\x06\x03\x06/-\x03\x0671\x03" + + "\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1e\x03\x05,\x17\x03\x05 \x1d\x03" + + "\x05\x22\x05\x03\x050\x1d" + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// idnaTrie. Total size: 29404 bytes (28.71 KiB). Checksum: 848c45acb5f7991c. +type idnaTrie struct{} + +func newIdnaTrie(i int) *idnaTrie { + return &idnaTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *idnaTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 125: + return uint16(idnaValues[n<<6+uint32(b)]) + default: + n -= 125 + return uint16(idnaSparse.lookup(n, b)) + } +} + +// idnaValues: 127 blocks, 8128 entries, 16256 bytes +// The third block is the zero block. +var idnaValues = [8128]uint16{ + // Block 0x0, offset 0x0 + 0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080, + 0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080, + 0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080, + 0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080, + 0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080, + 0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080, + 0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080, + 0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080, + 0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008, + 0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080, + 0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080, + // Block 0x1, offset 0x40 + 0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105, + 0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105, + 0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105, + 0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105, + 0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080, + 0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008, + 0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008, + 0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008, + 0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008, + 0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080, + 0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040, + 0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040, + 0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040, + 0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040, + 0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040, + 0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018, + 0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018, + 0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a, + 0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005, + 0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018, + 0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018, + // Block 0x4, offset 0x100 + 0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008, + 0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008, + 0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008, + 0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008, + 0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008, + 0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008, + 0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008, + 0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008, + 0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008, + 0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d, + 0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199, + // Block 0x5, offset 0x140 + 0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d, + 0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008, + 0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008, + 0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008, + 0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008, + 0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008, + 0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008, + 0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008, + 0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008, + 0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d, + 0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9, + // Block 0x6, offset 0x180 + 0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008, + 0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d, + 0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d, + 0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d, + 0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155, + 0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008, + 0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d, + 0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd, + 0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d, + 0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008, + 0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9, + 0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d, + 0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d, + 0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d, + 0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008, + 0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008, + 0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008, + 0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008, + 0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008, + 0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008, + 0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008, + // Block 0x8, offset 0x200 + 0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008, + 0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008, + 0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008, + 0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008, + 0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008, + 0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008, + 0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008, + 0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008, + 0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008, + 0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d, + 0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008, + // Block 0x9, offset 0x240 + 0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018, + 0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008, + 0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008, + 0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018, + 0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a, + 0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369, + 0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018, + 0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018, + 0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018, + 0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018, + 0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018, + // Block 0xa, offset 0x280 + 0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d, + 0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308, + 0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308, + 0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308, + 0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308, + 0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308, + 0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308, + 0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308, + 0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008, + 0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008, + 0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2, + 0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040, + 0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105, + 0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105, + 0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105, + 0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d, + 0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d, + 0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008, + 0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008, + 0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008, + 0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008, + // Block 0xc, offset 0x300 + 0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008, + 0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008, + 0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd, + 0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008, + 0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008, + 0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008, + 0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008, + 0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008, + 0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd, + 0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008, + 0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d, + // Block 0xd, offset 0x340 + 0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008, + 0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008, + 0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008, + 0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008, + 0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008, + 0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008, + 0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008, + 0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008, + 0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008, + 0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008, + 0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008, + // Block 0xe, offset 0x380 + 0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308, + 0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008, + 0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008, + 0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008, + 0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008, + 0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008, + 0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008, + 0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008, + 0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008, + 0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008, + 0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d, + 0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d, + 0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008, + 0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008, + 0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008, + 0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008, + 0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008, + 0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008, + 0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008, + 0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008, + 0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008, + // Block 0x10, offset 0x400 + 0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008, + 0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008, + 0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008, + 0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008, + 0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008, + 0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008, + 0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008, + 0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008, + 0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5, + 0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5, + 0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5, + // Block 0x11, offset 0x440 + 0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840, + 0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818, + 0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308, + 0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308, + 0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040, + 0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08, + 0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08, + 0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08, + 0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08, + 0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08, + 0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08, + // Block 0x12, offset 0x480 + 0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08, + 0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308, + 0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308, + 0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308, + 0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308, + 0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808, + 0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808, + 0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08, + 0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429, + 0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08, + 0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08, + 0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08, + 0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08, + 0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308, + 0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840, + 0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308, + 0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018, + 0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08, + 0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008, + 0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08, + 0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08, + // Block 0x14, offset 0x500 + 0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818, + 0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818, + 0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308, + 0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08, + 0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08, + 0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08, + 0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08, + 0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08, + 0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308, + 0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308, + 0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308, + // Block 0x15, offset 0x540 + 0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08, + 0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08, + 0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08, + 0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808, + 0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040, + 0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08, + 0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08, + 0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040, + 0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040, + 0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040, + 0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040, + // Block 0x16, offset 0x580 + 0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308, + 0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008, + 0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308, + 0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308, + 0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1, + 0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308, + 0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008, + 0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008, + 0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008, + 0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008, + 0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008, + 0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008, + 0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040, + 0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008, + 0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008, + 0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008, + 0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040, + 0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008, + 0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040, + 0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040, + 0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008, + // Block 0x18, offset 0x600 + 0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040, + 0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008, + 0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040, + 0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008, + 0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1, + 0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308, + 0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008, + 0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008, + 0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018, + 0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018, + 0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040, + // Block 0x19, offset 0x640 + 0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008, + 0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040, + 0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040, + 0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008, + 0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008, + 0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008, + 0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040, + 0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008, + 0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008, + 0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040, + 0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008, + // Block 0x1a, offset 0x680 + 0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040, + 0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308, + 0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308, + 0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040, + 0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040, + 0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040, + 0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008, + 0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008, + 0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308, + 0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040, + 0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008, + 0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008, + 0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008, + 0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008, + 0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008, + 0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008, + 0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040, + 0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008, + 0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008, + 0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040, + 0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008, + // Block 0x1c, offset 0x700 + 0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308, + 0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008, + 0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040, + 0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040, + 0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040, + 0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308, + 0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008, + 0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008, + 0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040, + 0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308, + 0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308, + // Block 0x1d, offset 0x740 + 0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008, + 0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008, + 0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040, + 0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008, + 0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008, + 0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008, + 0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040, + 0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008, + 0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008, + 0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040, + 0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308, + // Block 0x1e, offset 0x780 + 0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040, + 0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008, + 0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040, + 0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008, + 0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9, + 0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308, + 0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008, + 0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008, + 0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018, + 0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040, + 0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008, + 0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040, + 0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040, + 0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040, + 0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040, + 0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008, + 0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008, + 0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008, + 0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008, + 0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040, + 0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008, + // Block 0x20, offset 0x800 + 0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040, + 0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308, + 0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040, + 0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040, + 0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040, + 0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308, + 0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008, + 0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008, + 0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040, + 0x836: 0x0040, 0x837: 0x0040, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018, + 0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018, + // Block 0x21, offset 0x840 + 0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008, + 0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008, + 0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040, + 0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008, + 0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008, + 0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008, + 0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040, + 0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008, + 0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008, + 0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040, + 0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308, + // Block 0x22, offset 0x880 + 0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040, + 0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008, + 0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040, + 0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040, + 0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040, + 0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308, + 0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008, + 0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008, + 0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040, + 0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040, + 0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040, + 0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008, + 0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040, + 0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008, + 0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018, + 0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308, + 0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008, + 0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008, + 0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018, + 0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008, + 0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008, + // Block 0x24, offset 0x900 + 0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040, + 0x906: 0x0040, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0040, 0x90a: 0x0008, 0x90b: 0x0040, + 0x90c: 0x0040, 0x90d: 0x0008, 0x90e: 0x0040, 0x90f: 0x0040, 0x910: 0x0040, 0x911: 0x0040, + 0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008, + 0x918: 0x0040, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008, + 0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0040, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008, + 0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0040, 0x929: 0x0040, + 0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0040, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008, + 0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308, + 0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x0040, 0x93b: 0x3308, + 0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040, + // Block 0x25, offset 0x940 + 0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008, + 0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008, + 0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008, + 0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79, + 0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008, + 0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008, + 0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9, + 0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040, + 0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59, + 0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308, + 0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008, + // Block 0x26, offset 0x980 + 0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018, + 0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008, + 0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308, + 0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308, + 0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11, + 0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308, + 0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308, + 0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308, + 0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308, + 0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308, + 0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008, + 0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008, + 0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008, + 0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008, + 0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008, + 0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008, + 0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008, + 0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008, + 0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41, + 0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008, + 0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269, + // Block 0x28, offset 0xa00 + 0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1, + 0xa06: 0x059d, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011, + 0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041, + 0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05b5, 0xa15: 0x05b5, 0xa16: 0x0f99, 0xa17: 0x0fa9, + 0xa18: 0x0fb9, 0xa19: 0x059d, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05cd, 0xa1d: 0x1099, + 0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269, + 0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1, + 0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008, + 0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008, + 0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008, + 0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008, + // Block 0x29, offset 0xa40 + 0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008, + 0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008, + 0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008, + 0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008, + 0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169, + 0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9, + 0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05e5, 0xa68: 0x1239, 0xa69: 0x1251, + 0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9, + 0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359, + 0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x05fd, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1, + 0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429, + // Block 0x2a, offset 0xa80 + 0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008, + 0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008, + 0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008, + 0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008, + 0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008, + 0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008, + 0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008, + 0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008, + 0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008, + 0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008, + 0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008, + // Block 0x2b, offset 0xac0 + 0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008, + 0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008, + 0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008, + 0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008, + 0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x0615, 0xadb: 0x0635, 0xadc: 0x0008, 0xadd: 0x0008, + 0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008, + 0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008, + 0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008, + 0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008, + 0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008, + 0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008, + 0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045, + 0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008, + 0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008, + 0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045, + 0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008, + 0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045, + 0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045, + 0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489, + 0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1, + 0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040, + // Block 0x2d, offset 0xb40 + 0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1, + 0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591, + 0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1, + 0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1, + 0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771, + 0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891, + 0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831, + 0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951, + 0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040, + 0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x064d, 0xb7b: 0x1459, + 0xb7c: 0x19b1, 0xb7d: 0x0666, 0xb7e: 0x1a31, 0xb7f: 0x0686, + // Block 0x2e, offset 0xb80 + 0xb80: 0x06a6, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040, + 0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06c5, 0xb89: 0x1471, 0xb8a: 0x06dd, 0xb8b: 0x1489, + 0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008, + 0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008, + 0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x06f5, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2, + 0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61, + 0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045, + 0xbaa: 0x070d, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa, + 0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040, + 0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x0725, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9, + 0xbbc: 0x1ce9, 0xbbd: 0x073e, 0xbbe: 0x075e, 0xbbf: 0x0040, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a, + 0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0, + 0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d, + 0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x077e, + 0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018, + 0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018, + 0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040, + 0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a, + 0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018, + 0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018, + 0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x079e, 0xbff: 0x0018, + // Block 0x30, offset 0xc00 + 0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018, + 0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018, + 0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018, + 0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9, + 0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018, + 0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340, + 0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040, + 0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340, + 0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61, + 0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07bd, + 0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71, + // Block 0x31, offset 0xc40 + 0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61, + 0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07d5, + 0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09, + 0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359, + 0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040, + 0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018, + 0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018, + 0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018, + 0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018, + 0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018, + 0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018, + // Block 0x32, offset 0xc80 + 0xc80: 0x07ee, 0xc81: 0x080e, 0xc82: 0x1159, 0xc83: 0x082d, 0xc84: 0x0018, 0xc85: 0x084e, + 0xc86: 0x086e, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x088d, 0xc8a: 0x0f31, 0xc8b: 0x0249, + 0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41, + 0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018, + 0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269, + 0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08ad, 0xca2: 0x2061, 0xca3: 0x0018, + 0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018, + 0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09, + 0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9, + 0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08cd, + 0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x08ed, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9, + 0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018, + 0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151, + 0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279, + 0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399, + 0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x0905, 0xce3: 0x2439, + 0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x0925, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369, + 0xcea: 0x24a9, 0xceb: 0x0945, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61, + 0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x0965, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451, + 0xcf6: 0x0985, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09a5, + 0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61, + // Block 0x34, offset 0xd00 + 0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018, + 0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040, + 0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040, + 0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040, + 0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040, + 0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51, + 0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601, + 0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691, + 0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a06, 0xd35: 0x0a26, + 0xd36: 0x0a46, 0xd37: 0x0a66, 0xd38: 0x0a86, 0xd39: 0x0aa6, 0xd3a: 0x0ac6, 0xd3b: 0x0ae6, + 0xd3c: 0x0b06, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a, + // Block 0x35, offset 0xd40 + 0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a, + 0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040, + 0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040, + 0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040, + 0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b26, 0xd5d: 0x0b46, + 0xd5e: 0x0b66, 0xd5f: 0x0b86, 0xd60: 0x0ba6, 0xd61: 0x0bc6, 0xd62: 0x0be6, 0xd63: 0x0c06, + 0xd64: 0x0c26, 0xd65: 0x0c46, 0xd66: 0x0c66, 0xd67: 0x0c86, 0xd68: 0x0ca6, 0xd69: 0x0cc6, + 0xd6a: 0x0ce6, 0xd6b: 0x0d06, 0xd6c: 0x0d26, 0xd6d: 0x0d46, 0xd6e: 0x0d66, 0xd6f: 0x0d86, + 0xd70: 0x0da6, 0xd71: 0x0dc6, 0xd72: 0x0de6, 0xd73: 0x0e06, 0xd74: 0x0e26, 0xd75: 0x0e46, + 0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199, + 0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259, + // Block 0x36, offset 0xd80 + 0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99, + 0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089, + 0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9, + 0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249, + 0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71, + 0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9, + 0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1, + 0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018, + 0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018, + 0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018, + 0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008, + 0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008, + 0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008, + 0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008, + 0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008, + 0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ebd, + 0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d, + 0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9, + 0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d, + 0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008, + 0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9, + // Block 0x38, offset 0xe00 + 0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008, + 0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008, + 0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008, + 0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008, + 0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008, + 0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008, + 0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018, + 0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308, + 0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040, + 0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018, + 0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018, + // Block 0x39, offset 0xe40 + 0xe40: 0x26fd, 0xe41: 0x271d, 0xe42: 0x273d, 0xe43: 0x275d, 0xe44: 0x277d, 0xe45: 0x279d, + 0xe46: 0x27bd, 0xe47: 0x27dd, 0xe48: 0x27fd, 0xe49: 0x281d, 0xe4a: 0x283d, 0xe4b: 0x285d, + 0xe4c: 0x287d, 0xe4d: 0x289d, 0xe4e: 0x28bd, 0xe4f: 0x28dd, 0xe50: 0x28fd, 0xe51: 0x291d, + 0xe52: 0x293d, 0xe53: 0x295d, 0xe54: 0x297d, 0xe55: 0x299d, 0xe56: 0x0040, 0xe57: 0x0040, + 0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040, + 0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040, + 0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040, + 0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040, + 0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040, + 0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040, + 0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040, + // Block 0x3a, offset 0xe80 + 0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008, + 0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018, + 0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018, + 0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018, + 0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018, + 0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018, + 0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018, + 0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018, + 0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018, + 0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29bd, 0xeb9: 0x29dd, 0xeba: 0x29fd, 0xebb: 0x0018, + 0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018, + // Block 0x3b, offset 0xec0 + 0xec0: 0x2b3d, 0xec1: 0x2b5d, 0xec2: 0x2b7d, 0xec3: 0x2b9d, 0xec4: 0x2bbd, 0xec5: 0x2bdd, + 0xec6: 0x2bdd, 0xec7: 0x2bdd, 0xec8: 0x2bfd, 0xec9: 0x2bfd, 0xeca: 0x2bfd, 0xecb: 0x2bfd, + 0xecc: 0x2c1d, 0xecd: 0x2c1d, 0xece: 0x2c1d, 0xecf: 0x2c3d, 0xed0: 0x2c5d, 0xed1: 0x2c5d, + 0xed2: 0x2a7d, 0xed3: 0x2a7d, 0xed4: 0x2c5d, 0xed5: 0x2c5d, 0xed6: 0x2c7d, 0xed7: 0x2c7d, + 0xed8: 0x2c5d, 0xed9: 0x2c5d, 0xeda: 0x2a7d, 0xedb: 0x2a7d, 0xedc: 0x2c5d, 0xedd: 0x2c5d, + 0xede: 0x2c3d, 0xedf: 0x2c3d, 0xee0: 0x2c9d, 0xee1: 0x2c9d, 0xee2: 0x2cbd, 0xee3: 0x2cbd, + 0xee4: 0x0040, 0xee5: 0x2cdd, 0xee6: 0x2cfd, 0xee7: 0x2d1d, 0xee8: 0x2d1d, 0xee9: 0x2d3d, + 0xeea: 0x2d5d, 0xeeb: 0x2d7d, 0xeec: 0x2d9d, 0xeed: 0x2dbd, 0xeee: 0x2ddd, 0xeef: 0x2dfd, + 0xef0: 0x2e1d, 0xef1: 0x2e3d, 0xef2: 0x2e3d, 0xef3: 0x2e5d, 0xef4: 0x2e7d, 0xef5: 0x2e7d, + 0xef6: 0x2e9d, 0xef7: 0x2ebd, 0xef8: 0x2e5d, 0xef9: 0x2edd, 0xefa: 0x2efd, 0xefb: 0x2edd, + 0xefc: 0x2e5d, 0xefd: 0x2f1d, 0xefe: 0x2f3d, 0xeff: 0x2f5d, + // Block 0x3c, offset 0xf00 + 0xf00: 0x2f7d, 0xf01: 0x2f9d, 0xf02: 0x2cfd, 0xf03: 0x2cdd, 0xf04: 0x2fbd, 0xf05: 0x2fdd, + 0xf06: 0x2ffd, 0xf07: 0x301d, 0xf08: 0x303d, 0xf09: 0x305d, 0xf0a: 0x307d, 0xf0b: 0x309d, + 0xf0c: 0x30bd, 0xf0d: 0x30dd, 0xf0e: 0x30fd, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018, + 0xf12: 0x311d, 0xf13: 0x313d, 0xf14: 0x315d, 0xf15: 0x317d, 0xf16: 0x319d, 0xf17: 0x31bd, + 0xf18: 0x31dd, 0xf19: 0x31fd, 0xf1a: 0x321d, 0xf1b: 0x323d, 0xf1c: 0x315d, 0xf1d: 0x325d, + 0xf1e: 0x327d, 0xf1f: 0x329d, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008, + 0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008, + 0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008, + 0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008, + 0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040, + 0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040, + // Block 0x3d, offset 0xf40 + 0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32bd, 0xf45: 0x32dd, + 0xf46: 0x32fd, 0xf47: 0x331d, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018, + 0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x333d, 0xf51: 0x3761, + 0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1, + 0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881, + 0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x335d, 0xf61: 0x337d, 0xf62: 0x339d, 0xf63: 0x33bd, + 0xf64: 0x33dd, 0xf65: 0x33dd, 0xf66: 0x33fd, 0xf67: 0x341d, 0xf68: 0x343d, 0xf69: 0x345d, + 0xf6a: 0x347d, 0xf6b: 0x349d, 0xf6c: 0x34bd, 0xf6d: 0x34dd, 0xf6e: 0x34fd, 0xf6f: 0x351d, + 0xf70: 0x353d, 0xf71: 0x355d, 0xf72: 0x357d, 0xf73: 0x359d, 0xf74: 0x35bd, 0xf75: 0x35dd, + 0xf76: 0x35fd, 0xf77: 0x361d, 0xf78: 0x363d, 0xf79: 0x365d, 0xf7a: 0x367d, 0xf7b: 0x369d, + 0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36bd, 0xf7f: 0x0018, + // Block 0x3e, offset 0xf80 + 0xf80: 0x36dd, 0xf81: 0x36fd, 0xf82: 0x371d, 0xf83: 0x373d, 0xf84: 0x375d, 0xf85: 0x377d, + 0xf86: 0x379d, 0xf87: 0x37bd, 0xf88: 0x37dd, 0xf89: 0x37fd, 0xf8a: 0x381d, 0xf8b: 0x383d, + 0xf8c: 0x385d, 0xf8d: 0x387d, 0xf8e: 0x389d, 0xf8f: 0x38bd, 0xf90: 0x38dd, 0xf91: 0x38fd, + 0xf92: 0x391d, 0xf93: 0x393d, 0xf94: 0x395d, 0xf95: 0x397d, 0xf96: 0x399d, 0xf97: 0x39bd, + 0xf98: 0x39dd, 0xf99: 0x39fd, 0xf9a: 0x3a1d, 0xf9b: 0x3a3d, 0xf9c: 0x3a5d, 0xf9d: 0x3a7d, + 0xf9e: 0x3a9d, 0xf9f: 0x3abd, 0xfa0: 0x3add, 0xfa1: 0x3afd, 0xfa2: 0x3b1d, 0xfa3: 0x3b3d, + 0xfa4: 0x3b5d, 0xfa5: 0x3b7d, 0xfa6: 0x127d, 0xfa7: 0x3b9d, 0xfa8: 0x3bbd, 0xfa9: 0x3bdd, + 0xfaa: 0x3bfd, 0xfab: 0x3c1d, 0xfac: 0x3c3d, 0xfad: 0x3c5d, 0xfae: 0x239d, 0xfaf: 0x3c7d, + 0xfb0: 0x3c9d, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999, + 0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29, + 0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69, + 0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69, + 0xfcc: 0x3c99, 0xfcd: 0x3cbd, 0xfce: 0x3cb1, 0xfcf: 0x3cdd, 0xfd0: 0x3cfd, 0xfd1: 0x3d15, + 0xfd2: 0x3d2d, 0xfd3: 0x3d45, 0xfd4: 0x3d5d, 0xfd5: 0x3d5d, 0xfd6: 0x3d45, 0xfd7: 0x3d75, + 0xfd8: 0x07bd, 0xfd9: 0x3d8d, 0xfda: 0x3da5, 0xfdb: 0x3dbd, 0xfdc: 0x3dd5, 0xfdd: 0x3ded, + 0xfde: 0x3e05, 0xfdf: 0x3e1d, 0xfe0: 0x3e35, 0xfe1: 0x3e4d, 0xfe2: 0x3e65, 0xfe3: 0x3e7d, + 0xfe4: 0x3e95, 0xfe5: 0x3e95, 0xfe6: 0x3ead, 0xfe7: 0x3ead, 0xfe8: 0x3ec5, 0xfe9: 0x3ec5, + 0xfea: 0x3edd, 0xfeb: 0x3ef5, 0xfec: 0x3f0d, 0xfed: 0x3f25, 0xfee: 0x3f3d, 0xfef: 0x3f3d, + 0xff0: 0x3f55, 0xff1: 0x3f55, 0xff2: 0x3f55, 0xff3: 0x3f6d, 0xff4: 0x3f85, 0xff5: 0x3f9d, + 0xff6: 0x3fb5, 0xff7: 0x3f9d, 0xff8: 0x3fcd, 0xff9: 0x3fe5, 0xffa: 0x3f6d, 0xffb: 0x3ffd, + 0xffc: 0x4015, 0xffd: 0x4015, 0xffe: 0x4015, 0xfff: 0x0040, + // Block 0x40, offset 0x1000 + 0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9, + 0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1, + 0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9, + 0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549, + 0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1, + 0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11, + 0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91, + 0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9, + 0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011, + 0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209, + 0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361, + // Block 0x41, offset 0x1040 + 0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541, + 0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781, + 0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979, + 0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89, + 0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1, + 0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99, + 0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9, + 0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9, + 0x1070: 0x6009, 0x1071: 0x402d, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x404d, 0x1075: 0x6069, + 0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x406d, 0x1079: 0x406d, 0x107a: 0x60b1, 0x107b: 0x60c9, + 0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9, + // Block 0x42, offset 0x1080 + 0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x408d, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271, + 0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40ad, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9, + 0x108c: 0x40cd, 0x108d: 0x40cd, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x40ed, + 0x1092: 0x410d, 0x1093: 0x412d, 0x1094: 0x414d, 0x1095: 0x416d, 0x1096: 0x6359, 0x1097: 0x6371, + 0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x418d, 0x109c: 0x63d1, 0x109d: 0x63e9, + 0x109e: 0x6401, 0x109f: 0x41ad, 0x10a0: 0x41cd, 0x10a1: 0x6419, 0x10a2: 0x41ed, 0x10a3: 0x420d, + 0x10a4: 0x422d, 0x10a5: 0x6431, 0x10a6: 0x424d, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211, + 0x10aa: 0x426d, 0x10ab: 0x428d, 0x10ac: 0x42ad, 0x10ad: 0x42cd, 0x10ae: 0x64b1, 0x10af: 0x64f1, + 0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x42ed, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599, + 0x10b6: 0x430d, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9, + 0x10bc: 0x432d, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x434d, 0x10c1: 0x436d, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671, + 0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709, + 0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781, + 0x10d2: 0x438d, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43ad, 0x10d6: 0x43cd, 0x10d7: 0x67b1, + 0x10d8: 0x0040, 0x10d9: 0x43ed, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811, + 0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901, + 0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1, + 0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11, + 0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31, + 0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51, + 0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x440d, + // Block 0x44, offset 0x1100 + 0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008, + 0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008, + 0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008, + 0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008, + 0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008, + 0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008, + 0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008, + 0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308, + 0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308, + 0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308, + 0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008, + // Block 0x45, offset 0x1140 + 0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008, + 0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008, + 0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008, + 0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008, + 0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11, + 0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008, + 0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008, + 0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008, + 0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008, + 0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008, + 0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008, + // Block 0x46, offset 0x1180 + 0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018, + 0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018, + 0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018, + 0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008, + 0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008, + 0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008, + 0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008, + 0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008, + 0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008, + 0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008, + 0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008, + // Block 0x47, offset 0x11c0 + 0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008, + 0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008, + 0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008, + 0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008, + 0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008, + 0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008, + 0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008, + 0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008, + 0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008, + 0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d, + 0x11fc: 0x0008, 0x11fd: 0x442d, 0x11fe: 0xe00d, 0x11ff: 0x0008, + // Block 0x48, offset 0x1200 + 0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008, + 0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d, + 0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008, + 0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008, + 0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008, + 0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008, + 0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008, + 0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0008, + 0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x444d, 0x1234: 0xe00d, 0x1235: 0x0008, + 0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0x0040, 0x1239: 0x0008, 0x123a: 0x0040, 0x123b: 0x0040, + 0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040, + // Block 0x49, offset 0x1240 + 0x1240: 0x64d5, 0x1241: 0x64f5, 0x1242: 0x6515, 0x1243: 0x6535, 0x1244: 0x6555, 0x1245: 0x6575, + 0x1246: 0x6595, 0x1247: 0x65b5, 0x1248: 0x65d5, 0x1249: 0x65f5, 0x124a: 0x6615, 0x124b: 0x6635, + 0x124c: 0x6655, 0x124d: 0x6675, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x6695, 0x1251: 0x0008, + 0x1252: 0x66b5, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x66d5, 0x1256: 0x66f5, 0x1257: 0x6715, + 0x1258: 0x6735, 0x1259: 0x6755, 0x125a: 0x6775, 0x125b: 0x6795, 0x125c: 0x67b5, 0x125d: 0x67d5, + 0x125e: 0x67f5, 0x125f: 0x0008, 0x1260: 0x6815, 0x1261: 0x0008, 0x1262: 0x6835, 0x1263: 0x0008, + 0x1264: 0x0008, 0x1265: 0x6855, 0x1266: 0x6875, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008, + 0x126a: 0x6895, 0x126b: 0x68b5, 0x126c: 0x68d5, 0x126d: 0x68f5, 0x126e: 0x6915, 0x126f: 0x6935, + 0x1270: 0x6955, 0x1271: 0x6975, 0x1272: 0x6995, 0x1273: 0x69b5, 0x1274: 0x69d5, 0x1275: 0x69f5, + 0x1276: 0x6a15, 0x1277: 0x6a35, 0x1278: 0x6a55, 0x1279: 0x6a75, 0x127a: 0x6a95, 0x127b: 0x6ab5, + 0x127c: 0x6ad5, 0x127d: 0x6af5, 0x127e: 0x6b15, 0x127f: 0x6b35, + // Block 0x4a, offset 0x1280 + 0x1280: 0x7a95, 0x1281: 0x7ab5, 0x1282: 0x7ad5, 0x1283: 0x7af5, 0x1284: 0x7b15, 0x1285: 0x7b35, + 0x1286: 0x7b55, 0x1287: 0x7b75, 0x1288: 0x7b95, 0x1289: 0x7bb5, 0x128a: 0x7bd5, 0x128b: 0x7bf5, + 0x128c: 0x7c15, 0x128d: 0x7c35, 0x128e: 0x7c55, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19, + 0x1292: 0x7c75, 0x1293: 0x7c95, 0x1294: 0x7cb5, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91, + 0x1298: 0x7cd5, 0x1299: 0x7cf5, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040, + 0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040, + 0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040, + 0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040, + 0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040, + 0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040, + 0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d15, 0x12c4: 0x7d35, 0x12c5: 0x7001, + 0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040, + 0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040, + 0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9, + 0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1, + 0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149, + 0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2, + 0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1, + 0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1, + 0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479, + 0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040, + // Block 0x4c, offset 0x1300 + 0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040, + 0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659, + 0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721, + 0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751, + 0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769, + 0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799, + 0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1, + 0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1, + 0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9, + 0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829, + 0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841, + // Block 0x4d, offset 0x1340 + 0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871, + 0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9, + 0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9, + 0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919, + 0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931, + 0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961, + 0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991, + 0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1, + 0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818, + 0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818, + 0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040, + 0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040, + 0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040, + 0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09, + 0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479, + 0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81, + 0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1, + 0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19, + 0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91, + 0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1, + 0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1, + 0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1, + 0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1, + 0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991, + 0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81, + 0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a, + 0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99, + 0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89, + 0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79, + 0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19, + 0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469, + // Block 0x50, offset 0x1400 + 0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649, + 0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9, + 0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49, + 0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21, + 0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9, + 0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01, + 0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91, + 0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9, + 0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171, + 0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289, + 0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329, + // Block 0x51, offset 0x1440 + 0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1, + 0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621, + 0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739, + 0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1, + 0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9, + 0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29, + 0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079, + 0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1, + 0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171, + 0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261, + 0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301, + // Block 0x52, offset 0x1480 + 0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1, + 0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1, + 0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171, + 0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261, + 0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351, + 0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441, + 0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509, + 0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1, + 0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081, + 0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239, + 0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040, + 0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040, + 0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609, + 0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721, + 0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839, + 0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919, + 0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9, + 0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9, + 0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9, + 0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1, + 0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79, + // Block 0x54, offset 0x1500 + 0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989, + 0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040, + 0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040, + 0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040, + 0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040, + 0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040, + 0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040, + 0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040, + 0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9, + 0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12, + 0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040, + // Block 0x55, offset 0x1540 + 0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0, + 0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0, + 0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d55, + 0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7d75, + 0x1558: 0x7d95, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040, + 0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308, + 0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308, + 0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308, + 0x1570: 0x0040, 0x1571: 0x7db5, 0x1572: 0x7dd5, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2, + 0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7df5, 0x157a: 0x7e15, 0x157b: 0x7e35, + 0x157c: 0x7df5, 0x157d: 0x7e55, 0x157e: 0x7e75, 0x157f: 0x7e55, + // Block 0x56, offset 0x1580 + 0x1580: 0x7e95, 0x1581: 0x7eb5, 0x1582: 0x7ed5, 0x1583: 0x7eb5, 0x1584: 0x7ef5, 0x1585: 0x0018, + 0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f16, 0x158a: 0x7f36, 0x158b: 0x7f56, + 0x158c: 0x7f76, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7f95, + 0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa, + 0x1598: 0x7fb5, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7e95, + 0x159e: 0x7ef5, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99, + 0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda, + 0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040, + 0x15b0: 0x7fd6, 0x15b1: 0xb009, 0x15b2: 0x7ff6, 0x15b3: 0x0808, 0x15b4: 0x8016, 0x15b5: 0x0040, + 0x15b6: 0x8036, 0x15b7: 0xb031, 0x15b8: 0x8056, 0x15b9: 0xb059, 0x15ba: 0x8076, 0x15bb: 0xb081, + 0x15bc: 0x8096, 0x15bd: 0xb0a9, 0x15be: 0x80b6, 0x15bf: 0xb0d1, + // Block 0x57, offset 0x15c0 + 0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141, + 0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171, + 0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1, + 0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1, + 0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201, + 0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219, + 0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249, + 0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291, + 0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1, + 0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9, + 0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1, + // Block 0x58, offset 0x1600 + 0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321, + 0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339, + 0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369, + 0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381, + 0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1, + 0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9, + 0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9, + 0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1, + 0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441, + 0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9, + 0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0, + // Block 0x59, offset 0x1640 + 0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea, + 0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2, + 0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9, + 0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81, + 0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2, + 0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159, + 0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41, + 0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9, + 0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9, + 0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a, + 0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a, + // Block 0x5a, offset 0x1680 + 0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09, + 0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51, + 0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039, + 0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279, + 0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a, + 0x169e: 0xb532, 0x169f: 0x80d5, 0x16a0: 0x80f5, 0x16a1: 0x29d1, 0x16a2: 0x8115, 0x16a3: 0x8115, + 0x16a4: 0x8135, 0x16a5: 0x8155, 0x16a6: 0x8175, 0x16a7: 0x8195, 0x16a8: 0x81b5, 0x16a9: 0x81d5, + 0x16aa: 0x81f5, 0x16ab: 0x8215, 0x16ac: 0x8235, 0x16ad: 0x8255, 0x16ae: 0x8275, 0x16af: 0x8295, + 0x16b0: 0x82b5, 0x16b1: 0x82d5, 0x16b2: 0x82f5, 0x16b3: 0x8315, 0x16b4: 0x8335, 0x16b5: 0x8355, + 0x16b6: 0x8375, 0x16b7: 0x8395, 0x16b8: 0x83b5, 0x16b9: 0x83d5, 0x16ba: 0x83f5, 0x16bb: 0x8415, + 0x16bc: 0x81b5, 0x16bd: 0x8435, 0x16be: 0x8455, 0x16bf: 0x8215, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x8475, 0x16c1: 0x8495, 0x16c2: 0x84b5, 0x16c3: 0x84d5, 0x16c4: 0x84f5, 0x16c5: 0x8515, + 0x16c6: 0x8535, 0x16c7: 0x8555, 0x16c8: 0x84d5, 0x16c9: 0x8575, 0x16ca: 0x84d5, 0x16cb: 0x8595, + 0x16cc: 0x8595, 0x16cd: 0x85b5, 0x16ce: 0x85b5, 0x16cf: 0x85d5, 0x16d0: 0x8515, 0x16d1: 0x85f5, + 0x16d2: 0x8615, 0x16d3: 0x85f5, 0x16d4: 0x8635, 0x16d5: 0x8615, 0x16d6: 0x8655, 0x16d7: 0x8655, + 0x16d8: 0x8675, 0x16d9: 0x8675, 0x16da: 0x8695, 0x16db: 0x8695, 0x16dc: 0x8615, 0x16dd: 0x8115, + 0x16de: 0x86b5, 0x16df: 0x86d5, 0x16e0: 0x0040, 0x16e1: 0x86f5, 0x16e2: 0x8715, 0x16e3: 0x8735, + 0x16e4: 0x8755, 0x16e5: 0x8735, 0x16e6: 0x8775, 0x16e7: 0x8795, 0x16e8: 0x87b5, 0x16e9: 0x87b5, + 0x16ea: 0x87d5, 0x16eb: 0x87d5, 0x16ec: 0x87f5, 0x16ed: 0x87f5, 0x16ee: 0x87d5, 0x16ef: 0x87d5, + 0x16f0: 0x8815, 0x16f1: 0x8835, 0x16f2: 0x8855, 0x16f3: 0x8875, 0x16f4: 0x8895, 0x16f5: 0x88b5, + 0x16f6: 0x88b5, 0x16f7: 0x88b5, 0x16f8: 0x88d5, 0x16f9: 0x88d5, 0x16fa: 0x88d5, 0x16fb: 0x88d5, + 0x16fc: 0x87b5, 0x16fd: 0x87b5, 0x16fe: 0x87b5, 0x16ff: 0x0040, + // Block 0x5c, offset 0x1700 + 0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x8715, 0x1703: 0x86f5, 0x1704: 0x88f5, 0x1705: 0x86f5, + 0x1706: 0x8715, 0x1707: 0x86f5, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x8915, 0x170b: 0x8715, + 0x170c: 0x8935, 0x170d: 0x88f5, 0x170e: 0x8935, 0x170f: 0x8715, 0x1710: 0x0040, 0x1711: 0x0040, + 0x1712: 0x8955, 0x1713: 0x8975, 0x1714: 0x8875, 0x1715: 0x8935, 0x1716: 0x88f5, 0x1717: 0x8935, + 0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x8995, 0x171b: 0x89b5, 0x171c: 0x8995, 0x171d: 0x0040, + 0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x89d6, + 0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x89f5, 0x1727: 0x0040, 0x1728: 0x8a15, 0x1729: 0x8a35, + 0x172a: 0x8a55, 0x172b: 0x8a35, 0x172c: 0x8a75, 0x172d: 0x8a95, 0x172e: 0x8ab5, 0x172f: 0x0040, + 0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040, + 0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340, + 0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040, + // Block 0x5d, offset 0x1740 + 0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08, + 0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808, + 0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08, + 0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908, + 0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08, + 0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808, + 0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040, + 0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18, + 0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818, + 0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040, + 0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040, + // Block 0x5e, offset 0x1780 + 0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08, + 0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08, + 0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08, + 0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040, + 0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040, + 0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040, + 0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18, + 0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818, + 0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040, + 0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040, + 0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008, + 0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008, + 0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040, + 0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008, + 0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008, + 0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008, + 0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040, + 0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008, + 0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008, + 0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308, + 0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008, + // Block 0x60, offset 0x1800 + 0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040, + 0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008, + 0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040, + 0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008, + 0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008, + 0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008, + 0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308, + 0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040, + 0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040, + 0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040, + 0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040, + // Block 0x61, offset 0x1840 + 0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199, + 0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359, + 0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269, + 0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369, + 0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9, + 0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259, + 0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99, + 0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089, + 0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9, + 0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249, + 0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359, + // Block 0x62, offset 0x1880 + 0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269, + 0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369, + 0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9, + 0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259, + 0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99, + 0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089, + 0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9, + 0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249, + 0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71, + 0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9, + 0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9, + 0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259, + 0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99, + 0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089, + 0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040, + 0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040, + 0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71, + 0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9, + 0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1, + 0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199, + 0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259, + // Block 0x64, offset 0x1900 + 0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99, + 0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089, + 0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9, + 0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249, + 0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71, + 0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9, + 0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1, + 0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199, + 0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359, + 0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269, + 0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089, + // Block 0x65, offset 0x1940 + 0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9, + 0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040, + 0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71, + 0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9, + 0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040, + 0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199, + 0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359, + 0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269, + 0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369, + 0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9, + 0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040, + // Block 0x66, offset 0x1980 + 0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040, + 0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9, + 0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040, + 0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199, + 0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359, + 0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269, + 0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369, + 0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9, + 0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259, + 0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99, + 0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1, + 0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199, + 0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359, + 0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269, + 0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369, + 0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9, + 0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259, + 0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99, + 0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089, + 0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9, + 0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199, + // Block 0x68, offset 0x1a00 + 0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359, + 0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269, + 0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369, + 0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9, + 0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259, + 0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99, + 0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089, + 0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9, + 0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249, + 0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71, + 0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269, + // Block 0x69, offset 0x1a40 + 0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369, + 0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9, + 0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259, + 0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99, + 0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089, + 0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9, + 0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249, + 0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71, + 0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9, + 0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1, + 0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259, + 0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99, + 0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089, + 0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9, + 0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249, + 0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71, + 0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9, + 0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1, + 0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199, + 0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359, + 0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089, + 0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9, + 0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249, + 0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71, + 0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9, + 0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1, + 0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099, + 0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429, + 0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71, + 0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9, + 0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9, + 0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11, + 0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109, + 0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1, + 0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429, + 0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099, + 0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429, + 0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71, + 0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9, + 0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01, + 0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11, + 0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109, + 0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1, + 0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429, + 0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099, + 0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429, + 0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71, + 0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9, + 0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01, + 0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1, + 0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109, + 0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1, + 0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429, + 0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099, + 0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429, + 0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71, + 0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9, + 0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01, + 0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1, + 0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41, + 0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1, + 0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429, + 0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099, + 0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429, + 0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71, + 0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9, + 0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01, + 0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1, + 0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41, + 0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1, + 0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429, + 0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41, + 0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079, + 0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1, + 0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61, + 0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9, + 0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81, + 0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079, + 0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1, + 0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61, + 0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1, + // Block 0x71, offset 0x1c40 + 0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115, + 0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135, + 0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115, + 0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175, + 0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115, + 0x1c5e: 0x8b05, 0x1c5f: 0x8b05, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08, + 0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08, + 0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08, + 0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08, + 0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08, + 0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08, + // Block 0x72, offset 0x1c80 + 0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411, + 0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1, + 0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9, + 0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231, + 0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949, + 0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040, + 0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429, + 0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339, + 0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1, + 0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351, + 0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040, + 0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1, + 0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9, + 0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231, + 0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949, + 0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040, + 0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429, + 0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339, + 0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1, + 0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351, + 0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040, + // Block 0x74, offset 0x1d00 + 0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411, + 0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1, + 0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9, + 0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231, + 0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040, + 0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249, + 0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429, + 0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339, + 0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1, + 0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351, + 0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040, + // Block 0x75, offset 0x1d40 + 0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02, + 0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018, + 0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2, + 0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72, + 0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32, + 0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2, + 0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2, + 0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0018, + 0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199, + 0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359, + 0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99, + // Block 0x76, offset 0x1d80 + 0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089, + 0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1, + 0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018, + 0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018, + 0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018, + 0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018, + 0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018, + 0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0x0040, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040, + 0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018, + 0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018, + 0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018, + // Block 0x77, offset 0x1dc0 + 0x1dc0: 0xc1d9, 0x1dc1: 0xc211, 0x1dc2: 0xc249, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040, + 0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040, + 0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc269, 0x1dd1: 0xc289, + 0x1dd2: 0xc2a9, 0x1dd3: 0xc2c9, 0x1dd4: 0xc2e9, 0x1dd5: 0xc309, 0x1dd6: 0xc329, 0x1dd7: 0xc349, + 0x1dd8: 0xc369, 0x1dd9: 0xc389, 0x1dda: 0xc3a9, 0x1ddb: 0xc3c9, 0x1ddc: 0xc3e9, 0x1ddd: 0xc409, + 0x1dde: 0xc429, 0x1ddf: 0xc449, 0x1de0: 0xc469, 0x1de1: 0xc489, 0x1de2: 0xc4a9, 0x1de3: 0xc4c9, + 0x1de4: 0xc4e9, 0x1de5: 0xc509, 0x1de6: 0xc529, 0x1de7: 0xc549, 0x1de8: 0xc569, 0x1de9: 0xc589, + 0x1dea: 0xc5a9, 0x1deb: 0xc5c9, 0x1dec: 0xc5e9, 0x1ded: 0xc609, 0x1dee: 0xc629, 0x1def: 0xc649, + 0x1df0: 0xc669, 0x1df1: 0xc689, 0x1df2: 0xc6a9, 0x1df3: 0xc6c9, 0x1df4: 0xc6e9, 0x1df5: 0xc709, + 0x1df6: 0xc729, 0x1df7: 0xc749, 0x1df8: 0xc769, 0x1df9: 0xc789, 0x1dfa: 0xc7a9, 0x1dfb: 0xc7c9, + 0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040, + // Block 0x78, offset 0x1e00 + 0x1e00: 0xcaf9, 0x1e01: 0xcb19, 0x1e02: 0xcb39, 0x1e03: 0x8b1d, 0x1e04: 0xcb59, 0x1e05: 0xcb79, + 0x1e06: 0xcb99, 0x1e07: 0xcbb9, 0x1e08: 0xcbd9, 0x1e09: 0xcbf9, 0x1e0a: 0xcc19, 0x1e0b: 0xcc39, + 0x1e0c: 0xcc59, 0x1e0d: 0x8b3d, 0x1e0e: 0xcc79, 0x1e0f: 0xcc99, 0x1e10: 0xccb9, 0x1e11: 0xccd9, + 0x1e12: 0x8b5d, 0x1e13: 0xccf9, 0x1e14: 0xcd19, 0x1e15: 0xc429, 0x1e16: 0x8b7d, 0x1e17: 0xcd39, + 0x1e18: 0xcd59, 0x1e19: 0xcd79, 0x1e1a: 0xcd99, 0x1e1b: 0xcdb9, 0x1e1c: 0x8b9d, 0x1e1d: 0xcdd9, + 0x1e1e: 0xcdf9, 0x1e1f: 0xce19, 0x1e20: 0xce39, 0x1e21: 0xce59, 0x1e22: 0xc789, 0x1e23: 0xce79, + 0x1e24: 0xce99, 0x1e25: 0xceb9, 0x1e26: 0xced9, 0x1e27: 0xcef9, 0x1e28: 0xcf19, 0x1e29: 0xcf39, + 0x1e2a: 0xcf59, 0x1e2b: 0xcf79, 0x1e2c: 0xcf99, 0x1e2d: 0xcfb9, 0x1e2e: 0xcfd9, 0x1e2f: 0xcff9, + 0x1e30: 0xd019, 0x1e31: 0xd039, 0x1e32: 0xd039, 0x1e33: 0xd039, 0x1e34: 0x8bbd, 0x1e35: 0xd059, + 0x1e36: 0xd079, 0x1e37: 0xd099, 0x1e38: 0x8bdd, 0x1e39: 0xd0b9, 0x1e3a: 0xd0d9, 0x1e3b: 0xd0f9, + 0x1e3c: 0xd119, 0x1e3d: 0xd139, 0x1e3e: 0xd159, 0x1e3f: 0xd179, + // Block 0x79, offset 0x1e40 + 0x1e40: 0xd199, 0x1e41: 0xd1b9, 0x1e42: 0xd1d9, 0x1e43: 0xd1f9, 0x1e44: 0xd219, 0x1e45: 0xd239, + 0x1e46: 0xd239, 0x1e47: 0xd259, 0x1e48: 0xd279, 0x1e49: 0xd299, 0x1e4a: 0xd2b9, 0x1e4b: 0xd2d9, + 0x1e4c: 0xd2f9, 0x1e4d: 0xd319, 0x1e4e: 0xd339, 0x1e4f: 0xd359, 0x1e50: 0xd379, 0x1e51: 0xd399, + 0x1e52: 0xd3b9, 0x1e53: 0xd3d9, 0x1e54: 0xd3f9, 0x1e55: 0xd419, 0x1e56: 0xd439, 0x1e57: 0xd459, + 0x1e58: 0xd479, 0x1e59: 0x8bfd, 0x1e5a: 0xd499, 0x1e5b: 0xd4b9, 0x1e5c: 0xd4d9, 0x1e5d: 0xc309, + 0x1e5e: 0xd4f9, 0x1e5f: 0xd519, 0x1e60: 0x8c1d, 0x1e61: 0x8c3d, 0x1e62: 0xd539, 0x1e63: 0xd559, + 0x1e64: 0xd579, 0x1e65: 0xd599, 0x1e66: 0xd5b9, 0x1e67: 0xd5d9, 0x1e68: 0x2040, 0x1e69: 0xd5f9, + 0x1e6a: 0xd619, 0x1e6b: 0xd619, 0x1e6c: 0x8c5d, 0x1e6d: 0xd639, 0x1e6e: 0xd659, 0x1e6f: 0xd679, + 0x1e70: 0xd699, 0x1e71: 0x8c7d, 0x1e72: 0xd6b9, 0x1e73: 0xd6d9, 0x1e74: 0x2040, 0x1e75: 0xd6f9, + 0x1e76: 0xd719, 0x1e77: 0xd739, 0x1e78: 0xd759, 0x1e79: 0xd779, 0x1e7a: 0xd799, 0x1e7b: 0x8c9d, + 0x1e7c: 0xd7b9, 0x1e7d: 0x8cbd, 0x1e7e: 0xd7d9, 0x1e7f: 0xd7f9, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0xd819, 0x1e81: 0xd839, 0x1e82: 0xd859, 0x1e83: 0xd879, 0x1e84: 0xd899, 0x1e85: 0xd8b9, + 0x1e86: 0xd8d9, 0x1e87: 0xd8f9, 0x1e88: 0xd919, 0x1e89: 0x8cdd, 0x1e8a: 0xd939, 0x1e8b: 0xd959, + 0x1e8c: 0xd979, 0x1e8d: 0xd999, 0x1e8e: 0xd9b9, 0x1e8f: 0x8cfd, 0x1e90: 0xd9d9, 0x1e91: 0x8d1d, + 0x1e92: 0x8d3d, 0x1e93: 0xd9f9, 0x1e94: 0xda19, 0x1e95: 0xda19, 0x1e96: 0xda39, 0x1e97: 0x8d5d, + 0x1e98: 0x8d7d, 0x1e99: 0xda59, 0x1e9a: 0xda79, 0x1e9b: 0xda99, 0x1e9c: 0xdab9, 0x1e9d: 0xdad9, + 0x1e9e: 0xdaf9, 0x1e9f: 0xdb19, 0x1ea0: 0xdb39, 0x1ea1: 0xdb59, 0x1ea2: 0xdb79, 0x1ea3: 0xdb99, + 0x1ea4: 0x8d9d, 0x1ea5: 0xdbb9, 0x1ea6: 0xdbd9, 0x1ea7: 0xdbf9, 0x1ea8: 0xdc19, 0x1ea9: 0xdbf9, + 0x1eaa: 0xdc39, 0x1eab: 0xdc59, 0x1eac: 0xdc79, 0x1ead: 0xdc99, 0x1eae: 0xdcb9, 0x1eaf: 0xdcd9, + 0x1eb0: 0xdcf9, 0x1eb1: 0xdd19, 0x1eb2: 0xdd39, 0x1eb3: 0xdd59, 0x1eb4: 0xdd79, 0x1eb5: 0xdd99, + 0x1eb6: 0xddb9, 0x1eb7: 0xddd9, 0x1eb8: 0x8dbd, 0x1eb9: 0xddf9, 0x1eba: 0xde19, 0x1ebb: 0xde39, + 0x1ebc: 0xde59, 0x1ebd: 0xde79, 0x1ebe: 0x8ddd, 0x1ebf: 0xde99, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0xe599, 0x1ec1: 0xe5b9, 0x1ec2: 0xe5d9, 0x1ec3: 0xe5f9, 0x1ec4: 0xe619, 0x1ec5: 0xe639, + 0x1ec6: 0x8efd, 0x1ec7: 0xe659, 0x1ec8: 0xe679, 0x1ec9: 0xe699, 0x1eca: 0xe6b9, 0x1ecb: 0xe6d9, + 0x1ecc: 0xe6f9, 0x1ecd: 0x8f1d, 0x1ece: 0xe719, 0x1ecf: 0xe739, 0x1ed0: 0x8f3d, 0x1ed1: 0x8f5d, + 0x1ed2: 0xe759, 0x1ed3: 0xe779, 0x1ed4: 0xe799, 0x1ed5: 0xe7b9, 0x1ed6: 0xe7d9, 0x1ed7: 0xe7f9, + 0x1ed8: 0xe819, 0x1ed9: 0xe839, 0x1eda: 0xe859, 0x1edb: 0x8f7d, 0x1edc: 0xe879, 0x1edd: 0x8f9d, + 0x1ede: 0xe899, 0x1edf: 0x2040, 0x1ee0: 0xe8b9, 0x1ee1: 0xe8d9, 0x1ee2: 0xe8f9, 0x1ee3: 0x8fbd, + 0x1ee4: 0xe919, 0x1ee5: 0xe939, 0x1ee6: 0x8fdd, 0x1ee7: 0x8ffd, 0x1ee8: 0xe959, 0x1ee9: 0xe979, + 0x1eea: 0xe999, 0x1eeb: 0xe9b9, 0x1eec: 0xe9d9, 0x1eed: 0xe9d9, 0x1eee: 0xe9f9, 0x1eef: 0xea19, + 0x1ef0: 0xea39, 0x1ef1: 0xea59, 0x1ef2: 0xea79, 0x1ef3: 0xea99, 0x1ef4: 0xeab9, 0x1ef5: 0x901d, + 0x1ef6: 0xead9, 0x1ef7: 0x903d, 0x1ef8: 0xeaf9, 0x1ef9: 0x905d, 0x1efa: 0xeb19, 0x1efb: 0x907d, + 0x1efc: 0x909d, 0x1efd: 0x90bd, 0x1efe: 0xeb39, 0x1eff: 0xeb59, + // Block 0x7c, offset 0x1f00 + 0x1f00: 0xeb79, 0x1f01: 0x90dd, 0x1f02: 0x90fd, 0x1f03: 0x911d, 0x1f04: 0x913d, 0x1f05: 0xeb99, + 0x1f06: 0xebb9, 0x1f07: 0xebb9, 0x1f08: 0xebd9, 0x1f09: 0xebf9, 0x1f0a: 0xec19, 0x1f0b: 0xec39, + 0x1f0c: 0xec59, 0x1f0d: 0x915d, 0x1f0e: 0xec79, 0x1f0f: 0xec99, 0x1f10: 0xecb9, 0x1f11: 0xecd9, + 0x1f12: 0x917d, 0x1f13: 0xecf9, 0x1f14: 0x919d, 0x1f15: 0x91bd, 0x1f16: 0xed19, 0x1f17: 0xed39, + 0x1f18: 0xed59, 0x1f19: 0xed79, 0x1f1a: 0xed99, 0x1f1b: 0xedb9, 0x1f1c: 0x91dd, 0x1f1d: 0x91fd, + 0x1f1e: 0x921d, 0x1f1f: 0x2040, 0x1f20: 0xedd9, 0x1f21: 0x923d, 0x1f22: 0xedf9, 0x1f23: 0xee19, + 0x1f24: 0xee39, 0x1f25: 0x925d, 0x1f26: 0xee59, 0x1f27: 0xee79, 0x1f28: 0xee99, 0x1f29: 0xeeb9, + 0x1f2a: 0xeed9, 0x1f2b: 0x927d, 0x1f2c: 0xeef9, 0x1f2d: 0xef19, 0x1f2e: 0xef39, 0x1f2f: 0xef59, + 0x1f30: 0xef79, 0x1f31: 0xef99, 0x1f32: 0x929d, 0x1f33: 0x92bd, 0x1f34: 0xefb9, 0x1f35: 0x92dd, + 0x1f36: 0xefd9, 0x1f37: 0x92fd, 0x1f38: 0xeff9, 0x1f39: 0xf019, 0x1f3a: 0xf039, 0x1f3b: 0x931d, + 0x1f3c: 0x933d, 0x1f3d: 0xf059, 0x1f3e: 0x935d, 0x1f3f: 0xf079, + // Block 0x7d, offset 0x1f40 + 0x1f40: 0xf6b9, 0x1f41: 0xf6d9, 0x1f42: 0xf6f9, 0x1f43: 0xf719, 0x1f44: 0xf739, 0x1f45: 0x951d, + 0x1f46: 0xf759, 0x1f47: 0xf779, 0x1f48: 0xf799, 0x1f49: 0xf7b9, 0x1f4a: 0xf7d9, 0x1f4b: 0x953d, + 0x1f4c: 0x955d, 0x1f4d: 0xf7f9, 0x1f4e: 0xf819, 0x1f4f: 0xf839, 0x1f50: 0xf859, 0x1f51: 0xf879, + 0x1f52: 0xf899, 0x1f53: 0x957d, 0x1f54: 0xf8b9, 0x1f55: 0xf8d9, 0x1f56: 0xf8f9, 0x1f57: 0xf919, + 0x1f58: 0x959d, 0x1f59: 0x95bd, 0x1f5a: 0xf939, 0x1f5b: 0xf959, 0x1f5c: 0xf979, 0x1f5d: 0x95dd, + 0x1f5e: 0xf999, 0x1f5f: 0xf9b9, 0x1f60: 0x6815, 0x1f61: 0x95fd, 0x1f62: 0xf9d9, 0x1f63: 0xf9f9, + 0x1f64: 0xfa19, 0x1f65: 0x961d, 0x1f66: 0xfa39, 0x1f67: 0xfa59, 0x1f68: 0xfa79, 0x1f69: 0xfa99, + 0x1f6a: 0xfab9, 0x1f6b: 0xfad9, 0x1f6c: 0xfaf9, 0x1f6d: 0x963d, 0x1f6e: 0xfb19, 0x1f6f: 0xfb39, + 0x1f70: 0xfb59, 0x1f71: 0x965d, 0x1f72: 0xfb79, 0x1f73: 0xfb99, 0x1f74: 0xfbb9, 0x1f75: 0xfbd9, + 0x1f76: 0x7b35, 0x1f77: 0x967d, 0x1f78: 0xfbf9, 0x1f79: 0xfc19, 0x1f7a: 0xfc39, 0x1f7b: 0x969d, + 0x1f7c: 0xfc59, 0x1f7d: 0x96bd, 0x1f7e: 0xfc79, 0x1f7f: 0xfc79, + // Block 0x7e, offset 0x1f80 + 0x1f80: 0xfc99, 0x1f81: 0x96dd, 0x1f82: 0xfcb9, 0x1f83: 0xfcd9, 0x1f84: 0xfcf9, 0x1f85: 0xfd19, + 0x1f86: 0xfd39, 0x1f87: 0xfd59, 0x1f88: 0xfd79, 0x1f89: 0x96fd, 0x1f8a: 0xfd99, 0x1f8b: 0xfdb9, + 0x1f8c: 0xfdd9, 0x1f8d: 0xfdf9, 0x1f8e: 0xfe19, 0x1f8f: 0xfe39, 0x1f90: 0x971d, 0x1f91: 0xfe59, + 0x1f92: 0x973d, 0x1f93: 0x975d, 0x1f94: 0x977d, 0x1f95: 0xfe79, 0x1f96: 0xfe99, 0x1f97: 0xfeb9, + 0x1f98: 0xfed9, 0x1f99: 0xfef9, 0x1f9a: 0xff19, 0x1f9b: 0xff39, 0x1f9c: 0xff59, 0x1f9d: 0x979d, + 0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040, + 0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040, + 0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040, + 0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040, + 0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040, + 0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040, +} + +// idnaIndex: 36 blocks, 2304 entries, 4608 bytes +// Block 0 is the zero block. +var idnaIndex = [2304]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05, + 0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a, + 0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84, + 0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07, + 0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c, + 0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21, + // Block 0x4, offset 0x100 + 0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16, + 0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d, + 0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91, + 0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96, + // Block 0x5, offset 0x140 + 0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e, + 0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6, + 0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f, + 0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae, + 0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6, + 0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe, + 0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3, + 0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c, + // Block 0x6, offset 0x180 + 0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b, + 0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b, + 0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b, + 0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b, + 0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b, + 0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0xd0, + 0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5, + 0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1, + 0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41, + 0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f, + 0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f, + 0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f, + 0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f, + 0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f, + 0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f, + // Block 0x8, offset 0x200 + 0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f, + 0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f, + 0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f, + 0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f, + 0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f, + 0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f, + 0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b, + 0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f, + // Block 0x9, offset 0x240 + 0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f, + 0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f, + 0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f, + 0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f, + 0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f, + 0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f, + 0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f, + 0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f, + // Block 0xa, offset 0x280 + 0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f, + 0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f, + 0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f, + 0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f, + 0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f, + 0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f, + 0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f, + 0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe3, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f, + 0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f, + 0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f, + 0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8, + 0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0, + 0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8, + 0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f, + 0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f, + // Block 0xc, offset 0x300 + 0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f, + 0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f, + 0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f, + 0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf9, 0x31f: 0xfa, + // Block 0xd, offset 0x340 + 0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba, + 0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba, + 0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba, + 0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba, + 0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba, + 0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba, + 0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba, + 0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba, + // Block 0xe, offset 0x380 + 0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba, + 0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba, + 0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba, + 0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba, + 0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfb, 0x3a5: 0xfc, 0x3a6: 0xfd, 0x3a7: 0xfe, + 0x3a8: 0x47, 0x3a9: 0xff, 0x3aa: 0x100, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c, + 0x3b0: 0x101, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x102, 0x3b7: 0x52, + 0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x103, 0x3c1: 0x104, 0x3c2: 0x9f, 0x3c3: 0x105, 0x3c4: 0x106, 0x3c5: 0x9b, 0x3c6: 0x107, 0x3c7: 0x108, + 0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x109, 0x3cb: 0x10a, 0x3cc: 0x10b, 0x3cd: 0x10c, 0x3ce: 0x10d, 0x3cf: 0x10e, + 0x3d0: 0x10f, 0x3d1: 0x9f, 0x3d2: 0x110, 0x3d3: 0x111, 0x3d4: 0x112, 0x3d5: 0x113, 0x3d6: 0xba, 0x3d7: 0xba, + 0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x114, 0x3dd: 0x115, 0x3de: 0xba, 0x3df: 0xba, + 0x3e0: 0x116, 0x3e1: 0x117, 0x3e2: 0x118, 0x3e3: 0x119, 0x3e4: 0x11a, 0x3e5: 0xba, 0x3e6: 0x11b, 0x3e7: 0x11c, + 0x3e8: 0x11d, 0x3e9: 0x11e, 0x3ea: 0x11f, 0x3eb: 0x5b, 0x3ec: 0x120, 0x3ed: 0x121, 0x3ee: 0x5c, 0x3ef: 0xba, + 0x3f0: 0x122, 0x3f1: 0x123, 0x3f2: 0x124, 0x3f3: 0x125, 0x3f4: 0x126, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba, + 0x3f8: 0xba, 0x3f9: 0x127, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0x128, 0x3fd: 0x129, 0x3fe: 0xba, 0x3ff: 0xba, + // Block 0x10, offset 0x400 + 0x400: 0x12a, 0x401: 0x12b, 0x402: 0x12c, 0x403: 0x12d, 0x404: 0x12e, 0x405: 0x12f, 0x406: 0x130, 0x407: 0x131, + 0x408: 0x132, 0x409: 0xba, 0x40a: 0x133, 0x40b: 0x134, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba, + 0x410: 0x135, 0x411: 0x136, 0x412: 0x137, 0x413: 0x138, 0x414: 0xba, 0x415: 0xba, 0x416: 0x139, 0x417: 0x13a, + 0x418: 0x13b, 0x419: 0x13c, 0x41a: 0x13d, 0x41b: 0x13e, 0x41c: 0x13f, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba, + 0x420: 0x140, 0x421: 0xba, 0x422: 0x141, 0x423: 0x142, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba, + 0x428: 0x143, 0x429: 0x144, 0x42a: 0x145, 0x42b: 0x146, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba, + 0x430: 0x147, 0x431: 0x148, 0x432: 0x149, 0x433: 0xba, 0x434: 0x14a, 0x435: 0x14b, 0x436: 0x14c, 0x437: 0xba, + 0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0x14d, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba, + // Block 0x11, offset 0x440 + 0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f, + 0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x14e, 0x44f: 0xba, + 0x450: 0x9b, 0x451: 0x14f, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x150, 0x456: 0xba, 0x457: 0xba, + 0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba, + 0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba, + 0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba, + 0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba, + 0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba, + // Block 0x12, offset 0x480 + 0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f, + 0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f, + 0x490: 0x151, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba, + 0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba, + 0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba, + 0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba, + 0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba, + 0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba, + // Block 0x13, offset 0x4c0 + 0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba, + 0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba, + 0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f, + 0x4d8: 0x9f, 0x4d9: 0x152, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba, + 0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba, + 0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba, + 0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba, + 0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba, + // Block 0x14, offset 0x500 + 0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba, + 0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba, + 0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba, + 0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba, + 0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f, + 0x528: 0x146, 0x529: 0x153, 0x52a: 0xba, 0x52b: 0x154, 0x52c: 0x155, 0x52d: 0x156, 0x52e: 0x157, 0x52f: 0xba, + 0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba, + 0x538: 0xba, 0x539: 0x158, 0x53a: 0x159, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x15a, 0x53e: 0x15b, 0x53f: 0x15c, + // Block 0x15, offset 0x540 + 0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f, + 0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f, + 0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f, + 0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x15d, + 0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f, + 0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x15e, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba, + 0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba, + 0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba, + // Block 0x16, offset 0x580 + 0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x15f, 0x585: 0x160, 0x586: 0x9f, 0x587: 0x9f, + 0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x161, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba, + 0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba, + 0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba, + 0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba, + 0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba, + 0x5b0: 0x9f, 0x5b1: 0x162, 0x5b2: 0x163, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba, + 0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x164, 0x5c4: 0x165, 0x5c5: 0x166, 0x5c6: 0x167, 0x5c7: 0x168, + 0x5c8: 0x9b, 0x5c9: 0x169, 0x5ca: 0xba, 0x5cb: 0x16a, 0x5cc: 0x9b, 0x5cd: 0x16b, 0x5ce: 0xba, 0x5cf: 0xba, + 0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66, + 0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e, + 0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b, + 0x5e8: 0x16c, 0x5e9: 0x16d, 0x5ea: 0x16e, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba, + 0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba, + 0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba, + // Block 0x18, offset 0x600 + 0x600: 0x16f, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba, + 0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba, + 0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba, + 0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba, + 0x620: 0x122, 0x621: 0x122, 0x622: 0x122, 0x623: 0x170, 0x624: 0x6f, 0x625: 0x171, 0x626: 0xba, 0x627: 0xba, + 0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba, + 0x630: 0xba, 0x631: 0x172, 0x632: 0x173, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba, + 0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x174, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba, + // Block 0x19, offset 0x640 + 0x640: 0x175, 0x641: 0x9b, 0x642: 0x176, 0x643: 0x177, 0x644: 0x73, 0x645: 0x74, 0x646: 0x178, 0x647: 0x179, + 0x648: 0x75, 0x649: 0x17a, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b, + 0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b, + 0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x17b, 0x65c: 0x9b, 0x65d: 0x17c, 0x65e: 0x9b, 0x65f: 0x17d, + 0x660: 0x17e, 0x661: 0x17f, 0x662: 0x180, 0x663: 0xba, 0x664: 0x181, 0x665: 0x182, 0x666: 0x183, 0x667: 0x184, + 0x668: 0xba, 0x669: 0x185, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba, + 0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba, + 0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba, + // Block 0x1a, offset 0x680 + 0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f, + 0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f, + 0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f, + 0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x186, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f, + 0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f, + 0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f, + 0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f, + 0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f, + 0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f, + 0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f, + 0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x187, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f, + 0x6e0: 0x188, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f, + 0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f, + 0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f, + 0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f, + // Block 0x1c, offset 0x700 + 0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f, + 0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f, + 0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f, + 0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f, + 0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f, + 0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f, + 0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f, + 0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x189, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f, + // Block 0x1d, offset 0x740 + 0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f, + 0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f, + 0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f, + 0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f, + 0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f, + 0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x18a, + 0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba, + 0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba, + // Block 0x1e, offset 0x780 + 0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba, + 0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba, + 0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba, + 0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba, + 0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x18b, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x18c, 0x7a7: 0x7b, + 0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba, + 0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba, + 0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba, + // Block 0x1f, offset 0x7c0 + 0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07, + 0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17, + 0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07, + 0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c, + 0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b, + 0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b, + // Block 0x20, offset 0x800 + 0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b, + 0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b, + 0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b, + 0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b, + 0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b, + 0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b, + 0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b, + 0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b, + // Block 0x21, offset 0x840 + 0x840: 0x18d, 0x841: 0x18e, 0x842: 0xba, 0x843: 0xba, 0x844: 0x18f, 0x845: 0x18f, 0x846: 0x18f, 0x847: 0x190, + 0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba, + 0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba, + 0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba, + 0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba, + 0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba, + 0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba, + 0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba, + // Block 0x22, offset 0x880 + 0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b, + 0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b, + 0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b, + 0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b, + 0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b, + 0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b, + 0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b, + 0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b, + 0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b, +} + +// idnaSparseOffset: 276 entries, 552 bytes +var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x86, 0x8b, 0x94, 0xa4, 0xb2, 0xbe, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x224, 0x22e, 0x23a, 0x246, 0x252, 0x25a, 0x25f, 0x269, 0x27a, 0x27e, 0x289, 0x28d, 0x296, 0x29e, 0x2a4, 0x2a9, 0x2ac, 0x2b0, 0x2b6, 0x2ba, 0x2be, 0x2c2, 0x2c7, 0x2cd, 0x2d5, 0x2dc, 0x2e7, 0x2f1, 0x2f5, 0x2f8, 0x2fe, 0x302, 0x304, 0x307, 0x309, 0x30c, 0x316, 0x319, 0x328, 0x32c, 0x331, 0x334, 0x338, 0x33d, 0x342, 0x348, 0x34e, 0x35d, 0x363, 0x367, 0x376, 0x37b, 0x383, 0x38d, 0x398, 0x3a0, 0x3b1, 0x3ba, 0x3ca, 0x3d7, 0x3e1, 0x3e6, 0x3f3, 0x3f7, 0x3fc, 0x3fe, 0x402, 0x404, 0x408, 0x411, 0x417, 0x41b, 0x42b, 0x435, 0x43a, 0x43d, 0x443, 0x44a, 0x44f, 0x453, 0x459, 0x45e, 0x467, 0x46c, 0x472, 0x479, 0x480, 0x487, 0x48b, 0x490, 0x493, 0x498, 0x4a4, 0x4aa, 0x4af, 0x4b6, 0x4be, 0x4c3, 0x4c7, 0x4d7, 0x4de, 0x4e2, 0x4e6, 0x4ed, 0x4ef, 0x4f2, 0x4f5, 0x4f9, 0x502, 0x506, 0x50e, 0x516, 0x51c, 0x525, 0x531, 0x538, 0x541, 0x54b, 0x552, 0x560, 0x56d, 0x57a, 0x583, 0x587, 0x596, 0x59e, 0x5a9, 0x5b2, 0x5b8, 0x5c0, 0x5c9, 0x5d3, 0x5d6, 0x5e2, 0x5eb, 0x5ee, 0x5f3, 0x5fe, 0x607, 0x613, 0x616, 0x620, 0x629, 0x635, 0x642, 0x64f, 0x65d, 0x664, 0x667, 0x66c, 0x66f, 0x672, 0x675, 0x67c, 0x683, 0x687, 0x692, 0x695, 0x698, 0x69b, 0x6a1, 0x6a6, 0x6aa, 0x6ad, 0x6b0, 0x6b3, 0x6b6, 0x6b9, 0x6be, 0x6c8, 0x6cb, 0x6cf, 0x6de, 0x6ea, 0x6ee, 0x6f3, 0x6f7, 0x6fc, 0x700, 0x705, 0x70e, 0x719, 0x71f, 0x727, 0x72a, 0x72d, 0x731, 0x735, 0x73b, 0x741, 0x746, 0x749, 0x759, 0x760, 0x763, 0x766, 0x76a, 0x770, 0x775, 0x77a, 0x782, 0x787, 0x78b, 0x78f, 0x792, 0x795, 0x799, 0x79d, 0x7a0, 0x7b0, 0x7c1, 0x7c6, 0x7c8, 0x7ca} + +// idnaSparseValues: 1997 entries, 7988 bytes +var idnaSparseValues = [1997]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x07}, + {value: 0xe105, lo: 0x80, hi: 0x96}, + {value: 0x0018, lo: 0x97, hi: 0x97}, + {value: 0xe105, lo: 0x98, hi: 0x9e}, + {value: 0x001f, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbf}, + // Block 0x1, offset 0x8 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0xe01d, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0335, lo: 0x83, hi: 0x83}, + {value: 0x034d, lo: 0x84, hi: 0x84}, + {value: 0x0365, lo: 0x85, hi: 0x85}, + {value: 0xe00d, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0xe00d, lo: 0x88, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x89}, + {value: 0xe00d, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe00d, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0x8d}, + {value: 0xe00d, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0xbf}, + // Block 0x2, offset 0x19 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x0249, lo: 0xb0, hi: 0xb0}, + {value: 0x037d, lo: 0xb1, hi: 0xb1}, + {value: 0x0259, lo: 0xb2, hi: 0xb2}, + {value: 0x0269, lo: 0xb3, hi: 0xb3}, + {value: 0x034d, lo: 0xb4, hi: 0xb4}, + {value: 0x0395, lo: 0xb5, hi: 0xb5}, + {value: 0xe1bd, lo: 0xb6, hi: 0xb6}, + {value: 0x0279, lo: 0xb7, hi: 0xb7}, + {value: 0x0289, lo: 0xb8, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbf}, + // Block 0x3, offset 0x25 + {value: 0x0000, lo: 0x01}, + {value: 0x3308, lo: 0x80, hi: 0xbf}, + // Block 0x4, offset 0x27 + {value: 0x0000, lo: 0x04}, + {value: 0x03f5, lo: 0x80, hi: 0x8f}, + {value: 0xe105, lo: 0x90, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x5, offset 0x2c + {value: 0x0000, lo: 0x06}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x0545, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x0008, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x6, offset 0x33 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0401, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0018, lo: 0x89, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x7, offset 0x3e + {value: 0x0000, lo: 0x0b}, + {value: 0x0818, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x82}, + {value: 0x0818, lo: 0x83, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x85}, + {value: 0x0818, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xae}, + {value: 0x0808, lo: 0xaf, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x8, offset 0x4a + {value: 0x0000, lo: 0x03}, + {value: 0x0a08, lo: 0x80, hi: 0x87}, + {value: 0x0c08, lo: 0x88, hi: 0x99}, + {value: 0x0a08, lo: 0x9a, hi: 0xbf}, + // Block 0x9, offset 0x4e + {value: 0x0000, lo: 0x0e}, + {value: 0x3308, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0c08, lo: 0x8d, hi: 0x8d}, + {value: 0x0a08, lo: 0x8e, hi: 0x98}, + {value: 0x0c08, lo: 0x99, hi: 0x9b}, + {value: 0x0a08, lo: 0x9c, hi: 0xaa}, + {value: 0x0c08, lo: 0xab, hi: 0xac}, + {value: 0x0a08, lo: 0xad, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb1}, + {value: 0x0a08, lo: 0xb2, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb4}, + {value: 0x0a08, lo: 0xb5, hi: 0xb7}, + {value: 0x0c08, lo: 0xb8, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbf}, + // Block 0xa, offset 0x5d + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xb0}, + {value: 0x0808, lo: 0xb1, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xb, offset 0x62 + {value: 0x0000, lo: 0x09}, + {value: 0x0808, lo: 0x80, hi: 0x89}, + {value: 0x0a08, lo: 0x8a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbf}, + // Block 0xc, offset 0x6c + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x99}, + {value: 0x0808, lo: 0x9a, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa3}, + {value: 0x0808, lo: 0xa4, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa7}, + {value: 0x0808, lo: 0xa8, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0818, lo: 0xb0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xd, offset 0x78 + {value: 0x0000, lo: 0x0d}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0a08, lo: 0xa0, hi: 0xa9}, + {value: 0x0c08, lo: 0xaa, hi: 0xac}, + {value: 0x0808, lo: 0xad, hi: 0xad}, + {value: 0x0c08, lo: 0xae, hi: 0xae}, + {value: 0x0a08, lo: 0xaf, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb2}, + {value: 0x0a08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0a08, lo: 0xb6, hi: 0xb8}, + {value: 0x0c08, lo: 0xb9, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0xe, offset 0x86 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x92}, + {value: 0x3308, lo: 0x93, hi: 0xa1}, + {value: 0x0840, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xbf}, + // Block 0xf, offset 0x8b + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x10, offset 0x94 + {value: 0x0000, lo: 0x0f}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x85}, + {value: 0x3008, lo: 0x86, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8c}, + {value: 0x3b08, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x11, offset 0xa4 + {value: 0x0000, lo: 0x0d}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x12, offset 0xb2 + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xba}, + {value: 0x3b08, lo: 0xbb, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x13, offset 0xbe + {value: 0x0000, lo: 0x0b}, + {value: 0x0040, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x14, offset 0xca + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x89}, + {value: 0x3b08, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x3008, lo: 0x98, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x15, offset 0xdb + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb2}, + {value: 0x08f1, lo: 0xb3, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb9}, + {value: 0x3b08, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0x16, offset 0xe5 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x8e}, + {value: 0x0018, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0xbf}, + // Block 0x17, offset 0xec + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0961, lo: 0x9c, hi: 0x9c}, + {value: 0x0999, lo: 0x9d, hi: 0x9d}, + {value: 0x0008, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x18, offset 0xf9 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe03d, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x19, offset 0x10a + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0x1a, offset 0x111 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0x11c + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xa1}, + {value: 0x3008, lo: 0xa2, hi: 0xa4}, + {value: 0x0008, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xbf}, + // Block 0x1c, offset 0x12b + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x8c}, + {value: 0x3308, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x3008, lo: 0x9a, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x1d, offset 0x139 + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x86}, + {value: 0x055d, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8c}, + {value: 0x055d, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0xe105, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0x1e, offset 0x143 + {value: 0x0000, lo: 0x01}, + {value: 0x0018, lo: 0x80, hi: 0xbf}, + // Block 0x1f, offset 0x145 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa0}, + {value: 0x2018, lo: 0xa1, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x20, offset 0x14a + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa7}, + {value: 0x2018, lo: 0xa8, hi: 0xbf}, + // Block 0x21, offset 0x14d + {value: 0x0000, lo: 0x02}, + {value: 0x2018, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0xbf}, + // Block 0x22, offset 0x150 + {value: 0x0000, lo: 0x01}, + {value: 0x0008, lo: 0x80, hi: 0xbf}, + // Block 0x23, offset 0x152 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x24, offset 0x15e + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x25, offset 0x169 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x26, offset 0x171 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x27, offset 0x177 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x28, offset 0x17d + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x29, offset 0x182 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x2a, offset 0x187 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x2b, offset 0x18a + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xbf}, + // Block 0x2c, offset 0x18e + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x2d, offset 0x194 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x2e, offset 0x199 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x3b08, lo: 0x94, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x2f, offset 0x1a5 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x30, offset 0x1af + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xb3}, + {value: 0x3340, lo: 0xb4, hi: 0xb5}, + {value: 0x3008, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x31, offset 0x1b5 + {value: 0x0000, lo: 0x10}, + {value: 0x3008, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x91}, + {value: 0x3b08, lo: 0x92, hi: 0x92}, + {value: 0x3308, lo: 0x93, hi: 0x93}, + {value: 0x0018, lo: 0x94, hi: 0x96}, + {value: 0x0008, lo: 0x97, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x32, offset 0x1c6 + {value: 0x0000, lo: 0x09}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x86}, + {value: 0x0218, lo: 0x87, hi: 0x87}, + {value: 0x0018, lo: 0x88, hi: 0x8a}, + {value: 0x33c0, lo: 0x8b, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0208, lo: 0xa0, hi: 0xbf}, + // Block 0x33, offset 0x1d0 + {value: 0x0000, lo: 0x02}, + {value: 0x0208, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x34, offset 0x1d3 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0208, lo: 0x87, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xa9}, + {value: 0x0208, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x35, offset 0x1db + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0x36, offset 0x1de + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x37, offset 0x1eb + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x38, offset 0x1f3 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x39, offset 0x1f7 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0028, lo: 0x9a, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xbf}, + // Block 0x3a, offset 0x1fe + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x3308, lo: 0x97, hi: 0x98}, + {value: 0x3008, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x3b, offset 0x206 + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x94}, + {value: 0x3008, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3b08, lo: 0xa0, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xac}, + {value: 0x3008, lo: 0xad, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x216 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xbd}, + {value: 0x3318, lo: 0xbe, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x222 + {value: 0x0000, lo: 0x01}, + {value: 0x0040, lo: 0x80, hi: 0xbf}, + // Block 0x3e, offset 0x224 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3008, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbf}, + // Block 0x3f, offset 0x22e + {value: 0x0000, lo: 0x0b}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x3808, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x40, offset 0x23a + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3808, lo: 0xaa, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xbf}, + // Block 0x41, offset 0x246 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3008, lo: 0xaa, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3808, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbf}, + // Block 0x42, offset 0x252 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x3008, lo: 0xa4, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbf}, + // Block 0x43, offset 0x25a + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x44, offset 0x25f + {value: 0x0000, lo: 0x09}, + {value: 0x0e29, lo: 0x80, hi: 0x80}, + {value: 0x0e41, lo: 0x81, hi: 0x81}, + {value: 0x0e59, lo: 0x82, hi: 0x82}, + {value: 0x0e71, lo: 0x83, hi: 0x83}, + {value: 0x0e89, lo: 0x84, hi: 0x85}, + {value: 0x0ea1, lo: 0x86, hi: 0x86}, + {value: 0x0eb9, lo: 0x87, hi: 0x87}, + {value: 0x057d, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0x45, offset 0x269 + {value: 0x0000, lo: 0x10}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x92}, + {value: 0x0018, lo: 0x93, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa8}, + {value: 0x0008, lo: 0xa9, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x46, offset 0x27a + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0x47, offset 0x27e + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x87}, + {value: 0xe045, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0xe045, lo: 0x98, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0xe045, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbf}, + // Block 0x48, offset 0x289 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x3318, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbf}, + // Block 0x49, offset 0x28d + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x24c1, lo: 0x89, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x4a, offset 0x296 + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x24f1, lo: 0xac, hi: 0xac}, + {value: 0x2529, lo: 0xad, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xae}, + {value: 0x2579, lo: 0xaf, hi: 0xaf}, + {value: 0x25b1, lo: 0xb0, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0x4b, offset 0x29e + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x9f}, + {value: 0x0080, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xad}, + {value: 0x0080, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x4c, offset 0x2a4 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xa8}, + {value: 0x09c5, lo: 0xa9, hi: 0xa9}, + {value: 0x09e5, lo: 0xaa, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xbf}, + // Block 0x4d, offset 0x2a9 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xbf}, + // Block 0x4e, offset 0x2ac + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x28c1, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x4f, offset 0x2b0 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0e66, lo: 0xb4, hi: 0xb4}, + {value: 0x292a, lo: 0xb5, hi: 0xb5}, + {value: 0x0e86, lo: 0xb6, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x50, offset 0x2b6 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x9b}, + {value: 0x2941, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0xbf}, + // Block 0x51, offset 0x2ba + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x52, offset 0x2be + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0xbf}, + // Block 0x53, offset 0x2c2 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x54, offset 0x2c7 + {value: 0x0000, lo: 0x05}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x03f5, lo: 0x90, hi: 0x9f}, + {value: 0x0ea5, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x55, offset 0x2cd + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x56, offset 0x2d5 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xae}, + {value: 0xe075, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0x57, offset 0x2dc + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x58, offset 0x2e7 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xbf}, + // Block 0x59, offset 0x2f1 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x5a, offset 0x2f5 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0xbf}, + // Block 0x5b, offset 0x2f8 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9e}, + {value: 0x0edd, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x5c, offset 0x2fe + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb2}, + {value: 0x0efd, lo: 0xb3, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x5d, offset 0x302 + {value: 0x0020, lo: 0x01}, + {value: 0x0f1d, lo: 0x80, hi: 0xbf}, + // Block 0x5e, offset 0x304 + {value: 0x0020, lo: 0x02}, + {value: 0x171d, lo: 0x80, hi: 0x8f}, + {value: 0x18fd, lo: 0x90, hi: 0xbf}, + // Block 0x5f, offset 0x307 + {value: 0x0020, lo: 0x01}, + {value: 0x1efd, lo: 0x80, hi: 0xbf}, + // Block 0x60, offset 0x309 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x61, offset 0x30c + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9a}, + {value: 0x29e2, lo: 0x9b, hi: 0x9b}, + {value: 0x2a0a, lo: 0x9c, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9e}, + {value: 0x2a31, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xbf}, + // Block 0x62, offset 0x316 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbe}, + {value: 0x2a69, lo: 0xbf, hi: 0xbf}, + // Block 0x63, offset 0x319 + {value: 0x0000, lo: 0x0e}, + {value: 0x0040, lo: 0x80, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb0}, + {value: 0x2a1d, lo: 0xb1, hi: 0xb1}, + {value: 0x2a3d, lo: 0xb2, hi: 0xb2}, + {value: 0x2a5d, lo: 0xb3, hi: 0xb3}, + {value: 0x2a7d, lo: 0xb4, hi: 0xb4}, + {value: 0x2a5d, lo: 0xb5, hi: 0xb5}, + {value: 0x2a9d, lo: 0xb6, hi: 0xb6}, + {value: 0x2abd, lo: 0xb7, hi: 0xb7}, + {value: 0x2add, lo: 0xb8, hi: 0xb9}, + {value: 0x2afd, lo: 0xba, hi: 0xbb}, + {value: 0x2b1d, lo: 0xbc, hi: 0xbd}, + {value: 0x2afd, lo: 0xbe, hi: 0xbf}, + // Block 0x64, offset 0x328 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x65, offset 0x32c + {value: 0x0030, lo: 0x04}, + {value: 0x2aa2, lo: 0x80, hi: 0x9d}, + {value: 0x305a, lo: 0x9e, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x30a2, lo: 0xa0, hi: 0xbf}, + // Block 0x66, offset 0x331 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x67, offset 0x334 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x68, offset 0x338 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x69, offset 0x33d + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xbf}, + // Block 0x6a, offset 0x342 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb1}, + {value: 0x0018, lo: 0xb2, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6b, offset 0x348 + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0xb6}, + {value: 0x0008, lo: 0xb7, hi: 0xb7}, + {value: 0x2009, lo: 0xb8, hi: 0xb8}, + {value: 0x6e89, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xbf}, + // Block 0x6c, offset 0x34e + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x3308, lo: 0x8b, hi: 0x8b}, + {value: 0x0008, lo: 0x8c, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x6d, offset 0x35d + {value: 0x0000, lo: 0x05}, + {value: 0x0208, lo: 0x80, hi: 0xb1}, + {value: 0x0108, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6e, offset 0x363 + {value: 0x0000, lo: 0x03}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xbf}, + // Block 0x6f, offset 0x367 + {value: 0x0000, lo: 0x0e}, + {value: 0x3008, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xba}, + {value: 0x0008, lo: 0xbb, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x70, offset 0x376 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x71, offset 0x37b + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x91}, + {value: 0x3008, lo: 0x92, hi: 0x92}, + {value: 0x3808, lo: 0x93, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x72, offset 0x383 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb9}, + {value: 0x3008, lo: 0xba, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbf}, + // Block 0x73, offset 0x38d + {value: 0x0000, lo: 0x0a}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x74, offset 0x398 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x75, offset 0x3a0 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8c}, + {value: 0x3008, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbd}, + {value: 0x0008, lo: 0xbe, hi: 0xbf}, + // Block 0x76, offset 0x3b1 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x77, offset 0x3ba + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x9a}, + {value: 0x0008, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3b08, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x78, offset 0x3ca + {value: 0x0000, lo: 0x0c}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x90}, + {value: 0x0008, lo: 0x91, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x79, offset 0x3d7 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x4465, lo: 0x9c, hi: 0x9c}, + {value: 0x447d, lo: 0x9d, hi: 0x9d}, + {value: 0x2971, lo: 0x9e, hi: 0x9e}, + {value: 0xe06d, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xaf}, + {value: 0x4495, lo: 0xb0, hi: 0xbf}, + // Block 0x7a, offset 0x3e1 + {value: 0x0000, lo: 0x04}, + {value: 0x44b5, lo: 0x80, hi: 0x8f}, + {value: 0x44d5, lo: 0x90, hi: 0x9f}, + {value: 0x44f5, lo: 0xa0, hi: 0xaf}, + {value: 0x44d5, lo: 0xb0, hi: 0xbf}, + // Block 0x7b, offset 0x3e6 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3b08, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x7c, offset 0x3f3 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x7d, offset 0x3f7 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x7e, offset 0x3fc + {value: 0x0020, lo: 0x01}, + {value: 0x4515, lo: 0x80, hi: 0xbf}, + // Block 0x7f, offset 0x3fe + {value: 0x0020, lo: 0x03}, + {value: 0x4d15, lo: 0x80, hi: 0x94}, + {value: 0x4ad5, lo: 0x95, hi: 0x95}, + {value: 0x4fb5, lo: 0x96, hi: 0xbf}, + // Block 0x80, offset 0x402 + {value: 0x0020, lo: 0x01}, + {value: 0x54f5, lo: 0x80, hi: 0xbf}, + // Block 0x81, offset 0x404 + {value: 0x0020, lo: 0x03}, + {value: 0x5cf5, lo: 0x80, hi: 0x84}, + {value: 0x5655, lo: 0x85, hi: 0x85}, + {value: 0x5d95, lo: 0x86, hi: 0xbf}, + // Block 0x82, offset 0x408 + {value: 0x0020, lo: 0x08}, + {value: 0x6b55, lo: 0x80, hi: 0x8f}, + {value: 0x6d15, lo: 0x90, hi: 0x90}, + {value: 0x6d55, lo: 0x91, hi: 0xab}, + {value: 0x6ea1, lo: 0xac, hi: 0xac}, + {value: 0x70b5, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x70d5, lo: 0xb0, hi: 0xbf}, + // Block 0x83, offset 0x411 + {value: 0x0020, lo: 0x05}, + {value: 0x72d5, lo: 0x80, hi: 0xad}, + {value: 0x6535, lo: 0xae, hi: 0xae}, + {value: 0x7895, lo: 0xaf, hi: 0xb5}, + {value: 0x6f55, lo: 0xb6, hi: 0xb6}, + {value: 0x7975, lo: 0xb7, hi: 0xbf}, + // Block 0x84, offset 0x417 + {value: 0x0028, lo: 0x03}, + {value: 0x7c21, lo: 0x80, hi: 0x82}, + {value: 0x7be1, lo: 0x83, hi: 0x83}, + {value: 0x7c99, lo: 0x84, hi: 0xbf}, + // Block 0x85, offset 0x41b + {value: 0x0038, lo: 0x0f}, + {value: 0x9db1, lo: 0x80, hi: 0x83}, + {value: 0x9e59, lo: 0x84, hi: 0x85}, + {value: 0x9e91, lo: 0x86, hi: 0x87}, + {value: 0x9ec9, lo: 0x88, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0xa089, lo: 0x92, hi: 0x97}, + {value: 0xa1a1, lo: 0x98, hi: 0x9c}, + {value: 0xa281, lo: 0x9d, hi: 0xb3}, + {value: 0x9d41, lo: 0xb4, hi: 0xb4}, + {value: 0x9db1, lo: 0xb5, hi: 0xb5}, + {value: 0xa789, lo: 0xb6, hi: 0xbb}, + {value: 0xa869, lo: 0xbc, hi: 0xbc}, + {value: 0xa7f9, lo: 0xbd, hi: 0xbd}, + {value: 0xa8d9, lo: 0xbe, hi: 0xbf}, + // Block 0x86, offset 0x42b + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x0008, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x87, offset 0x435 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0x88, offset 0x43a + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x89, offset 0x43d + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x8a, offset 0x443 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x8b, offset 0x44a + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x8c, offset 0x44f + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x8d, offset 0x453 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x8e, offset 0x459 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xbf}, + // Block 0x8f, offset 0x45e + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x90, offset 0x467 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x91, offset 0x46c + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0x92, offset 0x472 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x97}, + {value: 0x8ad5, lo: 0x98, hi: 0x9f}, + {value: 0x8aed, lo: 0xa0, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xbf}, + // Block 0x93, offset 0x479 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x8aed, lo: 0xb0, hi: 0xb7}, + {value: 0x8ad5, lo: 0xb8, hi: 0xbf}, + // Block 0x94, offset 0x480 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x95, offset 0x487 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x96, offset 0x48b + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xae}, + {value: 0x0018, lo: 0xaf, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x97, offset 0x490 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x98, offset 0x493 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xbf}, + // Block 0x99, offset 0x498 + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0808, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0808, lo: 0x8a, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb6}, + {value: 0x0808, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbb}, + {value: 0x0808, lo: 0xbc, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x0808, lo: 0xbf, hi: 0xbf}, + // Block 0x9a, offset 0x4a4 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x96}, + {value: 0x0818, lo: 0x97, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb6}, + {value: 0x0818, lo: 0xb7, hi: 0xbf}, + // Block 0x9b, offset 0x4aa + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa6}, + {value: 0x0818, lo: 0xa7, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x9c, offset 0x4af + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xba}, + {value: 0x0818, lo: 0xbb, hi: 0xbf}, + // Block 0x9d, offset 0x4b6 + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0818, lo: 0x96, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbe}, + {value: 0x0818, lo: 0xbf, hi: 0xbf}, + // Block 0x9e, offset 0x4be + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbb}, + {value: 0x0818, lo: 0xbc, hi: 0xbd}, + {value: 0x0808, lo: 0xbe, hi: 0xbf}, + // Block 0x9f, offset 0x4c3 + {value: 0x0000, lo: 0x03}, + {value: 0x0818, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x0818, lo: 0x92, hi: 0xbf}, + // Block 0xa0, offset 0x4c7 + {value: 0x0000, lo: 0x0f}, + {value: 0x0808, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x94}, + {value: 0x0808, lo: 0x95, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x98}, + {value: 0x0808, lo: 0x99, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xa1, offset 0x4d7 + {value: 0x0000, lo: 0x06}, + {value: 0x0818, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0818, lo: 0x90, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xbc}, + {value: 0x0818, lo: 0xbd, hi: 0xbf}, + // Block 0xa2, offset 0x4de + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xa3, offset 0x4e2 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb8}, + {value: 0x0018, lo: 0xb9, hi: 0xbf}, + // Block 0xa4, offset 0x4e6 + {value: 0x0000, lo: 0x06}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0818, lo: 0x98, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb7}, + {value: 0x0818, lo: 0xb8, hi: 0xbf}, + // Block 0xa5, offset 0x4ed + {value: 0x0000, lo: 0x01}, + {value: 0x0808, lo: 0x80, hi: 0xbf}, + // Block 0xa6, offset 0x4ef + {value: 0x0000, lo: 0x02}, + {value: 0x0808, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0xa7, offset 0x4f2 + {value: 0x0000, lo: 0x02}, + {value: 0x03dd, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xa8, offset 0x4f5 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xbf}, + // Block 0xa9, offset 0x4f9 + {value: 0x0000, lo: 0x08}, + {value: 0x0908, lo: 0x80, hi: 0x80}, + {value: 0x0a08, lo: 0x81, hi: 0xa1}, + {value: 0x0c08, lo: 0xa2, hi: 0xa2}, + {value: 0x0a08, lo: 0xa3, hi: 0xa3}, + {value: 0x3308, lo: 0xa4, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0808, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xaa, offset 0x502 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0818, lo: 0xa0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xab, offset 0x506 + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0xa6}, + {value: 0x0808, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0a08, lo: 0xb0, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb3}, + {value: 0x0a08, lo: 0xb4, hi: 0xbf}, + // Block 0xac, offset 0x50e + {value: 0x0000, lo: 0x07}, + {value: 0x0a08, lo: 0x80, hi: 0x84}, + {value: 0x0808, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x90}, + {value: 0x0a18, lo: 0x91, hi: 0x93}, + {value: 0x0c18, lo: 0x94, hi: 0x94}, + {value: 0x0818, lo: 0x95, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xad, offset 0x516 + {value: 0x0000, lo: 0x05}, + {value: 0x3008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xae, offset 0x51c + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x91}, + {value: 0x0018, lo: 0x92, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xaf, offset 0x525 + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0xb0, offset 0x531 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xb1, offset 0x538 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb2}, + {value: 0x3b08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xbf}, + // Block 0xb2, offset 0x541 + {value: 0x0000, lo: 0x09}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xb3, offset 0x54b + {value: 0x0000, lo: 0x06}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xbe}, + {value: 0x3008, lo: 0xbf, hi: 0xbf}, + // Block 0xb4, offset 0x552 + {value: 0x0000, lo: 0x0d}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xb5, offset 0x560 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3808, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xb6, offset 0x56d + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xb7, offset 0x57a + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x3308, lo: 0x9f, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa9}, + {value: 0x3b08, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xb8, offset 0x583 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xb9, offset 0x587 + {value: 0x0000, lo: 0x0e}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xbf}, + // Block 0xba, offset 0x596 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xbb, offset 0x59e + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x85}, + {value: 0x0018, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xbc, offset 0x5a9 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xbd, offset 0x5b2 + {value: 0x0000, lo: 0x05}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9b}, + {value: 0x3308, lo: 0x9c, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0xbe, offset 0x5b8 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xbf, offset 0x5c0 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xc0, offset 0x5c9 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb5}, + {value: 0x3808, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0xc1, offset 0x5d3 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0xbf}, + // Block 0xc2, offset 0x5d6 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbf}, + // Block 0xc3, offset 0x5e2 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0xc4, offset 0x5eb + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xbf}, + // Block 0xc5, offset 0x5ee + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0xc6, offset 0x5f3 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xc7, offset 0x5fe + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x3b08, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0xbf}, + // Block 0xc8, offset 0x607 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x89}, + {value: 0x3308, lo: 0x8a, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x98}, + {value: 0x3b08, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xa2}, + {value: 0x0040, lo: 0xa3, hi: 0xbf}, + // Block 0xc9, offset 0x613 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xca, offset 0x616 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xcb, offset 0x620 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xbf}, + // Block 0xcc, offset 0x629 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xa9}, + {value: 0x3308, lo: 0xaa, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xcd, offset 0x635 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xce, offset 0x642 + {value: 0x0000, lo: 0x0c}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xbf}, + // Block 0xcf, offset 0x64f + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x3008, lo: 0x93, hi: 0x94}, + {value: 0x3308, lo: 0x95, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x96}, + {value: 0x3b08, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xbf}, + // Block 0xd0, offset 0x65d + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xd1, offset 0x664 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xd2, offset 0x667 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xd3, offset 0x66c + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0xbf}, + // Block 0xd4, offset 0x66f + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xbf}, + // Block 0xd5, offset 0x672 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0xbf}, + // Block 0xd6, offset 0x675 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xd7, offset 0x67c + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xd8, offset 0x683 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0xd9, offset 0x687 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0xda, offset 0x692 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0xdb, offset 0x695 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0xdc, offset 0x698 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0xdd, offset 0x69b + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3008, lo: 0x91, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xde, offset 0x6a1 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xdf, offset 0x6a6 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xbf}, + // Block 0xe0, offset 0x6aa + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xe1, offset 0x6ad + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xe2, offset 0x6b0 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xbf}, + // Block 0xe3, offset 0x6b3 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xe4, offset 0x6b6 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0xe5, offset 0x6b9 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0xe6, offset 0x6be + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x03c0, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xbf}, + // Block 0xe7, offset 0x6c8 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xe8, offset 0x6cb + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xbf}, + // Block 0xe9, offset 0x6cf + {value: 0x0000, lo: 0x0e}, + {value: 0x0018, lo: 0x80, hi: 0x9d}, + {value: 0xb5b9, lo: 0x9e, hi: 0x9e}, + {value: 0xb601, lo: 0x9f, hi: 0x9f}, + {value: 0xb649, lo: 0xa0, hi: 0xa0}, + {value: 0xb6b1, lo: 0xa1, hi: 0xa1}, + {value: 0xb719, lo: 0xa2, hi: 0xa2}, + {value: 0xb781, lo: 0xa3, hi: 0xa3}, + {value: 0xb7e9, lo: 0xa4, hi: 0xa4}, + {value: 0x3018, lo: 0xa5, hi: 0xa6}, + {value: 0x3318, lo: 0xa7, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xac}, + {value: 0x3018, lo: 0xad, hi: 0xb2}, + {value: 0x0340, lo: 0xb3, hi: 0xba}, + {value: 0x3318, lo: 0xbb, hi: 0xbf}, + // Block 0xea, offset 0x6de + {value: 0x0000, lo: 0x0b}, + {value: 0x3318, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0x84}, + {value: 0x3318, lo: 0x85, hi: 0x8b}, + {value: 0x0018, lo: 0x8c, hi: 0xa9}, + {value: 0x3318, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xba}, + {value: 0xb851, lo: 0xbb, hi: 0xbb}, + {value: 0xb899, lo: 0xbc, hi: 0xbc}, + {value: 0xb8e1, lo: 0xbd, hi: 0xbd}, + {value: 0xb949, lo: 0xbe, hi: 0xbe}, + {value: 0xb9b1, lo: 0xbf, hi: 0xbf}, + // Block 0xeb, offset 0x6ea + {value: 0x0000, lo: 0x03}, + {value: 0xba19, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xbf}, + // Block 0xec, offset 0x6ee + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x3318, lo: 0x82, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0xbf}, + // Block 0xed, offset 0x6f3 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0xee, offset 0x6f7 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xef, offset 0x6fc + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0xf0, offset 0x700 + {value: 0x0000, lo: 0x04}, + {value: 0x3308, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0xf1, offset 0x705 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x3308, lo: 0xa1, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xf2, offset 0x70e + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xbf}, + // Block 0xf3, offset 0x719 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x86}, + {value: 0x0818, lo: 0x87, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0xf4, offset 0x71f + {value: 0x0000, lo: 0x07}, + {value: 0x0a08, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0818, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xf5, offset 0x727 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xb0}, + {value: 0x0818, lo: 0xb1, hi: 0xbf}, + // Block 0xf6, offset 0x72a + {value: 0x0000, lo: 0x02}, + {value: 0x0818, lo: 0x80, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xf7, offset 0x72d + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xf8, offset 0x731 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0xf9, offset 0x735 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0xfa, offset 0x73b + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xfb, offset 0x741 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x8f}, + {value: 0xc1c1, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xfc, offset 0x746 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xbf}, + // Block 0xfd, offset 0x749 + {value: 0x0000, lo: 0x0f}, + {value: 0xc7e9, lo: 0x80, hi: 0x80}, + {value: 0xc839, lo: 0x81, hi: 0x81}, + {value: 0xc889, lo: 0x82, hi: 0x82}, + {value: 0xc8d9, lo: 0x83, hi: 0x83}, + {value: 0xc929, lo: 0x84, hi: 0x84}, + {value: 0xc979, lo: 0x85, hi: 0x85}, + {value: 0xc9c9, lo: 0x86, hi: 0x86}, + {value: 0xca19, lo: 0x87, hi: 0x87}, + {value: 0xca69, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0xcab9, lo: 0x90, hi: 0x90}, + {value: 0xcad9, lo: 0x91, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xbf}, + // Block 0xfe, offset 0x759 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xff, offset 0x760 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x100, offset 0x763 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0xbf}, + // Block 0x101, offset 0x766 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x102, offset 0x76a + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x103, offset 0x770 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xbf}, + // Block 0x104, offset 0x775 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x105, offset 0x77a + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb2}, + {value: 0x0018, lo: 0xb3, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbf}, + // Block 0x106, offset 0x782 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xa2}, + {value: 0x0040, lo: 0xa3, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x107, offset 0x787 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x108, offset 0x78b + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xbf}, + // Block 0x109, offset 0x78f + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0x10a, offset 0x792 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x10b, offset 0x795 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x10c, offset 0x799 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x10d, offset 0x79d + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x10e, offset 0x7a0 + {value: 0x0020, lo: 0x0f}, + {value: 0xdeb9, lo: 0x80, hi: 0x89}, + {value: 0x8dfd, lo: 0x8a, hi: 0x8a}, + {value: 0xdff9, lo: 0x8b, hi: 0x9c}, + {value: 0x8e1d, lo: 0x9d, hi: 0x9d}, + {value: 0xe239, lo: 0x9e, hi: 0xa2}, + {value: 0x8e3d, lo: 0xa3, hi: 0xa3}, + {value: 0xe2d9, lo: 0xa4, hi: 0xab}, + {value: 0x7ed5, lo: 0xac, hi: 0xac}, + {value: 0xe3d9, lo: 0xad, hi: 0xaf}, + {value: 0x8e5d, lo: 0xb0, hi: 0xb0}, + {value: 0xe439, lo: 0xb1, hi: 0xb6}, + {value: 0x8e7d, lo: 0xb7, hi: 0xb9}, + {value: 0xe4f9, lo: 0xba, hi: 0xba}, + {value: 0x8edd, lo: 0xbb, hi: 0xbb}, + {value: 0xe519, lo: 0xbc, hi: 0xbf}, + // Block 0x10f, offset 0x7b0 + {value: 0x0020, lo: 0x10}, + {value: 0x937d, lo: 0x80, hi: 0x80}, + {value: 0xf099, lo: 0x81, hi: 0x86}, + {value: 0x939d, lo: 0x87, hi: 0x8a}, + {value: 0xd9f9, lo: 0x8b, hi: 0x8b}, + {value: 0xf159, lo: 0x8c, hi: 0x96}, + {value: 0x941d, lo: 0x97, hi: 0x97}, + {value: 0xf2b9, lo: 0x98, hi: 0xa3}, + {value: 0x943d, lo: 0xa4, hi: 0xa6}, + {value: 0xf439, lo: 0xa7, hi: 0xaa}, + {value: 0x949d, lo: 0xab, hi: 0xab}, + {value: 0xf4b9, lo: 0xac, hi: 0xac}, + {value: 0x94bd, lo: 0xad, hi: 0xad}, + {value: 0xf4d9, lo: 0xae, hi: 0xaf}, + {value: 0x94dd, lo: 0xb0, hi: 0xb1}, + {value: 0xf519, lo: 0xb2, hi: 0xbe}, + {value: 0x2040, lo: 0xbf, hi: 0xbf}, + // Block 0x110, offset 0x7c1 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0340, lo: 0x81, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x9f}, + {value: 0x0340, lo: 0xa0, hi: 0xbf}, + // Block 0x111, offset 0x7c6 + {value: 0x0000, lo: 0x01}, + {value: 0x0340, lo: 0x80, hi: 0xbf}, + // Block 0x112, offset 0x7c8 + {value: 0x0000, lo: 0x01}, + {value: 0x33c0, lo: 0x80, hi: 0xbf}, + // Block 0x113, offset 0x7ca + {value: 0x0000, lo: 0x02}, + {value: 0x33c0, lo: 0x80, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, +} + +// Total table size 42466 bytes (41KiB); checksum: 355A58A4 diff --git a/vendor/golang.org/x/net/idna/tables12.0.0.go b/vendor/golang.org/x/net/idna/tables12.0.0.go new file mode 100644 index 0000000..ab40f7b --- /dev/null +++ b/vendor/golang.org/x/net/idna/tables12.0.0.go @@ -0,0 +1,4734 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.14 && !go1.16 +// +build go1.14,!go1.16 + +package idna + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "12.0.0" + +var mappings string = "" + // Size: 8178 bytes + "\x00\x01 \x03 ̈\x01a\x03 Ì„\x012\x013\x03 Ì\x03 ̧\x011\x01o\x051â„4\x051â„2" + + "\x053â„4\x03i̇\x03l·\x03ʼn\x01s\x03dž\x03â±¥\x03ⱦ\x01h\x01j\x01r\x01w\x01y" + + "\x03 ̆\x03 ̇\x03 ÌŠ\x03 ̨\x03 ̃\x03 Ì‹\x01l\x01x\x04̈Ì\x03 ι\x01;\x05 ̈Ì" + + "\x04Õ¥Ö‚\x04اٴ\x04وٴ\x04Û‡Ù´\x04يٴ\x06क़\x06ख़\x06ग़\x06ज़\x06ड़\x06ढ़\x06फ़" + + "\x06य़\x06ড়\x06ঢ়\x06য়\x06ਲ਼\x06ਸ਼\x06ਖ਼\x06ਗ਼\x06ਜ਼\x06ਫ਼\x06ଡ଼\x06ଢ଼" + + "\x06à¹à¸²\x06à»àº²\x06ຫນ\x06ຫມ\x06གྷ\x06ཌྷ\x06དྷ\x06བྷ\x06ཛྷ\x06ཀྵ\x06ཱི\x06ཱུ" + + "\x06ྲྀ\x09ྲཱྀ\x06ླྀ\x09ླཱྀ\x06ཱྀ\x06ྒྷ\x06ྜྷ\x06ྡྷ\x06ྦྷ\x06ྫྷ\x06à¾à¾µ\x02" + + "в\x02д\x02о\x02Ñ\x02Ñ‚\x02ÑŠ\x02Ñ£\x02æ\x01b\x01d\x01e\x02Ç\x01g\x01i\x01k" + + "\x01m\x01n\x02È£\x01p\x01t\x01u\x02É\x02É‘\x02É™\x02É›\x02Éœ\x02Å‹\x02É”\x02ɯ" + + "\x01v\x02β\x02γ\x02δ\x02φ\x02χ\x02Ï\x02н\x02É’\x01c\x02É•\x02ð\x01f\x02ÉŸ" + + "\x02É¡\x02É¥\x02ɨ\x02É©\x02ɪ\x02Ê\x02É­\x02ÊŸ\x02ɱ\x02É°\x02ɲ\x02ɳ\x02É´\x02ɵ" + + "\x02ɸ\x02Ê‚\x02ʃ\x02Æ«\x02ʉ\x02ÊŠ\x02Ê‹\x02ÊŒ\x01z\x02Ê\x02Ê‘\x02Ê’\x02θ\x02ss" + + "\x02ά\x02έ\x02ή\x02ί\x02ÏŒ\x02Ï\x02ÏŽ\x05ἀι\x05á¼Î¹\x05ἂι\x05ἃι\x05ἄι\x05ἅι" + + "\x05ἆι\x05ἇι\x05ἠι\x05ἡι\x05ἢι\x05ἣι\x05ἤι\x05ἥι\x05ἦι\x05ἧι\x05ὠι\x05ὡι" + + "\x05ὢι\x05ὣι\x05ὤι\x05ὥι\x05ὦι\x05ὧι\x05ὰι\x04αι\x04άι\x05ᾶι\x02ι\x05 ̈͂" + + "\x05ὴι\x04ηι\x04ήι\x05ῆι\x05 Ì“Ì€\x05 Ì“Ì\x05 Ì“Í‚\x02Î\x05 ̔̀\x05 Ì”Ì\x05 ̔͂" + + "\x02ΰ\x05 ̈̀\x01`\x05ὼι\x04ωι\x04ώι\x05ῶι\x06′′\x09′′′\x06‵‵\x09‵‵‵\x02!" + + "!\x02??\x02?!\x02!?\x0c′′′′\x010\x014\x015\x016\x017\x018\x019\x01+\x01=" + + "\x01(\x01)\x02rs\x02ħ\x02no\x01q\x02sm\x02tm\x02ω\x02Ã¥\x02×\x02ב\x02×’" + + "\x02ד\x02Ï€\x051â„7\x051â„9\x061â„10\x051â„3\x052â„3\x051â„5\x052â„5\x053â„5\x054" + + "â„5\x051â„6\x055â„6\x051â„8\x053â„8\x055â„8\x057â„8\x041â„\x02ii\x02iv\x02vi" + + "\x04viii\x02ix\x02xi\x050â„3\x06∫∫\x09∫∫∫\x06∮∮\x09∮∮∮\x0210\x0211\x0212" + + "\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)" + + "\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\x0c∫∫∫∫" + + "\x02==\x05â«Ì¸\x02É«\x02ɽ\x02È¿\x02É€\x01.\x04 ã‚™\x04 ã‚š\x06より\x06コト\x05(á„€)\x05" + + "(á„‚)\x05(ᄃ)\x05(á„…)\x05(ᄆ)\x05(ᄇ)\x05(ᄉ)\x05(á„‹)\x05(á„Œ)\x05(á„Ž)\x05(á„)\x05(á„" + + ")\x05(á„‘)\x05(á„’)\x05(ê°€)\x05(나)\x05(다)\x05(ë¼)\x05(마)\x05(ë°”)\x05(사)\x05(ì•„)" + + "\x05(ìž)\x05(ì°¨)\x05(ì¹´)\x05(타)\x05(파)\x05(하)\x05(주)\x08(오전)\x08(오후)\x05(一)" + + "\x05(二)\x05(三)\x05(å››)\x05(五)\x05(å…­)\x05(七)\x05(å…«)\x05(ä¹)\x05(å)\x05(月)" + + "\x05(ç«)\x05(æ°´)\x05(木)\x05(金)\x05(土)\x05(æ—¥)\x05(æ ª)\x05(有)\x05(社)\x05(å)" + + "\x05(特)\x05(財)\x05(ç¥)\x05(労)\x05(代)\x05(呼)\x05(å­¦)\x05(監)\x05(ä¼)\x05(資)" + + "\x05(å”)\x05(祭)\x05(休)\x05(自)\x05(至)\x0221\x0222\x0223\x0224\x0225\x0226" + + "\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06참고\x06주ì˜\x0236" + + "\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248" + + "\x0249\x0250\x041月\x042月\x043月\x044月\x045月\x046月\x047月\x048月\x049月\x0510" + + "月\x0511月\x0512月\x02hg\x02ev\x0cアパート\x0cアルファ\x0cアンペア\x09アール\x0cイニング\x09" + + "インãƒ\x09ウォン\x0fエスクード\x0cエーカー\x09オンス\x09オーム\x09カイリ\x0cカラット\x0cカロリー\x09ガロ" + + "ン\x09ガンマ\x06ギガ\x09ギニー\x0cキュリー\x0cギルダー\x06キロ\x0fキログラム\x12キロメートル\x0fキロワッ" + + "ト\x09グラム\x0fグラムトン\x0fクルゼイロ\x0cクローãƒ\x09ケース\x09コルナ\x09コーãƒ\x0cサイクル\x0fサンãƒ" + + "ーム\x0cシリング\x09センãƒ\x09セント\x09ダース\x06デシ\x06ドル\x06トン\x06ナノ\x09ノット\x09ãƒã‚¤ãƒ„" + + "\x0fパーセント\x09パーツ\x0cãƒãƒ¼ãƒ¬ãƒ«\x0fピアストル\x09ピクル\x06ピコ\x06ビル\x0fファラッド\x0cフィート" + + "\x0fブッシェル\x09フラン\x0fヘクタール\x06ペソ\x09ペニヒ\x09ヘルツ\x09ペンス\x09ページ\x09ベータ\x0cãƒã‚¤" + + "ント\x09ボルト\x06ホン\x09ãƒãƒ³ãƒ‰\x09ホール\x09ホーン\x0cマイクロ\x09マイル\x09マッãƒ\x09マルク\x0fマ" + + "ンション\x0cミクロン\x06ミリ\x0fミリãƒãƒ¼ãƒ«\x06メガ\x0cメガトン\x0cメートル\x09ヤード\x09ヤール\x09ユアン" + + "\x0cリットル\x06リラ\x09ルピー\x0cルーブル\x06レム\x0fレントゲン\x09ワット\x040点\x041点\x042点" + + "\x043点\x044点\x045点\x046点\x047点\x048点\x049点\x0510点\x0511点\x0512点\x0513点" + + "\x0514点\x0515点\x0516点\x0517点\x0518点\x0519点\x0520点\x0521点\x0522点\x0523点" + + "\x0524点\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06å¹³æˆ\x06昭和\x06大正\x06明治\x0cæ ª" + + "å¼ä¼šç¤¾\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02m" + + "g\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m" + + "3\x05m∕s\x06m∕s2\x07rad∕s\x08rad∕s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv" + + "\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c∕kg\x02db\x02gy\x02" + + "ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02" + + "wb\x05v∕m\x05a∕m\x041æ—¥\x042æ—¥\x043æ—¥\x044æ—¥\x045æ—¥\x046æ—¥\x047æ—¥\x048æ—¥\x049æ—¥" + + "\x0510æ—¥\x0511æ—¥\x0512æ—¥\x0513æ—¥\x0514æ—¥\x0515æ—¥\x0516æ—¥\x0517æ—¥\x0518æ—¥\x0519æ—¥" + + "\x0520æ—¥\x0521æ—¥\x0522æ—¥\x0523æ—¥\x0524æ—¥\x0525æ—¥\x0526æ—¥\x0527æ—¥\x0528æ—¥\x0529æ—¥" + + "\x0530æ—¥\x0531æ—¥\x02ÑŒ\x02ɦ\x02ɬ\x02Êž\x02ʇ\x02Å“\x04𤋮\x04𢡊\x04𢡄\x04ð£•\x04𥉉" + + "\x04ð¥³\x04𧻓\x02ff\x02fi\x02fl\x02st\x04Õ´Õ¶\x04Õ´Õ¥\x04Õ´Õ«\x04Õ¾Õ¶\x04Õ´Õ­\x04×™Ö´" + + "\x04ײַ\x02×¢\x02×”\x02×›\x02ל\x02×\x02ר\x02ת\x04ש×\x04שׂ\x06שּ×\x06שּׂ\x04×" + + "Ö·\x04×Ö¸\x04×Ö¼\x04בּ\x04×’Ö¼\x04דּ\x04×”Ö¼\x04וּ\x04×–Ö¼\x04טּ\x04×™Ö¼\x04ךּ\x04" + + "×›Ö¼\x04לּ\x04מּ\x04× Ö¼\x04סּ\x04×£Ö¼\x04פּ\x04צּ\x04קּ\x04רּ\x04שּ\x04תּ" + + "\x04וֹ\x04בֿ\x04×›Ö¿\x04פֿ\x04×ל\x02Ù±\x02Ù»\x02Ù¾\x02Ú€\x02Ùº\x02Ù¿\x02Ù¹\x02Ú¤" + + "\x02Ú¦\x02Ú„\x02Úƒ\x02Ú†\x02Ú‡\x02Ú\x02ÚŒ\x02ÚŽ\x02Úˆ\x02Ú˜\x02Ú‘\x02Ú©\x02Ú¯\x02Ú³" + + "\x02Ú±\x02Úº\x02Ú»\x02Û€\x02Û\x02Ú¾\x02Û’\x02Û“\x02Ú­\x02Û‡\x02Û†\x02Ûˆ\x02Û‹\x02Û…" + + "\x02Û‰\x02Û\x02Ù‰\x04ئا\x04ئە\x04ئو\x04ئۇ\x04ئۆ\x04ئۈ\x04ئÛ\x04ئى\x02ÛŒ\x04" + + "ئج\x04ئح\x04ئم\x04ئي\x04بج\x04بح\x04بخ\x04بم\x04بى\x04بي\x04تج\x04تح" + + "\x04تخ\x04تم\x04تى\x04تي\x04ثج\x04ثم\x04ثى\x04ثي\x04جح\x04جم\x04حج\x04حم" + + "\x04خج\x04خح\x04خم\x04سج\x04سح\x04سخ\x04سم\x04صح\x04صم\x04ضج\x04ضح\x04ضخ" + + "\x04ضم\x04طح\x04طم\x04ظم\x04عج\x04عم\x04غج\x04غم\x04Ùج\x04ÙØ­\x04ÙØ®\x04ÙÙ…" + + "\x04ÙÙ‰\x04ÙÙŠ\x04قح\x04قم\x04قى\x04قي\x04كا\x04كج\x04كح\x04كخ\x04كل\x04كم" + + "\x04كى\x04كي\x04لج\x04لح\x04لخ\x04لم\x04لى\x04لي\x04مج\x04مح\x04مخ\x04مم" + + "\x04مى\x04مي\x04نج\x04نح\x04نخ\x04نم\x04نى\x04ني\x04هج\x04هم\x04هى\x04هي" + + "\x04يج\x04يح\x04يخ\x04يم\x04يى\x04يي\x04ذٰ\x04رٰ\x04ىٰ\x05 ٌّ\x05 ÙÙ‘\x05" + + " ÙŽÙ‘\x05 ÙÙ‘\x05 ÙÙ‘\x05 ّٰ\x04ئر\x04ئز\x04ئن\x04بر\x04بز\x04بن\x04تر\x04تز" + + "\x04تن\x04ثر\x04ثز\x04ثن\x04ما\x04نر\x04نز\x04نن\x04ير\x04يز\x04ين\x04ئخ" + + "\x04ئه\x04به\x04ته\x04صخ\x04له\x04نه\x04هٰ\x04يه\x04ثه\x04سه\x04شم\x04شه" + + "\x06Ù€ÙŽÙ‘\x06Ù€ÙÙ‘\x06Ù€ÙÙ‘\x04طى\x04طي\x04عى\x04عي\x04غى\x04غي\x04سى\x04سي" + + "\x04شى\x04شي\x04حى\x04حي\x04جى\x04جي\x04خى\x04خي\x04صى\x04صي\x04ضى\x04ضي" + + "\x04شج\x04شح\x04شخ\x04شر\x04سر\x04صر\x04ضر\x04اً\x06تجم\x06تحج\x06تحم" + + "\x06تخم\x06تمج\x06تمح\x06تمخ\x06جمح\x06حمي\x06حمى\x06سحج\x06سجح\x06سجى" + + "\x06سمح\x06سمج\x06سمم\x06صحح\x06صمم\x06شحم\x06شجي\x06شمخ\x06شمم\x06ضحى" + + "\x06ضخم\x06طمح\x06طمم\x06طمي\x06عجم\x06عمم\x06عمى\x06غمم\x06غمي\x06غمى" + + "\x06Ùخم\x06قمح\x06قمم\x06لحم\x06لحي\x06لحى\x06لجج\x06لخم\x06لمح\x06محج" + + "\x06محم\x06محي\x06مجح\x06مجم\x06مخج\x06مخم\x06مجخ\x06همج\x06همم\x06نحم" + + "\x06نحى\x06نجم\x06نجى\x06نمي\x06نمى\x06يمم\x06بخي\x06تجي\x06تجى\x06تخي" + + "\x06تخى\x06تمي\x06تمى\x06جمي\x06جحى\x06جمى\x06سخى\x06صحي\x06شحي\x06ضحي" + + "\x06لجي\x06لمي\x06يحي\x06يجي\x06يمي\x06ممي\x06قمي\x06نحي\x06عمي\x06كمي" + + "\x06نجح\x06مخي\x06لجم\x06كمم\x06جحي\x06حجي\x06مجي\x06Ùمي\x06بحي\x06سخي" + + "\x06نجي\x06صلے\x06قلے\x08الله\x08اكبر\x08محمد\x08صلعم\x08رسول\x08عليه" + + "\x08وسلم\x06صلى!صلى الله عليه وسلم\x0fجل جلاله\x08ریال\x01,\x01:\x01!" + + "\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\\x01$" + + "\x01%\x01@\x04ـً\x04Ù€ÙŽ\x04Ù€Ù\x04Ù€Ù\x04ـّ\x04ـْ\x02Ø¡\x02Ø¢\x02Ø£\x02ؤ\x02Ø¥" + + "\x02ئ\x02ا\x02ب\x02Ø©\x02ت\x02Ø«\x02ج\x02Ø­\x02Ø®\x02د\x02Ø°\x02ر\x02ز\x02س" + + "\x02Ø´\x02ص\x02ض\x02Ø·\x02ظ\x02ع\x02غ\x02Ù\x02Ù‚\x02Ùƒ\x02Ù„\x02Ù…\x02Ù†\x02Ù‡" + + "\x02Ùˆ\x02ÙŠ\x04لآ\x04لأ\x04لإ\x04لا\x01\x22\x01'\x01/\x01^\x01|\x01~\x02¢" + + "\x02£\x02¬\x02¦\x02Â¥\x08ð…—ð…¥\x08ð…˜ð…¥\x0cð…˜ð…¥ð…®\x0cð…˜ð…¥ð…¯\x0cð…˜ð…¥ð…°\x0cð…˜ð…¥ð…±\x0cð…˜ð…¥ð…²\x08ð†¹" + + "ð…¥\x08ð†ºð…¥\x0cð†¹ð…¥ð…®\x0cð†ºð…¥ð…®\x0cð†¹ð…¥ð…¯\x0cð†ºð…¥ð…¯\x02ı\x02È·\x02α\x02ε\x02ζ\x02η\x02" + + "κ\x02λ\x02μ\x02ν\x02ξ\x02ο\x02σ\x02Ï„\x02Ï…\x02ψ\x03∇\x03∂\x02Ï\x02Ù®\x02Ú¡" + + "\x02Ù¯\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029,\x03(a)" + + "\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)\x03(k)" + + "\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)\x03(u)" + + "\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07〔s〕\x02wz\x02hv\x02sd\x03ppv\x02w" + + "c\x02mc\x02md\x02mr\x02dj\x06ã»ã‹\x06ココ\x03サ\x03手\x03å­—\x03åŒ\x03デ\x03二\x03多" + + "\x03解\x03天\x03交\x03映\x03ç„¡\x03æ–™\x03å‰\x03後\x03å†\x03æ–°\x03åˆ\x03終\x03生\x03販" + + "\x03声\x03å¹\x03æ¼”\x03投\x03æ•\x03一\x03三\x03éŠ\x03å·¦\x03中\x03å³\x03指\x03èµ°\x03打" + + "\x03ç¦\x03空\x03åˆ\x03満\x03有\x03月\x03申\x03割\x03å–¶\x03é…\x09〔本〕\x09〔三〕\x09〔二〕" + + "\x09〔安〕\x09〔点〕\x09〔打〕\x09〔盗〕\x09〔å‹ã€•\x09〔敗〕\x03å¾—\x03å¯\x03丽\x03丸\x03ä¹\x03ä½ " + + "\x03ä¾®\x03ä¾»\x03倂\x03åº\x03å‚™\x03僧\x03åƒ\x03ã’ž\x03å…\x03å…”\x03å…¤\x03å…·\x03ã’¹\x03å…§" + + "\x03冗\x03冤\x03仌\x03冬\x03况\x03凵\x03刃\x03ã“Ÿ\x03刻\x03剆\x03剷\x03㔕\x03勇\x03勉" + + "\x03勤\x03勺\x03包\x03匆\x03北\x03å‰\x03å‘\x03åš\x03å³\x03å½\x03å¿\x03ç°\x03åŠ\x03åŸ" + + "\x03å«\x03å±\x03å†\x03å’ž\x03å¸\x03呈\x03周\x03å’¢\x03哶\x03å”\x03å•“\x03å•£\x03å–„\x03å–™" + + "\x03å–«\x03å–³\x03å—‚\x03圖\x03嘆\x03圗\x03噑\x03å™´\x03切\x03壮\x03城\x03埴\x03å \x03åž‹" + + "\x03å ²\x03å ±\x03墬\x03売\x03壷\x03夆\x03夢\x03奢\x03姬\x03娛\x03娧\x03姘\x03婦\x03ã›®" + + "\x03嬈\x03嬾\x03寃\x03寘\x03寧\x03寳\x03寿\x03å°†\x03å°¢\x03ãž\x03å± \x03å±®\x03å³€\x03å²" + + "\x03嵃\x03åµ®\x03嵫\x03åµ¼\x03å·¡\x03å·¢\x03ã ¯\x03å·½\x03帨\x03帽\x03幩\x03ã¡¢\x03㡼\x03庰" + + "\x03庳\x03庶\x03廊\x03廾\x03èˆ\x03å¼¢\x03㣇\x03å½¢\x03彫\x03㣣\x03徚\x03å¿\x03å¿—\x03忹" + + "\x03æ‚\x03㤺\x03㤜\x03æ‚”\x03惇\x03æ…ˆ\x03æ…Œ\x03æ…Ž\x03æ…º\x03憎\x03憲\x03憤\x03憯\x03懞" + + "\x03懲\x03懶\x03æˆ\x03戛\x03æ‰\x03抱\x03æ‹”\x03æ\x03挽\x03拼\x03æ¨\x03掃\x03æ¤\x03æ¢" + + "\x03æ…\x03掩\x03㨮\x03æ‘©\x03摾\x03æ’\x03æ‘·\x03㩬\x03æ•\x03敬\x03æ—£\x03書\x03晉\x03㬙" + + "\x03æš‘\x03㬈\x03㫤\x03冒\x03冕\x03最\x03æšœ\x03è‚­\x03ä™\x03朗\x03望\x03朡\x03æž\x03æ“" + + "\x03ã­‰\x03柺\x03æž…\x03æ¡’\x03梅\x03梎\x03æ Ÿ\x03椔\x03ã®\x03楂\x03榣\x03槪\x03檨\x03æ«›" + + "\x03ã°˜\x03次\x03æ­”\x03㱎\x03æ­²\x03殟\x03殺\x03æ®»\x03汎\x03沿\x03æ³\x03汧\x03æ´–\x03æ´¾" + + "\x03æµ·\x03æµ\x03浩\x03浸\x03涅\x03æ´´\x03港\x03æ¹®\x03ã´³\x03滋\x03滇\x03æ·¹\x03æ½®\x03濆" + + "\x03瀹\x03瀞\x03瀛\x03㶖\x03çŠ\x03ç½\x03ç·\x03ç‚­\x03ç……\x03熜\x03爨\x03爵\x03ç‰\x03犀" + + "\x03犕\x03çº\x03王\x03㺬\x03玥\x03㺸\x03瑇\x03ç‘œ\x03瑱\x03ç’…\x03ç“Š\x03ã¼›\x03甤\x03甾" + + "\x03ç•°\x03ç˜\x03㿼\x03䀈\x03ç›´\x03眞\x03真\x03çŠ\x03䀹\x03çž‹\x03ä†\x03ä‚–\x03ç¡Ž\x03碌" + + "\x03磌\x03䃣\x03祖\x03ç¦\x03秫\x03䄯\x03ç©€\x03ç©Š\x03ç©\x03䈂\x03篆\x03築\x03䈧\x03ç³’" + + "\x03䊠\x03糨\x03ç³£\x03ç´€\x03çµ£\x03äŒ\x03ç·‡\x03縂\x03ç¹…\x03䌴\x03ä™\x03罺\x03羕\x03翺" + + "\x03者\x03è \x03è°\x03ä•\x03育\x03脃\x03ä‹\x03脾\x03媵\x03舄\x03辞\x03ä‘«\x03芑\x03芋" + + "\x03èŠ\x03劳\x03花\x03芳\x03芽\x03苦\x03è‹¥\x03èŒ\x03è£\x03莭\x03茣\x03莽\x03è§\x03è‘—" + + "\x03è“\x03èŠ\x03èŒ\x03èœ\x03䔫\x03蓱\x03蓳\x03è”–\x03蕤\x03ä•\x03ä•¡\x03ä•«\x03è™\x03虜" + + "\x03虧\x03虩\x03èš©\x03蚈\x03蜎\x03蛢\x03è¹\x03蜨\x03è«\x03螆\x03蟡\x03è \x03ä—¹\x03è¡ " + + "\x03è¡£\x03裗\x03裞\x03䘵\x03裺\x03ã’»\x03äš¾\x03䛇\x03誠\x03è«­\x03變\x03豕\x03貫\x03è³" + + "\x03è´›\x03èµ·\x03è·‹\x03趼\x03è·°\x03è»”\x03輸\x03é‚”\x03郱\x03é„‘\x03é„›\x03鈸\x03é‹—\x03鋘" + + "\x03鉼\x03é¹\x03é•\x03é–‹\x03䦕\x03é–·\x03䧦\x03雃\x03嶲\x03霣\x03ä©®\x03䩶\x03韠\x03䪲" + + "\x03é ‹\x03é ©\x03飢\x03䬳\x03餩\x03馧\x03駂\x03駾\x03䯎\x03鬒\x03é±€\x03é³½\x03䳎\x03ä³­" + + "\x03鵧\x03䳸\x03麻\x03äµ–\x03黹\x03黾\x03é¼…\x03é¼\x03é¼–\x03é¼»" + +var xorData string = "" + // Size: 4862 bytes + "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" + + "\x02\x0f\x1f\x02\x0f\x1d\x02\x01\x13\x02\x0f\x16\x02\x0f\x0b\x02\x0f3" + + "\x02\x0f7\x02\x0f?\x02\x0f/\x02\x0f*\x02\x0c&\x02\x0c*\x02\x0c;\x02\x0c9" + + "\x02\x0c%\x02\xab\xed\x02\xab\xe2\x02\xab\xe3\x02\xa9\xe0\x02\xa9\xe1" + + "\x02\xa9\xe6\x02\xa3\xcb\x02\xa3\xc8\x02\xa3\xc9\x02\x01#\x02\x01\x08" + + "\x02\x0e>\x02\x0e'\x02\x0f\x03\x02\x03\x0d\x02\x03\x09\x02\x03\x17\x02" + + "\x03\x0e\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07" + + "\x0d\x02\x02\x0c\x02\x0c0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\x22" + + "\x02\x01)\x02\x01\x0a\x02\x01\x0c\x02\x02\x06\x02\x02\x02\x02\x03\x10" + + "\x03\x037 \x03\x0b+\x03\x021\x00\x02\x01\x04\x02\x01\x02\x02\x019\x02" + + "\x03\x1c\x02\x02$\x03\x80p$\x02\x03:\x02\x03\x0a\x03\xc1r.\x03\xc1r,\x03" + + "\xc1r\x02\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xc1s<" + + "\x03\xc1s*\x03\xc2L$\x03\xc2L;\x02\x09)\x02\x0a\x19\x03\x83\xab\xe3\x03" + + "\x83\xab\xf2\x03 4\xe0\x03\x81\xab\xea\x03\x81\xab\xf3\x03 4\xef\x03\x96" + + "\xe1\xcd\x03\x84\xe5\xc3\x02\x0d\x11\x03\x8b\xec\xcb\x03\x94\xec\xcf\x03" + + "\x9a\xec\xc2\x03\x8b\xec\xdb\x03\x94\xec\xdf\x03\x9a\xec\xd2\x03\x01\x0c" + + "!\x03\x01\x0c#\x03Ê \x9d\x03Ê£\x9c\x03Ê¢\x9f\x03Ê¥\x9e\x03ʤ\x91\x03ʧ\x90\x03" + + "ʦ\x93\x03Ê©\x92\x03ʨ\x95\x03\xca\xf3\xb5\x03\xca\xf0\xb4\x03\xca\xf1\xb7" + + "\x03\xca\xf6\xb6\x03\xca\xf7\x89\x03\xca\xf4\x88\x03\xca\xf5\x8b\x03\xca" + + "\xfa\x8a\x03\xca\xfb\x8d\x03\xca\xf8\x8c\x03\xca\xf9\x8f\x03\xca\xfe\x8e" + + "\x03\xca\xff\x81\x03\xca\xfc\x80\x03\xca\xfd\x83\x03\xca\xe2\x82\x03\xca" + + "\xe3\x85\x03\xca\xe0\x84\x03\xca\xe1\x87\x03\xca\xe6\x86\x03\xca\xe7\x99" + + "\x03\xca\xe4\x98\x03\xca\xe5\x9b\x03\xca\xea\x9a\x03\xca\xeb\x9d\x03\xca" + + "\xe8\x9c\x03Ø“\x89\x03ß”\x8b\x02\x010\x03\x03\x04\x1e\x03\x04\x15\x12\x03" + + "\x0b\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06" + + "\x05\x1d\x03\x06\x06\x00\x03\x06\x06\x0a\x03\x06\x06'\x03\x06\x062\x03" + + "\x0786\x03\x079/\x03\x079 \x03\x07:\x0e\x03\x07:\x1b\x03\x07:%\x03\x07;/" + + "\x03\x07;%\x03\x074\x11\x03\x076\x09\x03\x077*\x03\x070\x01\x03\x070\x0f" + + "\x03\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-" + + "\x03\x073\x14\x03\x073>\x03\x07'\x09\x03\x07 \x00\x03\x07\x1f\x0b\x03" + + "\x07\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03" + + "\x07\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\x0c&\x03\x07\x0c\x08\x03" + + "\x07\x0c\x13\x03\x07\x0d\x02\x03\x07\x0d\x1c\x03\x07\x0b5\x03\x07\x0b" + + "\x0a\x03\x07\x0b\x01\x03\x07\x0b\x0f\x03\x07\x05\x00\x03\x07\x05\x09\x03" + + "\x07\x05\x0b\x03\x07\x07\x01\x03\x07\x07\x08\x03\x07\x00<\x03\x07\x00+" + + "\x03\x07\x01)\x03\x07\x01\x1b\x03\x07\x01\x08\x03\x07\x03?\x03\x0445\x03" + + "\x044\x08\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03" + + "\x04+ \x03\x04+<\x03\x04*&\x03\x04*\x22\x03\x04&8\x03\x04!\x01\x03\x04!" + + "\x22\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04" + + "\x03\x04\x12\x0a\x03\x04\x0d\x1d\x03\x04\x0d\x07\x03\x04\x0d \x03\x05<>" + + "\x03\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1d\x03\x054\x02\x03" + + "\x054\x07\x03\x0571\x03\x053\x1a\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03" + + "\x05):\x03\x05)<\x03\x05)\x0c\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$" + + "\x1e\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\x226" + + "\x03\x05\x22\x0c\x03\x05\x22\x1c\x03\x05\x19\x0a\x03\x05\x1b\x09\x03\x05" + + "\x1b\x0c\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\x0c\x03\x05\x0c\x05" + + "\x03\x05\x0e\x0f\x03\x05\x01\x0e\x03\x05\x00(\x03\x05\x030\x03\x05\x03" + + "\x06\x03\x0a==\x03\x0a=1\x03\x0a=,\x03\x0a=\x0c\x03\x0a??\x03\x0a<\x08" + + "\x03\x0a9!\x03\x0a9)\x03\x0a97\x03\x0a99\x03\x0a6\x0a\x03\x0a6\x1c\x03" + + "\x0a6\x17\x03\x0a7'\x03\x0a78\x03\x0a73\x03\x0a'\x01\x03\x0a'&\x03\x0a" + + "\x1f\x0e\x03\x0a\x1f\x03\x03\x0a\x1f3\x03\x0a\x1b/\x03\x0a\x18\x19\x03" + + "\x0a\x19\x01\x03\x0a\x16\x14\x03\x0a\x0e\x22\x03\x0a\x0f\x10\x03\x0a\x0f" + + "\x02\x03\x0a\x0f \x03\x0a\x0c\x04\x03\x0a\x0b>\x03\x0a\x0b+\x03\x0a\x08/" + + "\x03\x0a\x046\x03\x0a\x05\x14\x03\x0a\x00\x04\x03\x0a\x00\x10\x03\x0a" + + "\x00\x14\x03\x0b<3\x03\x0b;*\x03\x0b9\x22\x03\x0b9)\x03\x0b97\x03\x0b+" + + "\x10\x03\x0b((\x03\x0b&5\x03\x0b$\x1c\x03\x0b$\x12\x03\x0b%\x04\x03\x0b#" + + "<\x03\x0b#0\x03\x0b#\x0d\x03\x0b#\x19\x03\x0b!:\x03\x0b!\x1f\x03\x0b!" + + "\x00\x03\x0b\x1e5\x03\x0b\x1c\x1d\x03\x0b\x1d-\x03\x0b\x1d(\x03\x0b\x18." + + "\x03\x0b\x18 \x03\x0b\x18\x16\x03\x0b\x14\x13\x03\x0b\x15$\x03\x0b\x15" + + "\x22\x03\x0b\x12\x1b\x03\x0b\x12\x10\x03\x0b\x132\x03\x0b\x13=\x03\x0b" + + "\x12\x18\x03\x0b\x0c&\x03\x0b\x061\x03\x0b\x06:\x03\x0b\x05#\x03\x0b\x05" + + "<\x03\x0b\x04\x0b\x03\x0b\x04\x04\x03\x0b\x04\x1b\x03\x0b\x042\x03\x0b" + + "\x041\x03\x0b\x03\x03\x03\x0b\x03\x1d\x03\x0b\x03/\x03\x0b\x03+\x03\x0b" + + "\x02\x1b\x03\x0b\x02\x00\x03\x0b\x01\x1e\x03\x0b\x01\x08\x03\x0b\x015" + + "\x03\x06\x0d9\x03\x06\x0d=\x03\x06\x0d?\x03\x02\x001\x03\x02\x003\x03" + + "\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1b\x03\x02\x004\x03\x02\x00<\x03" + + "\x02\x02\x0a\x03\x02\x02\x0e\x03\x02\x01\x1a\x03\x02\x01\x07\x03\x02\x01" + + "\x05\x03\x02\x01\x0b\x03\x02\x01%\x03\x02\x01\x0c\x03\x02\x01\x04\x03" + + "\x02\x01\x1c\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03" + + "\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02" + + "\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022" + + "\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01" + + "\x11\x03\x02\x01\x1e\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0f\x03" + + "\x02\x01\x08\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\x0d\x03\x02\x03" + + "\x13\x03\x02\x03\x1d\x03\x02\x03\x1f\x03\x02\x00\x03\x03\x02\x00\x0d\x03" + + "\x02\x00\x01\x03\x02\x00\x1b\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00" + + "\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1f\x03\x07>\x1d\x03\x06\x1d\x0e" + + "\x03\x07>\x1c\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>" + + "\x02\x03\x06\x224\x03\x06\x1a.\x03\x07<%\x03\x06\x1c\x0b\x03\x0609\x03" + + "\x05\x1f\x01\x03\x04'\x08\x03\x93\xfd\xf5\x03\x02\x0d \x03\x02\x0d#\x03" + + "\x02\x0d!\x03\x02\x0d&\x03\x02\x0d\x22\x03\x02\x0d/\x03\x02\x0d,\x03\x02" + + "\x0d$\x03\x02\x0d'\x03\x02\x0d%\x03\x02\x0d;\x03\x02\x0d=\x03\x02\x0d?" + + "\x03\x099.\x03\x08\x0b7\x03\x08\x02\x14\x03\x08\x14\x0d\x03\x08.:\x03" + + "\x089'\x03\x0f\x0b\x18\x03\x0f\x1c1\x03\x0f\x17&\x03\x0f9\x1f\x03\x0f0" + + "\x0c\x03\x0e\x0a9\x03\x0e\x056\x03\x0e\x1c#\x03\x0f\x13\x0e\x03\x072\x00" + + "\x03\x070\x0d\x03\x072\x0b\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0f(\x03" + + "\x072\x05\x03\x06\x0f,\x03\x073\x15\x03\x06\x07\x08\x03\x05\x16\x02\x03" + + "\x04\x0b \x03\x05:8\x03\x05\x16%\x03\x0a\x0d\x1f\x03\x06\x16\x10\x03\x05" + + "\x1d5\x03\x05*;\x03\x05\x16\x1b\x03\x04.-\x03\x06\x1a\x19\x03\x04\x03," + + "\x03\x0b87\x03\x04/\x0a\x03\x06\x00,\x03\x04-\x01\x03\x04\x1e-\x03\x06/(" + + "\x03\x0a\x0b5\x03\x06\x0e7\x03\x06\x07.\x03\x0597\x03\x0a*%\x03\x0760" + + "\x03\x06\x0c;\x03\x05'\x00\x03\x072.\x03\x072\x08\x03\x06=\x01\x03\x06" + + "\x05\x1b\x03\x06\x06\x12\x03\x06$=\x03\x06'\x0d\x03\x04\x11\x0f\x03\x076" + + ",\x03\x06\x07;\x03\x06.,\x03\x86\xf9\xea\x03\x8f\xff\xeb\x02\x092\x02" + + "\x095\x02\x094\x02\x09;\x02\x09>\x02\x098\x02\x09*\x02\x09/\x02\x09,\x02" + + "\x09%\x02\x09&\x02\x09#\x02\x09 \x02\x08!\x02\x08%\x02\x08$\x02\x08+\x02" + + "\x08.\x02\x08*\x02\x08&\x02\x088\x02\x08>\x02\x084\x02\x086\x02\x080\x02" + + "\x08\x10\x02\x08\x17\x02\x08\x12\x02\x08\x1d\x02\x08\x1f\x02\x08\x13\x02" + + "\x08\x15\x02\x08\x14\x02\x08\x0c\x03\x8b\xfd\xd0\x03\x81\xec\xc6\x03\x87" + + "\xe0\x8a\x03-2\xe3\x03\x80\xef\xe4\x03-2\xea\x03\x88\xe6\xeb\x03\x8e\xe6" + + "\xe8\x03\x84\xe6\xe9\x03\x97\xe6\xee\x03-2\xf9\x03-2\xf6\x03\x8e\xe3\xad" + + "\x03\x80\xe3\x92\x03\x88\xe3\x90\x03\x8e\xe3\x90\x03\x80\xe3\x97\x03\x88" + + "\xe3\x95\x03\x88\xfe\xcb\x03\x8e\xfe\xca\x03\x84\xfe\xcd\x03\x91\xef\xc9" + + "\x03-2\xc1\x03-2\xc0\x03-2\xcb\x03\x88@\x09\x03\x8e@\x08\x03\x8f\xe0\xf5" + + "\x03\x8e\xe6\xf9\x03\x8e\xe0\xfa\x03\x93\xff\xf4\x03\x84\xee\xd3\x03\x0b" + + "(\x04\x023 \x03\x0b)\x08\x021;\x02\x01*\x03\x0b#\x10\x03\x0b 0\x03\x0b!" + + "\x10\x03\x0b!0\x03\x07\x15\x08\x03\x09?5\x03\x07\x1f\x08\x03\x07\x17\x0b" + + "\x03\x09\x1f\x15\x03\x0b\x1c7\x03\x0a+#\x03\x06\x1a\x1b\x03\x06\x1a\x14" + + "\x03\x0a\x01\x18\x03\x06#\x1b\x03\x0a2\x0c\x03\x0a\x01\x04\x03\x09#;\x03" + + "\x08='\x03\x08\x1a\x0a\x03\x07\x03\x0a\x111\x03\x09\x1b\x09\x03\x073.\x03\x07" + + "\x01\x00\x03\x09/,\x03\x07#>\x03\x07\x048\x03\x0a\x1f\x22\x03\x098>\x03" + + "\x09\x11\x00\x03\x08/\x17\x03\x06'\x22\x03\x0b\x1a+\x03\x0a\x22\x19\x03" + + "\x0a/1\x03\x0974\x03\x09\x0f\x22\x03\x08,\x22\x03\x08?\x14\x03\x07$5\x03" + + "\x07<3\x03\x07=*\x03\x07\x13\x18\x03\x068\x0a\x03\x06\x09\x16\x03\x06" + + "\x13\x00\x03\x08\x067\x03\x08\x01\x03\x03\x08\x12\x1d\x03\x07+7\x03\x06(" + + ";\x03\x06\x1c?\x03\x07\x0e\x17\x03\x0a\x06\x1d\x03\x0a\x19\x07\x03\x08" + + "\x14$\x03\x07$;\x03\x08,$\x03\x08\x06\x0d\x03\x07\x16\x0a\x03\x06>>\x03" + + "\x0a\x06\x12\x03\x0a\x14)\x03\x09\x0d\x1f\x03\x09\x12\x17\x03\x09\x19" + + "\x01\x03\x08\x11 \x03\x08\x1d'\x03\x06<\x1a\x03\x0a.\x00\x03\x07'\x18" + + "\x03\x0a\x22\x08\x03\x08\x0d\x0a\x03\x08\x13)\x03\x07*)\x03\x06<,\x03" + + "\x07\x0b\x1a\x03\x09.\x14\x03\x09\x0d\x1e\x03\x07\x0e#\x03\x0b\x1d'\x03" + + "\x0a\x0a8\x03\x09%2\x03\x08+&\x03\x080\x12\x03\x0a)4\x03\x08\x06\x1f\x03" + + "\x0b\x1b\x1a\x03\x0a\x1b\x0f\x03\x0b\x1d*\x03\x09\x16$\x03\x090\x11\x03" + + "\x08\x11\x08\x03\x0a*(\x03\x0a\x042\x03\x089,\x03\x074'\x03\x07\x0f\x05" + + "\x03\x09\x0b\x0a\x03\x07\x1b\x01\x03\x09\x17:\x03\x09.\x0d\x03\x07.\x11" + + "\x03\x09+\x15\x03\x080\x13\x03\x0b\x1f\x19\x03\x0a \x11\x03\x0a\x220\x03" + + "\x09\x07;\x03\x08\x16\x1c\x03\x07,\x13\x03\x07\x0e/\x03\x06\x221\x03\x0a" + + ".\x0a\x03\x0a7\x02\x03\x0a\x032\x03\x0a\x1d.\x03\x091\x06\x03\x09\x19:" + + "\x03\x08\x02/\x03\x060+\x03\x06\x0f-\x03\x06\x1c\x1f\x03\x06\x1d\x07\x03" + + "\x0a,\x11\x03\x09=\x0d\x03\x09\x0b;\x03\x07\x1b/\x03\x0a\x1f:\x03\x09 " + + "\x1f\x03\x09.\x10\x03\x094\x0b\x03\x09\x1a1\x03\x08#\x1a\x03\x084\x1d" + + "\x03\x08\x01\x1f\x03\x08\x11\x22\x03\x07'8\x03\x07\x1a>\x03\x0757\x03" + + "\x06&9\x03\x06+\x11\x03\x0a.\x0b\x03\x0a,>\x03\x0a4#\x03\x08%\x17\x03" + + "\x07\x05\x22\x03\x07\x0c\x0b\x03\x0a\x1d+\x03\x0a\x19\x16\x03\x09+\x1f" + + "\x03\x09\x08\x0b\x03\x08\x16\x18\x03\x08+\x12\x03\x0b\x1d\x0c\x03\x0a=" + + "\x10\x03\x0a\x09\x0d\x03\x0a\x10\x11\x03\x09&0\x03\x08(\x1f\x03\x087\x07" + + "\x03\x08\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06," + + "\x03\x0b\x18>\x03\x08\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\x09%\x18\x03" + + "\x0b\x1c<\x03\x0a%!\x03\x0a\x09\x12\x03\x0a\x16\x02\x03\x090'\x03\x09" + + "\x0e=\x03\x08 \x0e\x03\x08>\x03\x03\x074>\x03\x06&?\x03\x06\x19\x09\x03" + + "\x06?(\x03\x0a-\x0e\x03\x09:3\x03\x098:\x03\x09\x12\x0b\x03\x09\x1d\x17" + + "\x03\x087\x05\x03\x082\x14\x03\x08\x06%\x03\x08\x13\x1f\x03\x06\x06\x0e" + + "\x03\x0a\x22<\x03\x09/<\x03\x06>+\x03\x0a'?\x03\x0a\x13\x0c\x03\x09\x10<" + + "\x03\x07\x1b=\x03\x0a\x19\x13\x03\x09\x22\x1d\x03\x09\x07\x0d\x03\x08)" + + "\x1c\x03\x06=\x1a\x03\x0a/4\x03\x0a7\x11\x03\x0a\x16:\x03\x09?3\x03\x09:" + + "/\x03\x09\x05\x0a\x03\x09\x14\x06\x03\x087\x22\x03\x080\x07\x03\x08\x1a" + + "\x1f\x03\x07\x04(\x03\x07\x04\x09\x03\x06 %\x03\x06<\x08\x03\x0a+\x14" + + "\x03\x09\x1d\x16\x03\x0a70\x03\x08 >\x03\x0857\x03\x070\x0a\x03\x06=\x12" + + "\x03\x06\x16%\x03\x06\x1d,\x03\x099#\x03\x09\x10>\x03\x07 \x1e\x03\x08" + + "\x0c<\x03\x08\x0b\x18\x03\x08\x15+\x03\x08,:\x03\x08%\x22\x03\x07\x0a$" + + "\x03\x0b\x1c=\x03\x07+\x08\x03\x0a/\x05\x03\x0a \x07\x03\x0a\x12'\x03" + + "\x09#\x11\x03\x08\x1b\x15\x03\x0a\x06\x01\x03\x09\x1c\x1b\x03\x0922\x03" + + "\x07\x14<\x03\x07\x09\x04\x03\x061\x04\x03\x07\x0e\x01\x03\x0a\x13\x18" + + "\x03\x0a-\x0c\x03\x0a?\x0d\x03\x0a\x09\x0a\x03\x091&\x03\x0a/\x0b\x03" + + "\x08$<\x03\x083\x1d\x03\x08\x0c$\x03\x08\x0d\x07\x03\x08\x0d?\x03\x08" + + "\x0e\x14\x03\x065\x0a\x03\x08\x1a#\x03\x08\x16#\x03\x0702\x03\x07\x03" + + "\x1a\x03\x06(\x1d\x03\x06+\x1b\x03\x06\x0b\x05\x03\x06\x0b\x17\x03\x06" + + "\x0c\x04\x03\x06\x1e\x19\x03\x06+0\x03\x062\x18\x03\x0b\x16\x1e\x03\x0a+" + + "\x16\x03\x0a-?\x03\x0a#:\x03\x0a#\x10\x03\x0a%$\x03\x0a>+\x03\x0a01\x03" + + "\x0a1\x10\x03\x0a\x099\x03\x0a\x0a\x12\x03\x0a\x19\x1f\x03\x0a\x19\x12" + + "\x03\x09*)\x03\x09-\x16\x03\x09.1\x03\x09.2\x03\x09<\x0e\x03\x09> \x03" + + "\x093\x12\x03\x09\x0b\x01\x03\x09\x1c2\x03\x09\x11\x1c\x03\x09\x15%\x03" + + "\x08,&\x03\x08!\x22\x03\x089(\x03\x08\x0b\x1a\x03\x08\x0d2\x03\x08\x0c" + + "\x04\x03\x08\x0c\x06\x03\x08\x0c\x1f\x03\x08\x0c\x0c\x03\x08\x0f\x1f\x03" + + "\x08\x0f\x1d\x03\x08\x00\x14\x03\x08\x03\x14\x03\x08\x06\x16\x03\x08\x1e" + + "#\x03\x08\x11\x11\x03\x08\x10\x18\x03\x08\x14(\x03\x07)\x1e\x03\x07.1" + + "\x03\x07 $\x03\x07 '\x03\x078\x08\x03\x07\x0d0\x03\x07\x0f7\x03\x07\x05#" + + "\x03\x07\x05\x1a\x03\x07\x1a7\x03\x07\x1d-\x03\x07\x17\x10\x03\x06)\x1f" + + "\x03\x062\x0b\x03\x066\x16\x03\x06\x09\x11\x03\x09(\x1e\x03\x07!5\x03" + + "\x0b\x11\x16\x03\x0a/\x04\x03\x0a,\x1a\x03\x0b\x173\x03\x0a,1\x03\x0a/5" + + "\x03\x0a\x221\x03\x0a\x22\x0d\x03\x0a?%\x03\x0a<,\x03\x0a?#\x03\x0a>\x19" + + "\x03\x0a\x08&\x03\x0a\x0b\x0e\x03\x0a\x0c:\x03\x0a\x0c+\x03\x0a\x03\x22" + + "\x03\x0a\x06)\x03\x0a\x11\x10\x03\x0a\x11\x1a\x03\x0a\x17-\x03\x0a\x14(" + + "\x03\x09)\x1e\x03\x09/\x09\x03\x09.\x00\x03\x09,\x07\x03\x09/*\x03\x09-9" + + "\x03\x09\x228\x03\x09%\x09\x03\x09:\x12\x03\x09;\x1d\x03\x09?\x06\x03" + + "\x093%\x03\x096\x05\x03\x096\x08\x03\x097\x02\x03\x09\x07,\x03\x09\x04," + + "\x03\x09\x1f\x16\x03\x09\x11\x03\x03\x09\x11\x12\x03\x09\x168\x03\x08*" + + "\x05\x03\x08/2\x03\x084:\x03\x08\x22+\x03\x08 0\x03\x08&\x0a\x03\x08;" + + "\x10\x03\x08>$\x03\x08>\x18\x03\x0829\x03\x082:\x03\x081,\x03\x081<\x03" + + "\x081\x1c\x03\x087#\x03\x087*\x03\x08\x09'\x03\x08\x00\x1d\x03\x08\x05-" + + "\x03\x08\x1f4\x03\x08\x1d\x04\x03\x08\x16\x0f\x03\x07*7\x03\x07'!\x03" + + "\x07%\x1b\x03\x077\x0c\x03\x07\x0c1\x03\x07\x0c.\x03\x07\x00\x06\x03\x07" + + "\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03" + + "\x07\x06\x06\x03\x07\x05\x0a\x03\x07\x1f\x09\x03\x07\x17:\x03\x06*1\x03" + + "\x06-\x1d\x03\x06\x223\x03\x062:\x03\x060$\x03\x066\x1e\x03\x064\x12\x03" + + "\x0645\x03\x06\x0b\x00\x03\x06\x0b7\x03\x06\x07\x1f\x03\x06\x15\x12\x03" + + "\x0c\x05\x0f\x03\x0b+\x0b\x03\x0b+-\x03\x06\x16\x1b\x03\x06\x15\x17\x03" + + "\x89\xca\xea\x03\x89\xca\xe8\x03\x0c8\x10\x03\x0c8\x01\x03\x0c8\x0f\x03" + + "\x0d8%\x03\x0d8!\x03\x0c8-\x03\x0c8/\x03\x0c8+\x03\x0c87\x03\x0c85\x03" + + "\x0c9\x09\x03\x0c9\x0d\x03\x0c9\x0f\x03\x0c9\x0b\x03\xcfu\x0c\x03\xcfu" + + "\x0f\x03\xcfu\x0e\x03\xcfu\x09\x03\x0c9\x10\x03\x0d9\x0c\x03\xcf`;\x03" + + "\xcf`>\x03\xcf`9\x03\xcf`8\x03\xcf`7\x03\xcf`*\x03\xcf`-\x03\xcf`,\x03" + + "\x0d\x1b\x1a\x03\x0d\x1b&\x03\x0c=.\x03\x0c=%\x03\x0c>\x1e\x03\x0c>\x14" + + "\x03\x0c?\x06\x03\x0c?\x0b\x03\x0c?\x0c\x03\x0c?\x0d\x03\x0c?\x02\x03" + + "\x0c>\x0f\x03\x0c>\x08\x03\x0c>\x09\x03\x0c>,\x03\x0c>\x0c\x03\x0c?\x13" + + "\x03\x0c?\x16\x03\x0c?\x15\x03\x0c?\x1c\x03\x0c?\x1f\x03\x0c?\x1d\x03" + + "\x0c?\x1a\x03\x0c?\x17\x03\x0c?\x08\x03\x0c?\x09\x03\x0c?\x0e\x03\x0c?" + + "\x04\x03\x0c?\x05\x03\x0c" + + "\x03\x0c=2\x03\x0c=6\x03\x0c<\x07\x03\x0c<\x05\x03\x0e:!\x03\x0e:#\x03" + + "\x0e8\x09\x03\x0e:&\x03\x0e8\x0b\x03\x0e:$\x03\x0e:,\x03\x0e8\x1a\x03" + + "\x0e8\x1e\x03\x0e:*\x03\x0e:7\x03\x0e:5\x03\x0e:;\x03\x0e:\x15\x03\x0e:<" + + "\x03\x0e:4\x03\x0e:'\x03\x0e:-\x03\x0e:%\x03\x0e:?\x03\x0e:=\x03\x0e:)" + + "\x03\x0e:/\x03\xcfs'\x03\x0d=\x0f\x03\x0d+*\x03\x0d99\x03\x0d9;\x03\x0d9" + + "?\x03\x0d)\x0d\x03\x0d(%\x02\x01\x18\x02\x01(\x02\x01\x1e\x03\x0f$!\x03" + + "\x0f87\x03\x0f4\x0e\x03\x0f5\x1d\x03\x06'\x03\x03\x0f\x08\x18\x03\x0f" + + "\x0d\x1b\x03\x0e2=\x03\x0e;\x08\x03\x0e:\x0b\x03\x0e\x06$\x03\x0e\x0d)" + + "\x03\x0e\x16\x1f\x03\x0e\x16\x1b\x03\x0d$\x0a\x03\x05,\x1d\x03\x0d. \x03" + + "\x0d.#\x03\x0c(/\x03\x09%\x02\x03\x0d90\x03\x0d\x0e4\x03\x0d\x0d\x0f\x03" + + "\x0c#\x00\x03\x0c,\x1e\x03\x0c2\x0e\x03\x0c\x01\x17\x03\x0c\x09:\x03\x0e" + + "\x173\x03\x0c\x08\x03\x03\x0c\x11\x07\x03\x0c\x10\x18\x03\x0c\x1f\x1c" + + "\x03\x0c\x19\x0e\x03\x0c\x1a\x1f\x03\x0f0>\x03\x0b->\x03\x0b<+\x03\x0b8" + + "\x13\x03\x0b\x043\x03\x0b\x14\x03\x03\x0b\x16%\x03\x0d\x22&\x03\x0b\x1a" + + "\x1a\x03\x0b\x1a\x04\x03\x0a%9\x03\x0a&2\x03\x0a&0\x03\x0a!\x1a\x03\x0a!" + + "7\x03\x0a5\x10\x03\x0a=4\x03\x0a?\x0e\x03\x0a>\x10\x03\x0a\x00 \x03\x0a" + + "\x0f:\x03\x0a\x0f9\x03\x0a\x0b\x0a\x03\x0a\x17%\x03\x0a\x1b-\x03\x09-" + + "\x1a\x03\x09,4\x03\x09.,\x03\x09)\x09\x03\x096!\x03\x091\x1f\x03\x093" + + "\x16\x03\x0c+\x1f\x03\x098 \x03\x098=\x03\x0c(\x1a\x03\x0c(\x16\x03\x09" + + "\x0a+\x03\x09\x16\x12\x03\x09\x13\x0e\x03\x09\x153\x03\x08)!\x03\x09\x1a" + + "\x01\x03\x09\x18\x01\x03\x08%#\x03\x08>\x22\x03\x08\x05%\x03\x08\x02*" + + "\x03\x08\x15;\x03\x08\x1b7\x03\x0f\x07\x1d\x03\x0f\x04\x03\x03\x070\x0c" + + "\x03\x07;\x0b\x03\x07\x08\x17\x03\x07\x12\x06\x03\x06/-\x03\x0671\x03" + + "\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1e\x03\x05,\x17\x03\x05 \x1d\x03" + + "\x05\x22\x05\x03\x050\x1d" + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// idnaTrie. Total size: 29708 bytes (29.01 KiB). Checksum: c3ecc76d8fffa6e6. +type idnaTrie struct{} + +func newIdnaTrie(i int) *idnaTrie { + return &idnaTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *idnaTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 125: + return uint16(idnaValues[n<<6+uint32(b)]) + default: + n -= 125 + return uint16(idnaSparse.lookup(n, b)) + } +} + +// idnaValues: 127 blocks, 8128 entries, 16256 bytes +// The third block is the zero block. +var idnaValues = [8128]uint16{ + // Block 0x0, offset 0x0 + 0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080, + 0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080, + 0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080, + 0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080, + 0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080, + 0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080, + 0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080, + 0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080, + 0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008, + 0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080, + 0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080, + // Block 0x1, offset 0x40 + 0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105, + 0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105, + 0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105, + 0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105, + 0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080, + 0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008, + 0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008, + 0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008, + 0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008, + 0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080, + 0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040, + 0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040, + 0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040, + 0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040, + 0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040, + 0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018, + 0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018, + 0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a, + 0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005, + 0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018, + 0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018, + // Block 0x4, offset 0x100 + 0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008, + 0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008, + 0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008, + 0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008, + 0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008, + 0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008, + 0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008, + 0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008, + 0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008, + 0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d, + 0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199, + // Block 0x5, offset 0x140 + 0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d, + 0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008, + 0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008, + 0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008, + 0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008, + 0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008, + 0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008, + 0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008, + 0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008, + 0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d, + 0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9, + // Block 0x6, offset 0x180 + 0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008, + 0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d, + 0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d, + 0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d, + 0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155, + 0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008, + 0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d, + 0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd, + 0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d, + 0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008, + 0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9, + 0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d, + 0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d, + 0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d, + 0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008, + 0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008, + 0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008, + 0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008, + 0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008, + 0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008, + 0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008, + // Block 0x8, offset 0x200 + 0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008, + 0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008, + 0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008, + 0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008, + 0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008, + 0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008, + 0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008, + 0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008, + 0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008, + 0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d, + 0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008, + // Block 0x9, offset 0x240 + 0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018, + 0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008, + 0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008, + 0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018, + 0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a, + 0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369, + 0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018, + 0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018, + 0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018, + 0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018, + 0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018, + // Block 0xa, offset 0x280 + 0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d, + 0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308, + 0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308, + 0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308, + 0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308, + 0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308, + 0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308, + 0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308, + 0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008, + 0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008, + 0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2, + 0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040, + 0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105, + 0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105, + 0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105, + 0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d, + 0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d, + 0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008, + 0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008, + 0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008, + 0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008, + // Block 0xc, offset 0x300 + 0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008, + 0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008, + 0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd, + 0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008, + 0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008, + 0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008, + 0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008, + 0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008, + 0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd, + 0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008, + 0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d, + // Block 0xd, offset 0x340 + 0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008, + 0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008, + 0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008, + 0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008, + 0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008, + 0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008, + 0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008, + 0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008, + 0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008, + 0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008, + 0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008, + // Block 0xe, offset 0x380 + 0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308, + 0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008, + 0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008, + 0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008, + 0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008, + 0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008, + 0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008, + 0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008, + 0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008, + 0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008, + 0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d, + 0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d, + 0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008, + 0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008, + 0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008, + 0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008, + 0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008, + 0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008, + 0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008, + 0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008, + 0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008, + // Block 0x10, offset 0x400 + 0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008, + 0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008, + 0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008, + 0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008, + 0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008, + 0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008, + 0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008, + 0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008, + 0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5, + 0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5, + 0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5, + // Block 0x11, offset 0x440 + 0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840, + 0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818, + 0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308, + 0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308, + 0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040, + 0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08, + 0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08, + 0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08, + 0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08, + 0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08, + 0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08, + // Block 0x12, offset 0x480 + 0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08, + 0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308, + 0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308, + 0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308, + 0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308, + 0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808, + 0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808, + 0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08, + 0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429, + 0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08, + 0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08, + 0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08, + 0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08, + 0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308, + 0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840, + 0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308, + 0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018, + 0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08, + 0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008, + 0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08, + 0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08, + // Block 0x14, offset 0x500 + 0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818, + 0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818, + 0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308, + 0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08, + 0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08, + 0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08, + 0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08, + 0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08, + 0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308, + 0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308, + 0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308, + // Block 0x15, offset 0x540 + 0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08, + 0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08, + 0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08, + 0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808, + 0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040, + 0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08, + 0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08, + 0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040, + 0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040, + 0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040, + 0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040, + // Block 0x16, offset 0x580 + 0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308, + 0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008, + 0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308, + 0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308, + 0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1, + 0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308, + 0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008, + 0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008, + 0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008, + 0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008, + 0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008, + 0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008, + 0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040, + 0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008, + 0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008, + 0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008, + 0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040, + 0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008, + 0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040, + 0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040, + 0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008, + // Block 0x18, offset 0x600 + 0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040, + 0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008, + 0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040, + 0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008, + 0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1, + 0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308, + 0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008, + 0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008, + 0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018, + 0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018, + 0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040, + // Block 0x19, offset 0x640 + 0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008, + 0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040, + 0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040, + 0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008, + 0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008, + 0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008, + 0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040, + 0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008, + 0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008, + 0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040, + 0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008, + // Block 0x1a, offset 0x680 + 0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040, + 0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308, + 0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308, + 0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040, + 0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040, + 0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040, + 0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008, + 0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008, + 0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308, + 0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040, + 0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008, + 0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008, + 0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008, + 0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008, + 0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008, + 0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008, + 0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040, + 0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008, + 0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008, + 0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040, + 0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008, + // Block 0x1c, offset 0x700 + 0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308, + 0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008, + 0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040, + 0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040, + 0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040, + 0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308, + 0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008, + 0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008, + 0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040, + 0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308, + 0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308, + // Block 0x1d, offset 0x740 + 0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008, + 0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008, + 0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040, + 0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008, + 0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008, + 0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008, + 0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040, + 0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008, + 0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008, + 0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040, + 0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308, + // Block 0x1e, offset 0x780 + 0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040, + 0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008, + 0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040, + 0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008, + 0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9, + 0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308, + 0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008, + 0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008, + 0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018, + 0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040, + 0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008, + 0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040, + 0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040, + 0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040, + 0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040, + 0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008, + 0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008, + 0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008, + 0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008, + 0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040, + 0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008, + // Block 0x20, offset 0x800 + 0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040, + 0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308, + 0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040, + 0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040, + 0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040, + 0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308, + 0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008, + 0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008, + 0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040, + 0x836: 0x0040, 0x837: 0x0018, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018, + 0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018, + // Block 0x21, offset 0x840 + 0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008, + 0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008, + 0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040, + 0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008, + 0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008, + 0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008, + 0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040, + 0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008, + 0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008, + 0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040, + 0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308, + // Block 0x22, offset 0x880 + 0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040, + 0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008, + 0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040, + 0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040, + 0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040, + 0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308, + 0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008, + 0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008, + 0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040, + 0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040, + 0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040, + 0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008, + 0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040, + 0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008, + 0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018, + 0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308, + 0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008, + 0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008, + 0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018, + 0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008, + 0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008, + // Block 0x24, offset 0x900 + 0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040, + 0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0040, + 0x90c: 0x0008, 0x90d: 0x0008, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008, + 0x912: 0x0008, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008, + 0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008, + 0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008, + 0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008, + 0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008, + 0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308, + 0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x3b08, 0x93b: 0x3308, + 0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040, + // Block 0x25, offset 0x940 + 0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008, + 0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008, + 0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008, + 0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79, + 0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008, + 0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008, + 0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9, + 0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040, + 0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59, + 0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308, + 0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008, + // Block 0x26, offset 0x980 + 0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018, + 0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008, + 0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308, + 0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308, + 0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11, + 0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308, + 0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308, + 0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308, + 0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308, + 0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308, + 0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008, + 0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008, + 0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008, + 0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008, + 0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008, + 0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008, + 0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008, + 0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008, + 0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41, + 0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008, + 0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269, + // Block 0x28, offset 0xa00 + 0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1, + 0xa06: 0x05b5, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011, + 0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041, + 0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05cd, 0xa15: 0x05cd, 0xa16: 0x0f99, 0xa17: 0x0fa9, + 0xa18: 0x0fb9, 0xa19: 0x05b5, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05e5, 0xa1d: 0x1099, + 0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269, + 0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1, + 0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008, + 0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008, + 0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008, + 0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008, + // Block 0x29, offset 0xa40 + 0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008, + 0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008, + 0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008, + 0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008, + 0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169, + 0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9, + 0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05fd, 0xa68: 0x1239, 0xa69: 0x1251, + 0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9, + 0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359, + 0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x0615, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1, + 0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429, + // Block 0x2a, offset 0xa80 + 0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008, + 0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008, + 0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008, + 0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008, + 0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008, + 0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008, + 0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008, + 0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008, + 0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008, + 0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008, + 0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008, + // Block 0x2b, offset 0xac0 + 0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008, + 0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008, + 0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008, + 0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008, + 0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x062d, 0xadb: 0x064d, 0xadc: 0x0008, 0xadd: 0x0008, + 0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008, + 0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008, + 0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008, + 0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008, + 0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008, + 0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008, + 0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045, + 0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008, + 0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008, + 0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045, + 0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008, + 0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045, + 0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045, + 0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489, + 0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1, + 0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040, + // Block 0x2d, offset 0xb40 + 0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1, + 0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591, + 0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1, + 0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1, + 0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771, + 0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891, + 0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831, + 0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951, + 0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040, + 0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x0665, 0xb7b: 0x1459, + 0xb7c: 0x19b1, 0xb7d: 0x067e, 0xb7e: 0x1a31, 0xb7f: 0x069e, + // Block 0x2e, offset 0xb80 + 0xb80: 0x06be, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040, + 0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06dd, 0xb89: 0x1471, 0xb8a: 0x06f5, 0xb8b: 0x1489, + 0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008, + 0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008, + 0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x070d, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2, + 0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61, + 0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045, + 0xbaa: 0x0725, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa, + 0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040, + 0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x073d, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9, + 0xbbc: 0x1ce9, 0xbbd: 0x0756, 0xbbe: 0x0776, 0xbbf: 0x0040, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a, + 0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0, + 0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d, + 0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x0796, + 0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018, + 0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018, + 0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040, + 0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a, + 0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018, + 0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018, + 0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x07b6, 0xbff: 0x0018, + // Block 0x30, offset 0xc00 + 0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018, + 0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018, + 0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018, + 0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9, + 0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018, + 0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340, + 0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040, + 0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340, + 0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61, + 0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07d5, + 0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71, + // Block 0x31, offset 0xc40 + 0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61, + 0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07ed, + 0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09, + 0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359, + 0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040, + 0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018, + 0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018, + 0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018, + 0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018, + 0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018, + 0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018, + // Block 0x32, offset 0xc80 + 0xc80: 0x0806, 0xc81: 0x0826, 0xc82: 0x1159, 0xc83: 0x0845, 0xc84: 0x0018, 0xc85: 0x0866, + 0xc86: 0x0886, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x08a5, 0xc8a: 0x0f31, 0xc8b: 0x0249, + 0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41, + 0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018, + 0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269, + 0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08c5, 0xca2: 0x2061, 0xca3: 0x0018, + 0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018, + 0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09, + 0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9, + 0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08e5, + 0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x0905, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9, + 0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018, + 0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151, + 0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279, + 0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399, + 0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x091d, 0xce3: 0x2439, + 0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x093d, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369, + 0xcea: 0x24a9, 0xceb: 0x095d, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61, + 0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x097d, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451, + 0xcf6: 0x099d, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09bd, + 0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61, + // Block 0x34, offset 0xd00 + 0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018, + 0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040, + 0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040, + 0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040, + 0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040, + 0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51, + 0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601, + 0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691, + 0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a1e, 0xd35: 0x0a3e, + 0xd36: 0x0a5e, 0xd37: 0x0a7e, 0xd38: 0x0a9e, 0xd39: 0x0abe, 0xd3a: 0x0ade, 0xd3b: 0x0afe, + 0xd3c: 0x0b1e, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a, + // Block 0x35, offset 0xd40 + 0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a, + 0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040, + 0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040, + 0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040, + 0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b3e, 0xd5d: 0x0b5e, + 0xd5e: 0x0b7e, 0xd5f: 0x0b9e, 0xd60: 0x0bbe, 0xd61: 0x0bde, 0xd62: 0x0bfe, 0xd63: 0x0c1e, + 0xd64: 0x0c3e, 0xd65: 0x0c5e, 0xd66: 0x0c7e, 0xd67: 0x0c9e, 0xd68: 0x0cbe, 0xd69: 0x0cde, + 0xd6a: 0x0cfe, 0xd6b: 0x0d1e, 0xd6c: 0x0d3e, 0xd6d: 0x0d5e, 0xd6e: 0x0d7e, 0xd6f: 0x0d9e, + 0xd70: 0x0dbe, 0xd71: 0x0dde, 0xd72: 0x0dfe, 0xd73: 0x0e1e, 0xd74: 0x0e3e, 0xd75: 0x0e5e, + 0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199, + 0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259, + // Block 0x36, offset 0xd80 + 0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99, + 0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089, + 0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9, + 0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249, + 0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71, + 0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9, + 0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1, + 0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018, + 0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018, + 0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018, + 0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008, + 0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008, + 0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008, + 0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008, + 0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008, + 0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ed5, + 0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d, + 0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9, + 0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d, + 0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008, + 0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9, + // Block 0x38, offset 0xe00 + 0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008, + 0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008, + 0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008, + 0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008, + 0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008, + 0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008, + 0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018, + 0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308, + 0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040, + 0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018, + 0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018, + // Block 0x39, offset 0xe40 + 0xe40: 0x2715, 0xe41: 0x2735, 0xe42: 0x2755, 0xe43: 0x2775, 0xe44: 0x2795, 0xe45: 0x27b5, + 0xe46: 0x27d5, 0xe47: 0x27f5, 0xe48: 0x2815, 0xe49: 0x2835, 0xe4a: 0x2855, 0xe4b: 0x2875, + 0xe4c: 0x2895, 0xe4d: 0x28b5, 0xe4e: 0x28d5, 0xe4f: 0x28f5, 0xe50: 0x2915, 0xe51: 0x2935, + 0xe52: 0x2955, 0xe53: 0x2975, 0xe54: 0x2995, 0xe55: 0x29b5, 0xe56: 0x0040, 0xe57: 0x0040, + 0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040, + 0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040, + 0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040, + 0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040, + 0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040, + 0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040, + 0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040, + // Block 0x3a, offset 0xe80 + 0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008, + 0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018, + 0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018, + 0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018, + 0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018, + 0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018, + 0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018, + 0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018, + 0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018, + 0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29d5, 0xeb9: 0x29f5, 0xeba: 0x2a15, 0xebb: 0x0018, + 0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018, + // Block 0x3b, offset 0xec0 + 0xec0: 0x2b55, 0xec1: 0x2b75, 0xec2: 0x2b95, 0xec3: 0x2bb5, 0xec4: 0x2bd5, 0xec5: 0x2bf5, + 0xec6: 0x2bf5, 0xec7: 0x2bf5, 0xec8: 0x2c15, 0xec9: 0x2c15, 0xeca: 0x2c15, 0xecb: 0x2c15, + 0xecc: 0x2c35, 0xecd: 0x2c35, 0xece: 0x2c35, 0xecf: 0x2c55, 0xed0: 0x2c75, 0xed1: 0x2c75, + 0xed2: 0x2a95, 0xed3: 0x2a95, 0xed4: 0x2c75, 0xed5: 0x2c75, 0xed6: 0x2c95, 0xed7: 0x2c95, + 0xed8: 0x2c75, 0xed9: 0x2c75, 0xeda: 0x2a95, 0xedb: 0x2a95, 0xedc: 0x2c75, 0xedd: 0x2c75, + 0xede: 0x2c55, 0xedf: 0x2c55, 0xee0: 0x2cb5, 0xee1: 0x2cb5, 0xee2: 0x2cd5, 0xee3: 0x2cd5, + 0xee4: 0x0040, 0xee5: 0x2cf5, 0xee6: 0x2d15, 0xee7: 0x2d35, 0xee8: 0x2d35, 0xee9: 0x2d55, + 0xeea: 0x2d75, 0xeeb: 0x2d95, 0xeec: 0x2db5, 0xeed: 0x2dd5, 0xeee: 0x2df5, 0xeef: 0x2e15, + 0xef0: 0x2e35, 0xef1: 0x2e55, 0xef2: 0x2e55, 0xef3: 0x2e75, 0xef4: 0x2e95, 0xef5: 0x2e95, + 0xef6: 0x2eb5, 0xef7: 0x2ed5, 0xef8: 0x2e75, 0xef9: 0x2ef5, 0xefa: 0x2f15, 0xefb: 0x2ef5, + 0xefc: 0x2e75, 0xefd: 0x2f35, 0xefe: 0x2f55, 0xeff: 0x2f75, + // Block 0x3c, offset 0xf00 + 0xf00: 0x2f95, 0xf01: 0x2fb5, 0xf02: 0x2d15, 0xf03: 0x2cf5, 0xf04: 0x2fd5, 0xf05: 0x2ff5, + 0xf06: 0x3015, 0xf07: 0x3035, 0xf08: 0x3055, 0xf09: 0x3075, 0xf0a: 0x3095, 0xf0b: 0x30b5, + 0xf0c: 0x30d5, 0xf0d: 0x30f5, 0xf0e: 0x3115, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018, + 0xf12: 0x3135, 0xf13: 0x3155, 0xf14: 0x3175, 0xf15: 0x3195, 0xf16: 0x31b5, 0xf17: 0x31d5, + 0xf18: 0x31f5, 0xf19: 0x3215, 0xf1a: 0x3235, 0xf1b: 0x3255, 0xf1c: 0x3175, 0xf1d: 0x3275, + 0xf1e: 0x3295, 0xf1f: 0x32b5, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008, + 0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008, + 0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008, + 0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008, + 0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040, + 0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040, + // Block 0x3d, offset 0xf40 + 0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32d5, 0xf45: 0x32f5, + 0xf46: 0x3315, 0xf47: 0x3335, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018, + 0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x3355, 0xf51: 0x3761, + 0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1, + 0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881, + 0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x3375, 0xf61: 0x3395, 0xf62: 0x33b5, 0xf63: 0x33d5, + 0xf64: 0x33f5, 0xf65: 0x33f5, 0xf66: 0x3415, 0xf67: 0x3435, 0xf68: 0x3455, 0xf69: 0x3475, + 0xf6a: 0x3495, 0xf6b: 0x34b5, 0xf6c: 0x34d5, 0xf6d: 0x34f5, 0xf6e: 0x3515, 0xf6f: 0x3535, + 0xf70: 0x3555, 0xf71: 0x3575, 0xf72: 0x3595, 0xf73: 0x35b5, 0xf74: 0x35d5, 0xf75: 0x35f5, + 0xf76: 0x3615, 0xf77: 0x3635, 0xf78: 0x3655, 0xf79: 0x3675, 0xf7a: 0x3695, 0xf7b: 0x36b5, + 0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36d5, 0xf7f: 0x0018, + // Block 0x3e, offset 0xf80 + 0xf80: 0x36f5, 0xf81: 0x3715, 0xf82: 0x3735, 0xf83: 0x3755, 0xf84: 0x3775, 0xf85: 0x3795, + 0xf86: 0x37b5, 0xf87: 0x37d5, 0xf88: 0x37f5, 0xf89: 0x3815, 0xf8a: 0x3835, 0xf8b: 0x3855, + 0xf8c: 0x3875, 0xf8d: 0x3895, 0xf8e: 0x38b5, 0xf8f: 0x38d5, 0xf90: 0x38f5, 0xf91: 0x3915, + 0xf92: 0x3935, 0xf93: 0x3955, 0xf94: 0x3975, 0xf95: 0x3995, 0xf96: 0x39b5, 0xf97: 0x39d5, + 0xf98: 0x39f5, 0xf99: 0x3a15, 0xf9a: 0x3a35, 0xf9b: 0x3a55, 0xf9c: 0x3a75, 0xf9d: 0x3a95, + 0xf9e: 0x3ab5, 0xf9f: 0x3ad5, 0xfa0: 0x3af5, 0xfa1: 0x3b15, 0xfa2: 0x3b35, 0xfa3: 0x3b55, + 0xfa4: 0x3b75, 0xfa5: 0x3b95, 0xfa6: 0x1295, 0xfa7: 0x3bb5, 0xfa8: 0x3bd5, 0xfa9: 0x3bf5, + 0xfaa: 0x3c15, 0xfab: 0x3c35, 0xfac: 0x3c55, 0xfad: 0x3c75, 0xfae: 0x23b5, 0xfaf: 0x3c95, + 0xfb0: 0x3cb5, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999, + 0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29, + 0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69, + 0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69, + 0xfcc: 0x3c99, 0xfcd: 0x3cd5, 0xfce: 0x3cb1, 0xfcf: 0x3cf5, 0xfd0: 0x3d15, 0xfd1: 0x3d2d, + 0xfd2: 0x3d45, 0xfd3: 0x3d5d, 0xfd4: 0x3d75, 0xfd5: 0x3d75, 0xfd6: 0x3d5d, 0xfd7: 0x3d8d, + 0xfd8: 0x07d5, 0xfd9: 0x3da5, 0xfda: 0x3dbd, 0xfdb: 0x3dd5, 0xfdc: 0x3ded, 0xfdd: 0x3e05, + 0xfde: 0x3e1d, 0xfdf: 0x3e35, 0xfe0: 0x3e4d, 0xfe1: 0x3e65, 0xfe2: 0x3e7d, 0xfe3: 0x3e95, + 0xfe4: 0x3ead, 0xfe5: 0x3ead, 0xfe6: 0x3ec5, 0xfe7: 0x3ec5, 0xfe8: 0x3edd, 0xfe9: 0x3edd, + 0xfea: 0x3ef5, 0xfeb: 0x3f0d, 0xfec: 0x3f25, 0xfed: 0x3f3d, 0xfee: 0x3f55, 0xfef: 0x3f55, + 0xff0: 0x3f6d, 0xff1: 0x3f6d, 0xff2: 0x3f6d, 0xff3: 0x3f85, 0xff4: 0x3f9d, 0xff5: 0x3fb5, + 0xff6: 0x3fcd, 0xff7: 0x3fb5, 0xff8: 0x3fe5, 0xff9: 0x3ffd, 0xffa: 0x3f85, 0xffb: 0x4015, + 0xffc: 0x402d, 0xffd: 0x402d, 0xffe: 0x402d, 0xfff: 0x0040, + // Block 0x40, offset 0x1000 + 0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9, + 0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1, + 0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9, + 0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549, + 0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1, + 0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11, + 0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91, + 0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9, + 0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011, + 0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209, + 0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361, + // Block 0x41, offset 0x1040 + 0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541, + 0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781, + 0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979, + 0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89, + 0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1, + 0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99, + 0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9, + 0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9, + 0x1070: 0x6009, 0x1071: 0x4045, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x4065, 0x1075: 0x6069, + 0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x4085, 0x1079: 0x4085, 0x107a: 0x60b1, 0x107b: 0x60c9, + 0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9, + // Block 0x42, offset 0x1080 + 0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x40a5, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271, + 0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40c5, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9, + 0x108c: 0x40e5, 0x108d: 0x40e5, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x4105, + 0x1092: 0x4125, 0x1093: 0x4145, 0x1094: 0x4165, 0x1095: 0x4185, 0x1096: 0x6359, 0x1097: 0x6371, + 0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x41a5, 0x109c: 0x63d1, 0x109d: 0x63e9, + 0x109e: 0x6401, 0x109f: 0x41c5, 0x10a0: 0x41e5, 0x10a1: 0x6419, 0x10a2: 0x4205, 0x10a3: 0x4225, + 0x10a4: 0x4245, 0x10a5: 0x6431, 0x10a6: 0x4265, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211, + 0x10aa: 0x4285, 0x10ab: 0x42a5, 0x10ac: 0x42c5, 0x10ad: 0x42e5, 0x10ae: 0x64b1, 0x10af: 0x64f1, + 0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x4305, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599, + 0x10b6: 0x4325, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9, + 0x10bc: 0x4345, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x4365, 0x10c1: 0x4385, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671, + 0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709, + 0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781, + 0x10d2: 0x43a5, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43c5, 0x10d6: 0x43e5, 0x10d7: 0x67b1, + 0x10d8: 0x0040, 0x10d9: 0x4405, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811, + 0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901, + 0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1, + 0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11, + 0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31, + 0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51, + 0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x4425, + // Block 0x44, offset 0x1100 + 0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008, + 0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008, + 0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008, + 0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008, + 0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008, + 0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008, + 0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008, + 0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308, + 0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308, + 0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308, + 0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008, + // Block 0x45, offset 0x1140 + 0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008, + 0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008, + 0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008, + 0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008, + 0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11, + 0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008, + 0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008, + 0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008, + 0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008, + 0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008, + 0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008, + // Block 0x46, offset 0x1180 + 0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018, + 0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018, + 0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018, + 0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008, + 0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008, + 0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008, + 0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008, + 0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008, + 0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008, + 0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008, + 0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008, + // Block 0x47, offset 0x11c0 + 0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008, + 0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008, + 0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008, + 0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008, + 0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008, + 0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008, + 0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008, + 0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008, + 0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008, + 0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d, + 0x11fc: 0x0008, 0x11fd: 0x4445, 0x11fe: 0xe00d, 0x11ff: 0x0008, + // Block 0x48, offset 0x1200 + 0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008, + 0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d, + 0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008, + 0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008, + 0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008, + 0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008, + 0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008, + 0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0008, + 0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x4465, 0x1234: 0xe00d, 0x1235: 0x0008, + 0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0xe00d, 0x1239: 0x0008, 0x123a: 0xe00d, 0x123b: 0x0008, + 0x123c: 0xe00d, 0x123d: 0x0008, 0x123e: 0xe00d, 0x123f: 0x0008, + // Block 0x49, offset 0x1240 + 0x1240: 0x650d, 0x1241: 0x652d, 0x1242: 0x654d, 0x1243: 0x656d, 0x1244: 0x658d, 0x1245: 0x65ad, + 0x1246: 0x65cd, 0x1247: 0x65ed, 0x1248: 0x660d, 0x1249: 0x662d, 0x124a: 0x664d, 0x124b: 0x666d, + 0x124c: 0x668d, 0x124d: 0x66ad, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x66cd, 0x1251: 0x0008, + 0x1252: 0x66ed, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x670d, 0x1256: 0x672d, 0x1257: 0x674d, + 0x1258: 0x676d, 0x1259: 0x678d, 0x125a: 0x67ad, 0x125b: 0x67cd, 0x125c: 0x67ed, 0x125d: 0x680d, + 0x125e: 0x682d, 0x125f: 0x0008, 0x1260: 0x684d, 0x1261: 0x0008, 0x1262: 0x686d, 0x1263: 0x0008, + 0x1264: 0x0008, 0x1265: 0x688d, 0x1266: 0x68ad, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008, + 0x126a: 0x68cd, 0x126b: 0x68ed, 0x126c: 0x690d, 0x126d: 0x692d, 0x126e: 0x694d, 0x126f: 0x696d, + 0x1270: 0x698d, 0x1271: 0x69ad, 0x1272: 0x69cd, 0x1273: 0x69ed, 0x1274: 0x6a0d, 0x1275: 0x6a2d, + 0x1276: 0x6a4d, 0x1277: 0x6a6d, 0x1278: 0x6a8d, 0x1279: 0x6aad, 0x127a: 0x6acd, 0x127b: 0x6aed, + 0x127c: 0x6b0d, 0x127d: 0x6b2d, 0x127e: 0x6b4d, 0x127f: 0x6b6d, + // Block 0x4a, offset 0x1280 + 0x1280: 0x7acd, 0x1281: 0x7aed, 0x1282: 0x7b0d, 0x1283: 0x7b2d, 0x1284: 0x7b4d, 0x1285: 0x7b6d, + 0x1286: 0x7b8d, 0x1287: 0x7bad, 0x1288: 0x7bcd, 0x1289: 0x7bed, 0x128a: 0x7c0d, 0x128b: 0x7c2d, + 0x128c: 0x7c4d, 0x128d: 0x7c6d, 0x128e: 0x7c8d, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19, + 0x1292: 0x7cad, 0x1293: 0x7ccd, 0x1294: 0x7ced, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91, + 0x1298: 0x7d0d, 0x1299: 0x7d2d, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040, + 0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040, + 0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040, + 0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040, + 0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040, + 0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040, + 0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d4d, 0x12c4: 0x7d6d, 0x12c5: 0x7001, + 0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040, + 0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040, + 0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9, + 0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1, + 0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149, + 0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2, + 0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1, + 0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1, + 0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479, + 0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040, + // Block 0x4c, offset 0x1300 + 0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040, + 0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659, + 0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721, + 0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751, + 0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769, + 0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799, + 0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1, + 0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1, + 0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9, + 0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829, + 0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841, + // Block 0x4d, offset 0x1340 + 0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871, + 0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9, + 0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9, + 0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919, + 0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931, + 0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961, + 0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991, + 0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1, + 0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818, + 0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818, + 0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040, + 0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040, + 0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040, + 0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09, + 0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479, + 0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81, + 0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1, + 0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19, + 0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91, + 0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1, + 0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1, + 0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1, + 0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1, + 0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991, + 0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81, + 0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a, + 0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99, + 0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89, + 0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79, + 0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19, + 0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469, + // Block 0x50, offset 0x1400 + 0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649, + 0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9, + 0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49, + 0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21, + 0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9, + 0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01, + 0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91, + 0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9, + 0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171, + 0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289, + 0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329, + // Block 0x51, offset 0x1440 + 0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1, + 0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621, + 0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739, + 0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1, + 0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9, + 0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29, + 0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079, + 0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1, + 0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171, + 0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261, + 0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301, + // Block 0x52, offset 0x1480 + 0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1, + 0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1, + 0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171, + 0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261, + 0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351, + 0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441, + 0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509, + 0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1, + 0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081, + 0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239, + 0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040, + 0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040, + 0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609, + 0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721, + 0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839, + 0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919, + 0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9, + 0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9, + 0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9, + 0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1, + 0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79, + // Block 0x54, offset 0x1500 + 0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989, + 0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040, + 0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040, + 0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040, + 0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040, + 0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040, + 0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040, + 0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040, + 0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9, + 0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12, + 0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040, + // Block 0x55, offset 0x1540 + 0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0, + 0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0, + 0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d8d, + 0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7dad, + 0x1558: 0x7dcd, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040, + 0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308, + 0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308, + 0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308, + 0x1570: 0x0040, 0x1571: 0x7ded, 0x1572: 0x7e0d, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2, + 0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7e2d, 0x157a: 0x7e4d, 0x157b: 0x7e6d, + 0x157c: 0x7e2d, 0x157d: 0x7e8d, 0x157e: 0x7ead, 0x157f: 0x7e8d, + // Block 0x56, offset 0x1580 + 0x1580: 0x7ecd, 0x1581: 0x7eed, 0x1582: 0x7f0d, 0x1583: 0x7eed, 0x1584: 0x7f2d, 0x1585: 0x0018, + 0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f4e, 0x158a: 0x7f6e, 0x158b: 0x7f8e, + 0x158c: 0x7fae, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7fcd, + 0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa, + 0x1598: 0x7fed, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7ecd, + 0x159e: 0x7f2d, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99, + 0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda, + 0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040, + 0x15b0: 0x800e, 0x15b1: 0xb009, 0x15b2: 0x802e, 0x15b3: 0x0808, 0x15b4: 0x804e, 0x15b5: 0x0040, + 0x15b6: 0x806e, 0x15b7: 0xb031, 0x15b8: 0x808e, 0x15b9: 0xb059, 0x15ba: 0x80ae, 0x15bb: 0xb081, + 0x15bc: 0x80ce, 0x15bd: 0xb0a9, 0x15be: 0x80ee, 0x15bf: 0xb0d1, + // Block 0x57, offset 0x15c0 + 0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141, + 0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171, + 0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1, + 0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1, + 0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201, + 0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219, + 0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249, + 0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291, + 0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1, + 0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9, + 0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1, + // Block 0x58, offset 0x1600 + 0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321, + 0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339, + 0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369, + 0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381, + 0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1, + 0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9, + 0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9, + 0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1, + 0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441, + 0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9, + 0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0, + // Block 0x59, offset 0x1640 + 0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea, + 0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2, + 0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9, + 0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81, + 0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2, + 0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159, + 0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41, + 0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9, + 0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9, + 0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a, + 0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a, + // Block 0x5a, offset 0x1680 + 0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09, + 0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51, + 0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039, + 0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279, + 0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a, + 0x169e: 0xb532, 0x169f: 0x810d, 0x16a0: 0x812d, 0x16a1: 0x29d1, 0x16a2: 0x814d, 0x16a3: 0x814d, + 0x16a4: 0x816d, 0x16a5: 0x818d, 0x16a6: 0x81ad, 0x16a7: 0x81cd, 0x16a8: 0x81ed, 0x16a9: 0x820d, + 0x16aa: 0x822d, 0x16ab: 0x824d, 0x16ac: 0x826d, 0x16ad: 0x828d, 0x16ae: 0x82ad, 0x16af: 0x82cd, + 0x16b0: 0x82ed, 0x16b1: 0x830d, 0x16b2: 0x832d, 0x16b3: 0x834d, 0x16b4: 0x836d, 0x16b5: 0x838d, + 0x16b6: 0x83ad, 0x16b7: 0x83cd, 0x16b8: 0x83ed, 0x16b9: 0x840d, 0x16ba: 0x842d, 0x16bb: 0x844d, + 0x16bc: 0x81ed, 0x16bd: 0x846d, 0x16be: 0x848d, 0x16bf: 0x824d, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x84ad, 0x16c1: 0x84cd, 0x16c2: 0x84ed, 0x16c3: 0x850d, 0x16c4: 0x852d, 0x16c5: 0x854d, + 0x16c6: 0x856d, 0x16c7: 0x858d, 0x16c8: 0x850d, 0x16c9: 0x85ad, 0x16ca: 0x850d, 0x16cb: 0x85cd, + 0x16cc: 0x85cd, 0x16cd: 0x85ed, 0x16ce: 0x85ed, 0x16cf: 0x860d, 0x16d0: 0x854d, 0x16d1: 0x862d, + 0x16d2: 0x864d, 0x16d3: 0x862d, 0x16d4: 0x866d, 0x16d5: 0x864d, 0x16d6: 0x868d, 0x16d7: 0x868d, + 0x16d8: 0x86ad, 0x16d9: 0x86ad, 0x16da: 0x86cd, 0x16db: 0x86cd, 0x16dc: 0x864d, 0x16dd: 0x814d, + 0x16de: 0x86ed, 0x16df: 0x870d, 0x16e0: 0x0040, 0x16e1: 0x872d, 0x16e2: 0x874d, 0x16e3: 0x876d, + 0x16e4: 0x878d, 0x16e5: 0x876d, 0x16e6: 0x87ad, 0x16e7: 0x87cd, 0x16e8: 0x87ed, 0x16e9: 0x87ed, + 0x16ea: 0x880d, 0x16eb: 0x880d, 0x16ec: 0x882d, 0x16ed: 0x882d, 0x16ee: 0x880d, 0x16ef: 0x880d, + 0x16f0: 0x884d, 0x16f1: 0x886d, 0x16f2: 0x888d, 0x16f3: 0x88ad, 0x16f4: 0x88cd, 0x16f5: 0x88ed, + 0x16f6: 0x88ed, 0x16f7: 0x88ed, 0x16f8: 0x890d, 0x16f9: 0x890d, 0x16fa: 0x890d, 0x16fb: 0x890d, + 0x16fc: 0x87ed, 0x16fd: 0x87ed, 0x16fe: 0x87ed, 0x16ff: 0x0040, + // Block 0x5c, offset 0x1700 + 0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x874d, 0x1703: 0x872d, 0x1704: 0x892d, 0x1705: 0x872d, + 0x1706: 0x874d, 0x1707: 0x872d, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x894d, 0x170b: 0x874d, + 0x170c: 0x896d, 0x170d: 0x892d, 0x170e: 0x896d, 0x170f: 0x874d, 0x1710: 0x0040, 0x1711: 0x0040, + 0x1712: 0x898d, 0x1713: 0x89ad, 0x1714: 0x88ad, 0x1715: 0x896d, 0x1716: 0x892d, 0x1717: 0x896d, + 0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x89cd, 0x171b: 0x89ed, 0x171c: 0x89cd, 0x171d: 0x0040, + 0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x8a0e, + 0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x8a2d, 0x1727: 0x0040, 0x1728: 0x8a4d, 0x1729: 0x8a6d, + 0x172a: 0x8a8d, 0x172b: 0x8a6d, 0x172c: 0x8aad, 0x172d: 0x8acd, 0x172e: 0x8aed, 0x172f: 0x0040, + 0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040, + 0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340, + 0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040, + // Block 0x5d, offset 0x1740 + 0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08, + 0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808, + 0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08, + 0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908, + 0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08, + 0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808, + 0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040, + 0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18, + 0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818, + 0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040, + 0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040, + // Block 0x5e, offset 0x1780 + 0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08, + 0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08, + 0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08, + 0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040, + 0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040, + 0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040, + 0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18, + 0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818, + 0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040, + 0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040, + 0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008, + 0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008, + 0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040, + 0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008, + 0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008, + 0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008, + 0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040, + 0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008, + 0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008, + 0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308, + 0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008, + // Block 0x60, offset 0x1800 + 0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040, + 0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008, + 0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040, + 0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008, + 0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008, + 0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008, + 0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308, + 0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040, + 0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040, + 0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040, + 0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040, + // Block 0x61, offset 0x1840 + 0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199, + 0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359, + 0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269, + 0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369, + 0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9, + 0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259, + 0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99, + 0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089, + 0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9, + 0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249, + 0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359, + // Block 0x62, offset 0x1880 + 0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269, + 0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369, + 0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9, + 0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259, + 0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99, + 0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089, + 0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9, + 0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249, + 0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71, + 0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9, + 0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9, + 0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259, + 0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99, + 0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089, + 0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040, + 0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040, + 0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71, + 0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9, + 0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1, + 0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199, + 0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259, + // Block 0x64, offset 0x1900 + 0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99, + 0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089, + 0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9, + 0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249, + 0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71, + 0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9, + 0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1, + 0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199, + 0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359, + 0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269, + 0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089, + // Block 0x65, offset 0x1940 + 0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9, + 0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040, + 0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71, + 0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9, + 0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040, + 0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199, + 0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359, + 0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269, + 0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369, + 0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9, + 0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040, + // Block 0x66, offset 0x1980 + 0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040, + 0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9, + 0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040, + 0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199, + 0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359, + 0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269, + 0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369, + 0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9, + 0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259, + 0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99, + 0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1, + 0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199, + 0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359, + 0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269, + 0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369, + 0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9, + 0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259, + 0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99, + 0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089, + 0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9, + 0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199, + // Block 0x68, offset 0x1a00 + 0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359, + 0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269, + 0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369, + 0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9, + 0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259, + 0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99, + 0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089, + 0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9, + 0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249, + 0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71, + 0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269, + // Block 0x69, offset 0x1a40 + 0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369, + 0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9, + 0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259, + 0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99, + 0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089, + 0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9, + 0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249, + 0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71, + 0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9, + 0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1, + 0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259, + 0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99, + 0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089, + 0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9, + 0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249, + 0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71, + 0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9, + 0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1, + 0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199, + 0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359, + 0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089, + 0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9, + 0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249, + 0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71, + 0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9, + 0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1, + 0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099, + 0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429, + 0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71, + 0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9, + 0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9, + 0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11, + 0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109, + 0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1, + 0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429, + 0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099, + 0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429, + 0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71, + 0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9, + 0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01, + 0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11, + 0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109, + 0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1, + 0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429, + 0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099, + 0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429, + 0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71, + 0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9, + 0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01, + 0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1, + 0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109, + 0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1, + 0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429, + 0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099, + 0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429, + 0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71, + 0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9, + 0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01, + 0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1, + 0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41, + 0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1, + 0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429, + 0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099, + 0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429, + 0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71, + 0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9, + 0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01, + 0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1, + 0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41, + 0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1, + 0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429, + 0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41, + 0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079, + 0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1, + 0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61, + 0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9, + 0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81, + 0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079, + 0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1, + 0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61, + 0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1, + // Block 0x71, offset 0x1c40 + 0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115, + 0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135, + 0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115, + 0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175, + 0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115, + 0x1c5e: 0x8b3d, 0x1c5f: 0x8b3d, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08, + 0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08, + 0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08, + 0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08, + 0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08, + 0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08, + // Block 0x72, offset 0x1c80 + 0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411, + 0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1, + 0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9, + 0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231, + 0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949, + 0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040, + 0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429, + 0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339, + 0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1, + 0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351, + 0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040, + 0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1, + 0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9, + 0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231, + 0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949, + 0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040, + 0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429, + 0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339, + 0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1, + 0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351, + 0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040, + // Block 0x74, offset 0x1d00 + 0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411, + 0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1, + 0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9, + 0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231, + 0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040, + 0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249, + 0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429, + 0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339, + 0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1, + 0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351, + 0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040, + // Block 0x75, offset 0x1d40 + 0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02, + 0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018, + 0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2, + 0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72, + 0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32, + 0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2, + 0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2, + 0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0018, + 0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199, + 0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359, + 0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99, + // Block 0x76, offset 0x1d80 + 0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089, + 0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1, + 0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018, + 0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018, + 0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018, + 0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018, + 0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018, + 0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0xc1c1, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040, + 0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018, + 0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018, + 0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018, + // Block 0x77, offset 0x1dc0 + 0x1dc0: 0xc1f1, 0x1dc1: 0xc229, 0x1dc2: 0xc261, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040, + 0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040, + 0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc281, 0x1dd1: 0xc2a1, + 0x1dd2: 0xc2c1, 0x1dd3: 0xc2e1, 0x1dd4: 0xc301, 0x1dd5: 0xc321, 0x1dd6: 0xc341, 0x1dd7: 0xc361, + 0x1dd8: 0xc381, 0x1dd9: 0xc3a1, 0x1dda: 0xc3c1, 0x1ddb: 0xc3e1, 0x1ddc: 0xc401, 0x1ddd: 0xc421, + 0x1dde: 0xc441, 0x1ddf: 0xc461, 0x1de0: 0xc481, 0x1de1: 0xc4a1, 0x1de2: 0xc4c1, 0x1de3: 0xc4e1, + 0x1de4: 0xc501, 0x1de5: 0xc521, 0x1de6: 0xc541, 0x1de7: 0xc561, 0x1de8: 0xc581, 0x1de9: 0xc5a1, + 0x1dea: 0xc5c1, 0x1deb: 0xc5e1, 0x1dec: 0xc601, 0x1ded: 0xc621, 0x1dee: 0xc641, 0x1def: 0xc661, + 0x1df0: 0xc681, 0x1df1: 0xc6a1, 0x1df2: 0xc6c1, 0x1df3: 0xc6e1, 0x1df4: 0xc701, 0x1df5: 0xc721, + 0x1df6: 0xc741, 0x1df7: 0xc761, 0x1df8: 0xc781, 0x1df9: 0xc7a1, 0x1dfa: 0xc7c1, 0x1dfb: 0xc7e1, + 0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040, + // Block 0x78, offset 0x1e00 + 0x1e00: 0xcb11, 0x1e01: 0xcb31, 0x1e02: 0xcb51, 0x1e03: 0x8b55, 0x1e04: 0xcb71, 0x1e05: 0xcb91, + 0x1e06: 0xcbb1, 0x1e07: 0xcbd1, 0x1e08: 0xcbf1, 0x1e09: 0xcc11, 0x1e0a: 0xcc31, 0x1e0b: 0xcc51, + 0x1e0c: 0xcc71, 0x1e0d: 0x8b75, 0x1e0e: 0xcc91, 0x1e0f: 0xccb1, 0x1e10: 0xccd1, 0x1e11: 0xccf1, + 0x1e12: 0x8b95, 0x1e13: 0xcd11, 0x1e14: 0xcd31, 0x1e15: 0xc441, 0x1e16: 0x8bb5, 0x1e17: 0xcd51, + 0x1e18: 0xcd71, 0x1e19: 0xcd91, 0x1e1a: 0xcdb1, 0x1e1b: 0xcdd1, 0x1e1c: 0x8bd5, 0x1e1d: 0xcdf1, + 0x1e1e: 0xce11, 0x1e1f: 0xce31, 0x1e20: 0xce51, 0x1e21: 0xce71, 0x1e22: 0xc7a1, 0x1e23: 0xce91, + 0x1e24: 0xceb1, 0x1e25: 0xced1, 0x1e26: 0xcef1, 0x1e27: 0xcf11, 0x1e28: 0xcf31, 0x1e29: 0xcf51, + 0x1e2a: 0xcf71, 0x1e2b: 0xcf91, 0x1e2c: 0xcfb1, 0x1e2d: 0xcfd1, 0x1e2e: 0xcff1, 0x1e2f: 0xd011, + 0x1e30: 0xd031, 0x1e31: 0xd051, 0x1e32: 0xd051, 0x1e33: 0xd051, 0x1e34: 0x8bf5, 0x1e35: 0xd071, + 0x1e36: 0xd091, 0x1e37: 0xd0b1, 0x1e38: 0x8c15, 0x1e39: 0xd0d1, 0x1e3a: 0xd0f1, 0x1e3b: 0xd111, + 0x1e3c: 0xd131, 0x1e3d: 0xd151, 0x1e3e: 0xd171, 0x1e3f: 0xd191, + // Block 0x79, offset 0x1e40 + 0x1e40: 0xd1b1, 0x1e41: 0xd1d1, 0x1e42: 0xd1f1, 0x1e43: 0xd211, 0x1e44: 0xd231, 0x1e45: 0xd251, + 0x1e46: 0xd251, 0x1e47: 0xd271, 0x1e48: 0xd291, 0x1e49: 0xd2b1, 0x1e4a: 0xd2d1, 0x1e4b: 0xd2f1, + 0x1e4c: 0xd311, 0x1e4d: 0xd331, 0x1e4e: 0xd351, 0x1e4f: 0xd371, 0x1e50: 0xd391, 0x1e51: 0xd3b1, + 0x1e52: 0xd3d1, 0x1e53: 0xd3f1, 0x1e54: 0xd411, 0x1e55: 0xd431, 0x1e56: 0xd451, 0x1e57: 0xd471, + 0x1e58: 0xd491, 0x1e59: 0x8c35, 0x1e5a: 0xd4b1, 0x1e5b: 0xd4d1, 0x1e5c: 0xd4f1, 0x1e5d: 0xc321, + 0x1e5e: 0xd511, 0x1e5f: 0xd531, 0x1e60: 0x8c55, 0x1e61: 0x8c75, 0x1e62: 0xd551, 0x1e63: 0xd571, + 0x1e64: 0xd591, 0x1e65: 0xd5b1, 0x1e66: 0xd5d1, 0x1e67: 0xd5f1, 0x1e68: 0x2040, 0x1e69: 0xd611, + 0x1e6a: 0xd631, 0x1e6b: 0xd631, 0x1e6c: 0x8c95, 0x1e6d: 0xd651, 0x1e6e: 0xd671, 0x1e6f: 0xd691, + 0x1e70: 0xd6b1, 0x1e71: 0x8cb5, 0x1e72: 0xd6d1, 0x1e73: 0xd6f1, 0x1e74: 0x2040, 0x1e75: 0xd711, + 0x1e76: 0xd731, 0x1e77: 0xd751, 0x1e78: 0xd771, 0x1e79: 0xd791, 0x1e7a: 0xd7b1, 0x1e7b: 0x8cd5, + 0x1e7c: 0xd7d1, 0x1e7d: 0x8cf5, 0x1e7e: 0xd7f1, 0x1e7f: 0xd811, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0xd831, 0x1e81: 0xd851, 0x1e82: 0xd871, 0x1e83: 0xd891, 0x1e84: 0xd8b1, 0x1e85: 0xd8d1, + 0x1e86: 0xd8f1, 0x1e87: 0xd911, 0x1e88: 0xd931, 0x1e89: 0x8d15, 0x1e8a: 0xd951, 0x1e8b: 0xd971, + 0x1e8c: 0xd991, 0x1e8d: 0xd9b1, 0x1e8e: 0xd9d1, 0x1e8f: 0x8d35, 0x1e90: 0xd9f1, 0x1e91: 0x8d55, + 0x1e92: 0x8d75, 0x1e93: 0xda11, 0x1e94: 0xda31, 0x1e95: 0xda31, 0x1e96: 0xda51, 0x1e97: 0x8d95, + 0x1e98: 0x8db5, 0x1e99: 0xda71, 0x1e9a: 0xda91, 0x1e9b: 0xdab1, 0x1e9c: 0xdad1, 0x1e9d: 0xdaf1, + 0x1e9e: 0xdb11, 0x1e9f: 0xdb31, 0x1ea0: 0xdb51, 0x1ea1: 0xdb71, 0x1ea2: 0xdb91, 0x1ea3: 0xdbb1, + 0x1ea4: 0x8dd5, 0x1ea5: 0xdbd1, 0x1ea6: 0xdbf1, 0x1ea7: 0xdc11, 0x1ea8: 0xdc31, 0x1ea9: 0xdc11, + 0x1eaa: 0xdc51, 0x1eab: 0xdc71, 0x1eac: 0xdc91, 0x1ead: 0xdcb1, 0x1eae: 0xdcd1, 0x1eaf: 0xdcf1, + 0x1eb0: 0xdd11, 0x1eb1: 0xdd31, 0x1eb2: 0xdd51, 0x1eb3: 0xdd71, 0x1eb4: 0xdd91, 0x1eb5: 0xddb1, + 0x1eb6: 0xddd1, 0x1eb7: 0xddf1, 0x1eb8: 0x8df5, 0x1eb9: 0xde11, 0x1eba: 0xde31, 0x1ebb: 0xde51, + 0x1ebc: 0xde71, 0x1ebd: 0xde91, 0x1ebe: 0x8e15, 0x1ebf: 0xdeb1, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0xe5b1, 0x1ec1: 0xe5d1, 0x1ec2: 0xe5f1, 0x1ec3: 0xe611, 0x1ec4: 0xe631, 0x1ec5: 0xe651, + 0x1ec6: 0x8f35, 0x1ec7: 0xe671, 0x1ec8: 0xe691, 0x1ec9: 0xe6b1, 0x1eca: 0xe6d1, 0x1ecb: 0xe6f1, + 0x1ecc: 0xe711, 0x1ecd: 0x8f55, 0x1ece: 0xe731, 0x1ecf: 0xe751, 0x1ed0: 0x8f75, 0x1ed1: 0x8f95, + 0x1ed2: 0xe771, 0x1ed3: 0xe791, 0x1ed4: 0xe7b1, 0x1ed5: 0xe7d1, 0x1ed6: 0xe7f1, 0x1ed7: 0xe811, + 0x1ed8: 0xe831, 0x1ed9: 0xe851, 0x1eda: 0xe871, 0x1edb: 0x8fb5, 0x1edc: 0xe891, 0x1edd: 0x8fd5, + 0x1ede: 0xe8b1, 0x1edf: 0x2040, 0x1ee0: 0xe8d1, 0x1ee1: 0xe8f1, 0x1ee2: 0xe911, 0x1ee3: 0x8ff5, + 0x1ee4: 0xe931, 0x1ee5: 0xe951, 0x1ee6: 0x9015, 0x1ee7: 0x9035, 0x1ee8: 0xe971, 0x1ee9: 0xe991, + 0x1eea: 0xe9b1, 0x1eeb: 0xe9d1, 0x1eec: 0xe9f1, 0x1eed: 0xe9f1, 0x1eee: 0xea11, 0x1eef: 0xea31, + 0x1ef0: 0xea51, 0x1ef1: 0xea71, 0x1ef2: 0xea91, 0x1ef3: 0xeab1, 0x1ef4: 0xead1, 0x1ef5: 0x9055, + 0x1ef6: 0xeaf1, 0x1ef7: 0x9075, 0x1ef8: 0xeb11, 0x1ef9: 0x9095, 0x1efa: 0xeb31, 0x1efb: 0x90b5, + 0x1efc: 0x90d5, 0x1efd: 0x90f5, 0x1efe: 0xeb51, 0x1eff: 0xeb71, + // Block 0x7c, offset 0x1f00 + 0x1f00: 0xeb91, 0x1f01: 0x9115, 0x1f02: 0x9135, 0x1f03: 0x9155, 0x1f04: 0x9175, 0x1f05: 0xebb1, + 0x1f06: 0xebd1, 0x1f07: 0xebd1, 0x1f08: 0xebf1, 0x1f09: 0xec11, 0x1f0a: 0xec31, 0x1f0b: 0xec51, + 0x1f0c: 0xec71, 0x1f0d: 0x9195, 0x1f0e: 0xec91, 0x1f0f: 0xecb1, 0x1f10: 0xecd1, 0x1f11: 0xecf1, + 0x1f12: 0x91b5, 0x1f13: 0xed11, 0x1f14: 0x91d5, 0x1f15: 0x91f5, 0x1f16: 0xed31, 0x1f17: 0xed51, + 0x1f18: 0xed71, 0x1f19: 0xed91, 0x1f1a: 0xedb1, 0x1f1b: 0xedd1, 0x1f1c: 0x9215, 0x1f1d: 0x9235, + 0x1f1e: 0x9255, 0x1f1f: 0x2040, 0x1f20: 0xedf1, 0x1f21: 0x9275, 0x1f22: 0xee11, 0x1f23: 0xee31, + 0x1f24: 0xee51, 0x1f25: 0x9295, 0x1f26: 0xee71, 0x1f27: 0xee91, 0x1f28: 0xeeb1, 0x1f29: 0xeed1, + 0x1f2a: 0xeef1, 0x1f2b: 0x92b5, 0x1f2c: 0xef11, 0x1f2d: 0xef31, 0x1f2e: 0xef51, 0x1f2f: 0xef71, + 0x1f30: 0xef91, 0x1f31: 0xefb1, 0x1f32: 0x92d5, 0x1f33: 0x92f5, 0x1f34: 0xefd1, 0x1f35: 0x9315, + 0x1f36: 0xeff1, 0x1f37: 0x9335, 0x1f38: 0xf011, 0x1f39: 0xf031, 0x1f3a: 0xf051, 0x1f3b: 0x9355, + 0x1f3c: 0x9375, 0x1f3d: 0xf071, 0x1f3e: 0x9395, 0x1f3f: 0xf091, + // Block 0x7d, offset 0x1f40 + 0x1f40: 0xf6d1, 0x1f41: 0xf6f1, 0x1f42: 0xf711, 0x1f43: 0xf731, 0x1f44: 0xf751, 0x1f45: 0x9555, + 0x1f46: 0xf771, 0x1f47: 0xf791, 0x1f48: 0xf7b1, 0x1f49: 0xf7d1, 0x1f4a: 0xf7f1, 0x1f4b: 0x9575, + 0x1f4c: 0x9595, 0x1f4d: 0xf811, 0x1f4e: 0xf831, 0x1f4f: 0xf851, 0x1f50: 0xf871, 0x1f51: 0xf891, + 0x1f52: 0xf8b1, 0x1f53: 0x95b5, 0x1f54: 0xf8d1, 0x1f55: 0xf8f1, 0x1f56: 0xf911, 0x1f57: 0xf931, + 0x1f58: 0x95d5, 0x1f59: 0x95f5, 0x1f5a: 0xf951, 0x1f5b: 0xf971, 0x1f5c: 0xf991, 0x1f5d: 0x9615, + 0x1f5e: 0xf9b1, 0x1f5f: 0xf9d1, 0x1f60: 0x684d, 0x1f61: 0x9635, 0x1f62: 0xf9f1, 0x1f63: 0xfa11, + 0x1f64: 0xfa31, 0x1f65: 0x9655, 0x1f66: 0xfa51, 0x1f67: 0xfa71, 0x1f68: 0xfa91, 0x1f69: 0xfab1, + 0x1f6a: 0xfad1, 0x1f6b: 0xfaf1, 0x1f6c: 0xfb11, 0x1f6d: 0x9675, 0x1f6e: 0xfb31, 0x1f6f: 0xfb51, + 0x1f70: 0xfb71, 0x1f71: 0x9695, 0x1f72: 0xfb91, 0x1f73: 0xfbb1, 0x1f74: 0xfbd1, 0x1f75: 0xfbf1, + 0x1f76: 0x7b6d, 0x1f77: 0x96b5, 0x1f78: 0xfc11, 0x1f79: 0xfc31, 0x1f7a: 0xfc51, 0x1f7b: 0x96d5, + 0x1f7c: 0xfc71, 0x1f7d: 0x96f5, 0x1f7e: 0xfc91, 0x1f7f: 0xfc91, + // Block 0x7e, offset 0x1f80 + 0x1f80: 0xfcb1, 0x1f81: 0x9715, 0x1f82: 0xfcd1, 0x1f83: 0xfcf1, 0x1f84: 0xfd11, 0x1f85: 0xfd31, + 0x1f86: 0xfd51, 0x1f87: 0xfd71, 0x1f88: 0xfd91, 0x1f89: 0x9735, 0x1f8a: 0xfdb1, 0x1f8b: 0xfdd1, + 0x1f8c: 0xfdf1, 0x1f8d: 0xfe11, 0x1f8e: 0xfe31, 0x1f8f: 0xfe51, 0x1f90: 0x9755, 0x1f91: 0xfe71, + 0x1f92: 0x9775, 0x1f93: 0x9795, 0x1f94: 0x97b5, 0x1f95: 0xfe91, 0x1f96: 0xfeb1, 0x1f97: 0xfed1, + 0x1f98: 0xfef1, 0x1f99: 0xff11, 0x1f9a: 0xff31, 0x1f9b: 0xff51, 0x1f9c: 0xff71, 0x1f9d: 0x97d5, + 0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040, + 0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040, + 0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040, + 0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040, + 0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040, + 0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040, +} + +// idnaIndex: 36 blocks, 2304 entries, 4608 bytes +// Block 0 is the zero block. +var idnaIndex = [2304]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05, + 0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a, + 0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84, + 0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07, + 0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c, + 0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21, + // Block 0x4, offset 0x100 + 0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16, + 0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d, + 0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91, + 0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96, + // Block 0x5, offset 0x140 + 0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e, + 0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6, + 0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f, + 0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae, + 0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6, + 0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe, + 0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3, + 0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c, + // Block 0x6, offset 0x180 + 0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b, + 0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b, + 0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b, + 0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b, + 0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b, + 0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0x9b, + 0x1b0: 0xd0, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd1, 0x1b5: 0xd2, 0x1b6: 0xd3, 0x1b7: 0xd4, + 0x1b8: 0xd5, 0x1b9: 0xd6, 0x1ba: 0xd7, 0x1bb: 0xd8, 0x1bc: 0xd9, 0x1bd: 0xda, 0x1be: 0xdb, 0x1bf: 0x37, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x38, 0x1c1: 0xdc, 0x1c2: 0xdd, 0x1c3: 0xde, 0x1c4: 0xdf, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe0, + 0x1c8: 0xe1, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41, + 0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f, + 0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f, + 0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f, + 0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f, + 0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f, + 0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f, + // Block 0x8, offset 0x200 + 0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f, + 0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f, + 0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f, + 0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f, + 0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f, + 0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f, + 0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b, + 0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f, + // Block 0x9, offset 0x240 + 0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f, + 0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f, + 0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f, + 0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f, + 0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f, + 0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f, + 0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f, + 0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f, + // Block 0xa, offset 0x280 + 0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f, + 0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f, + 0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f, + 0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f, + 0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f, + 0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f, + 0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f, + 0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe2, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f, + 0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f, + 0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe3, 0x2d3: 0xe4, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f, + 0x2d8: 0xe5, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe6, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe7, + 0x2e0: 0xe8, 0x2e1: 0xe9, 0x2e2: 0xea, 0x2e3: 0xeb, 0x2e4: 0xec, 0x2e5: 0xed, 0x2e6: 0xee, 0x2e7: 0xef, + 0x2e8: 0xf0, 0x2e9: 0xf1, 0x2ea: 0xf2, 0x2eb: 0xf3, 0x2ec: 0xf4, 0x2ed: 0xf5, 0x2ee: 0xf6, 0x2ef: 0xf7, + 0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f, + 0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f, + // Block 0xc, offset 0x300 + 0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f, + 0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f, + 0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f, + 0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf8, 0x31f: 0xf9, + // Block 0xd, offset 0x340 + 0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba, + 0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba, + 0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba, + 0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba, + 0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba, + 0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba, + 0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba, + 0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba, + // Block 0xe, offset 0x380 + 0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba, + 0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba, + 0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba, + 0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba, + 0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfa, 0x3a5: 0xfb, 0x3a6: 0xfc, 0x3a7: 0xfd, + 0x3a8: 0x47, 0x3a9: 0xfe, 0x3aa: 0xff, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c, + 0x3b0: 0x100, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x101, 0x3b7: 0x52, + 0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x102, 0x3c1: 0x103, 0x3c2: 0x9f, 0x3c3: 0x104, 0x3c4: 0x105, 0x3c5: 0x9b, 0x3c6: 0x106, 0x3c7: 0x107, + 0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x108, 0x3cb: 0x109, 0x3cc: 0x10a, 0x3cd: 0x10b, 0x3ce: 0x10c, 0x3cf: 0x10d, + 0x3d0: 0x10e, 0x3d1: 0x9f, 0x3d2: 0x10f, 0x3d3: 0x110, 0x3d4: 0x111, 0x3d5: 0x112, 0x3d6: 0xba, 0x3d7: 0xba, + 0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x113, 0x3dd: 0x114, 0x3de: 0xba, 0x3df: 0xba, + 0x3e0: 0x115, 0x3e1: 0x116, 0x3e2: 0x117, 0x3e3: 0x118, 0x3e4: 0x119, 0x3e5: 0xba, 0x3e6: 0x11a, 0x3e7: 0x11b, + 0x3e8: 0x11c, 0x3e9: 0x11d, 0x3ea: 0x11e, 0x3eb: 0x5b, 0x3ec: 0x11f, 0x3ed: 0x120, 0x3ee: 0x5c, 0x3ef: 0xba, + 0x3f0: 0x121, 0x3f1: 0x122, 0x3f2: 0x123, 0x3f3: 0x124, 0x3f4: 0x125, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba, + 0x3f8: 0xba, 0x3f9: 0x126, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0x127, 0x3fd: 0x128, 0x3fe: 0xba, 0x3ff: 0x129, + // Block 0x10, offset 0x400 + 0x400: 0x12a, 0x401: 0x12b, 0x402: 0x12c, 0x403: 0x12d, 0x404: 0x12e, 0x405: 0x12f, 0x406: 0x130, 0x407: 0x131, + 0x408: 0x132, 0x409: 0xba, 0x40a: 0x133, 0x40b: 0x134, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba, + 0x410: 0x135, 0x411: 0x136, 0x412: 0x137, 0x413: 0x138, 0x414: 0xba, 0x415: 0xba, 0x416: 0x139, 0x417: 0x13a, + 0x418: 0x13b, 0x419: 0x13c, 0x41a: 0x13d, 0x41b: 0x13e, 0x41c: 0x13f, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba, + 0x420: 0x140, 0x421: 0xba, 0x422: 0x141, 0x423: 0x142, 0x424: 0xba, 0x425: 0xba, 0x426: 0x143, 0x427: 0x144, + 0x428: 0x145, 0x429: 0x146, 0x42a: 0x147, 0x42b: 0x148, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba, + 0x430: 0x149, 0x431: 0x14a, 0x432: 0x14b, 0x433: 0xba, 0x434: 0x14c, 0x435: 0x14d, 0x436: 0x14e, 0x437: 0xba, + 0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0x14f, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0x150, + // Block 0x11, offset 0x440 + 0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f, + 0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x151, 0x44f: 0xba, + 0x450: 0x9b, 0x451: 0x152, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x153, 0x456: 0xba, 0x457: 0xba, + 0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba, + 0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba, + 0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba, + 0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba, + 0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba, + // Block 0x12, offset 0x480 + 0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f, + 0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f, + 0x490: 0x154, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba, + 0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba, + 0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba, + 0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba, + 0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba, + 0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba, + // Block 0x13, offset 0x4c0 + 0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba, + 0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba, + 0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f, + 0x4d8: 0x9f, 0x4d9: 0x155, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba, + 0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba, + 0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba, + 0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba, + 0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba, + // Block 0x14, offset 0x500 + 0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba, + 0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba, + 0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba, + 0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba, + 0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f, + 0x528: 0x148, 0x529: 0x156, 0x52a: 0xba, 0x52b: 0x157, 0x52c: 0x158, 0x52d: 0x159, 0x52e: 0x15a, 0x52f: 0xba, + 0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba, + 0x538: 0xba, 0x539: 0x15b, 0x53a: 0x15c, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x15d, 0x53e: 0x15e, 0x53f: 0x15f, + // Block 0x15, offset 0x540 + 0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f, + 0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f, + 0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f, + 0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x160, + 0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f, + 0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x161, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba, + 0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba, + 0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba, + // Block 0x16, offset 0x580 + 0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x162, 0x585: 0x163, 0x586: 0x9f, 0x587: 0x9f, + 0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x164, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba, + 0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba, + 0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba, + 0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba, + 0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba, + 0x5b0: 0x9f, 0x5b1: 0x165, 0x5b2: 0x166, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba, + 0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x167, 0x5c4: 0x168, 0x5c5: 0x169, 0x5c6: 0x16a, 0x5c7: 0x16b, + 0x5c8: 0x9b, 0x5c9: 0x16c, 0x5ca: 0xba, 0x5cb: 0x16d, 0x5cc: 0x9b, 0x5cd: 0x16e, 0x5ce: 0xba, 0x5cf: 0xba, + 0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66, + 0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e, + 0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b, + 0x5e8: 0x16f, 0x5e9: 0x170, 0x5ea: 0x171, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba, + 0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba, + 0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba, + // Block 0x18, offset 0x600 + 0x600: 0x172, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0x173, 0x605: 0x174, 0x606: 0xba, 0x607: 0xba, + 0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0x175, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba, + 0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba, + 0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba, + 0x620: 0x121, 0x621: 0x121, 0x622: 0x121, 0x623: 0x176, 0x624: 0x6f, 0x625: 0x177, 0x626: 0xba, 0x627: 0xba, + 0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba, + 0x630: 0xba, 0x631: 0x178, 0x632: 0x179, 0x633: 0xba, 0x634: 0x17a, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba, + 0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x17b, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba, + // Block 0x19, offset 0x640 + 0x640: 0x17c, 0x641: 0x9b, 0x642: 0x17d, 0x643: 0x17e, 0x644: 0x73, 0x645: 0x74, 0x646: 0x17f, 0x647: 0x180, + 0x648: 0x75, 0x649: 0x181, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b, + 0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b, + 0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x182, 0x65c: 0x9b, 0x65d: 0x183, 0x65e: 0x9b, 0x65f: 0x184, + 0x660: 0x185, 0x661: 0x186, 0x662: 0x187, 0x663: 0xba, 0x664: 0x188, 0x665: 0x189, 0x666: 0x18a, 0x667: 0x18b, + 0x668: 0x9b, 0x669: 0x18c, 0x66a: 0x18d, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba, + 0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba, + 0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba, + // Block 0x1a, offset 0x680 + 0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f, + 0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f, + 0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f, + 0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x18e, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f, + 0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f, + 0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f, + 0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f, + 0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f, + 0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f, + 0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f, + 0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x18f, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f, + 0x6e0: 0x190, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f, + 0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f, + 0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f, + 0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f, + // Block 0x1c, offset 0x700 + 0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f, + 0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f, + 0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f, + 0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f, + 0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f, + 0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f, + 0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f, + 0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x191, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f, + // Block 0x1d, offset 0x740 + 0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f, + 0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f, + 0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f, + 0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f, + 0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f, + 0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x192, + 0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba, + 0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba, + // Block 0x1e, offset 0x780 + 0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba, + 0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba, + 0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba, + 0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba, + 0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x193, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x194, 0x7a7: 0x7b, + 0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba, + 0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba, + 0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba, + // Block 0x1f, offset 0x7c0 + 0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07, + 0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17, + 0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07, + 0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c, + 0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b, + 0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b, + // Block 0x20, offset 0x800 + 0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b, + 0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b, + 0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b, + 0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b, + 0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b, + 0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b, + 0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b, + 0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b, + // Block 0x21, offset 0x840 + 0x840: 0x195, 0x841: 0x196, 0x842: 0xba, 0x843: 0xba, 0x844: 0x197, 0x845: 0x197, 0x846: 0x197, 0x847: 0x198, + 0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba, + 0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba, + 0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba, + 0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba, + 0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba, + 0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba, + 0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba, + // Block 0x22, offset 0x880 + 0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b, + 0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b, + 0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b, + 0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b, + 0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b, + 0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b, + 0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b, + 0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b, + 0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b, +} + +// idnaSparseOffset: 284 entries, 568 bytes +var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x86, 0x8b, 0x94, 0xa4, 0xb2, 0xbe, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x224, 0x22e, 0x23a, 0x246, 0x252, 0x25a, 0x25f, 0x26c, 0x27d, 0x281, 0x28c, 0x290, 0x299, 0x2a1, 0x2a7, 0x2ac, 0x2af, 0x2b3, 0x2b9, 0x2bd, 0x2c1, 0x2c5, 0x2cb, 0x2d3, 0x2da, 0x2e5, 0x2ef, 0x2f3, 0x2f6, 0x2fc, 0x300, 0x302, 0x305, 0x307, 0x30a, 0x314, 0x317, 0x326, 0x32a, 0x32f, 0x332, 0x336, 0x33b, 0x340, 0x346, 0x352, 0x361, 0x367, 0x36b, 0x37a, 0x37f, 0x387, 0x391, 0x39c, 0x3a4, 0x3b5, 0x3be, 0x3ce, 0x3db, 0x3e5, 0x3ea, 0x3f7, 0x3fb, 0x400, 0x402, 0x406, 0x408, 0x40c, 0x415, 0x41b, 0x41f, 0x42f, 0x439, 0x43e, 0x441, 0x447, 0x44e, 0x453, 0x457, 0x45d, 0x462, 0x46b, 0x470, 0x476, 0x47d, 0x484, 0x48b, 0x48f, 0x494, 0x497, 0x49c, 0x4a8, 0x4ae, 0x4b3, 0x4ba, 0x4c2, 0x4c7, 0x4cb, 0x4db, 0x4e2, 0x4e6, 0x4ea, 0x4f1, 0x4f3, 0x4f6, 0x4f9, 0x4fd, 0x506, 0x50a, 0x512, 0x51a, 0x51e, 0x524, 0x52d, 0x539, 0x540, 0x549, 0x553, 0x55a, 0x568, 0x575, 0x582, 0x58b, 0x58f, 0x59f, 0x5a7, 0x5b2, 0x5bb, 0x5c1, 0x5c9, 0x5d2, 0x5dd, 0x5e0, 0x5ec, 0x5f5, 0x5f8, 0x5fd, 0x602, 0x60f, 0x61a, 0x623, 0x62d, 0x630, 0x63a, 0x643, 0x64f, 0x65c, 0x669, 0x677, 0x67e, 0x682, 0x685, 0x68a, 0x68d, 0x692, 0x695, 0x69c, 0x6a3, 0x6a7, 0x6b2, 0x6b5, 0x6b8, 0x6bb, 0x6c1, 0x6c7, 0x6cd, 0x6d0, 0x6d3, 0x6d6, 0x6dd, 0x6e0, 0x6e5, 0x6ef, 0x6f2, 0x6f6, 0x705, 0x711, 0x715, 0x71a, 0x71e, 0x723, 0x727, 0x72c, 0x735, 0x740, 0x746, 0x74c, 0x752, 0x758, 0x761, 0x764, 0x767, 0x76b, 0x76f, 0x773, 0x779, 0x77f, 0x784, 0x787, 0x797, 0x79e, 0x7a1, 0x7a6, 0x7aa, 0x7b0, 0x7b5, 0x7b9, 0x7bf, 0x7c5, 0x7c9, 0x7d2, 0x7d7, 0x7da, 0x7dd, 0x7e1, 0x7e5, 0x7e8, 0x7f8, 0x809, 0x80e, 0x810, 0x812} + +// idnaSparseValues: 2069 entries, 8276 bytes +var idnaSparseValues = [2069]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x07}, + {value: 0xe105, lo: 0x80, hi: 0x96}, + {value: 0x0018, lo: 0x97, hi: 0x97}, + {value: 0xe105, lo: 0x98, hi: 0x9e}, + {value: 0x001f, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbf}, + // Block 0x1, offset 0x8 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0xe01d, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0335, lo: 0x83, hi: 0x83}, + {value: 0x034d, lo: 0x84, hi: 0x84}, + {value: 0x0365, lo: 0x85, hi: 0x85}, + {value: 0xe00d, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0xe00d, lo: 0x88, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x89}, + {value: 0xe00d, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe00d, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0x8d}, + {value: 0xe00d, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0xbf}, + // Block 0x2, offset 0x19 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x0249, lo: 0xb0, hi: 0xb0}, + {value: 0x037d, lo: 0xb1, hi: 0xb1}, + {value: 0x0259, lo: 0xb2, hi: 0xb2}, + {value: 0x0269, lo: 0xb3, hi: 0xb3}, + {value: 0x034d, lo: 0xb4, hi: 0xb4}, + {value: 0x0395, lo: 0xb5, hi: 0xb5}, + {value: 0xe1bd, lo: 0xb6, hi: 0xb6}, + {value: 0x0279, lo: 0xb7, hi: 0xb7}, + {value: 0x0289, lo: 0xb8, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbf}, + // Block 0x3, offset 0x25 + {value: 0x0000, lo: 0x01}, + {value: 0x3308, lo: 0x80, hi: 0xbf}, + // Block 0x4, offset 0x27 + {value: 0x0000, lo: 0x04}, + {value: 0x03f5, lo: 0x80, hi: 0x8f}, + {value: 0xe105, lo: 0x90, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x5, offset 0x2c + {value: 0x0000, lo: 0x06}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x0545, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x0008, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x6, offset 0x33 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0401, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0018, lo: 0x89, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x7, offset 0x3e + {value: 0x0000, lo: 0x0b}, + {value: 0x0818, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x82}, + {value: 0x0818, lo: 0x83, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x85}, + {value: 0x0818, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xae}, + {value: 0x0808, lo: 0xaf, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x8, offset 0x4a + {value: 0x0000, lo: 0x03}, + {value: 0x0a08, lo: 0x80, hi: 0x87}, + {value: 0x0c08, lo: 0x88, hi: 0x99}, + {value: 0x0a08, lo: 0x9a, hi: 0xbf}, + // Block 0x9, offset 0x4e + {value: 0x0000, lo: 0x0e}, + {value: 0x3308, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0c08, lo: 0x8d, hi: 0x8d}, + {value: 0x0a08, lo: 0x8e, hi: 0x98}, + {value: 0x0c08, lo: 0x99, hi: 0x9b}, + {value: 0x0a08, lo: 0x9c, hi: 0xaa}, + {value: 0x0c08, lo: 0xab, hi: 0xac}, + {value: 0x0a08, lo: 0xad, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb1}, + {value: 0x0a08, lo: 0xb2, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb4}, + {value: 0x0a08, lo: 0xb5, hi: 0xb7}, + {value: 0x0c08, lo: 0xb8, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbf}, + // Block 0xa, offset 0x5d + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xb0}, + {value: 0x0808, lo: 0xb1, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xb, offset 0x62 + {value: 0x0000, lo: 0x09}, + {value: 0x0808, lo: 0x80, hi: 0x89}, + {value: 0x0a08, lo: 0x8a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbf}, + // Block 0xc, offset 0x6c + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x99}, + {value: 0x0808, lo: 0x9a, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa3}, + {value: 0x0808, lo: 0xa4, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa7}, + {value: 0x0808, lo: 0xa8, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0818, lo: 0xb0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xd, offset 0x78 + {value: 0x0000, lo: 0x0d}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0a08, lo: 0xa0, hi: 0xa9}, + {value: 0x0c08, lo: 0xaa, hi: 0xac}, + {value: 0x0808, lo: 0xad, hi: 0xad}, + {value: 0x0c08, lo: 0xae, hi: 0xae}, + {value: 0x0a08, lo: 0xaf, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb2}, + {value: 0x0a08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0a08, lo: 0xb6, hi: 0xb8}, + {value: 0x0c08, lo: 0xb9, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0xe, offset 0x86 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x92}, + {value: 0x3308, lo: 0x93, hi: 0xa1}, + {value: 0x0840, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xbf}, + // Block 0xf, offset 0x8b + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x10, offset 0x94 + {value: 0x0000, lo: 0x0f}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x85}, + {value: 0x3008, lo: 0x86, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8c}, + {value: 0x3b08, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x11, offset 0xa4 + {value: 0x0000, lo: 0x0d}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x12, offset 0xb2 + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xba}, + {value: 0x3b08, lo: 0xbb, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x13, offset 0xbe + {value: 0x0000, lo: 0x0b}, + {value: 0x0040, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x14, offset 0xca + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x89}, + {value: 0x3b08, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x3008, lo: 0x98, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x15, offset 0xdb + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb2}, + {value: 0x08f1, lo: 0xb3, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb9}, + {value: 0x3b08, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0x16, offset 0xe5 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x8e}, + {value: 0x0018, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0xbf}, + // Block 0x17, offset 0xec + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0961, lo: 0x9c, hi: 0x9c}, + {value: 0x0999, lo: 0x9d, hi: 0x9d}, + {value: 0x0008, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x18, offset 0xf9 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe03d, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x19, offset 0x10a + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0x1a, offset 0x111 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0x11c + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xa1}, + {value: 0x3008, lo: 0xa2, hi: 0xa4}, + {value: 0x0008, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xbf}, + // Block 0x1c, offset 0x12b + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x8c}, + {value: 0x3308, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x3008, lo: 0x9a, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x1d, offset 0x139 + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x86}, + {value: 0x055d, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8c}, + {value: 0x055d, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0xe105, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0x1e, offset 0x143 + {value: 0x0000, lo: 0x01}, + {value: 0x0018, lo: 0x80, hi: 0xbf}, + // Block 0x1f, offset 0x145 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa0}, + {value: 0x2018, lo: 0xa1, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x20, offset 0x14a + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa7}, + {value: 0x2018, lo: 0xa8, hi: 0xbf}, + // Block 0x21, offset 0x14d + {value: 0x0000, lo: 0x02}, + {value: 0x2018, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0xbf}, + // Block 0x22, offset 0x150 + {value: 0x0000, lo: 0x01}, + {value: 0x0008, lo: 0x80, hi: 0xbf}, + // Block 0x23, offset 0x152 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x24, offset 0x15e + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x25, offset 0x169 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x26, offset 0x171 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x27, offset 0x177 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x28, offset 0x17d + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x29, offset 0x182 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x2a, offset 0x187 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x2b, offset 0x18a + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xbf}, + // Block 0x2c, offset 0x18e + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x2d, offset 0x194 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x2e, offset 0x199 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x3b08, lo: 0x94, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x2f, offset 0x1a5 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x30, offset 0x1af + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xb3}, + {value: 0x3340, lo: 0xb4, hi: 0xb5}, + {value: 0x3008, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x31, offset 0x1b5 + {value: 0x0000, lo: 0x10}, + {value: 0x3008, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x91}, + {value: 0x3b08, lo: 0x92, hi: 0x92}, + {value: 0x3308, lo: 0x93, hi: 0x93}, + {value: 0x0018, lo: 0x94, hi: 0x96}, + {value: 0x0008, lo: 0x97, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x32, offset 0x1c6 + {value: 0x0000, lo: 0x09}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x86}, + {value: 0x0218, lo: 0x87, hi: 0x87}, + {value: 0x0018, lo: 0x88, hi: 0x8a}, + {value: 0x33c0, lo: 0x8b, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0208, lo: 0xa0, hi: 0xbf}, + // Block 0x33, offset 0x1d0 + {value: 0x0000, lo: 0x02}, + {value: 0x0208, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x34, offset 0x1d3 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0208, lo: 0x87, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xa9}, + {value: 0x0208, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x35, offset 0x1db + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0x36, offset 0x1de + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x37, offset 0x1eb + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x38, offset 0x1f3 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x39, offset 0x1f7 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0028, lo: 0x9a, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xbf}, + // Block 0x3a, offset 0x1fe + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x3308, lo: 0x97, hi: 0x98}, + {value: 0x3008, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x3b, offset 0x206 + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x94}, + {value: 0x3008, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3b08, lo: 0xa0, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xac}, + {value: 0x3008, lo: 0xad, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x216 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xbd}, + {value: 0x3318, lo: 0xbe, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x222 + {value: 0x0000, lo: 0x01}, + {value: 0x0040, lo: 0x80, hi: 0xbf}, + // Block 0x3e, offset 0x224 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3008, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbf}, + // Block 0x3f, offset 0x22e + {value: 0x0000, lo: 0x0b}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x3808, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x40, offset 0x23a + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3808, lo: 0xaa, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xbf}, + // Block 0x41, offset 0x246 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3008, lo: 0xaa, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3808, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbf}, + // Block 0x42, offset 0x252 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x3008, lo: 0xa4, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbf}, + // Block 0x43, offset 0x25a + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x44, offset 0x25f + {value: 0x0000, lo: 0x0c}, + {value: 0x0e29, lo: 0x80, hi: 0x80}, + {value: 0x0e41, lo: 0x81, hi: 0x81}, + {value: 0x0e59, lo: 0x82, hi: 0x82}, + {value: 0x0e71, lo: 0x83, hi: 0x83}, + {value: 0x0e89, lo: 0x84, hi: 0x85}, + {value: 0x0ea1, lo: 0x86, hi: 0x86}, + {value: 0x0eb9, lo: 0x87, hi: 0x87}, + {value: 0x057d, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x059d, lo: 0x90, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbc}, + {value: 0x059d, lo: 0xbd, hi: 0xbf}, + // Block 0x45, offset 0x26c + {value: 0x0000, lo: 0x10}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x92}, + {value: 0x0018, lo: 0x93, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa8}, + {value: 0x0008, lo: 0xa9, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x46, offset 0x27d + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0x47, offset 0x281 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x87}, + {value: 0xe045, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0xe045, lo: 0x98, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0xe045, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbf}, + // Block 0x48, offset 0x28c + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x3318, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbf}, + // Block 0x49, offset 0x290 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x24c1, lo: 0x89, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x4a, offset 0x299 + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x24f1, lo: 0xac, hi: 0xac}, + {value: 0x2529, lo: 0xad, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xae}, + {value: 0x2579, lo: 0xaf, hi: 0xaf}, + {value: 0x25b1, lo: 0xb0, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0x4b, offset 0x2a1 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x9f}, + {value: 0x0080, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xad}, + {value: 0x0080, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x4c, offset 0x2a7 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xa8}, + {value: 0x09dd, lo: 0xa9, hi: 0xa9}, + {value: 0x09fd, lo: 0xaa, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xbf}, + // Block 0x4d, offset 0x2ac + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xbf}, + // Block 0x4e, offset 0x2af + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x28c1, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x4f, offset 0x2b3 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0e7e, lo: 0xb4, hi: 0xb4}, + {value: 0x292a, lo: 0xb5, hi: 0xb5}, + {value: 0x0e9e, lo: 0xb6, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x50, offset 0x2b9 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x9b}, + {value: 0x2941, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0xbf}, + // Block 0x51, offset 0x2bd + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x52, offset 0x2c1 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0xbf}, + // Block 0x53, offset 0x2c5 + {value: 0x0000, lo: 0x05}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x03f5, lo: 0x90, hi: 0x9f}, + {value: 0x0ebd, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x54, offset 0x2cb + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x55, offset 0x2d3 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xae}, + {value: 0xe075, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0x56, offset 0x2da + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x57, offset 0x2e5 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xbf}, + // Block 0x58, offset 0x2ef + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x59, offset 0x2f3 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0x5a, offset 0x2f6 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9e}, + {value: 0x0ef5, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x5b, offset 0x2fc + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb2}, + {value: 0x0f15, lo: 0xb3, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x5c, offset 0x300 + {value: 0x0020, lo: 0x01}, + {value: 0x0f35, lo: 0x80, hi: 0xbf}, + // Block 0x5d, offset 0x302 + {value: 0x0020, lo: 0x02}, + {value: 0x1735, lo: 0x80, hi: 0x8f}, + {value: 0x1915, lo: 0x90, hi: 0xbf}, + // Block 0x5e, offset 0x305 + {value: 0x0020, lo: 0x01}, + {value: 0x1f15, lo: 0x80, hi: 0xbf}, + // Block 0x5f, offset 0x307 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x60, offset 0x30a + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9a}, + {value: 0x29e2, lo: 0x9b, hi: 0x9b}, + {value: 0x2a0a, lo: 0x9c, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9e}, + {value: 0x2a31, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xbf}, + // Block 0x61, offset 0x314 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbe}, + {value: 0x2a69, lo: 0xbf, hi: 0xbf}, + // Block 0x62, offset 0x317 + {value: 0x0000, lo: 0x0e}, + {value: 0x0040, lo: 0x80, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb0}, + {value: 0x2a35, lo: 0xb1, hi: 0xb1}, + {value: 0x2a55, lo: 0xb2, hi: 0xb2}, + {value: 0x2a75, lo: 0xb3, hi: 0xb3}, + {value: 0x2a95, lo: 0xb4, hi: 0xb4}, + {value: 0x2a75, lo: 0xb5, hi: 0xb5}, + {value: 0x2ab5, lo: 0xb6, hi: 0xb6}, + {value: 0x2ad5, lo: 0xb7, hi: 0xb7}, + {value: 0x2af5, lo: 0xb8, hi: 0xb9}, + {value: 0x2b15, lo: 0xba, hi: 0xbb}, + {value: 0x2b35, lo: 0xbc, hi: 0xbd}, + {value: 0x2b15, lo: 0xbe, hi: 0xbf}, + // Block 0x63, offset 0x326 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x64, offset 0x32a + {value: 0x0030, lo: 0x04}, + {value: 0x2aa2, lo: 0x80, hi: 0x9d}, + {value: 0x305a, lo: 0x9e, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x30a2, lo: 0xa0, hi: 0xbf}, + // Block 0x65, offset 0x32f + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x66, offset 0x332 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x67, offset 0x336 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x68, offset 0x33b + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xbf}, + // Block 0x69, offset 0x340 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb1}, + {value: 0x0018, lo: 0xb2, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6a, offset 0x346 + {value: 0x0000, lo: 0x0b}, + {value: 0x0040, lo: 0x80, hi: 0x81}, + {value: 0xe00d, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0x83}, + {value: 0x03f5, lo: 0x84, hi: 0x84}, + {value: 0x1329, lo: 0x85, hi: 0x85}, + {value: 0x447d, lo: 0x86, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0xb6}, + {value: 0x0008, lo: 0xb7, hi: 0xb7}, + {value: 0x2009, lo: 0xb8, hi: 0xb8}, + {value: 0x6e89, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xbf}, + // Block 0x6b, offset 0x352 + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x3308, lo: 0x8b, hi: 0x8b}, + {value: 0x0008, lo: 0x8c, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x6c, offset 0x361 + {value: 0x0000, lo: 0x05}, + {value: 0x0208, lo: 0x80, hi: 0xb1}, + {value: 0x0108, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6d, offset 0x367 + {value: 0x0000, lo: 0x03}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xbf}, + // Block 0x6e, offset 0x36b + {value: 0x0000, lo: 0x0e}, + {value: 0x3008, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xba}, + {value: 0x0008, lo: 0xbb, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x6f, offset 0x37a + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x70, offset 0x37f + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x91}, + {value: 0x3008, lo: 0x92, hi: 0x92}, + {value: 0x3808, lo: 0x93, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x71, offset 0x387 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb9}, + {value: 0x3008, lo: 0xba, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x72, offset 0x391 + {value: 0x0000, lo: 0x0a}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x73, offset 0x39c + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x74, offset 0x3a4 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8c}, + {value: 0x3008, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbd}, + {value: 0x0008, lo: 0xbe, hi: 0xbf}, + // Block 0x75, offset 0x3b5 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x76, offset 0x3be + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x9a}, + {value: 0x0008, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3b08, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x77, offset 0x3ce + {value: 0x0000, lo: 0x0c}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x90}, + {value: 0x0008, lo: 0x91, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x78, offset 0x3db + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x449d, lo: 0x9c, hi: 0x9c}, + {value: 0x44b5, lo: 0x9d, hi: 0x9d}, + {value: 0x2971, lo: 0x9e, hi: 0x9e}, + {value: 0xe06d, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x44cd, lo: 0xb0, hi: 0xbf}, + // Block 0x79, offset 0x3e5 + {value: 0x0000, lo: 0x04}, + {value: 0x44ed, lo: 0x80, hi: 0x8f}, + {value: 0x450d, lo: 0x90, hi: 0x9f}, + {value: 0x452d, lo: 0xa0, hi: 0xaf}, + {value: 0x450d, lo: 0xb0, hi: 0xbf}, + // Block 0x7a, offset 0x3ea + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3b08, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x7b, offset 0x3f7 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x7c, offset 0x3fb + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x7d, offset 0x400 + {value: 0x0020, lo: 0x01}, + {value: 0x454d, lo: 0x80, hi: 0xbf}, + // Block 0x7e, offset 0x402 + {value: 0x0020, lo: 0x03}, + {value: 0x4d4d, lo: 0x80, hi: 0x94}, + {value: 0x4b0d, lo: 0x95, hi: 0x95}, + {value: 0x4fed, lo: 0x96, hi: 0xbf}, + // Block 0x7f, offset 0x406 + {value: 0x0020, lo: 0x01}, + {value: 0x552d, lo: 0x80, hi: 0xbf}, + // Block 0x80, offset 0x408 + {value: 0x0020, lo: 0x03}, + {value: 0x5d2d, lo: 0x80, hi: 0x84}, + {value: 0x568d, lo: 0x85, hi: 0x85}, + {value: 0x5dcd, lo: 0x86, hi: 0xbf}, + // Block 0x81, offset 0x40c + {value: 0x0020, lo: 0x08}, + {value: 0x6b8d, lo: 0x80, hi: 0x8f}, + {value: 0x6d4d, lo: 0x90, hi: 0x90}, + {value: 0x6d8d, lo: 0x91, hi: 0xab}, + {value: 0x6ea1, lo: 0xac, hi: 0xac}, + {value: 0x70ed, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x710d, lo: 0xb0, hi: 0xbf}, + // Block 0x82, offset 0x415 + {value: 0x0020, lo: 0x05}, + {value: 0x730d, lo: 0x80, hi: 0xad}, + {value: 0x656d, lo: 0xae, hi: 0xae}, + {value: 0x78cd, lo: 0xaf, hi: 0xb5}, + {value: 0x6f8d, lo: 0xb6, hi: 0xb6}, + {value: 0x79ad, lo: 0xb7, hi: 0xbf}, + // Block 0x83, offset 0x41b + {value: 0x0028, lo: 0x03}, + {value: 0x7c21, lo: 0x80, hi: 0x82}, + {value: 0x7be1, lo: 0x83, hi: 0x83}, + {value: 0x7c99, lo: 0x84, hi: 0xbf}, + // Block 0x84, offset 0x41f + {value: 0x0038, lo: 0x0f}, + {value: 0x9db1, lo: 0x80, hi: 0x83}, + {value: 0x9e59, lo: 0x84, hi: 0x85}, + {value: 0x9e91, lo: 0x86, hi: 0x87}, + {value: 0x9ec9, lo: 0x88, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0xa089, lo: 0x92, hi: 0x97}, + {value: 0xa1a1, lo: 0x98, hi: 0x9c}, + {value: 0xa281, lo: 0x9d, hi: 0xb3}, + {value: 0x9d41, lo: 0xb4, hi: 0xb4}, + {value: 0x9db1, lo: 0xb5, hi: 0xb5}, + {value: 0xa789, lo: 0xb6, hi: 0xbb}, + {value: 0xa869, lo: 0xbc, hi: 0xbc}, + {value: 0xa7f9, lo: 0xbd, hi: 0xbd}, + {value: 0xa8d9, lo: 0xbe, hi: 0xbf}, + // Block 0x85, offset 0x42f + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x0008, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x86, offset 0x439 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0x87, offset 0x43e + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x88, offset 0x441 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x89, offset 0x447 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x8a, offset 0x44e + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x8b, offset 0x453 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x8c, offset 0x457 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x8d, offset 0x45d + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xbf}, + // Block 0x8e, offset 0x462 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x8f, offset 0x46b + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x90, offset 0x470 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0x91, offset 0x476 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x97}, + {value: 0x8b0d, lo: 0x98, hi: 0x9f}, + {value: 0x8b25, lo: 0xa0, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xbf}, + // Block 0x92, offset 0x47d + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x8b25, lo: 0xb0, hi: 0xb7}, + {value: 0x8b0d, lo: 0xb8, hi: 0xbf}, + // Block 0x93, offset 0x484 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x94, offset 0x48b + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x95, offset 0x48f + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xae}, + {value: 0x0018, lo: 0xaf, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x96, offset 0x494 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x97, offset 0x497 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xbf}, + // Block 0x98, offset 0x49c + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0808, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0808, lo: 0x8a, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb6}, + {value: 0x0808, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbb}, + {value: 0x0808, lo: 0xbc, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x0808, lo: 0xbf, hi: 0xbf}, + // Block 0x99, offset 0x4a8 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x96}, + {value: 0x0818, lo: 0x97, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb6}, + {value: 0x0818, lo: 0xb7, hi: 0xbf}, + // Block 0x9a, offset 0x4ae + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa6}, + {value: 0x0818, lo: 0xa7, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x9b, offset 0x4b3 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xba}, + {value: 0x0818, lo: 0xbb, hi: 0xbf}, + // Block 0x9c, offset 0x4ba + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0818, lo: 0x96, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbe}, + {value: 0x0818, lo: 0xbf, hi: 0xbf}, + // Block 0x9d, offset 0x4c2 + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbb}, + {value: 0x0818, lo: 0xbc, hi: 0xbd}, + {value: 0x0808, lo: 0xbe, hi: 0xbf}, + // Block 0x9e, offset 0x4c7 + {value: 0x0000, lo: 0x03}, + {value: 0x0818, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x0818, lo: 0x92, hi: 0xbf}, + // Block 0x9f, offset 0x4cb + {value: 0x0000, lo: 0x0f}, + {value: 0x0808, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x94}, + {value: 0x0808, lo: 0x95, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x98}, + {value: 0x0808, lo: 0x99, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xa0, offset 0x4db + {value: 0x0000, lo: 0x06}, + {value: 0x0818, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0818, lo: 0x90, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xbc}, + {value: 0x0818, lo: 0xbd, hi: 0xbf}, + // Block 0xa1, offset 0x4e2 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xa2, offset 0x4e6 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb8}, + {value: 0x0018, lo: 0xb9, hi: 0xbf}, + // Block 0xa3, offset 0x4ea + {value: 0x0000, lo: 0x06}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0818, lo: 0x98, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb7}, + {value: 0x0818, lo: 0xb8, hi: 0xbf}, + // Block 0xa4, offset 0x4f1 + {value: 0x0000, lo: 0x01}, + {value: 0x0808, lo: 0x80, hi: 0xbf}, + // Block 0xa5, offset 0x4f3 + {value: 0x0000, lo: 0x02}, + {value: 0x0808, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0xa6, offset 0x4f6 + {value: 0x0000, lo: 0x02}, + {value: 0x03dd, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xa7, offset 0x4f9 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xbf}, + // Block 0xa8, offset 0x4fd + {value: 0x0000, lo: 0x08}, + {value: 0x0908, lo: 0x80, hi: 0x80}, + {value: 0x0a08, lo: 0x81, hi: 0xa1}, + {value: 0x0c08, lo: 0xa2, hi: 0xa2}, + {value: 0x0a08, lo: 0xa3, hi: 0xa3}, + {value: 0x3308, lo: 0xa4, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0808, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xa9, offset 0x506 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0818, lo: 0xa0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xaa, offset 0x50a + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0xa6}, + {value: 0x0808, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0a08, lo: 0xb0, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb3}, + {value: 0x0a08, lo: 0xb4, hi: 0xbf}, + // Block 0xab, offset 0x512 + {value: 0x0000, lo: 0x07}, + {value: 0x0a08, lo: 0x80, hi: 0x84}, + {value: 0x0808, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x90}, + {value: 0x0a18, lo: 0x91, hi: 0x93}, + {value: 0x0c18, lo: 0x94, hi: 0x94}, + {value: 0x0818, lo: 0x95, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xac, offset 0x51a + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xad, offset 0x51e + {value: 0x0000, lo: 0x05}, + {value: 0x3008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xae, offset 0x524 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x91}, + {value: 0x0018, lo: 0x92, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xaf, offset 0x52d + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0xb0, offset 0x539 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xb1, offset 0x540 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb2}, + {value: 0x3b08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xbf}, + // Block 0xb2, offset 0x549 + {value: 0x0000, lo: 0x09}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xb3, offset 0x553 + {value: 0x0000, lo: 0x06}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xbe}, + {value: 0x3008, lo: 0xbf, hi: 0xbf}, + // Block 0xb4, offset 0x55a + {value: 0x0000, lo: 0x0d}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xb5, offset 0x568 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3808, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xb6, offset 0x575 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xb7, offset 0x582 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x3308, lo: 0x9f, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa9}, + {value: 0x3b08, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xb8, offset 0x58b + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xb9, offset 0x58f + {value: 0x0000, lo: 0x0f}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xba, offset 0x59f + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xbb, offset 0x5a7 + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x85}, + {value: 0x0018, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xbc, offset 0x5b2 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xbd, offset 0x5bb + {value: 0x0000, lo: 0x05}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9b}, + {value: 0x3308, lo: 0x9c, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0xbe, offset 0x5c1 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xbf, offset 0x5c9 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xc0, offset 0x5d2 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb5}, + {value: 0x3808, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xc1, offset 0x5dd + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0xbf}, + // Block 0xc2, offset 0x5e0 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbf}, + // Block 0xc3, offset 0x5ec + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0xc4, offset 0x5f5 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xbf}, + // Block 0xc5, offset 0x5f8 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0xc6, offset 0x5fd + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xbf}, + // Block 0xc7, offset 0x602 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x3008, lo: 0x91, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x99}, + {value: 0x3308, lo: 0x9a, hi: 0x9b}, + {value: 0x3008, lo: 0x9c, hi: 0x9f}, + {value: 0x3b08, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xa1}, + {value: 0x0018, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xa3}, + {value: 0x3008, lo: 0xa4, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xbf}, + // Block 0xc8, offset 0x60f + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xc9, offset 0x61a + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x3b08, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0xbf}, + // Block 0xca, offset 0x623 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x3308, lo: 0x8a, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x98}, + {value: 0x3b08, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xa2}, + {value: 0x0040, lo: 0xa3, hi: 0xbf}, + // Block 0xcb, offset 0x62d + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xcc, offset 0x630 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xcd, offset 0x63a + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xbf}, + // Block 0xce, offset 0x643 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xa9}, + {value: 0x3308, lo: 0xaa, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xcf, offset 0x64f + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xd0, offset 0x65c + {value: 0x0000, lo: 0x0c}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xbf}, + // Block 0xd1, offset 0x669 + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x3008, lo: 0x93, hi: 0x94}, + {value: 0x3308, lo: 0x95, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x96}, + {value: 0x3b08, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xbf}, + // Block 0xd2, offset 0x677 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xd3, offset 0x67e + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xd4, offset 0x682 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xd5, offset 0x685 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xd6, offset 0x68a + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0xbf}, + // Block 0xd7, offset 0x68d + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0340, lo: 0xb0, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xd8, offset 0x692 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0xbf}, + // Block 0xd9, offset 0x695 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xda, offset 0x69c + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xdb, offset 0x6a3 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0xdc, offset 0x6a7 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0xdd, offset 0x6b2 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0xde, offset 0x6b5 + {value: 0x0000, lo: 0x02}, + {value: 0xe105, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0xdf, offset 0x6b8 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0xe0, offset 0x6bb + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3008, lo: 0x91, hi: 0xbf}, + // Block 0xe1, offset 0x6c1 + {value: 0x0000, lo: 0x05}, + {value: 0x3008, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xe2, offset 0x6c7 + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa1}, + {value: 0x0018, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xbf}, + // Block 0xe3, offset 0x6cd + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0xe4, offset 0x6d0 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xe5, offset 0x6d3 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xbf}, + // Block 0xe6, offset 0x6d6 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x92}, + {value: 0x0040, lo: 0x93, hi: 0xa3}, + {value: 0x0008, lo: 0xa4, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xe7, offset 0x6dd + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0xe8, offset 0x6e0 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0xe9, offset 0x6e5 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x03c0, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xbf}, + // Block 0xea, offset 0x6ef + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xeb, offset 0x6f2 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xbf}, + // Block 0xec, offset 0x6f6 + {value: 0x0000, lo: 0x0e}, + {value: 0x0018, lo: 0x80, hi: 0x9d}, + {value: 0xb5b9, lo: 0x9e, hi: 0x9e}, + {value: 0xb601, lo: 0x9f, hi: 0x9f}, + {value: 0xb649, lo: 0xa0, hi: 0xa0}, + {value: 0xb6b1, lo: 0xa1, hi: 0xa1}, + {value: 0xb719, lo: 0xa2, hi: 0xa2}, + {value: 0xb781, lo: 0xa3, hi: 0xa3}, + {value: 0xb7e9, lo: 0xa4, hi: 0xa4}, + {value: 0x3018, lo: 0xa5, hi: 0xa6}, + {value: 0x3318, lo: 0xa7, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xac}, + {value: 0x3018, lo: 0xad, hi: 0xb2}, + {value: 0x0340, lo: 0xb3, hi: 0xba}, + {value: 0x3318, lo: 0xbb, hi: 0xbf}, + // Block 0xed, offset 0x705 + {value: 0x0000, lo: 0x0b}, + {value: 0x3318, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0x84}, + {value: 0x3318, lo: 0x85, hi: 0x8b}, + {value: 0x0018, lo: 0x8c, hi: 0xa9}, + {value: 0x3318, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xba}, + {value: 0xb851, lo: 0xbb, hi: 0xbb}, + {value: 0xb899, lo: 0xbc, hi: 0xbc}, + {value: 0xb8e1, lo: 0xbd, hi: 0xbd}, + {value: 0xb949, lo: 0xbe, hi: 0xbe}, + {value: 0xb9b1, lo: 0xbf, hi: 0xbf}, + // Block 0xee, offset 0x711 + {value: 0x0000, lo: 0x03}, + {value: 0xba19, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xbf}, + // Block 0xef, offset 0x715 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x3318, lo: 0x82, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0xbf}, + // Block 0xf0, offset 0x71a + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0xf1, offset 0x71e + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xf2, offset 0x723 + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0xf3, offset 0x727 + {value: 0x0000, lo: 0x04}, + {value: 0x3308, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0xf4, offset 0x72c + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x3308, lo: 0xa1, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xf5, offset 0x735 + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xbf}, + // Block 0xf6, offset 0x740 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0008, lo: 0xb7, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0xf7, offset 0x746 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x8e}, + {value: 0x0018, lo: 0x8f, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0xf8, offset 0x74c + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xf9, offset 0x752 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x86}, + {value: 0x0818, lo: 0x87, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0xfa, offset 0x758 + {value: 0x0000, lo: 0x08}, + {value: 0x0a08, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x8a}, + {value: 0x0b08, lo: 0x8b, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0818, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xfb, offset 0x761 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xb0}, + {value: 0x0818, lo: 0xb1, hi: 0xbf}, + // Block 0xfc, offset 0x764 + {value: 0x0000, lo: 0x02}, + {value: 0x0818, lo: 0x80, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xfd, offset 0x767 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0818, lo: 0x81, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0xfe, offset 0x76b + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xff, offset 0x76f + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x100, offset 0x773 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0x101, offset 0x779 + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0x102, offset 0x77f + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x8f}, + {value: 0xc1d9, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0x103, offset 0x784 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xbf}, + // Block 0x104, offset 0x787 + {value: 0x0000, lo: 0x0f}, + {value: 0xc801, lo: 0x80, hi: 0x80}, + {value: 0xc851, lo: 0x81, hi: 0x81}, + {value: 0xc8a1, lo: 0x82, hi: 0x82}, + {value: 0xc8f1, lo: 0x83, hi: 0x83}, + {value: 0xc941, lo: 0x84, hi: 0x84}, + {value: 0xc991, lo: 0x85, hi: 0x85}, + {value: 0xc9e1, lo: 0x86, hi: 0x86}, + {value: 0xca31, lo: 0x87, hi: 0x87}, + {value: 0xca81, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0xcad1, lo: 0x90, hi: 0x90}, + {value: 0xcaf1, lo: 0x91, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xbf}, + // Block 0x105, offset 0x797 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x106, offset 0x79e + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x107, offset 0x7a1 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xbf}, + // Block 0x108, offset 0x7a6 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x109, offset 0x7aa + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x10a, offset 0x7b0 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xbf}, + // Block 0x10b, offset 0x7b5 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x10c, offset 0x7b9 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xb2}, + {value: 0x0018, lo: 0xb3, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbf}, + // Block 0x10d, offset 0x7bf + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0xa2}, + {value: 0x0040, lo: 0xa3, hi: 0xa4}, + {value: 0x0018, lo: 0xa5, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xbf}, + // Block 0x10e, offset 0x7c5 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x10f, offset 0x7c9 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x110, offset 0x7d2 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0x111, offset 0x7d7 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0x112, offset 0x7da + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x113, offset 0x7dd + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x114, offset 0x7e1 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x115, offset 0x7e5 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x116, offset 0x7e8 + {value: 0x0020, lo: 0x0f}, + {value: 0xded1, lo: 0x80, hi: 0x89}, + {value: 0x8e35, lo: 0x8a, hi: 0x8a}, + {value: 0xe011, lo: 0x8b, hi: 0x9c}, + {value: 0x8e55, lo: 0x9d, hi: 0x9d}, + {value: 0xe251, lo: 0x9e, hi: 0xa2}, + {value: 0x8e75, lo: 0xa3, hi: 0xa3}, + {value: 0xe2f1, lo: 0xa4, hi: 0xab}, + {value: 0x7f0d, lo: 0xac, hi: 0xac}, + {value: 0xe3f1, lo: 0xad, hi: 0xaf}, + {value: 0x8e95, lo: 0xb0, hi: 0xb0}, + {value: 0xe451, lo: 0xb1, hi: 0xb6}, + {value: 0x8eb5, lo: 0xb7, hi: 0xb9}, + {value: 0xe511, lo: 0xba, hi: 0xba}, + {value: 0x8f15, lo: 0xbb, hi: 0xbb}, + {value: 0xe531, lo: 0xbc, hi: 0xbf}, + // Block 0x117, offset 0x7f8 + {value: 0x0020, lo: 0x10}, + {value: 0x93b5, lo: 0x80, hi: 0x80}, + {value: 0xf0b1, lo: 0x81, hi: 0x86}, + {value: 0x93d5, lo: 0x87, hi: 0x8a}, + {value: 0xda11, lo: 0x8b, hi: 0x8b}, + {value: 0xf171, lo: 0x8c, hi: 0x96}, + {value: 0x9455, lo: 0x97, hi: 0x97}, + {value: 0xf2d1, lo: 0x98, hi: 0xa3}, + {value: 0x9475, lo: 0xa4, hi: 0xa6}, + {value: 0xf451, lo: 0xa7, hi: 0xaa}, + {value: 0x94d5, lo: 0xab, hi: 0xab}, + {value: 0xf4d1, lo: 0xac, hi: 0xac}, + {value: 0x94f5, lo: 0xad, hi: 0xad}, + {value: 0xf4f1, lo: 0xae, hi: 0xaf}, + {value: 0x9515, lo: 0xb0, hi: 0xb1}, + {value: 0xf531, lo: 0xb2, hi: 0xbe}, + {value: 0x2040, lo: 0xbf, hi: 0xbf}, + // Block 0x118, offset 0x809 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0340, lo: 0x81, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x9f}, + {value: 0x0340, lo: 0xa0, hi: 0xbf}, + // Block 0x119, offset 0x80e + {value: 0x0000, lo: 0x01}, + {value: 0x0340, lo: 0x80, hi: 0xbf}, + // Block 0x11a, offset 0x810 + {value: 0x0000, lo: 0x01}, + {value: 0x33c0, lo: 0x80, hi: 0xbf}, + // Block 0x11b, offset 0x812 + {value: 0x0000, lo: 0x02}, + {value: 0x33c0, lo: 0x80, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, +} + +// Total table size 42780 bytes (41KiB); checksum: 29936AB9 diff --git a/vendor/golang.org/x/net/idna/tables13.0.0.go b/vendor/golang.org/x/net/idna/tables13.0.0.go new file mode 100644 index 0000000..390c5e5 --- /dev/null +++ b/vendor/golang.org/x/net/idna/tables13.0.0.go @@ -0,0 +1,4840 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.16 +// +build go1.16 + +package idna + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "13.0.0" + +var mappings string = "" + // Size: 8188 bytes + "\x00\x01 \x03 ̈\x01a\x03 Ì„\x012\x013\x03 Ì\x03 ̧\x011\x01o\x051â„4\x051â„2" + + "\x053â„4\x03i̇\x03l·\x03ʼn\x01s\x03dž\x03â±¥\x03ⱦ\x01h\x01j\x01r\x01w\x01y" + + "\x03 ̆\x03 ̇\x03 ÌŠ\x03 ̨\x03 ̃\x03 Ì‹\x01l\x01x\x04̈Ì\x03 ι\x01;\x05 ̈Ì" + + "\x04Õ¥Ö‚\x04اٴ\x04وٴ\x04Û‡Ù´\x04يٴ\x06क़\x06ख़\x06ग़\x06ज़\x06ड़\x06ढ़\x06फ़" + + "\x06य़\x06ড়\x06ঢ়\x06য়\x06ਲ਼\x06ਸ਼\x06ਖ਼\x06ਗ਼\x06ਜ਼\x06ਫ਼\x06ଡ଼\x06ଢ଼" + + "\x06à¹à¸²\x06à»àº²\x06ຫນ\x06ຫມ\x06གྷ\x06ཌྷ\x06དྷ\x06བྷ\x06ཛྷ\x06ཀྵ\x06ཱི\x06ཱུ" + + "\x06ྲྀ\x09ྲཱྀ\x06ླྀ\x09ླཱྀ\x06ཱྀ\x06ྒྷ\x06ྜྷ\x06ྡྷ\x06ྦྷ\x06ྫྷ\x06à¾à¾µ\x02" + + "в\x02д\x02о\x02Ñ\x02Ñ‚\x02ÑŠ\x02Ñ£\x02æ\x01b\x01d\x01e\x02Ç\x01g\x01i\x01k" + + "\x01m\x01n\x02È£\x01p\x01t\x01u\x02É\x02É‘\x02É™\x02É›\x02Éœ\x02Å‹\x02É”\x02ɯ" + + "\x01v\x02β\x02γ\x02δ\x02φ\x02χ\x02Ï\x02н\x02É’\x01c\x02É•\x02ð\x01f\x02ÉŸ" + + "\x02É¡\x02É¥\x02ɨ\x02É©\x02ɪ\x02Ê\x02É­\x02ÊŸ\x02ɱ\x02É°\x02ɲ\x02ɳ\x02É´\x02ɵ" + + "\x02ɸ\x02Ê‚\x02ʃ\x02Æ«\x02ʉ\x02ÊŠ\x02Ê‹\x02ÊŒ\x01z\x02Ê\x02Ê‘\x02Ê’\x02θ\x02ss" + + "\x02ά\x02έ\x02ή\x02ί\x02ÏŒ\x02Ï\x02ÏŽ\x05ἀι\x05á¼Î¹\x05ἂι\x05ἃι\x05ἄι\x05ἅι" + + "\x05ἆι\x05ἇι\x05ἠι\x05ἡι\x05ἢι\x05ἣι\x05ἤι\x05ἥι\x05ἦι\x05ἧι\x05ὠι\x05ὡι" + + "\x05ὢι\x05ὣι\x05ὤι\x05ὥι\x05ὦι\x05ὧι\x05ὰι\x04αι\x04άι\x05ᾶι\x02ι\x05 ̈͂" + + "\x05ὴι\x04ηι\x04ήι\x05ῆι\x05 Ì“Ì€\x05 Ì“Ì\x05 Ì“Í‚\x02Î\x05 ̔̀\x05 Ì”Ì\x05 ̔͂" + + "\x02ΰ\x05 ̈̀\x01`\x05ὼι\x04ωι\x04ώι\x05ῶι\x06′′\x09′′′\x06‵‵\x09‵‵‵\x02!" + + "!\x02??\x02?!\x02!?\x0c′′′′\x010\x014\x015\x016\x017\x018\x019\x01+\x01=" + + "\x01(\x01)\x02rs\x02ħ\x02no\x01q\x02sm\x02tm\x02ω\x02Ã¥\x02×\x02ב\x02×’" + + "\x02ד\x02Ï€\x051â„7\x051â„9\x061â„10\x051â„3\x052â„3\x051â„5\x052â„5\x053â„5\x054" + + "â„5\x051â„6\x055â„6\x051â„8\x053â„8\x055â„8\x057â„8\x041â„\x02ii\x02iv\x02vi" + + "\x04viii\x02ix\x02xi\x050â„3\x06∫∫\x09∫∫∫\x06∮∮\x09∮∮∮\x0210\x0211\x0212" + + "\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)" + + "\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\x0c∫∫∫∫" + + "\x02==\x05â«Ì¸\x02É«\x02ɽ\x02È¿\x02É€\x01.\x04 ã‚™\x04 ã‚š\x06より\x06コト\x05(á„€)\x05" + + "(á„‚)\x05(ᄃ)\x05(á„…)\x05(ᄆ)\x05(ᄇ)\x05(ᄉ)\x05(á„‹)\x05(á„Œ)\x05(á„Ž)\x05(á„)\x05(á„" + + ")\x05(á„‘)\x05(á„’)\x05(ê°€)\x05(나)\x05(다)\x05(ë¼)\x05(마)\x05(ë°”)\x05(사)\x05(ì•„)" + + "\x05(ìž)\x05(ì°¨)\x05(ì¹´)\x05(타)\x05(파)\x05(하)\x05(주)\x08(오전)\x08(오후)\x05(一)" + + "\x05(二)\x05(三)\x05(å››)\x05(五)\x05(å…­)\x05(七)\x05(å…«)\x05(ä¹)\x05(å)\x05(月)" + + "\x05(ç«)\x05(æ°´)\x05(木)\x05(金)\x05(土)\x05(æ—¥)\x05(æ ª)\x05(有)\x05(社)\x05(å)" + + "\x05(特)\x05(財)\x05(ç¥)\x05(労)\x05(代)\x05(呼)\x05(å­¦)\x05(監)\x05(ä¼)\x05(資)" + + "\x05(å”)\x05(祭)\x05(休)\x05(自)\x05(至)\x0221\x0222\x0223\x0224\x0225\x0226" + + "\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06참고\x06주ì˜\x0236" + + "\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248" + + "\x0249\x0250\x041月\x042月\x043月\x044月\x045月\x046月\x047月\x048月\x049月\x0510" + + "月\x0511月\x0512月\x02hg\x02ev\x06令和\x0cアパート\x0cアルファ\x0cアンペア\x09アール\x0cイニ" + + "ング\x09インãƒ\x09ウォン\x0fエスクード\x0cエーカー\x09オンス\x09オーム\x09カイリ\x0cカラット\x0cカロリー" + + "\x09ガロン\x09ガンマ\x06ギガ\x09ギニー\x0cキュリー\x0cギルダー\x06キロ\x0fキログラム\x12キロメートル\x0f" + + "キロワット\x09グラム\x0fグラムトン\x0fクルゼイロ\x0cクローãƒ\x09ケース\x09コルナ\x09コーãƒ\x0cサイクル" + + "\x0fサンãƒãƒ¼ãƒ \x0cシリング\x09センãƒ\x09セント\x09ダース\x06デシ\x06ドル\x06トン\x06ナノ\x09ノット" + + "\x09ãƒã‚¤ãƒ„\x0fパーセント\x09パーツ\x0cãƒãƒ¼ãƒ¬ãƒ«\x0fピアストル\x09ピクル\x06ピコ\x06ビル\x0fファラッド\x0c" + + "フィート\x0fブッシェル\x09フラン\x0fヘクタール\x06ペソ\x09ペニヒ\x09ヘルツ\x09ペンス\x09ページ\x09ベータ" + + "\x0cãƒã‚¤ãƒ³ãƒˆ\x09ボルト\x06ホン\x09ãƒãƒ³ãƒ‰\x09ホール\x09ホーン\x0cマイクロ\x09マイル\x09マッãƒ\x09マルク" + + "\x0fマンション\x0cミクロン\x06ミリ\x0fミリãƒãƒ¼ãƒ«\x06メガ\x0cメガトン\x0cメートル\x09ヤード\x09ヤール\x09" + + "ユアン\x0cリットル\x06リラ\x09ルピー\x0cルーブル\x06レム\x0fレントゲン\x09ワット\x040点\x041点\x04" + + "2点\x043点\x044点\x045点\x046点\x047点\x048点\x049点\x0510点\x0511点\x0512点\x0513点" + + "\x0514点\x0515点\x0516点\x0517点\x0518点\x0519点\x0520点\x0521点\x0522点\x0523点" + + "\x0524点\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06å¹³æˆ\x06昭和\x06大正\x06明治\x0cæ ª" + + "å¼ä¼šç¤¾\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02m" + + "g\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m" + + "3\x05m∕s\x06m∕s2\x07rad∕s\x08rad∕s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv" + + "\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c∕kg\x02db\x02gy\x02" + + "ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02" + + "wb\x05v∕m\x05a∕m\x041æ—¥\x042æ—¥\x043æ—¥\x044æ—¥\x045æ—¥\x046æ—¥\x047æ—¥\x048æ—¥\x049æ—¥" + + "\x0510æ—¥\x0511æ—¥\x0512æ—¥\x0513æ—¥\x0514æ—¥\x0515æ—¥\x0516æ—¥\x0517æ—¥\x0518æ—¥\x0519æ—¥" + + "\x0520æ—¥\x0521æ—¥\x0522æ—¥\x0523æ—¥\x0524æ—¥\x0525æ—¥\x0526æ—¥\x0527æ—¥\x0528æ—¥\x0529æ—¥" + + "\x0530æ—¥\x0531æ—¥\x02ÑŒ\x02ɦ\x02ɬ\x02Êž\x02ʇ\x02Å“\x02Ê\x04𤋮\x04𢡊\x04𢡄\x04ð£•" + + "\x04𥉉\x04ð¥³\x04𧻓\x02ff\x02fi\x02fl\x02st\x04Õ´Õ¶\x04Õ´Õ¥\x04Õ´Õ«\x04Õ¾Õ¶\x04Õ´Õ­" + + "\x04×™Ö´\x04ײַ\x02×¢\x02×”\x02×›\x02ל\x02×\x02ר\x02ת\x04ש×\x04שׂ\x06שּ×\x06שּ" + + "ׂ\x04×Ö·\x04×Ö¸\x04×Ö¼\x04בּ\x04×’Ö¼\x04דּ\x04×”Ö¼\x04וּ\x04×–Ö¼\x04טּ\x04×™Ö¼\x04" + + "ךּ\x04×›Ö¼\x04לּ\x04מּ\x04× Ö¼\x04סּ\x04×£Ö¼\x04פּ\x04צּ\x04קּ\x04רּ\x04שּ" + + "\x04תּ\x04וֹ\x04בֿ\x04×›Ö¿\x04פֿ\x04×ל\x02Ù±\x02Ù»\x02Ù¾\x02Ú€\x02Ùº\x02Ù¿\x02Ù¹" + + "\x02Ú¤\x02Ú¦\x02Ú„\x02Úƒ\x02Ú†\x02Ú‡\x02Ú\x02ÚŒ\x02ÚŽ\x02Úˆ\x02Ú˜\x02Ú‘\x02Ú©\x02Ú¯" + + "\x02Ú³\x02Ú±\x02Úº\x02Ú»\x02Û€\x02Û\x02Ú¾\x02Û’\x02Û“\x02Ú­\x02Û‡\x02Û†\x02Ûˆ\x02Û‹" + + "\x02Û…\x02Û‰\x02Û\x02Ù‰\x04ئا\x04ئە\x04ئو\x04ئۇ\x04ئۆ\x04ئۈ\x04ئÛ\x04ئى\x02" + + "ÛŒ\x04ئج\x04ئح\x04ئم\x04ئي\x04بج\x04بح\x04بخ\x04بم\x04بى\x04بي\x04تج\x04" + + "تح\x04تخ\x04تم\x04تى\x04تي\x04ثج\x04ثم\x04ثى\x04ثي\x04جح\x04جم\x04حج" + + "\x04حم\x04خج\x04خح\x04خم\x04سج\x04سح\x04سخ\x04سم\x04صح\x04صم\x04ضج\x04ضح" + + "\x04ضخ\x04ضم\x04طح\x04طم\x04ظم\x04عج\x04عم\x04غج\x04غم\x04Ùج\x04ÙØ­\x04ÙØ®" + + "\x04ÙÙ…\x04ÙÙ‰\x04ÙÙŠ\x04قح\x04قم\x04قى\x04قي\x04كا\x04كج\x04كح\x04كخ\x04كل" + + "\x04كم\x04كى\x04كي\x04لج\x04لح\x04لخ\x04لم\x04لى\x04لي\x04مج\x04مح\x04مخ" + + "\x04مم\x04مى\x04مي\x04نج\x04نح\x04نخ\x04نم\x04نى\x04ني\x04هج\x04هم\x04هى" + + "\x04هي\x04يج\x04يح\x04يخ\x04يم\x04يى\x04يي\x04ذٰ\x04رٰ\x04ىٰ\x05 ٌّ\x05 " + + "ÙÙ‘\x05 ÙŽÙ‘\x05 ÙÙ‘\x05 ÙÙ‘\x05 ّٰ\x04ئر\x04ئز\x04ئن\x04بر\x04بز\x04بن\x04ت" + + "ر\x04تز\x04تن\x04ثر\x04ثز\x04ثن\x04ما\x04نر\x04نز\x04نن\x04ير\x04يز\x04" + + "ين\x04ئخ\x04ئه\x04به\x04ته\x04صخ\x04له\x04نه\x04هٰ\x04يه\x04ثه\x04سه" + + "\x04شم\x04شه\x06Ù€ÙŽÙ‘\x06Ù€ÙÙ‘\x06Ù€ÙÙ‘\x04طى\x04طي\x04عى\x04عي\x04غى\x04غي" + + "\x04سى\x04سي\x04شى\x04شي\x04حى\x04حي\x04جى\x04جي\x04خى\x04خي\x04صى\x04صي" + + "\x04ضى\x04ضي\x04شج\x04شح\x04شخ\x04شر\x04سر\x04صر\x04ضر\x04اً\x06تجم\x06ت" + + "حج\x06تحم\x06تخم\x06تمج\x06تمح\x06تمخ\x06جمح\x06حمي\x06حمى\x06سحج\x06سج" + + "Ø­\x06سجى\x06سمح\x06سمج\x06سمم\x06صحح\x06صمم\x06شحم\x06شجي\x06شمخ\x06شمم" + + "\x06ضحى\x06ضخم\x06طمح\x06طمم\x06طمي\x06عجم\x06عمم\x06عمى\x06غمم\x06غمي" + + "\x06غمى\x06Ùخم\x06قمح\x06قمم\x06لحم\x06لحي\x06لحى\x06لجج\x06لخم\x06لمح" + + "\x06محج\x06محم\x06محي\x06مجح\x06مجم\x06مخج\x06مخم\x06مجخ\x06همج\x06همم" + + "\x06نحم\x06نحى\x06نجم\x06نجى\x06نمي\x06نمى\x06يمم\x06بخي\x06تجي\x06تجى" + + "\x06تخي\x06تخى\x06تمي\x06تمى\x06جمي\x06جحى\x06جمى\x06سخى\x06صحي\x06شحي" + + "\x06ضحي\x06لجي\x06لمي\x06يحي\x06يجي\x06يمي\x06ممي\x06قمي\x06نحي\x06عمي" + + "\x06كمي\x06نجح\x06مخي\x06لجم\x06كمم\x06جحي\x06حجي\x06مجي\x06Ùمي\x06بحي" + + "\x06سخي\x06نجي\x06صلے\x06قلے\x08الله\x08اكبر\x08محمد\x08صلعم\x08رسول\x08" + + "عليه\x08وسلم\x06صلى!صلى الله عليه وسلم\x0fجل جلاله\x08ریال\x01,\x01:" + + "\x01!\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\" + + "\x01$\x01%\x01@\x04ـً\x04Ù€ÙŽ\x04Ù€Ù\x04Ù€Ù\x04ـّ\x04ـْ\x02Ø¡\x02Ø¢\x02Ø£\x02ؤ" + + "\x02Ø¥\x02ئ\x02ا\x02ب\x02Ø©\x02ت\x02Ø«\x02ج\x02Ø­\x02Ø®\x02د\x02Ø°\x02ر\x02ز" + + "\x02س\x02Ø´\x02ص\x02ض\x02Ø·\x02ظ\x02ع\x02غ\x02Ù\x02Ù‚\x02Ùƒ\x02Ù„\x02Ù…\x02Ù†" + + "\x02Ù‡\x02Ùˆ\x02ÙŠ\x04لآ\x04لأ\x04لإ\x04لا\x01\x22\x01'\x01/\x01^\x01|\x01~" + + "\x02¢\x02£\x02¬\x02¦\x02Â¥\x08ð…—ð…¥\x08ð…˜ð…¥\x0cð…˜ð…¥ð…®\x0cð…˜ð…¥ð…¯\x0cð…˜ð…¥ð…°\x0cð…˜ð…¥ð…±\x0cð…˜ð…¥ð…²" + + "\x08ð†¹ð…¥\x08ð†ºð…¥\x0cð†¹ð…¥ð…®\x0cð†ºð…¥ð…®\x0cð†¹ð…¥ð…¯\x0cð†ºð…¥ð…¯\x02ı\x02È·\x02α\x02ε\x02ζ\x02η" + + "\x02κ\x02λ\x02μ\x02ν\x02ξ\x02ο\x02σ\x02Ï„\x02Ï…\x02ψ\x03∇\x03∂\x02Ï\x02Ù®" + + "\x02Ú¡\x02Ù¯\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029," + + "\x03(a)\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)" + + "\x03(k)\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)" + + "\x03(u)\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07〔s〕\x02wz\x02hv\x02sd\x03p" + + "pv\x02wc\x02mc\x02md\x02mr\x02dj\x06ã»ã‹\x06ココ\x03サ\x03手\x03å­—\x03åŒ\x03デ" + + "\x03二\x03多\x03解\x03天\x03交\x03映\x03ç„¡\x03æ–™\x03å‰\x03後\x03å†\x03æ–°\x03åˆ\x03終" + + "\x03生\x03販\x03声\x03å¹\x03æ¼”\x03投\x03æ•\x03一\x03三\x03éŠ\x03å·¦\x03中\x03å³\x03指" + + "\x03èµ°\x03打\x03ç¦\x03空\x03åˆ\x03満\x03有\x03月\x03申\x03割\x03å–¶\x03é…\x09〔本〕\x09〔" + + "三〕\x09〔二〕\x09〔安〕\x09〔点〕\x09〔打〕\x09〔盗〕\x09〔å‹ã€•\x09〔敗〕\x03å¾—\x03å¯\x03丽\x03" + + "丸\x03ä¹\x03ä½ \x03ä¾®\x03ä¾»\x03倂\x03åº\x03å‚™\x03僧\x03åƒ\x03ã’ž\x03å…\x03å…”\x03å…¤\x03" + + "å…·\x03ã’¹\x03å…§\x03冗\x03冤\x03仌\x03冬\x03况\x03凵\x03刃\x03ã“Ÿ\x03刻\x03剆\x03剷\x03" + + "㔕\x03勇\x03勉\x03勤\x03勺\x03包\x03匆\x03北\x03å‰\x03å‘\x03åš\x03å³\x03å½\x03å¿\x03" + + "ç°\x03åŠ\x03åŸ\x03å«\x03å±\x03å†\x03å’ž\x03å¸\x03呈\x03周\x03å’¢\x03哶\x03å”\x03å•“\x03" + + "å•£\x03å–„\x03å–™\x03å–«\x03å–³\x03å—‚\x03圖\x03嘆\x03圗\x03噑\x03å™´\x03切\x03壮\x03城\x03" + + "埴\x03å \x03åž‹\x03å ²\x03å ±\x03墬\x03売\x03壷\x03夆\x03夢\x03奢\x03姬\x03娛\x03娧\x03" + + "姘\x03婦\x03ã›®\x03嬈\x03嬾\x03寃\x03寘\x03寧\x03寳\x03寿\x03å°†\x03å°¢\x03ãž\x03å± \x03" + + "å±®\x03å³€\x03å²\x03嵃\x03åµ®\x03嵫\x03åµ¼\x03å·¡\x03å·¢\x03ã ¯\x03å·½\x03帨\x03帽\x03幩\x03" + + "ã¡¢\x03㡼\x03庰\x03庳\x03庶\x03廊\x03廾\x03èˆ\x03å¼¢\x03㣇\x03å½¢\x03彫\x03㣣\x03徚\x03" + + "å¿\x03å¿—\x03忹\x03æ‚\x03㤺\x03㤜\x03æ‚”\x03惇\x03æ…ˆ\x03æ…Œ\x03æ…Ž\x03æ…º\x03憎\x03憲\x03" + + "憤\x03憯\x03懞\x03懲\x03懶\x03æˆ\x03戛\x03æ‰\x03抱\x03æ‹”\x03æ\x03挽\x03拼\x03æ¨\x03" + + "掃\x03æ¤\x03æ¢\x03æ…\x03掩\x03㨮\x03æ‘©\x03摾\x03æ’\x03æ‘·\x03㩬\x03æ•\x03敬\x03æ—£\x03" + + "書\x03晉\x03㬙\x03æš‘\x03㬈\x03㫤\x03冒\x03冕\x03最\x03æšœ\x03è‚­\x03ä™\x03朗\x03望\x03" + + "朡\x03æž\x03æ“\x03ã­‰\x03柺\x03æž…\x03æ¡’\x03梅\x03梎\x03æ Ÿ\x03椔\x03ã®\x03楂\x03榣\x03" + + "槪\x03檨\x03æ«›\x03ã°˜\x03次\x03æ­”\x03㱎\x03æ­²\x03殟\x03殺\x03æ®»\x03汎\x03沿\x03æ³\x03" + + "汧\x03æ´–\x03æ´¾\x03æµ·\x03æµ\x03浩\x03浸\x03涅\x03æ´´\x03港\x03æ¹®\x03ã´³\x03滋\x03滇\x03" + + "æ·¹\x03æ½®\x03濆\x03瀹\x03瀞\x03瀛\x03㶖\x03çŠ\x03ç½\x03ç·\x03ç‚­\x03ç……\x03熜\x03爨\x03" + + "爵\x03ç‰\x03犀\x03犕\x03çº\x03王\x03㺬\x03玥\x03㺸\x03瑇\x03ç‘œ\x03瑱\x03ç’…\x03ç“Š\x03" + + "ã¼›\x03甤\x03甾\x03ç•°\x03ç˜\x03㿼\x03䀈\x03ç›´\x03眞\x03真\x03çŠ\x03䀹\x03çž‹\x03ä†\x03" + + "ä‚–\x03ç¡Ž\x03碌\x03磌\x03䃣\x03祖\x03ç¦\x03秫\x03䄯\x03ç©€\x03ç©Š\x03ç©\x03䈂\x03篆\x03" + + "築\x03䈧\x03ç³’\x03䊠\x03糨\x03ç³£\x03ç´€\x03çµ£\x03äŒ\x03ç·‡\x03縂\x03ç¹…\x03䌴\x03ä™\x03" + + "罺\x03羕\x03翺\x03者\x03è \x03è°\x03ä•\x03育\x03脃\x03ä‹\x03脾\x03媵\x03舄\x03辞\x03" + + "ä‘«\x03芑\x03芋\x03èŠ\x03劳\x03花\x03芳\x03芽\x03苦\x03è‹¥\x03èŒ\x03è£\x03莭\x03茣\x03" + + "莽\x03è§\x03è‘—\x03è“\x03èŠ\x03èŒ\x03èœ\x03䔫\x03蓱\x03蓳\x03è”–\x03蕤\x03ä•\x03ä•¡\x03" + + "ä•«\x03è™\x03虜\x03虧\x03虩\x03èš©\x03蚈\x03蜎\x03蛢\x03è¹\x03蜨\x03è«\x03螆\x03蟡\x03" + + "è \x03ä—¹\x03è¡ \x03è¡£\x03裗\x03裞\x03䘵\x03裺\x03ã’»\x03äš¾\x03䛇\x03誠\x03è«­\x03變\x03" + + "豕\x03貫\x03è³\x03è´›\x03èµ·\x03è·‹\x03趼\x03è·°\x03è»”\x03輸\x03é‚”\x03郱\x03é„‘\x03é„›\x03" + + "鈸\x03é‹—\x03鋘\x03鉼\x03é¹\x03é•\x03é–‹\x03䦕\x03é–·\x03䧦\x03雃\x03嶲\x03霣\x03ä©®\x03" + + "䩶\x03韠\x03䪲\x03é ‹\x03é ©\x03飢\x03䬳\x03餩\x03馧\x03駂\x03駾\x03䯎\x03鬒\x03é±€\x03" + + "é³½\x03䳎\x03ä³­\x03鵧\x03䳸\x03麻\x03äµ–\x03黹\x03黾\x03é¼…\x03é¼\x03é¼–\x03é¼»" + +var xorData string = "" + // Size: 4862 bytes + "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" + + "\x02\x0f\x1f\x02\x0f\x1d\x02\x01\x13\x02\x0f\x16\x02\x0f\x0b\x02\x0f3" + + "\x02\x0f7\x02\x0f?\x02\x0f/\x02\x0f*\x02\x0c&\x02\x0c*\x02\x0c;\x02\x0c9" + + "\x02\x0c%\x02\xab\xed\x02\xab\xe2\x02\xab\xe3\x02\xa9\xe0\x02\xa9\xe1" + + "\x02\xa9\xe6\x02\xa3\xcb\x02\xa3\xc8\x02\xa3\xc9\x02\x01#\x02\x01\x08" + + "\x02\x0e>\x02\x0e'\x02\x0f\x03\x02\x03\x0d\x02\x03\x09\x02\x03\x17\x02" + + "\x03\x0e\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07" + + "\x0d\x02\x02\x0c\x02\x0c0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\x22" + + "\x02\x01)\x02\x01\x0a\x02\x01\x0c\x02\x02\x06\x02\x02\x02\x02\x03\x10" + + "\x03\x037 \x03\x0b+\x03\x021\x00\x02\x01\x04\x02\x01\x02\x02\x019\x02" + + "\x03\x1c\x02\x02$\x03\x80p$\x02\x03:\x02\x03\x0a\x03\xc1r.\x03\xc1r,\x03" + + "\xc1r\x02\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xc1s<" + + "\x03\xc1s*\x03\xc2L$\x03\xc2L;\x02\x09)\x02\x0a\x19\x03\x83\xab\xe3\x03" + + "\x83\xab\xf2\x03 4\xe0\x03\x81\xab\xea\x03\x81\xab\xf3\x03 4\xef\x03\x96" + + "\xe1\xcd\x03\x84\xe5\xc3\x02\x0d\x11\x03\x8b\xec\xcb\x03\x94\xec\xcf\x03" + + "\x9a\xec\xc2\x03\x8b\xec\xdb\x03\x94\xec\xdf\x03\x9a\xec\xd2\x03\x01\x0c" + + "!\x03\x01\x0c#\x03Ê \x9d\x03Ê£\x9c\x03Ê¢\x9f\x03Ê¥\x9e\x03ʤ\x91\x03ʧ\x90\x03" + + "ʦ\x93\x03Ê©\x92\x03ʨ\x95\x03\xca\xf3\xb5\x03\xca\xf0\xb4\x03\xca\xf1\xb7" + + "\x03\xca\xf6\xb6\x03\xca\xf7\x89\x03\xca\xf4\x88\x03\xca\xf5\x8b\x03\xca" + + "\xfa\x8a\x03\xca\xfb\x8d\x03\xca\xf8\x8c\x03\xca\xf9\x8f\x03\xca\xfe\x8e" + + "\x03\xca\xff\x81\x03\xca\xfc\x80\x03\xca\xfd\x83\x03\xca\xe2\x82\x03\xca" + + "\xe3\x85\x03\xca\xe0\x84\x03\xca\xe1\x87\x03\xca\xe6\x86\x03\xca\xe7\x99" + + "\x03\xca\xe4\x98\x03\xca\xe5\x9b\x03\xca\xea\x9a\x03\xca\xeb\x9d\x03\xca" + + "\xe8\x9c\x03Ø“\x89\x03ß”\x8b\x02\x010\x03\x03\x04\x1e\x03\x04\x15\x12\x03" + + "\x0b\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06" + + "\x05\x1d\x03\x06\x06\x00\x03\x06\x06\x0a\x03\x06\x06'\x03\x06\x062\x03" + + "\x0786\x03\x079/\x03\x079 \x03\x07:\x0e\x03\x07:\x1b\x03\x07:%\x03\x07;/" + + "\x03\x07;%\x03\x074\x11\x03\x076\x09\x03\x077*\x03\x070\x01\x03\x070\x0f" + + "\x03\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-" + + "\x03\x073\x14\x03\x073>\x03\x07'\x09\x03\x07 \x00\x03\x07\x1f\x0b\x03" + + "\x07\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03" + + "\x07\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\x0c&\x03\x07\x0c\x08\x03" + + "\x07\x0c\x13\x03\x07\x0d\x02\x03\x07\x0d\x1c\x03\x07\x0b5\x03\x07\x0b" + + "\x0a\x03\x07\x0b\x01\x03\x07\x0b\x0f\x03\x07\x05\x00\x03\x07\x05\x09\x03" + + "\x07\x05\x0b\x03\x07\x07\x01\x03\x07\x07\x08\x03\x07\x00<\x03\x07\x00+" + + "\x03\x07\x01)\x03\x07\x01\x1b\x03\x07\x01\x08\x03\x07\x03?\x03\x0445\x03" + + "\x044\x08\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03" + + "\x04+ \x03\x04+<\x03\x04*&\x03\x04*\x22\x03\x04&8\x03\x04!\x01\x03\x04!" + + "\x22\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04" + + "\x03\x04\x12\x0a\x03\x04\x0d\x1d\x03\x04\x0d\x07\x03\x04\x0d \x03\x05<>" + + "\x03\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1d\x03\x054\x02\x03" + + "\x054\x07\x03\x0571\x03\x053\x1a\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03" + + "\x05):\x03\x05)<\x03\x05)\x0c\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$" + + "\x1e\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\x226" + + "\x03\x05\x22\x0c\x03\x05\x22\x1c\x03\x05\x19\x0a\x03\x05\x1b\x09\x03\x05" + + "\x1b\x0c\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\x0c\x03\x05\x0c\x05" + + "\x03\x05\x0e\x0f\x03\x05\x01\x0e\x03\x05\x00(\x03\x05\x030\x03\x05\x03" + + "\x06\x03\x0a==\x03\x0a=1\x03\x0a=,\x03\x0a=\x0c\x03\x0a??\x03\x0a<\x08" + + "\x03\x0a9!\x03\x0a9)\x03\x0a97\x03\x0a99\x03\x0a6\x0a\x03\x0a6\x1c\x03" + + "\x0a6\x17\x03\x0a7'\x03\x0a78\x03\x0a73\x03\x0a'\x01\x03\x0a'&\x03\x0a" + + "\x1f\x0e\x03\x0a\x1f\x03\x03\x0a\x1f3\x03\x0a\x1b/\x03\x0a\x18\x19\x03" + + "\x0a\x19\x01\x03\x0a\x16\x14\x03\x0a\x0e\x22\x03\x0a\x0f\x10\x03\x0a\x0f" + + "\x02\x03\x0a\x0f \x03\x0a\x0c\x04\x03\x0a\x0b>\x03\x0a\x0b+\x03\x0a\x08/" + + "\x03\x0a\x046\x03\x0a\x05\x14\x03\x0a\x00\x04\x03\x0a\x00\x10\x03\x0a" + + "\x00\x14\x03\x0b<3\x03\x0b;*\x03\x0b9\x22\x03\x0b9)\x03\x0b97\x03\x0b+" + + "\x10\x03\x0b((\x03\x0b&5\x03\x0b$\x1c\x03\x0b$\x12\x03\x0b%\x04\x03\x0b#" + + "<\x03\x0b#0\x03\x0b#\x0d\x03\x0b#\x19\x03\x0b!:\x03\x0b!\x1f\x03\x0b!" + + "\x00\x03\x0b\x1e5\x03\x0b\x1c\x1d\x03\x0b\x1d-\x03\x0b\x1d(\x03\x0b\x18." + + "\x03\x0b\x18 \x03\x0b\x18\x16\x03\x0b\x14\x13\x03\x0b\x15$\x03\x0b\x15" + + "\x22\x03\x0b\x12\x1b\x03\x0b\x12\x10\x03\x0b\x132\x03\x0b\x13=\x03\x0b" + + "\x12\x18\x03\x0b\x0c&\x03\x0b\x061\x03\x0b\x06:\x03\x0b\x05#\x03\x0b\x05" + + "<\x03\x0b\x04\x0b\x03\x0b\x04\x04\x03\x0b\x04\x1b\x03\x0b\x042\x03\x0b" + + "\x041\x03\x0b\x03\x03\x03\x0b\x03\x1d\x03\x0b\x03/\x03\x0b\x03+\x03\x0b" + + "\x02\x1b\x03\x0b\x02\x00\x03\x0b\x01\x1e\x03\x0b\x01\x08\x03\x0b\x015" + + "\x03\x06\x0d9\x03\x06\x0d=\x03\x06\x0d?\x03\x02\x001\x03\x02\x003\x03" + + "\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1b\x03\x02\x004\x03\x02\x00<\x03" + + "\x02\x02\x0a\x03\x02\x02\x0e\x03\x02\x01\x1a\x03\x02\x01\x07\x03\x02\x01" + + "\x05\x03\x02\x01\x0b\x03\x02\x01%\x03\x02\x01\x0c\x03\x02\x01\x04\x03" + + "\x02\x01\x1c\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03" + + "\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02" + + "\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022" + + "\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01" + + "\x11\x03\x02\x01\x1e\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0f\x03" + + "\x02\x01\x08\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\x0d\x03\x02\x03" + + "\x13\x03\x02\x03\x1d\x03\x02\x03\x1f\x03\x02\x00\x03\x03\x02\x00\x0d\x03" + + "\x02\x00\x01\x03\x02\x00\x1b\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00" + + "\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1f\x03\x07>\x1d\x03\x06\x1d\x0e" + + "\x03\x07>\x1c\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>" + + "\x02\x03\x06\x224\x03\x06\x1a.\x03\x07<%\x03\x06\x1c\x0b\x03\x0609\x03" + + "\x05\x1f\x01\x03\x04'\x08\x03\x93\xfd\xf5\x03\x02\x0d \x03\x02\x0d#\x03" + + "\x02\x0d!\x03\x02\x0d&\x03\x02\x0d\x22\x03\x02\x0d/\x03\x02\x0d,\x03\x02" + + "\x0d$\x03\x02\x0d'\x03\x02\x0d%\x03\x02\x0d;\x03\x02\x0d=\x03\x02\x0d?" + + "\x03\x099.\x03\x08\x0b7\x03\x08\x02\x14\x03\x08\x14\x0d\x03\x08.:\x03" + + "\x089'\x03\x0f\x0b\x18\x03\x0f\x1c1\x03\x0f\x17&\x03\x0f9\x1f\x03\x0f0" + + "\x0c\x03\x0e\x0a9\x03\x0e\x056\x03\x0e\x1c#\x03\x0f\x13\x0e\x03\x072\x00" + + "\x03\x070\x0d\x03\x072\x0b\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0f(\x03" + + "\x072\x05\x03\x06\x0f,\x03\x073\x15\x03\x06\x07\x08\x03\x05\x16\x02\x03" + + "\x04\x0b \x03\x05:8\x03\x05\x16%\x03\x0a\x0d\x1f\x03\x06\x16\x10\x03\x05" + + "\x1d5\x03\x05*;\x03\x05\x16\x1b\x03\x04.-\x03\x06\x1a\x19\x03\x04\x03," + + "\x03\x0b87\x03\x04/\x0a\x03\x06\x00,\x03\x04-\x01\x03\x04\x1e-\x03\x06/(" + + "\x03\x0a\x0b5\x03\x06\x0e7\x03\x06\x07.\x03\x0597\x03\x0a*%\x03\x0760" + + "\x03\x06\x0c;\x03\x05'\x00\x03\x072.\x03\x072\x08\x03\x06=\x01\x03\x06" + + "\x05\x1b\x03\x06\x06\x12\x03\x06$=\x03\x06'\x0d\x03\x04\x11\x0f\x03\x076" + + ",\x03\x06\x07;\x03\x06.,\x03\x86\xf9\xea\x03\x8f\xff\xeb\x02\x092\x02" + + "\x095\x02\x094\x02\x09;\x02\x09>\x02\x098\x02\x09*\x02\x09/\x02\x09,\x02" + + "\x09%\x02\x09&\x02\x09#\x02\x09 \x02\x08!\x02\x08%\x02\x08$\x02\x08+\x02" + + "\x08.\x02\x08*\x02\x08&\x02\x088\x02\x08>\x02\x084\x02\x086\x02\x080\x02" + + "\x08\x10\x02\x08\x17\x02\x08\x12\x02\x08\x1d\x02\x08\x1f\x02\x08\x13\x02" + + "\x08\x15\x02\x08\x14\x02\x08\x0c\x03\x8b\xfd\xd0\x03\x81\xec\xc6\x03\x87" + + "\xe0\x8a\x03-2\xe3\x03\x80\xef\xe4\x03-2\xea\x03\x88\xe6\xeb\x03\x8e\xe6" + + "\xe8\x03\x84\xe6\xe9\x03\x97\xe6\xee\x03-2\xf9\x03-2\xf6\x03\x8e\xe3\xad" + + "\x03\x80\xe3\x92\x03\x88\xe3\x90\x03\x8e\xe3\x90\x03\x80\xe3\x97\x03\x88" + + "\xe3\x95\x03\x88\xfe\xcb\x03\x8e\xfe\xca\x03\x84\xfe\xcd\x03\x91\xef\xc9" + + "\x03-2\xc1\x03-2\xc0\x03-2\xcb\x03\x88@\x09\x03\x8e@\x08\x03\x8f\xe0\xf5" + + "\x03\x8e\xe6\xf9\x03\x8e\xe0\xfa\x03\x93\xff\xf4\x03\x84\xee\xd3\x03\x0b" + + "(\x04\x023 \x03\x0b)\x08\x021;\x02\x01*\x03\x0b#\x10\x03\x0b 0\x03\x0b!" + + "\x10\x03\x0b!0\x03\x07\x15\x08\x03\x09?5\x03\x07\x1f\x08\x03\x07\x17\x0b" + + "\x03\x09\x1f\x15\x03\x0b\x1c7\x03\x0a+#\x03\x06\x1a\x1b\x03\x06\x1a\x14" + + "\x03\x0a\x01\x18\x03\x06#\x1b\x03\x0a2\x0c\x03\x0a\x01\x04\x03\x09#;\x03" + + "\x08='\x03\x08\x1a\x0a\x03\x07\x03\x0a\x111\x03\x09\x1b\x09\x03\x073.\x03\x07" + + "\x01\x00\x03\x09/,\x03\x07#>\x03\x07\x048\x03\x0a\x1f\x22\x03\x098>\x03" + + "\x09\x11\x00\x03\x08/\x17\x03\x06'\x22\x03\x0b\x1a+\x03\x0a\x22\x19\x03" + + "\x0a/1\x03\x0974\x03\x09\x0f\x22\x03\x08,\x22\x03\x08?\x14\x03\x07$5\x03" + + "\x07<3\x03\x07=*\x03\x07\x13\x18\x03\x068\x0a\x03\x06\x09\x16\x03\x06" + + "\x13\x00\x03\x08\x067\x03\x08\x01\x03\x03\x08\x12\x1d\x03\x07+7\x03\x06(" + + ";\x03\x06\x1c?\x03\x07\x0e\x17\x03\x0a\x06\x1d\x03\x0a\x19\x07\x03\x08" + + "\x14$\x03\x07$;\x03\x08,$\x03\x08\x06\x0d\x03\x07\x16\x0a\x03\x06>>\x03" + + "\x0a\x06\x12\x03\x0a\x14)\x03\x09\x0d\x1f\x03\x09\x12\x17\x03\x09\x19" + + "\x01\x03\x08\x11 \x03\x08\x1d'\x03\x06<\x1a\x03\x0a.\x00\x03\x07'\x18" + + "\x03\x0a\x22\x08\x03\x08\x0d\x0a\x03\x08\x13)\x03\x07*)\x03\x06<,\x03" + + "\x07\x0b\x1a\x03\x09.\x14\x03\x09\x0d\x1e\x03\x07\x0e#\x03\x0b\x1d'\x03" + + "\x0a\x0a8\x03\x09%2\x03\x08+&\x03\x080\x12\x03\x0a)4\x03\x08\x06\x1f\x03" + + "\x0b\x1b\x1a\x03\x0a\x1b\x0f\x03\x0b\x1d*\x03\x09\x16$\x03\x090\x11\x03" + + "\x08\x11\x08\x03\x0a*(\x03\x0a\x042\x03\x089,\x03\x074'\x03\x07\x0f\x05" + + "\x03\x09\x0b\x0a\x03\x07\x1b\x01\x03\x09\x17:\x03\x09.\x0d\x03\x07.\x11" + + "\x03\x09+\x15\x03\x080\x13\x03\x0b\x1f\x19\x03\x0a \x11\x03\x0a\x220\x03" + + "\x09\x07;\x03\x08\x16\x1c\x03\x07,\x13\x03\x07\x0e/\x03\x06\x221\x03\x0a" + + ".\x0a\x03\x0a7\x02\x03\x0a\x032\x03\x0a\x1d.\x03\x091\x06\x03\x09\x19:" + + "\x03\x08\x02/\x03\x060+\x03\x06\x0f-\x03\x06\x1c\x1f\x03\x06\x1d\x07\x03" + + "\x0a,\x11\x03\x09=\x0d\x03\x09\x0b;\x03\x07\x1b/\x03\x0a\x1f:\x03\x09 " + + "\x1f\x03\x09.\x10\x03\x094\x0b\x03\x09\x1a1\x03\x08#\x1a\x03\x084\x1d" + + "\x03\x08\x01\x1f\x03\x08\x11\x22\x03\x07'8\x03\x07\x1a>\x03\x0757\x03" + + "\x06&9\x03\x06+\x11\x03\x0a.\x0b\x03\x0a,>\x03\x0a4#\x03\x08%\x17\x03" + + "\x07\x05\x22\x03\x07\x0c\x0b\x03\x0a\x1d+\x03\x0a\x19\x16\x03\x09+\x1f" + + "\x03\x09\x08\x0b\x03\x08\x16\x18\x03\x08+\x12\x03\x0b\x1d\x0c\x03\x0a=" + + "\x10\x03\x0a\x09\x0d\x03\x0a\x10\x11\x03\x09&0\x03\x08(\x1f\x03\x087\x07" + + "\x03\x08\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06," + + "\x03\x0b\x18>\x03\x08\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\x09%\x18\x03" + + "\x0b\x1c<\x03\x0a%!\x03\x0a\x09\x12\x03\x0a\x16\x02\x03\x090'\x03\x09" + + "\x0e=\x03\x08 \x0e\x03\x08>\x03\x03\x074>\x03\x06&?\x03\x06\x19\x09\x03" + + "\x06?(\x03\x0a-\x0e\x03\x09:3\x03\x098:\x03\x09\x12\x0b\x03\x09\x1d\x17" + + "\x03\x087\x05\x03\x082\x14\x03\x08\x06%\x03\x08\x13\x1f\x03\x06\x06\x0e" + + "\x03\x0a\x22<\x03\x09/<\x03\x06>+\x03\x0a'?\x03\x0a\x13\x0c\x03\x09\x10<" + + "\x03\x07\x1b=\x03\x0a\x19\x13\x03\x09\x22\x1d\x03\x09\x07\x0d\x03\x08)" + + "\x1c\x03\x06=\x1a\x03\x0a/4\x03\x0a7\x11\x03\x0a\x16:\x03\x09?3\x03\x09:" + + "/\x03\x09\x05\x0a\x03\x09\x14\x06\x03\x087\x22\x03\x080\x07\x03\x08\x1a" + + "\x1f\x03\x07\x04(\x03\x07\x04\x09\x03\x06 %\x03\x06<\x08\x03\x0a+\x14" + + "\x03\x09\x1d\x16\x03\x0a70\x03\x08 >\x03\x0857\x03\x070\x0a\x03\x06=\x12" + + "\x03\x06\x16%\x03\x06\x1d,\x03\x099#\x03\x09\x10>\x03\x07 \x1e\x03\x08" + + "\x0c<\x03\x08\x0b\x18\x03\x08\x15+\x03\x08,:\x03\x08%\x22\x03\x07\x0a$" + + "\x03\x0b\x1c=\x03\x07+\x08\x03\x0a/\x05\x03\x0a \x07\x03\x0a\x12'\x03" + + "\x09#\x11\x03\x08\x1b\x15\x03\x0a\x06\x01\x03\x09\x1c\x1b\x03\x0922\x03" + + "\x07\x14<\x03\x07\x09\x04\x03\x061\x04\x03\x07\x0e\x01\x03\x0a\x13\x18" + + "\x03\x0a-\x0c\x03\x0a?\x0d\x03\x0a\x09\x0a\x03\x091&\x03\x0a/\x0b\x03" + + "\x08$<\x03\x083\x1d\x03\x08\x0c$\x03\x08\x0d\x07\x03\x08\x0d?\x03\x08" + + "\x0e\x14\x03\x065\x0a\x03\x08\x1a#\x03\x08\x16#\x03\x0702\x03\x07\x03" + + "\x1a\x03\x06(\x1d\x03\x06+\x1b\x03\x06\x0b\x05\x03\x06\x0b\x17\x03\x06" + + "\x0c\x04\x03\x06\x1e\x19\x03\x06+0\x03\x062\x18\x03\x0b\x16\x1e\x03\x0a+" + + "\x16\x03\x0a-?\x03\x0a#:\x03\x0a#\x10\x03\x0a%$\x03\x0a>+\x03\x0a01\x03" + + "\x0a1\x10\x03\x0a\x099\x03\x0a\x0a\x12\x03\x0a\x19\x1f\x03\x0a\x19\x12" + + "\x03\x09*)\x03\x09-\x16\x03\x09.1\x03\x09.2\x03\x09<\x0e\x03\x09> \x03" + + "\x093\x12\x03\x09\x0b\x01\x03\x09\x1c2\x03\x09\x11\x1c\x03\x09\x15%\x03" + + "\x08,&\x03\x08!\x22\x03\x089(\x03\x08\x0b\x1a\x03\x08\x0d2\x03\x08\x0c" + + "\x04\x03\x08\x0c\x06\x03\x08\x0c\x1f\x03\x08\x0c\x0c\x03\x08\x0f\x1f\x03" + + "\x08\x0f\x1d\x03\x08\x00\x14\x03\x08\x03\x14\x03\x08\x06\x16\x03\x08\x1e" + + "#\x03\x08\x11\x11\x03\x08\x10\x18\x03\x08\x14(\x03\x07)\x1e\x03\x07.1" + + "\x03\x07 $\x03\x07 '\x03\x078\x08\x03\x07\x0d0\x03\x07\x0f7\x03\x07\x05#" + + "\x03\x07\x05\x1a\x03\x07\x1a7\x03\x07\x1d-\x03\x07\x17\x10\x03\x06)\x1f" + + "\x03\x062\x0b\x03\x066\x16\x03\x06\x09\x11\x03\x09(\x1e\x03\x07!5\x03" + + "\x0b\x11\x16\x03\x0a/\x04\x03\x0a,\x1a\x03\x0b\x173\x03\x0a,1\x03\x0a/5" + + "\x03\x0a\x221\x03\x0a\x22\x0d\x03\x0a?%\x03\x0a<,\x03\x0a?#\x03\x0a>\x19" + + "\x03\x0a\x08&\x03\x0a\x0b\x0e\x03\x0a\x0c:\x03\x0a\x0c+\x03\x0a\x03\x22" + + "\x03\x0a\x06)\x03\x0a\x11\x10\x03\x0a\x11\x1a\x03\x0a\x17-\x03\x0a\x14(" + + "\x03\x09)\x1e\x03\x09/\x09\x03\x09.\x00\x03\x09,\x07\x03\x09/*\x03\x09-9" + + "\x03\x09\x228\x03\x09%\x09\x03\x09:\x12\x03\x09;\x1d\x03\x09?\x06\x03" + + "\x093%\x03\x096\x05\x03\x096\x08\x03\x097\x02\x03\x09\x07,\x03\x09\x04," + + "\x03\x09\x1f\x16\x03\x09\x11\x03\x03\x09\x11\x12\x03\x09\x168\x03\x08*" + + "\x05\x03\x08/2\x03\x084:\x03\x08\x22+\x03\x08 0\x03\x08&\x0a\x03\x08;" + + "\x10\x03\x08>$\x03\x08>\x18\x03\x0829\x03\x082:\x03\x081,\x03\x081<\x03" + + "\x081\x1c\x03\x087#\x03\x087*\x03\x08\x09'\x03\x08\x00\x1d\x03\x08\x05-" + + "\x03\x08\x1f4\x03\x08\x1d\x04\x03\x08\x16\x0f\x03\x07*7\x03\x07'!\x03" + + "\x07%\x1b\x03\x077\x0c\x03\x07\x0c1\x03\x07\x0c.\x03\x07\x00\x06\x03\x07" + + "\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03" + + "\x07\x06\x06\x03\x07\x05\x0a\x03\x07\x1f\x09\x03\x07\x17:\x03\x06*1\x03" + + "\x06-\x1d\x03\x06\x223\x03\x062:\x03\x060$\x03\x066\x1e\x03\x064\x12\x03" + + "\x0645\x03\x06\x0b\x00\x03\x06\x0b7\x03\x06\x07\x1f\x03\x06\x15\x12\x03" + + "\x0c\x05\x0f\x03\x0b+\x0b\x03\x0b+-\x03\x06\x16\x1b\x03\x06\x15\x17\x03" + + "\x89\xca\xea\x03\x89\xca\xe8\x03\x0c8\x10\x03\x0c8\x01\x03\x0c8\x0f\x03" + + "\x0d8%\x03\x0d8!\x03\x0c8-\x03\x0c8/\x03\x0c8+\x03\x0c87\x03\x0c85\x03" + + "\x0c9\x09\x03\x0c9\x0d\x03\x0c9\x0f\x03\x0c9\x0b\x03\xcfu\x0c\x03\xcfu" + + "\x0f\x03\xcfu\x0e\x03\xcfu\x09\x03\x0c9\x10\x03\x0d9\x0c\x03\xcf`;\x03" + + "\xcf`>\x03\xcf`9\x03\xcf`8\x03\xcf`7\x03\xcf`*\x03\xcf`-\x03\xcf`,\x03" + + "\x0d\x1b\x1a\x03\x0d\x1b&\x03\x0c=.\x03\x0c=%\x03\x0c>\x1e\x03\x0c>\x14" + + "\x03\x0c?\x06\x03\x0c?\x0b\x03\x0c?\x0c\x03\x0c?\x0d\x03\x0c?\x02\x03" + + "\x0c>\x0f\x03\x0c>\x08\x03\x0c>\x09\x03\x0c>,\x03\x0c>\x0c\x03\x0c?\x13" + + "\x03\x0c?\x16\x03\x0c?\x15\x03\x0c?\x1c\x03\x0c?\x1f\x03\x0c?\x1d\x03" + + "\x0c?\x1a\x03\x0c?\x17\x03\x0c?\x08\x03\x0c?\x09\x03\x0c?\x0e\x03\x0c?" + + "\x04\x03\x0c?\x05\x03\x0c" + + "\x03\x0c=2\x03\x0c=6\x03\x0c<\x07\x03\x0c<\x05\x03\x0e:!\x03\x0e:#\x03" + + "\x0e8\x09\x03\x0e:&\x03\x0e8\x0b\x03\x0e:$\x03\x0e:,\x03\x0e8\x1a\x03" + + "\x0e8\x1e\x03\x0e:*\x03\x0e:7\x03\x0e:5\x03\x0e:;\x03\x0e:\x15\x03\x0e:<" + + "\x03\x0e:4\x03\x0e:'\x03\x0e:-\x03\x0e:%\x03\x0e:?\x03\x0e:=\x03\x0e:)" + + "\x03\x0e:/\x03\xcfs'\x03\x0d=\x0f\x03\x0d+*\x03\x0d99\x03\x0d9;\x03\x0d9" + + "?\x03\x0d)\x0d\x03\x0d(%\x02\x01\x18\x02\x01(\x02\x01\x1e\x03\x0f$!\x03" + + "\x0f87\x03\x0f4\x0e\x03\x0f5\x1d\x03\x06'\x03\x03\x0f\x08\x18\x03\x0f" + + "\x0d\x1b\x03\x0e2=\x03\x0e;\x08\x03\x0e:\x0b\x03\x0e\x06$\x03\x0e\x0d)" + + "\x03\x0e\x16\x1f\x03\x0e\x16\x1b\x03\x0d$\x0a\x03\x05,\x1d\x03\x0d. \x03" + + "\x0d.#\x03\x0c(/\x03\x09%\x02\x03\x0d90\x03\x0d\x0e4\x03\x0d\x0d\x0f\x03" + + "\x0c#\x00\x03\x0c,\x1e\x03\x0c2\x0e\x03\x0c\x01\x17\x03\x0c\x09:\x03\x0e" + + "\x173\x03\x0c\x08\x03\x03\x0c\x11\x07\x03\x0c\x10\x18\x03\x0c\x1f\x1c" + + "\x03\x0c\x19\x0e\x03\x0c\x1a\x1f\x03\x0f0>\x03\x0b->\x03\x0b<+\x03\x0b8" + + "\x13\x03\x0b\x043\x03\x0b\x14\x03\x03\x0b\x16%\x03\x0d\x22&\x03\x0b\x1a" + + "\x1a\x03\x0b\x1a\x04\x03\x0a%9\x03\x0a&2\x03\x0a&0\x03\x0a!\x1a\x03\x0a!" + + "7\x03\x0a5\x10\x03\x0a=4\x03\x0a?\x0e\x03\x0a>\x10\x03\x0a\x00 \x03\x0a" + + "\x0f:\x03\x0a\x0f9\x03\x0a\x0b\x0a\x03\x0a\x17%\x03\x0a\x1b-\x03\x09-" + + "\x1a\x03\x09,4\x03\x09.,\x03\x09)\x09\x03\x096!\x03\x091\x1f\x03\x093" + + "\x16\x03\x0c+\x1f\x03\x098 \x03\x098=\x03\x0c(\x1a\x03\x0c(\x16\x03\x09" + + "\x0a+\x03\x09\x16\x12\x03\x09\x13\x0e\x03\x09\x153\x03\x08)!\x03\x09\x1a" + + "\x01\x03\x09\x18\x01\x03\x08%#\x03\x08>\x22\x03\x08\x05%\x03\x08\x02*" + + "\x03\x08\x15;\x03\x08\x1b7\x03\x0f\x07\x1d\x03\x0f\x04\x03\x03\x070\x0c" + + "\x03\x07;\x0b\x03\x07\x08\x17\x03\x07\x12\x06\x03\x06/-\x03\x0671\x03" + + "\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1e\x03\x05,\x17\x03\x05 \x1d\x03" + + "\x05\x22\x05\x03\x050\x1d" + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// idnaTrie. Total size: 30288 bytes (29.58 KiB). Checksum: c0cd84404a2f6f19. +type idnaTrie struct{} + +func newIdnaTrie(i int) *idnaTrie { + return &idnaTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *idnaTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 126: + return uint16(idnaValues[n<<6+uint32(b)]) + default: + n -= 126 + return uint16(idnaSparse.lookup(n, b)) + } +} + +// idnaValues: 128 blocks, 8192 entries, 16384 bytes +// The third block is the zero block. +var idnaValues = [8192]uint16{ + // Block 0x0, offset 0x0 + 0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080, + 0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080, + 0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080, + 0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080, + 0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080, + 0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080, + 0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080, + 0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080, + 0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008, + 0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080, + 0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080, + // Block 0x1, offset 0x40 + 0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105, + 0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105, + 0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105, + 0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105, + 0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080, + 0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008, + 0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008, + 0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008, + 0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008, + 0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080, + 0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040, + 0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040, + 0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040, + 0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040, + 0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040, + 0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018, + 0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018, + 0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a, + 0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005, + 0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018, + 0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018, + // Block 0x4, offset 0x100 + 0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008, + 0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008, + 0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008, + 0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008, + 0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008, + 0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008, + 0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008, + 0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008, + 0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008, + 0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d, + 0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199, + // Block 0x5, offset 0x140 + 0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d, + 0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008, + 0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008, + 0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008, + 0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008, + 0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008, + 0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008, + 0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008, + 0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008, + 0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d, + 0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9, + // Block 0x6, offset 0x180 + 0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008, + 0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d, + 0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d, + 0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d, + 0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155, + 0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008, + 0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d, + 0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd, + 0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d, + 0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008, + 0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9, + 0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d, + 0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d, + 0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d, + 0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008, + 0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008, + 0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008, + 0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008, + 0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008, + 0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008, + 0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008, + // Block 0x8, offset 0x200 + 0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008, + 0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008, + 0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008, + 0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008, + 0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008, + 0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008, + 0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008, + 0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008, + 0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008, + 0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d, + 0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008, + // Block 0x9, offset 0x240 + 0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018, + 0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008, + 0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008, + 0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018, + 0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a, + 0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369, + 0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018, + 0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018, + 0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018, + 0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018, + 0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018, + // Block 0xa, offset 0x280 + 0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d, + 0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308, + 0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308, + 0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308, + 0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308, + 0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308, + 0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308, + 0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308, + 0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008, + 0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008, + 0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2, + 0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040, + 0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105, + 0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105, + 0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105, + 0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d, + 0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d, + 0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008, + 0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008, + 0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008, + 0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008, + // Block 0xc, offset 0x300 + 0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008, + 0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008, + 0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd, + 0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008, + 0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008, + 0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008, + 0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008, + 0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008, + 0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd, + 0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008, + 0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d, + // Block 0xd, offset 0x340 + 0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008, + 0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008, + 0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008, + 0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008, + 0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008, + 0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008, + 0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008, + 0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008, + 0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008, + 0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008, + 0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008, + // Block 0xe, offset 0x380 + 0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308, + 0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008, + 0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008, + 0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008, + 0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008, + 0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008, + 0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008, + 0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008, + 0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008, + 0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008, + 0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d, + 0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d, + 0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008, + 0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008, + 0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008, + 0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008, + 0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008, + 0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008, + 0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008, + 0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008, + 0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008, + // Block 0x10, offset 0x400 + 0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008, + 0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008, + 0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008, + 0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008, + 0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008, + 0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008, + 0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008, + 0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008, + 0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5, + 0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5, + 0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5, + // Block 0x11, offset 0x440 + 0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840, + 0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818, + 0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308, + 0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308, + 0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040, + 0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08, + 0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08, + 0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08, + 0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08, + 0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08, + 0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08, + // Block 0x12, offset 0x480 + 0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08, + 0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308, + 0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308, + 0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308, + 0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308, + 0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808, + 0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808, + 0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08, + 0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429, + 0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08, + 0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08, + 0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08, + 0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08, + 0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308, + 0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840, + 0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308, + 0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018, + 0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08, + 0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008, + 0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08, + 0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08, + // Block 0x14, offset 0x500 + 0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818, + 0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818, + 0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308, + 0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08, + 0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08, + 0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08, + 0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08, + 0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08, + 0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308, + 0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308, + 0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308, + // Block 0x15, offset 0x540 + 0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08, + 0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08, + 0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08, + 0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0c08, 0x557: 0x0c08, + 0x558: 0x0c08, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040, + 0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08, + 0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08, + 0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040, + 0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040, + 0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040, + 0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040, + // Block 0x16, offset 0x580 + 0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308, + 0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008, + 0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308, + 0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308, + 0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1, + 0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308, + 0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008, + 0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008, + 0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008, + 0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008, + 0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008, + 0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008, + 0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040, + 0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008, + 0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008, + 0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008, + 0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040, + 0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008, + 0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040, + 0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040, + 0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008, + // Block 0x18, offset 0x600 + 0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040, + 0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008, + 0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040, + 0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008, + 0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1, + 0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308, + 0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008, + 0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008, + 0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018, + 0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018, + 0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040, + // Block 0x19, offset 0x640 + 0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008, + 0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040, + 0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040, + 0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008, + 0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008, + 0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008, + 0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040, + 0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008, + 0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008, + 0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040, + 0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008, + // Block 0x1a, offset 0x680 + 0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040, + 0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308, + 0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308, + 0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040, + 0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040, + 0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040, + 0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008, + 0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008, + 0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308, + 0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040, + 0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008, + 0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008, + 0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008, + 0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008, + 0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008, + 0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008, + 0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040, + 0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008, + 0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008, + 0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040, + 0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008, + // Block 0x1c, offset 0x700 + 0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308, + 0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008, + 0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040, + 0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040, + 0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040, + 0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308, + 0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008, + 0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008, + 0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040, + 0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308, + 0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308, + // Block 0x1d, offset 0x740 + 0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008, + 0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008, + 0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040, + 0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008, + 0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008, + 0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008, + 0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040, + 0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008, + 0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008, + 0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040, + 0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308, + // Block 0x1e, offset 0x780 + 0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040, + 0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008, + 0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040, + 0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x3308, 0x796: 0x3308, 0x797: 0x3008, + 0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9, + 0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308, + 0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008, + 0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008, + 0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018, + 0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040, + 0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008, + 0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040, + 0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040, + 0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040, + 0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040, + 0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008, + 0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008, + 0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008, + 0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008, + 0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040, + 0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008, + // Block 0x20, offset 0x800 + 0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040, + 0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308, + 0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040, + 0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040, + 0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040, + 0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308, + 0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008, + 0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008, + 0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040, + 0x836: 0x0040, 0x837: 0x0018, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018, + 0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018, + // Block 0x21, offset 0x840 + 0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008, + 0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008, + 0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040, + 0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008, + 0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008, + 0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008, + 0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040, + 0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008, + 0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008, + 0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040, + 0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308, + // Block 0x22, offset 0x880 + 0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040, + 0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008, + 0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040, + 0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040, + 0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040, + 0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308, + 0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008, + 0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008, + 0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040, + 0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040, + 0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040, + 0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008, + 0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040, + 0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008, + 0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018, + 0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308, + 0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008, + 0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008, + 0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018, + 0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008, + 0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008, + // Block 0x24, offset 0x900 + 0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040, + 0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0040, + 0x90c: 0x0008, 0x90d: 0x0008, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008, + 0x912: 0x0008, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008, + 0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008, + 0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008, + 0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008, + 0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008, + 0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308, + 0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x3b08, 0x93b: 0x3308, + 0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040, + // Block 0x25, offset 0x940 + 0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008, + 0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008, + 0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008, + 0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79, + 0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008, + 0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008, + 0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9, + 0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040, + 0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59, + 0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308, + 0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008, + // Block 0x26, offset 0x980 + 0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018, + 0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008, + 0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308, + 0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308, + 0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11, + 0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308, + 0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308, + 0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308, + 0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308, + 0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308, + 0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008, + 0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008, + 0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008, + 0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008, + 0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008, + 0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008, + 0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008, + 0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008, + 0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41, + 0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008, + 0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269, + // Block 0x28, offset 0xa00 + 0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1, + 0xa06: 0x05b5, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011, + 0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041, + 0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05cd, 0xa15: 0x05cd, 0xa16: 0x0f99, 0xa17: 0x0fa9, + 0xa18: 0x0fb9, 0xa19: 0x05b5, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05e5, 0xa1d: 0x1099, + 0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269, + 0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1, + 0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008, + 0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008, + 0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008, + 0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008, + // Block 0x29, offset 0xa40 + 0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008, + 0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008, + 0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008, + 0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008, + 0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169, + 0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9, + 0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05fd, 0xa68: 0x1239, 0xa69: 0x1251, + 0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9, + 0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359, + 0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x0615, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1, + 0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429, + // Block 0x2a, offset 0xa80 + 0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008, + 0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008, + 0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008, + 0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008, + 0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008, + 0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008, + 0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008, + 0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008, + 0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008, + 0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008, + 0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008, + // Block 0x2b, offset 0xac0 + 0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008, + 0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008, + 0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008, + 0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008, + 0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x062d, 0xadb: 0x064d, 0xadc: 0x0008, 0xadd: 0x0008, + 0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008, + 0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008, + 0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008, + 0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008, + 0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008, + 0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008, + 0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045, + 0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008, + 0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008, + 0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045, + 0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008, + 0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045, + 0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045, + 0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489, + 0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1, + 0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040, + // Block 0x2d, offset 0xb40 + 0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1, + 0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591, + 0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1, + 0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1, + 0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771, + 0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891, + 0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831, + 0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951, + 0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040, + 0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x0665, 0xb7b: 0x1459, + 0xb7c: 0x19b1, 0xb7d: 0x067e, 0xb7e: 0x1a31, 0xb7f: 0x069e, + // Block 0x2e, offset 0xb80 + 0xb80: 0x06be, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040, + 0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06dd, 0xb89: 0x1471, 0xb8a: 0x06f5, 0xb8b: 0x1489, + 0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008, + 0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008, + 0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x070d, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2, + 0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61, + 0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045, + 0xbaa: 0x0725, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa, + 0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040, + 0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x073d, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9, + 0xbbc: 0x1ce9, 0xbbd: 0x0756, 0xbbe: 0x0776, 0xbbf: 0x0040, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a, + 0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0, + 0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d, + 0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x0796, + 0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018, + 0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018, + 0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040, + 0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a, + 0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018, + 0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018, + 0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x07b6, 0xbff: 0x0018, + // Block 0x30, offset 0xc00 + 0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018, + 0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018, + 0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018, + 0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9, + 0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018, + 0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340, + 0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040, + 0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340, + 0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61, + 0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07d5, + 0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71, + // Block 0x31, offset 0xc40 + 0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61, + 0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07ed, + 0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09, + 0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359, + 0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040, + 0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018, + 0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018, + 0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018, + 0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018, + 0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018, + 0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018, + // Block 0x32, offset 0xc80 + 0xc80: 0x0806, 0xc81: 0x0826, 0xc82: 0x1159, 0xc83: 0x0845, 0xc84: 0x0018, 0xc85: 0x0866, + 0xc86: 0x0886, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x08a5, 0xc8a: 0x0f31, 0xc8b: 0x0249, + 0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41, + 0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018, + 0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269, + 0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08c5, 0xca2: 0x2061, 0xca3: 0x0018, + 0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018, + 0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09, + 0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9, + 0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08e5, + 0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x0905, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9, + 0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018, + 0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151, + 0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279, + 0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399, + 0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x091d, 0xce3: 0x2439, + 0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x093d, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369, + 0xcea: 0x24a9, 0xceb: 0x095d, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61, + 0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x097d, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451, + 0xcf6: 0x099d, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09bd, + 0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61, + // Block 0x34, offset 0xd00 + 0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018, + 0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040, + 0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040, + 0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040, + 0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040, + 0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51, + 0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601, + 0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691, + 0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a1e, 0xd35: 0x0a3e, + 0xd36: 0x0a5e, 0xd37: 0x0a7e, 0xd38: 0x0a9e, 0xd39: 0x0abe, 0xd3a: 0x0ade, 0xd3b: 0x0afe, + 0xd3c: 0x0b1e, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a, + // Block 0x35, offset 0xd40 + 0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a, + 0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040, + 0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040, + 0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040, + 0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b3e, 0xd5d: 0x0b5e, + 0xd5e: 0x0b7e, 0xd5f: 0x0b9e, 0xd60: 0x0bbe, 0xd61: 0x0bde, 0xd62: 0x0bfe, 0xd63: 0x0c1e, + 0xd64: 0x0c3e, 0xd65: 0x0c5e, 0xd66: 0x0c7e, 0xd67: 0x0c9e, 0xd68: 0x0cbe, 0xd69: 0x0cde, + 0xd6a: 0x0cfe, 0xd6b: 0x0d1e, 0xd6c: 0x0d3e, 0xd6d: 0x0d5e, 0xd6e: 0x0d7e, 0xd6f: 0x0d9e, + 0xd70: 0x0dbe, 0xd71: 0x0dde, 0xd72: 0x0dfe, 0xd73: 0x0e1e, 0xd74: 0x0e3e, 0xd75: 0x0e5e, + 0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199, + 0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259, + // Block 0x36, offset 0xd80 + 0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99, + 0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089, + 0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9, + 0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249, + 0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71, + 0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9, + 0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1, + 0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018, + 0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018, + 0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018, + 0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008, + 0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008, + 0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008, + 0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008, + 0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008, + 0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ed5, + 0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d, + 0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9, + 0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d, + 0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008, + 0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9, + // Block 0x38, offset 0xe00 + 0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008, + 0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008, + 0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008, + 0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008, + 0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008, + 0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008, + 0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018, + 0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308, + 0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040, + 0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018, + 0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018, + // Block 0x39, offset 0xe40 + 0xe40: 0x2715, 0xe41: 0x2735, 0xe42: 0x2755, 0xe43: 0x2775, 0xe44: 0x2795, 0xe45: 0x27b5, + 0xe46: 0x27d5, 0xe47: 0x27f5, 0xe48: 0x2815, 0xe49: 0x2835, 0xe4a: 0x2855, 0xe4b: 0x2875, + 0xe4c: 0x2895, 0xe4d: 0x28b5, 0xe4e: 0x28d5, 0xe4f: 0x28f5, 0xe50: 0x2915, 0xe51: 0x2935, + 0xe52: 0x2955, 0xe53: 0x2975, 0xe54: 0x2995, 0xe55: 0x29b5, 0xe56: 0x0040, 0xe57: 0x0040, + 0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040, + 0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040, + 0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040, + 0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040, + 0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040, + 0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040, + 0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040, + // Block 0x3a, offset 0xe80 + 0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008, + 0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018, + 0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018, + 0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018, + 0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018, + 0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018, + 0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018, + 0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018, + 0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018, + 0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29d5, 0xeb9: 0x29f5, 0xeba: 0x2a15, 0xebb: 0x0018, + 0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018, + // Block 0x3b, offset 0xec0 + 0xec0: 0x2b55, 0xec1: 0x2b75, 0xec2: 0x2b95, 0xec3: 0x2bb5, 0xec4: 0x2bd5, 0xec5: 0x2bf5, + 0xec6: 0x2bf5, 0xec7: 0x2bf5, 0xec8: 0x2c15, 0xec9: 0x2c15, 0xeca: 0x2c15, 0xecb: 0x2c15, + 0xecc: 0x2c35, 0xecd: 0x2c35, 0xece: 0x2c35, 0xecf: 0x2c55, 0xed0: 0x2c75, 0xed1: 0x2c75, + 0xed2: 0x2a95, 0xed3: 0x2a95, 0xed4: 0x2c75, 0xed5: 0x2c75, 0xed6: 0x2c95, 0xed7: 0x2c95, + 0xed8: 0x2c75, 0xed9: 0x2c75, 0xeda: 0x2a95, 0xedb: 0x2a95, 0xedc: 0x2c75, 0xedd: 0x2c75, + 0xede: 0x2c55, 0xedf: 0x2c55, 0xee0: 0x2cb5, 0xee1: 0x2cb5, 0xee2: 0x2cd5, 0xee3: 0x2cd5, + 0xee4: 0x0040, 0xee5: 0x2cf5, 0xee6: 0x2d15, 0xee7: 0x2d35, 0xee8: 0x2d35, 0xee9: 0x2d55, + 0xeea: 0x2d75, 0xeeb: 0x2d95, 0xeec: 0x2db5, 0xeed: 0x2dd5, 0xeee: 0x2df5, 0xeef: 0x2e15, + 0xef0: 0x2e35, 0xef1: 0x2e55, 0xef2: 0x2e55, 0xef3: 0x2e75, 0xef4: 0x2e95, 0xef5: 0x2e95, + 0xef6: 0x2eb5, 0xef7: 0x2ed5, 0xef8: 0x2e75, 0xef9: 0x2ef5, 0xefa: 0x2f15, 0xefb: 0x2ef5, + 0xefc: 0x2e75, 0xefd: 0x2f35, 0xefe: 0x2f55, 0xeff: 0x2f75, + // Block 0x3c, offset 0xf00 + 0xf00: 0x2f95, 0xf01: 0x2fb5, 0xf02: 0x2d15, 0xf03: 0x2cf5, 0xf04: 0x2fd5, 0xf05: 0x2ff5, + 0xf06: 0x3015, 0xf07: 0x3035, 0xf08: 0x3055, 0xf09: 0x3075, 0xf0a: 0x3095, 0xf0b: 0x30b5, + 0xf0c: 0x30d5, 0xf0d: 0x30f5, 0xf0e: 0x3115, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018, + 0xf12: 0x3135, 0xf13: 0x3155, 0xf14: 0x3175, 0xf15: 0x3195, 0xf16: 0x31b5, 0xf17: 0x31d5, + 0xf18: 0x31f5, 0xf19: 0x3215, 0xf1a: 0x3235, 0xf1b: 0x3255, 0xf1c: 0x3175, 0xf1d: 0x3275, + 0xf1e: 0x3295, 0xf1f: 0x32b5, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008, + 0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008, + 0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008, + 0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008, + 0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0008, + 0xf3c: 0x0008, 0xf3d: 0x0008, 0xf3e: 0x0008, 0xf3f: 0x0008, + // Block 0x3d, offset 0xf40 + 0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32d5, 0xf45: 0x32f5, + 0xf46: 0x3315, 0xf47: 0x3335, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018, + 0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x3355, 0xf51: 0x3761, + 0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1, + 0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881, + 0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x3375, 0xf61: 0x3395, 0xf62: 0x33b5, 0xf63: 0x33d5, + 0xf64: 0x33f5, 0xf65: 0x33f5, 0xf66: 0x3415, 0xf67: 0x3435, 0xf68: 0x3455, 0xf69: 0x3475, + 0xf6a: 0x3495, 0xf6b: 0x34b5, 0xf6c: 0x34d5, 0xf6d: 0x34f5, 0xf6e: 0x3515, 0xf6f: 0x3535, + 0xf70: 0x3555, 0xf71: 0x3575, 0xf72: 0x3595, 0xf73: 0x35b5, 0xf74: 0x35d5, 0xf75: 0x35f5, + 0xf76: 0x3615, 0xf77: 0x3635, 0xf78: 0x3655, 0xf79: 0x3675, 0xf7a: 0x3695, 0xf7b: 0x36b5, + 0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36d5, 0xf7f: 0x0018, + // Block 0x3e, offset 0xf80 + 0xf80: 0x36f5, 0xf81: 0x3715, 0xf82: 0x3735, 0xf83: 0x3755, 0xf84: 0x3775, 0xf85: 0x3795, + 0xf86: 0x37b5, 0xf87: 0x37d5, 0xf88: 0x37f5, 0xf89: 0x3815, 0xf8a: 0x3835, 0xf8b: 0x3855, + 0xf8c: 0x3875, 0xf8d: 0x3895, 0xf8e: 0x38b5, 0xf8f: 0x38d5, 0xf90: 0x38f5, 0xf91: 0x3915, + 0xf92: 0x3935, 0xf93: 0x3955, 0xf94: 0x3975, 0xf95: 0x3995, 0xf96: 0x39b5, 0xf97: 0x39d5, + 0xf98: 0x39f5, 0xf99: 0x3a15, 0xf9a: 0x3a35, 0xf9b: 0x3a55, 0xf9c: 0x3a75, 0xf9d: 0x3a95, + 0xf9e: 0x3ab5, 0xf9f: 0x3ad5, 0xfa0: 0x3af5, 0xfa1: 0x3b15, 0xfa2: 0x3b35, 0xfa3: 0x3b55, + 0xfa4: 0x3b75, 0xfa5: 0x3b95, 0xfa6: 0x1295, 0xfa7: 0x3bb5, 0xfa8: 0x3bd5, 0xfa9: 0x3bf5, + 0xfaa: 0x3c15, 0xfab: 0x3c35, 0xfac: 0x3c55, 0xfad: 0x3c75, 0xfae: 0x23b5, 0xfaf: 0x3c95, + 0xfb0: 0x3cb5, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999, + 0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29, + 0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69, + 0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69, + 0xfcc: 0x3c99, 0xfcd: 0x3cd5, 0xfce: 0x3cb1, 0xfcf: 0x3cf5, 0xfd0: 0x3d15, 0xfd1: 0x3d2d, + 0xfd2: 0x3d45, 0xfd3: 0x3d5d, 0xfd4: 0x3d75, 0xfd5: 0x3d75, 0xfd6: 0x3d5d, 0xfd7: 0x3d8d, + 0xfd8: 0x07d5, 0xfd9: 0x3da5, 0xfda: 0x3dbd, 0xfdb: 0x3dd5, 0xfdc: 0x3ded, 0xfdd: 0x3e05, + 0xfde: 0x3e1d, 0xfdf: 0x3e35, 0xfe0: 0x3e4d, 0xfe1: 0x3e65, 0xfe2: 0x3e7d, 0xfe3: 0x3e95, + 0xfe4: 0x3ead, 0xfe5: 0x3ead, 0xfe6: 0x3ec5, 0xfe7: 0x3ec5, 0xfe8: 0x3edd, 0xfe9: 0x3edd, + 0xfea: 0x3ef5, 0xfeb: 0x3f0d, 0xfec: 0x3f25, 0xfed: 0x3f3d, 0xfee: 0x3f55, 0xfef: 0x3f55, + 0xff0: 0x3f6d, 0xff1: 0x3f6d, 0xff2: 0x3f6d, 0xff3: 0x3f85, 0xff4: 0x3f9d, 0xff5: 0x3fb5, + 0xff6: 0x3fcd, 0xff7: 0x3fb5, 0xff8: 0x3fe5, 0xff9: 0x3ffd, 0xffa: 0x3f85, 0xffb: 0x4015, + 0xffc: 0x402d, 0xffd: 0x402d, 0xffe: 0x402d, 0xfff: 0x3cc9, + // Block 0x40, offset 0x1000 + 0x1000: 0x3d01, 0x1001: 0x3d69, 0x1002: 0x3dd1, 0x1003: 0x3e39, 0x1004: 0x3e89, 0x1005: 0x3ef1, + 0x1006: 0x3f41, 0x1007: 0x3f91, 0x1008: 0x4011, 0x1009: 0x4079, 0x100a: 0x40c9, 0x100b: 0x4119, + 0x100c: 0x4169, 0x100d: 0x41d1, 0x100e: 0x4239, 0x100f: 0x4289, 0x1010: 0x42d9, 0x1011: 0x4311, + 0x1012: 0x4361, 0x1013: 0x43c9, 0x1014: 0x4431, 0x1015: 0x4469, 0x1016: 0x44e9, 0x1017: 0x4581, + 0x1018: 0x4601, 0x1019: 0x4651, 0x101a: 0x46d1, 0x101b: 0x4751, 0x101c: 0x47b9, 0x101d: 0x4809, + 0x101e: 0x4859, 0x101f: 0x48a9, 0x1020: 0x4911, 0x1021: 0x4991, 0x1022: 0x49f9, 0x1023: 0x4a49, + 0x1024: 0x4a99, 0x1025: 0x4ae9, 0x1026: 0x4b21, 0x1027: 0x4b59, 0x1028: 0x4b91, 0x1029: 0x4bc9, + 0x102a: 0x4c19, 0x102b: 0x4c69, 0x102c: 0x4ce9, 0x102d: 0x4d39, 0x102e: 0x4da1, 0x102f: 0x4e21, + 0x1030: 0x4e71, 0x1031: 0x4ea9, 0x1032: 0x4ee1, 0x1033: 0x4f61, 0x1034: 0x4fc9, 0x1035: 0x5049, + 0x1036: 0x5099, 0x1037: 0x5119, 0x1038: 0x5151, 0x1039: 0x51a1, 0x103a: 0x51f1, 0x103b: 0x5241, + 0x103c: 0x5291, 0x103d: 0x52e1, 0x103e: 0x5349, 0x103f: 0x5399, + // Block 0x41, offset 0x1040 + 0x1040: 0x53d1, 0x1041: 0x5421, 0x1042: 0x5471, 0x1043: 0x54c1, 0x1044: 0x5529, 0x1045: 0x5579, + 0x1046: 0x55c9, 0x1047: 0x5619, 0x1048: 0x5699, 0x1049: 0x5701, 0x104a: 0x5739, 0x104b: 0x57b9, + 0x104c: 0x57f1, 0x104d: 0x5859, 0x104e: 0x58c1, 0x104f: 0x5911, 0x1050: 0x5961, 0x1051: 0x59b1, + 0x1052: 0x5a19, 0x1053: 0x5a51, 0x1054: 0x5aa1, 0x1055: 0x5b09, 0x1056: 0x5b41, 0x1057: 0x5bc1, + 0x1058: 0x5c11, 0x1059: 0x5c39, 0x105a: 0x5c61, 0x105b: 0x5c89, 0x105c: 0x5cb1, 0x105d: 0x5cd9, + 0x105e: 0x5d01, 0x105f: 0x5d29, 0x1060: 0x5d51, 0x1061: 0x5d79, 0x1062: 0x5da1, 0x1063: 0x5dd1, + 0x1064: 0x5e01, 0x1065: 0x5e31, 0x1066: 0x5e61, 0x1067: 0x5e91, 0x1068: 0x5ec1, 0x1069: 0x5ef1, + 0x106a: 0x5f21, 0x106b: 0x5f51, 0x106c: 0x5f81, 0x106d: 0x5fb1, 0x106e: 0x5fe1, 0x106f: 0x6011, + 0x1070: 0x6041, 0x1071: 0x4045, 0x1072: 0x6071, 0x1073: 0x6089, 0x1074: 0x4065, 0x1075: 0x60a1, + 0x1076: 0x60b9, 0x1077: 0x60d1, 0x1078: 0x4085, 0x1079: 0x4085, 0x107a: 0x60e9, 0x107b: 0x6101, + 0x107c: 0x6139, 0x107d: 0x6171, 0x107e: 0x61a9, 0x107f: 0x61e1, + // Block 0x42, offset 0x1080 + 0x1080: 0x6249, 0x1081: 0x6261, 0x1082: 0x40a5, 0x1083: 0x6279, 0x1084: 0x6291, 0x1085: 0x62a9, + 0x1086: 0x62c1, 0x1087: 0x62d9, 0x1088: 0x40c5, 0x1089: 0x62f1, 0x108a: 0x6319, 0x108b: 0x6331, + 0x108c: 0x40e5, 0x108d: 0x40e5, 0x108e: 0x6349, 0x108f: 0x6361, 0x1090: 0x6379, 0x1091: 0x4105, + 0x1092: 0x4125, 0x1093: 0x4145, 0x1094: 0x4165, 0x1095: 0x4185, 0x1096: 0x6391, 0x1097: 0x63a9, + 0x1098: 0x63c1, 0x1099: 0x63d9, 0x109a: 0x63f1, 0x109b: 0x41a5, 0x109c: 0x6409, 0x109d: 0x6421, + 0x109e: 0x6439, 0x109f: 0x41c5, 0x10a0: 0x41e5, 0x10a1: 0x6451, 0x10a2: 0x4205, 0x10a3: 0x4225, + 0x10a4: 0x4245, 0x10a5: 0x6469, 0x10a6: 0x4265, 0x10a7: 0x6481, 0x10a8: 0x64b1, 0x10a9: 0x6249, + 0x10aa: 0x4285, 0x10ab: 0x42a5, 0x10ac: 0x42c5, 0x10ad: 0x42e5, 0x10ae: 0x64e9, 0x10af: 0x6529, + 0x10b0: 0x6571, 0x10b1: 0x6589, 0x10b2: 0x4305, 0x10b3: 0x65a1, 0x10b4: 0x65b9, 0x10b5: 0x65d1, + 0x10b6: 0x4325, 0x10b7: 0x65e9, 0x10b8: 0x6601, 0x10b9: 0x65e9, 0x10ba: 0x6619, 0x10bb: 0x6631, + 0x10bc: 0x4345, 0x10bd: 0x6649, 0x10be: 0x6661, 0x10bf: 0x6649, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x4365, 0x10c1: 0x4385, 0x10c2: 0x0040, 0x10c3: 0x6679, 0x10c4: 0x6691, 0x10c5: 0x66a9, + 0x10c6: 0x66c1, 0x10c7: 0x0040, 0x10c8: 0x66f9, 0x10c9: 0x6711, 0x10ca: 0x6729, 0x10cb: 0x6741, + 0x10cc: 0x6759, 0x10cd: 0x6771, 0x10ce: 0x6439, 0x10cf: 0x6789, 0x10d0: 0x67a1, 0x10d1: 0x67b9, + 0x10d2: 0x43a5, 0x10d3: 0x67d1, 0x10d4: 0x62c1, 0x10d5: 0x43c5, 0x10d6: 0x43e5, 0x10d7: 0x67e9, + 0x10d8: 0x0040, 0x10d9: 0x4405, 0x10da: 0x6801, 0x10db: 0x6819, 0x10dc: 0x6831, 0x10dd: 0x6849, + 0x10de: 0x6861, 0x10df: 0x6891, 0x10e0: 0x68c1, 0x10e1: 0x68e9, 0x10e2: 0x6911, 0x10e3: 0x6939, + 0x10e4: 0x6961, 0x10e5: 0x6989, 0x10e6: 0x69b1, 0x10e7: 0x69d9, 0x10e8: 0x6a01, 0x10e9: 0x6a29, + 0x10ea: 0x6a59, 0x10eb: 0x6a89, 0x10ec: 0x6ab9, 0x10ed: 0x6ae9, 0x10ee: 0x6b19, 0x10ef: 0x6b49, + 0x10f0: 0x6b79, 0x10f1: 0x6ba9, 0x10f2: 0x6bd9, 0x10f3: 0x6c09, 0x10f4: 0x6c39, 0x10f5: 0x6c69, + 0x10f6: 0x6c99, 0x10f7: 0x6cc9, 0x10f8: 0x6cf9, 0x10f9: 0x6d29, 0x10fa: 0x6d59, 0x10fb: 0x6d89, + 0x10fc: 0x6db9, 0x10fd: 0x6de9, 0x10fe: 0x6e19, 0x10ff: 0x4425, + // Block 0x44, offset 0x1100 + 0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008, + 0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008, + 0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008, + 0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008, + 0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008, + 0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008, + 0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008, + 0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308, + 0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308, + 0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308, + 0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008, + // Block 0x45, offset 0x1140 + 0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008, + 0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008, + 0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008, + 0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008, + 0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e49, + 0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008, + 0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008, + 0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008, + 0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008, + 0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008, + 0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008, + // Block 0x46, offset 0x1180 + 0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018, + 0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018, + 0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018, + 0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008, + 0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008, + 0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008, + 0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008, + 0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008, + 0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008, + 0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008, + 0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008, + // Block 0x47, offset 0x11c0 + 0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008, + 0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008, + 0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008, + 0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008, + 0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008, + 0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008, + 0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008, + 0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008, + 0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008, + 0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d, + 0x11fc: 0x0008, 0x11fd: 0x4445, 0x11fe: 0xe00d, 0x11ff: 0x0008, + // Block 0x48, offset 0x1200 + 0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008, + 0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d, + 0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008, + 0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008, + 0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008, + 0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008, + 0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008, + 0x122a: 0x6e61, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e79, 0x122e: 0x1221, 0x122f: 0x0008, + 0x1230: 0x6e91, 0x1231: 0x6ea9, 0x1232: 0x1239, 0x1233: 0x4465, 0x1234: 0xe00d, 0x1235: 0x0008, + 0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0xe00d, 0x1239: 0x0008, 0x123a: 0xe00d, 0x123b: 0x0008, + 0x123c: 0xe00d, 0x123d: 0x0008, 0x123e: 0xe00d, 0x123f: 0x0008, + // Block 0x49, offset 0x1240 + 0x1240: 0x650d, 0x1241: 0x652d, 0x1242: 0x654d, 0x1243: 0x656d, 0x1244: 0x658d, 0x1245: 0x65ad, + 0x1246: 0x65cd, 0x1247: 0x65ed, 0x1248: 0x660d, 0x1249: 0x662d, 0x124a: 0x664d, 0x124b: 0x666d, + 0x124c: 0x668d, 0x124d: 0x66ad, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x66cd, 0x1251: 0x0008, + 0x1252: 0x66ed, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x670d, 0x1256: 0x672d, 0x1257: 0x674d, + 0x1258: 0x676d, 0x1259: 0x678d, 0x125a: 0x67ad, 0x125b: 0x67cd, 0x125c: 0x67ed, 0x125d: 0x680d, + 0x125e: 0x682d, 0x125f: 0x0008, 0x1260: 0x684d, 0x1261: 0x0008, 0x1262: 0x686d, 0x1263: 0x0008, + 0x1264: 0x0008, 0x1265: 0x688d, 0x1266: 0x68ad, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008, + 0x126a: 0x68cd, 0x126b: 0x68ed, 0x126c: 0x690d, 0x126d: 0x692d, 0x126e: 0x694d, 0x126f: 0x696d, + 0x1270: 0x698d, 0x1271: 0x69ad, 0x1272: 0x69cd, 0x1273: 0x69ed, 0x1274: 0x6a0d, 0x1275: 0x6a2d, + 0x1276: 0x6a4d, 0x1277: 0x6a6d, 0x1278: 0x6a8d, 0x1279: 0x6aad, 0x127a: 0x6acd, 0x127b: 0x6aed, + 0x127c: 0x6b0d, 0x127d: 0x6b2d, 0x127e: 0x6b4d, 0x127f: 0x6b6d, + // Block 0x4a, offset 0x1280 + 0x1280: 0x7acd, 0x1281: 0x7aed, 0x1282: 0x7b0d, 0x1283: 0x7b2d, 0x1284: 0x7b4d, 0x1285: 0x7b6d, + 0x1286: 0x7b8d, 0x1287: 0x7bad, 0x1288: 0x7bcd, 0x1289: 0x7bed, 0x128a: 0x7c0d, 0x128b: 0x7c2d, + 0x128c: 0x7c4d, 0x128d: 0x7c6d, 0x128e: 0x7c8d, 0x128f: 0x6f19, 0x1290: 0x6f41, 0x1291: 0x6f69, + 0x1292: 0x7cad, 0x1293: 0x7ccd, 0x1294: 0x7ced, 0x1295: 0x6f91, 0x1296: 0x6fb9, 0x1297: 0x6fe1, + 0x1298: 0x7d0d, 0x1299: 0x7d2d, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040, + 0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040, + 0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040, + 0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040, + 0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040, + 0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040, + 0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x7009, 0x12c1: 0x7021, 0x12c2: 0x7039, 0x12c3: 0x7d4d, 0x12c4: 0x7d6d, 0x12c5: 0x7051, + 0x12c6: 0x7051, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040, + 0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040, + 0x12d2: 0x0040, 0x12d3: 0x7069, 0x12d4: 0x7091, 0x12d5: 0x70b9, 0x12d6: 0x70e1, 0x12d7: 0x7109, + 0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x7131, + 0x12de: 0x3308, 0x12df: 0x7159, 0x12e0: 0x7181, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7199, + 0x12e4: 0x71b1, 0x12e5: 0x71c9, 0x12e6: 0x71e1, 0x12e7: 0x71f9, 0x12e8: 0x7211, 0x12e9: 0x1fb2, + 0x12ea: 0x7229, 0x12eb: 0x7251, 0x12ec: 0x7279, 0x12ed: 0x72b1, 0x12ee: 0x72e9, 0x12ef: 0x7311, + 0x12f0: 0x7339, 0x12f1: 0x7361, 0x12f2: 0x7389, 0x12f3: 0x73b1, 0x12f4: 0x73d9, 0x12f5: 0x7401, + 0x12f6: 0x7429, 0x12f7: 0x0040, 0x12f8: 0x7451, 0x12f9: 0x7479, 0x12fa: 0x74a1, 0x12fb: 0x74c9, + 0x12fc: 0x74f1, 0x12fd: 0x0040, 0x12fe: 0x7519, 0x12ff: 0x0040, + // Block 0x4c, offset 0x1300 + 0x1300: 0x7541, 0x1301: 0x7569, 0x1302: 0x0040, 0x1303: 0x7591, 0x1304: 0x75b9, 0x1305: 0x0040, + 0x1306: 0x75e1, 0x1307: 0x7609, 0x1308: 0x7631, 0x1309: 0x7659, 0x130a: 0x7681, 0x130b: 0x76a9, + 0x130c: 0x76d1, 0x130d: 0x76f9, 0x130e: 0x7721, 0x130f: 0x7749, 0x1310: 0x7771, 0x1311: 0x7771, + 0x1312: 0x7789, 0x1313: 0x7789, 0x1314: 0x7789, 0x1315: 0x7789, 0x1316: 0x77a1, 0x1317: 0x77a1, + 0x1318: 0x77a1, 0x1319: 0x77a1, 0x131a: 0x77b9, 0x131b: 0x77b9, 0x131c: 0x77b9, 0x131d: 0x77b9, + 0x131e: 0x77d1, 0x131f: 0x77d1, 0x1320: 0x77d1, 0x1321: 0x77d1, 0x1322: 0x77e9, 0x1323: 0x77e9, + 0x1324: 0x77e9, 0x1325: 0x77e9, 0x1326: 0x7801, 0x1327: 0x7801, 0x1328: 0x7801, 0x1329: 0x7801, + 0x132a: 0x7819, 0x132b: 0x7819, 0x132c: 0x7819, 0x132d: 0x7819, 0x132e: 0x7831, 0x132f: 0x7831, + 0x1330: 0x7831, 0x1331: 0x7831, 0x1332: 0x7849, 0x1333: 0x7849, 0x1334: 0x7849, 0x1335: 0x7849, + 0x1336: 0x7861, 0x1337: 0x7861, 0x1338: 0x7861, 0x1339: 0x7861, 0x133a: 0x7879, 0x133b: 0x7879, + 0x133c: 0x7879, 0x133d: 0x7879, 0x133e: 0x7891, 0x133f: 0x7891, + // Block 0x4d, offset 0x1340 + 0x1340: 0x7891, 0x1341: 0x7891, 0x1342: 0x78a9, 0x1343: 0x78a9, 0x1344: 0x78c1, 0x1345: 0x78c1, + 0x1346: 0x78d9, 0x1347: 0x78d9, 0x1348: 0x78f1, 0x1349: 0x78f1, 0x134a: 0x7909, 0x134b: 0x7909, + 0x134c: 0x7921, 0x134d: 0x7921, 0x134e: 0x7939, 0x134f: 0x7939, 0x1350: 0x7939, 0x1351: 0x7939, + 0x1352: 0x7951, 0x1353: 0x7951, 0x1354: 0x7951, 0x1355: 0x7951, 0x1356: 0x7969, 0x1357: 0x7969, + 0x1358: 0x7969, 0x1359: 0x7969, 0x135a: 0x7981, 0x135b: 0x7981, 0x135c: 0x7981, 0x135d: 0x7981, + 0x135e: 0x7999, 0x135f: 0x7999, 0x1360: 0x79b1, 0x1361: 0x79b1, 0x1362: 0x79b1, 0x1363: 0x79b1, + 0x1364: 0x79c9, 0x1365: 0x79c9, 0x1366: 0x79e1, 0x1367: 0x79e1, 0x1368: 0x79e1, 0x1369: 0x79e1, + 0x136a: 0x79f9, 0x136b: 0x79f9, 0x136c: 0x79f9, 0x136d: 0x79f9, 0x136e: 0x7a11, 0x136f: 0x7a11, + 0x1370: 0x7a29, 0x1371: 0x7a29, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818, + 0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818, + 0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040, + 0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040, + 0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040, + 0x1392: 0x0040, 0x1393: 0x7a41, 0x1394: 0x7a41, 0x1395: 0x7a41, 0x1396: 0x7a41, 0x1397: 0x7a59, + 0x1398: 0x7a59, 0x1399: 0x7a71, 0x139a: 0x7a71, 0x139b: 0x7a89, 0x139c: 0x7a89, 0x139d: 0x0479, + 0x139e: 0x7aa1, 0x139f: 0x7aa1, 0x13a0: 0x7ab9, 0x13a1: 0x7ab9, 0x13a2: 0x7ad1, 0x13a3: 0x7ad1, + 0x13a4: 0x7ae9, 0x13a5: 0x7ae9, 0x13a6: 0x7ae9, 0x13a7: 0x7ae9, 0x13a8: 0x7b01, 0x13a9: 0x7b01, + 0x13aa: 0x7b19, 0x13ab: 0x7b19, 0x13ac: 0x7b41, 0x13ad: 0x7b41, 0x13ae: 0x7b69, 0x13af: 0x7b69, + 0x13b0: 0x7b91, 0x13b1: 0x7b91, 0x13b2: 0x7bb9, 0x13b3: 0x7bb9, 0x13b4: 0x7be1, 0x13b5: 0x7be1, + 0x13b6: 0x7c09, 0x13b7: 0x7c09, 0x13b8: 0x7c09, 0x13b9: 0x7c31, 0x13ba: 0x7c31, 0x13bb: 0x7c31, + 0x13bc: 0x7c59, 0x13bd: 0x7c59, 0x13be: 0x7c59, 0x13bf: 0x7c59, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x8649, 0x13c1: 0x8671, 0x13c2: 0x8699, 0x13c3: 0x86c1, 0x13c4: 0x86e9, 0x13c5: 0x8711, + 0x13c6: 0x8739, 0x13c7: 0x8761, 0x13c8: 0x8789, 0x13c9: 0x87b1, 0x13ca: 0x87d9, 0x13cb: 0x8801, + 0x13cc: 0x8829, 0x13cd: 0x8851, 0x13ce: 0x8879, 0x13cf: 0x88a1, 0x13d0: 0x88c9, 0x13d1: 0x88f1, + 0x13d2: 0x8919, 0x13d3: 0x8941, 0x13d4: 0x8969, 0x13d5: 0x8991, 0x13d6: 0x89b9, 0x13d7: 0x89e1, + 0x13d8: 0x8a09, 0x13d9: 0x8a31, 0x13da: 0x8a59, 0x13db: 0x8a81, 0x13dc: 0x8aa9, 0x13dd: 0x8ad1, + 0x13de: 0x8afa, 0x13df: 0x8b2a, 0x13e0: 0x8b5a, 0x13e1: 0x8b8a, 0x13e2: 0x8bba, 0x13e3: 0x8bea, + 0x13e4: 0x8c19, 0x13e5: 0x8c41, 0x13e6: 0x7cc1, 0x13e7: 0x8c69, 0x13e8: 0x7c31, 0x13e9: 0x7ce9, + 0x13ea: 0x8c91, 0x13eb: 0x8cb9, 0x13ec: 0x7d89, 0x13ed: 0x8ce1, 0x13ee: 0x7db1, 0x13ef: 0x7dd9, + 0x13f0: 0x8d09, 0x13f1: 0x8d31, 0x13f2: 0x7e79, 0x13f3: 0x8d59, 0x13f4: 0x7ea1, 0x13f5: 0x7ec9, + 0x13f6: 0x8d81, 0x13f7: 0x8da9, 0x13f8: 0x7f19, 0x13f9: 0x8dd1, 0x13fa: 0x7f41, 0x13fb: 0x7f69, + 0x13fc: 0x83f1, 0x13fd: 0x8419, 0x13fe: 0x8491, 0x13ff: 0x84b9, + // Block 0x50, offset 0x1400 + 0x1400: 0x84e1, 0x1401: 0x8581, 0x1402: 0x85a9, 0x1403: 0x85d1, 0x1404: 0x85f9, 0x1405: 0x8699, + 0x1406: 0x86c1, 0x1407: 0x86e9, 0x1408: 0x8df9, 0x1409: 0x8789, 0x140a: 0x8e21, 0x140b: 0x8e49, + 0x140c: 0x8879, 0x140d: 0x8e71, 0x140e: 0x88a1, 0x140f: 0x88c9, 0x1410: 0x8ad1, 0x1411: 0x8e99, + 0x1412: 0x8ec1, 0x1413: 0x8a09, 0x1414: 0x8ee9, 0x1415: 0x8a31, 0x1416: 0x8a59, 0x1417: 0x7c71, + 0x1418: 0x7c99, 0x1419: 0x8f11, 0x141a: 0x7cc1, 0x141b: 0x8f39, 0x141c: 0x7d11, 0x141d: 0x7d39, + 0x141e: 0x7d61, 0x141f: 0x7d89, 0x1420: 0x8f61, 0x1421: 0x7e01, 0x1422: 0x7e29, 0x1423: 0x7e51, + 0x1424: 0x7e79, 0x1425: 0x8f89, 0x1426: 0x7f19, 0x1427: 0x7f91, 0x1428: 0x7fb9, 0x1429: 0x7fe1, + 0x142a: 0x8009, 0x142b: 0x8031, 0x142c: 0x8081, 0x142d: 0x80a9, 0x142e: 0x80d1, 0x142f: 0x80f9, + 0x1430: 0x8121, 0x1431: 0x8149, 0x1432: 0x8fb1, 0x1433: 0x8171, 0x1434: 0x8199, 0x1435: 0x81c1, + 0x1436: 0x81e9, 0x1437: 0x8211, 0x1438: 0x8239, 0x1439: 0x8289, 0x143a: 0x82b1, 0x143b: 0x82d9, + 0x143c: 0x8301, 0x143d: 0x8329, 0x143e: 0x8351, 0x143f: 0x8379, + // Block 0x51, offset 0x1440 + 0x1440: 0x83a1, 0x1441: 0x83c9, 0x1442: 0x8441, 0x1443: 0x8469, 0x1444: 0x8509, 0x1445: 0x8531, + 0x1446: 0x8559, 0x1447: 0x8581, 0x1448: 0x85a9, 0x1449: 0x8621, 0x144a: 0x8649, 0x144b: 0x8671, + 0x144c: 0x8699, 0x144d: 0x8fd9, 0x144e: 0x8711, 0x144f: 0x8739, 0x1450: 0x8761, 0x1451: 0x8789, + 0x1452: 0x8801, 0x1453: 0x8829, 0x1454: 0x8851, 0x1455: 0x8879, 0x1456: 0x9001, 0x1457: 0x88f1, + 0x1458: 0x8919, 0x1459: 0x9029, 0x145a: 0x8991, 0x145b: 0x89b9, 0x145c: 0x89e1, 0x145d: 0x8a09, + 0x145e: 0x9051, 0x145f: 0x7cc1, 0x1460: 0x8f39, 0x1461: 0x7d89, 0x1462: 0x8f61, 0x1463: 0x7e79, + 0x1464: 0x8f89, 0x1465: 0x7f19, 0x1466: 0x9079, 0x1467: 0x8121, 0x1468: 0x90a1, 0x1469: 0x90c9, + 0x146a: 0x90f1, 0x146b: 0x8581, 0x146c: 0x85a9, 0x146d: 0x8699, 0x146e: 0x8879, 0x146f: 0x9001, + 0x1470: 0x8a09, 0x1471: 0x9051, 0x1472: 0x9119, 0x1473: 0x9151, 0x1474: 0x9189, 0x1475: 0x91c1, + 0x1476: 0x91e9, 0x1477: 0x9211, 0x1478: 0x9239, 0x1479: 0x9261, 0x147a: 0x9289, 0x147b: 0x92b1, + 0x147c: 0x92d9, 0x147d: 0x9301, 0x147e: 0x9329, 0x147f: 0x9351, + // Block 0x52, offset 0x1480 + 0x1480: 0x9379, 0x1481: 0x93a1, 0x1482: 0x93c9, 0x1483: 0x93f1, 0x1484: 0x9419, 0x1485: 0x9441, + 0x1486: 0x9469, 0x1487: 0x9491, 0x1488: 0x94b9, 0x1489: 0x94e1, 0x148a: 0x9509, 0x148b: 0x9531, + 0x148c: 0x90c9, 0x148d: 0x9559, 0x148e: 0x9581, 0x148f: 0x95a9, 0x1490: 0x95d1, 0x1491: 0x91c1, + 0x1492: 0x91e9, 0x1493: 0x9211, 0x1494: 0x9239, 0x1495: 0x9261, 0x1496: 0x9289, 0x1497: 0x92b1, + 0x1498: 0x92d9, 0x1499: 0x9301, 0x149a: 0x9329, 0x149b: 0x9351, 0x149c: 0x9379, 0x149d: 0x93a1, + 0x149e: 0x93c9, 0x149f: 0x93f1, 0x14a0: 0x9419, 0x14a1: 0x9441, 0x14a2: 0x9469, 0x14a3: 0x9491, + 0x14a4: 0x94b9, 0x14a5: 0x94e1, 0x14a6: 0x9509, 0x14a7: 0x9531, 0x14a8: 0x90c9, 0x14a9: 0x9559, + 0x14aa: 0x9581, 0x14ab: 0x95a9, 0x14ac: 0x95d1, 0x14ad: 0x94e1, 0x14ae: 0x9509, 0x14af: 0x9531, + 0x14b0: 0x90c9, 0x14b1: 0x90a1, 0x14b2: 0x90f1, 0x14b3: 0x8261, 0x14b4: 0x80a9, 0x14b5: 0x80d1, + 0x14b6: 0x80f9, 0x14b7: 0x94e1, 0x14b8: 0x9509, 0x14b9: 0x9531, 0x14ba: 0x8261, 0x14bb: 0x8289, + 0x14bc: 0x95f9, 0x14bd: 0x95f9, 0x14be: 0x0018, 0x14bf: 0x0018, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040, + 0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040, + 0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x9621, 0x14d1: 0x9659, + 0x14d2: 0x9659, 0x14d3: 0x9691, 0x14d4: 0x96c9, 0x14d5: 0x9701, 0x14d6: 0x9739, 0x14d7: 0x9771, + 0x14d8: 0x97a9, 0x14d9: 0x97a9, 0x14da: 0x97e1, 0x14db: 0x9819, 0x14dc: 0x9851, 0x14dd: 0x9889, + 0x14de: 0x98c1, 0x14df: 0x98f9, 0x14e0: 0x98f9, 0x14e1: 0x9931, 0x14e2: 0x9969, 0x14e3: 0x9969, + 0x14e4: 0x99a1, 0x14e5: 0x99a1, 0x14e6: 0x99d9, 0x14e7: 0x9a11, 0x14e8: 0x9a11, 0x14e9: 0x9a49, + 0x14ea: 0x9a81, 0x14eb: 0x9a81, 0x14ec: 0x9ab9, 0x14ed: 0x9ab9, 0x14ee: 0x9af1, 0x14ef: 0x9b29, + 0x14f0: 0x9b29, 0x14f1: 0x9b61, 0x14f2: 0x9b61, 0x14f3: 0x9b99, 0x14f4: 0x9bd1, 0x14f5: 0x9c09, + 0x14f6: 0x9c41, 0x14f7: 0x9c41, 0x14f8: 0x9c79, 0x14f9: 0x9cb1, 0x14fa: 0x9ce9, 0x14fb: 0x9d21, + 0x14fc: 0x9d59, 0x14fd: 0x9d59, 0x14fe: 0x9d91, 0x14ff: 0x9dc9, + // Block 0x54, offset 0x1500 + 0x1500: 0xa999, 0x1501: 0xa9d1, 0x1502: 0xaa09, 0x1503: 0xa8f1, 0x1504: 0x9c09, 0x1505: 0x99d9, + 0x1506: 0xaa41, 0x1507: 0xaa79, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040, + 0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040, + 0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040, + 0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040, + 0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040, + 0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040, + 0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040, + 0x1530: 0xaab1, 0x1531: 0xaae9, 0x1532: 0xab21, 0x1533: 0xab69, 0x1534: 0xabb1, 0x1535: 0xabf9, + 0x1536: 0xac41, 0x1537: 0xac89, 0x1538: 0xacd1, 0x1539: 0xad19, 0x153a: 0xad52, 0x153b: 0xae62, + 0x153c: 0xaee1, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040, + // Block 0x55, offset 0x1540 + 0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0, + 0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0, + 0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaf2a, 0x1551: 0x7d8d, + 0x1552: 0x0040, 0x1553: 0xaf3a, 0x1554: 0x03c2, 0x1555: 0xaf4a, 0x1556: 0xaf5a, 0x1557: 0x7dad, + 0x1558: 0x7dcd, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040, + 0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308, + 0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308, + 0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308, + 0x1570: 0x0040, 0x1571: 0x7ded, 0x1572: 0x7e0d, 0x1573: 0xaf6a, 0x1574: 0xaf6a, 0x1575: 0x1fd2, + 0x1576: 0x1fe2, 0x1577: 0xaf7a, 0x1578: 0xaf8a, 0x1579: 0x7e2d, 0x157a: 0x7e4d, 0x157b: 0x7e6d, + 0x157c: 0x7e2d, 0x157d: 0x7e8d, 0x157e: 0x7ead, 0x157f: 0x7e8d, + // Block 0x56, offset 0x1580 + 0x1580: 0x7ecd, 0x1581: 0x7eed, 0x1582: 0x7f0d, 0x1583: 0x7eed, 0x1584: 0x7f2d, 0x1585: 0x0018, + 0x1586: 0x0018, 0x1587: 0xaf9a, 0x1588: 0xafaa, 0x1589: 0x7f4e, 0x158a: 0x7f6e, 0x158b: 0x7f8e, + 0x158c: 0x7fae, 0x158d: 0xaf6a, 0x158e: 0xaf6a, 0x158f: 0xaf6a, 0x1590: 0xaf2a, 0x1591: 0x7fcd, + 0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaf3a, 0x1596: 0xaf5a, 0x1597: 0xaf4a, + 0x1598: 0x7fed, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf7a, 0x159c: 0xaf8a, 0x159d: 0x7ecd, + 0x159e: 0x7f2d, 0x159f: 0xafba, 0x15a0: 0xafca, 0x15a1: 0xafda, 0x15a2: 0x1fb2, 0x15a3: 0xafe9, + 0x15a4: 0xaffa, 0x15a5: 0xb00a, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xb01a, 0x15a9: 0xb02a, + 0x15aa: 0xb03a, 0x15ab: 0xb04a, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040, + 0x15b0: 0x800e, 0x15b1: 0xb059, 0x15b2: 0x802e, 0x15b3: 0x0808, 0x15b4: 0x804e, 0x15b5: 0x0040, + 0x15b6: 0x806e, 0x15b7: 0xb081, 0x15b8: 0x808e, 0x15b9: 0xb0a9, 0x15ba: 0x80ae, 0x15bb: 0xb0d1, + 0x15bc: 0x80ce, 0x15bd: 0xb0f9, 0x15be: 0x80ee, 0x15bf: 0xb121, + // Block 0x57, offset 0x15c0 + 0x15c0: 0xb149, 0x15c1: 0xb161, 0x15c2: 0xb161, 0x15c3: 0xb179, 0x15c4: 0xb179, 0x15c5: 0xb191, + 0x15c6: 0xb191, 0x15c7: 0xb1a9, 0x15c8: 0xb1a9, 0x15c9: 0xb1c1, 0x15ca: 0xb1c1, 0x15cb: 0xb1c1, + 0x15cc: 0xb1c1, 0x15cd: 0xb1d9, 0x15ce: 0xb1d9, 0x15cf: 0xb1f1, 0x15d0: 0xb1f1, 0x15d1: 0xb1f1, + 0x15d2: 0xb1f1, 0x15d3: 0xb209, 0x15d4: 0xb209, 0x15d5: 0xb221, 0x15d6: 0xb221, 0x15d7: 0xb221, + 0x15d8: 0xb221, 0x15d9: 0xb239, 0x15da: 0xb239, 0x15db: 0xb239, 0x15dc: 0xb239, 0x15dd: 0xb251, + 0x15de: 0xb251, 0x15df: 0xb251, 0x15e0: 0xb251, 0x15e1: 0xb269, 0x15e2: 0xb269, 0x15e3: 0xb269, + 0x15e4: 0xb269, 0x15e5: 0xb281, 0x15e6: 0xb281, 0x15e7: 0xb281, 0x15e8: 0xb281, 0x15e9: 0xb299, + 0x15ea: 0xb299, 0x15eb: 0xb2b1, 0x15ec: 0xb2b1, 0x15ed: 0xb2c9, 0x15ee: 0xb2c9, 0x15ef: 0xb2e1, + 0x15f0: 0xb2e1, 0x15f1: 0xb2f9, 0x15f2: 0xb2f9, 0x15f3: 0xb2f9, 0x15f4: 0xb2f9, 0x15f5: 0xb311, + 0x15f6: 0xb311, 0x15f7: 0xb311, 0x15f8: 0xb311, 0x15f9: 0xb329, 0x15fa: 0xb329, 0x15fb: 0xb329, + 0x15fc: 0xb329, 0x15fd: 0xb341, 0x15fe: 0xb341, 0x15ff: 0xb341, + // Block 0x58, offset 0x1600 + 0x1600: 0xb341, 0x1601: 0xb359, 0x1602: 0xb359, 0x1603: 0xb359, 0x1604: 0xb359, 0x1605: 0xb371, + 0x1606: 0xb371, 0x1607: 0xb371, 0x1608: 0xb371, 0x1609: 0xb389, 0x160a: 0xb389, 0x160b: 0xb389, + 0x160c: 0xb389, 0x160d: 0xb3a1, 0x160e: 0xb3a1, 0x160f: 0xb3a1, 0x1610: 0xb3a1, 0x1611: 0xb3b9, + 0x1612: 0xb3b9, 0x1613: 0xb3b9, 0x1614: 0xb3b9, 0x1615: 0xb3d1, 0x1616: 0xb3d1, 0x1617: 0xb3d1, + 0x1618: 0xb3d1, 0x1619: 0xb3e9, 0x161a: 0xb3e9, 0x161b: 0xb3e9, 0x161c: 0xb3e9, 0x161d: 0xb401, + 0x161e: 0xb401, 0x161f: 0xb401, 0x1620: 0xb401, 0x1621: 0xb419, 0x1622: 0xb419, 0x1623: 0xb419, + 0x1624: 0xb419, 0x1625: 0xb431, 0x1626: 0xb431, 0x1627: 0xb431, 0x1628: 0xb431, 0x1629: 0xb449, + 0x162a: 0xb449, 0x162b: 0xb449, 0x162c: 0xb449, 0x162d: 0xb461, 0x162e: 0xb461, 0x162f: 0x7b01, + 0x1630: 0x7b01, 0x1631: 0xb479, 0x1632: 0xb479, 0x1633: 0xb479, 0x1634: 0xb479, 0x1635: 0xb491, + 0x1636: 0xb491, 0x1637: 0xb4b9, 0x1638: 0xb4b9, 0x1639: 0xb4e1, 0x163a: 0xb4e1, 0x163b: 0xb509, + 0x163c: 0xb509, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0, + // Block 0x59, offset 0x1640 + 0x1640: 0x0040, 0x1641: 0xaf4a, 0x1642: 0xb532, 0x1643: 0xafba, 0x1644: 0xb02a, 0x1645: 0xb03a, + 0x1646: 0xafca, 0x1647: 0xb542, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xafda, 0x164b: 0x1fb2, + 0x164c: 0xaf2a, 0x164d: 0xafe9, 0x164e: 0x29d1, 0x164f: 0xb552, 0x1650: 0x1f41, 0x1651: 0x00c9, + 0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81, + 0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaf3a, 0x165b: 0x03c2, 0x165c: 0xaffa, 0x165d: 0x1fc2, + 0x165e: 0xb00a, 0x165f: 0xaf5a, 0x1660: 0xb04a, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159, + 0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41, + 0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9, + 0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9, + 0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf9a, + 0x167c: 0xb01a, 0x167d: 0xafaa, 0x167e: 0xb562, 0x167f: 0xaf6a, + // Block 0x5a, offset 0x1680 + 0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09, + 0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51, + 0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039, + 0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279, + 0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf7a, 0x169c: 0xb572, 0x169d: 0xaf8a, + 0x169e: 0xb582, 0x169f: 0x810d, 0x16a0: 0x812d, 0x16a1: 0x29d1, 0x16a2: 0x814d, 0x16a3: 0x814d, + 0x16a4: 0x816d, 0x16a5: 0x818d, 0x16a6: 0x81ad, 0x16a7: 0x81cd, 0x16a8: 0x81ed, 0x16a9: 0x820d, + 0x16aa: 0x822d, 0x16ab: 0x824d, 0x16ac: 0x826d, 0x16ad: 0x828d, 0x16ae: 0x82ad, 0x16af: 0x82cd, + 0x16b0: 0x82ed, 0x16b1: 0x830d, 0x16b2: 0x832d, 0x16b3: 0x834d, 0x16b4: 0x836d, 0x16b5: 0x838d, + 0x16b6: 0x83ad, 0x16b7: 0x83cd, 0x16b8: 0x83ed, 0x16b9: 0x840d, 0x16ba: 0x842d, 0x16bb: 0x844d, + 0x16bc: 0x81ed, 0x16bd: 0x846d, 0x16be: 0x848d, 0x16bf: 0x824d, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x84ad, 0x16c1: 0x84cd, 0x16c2: 0x84ed, 0x16c3: 0x850d, 0x16c4: 0x852d, 0x16c5: 0x854d, + 0x16c6: 0x856d, 0x16c7: 0x858d, 0x16c8: 0x850d, 0x16c9: 0x85ad, 0x16ca: 0x850d, 0x16cb: 0x85cd, + 0x16cc: 0x85cd, 0x16cd: 0x85ed, 0x16ce: 0x85ed, 0x16cf: 0x860d, 0x16d0: 0x854d, 0x16d1: 0x862d, + 0x16d2: 0x864d, 0x16d3: 0x862d, 0x16d4: 0x866d, 0x16d5: 0x864d, 0x16d6: 0x868d, 0x16d7: 0x868d, + 0x16d8: 0x86ad, 0x16d9: 0x86ad, 0x16da: 0x86cd, 0x16db: 0x86cd, 0x16dc: 0x864d, 0x16dd: 0x814d, + 0x16de: 0x86ed, 0x16df: 0x870d, 0x16e0: 0x0040, 0x16e1: 0x872d, 0x16e2: 0x874d, 0x16e3: 0x876d, + 0x16e4: 0x878d, 0x16e5: 0x876d, 0x16e6: 0x87ad, 0x16e7: 0x87cd, 0x16e8: 0x87ed, 0x16e9: 0x87ed, + 0x16ea: 0x880d, 0x16eb: 0x880d, 0x16ec: 0x882d, 0x16ed: 0x882d, 0x16ee: 0x880d, 0x16ef: 0x880d, + 0x16f0: 0x884d, 0x16f1: 0x886d, 0x16f2: 0x888d, 0x16f3: 0x88ad, 0x16f4: 0x88cd, 0x16f5: 0x88ed, + 0x16f6: 0x88ed, 0x16f7: 0x88ed, 0x16f8: 0x890d, 0x16f9: 0x890d, 0x16fa: 0x890d, 0x16fb: 0x890d, + 0x16fc: 0x87ed, 0x16fd: 0x87ed, 0x16fe: 0x87ed, 0x16ff: 0x0040, + // Block 0x5c, offset 0x1700 + 0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x874d, 0x1703: 0x872d, 0x1704: 0x892d, 0x1705: 0x872d, + 0x1706: 0x874d, 0x1707: 0x872d, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x894d, 0x170b: 0x874d, + 0x170c: 0x896d, 0x170d: 0x892d, 0x170e: 0x896d, 0x170f: 0x874d, 0x1710: 0x0040, 0x1711: 0x0040, + 0x1712: 0x898d, 0x1713: 0x89ad, 0x1714: 0x88ad, 0x1715: 0x896d, 0x1716: 0x892d, 0x1717: 0x896d, + 0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x89cd, 0x171b: 0x89ed, 0x171c: 0x89cd, 0x171d: 0x0040, + 0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb591, 0x1721: 0xb5a9, 0x1722: 0xb5c1, 0x1723: 0x8a0e, + 0x1724: 0xb5d9, 0x1725: 0xb5f1, 0x1726: 0x8a2d, 0x1727: 0x0040, 0x1728: 0x8a4d, 0x1729: 0x8a6d, + 0x172a: 0x8a8d, 0x172b: 0x8a6d, 0x172c: 0x8aad, 0x172d: 0x8acd, 0x172e: 0x8aed, 0x172f: 0x0040, + 0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040, + 0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340, + 0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040, + // Block 0x5d, offset 0x1740 + 0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08, + 0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808, + 0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08, + 0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908, + 0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08, + 0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808, + 0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040, + 0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18, + 0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818, + 0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040, + 0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040, + // Block 0x5e, offset 0x1780 + 0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08, + 0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08, + 0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08, + 0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040, + 0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040, + 0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040, + 0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18, + 0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818, + 0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040, + 0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040, + 0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008, + 0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008, + 0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040, + 0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008, + 0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008, + 0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008, + 0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040, + 0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008, + 0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008, + 0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308, + 0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008, + // Block 0x60, offset 0x1800 + 0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040, + 0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008, + 0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040, + 0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008, + 0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008, + 0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008, + 0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308, + 0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040, + 0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040, + 0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040, + 0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040, + // Block 0x61, offset 0x1840 + 0x1840: 0x0008, 0x1841: 0x0008, 0x1842: 0x0008, 0x1843: 0x0008, 0x1844: 0x0008, 0x1845: 0x0008, + 0x1846: 0x0008, 0x1847: 0x0040, 0x1848: 0x0040, 0x1849: 0x0008, 0x184a: 0x0040, 0x184b: 0x0040, + 0x184c: 0x0008, 0x184d: 0x0008, 0x184e: 0x0008, 0x184f: 0x0008, 0x1850: 0x0008, 0x1851: 0x0008, + 0x1852: 0x0008, 0x1853: 0x0008, 0x1854: 0x0040, 0x1855: 0x0008, 0x1856: 0x0008, 0x1857: 0x0040, + 0x1858: 0x0008, 0x1859: 0x0008, 0x185a: 0x0008, 0x185b: 0x0008, 0x185c: 0x0008, 0x185d: 0x0008, + 0x185e: 0x0008, 0x185f: 0x0008, 0x1860: 0x0008, 0x1861: 0x0008, 0x1862: 0x0008, 0x1863: 0x0008, + 0x1864: 0x0008, 0x1865: 0x0008, 0x1866: 0x0008, 0x1867: 0x0008, 0x1868: 0x0008, 0x1869: 0x0008, + 0x186a: 0x0008, 0x186b: 0x0008, 0x186c: 0x0008, 0x186d: 0x0008, 0x186e: 0x0008, 0x186f: 0x0008, + 0x1870: 0x3008, 0x1871: 0x3008, 0x1872: 0x3008, 0x1873: 0x3008, 0x1874: 0x3008, 0x1875: 0x3008, + 0x1876: 0x0040, 0x1877: 0x3008, 0x1878: 0x3008, 0x1879: 0x0040, 0x187a: 0x0040, 0x187b: 0x3308, + 0x187c: 0x3308, 0x187d: 0x3808, 0x187e: 0x3b08, 0x187f: 0x0008, + // Block 0x62, offset 0x1880 + 0x1880: 0x0039, 0x1881: 0x0ee9, 0x1882: 0x1159, 0x1883: 0x0ef9, 0x1884: 0x0f09, 0x1885: 0x1199, + 0x1886: 0x0f31, 0x1887: 0x0249, 0x1888: 0x0f41, 0x1889: 0x0259, 0x188a: 0x0f51, 0x188b: 0x0359, + 0x188c: 0x0f61, 0x188d: 0x0f71, 0x188e: 0x00d9, 0x188f: 0x0f99, 0x1890: 0x2039, 0x1891: 0x0269, + 0x1892: 0x01d9, 0x1893: 0x0fa9, 0x1894: 0x0fb9, 0x1895: 0x1089, 0x1896: 0x0279, 0x1897: 0x0369, + 0x1898: 0x0289, 0x1899: 0x13d1, 0x189a: 0x0039, 0x189b: 0x0ee9, 0x189c: 0x1159, 0x189d: 0x0ef9, + 0x189e: 0x0f09, 0x189f: 0x1199, 0x18a0: 0x0f31, 0x18a1: 0x0249, 0x18a2: 0x0f41, 0x18a3: 0x0259, + 0x18a4: 0x0f51, 0x18a5: 0x0359, 0x18a6: 0x0f61, 0x18a7: 0x0f71, 0x18a8: 0x00d9, 0x18a9: 0x0f99, + 0x18aa: 0x2039, 0x18ab: 0x0269, 0x18ac: 0x01d9, 0x18ad: 0x0fa9, 0x18ae: 0x0fb9, 0x18af: 0x1089, + 0x18b0: 0x0279, 0x18b1: 0x0369, 0x18b2: 0x0289, 0x18b3: 0x13d1, 0x18b4: 0x0039, 0x18b5: 0x0ee9, + 0x18b6: 0x1159, 0x18b7: 0x0ef9, 0x18b8: 0x0f09, 0x18b9: 0x1199, 0x18ba: 0x0f31, 0x18bb: 0x0249, + 0x18bc: 0x0f41, 0x18bd: 0x0259, 0x18be: 0x0f51, 0x18bf: 0x0359, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x0f61, 0x18c1: 0x0f71, 0x18c2: 0x00d9, 0x18c3: 0x0f99, 0x18c4: 0x2039, 0x18c5: 0x0269, + 0x18c6: 0x01d9, 0x18c7: 0x0fa9, 0x18c8: 0x0fb9, 0x18c9: 0x1089, 0x18ca: 0x0279, 0x18cb: 0x0369, + 0x18cc: 0x0289, 0x18cd: 0x13d1, 0x18ce: 0x0039, 0x18cf: 0x0ee9, 0x18d0: 0x1159, 0x18d1: 0x0ef9, + 0x18d2: 0x0f09, 0x18d3: 0x1199, 0x18d4: 0x0f31, 0x18d5: 0x0040, 0x18d6: 0x0f41, 0x18d7: 0x0259, + 0x18d8: 0x0f51, 0x18d9: 0x0359, 0x18da: 0x0f61, 0x18db: 0x0f71, 0x18dc: 0x00d9, 0x18dd: 0x0f99, + 0x18de: 0x2039, 0x18df: 0x0269, 0x18e0: 0x01d9, 0x18e1: 0x0fa9, 0x18e2: 0x0fb9, 0x18e3: 0x1089, + 0x18e4: 0x0279, 0x18e5: 0x0369, 0x18e6: 0x0289, 0x18e7: 0x13d1, 0x18e8: 0x0039, 0x18e9: 0x0ee9, + 0x18ea: 0x1159, 0x18eb: 0x0ef9, 0x18ec: 0x0f09, 0x18ed: 0x1199, 0x18ee: 0x0f31, 0x18ef: 0x0249, + 0x18f0: 0x0f41, 0x18f1: 0x0259, 0x18f2: 0x0f51, 0x18f3: 0x0359, 0x18f4: 0x0f61, 0x18f5: 0x0f71, + 0x18f6: 0x00d9, 0x18f7: 0x0f99, 0x18f8: 0x2039, 0x18f9: 0x0269, 0x18fa: 0x01d9, 0x18fb: 0x0fa9, + 0x18fc: 0x0fb9, 0x18fd: 0x1089, 0x18fe: 0x0279, 0x18ff: 0x0369, + // Block 0x64, offset 0x1900 + 0x1900: 0x0289, 0x1901: 0x13d1, 0x1902: 0x0039, 0x1903: 0x0ee9, 0x1904: 0x1159, 0x1905: 0x0ef9, + 0x1906: 0x0f09, 0x1907: 0x1199, 0x1908: 0x0f31, 0x1909: 0x0249, 0x190a: 0x0f41, 0x190b: 0x0259, + 0x190c: 0x0f51, 0x190d: 0x0359, 0x190e: 0x0f61, 0x190f: 0x0f71, 0x1910: 0x00d9, 0x1911: 0x0f99, + 0x1912: 0x2039, 0x1913: 0x0269, 0x1914: 0x01d9, 0x1915: 0x0fa9, 0x1916: 0x0fb9, 0x1917: 0x1089, + 0x1918: 0x0279, 0x1919: 0x0369, 0x191a: 0x0289, 0x191b: 0x13d1, 0x191c: 0x0039, 0x191d: 0x0040, + 0x191e: 0x1159, 0x191f: 0x0ef9, 0x1920: 0x0040, 0x1921: 0x0040, 0x1922: 0x0f31, 0x1923: 0x0040, + 0x1924: 0x0040, 0x1925: 0x0259, 0x1926: 0x0f51, 0x1927: 0x0040, 0x1928: 0x0040, 0x1929: 0x0f71, + 0x192a: 0x00d9, 0x192b: 0x0f99, 0x192c: 0x2039, 0x192d: 0x0040, 0x192e: 0x01d9, 0x192f: 0x0fa9, + 0x1930: 0x0fb9, 0x1931: 0x1089, 0x1932: 0x0279, 0x1933: 0x0369, 0x1934: 0x0289, 0x1935: 0x13d1, + 0x1936: 0x0039, 0x1937: 0x0ee9, 0x1938: 0x1159, 0x1939: 0x0ef9, 0x193a: 0x0040, 0x193b: 0x1199, + 0x193c: 0x0040, 0x193d: 0x0249, 0x193e: 0x0f41, 0x193f: 0x0259, + // Block 0x65, offset 0x1940 + 0x1940: 0x0f51, 0x1941: 0x0359, 0x1942: 0x0f61, 0x1943: 0x0f71, 0x1944: 0x0040, 0x1945: 0x0f99, + 0x1946: 0x2039, 0x1947: 0x0269, 0x1948: 0x01d9, 0x1949: 0x0fa9, 0x194a: 0x0fb9, 0x194b: 0x1089, + 0x194c: 0x0279, 0x194d: 0x0369, 0x194e: 0x0289, 0x194f: 0x13d1, 0x1950: 0x0039, 0x1951: 0x0ee9, + 0x1952: 0x1159, 0x1953: 0x0ef9, 0x1954: 0x0f09, 0x1955: 0x1199, 0x1956: 0x0f31, 0x1957: 0x0249, + 0x1958: 0x0f41, 0x1959: 0x0259, 0x195a: 0x0f51, 0x195b: 0x0359, 0x195c: 0x0f61, 0x195d: 0x0f71, + 0x195e: 0x00d9, 0x195f: 0x0f99, 0x1960: 0x2039, 0x1961: 0x0269, 0x1962: 0x01d9, 0x1963: 0x0fa9, + 0x1964: 0x0fb9, 0x1965: 0x1089, 0x1966: 0x0279, 0x1967: 0x0369, 0x1968: 0x0289, 0x1969: 0x13d1, + 0x196a: 0x0039, 0x196b: 0x0ee9, 0x196c: 0x1159, 0x196d: 0x0ef9, 0x196e: 0x0f09, 0x196f: 0x1199, + 0x1970: 0x0f31, 0x1971: 0x0249, 0x1972: 0x0f41, 0x1973: 0x0259, 0x1974: 0x0f51, 0x1975: 0x0359, + 0x1976: 0x0f61, 0x1977: 0x0f71, 0x1978: 0x00d9, 0x1979: 0x0f99, 0x197a: 0x2039, 0x197b: 0x0269, + 0x197c: 0x01d9, 0x197d: 0x0fa9, 0x197e: 0x0fb9, 0x197f: 0x1089, + // Block 0x66, offset 0x1980 + 0x1980: 0x0279, 0x1981: 0x0369, 0x1982: 0x0289, 0x1983: 0x13d1, 0x1984: 0x0039, 0x1985: 0x0ee9, + 0x1986: 0x0040, 0x1987: 0x0ef9, 0x1988: 0x0f09, 0x1989: 0x1199, 0x198a: 0x0f31, 0x198b: 0x0040, + 0x198c: 0x0040, 0x198d: 0x0259, 0x198e: 0x0f51, 0x198f: 0x0359, 0x1990: 0x0f61, 0x1991: 0x0f71, + 0x1992: 0x00d9, 0x1993: 0x0f99, 0x1994: 0x2039, 0x1995: 0x0040, 0x1996: 0x01d9, 0x1997: 0x0fa9, + 0x1998: 0x0fb9, 0x1999: 0x1089, 0x199a: 0x0279, 0x199b: 0x0369, 0x199c: 0x0289, 0x199d: 0x0040, + 0x199e: 0x0039, 0x199f: 0x0ee9, 0x19a0: 0x1159, 0x19a1: 0x0ef9, 0x19a2: 0x0f09, 0x19a3: 0x1199, + 0x19a4: 0x0f31, 0x19a5: 0x0249, 0x19a6: 0x0f41, 0x19a7: 0x0259, 0x19a8: 0x0f51, 0x19a9: 0x0359, + 0x19aa: 0x0f61, 0x19ab: 0x0f71, 0x19ac: 0x00d9, 0x19ad: 0x0f99, 0x19ae: 0x2039, 0x19af: 0x0269, + 0x19b0: 0x01d9, 0x19b1: 0x0fa9, 0x19b2: 0x0fb9, 0x19b3: 0x1089, 0x19b4: 0x0279, 0x19b5: 0x0369, + 0x19b6: 0x0289, 0x19b7: 0x13d1, 0x19b8: 0x0039, 0x19b9: 0x0ee9, 0x19ba: 0x0040, 0x19bb: 0x0ef9, + 0x19bc: 0x0f09, 0x19bd: 0x1199, 0x19be: 0x0f31, 0x19bf: 0x0040, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x0f41, 0x19c1: 0x0259, 0x19c2: 0x0f51, 0x19c3: 0x0359, 0x19c4: 0x0f61, 0x19c5: 0x0040, + 0x19c6: 0x00d9, 0x19c7: 0x0040, 0x19c8: 0x0040, 0x19c9: 0x0040, 0x19ca: 0x01d9, 0x19cb: 0x0fa9, + 0x19cc: 0x0fb9, 0x19cd: 0x1089, 0x19ce: 0x0279, 0x19cf: 0x0369, 0x19d0: 0x0289, 0x19d1: 0x0040, + 0x19d2: 0x0039, 0x19d3: 0x0ee9, 0x19d4: 0x1159, 0x19d5: 0x0ef9, 0x19d6: 0x0f09, 0x19d7: 0x1199, + 0x19d8: 0x0f31, 0x19d9: 0x0249, 0x19da: 0x0f41, 0x19db: 0x0259, 0x19dc: 0x0f51, 0x19dd: 0x0359, + 0x19de: 0x0f61, 0x19df: 0x0f71, 0x19e0: 0x00d9, 0x19e1: 0x0f99, 0x19e2: 0x2039, 0x19e3: 0x0269, + 0x19e4: 0x01d9, 0x19e5: 0x0fa9, 0x19e6: 0x0fb9, 0x19e7: 0x1089, 0x19e8: 0x0279, 0x19e9: 0x0369, + 0x19ea: 0x0289, 0x19eb: 0x13d1, 0x19ec: 0x0039, 0x19ed: 0x0ee9, 0x19ee: 0x1159, 0x19ef: 0x0ef9, + 0x19f0: 0x0f09, 0x19f1: 0x1199, 0x19f2: 0x0f31, 0x19f3: 0x0249, 0x19f4: 0x0f41, 0x19f5: 0x0259, + 0x19f6: 0x0f51, 0x19f7: 0x0359, 0x19f8: 0x0f61, 0x19f9: 0x0f71, 0x19fa: 0x00d9, 0x19fb: 0x0f99, + 0x19fc: 0x2039, 0x19fd: 0x0269, 0x19fe: 0x01d9, 0x19ff: 0x0fa9, + // Block 0x68, offset 0x1a00 + 0x1a00: 0x0fb9, 0x1a01: 0x1089, 0x1a02: 0x0279, 0x1a03: 0x0369, 0x1a04: 0x0289, 0x1a05: 0x13d1, + 0x1a06: 0x0039, 0x1a07: 0x0ee9, 0x1a08: 0x1159, 0x1a09: 0x0ef9, 0x1a0a: 0x0f09, 0x1a0b: 0x1199, + 0x1a0c: 0x0f31, 0x1a0d: 0x0249, 0x1a0e: 0x0f41, 0x1a0f: 0x0259, 0x1a10: 0x0f51, 0x1a11: 0x0359, + 0x1a12: 0x0f61, 0x1a13: 0x0f71, 0x1a14: 0x00d9, 0x1a15: 0x0f99, 0x1a16: 0x2039, 0x1a17: 0x0269, + 0x1a18: 0x01d9, 0x1a19: 0x0fa9, 0x1a1a: 0x0fb9, 0x1a1b: 0x1089, 0x1a1c: 0x0279, 0x1a1d: 0x0369, + 0x1a1e: 0x0289, 0x1a1f: 0x13d1, 0x1a20: 0x0039, 0x1a21: 0x0ee9, 0x1a22: 0x1159, 0x1a23: 0x0ef9, + 0x1a24: 0x0f09, 0x1a25: 0x1199, 0x1a26: 0x0f31, 0x1a27: 0x0249, 0x1a28: 0x0f41, 0x1a29: 0x0259, + 0x1a2a: 0x0f51, 0x1a2b: 0x0359, 0x1a2c: 0x0f61, 0x1a2d: 0x0f71, 0x1a2e: 0x00d9, 0x1a2f: 0x0f99, + 0x1a30: 0x2039, 0x1a31: 0x0269, 0x1a32: 0x01d9, 0x1a33: 0x0fa9, 0x1a34: 0x0fb9, 0x1a35: 0x1089, + 0x1a36: 0x0279, 0x1a37: 0x0369, 0x1a38: 0x0289, 0x1a39: 0x13d1, 0x1a3a: 0x0039, 0x1a3b: 0x0ee9, + 0x1a3c: 0x1159, 0x1a3d: 0x0ef9, 0x1a3e: 0x0f09, 0x1a3f: 0x1199, + // Block 0x69, offset 0x1a40 + 0x1a40: 0x0f31, 0x1a41: 0x0249, 0x1a42: 0x0f41, 0x1a43: 0x0259, 0x1a44: 0x0f51, 0x1a45: 0x0359, + 0x1a46: 0x0f61, 0x1a47: 0x0f71, 0x1a48: 0x00d9, 0x1a49: 0x0f99, 0x1a4a: 0x2039, 0x1a4b: 0x0269, + 0x1a4c: 0x01d9, 0x1a4d: 0x0fa9, 0x1a4e: 0x0fb9, 0x1a4f: 0x1089, 0x1a50: 0x0279, 0x1a51: 0x0369, + 0x1a52: 0x0289, 0x1a53: 0x13d1, 0x1a54: 0x0039, 0x1a55: 0x0ee9, 0x1a56: 0x1159, 0x1a57: 0x0ef9, + 0x1a58: 0x0f09, 0x1a59: 0x1199, 0x1a5a: 0x0f31, 0x1a5b: 0x0249, 0x1a5c: 0x0f41, 0x1a5d: 0x0259, + 0x1a5e: 0x0f51, 0x1a5f: 0x0359, 0x1a60: 0x0f61, 0x1a61: 0x0f71, 0x1a62: 0x00d9, 0x1a63: 0x0f99, + 0x1a64: 0x2039, 0x1a65: 0x0269, 0x1a66: 0x01d9, 0x1a67: 0x0fa9, 0x1a68: 0x0fb9, 0x1a69: 0x1089, + 0x1a6a: 0x0279, 0x1a6b: 0x0369, 0x1a6c: 0x0289, 0x1a6d: 0x13d1, 0x1a6e: 0x0039, 0x1a6f: 0x0ee9, + 0x1a70: 0x1159, 0x1a71: 0x0ef9, 0x1a72: 0x0f09, 0x1a73: 0x1199, 0x1a74: 0x0f31, 0x1a75: 0x0249, + 0x1a76: 0x0f41, 0x1a77: 0x0259, 0x1a78: 0x0f51, 0x1a79: 0x0359, 0x1a7a: 0x0f61, 0x1a7b: 0x0f71, + 0x1a7c: 0x00d9, 0x1a7d: 0x0f99, 0x1a7e: 0x2039, 0x1a7f: 0x0269, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x01d9, 0x1a81: 0x0fa9, 0x1a82: 0x0fb9, 0x1a83: 0x1089, 0x1a84: 0x0279, 0x1a85: 0x0369, + 0x1a86: 0x0289, 0x1a87: 0x13d1, 0x1a88: 0x0039, 0x1a89: 0x0ee9, 0x1a8a: 0x1159, 0x1a8b: 0x0ef9, + 0x1a8c: 0x0f09, 0x1a8d: 0x1199, 0x1a8e: 0x0f31, 0x1a8f: 0x0249, 0x1a90: 0x0f41, 0x1a91: 0x0259, + 0x1a92: 0x0f51, 0x1a93: 0x0359, 0x1a94: 0x0f61, 0x1a95: 0x0f71, 0x1a96: 0x00d9, 0x1a97: 0x0f99, + 0x1a98: 0x2039, 0x1a99: 0x0269, 0x1a9a: 0x01d9, 0x1a9b: 0x0fa9, 0x1a9c: 0x0fb9, 0x1a9d: 0x1089, + 0x1a9e: 0x0279, 0x1a9f: 0x0369, 0x1aa0: 0x0289, 0x1aa1: 0x13d1, 0x1aa2: 0x0039, 0x1aa3: 0x0ee9, + 0x1aa4: 0x1159, 0x1aa5: 0x0ef9, 0x1aa6: 0x0f09, 0x1aa7: 0x1199, 0x1aa8: 0x0f31, 0x1aa9: 0x0249, + 0x1aaa: 0x0f41, 0x1aab: 0x0259, 0x1aac: 0x0f51, 0x1aad: 0x0359, 0x1aae: 0x0f61, 0x1aaf: 0x0f71, + 0x1ab0: 0x00d9, 0x1ab1: 0x0f99, 0x1ab2: 0x2039, 0x1ab3: 0x0269, 0x1ab4: 0x01d9, 0x1ab5: 0x0fa9, + 0x1ab6: 0x0fb9, 0x1ab7: 0x1089, 0x1ab8: 0x0279, 0x1ab9: 0x0369, 0x1aba: 0x0289, 0x1abb: 0x13d1, + 0x1abc: 0x0039, 0x1abd: 0x0ee9, 0x1abe: 0x1159, 0x1abf: 0x0ef9, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x0f09, 0x1ac1: 0x1199, 0x1ac2: 0x0f31, 0x1ac3: 0x0249, 0x1ac4: 0x0f41, 0x1ac5: 0x0259, + 0x1ac6: 0x0f51, 0x1ac7: 0x0359, 0x1ac8: 0x0f61, 0x1ac9: 0x0f71, 0x1aca: 0x00d9, 0x1acb: 0x0f99, + 0x1acc: 0x2039, 0x1acd: 0x0269, 0x1ace: 0x01d9, 0x1acf: 0x0fa9, 0x1ad0: 0x0fb9, 0x1ad1: 0x1089, + 0x1ad2: 0x0279, 0x1ad3: 0x0369, 0x1ad4: 0x0289, 0x1ad5: 0x13d1, 0x1ad6: 0x0039, 0x1ad7: 0x0ee9, + 0x1ad8: 0x1159, 0x1ad9: 0x0ef9, 0x1ada: 0x0f09, 0x1adb: 0x1199, 0x1adc: 0x0f31, 0x1add: 0x0249, + 0x1ade: 0x0f41, 0x1adf: 0x0259, 0x1ae0: 0x0f51, 0x1ae1: 0x0359, 0x1ae2: 0x0f61, 0x1ae3: 0x0f71, + 0x1ae4: 0x00d9, 0x1ae5: 0x0f99, 0x1ae6: 0x2039, 0x1ae7: 0x0269, 0x1ae8: 0x01d9, 0x1ae9: 0x0fa9, + 0x1aea: 0x0fb9, 0x1aeb: 0x1089, 0x1aec: 0x0279, 0x1aed: 0x0369, 0x1aee: 0x0289, 0x1aef: 0x13d1, + 0x1af0: 0x0039, 0x1af1: 0x0ee9, 0x1af2: 0x1159, 0x1af3: 0x0ef9, 0x1af4: 0x0f09, 0x1af5: 0x1199, + 0x1af6: 0x0f31, 0x1af7: 0x0249, 0x1af8: 0x0f41, 0x1af9: 0x0259, 0x1afa: 0x0f51, 0x1afb: 0x0359, + 0x1afc: 0x0f61, 0x1afd: 0x0f71, 0x1afe: 0x00d9, 0x1aff: 0x0f99, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x2039, 0x1b01: 0x0269, 0x1b02: 0x01d9, 0x1b03: 0x0fa9, 0x1b04: 0x0fb9, 0x1b05: 0x1089, + 0x1b06: 0x0279, 0x1b07: 0x0369, 0x1b08: 0x0289, 0x1b09: 0x13d1, 0x1b0a: 0x0039, 0x1b0b: 0x0ee9, + 0x1b0c: 0x1159, 0x1b0d: 0x0ef9, 0x1b0e: 0x0f09, 0x1b0f: 0x1199, 0x1b10: 0x0f31, 0x1b11: 0x0249, + 0x1b12: 0x0f41, 0x1b13: 0x0259, 0x1b14: 0x0f51, 0x1b15: 0x0359, 0x1b16: 0x0f61, 0x1b17: 0x0f71, + 0x1b18: 0x00d9, 0x1b19: 0x0f99, 0x1b1a: 0x2039, 0x1b1b: 0x0269, 0x1b1c: 0x01d9, 0x1b1d: 0x0fa9, + 0x1b1e: 0x0fb9, 0x1b1f: 0x1089, 0x1b20: 0x0279, 0x1b21: 0x0369, 0x1b22: 0x0289, 0x1b23: 0x13d1, + 0x1b24: 0xbad1, 0x1b25: 0xbae9, 0x1b26: 0x0040, 0x1b27: 0x0040, 0x1b28: 0xbb01, 0x1b29: 0x1099, + 0x1b2a: 0x10b1, 0x1b2b: 0x10c9, 0x1b2c: 0xbb19, 0x1b2d: 0xbb31, 0x1b2e: 0xbb49, 0x1b2f: 0x1429, + 0x1b30: 0x1a31, 0x1b31: 0xbb61, 0x1b32: 0xbb79, 0x1b33: 0xbb91, 0x1b34: 0xbba9, 0x1b35: 0xbbc1, + 0x1b36: 0xbbd9, 0x1b37: 0x2109, 0x1b38: 0x1111, 0x1b39: 0x1429, 0x1b3a: 0xbbf1, 0x1b3b: 0xbc09, + 0x1b3c: 0xbc21, 0x1b3d: 0x10e1, 0x1b3e: 0x10f9, 0x1b3f: 0xbc39, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x2079, 0x1b41: 0xbc51, 0x1b42: 0xbb01, 0x1b43: 0x1099, 0x1b44: 0x10b1, 0x1b45: 0x10c9, + 0x1b46: 0xbb19, 0x1b47: 0xbb31, 0x1b48: 0xbb49, 0x1b49: 0x1429, 0x1b4a: 0x1a31, 0x1b4b: 0xbb61, + 0x1b4c: 0xbb79, 0x1b4d: 0xbb91, 0x1b4e: 0xbba9, 0x1b4f: 0xbbc1, 0x1b50: 0xbbd9, 0x1b51: 0x2109, + 0x1b52: 0x1111, 0x1b53: 0xbbf1, 0x1b54: 0xbbf1, 0x1b55: 0xbc09, 0x1b56: 0xbc21, 0x1b57: 0x10e1, + 0x1b58: 0x10f9, 0x1b59: 0xbc39, 0x1b5a: 0x2079, 0x1b5b: 0xbc71, 0x1b5c: 0xbb19, 0x1b5d: 0x1429, + 0x1b5e: 0xbb61, 0x1b5f: 0x10e1, 0x1b60: 0x1111, 0x1b61: 0x2109, 0x1b62: 0xbb01, 0x1b63: 0x1099, + 0x1b64: 0x10b1, 0x1b65: 0x10c9, 0x1b66: 0xbb19, 0x1b67: 0xbb31, 0x1b68: 0xbb49, 0x1b69: 0x1429, + 0x1b6a: 0x1a31, 0x1b6b: 0xbb61, 0x1b6c: 0xbb79, 0x1b6d: 0xbb91, 0x1b6e: 0xbba9, 0x1b6f: 0xbbc1, + 0x1b70: 0xbbd9, 0x1b71: 0x2109, 0x1b72: 0x1111, 0x1b73: 0x1429, 0x1b74: 0xbbf1, 0x1b75: 0xbc09, + 0x1b76: 0xbc21, 0x1b77: 0x10e1, 0x1b78: 0x10f9, 0x1b79: 0xbc39, 0x1b7a: 0x2079, 0x1b7b: 0xbc51, + 0x1b7c: 0xbb01, 0x1b7d: 0x1099, 0x1b7e: 0x10b1, 0x1b7f: 0x10c9, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0xbb19, 0x1b81: 0xbb31, 0x1b82: 0xbb49, 0x1b83: 0x1429, 0x1b84: 0x1a31, 0x1b85: 0xbb61, + 0x1b86: 0xbb79, 0x1b87: 0xbb91, 0x1b88: 0xbba9, 0x1b89: 0xbbc1, 0x1b8a: 0xbbd9, 0x1b8b: 0x2109, + 0x1b8c: 0x1111, 0x1b8d: 0xbbf1, 0x1b8e: 0xbbf1, 0x1b8f: 0xbc09, 0x1b90: 0xbc21, 0x1b91: 0x10e1, + 0x1b92: 0x10f9, 0x1b93: 0xbc39, 0x1b94: 0x2079, 0x1b95: 0xbc71, 0x1b96: 0xbb19, 0x1b97: 0x1429, + 0x1b98: 0xbb61, 0x1b99: 0x10e1, 0x1b9a: 0x1111, 0x1b9b: 0x2109, 0x1b9c: 0xbb01, 0x1b9d: 0x1099, + 0x1b9e: 0x10b1, 0x1b9f: 0x10c9, 0x1ba0: 0xbb19, 0x1ba1: 0xbb31, 0x1ba2: 0xbb49, 0x1ba3: 0x1429, + 0x1ba4: 0x1a31, 0x1ba5: 0xbb61, 0x1ba6: 0xbb79, 0x1ba7: 0xbb91, 0x1ba8: 0xbba9, 0x1ba9: 0xbbc1, + 0x1baa: 0xbbd9, 0x1bab: 0x2109, 0x1bac: 0x1111, 0x1bad: 0x1429, 0x1bae: 0xbbf1, 0x1baf: 0xbc09, + 0x1bb0: 0xbc21, 0x1bb1: 0x10e1, 0x1bb2: 0x10f9, 0x1bb3: 0xbc39, 0x1bb4: 0x2079, 0x1bb5: 0xbc51, + 0x1bb6: 0xbb01, 0x1bb7: 0x1099, 0x1bb8: 0x10b1, 0x1bb9: 0x10c9, 0x1bba: 0xbb19, 0x1bbb: 0xbb31, + 0x1bbc: 0xbb49, 0x1bbd: 0x1429, 0x1bbe: 0x1a31, 0x1bbf: 0xbb61, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0xbb79, 0x1bc1: 0xbb91, 0x1bc2: 0xbba9, 0x1bc3: 0xbbc1, 0x1bc4: 0xbbd9, 0x1bc5: 0x2109, + 0x1bc6: 0x1111, 0x1bc7: 0xbbf1, 0x1bc8: 0xbbf1, 0x1bc9: 0xbc09, 0x1bca: 0xbc21, 0x1bcb: 0x10e1, + 0x1bcc: 0x10f9, 0x1bcd: 0xbc39, 0x1bce: 0x2079, 0x1bcf: 0xbc71, 0x1bd0: 0xbb19, 0x1bd1: 0x1429, + 0x1bd2: 0xbb61, 0x1bd3: 0x10e1, 0x1bd4: 0x1111, 0x1bd5: 0x2109, 0x1bd6: 0xbb01, 0x1bd7: 0x1099, + 0x1bd8: 0x10b1, 0x1bd9: 0x10c9, 0x1bda: 0xbb19, 0x1bdb: 0xbb31, 0x1bdc: 0xbb49, 0x1bdd: 0x1429, + 0x1bde: 0x1a31, 0x1bdf: 0xbb61, 0x1be0: 0xbb79, 0x1be1: 0xbb91, 0x1be2: 0xbba9, 0x1be3: 0xbbc1, + 0x1be4: 0xbbd9, 0x1be5: 0x2109, 0x1be6: 0x1111, 0x1be7: 0x1429, 0x1be8: 0xbbf1, 0x1be9: 0xbc09, + 0x1bea: 0xbc21, 0x1beb: 0x10e1, 0x1bec: 0x10f9, 0x1bed: 0xbc39, 0x1bee: 0x2079, 0x1bef: 0xbc51, + 0x1bf0: 0xbb01, 0x1bf1: 0x1099, 0x1bf2: 0x10b1, 0x1bf3: 0x10c9, 0x1bf4: 0xbb19, 0x1bf5: 0xbb31, + 0x1bf6: 0xbb49, 0x1bf7: 0x1429, 0x1bf8: 0x1a31, 0x1bf9: 0xbb61, 0x1bfa: 0xbb79, 0x1bfb: 0xbb91, + 0x1bfc: 0xbba9, 0x1bfd: 0xbbc1, 0x1bfe: 0xbbd9, 0x1bff: 0x2109, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x1111, 0x1c01: 0xbbf1, 0x1c02: 0xbbf1, 0x1c03: 0xbc09, 0x1c04: 0xbc21, 0x1c05: 0x10e1, + 0x1c06: 0x10f9, 0x1c07: 0xbc39, 0x1c08: 0x2079, 0x1c09: 0xbc71, 0x1c0a: 0xbb19, 0x1c0b: 0x1429, + 0x1c0c: 0xbb61, 0x1c0d: 0x10e1, 0x1c0e: 0x1111, 0x1c0f: 0x2109, 0x1c10: 0xbb01, 0x1c11: 0x1099, + 0x1c12: 0x10b1, 0x1c13: 0x10c9, 0x1c14: 0xbb19, 0x1c15: 0xbb31, 0x1c16: 0xbb49, 0x1c17: 0x1429, + 0x1c18: 0x1a31, 0x1c19: 0xbb61, 0x1c1a: 0xbb79, 0x1c1b: 0xbb91, 0x1c1c: 0xbba9, 0x1c1d: 0xbbc1, + 0x1c1e: 0xbbd9, 0x1c1f: 0x2109, 0x1c20: 0x1111, 0x1c21: 0x1429, 0x1c22: 0xbbf1, 0x1c23: 0xbc09, + 0x1c24: 0xbc21, 0x1c25: 0x10e1, 0x1c26: 0x10f9, 0x1c27: 0xbc39, 0x1c28: 0x2079, 0x1c29: 0xbc51, + 0x1c2a: 0xbb01, 0x1c2b: 0x1099, 0x1c2c: 0x10b1, 0x1c2d: 0x10c9, 0x1c2e: 0xbb19, 0x1c2f: 0xbb31, + 0x1c30: 0xbb49, 0x1c31: 0x1429, 0x1c32: 0x1a31, 0x1c33: 0xbb61, 0x1c34: 0xbb79, 0x1c35: 0xbb91, + 0x1c36: 0xbba9, 0x1c37: 0xbbc1, 0x1c38: 0xbbd9, 0x1c39: 0x2109, 0x1c3a: 0x1111, 0x1c3b: 0xbbf1, + 0x1c3c: 0xbbf1, 0x1c3d: 0xbc09, 0x1c3e: 0xbc21, 0x1c3f: 0x10e1, + // Block 0x71, offset 0x1c40 + 0x1c40: 0x10f9, 0x1c41: 0xbc39, 0x1c42: 0x2079, 0x1c43: 0xbc71, 0x1c44: 0xbb19, 0x1c45: 0x1429, + 0x1c46: 0xbb61, 0x1c47: 0x10e1, 0x1c48: 0x1111, 0x1c49: 0x2109, 0x1c4a: 0xbc91, 0x1c4b: 0xbc91, + 0x1c4c: 0x0040, 0x1c4d: 0x0040, 0x1c4e: 0x1f41, 0x1c4f: 0x00c9, 0x1c50: 0x0069, 0x1c51: 0x0079, + 0x1c52: 0x1f51, 0x1c53: 0x1f61, 0x1c54: 0x1f71, 0x1c55: 0x1f81, 0x1c56: 0x1f91, 0x1c57: 0x1fa1, + 0x1c58: 0x1f41, 0x1c59: 0x00c9, 0x1c5a: 0x0069, 0x1c5b: 0x0079, 0x1c5c: 0x1f51, 0x1c5d: 0x1f61, + 0x1c5e: 0x1f71, 0x1c5f: 0x1f81, 0x1c60: 0x1f91, 0x1c61: 0x1fa1, 0x1c62: 0x1f41, 0x1c63: 0x00c9, + 0x1c64: 0x0069, 0x1c65: 0x0079, 0x1c66: 0x1f51, 0x1c67: 0x1f61, 0x1c68: 0x1f71, 0x1c69: 0x1f81, + 0x1c6a: 0x1f91, 0x1c6b: 0x1fa1, 0x1c6c: 0x1f41, 0x1c6d: 0x00c9, 0x1c6e: 0x0069, 0x1c6f: 0x0079, + 0x1c70: 0x1f51, 0x1c71: 0x1f61, 0x1c72: 0x1f71, 0x1c73: 0x1f81, 0x1c74: 0x1f91, 0x1c75: 0x1fa1, + 0x1c76: 0x1f41, 0x1c77: 0x00c9, 0x1c78: 0x0069, 0x1c79: 0x0079, 0x1c7a: 0x1f51, 0x1c7b: 0x1f61, + 0x1c7c: 0x1f71, 0x1c7d: 0x1f81, 0x1c7e: 0x1f91, 0x1c7f: 0x1fa1, + // Block 0x72, offset 0x1c80 + 0x1c80: 0xe115, 0x1c81: 0xe115, 0x1c82: 0xe135, 0x1c83: 0xe135, 0x1c84: 0xe115, 0x1c85: 0xe115, + 0x1c86: 0xe175, 0x1c87: 0xe175, 0x1c88: 0xe115, 0x1c89: 0xe115, 0x1c8a: 0xe135, 0x1c8b: 0xe135, + 0x1c8c: 0xe115, 0x1c8d: 0xe115, 0x1c8e: 0xe1f5, 0x1c8f: 0xe1f5, 0x1c90: 0xe115, 0x1c91: 0xe115, + 0x1c92: 0xe135, 0x1c93: 0xe135, 0x1c94: 0xe115, 0x1c95: 0xe115, 0x1c96: 0xe175, 0x1c97: 0xe175, + 0x1c98: 0xe115, 0x1c99: 0xe115, 0x1c9a: 0xe135, 0x1c9b: 0xe135, 0x1c9c: 0xe115, 0x1c9d: 0xe115, + 0x1c9e: 0x8b3d, 0x1c9f: 0x8b3d, 0x1ca0: 0x04b5, 0x1ca1: 0x04b5, 0x1ca2: 0x0a08, 0x1ca3: 0x0a08, + 0x1ca4: 0x0a08, 0x1ca5: 0x0a08, 0x1ca6: 0x0a08, 0x1ca7: 0x0a08, 0x1ca8: 0x0a08, 0x1ca9: 0x0a08, + 0x1caa: 0x0a08, 0x1cab: 0x0a08, 0x1cac: 0x0a08, 0x1cad: 0x0a08, 0x1cae: 0x0a08, 0x1caf: 0x0a08, + 0x1cb0: 0x0a08, 0x1cb1: 0x0a08, 0x1cb2: 0x0a08, 0x1cb3: 0x0a08, 0x1cb4: 0x0a08, 0x1cb5: 0x0a08, + 0x1cb6: 0x0a08, 0x1cb7: 0x0a08, 0x1cb8: 0x0a08, 0x1cb9: 0x0a08, 0x1cba: 0x0a08, 0x1cbb: 0x0a08, + 0x1cbc: 0x0a08, 0x1cbd: 0x0a08, 0x1cbe: 0x0a08, 0x1cbf: 0x0a08, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0xb1d9, 0x1cc1: 0xb1f1, 0x1cc2: 0xb251, 0x1cc3: 0xb299, 0x1cc4: 0x0040, 0x1cc5: 0xb461, + 0x1cc6: 0xb2e1, 0x1cc7: 0xb269, 0x1cc8: 0xb359, 0x1cc9: 0xb479, 0x1cca: 0xb3e9, 0x1ccb: 0xb401, + 0x1ccc: 0xb419, 0x1ccd: 0xb431, 0x1cce: 0xb2f9, 0x1ccf: 0xb389, 0x1cd0: 0xb3b9, 0x1cd1: 0xb329, + 0x1cd2: 0xb3d1, 0x1cd3: 0xb2c9, 0x1cd4: 0xb311, 0x1cd5: 0xb221, 0x1cd6: 0xb239, 0x1cd7: 0xb281, + 0x1cd8: 0xb2b1, 0x1cd9: 0xb341, 0x1cda: 0xb371, 0x1cdb: 0xb3a1, 0x1cdc: 0xbca9, 0x1cdd: 0x7999, + 0x1cde: 0xbcc1, 0x1cdf: 0xbcd9, 0x1ce0: 0x0040, 0x1ce1: 0xb1f1, 0x1ce2: 0xb251, 0x1ce3: 0x0040, + 0x1ce4: 0xb449, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb269, 0x1ce8: 0x0040, 0x1ce9: 0xb479, + 0x1cea: 0xb3e9, 0x1ceb: 0xb401, 0x1cec: 0xb419, 0x1ced: 0xb431, 0x1cee: 0xb2f9, 0x1cef: 0xb389, + 0x1cf0: 0xb3b9, 0x1cf1: 0xb329, 0x1cf2: 0xb3d1, 0x1cf3: 0x0040, 0x1cf4: 0xb311, 0x1cf5: 0xb221, + 0x1cf6: 0xb239, 0x1cf7: 0xb281, 0x1cf8: 0x0040, 0x1cf9: 0xb341, 0x1cfa: 0x0040, 0x1cfb: 0xb3a1, + 0x1cfc: 0x0040, 0x1cfd: 0x0040, 0x1cfe: 0x0040, 0x1cff: 0x0040, + // Block 0x74, offset 0x1d00 + 0x1d00: 0x0040, 0x1d01: 0x0040, 0x1d02: 0xb251, 0x1d03: 0x0040, 0x1d04: 0x0040, 0x1d05: 0x0040, + 0x1d06: 0x0040, 0x1d07: 0xb269, 0x1d08: 0x0040, 0x1d09: 0xb479, 0x1d0a: 0x0040, 0x1d0b: 0xb401, + 0x1d0c: 0x0040, 0x1d0d: 0xb431, 0x1d0e: 0xb2f9, 0x1d0f: 0xb389, 0x1d10: 0x0040, 0x1d11: 0xb329, + 0x1d12: 0xb3d1, 0x1d13: 0x0040, 0x1d14: 0xb311, 0x1d15: 0x0040, 0x1d16: 0x0040, 0x1d17: 0xb281, + 0x1d18: 0x0040, 0x1d19: 0xb341, 0x1d1a: 0x0040, 0x1d1b: 0xb3a1, 0x1d1c: 0x0040, 0x1d1d: 0x7999, + 0x1d1e: 0x0040, 0x1d1f: 0xbcd9, 0x1d20: 0x0040, 0x1d21: 0xb1f1, 0x1d22: 0xb251, 0x1d23: 0x0040, + 0x1d24: 0xb449, 0x1d25: 0x0040, 0x1d26: 0x0040, 0x1d27: 0xb269, 0x1d28: 0xb359, 0x1d29: 0xb479, + 0x1d2a: 0xb3e9, 0x1d2b: 0x0040, 0x1d2c: 0xb419, 0x1d2d: 0xb431, 0x1d2e: 0xb2f9, 0x1d2f: 0xb389, + 0x1d30: 0xb3b9, 0x1d31: 0xb329, 0x1d32: 0xb3d1, 0x1d33: 0x0040, 0x1d34: 0xb311, 0x1d35: 0xb221, + 0x1d36: 0xb239, 0x1d37: 0xb281, 0x1d38: 0x0040, 0x1d39: 0xb341, 0x1d3a: 0xb371, 0x1d3b: 0xb3a1, + 0x1d3c: 0xbca9, 0x1d3d: 0x0040, 0x1d3e: 0xbcc1, 0x1d3f: 0x0040, + // Block 0x75, offset 0x1d40 + 0x1d40: 0xb1d9, 0x1d41: 0xb1f1, 0x1d42: 0xb251, 0x1d43: 0xb299, 0x1d44: 0xb449, 0x1d45: 0xb461, + 0x1d46: 0xb2e1, 0x1d47: 0xb269, 0x1d48: 0xb359, 0x1d49: 0xb479, 0x1d4a: 0x0040, 0x1d4b: 0xb401, + 0x1d4c: 0xb419, 0x1d4d: 0xb431, 0x1d4e: 0xb2f9, 0x1d4f: 0xb389, 0x1d50: 0xb3b9, 0x1d51: 0xb329, + 0x1d52: 0xb3d1, 0x1d53: 0xb2c9, 0x1d54: 0xb311, 0x1d55: 0xb221, 0x1d56: 0xb239, 0x1d57: 0xb281, + 0x1d58: 0xb2b1, 0x1d59: 0xb341, 0x1d5a: 0xb371, 0x1d5b: 0xb3a1, 0x1d5c: 0x0040, 0x1d5d: 0x0040, + 0x1d5e: 0x0040, 0x1d5f: 0x0040, 0x1d60: 0x0040, 0x1d61: 0xb1f1, 0x1d62: 0xb251, 0x1d63: 0xb299, + 0x1d64: 0x0040, 0x1d65: 0xb461, 0x1d66: 0xb2e1, 0x1d67: 0xb269, 0x1d68: 0xb359, 0x1d69: 0xb479, + 0x1d6a: 0x0040, 0x1d6b: 0xb401, 0x1d6c: 0xb419, 0x1d6d: 0xb431, 0x1d6e: 0xb2f9, 0x1d6f: 0xb389, + 0x1d70: 0xb3b9, 0x1d71: 0xb329, 0x1d72: 0xb3d1, 0x1d73: 0xb2c9, 0x1d74: 0xb311, 0x1d75: 0xb221, + 0x1d76: 0xb239, 0x1d77: 0xb281, 0x1d78: 0xb2b1, 0x1d79: 0xb341, 0x1d7a: 0xb371, 0x1d7b: 0xb3a1, + 0x1d7c: 0x0040, 0x1d7d: 0x0040, 0x1d7e: 0x0040, 0x1d7f: 0x0040, + // Block 0x76, offset 0x1d80 + 0x1d80: 0x0040, 0x1d81: 0xbcf2, 0x1d82: 0xbd0a, 0x1d83: 0xbd22, 0x1d84: 0xbd3a, 0x1d85: 0xbd52, + 0x1d86: 0xbd6a, 0x1d87: 0xbd82, 0x1d88: 0xbd9a, 0x1d89: 0xbdb2, 0x1d8a: 0xbdca, 0x1d8b: 0x0018, + 0x1d8c: 0x0018, 0x1d8d: 0x0018, 0x1d8e: 0x0018, 0x1d8f: 0x0018, 0x1d90: 0xbde2, 0x1d91: 0xbe02, + 0x1d92: 0xbe22, 0x1d93: 0xbe42, 0x1d94: 0xbe62, 0x1d95: 0xbe82, 0x1d96: 0xbea2, 0x1d97: 0xbec2, + 0x1d98: 0xbee2, 0x1d99: 0xbf02, 0x1d9a: 0xbf22, 0x1d9b: 0xbf42, 0x1d9c: 0xbf62, 0x1d9d: 0xbf82, + 0x1d9e: 0xbfa2, 0x1d9f: 0xbfc2, 0x1da0: 0xbfe2, 0x1da1: 0xc002, 0x1da2: 0xc022, 0x1da3: 0xc042, + 0x1da4: 0xc062, 0x1da5: 0xc082, 0x1da6: 0xc0a2, 0x1da7: 0xc0c2, 0x1da8: 0xc0e2, 0x1da9: 0xc102, + 0x1daa: 0xc121, 0x1dab: 0x1159, 0x1dac: 0x0269, 0x1dad: 0x66a9, 0x1dae: 0xc161, 0x1daf: 0x0018, + 0x1db0: 0x0039, 0x1db1: 0x0ee9, 0x1db2: 0x1159, 0x1db3: 0x0ef9, 0x1db4: 0x0f09, 0x1db5: 0x1199, + 0x1db6: 0x0f31, 0x1db7: 0x0249, 0x1db8: 0x0f41, 0x1db9: 0x0259, 0x1dba: 0x0f51, 0x1dbb: 0x0359, + 0x1dbc: 0x0f61, 0x1dbd: 0x0f71, 0x1dbe: 0x00d9, 0x1dbf: 0x0f99, + // Block 0x77, offset 0x1dc0 + 0x1dc0: 0x2039, 0x1dc1: 0x0269, 0x1dc2: 0x01d9, 0x1dc3: 0x0fa9, 0x1dc4: 0x0fb9, 0x1dc5: 0x1089, + 0x1dc6: 0x0279, 0x1dc7: 0x0369, 0x1dc8: 0x0289, 0x1dc9: 0x13d1, 0x1dca: 0xc179, 0x1dcb: 0x65e9, + 0x1dcc: 0xc191, 0x1dcd: 0x1441, 0x1dce: 0xc1a9, 0x1dcf: 0xc1c9, 0x1dd0: 0x0018, 0x1dd1: 0x0018, + 0x1dd2: 0x0018, 0x1dd3: 0x0018, 0x1dd4: 0x0018, 0x1dd5: 0x0018, 0x1dd6: 0x0018, 0x1dd7: 0x0018, + 0x1dd8: 0x0018, 0x1dd9: 0x0018, 0x1dda: 0x0018, 0x1ddb: 0x0018, 0x1ddc: 0x0018, 0x1ddd: 0x0018, + 0x1dde: 0x0018, 0x1ddf: 0x0018, 0x1de0: 0x0018, 0x1de1: 0x0018, 0x1de2: 0x0018, 0x1de3: 0x0018, + 0x1de4: 0x0018, 0x1de5: 0x0018, 0x1de6: 0x0018, 0x1de7: 0x0018, 0x1de8: 0x0018, 0x1de9: 0x0018, + 0x1dea: 0xc1e1, 0x1deb: 0xc1f9, 0x1dec: 0xc211, 0x1ded: 0x0018, 0x1dee: 0x0018, 0x1def: 0x0018, + 0x1df0: 0x0018, 0x1df1: 0x0018, 0x1df2: 0x0018, 0x1df3: 0x0018, 0x1df4: 0x0018, 0x1df5: 0x0018, + 0x1df6: 0x0018, 0x1df7: 0x0018, 0x1df8: 0x0018, 0x1df9: 0x0018, 0x1dfa: 0x0018, 0x1dfb: 0x0018, + 0x1dfc: 0x0018, 0x1dfd: 0x0018, 0x1dfe: 0x0018, 0x1dff: 0x0018, + // Block 0x78, offset 0x1e00 + 0x1e00: 0xc241, 0x1e01: 0xc279, 0x1e02: 0xc2b1, 0x1e03: 0x0040, 0x1e04: 0x0040, 0x1e05: 0x0040, + 0x1e06: 0x0040, 0x1e07: 0x0040, 0x1e08: 0x0040, 0x1e09: 0x0040, 0x1e0a: 0x0040, 0x1e0b: 0x0040, + 0x1e0c: 0x0040, 0x1e0d: 0x0040, 0x1e0e: 0x0040, 0x1e0f: 0x0040, 0x1e10: 0xc2d1, 0x1e11: 0xc2f1, + 0x1e12: 0xc311, 0x1e13: 0xc331, 0x1e14: 0xc351, 0x1e15: 0xc371, 0x1e16: 0xc391, 0x1e17: 0xc3b1, + 0x1e18: 0xc3d1, 0x1e19: 0xc3f1, 0x1e1a: 0xc411, 0x1e1b: 0xc431, 0x1e1c: 0xc451, 0x1e1d: 0xc471, + 0x1e1e: 0xc491, 0x1e1f: 0xc4b1, 0x1e20: 0xc4d1, 0x1e21: 0xc4f1, 0x1e22: 0xc511, 0x1e23: 0xc531, + 0x1e24: 0xc551, 0x1e25: 0xc571, 0x1e26: 0xc591, 0x1e27: 0xc5b1, 0x1e28: 0xc5d1, 0x1e29: 0xc5f1, + 0x1e2a: 0xc611, 0x1e2b: 0xc631, 0x1e2c: 0xc651, 0x1e2d: 0xc671, 0x1e2e: 0xc691, 0x1e2f: 0xc6b1, + 0x1e30: 0xc6d1, 0x1e31: 0xc6f1, 0x1e32: 0xc711, 0x1e33: 0xc731, 0x1e34: 0xc751, 0x1e35: 0xc771, + 0x1e36: 0xc791, 0x1e37: 0xc7b1, 0x1e38: 0xc7d1, 0x1e39: 0xc7f1, 0x1e3a: 0xc811, 0x1e3b: 0xc831, + 0x1e3c: 0x0040, 0x1e3d: 0x0040, 0x1e3e: 0x0040, 0x1e3f: 0x0040, + // Block 0x79, offset 0x1e40 + 0x1e40: 0xcb61, 0x1e41: 0xcb81, 0x1e42: 0xcba1, 0x1e43: 0x8b55, 0x1e44: 0xcbc1, 0x1e45: 0xcbe1, + 0x1e46: 0xcc01, 0x1e47: 0xcc21, 0x1e48: 0xcc41, 0x1e49: 0xcc61, 0x1e4a: 0xcc81, 0x1e4b: 0xcca1, + 0x1e4c: 0xccc1, 0x1e4d: 0x8b75, 0x1e4e: 0xcce1, 0x1e4f: 0xcd01, 0x1e50: 0xcd21, 0x1e51: 0xcd41, + 0x1e52: 0x8b95, 0x1e53: 0xcd61, 0x1e54: 0xcd81, 0x1e55: 0xc491, 0x1e56: 0x8bb5, 0x1e57: 0xcda1, + 0x1e58: 0xcdc1, 0x1e59: 0xcde1, 0x1e5a: 0xce01, 0x1e5b: 0xce21, 0x1e5c: 0x8bd5, 0x1e5d: 0xce41, + 0x1e5e: 0xce61, 0x1e5f: 0xce81, 0x1e60: 0xcea1, 0x1e61: 0xcec1, 0x1e62: 0xc7f1, 0x1e63: 0xcee1, + 0x1e64: 0xcf01, 0x1e65: 0xcf21, 0x1e66: 0xcf41, 0x1e67: 0xcf61, 0x1e68: 0xcf81, 0x1e69: 0xcfa1, + 0x1e6a: 0xcfc1, 0x1e6b: 0xcfe1, 0x1e6c: 0xd001, 0x1e6d: 0xd021, 0x1e6e: 0xd041, 0x1e6f: 0xd061, + 0x1e70: 0xd081, 0x1e71: 0xd0a1, 0x1e72: 0xd0a1, 0x1e73: 0xd0a1, 0x1e74: 0x8bf5, 0x1e75: 0xd0c1, + 0x1e76: 0xd0e1, 0x1e77: 0xd101, 0x1e78: 0x8c15, 0x1e79: 0xd121, 0x1e7a: 0xd141, 0x1e7b: 0xd161, + 0x1e7c: 0xd181, 0x1e7d: 0xd1a1, 0x1e7e: 0xd1c1, 0x1e7f: 0xd1e1, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0xd201, 0x1e81: 0xd221, 0x1e82: 0xd241, 0x1e83: 0xd261, 0x1e84: 0xd281, 0x1e85: 0xd2a1, + 0x1e86: 0xd2a1, 0x1e87: 0xd2c1, 0x1e88: 0xd2e1, 0x1e89: 0xd301, 0x1e8a: 0xd321, 0x1e8b: 0xd341, + 0x1e8c: 0xd361, 0x1e8d: 0xd381, 0x1e8e: 0xd3a1, 0x1e8f: 0xd3c1, 0x1e90: 0xd3e1, 0x1e91: 0xd401, + 0x1e92: 0xd421, 0x1e93: 0xd441, 0x1e94: 0xd461, 0x1e95: 0xd481, 0x1e96: 0xd4a1, 0x1e97: 0xd4c1, + 0x1e98: 0xd4e1, 0x1e99: 0x8c35, 0x1e9a: 0xd501, 0x1e9b: 0xd521, 0x1e9c: 0xd541, 0x1e9d: 0xc371, + 0x1e9e: 0xd561, 0x1e9f: 0xd581, 0x1ea0: 0x8c55, 0x1ea1: 0x8c75, 0x1ea2: 0xd5a1, 0x1ea3: 0xd5c1, + 0x1ea4: 0xd5e1, 0x1ea5: 0xd601, 0x1ea6: 0xd621, 0x1ea7: 0xd641, 0x1ea8: 0x2040, 0x1ea9: 0xd661, + 0x1eaa: 0xd681, 0x1eab: 0xd681, 0x1eac: 0x8c95, 0x1ead: 0xd6a1, 0x1eae: 0xd6c1, 0x1eaf: 0xd6e1, + 0x1eb0: 0xd701, 0x1eb1: 0x8cb5, 0x1eb2: 0xd721, 0x1eb3: 0xd741, 0x1eb4: 0x2040, 0x1eb5: 0xd761, + 0x1eb6: 0xd781, 0x1eb7: 0xd7a1, 0x1eb8: 0xd7c1, 0x1eb9: 0xd7e1, 0x1eba: 0xd801, 0x1ebb: 0x8cd5, + 0x1ebc: 0xd821, 0x1ebd: 0x8cf5, 0x1ebe: 0xd841, 0x1ebf: 0xd861, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0xd881, 0x1ec1: 0xd8a1, 0x1ec2: 0xd8c1, 0x1ec3: 0xd8e1, 0x1ec4: 0xd901, 0x1ec5: 0xd921, + 0x1ec6: 0xd941, 0x1ec7: 0xd961, 0x1ec8: 0xd981, 0x1ec9: 0x8d15, 0x1eca: 0xd9a1, 0x1ecb: 0xd9c1, + 0x1ecc: 0xd9e1, 0x1ecd: 0xda01, 0x1ece: 0xda21, 0x1ecf: 0x8d35, 0x1ed0: 0xda41, 0x1ed1: 0x8d55, + 0x1ed2: 0x8d75, 0x1ed3: 0xda61, 0x1ed4: 0xda81, 0x1ed5: 0xda81, 0x1ed6: 0xdaa1, 0x1ed7: 0x8d95, + 0x1ed8: 0x8db5, 0x1ed9: 0xdac1, 0x1eda: 0xdae1, 0x1edb: 0xdb01, 0x1edc: 0xdb21, 0x1edd: 0xdb41, + 0x1ede: 0xdb61, 0x1edf: 0xdb81, 0x1ee0: 0xdba1, 0x1ee1: 0xdbc1, 0x1ee2: 0xdbe1, 0x1ee3: 0xdc01, + 0x1ee4: 0x8dd5, 0x1ee5: 0xdc21, 0x1ee6: 0xdc41, 0x1ee7: 0xdc61, 0x1ee8: 0xdc81, 0x1ee9: 0xdc61, + 0x1eea: 0xdca1, 0x1eeb: 0xdcc1, 0x1eec: 0xdce1, 0x1eed: 0xdd01, 0x1eee: 0xdd21, 0x1eef: 0xdd41, + 0x1ef0: 0xdd61, 0x1ef1: 0xdd81, 0x1ef2: 0xdda1, 0x1ef3: 0xddc1, 0x1ef4: 0xdde1, 0x1ef5: 0xde01, + 0x1ef6: 0xde21, 0x1ef7: 0xde41, 0x1ef8: 0x8df5, 0x1ef9: 0xde61, 0x1efa: 0xde81, 0x1efb: 0xdea1, + 0x1efc: 0xdec1, 0x1efd: 0xdee1, 0x1efe: 0x8e15, 0x1eff: 0xdf01, + // Block 0x7c, offset 0x1f00 + 0x1f00: 0xe601, 0x1f01: 0xe621, 0x1f02: 0xe641, 0x1f03: 0xe661, 0x1f04: 0xe681, 0x1f05: 0xe6a1, + 0x1f06: 0x8f35, 0x1f07: 0xe6c1, 0x1f08: 0xe6e1, 0x1f09: 0xe701, 0x1f0a: 0xe721, 0x1f0b: 0xe741, + 0x1f0c: 0xe761, 0x1f0d: 0x8f55, 0x1f0e: 0xe781, 0x1f0f: 0xe7a1, 0x1f10: 0x8f75, 0x1f11: 0x8f95, + 0x1f12: 0xe7c1, 0x1f13: 0xe7e1, 0x1f14: 0xe801, 0x1f15: 0xe821, 0x1f16: 0xe841, 0x1f17: 0xe861, + 0x1f18: 0xe881, 0x1f19: 0xe8a1, 0x1f1a: 0xe8c1, 0x1f1b: 0x8fb5, 0x1f1c: 0xe8e1, 0x1f1d: 0x8fd5, + 0x1f1e: 0xe901, 0x1f1f: 0x2040, 0x1f20: 0xe921, 0x1f21: 0xe941, 0x1f22: 0xe961, 0x1f23: 0x8ff5, + 0x1f24: 0xe981, 0x1f25: 0xe9a1, 0x1f26: 0x9015, 0x1f27: 0x9035, 0x1f28: 0xe9c1, 0x1f29: 0xe9e1, + 0x1f2a: 0xea01, 0x1f2b: 0xea21, 0x1f2c: 0xea41, 0x1f2d: 0xea41, 0x1f2e: 0xea61, 0x1f2f: 0xea81, + 0x1f30: 0xeaa1, 0x1f31: 0xeac1, 0x1f32: 0xeae1, 0x1f33: 0xeb01, 0x1f34: 0xeb21, 0x1f35: 0x9055, + 0x1f36: 0xeb41, 0x1f37: 0x9075, 0x1f38: 0xeb61, 0x1f39: 0x9095, 0x1f3a: 0xeb81, 0x1f3b: 0x90b5, + 0x1f3c: 0x90d5, 0x1f3d: 0x90f5, 0x1f3e: 0xeba1, 0x1f3f: 0xebc1, + // Block 0x7d, offset 0x1f40 + 0x1f40: 0xebe1, 0x1f41: 0x9115, 0x1f42: 0x9135, 0x1f43: 0x9155, 0x1f44: 0x9175, 0x1f45: 0xec01, + 0x1f46: 0xec21, 0x1f47: 0xec21, 0x1f48: 0xec41, 0x1f49: 0xec61, 0x1f4a: 0xec81, 0x1f4b: 0xeca1, + 0x1f4c: 0xecc1, 0x1f4d: 0x9195, 0x1f4e: 0xece1, 0x1f4f: 0xed01, 0x1f50: 0xed21, 0x1f51: 0xed41, + 0x1f52: 0x91b5, 0x1f53: 0xed61, 0x1f54: 0x91d5, 0x1f55: 0x91f5, 0x1f56: 0xed81, 0x1f57: 0xeda1, + 0x1f58: 0xedc1, 0x1f59: 0xede1, 0x1f5a: 0xee01, 0x1f5b: 0xee21, 0x1f5c: 0x9215, 0x1f5d: 0x9235, + 0x1f5e: 0x9255, 0x1f5f: 0x2040, 0x1f60: 0xee41, 0x1f61: 0x9275, 0x1f62: 0xee61, 0x1f63: 0xee81, + 0x1f64: 0xeea1, 0x1f65: 0x9295, 0x1f66: 0xeec1, 0x1f67: 0xeee1, 0x1f68: 0xef01, 0x1f69: 0xef21, + 0x1f6a: 0xef41, 0x1f6b: 0x92b5, 0x1f6c: 0xef61, 0x1f6d: 0xef81, 0x1f6e: 0xefa1, 0x1f6f: 0xefc1, + 0x1f70: 0xefe1, 0x1f71: 0xf001, 0x1f72: 0x92d5, 0x1f73: 0x92f5, 0x1f74: 0xf021, 0x1f75: 0x9315, + 0x1f76: 0xf041, 0x1f77: 0x9335, 0x1f78: 0xf061, 0x1f79: 0xf081, 0x1f7a: 0xf0a1, 0x1f7b: 0x9355, + 0x1f7c: 0x9375, 0x1f7d: 0xf0c1, 0x1f7e: 0x9395, 0x1f7f: 0xf0e1, + // Block 0x7e, offset 0x1f80 + 0x1f80: 0xf721, 0x1f81: 0xf741, 0x1f82: 0xf761, 0x1f83: 0xf781, 0x1f84: 0xf7a1, 0x1f85: 0x9555, + 0x1f86: 0xf7c1, 0x1f87: 0xf7e1, 0x1f88: 0xf801, 0x1f89: 0xf821, 0x1f8a: 0xf841, 0x1f8b: 0x9575, + 0x1f8c: 0x9595, 0x1f8d: 0xf861, 0x1f8e: 0xf881, 0x1f8f: 0xf8a1, 0x1f90: 0xf8c1, 0x1f91: 0xf8e1, + 0x1f92: 0xf901, 0x1f93: 0x95b5, 0x1f94: 0xf921, 0x1f95: 0xf941, 0x1f96: 0xf961, 0x1f97: 0xf981, + 0x1f98: 0x95d5, 0x1f99: 0x95f5, 0x1f9a: 0xf9a1, 0x1f9b: 0xf9c1, 0x1f9c: 0xf9e1, 0x1f9d: 0x9615, + 0x1f9e: 0xfa01, 0x1f9f: 0xfa21, 0x1fa0: 0x684d, 0x1fa1: 0x9635, 0x1fa2: 0xfa41, 0x1fa3: 0xfa61, + 0x1fa4: 0xfa81, 0x1fa5: 0x9655, 0x1fa6: 0xfaa1, 0x1fa7: 0xfac1, 0x1fa8: 0xfae1, 0x1fa9: 0xfb01, + 0x1faa: 0xfb21, 0x1fab: 0xfb41, 0x1fac: 0xfb61, 0x1fad: 0x9675, 0x1fae: 0xfb81, 0x1faf: 0xfba1, + 0x1fb0: 0xfbc1, 0x1fb1: 0x9695, 0x1fb2: 0xfbe1, 0x1fb3: 0xfc01, 0x1fb4: 0xfc21, 0x1fb5: 0xfc41, + 0x1fb6: 0x7b6d, 0x1fb7: 0x96b5, 0x1fb8: 0xfc61, 0x1fb9: 0xfc81, 0x1fba: 0xfca1, 0x1fbb: 0x96d5, + 0x1fbc: 0xfcc1, 0x1fbd: 0x96f5, 0x1fbe: 0xfce1, 0x1fbf: 0xfce1, + // Block 0x7f, offset 0x1fc0 + 0x1fc0: 0xfd01, 0x1fc1: 0x9715, 0x1fc2: 0xfd21, 0x1fc3: 0xfd41, 0x1fc4: 0xfd61, 0x1fc5: 0xfd81, + 0x1fc6: 0xfda1, 0x1fc7: 0xfdc1, 0x1fc8: 0xfde1, 0x1fc9: 0x9735, 0x1fca: 0xfe01, 0x1fcb: 0xfe21, + 0x1fcc: 0xfe41, 0x1fcd: 0xfe61, 0x1fce: 0xfe81, 0x1fcf: 0xfea1, 0x1fd0: 0x9755, 0x1fd1: 0xfec1, + 0x1fd2: 0x9775, 0x1fd3: 0x9795, 0x1fd4: 0x97b5, 0x1fd5: 0xfee1, 0x1fd6: 0xff01, 0x1fd7: 0xff21, + 0x1fd8: 0xff41, 0x1fd9: 0xff61, 0x1fda: 0xff81, 0x1fdb: 0xffa1, 0x1fdc: 0xffc1, 0x1fdd: 0x97d5, + 0x1fde: 0x0040, 0x1fdf: 0x0040, 0x1fe0: 0x0040, 0x1fe1: 0x0040, 0x1fe2: 0x0040, 0x1fe3: 0x0040, + 0x1fe4: 0x0040, 0x1fe5: 0x0040, 0x1fe6: 0x0040, 0x1fe7: 0x0040, 0x1fe8: 0x0040, 0x1fe9: 0x0040, + 0x1fea: 0x0040, 0x1feb: 0x0040, 0x1fec: 0x0040, 0x1fed: 0x0040, 0x1fee: 0x0040, 0x1fef: 0x0040, + 0x1ff0: 0x0040, 0x1ff1: 0x0040, 0x1ff2: 0x0040, 0x1ff3: 0x0040, 0x1ff4: 0x0040, 0x1ff5: 0x0040, + 0x1ff6: 0x0040, 0x1ff7: 0x0040, 0x1ff8: 0x0040, 0x1ff9: 0x0040, 0x1ffa: 0x0040, 0x1ffb: 0x0040, + 0x1ffc: 0x0040, 0x1ffd: 0x0040, 0x1ffe: 0x0040, 0x1fff: 0x0040, +} + +// idnaIndex: 37 blocks, 2368 entries, 4736 bytes +// Block 0 is the zero block. +var idnaIndex = [2368]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x7e, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05, + 0xc8: 0x06, 0xc9: 0x7f, 0xca: 0x80, 0xcb: 0x07, 0xcc: 0x81, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a, + 0xd0: 0x82, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x83, 0xd6: 0x84, 0xd7: 0x85, + 0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x86, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x87, 0xde: 0x88, 0xdf: 0x89, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07, + 0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c, + 0xf0: 0x1e, 0xf1: 0x1f, 0xf2: 0x1f, 0xf3: 0x21, 0xf4: 0x22, + // Block 0x4, offset 0x100 + 0x120: 0x8a, 0x121: 0x13, 0x122: 0x8b, 0x123: 0x8c, 0x124: 0x8d, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16, + 0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8e, + 0x130: 0x8f, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x90, 0x135: 0x21, 0x136: 0x91, 0x137: 0x92, + 0x138: 0x93, 0x139: 0x94, 0x13a: 0x22, 0x13b: 0x95, 0x13c: 0x96, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x97, + // Block 0x5, offset 0x140 + 0x140: 0x98, 0x141: 0x99, 0x142: 0x9a, 0x143: 0x9b, 0x144: 0x9c, 0x145: 0x9d, 0x146: 0x9e, 0x147: 0x9f, + 0x148: 0xa0, 0x149: 0xa1, 0x14a: 0xa2, 0x14b: 0xa3, 0x14c: 0xa4, 0x14d: 0xa5, 0x14e: 0xa6, 0x14f: 0xa7, + 0x150: 0xa8, 0x151: 0xa0, 0x152: 0xa0, 0x153: 0xa0, 0x154: 0xa0, 0x155: 0xa0, 0x156: 0xa0, 0x157: 0xa0, + 0x158: 0xa0, 0x159: 0xa9, 0x15a: 0xaa, 0x15b: 0xab, 0x15c: 0xac, 0x15d: 0xad, 0x15e: 0xae, 0x15f: 0xaf, + 0x160: 0xb0, 0x161: 0xb1, 0x162: 0xb2, 0x163: 0xb3, 0x164: 0xb4, 0x165: 0xb5, 0x166: 0xb6, 0x167: 0xb7, + 0x168: 0xb8, 0x169: 0xb9, 0x16a: 0xba, 0x16b: 0xbb, 0x16c: 0xbc, 0x16d: 0xbd, 0x16e: 0xbe, 0x16f: 0xbf, + 0x170: 0xc0, 0x171: 0xc1, 0x172: 0xc2, 0x173: 0xc3, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc4, + 0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc5, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c, + // Block 0x6, offset 0x180 + 0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc6, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc7, 0x187: 0x9c, + 0x188: 0xc8, 0x189: 0xc9, 0x18a: 0x9c, 0x18b: 0x9c, 0x18c: 0xca, 0x18d: 0x9c, 0x18e: 0x9c, 0x18f: 0x9c, + 0x190: 0xcb, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9c, 0x195: 0x9c, 0x196: 0x9c, 0x197: 0x9c, + 0x198: 0x9c, 0x199: 0x9c, 0x19a: 0x9c, 0x19b: 0x9c, 0x19c: 0x9c, 0x19d: 0x9c, 0x19e: 0x9c, 0x19f: 0x9c, + 0x1a0: 0x9c, 0x1a1: 0x9c, 0x1a2: 0x9c, 0x1a3: 0x9c, 0x1a4: 0x9c, 0x1a5: 0x9c, 0x1a6: 0x9c, 0x1a7: 0x9c, + 0x1a8: 0xcc, 0x1a9: 0xcd, 0x1aa: 0x9c, 0x1ab: 0xce, 0x1ac: 0x9c, 0x1ad: 0xcf, 0x1ae: 0xd0, 0x1af: 0x9c, + 0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5, + 0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1, + 0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41, + 0x1d0: 0xa0, 0x1d1: 0xa0, 0x1d2: 0xa0, 0x1d3: 0xa0, 0x1d4: 0xa0, 0x1d5: 0xa0, 0x1d6: 0xa0, 0x1d7: 0xa0, + 0x1d8: 0xa0, 0x1d9: 0xa0, 0x1da: 0xa0, 0x1db: 0xa0, 0x1dc: 0xa0, 0x1dd: 0xa0, 0x1de: 0xa0, 0x1df: 0xa0, + 0x1e0: 0xa0, 0x1e1: 0xa0, 0x1e2: 0xa0, 0x1e3: 0xa0, 0x1e4: 0xa0, 0x1e5: 0xa0, 0x1e6: 0xa0, 0x1e7: 0xa0, + 0x1e8: 0xa0, 0x1e9: 0xa0, 0x1ea: 0xa0, 0x1eb: 0xa0, 0x1ec: 0xa0, 0x1ed: 0xa0, 0x1ee: 0xa0, 0x1ef: 0xa0, + 0x1f0: 0xa0, 0x1f1: 0xa0, 0x1f2: 0xa0, 0x1f3: 0xa0, 0x1f4: 0xa0, 0x1f5: 0xa0, 0x1f6: 0xa0, 0x1f7: 0xa0, + 0x1f8: 0xa0, 0x1f9: 0xa0, 0x1fa: 0xa0, 0x1fb: 0xa0, 0x1fc: 0xa0, 0x1fd: 0xa0, 0x1fe: 0xa0, 0x1ff: 0xa0, + // Block 0x8, offset 0x200 + 0x200: 0xa0, 0x201: 0xa0, 0x202: 0xa0, 0x203: 0xa0, 0x204: 0xa0, 0x205: 0xa0, 0x206: 0xa0, 0x207: 0xa0, + 0x208: 0xa0, 0x209: 0xa0, 0x20a: 0xa0, 0x20b: 0xa0, 0x20c: 0xa0, 0x20d: 0xa0, 0x20e: 0xa0, 0x20f: 0xa0, + 0x210: 0xa0, 0x211: 0xa0, 0x212: 0xa0, 0x213: 0xa0, 0x214: 0xa0, 0x215: 0xa0, 0x216: 0xa0, 0x217: 0xa0, + 0x218: 0xa0, 0x219: 0xa0, 0x21a: 0xa0, 0x21b: 0xa0, 0x21c: 0xa0, 0x21d: 0xa0, 0x21e: 0xa0, 0x21f: 0xa0, + 0x220: 0xa0, 0x221: 0xa0, 0x222: 0xa0, 0x223: 0xa0, 0x224: 0xa0, 0x225: 0xa0, 0x226: 0xa0, 0x227: 0xa0, + 0x228: 0xa0, 0x229: 0xa0, 0x22a: 0xa0, 0x22b: 0xa0, 0x22c: 0xa0, 0x22d: 0xa0, 0x22e: 0xa0, 0x22f: 0xa0, + 0x230: 0xa0, 0x231: 0xa0, 0x232: 0xa0, 0x233: 0xa0, 0x234: 0xa0, 0x235: 0xa0, 0x236: 0xa0, 0x237: 0x9c, + 0x238: 0xa0, 0x239: 0xa0, 0x23a: 0xa0, 0x23b: 0xa0, 0x23c: 0xa0, 0x23d: 0xa0, 0x23e: 0xa0, 0x23f: 0xa0, + // Block 0x9, offset 0x240 + 0x240: 0xa0, 0x241: 0xa0, 0x242: 0xa0, 0x243: 0xa0, 0x244: 0xa0, 0x245: 0xa0, 0x246: 0xa0, 0x247: 0xa0, + 0x248: 0xa0, 0x249: 0xa0, 0x24a: 0xa0, 0x24b: 0xa0, 0x24c: 0xa0, 0x24d: 0xa0, 0x24e: 0xa0, 0x24f: 0xa0, + 0x250: 0xa0, 0x251: 0xa0, 0x252: 0xa0, 0x253: 0xa0, 0x254: 0xa0, 0x255: 0xa0, 0x256: 0xa0, 0x257: 0xa0, + 0x258: 0xa0, 0x259: 0xa0, 0x25a: 0xa0, 0x25b: 0xa0, 0x25c: 0xa0, 0x25d: 0xa0, 0x25e: 0xa0, 0x25f: 0xa0, + 0x260: 0xa0, 0x261: 0xa0, 0x262: 0xa0, 0x263: 0xa0, 0x264: 0xa0, 0x265: 0xa0, 0x266: 0xa0, 0x267: 0xa0, + 0x268: 0xa0, 0x269: 0xa0, 0x26a: 0xa0, 0x26b: 0xa0, 0x26c: 0xa0, 0x26d: 0xa0, 0x26e: 0xa0, 0x26f: 0xa0, + 0x270: 0xa0, 0x271: 0xa0, 0x272: 0xa0, 0x273: 0xa0, 0x274: 0xa0, 0x275: 0xa0, 0x276: 0xa0, 0x277: 0xa0, + 0x278: 0xa0, 0x279: 0xa0, 0x27a: 0xa0, 0x27b: 0xa0, 0x27c: 0xa0, 0x27d: 0xa0, 0x27e: 0xa0, 0x27f: 0xa0, + // Block 0xa, offset 0x280 + 0x280: 0xa0, 0x281: 0xa0, 0x282: 0xa0, 0x283: 0xa0, 0x284: 0xa0, 0x285: 0xa0, 0x286: 0xa0, 0x287: 0xa0, + 0x288: 0xa0, 0x289: 0xa0, 0x28a: 0xa0, 0x28b: 0xa0, 0x28c: 0xa0, 0x28d: 0xa0, 0x28e: 0xa0, 0x28f: 0xa0, + 0x290: 0xa0, 0x291: 0xa0, 0x292: 0xa0, 0x293: 0xa0, 0x294: 0xa0, 0x295: 0xa0, 0x296: 0xa0, 0x297: 0xa0, + 0x298: 0xa0, 0x299: 0xa0, 0x29a: 0xa0, 0x29b: 0xa0, 0x29c: 0xa0, 0x29d: 0xa0, 0x29e: 0xa0, 0x29f: 0xa0, + 0x2a0: 0xa0, 0x2a1: 0xa0, 0x2a2: 0xa0, 0x2a3: 0xa0, 0x2a4: 0xa0, 0x2a5: 0xa0, 0x2a6: 0xa0, 0x2a7: 0xa0, + 0x2a8: 0xa0, 0x2a9: 0xa0, 0x2aa: 0xa0, 0x2ab: 0xa0, 0x2ac: 0xa0, 0x2ad: 0xa0, 0x2ae: 0xa0, 0x2af: 0xa0, + 0x2b0: 0xa0, 0x2b1: 0xa0, 0x2b2: 0xa0, 0x2b3: 0xa0, 0x2b4: 0xa0, 0x2b5: 0xa0, 0x2b6: 0xa0, 0x2b7: 0xa0, + 0x2b8: 0xa0, 0x2b9: 0xa0, 0x2ba: 0xa0, 0x2bb: 0xa0, 0x2bc: 0xa0, 0x2bd: 0xa0, 0x2be: 0xa0, 0x2bf: 0xe3, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xa0, 0x2c1: 0xa0, 0x2c2: 0xa0, 0x2c3: 0xa0, 0x2c4: 0xa0, 0x2c5: 0xa0, 0x2c6: 0xa0, 0x2c7: 0xa0, + 0x2c8: 0xa0, 0x2c9: 0xa0, 0x2ca: 0xa0, 0x2cb: 0xa0, 0x2cc: 0xa0, 0x2cd: 0xa0, 0x2ce: 0xa0, 0x2cf: 0xa0, + 0x2d0: 0xa0, 0x2d1: 0xa0, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0xa0, 0x2d5: 0xa0, 0x2d6: 0xa0, 0x2d7: 0xa0, + 0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8, + 0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0, + 0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8, + 0x2f0: 0xa0, 0x2f1: 0xa0, 0x2f2: 0xa0, 0x2f3: 0xa0, 0x2f4: 0xa0, 0x2f5: 0xa0, 0x2f6: 0xa0, 0x2f7: 0xa0, + 0x2f8: 0xa0, 0x2f9: 0xa0, 0x2fa: 0xa0, 0x2fb: 0xa0, 0x2fc: 0xa0, 0x2fd: 0xa0, 0x2fe: 0xa0, 0x2ff: 0xa0, + // Block 0xc, offset 0x300 + 0x300: 0xa0, 0x301: 0xa0, 0x302: 0xa0, 0x303: 0xa0, 0x304: 0xa0, 0x305: 0xa0, 0x306: 0xa0, 0x307: 0xa0, + 0x308: 0xa0, 0x309: 0xa0, 0x30a: 0xa0, 0x30b: 0xa0, 0x30c: 0xa0, 0x30d: 0xa0, 0x30e: 0xa0, 0x30f: 0xa0, + 0x310: 0xa0, 0x311: 0xa0, 0x312: 0xa0, 0x313: 0xa0, 0x314: 0xa0, 0x315: 0xa0, 0x316: 0xa0, 0x317: 0xa0, + 0x318: 0xa0, 0x319: 0xa0, 0x31a: 0xa0, 0x31b: 0xa0, 0x31c: 0xa0, 0x31d: 0xa0, 0x31e: 0xf9, 0x31f: 0xfa, + // Block 0xd, offset 0x340 + 0x340: 0xfb, 0x341: 0xfb, 0x342: 0xfb, 0x343: 0xfb, 0x344: 0xfb, 0x345: 0xfb, 0x346: 0xfb, 0x347: 0xfb, + 0x348: 0xfb, 0x349: 0xfb, 0x34a: 0xfb, 0x34b: 0xfb, 0x34c: 0xfb, 0x34d: 0xfb, 0x34e: 0xfb, 0x34f: 0xfb, + 0x350: 0xfb, 0x351: 0xfb, 0x352: 0xfb, 0x353: 0xfb, 0x354: 0xfb, 0x355: 0xfb, 0x356: 0xfb, 0x357: 0xfb, + 0x358: 0xfb, 0x359: 0xfb, 0x35a: 0xfb, 0x35b: 0xfb, 0x35c: 0xfb, 0x35d: 0xfb, 0x35e: 0xfb, 0x35f: 0xfb, + 0x360: 0xfb, 0x361: 0xfb, 0x362: 0xfb, 0x363: 0xfb, 0x364: 0xfb, 0x365: 0xfb, 0x366: 0xfb, 0x367: 0xfb, + 0x368: 0xfb, 0x369: 0xfb, 0x36a: 0xfb, 0x36b: 0xfb, 0x36c: 0xfb, 0x36d: 0xfb, 0x36e: 0xfb, 0x36f: 0xfb, + 0x370: 0xfb, 0x371: 0xfb, 0x372: 0xfb, 0x373: 0xfb, 0x374: 0xfb, 0x375: 0xfb, 0x376: 0xfb, 0x377: 0xfb, + 0x378: 0xfb, 0x379: 0xfb, 0x37a: 0xfb, 0x37b: 0xfb, 0x37c: 0xfb, 0x37d: 0xfb, 0x37e: 0xfb, 0x37f: 0xfb, + // Block 0xe, offset 0x380 + 0x380: 0xfb, 0x381: 0xfb, 0x382: 0xfb, 0x383: 0xfb, 0x384: 0xfb, 0x385: 0xfb, 0x386: 0xfb, 0x387: 0xfb, + 0x388: 0xfb, 0x389: 0xfb, 0x38a: 0xfb, 0x38b: 0xfb, 0x38c: 0xfb, 0x38d: 0xfb, 0x38e: 0xfb, 0x38f: 0xfb, + 0x390: 0xfb, 0x391: 0xfb, 0x392: 0xfb, 0x393: 0xfb, 0x394: 0xfb, 0x395: 0xfb, 0x396: 0xfb, 0x397: 0xfb, + 0x398: 0xfb, 0x399: 0xfb, 0x39a: 0xfb, 0x39b: 0xfb, 0x39c: 0xfb, 0x39d: 0xfb, 0x39e: 0xfb, 0x39f: 0xfb, + 0x3a0: 0xfb, 0x3a1: 0xfb, 0x3a2: 0xfb, 0x3a3: 0xfb, 0x3a4: 0xfc, 0x3a5: 0xfd, 0x3a6: 0xfe, 0x3a7: 0xff, + 0x3a8: 0x47, 0x3a9: 0x100, 0x3aa: 0x101, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c, + 0x3b0: 0x102, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x103, 0x3b7: 0x52, + 0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x104, 0x3c1: 0x105, 0x3c2: 0xa0, 0x3c3: 0x106, 0x3c4: 0x107, 0x3c5: 0x9c, 0x3c6: 0x108, 0x3c7: 0x109, + 0x3c8: 0xfb, 0x3c9: 0xfb, 0x3ca: 0x10a, 0x3cb: 0x10b, 0x3cc: 0x10c, 0x3cd: 0x10d, 0x3ce: 0x10e, 0x3cf: 0x10f, + 0x3d0: 0x110, 0x3d1: 0xa0, 0x3d2: 0x111, 0x3d3: 0x112, 0x3d4: 0x113, 0x3d5: 0x114, 0x3d6: 0xfb, 0x3d7: 0xfb, + 0x3d8: 0xa0, 0x3d9: 0xa0, 0x3da: 0xa0, 0x3db: 0xa0, 0x3dc: 0x115, 0x3dd: 0x116, 0x3de: 0xfb, 0x3df: 0xfb, + 0x3e0: 0x117, 0x3e1: 0x118, 0x3e2: 0x119, 0x3e3: 0x11a, 0x3e4: 0x11b, 0x3e5: 0xfb, 0x3e6: 0x11c, 0x3e7: 0x11d, + 0x3e8: 0x11e, 0x3e9: 0x11f, 0x3ea: 0x120, 0x3eb: 0x5b, 0x3ec: 0x121, 0x3ed: 0x122, 0x3ee: 0x5c, 0x3ef: 0xfb, + 0x3f0: 0x123, 0x3f1: 0x124, 0x3f2: 0x125, 0x3f3: 0x126, 0x3f4: 0x127, 0x3f5: 0xfb, 0x3f6: 0xfb, 0x3f7: 0xfb, + 0x3f8: 0xfb, 0x3f9: 0x128, 0x3fa: 0x129, 0x3fb: 0xfb, 0x3fc: 0x12a, 0x3fd: 0x12b, 0x3fe: 0x12c, 0x3ff: 0x12d, + // Block 0x10, offset 0x400 + 0x400: 0x12e, 0x401: 0x12f, 0x402: 0x130, 0x403: 0x131, 0x404: 0x132, 0x405: 0x133, 0x406: 0x134, 0x407: 0x135, + 0x408: 0x136, 0x409: 0xfb, 0x40a: 0x137, 0x40b: 0x138, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xfb, 0x40f: 0xfb, + 0x410: 0x139, 0x411: 0x13a, 0x412: 0x13b, 0x413: 0x13c, 0x414: 0xfb, 0x415: 0xfb, 0x416: 0x13d, 0x417: 0x13e, + 0x418: 0x13f, 0x419: 0x140, 0x41a: 0x141, 0x41b: 0x142, 0x41c: 0x143, 0x41d: 0xfb, 0x41e: 0xfb, 0x41f: 0xfb, + 0x420: 0x144, 0x421: 0xfb, 0x422: 0x145, 0x423: 0x146, 0x424: 0x5f, 0x425: 0x147, 0x426: 0x148, 0x427: 0x149, + 0x428: 0x14a, 0x429: 0x14b, 0x42a: 0x14c, 0x42b: 0x14d, 0x42c: 0xfb, 0x42d: 0xfb, 0x42e: 0xfb, 0x42f: 0xfb, + 0x430: 0x14e, 0x431: 0x14f, 0x432: 0x150, 0x433: 0xfb, 0x434: 0x151, 0x435: 0x152, 0x436: 0x153, 0x437: 0xfb, + 0x438: 0xfb, 0x439: 0xfb, 0x43a: 0xfb, 0x43b: 0x154, 0x43c: 0xfb, 0x43d: 0xfb, 0x43e: 0x155, 0x43f: 0x156, + // Block 0x11, offset 0x440 + 0x440: 0xa0, 0x441: 0xa0, 0x442: 0xa0, 0x443: 0xa0, 0x444: 0xa0, 0x445: 0xa0, 0x446: 0xa0, 0x447: 0xa0, + 0x448: 0xa0, 0x449: 0xa0, 0x44a: 0xa0, 0x44b: 0xa0, 0x44c: 0xa0, 0x44d: 0xa0, 0x44e: 0x157, 0x44f: 0xfb, + 0x450: 0x9c, 0x451: 0x158, 0x452: 0xa0, 0x453: 0xa0, 0x454: 0xa0, 0x455: 0x159, 0x456: 0xfb, 0x457: 0xfb, + 0x458: 0xfb, 0x459: 0xfb, 0x45a: 0xfb, 0x45b: 0xfb, 0x45c: 0xfb, 0x45d: 0xfb, 0x45e: 0xfb, 0x45f: 0xfb, + 0x460: 0xfb, 0x461: 0xfb, 0x462: 0xfb, 0x463: 0xfb, 0x464: 0xfb, 0x465: 0xfb, 0x466: 0xfb, 0x467: 0xfb, + 0x468: 0xfb, 0x469: 0xfb, 0x46a: 0xfb, 0x46b: 0xfb, 0x46c: 0xfb, 0x46d: 0xfb, 0x46e: 0xfb, 0x46f: 0xfb, + 0x470: 0xfb, 0x471: 0xfb, 0x472: 0xfb, 0x473: 0xfb, 0x474: 0xfb, 0x475: 0xfb, 0x476: 0xfb, 0x477: 0xfb, + 0x478: 0xfb, 0x479: 0xfb, 0x47a: 0xfb, 0x47b: 0xfb, 0x47c: 0xfb, 0x47d: 0xfb, 0x47e: 0xfb, 0x47f: 0xfb, + // Block 0x12, offset 0x480 + 0x480: 0xa0, 0x481: 0xa0, 0x482: 0xa0, 0x483: 0xa0, 0x484: 0xa0, 0x485: 0xa0, 0x486: 0xa0, 0x487: 0xa0, + 0x488: 0xa0, 0x489: 0xa0, 0x48a: 0xa0, 0x48b: 0xa0, 0x48c: 0xa0, 0x48d: 0xa0, 0x48e: 0xa0, 0x48f: 0xa0, + 0x490: 0x15a, 0x491: 0xfb, 0x492: 0xfb, 0x493: 0xfb, 0x494: 0xfb, 0x495: 0xfb, 0x496: 0xfb, 0x497: 0xfb, + 0x498: 0xfb, 0x499: 0xfb, 0x49a: 0xfb, 0x49b: 0xfb, 0x49c: 0xfb, 0x49d: 0xfb, 0x49e: 0xfb, 0x49f: 0xfb, + 0x4a0: 0xfb, 0x4a1: 0xfb, 0x4a2: 0xfb, 0x4a3: 0xfb, 0x4a4: 0xfb, 0x4a5: 0xfb, 0x4a6: 0xfb, 0x4a7: 0xfb, + 0x4a8: 0xfb, 0x4a9: 0xfb, 0x4aa: 0xfb, 0x4ab: 0xfb, 0x4ac: 0xfb, 0x4ad: 0xfb, 0x4ae: 0xfb, 0x4af: 0xfb, + 0x4b0: 0xfb, 0x4b1: 0xfb, 0x4b2: 0xfb, 0x4b3: 0xfb, 0x4b4: 0xfb, 0x4b5: 0xfb, 0x4b6: 0xfb, 0x4b7: 0xfb, + 0x4b8: 0xfb, 0x4b9: 0xfb, 0x4ba: 0xfb, 0x4bb: 0xfb, 0x4bc: 0xfb, 0x4bd: 0xfb, 0x4be: 0xfb, 0x4bf: 0xfb, + // Block 0x13, offset 0x4c0 + 0x4c0: 0xfb, 0x4c1: 0xfb, 0x4c2: 0xfb, 0x4c3: 0xfb, 0x4c4: 0xfb, 0x4c5: 0xfb, 0x4c6: 0xfb, 0x4c7: 0xfb, + 0x4c8: 0xfb, 0x4c9: 0xfb, 0x4ca: 0xfb, 0x4cb: 0xfb, 0x4cc: 0xfb, 0x4cd: 0xfb, 0x4ce: 0xfb, 0x4cf: 0xfb, + 0x4d0: 0xa0, 0x4d1: 0xa0, 0x4d2: 0xa0, 0x4d3: 0xa0, 0x4d4: 0xa0, 0x4d5: 0xa0, 0x4d6: 0xa0, 0x4d7: 0xa0, + 0x4d8: 0xa0, 0x4d9: 0x15b, 0x4da: 0xfb, 0x4db: 0xfb, 0x4dc: 0xfb, 0x4dd: 0xfb, 0x4de: 0xfb, 0x4df: 0xfb, + 0x4e0: 0xfb, 0x4e1: 0xfb, 0x4e2: 0xfb, 0x4e3: 0xfb, 0x4e4: 0xfb, 0x4e5: 0xfb, 0x4e6: 0xfb, 0x4e7: 0xfb, + 0x4e8: 0xfb, 0x4e9: 0xfb, 0x4ea: 0xfb, 0x4eb: 0xfb, 0x4ec: 0xfb, 0x4ed: 0xfb, 0x4ee: 0xfb, 0x4ef: 0xfb, + 0x4f0: 0xfb, 0x4f1: 0xfb, 0x4f2: 0xfb, 0x4f3: 0xfb, 0x4f4: 0xfb, 0x4f5: 0xfb, 0x4f6: 0xfb, 0x4f7: 0xfb, + 0x4f8: 0xfb, 0x4f9: 0xfb, 0x4fa: 0xfb, 0x4fb: 0xfb, 0x4fc: 0xfb, 0x4fd: 0xfb, 0x4fe: 0xfb, 0x4ff: 0xfb, + // Block 0x14, offset 0x500 + 0x500: 0xfb, 0x501: 0xfb, 0x502: 0xfb, 0x503: 0xfb, 0x504: 0xfb, 0x505: 0xfb, 0x506: 0xfb, 0x507: 0xfb, + 0x508: 0xfb, 0x509: 0xfb, 0x50a: 0xfb, 0x50b: 0xfb, 0x50c: 0xfb, 0x50d: 0xfb, 0x50e: 0xfb, 0x50f: 0xfb, + 0x510: 0xfb, 0x511: 0xfb, 0x512: 0xfb, 0x513: 0xfb, 0x514: 0xfb, 0x515: 0xfb, 0x516: 0xfb, 0x517: 0xfb, + 0x518: 0xfb, 0x519: 0xfb, 0x51a: 0xfb, 0x51b: 0xfb, 0x51c: 0xfb, 0x51d: 0xfb, 0x51e: 0xfb, 0x51f: 0xfb, + 0x520: 0xa0, 0x521: 0xa0, 0x522: 0xa0, 0x523: 0xa0, 0x524: 0xa0, 0x525: 0xa0, 0x526: 0xa0, 0x527: 0xa0, + 0x528: 0x14d, 0x529: 0x15c, 0x52a: 0xfb, 0x52b: 0x15d, 0x52c: 0x15e, 0x52d: 0x15f, 0x52e: 0x160, 0x52f: 0xfb, + 0x530: 0xfb, 0x531: 0xfb, 0x532: 0xfb, 0x533: 0xfb, 0x534: 0xfb, 0x535: 0xfb, 0x536: 0xfb, 0x537: 0xfb, + 0x538: 0xfb, 0x539: 0x161, 0x53a: 0x162, 0x53b: 0xfb, 0x53c: 0xa0, 0x53d: 0x163, 0x53e: 0x164, 0x53f: 0x165, + // Block 0x15, offset 0x540 + 0x540: 0xa0, 0x541: 0xa0, 0x542: 0xa0, 0x543: 0xa0, 0x544: 0xa0, 0x545: 0xa0, 0x546: 0xa0, 0x547: 0xa0, + 0x548: 0xa0, 0x549: 0xa0, 0x54a: 0xa0, 0x54b: 0xa0, 0x54c: 0xa0, 0x54d: 0xa0, 0x54e: 0xa0, 0x54f: 0xa0, + 0x550: 0xa0, 0x551: 0xa0, 0x552: 0xa0, 0x553: 0xa0, 0x554: 0xa0, 0x555: 0xa0, 0x556: 0xa0, 0x557: 0xa0, + 0x558: 0xa0, 0x559: 0xa0, 0x55a: 0xa0, 0x55b: 0xa0, 0x55c: 0xa0, 0x55d: 0xa0, 0x55e: 0xa0, 0x55f: 0x166, + 0x560: 0xa0, 0x561: 0xa0, 0x562: 0xa0, 0x563: 0xa0, 0x564: 0xa0, 0x565: 0xa0, 0x566: 0xa0, 0x567: 0xa0, + 0x568: 0xa0, 0x569: 0xa0, 0x56a: 0xa0, 0x56b: 0xa0, 0x56c: 0xa0, 0x56d: 0xa0, 0x56e: 0xa0, 0x56f: 0xa0, + 0x570: 0xa0, 0x571: 0xa0, 0x572: 0xa0, 0x573: 0x167, 0x574: 0x168, 0x575: 0xfb, 0x576: 0xfb, 0x577: 0xfb, + 0x578: 0xfb, 0x579: 0xfb, 0x57a: 0xfb, 0x57b: 0xfb, 0x57c: 0xfb, 0x57d: 0xfb, 0x57e: 0xfb, 0x57f: 0xfb, + // Block 0x16, offset 0x580 + 0x580: 0xa0, 0x581: 0xa0, 0x582: 0xa0, 0x583: 0xa0, 0x584: 0x169, 0x585: 0x16a, 0x586: 0xa0, 0x587: 0xa0, + 0x588: 0xa0, 0x589: 0xa0, 0x58a: 0xa0, 0x58b: 0x16b, 0x58c: 0xfb, 0x58d: 0xfb, 0x58e: 0xfb, 0x58f: 0xfb, + 0x590: 0xfb, 0x591: 0xfb, 0x592: 0xfb, 0x593: 0xfb, 0x594: 0xfb, 0x595: 0xfb, 0x596: 0xfb, 0x597: 0xfb, + 0x598: 0xfb, 0x599: 0xfb, 0x59a: 0xfb, 0x59b: 0xfb, 0x59c: 0xfb, 0x59d: 0xfb, 0x59e: 0xfb, 0x59f: 0xfb, + 0x5a0: 0xfb, 0x5a1: 0xfb, 0x5a2: 0xfb, 0x5a3: 0xfb, 0x5a4: 0xfb, 0x5a5: 0xfb, 0x5a6: 0xfb, 0x5a7: 0xfb, + 0x5a8: 0xfb, 0x5a9: 0xfb, 0x5aa: 0xfb, 0x5ab: 0xfb, 0x5ac: 0xfb, 0x5ad: 0xfb, 0x5ae: 0xfb, 0x5af: 0xfb, + 0x5b0: 0xa0, 0x5b1: 0x16c, 0x5b2: 0x16d, 0x5b3: 0xfb, 0x5b4: 0xfb, 0x5b5: 0xfb, 0x5b6: 0xfb, 0x5b7: 0xfb, + 0x5b8: 0xfb, 0x5b9: 0xfb, 0x5ba: 0xfb, 0x5bb: 0xfb, 0x5bc: 0xfb, 0x5bd: 0xfb, 0x5be: 0xfb, 0x5bf: 0xfb, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x9c, 0x5c1: 0x9c, 0x5c2: 0x9c, 0x5c3: 0x16e, 0x5c4: 0x16f, 0x5c5: 0x170, 0x5c6: 0x171, 0x5c7: 0x172, + 0x5c8: 0x9c, 0x5c9: 0x173, 0x5ca: 0xfb, 0x5cb: 0x174, 0x5cc: 0x9c, 0x5cd: 0x175, 0x5ce: 0xfb, 0x5cf: 0xfb, + 0x5d0: 0x60, 0x5d1: 0x61, 0x5d2: 0x62, 0x5d3: 0x63, 0x5d4: 0x64, 0x5d5: 0x65, 0x5d6: 0x66, 0x5d7: 0x67, + 0x5d8: 0x68, 0x5d9: 0x69, 0x5da: 0x6a, 0x5db: 0x6b, 0x5dc: 0x6c, 0x5dd: 0x6d, 0x5de: 0x6e, 0x5df: 0x6f, + 0x5e0: 0x9c, 0x5e1: 0x9c, 0x5e2: 0x9c, 0x5e3: 0x9c, 0x5e4: 0x9c, 0x5e5: 0x9c, 0x5e6: 0x9c, 0x5e7: 0x9c, + 0x5e8: 0x176, 0x5e9: 0x177, 0x5ea: 0x178, 0x5eb: 0xfb, 0x5ec: 0xfb, 0x5ed: 0xfb, 0x5ee: 0xfb, 0x5ef: 0xfb, + 0x5f0: 0xfb, 0x5f1: 0xfb, 0x5f2: 0xfb, 0x5f3: 0xfb, 0x5f4: 0xfb, 0x5f5: 0xfb, 0x5f6: 0xfb, 0x5f7: 0xfb, + 0x5f8: 0xfb, 0x5f9: 0xfb, 0x5fa: 0xfb, 0x5fb: 0xfb, 0x5fc: 0xfb, 0x5fd: 0xfb, 0x5fe: 0xfb, 0x5ff: 0xfb, + // Block 0x18, offset 0x600 + 0x600: 0x179, 0x601: 0xfb, 0x602: 0xfb, 0x603: 0xfb, 0x604: 0x17a, 0x605: 0x17b, 0x606: 0xfb, 0x607: 0xfb, + 0x608: 0xfb, 0x609: 0xfb, 0x60a: 0xfb, 0x60b: 0x17c, 0x60c: 0xfb, 0x60d: 0xfb, 0x60e: 0xfb, 0x60f: 0xfb, + 0x610: 0xfb, 0x611: 0xfb, 0x612: 0xfb, 0x613: 0xfb, 0x614: 0xfb, 0x615: 0xfb, 0x616: 0xfb, 0x617: 0xfb, + 0x618: 0xfb, 0x619: 0xfb, 0x61a: 0xfb, 0x61b: 0xfb, 0x61c: 0xfb, 0x61d: 0xfb, 0x61e: 0xfb, 0x61f: 0xfb, + 0x620: 0x123, 0x621: 0x123, 0x622: 0x123, 0x623: 0x17d, 0x624: 0x70, 0x625: 0x17e, 0x626: 0xfb, 0x627: 0xfb, + 0x628: 0xfb, 0x629: 0xfb, 0x62a: 0xfb, 0x62b: 0xfb, 0x62c: 0xfb, 0x62d: 0xfb, 0x62e: 0xfb, 0x62f: 0xfb, + 0x630: 0xfb, 0x631: 0x17f, 0x632: 0x180, 0x633: 0xfb, 0x634: 0x181, 0x635: 0xfb, 0x636: 0xfb, 0x637: 0xfb, + 0x638: 0x71, 0x639: 0x72, 0x63a: 0x73, 0x63b: 0x182, 0x63c: 0xfb, 0x63d: 0xfb, 0x63e: 0xfb, 0x63f: 0xfb, + // Block 0x19, offset 0x640 + 0x640: 0x183, 0x641: 0x9c, 0x642: 0x184, 0x643: 0x185, 0x644: 0x74, 0x645: 0x75, 0x646: 0x186, 0x647: 0x187, + 0x648: 0x76, 0x649: 0x188, 0x64a: 0xfb, 0x64b: 0xfb, 0x64c: 0x9c, 0x64d: 0x9c, 0x64e: 0x9c, 0x64f: 0x9c, + 0x650: 0x9c, 0x651: 0x9c, 0x652: 0x9c, 0x653: 0x9c, 0x654: 0x9c, 0x655: 0x9c, 0x656: 0x9c, 0x657: 0x9c, + 0x658: 0x9c, 0x659: 0x9c, 0x65a: 0x9c, 0x65b: 0x189, 0x65c: 0x9c, 0x65d: 0x18a, 0x65e: 0x9c, 0x65f: 0x18b, + 0x660: 0x18c, 0x661: 0x18d, 0x662: 0x18e, 0x663: 0xfb, 0x664: 0x9c, 0x665: 0x18f, 0x666: 0x9c, 0x667: 0x190, + 0x668: 0x9c, 0x669: 0x191, 0x66a: 0x192, 0x66b: 0x193, 0x66c: 0x9c, 0x66d: 0x9c, 0x66e: 0x194, 0x66f: 0x195, + 0x670: 0xfb, 0x671: 0xfb, 0x672: 0xfb, 0x673: 0xfb, 0x674: 0xfb, 0x675: 0xfb, 0x676: 0xfb, 0x677: 0xfb, + 0x678: 0xfb, 0x679: 0xfb, 0x67a: 0xfb, 0x67b: 0xfb, 0x67c: 0xfb, 0x67d: 0xfb, 0x67e: 0xfb, 0x67f: 0xfb, + // Block 0x1a, offset 0x680 + 0x680: 0xa0, 0x681: 0xa0, 0x682: 0xa0, 0x683: 0xa0, 0x684: 0xa0, 0x685: 0xa0, 0x686: 0xa0, 0x687: 0xa0, + 0x688: 0xa0, 0x689: 0xa0, 0x68a: 0xa0, 0x68b: 0xa0, 0x68c: 0xa0, 0x68d: 0xa0, 0x68e: 0xa0, 0x68f: 0xa0, + 0x690: 0xa0, 0x691: 0xa0, 0x692: 0xa0, 0x693: 0xa0, 0x694: 0xa0, 0x695: 0xa0, 0x696: 0xa0, 0x697: 0xa0, + 0x698: 0xa0, 0x699: 0xa0, 0x69a: 0xa0, 0x69b: 0x196, 0x69c: 0xa0, 0x69d: 0xa0, 0x69e: 0xa0, 0x69f: 0xa0, + 0x6a0: 0xa0, 0x6a1: 0xa0, 0x6a2: 0xa0, 0x6a3: 0xa0, 0x6a4: 0xa0, 0x6a5: 0xa0, 0x6a6: 0xa0, 0x6a7: 0xa0, + 0x6a8: 0xa0, 0x6a9: 0xa0, 0x6aa: 0xa0, 0x6ab: 0xa0, 0x6ac: 0xa0, 0x6ad: 0xa0, 0x6ae: 0xa0, 0x6af: 0xa0, + 0x6b0: 0xa0, 0x6b1: 0xa0, 0x6b2: 0xa0, 0x6b3: 0xa0, 0x6b4: 0xa0, 0x6b5: 0xa0, 0x6b6: 0xa0, 0x6b7: 0xa0, + 0x6b8: 0xa0, 0x6b9: 0xa0, 0x6ba: 0xa0, 0x6bb: 0xa0, 0x6bc: 0xa0, 0x6bd: 0xa0, 0x6be: 0xa0, 0x6bf: 0xa0, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0xa0, 0x6c1: 0xa0, 0x6c2: 0xa0, 0x6c3: 0xa0, 0x6c4: 0xa0, 0x6c5: 0xa0, 0x6c6: 0xa0, 0x6c7: 0xa0, + 0x6c8: 0xa0, 0x6c9: 0xa0, 0x6ca: 0xa0, 0x6cb: 0xa0, 0x6cc: 0xa0, 0x6cd: 0xa0, 0x6ce: 0xa0, 0x6cf: 0xa0, + 0x6d0: 0xa0, 0x6d1: 0xa0, 0x6d2: 0xa0, 0x6d3: 0xa0, 0x6d4: 0xa0, 0x6d5: 0xa0, 0x6d6: 0xa0, 0x6d7: 0xa0, + 0x6d8: 0xa0, 0x6d9: 0xa0, 0x6da: 0xa0, 0x6db: 0xa0, 0x6dc: 0x197, 0x6dd: 0xa0, 0x6de: 0xa0, 0x6df: 0xa0, + 0x6e0: 0x198, 0x6e1: 0xa0, 0x6e2: 0xa0, 0x6e3: 0xa0, 0x6e4: 0xa0, 0x6e5: 0xa0, 0x6e6: 0xa0, 0x6e7: 0xa0, + 0x6e8: 0xa0, 0x6e9: 0xa0, 0x6ea: 0xa0, 0x6eb: 0xa0, 0x6ec: 0xa0, 0x6ed: 0xa0, 0x6ee: 0xa0, 0x6ef: 0xa0, + 0x6f0: 0xa0, 0x6f1: 0xa0, 0x6f2: 0xa0, 0x6f3: 0xa0, 0x6f4: 0xa0, 0x6f5: 0xa0, 0x6f6: 0xa0, 0x6f7: 0xa0, + 0x6f8: 0xa0, 0x6f9: 0xa0, 0x6fa: 0xa0, 0x6fb: 0xa0, 0x6fc: 0xa0, 0x6fd: 0xa0, 0x6fe: 0xa0, 0x6ff: 0xa0, + // Block 0x1c, offset 0x700 + 0x700: 0xa0, 0x701: 0xa0, 0x702: 0xa0, 0x703: 0xa0, 0x704: 0xa0, 0x705: 0xa0, 0x706: 0xa0, 0x707: 0xa0, + 0x708: 0xa0, 0x709: 0xa0, 0x70a: 0xa0, 0x70b: 0xa0, 0x70c: 0xa0, 0x70d: 0xa0, 0x70e: 0xa0, 0x70f: 0xa0, + 0x710: 0xa0, 0x711: 0xa0, 0x712: 0xa0, 0x713: 0xa0, 0x714: 0xa0, 0x715: 0xa0, 0x716: 0xa0, 0x717: 0xa0, + 0x718: 0xa0, 0x719: 0xa0, 0x71a: 0xa0, 0x71b: 0xa0, 0x71c: 0xa0, 0x71d: 0xa0, 0x71e: 0xa0, 0x71f: 0xa0, + 0x720: 0xa0, 0x721: 0xa0, 0x722: 0xa0, 0x723: 0xa0, 0x724: 0xa0, 0x725: 0xa0, 0x726: 0xa0, 0x727: 0xa0, + 0x728: 0xa0, 0x729: 0xa0, 0x72a: 0xa0, 0x72b: 0xa0, 0x72c: 0xa0, 0x72d: 0xa0, 0x72e: 0xa0, 0x72f: 0xa0, + 0x730: 0xa0, 0x731: 0xa0, 0x732: 0xa0, 0x733: 0xa0, 0x734: 0xa0, 0x735: 0xa0, 0x736: 0xa0, 0x737: 0xa0, + 0x738: 0xa0, 0x739: 0xa0, 0x73a: 0x199, 0x73b: 0xa0, 0x73c: 0xa0, 0x73d: 0xa0, 0x73e: 0xa0, 0x73f: 0xa0, + // Block 0x1d, offset 0x740 + 0x740: 0xa0, 0x741: 0xa0, 0x742: 0xa0, 0x743: 0xa0, 0x744: 0xa0, 0x745: 0xa0, 0x746: 0xa0, 0x747: 0xa0, + 0x748: 0xa0, 0x749: 0xa0, 0x74a: 0xa0, 0x74b: 0xa0, 0x74c: 0xa0, 0x74d: 0xa0, 0x74e: 0xa0, 0x74f: 0xa0, + 0x750: 0xa0, 0x751: 0xa0, 0x752: 0xa0, 0x753: 0xa0, 0x754: 0xa0, 0x755: 0xa0, 0x756: 0xa0, 0x757: 0xa0, + 0x758: 0xa0, 0x759: 0xa0, 0x75a: 0xa0, 0x75b: 0xa0, 0x75c: 0xa0, 0x75d: 0xa0, 0x75e: 0xa0, 0x75f: 0xa0, + 0x760: 0xa0, 0x761: 0xa0, 0x762: 0xa0, 0x763: 0xa0, 0x764: 0xa0, 0x765: 0xa0, 0x766: 0xa0, 0x767: 0xa0, + 0x768: 0xa0, 0x769: 0xa0, 0x76a: 0xa0, 0x76b: 0xa0, 0x76c: 0xa0, 0x76d: 0xa0, 0x76e: 0xa0, 0x76f: 0x19a, + 0x770: 0xfb, 0x771: 0xfb, 0x772: 0xfb, 0x773: 0xfb, 0x774: 0xfb, 0x775: 0xfb, 0x776: 0xfb, 0x777: 0xfb, + 0x778: 0xfb, 0x779: 0xfb, 0x77a: 0xfb, 0x77b: 0xfb, 0x77c: 0xfb, 0x77d: 0xfb, 0x77e: 0xfb, 0x77f: 0xfb, + // Block 0x1e, offset 0x780 + 0x780: 0xfb, 0x781: 0xfb, 0x782: 0xfb, 0x783: 0xfb, 0x784: 0xfb, 0x785: 0xfb, 0x786: 0xfb, 0x787: 0xfb, + 0x788: 0xfb, 0x789: 0xfb, 0x78a: 0xfb, 0x78b: 0xfb, 0x78c: 0xfb, 0x78d: 0xfb, 0x78e: 0xfb, 0x78f: 0xfb, + 0x790: 0xfb, 0x791: 0xfb, 0x792: 0xfb, 0x793: 0xfb, 0x794: 0xfb, 0x795: 0xfb, 0x796: 0xfb, 0x797: 0xfb, + 0x798: 0xfb, 0x799: 0xfb, 0x79a: 0xfb, 0x79b: 0xfb, 0x79c: 0xfb, 0x79d: 0xfb, 0x79e: 0xfb, 0x79f: 0xfb, + 0x7a0: 0x77, 0x7a1: 0x78, 0x7a2: 0x79, 0x7a3: 0x19b, 0x7a4: 0x7a, 0x7a5: 0x7b, 0x7a6: 0x19c, 0x7a7: 0x7c, + 0x7a8: 0x7d, 0x7a9: 0xfb, 0x7aa: 0xfb, 0x7ab: 0xfb, 0x7ac: 0xfb, 0x7ad: 0xfb, 0x7ae: 0xfb, 0x7af: 0xfb, + 0x7b0: 0xfb, 0x7b1: 0xfb, 0x7b2: 0xfb, 0x7b3: 0xfb, 0x7b4: 0xfb, 0x7b5: 0xfb, 0x7b6: 0xfb, 0x7b7: 0xfb, + 0x7b8: 0xfb, 0x7b9: 0xfb, 0x7ba: 0xfb, 0x7bb: 0xfb, 0x7bc: 0xfb, 0x7bd: 0xfb, 0x7be: 0xfb, 0x7bf: 0xfb, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0xa0, 0x7c1: 0xa0, 0x7c2: 0xa0, 0x7c3: 0xa0, 0x7c4: 0xa0, 0x7c5: 0xa0, 0x7c6: 0xa0, 0x7c7: 0xa0, + 0x7c8: 0xa0, 0x7c9: 0xa0, 0x7ca: 0xa0, 0x7cb: 0xa0, 0x7cc: 0xa0, 0x7cd: 0x19d, 0x7ce: 0xfb, 0x7cf: 0xfb, + 0x7d0: 0xfb, 0x7d1: 0xfb, 0x7d2: 0xfb, 0x7d3: 0xfb, 0x7d4: 0xfb, 0x7d5: 0xfb, 0x7d6: 0xfb, 0x7d7: 0xfb, + 0x7d8: 0xfb, 0x7d9: 0xfb, 0x7da: 0xfb, 0x7db: 0xfb, 0x7dc: 0xfb, 0x7dd: 0xfb, 0x7de: 0xfb, 0x7df: 0xfb, + 0x7e0: 0xfb, 0x7e1: 0xfb, 0x7e2: 0xfb, 0x7e3: 0xfb, 0x7e4: 0xfb, 0x7e5: 0xfb, 0x7e6: 0xfb, 0x7e7: 0xfb, + 0x7e8: 0xfb, 0x7e9: 0xfb, 0x7ea: 0xfb, 0x7eb: 0xfb, 0x7ec: 0xfb, 0x7ed: 0xfb, 0x7ee: 0xfb, 0x7ef: 0xfb, + 0x7f0: 0xfb, 0x7f1: 0xfb, 0x7f2: 0xfb, 0x7f3: 0xfb, 0x7f4: 0xfb, 0x7f5: 0xfb, 0x7f6: 0xfb, 0x7f7: 0xfb, + 0x7f8: 0xfb, 0x7f9: 0xfb, 0x7fa: 0xfb, 0x7fb: 0xfb, 0x7fc: 0xfb, 0x7fd: 0xfb, 0x7fe: 0xfb, 0x7ff: 0xfb, + // Block 0x20, offset 0x800 + 0x810: 0x0d, 0x811: 0x0e, 0x812: 0x0f, 0x813: 0x10, 0x814: 0x11, 0x815: 0x0b, 0x816: 0x12, 0x817: 0x07, + 0x818: 0x13, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x14, 0x81c: 0x0b, 0x81d: 0x15, 0x81e: 0x16, 0x81f: 0x17, + 0x820: 0x07, 0x821: 0x07, 0x822: 0x07, 0x823: 0x07, 0x824: 0x07, 0x825: 0x07, 0x826: 0x07, 0x827: 0x07, + 0x828: 0x07, 0x829: 0x07, 0x82a: 0x18, 0x82b: 0x19, 0x82c: 0x1a, 0x82d: 0x07, 0x82e: 0x1b, 0x82f: 0x1c, + 0x830: 0x07, 0x831: 0x1d, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b, + 0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b, + // Block 0x21, offset 0x840 + 0x840: 0x0b, 0x841: 0x0b, 0x842: 0x0b, 0x843: 0x0b, 0x844: 0x0b, 0x845: 0x0b, 0x846: 0x0b, 0x847: 0x0b, + 0x848: 0x0b, 0x849: 0x0b, 0x84a: 0x0b, 0x84b: 0x0b, 0x84c: 0x0b, 0x84d: 0x0b, 0x84e: 0x0b, 0x84f: 0x0b, + 0x850: 0x0b, 0x851: 0x0b, 0x852: 0x0b, 0x853: 0x0b, 0x854: 0x0b, 0x855: 0x0b, 0x856: 0x0b, 0x857: 0x0b, + 0x858: 0x0b, 0x859: 0x0b, 0x85a: 0x0b, 0x85b: 0x0b, 0x85c: 0x0b, 0x85d: 0x0b, 0x85e: 0x0b, 0x85f: 0x0b, + 0x860: 0x0b, 0x861: 0x0b, 0x862: 0x0b, 0x863: 0x0b, 0x864: 0x0b, 0x865: 0x0b, 0x866: 0x0b, 0x867: 0x0b, + 0x868: 0x0b, 0x869: 0x0b, 0x86a: 0x0b, 0x86b: 0x0b, 0x86c: 0x0b, 0x86d: 0x0b, 0x86e: 0x0b, 0x86f: 0x0b, + 0x870: 0x0b, 0x871: 0x0b, 0x872: 0x0b, 0x873: 0x0b, 0x874: 0x0b, 0x875: 0x0b, 0x876: 0x0b, 0x877: 0x0b, + 0x878: 0x0b, 0x879: 0x0b, 0x87a: 0x0b, 0x87b: 0x0b, 0x87c: 0x0b, 0x87d: 0x0b, 0x87e: 0x0b, 0x87f: 0x0b, + // Block 0x22, offset 0x880 + 0x880: 0x19e, 0x881: 0x19f, 0x882: 0xfb, 0x883: 0xfb, 0x884: 0x1a0, 0x885: 0x1a0, 0x886: 0x1a0, 0x887: 0x1a1, + 0x888: 0xfb, 0x889: 0xfb, 0x88a: 0xfb, 0x88b: 0xfb, 0x88c: 0xfb, 0x88d: 0xfb, 0x88e: 0xfb, 0x88f: 0xfb, + 0x890: 0xfb, 0x891: 0xfb, 0x892: 0xfb, 0x893: 0xfb, 0x894: 0xfb, 0x895: 0xfb, 0x896: 0xfb, 0x897: 0xfb, + 0x898: 0xfb, 0x899: 0xfb, 0x89a: 0xfb, 0x89b: 0xfb, 0x89c: 0xfb, 0x89d: 0xfb, 0x89e: 0xfb, 0x89f: 0xfb, + 0x8a0: 0xfb, 0x8a1: 0xfb, 0x8a2: 0xfb, 0x8a3: 0xfb, 0x8a4: 0xfb, 0x8a5: 0xfb, 0x8a6: 0xfb, 0x8a7: 0xfb, + 0x8a8: 0xfb, 0x8a9: 0xfb, 0x8aa: 0xfb, 0x8ab: 0xfb, 0x8ac: 0xfb, 0x8ad: 0xfb, 0x8ae: 0xfb, 0x8af: 0xfb, + 0x8b0: 0xfb, 0x8b1: 0xfb, 0x8b2: 0xfb, 0x8b3: 0xfb, 0x8b4: 0xfb, 0x8b5: 0xfb, 0x8b6: 0xfb, 0x8b7: 0xfb, + 0x8b8: 0xfb, 0x8b9: 0xfb, 0x8ba: 0xfb, 0x8bb: 0xfb, 0x8bc: 0xfb, 0x8bd: 0xfb, 0x8be: 0xfb, 0x8bf: 0xfb, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b, + 0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b, + 0x8d0: 0x0b, 0x8d1: 0x0b, 0x8d2: 0x0b, 0x8d3: 0x0b, 0x8d4: 0x0b, 0x8d5: 0x0b, 0x8d6: 0x0b, 0x8d7: 0x0b, + 0x8d8: 0x0b, 0x8d9: 0x0b, 0x8da: 0x0b, 0x8db: 0x0b, 0x8dc: 0x0b, 0x8dd: 0x0b, 0x8de: 0x0b, 0x8df: 0x0b, + 0x8e0: 0x20, 0x8e1: 0x0b, 0x8e2: 0x0b, 0x8e3: 0x0b, 0x8e4: 0x0b, 0x8e5: 0x0b, 0x8e6: 0x0b, 0x8e7: 0x0b, + 0x8e8: 0x0b, 0x8e9: 0x0b, 0x8ea: 0x0b, 0x8eb: 0x0b, 0x8ec: 0x0b, 0x8ed: 0x0b, 0x8ee: 0x0b, 0x8ef: 0x0b, + 0x8f0: 0x0b, 0x8f1: 0x0b, 0x8f2: 0x0b, 0x8f3: 0x0b, 0x8f4: 0x0b, 0x8f5: 0x0b, 0x8f6: 0x0b, 0x8f7: 0x0b, + 0x8f8: 0x0b, 0x8f9: 0x0b, 0x8fa: 0x0b, 0x8fb: 0x0b, 0x8fc: 0x0b, 0x8fd: 0x0b, 0x8fe: 0x0b, 0x8ff: 0x0b, + // Block 0x24, offset 0x900 + 0x900: 0x0b, 0x901: 0x0b, 0x902: 0x0b, 0x903: 0x0b, 0x904: 0x0b, 0x905: 0x0b, 0x906: 0x0b, 0x907: 0x0b, + 0x908: 0x0b, 0x909: 0x0b, 0x90a: 0x0b, 0x90b: 0x0b, 0x90c: 0x0b, 0x90d: 0x0b, 0x90e: 0x0b, 0x90f: 0x0b, +} + +// idnaSparseOffset: 292 entries, 584 bytes +var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x85, 0x8b, 0x94, 0xa4, 0xb2, 0xbd, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x225, 0x22f, 0x23b, 0x247, 0x253, 0x25b, 0x260, 0x26d, 0x27e, 0x282, 0x28d, 0x291, 0x29a, 0x2a2, 0x2a8, 0x2ad, 0x2b0, 0x2b4, 0x2ba, 0x2be, 0x2c2, 0x2c6, 0x2cc, 0x2d4, 0x2db, 0x2e6, 0x2f0, 0x2f4, 0x2f7, 0x2fd, 0x301, 0x303, 0x306, 0x308, 0x30b, 0x315, 0x318, 0x327, 0x32b, 0x330, 0x333, 0x337, 0x33c, 0x341, 0x347, 0x358, 0x368, 0x36e, 0x372, 0x381, 0x386, 0x38e, 0x398, 0x3a3, 0x3ab, 0x3bc, 0x3c5, 0x3d5, 0x3e2, 0x3ee, 0x3f3, 0x400, 0x404, 0x409, 0x40b, 0x40d, 0x411, 0x413, 0x417, 0x420, 0x426, 0x42a, 0x43a, 0x444, 0x449, 0x44c, 0x452, 0x459, 0x45e, 0x462, 0x468, 0x46d, 0x476, 0x47b, 0x481, 0x488, 0x48f, 0x496, 0x49a, 0x49f, 0x4a2, 0x4a7, 0x4b3, 0x4b9, 0x4be, 0x4c5, 0x4cd, 0x4d2, 0x4d6, 0x4e6, 0x4ed, 0x4f1, 0x4f5, 0x4fc, 0x4fe, 0x501, 0x504, 0x508, 0x511, 0x515, 0x51d, 0x525, 0x52d, 0x539, 0x545, 0x54b, 0x554, 0x560, 0x567, 0x570, 0x57b, 0x582, 0x591, 0x59e, 0x5ab, 0x5b4, 0x5b8, 0x5c7, 0x5cf, 0x5da, 0x5e3, 0x5e9, 0x5f1, 0x5fa, 0x605, 0x608, 0x614, 0x61d, 0x620, 0x625, 0x62e, 0x633, 0x640, 0x64b, 0x654, 0x65e, 0x661, 0x66b, 0x674, 0x680, 0x68d, 0x69a, 0x6a8, 0x6af, 0x6b3, 0x6b7, 0x6ba, 0x6bf, 0x6c2, 0x6c7, 0x6ca, 0x6d1, 0x6d8, 0x6dc, 0x6e7, 0x6ea, 0x6ed, 0x6f0, 0x6f6, 0x6fc, 0x705, 0x708, 0x70b, 0x70e, 0x711, 0x718, 0x71b, 0x720, 0x72a, 0x72d, 0x731, 0x740, 0x74c, 0x750, 0x755, 0x759, 0x75e, 0x762, 0x767, 0x770, 0x77b, 0x781, 0x787, 0x78d, 0x793, 0x79c, 0x79f, 0x7a2, 0x7a6, 0x7aa, 0x7ae, 0x7b4, 0x7ba, 0x7bf, 0x7c2, 0x7d2, 0x7d9, 0x7dc, 0x7e1, 0x7e5, 0x7eb, 0x7f2, 0x7f6, 0x7fa, 0x803, 0x80a, 0x80f, 0x813, 0x821, 0x824, 0x827, 0x82b, 0x82f, 0x832, 0x842, 0x853, 0x856, 0x85b, 0x85d, 0x85f} + +// idnaSparseValues: 2146 entries, 8584 bytes +var idnaSparseValues = [2146]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x07}, + {value: 0xe105, lo: 0x80, hi: 0x96}, + {value: 0x0018, lo: 0x97, hi: 0x97}, + {value: 0xe105, lo: 0x98, hi: 0x9e}, + {value: 0x001f, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbf}, + // Block 0x1, offset 0x8 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0xe01d, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0335, lo: 0x83, hi: 0x83}, + {value: 0x034d, lo: 0x84, hi: 0x84}, + {value: 0x0365, lo: 0x85, hi: 0x85}, + {value: 0xe00d, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0xe00d, lo: 0x88, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x89}, + {value: 0xe00d, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe00d, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0x8d}, + {value: 0xe00d, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0xbf}, + // Block 0x2, offset 0x19 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x0249, lo: 0xb0, hi: 0xb0}, + {value: 0x037d, lo: 0xb1, hi: 0xb1}, + {value: 0x0259, lo: 0xb2, hi: 0xb2}, + {value: 0x0269, lo: 0xb3, hi: 0xb3}, + {value: 0x034d, lo: 0xb4, hi: 0xb4}, + {value: 0x0395, lo: 0xb5, hi: 0xb5}, + {value: 0xe1bd, lo: 0xb6, hi: 0xb6}, + {value: 0x0279, lo: 0xb7, hi: 0xb7}, + {value: 0x0289, lo: 0xb8, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbf}, + // Block 0x3, offset 0x25 + {value: 0x0000, lo: 0x01}, + {value: 0x3308, lo: 0x80, hi: 0xbf}, + // Block 0x4, offset 0x27 + {value: 0x0000, lo: 0x04}, + {value: 0x03f5, lo: 0x80, hi: 0x8f}, + {value: 0xe105, lo: 0x90, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x5, offset 0x2c + {value: 0x0000, lo: 0x06}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x0545, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x0008, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x6, offset 0x33 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0401, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0018, lo: 0x89, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x7, offset 0x3e + {value: 0x0000, lo: 0x0b}, + {value: 0x0818, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x82}, + {value: 0x0818, lo: 0x83, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x85}, + {value: 0x0818, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xae}, + {value: 0x0808, lo: 0xaf, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x8, offset 0x4a + {value: 0x0000, lo: 0x03}, + {value: 0x0a08, lo: 0x80, hi: 0x87}, + {value: 0x0c08, lo: 0x88, hi: 0x99}, + {value: 0x0a08, lo: 0x9a, hi: 0xbf}, + // Block 0x9, offset 0x4e + {value: 0x0000, lo: 0x0e}, + {value: 0x3308, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0c08, lo: 0x8d, hi: 0x8d}, + {value: 0x0a08, lo: 0x8e, hi: 0x98}, + {value: 0x0c08, lo: 0x99, hi: 0x9b}, + {value: 0x0a08, lo: 0x9c, hi: 0xaa}, + {value: 0x0c08, lo: 0xab, hi: 0xac}, + {value: 0x0a08, lo: 0xad, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb1}, + {value: 0x0a08, lo: 0xb2, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb4}, + {value: 0x0a08, lo: 0xb5, hi: 0xb7}, + {value: 0x0c08, lo: 0xb8, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbf}, + // Block 0xa, offset 0x5d + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xb0}, + {value: 0x0808, lo: 0xb1, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xb, offset 0x62 + {value: 0x0000, lo: 0x09}, + {value: 0x0808, lo: 0x80, hi: 0x89}, + {value: 0x0a08, lo: 0x8a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbf}, + // Block 0xc, offset 0x6c + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x99}, + {value: 0x0808, lo: 0x9a, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa3}, + {value: 0x0808, lo: 0xa4, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa7}, + {value: 0x0808, lo: 0xa8, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0818, lo: 0xb0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xd, offset 0x78 + {value: 0x0000, lo: 0x0c}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0a08, lo: 0xa0, hi: 0xa9}, + {value: 0x0c08, lo: 0xaa, hi: 0xac}, + {value: 0x0808, lo: 0xad, hi: 0xad}, + {value: 0x0c08, lo: 0xae, hi: 0xae}, + {value: 0x0a08, lo: 0xaf, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb2}, + {value: 0x0a08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0a08, lo: 0xb6, hi: 0xb8}, + {value: 0x0c08, lo: 0xb9, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbf}, + // Block 0xe, offset 0x85 + {value: 0x0000, lo: 0x05}, + {value: 0x0a08, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x92}, + {value: 0x3308, lo: 0x93, hi: 0xa1}, + {value: 0x0840, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xbf}, + // Block 0xf, offset 0x8b + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x10, offset 0x94 + {value: 0x0000, lo: 0x0f}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x85}, + {value: 0x3008, lo: 0x86, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8c}, + {value: 0x3b08, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x11, offset 0xa4 + {value: 0x0000, lo: 0x0d}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x12, offset 0xb2 + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xba}, + {value: 0x3b08, lo: 0xbb, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x13, offset 0xbd + {value: 0x0000, lo: 0x0c}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x14, offset 0xca + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x89}, + {value: 0x3b08, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x3008, lo: 0x98, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x15, offset 0xdb + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb2}, + {value: 0x08f1, lo: 0xb3, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb9}, + {value: 0x3b08, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0x16, offset 0xe5 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x8e}, + {value: 0x0018, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0xbf}, + // Block 0x17, offset 0xec + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0961, lo: 0x9c, hi: 0x9c}, + {value: 0x0999, lo: 0x9d, hi: 0x9d}, + {value: 0x0008, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x18, offset 0xf9 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe03d, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x19, offset 0x10a + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0x1a, offset 0x111 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0x11c + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xa1}, + {value: 0x3008, lo: 0xa2, hi: 0xa4}, + {value: 0x0008, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xbf}, + // Block 0x1c, offset 0x12b + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x8c}, + {value: 0x3308, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x3008, lo: 0x9a, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x1d, offset 0x139 + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x86}, + {value: 0x055d, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8c}, + {value: 0x055d, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0xe105, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0x1e, offset 0x143 + {value: 0x0000, lo: 0x01}, + {value: 0x0018, lo: 0x80, hi: 0xbf}, + // Block 0x1f, offset 0x145 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa0}, + {value: 0x2018, lo: 0xa1, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x20, offset 0x14a + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa7}, + {value: 0x2018, lo: 0xa8, hi: 0xbf}, + // Block 0x21, offset 0x14d + {value: 0x0000, lo: 0x02}, + {value: 0x2018, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0xbf}, + // Block 0x22, offset 0x150 + {value: 0x0000, lo: 0x01}, + {value: 0x0008, lo: 0x80, hi: 0xbf}, + // Block 0x23, offset 0x152 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x24, offset 0x15e + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x25, offset 0x169 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x26, offset 0x171 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x27, offset 0x177 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x28, offset 0x17d + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x29, offset 0x182 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x2a, offset 0x187 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x2b, offset 0x18a + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xbf}, + // Block 0x2c, offset 0x18e + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x2d, offset 0x194 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x2e, offset 0x199 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x3b08, lo: 0x94, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x2f, offset 0x1a5 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x30, offset 0x1af + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xb3}, + {value: 0x3340, lo: 0xb4, hi: 0xb5}, + {value: 0x3008, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x31, offset 0x1b5 + {value: 0x0000, lo: 0x10}, + {value: 0x3008, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x91}, + {value: 0x3b08, lo: 0x92, hi: 0x92}, + {value: 0x3308, lo: 0x93, hi: 0x93}, + {value: 0x0018, lo: 0x94, hi: 0x96}, + {value: 0x0008, lo: 0x97, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x32, offset 0x1c6 + {value: 0x0000, lo: 0x09}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x86}, + {value: 0x0218, lo: 0x87, hi: 0x87}, + {value: 0x0018, lo: 0x88, hi: 0x8a}, + {value: 0x33c0, lo: 0x8b, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0208, lo: 0xa0, hi: 0xbf}, + // Block 0x33, offset 0x1d0 + {value: 0x0000, lo: 0x02}, + {value: 0x0208, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x34, offset 0x1d3 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0208, lo: 0x87, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xa9}, + {value: 0x0208, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x35, offset 0x1db + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0x36, offset 0x1de + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x37, offset 0x1eb + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x38, offset 0x1f3 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x39, offset 0x1f7 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0028, lo: 0x9a, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xbf}, + // Block 0x3a, offset 0x1fe + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x3308, lo: 0x97, hi: 0x98}, + {value: 0x3008, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x3b, offset 0x206 + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x94}, + {value: 0x3008, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3b08, lo: 0xa0, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xac}, + {value: 0x3008, lo: 0xad, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x216 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xbd}, + {value: 0x3318, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x222 + {value: 0x0000, lo: 0x02}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0xbf}, + // Block 0x3e, offset 0x225 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3008, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbf}, + // Block 0x3f, offset 0x22f + {value: 0x0000, lo: 0x0b}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x3808, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x40, offset 0x23b + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3808, lo: 0xaa, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xbf}, + // Block 0x41, offset 0x247 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3008, lo: 0xaa, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3808, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbf}, + // Block 0x42, offset 0x253 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x3008, lo: 0xa4, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbf}, + // Block 0x43, offset 0x25b + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x44, offset 0x260 + {value: 0x0000, lo: 0x0c}, + {value: 0x0e29, lo: 0x80, hi: 0x80}, + {value: 0x0e41, lo: 0x81, hi: 0x81}, + {value: 0x0e59, lo: 0x82, hi: 0x82}, + {value: 0x0e71, lo: 0x83, hi: 0x83}, + {value: 0x0e89, lo: 0x84, hi: 0x85}, + {value: 0x0ea1, lo: 0x86, hi: 0x86}, + {value: 0x0eb9, lo: 0x87, hi: 0x87}, + {value: 0x057d, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x059d, lo: 0x90, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbc}, + {value: 0x059d, lo: 0xbd, hi: 0xbf}, + // Block 0x45, offset 0x26d + {value: 0x0000, lo: 0x10}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x92}, + {value: 0x0018, lo: 0x93, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa8}, + {value: 0x0008, lo: 0xa9, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x46, offset 0x27e + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0x47, offset 0x282 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x87}, + {value: 0xe045, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0xe045, lo: 0x98, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0xe045, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbf}, + // Block 0x48, offset 0x28d + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x3318, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbf}, + // Block 0x49, offset 0x291 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x24c1, lo: 0x89, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x4a, offset 0x29a + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x24f1, lo: 0xac, hi: 0xac}, + {value: 0x2529, lo: 0xad, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xae}, + {value: 0x2579, lo: 0xaf, hi: 0xaf}, + {value: 0x25b1, lo: 0xb0, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0x4b, offset 0x2a2 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x9f}, + {value: 0x0080, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xad}, + {value: 0x0080, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x4c, offset 0x2a8 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xa8}, + {value: 0x09dd, lo: 0xa9, hi: 0xa9}, + {value: 0x09fd, lo: 0xaa, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xbf}, + // Block 0x4d, offset 0x2ad + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xbf}, + // Block 0x4e, offset 0x2b0 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x28c1, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x4f, offset 0x2b4 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0e7e, lo: 0xb4, hi: 0xb4}, + {value: 0x292a, lo: 0xb5, hi: 0xb5}, + {value: 0x0e9e, lo: 0xb6, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x50, offset 0x2ba + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x9b}, + {value: 0x2941, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0xbf}, + // Block 0x51, offset 0x2be + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x52, offset 0x2c2 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x96}, + {value: 0x0018, lo: 0x97, hi: 0xbf}, + // Block 0x53, offset 0x2c6 + {value: 0x0000, lo: 0x05}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x03f5, lo: 0x90, hi: 0x9f}, + {value: 0x0ebd, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x54, offset 0x2cc + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x55, offset 0x2d4 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xae}, + {value: 0xe075, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0x56, offset 0x2db + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x57, offset 0x2e6 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xbf}, + // Block 0x58, offset 0x2f0 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x59, offset 0x2f4 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x92}, + {value: 0x0040, lo: 0x93, hi: 0xbf}, + // Block 0x5a, offset 0x2f7 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9e}, + {value: 0x0ef5, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x5b, offset 0x2fd + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb2}, + {value: 0x0f15, lo: 0xb3, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x5c, offset 0x301 + {value: 0x0020, lo: 0x01}, + {value: 0x0f35, lo: 0x80, hi: 0xbf}, + // Block 0x5d, offset 0x303 + {value: 0x0020, lo: 0x02}, + {value: 0x1735, lo: 0x80, hi: 0x8f}, + {value: 0x1915, lo: 0x90, hi: 0xbf}, + // Block 0x5e, offset 0x306 + {value: 0x0020, lo: 0x01}, + {value: 0x1f15, lo: 0x80, hi: 0xbf}, + // Block 0x5f, offset 0x308 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x60, offset 0x30b + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9a}, + {value: 0x29e2, lo: 0x9b, hi: 0x9b}, + {value: 0x2a0a, lo: 0x9c, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9e}, + {value: 0x2a31, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xbf}, + // Block 0x61, offset 0x315 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbe}, + {value: 0x2a69, lo: 0xbf, hi: 0xbf}, + // Block 0x62, offset 0x318 + {value: 0x0000, lo: 0x0e}, + {value: 0x0040, lo: 0x80, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb0}, + {value: 0x2a35, lo: 0xb1, hi: 0xb1}, + {value: 0x2a55, lo: 0xb2, hi: 0xb2}, + {value: 0x2a75, lo: 0xb3, hi: 0xb3}, + {value: 0x2a95, lo: 0xb4, hi: 0xb4}, + {value: 0x2a75, lo: 0xb5, hi: 0xb5}, + {value: 0x2ab5, lo: 0xb6, hi: 0xb6}, + {value: 0x2ad5, lo: 0xb7, hi: 0xb7}, + {value: 0x2af5, lo: 0xb8, hi: 0xb9}, + {value: 0x2b15, lo: 0xba, hi: 0xbb}, + {value: 0x2b35, lo: 0xbc, hi: 0xbd}, + {value: 0x2b15, lo: 0xbe, hi: 0xbf}, + // Block 0x63, offset 0x327 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x64, offset 0x32b + {value: 0x0030, lo: 0x04}, + {value: 0x2aa2, lo: 0x80, hi: 0x9d}, + {value: 0x305a, lo: 0x9e, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x30a2, lo: 0xa0, hi: 0xbf}, + // Block 0x65, offset 0x330 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x66, offset 0x333 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x67, offset 0x337 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x68, offset 0x33c + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xbf}, + // Block 0x69, offset 0x341 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb1}, + {value: 0x0018, lo: 0xb2, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6a, offset 0x347 + {value: 0x0000, lo: 0x10}, + {value: 0x0040, lo: 0x80, hi: 0x81}, + {value: 0xe00d, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0x83}, + {value: 0x03f5, lo: 0x84, hi: 0x84}, + {value: 0x1329, lo: 0x85, hi: 0x85}, + {value: 0x447d, lo: 0x86, hi: 0x86}, + {value: 0xe07d, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0xe01d, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0xb4}, + {value: 0xe01d, lo: 0xb5, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xb7}, + {value: 0x2009, lo: 0xb8, hi: 0xb8}, + {value: 0x6ec1, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xbf}, + // Block 0x6b, offset 0x358 + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x3308, lo: 0x8b, hi: 0x8b}, + {value: 0x0008, lo: 0x8c, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xab}, + {value: 0x3b08, lo: 0xac, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x6c, offset 0x368 + {value: 0x0000, lo: 0x05}, + {value: 0x0208, lo: 0x80, hi: 0xb1}, + {value: 0x0108, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6d, offset 0x36e + {value: 0x0000, lo: 0x03}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xbf}, + // Block 0x6e, offset 0x372 + {value: 0x0000, lo: 0x0e}, + {value: 0x3008, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xba}, + {value: 0x0008, lo: 0xbb, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x6f, offset 0x381 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x70, offset 0x386 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x91}, + {value: 0x3008, lo: 0x92, hi: 0x92}, + {value: 0x3808, lo: 0x93, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x71, offset 0x38e + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb9}, + {value: 0x3008, lo: 0xba, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x72, offset 0x398 + {value: 0x0000, lo: 0x0a}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x73, offset 0x3a3 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x74, offset 0x3ab + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8c}, + {value: 0x3008, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbd}, + {value: 0x0008, lo: 0xbe, hi: 0xbf}, + // Block 0x75, offset 0x3bc + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x76, offset 0x3c5 + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x9a}, + {value: 0x0008, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3b08, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x77, offset 0x3d5 + {value: 0x0000, lo: 0x0c}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x90}, + {value: 0x0008, lo: 0x91, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x78, offset 0x3e2 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x449d, lo: 0x9c, hi: 0x9c}, + {value: 0x44b5, lo: 0x9d, hi: 0x9d}, + {value: 0x2971, lo: 0x9e, hi: 0x9e}, + {value: 0xe06d, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa8}, + {value: 0x6ed9, lo: 0xa9, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x44cd, lo: 0xb0, hi: 0xbf}, + // Block 0x79, offset 0x3ee + {value: 0x0000, lo: 0x04}, + {value: 0x44ed, lo: 0x80, hi: 0x8f}, + {value: 0x450d, lo: 0x90, hi: 0x9f}, + {value: 0x452d, lo: 0xa0, hi: 0xaf}, + {value: 0x450d, lo: 0xb0, hi: 0xbf}, + // Block 0x7a, offset 0x3f3 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3b08, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x7b, offset 0x400 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x7c, offset 0x404 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x7d, offset 0x409 + {value: 0x0000, lo: 0x01}, + {value: 0x0040, lo: 0x80, hi: 0xbf}, + // Block 0x7e, offset 0x40b + {value: 0x0020, lo: 0x01}, + {value: 0x454d, lo: 0x80, hi: 0xbf}, + // Block 0x7f, offset 0x40d + {value: 0x0020, lo: 0x03}, + {value: 0x4d4d, lo: 0x80, hi: 0x94}, + {value: 0x4b0d, lo: 0x95, hi: 0x95}, + {value: 0x4fed, lo: 0x96, hi: 0xbf}, + // Block 0x80, offset 0x411 + {value: 0x0020, lo: 0x01}, + {value: 0x552d, lo: 0x80, hi: 0xbf}, + // Block 0x81, offset 0x413 + {value: 0x0020, lo: 0x03}, + {value: 0x5d2d, lo: 0x80, hi: 0x84}, + {value: 0x568d, lo: 0x85, hi: 0x85}, + {value: 0x5dcd, lo: 0x86, hi: 0xbf}, + // Block 0x82, offset 0x417 + {value: 0x0020, lo: 0x08}, + {value: 0x6b8d, lo: 0x80, hi: 0x8f}, + {value: 0x6d4d, lo: 0x90, hi: 0x90}, + {value: 0x6d8d, lo: 0x91, hi: 0xab}, + {value: 0x6ef1, lo: 0xac, hi: 0xac}, + {value: 0x70ed, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x710d, lo: 0xb0, hi: 0xbf}, + // Block 0x83, offset 0x420 + {value: 0x0020, lo: 0x05}, + {value: 0x730d, lo: 0x80, hi: 0xad}, + {value: 0x656d, lo: 0xae, hi: 0xae}, + {value: 0x78cd, lo: 0xaf, hi: 0xb5}, + {value: 0x6f8d, lo: 0xb6, hi: 0xb6}, + {value: 0x79ad, lo: 0xb7, hi: 0xbf}, + // Block 0x84, offset 0x426 + {value: 0x0028, lo: 0x03}, + {value: 0x7c71, lo: 0x80, hi: 0x82}, + {value: 0x7c31, lo: 0x83, hi: 0x83}, + {value: 0x7ce9, lo: 0x84, hi: 0xbf}, + // Block 0x85, offset 0x42a + {value: 0x0038, lo: 0x0f}, + {value: 0x9e01, lo: 0x80, hi: 0x83}, + {value: 0x9ea9, lo: 0x84, hi: 0x85}, + {value: 0x9ee1, lo: 0x86, hi: 0x87}, + {value: 0x9f19, lo: 0x88, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0xa0d9, lo: 0x92, hi: 0x97}, + {value: 0xa1f1, lo: 0x98, hi: 0x9c}, + {value: 0xa2d1, lo: 0x9d, hi: 0xb3}, + {value: 0x9d91, lo: 0xb4, hi: 0xb4}, + {value: 0x9e01, lo: 0xb5, hi: 0xb5}, + {value: 0xa7d9, lo: 0xb6, hi: 0xbb}, + {value: 0xa8b9, lo: 0xbc, hi: 0xbc}, + {value: 0xa849, lo: 0xbd, hi: 0xbd}, + {value: 0xa929, lo: 0xbe, hi: 0xbf}, + // Block 0x86, offset 0x43a + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x0008, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x87, offset 0x444 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0x88, offset 0x449 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x89, offset 0x44c + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x8a, offset 0x452 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x8b, offset 0x459 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x8c, offset 0x45e + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x8d, offset 0x462 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x8e, offset 0x468 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xbf}, + // Block 0x8f, offset 0x46d + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x90, offset 0x476 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x91, offset 0x47b + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0x92, offset 0x481 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x97}, + {value: 0x8b0d, lo: 0x98, hi: 0x9f}, + {value: 0x8b25, lo: 0xa0, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xbf}, + // Block 0x93, offset 0x488 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x8b25, lo: 0xb0, hi: 0xb7}, + {value: 0x8b0d, lo: 0xb8, hi: 0xbf}, + // Block 0x94, offset 0x48f + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x95, offset 0x496 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x96, offset 0x49a + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xae}, + {value: 0x0018, lo: 0xaf, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x97, offset 0x49f + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x98, offset 0x4a2 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xbf}, + // Block 0x99, offset 0x4a7 + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0808, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0808, lo: 0x8a, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb6}, + {value: 0x0808, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbb}, + {value: 0x0808, lo: 0xbc, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x0808, lo: 0xbf, hi: 0xbf}, + // Block 0x9a, offset 0x4b3 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x96}, + {value: 0x0818, lo: 0x97, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb6}, + {value: 0x0818, lo: 0xb7, hi: 0xbf}, + // Block 0x9b, offset 0x4b9 + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa6}, + {value: 0x0818, lo: 0xa7, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x9c, offset 0x4be + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xba}, + {value: 0x0818, lo: 0xbb, hi: 0xbf}, + // Block 0x9d, offset 0x4c5 + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0818, lo: 0x96, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbe}, + {value: 0x0818, lo: 0xbf, hi: 0xbf}, + // Block 0x9e, offset 0x4cd + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbb}, + {value: 0x0818, lo: 0xbc, hi: 0xbd}, + {value: 0x0808, lo: 0xbe, hi: 0xbf}, + // Block 0x9f, offset 0x4d2 + {value: 0x0000, lo: 0x03}, + {value: 0x0818, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x0818, lo: 0x92, hi: 0xbf}, + // Block 0xa0, offset 0x4d6 + {value: 0x0000, lo: 0x0f}, + {value: 0x0808, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x94}, + {value: 0x0808, lo: 0x95, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x98}, + {value: 0x0808, lo: 0x99, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xa1, offset 0x4e6 + {value: 0x0000, lo: 0x06}, + {value: 0x0818, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0818, lo: 0x90, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xbc}, + {value: 0x0818, lo: 0xbd, hi: 0xbf}, + // Block 0xa2, offset 0x4ed + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xa3, offset 0x4f1 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb8}, + {value: 0x0018, lo: 0xb9, hi: 0xbf}, + // Block 0xa4, offset 0x4f5 + {value: 0x0000, lo: 0x06}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0818, lo: 0x98, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb7}, + {value: 0x0818, lo: 0xb8, hi: 0xbf}, + // Block 0xa5, offset 0x4fc + {value: 0x0000, lo: 0x01}, + {value: 0x0808, lo: 0x80, hi: 0xbf}, + // Block 0xa6, offset 0x4fe + {value: 0x0000, lo: 0x02}, + {value: 0x0808, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0xa7, offset 0x501 + {value: 0x0000, lo: 0x02}, + {value: 0x03dd, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xa8, offset 0x504 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xbf}, + // Block 0xa9, offset 0x508 + {value: 0x0000, lo: 0x08}, + {value: 0x0908, lo: 0x80, hi: 0x80}, + {value: 0x0a08, lo: 0x81, hi: 0xa1}, + {value: 0x0c08, lo: 0xa2, hi: 0xa2}, + {value: 0x0a08, lo: 0xa3, hi: 0xa3}, + {value: 0x3308, lo: 0xa4, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0808, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xaa, offset 0x511 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0818, lo: 0xa0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xab, offset 0x515 + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xac}, + {value: 0x0818, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0808, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xac, offset 0x51d + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0xa6}, + {value: 0x0808, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0a08, lo: 0xb0, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb3}, + {value: 0x0a08, lo: 0xb4, hi: 0xbf}, + // Block 0xad, offset 0x525 + {value: 0x0000, lo: 0x07}, + {value: 0x0a08, lo: 0x80, hi: 0x84}, + {value: 0x0808, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x90}, + {value: 0x0a18, lo: 0x91, hi: 0x93}, + {value: 0x0c18, lo: 0x94, hi: 0x94}, + {value: 0x0818, lo: 0x95, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xae, offset 0x52d + {value: 0x0000, lo: 0x0b}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0a08, lo: 0xb0, hi: 0xb0}, + {value: 0x0808, lo: 0xb1, hi: 0xb1}, + {value: 0x0a08, lo: 0xb2, hi: 0xb3}, + {value: 0x0c08, lo: 0xb4, hi: 0xb6}, + {value: 0x0808, lo: 0xb7, hi: 0xb7}, + {value: 0x0a08, lo: 0xb8, hi: 0xb8}, + {value: 0x0c08, lo: 0xb9, hi: 0xba}, + {value: 0x0a08, lo: 0xbb, hi: 0xbc}, + {value: 0x0c08, lo: 0xbd, hi: 0xbd}, + {value: 0x0a08, lo: 0xbe, hi: 0xbf}, + // Block 0xaf, offset 0x539 + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x80}, + {value: 0x0a08, lo: 0x81, hi: 0x81}, + {value: 0x0c08, lo: 0x82, hi: 0x83}, + {value: 0x0a08, lo: 0x84, hi: 0x84}, + {value: 0x0818, lo: 0x85, hi: 0x88}, + {value: 0x0c18, lo: 0x89, hi: 0x89}, + {value: 0x0a18, lo: 0x8a, hi: 0x8a}, + {value: 0x0918, lo: 0x8b, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xb0, offset 0x545 + {value: 0x0000, lo: 0x05}, + {value: 0x3008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xb1, offset 0x54b + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x91}, + {value: 0x0018, lo: 0x92, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xb2, offset 0x554 + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0xb3, offset 0x560 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xb4, offset 0x567 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb2}, + {value: 0x3b08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xbf}, + // Block 0xb5, offset 0x570 + {value: 0x0000, lo: 0x0a}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xb6, offset 0x57b + {value: 0x0000, lo: 0x06}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xbe}, + {value: 0x3008, lo: 0xbf, hi: 0xbf}, + // Block 0xb7, offset 0x582 + {value: 0x0000, lo: 0x0e}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8d}, + {value: 0x3008, lo: 0x8e, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xb8, offset 0x591 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3808, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xb9, offset 0x59e + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xba, offset 0x5ab + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x3308, lo: 0x9f, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa9}, + {value: 0x3b08, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xbb, offset 0x5b4 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xbc, offset 0x5b8 + {value: 0x0000, lo: 0x0e}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xbf}, + // Block 0xbd, offset 0x5c7 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xbe, offset 0x5cf + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x85}, + {value: 0x0018, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xbf, offset 0x5da + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xc0, offset 0x5e3 + {value: 0x0000, lo: 0x05}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9b}, + {value: 0x3308, lo: 0x9c, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0xc1, offset 0x5e9 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xc2, offset 0x5f1 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xc3, offset 0x5fa + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb5}, + {value: 0x3808, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xc4, offset 0x605 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0xbf}, + // Block 0xc5, offset 0x608 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbf}, + // Block 0xc6, offset 0x614 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0xc7, offset 0x61d + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xbf}, + // Block 0xc8, offset 0x620 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0xc9, offset 0x625 + {value: 0x0000, lo: 0x08}, + {value: 0x3008, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xca, offset 0x62e + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xbf}, + // Block 0xcb, offset 0x633 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x3008, lo: 0x91, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x99}, + {value: 0x3308, lo: 0x9a, hi: 0x9b}, + {value: 0x3008, lo: 0x9c, hi: 0x9f}, + {value: 0x3b08, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xa1}, + {value: 0x0018, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xa3}, + {value: 0x3008, lo: 0xa4, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xbf}, + // Block 0xcc, offset 0x640 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xcd, offset 0x64b + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x3b08, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0xbf}, + // Block 0xce, offset 0x654 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x3308, lo: 0x8a, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x98}, + {value: 0x3b08, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xa2}, + {value: 0x0040, lo: 0xa3, hi: 0xbf}, + // Block 0xcf, offset 0x65e + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xd0, offset 0x661 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xd1, offset 0x66b + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xbf}, + // Block 0xd2, offset 0x674 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xa9}, + {value: 0x3308, lo: 0xaa, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xd3, offset 0x680 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xd4, offset 0x68d + {value: 0x0000, lo: 0x0c}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xbf}, + // Block 0xd5, offset 0x69a + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x3008, lo: 0x93, hi: 0x94}, + {value: 0x3308, lo: 0x95, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x96}, + {value: 0x3b08, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xbf}, + // Block 0xd6, offset 0x6a8 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xd7, offset 0x6af + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbf}, + // Block 0xd8, offset 0x6b3 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xd9, offset 0x6b7 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xda, offset 0x6ba + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xdb, offset 0x6bf + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0xbf}, + // Block 0xdc, offset 0x6c2 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0340, lo: 0xb0, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xdd, offset 0x6c7 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0xbf}, + // Block 0xde, offset 0x6ca + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xdf, offset 0x6d1 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xe0, offset 0x6d8 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0xe1, offset 0x6dc + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0xe2, offset 0x6e7 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0xe3, offset 0x6ea + {value: 0x0000, lo: 0x02}, + {value: 0xe105, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0xe4, offset 0x6ed + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0xe5, offset 0x6f0 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3008, lo: 0x91, hi: 0xbf}, + // Block 0xe6, offset 0x6f6 + {value: 0x0000, lo: 0x05}, + {value: 0x3008, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xe7, offset 0x6fc + {value: 0x0000, lo: 0x08}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa1}, + {value: 0x0018, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xa3}, + {value: 0x3308, lo: 0xa4, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xe8, offset 0x705 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0xe9, offset 0x708 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0xea, offset 0x70b + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0xeb, offset 0x70e + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xbf}, + // Block 0xec, offset 0x711 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x92}, + {value: 0x0040, lo: 0x93, hi: 0xa3}, + {value: 0x0008, lo: 0xa4, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xed, offset 0x718 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0xee, offset 0x71b + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0xef, offset 0x720 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x03c0, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xbf}, + // Block 0xf0, offset 0x72a + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xf1, offset 0x72d + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xbf}, + // Block 0xf2, offset 0x731 + {value: 0x0000, lo: 0x0e}, + {value: 0x0018, lo: 0x80, hi: 0x9d}, + {value: 0xb609, lo: 0x9e, hi: 0x9e}, + {value: 0xb651, lo: 0x9f, hi: 0x9f}, + {value: 0xb699, lo: 0xa0, hi: 0xa0}, + {value: 0xb701, lo: 0xa1, hi: 0xa1}, + {value: 0xb769, lo: 0xa2, hi: 0xa2}, + {value: 0xb7d1, lo: 0xa3, hi: 0xa3}, + {value: 0xb839, lo: 0xa4, hi: 0xa4}, + {value: 0x3018, lo: 0xa5, hi: 0xa6}, + {value: 0x3318, lo: 0xa7, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xac}, + {value: 0x3018, lo: 0xad, hi: 0xb2}, + {value: 0x0340, lo: 0xb3, hi: 0xba}, + {value: 0x3318, lo: 0xbb, hi: 0xbf}, + // Block 0xf3, offset 0x740 + {value: 0x0000, lo: 0x0b}, + {value: 0x3318, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0x84}, + {value: 0x3318, lo: 0x85, hi: 0x8b}, + {value: 0x0018, lo: 0x8c, hi: 0xa9}, + {value: 0x3318, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xba}, + {value: 0xb8a1, lo: 0xbb, hi: 0xbb}, + {value: 0xb8e9, lo: 0xbc, hi: 0xbc}, + {value: 0xb931, lo: 0xbd, hi: 0xbd}, + {value: 0xb999, lo: 0xbe, hi: 0xbe}, + {value: 0xba01, lo: 0xbf, hi: 0xbf}, + // Block 0xf4, offset 0x74c + {value: 0x0000, lo: 0x03}, + {value: 0xba69, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xbf}, + // Block 0xf5, offset 0x750 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x3318, lo: 0x82, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0xbf}, + // Block 0xf6, offset 0x755 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0xf7, offset 0x759 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xf8, offset 0x75e + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0xf9, offset 0x762 + {value: 0x0000, lo: 0x04}, + {value: 0x3308, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0xfa, offset 0x767 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x3308, lo: 0xa1, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xfb, offset 0x770 + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xbf}, + // Block 0xfc, offset 0x77b + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0008, lo: 0xb7, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0xfd, offset 0x781 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x8e}, + {value: 0x0018, lo: 0x8f, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0xfe, offset 0x787 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xff, offset 0x78d + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x86}, + {value: 0x0818, lo: 0x87, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0x100, offset 0x793 + {value: 0x0000, lo: 0x08}, + {value: 0x0a08, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x8a}, + {value: 0x0b08, lo: 0x8b, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0818, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x101, offset 0x79c + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xb0}, + {value: 0x0818, lo: 0xb1, hi: 0xbf}, + // Block 0x102, offset 0x79f + {value: 0x0000, lo: 0x02}, + {value: 0x0818, lo: 0x80, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x103, offset 0x7a2 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0818, lo: 0x81, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x104, offset 0x7a6 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0x105, offset 0x7aa + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x106, offset 0x7ae + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0x107, offset 0x7b4 + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0x108, offset 0x7ba + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x8f}, + {value: 0xc229, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xbf}, + // Block 0x109, offset 0x7bf + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xbf}, + // Block 0x10a, offset 0x7c2 + {value: 0x0000, lo: 0x0f}, + {value: 0xc851, lo: 0x80, hi: 0x80}, + {value: 0xc8a1, lo: 0x81, hi: 0x81}, + {value: 0xc8f1, lo: 0x82, hi: 0x82}, + {value: 0xc941, lo: 0x83, hi: 0x83}, + {value: 0xc991, lo: 0x84, hi: 0x84}, + {value: 0xc9e1, lo: 0x85, hi: 0x85}, + {value: 0xca31, lo: 0x86, hi: 0x86}, + {value: 0xca81, lo: 0x87, hi: 0x87}, + {value: 0xcad1, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0xcb21, lo: 0x90, hi: 0x90}, + {value: 0xcb41, lo: 0x91, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xbf}, + // Block 0x10b, offset 0x7d2 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x10c, offset 0x7d9 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x10d, offset 0x7dc + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xbf}, + // Block 0x10e, offset 0x7e1 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x10f, offset 0x7e5 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x110, offset 0x7eb + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0x111, offset 0x7f2 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbf}, + // Block 0x112, offset 0x7f6 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x113, offset 0x7fa + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x114, offset 0x803 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x115, offset 0x80a + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0x116, offset 0x80f + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x92}, + {value: 0x0040, lo: 0x93, hi: 0x93}, + {value: 0x0018, lo: 0x94, hi: 0xbf}, + // Block 0x117, offset 0x813 + {value: 0x0000, lo: 0x0d}, + {value: 0x0018, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0xaf}, + {value: 0x1f41, lo: 0xb0, hi: 0xb0}, + {value: 0x00c9, lo: 0xb1, hi: 0xb1}, + {value: 0x0069, lo: 0xb2, hi: 0xb2}, + {value: 0x0079, lo: 0xb3, hi: 0xb3}, + {value: 0x1f51, lo: 0xb4, hi: 0xb4}, + {value: 0x1f61, lo: 0xb5, hi: 0xb5}, + {value: 0x1f71, lo: 0xb6, hi: 0xb6}, + {value: 0x1f81, lo: 0xb7, hi: 0xb7}, + {value: 0x1f91, lo: 0xb8, hi: 0xb8}, + {value: 0x1fa1, lo: 0xb9, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x118, offset 0x821 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0x119, offset 0x824 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x11a, offset 0x827 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x11b, offset 0x82b + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x11c, offset 0x82f + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x11d, offset 0x832 + {value: 0x0020, lo: 0x0f}, + {value: 0xdf21, lo: 0x80, hi: 0x89}, + {value: 0x8e35, lo: 0x8a, hi: 0x8a}, + {value: 0xe061, lo: 0x8b, hi: 0x9c}, + {value: 0x8e55, lo: 0x9d, hi: 0x9d}, + {value: 0xe2a1, lo: 0x9e, hi: 0xa2}, + {value: 0x8e75, lo: 0xa3, hi: 0xa3}, + {value: 0xe341, lo: 0xa4, hi: 0xab}, + {value: 0x7f0d, lo: 0xac, hi: 0xac}, + {value: 0xe441, lo: 0xad, hi: 0xaf}, + {value: 0x8e95, lo: 0xb0, hi: 0xb0}, + {value: 0xe4a1, lo: 0xb1, hi: 0xb6}, + {value: 0x8eb5, lo: 0xb7, hi: 0xb9}, + {value: 0xe561, lo: 0xba, hi: 0xba}, + {value: 0x8f15, lo: 0xbb, hi: 0xbb}, + {value: 0xe581, lo: 0xbc, hi: 0xbf}, + // Block 0x11e, offset 0x842 + {value: 0x0020, lo: 0x10}, + {value: 0x93b5, lo: 0x80, hi: 0x80}, + {value: 0xf101, lo: 0x81, hi: 0x86}, + {value: 0x93d5, lo: 0x87, hi: 0x8a}, + {value: 0xda61, lo: 0x8b, hi: 0x8b}, + {value: 0xf1c1, lo: 0x8c, hi: 0x96}, + {value: 0x9455, lo: 0x97, hi: 0x97}, + {value: 0xf321, lo: 0x98, hi: 0xa3}, + {value: 0x9475, lo: 0xa4, hi: 0xa6}, + {value: 0xf4a1, lo: 0xa7, hi: 0xaa}, + {value: 0x94d5, lo: 0xab, hi: 0xab}, + {value: 0xf521, lo: 0xac, hi: 0xac}, + {value: 0x94f5, lo: 0xad, hi: 0xad}, + {value: 0xf541, lo: 0xae, hi: 0xaf}, + {value: 0x9515, lo: 0xb0, hi: 0xb1}, + {value: 0xf581, lo: 0xb2, hi: 0xbe}, + {value: 0x2040, lo: 0xbf, hi: 0xbf}, + // Block 0x11f, offset 0x853 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0xbf}, + // Block 0x120, offset 0x856 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0340, lo: 0x81, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x9f}, + {value: 0x0340, lo: 0xa0, hi: 0xbf}, + // Block 0x121, offset 0x85b + {value: 0x0000, lo: 0x01}, + {value: 0x0340, lo: 0x80, hi: 0xbf}, + // Block 0x122, offset 0x85d + {value: 0x0000, lo: 0x01}, + {value: 0x33c0, lo: 0x80, hi: 0xbf}, + // Block 0x123, offset 0x85f + {value: 0x0000, lo: 0x02}, + {value: 0x33c0, lo: 0x80, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, +} + +// Total table size 43370 bytes (42KiB); checksum: EBD909C0 diff --git a/vendor/golang.org/x/net/idna/tables9.0.0.go b/vendor/golang.org/x/net/idna/tables9.0.0.go new file mode 100644 index 0000000..4074b53 --- /dev/null +++ b/vendor/golang.org/x/net/idna/tables9.0.0.go @@ -0,0 +1,4487 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build !go1.10 +// +build !go1.10 + +package idna + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "9.0.0" + +var mappings string = "" + // Size: 8175 bytes + "\x00\x01 \x03 ̈\x01a\x03 Ì„\x012\x013\x03 Ì\x03 ̧\x011\x01o\x051â„4\x051â„2" + + "\x053â„4\x03i̇\x03l·\x03ʼn\x01s\x03dž\x03â±¥\x03ⱦ\x01h\x01j\x01r\x01w\x01y" + + "\x03 ̆\x03 ̇\x03 ÌŠ\x03 ̨\x03 ̃\x03 Ì‹\x01l\x01x\x04̈Ì\x03 ι\x01;\x05 ̈Ì" + + "\x04Õ¥Ö‚\x04اٴ\x04وٴ\x04Û‡Ù´\x04يٴ\x06क़\x06ख़\x06ग़\x06ज़\x06ड़\x06ढ़\x06फ़" + + "\x06य़\x06ড়\x06ঢ়\x06য়\x06ਲ਼\x06ਸ਼\x06ਖ਼\x06ਗ਼\x06ਜ਼\x06ਫ਼\x06ଡ଼\x06ଢ଼" + + "\x06à¹à¸²\x06à»àº²\x06ຫນ\x06ຫມ\x06གྷ\x06ཌྷ\x06དྷ\x06བྷ\x06ཛྷ\x06ཀྵ\x06ཱི\x06ཱུ" + + "\x06ྲྀ\x09ྲཱྀ\x06ླྀ\x09ླཱྀ\x06ཱྀ\x06ྒྷ\x06ྜྷ\x06ྡྷ\x06ྦྷ\x06ྫྷ\x06à¾à¾µ\x02" + + "в\x02д\x02о\x02Ñ\x02Ñ‚\x02ÑŠ\x02Ñ£\x02æ\x01b\x01d\x01e\x02Ç\x01g\x01i\x01k" + + "\x01m\x01n\x02È£\x01p\x01t\x01u\x02É\x02É‘\x02É™\x02É›\x02Éœ\x02Å‹\x02É”\x02ɯ" + + "\x01v\x02β\x02γ\x02δ\x02φ\x02χ\x02Ï\x02н\x02É’\x01c\x02É•\x02ð\x01f\x02ÉŸ" + + "\x02É¡\x02É¥\x02ɨ\x02É©\x02ɪ\x02Ê\x02É­\x02ÊŸ\x02ɱ\x02É°\x02ɲ\x02ɳ\x02É´\x02ɵ" + + "\x02ɸ\x02Ê‚\x02ʃ\x02Æ«\x02ʉ\x02ÊŠ\x02Ê‹\x02ÊŒ\x01z\x02Ê\x02Ê‘\x02Ê’\x02θ\x02ss" + + "\x02ά\x02έ\x02ή\x02ί\x02ÏŒ\x02Ï\x02ÏŽ\x05ἀι\x05á¼Î¹\x05ἂι\x05ἃι\x05ἄι\x05ἅι" + + "\x05ἆι\x05ἇι\x05ἠι\x05ἡι\x05ἢι\x05ἣι\x05ἤι\x05ἥι\x05ἦι\x05ἧι\x05ὠι\x05ὡι" + + "\x05ὢι\x05ὣι\x05ὤι\x05ὥι\x05ὦι\x05ὧι\x05ὰι\x04αι\x04άι\x05ᾶι\x02ι\x05 ̈͂" + + "\x05ὴι\x04ηι\x04ήι\x05ῆι\x05 Ì“Ì€\x05 Ì“Ì\x05 Ì“Í‚\x02Î\x05 ̔̀\x05 Ì”Ì\x05 ̔͂" + + "\x02ΰ\x05 ̈̀\x01`\x05ὼι\x04ωι\x04ώι\x05ῶι\x06′′\x09′′′\x06‵‵\x09‵‵‵\x02!" + + "!\x02??\x02?!\x02!?\x0c′′′′\x010\x014\x015\x016\x017\x018\x019\x01+\x01=" + + "\x01(\x01)\x02rs\x02ħ\x02no\x01q\x02sm\x02tm\x02ω\x02Ã¥\x02×\x02ב\x02×’" + + "\x02ד\x02Ï€\x051â„7\x051â„9\x061â„10\x051â„3\x052â„3\x051â„5\x052â„5\x053â„5\x054" + + "â„5\x051â„6\x055â„6\x051â„8\x053â„8\x055â„8\x057â„8\x041â„\x02ii\x02iv\x02vi" + + "\x04viii\x02ix\x02xi\x050â„3\x06∫∫\x09∫∫∫\x06∮∮\x09∮∮∮\x0210\x0211\x0212" + + "\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)" + + "\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\x0c∫∫∫∫" + + "\x02==\x05â«Ì¸\x02É«\x02ɽ\x02È¿\x02É€\x01.\x04 ã‚™\x04 ã‚š\x06より\x06コト\x05(á„€)\x05" + + "(á„‚)\x05(ᄃ)\x05(á„…)\x05(ᄆ)\x05(ᄇ)\x05(ᄉ)\x05(á„‹)\x05(á„Œ)\x05(á„Ž)\x05(á„)\x05(á„" + + ")\x05(á„‘)\x05(á„’)\x05(ê°€)\x05(나)\x05(다)\x05(ë¼)\x05(마)\x05(ë°”)\x05(사)\x05(ì•„)" + + "\x05(ìž)\x05(ì°¨)\x05(ì¹´)\x05(타)\x05(파)\x05(하)\x05(주)\x08(오전)\x08(오후)\x05(一)" + + "\x05(二)\x05(三)\x05(å››)\x05(五)\x05(å…­)\x05(七)\x05(å…«)\x05(ä¹)\x05(å)\x05(月)" + + "\x05(ç«)\x05(æ°´)\x05(木)\x05(金)\x05(土)\x05(æ—¥)\x05(æ ª)\x05(有)\x05(社)\x05(å)" + + "\x05(特)\x05(財)\x05(ç¥)\x05(労)\x05(代)\x05(呼)\x05(å­¦)\x05(監)\x05(ä¼)\x05(資)" + + "\x05(å”)\x05(祭)\x05(休)\x05(自)\x05(至)\x0221\x0222\x0223\x0224\x0225\x0226" + + "\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06참고\x06주ì˜\x0236" + + "\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248" + + "\x0249\x0250\x041月\x042月\x043月\x044月\x045月\x046月\x047月\x048月\x049月\x0510" + + "月\x0511月\x0512月\x02hg\x02ev\x0cアパート\x0cアルファ\x0cアンペア\x09アール\x0cイニング\x09" + + "インãƒ\x09ウォン\x0fエスクード\x0cエーカー\x09オンス\x09オーム\x09カイリ\x0cカラット\x0cカロリー\x09ガロ" + + "ン\x09ガンマ\x06ギガ\x09ギニー\x0cキュリー\x0cギルダー\x06キロ\x0fキログラム\x12キロメートル\x0fキロワッ" + + "ト\x09グラム\x0fグラムトン\x0fクルゼイロ\x0cクローãƒ\x09ケース\x09コルナ\x09コーãƒ\x0cサイクル\x0fサンãƒ" + + "ーム\x0cシリング\x09センãƒ\x09セント\x09ダース\x06デシ\x06ドル\x06トン\x06ナノ\x09ノット\x09ãƒã‚¤ãƒ„" + + "\x0fパーセント\x09パーツ\x0cãƒãƒ¼ãƒ¬ãƒ«\x0fピアストル\x09ピクル\x06ピコ\x06ビル\x0fファラッド\x0cフィート" + + "\x0fブッシェル\x09フラン\x0fヘクタール\x06ペソ\x09ペニヒ\x09ヘルツ\x09ペンス\x09ページ\x09ベータ\x0cãƒã‚¤" + + "ント\x09ボルト\x06ホン\x09ãƒãƒ³ãƒ‰\x09ホール\x09ホーン\x0cマイクロ\x09マイル\x09マッãƒ\x09マルク\x0fマ" + + "ンション\x0cミクロン\x06ミリ\x0fミリãƒãƒ¼ãƒ«\x06メガ\x0cメガトン\x0cメートル\x09ヤード\x09ヤール\x09ユアン" + + "\x0cリットル\x06リラ\x09ルピー\x0cルーブル\x06レム\x0fレントゲン\x09ワット\x040点\x041点\x042点" + + "\x043点\x044点\x045点\x046点\x047点\x048点\x049点\x0510点\x0511点\x0512点\x0513点" + + "\x0514点\x0515点\x0516点\x0517点\x0518点\x0519点\x0520点\x0521点\x0522点\x0523点" + + "\x0524点\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06å¹³æˆ\x06昭和\x06大正\x06明治\x0cæ ª" + + "å¼ä¼šç¤¾\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02m" + + "g\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m" + + "3\x05m∕s\x06m∕s2\x07rad∕s\x08rad∕s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv" + + "\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c∕kg\x02db\x02gy\x02" + + "ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02" + + "wb\x05v∕m\x05a∕m\x041æ—¥\x042æ—¥\x043æ—¥\x044æ—¥\x045æ—¥\x046æ—¥\x047æ—¥\x048æ—¥\x049æ—¥" + + "\x0510æ—¥\x0511æ—¥\x0512æ—¥\x0513æ—¥\x0514æ—¥\x0515æ—¥\x0516æ—¥\x0517æ—¥\x0518æ—¥\x0519æ—¥" + + "\x0520æ—¥\x0521æ—¥\x0522æ—¥\x0523æ—¥\x0524æ—¥\x0525æ—¥\x0526æ—¥\x0527æ—¥\x0528æ—¥\x0529æ—¥" + + "\x0530æ—¥\x0531æ—¥\x02ÑŒ\x02ɦ\x02ɬ\x02Êž\x02ʇ\x02Å“\x04𤋮\x04𢡊\x04𢡄\x04ð£•\x04𥉉" + + "\x04ð¥³\x04𧻓\x02ff\x02fi\x02fl\x02st\x04Õ´Õ¶\x04Õ´Õ¥\x04Õ´Õ«\x04Õ¾Õ¶\x04Õ´Õ­\x04×™Ö´" + + "\x04ײַ\x02×¢\x02×”\x02×›\x02ל\x02×\x02ר\x02ת\x04ש×\x04שׂ\x06שּ×\x06שּׂ\x04×" + + "Ö·\x04×Ö¸\x04×Ö¼\x04בּ\x04×’Ö¼\x04דּ\x04×”Ö¼\x04וּ\x04×–Ö¼\x04טּ\x04×™Ö¼\x04ךּ\x04" + + "×›Ö¼\x04לּ\x04מּ\x04× Ö¼\x04סּ\x04×£Ö¼\x04פּ\x04צּ\x04קּ\x04רּ\x04שּ\x04תּ" + + "\x04וֹ\x04בֿ\x04×›Ö¿\x04פֿ\x04×ל\x02Ù±\x02Ù»\x02Ù¾\x02Ú€\x02Ùº\x02Ù¿\x02Ù¹\x02Ú¤" + + "\x02Ú¦\x02Ú„\x02Úƒ\x02Ú†\x02Ú‡\x02Ú\x02ÚŒ\x02ÚŽ\x02Úˆ\x02Ú˜\x02Ú‘\x02Ú©\x02Ú¯\x02Ú³" + + "\x02Ú±\x02Úº\x02Ú»\x02Û€\x02Û\x02Ú¾\x02Û’\x02Û“\x02Ú­\x02Û‡\x02Û†\x02Ûˆ\x02Û‹\x02Û…" + + "\x02Û‰\x02Û\x02Ù‰\x04ئا\x04ئە\x04ئو\x04ئۇ\x04ئۆ\x04ئۈ\x04ئÛ\x04ئى\x02ÛŒ\x04" + + "ئج\x04ئح\x04ئم\x04ئي\x04بج\x04بح\x04بخ\x04بم\x04بى\x04بي\x04تج\x04تح" + + "\x04تخ\x04تم\x04تى\x04تي\x04ثج\x04ثم\x04ثى\x04ثي\x04جح\x04جم\x04حج\x04حم" + + "\x04خج\x04خح\x04خم\x04سج\x04سح\x04سخ\x04سم\x04صح\x04صم\x04ضج\x04ضح\x04ضخ" + + "\x04ضم\x04طح\x04طم\x04ظم\x04عج\x04عم\x04غج\x04غم\x04Ùج\x04ÙØ­\x04ÙØ®\x04ÙÙ…" + + "\x04ÙÙ‰\x04ÙÙŠ\x04قح\x04قم\x04قى\x04قي\x04كا\x04كج\x04كح\x04كخ\x04كل\x04كم" + + "\x04كى\x04كي\x04لج\x04لح\x04لخ\x04لم\x04لى\x04لي\x04مج\x04مح\x04مخ\x04مم" + + "\x04مى\x04مي\x04نج\x04نح\x04نخ\x04نم\x04نى\x04ني\x04هج\x04هم\x04هى\x04هي" + + "\x04يج\x04يح\x04يخ\x04يم\x04يى\x04يي\x04ذٰ\x04رٰ\x04ىٰ\x05 ٌّ\x05 ÙÙ‘\x05" + + " ÙŽÙ‘\x05 ÙÙ‘\x05 ÙÙ‘\x05 ّٰ\x04ئر\x04ئز\x04ئن\x04بر\x04بز\x04بن\x04تر\x04تز" + + "\x04تن\x04ثر\x04ثز\x04ثن\x04ما\x04نر\x04نز\x04نن\x04ير\x04يز\x04ين\x04ئخ" + + "\x04ئه\x04به\x04ته\x04صخ\x04له\x04نه\x04هٰ\x04يه\x04ثه\x04سه\x04شم\x04شه" + + "\x06Ù€ÙŽÙ‘\x06Ù€ÙÙ‘\x06Ù€ÙÙ‘\x04طى\x04طي\x04عى\x04عي\x04غى\x04غي\x04سى\x04سي" + + "\x04شى\x04شي\x04حى\x04حي\x04جى\x04جي\x04خى\x04خي\x04صى\x04صي\x04ضى\x04ضي" + + "\x04شج\x04شح\x04شخ\x04شر\x04سر\x04صر\x04ضر\x04اً\x06تجم\x06تحج\x06تحم" + + "\x06تخم\x06تمج\x06تمح\x06تمخ\x06جمح\x06حمي\x06حمى\x06سحج\x06سجح\x06سجى" + + "\x06سمح\x06سمج\x06سمم\x06صحح\x06صمم\x06شحم\x06شجي\x06شمخ\x06شمم\x06ضحى" + + "\x06ضخم\x06طمح\x06طمم\x06طمي\x06عجم\x06عمم\x06عمى\x06غمم\x06غمي\x06غمى" + + "\x06Ùخم\x06قمح\x06قمم\x06لحم\x06لحي\x06لحى\x06لجج\x06لخم\x06لمح\x06محج" + + "\x06محم\x06محي\x06مجح\x06مجم\x06مخج\x06مخم\x06مجخ\x06همج\x06همم\x06نحم" + + "\x06نحى\x06نجم\x06نجى\x06نمي\x06نمى\x06يمم\x06بخي\x06تجي\x06تجى\x06تخي" + + "\x06تخى\x06تمي\x06تمى\x06جمي\x06جحى\x06جمى\x06سخى\x06صحي\x06شحي\x06ضحي" + + "\x06لجي\x06لمي\x06يحي\x06يجي\x06يمي\x06ممي\x06قمي\x06نحي\x06عمي\x06كمي" + + "\x06نجح\x06مخي\x06لجم\x06كمم\x06جحي\x06حجي\x06مجي\x06Ùمي\x06بحي\x06سخي" + + "\x06نجي\x06صلے\x06قلے\x08الله\x08اكبر\x08محمد\x08صلعم\x08رسول\x08عليه" + + "\x08وسلم\x06صلى!صلى الله عليه وسلم\x0fجل جلاله\x08ریال\x01,\x01:\x01!" + + "\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\\x01$" + + "\x01%\x01@\x04ـً\x04Ù€ÙŽ\x04Ù€Ù\x04Ù€Ù\x04ـّ\x04ـْ\x02Ø¡\x02Ø¢\x02Ø£\x02ؤ\x02Ø¥" + + "\x02ئ\x02ا\x02ب\x02Ø©\x02ت\x02Ø«\x02ج\x02Ø­\x02Ø®\x02د\x02Ø°\x02ر\x02ز\x02س" + + "\x02Ø´\x02ص\x02ض\x02Ø·\x02ظ\x02ع\x02غ\x02Ù\x02Ù‚\x02Ùƒ\x02Ù„\x02Ù…\x02Ù†\x02Ù‡" + + "\x02Ùˆ\x02ÙŠ\x04لآ\x04لأ\x04لإ\x04لا\x01\x22\x01'\x01/\x01^\x01|\x01~\x02¢" + + "\x02£\x02¬\x02¦\x02Â¥\x08ð…—ð…¥\x08ð…˜ð…¥\x0cð…˜ð…¥ð…®\x0cð…˜ð…¥ð…¯\x0cð…˜ð…¥ð…°\x0cð…˜ð…¥ð…±\x0cð…˜ð…¥ð…²\x08ð†¹" + + "ð…¥\x08ð†ºð…¥\x0cð†¹ð…¥ð…®\x0cð†ºð…¥ð…®\x0cð†¹ð…¥ð…¯\x0cð†ºð…¥ð…¯\x02ı\x02È·\x02α\x02ε\x02ζ\x02η\x02" + + "κ\x02λ\x02μ\x02ν\x02ξ\x02ο\x02σ\x02Ï„\x02Ï…\x02ψ\x03∇\x03∂\x02Ï\x02Ù®\x02Ú¡" + + "\x02Ù¯\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029,\x03(a)" + + "\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)\x03(k)" + + "\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)\x03(u)" + + "\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07〔s〕\x02wz\x02hv\x02sd\x03ppv\x02w" + + "c\x02mc\x02md\x02dj\x06ã»ã‹\x06ココ\x03サ\x03手\x03å­—\x03åŒ\x03デ\x03二\x03多\x03解" + + "\x03天\x03交\x03映\x03ç„¡\x03æ–™\x03å‰\x03後\x03å†\x03æ–°\x03åˆ\x03終\x03生\x03販\x03声" + + "\x03å¹\x03æ¼”\x03投\x03æ•\x03一\x03三\x03éŠ\x03å·¦\x03中\x03å³\x03指\x03èµ°\x03打\x03ç¦" + + "\x03空\x03åˆ\x03満\x03有\x03月\x03申\x03割\x03å–¶\x03é…\x09〔本〕\x09〔三〕\x09〔二〕\x09〔安" + + "〕\x09〔点〕\x09〔打〕\x09〔盗〕\x09〔å‹ã€•\x09〔敗〕\x03å¾—\x03å¯\x03丽\x03丸\x03ä¹\x03ä½ \x03" + + "ä¾®\x03ä¾»\x03倂\x03åº\x03å‚™\x03僧\x03åƒ\x03ã’ž\x03å…\x03å…”\x03å…¤\x03å…·\x03ã’¹\x03å…§\x03" + + "冗\x03冤\x03仌\x03冬\x03况\x03凵\x03刃\x03ã“Ÿ\x03刻\x03剆\x03剷\x03㔕\x03勇\x03勉\x03" + + "勤\x03勺\x03包\x03匆\x03北\x03å‰\x03å‘\x03åš\x03å³\x03å½\x03å¿\x03ç°\x03åŠ\x03åŸ\x03" + + "å«\x03å±\x03å†\x03å’ž\x03å¸\x03呈\x03周\x03å’¢\x03哶\x03å”\x03å•“\x03å•£\x03å–„\x03å–™\x03" + + "å–«\x03å–³\x03å—‚\x03圖\x03嘆\x03圗\x03噑\x03å™´\x03切\x03壮\x03城\x03埴\x03å \x03åž‹\x03" + + "å ²\x03å ±\x03墬\x03売\x03壷\x03夆\x03夢\x03奢\x03姬\x03娛\x03娧\x03姘\x03婦\x03ã›®\x03" + + "嬈\x03嬾\x03寃\x03寘\x03寧\x03寳\x03寿\x03å°†\x03å°¢\x03ãž\x03å± \x03å±®\x03å³€\x03å²\x03" + + "嵃\x03åµ®\x03嵫\x03åµ¼\x03å·¡\x03å·¢\x03ã ¯\x03å·½\x03帨\x03帽\x03幩\x03ã¡¢\x03㡼\x03庰\x03" + + "庳\x03庶\x03廊\x03廾\x03èˆ\x03å¼¢\x03㣇\x03å½¢\x03彫\x03㣣\x03徚\x03å¿\x03å¿—\x03忹\x03" + + "æ‚\x03㤺\x03㤜\x03æ‚”\x03惇\x03æ…ˆ\x03æ…Œ\x03æ…Ž\x03æ…º\x03憎\x03憲\x03憤\x03憯\x03懞\x03" + + "懲\x03懶\x03æˆ\x03戛\x03æ‰\x03抱\x03æ‹”\x03æ\x03挽\x03拼\x03æ¨\x03掃\x03æ¤\x03æ¢\x03" + + "æ…\x03掩\x03㨮\x03æ‘©\x03摾\x03æ’\x03æ‘·\x03㩬\x03æ•\x03敬\x03æ—£\x03書\x03晉\x03㬙\x03" + + "æš‘\x03㬈\x03㫤\x03冒\x03冕\x03最\x03æšœ\x03è‚­\x03ä™\x03朗\x03望\x03朡\x03æž\x03æ“\x03" + + "ã­‰\x03柺\x03æž…\x03æ¡’\x03梅\x03梎\x03æ Ÿ\x03椔\x03ã®\x03楂\x03榣\x03槪\x03檨\x03æ«›\x03" + + "ã°˜\x03次\x03æ­”\x03㱎\x03æ­²\x03殟\x03殺\x03æ®»\x03汎\x03沿\x03æ³\x03汧\x03æ´–\x03æ´¾\x03" + + "æµ·\x03æµ\x03浩\x03浸\x03涅\x03æ´´\x03港\x03æ¹®\x03ã´³\x03滋\x03滇\x03æ·¹\x03æ½®\x03濆\x03" + + "瀹\x03瀞\x03瀛\x03㶖\x03çŠ\x03ç½\x03ç·\x03ç‚­\x03ç……\x03熜\x03爨\x03爵\x03ç‰\x03犀\x03" + + "犕\x03çº\x03王\x03㺬\x03玥\x03㺸\x03瑇\x03ç‘œ\x03瑱\x03ç’…\x03ç“Š\x03ã¼›\x03甤\x03甾\x03" + + "ç•°\x03ç˜\x03㿼\x03䀈\x03ç›´\x03眞\x03真\x03çŠ\x03䀹\x03çž‹\x03ä†\x03ä‚–\x03ç¡Ž\x03碌\x03" + + "磌\x03䃣\x03祖\x03ç¦\x03秫\x03䄯\x03ç©€\x03ç©Š\x03ç©\x03䈂\x03篆\x03築\x03䈧\x03ç³’\x03" + + "䊠\x03糨\x03ç³£\x03ç´€\x03çµ£\x03äŒ\x03ç·‡\x03縂\x03ç¹…\x03䌴\x03ä™\x03罺\x03羕\x03翺\x03" + + "者\x03è \x03è°\x03ä•\x03育\x03脃\x03ä‹\x03脾\x03媵\x03舄\x03辞\x03ä‘«\x03芑\x03芋\x03" + + "èŠ\x03劳\x03花\x03芳\x03芽\x03苦\x03è‹¥\x03èŒ\x03è£\x03莭\x03茣\x03莽\x03è§\x03è‘—\x03" + + "è“\x03èŠ\x03èŒ\x03èœ\x03䔫\x03蓱\x03蓳\x03è”–\x03蕤\x03ä•\x03ä•¡\x03ä•«\x03è™\x03虜\x03" + + "虧\x03虩\x03èš©\x03蚈\x03蜎\x03蛢\x03è¹\x03蜨\x03è«\x03螆\x03蟡\x03è \x03ä—¹\x03è¡ \x03" + + "è¡£\x03裗\x03裞\x03䘵\x03裺\x03ã’»\x03äš¾\x03䛇\x03誠\x03è«­\x03變\x03豕\x03貫\x03è³\x03" + + "è´›\x03èµ·\x03è·‹\x03趼\x03è·°\x03è»”\x03輸\x03é‚”\x03郱\x03é„‘\x03é„›\x03鈸\x03é‹—\x03鋘\x03" + + "鉼\x03é¹\x03é•\x03é–‹\x03䦕\x03é–·\x03䧦\x03雃\x03嶲\x03霣\x03ä©®\x03䩶\x03韠\x03䪲\x03" + + "é ‹\x03é ©\x03飢\x03䬳\x03餩\x03馧\x03駂\x03駾\x03䯎\x03鬒\x03é±€\x03é³½\x03䳎\x03ä³­\x03" + + "鵧\x03䳸\x03麻\x03äµ–\x03黹\x03黾\x03é¼…\x03é¼\x03é¼–\x03é¼»" + +var xorData string = "" + // Size: 4855 bytes + "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" + + "\x02\x0f\x1f\x02\x0f\x1d\x02\x01\x13\x02\x0f\x16\x02\x0f\x0b\x02\x0f3" + + "\x02\x0f7\x02\x0f?\x02\x0f/\x02\x0f*\x02\x0c&\x02\x0c*\x02\x0c;\x02\x0c9" + + "\x02\x0c%\x02\xab\xed\x02\xab\xe2\x02\xab\xe3\x02\xa9\xe0\x02\xa9\xe1" + + "\x02\xa9\xe6\x02\xa3\xcb\x02\xa3\xc8\x02\xa3\xc9\x02\x01#\x02\x01\x08" + + "\x02\x0e>\x02\x0e'\x02\x0f\x03\x02\x03\x0d\x02\x03\x09\x02\x03\x17\x02" + + "\x03\x0e\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07" + + "\x0d\x02\x02\x0c\x02\x0c0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\x22" + + "\x02\x01)\x02\x01\x0a\x02\x01\x0c\x02\x02\x06\x02\x02\x02\x02\x03\x10" + + "\x03\x037 \x03\x0b+\x03\x02\x01\x04\x02\x01\x02\x02\x019\x02\x03\x1c\x02" + + "\x02$\x03\x80p$\x02\x03:\x02\x03\x0a\x03\xc1r.\x03\xc1r,\x03\xc1r\x02" + + "\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xc1s<\x03\xc1s*" + + "\x03\xc2L$\x03\xc2L;\x02\x09)\x02\x0a\x19\x03\x83\xab\xe3\x03\x83\xab" + + "\xf2\x03 4\xe0\x03\x81\xab\xea\x03\x81\xab\xf3\x03 4\xef\x03\x96\xe1\xcd" + + "\x03\x84\xe5\xc3\x02\x0d\x11\x03\x8b\xec\xcb\x03\x94\xec\xcf\x03\x9a\xec" + + "\xc2\x03\x8b\xec\xdb\x03\x94\xec\xdf\x03\x9a\xec\xd2\x03\x01\x0c!\x03" + + "\x01\x0c#\x03Ê \x9d\x03Ê£\x9c\x03Ê¢\x9f\x03Ê¥\x9e\x03ʤ\x91\x03ʧ\x90\x03ʦ\x93" + + "\x03Ê©\x92\x03ʨ\x95\x03\xca\xf3\xb5\x03\xca\xf0\xb4\x03\xca\xf1\xb7\x03" + + "\xca\xf6\xb6\x03\xca\xf7\x89\x03\xca\xf4\x88\x03\xca\xf5\x8b\x03\xca\xfa" + + "\x8a\x03\xca\xfb\x8d\x03\xca\xf8\x8c\x03\xca\xf9\x8f\x03\xca\xfe\x8e\x03" + + "\xca\xff\x81\x03\xca\xfc\x80\x03\xca\xfd\x83\x03\xca\xe2\x82\x03\xca\xe3" + + "\x85\x03\xca\xe0\x84\x03\xca\xe1\x87\x03\xca\xe6\x86\x03\xca\xe7\x99\x03" + + "\xca\xe4\x98\x03\xca\xe5\x9b\x03\xca\xea\x9a\x03\xca\xeb\x9d\x03\xca\xe8" + + "\x9c\x03Ø“\x89\x03ß”\x8b\x02\x010\x03\x03\x04\x1e\x03\x04\x15\x12\x03\x0b" + + "\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06\x05" + + "\x1d\x03\x06\x06\x00\x03\x06\x06\x0a\x03\x06\x06'\x03\x06\x062\x03\x0786" + + "\x03\x079/\x03\x079 \x03\x07:\x0e\x03\x07:\x1b\x03\x07:%\x03\x07;/\x03" + + "\x07;%\x03\x074\x11\x03\x076\x09\x03\x077*\x03\x070\x01\x03\x070\x0f\x03" + + "\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-\x03" + + "\x073\x14\x03\x073>\x03\x07'\x09\x03\x07 \x00\x03\x07\x1f\x0b\x03\x07" + + "\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03\x07" + + "\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\x0c&\x03\x07\x0c\x08\x03\x07" + + "\x0c\x13\x03\x07\x0d\x02\x03\x07\x0d\x1c\x03\x07\x0b5\x03\x07\x0b\x0a" + + "\x03\x07\x0b\x01\x03\x07\x0b\x0f\x03\x07\x05\x00\x03\x07\x05\x09\x03\x07" + + "\x05\x0b\x03\x07\x07\x01\x03\x07\x07\x08\x03\x07\x00<\x03\x07\x00+\x03" + + "\x07\x01)\x03\x07\x01\x1b\x03\x07\x01\x08\x03\x07\x03?\x03\x0445\x03\x04" + + "4\x08\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03\x04+ " + + "\x03\x04+<\x03\x04*&\x03\x04*\x22\x03\x04&8\x03\x04!\x01\x03\x04!\x22" + + "\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04\x03" + + "\x04\x12\x0a\x03\x04\x0d\x1d\x03\x04\x0d\x07\x03\x04\x0d \x03\x05<>\x03" + + "\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1d\x03\x054\x02\x03\x054" + + "\x07\x03\x0571\x03\x053\x1a\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03\x05)" + + ":\x03\x05)<\x03\x05)\x0c\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$\x1e" + + "\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\x226\x03" + + "\x05\x22\x0c\x03\x05\x22\x1c\x03\x05\x19\x0a\x03\x05\x1b\x09\x03\x05\x1b" + + "\x0c\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\x0c\x03\x05\x0c\x05\x03" + + "\x05\x0e\x0f\x03\x05\x01\x0e\x03\x05\x00(\x03\x05\x030\x03\x05\x03\x06" + + "\x03\x0a==\x03\x0a=1\x03\x0a=,\x03\x0a=\x0c\x03\x0a??\x03\x0a<\x08\x03" + + "\x0a9!\x03\x0a9)\x03\x0a97\x03\x0a99\x03\x0a6\x0a\x03\x0a6\x1c\x03\x0a6" + + "\x17\x03\x0a7'\x03\x0a78\x03\x0a73\x03\x0a'\x01\x03\x0a'&\x03\x0a\x1f" + + "\x0e\x03\x0a\x1f\x03\x03\x0a\x1f3\x03\x0a\x1b/\x03\x0a\x18\x19\x03\x0a" + + "\x19\x01\x03\x0a\x16\x14\x03\x0a\x0e\x22\x03\x0a\x0f\x10\x03\x0a\x0f\x02" + + "\x03\x0a\x0f \x03\x0a\x0c\x04\x03\x0a\x0b>\x03\x0a\x0b+\x03\x0a\x08/\x03" + + "\x0a\x046\x03\x0a\x05\x14\x03\x0a\x00\x04\x03\x0a\x00\x10\x03\x0a\x00" + + "\x14\x03\x0b<3\x03\x0b;*\x03\x0b9\x22\x03\x0b9)\x03\x0b97\x03\x0b+\x10" + + "\x03\x0b((\x03\x0b&5\x03\x0b$\x1c\x03\x0b$\x12\x03\x0b%\x04\x03\x0b#<" + + "\x03\x0b#0\x03\x0b#\x0d\x03\x0b#\x19\x03\x0b!:\x03\x0b!\x1f\x03\x0b!\x00" + + "\x03\x0b\x1e5\x03\x0b\x1c\x1d\x03\x0b\x1d-\x03\x0b\x1d(\x03\x0b\x18.\x03" + + "\x0b\x18 \x03\x0b\x18\x16\x03\x0b\x14\x13\x03\x0b\x15$\x03\x0b\x15\x22" + + "\x03\x0b\x12\x1b\x03\x0b\x12\x10\x03\x0b\x132\x03\x0b\x13=\x03\x0b\x12" + + "\x18\x03\x0b\x0c&\x03\x0b\x061\x03\x0b\x06:\x03\x0b\x05#\x03\x0b\x05<" + + "\x03\x0b\x04\x0b\x03\x0b\x04\x04\x03\x0b\x04\x1b\x03\x0b\x042\x03\x0b" + + "\x041\x03\x0b\x03\x03\x03\x0b\x03\x1d\x03\x0b\x03/\x03\x0b\x03+\x03\x0b" + + "\x02\x1b\x03\x0b\x02\x00\x03\x0b\x01\x1e\x03\x0b\x01\x08\x03\x0b\x015" + + "\x03\x06\x0d9\x03\x06\x0d=\x03\x06\x0d?\x03\x02\x001\x03\x02\x003\x03" + + "\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1b\x03\x02\x004\x03\x02\x00<\x03" + + "\x02\x02\x0a\x03\x02\x02\x0e\x03\x02\x01\x1a\x03\x02\x01\x07\x03\x02\x01" + + "\x05\x03\x02\x01\x0b\x03\x02\x01%\x03\x02\x01\x0c\x03\x02\x01\x04\x03" + + "\x02\x01\x1c\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03" + + "\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02" + + "\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022" + + "\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01" + + "\x11\x03\x02\x01\x1e\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0f\x03" + + "\x02\x01\x08\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\x0d\x03\x02\x03" + + "\x13\x03\x02\x03\x1d\x03\x02\x03\x1f\x03\x02\x00\x03\x03\x02\x00\x0d\x03" + + "\x02\x00\x01\x03\x02\x00\x1b\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00" + + "\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1f\x03\x07>\x1d\x03\x06\x1d\x0e" + + "\x03\x07>\x1c\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>" + + "\x02\x03\x06\x224\x03\x06\x1a.\x03\x07<%\x03\x06\x1c\x0b\x03\x0609\x03" + + "\x05\x1f\x01\x03\x04'\x08\x03\x93\xfd\xf5\x03\x02\x0d \x03\x02\x0d#\x03" + + "\x02\x0d!\x03\x02\x0d&\x03\x02\x0d\x22\x03\x02\x0d/\x03\x02\x0d,\x03\x02" + + "\x0d$\x03\x02\x0d'\x03\x02\x0d%\x03\x02\x0d;\x03\x02\x0d=\x03\x02\x0d?" + + "\x03\x099.\x03\x08\x0b7\x03\x08\x02\x14\x03\x08\x14\x0d\x03\x08.:\x03" + + "\x089'\x03\x0f\x0b\x18\x03\x0f\x1c1\x03\x0f\x17&\x03\x0f9\x1f\x03\x0f0" + + "\x0c\x03\x0e\x0a9\x03\x0e\x056\x03\x0e\x1c#\x03\x0f\x13\x0e\x03\x072\x00" + + "\x03\x070\x0d\x03\x072\x0b\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0f(\x03" + + "\x072\x05\x03\x06\x0f,\x03\x073\x15\x03\x06\x07\x08\x03\x05\x16\x02\x03" + + "\x04\x0b \x03\x05:8\x03\x05\x16%\x03\x0a\x0d\x1f\x03\x06\x16\x10\x03\x05" + + "\x1d5\x03\x05*;\x03\x05\x16\x1b\x03\x04.-\x03\x06\x1a\x19\x03\x04\x03," + + "\x03\x0b87\x03\x04/\x0a\x03\x06\x00,\x03\x04-\x01\x03\x04\x1e-\x03\x06/(" + + "\x03\x0a\x0b5\x03\x06\x0e7\x03\x06\x07.\x03\x0597\x03\x0a*%\x03\x0760" + + "\x03\x06\x0c;\x03\x05'\x00\x03\x072.\x03\x072\x08\x03\x06=\x01\x03\x06" + + "\x05\x1b\x03\x06\x06\x12\x03\x06$=\x03\x06'\x0d\x03\x04\x11\x0f\x03\x076" + + ",\x03\x06\x07;\x03\x06.,\x03\x86\xf9\xea\x03\x8f\xff\xeb\x02\x092\x02" + + "\x095\x02\x094\x02\x09;\x02\x09>\x02\x098\x02\x09*\x02\x09/\x02\x09,\x02" + + "\x09%\x02\x09&\x02\x09#\x02\x09 \x02\x08!\x02\x08%\x02\x08$\x02\x08+\x02" + + "\x08.\x02\x08*\x02\x08&\x02\x088\x02\x08>\x02\x084\x02\x086\x02\x080\x02" + + "\x08\x10\x02\x08\x17\x02\x08\x12\x02\x08\x1d\x02\x08\x1f\x02\x08\x13\x02" + + "\x08\x15\x02\x08\x14\x02\x08\x0c\x03\x8b\xfd\xd0\x03\x81\xec\xc6\x03\x87" + + "\xe0\x8a\x03-2\xe3\x03\x80\xef\xe4\x03-2\xea\x03\x88\xe6\xeb\x03\x8e\xe6" + + "\xe8\x03\x84\xe6\xe9\x03\x97\xe6\xee\x03-2\xf9\x03-2\xf6\x03\x8e\xe3\xad" + + "\x03\x80\xe3\x92\x03\x88\xe3\x90\x03\x8e\xe3\x90\x03\x80\xe3\x97\x03\x88" + + "\xe3\x95\x03\x88\xfe\xcb\x03\x8e\xfe\xca\x03\x84\xfe\xcd\x03\x91\xef\xc9" + + "\x03-2\xc1\x03-2\xc0\x03-2\xcb\x03\x88@\x09\x03\x8e@\x08\x03\x8f\xe0\xf5" + + "\x03\x8e\xe6\xf9\x03\x8e\xe0\xfa\x03\x93\xff\xf4\x03\x84\xee\xd3\x03\x0b" + + "(\x04\x023 \x021;\x02\x01*\x03\x0b#\x10\x03\x0b 0\x03\x0b!\x10\x03\x0b!0" + + "\x03\x07\x15\x08\x03\x09?5\x03\x07\x1f\x08\x03\x07\x17\x0b\x03\x09\x1f" + + "\x15\x03\x0b\x1c7\x03\x0a+#\x03\x06\x1a\x1b\x03\x06\x1a\x14\x03\x0a\x01" + + "\x18\x03\x06#\x1b\x03\x0a2\x0c\x03\x0a\x01\x04\x03\x09#;\x03\x08='\x03" + + "\x08\x1a\x0a\x03\x07\x03\x0a\x111\x03\x09\x1b\x09\x03\x073.\x03\x07\x01\x00" + + "\x03\x09/,\x03\x07#>\x03\x07\x048\x03\x0a\x1f\x22\x03\x098>\x03\x09\x11" + + "\x00\x03\x08/\x17\x03\x06'\x22\x03\x0b\x1a+\x03\x0a\x22\x19\x03\x0a/1" + + "\x03\x0974\x03\x09\x0f\x22\x03\x08,\x22\x03\x08?\x14\x03\x07$5\x03\x07<3" + + "\x03\x07=*\x03\x07\x13\x18\x03\x068\x0a\x03\x06\x09\x16\x03\x06\x13\x00" + + "\x03\x08\x067\x03\x08\x01\x03\x03\x08\x12\x1d\x03\x07+7\x03\x06(;\x03" + + "\x06\x1c?\x03\x07\x0e\x17\x03\x0a\x06\x1d\x03\x0a\x19\x07\x03\x08\x14$" + + "\x03\x07$;\x03\x08,$\x03\x08\x06\x0d\x03\x07\x16\x0a\x03\x06>>\x03\x0a" + + "\x06\x12\x03\x0a\x14)\x03\x09\x0d\x1f\x03\x09\x12\x17\x03\x09\x19\x01" + + "\x03\x08\x11 \x03\x08\x1d'\x03\x06<\x1a\x03\x0a.\x00\x03\x07'\x18\x03" + + "\x0a\x22\x08\x03\x08\x0d\x0a\x03\x08\x13)\x03\x07*)\x03\x06<,\x03\x07" + + "\x0b\x1a\x03\x09.\x14\x03\x09\x0d\x1e\x03\x07\x0e#\x03\x0b\x1d'\x03\x0a" + + "\x0a8\x03\x09%2\x03\x08+&\x03\x080\x12\x03\x0a)4\x03\x08\x06\x1f\x03\x0b" + + "\x1b\x1a\x03\x0a\x1b\x0f\x03\x0b\x1d*\x03\x09\x16$\x03\x090\x11\x03\x08" + + "\x11\x08\x03\x0a*(\x03\x0a\x042\x03\x089,\x03\x074'\x03\x07\x0f\x05\x03" + + "\x09\x0b\x0a\x03\x07\x1b\x01\x03\x09\x17:\x03\x09.\x0d\x03\x07.\x11\x03" + + "\x09+\x15\x03\x080\x13\x03\x0b\x1f\x19\x03\x0a \x11\x03\x0a\x220\x03\x09" + + "\x07;\x03\x08\x16\x1c\x03\x07,\x13\x03\x07\x0e/\x03\x06\x221\x03\x0a." + + "\x0a\x03\x0a7\x02\x03\x0a\x032\x03\x0a\x1d.\x03\x091\x06\x03\x09\x19:" + + "\x03\x08\x02/\x03\x060+\x03\x06\x0f-\x03\x06\x1c\x1f\x03\x06\x1d\x07\x03" + + "\x0a,\x11\x03\x09=\x0d\x03\x09\x0b;\x03\x07\x1b/\x03\x0a\x1f:\x03\x09 " + + "\x1f\x03\x09.\x10\x03\x094\x0b\x03\x09\x1a1\x03\x08#\x1a\x03\x084\x1d" + + "\x03\x08\x01\x1f\x03\x08\x11\x22\x03\x07'8\x03\x07\x1a>\x03\x0757\x03" + + "\x06&9\x03\x06+\x11\x03\x0a.\x0b\x03\x0a,>\x03\x0a4#\x03\x08%\x17\x03" + + "\x07\x05\x22\x03\x07\x0c\x0b\x03\x0a\x1d+\x03\x0a\x19\x16\x03\x09+\x1f" + + "\x03\x09\x08\x0b\x03\x08\x16\x18\x03\x08+\x12\x03\x0b\x1d\x0c\x03\x0a=" + + "\x10\x03\x0a\x09\x0d\x03\x0a\x10\x11\x03\x09&0\x03\x08(\x1f\x03\x087\x07" + + "\x03\x08\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06," + + "\x03\x0b\x18>\x03\x08\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\x09%\x18\x03" + + "\x0b\x1c<\x03\x0a%!\x03\x0a\x09\x12\x03\x0a\x16\x02\x03\x090'\x03\x09" + + "\x0e=\x03\x08 \x0e\x03\x08>\x03\x03\x074>\x03\x06&?\x03\x06\x19\x09\x03" + + "\x06?(\x03\x0a-\x0e\x03\x09:3\x03\x098:\x03\x09\x12\x0b\x03\x09\x1d\x17" + + "\x03\x087\x05\x03\x082\x14\x03\x08\x06%\x03\x08\x13\x1f\x03\x06\x06\x0e" + + "\x03\x0a\x22<\x03\x09/<\x03\x06>+\x03\x0a'?\x03\x0a\x13\x0c\x03\x09\x10<" + + "\x03\x07\x1b=\x03\x0a\x19\x13\x03\x09\x22\x1d\x03\x09\x07\x0d\x03\x08)" + + "\x1c\x03\x06=\x1a\x03\x0a/4\x03\x0a7\x11\x03\x0a\x16:\x03\x09?3\x03\x09:" + + "/\x03\x09\x05\x0a\x03\x09\x14\x06\x03\x087\x22\x03\x080\x07\x03\x08\x1a" + + "\x1f\x03\x07\x04(\x03\x07\x04\x09\x03\x06 %\x03\x06<\x08\x03\x0a+\x14" + + "\x03\x09\x1d\x16\x03\x0a70\x03\x08 >\x03\x0857\x03\x070\x0a\x03\x06=\x12" + + "\x03\x06\x16%\x03\x06\x1d,\x03\x099#\x03\x09\x10>\x03\x07 \x1e\x03\x08" + + "\x0c<\x03\x08\x0b\x18\x03\x08\x15+\x03\x08,:\x03\x08%\x22\x03\x07\x0a$" + + "\x03\x0b\x1c=\x03\x07+\x08\x03\x0a/\x05\x03\x0a \x07\x03\x0a\x12'\x03" + + "\x09#\x11\x03\x08\x1b\x15\x03\x0a\x06\x01\x03\x09\x1c\x1b\x03\x0922\x03" + + "\x07\x14<\x03\x07\x09\x04\x03\x061\x04\x03\x07\x0e\x01\x03\x0a\x13\x18" + + "\x03\x0a-\x0c\x03\x0a?\x0d\x03\x0a\x09\x0a\x03\x091&\x03\x0a/\x0b\x03" + + "\x08$<\x03\x083\x1d\x03\x08\x0c$\x03\x08\x0d\x07\x03\x08\x0d?\x03\x08" + + "\x0e\x14\x03\x065\x0a\x03\x08\x1a#\x03\x08\x16#\x03\x0702\x03\x07\x03" + + "\x1a\x03\x06(\x1d\x03\x06+\x1b\x03\x06\x0b\x05\x03\x06\x0b\x17\x03\x06" + + "\x0c\x04\x03\x06\x1e\x19\x03\x06+0\x03\x062\x18\x03\x0b\x16\x1e\x03\x0a+" + + "\x16\x03\x0a-?\x03\x0a#:\x03\x0a#\x10\x03\x0a%$\x03\x0a>+\x03\x0a01\x03" + + "\x0a1\x10\x03\x0a\x099\x03\x0a\x0a\x12\x03\x0a\x19\x1f\x03\x0a\x19\x12" + + "\x03\x09*)\x03\x09-\x16\x03\x09.1\x03\x09.2\x03\x09<\x0e\x03\x09> \x03" + + "\x093\x12\x03\x09\x0b\x01\x03\x09\x1c2\x03\x09\x11\x1c\x03\x09\x15%\x03" + + "\x08,&\x03\x08!\x22\x03\x089(\x03\x08\x0b\x1a\x03\x08\x0d2\x03\x08\x0c" + + "\x04\x03\x08\x0c\x06\x03\x08\x0c\x1f\x03\x08\x0c\x0c\x03\x08\x0f\x1f\x03" + + "\x08\x0f\x1d\x03\x08\x00\x14\x03\x08\x03\x14\x03\x08\x06\x16\x03\x08\x1e" + + "#\x03\x08\x11\x11\x03\x08\x10\x18\x03\x08\x14(\x03\x07)\x1e\x03\x07.1" + + "\x03\x07 $\x03\x07 '\x03\x078\x08\x03\x07\x0d0\x03\x07\x0f7\x03\x07\x05#" + + "\x03\x07\x05\x1a\x03\x07\x1a7\x03\x07\x1d-\x03\x07\x17\x10\x03\x06)\x1f" + + "\x03\x062\x0b\x03\x066\x16\x03\x06\x09\x11\x03\x09(\x1e\x03\x07!5\x03" + + "\x0b\x11\x16\x03\x0a/\x04\x03\x0a,\x1a\x03\x0b\x173\x03\x0a,1\x03\x0a/5" + + "\x03\x0a\x221\x03\x0a\x22\x0d\x03\x0a?%\x03\x0a<,\x03\x0a?#\x03\x0a>\x19" + + "\x03\x0a\x08&\x03\x0a\x0b\x0e\x03\x0a\x0c:\x03\x0a\x0c+\x03\x0a\x03\x22" + + "\x03\x0a\x06)\x03\x0a\x11\x10\x03\x0a\x11\x1a\x03\x0a\x17-\x03\x0a\x14(" + + "\x03\x09)\x1e\x03\x09/\x09\x03\x09.\x00\x03\x09,\x07\x03\x09/*\x03\x09-9" + + "\x03\x09\x228\x03\x09%\x09\x03\x09:\x12\x03\x09;\x1d\x03\x09?\x06\x03" + + "\x093%\x03\x096\x05\x03\x096\x08\x03\x097\x02\x03\x09\x07,\x03\x09\x04," + + "\x03\x09\x1f\x16\x03\x09\x11\x03\x03\x09\x11\x12\x03\x09\x168\x03\x08*" + + "\x05\x03\x08/2\x03\x084:\x03\x08\x22+\x03\x08 0\x03\x08&\x0a\x03\x08;" + + "\x10\x03\x08>$\x03\x08>\x18\x03\x0829\x03\x082:\x03\x081,\x03\x081<\x03" + + "\x081\x1c\x03\x087#\x03\x087*\x03\x08\x09'\x03\x08\x00\x1d\x03\x08\x05-" + + "\x03\x08\x1f4\x03\x08\x1d\x04\x03\x08\x16\x0f\x03\x07*7\x03\x07'!\x03" + + "\x07%\x1b\x03\x077\x0c\x03\x07\x0c1\x03\x07\x0c.\x03\x07\x00\x06\x03\x07" + + "\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03" + + "\x07\x06\x06\x03\x07\x05\x0a\x03\x07\x1f\x09\x03\x07\x17:\x03\x06*1\x03" + + "\x06-\x1d\x03\x06\x223\x03\x062:\x03\x060$\x03\x066\x1e\x03\x064\x12\x03" + + "\x0645\x03\x06\x0b\x00\x03\x06\x0b7\x03\x06\x07\x1f\x03\x06\x15\x12\x03" + + "\x0c\x05\x0f\x03\x0b+\x0b\x03\x0b+-\x03\x06\x16\x1b\x03\x06\x15\x17\x03" + + "\x89\xca\xea\x03\x89\xca\xe8\x03\x0c8\x10\x03\x0c8\x01\x03\x0c8\x0f\x03" + + "\x0d8%\x03\x0d8!\x03\x0c8-\x03\x0c8/\x03\x0c8+\x03\x0c87\x03\x0c85\x03" + + "\x0c9\x09\x03\x0c9\x0d\x03\x0c9\x0f\x03\x0c9\x0b\x03\xcfu\x0c\x03\xcfu" + + "\x0f\x03\xcfu\x0e\x03\xcfu\x09\x03\x0c9\x10\x03\x0d9\x0c\x03\xcf`;\x03" + + "\xcf`>\x03\xcf`9\x03\xcf`8\x03\xcf`7\x03\xcf`*\x03\xcf`-\x03\xcf`,\x03" + + "\x0d\x1b\x1a\x03\x0d\x1b&\x03\x0c=.\x03\x0c=%\x03\x0c>\x1e\x03\x0c>\x14" + + "\x03\x0c?\x06\x03\x0c?\x0b\x03\x0c?\x0c\x03\x0c?\x0d\x03\x0c?\x02\x03" + + "\x0c>\x0f\x03\x0c>\x08\x03\x0c>\x09\x03\x0c>,\x03\x0c>\x0c\x03\x0c?\x13" + + "\x03\x0c?\x16\x03\x0c?\x15\x03\x0c?\x1c\x03\x0c?\x1f\x03\x0c?\x1d\x03" + + "\x0c?\x1a\x03\x0c?\x17\x03\x0c?\x08\x03\x0c?\x09\x03\x0c?\x0e\x03\x0c?" + + "\x04\x03\x0c?\x05\x03\x0c" + + "\x03\x0c=2\x03\x0c=6\x03\x0c<\x07\x03\x0c<\x05\x03\x0e:!\x03\x0e:#\x03" + + "\x0e8\x09\x03\x0e:&\x03\x0e8\x0b\x03\x0e:$\x03\x0e:,\x03\x0e8\x1a\x03" + + "\x0e8\x1e\x03\x0e:*\x03\x0e:7\x03\x0e:5\x03\x0e:;\x03\x0e:\x15\x03\x0e:<" + + "\x03\x0e:4\x03\x0e:'\x03\x0e:-\x03\x0e:%\x03\x0e:?\x03\x0e:=\x03\x0e:)" + + "\x03\x0e:/\x03\xcfs'\x03\x0d=\x0f\x03\x0d+*\x03\x0d99\x03\x0d9;\x03\x0d9" + + "?\x03\x0d)\x0d\x03\x0d(%\x02\x01\x18\x02\x01(\x02\x01\x1e\x03\x0f$!\x03" + + "\x0f87\x03\x0f4\x0e\x03\x0f5\x1d\x03\x06'\x03\x03\x0f\x08\x18\x03\x0f" + + "\x0d\x1b\x03\x0e2=\x03\x0e;\x08\x03\x0e:\x0b\x03\x0e\x06$\x03\x0e\x0d)" + + "\x03\x0e\x16\x1f\x03\x0e\x16\x1b\x03\x0d$\x0a\x03\x05,\x1d\x03\x0d. \x03" + + "\x0d.#\x03\x0c(/\x03\x09%\x02\x03\x0d90\x03\x0d\x0e4\x03\x0d\x0d\x0f\x03" + + "\x0c#\x00\x03\x0c,\x1e\x03\x0c2\x0e\x03\x0c\x01\x17\x03\x0c\x09:\x03\x0e" + + "\x173\x03\x0c\x08\x03\x03\x0c\x11\x07\x03\x0c\x10\x18\x03\x0c\x1f\x1c" + + "\x03\x0c\x19\x0e\x03\x0c\x1a\x1f\x03\x0f0>\x03\x0b->\x03\x0b<+\x03\x0b8" + + "\x13\x03\x0b\x043\x03\x0b\x14\x03\x03\x0b\x16%\x03\x0d\x22&\x03\x0b\x1a" + + "\x1a\x03\x0b\x1a\x04\x03\x0a%9\x03\x0a&2\x03\x0a&0\x03\x0a!\x1a\x03\x0a!" + + "7\x03\x0a5\x10\x03\x0a=4\x03\x0a?\x0e\x03\x0a>\x10\x03\x0a\x00 \x03\x0a" + + "\x0f:\x03\x0a\x0f9\x03\x0a\x0b\x0a\x03\x0a\x17%\x03\x0a\x1b-\x03\x09-" + + "\x1a\x03\x09,4\x03\x09.,\x03\x09)\x09\x03\x096!\x03\x091\x1f\x03\x093" + + "\x16\x03\x0c+\x1f\x03\x098 \x03\x098=\x03\x0c(\x1a\x03\x0c(\x16\x03\x09" + + "\x0a+\x03\x09\x16\x12\x03\x09\x13\x0e\x03\x09\x153\x03\x08)!\x03\x09\x1a" + + "\x01\x03\x09\x18\x01\x03\x08%#\x03\x08>\x22\x03\x08\x05%\x03\x08\x02*" + + "\x03\x08\x15;\x03\x08\x1b7\x03\x0f\x07\x1d\x03\x0f\x04\x03\x03\x070\x0c" + + "\x03\x07;\x0b\x03\x07\x08\x17\x03\x07\x12\x06\x03\x06/-\x03\x0671\x03" + + "\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1e\x03\x05,\x17\x03\x05 \x1d\x03" + + "\x05\x22\x05\x03\x050\x1d" + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// idnaTrie. Total size: 28600 bytes (27.93 KiB). Checksum: 95575047b5d8fff. +type idnaTrie struct{} + +func newIdnaTrie(i int) *idnaTrie { + return &idnaTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *idnaTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 124: + return uint16(idnaValues[n<<6+uint32(b)]) + default: + n -= 124 + return uint16(idnaSparse.lookup(n, b)) + } +} + +// idnaValues: 126 blocks, 8064 entries, 16128 bytes +// The third block is the zero block. +var idnaValues = [8064]uint16{ + // Block 0x0, offset 0x0 + 0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080, + 0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080, + 0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080, + 0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080, + 0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080, + 0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080, + 0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080, + 0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080, + 0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008, + 0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080, + 0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080, + // Block 0x1, offset 0x40 + 0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105, + 0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105, + 0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105, + 0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105, + 0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080, + 0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008, + 0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008, + 0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008, + 0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008, + 0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080, + 0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040, + 0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040, + 0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040, + 0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040, + 0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040, + 0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018, + 0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018, + 0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a, + 0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005, + 0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018, + 0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018, + // Block 0x4, offset 0x100 + 0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008, + 0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008, + 0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008, + 0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008, + 0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008, + 0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008, + 0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008, + 0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008, + 0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008, + 0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d, + 0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199, + // Block 0x5, offset 0x140 + 0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d, + 0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008, + 0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008, + 0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008, + 0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008, + 0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008, + 0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008, + 0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008, + 0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008, + 0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d, + 0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9, + // Block 0x6, offset 0x180 + 0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008, + 0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d, + 0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d, + 0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d, + 0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155, + 0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008, + 0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d, + 0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd, + 0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d, + 0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008, + 0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9, + 0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d, + 0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d, + 0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d, + 0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008, + 0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008, + 0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008, + 0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008, + 0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008, + 0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008, + 0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008, + // Block 0x8, offset 0x200 + 0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008, + 0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008, + 0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008, + 0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008, + 0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008, + 0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008, + 0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008, + 0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008, + 0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008, + 0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d, + 0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008, + // Block 0x9, offset 0x240 + 0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018, + 0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008, + 0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008, + 0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018, + 0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a, + 0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369, + 0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018, + 0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018, + 0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018, + 0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018, + 0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018, + // Block 0xa, offset 0x280 + 0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d, + 0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308, + 0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308, + 0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308, + 0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308, + 0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308, + 0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308, + 0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308, + 0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008, + 0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008, + 0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2, + 0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040, + 0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105, + 0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105, + 0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105, + 0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d, + 0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d, + 0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008, + 0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008, + 0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008, + 0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008, + // Block 0xc, offset 0x300 + 0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008, + 0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008, + 0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd, + 0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008, + 0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008, + 0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008, + 0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008, + 0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008, + 0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd, + 0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008, + 0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d, + // Block 0xd, offset 0x340 + 0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008, + 0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008, + 0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008, + 0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008, + 0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008, + 0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008, + 0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008, + 0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008, + 0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008, + 0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008, + 0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008, + // Block 0xe, offset 0x380 + 0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308, + 0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008, + 0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008, + 0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008, + 0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008, + 0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008, + 0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008, + 0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008, + 0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008, + 0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008, + 0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d, + 0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d, + 0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008, + 0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008, + 0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008, + 0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008, + 0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008, + 0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008, + 0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008, + 0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008, + 0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008, + // Block 0x10, offset 0x400 + 0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008, + 0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008, + 0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008, + 0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008, + 0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008, + 0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008, + 0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008, + 0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008, + 0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5, + 0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5, + 0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5, + // Block 0x11, offset 0x440 + 0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840, + 0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818, + 0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308, + 0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308, + 0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040, + 0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08, + 0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08, + 0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08, + 0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08, + 0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08, + 0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08, + // Block 0x12, offset 0x480 + 0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08, + 0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308, + 0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308, + 0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308, + 0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308, + 0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808, + 0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808, + 0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08, + 0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429, + 0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08, + 0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08, + 0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08, + 0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08, + 0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308, + 0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840, + 0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308, + 0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018, + 0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08, + 0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008, + 0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08, + 0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08, + // Block 0x14, offset 0x500 + 0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818, + 0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818, + 0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308, + 0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08, + 0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08, + 0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08, + 0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08, + 0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08, + 0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308, + 0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308, + 0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308, + // Block 0x15, offset 0x540 + 0x540: 0x3008, 0x541: 0x3308, 0x542: 0x3308, 0x543: 0x3308, 0x544: 0x3308, 0x545: 0x3308, + 0x546: 0x3308, 0x547: 0x3308, 0x548: 0x3308, 0x549: 0x3008, 0x54a: 0x3008, 0x54b: 0x3008, + 0x54c: 0x3008, 0x54d: 0x3b08, 0x54e: 0x3008, 0x54f: 0x3008, 0x550: 0x0008, 0x551: 0x3308, + 0x552: 0x3308, 0x553: 0x3308, 0x554: 0x3308, 0x555: 0x3308, 0x556: 0x3308, 0x557: 0x3308, + 0x558: 0x04c9, 0x559: 0x0501, 0x55a: 0x0539, 0x55b: 0x0571, 0x55c: 0x05a9, 0x55d: 0x05e1, + 0x55e: 0x0619, 0x55f: 0x0651, 0x560: 0x0008, 0x561: 0x0008, 0x562: 0x3308, 0x563: 0x3308, + 0x564: 0x0018, 0x565: 0x0018, 0x566: 0x0008, 0x567: 0x0008, 0x568: 0x0008, 0x569: 0x0008, + 0x56a: 0x0008, 0x56b: 0x0008, 0x56c: 0x0008, 0x56d: 0x0008, 0x56e: 0x0008, 0x56f: 0x0008, + 0x570: 0x0018, 0x571: 0x0008, 0x572: 0x0008, 0x573: 0x0008, 0x574: 0x0008, 0x575: 0x0008, + 0x576: 0x0008, 0x577: 0x0008, 0x578: 0x0008, 0x579: 0x0008, 0x57a: 0x0008, 0x57b: 0x0008, + 0x57c: 0x0008, 0x57d: 0x0008, 0x57e: 0x0008, 0x57f: 0x0008, + // Block 0x16, offset 0x580 + 0x580: 0x0008, 0x581: 0x3308, 0x582: 0x3008, 0x583: 0x3008, 0x584: 0x0040, 0x585: 0x0008, + 0x586: 0x0008, 0x587: 0x0008, 0x588: 0x0008, 0x589: 0x0008, 0x58a: 0x0008, 0x58b: 0x0008, + 0x58c: 0x0008, 0x58d: 0x0040, 0x58e: 0x0040, 0x58f: 0x0008, 0x590: 0x0008, 0x591: 0x0040, + 0x592: 0x0040, 0x593: 0x0008, 0x594: 0x0008, 0x595: 0x0008, 0x596: 0x0008, 0x597: 0x0008, + 0x598: 0x0008, 0x599: 0x0008, 0x59a: 0x0008, 0x59b: 0x0008, 0x59c: 0x0008, 0x59d: 0x0008, + 0x59e: 0x0008, 0x59f: 0x0008, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x0008, 0x5a3: 0x0008, + 0x5a4: 0x0008, 0x5a5: 0x0008, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0040, + 0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008, + 0x5b0: 0x0008, 0x5b1: 0x0040, 0x5b2: 0x0008, 0x5b3: 0x0040, 0x5b4: 0x0040, 0x5b5: 0x0040, + 0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0040, 0x5bb: 0x0040, + 0x5bc: 0x3308, 0x5bd: 0x0008, 0x5be: 0x3008, 0x5bf: 0x3008, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x3008, 0x5c1: 0x3308, 0x5c2: 0x3308, 0x5c3: 0x3308, 0x5c4: 0x3308, 0x5c5: 0x0040, + 0x5c6: 0x0040, 0x5c7: 0x3008, 0x5c8: 0x3008, 0x5c9: 0x0040, 0x5ca: 0x0040, 0x5cb: 0x3008, + 0x5cc: 0x3008, 0x5cd: 0x3b08, 0x5ce: 0x0008, 0x5cf: 0x0040, 0x5d0: 0x0040, 0x5d1: 0x0040, + 0x5d2: 0x0040, 0x5d3: 0x0040, 0x5d4: 0x0040, 0x5d5: 0x0040, 0x5d6: 0x0040, 0x5d7: 0x3008, + 0x5d8: 0x0040, 0x5d9: 0x0040, 0x5da: 0x0040, 0x5db: 0x0040, 0x5dc: 0x0689, 0x5dd: 0x06c1, + 0x5de: 0x0040, 0x5df: 0x06f9, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x3308, 0x5e3: 0x3308, + 0x5e4: 0x0040, 0x5e5: 0x0040, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0008, + 0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008, + 0x5f0: 0x0008, 0x5f1: 0x0008, 0x5f2: 0x0018, 0x5f3: 0x0018, 0x5f4: 0x0018, 0x5f5: 0x0018, + 0x5f6: 0x0018, 0x5f7: 0x0018, 0x5f8: 0x0018, 0x5f9: 0x0018, 0x5fa: 0x0018, 0x5fb: 0x0018, + 0x5fc: 0x0040, 0x5fd: 0x0040, 0x5fe: 0x0040, 0x5ff: 0x0040, + // Block 0x18, offset 0x600 + 0x600: 0x0040, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3008, 0x604: 0x0040, 0x605: 0x0008, + 0x606: 0x0008, 0x607: 0x0008, 0x608: 0x0008, 0x609: 0x0008, 0x60a: 0x0008, 0x60b: 0x0040, + 0x60c: 0x0040, 0x60d: 0x0040, 0x60e: 0x0040, 0x60f: 0x0008, 0x610: 0x0008, 0x611: 0x0040, + 0x612: 0x0040, 0x613: 0x0008, 0x614: 0x0008, 0x615: 0x0008, 0x616: 0x0008, 0x617: 0x0008, + 0x618: 0x0008, 0x619: 0x0008, 0x61a: 0x0008, 0x61b: 0x0008, 0x61c: 0x0008, 0x61d: 0x0008, + 0x61e: 0x0008, 0x61f: 0x0008, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x0008, 0x623: 0x0008, + 0x624: 0x0008, 0x625: 0x0008, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0040, + 0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008, + 0x630: 0x0008, 0x631: 0x0040, 0x632: 0x0008, 0x633: 0x0731, 0x634: 0x0040, 0x635: 0x0008, + 0x636: 0x0769, 0x637: 0x0040, 0x638: 0x0008, 0x639: 0x0008, 0x63a: 0x0040, 0x63b: 0x0040, + 0x63c: 0x3308, 0x63d: 0x0040, 0x63e: 0x3008, 0x63f: 0x3008, + // Block 0x19, offset 0x640 + 0x640: 0x3008, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x0040, 0x644: 0x0040, 0x645: 0x0040, + 0x646: 0x0040, 0x647: 0x3308, 0x648: 0x3308, 0x649: 0x0040, 0x64a: 0x0040, 0x64b: 0x3308, + 0x64c: 0x3308, 0x64d: 0x3b08, 0x64e: 0x0040, 0x64f: 0x0040, 0x650: 0x0040, 0x651: 0x3308, + 0x652: 0x0040, 0x653: 0x0040, 0x654: 0x0040, 0x655: 0x0040, 0x656: 0x0040, 0x657: 0x0040, + 0x658: 0x0040, 0x659: 0x07a1, 0x65a: 0x07d9, 0x65b: 0x0811, 0x65c: 0x0008, 0x65d: 0x0040, + 0x65e: 0x0849, 0x65f: 0x0040, 0x660: 0x0040, 0x661: 0x0040, 0x662: 0x0040, 0x663: 0x0040, + 0x664: 0x0040, 0x665: 0x0040, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0008, + 0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008, + 0x670: 0x3308, 0x671: 0x3308, 0x672: 0x0008, 0x673: 0x0008, 0x674: 0x0008, 0x675: 0x3308, + 0x676: 0x0040, 0x677: 0x0040, 0x678: 0x0040, 0x679: 0x0040, 0x67a: 0x0040, 0x67b: 0x0040, + 0x67c: 0x0040, 0x67d: 0x0040, 0x67e: 0x0040, 0x67f: 0x0040, + // Block 0x1a, offset 0x680 + 0x680: 0x0040, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x3008, 0x684: 0x0040, 0x685: 0x0008, + 0x686: 0x0008, 0x687: 0x0008, 0x688: 0x0008, 0x689: 0x0008, 0x68a: 0x0008, 0x68b: 0x0008, + 0x68c: 0x0008, 0x68d: 0x0008, 0x68e: 0x0040, 0x68f: 0x0008, 0x690: 0x0008, 0x691: 0x0008, + 0x692: 0x0040, 0x693: 0x0008, 0x694: 0x0008, 0x695: 0x0008, 0x696: 0x0008, 0x697: 0x0008, + 0x698: 0x0008, 0x699: 0x0008, 0x69a: 0x0008, 0x69b: 0x0008, 0x69c: 0x0008, 0x69d: 0x0008, + 0x69e: 0x0008, 0x69f: 0x0008, 0x6a0: 0x0008, 0x6a1: 0x0008, 0x6a2: 0x0008, 0x6a3: 0x0008, + 0x6a4: 0x0008, 0x6a5: 0x0008, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0040, + 0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008, + 0x6b0: 0x0008, 0x6b1: 0x0040, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0040, 0x6b5: 0x0008, + 0x6b6: 0x0008, 0x6b7: 0x0008, 0x6b8: 0x0008, 0x6b9: 0x0008, 0x6ba: 0x0040, 0x6bb: 0x0040, + 0x6bc: 0x3308, 0x6bd: 0x0008, 0x6be: 0x3008, 0x6bf: 0x3008, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3008, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3308, 0x6c4: 0x3308, 0x6c5: 0x3308, + 0x6c6: 0x0040, 0x6c7: 0x3308, 0x6c8: 0x3308, 0x6c9: 0x3008, 0x6ca: 0x0040, 0x6cb: 0x3008, + 0x6cc: 0x3008, 0x6cd: 0x3b08, 0x6ce: 0x0040, 0x6cf: 0x0040, 0x6d0: 0x0008, 0x6d1: 0x0040, + 0x6d2: 0x0040, 0x6d3: 0x0040, 0x6d4: 0x0040, 0x6d5: 0x0040, 0x6d6: 0x0040, 0x6d7: 0x0040, + 0x6d8: 0x0040, 0x6d9: 0x0040, 0x6da: 0x0040, 0x6db: 0x0040, 0x6dc: 0x0040, 0x6dd: 0x0040, + 0x6de: 0x0040, 0x6df: 0x0040, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x3308, 0x6e3: 0x3308, + 0x6e4: 0x0040, 0x6e5: 0x0040, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0008, + 0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008, + 0x6f0: 0x0018, 0x6f1: 0x0018, 0x6f2: 0x0040, 0x6f3: 0x0040, 0x6f4: 0x0040, 0x6f5: 0x0040, + 0x6f6: 0x0040, 0x6f7: 0x0040, 0x6f8: 0x0040, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040, + 0x6fc: 0x0040, 0x6fd: 0x0040, 0x6fe: 0x0040, 0x6ff: 0x0040, + // Block 0x1c, offset 0x700 + 0x700: 0x0040, 0x701: 0x3308, 0x702: 0x3008, 0x703: 0x3008, 0x704: 0x0040, 0x705: 0x0008, + 0x706: 0x0008, 0x707: 0x0008, 0x708: 0x0008, 0x709: 0x0008, 0x70a: 0x0008, 0x70b: 0x0008, + 0x70c: 0x0008, 0x70d: 0x0040, 0x70e: 0x0040, 0x70f: 0x0008, 0x710: 0x0008, 0x711: 0x0040, + 0x712: 0x0040, 0x713: 0x0008, 0x714: 0x0008, 0x715: 0x0008, 0x716: 0x0008, 0x717: 0x0008, + 0x718: 0x0008, 0x719: 0x0008, 0x71a: 0x0008, 0x71b: 0x0008, 0x71c: 0x0008, 0x71d: 0x0008, + 0x71e: 0x0008, 0x71f: 0x0008, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x0008, 0x723: 0x0008, + 0x724: 0x0008, 0x725: 0x0008, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0040, + 0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008, + 0x730: 0x0008, 0x731: 0x0040, 0x732: 0x0008, 0x733: 0x0008, 0x734: 0x0040, 0x735: 0x0008, + 0x736: 0x0008, 0x737: 0x0008, 0x738: 0x0008, 0x739: 0x0008, 0x73a: 0x0040, 0x73b: 0x0040, + 0x73c: 0x3308, 0x73d: 0x0008, 0x73e: 0x3008, 0x73f: 0x3308, + // Block 0x1d, offset 0x740 + 0x740: 0x3008, 0x741: 0x3308, 0x742: 0x3308, 0x743: 0x3308, 0x744: 0x3308, 0x745: 0x0040, + 0x746: 0x0040, 0x747: 0x3008, 0x748: 0x3008, 0x749: 0x0040, 0x74a: 0x0040, 0x74b: 0x3008, + 0x74c: 0x3008, 0x74d: 0x3b08, 0x74e: 0x0040, 0x74f: 0x0040, 0x750: 0x0040, 0x751: 0x0040, + 0x752: 0x0040, 0x753: 0x0040, 0x754: 0x0040, 0x755: 0x0040, 0x756: 0x3308, 0x757: 0x3008, + 0x758: 0x0040, 0x759: 0x0040, 0x75a: 0x0040, 0x75b: 0x0040, 0x75c: 0x0881, 0x75d: 0x08b9, + 0x75e: 0x0040, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x3308, 0x763: 0x3308, + 0x764: 0x0040, 0x765: 0x0040, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0008, + 0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008, + 0x770: 0x0018, 0x771: 0x0008, 0x772: 0x0018, 0x773: 0x0018, 0x774: 0x0018, 0x775: 0x0018, + 0x776: 0x0018, 0x777: 0x0018, 0x778: 0x0040, 0x779: 0x0040, 0x77a: 0x0040, 0x77b: 0x0040, + 0x77c: 0x0040, 0x77d: 0x0040, 0x77e: 0x0040, 0x77f: 0x0040, + // Block 0x1e, offset 0x780 + 0x780: 0x0040, 0x781: 0x0040, 0x782: 0x3308, 0x783: 0x0008, 0x784: 0x0040, 0x785: 0x0008, + 0x786: 0x0008, 0x787: 0x0008, 0x788: 0x0008, 0x789: 0x0008, 0x78a: 0x0008, 0x78b: 0x0040, + 0x78c: 0x0040, 0x78d: 0x0040, 0x78e: 0x0008, 0x78f: 0x0008, 0x790: 0x0008, 0x791: 0x0040, + 0x792: 0x0008, 0x793: 0x0008, 0x794: 0x0008, 0x795: 0x0008, 0x796: 0x0040, 0x797: 0x0040, + 0x798: 0x0040, 0x799: 0x0008, 0x79a: 0x0008, 0x79b: 0x0040, 0x79c: 0x0008, 0x79d: 0x0040, + 0x79e: 0x0008, 0x79f: 0x0008, 0x7a0: 0x0040, 0x7a1: 0x0040, 0x7a2: 0x0040, 0x7a3: 0x0008, + 0x7a4: 0x0008, 0x7a5: 0x0040, 0x7a6: 0x0040, 0x7a7: 0x0040, 0x7a8: 0x0008, 0x7a9: 0x0008, + 0x7aa: 0x0008, 0x7ab: 0x0040, 0x7ac: 0x0040, 0x7ad: 0x0040, 0x7ae: 0x0008, 0x7af: 0x0008, + 0x7b0: 0x0008, 0x7b1: 0x0008, 0x7b2: 0x0008, 0x7b3: 0x0008, 0x7b4: 0x0008, 0x7b5: 0x0008, + 0x7b6: 0x0008, 0x7b7: 0x0008, 0x7b8: 0x0008, 0x7b9: 0x0008, 0x7ba: 0x0040, 0x7bb: 0x0040, + 0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x3008, 0x7bf: 0x3008, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x3308, 0x7c1: 0x3008, 0x7c2: 0x3008, 0x7c3: 0x3008, 0x7c4: 0x3008, 0x7c5: 0x0040, + 0x7c6: 0x3308, 0x7c7: 0x3308, 0x7c8: 0x3308, 0x7c9: 0x0040, 0x7ca: 0x3308, 0x7cb: 0x3308, + 0x7cc: 0x3308, 0x7cd: 0x3b08, 0x7ce: 0x0040, 0x7cf: 0x0040, 0x7d0: 0x0040, 0x7d1: 0x0040, + 0x7d2: 0x0040, 0x7d3: 0x0040, 0x7d4: 0x0040, 0x7d5: 0x3308, 0x7d6: 0x3308, 0x7d7: 0x0040, + 0x7d8: 0x0008, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0040, 0x7dd: 0x0040, + 0x7de: 0x0040, 0x7df: 0x0040, 0x7e0: 0x0008, 0x7e1: 0x0008, 0x7e2: 0x3308, 0x7e3: 0x3308, + 0x7e4: 0x0040, 0x7e5: 0x0040, 0x7e6: 0x0008, 0x7e7: 0x0008, 0x7e8: 0x0008, 0x7e9: 0x0008, + 0x7ea: 0x0008, 0x7eb: 0x0008, 0x7ec: 0x0008, 0x7ed: 0x0008, 0x7ee: 0x0008, 0x7ef: 0x0008, + 0x7f0: 0x0040, 0x7f1: 0x0040, 0x7f2: 0x0040, 0x7f3: 0x0040, 0x7f4: 0x0040, 0x7f5: 0x0040, + 0x7f6: 0x0040, 0x7f7: 0x0040, 0x7f8: 0x0018, 0x7f9: 0x0018, 0x7fa: 0x0018, 0x7fb: 0x0018, + 0x7fc: 0x0018, 0x7fd: 0x0018, 0x7fe: 0x0018, 0x7ff: 0x0018, + // Block 0x20, offset 0x800 + 0x800: 0x0008, 0x801: 0x3308, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x0040, 0x805: 0x0008, + 0x806: 0x0008, 0x807: 0x0008, 0x808: 0x0008, 0x809: 0x0008, 0x80a: 0x0008, 0x80b: 0x0008, + 0x80c: 0x0008, 0x80d: 0x0040, 0x80e: 0x0008, 0x80f: 0x0008, 0x810: 0x0008, 0x811: 0x0040, + 0x812: 0x0008, 0x813: 0x0008, 0x814: 0x0008, 0x815: 0x0008, 0x816: 0x0008, 0x817: 0x0008, + 0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0008, 0x81c: 0x0008, 0x81d: 0x0008, + 0x81e: 0x0008, 0x81f: 0x0008, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x0008, 0x823: 0x0008, + 0x824: 0x0008, 0x825: 0x0008, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0040, + 0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008, + 0x830: 0x0008, 0x831: 0x0008, 0x832: 0x0008, 0x833: 0x0008, 0x834: 0x0040, 0x835: 0x0008, + 0x836: 0x0008, 0x837: 0x0008, 0x838: 0x0008, 0x839: 0x0008, 0x83a: 0x0040, 0x83b: 0x0040, + 0x83c: 0x3308, 0x83d: 0x0008, 0x83e: 0x3008, 0x83f: 0x3308, + // Block 0x21, offset 0x840 + 0x840: 0x3008, 0x841: 0x3008, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x3008, 0x845: 0x0040, + 0x846: 0x3308, 0x847: 0x3008, 0x848: 0x3008, 0x849: 0x0040, 0x84a: 0x3008, 0x84b: 0x3008, + 0x84c: 0x3308, 0x84d: 0x3b08, 0x84e: 0x0040, 0x84f: 0x0040, 0x850: 0x0040, 0x851: 0x0040, + 0x852: 0x0040, 0x853: 0x0040, 0x854: 0x0040, 0x855: 0x3008, 0x856: 0x3008, 0x857: 0x0040, + 0x858: 0x0040, 0x859: 0x0040, 0x85a: 0x0040, 0x85b: 0x0040, 0x85c: 0x0040, 0x85d: 0x0040, + 0x85e: 0x0008, 0x85f: 0x0040, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x3308, 0x863: 0x3308, + 0x864: 0x0040, 0x865: 0x0040, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0008, + 0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008, + 0x870: 0x0040, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0040, 0x874: 0x0040, 0x875: 0x0040, + 0x876: 0x0040, 0x877: 0x0040, 0x878: 0x0040, 0x879: 0x0040, 0x87a: 0x0040, 0x87b: 0x0040, + 0x87c: 0x0040, 0x87d: 0x0040, 0x87e: 0x0040, 0x87f: 0x0040, + // Block 0x22, offset 0x880 + 0x880: 0x3008, 0x881: 0x3308, 0x882: 0x3308, 0x883: 0x3308, 0x884: 0x3308, 0x885: 0x0040, + 0x886: 0x3008, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008, + 0x88c: 0x3008, 0x88d: 0x3b08, 0x88e: 0x0008, 0x88f: 0x0018, 0x890: 0x0040, 0x891: 0x0040, + 0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0008, 0x895: 0x0008, 0x896: 0x0008, 0x897: 0x3008, + 0x898: 0x0018, 0x899: 0x0018, 0x89a: 0x0018, 0x89b: 0x0018, 0x89c: 0x0018, 0x89d: 0x0018, + 0x89e: 0x0018, 0x89f: 0x0008, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308, + 0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008, + 0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008, + 0x8b0: 0x0018, 0x8b1: 0x0018, 0x8b2: 0x0018, 0x8b3: 0x0018, 0x8b4: 0x0018, 0x8b5: 0x0018, + 0x8b6: 0x0018, 0x8b7: 0x0018, 0x8b8: 0x0018, 0x8b9: 0x0018, 0x8ba: 0x0008, 0x8bb: 0x0008, + 0x8bc: 0x0008, 0x8bd: 0x0008, 0x8be: 0x0008, 0x8bf: 0x0008, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0040, 0x8c1: 0x0008, 0x8c2: 0x0008, 0x8c3: 0x0040, 0x8c4: 0x0008, 0x8c5: 0x0040, + 0x8c6: 0x0040, 0x8c7: 0x0008, 0x8c8: 0x0008, 0x8c9: 0x0040, 0x8ca: 0x0008, 0x8cb: 0x0040, + 0x8cc: 0x0040, 0x8cd: 0x0008, 0x8ce: 0x0040, 0x8cf: 0x0040, 0x8d0: 0x0040, 0x8d1: 0x0040, + 0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x0008, + 0x8d8: 0x0040, 0x8d9: 0x0008, 0x8da: 0x0008, 0x8db: 0x0008, 0x8dc: 0x0008, 0x8dd: 0x0008, + 0x8de: 0x0008, 0x8df: 0x0008, 0x8e0: 0x0040, 0x8e1: 0x0008, 0x8e2: 0x0008, 0x8e3: 0x0008, + 0x8e4: 0x0040, 0x8e5: 0x0008, 0x8e6: 0x0040, 0x8e7: 0x0008, 0x8e8: 0x0040, 0x8e9: 0x0040, + 0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0040, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008, + 0x8f0: 0x0008, 0x8f1: 0x3308, 0x8f2: 0x0008, 0x8f3: 0x0929, 0x8f4: 0x3308, 0x8f5: 0x3308, + 0x8f6: 0x3308, 0x8f7: 0x3308, 0x8f8: 0x3308, 0x8f9: 0x3308, 0x8fa: 0x0040, 0x8fb: 0x3308, + 0x8fc: 0x3308, 0x8fd: 0x0008, 0x8fe: 0x0040, 0x8ff: 0x0040, + // Block 0x24, offset 0x900 + 0x900: 0x0008, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x09d1, 0x904: 0x0008, 0x905: 0x0008, + 0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0040, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0008, + 0x90c: 0x0008, 0x90d: 0x0a09, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008, + 0x912: 0x0a41, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0a79, + 0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0ab1, 0x91d: 0x0008, + 0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008, + 0x924: 0x0008, 0x925: 0x0008, 0x926: 0x0008, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0ae9, + 0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0040, 0x92e: 0x0040, 0x92f: 0x0040, + 0x930: 0x0040, 0x931: 0x3308, 0x932: 0x3308, 0x933: 0x0b21, 0x934: 0x3308, 0x935: 0x0b59, + 0x936: 0x0b91, 0x937: 0x0bc9, 0x938: 0x0c19, 0x939: 0x0c51, 0x93a: 0x3308, 0x93b: 0x3308, + 0x93c: 0x3308, 0x93d: 0x3308, 0x93e: 0x3308, 0x93f: 0x3008, + // Block 0x25, offset 0x940 + 0x940: 0x3308, 0x941: 0x0ca1, 0x942: 0x3308, 0x943: 0x3308, 0x944: 0x3b08, 0x945: 0x0018, + 0x946: 0x3308, 0x947: 0x3308, 0x948: 0x0008, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008, + 0x94c: 0x0008, 0x94d: 0x3308, 0x94e: 0x3308, 0x94f: 0x3308, 0x950: 0x3308, 0x951: 0x3308, + 0x952: 0x3308, 0x953: 0x0cd9, 0x954: 0x3308, 0x955: 0x3308, 0x956: 0x3308, 0x957: 0x3308, + 0x958: 0x0040, 0x959: 0x3308, 0x95a: 0x3308, 0x95b: 0x3308, 0x95c: 0x3308, 0x95d: 0x0d11, + 0x95e: 0x3308, 0x95f: 0x3308, 0x960: 0x3308, 0x961: 0x3308, 0x962: 0x0d49, 0x963: 0x3308, + 0x964: 0x3308, 0x965: 0x3308, 0x966: 0x3308, 0x967: 0x0d81, 0x968: 0x3308, 0x969: 0x3308, + 0x96a: 0x3308, 0x96b: 0x3308, 0x96c: 0x0db9, 0x96d: 0x3308, 0x96e: 0x3308, 0x96f: 0x3308, + 0x970: 0x3308, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x3308, 0x974: 0x3308, 0x975: 0x3308, + 0x976: 0x3308, 0x977: 0x3308, 0x978: 0x3308, 0x979: 0x0df1, 0x97a: 0x3308, 0x97b: 0x3308, + 0x97c: 0x3308, 0x97d: 0x0040, 0x97e: 0x0018, 0x97f: 0x0018, + // Block 0x26, offset 0x980 + 0x980: 0x0008, 0x981: 0x0008, 0x982: 0x0008, 0x983: 0x0008, 0x984: 0x0008, 0x985: 0x0008, + 0x986: 0x0008, 0x987: 0x0008, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008, + 0x98c: 0x0008, 0x98d: 0x0008, 0x98e: 0x0008, 0x98f: 0x0008, 0x990: 0x0008, 0x991: 0x0008, + 0x992: 0x0008, 0x993: 0x0008, 0x994: 0x0008, 0x995: 0x0008, 0x996: 0x0008, 0x997: 0x0008, + 0x998: 0x0008, 0x999: 0x0008, 0x99a: 0x0008, 0x99b: 0x0008, 0x99c: 0x0008, 0x99d: 0x0008, + 0x99e: 0x0008, 0x99f: 0x0008, 0x9a0: 0x0008, 0x9a1: 0x0008, 0x9a2: 0x0008, 0x9a3: 0x0008, + 0x9a4: 0x0008, 0x9a5: 0x0008, 0x9a6: 0x0008, 0x9a7: 0x0008, 0x9a8: 0x0008, 0x9a9: 0x0008, + 0x9aa: 0x0008, 0x9ab: 0x0008, 0x9ac: 0x0039, 0x9ad: 0x0ed1, 0x9ae: 0x0ee9, 0x9af: 0x0008, + 0x9b0: 0x0ef9, 0x9b1: 0x0f09, 0x9b2: 0x0f19, 0x9b3: 0x0f31, 0x9b4: 0x0249, 0x9b5: 0x0f41, + 0x9b6: 0x0259, 0x9b7: 0x0f51, 0x9b8: 0x0359, 0x9b9: 0x0f61, 0x9ba: 0x0f71, 0x9bb: 0x0008, + 0x9bc: 0x00d9, 0x9bd: 0x0f81, 0x9be: 0x0f99, 0x9bf: 0x0269, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0fa9, 0x9c1: 0x0fb9, 0x9c2: 0x0279, 0x9c3: 0x0039, 0x9c4: 0x0fc9, 0x9c5: 0x0fe1, + 0x9c6: 0x059d, 0x9c7: 0x0ee9, 0x9c8: 0x0ef9, 0x9c9: 0x0f09, 0x9ca: 0x0ff9, 0x9cb: 0x1011, + 0x9cc: 0x1029, 0x9cd: 0x0f31, 0x9ce: 0x0008, 0x9cf: 0x0f51, 0x9d0: 0x0f61, 0x9d1: 0x1041, + 0x9d2: 0x00d9, 0x9d3: 0x1059, 0x9d4: 0x05b5, 0x9d5: 0x05b5, 0x9d6: 0x0f99, 0x9d7: 0x0fa9, + 0x9d8: 0x0fb9, 0x9d9: 0x059d, 0x9da: 0x1071, 0x9db: 0x1089, 0x9dc: 0x05cd, 0x9dd: 0x1099, + 0x9de: 0x10b1, 0x9df: 0x10c9, 0x9e0: 0x10e1, 0x9e1: 0x10f9, 0x9e2: 0x0f41, 0x9e3: 0x0269, + 0x9e4: 0x0fb9, 0x9e5: 0x1089, 0x9e6: 0x1099, 0x9e7: 0x10b1, 0x9e8: 0x1111, 0x9e9: 0x10e1, + 0x9ea: 0x10f9, 0x9eb: 0x0008, 0x9ec: 0x0008, 0x9ed: 0x0008, 0x9ee: 0x0008, 0x9ef: 0x0008, + 0x9f0: 0x0008, 0x9f1: 0x0008, 0x9f2: 0x0008, 0x9f3: 0x0008, 0x9f4: 0x0008, 0x9f5: 0x0008, + 0x9f6: 0x0008, 0x9f7: 0x0008, 0x9f8: 0x1129, 0x9f9: 0x0008, 0x9fa: 0x0008, 0x9fb: 0x0008, + 0x9fc: 0x0008, 0x9fd: 0x0008, 0x9fe: 0x0008, 0x9ff: 0x0008, + // Block 0x28, offset 0xa00 + 0xa00: 0x0008, 0xa01: 0x0008, 0xa02: 0x0008, 0xa03: 0x0008, 0xa04: 0x0008, 0xa05: 0x0008, + 0xa06: 0x0008, 0xa07: 0x0008, 0xa08: 0x0008, 0xa09: 0x0008, 0xa0a: 0x0008, 0xa0b: 0x0008, + 0xa0c: 0x0008, 0xa0d: 0x0008, 0xa0e: 0x0008, 0xa0f: 0x0008, 0xa10: 0x0008, 0xa11: 0x0008, + 0xa12: 0x0008, 0xa13: 0x0008, 0xa14: 0x0008, 0xa15: 0x0008, 0xa16: 0x0008, 0xa17: 0x0008, + 0xa18: 0x0008, 0xa19: 0x0008, 0xa1a: 0x0008, 0xa1b: 0x1141, 0xa1c: 0x1159, 0xa1d: 0x1169, + 0xa1e: 0x1181, 0xa1f: 0x1029, 0xa20: 0x1199, 0xa21: 0x11a9, 0xa22: 0x11c1, 0xa23: 0x11d9, + 0xa24: 0x11f1, 0xa25: 0x1209, 0xa26: 0x1221, 0xa27: 0x05e5, 0xa28: 0x1239, 0xa29: 0x1251, + 0xa2a: 0xe17d, 0xa2b: 0x1269, 0xa2c: 0x1281, 0xa2d: 0x1299, 0xa2e: 0x12b1, 0xa2f: 0x12c9, + 0xa30: 0x12e1, 0xa31: 0x12f9, 0xa32: 0x1311, 0xa33: 0x1329, 0xa34: 0x1341, 0xa35: 0x1359, + 0xa36: 0x1371, 0xa37: 0x1389, 0xa38: 0x05fd, 0xa39: 0x13a1, 0xa3a: 0x13b9, 0xa3b: 0x13d1, + 0xa3c: 0x13e1, 0xa3d: 0x13f9, 0xa3e: 0x1411, 0xa3f: 0x1429, + // Block 0x29, offset 0xa40 + 0xa40: 0xe00d, 0xa41: 0x0008, 0xa42: 0xe00d, 0xa43: 0x0008, 0xa44: 0xe00d, 0xa45: 0x0008, + 0xa46: 0xe00d, 0xa47: 0x0008, 0xa48: 0xe00d, 0xa49: 0x0008, 0xa4a: 0xe00d, 0xa4b: 0x0008, + 0xa4c: 0xe00d, 0xa4d: 0x0008, 0xa4e: 0xe00d, 0xa4f: 0x0008, 0xa50: 0xe00d, 0xa51: 0x0008, + 0xa52: 0xe00d, 0xa53: 0x0008, 0xa54: 0xe00d, 0xa55: 0x0008, 0xa56: 0xe00d, 0xa57: 0x0008, + 0xa58: 0xe00d, 0xa59: 0x0008, 0xa5a: 0xe00d, 0xa5b: 0x0008, 0xa5c: 0xe00d, 0xa5d: 0x0008, + 0xa5e: 0xe00d, 0xa5f: 0x0008, 0xa60: 0xe00d, 0xa61: 0x0008, 0xa62: 0xe00d, 0xa63: 0x0008, + 0xa64: 0xe00d, 0xa65: 0x0008, 0xa66: 0xe00d, 0xa67: 0x0008, 0xa68: 0xe00d, 0xa69: 0x0008, + 0xa6a: 0xe00d, 0xa6b: 0x0008, 0xa6c: 0xe00d, 0xa6d: 0x0008, 0xa6e: 0xe00d, 0xa6f: 0x0008, + 0xa70: 0xe00d, 0xa71: 0x0008, 0xa72: 0xe00d, 0xa73: 0x0008, 0xa74: 0xe00d, 0xa75: 0x0008, + 0xa76: 0xe00d, 0xa77: 0x0008, 0xa78: 0xe00d, 0xa79: 0x0008, 0xa7a: 0xe00d, 0xa7b: 0x0008, + 0xa7c: 0xe00d, 0xa7d: 0x0008, 0xa7e: 0xe00d, 0xa7f: 0x0008, + // Block 0x2a, offset 0xa80 + 0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008, + 0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008, + 0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008, + 0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0x0008, 0xa97: 0x0008, + 0xa98: 0x0008, 0xa99: 0x0008, 0xa9a: 0x0615, 0xa9b: 0x0635, 0xa9c: 0x0008, 0xa9d: 0x0008, + 0xa9e: 0x1441, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008, + 0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008, + 0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008, + 0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008, + 0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008, + 0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008, + // Block 0x2b, offset 0xac0 + 0xac0: 0x0008, 0xac1: 0x0008, 0xac2: 0x0008, 0xac3: 0x0008, 0xac4: 0x0008, 0xac5: 0x0008, + 0xac6: 0x0040, 0xac7: 0x0040, 0xac8: 0xe045, 0xac9: 0xe045, 0xaca: 0xe045, 0xacb: 0xe045, + 0xacc: 0xe045, 0xacd: 0xe045, 0xace: 0x0040, 0xacf: 0x0040, 0xad0: 0x0008, 0xad1: 0x0008, + 0xad2: 0x0008, 0xad3: 0x0008, 0xad4: 0x0008, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008, + 0xad8: 0x0040, 0xad9: 0xe045, 0xada: 0x0040, 0xadb: 0xe045, 0xadc: 0x0040, 0xadd: 0xe045, + 0xade: 0x0040, 0xadf: 0xe045, 0xae0: 0x0008, 0xae1: 0x0008, 0xae2: 0x0008, 0xae3: 0x0008, + 0xae4: 0x0008, 0xae5: 0x0008, 0xae6: 0x0008, 0xae7: 0x0008, 0xae8: 0xe045, 0xae9: 0xe045, + 0xaea: 0xe045, 0xaeb: 0xe045, 0xaec: 0xe045, 0xaed: 0xe045, 0xaee: 0xe045, 0xaef: 0xe045, + 0xaf0: 0x0008, 0xaf1: 0x1459, 0xaf2: 0x0008, 0xaf3: 0x1471, 0xaf4: 0x0008, 0xaf5: 0x1489, + 0xaf6: 0x0008, 0xaf7: 0x14a1, 0xaf8: 0x0008, 0xaf9: 0x14b9, 0xafa: 0x0008, 0xafb: 0x14d1, + 0xafc: 0x0008, 0xafd: 0x14e9, 0xafe: 0x0040, 0xaff: 0x0040, + // Block 0x2c, offset 0xb00 + 0xb00: 0x1501, 0xb01: 0x1531, 0xb02: 0x1561, 0xb03: 0x1591, 0xb04: 0x15c1, 0xb05: 0x15f1, + 0xb06: 0x1621, 0xb07: 0x1651, 0xb08: 0x1501, 0xb09: 0x1531, 0xb0a: 0x1561, 0xb0b: 0x1591, + 0xb0c: 0x15c1, 0xb0d: 0x15f1, 0xb0e: 0x1621, 0xb0f: 0x1651, 0xb10: 0x1681, 0xb11: 0x16b1, + 0xb12: 0x16e1, 0xb13: 0x1711, 0xb14: 0x1741, 0xb15: 0x1771, 0xb16: 0x17a1, 0xb17: 0x17d1, + 0xb18: 0x1681, 0xb19: 0x16b1, 0xb1a: 0x16e1, 0xb1b: 0x1711, 0xb1c: 0x1741, 0xb1d: 0x1771, + 0xb1e: 0x17a1, 0xb1f: 0x17d1, 0xb20: 0x1801, 0xb21: 0x1831, 0xb22: 0x1861, 0xb23: 0x1891, + 0xb24: 0x18c1, 0xb25: 0x18f1, 0xb26: 0x1921, 0xb27: 0x1951, 0xb28: 0x1801, 0xb29: 0x1831, + 0xb2a: 0x1861, 0xb2b: 0x1891, 0xb2c: 0x18c1, 0xb2d: 0x18f1, 0xb2e: 0x1921, 0xb2f: 0x1951, + 0xb30: 0x0008, 0xb31: 0x0008, 0xb32: 0x1981, 0xb33: 0x19b1, 0xb34: 0x19d9, 0xb35: 0x0040, + 0xb36: 0x0008, 0xb37: 0x1a01, 0xb38: 0xe045, 0xb39: 0xe045, 0xb3a: 0x064d, 0xb3b: 0x1459, + 0xb3c: 0x19b1, 0xb3d: 0x0666, 0xb3e: 0x1a31, 0xb3f: 0x0686, + // Block 0x2d, offset 0xb40 + 0xb40: 0x06a6, 0xb41: 0x1a4a, 0xb42: 0x1a79, 0xb43: 0x1aa9, 0xb44: 0x1ad1, 0xb45: 0x0040, + 0xb46: 0x0008, 0xb47: 0x1af9, 0xb48: 0x06c5, 0xb49: 0x1471, 0xb4a: 0x06dd, 0xb4b: 0x1489, + 0xb4c: 0x1aa9, 0xb4d: 0x1b2a, 0xb4e: 0x1b5a, 0xb4f: 0x1b8a, 0xb50: 0x0008, 0xb51: 0x0008, + 0xb52: 0x0008, 0xb53: 0x1bb9, 0xb54: 0x0040, 0xb55: 0x0040, 0xb56: 0x0008, 0xb57: 0x0008, + 0xb58: 0xe045, 0xb59: 0xe045, 0xb5a: 0x06f5, 0xb5b: 0x14a1, 0xb5c: 0x0040, 0xb5d: 0x1bd2, + 0xb5e: 0x1c02, 0xb5f: 0x1c32, 0xb60: 0x0008, 0xb61: 0x0008, 0xb62: 0x0008, 0xb63: 0x1c61, + 0xb64: 0x0008, 0xb65: 0x0008, 0xb66: 0x0008, 0xb67: 0x0008, 0xb68: 0xe045, 0xb69: 0xe045, + 0xb6a: 0x070d, 0xb6b: 0x14d1, 0xb6c: 0xe04d, 0xb6d: 0x1c7a, 0xb6e: 0x03d2, 0xb6f: 0x1caa, + 0xb70: 0x0040, 0xb71: 0x0040, 0xb72: 0x1cb9, 0xb73: 0x1ce9, 0xb74: 0x1d11, 0xb75: 0x0040, + 0xb76: 0x0008, 0xb77: 0x1d39, 0xb78: 0x0725, 0xb79: 0x14b9, 0xb7a: 0x0515, 0xb7b: 0x14e9, + 0xb7c: 0x1ce9, 0xb7d: 0x073e, 0xb7e: 0x075e, 0xb7f: 0x0040, + // Block 0x2e, offset 0xb80 + 0xb80: 0x000a, 0xb81: 0x000a, 0xb82: 0x000a, 0xb83: 0x000a, 0xb84: 0x000a, 0xb85: 0x000a, + 0xb86: 0x000a, 0xb87: 0x000a, 0xb88: 0x000a, 0xb89: 0x000a, 0xb8a: 0x000a, 0xb8b: 0x03c0, + 0xb8c: 0x0003, 0xb8d: 0x0003, 0xb8e: 0x0340, 0xb8f: 0x0b40, 0xb90: 0x0018, 0xb91: 0xe00d, + 0xb92: 0x0018, 0xb93: 0x0018, 0xb94: 0x0018, 0xb95: 0x0018, 0xb96: 0x0018, 0xb97: 0x077e, + 0xb98: 0x0018, 0xb99: 0x0018, 0xb9a: 0x0018, 0xb9b: 0x0018, 0xb9c: 0x0018, 0xb9d: 0x0018, + 0xb9e: 0x0018, 0xb9f: 0x0018, 0xba0: 0x0018, 0xba1: 0x0018, 0xba2: 0x0018, 0xba3: 0x0018, + 0xba4: 0x0040, 0xba5: 0x0040, 0xba6: 0x0040, 0xba7: 0x0018, 0xba8: 0x0040, 0xba9: 0x0040, + 0xbaa: 0x0340, 0xbab: 0x0340, 0xbac: 0x0340, 0xbad: 0x0340, 0xbae: 0x0340, 0xbaf: 0x000a, + 0xbb0: 0x0018, 0xbb1: 0x0018, 0xbb2: 0x0018, 0xbb3: 0x1d69, 0xbb4: 0x1da1, 0xbb5: 0x0018, + 0xbb6: 0x1df1, 0xbb7: 0x1e29, 0xbb8: 0x0018, 0xbb9: 0x0018, 0xbba: 0x0018, 0xbbb: 0x0018, + 0xbbc: 0x1e7a, 0xbbd: 0x0018, 0xbbe: 0x079e, 0xbbf: 0x0018, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x0018, 0xbc1: 0x0018, 0xbc2: 0x0018, 0xbc3: 0x0018, 0xbc4: 0x0018, 0xbc5: 0x0018, + 0xbc6: 0x0018, 0xbc7: 0x1e92, 0xbc8: 0x1eaa, 0xbc9: 0x1ec2, 0xbca: 0x0018, 0xbcb: 0x0018, + 0xbcc: 0x0018, 0xbcd: 0x0018, 0xbce: 0x0018, 0xbcf: 0x0018, 0xbd0: 0x0018, 0xbd1: 0x0018, + 0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x1ed9, + 0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018, + 0xbde: 0x0018, 0xbdf: 0x000a, 0xbe0: 0x03c0, 0xbe1: 0x0340, 0xbe2: 0x0340, 0xbe3: 0x0340, + 0xbe4: 0x03c0, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0040, 0xbe8: 0x0040, 0xbe9: 0x0040, + 0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x0340, + 0xbf0: 0x1f41, 0xbf1: 0x0f41, 0xbf2: 0x0040, 0xbf3: 0x0040, 0xbf4: 0x1f51, 0xbf5: 0x1f61, + 0xbf6: 0x1f71, 0xbf7: 0x1f81, 0xbf8: 0x1f91, 0xbf9: 0x1fa1, 0xbfa: 0x1fb2, 0xbfb: 0x07bd, + 0xbfc: 0x1fc2, 0xbfd: 0x1fd2, 0xbfe: 0x1fe2, 0xbff: 0x0f71, + // Block 0x30, offset 0xc00 + 0xc00: 0x1f41, 0xc01: 0x00c9, 0xc02: 0x0069, 0xc03: 0x0079, 0xc04: 0x1f51, 0xc05: 0x1f61, + 0xc06: 0x1f71, 0xc07: 0x1f81, 0xc08: 0x1f91, 0xc09: 0x1fa1, 0xc0a: 0x1fb2, 0xc0b: 0x07d5, + 0xc0c: 0x1fc2, 0xc0d: 0x1fd2, 0xc0e: 0x1fe2, 0xc0f: 0x0040, 0xc10: 0x0039, 0xc11: 0x0f09, + 0xc12: 0x00d9, 0xc13: 0x0369, 0xc14: 0x0ff9, 0xc15: 0x0249, 0xc16: 0x0f51, 0xc17: 0x0359, + 0xc18: 0x0f61, 0xc19: 0x0f71, 0xc1a: 0x0f99, 0xc1b: 0x01d9, 0xc1c: 0x0fa9, 0xc1d: 0x0040, + 0xc1e: 0x0040, 0xc1f: 0x0040, 0xc20: 0x0018, 0xc21: 0x0018, 0xc22: 0x0018, 0xc23: 0x0018, + 0xc24: 0x0018, 0xc25: 0x0018, 0xc26: 0x0018, 0xc27: 0x0018, 0xc28: 0x1ff1, 0xc29: 0x0018, + 0xc2a: 0x0018, 0xc2b: 0x0018, 0xc2c: 0x0018, 0xc2d: 0x0018, 0xc2e: 0x0018, 0xc2f: 0x0018, + 0xc30: 0x0018, 0xc31: 0x0018, 0xc32: 0x0018, 0xc33: 0x0018, 0xc34: 0x0018, 0xc35: 0x0018, + 0xc36: 0x0018, 0xc37: 0x0018, 0xc38: 0x0018, 0xc39: 0x0018, 0xc3a: 0x0018, 0xc3b: 0x0018, + 0xc3c: 0x0018, 0xc3d: 0x0018, 0xc3e: 0x0018, 0xc3f: 0x0040, + // Block 0x31, offset 0xc40 + 0xc40: 0x07ee, 0xc41: 0x080e, 0xc42: 0x1159, 0xc43: 0x082d, 0xc44: 0x0018, 0xc45: 0x084e, + 0xc46: 0x086e, 0xc47: 0x1011, 0xc48: 0x0018, 0xc49: 0x088d, 0xc4a: 0x0f31, 0xc4b: 0x0249, + 0xc4c: 0x0249, 0xc4d: 0x0249, 0xc4e: 0x0249, 0xc4f: 0x2009, 0xc50: 0x0f41, 0xc51: 0x0f41, + 0xc52: 0x0359, 0xc53: 0x0359, 0xc54: 0x0018, 0xc55: 0x0f71, 0xc56: 0x2021, 0xc57: 0x0018, + 0xc58: 0x0018, 0xc59: 0x0f99, 0xc5a: 0x2039, 0xc5b: 0x0269, 0xc5c: 0x0269, 0xc5d: 0x0269, + 0xc5e: 0x0018, 0xc5f: 0x0018, 0xc60: 0x2049, 0xc61: 0x08ad, 0xc62: 0x2061, 0xc63: 0x0018, + 0xc64: 0x13d1, 0xc65: 0x0018, 0xc66: 0x2079, 0xc67: 0x0018, 0xc68: 0x13d1, 0xc69: 0x0018, + 0xc6a: 0x0f51, 0xc6b: 0x2091, 0xc6c: 0x0ee9, 0xc6d: 0x1159, 0xc6e: 0x0018, 0xc6f: 0x0f09, + 0xc70: 0x0f09, 0xc71: 0x1199, 0xc72: 0x0040, 0xc73: 0x0f61, 0xc74: 0x00d9, 0xc75: 0x20a9, + 0xc76: 0x20c1, 0xc77: 0x20d9, 0xc78: 0x20f1, 0xc79: 0x0f41, 0xc7a: 0x0018, 0xc7b: 0x08cd, + 0xc7c: 0x2109, 0xc7d: 0x10b1, 0xc7e: 0x10b1, 0xc7f: 0x2109, + // Block 0x32, offset 0xc80 + 0xc80: 0x08ed, 0xc81: 0x0018, 0xc82: 0x0018, 0xc83: 0x0018, 0xc84: 0x0018, 0xc85: 0x0ef9, + 0xc86: 0x0ef9, 0xc87: 0x0f09, 0xc88: 0x0f41, 0xc89: 0x0259, 0xc8a: 0x0018, 0xc8b: 0x0018, + 0xc8c: 0x0018, 0xc8d: 0x0018, 0xc8e: 0x0008, 0xc8f: 0x0018, 0xc90: 0x2121, 0xc91: 0x2151, + 0xc92: 0x2181, 0xc93: 0x21b9, 0xc94: 0x21e9, 0xc95: 0x2219, 0xc96: 0x2249, 0xc97: 0x2279, + 0xc98: 0x22a9, 0xc99: 0x22d9, 0xc9a: 0x2309, 0xc9b: 0x2339, 0xc9c: 0x2369, 0xc9d: 0x2399, + 0xc9e: 0x23c9, 0xc9f: 0x23f9, 0xca0: 0x0f41, 0xca1: 0x2421, 0xca2: 0x0905, 0xca3: 0x2439, + 0xca4: 0x1089, 0xca5: 0x2451, 0xca6: 0x0925, 0xca7: 0x2469, 0xca8: 0x2491, 0xca9: 0x0369, + 0xcaa: 0x24a9, 0xcab: 0x0945, 0xcac: 0x0359, 0xcad: 0x1159, 0xcae: 0x0ef9, 0xcaf: 0x0f61, + 0xcb0: 0x0f41, 0xcb1: 0x2421, 0xcb2: 0x0965, 0xcb3: 0x2439, 0xcb4: 0x1089, 0xcb5: 0x2451, + 0xcb6: 0x0985, 0xcb7: 0x2469, 0xcb8: 0x2491, 0xcb9: 0x0369, 0xcba: 0x24a9, 0xcbb: 0x09a5, + 0xcbc: 0x0359, 0xcbd: 0x1159, 0xcbe: 0x0ef9, 0xcbf: 0x0f61, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x0018, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0018, + 0xcc6: 0x0018, 0xcc7: 0x0018, 0xcc8: 0x0018, 0xcc9: 0x0018, 0xcca: 0x0018, 0xccb: 0x0040, + 0xccc: 0x0040, 0xccd: 0x0040, 0xcce: 0x0040, 0xccf: 0x0040, 0xcd0: 0x0040, 0xcd1: 0x0040, + 0xcd2: 0x0040, 0xcd3: 0x0040, 0xcd4: 0x0040, 0xcd5: 0x0040, 0xcd6: 0x0040, 0xcd7: 0x0040, + 0xcd8: 0x0040, 0xcd9: 0x0040, 0xcda: 0x0040, 0xcdb: 0x0040, 0xcdc: 0x0040, 0xcdd: 0x0040, + 0xcde: 0x0040, 0xcdf: 0x0040, 0xce0: 0x00c9, 0xce1: 0x0069, 0xce2: 0x0079, 0xce3: 0x1f51, + 0xce4: 0x1f61, 0xce5: 0x1f71, 0xce6: 0x1f81, 0xce7: 0x1f91, 0xce8: 0x1fa1, 0xce9: 0x2601, + 0xcea: 0x2619, 0xceb: 0x2631, 0xcec: 0x2649, 0xced: 0x2661, 0xcee: 0x2679, 0xcef: 0x2691, + 0xcf0: 0x26a9, 0xcf1: 0x26c1, 0xcf2: 0x26d9, 0xcf3: 0x26f1, 0xcf4: 0x0a06, 0xcf5: 0x0a26, + 0xcf6: 0x0a46, 0xcf7: 0x0a66, 0xcf8: 0x0a86, 0xcf9: 0x0aa6, 0xcfa: 0x0ac6, 0xcfb: 0x0ae6, + 0xcfc: 0x0b06, 0xcfd: 0x270a, 0xcfe: 0x2732, 0xcff: 0x275a, + // Block 0x34, offset 0xd00 + 0xd00: 0x2782, 0xd01: 0x27aa, 0xd02: 0x27d2, 0xd03: 0x27fa, 0xd04: 0x2822, 0xd05: 0x284a, + 0xd06: 0x2872, 0xd07: 0x289a, 0xd08: 0x0040, 0xd09: 0x0040, 0xd0a: 0x0040, 0xd0b: 0x0040, + 0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040, + 0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040, + 0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0b26, 0xd1d: 0x0b46, + 0xd1e: 0x0b66, 0xd1f: 0x0b86, 0xd20: 0x0ba6, 0xd21: 0x0bc6, 0xd22: 0x0be6, 0xd23: 0x0c06, + 0xd24: 0x0c26, 0xd25: 0x0c46, 0xd26: 0x0c66, 0xd27: 0x0c86, 0xd28: 0x0ca6, 0xd29: 0x0cc6, + 0xd2a: 0x0ce6, 0xd2b: 0x0d06, 0xd2c: 0x0d26, 0xd2d: 0x0d46, 0xd2e: 0x0d66, 0xd2f: 0x0d86, + 0xd30: 0x0da6, 0xd31: 0x0dc6, 0xd32: 0x0de6, 0xd33: 0x0e06, 0xd34: 0x0e26, 0xd35: 0x0e46, + 0xd36: 0x0039, 0xd37: 0x0ee9, 0xd38: 0x1159, 0xd39: 0x0ef9, 0xd3a: 0x0f09, 0xd3b: 0x1199, + 0xd3c: 0x0f31, 0xd3d: 0x0249, 0xd3e: 0x0f41, 0xd3f: 0x0259, + // Block 0x35, offset 0xd40 + 0xd40: 0x0f51, 0xd41: 0x0359, 0xd42: 0x0f61, 0xd43: 0x0f71, 0xd44: 0x00d9, 0xd45: 0x0f99, + 0xd46: 0x2039, 0xd47: 0x0269, 0xd48: 0x01d9, 0xd49: 0x0fa9, 0xd4a: 0x0fb9, 0xd4b: 0x1089, + 0xd4c: 0x0279, 0xd4d: 0x0369, 0xd4e: 0x0289, 0xd4f: 0x13d1, 0xd50: 0x0039, 0xd51: 0x0ee9, + 0xd52: 0x1159, 0xd53: 0x0ef9, 0xd54: 0x0f09, 0xd55: 0x1199, 0xd56: 0x0f31, 0xd57: 0x0249, + 0xd58: 0x0f41, 0xd59: 0x0259, 0xd5a: 0x0f51, 0xd5b: 0x0359, 0xd5c: 0x0f61, 0xd5d: 0x0f71, + 0xd5e: 0x00d9, 0xd5f: 0x0f99, 0xd60: 0x2039, 0xd61: 0x0269, 0xd62: 0x01d9, 0xd63: 0x0fa9, + 0xd64: 0x0fb9, 0xd65: 0x1089, 0xd66: 0x0279, 0xd67: 0x0369, 0xd68: 0x0289, 0xd69: 0x13d1, + 0xd6a: 0x1f41, 0xd6b: 0x0018, 0xd6c: 0x0018, 0xd6d: 0x0018, 0xd6e: 0x0018, 0xd6f: 0x0018, + 0xd70: 0x0018, 0xd71: 0x0018, 0xd72: 0x0018, 0xd73: 0x0018, 0xd74: 0x0018, 0xd75: 0x0018, + 0xd76: 0x0018, 0xd77: 0x0018, 0xd78: 0x0018, 0xd79: 0x0018, 0xd7a: 0x0018, 0xd7b: 0x0018, + 0xd7c: 0x0018, 0xd7d: 0x0018, 0xd7e: 0x0018, 0xd7f: 0x0018, + // Block 0x36, offset 0xd80 + 0xd80: 0x0008, 0xd81: 0x0008, 0xd82: 0x0008, 0xd83: 0x0008, 0xd84: 0x0008, 0xd85: 0x0008, + 0xd86: 0x0008, 0xd87: 0x0008, 0xd88: 0x0008, 0xd89: 0x0008, 0xd8a: 0x0008, 0xd8b: 0x0008, + 0xd8c: 0x0008, 0xd8d: 0x0008, 0xd8e: 0x0008, 0xd8f: 0x0008, 0xd90: 0x0008, 0xd91: 0x0008, + 0xd92: 0x0008, 0xd93: 0x0008, 0xd94: 0x0008, 0xd95: 0x0008, 0xd96: 0x0008, 0xd97: 0x0008, + 0xd98: 0x0008, 0xd99: 0x0008, 0xd9a: 0x0008, 0xd9b: 0x0008, 0xd9c: 0x0008, 0xd9d: 0x0008, + 0xd9e: 0x0008, 0xd9f: 0x0040, 0xda0: 0xe00d, 0xda1: 0x0008, 0xda2: 0x2971, 0xda3: 0x0ebd, + 0xda4: 0x2989, 0xda5: 0x0008, 0xda6: 0x0008, 0xda7: 0xe07d, 0xda8: 0x0008, 0xda9: 0xe01d, + 0xdaa: 0x0008, 0xdab: 0xe03d, 0xdac: 0x0008, 0xdad: 0x0fe1, 0xdae: 0x1281, 0xdaf: 0x0fc9, + 0xdb0: 0x1141, 0xdb1: 0x0008, 0xdb2: 0xe00d, 0xdb3: 0x0008, 0xdb4: 0x0008, 0xdb5: 0xe01d, + 0xdb6: 0x0008, 0xdb7: 0x0008, 0xdb8: 0x0008, 0xdb9: 0x0008, 0xdba: 0x0008, 0xdbb: 0x0008, + 0xdbc: 0x0259, 0xdbd: 0x1089, 0xdbe: 0x29a1, 0xdbf: 0x29b9, + // Block 0x37, offset 0xdc0 + 0xdc0: 0xe00d, 0xdc1: 0x0008, 0xdc2: 0xe00d, 0xdc3: 0x0008, 0xdc4: 0xe00d, 0xdc5: 0x0008, + 0xdc6: 0xe00d, 0xdc7: 0x0008, 0xdc8: 0xe00d, 0xdc9: 0x0008, 0xdca: 0xe00d, 0xdcb: 0x0008, + 0xdcc: 0xe00d, 0xdcd: 0x0008, 0xdce: 0xe00d, 0xdcf: 0x0008, 0xdd0: 0xe00d, 0xdd1: 0x0008, + 0xdd2: 0xe00d, 0xdd3: 0x0008, 0xdd4: 0xe00d, 0xdd5: 0x0008, 0xdd6: 0xe00d, 0xdd7: 0x0008, + 0xdd8: 0xe00d, 0xdd9: 0x0008, 0xdda: 0xe00d, 0xddb: 0x0008, 0xddc: 0xe00d, 0xddd: 0x0008, + 0xdde: 0xe00d, 0xddf: 0x0008, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0xe00d, 0xde3: 0x0008, + 0xde4: 0x0008, 0xde5: 0x0018, 0xde6: 0x0018, 0xde7: 0x0018, 0xde8: 0x0018, 0xde9: 0x0018, + 0xdea: 0x0018, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0xe01d, 0xdee: 0x0008, 0xdef: 0x3308, + 0xdf0: 0x3308, 0xdf1: 0x3308, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0040, 0xdf5: 0x0040, + 0xdf6: 0x0040, 0xdf7: 0x0040, 0xdf8: 0x0040, 0xdf9: 0x0018, 0xdfa: 0x0018, 0xdfb: 0x0018, + 0xdfc: 0x0018, 0xdfd: 0x0018, 0xdfe: 0x0018, 0xdff: 0x0018, + // Block 0x38, offset 0xe00 + 0xe00: 0x26fd, 0xe01: 0x271d, 0xe02: 0x273d, 0xe03: 0x275d, 0xe04: 0x277d, 0xe05: 0x279d, + 0xe06: 0x27bd, 0xe07: 0x27dd, 0xe08: 0x27fd, 0xe09: 0x281d, 0xe0a: 0x283d, 0xe0b: 0x285d, + 0xe0c: 0x287d, 0xe0d: 0x289d, 0xe0e: 0x28bd, 0xe0f: 0x28dd, 0xe10: 0x28fd, 0xe11: 0x291d, + 0xe12: 0x293d, 0xe13: 0x295d, 0xe14: 0x297d, 0xe15: 0x299d, 0xe16: 0x0040, 0xe17: 0x0040, + 0xe18: 0x0040, 0xe19: 0x0040, 0xe1a: 0x0040, 0xe1b: 0x0040, 0xe1c: 0x0040, 0xe1d: 0x0040, + 0xe1e: 0x0040, 0xe1f: 0x0040, 0xe20: 0x0040, 0xe21: 0x0040, 0xe22: 0x0040, 0xe23: 0x0040, + 0xe24: 0x0040, 0xe25: 0x0040, 0xe26: 0x0040, 0xe27: 0x0040, 0xe28: 0x0040, 0xe29: 0x0040, + 0xe2a: 0x0040, 0xe2b: 0x0040, 0xe2c: 0x0040, 0xe2d: 0x0040, 0xe2e: 0x0040, 0xe2f: 0x0040, + 0xe30: 0x0040, 0xe31: 0x0040, 0xe32: 0x0040, 0xe33: 0x0040, 0xe34: 0x0040, 0xe35: 0x0040, + 0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0040, 0xe3a: 0x0040, 0xe3b: 0x0040, + 0xe3c: 0x0040, 0xe3d: 0x0040, 0xe3e: 0x0040, 0xe3f: 0x0040, + // Block 0x39, offset 0xe40 + 0xe40: 0x000a, 0xe41: 0x0018, 0xe42: 0x29d1, 0xe43: 0x0018, 0xe44: 0x0018, 0xe45: 0x0008, + 0xe46: 0x0008, 0xe47: 0x0008, 0xe48: 0x0018, 0xe49: 0x0018, 0xe4a: 0x0018, 0xe4b: 0x0018, + 0xe4c: 0x0018, 0xe4d: 0x0018, 0xe4e: 0x0018, 0xe4f: 0x0018, 0xe50: 0x0018, 0xe51: 0x0018, + 0xe52: 0x0018, 0xe53: 0x0018, 0xe54: 0x0018, 0xe55: 0x0018, 0xe56: 0x0018, 0xe57: 0x0018, + 0xe58: 0x0018, 0xe59: 0x0018, 0xe5a: 0x0018, 0xe5b: 0x0018, 0xe5c: 0x0018, 0xe5d: 0x0018, + 0xe5e: 0x0018, 0xe5f: 0x0018, 0xe60: 0x0018, 0xe61: 0x0018, 0xe62: 0x0018, 0xe63: 0x0018, + 0xe64: 0x0018, 0xe65: 0x0018, 0xe66: 0x0018, 0xe67: 0x0018, 0xe68: 0x0018, 0xe69: 0x0018, + 0xe6a: 0x3308, 0xe6b: 0x3308, 0xe6c: 0x3308, 0xe6d: 0x3308, 0xe6e: 0x3018, 0xe6f: 0x3018, + 0xe70: 0x0018, 0xe71: 0x0018, 0xe72: 0x0018, 0xe73: 0x0018, 0xe74: 0x0018, 0xe75: 0x0018, + 0xe76: 0xe125, 0xe77: 0x0018, 0xe78: 0x29bd, 0xe79: 0x29dd, 0xe7a: 0x29fd, 0xe7b: 0x0018, + 0xe7c: 0x0008, 0xe7d: 0x0018, 0xe7e: 0x0018, 0xe7f: 0x0018, + // Block 0x3a, offset 0xe80 + 0xe80: 0x2b3d, 0xe81: 0x2b5d, 0xe82: 0x2b7d, 0xe83: 0x2b9d, 0xe84: 0x2bbd, 0xe85: 0x2bdd, + 0xe86: 0x2bdd, 0xe87: 0x2bdd, 0xe88: 0x2bfd, 0xe89: 0x2bfd, 0xe8a: 0x2bfd, 0xe8b: 0x2bfd, + 0xe8c: 0x2c1d, 0xe8d: 0x2c1d, 0xe8e: 0x2c1d, 0xe8f: 0x2c3d, 0xe90: 0x2c5d, 0xe91: 0x2c5d, + 0xe92: 0x2a7d, 0xe93: 0x2a7d, 0xe94: 0x2c5d, 0xe95: 0x2c5d, 0xe96: 0x2c7d, 0xe97: 0x2c7d, + 0xe98: 0x2c5d, 0xe99: 0x2c5d, 0xe9a: 0x2a7d, 0xe9b: 0x2a7d, 0xe9c: 0x2c5d, 0xe9d: 0x2c5d, + 0xe9e: 0x2c3d, 0xe9f: 0x2c3d, 0xea0: 0x2c9d, 0xea1: 0x2c9d, 0xea2: 0x2cbd, 0xea3: 0x2cbd, + 0xea4: 0x0040, 0xea5: 0x2cdd, 0xea6: 0x2cfd, 0xea7: 0x2d1d, 0xea8: 0x2d1d, 0xea9: 0x2d3d, + 0xeaa: 0x2d5d, 0xeab: 0x2d7d, 0xeac: 0x2d9d, 0xead: 0x2dbd, 0xeae: 0x2ddd, 0xeaf: 0x2dfd, + 0xeb0: 0x2e1d, 0xeb1: 0x2e3d, 0xeb2: 0x2e3d, 0xeb3: 0x2e5d, 0xeb4: 0x2e7d, 0xeb5: 0x2e7d, + 0xeb6: 0x2e9d, 0xeb7: 0x2ebd, 0xeb8: 0x2e5d, 0xeb9: 0x2edd, 0xeba: 0x2efd, 0xebb: 0x2edd, + 0xebc: 0x2e5d, 0xebd: 0x2f1d, 0xebe: 0x2f3d, 0xebf: 0x2f5d, + // Block 0x3b, offset 0xec0 + 0xec0: 0x2f7d, 0xec1: 0x2f9d, 0xec2: 0x2cfd, 0xec3: 0x2cdd, 0xec4: 0x2fbd, 0xec5: 0x2fdd, + 0xec6: 0x2ffd, 0xec7: 0x301d, 0xec8: 0x303d, 0xec9: 0x305d, 0xeca: 0x307d, 0xecb: 0x309d, + 0xecc: 0x30bd, 0xecd: 0x30dd, 0xece: 0x30fd, 0xecf: 0x0040, 0xed0: 0x0018, 0xed1: 0x0018, + 0xed2: 0x311d, 0xed3: 0x313d, 0xed4: 0x315d, 0xed5: 0x317d, 0xed6: 0x319d, 0xed7: 0x31bd, + 0xed8: 0x31dd, 0xed9: 0x31fd, 0xeda: 0x321d, 0xedb: 0x323d, 0xedc: 0x315d, 0xedd: 0x325d, + 0xede: 0x327d, 0xedf: 0x329d, 0xee0: 0x0008, 0xee1: 0x0008, 0xee2: 0x0008, 0xee3: 0x0008, + 0xee4: 0x0008, 0xee5: 0x0008, 0xee6: 0x0008, 0xee7: 0x0008, 0xee8: 0x0008, 0xee9: 0x0008, + 0xeea: 0x0008, 0xeeb: 0x0008, 0xeec: 0x0008, 0xeed: 0x0008, 0xeee: 0x0008, 0xeef: 0x0008, + 0xef0: 0x0008, 0xef1: 0x0008, 0xef2: 0x0008, 0xef3: 0x0008, 0xef4: 0x0008, 0xef5: 0x0008, + 0xef6: 0x0008, 0xef7: 0x0008, 0xef8: 0x0008, 0xef9: 0x0008, 0xefa: 0x0008, 0xefb: 0x0040, + 0xefc: 0x0040, 0xefd: 0x0040, 0xefe: 0x0040, 0xeff: 0x0040, + // Block 0x3c, offset 0xf00 + 0xf00: 0x36a2, 0xf01: 0x36d2, 0xf02: 0x3702, 0xf03: 0x3732, 0xf04: 0x32bd, 0xf05: 0x32dd, + 0xf06: 0x32fd, 0xf07: 0x331d, 0xf08: 0x0018, 0xf09: 0x0018, 0xf0a: 0x0018, 0xf0b: 0x0018, + 0xf0c: 0x0018, 0xf0d: 0x0018, 0xf0e: 0x0018, 0xf0f: 0x0018, 0xf10: 0x333d, 0xf11: 0x3761, + 0xf12: 0x3779, 0xf13: 0x3791, 0xf14: 0x37a9, 0xf15: 0x37c1, 0xf16: 0x37d9, 0xf17: 0x37f1, + 0xf18: 0x3809, 0xf19: 0x3821, 0xf1a: 0x3839, 0xf1b: 0x3851, 0xf1c: 0x3869, 0xf1d: 0x3881, + 0xf1e: 0x3899, 0xf1f: 0x38b1, 0xf20: 0x335d, 0xf21: 0x337d, 0xf22: 0x339d, 0xf23: 0x33bd, + 0xf24: 0x33dd, 0xf25: 0x33dd, 0xf26: 0x33fd, 0xf27: 0x341d, 0xf28: 0x343d, 0xf29: 0x345d, + 0xf2a: 0x347d, 0xf2b: 0x349d, 0xf2c: 0x34bd, 0xf2d: 0x34dd, 0xf2e: 0x34fd, 0xf2f: 0x351d, + 0xf30: 0x353d, 0xf31: 0x355d, 0xf32: 0x357d, 0xf33: 0x359d, 0xf34: 0x35bd, 0xf35: 0x35dd, + 0xf36: 0x35fd, 0xf37: 0x361d, 0xf38: 0x363d, 0xf39: 0x365d, 0xf3a: 0x367d, 0xf3b: 0x369d, + 0xf3c: 0x38c9, 0xf3d: 0x3901, 0xf3e: 0x36bd, 0xf3f: 0x0018, + // Block 0x3d, offset 0xf40 + 0xf40: 0x36dd, 0xf41: 0x36fd, 0xf42: 0x371d, 0xf43: 0x373d, 0xf44: 0x375d, 0xf45: 0x377d, + 0xf46: 0x379d, 0xf47: 0x37bd, 0xf48: 0x37dd, 0xf49: 0x37fd, 0xf4a: 0x381d, 0xf4b: 0x383d, + 0xf4c: 0x385d, 0xf4d: 0x387d, 0xf4e: 0x389d, 0xf4f: 0x38bd, 0xf50: 0x38dd, 0xf51: 0x38fd, + 0xf52: 0x391d, 0xf53: 0x393d, 0xf54: 0x395d, 0xf55: 0x397d, 0xf56: 0x399d, 0xf57: 0x39bd, + 0xf58: 0x39dd, 0xf59: 0x39fd, 0xf5a: 0x3a1d, 0xf5b: 0x3a3d, 0xf5c: 0x3a5d, 0xf5d: 0x3a7d, + 0xf5e: 0x3a9d, 0xf5f: 0x3abd, 0xf60: 0x3add, 0xf61: 0x3afd, 0xf62: 0x3b1d, 0xf63: 0x3b3d, + 0xf64: 0x3b5d, 0xf65: 0x3b7d, 0xf66: 0x127d, 0xf67: 0x3b9d, 0xf68: 0x3bbd, 0xf69: 0x3bdd, + 0xf6a: 0x3bfd, 0xf6b: 0x3c1d, 0xf6c: 0x3c3d, 0xf6d: 0x3c5d, 0xf6e: 0x239d, 0xf6f: 0x3c7d, + 0xf70: 0x3c9d, 0xf71: 0x3939, 0xf72: 0x3951, 0xf73: 0x3969, 0xf74: 0x3981, 0xf75: 0x3999, + 0xf76: 0x39b1, 0xf77: 0x39c9, 0xf78: 0x39e1, 0xf79: 0x39f9, 0xf7a: 0x3a11, 0xf7b: 0x3a29, + 0xf7c: 0x3a41, 0xf7d: 0x3a59, 0xf7e: 0x3a71, 0xf7f: 0x3a89, + // Block 0x3e, offset 0xf80 + 0xf80: 0x3aa1, 0xf81: 0x3ac9, 0xf82: 0x3af1, 0xf83: 0x3b19, 0xf84: 0x3b41, 0xf85: 0x3b69, + 0xf86: 0x3b91, 0xf87: 0x3bb9, 0xf88: 0x3be1, 0xf89: 0x3c09, 0xf8a: 0x3c39, 0xf8b: 0x3c69, + 0xf8c: 0x3c99, 0xf8d: 0x3cbd, 0xf8e: 0x3cb1, 0xf8f: 0x3cdd, 0xf90: 0x3cfd, 0xf91: 0x3d15, + 0xf92: 0x3d2d, 0xf93: 0x3d45, 0xf94: 0x3d5d, 0xf95: 0x3d5d, 0xf96: 0x3d45, 0xf97: 0x3d75, + 0xf98: 0x07bd, 0xf99: 0x3d8d, 0xf9a: 0x3da5, 0xf9b: 0x3dbd, 0xf9c: 0x3dd5, 0xf9d: 0x3ded, + 0xf9e: 0x3e05, 0xf9f: 0x3e1d, 0xfa0: 0x3e35, 0xfa1: 0x3e4d, 0xfa2: 0x3e65, 0xfa3: 0x3e7d, + 0xfa4: 0x3e95, 0xfa5: 0x3e95, 0xfa6: 0x3ead, 0xfa7: 0x3ead, 0xfa8: 0x3ec5, 0xfa9: 0x3ec5, + 0xfaa: 0x3edd, 0xfab: 0x3ef5, 0xfac: 0x3f0d, 0xfad: 0x3f25, 0xfae: 0x3f3d, 0xfaf: 0x3f3d, + 0xfb0: 0x3f55, 0xfb1: 0x3f55, 0xfb2: 0x3f55, 0xfb3: 0x3f6d, 0xfb4: 0x3f85, 0xfb5: 0x3f9d, + 0xfb6: 0x3fb5, 0xfb7: 0x3f9d, 0xfb8: 0x3fcd, 0xfb9: 0x3fe5, 0xfba: 0x3f6d, 0xfbb: 0x3ffd, + 0xfbc: 0x4015, 0xfbd: 0x4015, 0xfbe: 0x4015, 0xfbf: 0x0040, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x3cc9, 0xfc1: 0x3d31, 0xfc2: 0x3d99, 0xfc3: 0x3e01, 0xfc4: 0x3e51, 0xfc5: 0x3eb9, + 0xfc6: 0x3f09, 0xfc7: 0x3f59, 0xfc8: 0x3fd9, 0xfc9: 0x4041, 0xfca: 0x4091, 0xfcb: 0x40e1, + 0xfcc: 0x4131, 0xfcd: 0x4199, 0xfce: 0x4201, 0xfcf: 0x4251, 0xfd0: 0x42a1, 0xfd1: 0x42d9, + 0xfd2: 0x4329, 0xfd3: 0x4391, 0xfd4: 0x43f9, 0xfd5: 0x4431, 0xfd6: 0x44b1, 0xfd7: 0x4549, + 0xfd8: 0x45c9, 0xfd9: 0x4619, 0xfda: 0x4699, 0xfdb: 0x4719, 0xfdc: 0x4781, 0xfdd: 0x47d1, + 0xfde: 0x4821, 0xfdf: 0x4871, 0xfe0: 0x48d9, 0xfe1: 0x4959, 0xfe2: 0x49c1, 0xfe3: 0x4a11, + 0xfe4: 0x4a61, 0xfe5: 0x4ab1, 0xfe6: 0x4ae9, 0xfe7: 0x4b21, 0xfe8: 0x4b59, 0xfe9: 0x4b91, + 0xfea: 0x4be1, 0xfeb: 0x4c31, 0xfec: 0x4cb1, 0xfed: 0x4d01, 0xfee: 0x4d69, 0xfef: 0x4de9, + 0xff0: 0x4e39, 0xff1: 0x4e71, 0xff2: 0x4ea9, 0xff3: 0x4f29, 0xff4: 0x4f91, 0xff5: 0x5011, + 0xff6: 0x5061, 0xff7: 0x50e1, 0xff8: 0x5119, 0xff9: 0x5169, 0xffa: 0x51b9, 0xffb: 0x5209, + 0xffc: 0x5259, 0xffd: 0x52a9, 0xffe: 0x5311, 0xfff: 0x5361, + // Block 0x40, offset 0x1000 + 0x1000: 0x5399, 0x1001: 0x53e9, 0x1002: 0x5439, 0x1003: 0x5489, 0x1004: 0x54f1, 0x1005: 0x5541, + 0x1006: 0x5591, 0x1007: 0x55e1, 0x1008: 0x5661, 0x1009: 0x56c9, 0x100a: 0x5701, 0x100b: 0x5781, + 0x100c: 0x57b9, 0x100d: 0x5821, 0x100e: 0x5889, 0x100f: 0x58d9, 0x1010: 0x5929, 0x1011: 0x5979, + 0x1012: 0x59e1, 0x1013: 0x5a19, 0x1014: 0x5a69, 0x1015: 0x5ad1, 0x1016: 0x5b09, 0x1017: 0x5b89, + 0x1018: 0x5bd9, 0x1019: 0x5c01, 0x101a: 0x5c29, 0x101b: 0x5c51, 0x101c: 0x5c79, 0x101d: 0x5ca1, + 0x101e: 0x5cc9, 0x101f: 0x5cf1, 0x1020: 0x5d19, 0x1021: 0x5d41, 0x1022: 0x5d69, 0x1023: 0x5d99, + 0x1024: 0x5dc9, 0x1025: 0x5df9, 0x1026: 0x5e29, 0x1027: 0x5e59, 0x1028: 0x5e89, 0x1029: 0x5eb9, + 0x102a: 0x5ee9, 0x102b: 0x5f19, 0x102c: 0x5f49, 0x102d: 0x5f79, 0x102e: 0x5fa9, 0x102f: 0x5fd9, + 0x1030: 0x6009, 0x1031: 0x402d, 0x1032: 0x6039, 0x1033: 0x6051, 0x1034: 0x404d, 0x1035: 0x6069, + 0x1036: 0x6081, 0x1037: 0x6099, 0x1038: 0x406d, 0x1039: 0x406d, 0x103a: 0x60b1, 0x103b: 0x60c9, + 0x103c: 0x6101, 0x103d: 0x6139, 0x103e: 0x6171, 0x103f: 0x61a9, + // Block 0x41, offset 0x1040 + 0x1040: 0x6211, 0x1041: 0x6229, 0x1042: 0x408d, 0x1043: 0x6241, 0x1044: 0x6259, 0x1045: 0x6271, + 0x1046: 0x6289, 0x1047: 0x62a1, 0x1048: 0x40ad, 0x1049: 0x62b9, 0x104a: 0x62e1, 0x104b: 0x62f9, + 0x104c: 0x40cd, 0x104d: 0x40cd, 0x104e: 0x6311, 0x104f: 0x6329, 0x1050: 0x6341, 0x1051: 0x40ed, + 0x1052: 0x410d, 0x1053: 0x412d, 0x1054: 0x414d, 0x1055: 0x416d, 0x1056: 0x6359, 0x1057: 0x6371, + 0x1058: 0x6389, 0x1059: 0x63a1, 0x105a: 0x63b9, 0x105b: 0x418d, 0x105c: 0x63d1, 0x105d: 0x63e9, + 0x105e: 0x6401, 0x105f: 0x41ad, 0x1060: 0x41cd, 0x1061: 0x6419, 0x1062: 0x41ed, 0x1063: 0x420d, + 0x1064: 0x422d, 0x1065: 0x6431, 0x1066: 0x424d, 0x1067: 0x6449, 0x1068: 0x6479, 0x1069: 0x6211, + 0x106a: 0x426d, 0x106b: 0x428d, 0x106c: 0x42ad, 0x106d: 0x42cd, 0x106e: 0x64b1, 0x106f: 0x64f1, + 0x1070: 0x6539, 0x1071: 0x6551, 0x1072: 0x42ed, 0x1073: 0x6569, 0x1074: 0x6581, 0x1075: 0x6599, + 0x1076: 0x430d, 0x1077: 0x65b1, 0x1078: 0x65c9, 0x1079: 0x65b1, 0x107a: 0x65e1, 0x107b: 0x65f9, + 0x107c: 0x432d, 0x107d: 0x6611, 0x107e: 0x6629, 0x107f: 0x6611, + // Block 0x42, offset 0x1080 + 0x1080: 0x434d, 0x1081: 0x436d, 0x1082: 0x0040, 0x1083: 0x6641, 0x1084: 0x6659, 0x1085: 0x6671, + 0x1086: 0x6689, 0x1087: 0x0040, 0x1088: 0x66c1, 0x1089: 0x66d9, 0x108a: 0x66f1, 0x108b: 0x6709, + 0x108c: 0x6721, 0x108d: 0x6739, 0x108e: 0x6401, 0x108f: 0x6751, 0x1090: 0x6769, 0x1091: 0x6781, + 0x1092: 0x438d, 0x1093: 0x6799, 0x1094: 0x6289, 0x1095: 0x43ad, 0x1096: 0x43cd, 0x1097: 0x67b1, + 0x1098: 0x0040, 0x1099: 0x43ed, 0x109a: 0x67c9, 0x109b: 0x67e1, 0x109c: 0x67f9, 0x109d: 0x6811, + 0x109e: 0x6829, 0x109f: 0x6859, 0x10a0: 0x6889, 0x10a1: 0x68b1, 0x10a2: 0x68d9, 0x10a3: 0x6901, + 0x10a4: 0x6929, 0x10a5: 0x6951, 0x10a6: 0x6979, 0x10a7: 0x69a1, 0x10a8: 0x69c9, 0x10a9: 0x69f1, + 0x10aa: 0x6a21, 0x10ab: 0x6a51, 0x10ac: 0x6a81, 0x10ad: 0x6ab1, 0x10ae: 0x6ae1, 0x10af: 0x6b11, + 0x10b0: 0x6b41, 0x10b1: 0x6b71, 0x10b2: 0x6ba1, 0x10b3: 0x6bd1, 0x10b4: 0x6c01, 0x10b5: 0x6c31, + 0x10b6: 0x6c61, 0x10b7: 0x6c91, 0x10b8: 0x6cc1, 0x10b9: 0x6cf1, 0x10ba: 0x6d21, 0x10bb: 0x6d51, + 0x10bc: 0x6d81, 0x10bd: 0x6db1, 0x10be: 0x6de1, 0x10bf: 0x440d, + // Block 0x43, offset 0x10c0 + 0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008, + 0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008, + 0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008, + 0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008, + 0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0xe00d, 0x10dd: 0x0008, + 0x10de: 0xe00d, 0x10df: 0x0008, 0x10e0: 0xe00d, 0x10e1: 0x0008, 0x10e2: 0xe00d, 0x10e3: 0x0008, + 0x10e4: 0xe00d, 0x10e5: 0x0008, 0x10e6: 0xe00d, 0x10e7: 0x0008, 0x10e8: 0xe00d, 0x10e9: 0x0008, + 0x10ea: 0xe00d, 0x10eb: 0x0008, 0x10ec: 0xe00d, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x3308, + 0x10f0: 0x3318, 0x10f1: 0x3318, 0x10f2: 0x3318, 0x10f3: 0x0018, 0x10f4: 0x3308, 0x10f5: 0x3308, + 0x10f6: 0x3308, 0x10f7: 0x3308, 0x10f8: 0x3308, 0x10f9: 0x3308, 0x10fa: 0x3308, 0x10fb: 0x3308, + 0x10fc: 0x3308, 0x10fd: 0x3308, 0x10fe: 0x0018, 0x10ff: 0x0008, + // Block 0x44, offset 0x1100 + 0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008, + 0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008, + 0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008, + 0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008, + 0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0x0ea1, 0x111d: 0x6e11, + 0x111e: 0x3308, 0x111f: 0x3308, 0x1120: 0x0008, 0x1121: 0x0008, 0x1122: 0x0008, 0x1123: 0x0008, + 0x1124: 0x0008, 0x1125: 0x0008, 0x1126: 0x0008, 0x1127: 0x0008, 0x1128: 0x0008, 0x1129: 0x0008, + 0x112a: 0x0008, 0x112b: 0x0008, 0x112c: 0x0008, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x0008, + 0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0x0008, 0x1133: 0x0008, 0x1134: 0x0008, 0x1135: 0x0008, + 0x1136: 0x0008, 0x1137: 0x0008, 0x1138: 0x0008, 0x1139: 0x0008, 0x113a: 0x0008, 0x113b: 0x0008, + 0x113c: 0x0008, 0x113d: 0x0008, 0x113e: 0x0008, 0x113f: 0x0008, + // Block 0x45, offset 0x1140 + 0x1140: 0x0018, 0x1141: 0x0018, 0x1142: 0x0018, 0x1143: 0x0018, 0x1144: 0x0018, 0x1145: 0x0018, + 0x1146: 0x0018, 0x1147: 0x0018, 0x1148: 0x0018, 0x1149: 0x0018, 0x114a: 0x0018, 0x114b: 0x0018, + 0x114c: 0x0018, 0x114d: 0x0018, 0x114e: 0x0018, 0x114f: 0x0018, 0x1150: 0x0018, 0x1151: 0x0018, + 0x1152: 0x0018, 0x1153: 0x0018, 0x1154: 0x0018, 0x1155: 0x0018, 0x1156: 0x0018, 0x1157: 0x0008, + 0x1158: 0x0008, 0x1159: 0x0008, 0x115a: 0x0008, 0x115b: 0x0008, 0x115c: 0x0008, 0x115d: 0x0008, + 0x115e: 0x0008, 0x115f: 0x0008, 0x1160: 0x0018, 0x1161: 0x0018, 0x1162: 0xe00d, 0x1163: 0x0008, + 0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008, + 0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008, + 0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0xe00d, 0x1173: 0x0008, 0x1174: 0xe00d, 0x1175: 0x0008, + 0x1176: 0xe00d, 0x1177: 0x0008, 0x1178: 0xe00d, 0x1179: 0x0008, 0x117a: 0xe00d, 0x117b: 0x0008, + 0x117c: 0xe00d, 0x117d: 0x0008, 0x117e: 0xe00d, 0x117f: 0x0008, + // Block 0x46, offset 0x1180 + 0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008, + 0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0xe00d, 0x1189: 0x0008, 0x118a: 0xe00d, 0x118b: 0x0008, + 0x118c: 0xe00d, 0x118d: 0x0008, 0x118e: 0xe00d, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008, + 0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0xe00d, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008, + 0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008, + 0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008, + 0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008, + 0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008, + 0x11b0: 0xe0fd, 0x11b1: 0x0008, 0x11b2: 0x0008, 0x11b3: 0x0008, 0x11b4: 0x0008, 0x11b5: 0x0008, + 0x11b6: 0x0008, 0x11b7: 0x0008, 0x11b8: 0x0008, 0x11b9: 0xe01d, 0x11ba: 0x0008, 0x11bb: 0xe03d, + 0x11bc: 0x0008, 0x11bd: 0x442d, 0x11be: 0xe00d, 0x11bf: 0x0008, + // Block 0x47, offset 0x11c0 + 0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008, + 0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0x0008, 0x11c9: 0x0018, 0x11ca: 0x0018, 0x11cb: 0xe03d, + 0x11cc: 0x0008, 0x11cd: 0x11d9, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008, + 0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008, + 0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008, + 0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008, + 0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008, + 0x11ea: 0x6e29, 0x11eb: 0x1029, 0x11ec: 0x11c1, 0x11ed: 0x6e41, 0x11ee: 0x1221, 0x11ef: 0x0040, + 0x11f0: 0x6e59, 0x11f1: 0x6e71, 0x11f2: 0x1239, 0x11f3: 0x444d, 0x11f4: 0xe00d, 0x11f5: 0x0008, + 0x11f6: 0xe00d, 0x11f7: 0x0008, 0x11f8: 0x0040, 0x11f9: 0x0040, 0x11fa: 0x0040, 0x11fb: 0x0040, + 0x11fc: 0x0040, 0x11fd: 0x0040, 0x11fe: 0x0040, 0x11ff: 0x0040, + // Block 0x48, offset 0x1200 + 0x1200: 0x64d5, 0x1201: 0x64f5, 0x1202: 0x6515, 0x1203: 0x6535, 0x1204: 0x6555, 0x1205: 0x6575, + 0x1206: 0x6595, 0x1207: 0x65b5, 0x1208: 0x65d5, 0x1209: 0x65f5, 0x120a: 0x6615, 0x120b: 0x6635, + 0x120c: 0x6655, 0x120d: 0x6675, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0x6695, 0x1211: 0x0008, + 0x1212: 0x66b5, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x66d5, 0x1216: 0x66f5, 0x1217: 0x6715, + 0x1218: 0x6735, 0x1219: 0x6755, 0x121a: 0x6775, 0x121b: 0x6795, 0x121c: 0x67b5, 0x121d: 0x67d5, + 0x121e: 0x67f5, 0x121f: 0x0008, 0x1220: 0x6815, 0x1221: 0x0008, 0x1222: 0x6835, 0x1223: 0x0008, + 0x1224: 0x0008, 0x1225: 0x6855, 0x1226: 0x6875, 0x1227: 0x0008, 0x1228: 0x0008, 0x1229: 0x0008, + 0x122a: 0x6895, 0x122b: 0x68b5, 0x122c: 0x68d5, 0x122d: 0x68f5, 0x122e: 0x6915, 0x122f: 0x6935, + 0x1230: 0x6955, 0x1231: 0x6975, 0x1232: 0x6995, 0x1233: 0x69b5, 0x1234: 0x69d5, 0x1235: 0x69f5, + 0x1236: 0x6a15, 0x1237: 0x6a35, 0x1238: 0x6a55, 0x1239: 0x6a75, 0x123a: 0x6a95, 0x123b: 0x6ab5, + 0x123c: 0x6ad5, 0x123d: 0x6af5, 0x123e: 0x6b15, 0x123f: 0x6b35, + // Block 0x49, offset 0x1240 + 0x1240: 0x7a95, 0x1241: 0x7ab5, 0x1242: 0x7ad5, 0x1243: 0x7af5, 0x1244: 0x7b15, 0x1245: 0x7b35, + 0x1246: 0x7b55, 0x1247: 0x7b75, 0x1248: 0x7b95, 0x1249: 0x7bb5, 0x124a: 0x7bd5, 0x124b: 0x7bf5, + 0x124c: 0x7c15, 0x124d: 0x7c35, 0x124e: 0x7c55, 0x124f: 0x6ec9, 0x1250: 0x6ef1, 0x1251: 0x6f19, + 0x1252: 0x7c75, 0x1253: 0x7c95, 0x1254: 0x7cb5, 0x1255: 0x6f41, 0x1256: 0x6f69, 0x1257: 0x6f91, + 0x1258: 0x7cd5, 0x1259: 0x7cf5, 0x125a: 0x0040, 0x125b: 0x0040, 0x125c: 0x0040, 0x125d: 0x0040, + 0x125e: 0x0040, 0x125f: 0x0040, 0x1260: 0x0040, 0x1261: 0x0040, 0x1262: 0x0040, 0x1263: 0x0040, + 0x1264: 0x0040, 0x1265: 0x0040, 0x1266: 0x0040, 0x1267: 0x0040, 0x1268: 0x0040, 0x1269: 0x0040, + 0x126a: 0x0040, 0x126b: 0x0040, 0x126c: 0x0040, 0x126d: 0x0040, 0x126e: 0x0040, 0x126f: 0x0040, + 0x1270: 0x0040, 0x1271: 0x0040, 0x1272: 0x0040, 0x1273: 0x0040, 0x1274: 0x0040, 0x1275: 0x0040, + 0x1276: 0x0040, 0x1277: 0x0040, 0x1278: 0x0040, 0x1279: 0x0040, 0x127a: 0x0040, 0x127b: 0x0040, + 0x127c: 0x0040, 0x127d: 0x0040, 0x127e: 0x0040, 0x127f: 0x0040, + // Block 0x4a, offset 0x1280 + 0x1280: 0x6fb9, 0x1281: 0x6fd1, 0x1282: 0x6fe9, 0x1283: 0x7d15, 0x1284: 0x7d35, 0x1285: 0x7001, + 0x1286: 0x7001, 0x1287: 0x0040, 0x1288: 0x0040, 0x1289: 0x0040, 0x128a: 0x0040, 0x128b: 0x0040, + 0x128c: 0x0040, 0x128d: 0x0040, 0x128e: 0x0040, 0x128f: 0x0040, 0x1290: 0x0040, 0x1291: 0x0040, + 0x1292: 0x0040, 0x1293: 0x7019, 0x1294: 0x7041, 0x1295: 0x7069, 0x1296: 0x7091, 0x1297: 0x70b9, + 0x1298: 0x0040, 0x1299: 0x0040, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x70e1, + 0x129e: 0x3308, 0x129f: 0x7109, 0x12a0: 0x7131, 0x12a1: 0x20a9, 0x12a2: 0x20f1, 0x12a3: 0x7149, + 0x12a4: 0x7161, 0x12a5: 0x7179, 0x12a6: 0x7191, 0x12a7: 0x71a9, 0x12a8: 0x71c1, 0x12a9: 0x1fb2, + 0x12aa: 0x71d9, 0x12ab: 0x7201, 0x12ac: 0x7229, 0x12ad: 0x7261, 0x12ae: 0x7299, 0x12af: 0x72c1, + 0x12b0: 0x72e9, 0x12b1: 0x7311, 0x12b2: 0x7339, 0x12b3: 0x7361, 0x12b4: 0x7389, 0x12b5: 0x73b1, + 0x12b6: 0x73d9, 0x12b7: 0x0040, 0x12b8: 0x7401, 0x12b9: 0x7429, 0x12ba: 0x7451, 0x12bb: 0x7479, + 0x12bc: 0x74a1, 0x12bd: 0x0040, 0x12be: 0x74c9, 0x12bf: 0x0040, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x74f1, 0x12c1: 0x7519, 0x12c2: 0x0040, 0x12c3: 0x7541, 0x12c4: 0x7569, 0x12c5: 0x0040, + 0x12c6: 0x7591, 0x12c7: 0x75b9, 0x12c8: 0x75e1, 0x12c9: 0x7609, 0x12ca: 0x7631, 0x12cb: 0x7659, + 0x12cc: 0x7681, 0x12cd: 0x76a9, 0x12ce: 0x76d1, 0x12cf: 0x76f9, 0x12d0: 0x7721, 0x12d1: 0x7721, + 0x12d2: 0x7739, 0x12d3: 0x7739, 0x12d4: 0x7739, 0x12d5: 0x7739, 0x12d6: 0x7751, 0x12d7: 0x7751, + 0x12d8: 0x7751, 0x12d9: 0x7751, 0x12da: 0x7769, 0x12db: 0x7769, 0x12dc: 0x7769, 0x12dd: 0x7769, + 0x12de: 0x7781, 0x12df: 0x7781, 0x12e0: 0x7781, 0x12e1: 0x7781, 0x12e2: 0x7799, 0x12e3: 0x7799, + 0x12e4: 0x7799, 0x12e5: 0x7799, 0x12e6: 0x77b1, 0x12e7: 0x77b1, 0x12e8: 0x77b1, 0x12e9: 0x77b1, + 0x12ea: 0x77c9, 0x12eb: 0x77c9, 0x12ec: 0x77c9, 0x12ed: 0x77c9, 0x12ee: 0x77e1, 0x12ef: 0x77e1, + 0x12f0: 0x77e1, 0x12f1: 0x77e1, 0x12f2: 0x77f9, 0x12f3: 0x77f9, 0x12f4: 0x77f9, 0x12f5: 0x77f9, + 0x12f6: 0x7811, 0x12f7: 0x7811, 0x12f8: 0x7811, 0x12f9: 0x7811, 0x12fa: 0x7829, 0x12fb: 0x7829, + 0x12fc: 0x7829, 0x12fd: 0x7829, 0x12fe: 0x7841, 0x12ff: 0x7841, + // Block 0x4c, offset 0x1300 + 0x1300: 0x7841, 0x1301: 0x7841, 0x1302: 0x7859, 0x1303: 0x7859, 0x1304: 0x7871, 0x1305: 0x7871, + 0x1306: 0x7889, 0x1307: 0x7889, 0x1308: 0x78a1, 0x1309: 0x78a1, 0x130a: 0x78b9, 0x130b: 0x78b9, + 0x130c: 0x78d1, 0x130d: 0x78d1, 0x130e: 0x78e9, 0x130f: 0x78e9, 0x1310: 0x78e9, 0x1311: 0x78e9, + 0x1312: 0x7901, 0x1313: 0x7901, 0x1314: 0x7901, 0x1315: 0x7901, 0x1316: 0x7919, 0x1317: 0x7919, + 0x1318: 0x7919, 0x1319: 0x7919, 0x131a: 0x7931, 0x131b: 0x7931, 0x131c: 0x7931, 0x131d: 0x7931, + 0x131e: 0x7949, 0x131f: 0x7949, 0x1320: 0x7961, 0x1321: 0x7961, 0x1322: 0x7961, 0x1323: 0x7961, + 0x1324: 0x7979, 0x1325: 0x7979, 0x1326: 0x7991, 0x1327: 0x7991, 0x1328: 0x7991, 0x1329: 0x7991, + 0x132a: 0x79a9, 0x132b: 0x79a9, 0x132c: 0x79a9, 0x132d: 0x79a9, 0x132e: 0x79c1, 0x132f: 0x79c1, + 0x1330: 0x79d9, 0x1331: 0x79d9, 0x1332: 0x0818, 0x1333: 0x0818, 0x1334: 0x0818, 0x1335: 0x0818, + 0x1336: 0x0818, 0x1337: 0x0818, 0x1338: 0x0818, 0x1339: 0x0818, 0x133a: 0x0818, 0x133b: 0x0818, + 0x133c: 0x0818, 0x133d: 0x0818, 0x133e: 0x0818, 0x133f: 0x0818, + // Block 0x4d, offset 0x1340 + 0x1340: 0x0818, 0x1341: 0x0818, 0x1342: 0x0040, 0x1343: 0x0040, 0x1344: 0x0040, 0x1345: 0x0040, + 0x1346: 0x0040, 0x1347: 0x0040, 0x1348: 0x0040, 0x1349: 0x0040, 0x134a: 0x0040, 0x134b: 0x0040, + 0x134c: 0x0040, 0x134d: 0x0040, 0x134e: 0x0040, 0x134f: 0x0040, 0x1350: 0x0040, 0x1351: 0x0040, + 0x1352: 0x0040, 0x1353: 0x79f1, 0x1354: 0x79f1, 0x1355: 0x79f1, 0x1356: 0x79f1, 0x1357: 0x7a09, + 0x1358: 0x7a09, 0x1359: 0x7a21, 0x135a: 0x7a21, 0x135b: 0x7a39, 0x135c: 0x7a39, 0x135d: 0x0479, + 0x135e: 0x7a51, 0x135f: 0x7a51, 0x1360: 0x7a69, 0x1361: 0x7a69, 0x1362: 0x7a81, 0x1363: 0x7a81, + 0x1364: 0x7a99, 0x1365: 0x7a99, 0x1366: 0x7a99, 0x1367: 0x7a99, 0x1368: 0x7ab1, 0x1369: 0x7ab1, + 0x136a: 0x7ac9, 0x136b: 0x7ac9, 0x136c: 0x7af1, 0x136d: 0x7af1, 0x136e: 0x7b19, 0x136f: 0x7b19, + 0x1370: 0x7b41, 0x1371: 0x7b41, 0x1372: 0x7b69, 0x1373: 0x7b69, 0x1374: 0x7b91, 0x1375: 0x7b91, + 0x1376: 0x7bb9, 0x1377: 0x7bb9, 0x1378: 0x7bb9, 0x1379: 0x7be1, 0x137a: 0x7be1, 0x137b: 0x7be1, + 0x137c: 0x7c09, 0x137d: 0x7c09, 0x137e: 0x7c09, 0x137f: 0x7c09, + // Block 0x4e, offset 0x1380 + 0x1380: 0x85f9, 0x1381: 0x8621, 0x1382: 0x8649, 0x1383: 0x8671, 0x1384: 0x8699, 0x1385: 0x86c1, + 0x1386: 0x86e9, 0x1387: 0x8711, 0x1388: 0x8739, 0x1389: 0x8761, 0x138a: 0x8789, 0x138b: 0x87b1, + 0x138c: 0x87d9, 0x138d: 0x8801, 0x138e: 0x8829, 0x138f: 0x8851, 0x1390: 0x8879, 0x1391: 0x88a1, + 0x1392: 0x88c9, 0x1393: 0x88f1, 0x1394: 0x8919, 0x1395: 0x8941, 0x1396: 0x8969, 0x1397: 0x8991, + 0x1398: 0x89b9, 0x1399: 0x89e1, 0x139a: 0x8a09, 0x139b: 0x8a31, 0x139c: 0x8a59, 0x139d: 0x8a81, + 0x139e: 0x8aaa, 0x139f: 0x8ada, 0x13a0: 0x8b0a, 0x13a1: 0x8b3a, 0x13a2: 0x8b6a, 0x13a3: 0x8b9a, + 0x13a4: 0x8bc9, 0x13a5: 0x8bf1, 0x13a6: 0x7c71, 0x13a7: 0x8c19, 0x13a8: 0x7be1, 0x13a9: 0x7c99, + 0x13aa: 0x8c41, 0x13ab: 0x8c69, 0x13ac: 0x7d39, 0x13ad: 0x8c91, 0x13ae: 0x7d61, 0x13af: 0x7d89, + 0x13b0: 0x8cb9, 0x13b1: 0x8ce1, 0x13b2: 0x7e29, 0x13b3: 0x8d09, 0x13b4: 0x7e51, 0x13b5: 0x7e79, + 0x13b6: 0x8d31, 0x13b7: 0x8d59, 0x13b8: 0x7ec9, 0x13b9: 0x8d81, 0x13ba: 0x7ef1, 0x13bb: 0x7f19, + 0x13bc: 0x83a1, 0x13bd: 0x83c9, 0x13be: 0x8441, 0x13bf: 0x8469, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x8491, 0x13c1: 0x8531, 0x13c2: 0x8559, 0x13c3: 0x8581, 0x13c4: 0x85a9, 0x13c5: 0x8649, + 0x13c6: 0x8671, 0x13c7: 0x8699, 0x13c8: 0x8da9, 0x13c9: 0x8739, 0x13ca: 0x8dd1, 0x13cb: 0x8df9, + 0x13cc: 0x8829, 0x13cd: 0x8e21, 0x13ce: 0x8851, 0x13cf: 0x8879, 0x13d0: 0x8a81, 0x13d1: 0x8e49, + 0x13d2: 0x8e71, 0x13d3: 0x89b9, 0x13d4: 0x8e99, 0x13d5: 0x89e1, 0x13d6: 0x8a09, 0x13d7: 0x7c21, + 0x13d8: 0x7c49, 0x13d9: 0x8ec1, 0x13da: 0x7c71, 0x13db: 0x8ee9, 0x13dc: 0x7cc1, 0x13dd: 0x7ce9, + 0x13de: 0x7d11, 0x13df: 0x7d39, 0x13e0: 0x8f11, 0x13e1: 0x7db1, 0x13e2: 0x7dd9, 0x13e3: 0x7e01, + 0x13e4: 0x7e29, 0x13e5: 0x8f39, 0x13e6: 0x7ec9, 0x13e7: 0x7f41, 0x13e8: 0x7f69, 0x13e9: 0x7f91, + 0x13ea: 0x7fb9, 0x13eb: 0x7fe1, 0x13ec: 0x8031, 0x13ed: 0x8059, 0x13ee: 0x8081, 0x13ef: 0x80a9, + 0x13f0: 0x80d1, 0x13f1: 0x80f9, 0x13f2: 0x8f61, 0x13f3: 0x8121, 0x13f4: 0x8149, 0x13f5: 0x8171, + 0x13f6: 0x8199, 0x13f7: 0x81c1, 0x13f8: 0x81e9, 0x13f9: 0x8239, 0x13fa: 0x8261, 0x13fb: 0x8289, + 0x13fc: 0x82b1, 0x13fd: 0x82d9, 0x13fe: 0x8301, 0x13ff: 0x8329, + // Block 0x50, offset 0x1400 + 0x1400: 0x8351, 0x1401: 0x8379, 0x1402: 0x83f1, 0x1403: 0x8419, 0x1404: 0x84b9, 0x1405: 0x84e1, + 0x1406: 0x8509, 0x1407: 0x8531, 0x1408: 0x8559, 0x1409: 0x85d1, 0x140a: 0x85f9, 0x140b: 0x8621, + 0x140c: 0x8649, 0x140d: 0x8f89, 0x140e: 0x86c1, 0x140f: 0x86e9, 0x1410: 0x8711, 0x1411: 0x8739, + 0x1412: 0x87b1, 0x1413: 0x87d9, 0x1414: 0x8801, 0x1415: 0x8829, 0x1416: 0x8fb1, 0x1417: 0x88a1, + 0x1418: 0x88c9, 0x1419: 0x8fd9, 0x141a: 0x8941, 0x141b: 0x8969, 0x141c: 0x8991, 0x141d: 0x89b9, + 0x141e: 0x9001, 0x141f: 0x7c71, 0x1420: 0x8ee9, 0x1421: 0x7d39, 0x1422: 0x8f11, 0x1423: 0x7e29, + 0x1424: 0x8f39, 0x1425: 0x7ec9, 0x1426: 0x9029, 0x1427: 0x80d1, 0x1428: 0x9051, 0x1429: 0x9079, + 0x142a: 0x90a1, 0x142b: 0x8531, 0x142c: 0x8559, 0x142d: 0x8649, 0x142e: 0x8829, 0x142f: 0x8fb1, + 0x1430: 0x89b9, 0x1431: 0x9001, 0x1432: 0x90c9, 0x1433: 0x9101, 0x1434: 0x9139, 0x1435: 0x9171, + 0x1436: 0x9199, 0x1437: 0x91c1, 0x1438: 0x91e9, 0x1439: 0x9211, 0x143a: 0x9239, 0x143b: 0x9261, + 0x143c: 0x9289, 0x143d: 0x92b1, 0x143e: 0x92d9, 0x143f: 0x9301, + // Block 0x51, offset 0x1440 + 0x1440: 0x9329, 0x1441: 0x9351, 0x1442: 0x9379, 0x1443: 0x93a1, 0x1444: 0x93c9, 0x1445: 0x93f1, + 0x1446: 0x9419, 0x1447: 0x9441, 0x1448: 0x9469, 0x1449: 0x9491, 0x144a: 0x94b9, 0x144b: 0x94e1, + 0x144c: 0x9079, 0x144d: 0x9509, 0x144e: 0x9531, 0x144f: 0x9559, 0x1450: 0x9581, 0x1451: 0x9171, + 0x1452: 0x9199, 0x1453: 0x91c1, 0x1454: 0x91e9, 0x1455: 0x9211, 0x1456: 0x9239, 0x1457: 0x9261, + 0x1458: 0x9289, 0x1459: 0x92b1, 0x145a: 0x92d9, 0x145b: 0x9301, 0x145c: 0x9329, 0x145d: 0x9351, + 0x145e: 0x9379, 0x145f: 0x93a1, 0x1460: 0x93c9, 0x1461: 0x93f1, 0x1462: 0x9419, 0x1463: 0x9441, + 0x1464: 0x9469, 0x1465: 0x9491, 0x1466: 0x94b9, 0x1467: 0x94e1, 0x1468: 0x9079, 0x1469: 0x9509, + 0x146a: 0x9531, 0x146b: 0x9559, 0x146c: 0x9581, 0x146d: 0x9491, 0x146e: 0x94b9, 0x146f: 0x94e1, + 0x1470: 0x9079, 0x1471: 0x9051, 0x1472: 0x90a1, 0x1473: 0x8211, 0x1474: 0x8059, 0x1475: 0x8081, + 0x1476: 0x80a9, 0x1477: 0x9491, 0x1478: 0x94b9, 0x1479: 0x94e1, 0x147a: 0x8211, 0x147b: 0x8239, + 0x147c: 0x95a9, 0x147d: 0x95a9, 0x147e: 0x0018, 0x147f: 0x0018, + // Block 0x52, offset 0x1480 + 0x1480: 0x0040, 0x1481: 0x0040, 0x1482: 0x0040, 0x1483: 0x0040, 0x1484: 0x0040, 0x1485: 0x0040, + 0x1486: 0x0040, 0x1487: 0x0040, 0x1488: 0x0040, 0x1489: 0x0040, 0x148a: 0x0040, 0x148b: 0x0040, + 0x148c: 0x0040, 0x148d: 0x0040, 0x148e: 0x0040, 0x148f: 0x0040, 0x1490: 0x95d1, 0x1491: 0x9609, + 0x1492: 0x9609, 0x1493: 0x9641, 0x1494: 0x9679, 0x1495: 0x96b1, 0x1496: 0x96e9, 0x1497: 0x9721, + 0x1498: 0x9759, 0x1499: 0x9759, 0x149a: 0x9791, 0x149b: 0x97c9, 0x149c: 0x9801, 0x149d: 0x9839, + 0x149e: 0x9871, 0x149f: 0x98a9, 0x14a0: 0x98a9, 0x14a1: 0x98e1, 0x14a2: 0x9919, 0x14a3: 0x9919, + 0x14a4: 0x9951, 0x14a5: 0x9951, 0x14a6: 0x9989, 0x14a7: 0x99c1, 0x14a8: 0x99c1, 0x14a9: 0x99f9, + 0x14aa: 0x9a31, 0x14ab: 0x9a31, 0x14ac: 0x9a69, 0x14ad: 0x9a69, 0x14ae: 0x9aa1, 0x14af: 0x9ad9, + 0x14b0: 0x9ad9, 0x14b1: 0x9b11, 0x14b2: 0x9b11, 0x14b3: 0x9b49, 0x14b4: 0x9b81, 0x14b5: 0x9bb9, + 0x14b6: 0x9bf1, 0x14b7: 0x9bf1, 0x14b8: 0x9c29, 0x14b9: 0x9c61, 0x14ba: 0x9c99, 0x14bb: 0x9cd1, + 0x14bc: 0x9d09, 0x14bd: 0x9d09, 0x14be: 0x9d41, 0x14bf: 0x9d79, + // Block 0x53, offset 0x14c0 + 0x14c0: 0xa949, 0x14c1: 0xa981, 0x14c2: 0xa9b9, 0x14c3: 0xa8a1, 0x14c4: 0x9bb9, 0x14c5: 0x9989, + 0x14c6: 0xa9f1, 0x14c7: 0xaa29, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040, + 0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x0040, 0x14d1: 0x0040, + 0x14d2: 0x0040, 0x14d3: 0x0040, 0x14d4: 0x0040, 0x14d5: 0x0040, 0x14d6: 0x0040, 0x14d7: 0x0040, + 0x14d8: 0x0040, 0x14d9: 0x0040, 0x14da: 0x0040, 0x14db: 0x0040, 0x14dc: 0x0040, 0x14dd: 0x0040, + 0x14de: 0x0040, 0x14df: 0x0040, 0x14e0: 0x0040, 0x14e1: 0x0040, 0x14e2: 0x0040, 0x14e3: 0x0040, + 0x14e4: 0x0040, 0x14e5: 0x0040, 0x14e6: 0x0040, 0x14e7: 0x0040, 0x14e8: 0x0040, 0x14e9: 0x0040, + 0x14ea: 0x0040, 0x14eb: 0x0040, 0x14ec: 0x0040, 0x14ed: 0x0040, 0x14ee: 0x0040, 0x14ef: 0x0040, + 0x14f0: 0xaa61, 0x14f1: 0xaa99, 0x14f2: 0xaad1, 0x14f3: 0xab19, 0x14f4: 0xab61, 0x14f5: 0xaba9, + 0x14f6: 0xabf1, 0x14f7: 0xac39, 0x14f8: 0xac81, 0x14f9: 0xacc9, 0x14fa: 0xad02, 0x14fb: 0xae12, + 0x14fc: 0xae91, 0x14fd: 0x0018, 0x14fe: 0x0040, 0x14ff: 0x0040, + // Block 0x54, offset 0x1500 + 0x1500: 0x33c0, 0x1501: 0x33c0, 0x1502: 0x33c0, 0x1503: 0x33c0, 0x1504: 0x33c0, 0x1505: 0x33c0, + 0x1506: 0x33c0, 0x1507: 0x33c0, 0x1508: 0x33c0, 0x1509: 0x33c0, 0x150a: 0x33c0, 0x150b: 0x33c0, + 0x150c: 0x33c0, 0x150d: 0x33c0, 0x150e: 0x33c0, 0x150f: 0x33c0, 0x1510: 0xaeda, 0x1511: 0x7d55, + 0x1512: 0x0040, 0x1513: 0xaeea, 0x1514: 0x03c2, 0x1515: 0xaefa, 0x1516: 0xaf0a, 0x1517: 0x7d75, + 0x1518: 0x7d95, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040, + 0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x3308, 0x1521: 0x3308, 0x1522: 0x3308, 0x1523: 0x3308, + 0x1524: 0x3308, 0x1525: 0x3308, 0x1526: 0x3308, 0x1527: 0x3308, 0x1528: 0x3308, 0x1529: 0x3308, + 0x152a: 0x3308, 0x152b: 0x3308, 0x152c: 0x3308, 0x152d: 0x3308, 0x152e: 0x3308, 0x152f: 0x3308, + 0x1530: 0x0040, 0x1531: 0x7db5, 0x1532: 0x7dd5, 0x1533: 0xaf1a, 0x1534: 0xaf1a, 0x1535: 0x1fd2, + 0x1536: 0x1fe2, 0x1537: 0xaf2a, 0x1538: 0xaf3a, 0x1539: 0x7df5, 0x153a: 0x7e15, 0x153b: 0x7e35, + 0x153c: 0x7df5, 0x153d: 0x7e55, 0x153e: 0x7e75, 0x153f: 0x7e55, + // Block 0x55, offset 0x1540 + 0x1540: 0x7e95, 0x1541: 0x7eb5, 0x1542: 0x7ed5, 0x1543: 0x7eb5, 0x1544: 0x7ef5, 0x1545: 0x0018, + 0x1546: 0x0018, 0x1547: 0xaf4a, 0x1548: 0xaf5a, 0x1549: 0x7f16, 0x154a: 0x7f36, 0x154b: 0x7f56, + 0x154c: 0x7f76, 0x154d: 0xaf1a, 0x154e: 0xaf1a, 0x154f: 0xaf1a, 0x1550: 0xaeda, 0x1551: 0x7f95, + 0x1552: 0x0040, 0x1553: 0x0040, 0x1554: 0x03c2, 0x1555: 0xaeea, 0x1556: 0xaf0a, 0x1557: 0xaefa, + 0x1558: 0x7fb5, 0x1559: 0x1fd2, 0x155a: 0x1fe2, 0x155b: 0xaf2a, 0x155c: 0xaf3a, 0x155d: 0x7e95, + 0x155e: 0x7ef5, 0x155f: 0xaf6a, 0x1560: 0xaf7a, 0x1561: 0xaf8a, 0x1562: 0x1fb2, 0x1563: 0xaf99, + 0x1564: 0xafaa, 0x1565: 0xafba, 0x1566: 0x1fc2, 0x1567: 0x0040, 0x1568: 0xafca, 0x1569: 0xafda, + 0x156a: 0xafea, 0x156b: 0xaffa, 0x156c: 0x0040, 0x156d: 0x0040, 0x156e: 0x0040, 0x156f: 0x0040, + 0x1570: 0x7fd6, 0x1571: 0xb009, 0x1572: 0x7ff6, 0x1573: 0x0808, 0x1574: 0x8016, 0x1575: 0x0040, + 0x1576: 0x8036, 0x1577: 0xb031, 0x1578: 0x8056, 0x1579: 0xb059, 0x157a: 0x8076, 0x157b: 0xb081, + 0x157c: 0x8096, 0x157d: 0xb0a9, 0x157e: 0x80b6, 0x157f: 0xb0d1, + // Block 0x56, offset 0x1580 + 0x1580: 0xb0f9, 0x1581: 0xb111, 0x1582: 0xb111, 0x1583: 0xb129, 0x1584: 0xb129, 0x1585: 0xb141, + 0x1586: 0xb141, 0x1587: 0xb159, 0x1588: 0xb159, 0x1589: 0xb171, 0x158a: 0xb171, 0x158b: 0xb171, + 0x158c: 0xb171, 0x158d: 0xb189, 0x158e: 0xb189, 0x158f: 0xb1a1, 0x1590: 0xb1a1, 0x1591: 0xb1a1, + 0x1592: 0xb1a1, 0x1593: 0xb1b9, 0x1594: 0xb1b9, 0x1595: 0xb1d1, 0x1596: 0xb1d1, 0x1597: 0xb1d1, + 0x1598: 0xb1d1, 0x1599: 0xb1e9, 0x159a: 0xb1e9, 0x159b: 0xb1e9, 0x159c: 0xb1e9, 0x159d: 0xb201, + 0x159e: 0xb201, 0x159f: 0xb201, 0x15a0: 0xb201, 0x15a1: 0xb219, 0x15a2: 0xb219, 0x15a3: 0xb219, + 0x15a4: 0xb219, 0x15a5: 0xb231, 0x15a6: 0xb231, 0x15a7: 0xb231, 0x15a8: 0xb231, 0x15a9: 0xb249, + 0x15aa: 0xb249, 0x15ab: 0xb261, 0x15ac: 0xb261, 0x15ad: 0xb279, 0x15ae: 0xb279, 0x15af: 0xb291, + 0x15b0: 0xb291, 0x15b1: 0xb2a9, 0x15b2: 0xb2a9, 0x15b3: 0xb2a9, 0x15b4: 0xb2a9, 0x15b5: 0xb2c1, + 0x15b6: 0xb2c1, 0x15b7: 0xb2c1, 0x15b8: 0xb2c1, 0x15b9: 0xb2d9, 0x15ba: 0xb2d9, 0x15bb: 0xb2d9, + 0x15bc: 0xb2d9, 0x15bd: 0xb2f1, 0x15be: 0xb2f1, 0x15bf: 0xb2f1, + // Block 0x57, offset 0x15c0 + 0x15c0: 0xb2f1, 0x15c1: 0xb309, 0x15c2: 0xb309, 0x15c3: 0xb309, 0x15c4: 0xb309, 0x15c5: 0xb321, + 0x15c6: 0xb321, 0x15c7: 0xb321, 0x15c8: 0xb321, 0x15c9: 0xb339, 0x15ca: 0xb339, 0x15cb: 0xb339, + 0x15cc: 0xb339, 0x15cd: 0xb351, 0x15ce: 0xb351, 0x15cf: 0xb351, 0x15d0: 0xb351, 0x15d1: 0xb369, + 0x15d2: 0xb369, 0x15d3: 0xb369, 0x15d4: 0xb369, 0x15d5: 0xb381, 0x15d6: 0xb381, 0x15d7: 0xb381, + 0x15d8: 0xb381, 0x15d9: 0xb399, 0x15da: 0xb399, 0x15db: 0xb399, 0x15dc: 0xb399, 0x15dd: 0xb3b1, + 0x15de: 0xb3b1, 0x15df: 0xb3b1, 0x15e0: 0xb3b1, 0x15e1: 0xb3c9, 0x15e2: 0xb3c9, 0x15e3: 0xb3c9, + 0x15e4: 0xb3c9, 0x15e5: 0xb3e1, 0x15e6: 0xb3e1, 0x15e7: 0xb3e1, 0x15e8: 0xb3e1, 0x15e9: 0xb3f9, + 0x15ea: 0xb3f9, 0x15eb: 0xb3f9, 0x15ec: 0xb3f9, 0x15ed: 0xb411, 0x15ee: 0xb411, 0x15ef: 0x7ab1, + 0x15f0: 0x7ab1, 0x15f1: 0xb429, 0x15f2: 0xb429, 0x15f3: 0xb429, 0x15f4: 0xb429, 0x15f5: 0xb441, + 0x15f6: 0xb441, 0x15f7: 0xb469, 0x15f8: 0xb469, 0x15f9: 0xb491, 0x15fa: 0xb491, 0x15fb: 0xb4b9, + 0x15fc: 0xb4b9, 0x15fd: 0x0040, 0x15fe: 0x0040, 0x15ff: 0x03c0, + // Block 0x58, offset 0x1600 + 0x1600: 0x0040, 0x1601: 0xaefa, 0x1602: 0xb4e2, 0x1603: 0xaf6a, 0x1604: 0xafda, 0x1605: 0xafea, + 0x1606: 0xaf7a, 0x1607: 0xb4f2, 0x1608: 0x1fd2, 0x1609: 0x1fe2, 0x160a: 0xaf8a, 0x160b: 0x1fb2, + 0x160c: 0xaeda, 0x160d: 0xaf99, 0x160e: 0x29d1, 0x160f: 0xb502, 0x1610: 0x1f41, 0x1611: 0x00c9, + 0x1612: 0x0069, 0x1613: 0x0079, 0x1614: 0x1f51, 0x1615: 0x1f61, 0x1616: 0x1f71, 0x1617: 0x1f81, + 0x1618: 0x1f91, 0x1619: 0x1fa1, 0x161a: 0xaeea, 0x161b: 0x03c2, 0x161c: 0xafaa, 0x161d: 0x1fc2, + 0x161e: 0xafba, 0x161f: 0xaf0a, 0x1620: 0xaffa, 0x1621: 0x0039, 0x1622: 0x0ee9, 0x1623: 0x1159, + 0x1624: 0x0ef9, 0x1625: 0x0f09, 0x1626: 0x1199, 0x1627: 0x0f31, 0x1628: 0x0249, 0x1629: 0x0f41, + 0x162a: 0x0259, 0x162b: 0x0f51, 0x162c: 0x0359, 0x162d: 0x0f61, 0x162e: 0x0f71, 0x162f: 0x00d9, + 0x1630: 0x0f99, 0x1631: 0x2039, 0x1632: 0x0269, 0x1633: 0x01d9, 0x1634: 0x0fa9, 0x1635: 0x0fb9, + 0x1636: 0x1089, 0x1637: 0x0279, 0x1638: 0x0369, 0x1639: 0x0289, 0x163a: 0x13d1, 0x163b: 0xaf4a, + 0x163c: 0xafca, 0x163d: 0xaf5a, 0x163e: 0xb512, 0x163f: 0xaf1a, + // Block 0x59, offset 0x1640 + 0x1640: 0x1caa, 0x1641: 0x0039, 0x1642: 0x0ee9, 0x1643: 0x1159, 0x1644: 0x0ef9, 0x1645: 0x0f09, + 0x1646: 0x1199, 0x1647: 0x0f31, 0x1648: 0x0249, 0x1649: 0x0f41, 0x164a: 0x0259, 0x164b: 0x0f51, + 0x164c: 0x0359, 0x164d: 0x0f61, 0x164e: 0x0f71, 0x164f: 0x00d9, 0x1650: 0x0f99, 0x1651: 0x2039, + 0x1652: 0x0269, 0x1653: 0x01d9, 0x1654: 0x0fa9, 0x1655: 0x0fb9, 0x1656: 0x1089, 0x1657: 0x0279, + 0x1658: 0x0369, 0x1659: 0x0289, 0x165a: 0x13d1, 0x165b: 0xaf2a, 0x165c: 0xb522, 0x165d: 0xaf3a, + 0x165e: 0xb532, 0x165f: 0x80d5, 0x1660: 0x80f5, 0x1661: 0x29d1, 0x1662: 0x8115, 0x1663: 0x8115, + 0x1664: 0x8135, 0x1665: 0x8155, 0x1666: 0x8175, 0x1667: 0x8195, 0x1668: 0x81b5, 0x1669: 0x81d5, + 0x166a: 0x81f5, 0x166b: 0x8215, 0x166c: 0x8235, 0x166d: 0x8255, 0x166e: 0x8275, 0x166f: 0x8295, + 0x1670: 0x82b5, 0x1671: 0x82d5, 0x1672: 0x82f5, 0x1673: 0x8315, 0x1674: 0x8335, 0x1675: 0x8355, + 0x1676: 0x8375, 0x1677: 0x8395, 0x1678: 0x83b5, 0x1679: 0x83d5, 0x167a: 0x83f5, 0x167b: 0x8415, + 0x167c: 0x81b5, 0x167d: 0x8435, 0x167e: 0x8455, 0x167f: 0x8215, + // Block 0x5a, offset 0x1680 + 0x1680: 0x8475, 0x1681: 0x8495, 0x1682: 0x84b5, 0x1683: 0x84d5, 0x1684: 0x84f5, 0x1685: 0x8515, + 0x1686: 0x8535, 0x1687: 0x8555, 0x1688: 0x84d5, 0x1689: 0x8575, 0x168a: 0x84d5, 0x168b: 0x8595, + 0x168c: 0x8595, 0x168d: 0x85b5, 0x168e: 0x85b5, 0x168f: 0x85d5, 0x1690: 0x8515, 0x1691: 0x85f5, + 0x1692: 0x8615, 0x1693: 0x85f5, 0x1694: 0x8635, 0x1695: 0x8615, 0x1696: 0x8655, 0x1697: 0x8655, + 0x1698: 0x8675, 0x1699: 0x8675, 0x169a: 0x8695, 0x169b: 0x8695, 0x169c: 0x8615, 0x169d: 0x8115, + 0x169e: 0x86b5, 0x169f: 0x86d5, 0x16a0: 0x0040, 0x16a1: 0x86f5, 0x16a2: 0x8715, 0x16a3: 0x8735, + 0x16a4: 0x8755, 0x16a5: 0x8735, 0x16a6: 0x8775, 0x16a7: 0x8795, 0x16a8: 0x87b5, 0x16a9: 0x87b5, + 0x16aa: 0x87d5, 0x16ab: 0x87d5, 0x16ac: 0x87f5, 0x16ad: 0x87f5, 0x16ae: 0x87d5, 0x16af: 0x87d5, + 0x16b0: 0x8815, 0x16b1: 0x8835, 0x16b2: 0x8855, 0x16b3: 0x8875, 0x16b4: 0x8895, 0x16b5: 0x88b5, + 0x16b6: 0x88b5, 0x16b7: 0x88b5, 0x16b8: 0x88d5, 0x16b9: 0x88d5, 0x16ba: 0x88d5, 0x16bb: 0x88d5, + 0x16bc: 0x87b5, 0x16bd: 0x87b5, 0x16be: 0x87b5, 0x16bf: 0x0040, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x0040, 0x16c1: 0x0040, 0x16c2: 0x8715, 0x16c3: 0x86f5, 0x16c4: 0x88f5, 0x16c5: 0x86f5, + 0x16c6: 0x8715, 0x16c7: 0x86f5, 0x16c8: 0x0040, 0x16c9: 0x0040, 0x16ca: 0x8915, 0x16cb: 0x8715, + 0x16cc: 0x8935, 0x16cd: 0x88f5, 0x16ce: 0x8935, 0x16cf: 0x8715, 0x16d0: 0x0040, 0x16d1: 0x0040, + 0x16d2: 0x8955, 0x16d3: 0x8975, 0x16d4: 0x8875, 0x16d5: 0x8935, 0x16d6: 0x88f5, 0x16d7: 0x8935, + 0x16d8: 0x0040, 0x16d9: 0x0040, 0x16da: 0x8995, 0x16db: 0x89b5, 0x16dc: 0x8995, 0x16dd: 0x0040, + 0x16de: 0x0040, 0x16df: 0x0040, 0x16e0: 0xb541, 0x16e1: 0xb559, 0x16e2: 0xb571, 0x16e3: 0x89d6, + 0x16e4: 0xb589, 0x16e5: 0xb5a1, 0x16e6: 0x89f5, 0x16e7: 0x0040, 0x16e8: 0x8a15, 0x16e9: 0x8a35, + 0x16ea: 0x8a55, 0x16eb: 0x8a35, 0x16ec: 0x8a75, 0x16ed: 0x8a95, 0x16ee: 0x8ab5, 0x16ef: 0x0040, + 0x16f0: 0x0040, 0x16f1: 0x0040, 0x16f2: 0x0040, 0x16f3: 0x0040, 0x16f4: 0x0040, 0x16f5: 0x0040, + 0x16f6: 0x0040, 0x16f7: 0x0040, 0x16f8: 0x0040, 0x16f9: 0x0340, 0x16fa: 0x0340, 0x16fb: 0x0340, + 0x16fc: 0x0040, 0x16fd: 0x0040, 0x16fe: 0x0040, 0x16ff: 0x0040, + // Block 0x5c, offset 0x1700 + 0x1700: 0x0a08, 0x1701: 0x0a08, 0x1702: 0x0a08, 0x1703: 0x0a08, 0x1704: 0x0a08, 0x1705: 0x0c08, + 0x1706: 0x0808, 0x1707: 0x0c08, 0x1708: 0x0818, 0x1709: 0x0c08, 0x170a: 0x0c08, 0x170b: 0x0808, + 0x170c: 0x0808, 0x170d: 0x0908, 0x170e: 0x0c08, 0x170f: 0x0c08, 0x1710: 0x0c08, 0x1711: 0x0c08, + 0x1712: 0x0c08, 0x1713: 0x0a08, 0x1714: 0x0a08, 0x1715: 0x0a08, 0x1716: 0x0a08, 0x1717: 0x0908, + 0x1718: 0x0a08, 0x1719: 0x0a08, 0x171a: 0x0a08, 0x171b: 0x0a08, 0x171c: 0x0a08, 0x171d: 0x0c08, + 0x171e: 0x0a08, 0x171f: 0x0a08, 0x1720: 0x0a08, 0x1721: 0x0c08, 0x1722: 0x0808, 0x1723: 0x0808, + 0x1724: 0x0c08, 0x1725: 0x3308, 0x1726: 0x3308, 0x1727: 0x0040, 0x1728: 0x0040, 0x1729: 0x0040, + 0x172a: 0x0040, 0x172b: 0x0a18, 0x172c: 0x0a18, 0x172d: 0x0a18, 0x172e: 0x0a18, 0x172f: 0x0c18, + 0x1730: 0x0818, 0x1731: 0x0818, 0x1732: 0x0818, 0x1733: 0x0818, 0x1734: 0x0818, 0x1735: 0x0818, + 0x1736: 0x0818, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0040, 0x173a: 0x0040, 0x173b: 0x0040, + 0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040, + // Block 0x5d, offset 0x1740 + 0x1740: 0x0a08, 0x1741: 0x0c08, 0x1742: 0x0a08, 0x1743: 0x0c08, 0x1744: 0x0c08, 0x1745: 0x0c08, + 0x1746: 0x0a08, 0x1747: 0x0a08, 0x1748: 0x0a08, 0x1749: 0x0c08, 0x174a: 0x0a08, 0x174b: 0x0a08, + 0x174c: 0x0c08, 0x174d: 0x0a08, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0a08, 0x1751: 0x0c08, + 0x1752: 0x0040, 0x1753: 0x0040, 0x1754: 0x0040, 0x1755: 0x0040, 0x1756: 0x0040, 0x1757: 0x0040, + 0x1758: 0x0040, 0x1759: 0x0818, 0x175a: 0x0818, 0x175b: 0x0818, 0x175c: 0x0818, 0x175d: 0x0040, + 0x175e: 0x0040, 0x175f: 0x0040, 0x1760: 0x0040, 0x1761: 0x0040, 0x1762: 0x0040, 0x1763: 0x0040, + 0x1764: 0x0040, 0x1765: 0x0040, 0x1766: 0x0040, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0c18, + 0x176a: 0x0c18, 0x176b: 0x0c18, 0x176c: 0x0c18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0818, + 0x1770: 0x0040, 0x1771: 0x0040, 0x1772: 0x0040, 0x1773: 0x0040, 0x1774: 0x0040, 0x1775: 0x0040, + 0x1776: 0x0040, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040, + 0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040, + // Block 0x5e, offset 0x1780 + 0x1780: 0x3308, 0x1781: 0x3308, 0x1782: 0x3008, 0x1783: 0x3008, 0x1784: 0x0040, 0x1785: 0x0008, + 0x1786: 0x0008, 0x1787: 0x0008, 0x1788: 0x0008, 0x1789: 0x0008, 0x178a: 0x0008, 0x178b: 0x0008, + 0x178c: 0x0008, 0x178d: 0x0040, 0x178e: 0x0040, 0x178f: 0x0008, 0x1790: 0x0008, 0x1791: 0x0040, + 0x1792: 0x0040, 0x1793: 0x0008, 0x1794: 0x0008, 0x1795: 0x0008, 0x1796: 0x0008, 0x1797: 0x0008, + 0x1798: 0x0008, 0x1799: 0x0008, 0x179a: 0x0008, 0x179b: 0x0008, 0x179c: 0x0008, 0x179d: 0x0008, + 0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x0008, 0x17a3: 0x0008, + 0x17a4: 0x0008, 0x17a5: 0x0008, 0x17a6: 0x0008, 0x17a7: 0x0008, 0x17a8: 0x0008, 0x17a9: 0x0040, + 0x17aa: 0x0008, 0x17ab: 0x0008, 0x17ac: 0x0008, 0x17ad: 0x0008, 0x17ae: 0x0008, 0x17af: 0x0008, + 0x17b0: 0x0008, 0x17b1: 0x0040, 0x17b2: 0x0008, 0x17b3: 0x0008, 0x17b4: 0x0040, 0x17b5: 0x0008, + 0x17b6: 0x0008, 0x17b7: 0x0008, 0x17b8: 0x0008, 0x17b9: 0x0008, 0x17ba: 0x0040, 0x17bb: 0x0040, + 0x17bc: 0x3308, 0x17bd: 0x0008, 0x17be: 0x3008, 0x17bf: 0x3008, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x3308, 0x17c1: 0x3008, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x3008, 0x17c5: 0x0040, + 0x17c6: 0x0040, 0x17c7: 0x3008, 0x17c8: 0x3008, 0x17c9: 0x0040, 0x17ca: 0x0040, 0x17cb: 0x3008, + 0x17cc: 0x3008, 0x17cd: 0x3808, 0x17ce: 0x0040, 0x17cf: 0x0040, 0x17d0: 0x0008, 0x17d1: 0x0040, + 0x17d2: 0x0040, 0x17d3: 0x0040, 0x17d4: 0x0040, 0x17d5: 0x0040, 0x17d6: 0x0040, 0x17d7: 0x3008, + 0x17d8: 0x0040, 0x17d9: 0x0040, 0x17da: 0x0040, 0x17db: 0x0040, 0x17dc: 0x0040, 0x17dd: 0x0008, + 0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x3008, 0x17e3: 0x3008, + 0x17e4: 0x0040, 0x17e5: 0x0040, 0x17e6: 0x3308, 0x17e7: 0x3308, 0x17e8: 0x3308, 0x17e9: 0x3308, + 0x17ea: 0x3308, 0x17eb: 0x3308, 0x17ec: 0x3308, 0x17ed: 0x0040, 0x17ee: 0x0040, 0x17ef: 0x0040, + 0x17f0: 0x3308, 0x17f1: 0x3308, 0x17f2: 0x3308, 0x17f3: 0x3308, 0x17f4: 0x3308, 0x17f5: 0x0040, + 0x17f6: 0x0040, 0x17f7: 0x0040, 0x17f8: 0x0040, 0x17f9: 0x0040, 0x17fa: 0x0040, 0x17fb: 0x0040, + 0x17fc: 0x0040, 0x17fd: 0x0040, 0x17fe: 0x0040, 0x17ff: 0x0040, + // Block 0x60, offset 0x1800 + 0x1800: 0x0039, 0x1801: 0x0ee9, 0x1802: 0x1159, 0x1803: 0x0ef9, 0x1804: 0x0f09, 0x1805: 0x1199, + 0x1806: 0x0f31, 0x1807: 0x0249, 0x1808: 0x0f41, 0x1809: 0x0259, 0x180a: 0x0f51, 0x180b: 0x0359, + 0x180c: 0x0f61, 0x180d: 0x0f71, 0x180e: 0x00d9, 0x180f: 0x0f99, 0x1810: 0x2039, 0x1811: 0x0269, + 0x1812: 0x01d9, 0x1813: 0x0fa9, 0x1814: 0x0fb9, 0x1815: 0x1089, 0x1816: 0x0279, 0x1817: 0x0369, + 0x1818: 0x0289, 0x1819: 0x13d1, 0x181a: 0x0039, 0x181b: 0x0ee9, 0x181c: 0x1159, 0x181d: 0x0ef9, + 0x181e: 0x0f09, 0x181f: 0x1199, 0x1820: 0x0f31, 0x1821: 0x0249, 0x1822: 0x0f41, 0x1823: 0x0259, + 0x1824: 0x0f51, 0x1825: 0x0359, 0x1826: 0x0f61, 0x1827: 0x0f71, 0x1828: 0x00d9, 0x1829: 0x0f99, + 0x182a: 0x2039, 0x182b: 0x0269, 0x182c: 0x01d9, 0x182d: 0x0fa9, 0x182e: 0x0fb9, 0x182f: 0x1089, + 0x1830: 0x0279, 0x1831: 0x0369, 0x1832: 0x0289, 0x1833: 0x13d1, 0x1834: 0x0039, 0x1835: 0x0ee9, + 0x1836: 0x1159, 0x1837: 0x0ef9, 0x1838: 0x0f09, 0x1839: 0x1199, 0x183a: 0x0f31, 0x183b: 0x0249, + 0x183c: 0x0f41, 0x183d: 0x0259, 0x183e: 0x0f51, 0x183f: 0x0359, + // Block 0x61, offset 0x1840 + 0x1840: 0x0f61, 0x1841: 0x0f71, 0x1842: 0x00d9, 0x1843: 0x0f99, 0x1844: 0x2039, 0x1845: 0x0269, + 0x1846: 0x01d9, 0x1847: 0x0fa9, 0x1848: 0x0fb9, 0x1849: 0x1089, 0x184a: 0x0279, 0x184b: 0x0369, + 0x184c: 0x0289, 0x184d: 0x13d1, 0x184e: 0x0039, 0x184f: 0x0ee9, 0x1850: 0x1159, 0x1851: 0x0ef9, + 0x1852: 0x0f09, 0x1853: 0x1199, 0x1854: 0x0f31, 0x1855: 0x0040, 0x1856: 0x0f41, 0x1857: 0x0259, + 0x1858: 0x0f51, 0x1859: 0x0359, 0x185a: 0x0f61, 0x185b: 0x0f71, 0x185c: 0x00d9, 0x185d: 0x0f99, + 0x185e: 0x2039, 0x185f: 0x0269, 0x1860: 0x01d9, 0x1861: 0x0fa9, 0x1862: 0x0fb9, 0x1863: 0x1089, + 0x1864: 0x0279, 0x1865: 0x0369, 0x1866: 0x0289, 0x1867: 0x13d1, 0x1868: 0x0039, 0x1869: 0x0ee9, + 0x186a: 0x1159, 0x186b: 0x0ef9, 0x186c: 0x0f09, 0x186d: 0x1199, 0x186e: 0x0f31, 0x186f: 0x0249, + 0x1870: 0x0f41, 0x1871: 0x0259, 0x1872: 0x0f51, 0x1873: 0x0359, 0x1874: 0x0f61, 0x1875: 0x0f71, + 0x1876: 0x00d9, 0x1877: 0x0f99, 0x1878: 0x2039, 0x1879: 0x0269, 0x187a: 0x01d9, 0x187b: 0x0fa9, + 0x187c: 0x0fb9, 0x187d: 0x1089, 0x187e: 0x0279, 0x187f: 0x0369, + // Block 0x62, offset 0x1880 + 0x1880: 0x0289, 0x1881: 0x13d1, 0x1882: 0x0039, 0x1883: 0x0ee9, 0x1884: 0x1159, 0x1885: 0x0ef9, + 0x1886: 0x0f09, 0x1887: 0x1199, 0x1888: 0x0f31, 0x1889: 0x0249, 0x188a: 0x0f41, 0x188b: 0x0259, + 0x188c: 0x0f51, 0x188d: 0x0359, 0x188e: 0x0f61, 0x188f: 0x0f71, 0x1890: 0x00d9, 0x1891: 0x0f99, + 0x1892: 0x2039, 0x1893: 0x0269, 0x1894: 0x01d9, 0x1895: 0x0fa9, 0x1896: 0x0fb9, 0x1897: 0x1089, + 0x1898: 0x0279, 0x1899: 0x0369, 0x189a: 0x0289, 0x189b: 0x13d1, 0x189c: 0x0039, 0x189d: 0x0040, + 0x189e: 0x1159, 0x189f: 0x0ef9, 0x18a0: 0x0040, 0x18a1: 0x0040, 0x18a2: 0x0f31, 0x18a3: 0x0040, + 0x18a4: 0x0040, 0x18a5: 0x0259, 0x18a6: 0x0f51, 0x18a7: 0x0040, 0x18a8: 0x0040, 0x18a9: 0x0f71, + 0x18aa: 0x00d9, 0x18ab: 0x0f99, 0x18ac: 0x2039, 0x18ad: 0x0040, 0x18ae: 0x01d9, 0x18af: 0x0fa9, + 0x18b0: 0x0fb9, 0x18b1: 0x1089, 0x18b2: 0x0279, 0x18b3: 0x0369, 0x18b4: 0x0289, 0x18b5: 0x13d1, + 0x18b6: 0x0039, 0x18b7: 0x0ee9, 0x18b8: 0x1159, 0x18b9: 0x0ef9, 0x18ba: 0x0040, 0x18bb: 0x1199, + 0x18bc: 0x0040, 0x18bd: 0x0249, 0x18be: 0x0f41, 0x18bf: 0x0259, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x0f51, 0x18c1: 0x0359, 0x18c2: 0x0f61, 0x18c3: 0x0f71, 0x18c4: 0x0040, 0x18c5: 0x0f99, + 0x18c6: 0x2039, 0x18c7: 0x0269, 0x18c8: 0x01d9, 0x18c9: 0x0fa9, 0x18ca: 0x0fb9, 0x18cb: 0x1089, + 0x18cc: 0x0279, 0x18cd: 0x0369, 0x18ce: 0x0289, 0x18cf: 0x13d1, 0x18d0: 0x0039, 0x18d1: 0x0ee9, + 0x18d2: 0x1159, 0x18d3: 0x0ef9, 0x18d4: 0x0f09, 0x18d5: 0x1199, 0x18d6: 0x0f31, 0x18d7: 0x0249, + 0x18d8: 0x0f41, 0x18d9: 0x0259, 0x18da: 0x0f51, 0x18db: 0x0359, 0x18dc: 0x0f61, 0x18dd: 0x0f71, + 0x18de: 0x00d9, 0x18df: 0x0f99, 0x18e0: 0x2039, 0x18e1: 0x0269, 0x18e2: 0x01d9, 0x18e3: 0x0fa9, + 0x18e4: 0x0fb9, 0x18e5: 0x1089, 0x18e6: 0x0279, 0x18e7: 0x0369, 0x18e8: 0x0289, 0x18e9: 0x13d1, + 0x18ea: 0x0039, 0x18eb: 0x0ee9, 0x18ec: 0x1159, 0x18ed: 0x0ef9, 0x18ee: 0x0f09, 0x18ef: 0x1199, + 0x18f0: 0x0f31, 0x18f1: 0x0249, 0x18f2: 0x0f41, 0x18f3: 0x0259, 0x18f4: 0x0f51, 0x18f5: 0x0359, + 0x18f6: 0x0f61, 0x18f7: 0x0f71, 0x18f8: 0x00d9, 0x18f9: 0x0f99, 0x18fa: 0x2039, 0x18fb: 0x0269, + 0x18fc: 0x01d9, 0x18fd: 0x0fa9, 0x18fe: 0x0fb9, 0x18ff: 0x1089, + // Block 0x64, offset 0x1900 + 0x1900: 0x0279, 0x1901: 0x0369, 0x1902: 0x0289, 0x1903: 0x13d1, 0x1904: 0x0039, 0x1905: 0x0ee9, + 0x1906: 0x0040, 0x1907: 0x0ef9, 0x1908: 0x0f09, 0x1909: 0x1199, 0x190a: 0x0f31, 0x190b: 0x0040, + 0x190c: 0x0040, 0x190d: 0x0259, 0x190e: 0x0f51, 0x190f: 0x0359, 0x1910: 0x0f61, 0x1911: 0x0f71, + 0x1912: 0x00d9, 0x1913: 0x0f99, 0x1914: 0x2039, 0x1915: 0x0040, 0x1916: 0x01d9, 0x1917: 0x0fa9, + 0x1918: 0x0fb9, 0x1919: 0x1089, 0x191a: 0x0279, 0x191b: 0x0369, 0x191c: 0x0289, 0x191d: 0x0040, + 0x191e: 0x0039, 0x191f: 0x0ee9, 0x1920: 0x1159, 0x1921: 0x0ef9, 0x1922: 0x0f09, 0x1923: 0x1199, + 0x1924: 0x0f31, 0x1925: 0x0249, 0x1926: 0x0f41, 0x1927: 0x0259, 0x1928: 0x0f51, 0x1929: 0x0359, + 0x192a: 0x0f61, 0x192b: 0x0f71, 0x192c: 0x00d9, 0x192d: 0x0f99, 0x192e: 0x2039, 0x192f: 0x0269, + 0x1930: 0x01d9, 0x1931: 0x0fa9, 0x1932: 0x0fb9, 0x1933: 0x1089, 0x1934: 0x0279, 0x1935: 0x0369, + 0x1936: 0x0289, 0x1937: 0x13d1, 0x1938: 0x0039, 0x1939: 0x0ee9, 0x193a: 0x0040, 0x193b: 0x0ef9, + 0x193c: 0x0f09, 0x193d: 0x1199, 0x193e: 0x0f31, 0x193f: 0x0040, + // Block 0x65, offset 0x1940 + 0x1940: 0x0f41, 0x1941: 0x0259, 0x1942: 0x0f51, 0x1943: 0x0359, 0x1944: 0x0f61, 0x1945: 0x0040, + 0x1946: 0x00d9, 0x1947: 0x0040, 0x1948: 0x0040, 0x1949: 0x0040, 0x194a: 0x01d9, 0x194b: 0x0fa9, + 0x194c: 0x0fb9, 0x194d: 0x1089, 0x194e: 0x0279, 0x194f: 0x0369, 0x1950: 0x0289, 0x1951: 0x0040, + 0x1952: 0x0039, 0x1953: 0x0ee9, 0x1954: 0x1159, 0x1955: 0x0ef9, 0x1956: 0x0f09, 0x1957: 0x1199, + 0x1958: 0x0f31, 0x1959: 0x0249, 0x195a: 0x0f41, 0x195b: 0x0259, 0x195c: 0x0f51, 0x195d: 0x0359, + 0x195e: 0x0f61, 0x195f: 0x0f71, 0x1960: 0x00d9, 0x1961: 0x0f99, 0x1962: 0x2039, 0x1963: 0x0269, + 0x1964: 0x01d9, 0x1965: 0x0fa9, 0x1966: 0x0fb9, 0x1967: 0x1089, 0x1968: 0x0279, 0x1969: 0x0369, + 0x196a: 0x0289, 0x196b: 0x13d1, 0x196c: 0x0039, 0x196d: 0x0ee9, 0x196e: 0x1159, 0x196f: 0x0ef9, + 0x1970: 0x0f09, 0x1971: 0x1199, 0x1972: 0x0f31, 0x1973: 0x0249, 0x1974: 0x0f41, 0x1975: 0x0259, + 0x1976: 0x0f51, 0x1977: 0x0359, 0x1978: 0x0f61, 0x1979: 0x0f71, 0x197a: 0x00d9, 0x197b: 0x0f99, + 0x197c: 0x2039, 0x197d: 0x0269, 0x197e: 0x01d9, 0x197f: 0x0fa9, + // Block 0x66, offset 0x1980 + 0x1980: 0x0fb9, 0x1981: 0x1089, 0x1982: 0x0279, 0x1983: 0x0369, 0x1984: 0x0289, 0x1985: 0x13d1, + 0x1986: 0x0039, 0x1987: 0x0ee9, 0x1988: 0x1159, 0x1989: 0x0ef9, 0x198a: 0x0f09, 0x198b: 0x1199, + 0x198c: 0x0f31, 0x198d: 0x0249, 0x198e: 0x0f41, 0x198f: 0x0259, 0x1990: 0x0f51, 0x1991: 0x0359, + 0x1992: 0x0f61, 0x1993: 0x0f71, 0x1994: 0x00d9, 0x1995: 0x0f99, 0x1996: 0x2039, 0x1997: 0x0269, + 0x1998: 0x01d9, 0x1999: 0x0fa9, 0x199a: 0x0fb9, 0x199b: 0x1089, 0x199c: 0x0279, 0x199d: 0x0369, + 0x199e: 0x0289, 0x199f: 0x13d1, 0x19a0: 0x0039, 0x19a1: 0x0ee9, 0x19a2: 0x1159, 0x19a3: 0x0ef9, + 0x19a4: 0x0f09, 0x19a5: 0x1199, 0x19a6: 0x0f31, 0x19a7: 0x0249, 0x19a8: 0x0f41, 0x19a9: 0x0259, + 0x19aa: 0x0f51, 0x19ab: 0x0359, 0x19ac: 0x0f61, 0x19ad: 0x0f71, 0x19ae: 0x00d9, 0x19af: 0x0f99, + 0x19b0: 0x2039, 0x19b1: 0x0269, 0x19b2: 0x01d9, 0x19b3: 0x0fa9, 0x19b4: 0x0fb9, 0x19b5: 0x1089, + 0x19b6: 0x0279, 0x19b7: 0x0369, 0x19b8: 0x0289, 0x19b9: 0x13d1, 0x19ba: 0x0039, 0x19bb: 0x0ee9, + 0x19bc: 0x1159, 0x19bd: 0x0ef9, 0x19be: 0x0f09, 0x19bf: 0x1199, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x0f31, 0x19c1: 0x0249, 0x19c2: 0x0f41, 0x19c3: 0x0259, 0x19c4: 0x0f51, 0x19c5: 0x0359, + 0x19c6: 0x0f61, 0x19c7: 0x0f71, 0x19c8: 0x00d9, 0x19c9: 0x0f99, 0x19ca: 0x2039, 0x19cb: 0x0269, + 0x19cc: 0x01d9, 0x19cd: 0x0fa9, 0x19ce: 0x0fb9, 0x19cf: 0x1089, 0x19d0: 0x0279, 0x19d1: 0x0369, + 0x19d2: 0x0289, 0x19d3: 0x13d1, 0x19d4: 0x0039, 0x19d5: 0x0ee9, 0x19d6: 0x1159, 0x19d7: 0x0ef9, + 0x19d8: 0x0f09, 0x19d9: 0x1199, 0x19da: 0x0f31, 0x19db: 0x0249, 0x19dc: 0x0f41, 0x19dd: 0x0259, + 0x19de: 0x0f51, 0x19df: 0x0359, 0x19e0: 0x0f61, 0x19e1: 0x0f71, 0x19e2: 0x00d9, 0x19e3: 0x0f99, + 0x19e4: 0x2039, 0x19e5: 0x0269, 0x19e6: 0x01d9, 0x19e7: 0x0fa9, 0x19e8: 0x0fb9, 0x19e9: 0x1089, + 0x19ea: 0x0279, 0x19eb: 0x0369, 0x19ec: 0x0289, 0x19ed: 0x13d1, 0x19ee: 0x0039, 0x19ef: 0x0ee9, + 0x19f0: 0x1159, 0x19f1: 0x0ef9, 0x19f2: 0x0f09, 0x19f3: 0x1199, 0x19f4: 0x0f31, 0x19f5: 0x0249, + 0x19f6: 0x0f41, 0x19f7: 0x0259, 0x19f8: 0x0f51, 0x19f9: 0x0359, 0x19fa: 0x0f61, 0x19fb: 0x0f71, + 0x19fc: 0x00d9, 0x19fd: 0x0f99, 0x19fe: 0x2039, 0x19ff: 0x0269, + // Block 0x68, offset 0x1a00 + 0x1a00: 0x01d9, 0x1a01: 0x0fa9, 0x1a02: 0x0fb9, 0x1a03: 0x1089, 0x1a04: 0x0279, 0x1a05: 0x0369, + 0x1a06: 0x0289, 0x1a07: 0x13d1, 0x1a08: 0x0039, 0x1a09: 0x0ee9, 0x1a0a: 0x1159, 0x1a0b: 0x0ef9, + 0x1a0c: 0x0f09, 0x1a0d: 0x1199, 0x1a0e: 0x0f31, 0x1a0f: 0x0249, 0x1a10: 0x0f41, 0x1a11: 0x0259, + 0x1a12: 0x0f51, 0x1a13: 0x0359, 0x1a14: 0x0f61, 0x1a15: 0x0f71, 0x1a16: 0x00d9, 0x1a17: 0x0f99, + 0x1a18: 0x2039, 0x1a19: 0x0269, 0x1a1a: 0x01d9, 0x1a1b: 0x0fa9, 0x1a1c: 0x0fb9, 0x1a1d: 0x1089, + 0x1a1e: 0x0279, 0x1a1f: 0x0369, 0x1a20: 0x0289, 0x1a21: 0x13d1, 0x1a22: 0x0039, 0x1a23: 0x0ee9, + 0x1a24: 0x1159, 0x1a25: 0x0ef9, 0x1a26: 0x0f09, 0x1a27: 0x1199, 0x1a28: 0x0f31, 0x1a29: 0x0249, + 0x1a2a: 0x0f41, 0x1a2b: 0x0259, 0x1a2c: 0x0f51, 0x1a2d: 0x0359, 0x1a2e: 0x0f61, 0x1a2f: 0x0f71, + 0x1a30: 0x00d9, 0x1a31: 0x0f99, 0x1a32: 0x2039, 0x1a33: 0x0269, 0x1a34: 0x01d9, 0x1a35: 0x0fa9, + 0x1a36: 0x0fb9, 0x1a37: 0x1089, 0x1a38: 0x0279, 0x1a39: 0x0369, 0x1a3a: 0x0289, 0x1a3b: 0x13d1, + 0x1a3c: 0x0039, 0x1a3d: 0x0ee9, 0x1a3e: 0x1159, 0x1a3f: 0x0ef9, + // Block 0x69, offset 0x1a40 + 0x1a40: 0x0f09, 0x1a41: 0x1199, 0x1a42: 0x0f31, 0x1a43: 0x0249, 0x1a44: 0x0f41, 0x1a45: 0x0259, + 0x1a46: 0x0f51, 0x1a47: 0x0359, 0x1a48: 0x0f61, 0x1a49: 0x0f71, 0x1a4a: 0x00d9, 0x1a4b: 0x0f99, + 0x1a4c: 0x2039, 0x1a4d: 0x0269, 0x1a4e: 0x01d9, 0x1a4f: 0x0fa9, 0x1a50: 0x0fb9, 0x1a51: 0x1089, + 0x1a52: 0x0279, 0x1a53: 0x0369, 0x1a54: 0x0289, 0x1a55: 0x13d1, 0x1a56: 0x0039, 0x1a57: 0x0ee9, + 0x1a58: 0x1159, 0x1a59: 0x0ef9, 0x1a5a: 0x0f09, 0x1a5b: 0x1199, 0x1a5c: 0x0f31, 0x1a5d: 0x0249, + 0x1a5e: 0x0f41, 0x1a5f: 0x0259, 0x1a60: 0x0f51, 0x1a61: 0x0359, 0x1a62: 0x0f61, 0x1a63: 0x0f71, + 0x1a64: 0x00d9, 0x1a65: 0x0f99, 0x1a66: 0x2039, 0x1a67: 0x0269, 0x1a68: 0x01d9, 0x1a69: 0x0fa9, + 0x1a6a: 0x0fb9, 0x1a6b: 0x1089, 0x1a6c: 0x0279, 0x1a6d: 0x0369, 0x1a6e: 0x0289, 0x1a6f: 0x13d1, + 0x1a70: 0x0039, 0x1a71: 0x0ee9, 0x1a72: 0x1159, 0x1a73: 0x0ef9, 0x1a74: 0x0f09, 0x1a75: 0x1199, + 0x1a76: 0x0f31, 0x1a77: 0x0249, 0x1a78: 0x0f41, 0x1a79: 0x0259, 0x1a7a: 0x0f51, 0x1a7b: 0x0359, + 0x1a7c: 0x0f61, 0x1a7d: 0x0f71, 0x1a7e: 0x00d9, 0x1a7f: 0x0f99, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x2039, 0x1a81: 0x0269, 0x1a82: 0x01d9, 0x1a83: 0x0fa9, 0x1a84: 0x0fb9, 0x1a85: 0x1089, + 0x1a86: 0x0279, 0x1a87: 0x0369, 0x1a88: 0x0289, 0x1a89: 0x13d1, 0x1a8a: 0x0039, 0x1a8b: 0x0ee9, + 0x1a8c: 0x1159, 0x1a8d: 0x0ef9, 0x1a8e: 0x0f09, 0x1a8f: 0x1199, 0x1a90: 0x0f31, 0x1a91: 0x0249, + 0x1a92: 0x0f41, 0x1a93: 0x0259, 0x1a94: 0x0f51, 0x1a95: 0x0359, 0x1a96: 0x0f61, 0x1a97: 0x0f71, + 0x1a98: 0x00d9, 0x1a99: 0x0f99, 0x1a9a: 0x2039, 0x1a9b: 0x0269, 0x1a9c: 0x01d9, 0x1a9d: 0x0fa9, + 0x1a9e: 0x0fb9, 0x1a9f: 0x1089, 0x1aa0: 0x0279, 0x1aa1: 0x0369, 0x1aa2: 0x0289, 0x1aa3: 0x13d1, + 0x1aa4: 0xba81, 0x1aa5: 0xba99, 0x1aa6: 0x0040, 0x1aa7: 0x0040, 0x1aa8: 0xbab1, 0x1aa9: 0x1099, + 0x1aaa: 0x10b1, 0x1aab: 0x10c9, 0x1aac: 0xbac9, 0x1aad: 0xbae1, 0x1aae: 0xbaf9, 0x1aaf: 0x1429, + 0x1ab0: 0x1a31, 0x1ab1: 0xbb11, 0x1ab2: 0xbb29, 0x1ab3: 0xbb41, 0x1ab4: 0xbb59, 0x1ab5: 0xbb71, + 0x1ab6: 0xbb89, 0x1ab7: 0x2109, 0x1ab8: 0x1111, 0x1ab9: 0x1429, 0x1aba: 0xbba1, 0x1abb: 0xbbb9, + 0x1abc: 0xbbd1, 0x1abd: 0x10e1, 0x1abe: 0x10f9, 0x1abf: 0xbbe9, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x2079, 0x1ac1: 0xbc01, 0x1ac2: 0xbab1, 0x1ac3: 0x1099, 0x1ac4: 0x10b1, 0x1ac5: 0x10c9, + 0x1ac6: 0xbac9, 0x1ac7: 0xbae1, 0x1ac8: 0xbaf9, 0x1ac9: 0x1429, 0x1aca: 0x1a31, 0x1acb: 0xbb11, + 0x1acc: 0xbb29, 0x1acd: 0xbb41, 0x1ace: 0xbb59, 0x1acf: 0xbb71, 0x1ad0: 0xbb89, 0x1ad1: 0x2109, + 0x1ad2: 0x1111, 0x1ad3: 0xbba1, 0x1ad4: 0xbba1, 0x1ad5: 0xbbb9, 0x1ad6: 0xbbd1, 0x1ad7: 0x10e1, + 0x1ad8: 0x10f9, 0x1ad9: 0xbbe9, 0x1ada: 0x2079, 0x1adb: 0xbc21, 0x1adc: 0xbac9, 0x1add: 0x1429, + 0x1ade: 0xbb11, 0x1adf: 0x10e1, 0x1ae0: 0x1111, 0x1ae1: 0x2109, 0x1ae2: 0xbab1, 0x1ae3: 0x1099, + 0x1ae4: 0x10b1, 0x1ae5: 0x10c9, 0x1ae6: 0xbac9, 0x1ae7: 0xbae1, 0x1ae8: 0xbaf9, 0x1ae9: 0x1429, + 0x1aea: 0x1a31, 0x1aeb: 0xbb11, 0x1aec: 0xbb29, 0x1aed: 0xbb41, 0x1aee: 0xbb59, 0x1aef: 0xbb71, + 0x1af0: 0xbb89, 0x1af1: 0x2109, 0x1af2: 0x1111, 0x1af3: 0x1429, 0x1af4: 0xbba1, 0x1af5: 0xbbb9, + 0x1af6: 0xbbd1, 0x1af7: 0x10e1, 0x1af8: 0x10f9, 0x1af9: 0xbbe9, 0x1afa: 0x2079, 0x1afb: 0xbc01, + 0x1afc: 0xbab1, 0x1afd: 0x1099, 0x1afe: 0x10b1, 0x1aff: 0x10c9, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0xbac9, 0x1b01: 0xbae1, 0x1b02: 0xbaf9, 0x1b03: 0x1429, 0x1b04: 0x1a31, 0x1b05: 0xbb11, + 0x1b06: 0xbb29, 0x1b07: 0xbb41, 0x1b08: 0xbb59, 0x1b09: 0xbb71, 0x1b0a: 0xbb89, 0x1b0b: 0x2109, + 0x1b0c: 0x1111, 0x1b0d: 0xbba1, 0x1b0e: 0xbba1, 0x1b0f: 0xbbb9, 0x1b10: 0xbbd1, 0x1b11: 0x10e1, + 0x1b12: 0x10f9, 0x1b13: 0xbbe9, 0x1b14: 0x2079, 0x1b15: 0xbc21, 0x1b16: 0xbac9, 0x1b17: 0x1429, + 0x1b18: 0xbb11, 0x1b19: 0x10e1, 0x1b1a: 0x1111, 0x1b1b: 0x2109, 0x1b1c: 0xbab1, 0x1b1d: 0x1099, + 0x1b1e: 0x10b1, 0x1b1f: 0x10c9, 0x1b20: 0xbac9, 0x1b21: 0xbae1, 0x1b22: 0xbaf9, 0x1b23: 0x1429, + 0x1b24: 0x1a31, 0x1b25: 0xbb11, 0x1b26: 0xbb29, 0x1b27: 0xbb41, 0x1b28: 0xbb59, 0x1b29: 0xbb71, + 0x1b2a: 0xbb89, 0x1b2b: 0x2109, 0x1b2c: 0x1111, 0x1b2d: 0x1429, 0x1b2e: 0xbba1, 0x1b2f: 0xbbb9, + 0x1b30: 0xbbd1, 0x1b31: 0x10e1, 0x1b32: 0x10f9, 0x1b33: 0xbbe9, 0x1b34: 0x2079, 0x1b35: 0xbc01, + 0x1b36: 0xbab1, 0x1b37: 0x1099, 0x1b38: 0x10b1, 0x1b39: 0x10c9, 0x1b3a: 0xbac9, 0x1b3b: 0xbae1, + 0x1b3c: 0xbaf9, 0x1b3d: 0x1429, 0x1b3e: 0x1a31, 0x1b3f: 0xbb11, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0xbb29, 0x1b41: 0xbb41, 0x1b42: 0xbb59, 0x1b43: 0xbb71, 0x1b44: 0xbb89, 0x1b45: 0x2109, + 0x1b46: 0x1111, 0x1b47: 0xbba1, 0x1b48: 0xbba1, 0x1b49: 0xbbb9, 0x1b4a: 0xbbd1, 0x1b4b: 0x10e1, + 0x1b4c: 0x10f9, 0x1b4d: 0xbbe9, 0x1b4e: 0x2079, 0x1b4f: 0xbc21, 0x1b50: 0xbac9, 0x1b51: 0x1429, + 0x1b52: 0xbb11, 0x1b53: 0x10e1, 0x1b54: 0x1111, 0x1b55: 0x2109, 0x1b56: 0xbab1, 0x1b57: 0x1099, + 0x1b58: 0x10b1, 0x1b59: 0x10c9, 0x1b5a: 0xbac9, 0x1b5b: 0xbae1, 0x1b5c: 0xbaf9, 0x1b5d: 0x1429, + 0x1b5e: 0x1a31, 0x1b5f: 0xbb11, 0x1b60: 0xbb29, 0x1b61: 0xbb41, 0x1b62: 0xbb59, 0x1b63: 0xbb71, + 0x1b64: 0xbb89, 0x1b65: 0x2109, 0x1b66: 0x1111, 0x1b67: 0x1429, 0x1b68: 0xbba1, 0x1b69: 0xbbb9, + 0x1b6a: 0xbbd1, 0x1b6b: 0x10e1, 0x1b6c: 0x10f9, 0x1b6d: 0xbbe9, 0x1b6e: 0x2079, 0x1b6f: 0xbc01, + 0x1b70: 0xbab1, 0x1b71: 0x1099, 0x1b72: 0x10b1, 0x1b73: 0x10c9, 0x1b74: 0xbac9, 0x1b75: 0xbae1, + 0x1b76: 0xbaf9, 0x1b77: 0x1429, 0x1b78: 0x1a31, 0x1b79: 0xbb11, 0x1b7a: 0xbb29, 0x1b7b: 0xbb41, + 0x1b7c: 0xbb59, 0x1b7d: 0xbb71, 0x1b7e: 0xbb89, 0x1b7f: 0x2109, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0x1111, 0x1b81: 0xbba1, 0x1b82: 0xbba1, 0x1b83: 0xbbb9, 0x1b84: 0xbbd1, 0x1b85: 0x10e1, + 0x1b86: 0x10f9, 0x1b87: 0xbbe9, 0x1b88: 0x2079, 0x1b89: 0xbc21, 0x1b8a: 0xbac9, 0x1b8b: 0x1429, + 0x1b8c: 0xbb11, 0x1b8d: 0x10e1, 0x1b8e: 0x1111, 0x1b8f: 0x2109, 0x1b90: 0xbab1, 0x1b91: 0x1099, + 0x1b92: 0x10b1, 0x1b93: 0x10c9, 0x1b94: 0xbac9, 0x1b95: 0xbae1, 0x1b96: 0xbaf9, 0x1b97: 0x1429, + 0x1b98: 0x1a31, 0x1b99: 0xbb11, 0x1b9a: 0xbb29, 0x1b9b: 0xbb41, 0x1b9c: 0xbb59, 0x1b9d: 0xbb71, + 0x1b9e: 0xbb89, 0x1b9f: 0x2109, 0x1ba0: 0x1111, 0x1ba1: 0x1429, 0x1ba2: 0xbba1, 0x1ba3: 0xbbb9, + 0x1ba4: 0xbbd1, 0x1ba5: 0x10e1, 0x1ba6: 0x10f9, 0x1ba7: 0xbbe9, 0x1ba8: 0x2079, 0x1ba9: 0xbc01, + 0x1baa: 0xbab1, 0x1bab: 0x1099, 0x1bac: 0x10b1, 0x1bad: 0x10c9, 0x1bae: 0xbac9, 0x1baf: 0xbae1, + 0x1bb0: 0xbaf9, 0x1bb1: 0x1429, 0x1bb2: 0x1a31, 0x1bb3: 0xbb11, 0x1bb4: 0xbb29, 0x1bb5: 0xbb41, + 0x1bb6: 0xbb59, 0x1bb7: 0xbb71, 0x1bb8: 0xbb89, 0x1bb9: 0x2109, 0x1bba: 0x1111, 0x1bbb: 0xbba1, + 0x1bbc: 0xbba1, 0x1bbd: 0xbbb9, 0x1bbe: 0xbbd1, 0x1bbf: 0x10e1, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x10f9, 0x1bc1: 0xbbe9, 0x1bc2: 0x2079, 0x1bc3: 0xbc21, 0x1bc4: 0xbac9, 0x1bc5: 0x1429, + 0x1bc6: 0xbb11, 0x1bc7: 0x10e1, 0x1bc8: 0x1111, 0x1bc9: 0x2109, 0x1bca: 0xbc41, 0x1bcb: 0xbc41, + 0x1bcc: 0x0040, 0x1bcd: 0x0040, 0x1bce: 0x1f41, 0x1bcf: 0x00c9, 0x1bd0: 0x0069, 0x1bd1: 0x0079, + 0x1bd2: 0x1f51, 0x1bd3: 0x1f61, 0x1bd4: 0x1f71, 0x1bd5: 0x1f81, 0x1bd6: 0x1f91, 0x1bd7: 0x1fa1, + 0x1bd8: 0x1f41, 0x1bd9: 0x00c9, 0x1bda: 0x0069, 0x1bdb: 0x0079, 0x1bdc: 0x1f51, 0x1bdd: 0x1f61, + 0x1bde: 0x1f71, 0x1bdf: 0x1f81, 0x1be0: 0x1f91, 0x1be1: 0x1fa1, 0x1be2: 0x1f41, 0x1be3: 0x00c9, + 0x1be4: 0x0069, 0x1be5: 0x0079, 0x1be6: 0x1f51, 0x1be7: 0x1f61, 0x1be8: 0x1f71, 0x1be9: 0x1f81, + 0x1bea: 0x1f91, 0x1beb: 0x1fa1, 0x1bec: 0x1f41, 0x1bed: 0x00c9, 0x1bee: 0x0069, 0x1bef: 0x0079, + 0x1bf0: 0x1f51, 0x1bf1: 0x1f61, 0x1bf2: 0x1f71, 0x1bf3: 0x1f81, 0x1bf4: 0x1f91, 0x1bf5: 0x1fa1, + 0x1bf6: 0x1f41, 0x1bf7: 0x00c9, 0x1bf8: 0x0069, 0x1bf9: 0x0079, 0x1bfa: 0x1f51, 0x1bfb: 0x1f61, + 0x1bfc: 0x1f71, 0x1bfd: 0x1f81, 0x1bfe: 0x1f91, 0x1bff: 0x1fa1, + // Block 0x70, offset 0x1c00 + 0x1c00: 0xe115, 0x1c01: 0xe115, 0x1c02: 0xe135, 0x1c03: 0xe135, 0x1c04: 0xe115, 0x1c05: 0xe115, + 0x1c06: 0xe175, 0x1c07: 0xe175, 0x1c08: 0xe115, 0x1c09: 0xe115, 0x1c0a: 0xe135, 0x1c0b: 0xe135, + 0x1c0c: 0xe115, 0x1c0d: 0xe115, 0x1c0e: 0xe1f5, 0x1c0f: 0xe1f5, 0x1c10: 0xe115, 0x1c11: 0xe115, + 0x1c12: 0xe135, 0x1c13: 0xe135, 0x1c14: 0xe115, 0x1c15: 0xe115, 0x1c16: 0xe175, 0x1c17: 0xe175, + 0x1c18: 0xe115, 0x1c19: 0xe115, 0x1c1a: 0xe135, 0x1c1b: 0xe135, 0x1c1c: 0xe115, 0x1c1d: 0xe115, + 0x1c1e: 0x8b05, 0x1c1f: 0x8b05, 0x1c20: 0x04b5, 0x1c21: 0x04b5, 0x1c22: 0x0a08, 0x1c23: 0x0a08, + 0x1c24: 0x0a08, 0x1c25: 0x0a08, 0x1c26: 0x0a08, 0x1c27: 0x0a08, 0x1c28: 0x0a08, 0x1c29: 0x0a08, + 0x1c2a: 0x0a08, 0x1c2b: 0x0a08, 0x1c2c: 0x0a08, 0x1c2d: 0x0a08, 0x1c2e: 0x0a08, 0x1c2f: 0x0a08, + 0x1c30: 0x0a08, 0x1c31: 0x0a08, 0x1c32: 0x0a08, 0x1c33: 0x0a08, 0x1c34: 0x0a08, 0x1c35: 0x0a08, + 0x1c36: 0x0a08, 0x1c37: 0x0a08, 0x1c38: 0x0a08, 0x1c39: 0x0a08, 0x1c3a: 0x0a08, 0x1c3b: 0x0a08, + 0x1c3c: 0x0a08, 0x1c3d: 0x0a08, 0x1c3e: 0x0a08, 0x1c3f: 0x0a08, + // Block 0x71, offset 0x1c40 + 0x1c40: 0xb189, 0x1c41: 0xb1a1, 0x1c42: 0xb201, 0x1c43: 0xb249, 0x1c44: 0x0040, 0x1c45: 0xb411, + 0x1c46: 0xb291, 0x1c47: 0xb219, 0x1c48: 0xb309, 0x1c49: 0xb429, 0x1c4a: 0xb399, 0x1c4b: 0xb3b1, + 0x1c4c: 0xb3c9, 0x1c4d: 0xb3e1, 0x1c4e: 0xb2a9, 0x1c4f: 0xb339, 0x1c50: 0xb369, 0x1c51: 0xb2d9, + 0x1c52: 0xb381, 0x1c53: 0xb279, 0x1c54: 0xb2c1, 0x1c55: 0xb1d1, 0x1c56: 0xb1e9, 0x1c57: 0xb231, + 0x1c58: 0xb261, 0x1c59: 0xb2f1, 0x1c5a: 0xb321, 0x1c5b: 0xb351, 0x1c5c: 0xbc59, 0x1c5d: 0x7949, + 0x1c5e: 0xbc71, 0x1c5f: 0xbc89, 0x1c60: 0x0040, 0x1c61: 0xb1a1, 0x1c62: 0xb201, 0x1c63: 0x0040, + 0x1c64: 0xb3f9, 0x1c65: 0x0040, 0x1c66: 0x0040, 0x1c67: 0xb219, 0x1c68: 0x0040, 0x1c69: 0xb429, + 0x1c6a: 0xb399, 0x1c6b: 0xb3b1, 0x1c6c: 0xb3c9, 0x1c6d: 0xb3e1, 0x1c6e: 0xb2a9, 0x1c6f: 0xb339, + 0x1c70: 0xb369, 0x1c71: 0xb2d9, 0x1c72: 0xb381, 0x1c73: 0x0040, 0x1c74: 0xb2c1, 0x1c75: 0xb1d1, + 0x1c76: 0xb1e9, 0x1c77: 0xb231, 0x1c78: 0x0040, 0x1c79: 0xb2f1, 0x1c7a: 0x0040, 0x1c7b: 0xb351, + 0x1c7c: 0x0040, 0x1c7d: 0x0040, 0x1c7e: 0x0040, 0x1c7f: 0x0040, + // Block 0x72, offset 0x1c80 + 0x1c80: 0x0040, 0x1c81: 0x0040, 0x1c82: 0xb201, 0x1c83: 0x0040, 0x1c84: 0x0040, 0x1c85: 0x0040, + 0x1c86: 0x0040, 0x1c87: 0xb219, 0x1c88: 0x0040, 0x1c89: 0xb429, 0x1c8a: 0x0040, 0x1c8b: 0xb3b1, + 0x1c8c: 0x0040, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0x0040, 0x1c91: 0xb2d9, + 0x1c92: 0xb381, 0x1c93: 0x0040, 0x1c94: 0xb2c1, 0x1c95: 0x0040, 0x1c96: 0x0040, 0x1c97: 0xb231, + 0x1c98: 0x0040, 0x1c99: 0xb2f1, 0x1c9a: 0x0040, 0x1c9b: 0xb351, 0x1c9c: 0x0040, 0x1c9d: 0x7949, + 0x1c9e: 0x0040, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040, + 0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0xb309, 0x1ca9: 0xb429, + 0x1caa: 0xb399, 0x1cab: 0x0040, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339, + 0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1, + 0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0xb321, 0x1cbb: 0xb351, + 0x1cbc: 0xbc59, 0x1cbd: 0x0040, 0x1cbe: 0xbc71, 0x1cbf: 0x0040, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0xb189, 0x1cc1: 0xb1a1, 0x1cc2: 0xb201, 0x1cc3: 0xb249, 0x1cc4: 0xb3f9, 0x1cc5: 0xb411, + 0x1cc6: 0xb291, 0x1cc7: 0xb219, 0x1cc8: 0xb309, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1, + 0x1ccc: 0xb3c9, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0xb369, 0x1cd1: 0xb2d9, + 0x1cd2: 0xb381, 0x1cd3: 0xb279, 0x1cd4: 0xb2c1, 0x1cd5: 0xb1d1, 0x1cd6: 0xb1e9, 0x1cd7: 0xb231, + 0x1cd8: 0xb261, 0x1cd9: 0xb2f1, 0x1cda: 0xb321, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x0040, + 0x1cde: 0x0040, 0x1cdf: 0x0040, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0xb249, + 0x1ce4: 0x0040, 0x1ce5: 0xb411, 0x1ce6: 0xb291, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429, + 0x1cea: 0x0040, 0x1ceb: 0xb3b1, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339, + 0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0xb279, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1, + 0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0xb261, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351, + 0x1cfc: 0x0040, 0x1cfd: 0x0040, 0x1cfe: 0x0040, 0x1cff: 0x0040, + // Block 0x74, offset 0x1d00 + 0x1d00: 0x0040, 0x1d01: 0xbca2, 0x1d02: 0xbcba, 0x1d03: 0xbcd2, 0x1d04: 0xbcea, 0x1d05: 0xbd02, + 0x1d06: 0xbd1a, 0x1d07: 0xbd32, 0x1d08: 0xbd4a, 0x1d09: 0xbd62, 0x1d0a: 0xbd7a, 0x1d0b: 0x0018, + 0x1d0c: 0x0018, 0x1d0d: 0x0040, 0x1d0e: 0x0040, 0x1d0f: 0x0040, 0x1d10: 0xbd92, 0x1d11: 0xbdb2, + 0x1d12: 0xbdd2, 0x1d13: 0xbdf2, 0x1d14: 0xbe12, 0x1d15: 0xbe32, 0x1d16: 0xbe52, 0x1d17: 0xbe72, + 0x1d18: 0xbe92, 0x1d19: 0xbeb2, 0x1d1a: 0xbed2, 0x1d1b: 0xbef2, 0x1d1c: 0xbf12, 0x1d1d: 0xbf32, + 0x1d1e: 0xbf52, 0x1d1f: 0xbf72, 0x1d20: 0xbf92, 0x1d21: 0xbfb2, 0x1d22: 0xbfd2, 0x1d23: 0xbff2, + 0x1d24: 0xc012, 0x1d25: 0xc032, 0x1d26: 0xc052, 0x1d27: 0xc072, 0x1d28: 0xc092, 0x1d29: 0xc0b2, + 0x1d2a: 0xc0d1, 0x1d2b: 0x1159, 0x1d2c: 0x0269, 0x1d2d: 0x6671, 0x1d2e: 0xc111, 0x1d2f: 0x0040, + 0x1d30: 0x0039, 0x1d31: 0x0ee9, 0x1d32: 0x1159, 0x1d33: 0x0ef9, 0x1d34: 0x0f09, 0x1d35: 0x1199, + 0x1d36: 0x0f31, 0x1d37: 0x0249, 0x1d38: 0x0f41, 0x1d39: 0x0259, 0x1d3a: 0x0f51, 0x1d3b: 0x0359, + 0x1d3c: 0x0f61, 0x1d3d: 0x0f71, 0x1d3e: 0x00d9, 0x1d3f: 0x0f99, + // Block 0x75, offset 0x1d40 + 0x1d40: 0x2039, 0x1d41: 0x0269, 0x1d42: 0x01d9, 0x1d43: 0x0fa9, 0x1d44: 0x0fb9, 0x1d45: 0x1089, + 0x1d46: 0x0279, 0x1d47: 0x0369, 0x1d48: 0x0289, 0x1d49: 0x13d1, 0x1d4a: 0xc129, 0x1d4b: 0x65b1, + 0x1d4c: 0xc141, 0x1d4d: 0x1441, 0x1d4e: 0xc159, 0x1d4f: 0xc179, 0x1d50: 0x0018, 0x1d51: 0x0018, + 0x1d52: 0x0018, 0x1d53: 0x0018, 0x1d54: 0x0018, 0x1d55: 0x0018, 0x1d56: 0x0018, 0x1d57: 0x0018, + 0x1d58: 0x0018, 0x1d59: 0x0018, 0x1d5a: 0x0018, 0x1d5b: 0x0018, 0x1d5c: 0x0018, 0x1d5d: 0x0018, + 0x1d5e: 0x0018, 0x1d5f: 0x0018, 0x1d60: 0x0018, 0x1d61: 0x0018, 0x1d62: 0x0018, 0x1d63: 0x0018, + 0x1d64: 0x0018, 0x1d65: 0x0018, 0x1d66: 0x0018, 0x1d67: 0x0018, 0x1d68: 0x0018, 0x1d69: 0x0018, + 0x1d6a: 0xc191, 0x1d6b: 0xc1a9, 0x1d6c: 0x0040, 0x1d6d: 0x0040, 0x1d6e: 0x0040, 0x1d6f: 0x0040, + 0x1d70: 0x0018, 0x1d71: 0x0018, 0x1d72: 0x0018, 0x1d73: 0x0018, 0x1d74: 0x0018, 0x1d75: 0x0018, + 0x1d76: 0x0018, 0x1d77: 0x0018, 0x1d78: 0x0018, 0x1d79: 0x0018, 0x1d7a: 0x0018, 0x1d7b: 0x0018, + 0x1d7c: 0x0018, 0x1d7d: 0x0018, 0x1d7e: 0x0018, 0x1d7f: 0x0018, + // Block 0x76, offset 0x1d80 + 0x1d80: 0xc1d9, 0x1d81: 0xc211, 0x1d82: 0xc249, 0x1d83: 0x0040, 0x1d84: 0x0040, 0x1d85: 0x0040, + 0x1d86: 0x0040, 0x1d87: 0x0040, 0x1d88: 0x0040, 0x1d89: 0x0040, 0x1d8a: 0x0040, 0x1d8b: 0x0040, + 0x1d8c: 0x0040, 0x1d8d: 0x0040, 0x1d8e: 0x0040, 0x1d8f: 0x0040, 0x1d90: 0xc269, 0x1d91: 0xc289, + 0x1d92: 0xc2a9, 0x1d93: 0xc2c9, 0x1d94: 0xc2e9, 0x1d95: 0xc309, 0x1d96: 0xc329, 0x1d97: 0xc349, + 0x1d98: 0xc369, 0x1d99: 0xc389, 0x1d9a: 0xc3a9, 0x1d9b: 0xc3c9, 0x1d9c: 0xc3e9, 0x1d9d: 0xc409, + 0x1d9e: 0xc429, 0x1d9f: 0xc449, 0x1da0: 0xc469, 0x1da1: 0xc489, 0x1da2: 0xc4a9, 0x1da3: 0xc4c9, + 0x1da4: 0xc4e9, 0x1da5: 0xc509, 0x1da6: 0xc529, 0x1da7: 0xc549, 0x1da8: 0xc569, 0x1da9: 0xc589, + 0x1daa: 0xc5a9, 0x1dab: 0xc5c9, 0x1dac: 0xc5e9, 0x1dad: 0xc609, 0x1dae: 0xc629, 0x1daf: 0xc649, + 0x1db0: 0xc669, 0x1db1: 0xc689, 0x1db2: 0xc6a9, 0x1db3: 0xc6c9, 0x1db4: 0xc6e9, 0x1db5: 0xc709, + 0x1db6: 0xc729, 0x1db7: 0xc749, 0x1db8: 0xc769, 0x1db9: 0xc789, 0x1dba: 0xc7a9, 0x1dbb: 0xc7c9, + 0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040, + // Block 0x77, offset 0x1dc0 + 0x1dc0: 0xcaf9, 0x1dc1: 0xcb19, 0x1dc2: 0xcb39, 0x1dc3: 0x8b1d, 0x1dc4: 0xcb59, 0x1dc5: 0xcb79, + 0x1dc6: 0xcb99, 0x1dc7: 0xcbb9, 0x1dc8: 0xcbd9, 0x1dc9: 0xcbf9, 0x1dca: 0xcc19, 0x1dcb: 0xcc39, + 0x1dcc: 0xcc59, 0x1dcd: 0x8b3d, 0x1dce: 0xcc79, 0x1dcf: 0xcc99, 0x1dd0: 0xccb9, 0x1dd1: 0xccd9, + 0x1dd2: 0x8b5d, 0x1dd3: 0xccf9, 0x1dd4: 0xcd19, 0x1dd5: 0xc429, 0x1dd6: 0x8b7d, 0x1dd7: 0xcd39, + 0x1dd8: 0xcd59, 0x1dd9: 0xcd79, 0x1dda: 0xcd99, 0x1ddb: 0xcdb9, 0x1ddc: 0x8b9d, 0x1ddd: 0xcdd9, + 0x1dde: 0xcdf9, 0x1ddf: 0xce19, 0x1de0: 0xce39, 0x1de1: 0xce59, 0x1de2: 0xc789, 0x1de3: 0xce79, + 0x1de4: 0xce99, 0x1de5: 0xceb9, 0x1de6: 0xced9, 0x1de7: 0xcef9, 0x1de8: 0xcf19, 0x1de9: 0xcf39, + 0x1dea: 0xcf59, 0x1deb: 0xcf79, 0x1dec: 0xcf99, 0x1ded: 0xcfb9, 0x1dee: 0xcfd9, 0x1def: 0xcff9, + 0x1df0: 0xd019, 0x1df1: 0xd039, 0x1df2: 0xd039, 0x1df3: 0xd039, 0x1df4: 0x8bbd, 0x1df5: 0xd059, + 0x1df6: 0xd079, 0x1df7: 0xd099, 0x1df8: 0x8bdd, 0x1df9: 0xd0b9, 0x1dfa: 0xd0d9, 0x1dfb: 0xd0f9, + 0x1dfc: 0xd119, 0x1dfd: 0xd139, 0x1dfe: 0xd159, 0x1dff: 0xd179, + // Block 0x78, offset 0x1e00 + 0x1e00: 0xd199, 0x1e01: 0xd1b9, 0x1e02: 0xd1d9, 0x1e03: 0xd1f9, 0x1e04: 0xd219, 0x1e05: 0xd239, + 0x1e06: 0xd239, 0x1e07: 0xd259, 0x1e08: 0xd279, 0x1e09: 0xd299, 0x1e0a: 0xd2b9, 0x1e0b: 0xd2d9, + 0x1e0c: 0xd2f9, 0x1e0d: 0xd319, 0x1e0e: 0xd339, 0x1e0f: 0xd359, 0x1e10: 0xd379, 0x1e11: 0xd399, + 0x1e12: 0xd3b9, 0x1e13: 0xd3d9, 0x1e14: 0xd3f9, 0x1e15: 0xd419, 0x1e16: 0xd439, 0x1e17: 0xd459, + 0x1e18: 0xd479, 0x1e19: 0x8bfd, 0x1e1a: 0xd499, 0x1e1b: 0xd4b9, 0x1e1c: 0xd4d9, 0x1e1d: 0xc309, + 0x1e1e: 0xd4f9, 0x1e1f: 0xd519, 0x1e20: 0x8c1d, 0x1e21: 0x8c3d, 0x1e22: 0xd539, 0x1e23: 0xd559, + 0x1e24: 0xd579, 0x1e25: 0xd599, 0x1e26: 0xd5b9, 0x1e27: 0xd5d9, 0x1e28: 0x2040, 0x1e29: 0xd5f9, + 0x1e2a: 0xd619, 0x1e2b: 0xd619, 0x1e2c: 0x8c5d, 0x1e2d: 0xd639, 0x1e2e: 0xd659, 0x1e2f: 0xd679, + 0x1e30: 0xd699, 0x1e31: 0x8c7d, 0x1e32: 0xd6b9, 0x1e33: 0xd6d9, 0x1e34: 0x2040, 0x1e35: 0xd6f9, + 0x1e36: 0xd719, 0x1e37: 0xd739, 0x1e38: 0xd759, 0x1e39: 0xd779, 0x1e3a: 0xd799, 0x1e3b: 0x8c9d, + 0x1e3c: 0xd7b9, 0x1e3d: 0x8cbd, 0x1e3e: 0xd7d9, 0x1e3f: 0xd7f9, + // Block 0x79, offset 0x1e40 + 0x1e40: 0xd819, 0x1e41: 0xd839, 0x1e42: 0xd859, 0x1e43: 0xd879, 0x1e44: 0xd899, 0x1e45: 0xd8b9, + 0x1e46: 0xd8d9, 0x1e47: 0xd8f9, 0x1e48: 0xd919, 0x1e49: 0x8cdd, 0x1e4a: 0xd939, 0x1e4b: 0xd959, + 0x1e4c: 0xd979, 0x1e4d: 0xd999, 0x1e4e: 0xd9b9, 0x1e4f: 0x8cfd, 0x1e50: 0xd9d9, 0x1e51: 0x8d1d, + 0x1e52: 0x8d3d, 0x1e53: 0xd9f9, 0x1e54: 0xda19, 0x1e55: 0xda19, 0x1e56: 0xda39, 0x1e57: 0x8d5d, + 0x1e58: 0x8d7d, 0x1e59: 0xda59, 0x1e5a: 0xda79, 0x1e5b: 0xda99, 0x1e5c: 0xdab9, 0x1e5d: 0xdad9, + 0x1e5e: 0xdaf9, 0x1e5f: 0xdb19, 0x1e60: 0xdb39, 0x1e61: 0xdb59, 0x1e62: 0xdb79, 0x1e63: 0xdb99, + 0x1e64: 0x8d9d, 0x1e65: 0xdbb9, 0x1e66: 0xdbd9, 0x1e67: 0xdbf9, 0x1e68: 0xdc19, 0x1e69: 0xdbf9, + 0x1e6a: 0xdc39, 0x1e6b: 0xdc59, 0x1e6c: 0xdc79, 0x1e6d: 0xdc99, 0x1e6e: 0xdcb9, 0x1e6f: 0xdcd9, + 0x1e70: 0xdcf9, 0x1e71: 0xdd19, 0x1e72: 0xdd39, 0x1e73: 0xdd59, 0x1e74: 0xdd79, 0x1e75: 0xdd99, + 0x1e76: 0xddb9, 0x1e77: 0xddd9, 0x1e78: 0x8dbd, 0x1e79: 0xddf9, 0x1e7a: 0xde19, 0x1e7b: 0xde39, + 0x1e7c: 0xde59, 0x1e7d: 0xde79, 0x1e7e: 0x8ddd, 0x1e7f: 0xde99, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0xe599, 0x1e81: 0xe5b9, 0x1e82: 0xe5d9, 0x1e83: 0xe5f9, 0x1e84: 0xe619, 0x1e85: 0xe639, + 0x1e86: 0x8efd, 0x1e87: 0xe659, 0x1e88: 0xe679, 0x1e89: 0xe699, 0x1e8a: 0xe6b9, 0x1e8b: 0xe6d9, + 0x1e8c: 0xe6f9, 0x1e8d: 0x8f1d, 0x1e8e: 0xe719, 0x1e8f: 0xe739, 0x1e90: 0x8f3d, 0x1e91: 0x8f5d, + 0x1e92: 0xe759, 0x1e93: 0xe779, 0x1e94: 0xe799, 0x1e95: 0xe7b9, 0x1e96: 0xe7d9, 0x1e97: 0xe7f9, + 0x1e98: 0xe819, 0x1e99: 0xe839, 0x1e9a: 0xe859, 0x1e9b: 0x8f7d, 0x1e9c: 0xe879, 0x1e9d: 0x8f9d, + 0x1e9e: 0xe899, 0x1e9f: 0x2040, 0x1ea0: 0xe8b9, 0x1ea1: 0xe8d9, 0x1ea2: 0xe8f9, 0x1ea3: 0x8fbd, + 0x1ea4: 0xe919, 0x1ea5: 0xe939, 0x1ea6: 0x8fdd, 0x1ea7: 0x8ffd, 0x1ea8: 0xe959, 0x1ea9: 0xe979, + 0x1eaa: 0xe999, 0x1eab: 0xe9b9, 0x1eac: 0xe9d9, 0x1ead: 0xe9d9, 0x1eae: 0xe9f9, 0x1eaf: 0xea19, + 0x1eb0: 0xea39, 0x1eb1: 0xea59, 0x1eb2: 0xea79, 0x1eb3: 0xea99, 0x1eb4: 0xeab9, 0x1eb5: 0x901d, + 0x1eb6: 0xead9, 0x1eb7: 0x903d, 0x1eb8: 0xeaf9, 0x1eb9: 0x905d, 0x1eba: 0xeb19, 0x1ebb: 0x907d, + 0x1ebc: 0x909d, 0x1ebd: 0x90bd, 0x1ebe: 0xeb39, 0x1ebf: 0xeb59, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0xeb79, 0x1ec1: 0x90dd, 0x1ec2: 0x90fd, 0x1ec3: 0x911d, 0x1ec4: 0x913d, 0x1ec5: 0xeb99, + 0x1ec6: 0xebb9, 0x1ec7: 0xebb9, 0x1ec8: 0xebd9, 0x1ec9: 0xebf9, 0x1eca: 0xec19, 0x1ecb: 0xec39, + 0x1ecc: 0xec59, 0x1ecd: 0x915d, 0x1ece: 0xec79, 0x1ecf: 0xec99, 0x1ed0: 0xecb9, 0x1ed1: 0xecd9, + 0x1ed2: 0x917d, 0x1ed3: 0xecf9, 0x1ed4: 0x919d, 0x1ed5: 0x91bd, 0x1ed6: 0xed19, 0x1ed7: 0xed39, + 0x1ed8: 0xed59, 0x1ed9: 0xed79, 0x1eda: 0xed99, 0x1edb: 0xedb9, 0x1edc: 0x91dd, 0x1edd: 0x91fd, + 0x1ede: 0x921d, 0x1edf: 0x2040, 0x1ee0: 0xedd9, 0x1ee1: 0x923d, 0x1ee2: 0xedf9, 0x1ee3: 0xee19, + 0x1ee4: 0xee39, 0x1ee5: 0x925d, 0x1ee6: 0xee59, 0x1ee7: 0xee79, 0x1ee8: 0xee99, 0x1ee9: 0xeeb9, + 0x1eea: 0xeed9, 0x1eeb: 0x927d, 0x1eec: 0xeef9, 0x1eed: 0xef19, 0x1eee: 0xef39, 0x1eef: 0xef59, + 0x1ef0: 0xef79, 0x1ef1: 0xef99, 0x1ef2: 0x929d, 0x1ef3: 0x92bd, 0x1ef4: 0xefb9, 0x1ef5: 0x92dd, + 0x1ef6: 0xefd9, 0x1ef7: 0x92fd, 0x1ef8: 0xeff9, 0x1ef9: 0xf019, 0x1efa: 0xf039, 0x1efb: 0x931d, + 0x1efc: 0x933d, 0x1efd: 0xf059, 0x1efe: 0x935d, 0x1eff: 0xf079, + // Block 0x7c, offset 0x1f00 + 0x1f00: 0xf6b9, 0x1f01: 0xf6d9, 0x1f02: 0xf6f9, 0x1f03: 0xf719, 0x1f04: 0xf739, 0x1f05: 0x951d, + 0x1f06: 0xf759, 0x1f07: 0xf779, 0x1f08: 0xf799, 0x1f09: 0xf7b9, 0x1f0a: 0xf7d9, 0x1f0b: 0x953d, + 0x1f0c: 0x955d, 0x1f0d: 0xf7f9, 0x1f0e: 0xf819, 0x1f0f: 0xf839, 0x1f10: 0xf859, 0x1f11: 0xf879, + 0x1f12: 0xf899, 0x1f13: 0x957d, 0x1f14: 0xf8b9, 0x1f15: 0xf8d9, 0x1f16: 0xf8f9, 0x1f17: 0xf919, + 0x1f18: 0x959d, 0x1f19: 0x95bd, 0x1f1a: 0xf939, 0x1f1b: 0xf959, 0x1f1c: 0xf979, 0x1f1d: 0x95dd, + 0x1f1e: 0xf999, 0x1f1f: 0xf9b9, 0x1f20: 0x6815, 0x1f21: 0x95fd, 0x1f22: 0xf9d9, 0x1f23: 0xf9f9, + 0x1f24: 0xfa19, 0x1f25: 0x961d, 0x1f26: 0xfa39, 0x1f27: 0xfa59, 0x1f28: 0xfa79, 0x1f29: 0xfa99, + 0x1f2a: 0xfab9, 0x1f2b: 0xfad9, 0x1f2c: 0xfaf9, 0x1f2d: 0x963d, 0x1f2e: 0xfb19, 0x1f2f: 0xfb39, + 0x1f30: 0xfb59, 0x1f31: 0x965d, 0x1f32: 0xfb79, 0x1f33: 0xfb99, 0x1f34: 0xfbb9, 0x1f35: 0xfbd9, + 0x1f36: 0x7b35, 0x1f37: 0x967d, 0x1f38: 0xfbf9, 0x1f39: 0xfc19, 0x1f3a: 0xfc39, 0x1f3b: 0x969d, + 0x1f3c: 0xfc59, 0x1f3d: 0x96bd, 0x1f3e: 0xfc79, 0x1f3f: 0xfc79, + // Block 0x7d, offset 0x1f40 + 0x1f40: 0xfc99, 0x1f41: 0x96dd, 0x1f42: 0xfcb9, 0x1f43: 0xfcd9, 0x1f44: 0xfcf9, 0x1f45: 0xfd19, + 0x1f46: 0xfd39, 0x1f47: 0xfd59, 0x1f48: 0xfd79, 0x1f49: 0x96fd, 0x1f4a: 0xfd99, 0x1f4b: 0xfdb9, + 0x1f4c: 0xfdd9, 0x1f4d: 0xfdf9, 0x1f4e: 0xfe19, 0x1f4f: 0xfe39, 0x1f50: 0x971d, 0x1f51: 0xfe59, + 0x1f52: 0x973d, 0x1f53: 0x975d, 0x1f54: 0x977d, 0x1f55: 0xfe79, 0x1f56: 0xfe99, 0x1f57: 0xfeb9, + 0x1f58: 0xfed9, 0x1f59: 0xfef9, 0x1f5a: 0xff19, 0x1f5b: 0xff39, 0x1f5c: 0xff59, 0x1f5d: 0x979d, + 0x1f5e: 0x0040, 0x1f5f: 0x0040, 0x1f60: 0x0040, 0x1f61: 0x0040, 0x1f62: 0x0040, 0x1f63: 0x0040, + 0x1f64: 0x0040, 0x1f65: 0x0040, 0x1f66: 0x0040, 0x1f67: 0x0040, 0x1f68: 0x0040, 0x1f69: 0x0040, + 0x1f6a: 0x0040, 0x1f6b: 0x0040, 0x1f6c: 0x0040, 0x1f6d: 0x0040, 0x1f6e: 0x0040, 0x1f6f: 0x0040, + 0x1f70: 0x0040, 0x1f71: 0x0040, 0x1f72: 0x0040, 0x1f73: 0x0040, 0x1f74: 0x0040, 0x1f75: 0x0040, + 0x1f76: 0x0040, 0x1f77: 0x0040, 0x1f78: 0x0040, 0x1f79: 0x0040, 0x1f7a: 0x0040, 0x1f7b: 0x0040, + 0x1f7c: 0x0040, 0x1f7d: 0x0040, 0x1f7e: 0x0040, 0x1f7f: 0x0040, +} + +// idnaIndex: 35 blocks, 2240 entries, 4480 bytes +// Block 0 is the zero block. +var idnaIndex = [2240]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x7c, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05, + 0xc8: 0x06, 0xc9: 0x7d, 0xca: 0x7e, 0xcb: 0x07, 0xcc: 0x7f, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a, + 0xd0: 0x80, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x81, 0xd6: 0x82, 0xd7: 0x83, + 0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x84, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x85, 0xde: 0x86, 0xdf: 0x87, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07, + 0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c, + 0xf0: 0x1c, 0xf1: 0x1d, 0xf2: 0x1d, 0xf3: 0x1f, 0xf4: 0x20, + // Block 0x4, offset 0x100 + 0x120: 0x88, 0x121: 0x89, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x13, 0x126: 0x14, 0x127: 0x15, + 0x128: 0x16, 0x129: 0x17, 0x12a: 0x18, 0x12b: 0x19, 0x12c: 0x1a, 0x12d: 0x1b, 0x12e: 0x1c, 0x12f: 0x8d, + 0x130: 0x8e, 0x131: 0x1d, 0x132: 0x1e, 0x133: 0x1f, 0x134: 0x8f, 0x135: 0x20, 0x136: 0x90, 0x137: 0x91, + 0x138: 0x92, 0x139: 0x93, 0x13a: 0x21, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x22, 0x13e: 0x23, 0x13f: 0x96, + // Block 0x5, offset 0x140 + 0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e, + 0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6, + 0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f, + 0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae, + 0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6, + 0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe, + 0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x24, 0x175: 0x25, 0x176: 0x26, 0x177: 0xc3, + 0x178: 0x27, 0x179: 0x27, 0x17a: 0x28, 0x17b: 0x27, 0x17c: 0xc4, 0x17d: 0x29, 0x17e: 0x2a, 0x17f: 0x2b, + // Block 0x6, offset 0x180 + 0x180: 0x2c, 0x181: 0x2d, 0x182: 0x2e, 0x183: 0xc5, 0x184: 0x2f, 0x185: 0x30, 0x186: 0xc6, 0x187: 0x9b, + 0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0xca, + 0x190: 0xcb, 0x191: 0x31, 0x192: 0x32, 0x193: 0x33, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b, + 0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b, + 0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b, + 0x1a8: 0xcc, 0x1a9: 0xcd, 0x1aa: 0x9b, 0x1ab: 0xce, 0x1ac: 0x9b, 0x1ad: 0xcf, 0x1ae: 0xd0, 0x1af: 0xd1, + 0x1b0: 0xd2, 0x1b1: 0x34, 0x1b2: 0x27, 0x1b3: 0x35, 0x1b4: 0xd3, 0x1b5: 0xd4, 0x1b6: 0xd5, 0x1b7: 0xd6, + 0x1b8: 0xd7, 0x1b9: 0xd8, 0x1ba: 0xd9, 0x1bb: 0xda, 0x1bc: 0xdb, 0x1bd: 0xdc, 0x1be: 0xdd, 0x1bf: 0x36, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x37, 0x1c1: 0xde, 0x1c2: 0xdf, 0x1c3: 0xe0, 0x1c4: 0xe1, 0x1c5: 0x38, 0x1c6: 0x39, 0x1c7: 0xe2, + 0x1c8: 0xe3, 0x1c9: 0x3a, 0x1ca: 0x3b, 0x1cb: 0x3c, 0x1cc: 0x3d, 0x1cd: 0x3e, 0x1ce: 0x3f, 0x1cf: 0x40, + 0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f, + 0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f, + 0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f, + 0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f, + 0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f, + 0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f, + // Block 0x8, offset 0x200 + 0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f, + 0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f, + 0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f, + 0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f, + 0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f, + 0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f, + 0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b, + 0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f, + // Block 0x9, offset 0x240 + 0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f, + 0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f, + 0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f, + 0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f, + 0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f, + 0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f, + 0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f, + 0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f, + // Block 0xa, offset 0x280 + 0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f, + 0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f, + 0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f, + 0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f, + 0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f, + 0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f, + 0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f, + 0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe4, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f, + 0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f, + 0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe5, 0x2d3: 0xe6, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f, + 0x2d8: 0xe7, 0x2d9: 0x41, 0x2da: 0x42, 0x2db: 0xe8, 0x2dc: 0x43, 0x2dd: 0x44, 0x2de: 0x45, 0x2df: 0xe9, + 0x2e0: 0xea, 0x2e1: 0xeb, 0x2e2: 0xec, 0x2e3: 0xed, 0x2e4: 0xee, 0x2e5: 0xef, 0x2e6: 0xf0, 0x2e7: 0xf1, + 0x2e8: 0xf2, 0x2e9: 0xf3, 0x2ea: 0xf4, 0x2eb: 0xf5, 0x2ec: 0xf6, 0x2ed: 0xf7, 0x2ee: 0xf8, 0x2ef: 0xf9, + 0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f, + 0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f, + // Block 0xc, offset 0x300 + 0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f, + 0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f, + 0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f, + 0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xfa, 0x31f: 0xfb, + // Block 0xd, offset 0x340 + 0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba, + 0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba, + 0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba, + 0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba, + 0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba, + 0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba, + 0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba, + 0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba, + // Block 0xe, offset 0x380 + 0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba, + 0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba, + 0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba, + 0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba, + 0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfc, 0x3a5: 0xfd, 0x3a6: 0xfe, 0x3a7: 0xff, + 0x3a8: 0x46, 0x3a9: 0x100, 0x3aa: 0x101, 0x3ab: 0x47, 0x3ac: 0x48, 0x3ad: 0x49, 0x3ae: 0x4a, 0x3af: 0x4b, + 0x3b0: 0x102, 0x3b1: 0x4c, 0x3b2: 0x4d, 0x3b3: 0x4e, 0x3b4: 0x4f, 0x3b5: 0x50, 0x3b6: 0x103, 0x3b7: 0x51, + 0x3b8: 0x52, 0x3b9: 0x53, 0x3ba: 0x54, 0x3bb: 0x55, 0x3bc: 0x56, 0x3bd: 0x57, 0x3be: 0x58, 0x3bf: 0x59, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x104, 0x3c1: 0x105, 0x3c2: 0x9f, 0x3c3: 0x106, 0x3c4: 0x107, 0x3c5: 0x9b, 0x3c6: 0x108, 0x3c7: 0x109, + 0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x10a, 0x3cb: 0x10b, 0x3cc: 0x10c, 0x3cd: 0x10d, 0x3ce: 0x10e, 0x3cf: 0x10f, + 0x3d0: 0x110, 0x3d1: 0x9f, 0x3d2: 0x111, 0x3d3: 0x112, 0x3d4: 0x113, 0x3d5: 0x114, 0x3d6: 0xba, 0x3d7: 0xba, + 0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x115, 0x3dd: 0x116, 0x3de: 0xba, 0x3df: 0xba, + 0x3e0: 0x117, 0x3e1: 0x118, 0x3e2: 0x119, 0x3e3: 0x11a, 0x3e4: 0x11b, 0x3e5: 0xba, 0x3e6: 0x11c, 0x3e7: 0x11d, + 0x3e8: 0x11e, 0x3e9: 0x11f, 0x3ea: 0x120, 0x3eb: 0x5a, 0x3ec: 0x121, 0x3ed: 0x122, 0x3ee: 0x5b, 0x3ef: 0xba, + 0x3f0: 0x123, 0x3f1: 0x124, 0x3f2: 0x125, 0x3f3: 0x126, 0x3f4: 0xba, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba, + 0x3f8: 0xba, 0x3f9: 0x127, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0xba, 0x3fd: 0xba, 0x3fe: 0xba, 0x3ff: 0xba, + // Block 0x10, offset 0x400 + 0x400: 0x128, 0x401: 0x129, 0x402: 0x12a, 0x403: 0x12b, 0x404: 0x12c, 0x405: 0x12d, 0x406: 0x12e, 0x407: 0x12f, + 0x408: 0x130, 0x409: 0xba, 0x40a: 0x131, 0x40b: 0x132, 0x40c: 0x5c, 0x40d: 0x5d, 0x40e: 0xba, 0x40f: 0xba, + 0x410: 0x133, 0x411: 0x134, 0x412: 0x135, 0x413: 0x136, 0x414: 0xba, 0x415: 0xba, 0x416: 0x137, 0x417: 0x138, + 0x418: 0x139, 0x419: 0x13a, 0x41a: 0x13b, 0x41b: 0x13c, 0x41c: 0x13d, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba, + 0x420: 0xba, 0x421: 0xba, 0x422: 0x13e, 0x423: 0x13f, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba, + 0x428: 0xba, 0x429: 0xba, 0x42a: 0xba, 0x42b: 0x140, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba, + 0x430: 0x141, 0x431: 0x142, 0x432: 0x143, 0x433: 0xba, 0x434: 0xba, 0x435: 0xba, 0x436: 0xba, 0x437: 0xba, + 0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0xba, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba, + // Block 0x11, offset 0x440 + 0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f, + 0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x144, 0x44f: 0xba, + 0x450: 0x9b, 0x451: 0x145, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x146, 0x456: 0xba, 0x457: 0xba, + 0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba, + 0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba, + 0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba, + 0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba, + 0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba, + // Block 0x12, offset 0x480 + 0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f, + 0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f, + 0x490: 0x147, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba, + 0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba, + 0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba, + 0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba, + 0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba, + 0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba, + // Block 0x13, offset 0x4c0 + 0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba, + 0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba, + 0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f, + 0x4d8: 0x9f, 0x4d9: 0x148, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba, + 0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba, + 0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba, + 0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba, + 0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba, + // Block 0x14, offset 0x500 + 0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba, + 0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba, + 0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba, + 0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba, + 0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f, + 0x528: 0x140, 0x529: 0x149, 0x52a: 0xba, 0x52b: 0x14a, 0x52c: 0x14b, 0x52d: 0x14c, 0x52e: 0x14d, 0x52f: 0xba, + 0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba, + 0x538: 0xba, 0x539: 0xba, 0x53a: 0xba, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x14e, 0x53e: 0x14f, 0x53f: 0x150, + // Block 0x15, offset 0x540 + 0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f, + 0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f, + 0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f, + 0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x151, + 0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f, + 0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x152, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba, + 0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba, + 0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba, + // Block 0x16, offset 0x580 + 0x580: 0x153, 0x581: 0xba, 0x582: 0xba, 0x583: 0xba, 0x584: 0xba, 0x585: 0xba, 0x586: 0xba, 0x587: 0xba, + 0x588: 0xba, 0x589: 0xba, 0x58a: 0xba, 0x58b: 0xba, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba, + 0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba, + 0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba, + 0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba, + 0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba, + 0x5b0: 0x9f, 0x5b1: 0x154, 0x5b2: 0x155, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba, + 0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x156, 0x5c4: 0x157, 0x5c5: 0x158, 0x5c6: 0x159, 0x5c7: 0x15a, + 0x5c8: 0x9b, 0x5c9: 0x15b, 0x5ca: 0xba, 0x5cb: 0xba, 0x5cc: 0x9b, 0x5cd: 0x15c, 0x5ce: 0xba, 0x5cf: 0xba, + 0x5d0: 0x5e, 0x5d1: 0x5f, 0x5d2: 0x60, 0x5d3: 0x61, 0x5d4: 0x62, 0x5d5: 0x63, 0x5d6: 0x64, 0x5d7: 0x65, + 0x5d8: 0x66, 0x5d9: 0x67, 0x5da: 0x68, 0x5db: 0x69, 0x5dc: 0x6a, 0x5dd: 0x6b, 0x5de: 0x6c, 0x5df: 0x6d, + 0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b, + 0x5e8: 0x15d, 0x5e9: 0x15e, 0x5ea: 0x15f, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba, + 0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba, + 0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba, + // Block 0x18, offset 0x600 + 0x600: 0x160, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba, + 0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba, + 0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba, + 0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba, + 0x620: 0x123, 0x621: 0x123, 0x622: 0x123, 0x623: 0x161, 0x624: 0x6e, 0x625: 0x162, 0x626: 0xba, 0x627: 0xba, + 0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba, + 0x630: 0xba, 0x631: 0xba, 0x632: 0xba, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba, + 0x638: 0x6f, 0x639: 0x70, 0x63a: 0x71, 0x63b: 0x163, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba, + // Block 0x19, offset 0x640 + 0x640: 0x164, 0x641: 0x9b, 0x642: 0x165, 0x643: 0x166, 0x644: 0x72, 0x645: 0x73, 0x646: 0x167, 0x647: 0x168, + 0x648: 0x74, 0x649: 0x169, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b, + 0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b, + 0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x16a, 0x65c: 0x9b, 0x65d: 0x16b, 0x65e: 0x9b, 0x65f: 0x16c, + 0x660: 0x16d, 0x661: 0x16e, 0x662: 0x16f, 0x663: 0xba, 0x664: 0x170, 0x665: 0x171, 0x666: 0x172, 0x667: 0x173, + 0x668: 0xba, 0x669: 0xba, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba, + 0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba, + 0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba, + // Block 0x1a, offset 0x680 + 0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f, + 0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f, + 0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f, + 0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x174, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f, + 0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f, + 0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f, + 0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f, + 0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f, + 0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f, + 0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f, + 0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x175, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f, + 0x6e0: 0x176, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f, + 0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f, + 0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f, + 0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f, + // Block 0x1c, offset 0x700 + 0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f, + 0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f, + 0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f, + 0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f, + 0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f, + 0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f, + 0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f, + 0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x177, 0x73b: 0xba, 0x73c: 0xba, 0x73d: 0xba, 0x73e: 0xba, 0x73f: 0xba, + // Block 0x1d, offset 0x740 + 0x740: 0xba, 0x741: 0xba, 0x742: 0xba, 0x743: 0xba, 0x744: 0xba, 0x745: 0xba, 0x746: 0xba, 0x747: 0xba, + 0x748: 0xba, 0x749: 0xba, 0x74a: 0xba, 0x74b: 0xba, 0x74c: 0xba, 0x74d: 0xba, 0x74e: 0xba, 0x74f: 0xba, + 0x750: 0xba, 0x751: 0xba, 0x752: 0xba, 0x753: 0xba, 0x754: 0xba, 0x755: 0xba, 0x756: 0xba, 0x757: 0xba, + 0x758: 0xba, 0x759: 0xba, 0x75a: 0xba, 0x75b: 0xba, 0x75c: 0xba, 0x75d: 0xba, 0x75e: 0xba, 0x75f: 0xba, + 0x760: 0x75, 0x761: 0x76, 0x762: 0x77, 0x763: 0x178, 0x764: 0x78, 0x765: 0x79, 0x766: 0x179, 0x767: 0x7a, + 0x768: 0x7b, 0x769: 0xba, 0x76a: 0xba, 0x76b: 0xba, 0x76c: 0xba, 0x76d: 0xba, 0x76e: 0xba, 0x76f: 0xba, + 0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba, + 0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba, + // Block 0x1e, offset 0x780 + 0x790: 0x0d, 0x791: 0x0e, 0x792: 0x0f, 0x793: 0x10, 0x794: 0x11, 0x795: 0x0b, 0x796: 0x12, 0x797: 0x07, + 0x798: 0x13, 0x799: 0x0b, 0x79a: 0x0b, 0x79b: 0x14, 0x79c: 0x0b, 0x79d: 0x15, 0x79e: 0x16, 0x79f: 0x17, + 0x7a0: 0x07, 0x7a1: 0x07, 0x7a2: 0x07, 0x7a3: 0x07, 0x7a4: 0x07, 0x7a5: 0x07, 0x7a6: 0x07, 0x7a7: 0x07, + 0x7a8: 0x07, 0x7a9: 0x07, 0x7aa: 0x18, 0x7ab: 0x19, 0x7ac: 0x1a, 0x7ad: 0x0b, 0x7ae: 0x0b, 0x7af: 0x1b, + 0x7b0: 0x0b, 0x7b1: 0x0b, 0x7b2: 0x0b, 0x7b3: 0x0b, 0x7b4: 0x0b, 0x7b5: 0x0b, 0x7b6: 0x0b, 0x7b7: 0x0b, + 0x7b8: 0x0b, 0x7b9: 0x0b, 0x7ba: 0x0b, 0x7bb: 0x0b, 0x7bc: 0x0b, 0x7bd: 0x0b, 0x7be: 0x0b, 0x7bf: 0x0b, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x0b, 0x7c1: 0x0b, 0x7c2: 0x0b, 0x7c3: 0x0b, 0x7c4: 0x0b, 0x7c5: 0x0b, 0x7c6: 0x0b, 0x7c7: 0x0b, + 0x7c8: 0x0b, 0x7c9: 0x0b, 0x7ca: 0x0b, 0x7cb: 0x0b, 0x7cc: 0x0b, 0x7cd: 0x0b, 0x7ce: 0x0b, 0x7cf: 0x0b, + 0x7d0: 0x0b, 0x7d1: 0x0b, 0x7d2: 0x0b, 0x7d3: 0x0b, 0x7d4: 0x0b, 0x7d5: 0x0b, 0x7d6: 0x0b, 0x7d7: 0x0b, + 0x7d8: 0x0b, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x0b, 0x7dc: 0x0b, 0x7dd: 0x0b, 0x7de: 0x0b, 0x7df: 0x0b, + 0x7e0: 0x0b, 0x7e1: 0x0b, 0x7e2: 0x0b, 0x7e3: 0x0b, 0x7e4: 0x0b, 0x7e5: 0x0b, 0x7e6: 0x0b, 0x7e7: 0x0b, + 0x7e8: 0x0b, 0x7e9: 0x0b, 0x7ea: 0x0b, 0x7eb: 0x0b, 0x7ec: 0x0b, 0x7ed: 0x0b, 0x7ee: 0x0b, 0x7ef: 0x0b, + 0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b, + 0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b, + // Block 0x20, offset 0x800 + 0x800: 0x17a, 0x801: 0x17b, 0x802: 0xba, 0x803: 0xba, 0x804: 0x17c, 0x805: 0x17c, 0x806: 0x17c, 0x807: 0x17d, + 0x808: 0xba, 0x809: 0xba, 0x80a: 0xba, 0x80b: 0xba, 0x80c: 0xba, 0x80d: 0xba, 0x80e: 0xba, 0x80f: 0xba, + 0x810: 0xba, 0x811: 0xba, 0x812: 0xba, 0x813: 0xba, 0x814: 0xba, 0x815: 0xba, 0x816: 0xba, 0x817: 0xba, + 0x818: 0xba, 0x819: 0xba, 0x81a: 0xba, 0x81b: 0xba, 0x81c: 0xba, 0x81d: 0xba, 0x81e: 0xba, 0x81f: 0xba, + 0x820: 0xba, 0x821: 0xba, 0x822: 0xba, 0x823: 0xba, 0x824: 0xba, 0x825: 0xba, 0x826: 0xba, 0x827: 0xba, + 0x828: 0xba, 0x829: 0xba, 0x82a: 0xba, 0x82b: 0xba, 0x82c: 0xba, 0x82d: 0xba, 0x82e: 0xba, 0x82f: 0xba, + 0x830: 0xba, 0x831: 0xba, 0x832: 0xba, 0x833: 0xba, 0x834: 0xba, 0x835: 0xba, 0x836: 0xba, 0x837: 0xba, + 0x838: 0xba, 0x839: 0xba, 0x83a: 0xba, 0x83b: 0xba, 0x83c: 0xba, 0x83d: 0xba, 0x83e: 0xba, 0x83f: 0xba, + // Block 0x21, offset 0x840 + 0x840: 0x0b, 0x841: 0x0b, 0x842: 0x0b, 0x843: 0x0b, 0x844: 0x0b, 0x845: 0x0b, 0x846: 0x0b, 0x847: 0x0b, + 0x848: 0x0b, 0x849: 0x0b, 0x84a: 0x0b, 0x84b: 0x0b, 0x84c: 0x0b, 0x84d: 0x0b, 0x84e: 0x0b, 0x84f: 0x0b, + 0x850: 0x0b, 0x851: 0x0b, 0x852: 0x0b, 0x853: 0x0b, 0x854: 0x0b, 0x855: 0x0b, 0x856: 0x0b, 0x857: 0x0b, + 0x858: 0x0b, 0x859: 0x0b, 0x85a: 0x0b, 0x85b: 0x0b, 0x85c: 0x0b, 0x85d: 0x0b, 0x85e: 0x0b, 0x85f: 0x0b, + 0x860: 0x1e, 0x861: 0x0b, 0x862: 0x0b, 0x863: 0x0b, 0x864: 0x0b, 0x865: 0x0b, 0x866: 0x0b, 0x867: 0x0b, + 0x868: 0x0b, 0x869: 0x0b, 0x86a: 0x0b, 0x86b: 0x0b, 0x86c: 0x0b, 0x86d: 0x0b, 0x86e: 0x0b, 0x86f: 0x0b, + 0x870: 0x0b, 0x871: 0x0b, 0x872: 0x0b, 0x873: 0x0b, 0x874: 0x0b, 0x875: 0x0b, 0x876: 0x0b, 0x877: 0x0b, + 0x878: 0x0b, 0x879: 0x0b, 0x87a: 0x0b, 0x87b: 0x0b, 0x87c: 0x0b, 0x87d: 0x0b, 0x87e: 0x0b, 0x87f: 0x0b, + // Block 0x22, offset 0x880 + 0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b, + 0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b, +} + +// idnaSparseOffset: 258 entries, 516 bytes +var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x34, 0x3f, 0x4b, 0x4f, 0x5e, 0x63, 0x6b, 0x77, 0x85, 0x93, 0x98, 0xa1, 0xb1, 0xbf, 0xcc, 0xd8, 0xe9, 0xf3, 0xfa, 0x107, 0x118, 0x11f, 0x12a, 0x139, 0x147, 0x151, 0x153, 0x158, 0x15b, 0x15e, 0x160, 0x16c, 0x177, 0x17f, 0x185, 0x18b, 0x190, 0x195, 0x198, 0x19c, 0x1a2, 0x1a7, 0x1b3, 0x1bd, 0x1c3, 0x1d4, 0x1de, 0x1e1, 0x1e9, 0x1ec, 0x1f9, 0x201, 0x205, 0x20c, 0x214, 0x224, 0x230, 0x232, 0x23c, 0x248, 0x254, 0x260, 0x268, 0x26d, 0x277, 0x288, 0x28c, 0x297, 0x29b, 0x2a4, 0x2ac, 0x2b2, 0x2b7, 0x2ba, 0x2bd, 0x2c1, 0x2c7, 0x2cb, 0x2cf, 0x2d5, 0x2dc, 0x2e2, 0x2ea, 0x2f1, 0x2fc, 0x306, 0x30a, 0x30d, 0x313, 0x317, 0x319, 0x31c, 0x31e, 0x321, 0x32b, 0x32e, 0x33d, 0x341, 0x346, 0x349, 0x34d, 0x352, 0x357, 0x35d, 0x363, 0x372, 0x378, 0x37c, 0x38b, 0x390, 0x398, 0x3a2, 0x3ad, 0x3b5, 0x3c6, 0x3cf, 0x3df, 0x3ec, 0x3f6, 0x3fb, 0x408, 0x40c, 0x411, 0x413, 0x417, 0x419, 0x41d, 0x426, 0x42c, 0x430, 0x440, 0x44a, 0x44f, 0x452, 0x458, 0x45f, 0x464, 0x468, 0x46e, 0x473, 0x47c, 0x481, 0x487, 0x48e, 0x495, 0x49c, 0x4a0, 0x4a5, 0x4a8, 0x4ad, 0x4b9, 0x4bf, 0x4c4, 0x4cb, 0x4d3, 0x4d8, 0x4dc, 0x4ec, 0x4f3, 0x4f7, 0x4fb, 0x502, 0x504, 0x507, 0x50a, 0x50e, 0x512, 0x518, 0x521, 0x52d, 0x534, 0x53d, 0x545, 0x54c, 0x55a, 0x567, 0x574, 0x57d, 0x581, 0x58f, 0x597, 0x5a2, 0x5ab, 0x5b1, 0x5b9, 0x5c2, 0x5cc, 0x5cf, 0x5db, 0x5de, 0x5e3, 0x5e6, 0x5f0, 0x5f9, 0x605, 0x608, 0x60d, 0x610, 0x613, 0x616, 0x61d, 0x624, 0x628, 0x633, 0x636, 0x63c, 0x641, 0x645, 0x648, 0x64b, 0x64e, 0x653, 0x65d, 0x660, 0x664, 0x673, 0x67f, 0x683, 0x688, 0x68d, 0x691, 0x696, 0x69f, 0x6aa, 0x6b0, 0x6b8, 0x6bc, 0x6c0, 0x6c6, 0x6cc, 0x6d1, 0x6d4, 0x6e2, 0x6e9, 0x6ec, 0x6ef, 0x6f3, 0x6f9, 0x6fe, 0x708, 0x70d, 0x710, 0x713, 0x716, 0x719, 0x71d, 0x720, 0x730, 0x741, 0x746, 0x748, 0x74a} + +// idnaSparseValues: 1869 entries, 7476 bytes +var idnaSparseValues = [1869]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x07}, + {value: 0xe105, lo: 0x80, hi: 0x96}, + {value: 0x0018, lo: 0x97, hi: 0x97}, + {value: 0xe105, lo: 0x98, hi: 0x9e}, + {value: 0x001f, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbf}, + // Block 0x1, offset 0x8 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0xe01d, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0335, lo: 0x83, hi: 0x83}, + {value: 0x034d, lo: 0x84, hi: 0x84}, + {value: 0x0365, lo: 0x85, hi: 0x85}, + {value: 0xe00d, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0xe00d, lo: 0x88, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x89}, + {value: 0xe00d, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe00d, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0x8d}, + {value: 0xe00d, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0xbf}, + // Block 0x2, offset 0x19 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x0249, lo: 0xb0, hi: 0xb0}, + {value: 0x037d, lo: 0xb1, hi: 0xb1}, + {value: 0x0259, lo: 0xb2, hi: 0xb2}, + {value: 0x0269, lo: 0xb3, hi: 0xb3}, + {value: 0x034d, lo: 0xb4, hi: 0xb4}, + {value: 0x0395, lo: 0xb5, hi: 0xb5}, + {value: 0xe1bd, lo: 0xb6, hi: 0xb6}, + {value: 0x0279, lo: 0xb7, hi: 0xb7}, + {value: 0x0289, lo: 0xb8, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbf}, + // Block 0x3, offset 0x25 + {value: 0x0000, lo: 0x01}, + {value: 0x3308, lo: 0x80, hi: 0xbf}, + // Block 0x4, offset 0x27 + {value: 0x0000, lo: 0x04}, + {value: 0x03f5, lo: 0x80, hi: 0x8f}, + {value: 0xe105, lo: 0x90, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x5, offset 0x2c + {value: 0x0000, lo: 0x07}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x0545, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x0008, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xbf}, + // Block 0x6, offset 0x34 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0401, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x88}, + {value: 0x0018, lo: 0x89, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x7, offset 0x3f + {value: 0x0000, lo: 0x0b}, + {value: 0x0818, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x82}, + {value: 0x0818, lo: 0x83, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x85}, + {value: 0x0818, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0808, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x8, offset 0x4b + {value: 0x0000, lo: 0x03}, + {value: 0x0a08, lo: 0x80, hi: 0x87}, + {value: 0x0c08, lo: 0x88, hi: 0x99}, + {value: 0x0a08, lo: 0x9a, hi: 0xbf}, + // Block 0x9, offset 0x4f + {value: 0x0000, lo: 0x0e}, + {value: 0x3308, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0c08, lo: 0x8d, hi: 0x8d}, + {value: 0x0a08, lo: 0x8e, hi: 0x98}, + {value: 0x0c08, lo: 0x99, hi: 0x9b}, + {value: 0x0a08, lo: 0x9c, hi: 0xaa}, + {value: 0x0c08, lo: 0xab, hi: 0xac}, + {value: 0x0a08, lo: 0xad, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb1}, + {value: 0x0a08, lo: 0xb2, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb4}, + {value: 0x0a08, lo: 0xb5, hi: 0xb7}, + {value: 0x0c08, lo: 0xb8, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbf}, + // Block 0xa, offset 0x5e + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xb0}, + {value: 0x0808, lo: 0xb1, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xb, offset 0x63 + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x89}, + {value: 0x0a08, lo: 0x8a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0xc, offset 0x6b + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x99}, + {value: 0x0808, lo: 0x9a, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa3}, + {value: 0x0808, lo: 0xa4, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa7}, + {value: 0x0808, lo: 0xa8, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0818, lo: 0xb0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xd, offset 0x77 + {value: 0x0000, lo: 0x0d}, + {value: 0x0c08, lo: 0x80, hi: 0x80}, + {value: 0x0a08, lo: 0x81, hi: 0x85}, + {value: 0x0c08, lo: 0x86, hi: 0x87}, + {value: 0x0a08, lo: 0x88, hi: 0x88}, + {value: 0x0c08, lo: 0x89, hi: 0x89}, + {value: 0x0a08, lo: 0x8a, hi: 0x93}, + {value: 0x0c08, lo: 0x94, hi: 0x94}, + {value: 0x0a08, lo: 0x95, hi: 0x95}, + {value: 0x0808, lo: 0x96, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9d}, + {value: 0x0818, lo: 0x9e, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xbf}, + // Block 0xe, offset 0x85 + {value: 0x0000, lo: 0x0d}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0a08, lo: 0xa0, hi: 0xa9}, + {value: 0x0c08, lo: 0xaa, hi: 0xac}, + {value: 0x0808, lo: 0xad, hi: 0xad}, + {value: 0x0c08, lo: 0xae, hi: 0xae}, + {value: 0x0a08, lo: 0xaf, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb2}, + {value: 0x0a08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0a08, lo: 0xb6, hi: 0xb8}, + {value: 0x0c08, lo: 0xb9, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0xf, offset 0x93 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0xa1}, + {value: 0x0840, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xbf}, + // Block 0x10, offset 0x98 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x11, offset 0xa1 + {value: 0x0000, lo: 0x0f}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x85}, + {value: 0x3008, lo: 0x86, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8c}, + {value: 0x3b08, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x12, offset 0xb1 + {value: 0x0000, lo: 0x0d}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x13, offset 0xbf + {value: 0x0000, lo: 0x0c}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x14, offset 0xcc + {value: 0x0000, lo: 0x0b}, + {value: 0x0040, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x15, offset 0xd8 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x89}, + {value: 0x3b08, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x3008, lo: 0x98, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x16, offset 0xe9 + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb2}, + {value: 0x08f1, lo: 0xb3, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb9}, + {value: 0x3b08, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0x17, offset 0xf3 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x8e}, + {value: 0x0018, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0xbf}, + // Block 0x18, offset 0xfa + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0961, lo: 0x9c, hi: 0x9c}, + {value: 0x0999, lo: 0x9d, hi: 0x9d}, + {value: 0x0008, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x19, offset 0x107 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe03d, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x1a, offset 0x118 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0x1b, offset 0x11f + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0x12a + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xa1}, + {value: 0x3008, lo: 0xa2, hi: 0xa4}, + {value: 0x0008, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xbf}, + // Block 0x1d, offset 0x139 + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x8c}, + {value: 0x3308, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x3008, lo: 0x9a, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x1e, offset 0x147 + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x86}, + {value: 0x055d, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8c}, + {value: 0x055d, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0xe105, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0x1f, offset 0x151 + {value: 0x0000, lo: 0x01}, + {value: 0x0018, lo: 0x80, hi: 0xbf}, + // Block 0x20, offset 0x153 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa0}, + {value: 0x2018, lo: 0xa1, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x21, offset 0x158 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa7}, + {value: 0x2018, lo: 0xa8, hi: 0xbf}, + // Block 0x22, offset 0x15b + {value: 0x0000, lo: 0x02}, + {value: 0x2018, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0xbf}, + // Block 0x23, offset 0x15e + {value: 0x0000, lo: 0x01}, + {value: 0x0008, lo: 0x80, hi: 0xbf}, + // Block 0x24, offset 0x160 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x25, offset 0x16c + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x26, offset 0x177 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x27, offset 0x17f + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x28, offset 0x185 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x29, offset 0x18b + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x2a, offset 0x190 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x2b, offset 0x195 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x2c, offset 0x198 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xbf}, + // Block 0x2d, offset 0x19c + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x2e, offset 0x1a2 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x2f, offset 0x1a7 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x3b08, lo: 0x94, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x30, offset 0x1b3 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x31, offset 0x1bd + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xb3}, + {value: 0x3340, lo: 0xb4, hi: 0xb5}, + {value: 0x3008, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x32, offset 0x1c3 + {value: 0x0000, lo: 0x10}, + {value: 0x3008, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x91}, + {value: 0x3b08, lo: 0x92, hi: 0x92}, + {value: 0x3308, lo: 0x93, hi: 0x93}, + {value: 0x0018, lo: 0x94, hi: 0x96}, + {value: 0x0008, lo: 0x97, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x33, offset 0x1d4 + {value: 0x0000, lo: 0x09}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x86}, + {value: 0x0218, lo: 0x87, hi: 0x87}, + {value: 0x0018, lo: 0x88, hi: 0x8a}, + {value: 0x33c0, lo: 0x8b, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0208, lo: 0xa0, hi: 0xbf}, + // Block 0x34, offset 0x1de + {value: 0x0000, lo: 0x02}, + {value: 0x0208, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x35, offset 0x1e1 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0208, lo: 0x87, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xa9}, + {value: 0x0208, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x36, offset 0x1e9 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0x37, offset 0x1ec + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x38, offset 0x1f9 + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x39, offset 0x201 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x3a, offset 0x205 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0028, lo: 0x9a, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xbf}, + // Block 0x3b, offset 0x20c + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x3308, lo: 0x97, hi: 0x98}, + {value: 0x3008, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x3c, offset 0x214 + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x94}, + {value: 0x3008, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3b08, lo: 0xa0, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xac}, + {value: 0x3008, lo: 0xad, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x224 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xbd}, + {value: 0x3318, lo: 0xbe, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x3e, offset 0x230 + {value: 0x0000, lo: 0x01}, + {value: 0x0040, lo: 0x80, hi: 0xbf}, + // Block 0x3f, offset 0x232 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3008, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbf}, + // Block 0x40, offset 0x23c + {value: 0x0000, lo: 0x0b}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x3808, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x41, offset 0x248 + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3808, lo: 0xaa, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xbf}, + // Block 0x42, offset 0x254 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3008, lo: 0xaa, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3808, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbf}, + // Block 0x43, offset 0x260 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x3008, lo: 0xa4, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbf}, + // Block 0x44, offset 0x268 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x45, offset 0x26d + {value: 0x0000, lo: 0x09}, + {value: 0x0e29, lo: 0x80, hi: 0x80}, + {value: 0x0e41, lo: 0x81, hi: 0x81}, + {value: 0x0e59, lo: 0x82, hi: 0x82}, + {value: 0x0e71, lo: 0x83, hi: 0x83}, + {value: 0x0e89, lo: 0x84, hi: 0x85}, + {value: 0x0ea1, lo: 0x86, hi: 0x86}, + {value: 0x0eb9, lo: 0x87, hi: 0x87}, + {value: 0x057d, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0x46, offset 0x277 + {value: 0x0000, lo: 0x10}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x92}, + {value: 0x0018, lo: 0x93, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa8}, + {value: 0x0008, lo: 0xa9, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x47, offset 0x288 + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0x48, offset 0x28c + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x87}, + {value: 0xe045, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0xe045, lo: 0x98, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0xe045, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbf}, + // Block 0x49, offset 0x297 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x3318, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbf}, + // Block 0x4a, offset 0x29b + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x24c1, lo: 0x89, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x4b, offset 0x2a4 + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x24f1, lo: 0xac, hi: 0xac}, + {value: 0x2529, lo: 0xad, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xae}, + {value: 0x2579, lo: 0xaf, hi: 0xaf}, + {value: 0x25b1, lo: 0xb0, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0x4c, offset 0x2ac + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x9f}, + {value: 0x0080, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xad}, + {value: 0x0080, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x4d, offset 0x2b2 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xa8}, + {value: 0x09c5, lo: 0xa9, hi: 0xa9}, + {value: 0x09e5, lo: 0xaa, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xbf}, + // Block 0x4e, offset 0x2b7 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x4f, offset 0x2ba + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xbf}, + // Block 0x50, offset 0x2bd + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x28c1, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x51, offset 0x2c1 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0e66, lo: 0xb4, hi: 0xb4}, + {value: 0x292a, lo: 0xb5, hi: 0xb5}, + {value: 0x0e86, lo: 0xb6, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x52, offset 0x2c7 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x9b}, + {value: 0x2941, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0xbf}, + // Block 0x53, offset 0x2cb + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x54, offset 0x2cf + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbc}, + {value: 0x0018, lo: 0xbd, hi: 0xbf}, + // Block 0x55, offset 0x2d5 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0xab}, + {value: 0x0018, lo: 0xac, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x56, offset 0x2dc + {value: 0x0000, lo: 0x05}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x03f5, lo: 0x90, hi: 0x9f}, + {value: 0x0ea5, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x57, offset 0x2e2 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x58, offset 0x2ea + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xae}, + {value: 0xe075, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0x59, offset 0x2f1 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x5a, offset 0x2fc + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xbf}, + // Block 0x5b, offset 0x306 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x5c, offset 0x30a + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0xbf}, + // Block 0x5d, offset 0x30d + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9e}, + {value: 0x0edd, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x5e, offset 0x313 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb2}, + {value: 0x0efd, lo: 0xb3, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x5f, offset 0x317 + {value: 0x0020, lo: 0x01}, + {value: 0x0f1d, lo: 0x80, hi: 0xbf}, + // Block 0x60, offset 0x319 + {value: 0x0020, lo: 0x02}, + {value: 0x171d, lo: 0x80, hi: 0x8f}, + {value: 0x18fd, lo: 0x90, hi: 0xbf}, + // Block 0x61, offset 0x31c + {value: 0x0020, lo: 0x01}, + {value: 0x1efd, lo: 0x80, hi: 0xbf}, + // Block 0x62, offset 0x31e + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x63, offset 0x321 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9a}, + {value: 0x29e2, lo: 0x9b, hi: 0x9b}, + {value: 0x2a0a, lo: 0x9c, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9e}, + {value: 0x2a31, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xbf}, + // Block 0x64, offset 0x32b + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbe}, + {value: 0x2a69, lo: 0xbf, hi: 0xbf}, + // Block 0x65, offset 0x32e + {value: 0x0000, lo: 0x0e}, + {value: 0x0040, lo: 0x80, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xb0}, + {value: 0x2a1d, lo: 0xb1, hi: 0xb1}, + {value: 0x2a3d, lo: 0xb2, hi: 0xb2}, + {value: 0x2a5d, lo: 0xb3, hi: 0xb3}, + {value: 0x2a7d, lo: 0xb4, hi: 0xb4}, + {value: 0x2a5d, lo: 0xb5, hi: 0xb5}, + {value: 0x2a9d, lo: 0xb6, hi: 0xb6}, + {value: 0x2abd, lo: 0xb7, hi: 0xb7}, + {value: 0x2add, lo: 0xb8, hi: 0xb9}, + {value: 0x2afd, lo: 0xba, hi: 0xbb}, + {value: 0x2b1d, lo: 0xbc, hi: 0xbd}, + {value: 0x2afd, lo: 0xbe, hi: 0xbf}, + // Block 0x66, offset 0x33d + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x67, offset 0x341 + {value: 0x0030, lo: 0x04}, + {value: 0x2aa2, lo: 0x80, hi: 0x9d}, + {value: 0x305a, lo: 0x9e, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x30a2, lo: 0xa0, hi: 0xbf}, + // Block 0x68, offset 0x346 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0x69, offset 0x349 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x6a, offset 0x34d + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x6b, offset 0x352 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xbf}, + // Block 0x6c, offset 0x357 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb1}, + {value: 0x0018, lo: 0xb2, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6d, offset 0x35d + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0xb6}, + {value: 0x0008, lo: 0xb7, hi: 0xb7}, + {value: 0x2009, lo: 0xb8, hi: 0xb8}, + {value: 0x6e89, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xbf}, + // Block 0x6e, offset 0x363 + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x3308, lo: 0x8b, hi: 0x8b}, + {value: 0x0008, lo: 0x8c, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x6f, offset 0x372 + {value: 0x0000, lo: 0x05}, + {value: 0x0208, lo: 0x80, hi: 0xb1}, + {value: 0x0108, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x70, offset 0x378 + {value: 0x0000, lo: 0x03}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xbf}, + // Block 0x71, offset 0x37c + {value: 0x0000, lo: 0x0e}, + {value: 0x3008, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xba}, + {value: 0x0008, lo: 0xbb, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x72, offset 0x38b + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x73, offset 0x390 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x91}, + {value: 0x3008, lo: 0x92, hi: 0x92}, + {value: 0x3808, lo: 0x93, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x74, offset 0x398 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb9}, + {value: 0x3008, lo: 0xba, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbf}, + // Block 0x75, offset 0x3a2 + {value: 0x0000, lo: 0x0a}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x76, offset 0x3ad + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x77, offset 0x3b5 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8c}, + {value: 0x3008, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbd}, + {value: 0x0008, lo: 0xbe, hi: 0xbf}, + // Block 0x78, offset 0x3c6 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x79, offset 0x3cf + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x9a}, + {value: 0x0008, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3b08, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x7a, offset 0x3df + {value: 0x0000, lo: 0x0c}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x90}, + {value: 0x0008, lo: 0x91, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x7b, offset 0x3ec + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x4465, lo: 0x9c, hi: 0x9c}, + {value: 0x447d, lo: 0x9d, hi: 0x9d}, + {value: 0x2971, lo: 0x9e, hi: 0x9e}, + {value: 0xe06d, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xaf}, + {value: 0x4495, lo: 0xb0, hi: 0xbf}, + // Block 0x7c, offset 0x3f6 + {value: 0x0000, lo: 0x04}, + {value: 0x44b5, lo: 0x80, hi: 0x8f}, + {value: 0x44d5, lo: 0x90, hi: 0x9f}, + {value: 0x44f5, lo: 0xa0, hi: 0xaf}, + {value: 0x44d5, lo: 0xb0, hi: 0xbf}, + // Block 0x7d, offset 0x3fb + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3b08, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x7e, offset 0x408 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x7f, offset 0x40c + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x80, offset 0x411 + {value: 0x0020, lo: 0x01}, + {value: 0x4515, lo: 0x80, hi: 0xbf}, + // Block 0x81, offset 0x413 + {value: 0x0020, lo: 0x03}, + {value: 0x4d15, lo: 0x80, hi: 0x94}, + {value: 0x4ad5, lo: 0x95, hi: 0x95}, + {value: 0x4fb5, lo: 0x96, hi: 0xbf}, + // Block 0x82, offset 0x417 + {value: 0x0020, lo: 0x01}, + {value: 0x54f5, lo: 0x80, hi: 0xbf}, + // Block 0x83, offset 0x419 + {value: 0x0020, lo: 0x03}, + {value: 0x5cf5, lo: 0x80, hi: 0x84}, + {value: 0x5655, lo: 0x85, hi: 0x85}, + {value: 0x5d95, lo: 0x86, hi: 0xbf}, + // Block 0x84, offset 0x41d + {value: 0x0020, lo: 0x08}, + {value: 0x6b55, lo: 0x80, hi: 0x8f}, + {value: 0x6d15, lo: 0x90, hi: 0x90}, + {value: 0x6d55, lo: 0x91, hi: 0xab}, + {value: 0x6ea1, lo: 0xac, hi: 0xac}, + {value: 0x70b5, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x70d5, lo: 0xb0, hi: 0xbf}, + // Block 0x85, offset 0x426 + {value: 0x0020, lo: 0x05}, + {value: 0x72d5, lo: 0x80, hi: 0xad}, + {value: 0x6535, lo: 0xae, hi: 0xae}, + {value: 0x7895, lo: 0xaf, hi: 0xb5}, + {value: 0x6f55, lo: 0xb6, hi: 0xb6}, + {value: 0x7975, lo: 0xb7, hi: 0xbf}, + // Block 0x86, offset 0x42c + {value: 0x0028, lo: 0x03}, + {value: 0x7c21, lo: 0x80, hi: 0x82}, + {value: 0x7be1, lo: 0x83, hi: 0x83}, + {value: 0x7c99, lo: 0x84, hi: 0xbf}, + // Block 0x87, offset 0x430 + {value: 0x0038, lo: 0x0f}, + {value: 0x9db1, lo: 0x80, hi: 0x83}, + {value: 0x9e59, lo: 0x84, hi: 0x85}, + {value: 0x9e91, lo: 0x86, hi: 0x87}, + {value: 0x9ec9, lo: 0x88, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0xa089, lo: 0x92, hi: 0x97}, + {value: 0xa1a1, lo: 0x98, hi: 0x9c}, + {value: 0xa281, lo: 0x9d, hi: 0xb3}, + {value: 0x9d41, lo: 0xb4, hi: 0xb4}, + {value: 0x9db1, lo: 0xb5, hi: 0xb5}, + {value: 0xa789, lo: 0xb6, hi: 0xbb}, + {value: 0xa869, lo: 0xbc, hi: 0xbc}, + {value: 0xa7f9, lo: 0xbd, hi: 0xbd}, + {value: 0xa8d9, lo: 0xbe, hi: 0xbf}, + // Block 0x88, offset 0x440 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x0008, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x89, offset 0x44a + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0x8a, offset 0x44f + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x8b, offset 0x452 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x8c, offset 0x458 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x8d, offset 0x45f + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x8e, offset 0x464 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x8f, offset 0x468 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x90, offset 0x46e + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x91, offset 0x473 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x92, offset 0x47c + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x93, offset 0x481 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0x94, offset 0x487 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x97}, + {value: 0x8ad5, lo: 0x98, hi: 0x9f}, + {value: 0x8aed, lo: 0xa0, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xbf}, + // Block 0x95, offset 0x48e + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x8aed, lo: 0xb0, hi: 0xb7}, + {value: 0x8ad5, lo: 0xb8, hi: 0xbf}, + // Block 0x96, offset 0x495 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x97, offset 0x49c + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x98, offset 0x4a0 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xae}, + {value: 0x0018, lo: 0xaf, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x99, offset 0x4a5 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x9a, offset 0x4a8 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xbf}, + // Block 0x9b, offset 0x4ad + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0808, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0808, lo: 0x8a, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb6}, + {value: 0x0808, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbb}, + {value: 0x0808, lo: 0xbc, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x0808, lo: 0xbf, hi: 0xbf}, + // Block 0x9c, offset 0x4b9 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x96}, + {value: 0x0818, lo: 0x97, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb6}, + {value: 0x0818, lo: 0xb7, hi: 0xbf}, + // Block 0x9d, offset 0x4bf + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa6}, + {value: 0x0818, lo: 0xa7, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x9e, offset 0x4c4 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xba}, + {value: 0x0818, lo: 0xbb, hi: 0xbf}, + // Block 0x9f, offset 0x4cb + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0818, lo: 0x96, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbe}, + {value: 0x0818, lo: 0xbf, hi: 0xbf}, + // Block 0xa0, offset 0x4d3 + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbb}, + {value: 0x0818, lo: 0xbc, hi: 0xbd}, + {value: 0x0808, lo: 0xbe, hi: 0xbf}, + // Block 0xa1, offset 0x4d8 + {value: 0x0000, lo: 0x03}, + {value: 0x0818, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x0818, lo: 0x92, hi: 0xbf}, + // Block 0xa2, offset 0x4dc + {value: 0x0000, lo: 0x0f}, + {value: 0x0808, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x94}, + {value: 0x0808, lo: 0x95, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x98}, + {value: 0x0808, lo: 0x99, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xa3, offset 0x4ec + {value: 0x0000, lo: 0x06}, + {value: 0x0818, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0818, lo: 0x90, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xbc}, + {value: 0x0818, lo: 0xbd, hi: 0xbf}, + // Block 0xa4, offset 0x4f3 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xa5, offset 0x4f7 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb8}, + {value: 0x0018, lo: 0xb9, hi: 0xbf}, + // Block 0xa6, offset 0x4fb + {value: 0x0000, lo: 0x06}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0818, lo: 0x98, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb7}, + {value: 0x0818, lo: 0xb8, hi: 0xbf}, + // Block 0xa7, offset 0x502 + {value: 0x0000, lo: 0x01}, + {value: 0x0808, lo: 0x80, hi: 0xbf}, + // Block 0xa8, offset 0x504 + {value: 0x0000, lo: 0x02}, + {value: 0x0808, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0xa9, offset 0x507 + {value: 0x0000, lo: 0x02}, + {value: 0x03dd, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xaa, offset 0x50a + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xbf}, + // Block 0xab, offset 0x50e + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0818, lo: 0xa0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xac, offset 0x512 + {value: 0x0000, lo: 0x05}, + {value: 0x3008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xad, offset 0x518 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x91}, + {value: 0x0018, lo: 0x92, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xae, offset 0x521 + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbc}, + {value: 0x0340, lo: 0xbd, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0xaf, offset 0x52d + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xb0, offset 0x534 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb2}, + {value: 0x3b08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xbf}, + // Block 0xb1, offset 0x53d + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xb2, offset 0x545 + {value: 0x0000, lo: 0x06}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xbe}, + {value: 0x3008, lo: 0xbf, hi: 0xbf}, + // Block 0xb3, offset 0x54c + {value: 0x0000, lo: 0x0d}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x89}, + {value: 0x3308, lo: 0x8a, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xb4, offset 0x55a + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3808, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xb5, offset 0x567 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xb6, offset 0x574 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x3308, lo: 0x9f, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa9}, + {value: 0x3b08, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xb7, offset 0x57d + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xb8, offset 0x581 + {value: 0x0000, lo: 0x0d}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0xb9, offset 0x58f + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xba, offset 0x597 + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x85}, + {value: 0x0018, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xbb, offset 0x5a2 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xbc, offset 0x5ab + {value: 0x0000, lo: 0x05}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9b}, + {value: 0x3308, lo: 0x9c, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0xbd, offset 0x5b1 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xbe, offset 0x5b9 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xbf, offset 0x5c2 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb5}, + {value: 0x3808, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0xc0, offset 0x5cc + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0xbf}, + // Block 0xc1, offset 0x5cf + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbf}, + // Block 0xc2, offset 0x5db + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xbf}, + // Block 0xc3, offset 0x5de + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0xc4, offset 0x5e3 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xc5, offset 0x5e6 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xc6, offset 0x5f0 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xbf}, + // Block 0xc7, offset 0x5f9 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xa9}, + {value: 0x3308, lo: 0xaa, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xc8, offset 0x605 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xc9, offset 0x608 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xca, offset 0x60d + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0xbf}, + // Block 0xcb, offset 0x610 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xbf}, + // Block 0xcc, offset 0x613 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0xbf}, + // Block 0xcd, offset 0x616 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xce, offset 0x61d + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xcf, offset 0x624 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0xd0, offset 0x628 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0xd1, offset 0x633 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0xd2, offset 0x636 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3008, lo: 0x91, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xd3, offset 0x63c + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xd4, offset 0x641 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0xd5, offset 0x645 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xd6, offset 0x648 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xd7, offset 0x64b + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0xbf}, + // Block 0xd8, offset 0x64e + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0xd9, offset 0x653 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x03c0, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xbf}, + // Block 0xda, offset 0x65d + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xdb, offset 0x660 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xbf}, + // Block 0xdc, offset 0x664 + {value: 0x0000, lo: 0x0e}, + {value: 0x0018, lo: 0x80, hi: 0x9d}, + {value: 0xb5b9, lo: 0x9e, hi: 0x9e}, + {value: 0xb601, lo: 0x9f, hi: 0x9f}, + {value: 0xb649, lo: 0xa0, hi: 0xa0}, + {value: 0xb6b1, lo: 0xa1, hi: 0xa1}, + {value: 0xb719, lo: 0xa2, hi: 0xa2}, + {value: 0xb781, lo: 0xa3, hi: 0xa3}, + {value: 0xb7e9, lo: 0xa4, hi: 0xa4}, + {value: 0x3018, lo: 0xa5, hi: 0xa6}, + {value: 0x3318, lo: 0xa7, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xac}, + {value: 0x3018, lo: 0xad, hi: 0xb2}, + {value: 0x0340, lo: 0xb3, hi: 0xba}, + {value: 0x3318, lo: 0xbb, hi: 0xbf}, + // Block 0xdd, offset 0x673 + {value: 0x0000, lo: 0x0b}, + {value: 0x3318, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0x84}, + {value: 0x3318, lo: 0x85, hi: 0x8b}, + {value: 0x0018, lo: 0x8c, hi: 0xa9}, + {value: 0x3318, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xba}, + {value: 0xb851, lo: 0xbb, hi: 0xbb}, + {value: 0xb899, lo: 0xbc, hi: 0xbc}, + {value: 0xb8e1, lo: 0xbd, hi: 0xbd}, + {value: 0xb949, lo: 0xbe, hi: 0xbe}, + {value: 0xb9b1, lo: 0xbf, hi: 0xbf}, + // Block 0xde, offset 0x67f + {value: 0x0000, lo: 0x03}, + {value: 0xba19, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xbf}, + // Block 0xdf, offset 0x683 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x3318, lo: 0x82, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0xbf}, + // Block 0xe0, offset 0x688 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xe1, offset 0x68d + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0xe2, offset 0x691 + {value: 0x0000, lo: 0x04}, + {value: 0x3308, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0xe3, offset 0x696 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x3308, lo: 0xa1, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xe4, offset 0x69f + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xbf}, + // Block 0xe5, offset 0x6aa + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x86}, + {value: 0x0818, lo: 0x87, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0xe6, offset 0x6b0 + {value: 0x0000, lo: 0x07}, + {value: 0x0a08, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0818, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xe7, offset 0x6b8 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xe8, offset 0x6bc + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0xe9, offset 0x6c0 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0xea, offset 0x6c6 + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xeb, offset 0x6cc + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x8f}, + {value: 0xc1c1, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xec, offset 0x6d1 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xbf}, + // Block 0xed, offset 0x6d4 + {value: 0x0000, lo: 0x0d}, + {value: 0xc7e9, lo: 0x80, hi: 0x80}, + {value: 0xc839, lo: 0x81, hi: 0x81}, + {value: 0xc889, lo: 0x82, hi: 0x82}, + {value: 0xc8d9, lo: 0x83, hi: 0x83}, + {value: 0xc929, lo: 0x84, hi: 0x84}, + {value: 0xc979, lo: 0x85, hi: 0x85}, + {value: 0xc9c9, lo: 0x86, hi: 0x86}, + {value: 0xca19, lo: 0x87, hi: 0x87}, + {value: 0xca69, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0xcab9, lo: 0x90, hi: 0x90}, + {value: 0xcad9, lo: 0x91, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0xbf}, + // Block 0xee, offset 0x6e2 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x92}, + {value: 0x0040, lo: 0x93, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xef, offset 0x6e9 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0xf0, offset 0x6ec + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0xbf}, + // Block 0xf1, offset 0x6ef + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0xf2, offset 0x6f3 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0xf3, offset 0x6f9 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xbf}, + // Block 0xf4, offset 0x6fe + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb2}, + {value: 0x0018, lo: 0xb3, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xf5, offset 0x708 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xbf}, + // Block 0xf6, offset 0x70d + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0xbf}, + // Block 0xf7, offset 0x710 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0xbf}, + // Block 0xf8, offset 0x713 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0xf9, offset 0x716 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xfa, offset 0x719 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0xfb, offset 0x71d + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xbf}, + // Block 0xfc, offset 0x720 + {value: 0x0020, lo: 0x0f}, + {value: 0xdeb9, lo: 0x80, hi: 0x89}, + {value: 0x8dfd, lo: 0x8a, hi: 0x8a}, + {value: 0xdff9, lo: 0x8b, hi: 0x9c}, + {value: 0x8e1d, lo: 0x9d, hi: 0x9d}, + {value: 0xe239, lo: 0x9e, hi: 0xa2}, + {value: 0x8e3d, lo: 0xa3, hi: 0xa3}, + {value: 0xe2d9, lo: 0xa4, hi: 0xab}, + {value: 0x7ed5, lo: 0xac, hi: 0xac}, + {value: 0xe3d9, lo: 0xad, hi: 0xaf}, + {value: 0x8e5d, lo: 0xb0, hi: 0xb0}, + {value: 0xe439, lo: 0xb1, hi: 0xb6}, + {value: 0x8e7d, lo: 0xb7, hi: 0xb9}, + {value: 0xe4f9, lo: 0xba, hi: 0xba}, + {value: 0x8edd, lo: 0xbb, hi: 0xbb}, + {value: 0xe519, lo: 0xbc, hi: 0xbf}, + // Block 0xfd, offset 0x730 + {value: 0x0020, lo: 0x10}, + {value: 0x937d, lo: 0x80, hi: 0x80}, + {value: 0xf099, lo: 0x81, hi: 0x86}, + {value: 0x939d, lo: 0x87, hi: 0x8a}, + {value: 0xd9f9, lo: 0x8b, hi: 0x8b}, + {value: 0xf159, lo: 0x8c, hi: 0x96}, + {value: 0x941d, lo: 0x97, hi: 0x97}, + {value: 0xf2b9, lo: 0x98, hi: 0xa3}, + {value: 0x943d, lo: 0xa4, hi: 0xa6}, + {value: 0xf439, lo: 0xa7, hi: 0xaa}, + {value: 0x949d, lo: 0xab, hi: 0xab}, + {value: 0xf4b9, lo: 0xac, hi: 0xac}, + {value: 0x94bd, lo: 0xad, hi: 0xad}, + {value: 0xf4d9, lo: 0xae, hi: 0xaf}, + {value: 0x94dd, lo: 0xb0, hi: 0xb1}, + {value: 0xf519, lo: 0xb2, hi: 0xbe}, + {value: 0x2040, lo: 0xbf, hi: 0xbf}, + // Block 0xfe, offset 0x741 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0340, lo: 0x81, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x9f}, + {value: 0x0340, lo: 0xa0, hi: 0xbf}, + // Block 0xff, offset 0x746 + {value: 0x0000, lo: 0x01}, + {value: 0x0340, lo: 0x80, hi: 0xbf}, + // Block 0x100, offset 0x748 + {value: 0x0000, lo: 0x01}, + {value: 0x33c0, lo: 0x80, hi: 0xbf}, + // Block 0x101, offset 0x74a + {value: 0x0000, lo: 0x02}, + {value: 0x33c0, lo: 0x80, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, +} + +// Total table size 41662 bytes (40KiB); checksum: 355A58A4 diff --git a/vendor/golang.org/x/net/idna/trie.go b/vendor/golang.org/x/net/idna/trie.go new file mode 100644 index 0000000..c4ef847 --- /dev/null +++ b/vendor/golang.org/x/net/idna/trie.go @@ -0,0 +1,72 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package idna + +// appendMapping appends the mapping for the respective rune. isMapped must be +// true. A mapping is a categorization of a rune as defined in UTS #46. +func (c info) appendMapping(b []byte, s string) []byte { + index := int(c >> indexShift) + if c&xorBit == 0 { + s := mappings[index:] + return append(b, s[1:s[0]+1]...) + } + b = append(b, s...) + if c&inlineXOR == inlineXOR { + // TODO: support and handle two-byte inline masks + b[len(b)-1] ^= byte(index) + } else { + for p := len(b) - int(xorData[index]); p < len(b); p++ { + index++ + b[p] ^= xorData[index] + } + } + return b +} + +// Sparse block handling code. + +type valueRange struct { + value uint16 // header: value:stride + lo, hi byte // header: lo:n +} + +type sparseBlocks struct { + values []valueRange + offset []uint16 +} + +var idnaSparse = sparseBlocks{ + values: idnaSparseValues[:], + offset: idnaSparseOffset[:], +} + +// Don't use newIdnaTrie to avoid unconditional linking in of the table. +var trie = &idnaTrie{} + +// lookup determines the type of block n and looks up the value for b. +// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block +// is a list of ranges with an accompanying value. Given a matching range r, +// the value for b is by r.value + (b - r.lo) * stride. +func (t *sparseBlocks) lookup(n uint32, b byte) uint16 { + offset := t.offset[n] + header := t.values[offset] + lo := offset + 1 + hi := lo + uint16(header.lo) + for lo < hi { + m := lo + (hi-lo)/2 + r := t.values[m] + if r.lo <= b && b <= r.hi { + return r.value + uint16(b-r.lo)*header.value + } + if b < r.lo { + hi = m + } else { + lo = m + 1 + } + } + return 0 +} diff --git a/vendor/golang.org/x/net/idna/trieval.go b/vendor/golang.org/x/net/idna/trieval.go new file mode 100644 index 0000000..7a8cf88 --- /dev/null +++ b/vendor/golang.org/x/net/idna/trieval.go @@ -0,0 +1,119 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +package idna + +// This file contains definitions for interpreting the trie value of the idna +// trie generated by "go run gen*.go". It is shared by both the generator +// program and the resultant package. Sharing is achieved by the generator +// copying gen_trieval.go to trieval.go and changing what's above this comment. + +// info holds information from the IDNA mapping table for a single rune. It is +// the value returned by a trie lookup. In most cases, all information fits in +// a 16-bit value. For mappings, this value may contain an index into a slice +// with the mapped string. Such mappings can consist of the actual mapped value +// or an XOR pattern to be applied to the bytes of the UTF8 encoding of the +// input rune. This technique is used by the cases packages and reduces the +// table size significantly. +// +// The per-rune values have the following format: +// +// if mapped { +// if inlinedXOR { +// 15..13 inline XOR marker +// 12..11 unused +// 10..3 inline XOR mask +// } else { +// 15..3 index into xor or mapping table +// } +// } else { +// 15..14 unused +// 13 mayNeedNorm +// 12..11 attributes +// 10..8 joining type +// 7..3 category type +// } +// 2 use xor pattern +// 1..0 mapped category +// +// See the definitions below for a more detailed description of the various +// bits. +type info uint16 + +const ( + catSmallMask = 0x3 + catBigMask = 0xF8 + indexShift = 3 + xorBit = 0x4 // interpret the index as an xor pattern + inlineXOR = 0xE000 // These bits are set if the XOR pattern is inlined. + + joinShift = 8 + joinMask = 0x07 + + // Attributes + attributesMask = 0x1800 + viramaModifier = 0x1800 + modifier = 0x1000 + rtl = 0x0800 + + mayNeedNorm = 0x2000 +) + +// A category corresponds to a category defined in the IDNA mapping table. +type category uint16 + +const ( + unknown category = 0 // not currently defined in unicode. + mapped category = 1 + disallowedSTD3Mapped category = 2 + deviation category = 3 +) + +const ( + valid category = 0x08 + validNV8 category = 0x18 + validXV8 category = 0x28 + disallowed category = 0x40 + disallowedSTD3Valid category = 0x80 + ignored category = 0xC0 +) + +// join types and additional rune information +const ( + joiningL = (iota + 1) + joiningD + joiningT + joiningR + + //the following types are derived during processing + joinZWJ + joinZWNJ + joinVirama + numJoinTypes +) + +func (c info) isMapped() bool { + return c&0x3 != 0 +} + +func (c info) category() category { + small := c & catSmallMask + if small != 0 { + return category(small) + } + return category(c & catBigMask) +} + +func (c info) joinType() info { + if c.isMapped() { + return 0 + } + return (c >> joinShift) & joinMask +} + +func (c info) isModifier() bool { + return c&(modifier|catSmallMask) == modifier +} + +func (c info) isViramaModifier() bool { + return c&(attributesMask|catSmallMask) == viramaModifier +} diff --git a/vendor/golang.org/x/net/internal/socks/client.go b/vendor/golang.org/x/net/internal/socks/client.go new file mode 100644 index 0000000..3d6f516 --- /dev/null +++ b/vendor/golang.org/x/net/internal/socks/client.go @@ -0,0 +1,168 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package socks + +import ( + "context" + "errors" + "io" + "net" + "strconv" + "time" +) + +var ( + noDeadline = time.Time{} + aLongTimeAgo = time.Unix(1, 0) +) + +func (d *Dialer) connect(ctx context.Context, c net.Conn, address string) (_ net.Addr, ctxErr error) { + host, port, err := splitHostPort(address) + if err != nil { + return nil, err + } + if deadline, ok := ctx.Deadline(); ok && !deadline.IsZero() { + c.SetDeadline(deadline) + defer c.SetDeadline(noDeadline) + } + if ctx != context.Background() { + errCh := make(chan error, 1) + done := make(chan struct{}) + defer func() { + close(done) + if ctxErr == nil { + ctxErr = <-errCh + } + }() + go func() { + select { + case <-ctx.Done(): + c.SetDeadline(aLongTimeAgo) + errCh <- ctx.Err() + case <-done: + errCh <- nil + } + }() + } + + b := make([]byte, 0, 6+len(host)) // the size here is just an estimate + b = append(b, Version5) + if len(d.AuthMethods) == 0 || d.Authenticate == nil { + b = append(b, 1, byte(AuthMethodNotRequired)) + } else { + ams := d.AuthMethods + if len(ams) > 255 { + return nil, errors.New("too many authentication methods") + } + b = append(b, byte(len(ams))) + for _, am := range ams { + b = append(b, byte(am)) + } + } + if _, ctxErr = c.Write(b); ctxErr != nil { + return + } + + if _, ctxErr = io.ReadFull(c, b[:2]); ctxErr != nil { + return + } + if b[0] != Version5 { + return nil, errors.New("unexpected protocol version " + strconv.Itoa(int(b[0]))) + } + am := AuthMethod(b[1]) + if am == AuthMethodNoAcceptableMethods { + return nil, errors.New("no acceptable authentication methods") + } + if d.Authenticate != nil { + if ctxErr = d.Authenticate(ctx, c, am); ctxErr != nil { + return + } + } + + b = b[:0] + b = append(b, Version5, byte(d.cmd), 0) + if ip := net.ParseIP(host); ip != nil { + if ip4 := ip.To4(); ip4 != nil { + b = append(b, AddrTypeIPv4) + b = append(b, ip4...) + } else if ip6 := ip.To16(); ip6 != nil { + b = append(b, AddrTypeIPv6) + b = append(b, ip6...) + } else { + return nil, errors.New("unknown address type") + } + } else { + if len(host) > 255 { + return nil, errors.New("FQDN too long") + } + b = append(b, AddrTypeFQDN) + b = append(b, byte(len(host))) + b = append(b, host...) + } + b = append(b, byte(port>>8), byte(port)) + if _, ctxErr = c.Write(b); ctxErr != nil { + return + } + + if _, ctxErr = io.ReadFull(c, b[:4]); ctxErr != nil { + return + } + if b[0] != Version5 { + return nil, errors.New("unexpected protocol version " + strconv.Itoa(int(b[0]))) + } + if cmdErr := Reply(b[1]); cmdErr != StatusSucceeded { + return nil, errors.New("unknown error " + cmdErr.String()) + } + if b[2] != 0 { + return nil, errors.New("non-zero reserved field") + } + l := 2 + var a Addr + switch b[3] { + case AddrTypeIPv4: + l += net.IPv4len + a.IP = make(net.IP, net.IPv4len) + case AddrTypeIPv6: + l += net.IPv6len + a.IP = make(net.IP, net.IPv6len) + case AddrTypeFQDN: + if _, err := io.ReadFull(c, b[:1]); err != nil { + return nil, err + } + l += int(b[0]) + default: + return nil, errors.New("unknown address type " + strconv.Itoa(int(b[3]))) + } + if cap(b) < l { + b = make([]byte, l) + } else { + b = b[:l] + } + if _, ctxErr = io.ReadFull(c, b); ctxErr != nil { + return + } + if a.IP != nil { + copy(a.IP, b) + } else { + a.Name = string(b[:len(b)-2]) + } + a.Port = int(b[len(b)-2])<<8 | int(b[len(b)-1]) + return &a, nil +} + +func splitHostPort(address string) (string, int, error) { + host, port, err := net.SplitHostPort(address) + if err != nil { + return "", 0, err + } + portnum, err := strconv.Atoi(port) + if err != nil { + return "", 0, err + } + if 1 > portnum || portnum > 0xffff { + return "", 0, errors.New("port number out of range " + port) + } + return host, portnum, nil +} diff --git a/vendor/golang.org/x/net/internal/socks/socks.go b/vendor/golang.org/x/net/internal/socks/socks.go new file mode 100644 index 0000000..97db234 --- /dev/null +++ b/vendor/golang.org/x/net/internal/socks/socks.go @@ -0,0 +1,317 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package socks provides a SOCKS version 5 client implementation. +// +// SOCKS protocol version 5 is defined in RFC 1928. +// Username/Password authentication for SOCKS version 5 is defined in +// RFC 1929. +package socks + +import ( + "context" + "errors" + "io" + "net" + "strconv" +) + +// A Command represents a SOCKS command. +type Command int + +func (cmd Command) String() string { + switch cmd { + case CmdConnect: + return "socks connect" + case cmdBind: + return "socks bind" + default: + return "socks " + strconv.Itoa(int(cmd)) + } +} + +// An AuthMethod represents a SOCKS authentication method. +type AuthMethod int + +// A Reply represents a SOCKS command reply code. +type Reply int + +func (code Reply) String() string { + switch code { + case StatusSucceeded: + return "succeeded" + case 0x01: + return "general SOCKS server failure" + case 0x02: + return "connection not allowed by ruleset" + case 0x03: + return "network unreachable" + case 0x04: + return "host unreachable" + case 0x05: + return "connection refused" + case 0x06: + return "TTL expired" + case 0x07: + return "command not supported" + case 0x08: + return "address type not supported" + default: + return "unknown code: " + strconv.Itoa(int(code)) + } +} + +// Wire protocol constants. +const ( + Version5 = 0x05 + + AddrTypeIPv4 = 0x01 + AddrTypeFQDN = 0x03 + AddrTypeIPv6 = 0x04 + + CmdConnect Command = 0x01 // establishes an active-open forward proxy connection + cmdBind Command = 0x02 // establishes a passive-open forward proxy connection + + AuthMethodNotRequired AuthMethod = 0x00 // no authentication required + AuthMethodUsernamePassword AuthMethod = 0x02 // use username/password + AuthMethodNoAcceptableMethods AuthMethod = 0xff // no acceptable authentication methods + + StatusSucceeded Reply = 0x00 +) + +// An Addr represents a SOCKS-specific address. +// Either Name or IP is used exclusively. +type Addr struct { + Name string // fully-qualified domain name + IP net.IP + Port int +} + +func (a *Addr) Network() string { return "socks" } + +func (a *Addr) String() string { + if a == nil { + return "" + } + port := strconv.Itoa(a.Port) + if a.IP == nil { + return net.JoinHostPort(a.Name, port) + } + return net.JoinHostPort(a.IP.String(), port) +} + +// A Conn represents a forward proxy connection. +type Conn struct { + net.Conn + + boundAddr net.Addr +} + +// BoundAddr returns the address assigned by the proxy server for +// connecting to the command target address from the proxy server. +func (c *Conn) BoundAddr() net.Addr { + if c == nil { + return nil + } + return c.boundAddr +} + +// A Dialer holds SOCKS-specific options. +type Dialer struct { + cmd Command // either CmdConnect or cmdBind + proxyNetwork string // network between a proxy server and a client + proxyAddress string // proxy server address + + // ProxyDial specifies the optional dial function for + // establishing the transport connection. + ProxyDial func(context.Context, string, string) (net.Conn, error) + + // AuthMethods specifies the list of request authentication + // methods. + // If empty, SOCKS client requests only AuthMethodNotRequired. + AuthMethods []AuthMethod + + // Authenticate specifies the optional authentication + // function. It must be non-nil when AuthMethods is not empty. + // It must return an error when the authentication is failed. + Authenticate func(context.Context, io.ReadWriter, AuthMethod) error +} + +// DialContext connects to the provided address on the provided +// network. +// +// The returned error value may be a net.OpError. When the Op field of +// net.OpError contains "socks", the Source field contains a proxy +// server address and the Addr field contains a command target +// address. +// +// See func Dial of the net package of standard library for a +// description of the network and address parameters. +func (d *Dialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) { + if err := d.validateTarget(network, address); err != nil { + proxy, dst, _ := d.pathAddrs(address) + return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err} + } + if ctx == nil { + proxy, dst, _ := d.pathAddrs(address) + return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: errors.New("nil context")} + } + var err error + var c net.Conn + if d.ProxyDial != nil { + c, err = d.ProxyDial(ctx, d.proxyNetwork, d.proxyAddress) + } else { + var dd net.Dialer + c, err = dd.DialContext(ctx, d.proxyNetwork, d.proxyAddress) + } + if err != nil { + proxy, dst, _ := d.pathAddrs(address) + return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err} + } + a, err := d.connect(ctx, c, address) + if err != nil { + c.Close() + proxy, dst, _ := d.pathAddrs(address) + return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err} + } + return &Conn{Conn: c, boundAddr: a}, nil +} + +// DialWithConn initiates a connection from SOCKS server to the target +// network and address using the connection c that is already +// connected to the SOCKS server. +// +// It returns the connection's local address assigned by the SOCKS +// server. +func (d *Dialer) DialWithConn(ctx context.Context, c net.Conn, network, address string) (net.Addr, error) { + if err := d.validateTarget(network, address); err != nil { + proxy, dst, _ := d.pathAddrs(address) + return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err} + } + if ctx == nil { + proxy, dst, _ := d.pathAddrs(address) + return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: errors.New("nil context")} + } + a, err := d.connect(ctx, c, address) + if err != nil { + proxy, dst, _ := d.pathAddrs(address) + return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err} + } + return a, nil +} + +// Dial connects to the provided address on the provided network. +// +// Unlike DialContext, it returns a raw transport connection instead +// of a forward proxy connection. +// +// Deprecated: Use DialContext or DialWithConn instead. +func (d *Dialer) Dial(network, address string) (net.Conn, error) { + if err := d.validateTarget(network, address); err != nil { + proxy, dst, _ := d.pathAddrs(address) + return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err} + } + var err error + var c net.Conn + if d.ProxyDial != nil { + c, err = d.ProxyDial(context.Background(), d.proxyNetwork, d.proxyAddress) + } else { + c, err = net.Dial(d.proxyNetwork, d.proxyAddress) + } + if err != nil { + proxy, dst, _ := d.pathAddrs(address) + return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err} + } + if _, err := d.DialWithConn(context.Background(), c, network, address); err != nil { + c.Close() + return nil, err + } + return c, nil +} + +func (d *Dialer) validateTarget(network, address string) error { + switch network { + case "tcp", "tcp6", "tcp4": + default: + return errors.New("network not implemented") + } + switch d.cmd { + case CmdConnect, cmdBind: + default: + return errors.New("command not implemented") + } + return nil +} + +func (d *Dialer) pathAddrs(address string) (proxy, dst net.Addr, err error) { + for i, s := range []string{d.proxyAddress, address} { + host, port, err := splitHostPort(s) + if err != nil { + return nil, nil, err + } + a := &Addr{Port: port} + a.IP = net.ParseIP(host) + if a.IP == nil { + a.Name = host + } + if i == 0 { + proxy = a + } else { + dst = a + } + } + return +} + +// NewDialer returns a new Dialer that dials through the provided +// proxy server's network and address. +func NewDialer(network, address string) *Dialer { + return &Dialer{proxyNetwork: network, proxyAddress: address, cmd: CmdConnect} +} + +const ( + authUsernamePasswordVersion = 0x01 + authStatusSucceeded = 0x00 +) + +// UsernamePassword are the credentials for the username/password +// authentication method. +type UsernamePassword struct { + Username string + Password string +} + +// Authenticate authenticates a pair of username and password with the +// proxy server. +func (up *UsernamePassword) Authenticate(ctx context.Context, rw io.ReadWriter, auth AuthMethod) error { + switch auth { + case AuthMethodNotRequired: + return nil + case AuthMethodUsernamePassword: + if len(up.Username) == 0 || len(up.Username) > 255 || len(up.Password) == 0 || len(up.Password) > 255 { + return errors.New("invalid username/password") + } + b := []byte{authUsernamePasswordVersion} + b = append(b, byte(len(up.Username))) + b = append(b, up.Username...) + b = append(b, byte(len(up.Password))) + b = append(b, up.Password...) + // TODO(mikio): handle IO deadlines and cancelation if + // necessary + if _, err := rw.Write(b); err != nil { + return err + } + if _, err := io.ReadFull(rw, b[:2]); err != nil { + return err + } + if b[0] != authUsernamePasswordVersion { + return errors.New("invalid username/password version") + } + if b[1] != authStatusSucceeded { + return errors.New("username/password authentication failed") + } + return nil + } + return errors.New("unsupported authentication method " + strconv.Itoa(int(auth))) +} diff --git a/vendor/golang.org/x/net/internal/timeseries/timeseries.go b/vendor/golang.org/x/net/internal/timeseries/timeseries.go new file mode 100644 index 0000000..dc5225b --- /dev/null +++ b/vendor/golang.org/x/net/internal/timeseries/timeseries.go @@ -0,0 +1,525 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package timeseries implements a time series structure for stats collection. +package timeseries // import "golang.org/x/net/internal/timeseries" + +import ( + "fmt" + "log" + "time" +) + +const ( + timeSeriesNumBuckets = 64 + minuteHourSeriesNumBuckets = 60 +) + +var timeSeriesResolutions = []time.Duration{ + 1 * time.Second, + 10 * time.Second, + 1 * time.Minute, + 10 * time.Minute, + 1 * time.Hour, + 6 * time.Hour, + 24 * time.Hour, // 1 day + 7 * 24 * time.Hour, // 1 week + 4 * 7 * 24 * time.Hour, // 4 weeks + 16 * 7 * 24 * time.Hour, // 16 weeks +} + +var minuteHourSeriesResolutions = []time.Duration{ + 1 * time.Second, + 1 * time.Minute, +} + +// An Observable is a kind of data that can be aggregated in a time series. +type Observable interface { + Multiply(ratio float64) // Multiplies the data in self by a given ratio + Add(other Observable) // Adds the data from a different observation to self + Clear() // Clears the observation so it can be reused. + CopyFrom(other Observable) // Copies the contents of a given observation to self +} + +// Float attaches the methods of Observable to a float64. +type Float float64 + +// NewFloat returns a Float. +func NewFloat() Observable { + f := Float(0) + return &f +} + +// String returns the float as a string. +func (f *Float) String() string { return fmt.Sprintf("%g", f.Value()) } + +// Value returns the float's value. +func (f *Float) Value() float64 { return float64(*f) } + +func (f *Float) Multiply(ratio float64) { *f *= Float(ratio) } + +func (f *Float) Add(other Observable) { + o := other.(*Float) + *f += *o +} + +func (f *Float) Clear() { *f = 0 } + +func (f *Float) CopyFrom(other Observable) { + o := other.(*Float) + *f = *o +} + +// A Clock tells the current time. +type Clock interface { + Time() time.Time +} + +type defaultClock int + +var defaultClockInstance defaultClock + +func (defaultClock) Time() time.Time { return time.Now() } + +// Information kept per level. Each level consists of a circular list of +// observations. The start of the level may be derived from end and the +// len(buckets) * sizeInMillis. +type tsLevel struct { + oldest int // index to oldest bucketed Observable + newest int // index to newest bucketed Observable + end time.Time // end timestamp for this level + size time.Duration // duration of the bucketed Observable + buckets []Observable // collections of observations + provider func() Observable // used for creating new Observable +} + +func (l *tsLevel) Clear() { + l.oldest = 0 + l.newest = len(l.buckets) - 1 + l.end = time.Time{} + for i := range l.buckets { + if l.buckets[i] != nil { + l.buckets[i].Clear() + l.buckets[i] = nil + } + } +} + +func (l *tsLevel) InitLevel(size time.Duration, numBuckets int, f func() Observable) { + l.size = size + l.provider = f + l.buckets = make([]Observable, numBuckets) +} + +// Keeps a sequence of levels. Each level is responsible for storing data at +// a given resolution. For example, the first level stores data at a one +// minute resolution while the second level stores data at a one hour +// resolution. + +// Each level is represented by a sequence of buckets. Each bucket spans an +// interval equal to the resolution of the level. New observations are added +// to the last bucket. +type timeSeries struct { + provider func() Observable // make more Observable + numBuckets int // number of buckets in each level + levels []*tsLevel // levels of bucketed Observable + lastAdd time.Time // time of last Observable tracked + total Observable // convenient aggregation of all Observable + clock Clock // Clock for getting current time + pending Observable // observations not yet bucketed + pendingTime time.Time // what time are we keeping in pending + dirty bool // if there are pending observations +} + +// init initializes a level according to the supplied criteria. +func (ts *timeSeries) init(resolutions []time.Duration, f func() Observable, numBuckets int, clock Clock) { + ts.provider = f + ts.numBuckets = numBuckets + ts.clock = clock + ts.levels = make([]*tsLevel, len(resolutions)) + + for i := range resolutions { + if i > 0 && resolutions[i-1] >= resolutions[i] { + log.Print("timeseries: resolutions must be monotonically increasing") + break + } + newLevel := new(tsLevel) + newLevel.InitLevel(resolutions[i], ts.numBuckets, ts.provider) + ts.levels[i] = newLevel + } + + ts.Clear() +} + +// Clear removes all observations from the time series. +func (ts *timeSeries) Clear() { + ts.lastAdd = time.Time{} + ts.total = ts.resetObservation(ts.total) + ts.pending = ts.resetObservation(ts.pending) + ts.pendingTime = time.Time{} + ts.dirty = false + + for i := range ts.levels { + ts.levels[i].Clear() + } +} + +// Add records an observation at the current time. +func (ts *timeSeries) Add(observation Observable) { + ts.AddWithTime(observation, ts.clock.Time()) +} + +// AddWithTime records an observation at the specified time. +func (ts *timeSeries) AddWithTime(observation Observable, t time.Time) { + + smallBucketDuration := ts.levels[0].size + + if t.After(ts.lastAdd) { + ts.lastAdd = t + } + + if t.After(ts.pendingTime) { + ts.advance(t) + ts.mergePendingUpdates() + ts.pendingTime = ts.levels[0].end + ts.pending.CopyFrom(observation) + ts.dirty = true + } else if t.After(ts.pendingTime.Add(-1 * smallBucketDuration)) { + // The observation is close enough to go into the pending bucket. + // This compensates for clock skewing and small scheduling delays + // by letting the update stay in the fast path. + ts.pending.Add(observation) + ts.dirty = true + } else { + ts.mergeValue(observation, t) + } +} + +// mergeValue inserts the observation at the specified time in the past into all levels. +func (ts *timeSeries) mergeValue(observation Observable, t time.Time) { + for _, level := range ts.levels { + index := (ts.numBuckets - 1) - int(level.end.Sub(t)/level.size) + if 0 <= index && index < ts.numBuckets { + bucketNumber := (level.oldest + index) % ts.numBuckets + if level.buckets[bucketNumber] == nil { + level.buckets[bucketNumber] = level.provider() + } + level.buckets[bucketNumber].Add(observation) + } + } + ts.total.Add(observation) +} + +// mergePendingUpdates applies the pending updates into all levels. +func (ts *timeSeries) mergePendingUpdates() { + if ts.dirty { + ts.mergeValue(ts.pending, ts.pendingTime) + ts.pending = ts.resetObservation(ts.pending) + ts.dirty = false + } +} + +// advance cycles the buckets at each level until the latest bucket in +// each level can hold the time specified. +func (ts *timeSeries) advance(t time.Time) { + if !t.After(ts.levels[0].end) { + return + } + for i := 0; i < len(ts.levels); i++ { + level := ts.levels[i] + if !level.end.Before(t) { + break + } + + // If the time is sufficiently far, just clear the level and advance + // directly. + if !t.Before(level.end.Add(level.size * time.Duration(ts.numBuckets))) { + for _, b := range level.buckets { + ts.resetObservation(b) + } + level.end = time.Unix(0, (t.UnixNano()/level.size.Nanoseconds())*level.size.Nanoseconds()) + } + + for t.After(level.end) { + level.end = level.end.Add(level.size) + level.newest = level.oldest + level.oldest = (level.oldest + 1) % ts.numBuckets + ts.resetObservation(level.buckets[level.newest]) + } + + t = level.end + } +} + +// Latest returns the sum of the num latest buckets from the level. +func (ts *timeSeries) Latest(level, num int) Observable { + now := ts.clock.Time() + if ts.levels[0].end.Before(now) { + ts.advance(now) + } + + ts.mergePendingUpdates() + + result := ts.provider() + l := ts.levels[level] + index := l.newest + + for i := 0; i < num; i++ { + if l.buckets[index] != nil { + result.Add(l.buckets[index]) + } + if index == 0 { + index = ts.numBuckets + } + index-- + } + + return result +} + +// LatestBuckets returns a copy of the num latest buckets from level. +func (ts *timeSeries) LatestBuckets(level, num int) []Observable { + if level < 0 || level > len(ts.levels) { + log.Print("timeseries: bad level argument: ", level) + return nil + } + if num < 0 || num >= ts.numBuckets { + log.Print("timeseries: bad num argument: ", num) + return nil + } + + results := make([]Observable, num) + now := ts.clock.Time() + if ts.levels[0].end.Before(now) { + ts.advance(now) + } + + ts.mergePendingUpdates() + + l := ts.levels[level] + index := l.newest + + for i := 0; i < num; i++ { + result := ts.provider() + results[i] = result + if l.buckets[index] != nil { + result.CopyFrom(l.buckets[index]) + } + + if index == 0 { + index = ts.numBuckets + } + index -= 1 + } + return results +} + +// ScaleBy updates observations by scaling by factor. +func (ts *timeSeries) ScaleBy(factor float64) { + for _, l := range ts.levels { + for i := 0; i < ts.numBuckets; i++ { + l.buckets[i].Multiply(factor) + } + } + + ts.total.Multiply(factor) + ts.pending.Multiply(factor) +} + +// Range returns the sum of observations added over the specified time range. +// If start or finish times don't fall on bucket boundaries of the same +// level, then return values are approximate answers. +func (ts *timeSeries) Range(start, finish time.Time) Observable { + return ts.ComputeRange(start, finish, 1)[0] +} + +// Recent returns the sum of observations from the last delta. +func (ts *timeSeries) Recent(delta time.Duration) Observable { + now := ts.clock.Time() + return ts.Range(now.Add(-delta), now) +} + +// Total returns the total of all observations. +func (ts *timeSeries) Total() Observable { + ts.mergePendingUpdates() + return ts.total +} + +// ComputeRange computes a specified number of values into a slice using +// the observations recorded over the specified time period. The return +// values are approximate if the start or finish times don't fall on the +// bucket boundaries at the same level or if the number of buckets spanning +// the range is not an integral multiple of num. +func (ts *timeSeries) ComputeRange(start, finish time.Time, num int) []Observable { + if start.After(finish) { + log.Printf("timeseries: start > finish, %v>%v", start, finish) + return nil + } + + if num < 0 { + log.Printf("timeseries: num < 0, %v", num) + return nil + } + + results := make([]Observable, num) + + for _, l := range ts.levels { + if !start.Before(l.end.Add(-l.size * time.Duration(ts.numBuckets))) { + ts.extract(l, start, finish, num, results) + return results + } + } + + // Failed to find a level that covers the desired range. So just + // extract from the last level, even if it doesn't cover the entire + // desired range. + ts.extract(ts.levels[len(ts.levels)-1], start, finish, num, results) + + return results +} + +// RecentList returns the specified number of values in slice over the most +// recent time period of the specified range. +func (ts *timeSeries) RecentList(delta time.Duration, num int) []Observable { + if delta < 0 { + return nil + } + now := ts.clock.Time() + return ts.ComputeRange(now.Add(-delta), now, num) +} + +// extract returns a slice of specified number of observations from a given +// level over a given range. +func (ts *timeSeries) extract(l *tsLevel, start, finish time.Time, num int, results []Observable) { + ts.mergePendingUpdates() + + srcInterval := l.size + dstInterval := finish.Sub(start) / time.Duration(num) + dstStart := start + srcStart := l.end.Add(-srcInterval * time.Duration(ts.numBuckets)) + + srcIndex := 0 + + // Where should scanning start? + if dstStart.After(srcStart) { + advance := int(dstStart.Sub(srcStart) / srcInterval) + srcIndex += advance + srcStart = srcStart.Add(time.Duration(advance) * srcInterval) + } + + // The i'th value is computed as show below. + // interval = (finish/start)/num + // i'th value = sum of observation in range + // [ start + i * interval, + // start + (i + 1) * interval ) + for i := 0; i < num; i++ { + results[i] = ts.resetObservation(results[i]) + dstEnd := dstStart.Add(dstInterval) + for srcIndex < ts.numBuckets && srcStart.Before(dstEnd) { + srcEnd := srcStart.Add(srcInterval) + if srcEnd.After(ts.lastAdd) { + srcEnd = ts.lastAdd + } + + if !srcEnd.Before(dstStart) { + srcValue := l.buckets[(srcIndex+l.oldest)%ts.numBuckets] + if !srcStart.Before(dstStart) && !srcEnd.After(dstEnd) { + // dst completely contains src. + if srcValue != nil { + results[i].Add(srcValue) + } + } else { + // dst partially overlaps src. + overlapStart := maxTime(srcStart, dstStart) + overlapEnd := minTime(srcEnd, dstEnd) + base := srcEnd.Sub(srcStart) + fraction := overlapEnd.Sub(overlapStart).Seconds() / base.Seconds() + + used := ts.provider() + if srcValue != nil { + used.CopyFrom(srcValue) + } + used.Multiply(fraction) + results[i].Add(used) + } + + if srcEnd.After(dstEnd) { + break + } + } + srcIndex++ + srcStart = srcStart.Add(srcInterval) + } + dstStart = dstStart.Add(dstInterval) + } +} + +// resetObservation clears the content so the struct may be reused. +func (ts *timeSeries) resetObservation(observation Observable) Observable { + if observation == nil { + observation = ts.provider() + } else { + observation.Clear() + } + return observation +} + +// TimeSeries tracks data at granularities from 1 second to 16 weeks. +type TimeSeries struct { + timeSeries +} + +// NewTimeSeries creates a new TimeSeries using the function provided for creating new Observable. +func NewTimeSeries(f func() Observable) *TimeSeries { + return NewTimeSeriesWithClock(f, defaultClockInstance) +} + +// NewTimeSeriesWithClock creates a new TimeSeries using the function provided for creating new Observable and the clock for +// assigning timestamps. +func NewTimeSeriesWithClock(f func() Observable, clock Clock) *TimeSeries { + ts := new(TimeSeries) + ts.timeSeries.init(timeSeriesResolutions, f, timeSeriesNumBuckets, clock) + return ts +} + +// MinuteHourSeries tracks data at granularities of 1 minute and 1 hour. +type MinuteHourSeries struct { + timeSeries +} + +// NewMinuteHourSeries creates a new MinuteHourSeries using the function provided for creating new Observable. +func NewMinuteHourSeries(f func() Observable) *MinuteHourSeries { + return NewMinuteHourSeriesWithClock(f, defaultClockInstance) +} + +// NewMinuteHourSeriesWithClock creates a new MinuteHourSeries using the function provided for creating new Observable and the clock for +// assigning timestamps. +func NewMinuteHourSeriesWithClock(f func() Observable, clock Clock) *MinuteHourSeries { + ts := new(MinuteHourSeries) + ts.timeSeries.init(minuteHourSeriesResolutions, f, + minuteHourSeriesNumBuckets, clock) + return ts +} + +func (ts *MinuteHourSeries) Minute() Observable { + return ts.timeSeries.Latest(0, 60) +} + +func (ts *MinuteHourSeries) Hour() Observable { + return ts.timeSeries.Latest(1, 60) +} + +func minTime(a, b time.Time) time.Time { + if a.Before(b) { + return a + } + return b +} + +func maxTime(a, b time.Time) time.Time { + if a.After(b) { + return a + } + return b +} diff --git a/vendor/golang.org/x/net/proxy/dial.go b/vendor/golang.org/x/net/proxy/dial.go new file mode 100644 index 0000000..811c2e4 --- /dev/null +++ b/vendor/golang.org/x/net/proxy/dial.go @@ -0,0 +1,54 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package proxy + +import ( + "context" + "net" +) + +// A ContextDialer dials using a context. +type ContextDialer interface { + DialContext(ctx context.Context, network, address string) (net.Conn, error) +} + +// Dial works like DialContext on net.Dialer but using a dialer returned by FromEnvironment. +// +// The passed ctx is only used for returning the Conn, not the lifetime of the Conn. +// +// Custom dialers (registered via RegisterDialerType) that do not implement ContextDialer +// can leak a goroutine for as long as it takes the underlying Dialer implementation to timeout. +// +// A Conn returned from a successful Dial after the context has been cancelled will be immediately closed. +func Dial(ctx context.Context, network, address string) (net.Conn, error) { + d := FromEnvironment() + if xd, ok := d.(ContextDialer); ok { + return xd.DialContext(ctx, network, address) + } + return dialContext(ctx, d, network, address) +} + +// WARNING: this can leak a goroutine for as long as the underlying Dialer implementation takes to timeout +// A Conn returned from a successful Dial after the context has been cancelled will be immediately closed. +func dialContext(ctx context.Context, d Dialer, network, address string) (net.Conn, error) { + var ( + conn net.Conn + done = make(chan struct{}, 1) + err error + ) + go func() { + conn, err = d.Dial(network, address) + close(done) + if conn != nil && ctx.Err() != nil { + conn.Close() + } + }() + select { + case <-ctx.Done(): + err = ctx.Err() + case <-done: + } + return conn, err +} diff --git a/vendor/golang.org/x/net/proxy/direct.go b/vendor/golang.org/x/net/proxy/direct.go new file mode 100644 index 0000000..3d66bde --- /dev/null +++ b/vendor/golang.org/x/net/proxy/direct.go @@ -0,0 +1,31 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package proxy + +import ( + "context" + "net" +) + +type direct struct{} + +// Direct implements Dialer by making network connections directly using net.Dial or net.DialContext. +var Direct = direct{} + +var ( + _ Dialer = Direct + _ ContextDialer = Direct +) + +// Dial directly invokes net.Dial with the supplied parameters. +func (direct) Dial(network, addr string) (net.Conn, error) { + return net.Dial(network, addr) +} + +// DialContext instantiates a net.Dialer and invokes its DialContext receiver with the supplied parameters. +func (direct) DialContext(ctx context.Context, network, addr string) (net.Conn, error) { + var d net.Dialer + return d.DialContext(ctx, network, addr) +} diff --git a/vendor/golang.org/x/net/proxy/per_host.go b/vendor/golang.org/x/net/proxy/per_host.go new file mode 100644 index 0000000..573fe79 --- /dev/null +++ b/vendor/golang.org/x/net/proxy/per_host.go @@ -0,0 +1,155 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package proxy + +import ( + "context" + "net" + "strings" +) + +// A PerHost directs connections to a default Dialer unless the host name +// requested matches one of a number of exceptions. +type PerHost struct { + def, bypass Dialer + + bypassNetworks []*net.IPNet + bypassIPs []net.IP + bypassZones []string + bypassHosts []string +} + +// NewPerHost returns a PerHost Dialer that directs connections to either +// defaultDialer or bypass, depending on whether the connection matches one of +// the configured rules. +func NewPerHost(defaultDialer, bypass Dialer) *PerHost { + return &PerHost{ + def: defaultDialer, + bypass: bypass, + } +} + +// Dial connects to the address addr on the given network through either +// defaultDialer or bypass. +func (p *PerHost) Dial(network, addr string) (c net.Conn, err error) { + host, _, err := net.SplitHostPort(addr) + if err != nil { + return nil, err + } + + return p.dialerForRequest(host).Dial(network, addr) +} + +// DialContext connects to the address addr on the given network through either +// defaultDialer or bypass. +func (p *PerHost) DialContext(ctx context.Context, network, addr string) (c net.Conn, err error) { + host, _, err := net.SplitHostPort(addr) + if err != nil { + return nil, err + } + d := p.dialerForRequest(host) + if x, ok := d.(ContextDialer); ok { + return x.DialContext(ctx, network, addr) + } + return dialContext(ctx, d, network, addr) +} + +func (p *PerHost) dialerForRequest(host string) Dialer { + if ip := net.ParseIP(host); ip != nil { + for _, net := range p.bypassNetworks { + if net.Contains(ip) { + return p.bypass + } + } + for _, bypassIP := range p.bypassIPs { + if bypassIP.Equal(ip) { + return p.bypass + } + } + return p.def + } + + for _, zone := range p.bypassZones { + if strings.HasSuffix(host, zone) { + return p.bypass + } + if host == zone[1:] { + // For a zone ".example.com", we match "example.com" + // too. + return p.bypass + } + } + for _, bypassHost := range p.bypassHosts { + if bypassHost == host { + return p.bypass + } + } + return p.def +} + +// AddFromString parses a string that contains comma-separated values +// specifying hosts that should use the bypass proxy. Each value is either an +// IP address, a CIDR range, a zone (*.example.com) or a host name +// (localhost). A best effort is made to parse the string and errors are +// ignored. +func (p *PerHost) AddFromString(s string) { + hosts := strings.Split(s, ",") + for _, host := range hosts { + host = strings.TrimSpace(host) + if len(host) == 0 { + continue + } + if strings.Contains(host, "/") { + // We assume that it's a CIDR address like 127.0.0.0/8 + if _, net, err := net.ParseCIDR(host); err == nil { + p.AddNetwork(net) + } + continue + } + if ip := net.ParseIP(host); ip != nil { + p.AddIP(ip) + continue + } + if strings.HasPrefix(host, "*.") { + p.AddZone(host[1:]) + continue + } + p.AddHost(host) + } +} + +// AddIP specifies an IP address that will use the bypass proxy. Note that +// this will only take effect if a literal IP address is dialed. A connection +// to a named host will never match an IP. +func (p *PerHost) AddIP(ip net.IP) { + p.bypassIPs = append(p.bypassIPs, ip) +} + +// AddNetwork specifies an IP range that will use the bypass proxy. Note that +// this will only take effect if a literal IP address is dialed. A connection +// to a named host will never match. +func (p *PerHost) AddNetwork(net *net.IPNet) { + p.bypassNetworks = append(p.bypassNetworks, net) +} + +// AddZone specifies a DNS suffix that will use the bypass proxy. A zone of +// "example.com" matches "example.com" and all of its subdomains. +func (p *PerHost) AddZone(zone string) { + if strings.HasSuffix(zone, ".") { + zone = zone[:len(zone)-1] + } + if !strings.HasPrefix(zone, ".") { + zone = "." + zone + } + p.bypassZones = append(p.bypassZones, zone) +} + +// AddHost specifies a host name that will use the bypass proxy. +func (p *PerHost) AddHost(host string) { + if strings.HasSuffix(host, ".") { + host = host[:len(host)-1] + } + p.bypassHosts = append(p.bypassHosts, host) +} diff --git a/vendor/golang.org/x/net/proxy/proxy.go b/vendor/golang.org/x/net/proxy/proxy.go new file mode 100644 index 0000000..9ff4b9a --- /dev/null +++ b/vendor/golang.org/x/net/proxy/proxy.go @@ -0,0 +1,149 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package proxy provides support for a variety of protocols to proxy network +// data. +package proxy // import "golang.org/x/net/proxy" + +import ( + "errors" + "net" + "net/url" + "os" + "sync" +) + +// A Dialer is a means to establish a connection. +// Custom dialers should also implement ContextDialer. +type Dialer interface { + // Dial connects to the given address via the proxy. + Dial(network, addr string) (c net.Conn, err error) +} + +// Auth contains authentication parameters that specific Dialers may require. +type Auth struct { + User, Password string +} + +// FromEnvironment returns the dialer specified by the proxy-related +// variables in the environment and makes underlying connections +// directly. +func FromEnvironment() Dialer { + return FromEnvironmentUsing(Direct) +} + +// FromEnvironmentUsing returns the dialer specify by the proxy-related +// variables in the environment and makes underlying connections +// using the provided forwarding Dialer (for instance, a *net.Dialer +// with desired configuration). +func FromEnvironmentUsing(forward Dialer) Dialer { + allProxy := allProxyEnv.Get() + if len(allProxy) == 0 { + return forward + } + + proxyURL, err := url.Parse(allProxy) + if err != nil { + return forward + } + proxy, err := FromURL(proxyURL, forward) + if err != nil { + return forward + } + + noProxy := noProxyEnv.Get() + if len(noProxy) == 0 { + return proxy + } + + perHost := NewPerHost(proxy, forward) + perHost.AddFromString(noProxy) + return perHost +} + +// proxySchemes is a map from URL schemes to a function that creates a Dialer +// from a URL with such a scheme. +var proxySchemes map[string]func(*url.URL, Dialer) (Dialer, error) + +// RegisterDialerType takes a URL scheme and a function to generate Dialers from +// a URL with that scheme and a forwarding Dialer. Registered schemes are used +// by FromURL. +func RegisterDialerType(scheme string, f func(*url.URL, Dialer) (Dialer, error)) { + if proxySchemes == nil { + proxySchemes = make(map[string]func(*url.URL, Dialer) (Dialer, error)) + } + proxySchemes[scheme] = f +} + +// FromURL returns a Dialer given a URL specification and an underlying +// Dialer for it to make network requests. +func FromURL(u *url.URL, forward Dialer) (Dialer, error) { + var auth *Auth + if u.User != nil { + auth = new(Auth) + auth.User = u.User.Username() + if p, ok := u.User.Password(); ok { + auth.Password = p + } + } + + switch u.Scheme { + case "socks5", "socks5h": + addr := u.Hostname() + port := u.Port() + if port == "" { + port = "1080" + } + return SOCKS5("tcp", net.JoinHostPort(addr, port), auth, forward) + } + + // If the scheme doesn't match any of the built-in schemes, see if it + // was registered by another package. + if proxySchemes != nil { + if f, ok := proxySchemes[u.Scheme]; ok { + return f(u, forward) + } + } + + return nil, errors.New("proxy: unknown scheme: " + u.Scheme) +} + +var ( + allProxyEnv = &envOnce{ + names: []string{"ALL_PROXY", "all_proxy"}, + } + noProxyEnv = &envOnce{ + names: []string{"NO_PROXY", "no_proxy"}, + } +) + +// envOnce looks up an environment variable (optionally by multiple +// names) once. It mitigates expensive lookups on some platforms +// (e.g. Windows). +// (Borrowed from net/http/transport.go) +type envOnce struct { + names []string + once sync.Once + val string +} + +func (e *envOnce) Get() string { + e.once.Do(e.init) + return e.val +} + +func (e *envOnce) init() { + for _, n := range e.names { + e.val = os.Getenv(n) + if e.val != "" { + return + } + } +} + +// reset is used by tests +func (e *envOnce) reset() { + e.once = sync.Once{} + e.val = "" +} diff --git a/vendor/golang.org/x/net/proxy/socks5.go b/vendor/golang.org/x/net/proxy/socks5.go new file mode 100644 index 0000000..c91651f --- /dev/null +++ b/vendor/golang.org/x/net/proxy/socks5.go @@ -0,0 +1,42 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package proxy + +import ( + "context" + "net" + + "golang.org/x/net/internal/socks" +) + +// SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given +// address with an optional username and password. +// See RFC 1928 and RFC 1929. +func SOCKS5(network, address string, auth *Auth, forward Dialer) (Dialer, error) { + d := socks.NewDialer(network, address) + if forward != nil { + if f, ok := forward.(ContextDialer); ok { + d.ProxyDial = func(ctx context.Context, network string, address string) (net.Conn, error) { + return f.DialContext(ctx, network, address) + } + } else { + d.ProxyDial = func(ctx context.Context, network string, address string) (net.Conn, error) { + return dialContext(ctx, forward, network, address) + } + } + } + if auth != nil { + up := socks.UsernamePassword{ + Username: auth.User, + Password: auth.Password, + } + d.AuthMethods = []socks.AuthMethod{ + socks.AuthMethodNotRequired, + socks.AuthMethodUsernamePassword, + } + d.Authenticate = up.Authenticate + } + return d, nil +} diff --git a/vendor/golang.org/x/net/trace/events.go b/vendor/golang.org/x/net/trace/events.go new file mode 100644 index 0000000..c646a69 --- /dev/null +++ b/vendor/golang.org/x/net/trace/events.go @@ -0,0 +1,532 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package trace + +import ( + "bytes" + "fmt" + "html/template" + "io" + "log" + "net/http" + "runtime" + "sort" + "strconv" + "strings" + "sync" + "sync/atomic" + "text/tabwriter" + "time" +) + +const maxEventsPerLog = 100 + +type bucket struct { + MaxErrAge time.Duration + String string +} + +var buckets = []bucket{ + {0, "total"}, + {10 * time.Second, "errs<10s"}, + {1 * time.Minute, "errs<1m"}, + {10 * time.Minute, "errs<10m"}, + {1 * time.Hour, "errs<1h"}, + {10 * time.Hour, "errs<10h"}, + {24000 * time.Hour, "errors"}, +} + +// RenderEvents renders the HTML page typically served at /debug/events. +// It does not do any auth checking. The request may be nil. +// +// Most users will use the Events handler. +func RenderEvents(w http.ResponseWriter, req *http.Request, sensitive bool) { + now := time.Now() + data := &struct { + Families []string // family names + Buckets []bucket + Counts [][]int // eventLog count per family/bucket + + // Set when a bucket has been selected. + Family string + Bucket int + EventLogs eventLogs + Expanded bool + }{ + Buckets: buckets, + } + + data.Families = make([]string, 0, len(families)) + famMu.RLock() + for name := range families { + data.Families = append(data.Families, name) + } + famMu.RUnlock() + sort.Strings(data.Families) + + // Count the number of eventLogs in each family for each error age. + data.Counts = make([][]int, len(data.Families)) + for i, name := range data.Families { + // TODO(sameer): move this loop under the family lock. + f := getEventFamily(name) + data.Counts[i] = make([]int, len(data.Buckets)) + for j, b := range data.Buckets { + data.Counts[i][j] = f.Count(now, b.MaxErrAge) + } + } + + if req != nil { + var ok bool + data.Family, data.Bucket, ok = parseEventsArgs(req) + if !ok { + // No-op + } else { + data.EventLogs = getEventFamily(data.Family).Copy(now, buckets[data.Bucket].MaxErrAge) + } + if data.EventLogs != nil { + defer data.EventLogs.Free() + sort.Sort(data.EventLogs) + } + if exp, err := strconv.ParseBool(req.FormValue("exp")); err == nil { + data.Expanded = exp + } + } + + famMu.RLock() + defer famMu.RUnlock() + if err := eventsTmpl().Execute(w, data); err != nil { + log.Printf("net/trace: Failed executing template: %v", err) + } +} + +func parseEventsArgs(req *http.Request) (fam string, b int, ok bool) { + fam, bStr := req.FormValue("fam"), req.FormValue("b") + if fam == "" || bStr == "" { + return "", 0, false + } + b, err := strconv.Atoi(bStr) + if err != nil || b < 0 || b >= len(buckets) { + return "", 0, false + } + return fam, b, true +} + +// An EventLog provides a log of events associated with a specific object. +type EventLog interface { + // Printf formats its arguments with fmt.Sprintf and adds the + // result to the event log. + Printf(format string, a ...interface{}) + + // Errorf is like Printf, but it marks this event as an error. + Errorf(format string, a ...interface{}) + + // Finish declares that this event log is complete. + // The event log should not be used after calling this method. + Finish() +} + +// NewEventLog returns a new EventLog with the specified family name +// and title. +func NewEventLog(family, title string) EventLog { + el := newEventLog() + el.ref() + el.Family, el.Title = family, title + el.Start = time.Now() + el.events = make([]logEntry, 0, maxEventsPerLog) + el.stack = make([]uintptr, 32) + n := runtime.Callers(2, el.stack) + el.stack = el.stack[:n] + + getEventFamily(family).add(el) + return el +} + +func (el *eventLog) Finish() { + getEventFamily(el.Family).remove(el) + el.unref() // matches ref in New +} + +var ( + famMu sync.RWMutex + families = make(map[string]*eventFamily) // family name => family +) + +func getEventFamily(fam string) *eventFamily { + famMu.Lock() + defer famMu.Unlock() + f := families[fam] + if f == nil { + f = &eventFamily{} + families[fam] = f + } + return f +} + +type eventFamily struct { + mu sync.RWMutex + eventLogs eventLogs +} + +func (f *eventFamily) add(el *eventLog) { + f.mu.Lock() + f.eventLogs = append(f.eventLogs, el) + f.mu.Unlock() +} + +func (f *eventFamily) remove(el *eventLog) { + f.mu.Lock() + defer f.mu.Unlock() + for i, el0 := range f.eventLogs { + if el == el0 { + copy(f.eventLogs[i:], f.eventLogs[i+1:]) + f.eventLogs = f.eventLogs[:len(f.eventLogs)-1] + return + } + } +} + +func (f *eventFamily) Count(now time.Time, maxErrAge time.Duration) (n int) { + f.mu.RLock() + defer f.mu.RUnlock() + for _, el := range f.eventLogs { + if el.hasRecentError(now, maxErrAge) { + n++ + } + } + return +} + +func (f *eventFamily) Copy(now time.Time, maxErrAge time.Duration) (els eventLogs) { + f.mu.RLock() + defer f.mu.RUnlock() + els = make(eventLogs, 0, len(f.eventLogs)) + for _, el := range f.eventLogs { + if el.hasRecentError(now, maxErrAge) { + el.ref() + els = append(els, el) + } + } + return +} + +type eventLogs []*eventLog + +// Free calls unref on each element of the list. +func (els eventLogs) Free() { + for _, el := range els { + el.unref() + } +} + +// eventLogs may be sorted in reverse chronological order. +func (els eventLogs) Len() int { return len(els) } +func (els eventLogs) Less(i, j int) bool { return els[i].Start.After(els[j].Start) } +func (els eventLogs) Swap(i, j int) { els[i], els[j] = els[j], els[i] } + +// A logEntry is a timestamped log entry in an event log. +type logEntry struct { + When time.Time + Elapsed time.Duration // since previous event in log + NewDay bool // whether this event is on a different day to the previous event + What string + IsErr bool +} + +// WhenString returns a string representation of the elapsed time of the event. +// It will include the date if midnight was crossed. +func (e logEntry) WhenString() string { + if e.NewDay { + return e.When.Format("2006/01/02 15:04:05.000000") + } + return e.When.Format("15:04:05.000000") +} + +// An eventLog represents an active event log. +type eventLog struct { + // Family is the top-level grouping of event logs to which this belongs. + Family string + + // Title is the title of this event log. + Title string + + // Timing information. + Start time.Time + + // Call stack where this event log was created. + stack []uintptr + + // Append-only sequence of events. + // + // TODO(sameer): change this to a ring buffer to avoid the array copy + // when we hit maxEventsPerLog. + mu sync.RWMutex + events []logEntry + LastErrorTime time.Time + discarded int + + refs int32 // how many buckets this is in +} + +func (el *eventLog) reset() { + // Clear all but the mutex. Mutexes may not be copied, even when unlocked. + el.Family = "" + el.Title = "" + el.Start = time.Time{} + el.stack = nil + el.events = nil + el.LastErrorTime = time.Time{} + el.discarded = 0 + el.refs = 0 +} + +func (el *eventLog) hasRecentError(now time.Time, maxErrAge time.Duration) bool { + if maxErrAge == 0 { + return true + } + el.mu.RLock() + defer el.mu.RUnlock() + return now.Sub(el.LastErrorTime) < maxErrAge +} + +// delta returns the elapsed time since the last event or the log start, +// and whether it spans midnight. +// L >= el.mu +func (el *eventLog) delta(t time.Time) (time.Duration, bool) { + if len(el.events) == 0 { + return t.Sub(el.Start), false + } + prev := el.events[len(el.events)-1].When + return t.Sub(prev), prev.Day() != t.Day() + +} + +func (el *eventLog) Printf(format string, a ...interface{}) { + el.printf(false, format, a...) +} + +func (el *eventLog) Errorf(format string, a ...interface{}) { + el.printf(true, format, a...) +} + +func (el *eventLog) printf(isErr bool, format string, a ...interface{}) { + e := logEntry{When: time.Now(), IsErr: isErr, What: fmt.Sprintf(format, a...)} + el.mu.Lock() + e.Elapsed, e.NewDay = el.delta(e.When) + if len(el.events) < maxEventsPerLog { + el.events = append(el.events, e) + } else { + // Discard the oldest event. + if el.discarded == 0 { + // el.discarded starts at two to count for the event it + // is replacing, plus the next one that we are about to + // drop. + el.discarded = 2 + } else { + el.discarded++ + } + // TODO(sameer): if this causes allocations on a critical path, + // change eventLog.What to be a fmt.Stringer, as in trace.go. + el.events[0].What = fmt.Sprintf("(%d events discarded)", el.discarded) + // The timestamp of the discarded meta-event should be + // the time of the last event it is representing. + el.events[0].When = el.events[1].When + copy(el.events[1:], el.events[2:]) + el.events[maxEventsPerLog-1] = e + } + if e.IsErr { + el.LastErrorTime = e.When + } + el.mu.Unlock() +} + +func (el *eventLog) ref() { + atomic.AddInt32(&el.refs, 1) +} + +func (el *eventLog) unref() { + if atomic.AddInt32(&el.refs, -1) == 0 { + freeEventLog(el) + } +} + +func (el *eventLog) When() string { + return el.Start.Format("2006/01/02 15:04:05.000000") +} + +func (el *eventLog) ElapsedTime() string { + elapsed := time.Since(el.Start) + return fmt.Sprintf("%.6f", elapsed.Seconds()) +} + +func (el *eventLog) Stack() string { + buf := new(bytes.Buffer) + tw := tabwriter.NewWriter(buf, 1, 8, 1, '\t', 0) + printStackRecord(tw, el.stack) + tw.Flush() + return buf.String() +} + +// printStackRecord prints the function + source line information +// for a single stack trace. +// Adapted from runtime/pprof/pprof.go. +func printStackRecord(w io.Writer, stk []uintptr) { + for _, pc := range stk { + f := runtime.FuncForPC(pc) + if f == nil { + continue + } + file, line := f.FileLine(pc) + name := f.Name() + // Hide runtime.goexit and any runtime functions at the beginning. + if strings.HasPrefix(name, "runtime.") { + continue + } + fmt.Fprintf(w, "# %s\t%s:%d\n", name, file, line) + } +} + +func (el *eventLog) Events() []logEntry { + el.mu.RLock() + defer el.mu.RUnlock() + return el.events +} + +// freeEventLogs is a freelist of *eventLog +var freeEventLogs = make(chan *eventLog, 1000) + +// newEventLog returns a event log ready to use. +func newEventLog() *eventLog { + select { + case el := <-freeEventLogs: + return el + default: + return new(eventLog) + } +} + +// freeEventLog adds el to freeEventLogs if there's room. +// This is non-blocking. +func freeEventLog(el *eventLog) { + el.reset() + select { + case freeEventLogs <- el: + default: + } +} + +var eventsTmplCache *template.Template +var eventsTmplOnce sync.Once + +func eventsTmpl() *template.Template { + eventsTmplOnce.Do(func() { + eventsTmplCache = template.Must(template.New("events").Funcs(template.FuncMap{ + "elapsed": elapsed, + "trimSpace": strings.TrimSpace, + }).Parse(eventsHTML)) + }) + return eventsTmplCache +} + +const eventsHTML = ` + + + events + + + + +

/debug/events

+ + + {{range $i, $fam := .Families}} + + + + {{range $j, $bucket := $.Buckets}} + {{$n := index $.Counts $i $j}} + + {{end}} + + {{end}} +
{{$fam}} + {{if $n}}{{end}} + [{{$n}} {{$bucket.String}}] + {{if $n}}{{end}} +
+ +{{if $.EventLogs}} +
+

Family: {{$.Family}}

+ +{{if $.Expanded}}
{{end}} +[Summary]{{if $.Expanded}}{{end}} + +{{if not $.Expanded}}{{end}} +[Expanded]{{if not $.Expanded}}{{end}} + + + + {{range $el := $.EventLogs}} + + + + + {{if $.Expanded}} + + + + + + {{range $el.Events}} + + + + + + {{end}} + {{end}} + {{end}} +
WhenElapsed
{{$el.When}}{{$el.ElapsedTime}}{{$el.Title}} +
{{$el.Stack|trimSpace}}
{{.WhenString}}{{elapsed .Elapsed}}.{{if .IsErr}}E{{else}}.{{end}}. {{.What}}
+{{end}} + + +` diff --git a/vendor/golang.org/x/net/trace/histogram.go b/vendor/golang.org/x/net/trace/histogram.go new file mode 100644 index 0000000..9bf4286 --- /dev/null +++ b/vendor/golang.org/x/net/trace/histogram.go @@ -0,0 +1,365 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package trace + +// This file implements histogramming for RPC statistics collection. + +import ( + "bytes" + "fmt" + "html/template" + "log" + "math" + "sync" + + "golang.org/x/net/internal/timeseries" +) + +const ( + bucketCount = 38 +) + +// histogram keeps counts of values in buckets that are spaced +// out in powers of 2: 0-1, 2-3, 4-7... +// histogram implements timeseries.Observable +type histogram struct { + sum int64 // running total of measurements + sumOfSquares float64 // square of running total + buckets []int64 // bucketed values for histogram + value int // holds a single value as an optimization + valueCount int64 // number of values recorded for single value +} + +// AddMeasurement records a value measurement observation to the histogram. +func (h *histogram) addMeasurement(value int64) { + // TODO: assert invariant + h.sum += value + h.sumOfSquares += float64(value) * float64(value) + + bucketIndex := getBucket(value) + + if h.valueCount == 0 || (h.valueCount > 0 && h.value == bucketIndex) { + h.value = bucketIndex + h.valueCount++ + } else { + h.allocateBuckets() + h.buckets[bucketIndex]++ + } +} + +func (h *histogram) allocateBuckets() { + if h.buckets == nil { + h.buckets = make([]int64, bucketCount) + h.buckets[h.value] = h.valueCount + h.value = 0 + h.valueCount = -1 + } +} + +func log2(i int64) int { + n := 0 + for ; i >= 0x100; i >>= 8 { + n += 8 + } + for ; i > 0; i >>= 1 { + n += 1 + } + return n +} + +func getBucket(i int64) (index int) { + index = log2(i) - 1 + if index < 0 { + index = 0 + } + if index >= bucketCount { + index = bucketCount - 1 + } + return +} + +// Total returns the number of recorded observations. +func (h *histogram) total() (total int64) { + if h.valueCount >= 0 { + total = h.valueCount + } + for _, val := range h.buckets { + total += int64(val) + } + return +} + +// Average returns the average value of recorded observations. +func (h *histogram) average() float64 { + t := h.total() + if t == 0 { + return 0 + } + return float64(h.sum) / float64(t) +} + +// Variance returns the variance of recorded observations. +func (h *histogram) variance() float64 { + t := float64(h.total()) + if t == 0 { + return 0 + } + s := float64(h.sum) / t + return h.sumOfSquares/t - s*s +} + +// StandardDeviation returns the standard deviation of recorded observations. +func (h *histogram) standardDeviation() float64 { + return math.Sqrt(h.variance()) +} + +// PercentileBoundary estimates the value that the given fraction of recorded +// observations are less than. +func (h *histogram) percentileBoundary(percentile float64) int64 { + total := h.total() + + // Corner cases (make sure result is strictly less than Total()) + if total == 0 { + return 0 + } else if total == 1 { + return int64(h.average()) + } + + percentOfTotal := round(float64(total) * percentile) + var runningTotal int64 + + for i := range h.buckets { + value := h.buckets[i] + runningTotal += value + if runningTotal == percentOfTotal { + // We hit an exact bucket boundary. If the next bucket has data, it is a + // good estimate of the value. If the bucket is empty, we interpolate the + // midpoint between the next bucket's boundary and the next non-zero + // bucket. If the remaining buckets are all empty, then we use the + // boundary for the next bucket as the estimate. + j := uint8(i + 1) + min := bucketBoundary(j) + if runningTotal < total { + for h.buckets[j] == 0 { + j++ + } + } + max := bucketBoundary(j) + return min + round(float64(max-min)/2) + } else if runningTotal > percentOfTotal { + // The value is in this bucket. Interpolate the value. + delta := runningTotal - percentOfTotal + percentBucket := float64(value-delta) / float64(value) + bucketMin := bucketBoundary(uint8(i)) + nextBucketMin := bucketBoundary(uint8(i + 1)) + bucketSize := nextBucketMin - bucketMin + return bucketMin + round(percentBucket*float64(bucketSize)) + } + } + return bucketBoundary(bucketCount - 1) +} + +// Median returns the estimated median of the observed values. +func (h *histogram) median() int64 { + return h.percentileBoundary(0.5) +} + +// Add adds other to h. +func (h *histogram) Add(other timeseries.Observable) { + o := other.(*histogram) + if o.valueCount == 0 { + // Other histogram is empty + } else if h.valueCount >= 0 && o.valueCount > 0 && h.value == o.value { + // Both have a single bucketed value, aggregate them + h.valueCount += o.valueCount + } else { + // Two different values necessitate buckets in this histogram + h.allocateBuckets() + if o.valueCount >= 0 { + h.buckets[o.value] += o.valueCount + } else { + for i := range h.buckets { + h.buckets[i] += o.buckets[i] + } + } + } + h.sumOfSquares += o.sumOfSquares + h.sum += o.sum +} + +// Clear resets the histogram to an empty state, removing all observed values. +func (h *histogram) Clear() { + h.buckets = nil + h.value = 0 + h.valueCount = 0 + h.sum = 0 + h.sumOfSquares = 0 +} + +// CopyFrom copies from other, which must be a *histogram, into h. +func (h *histogram) CopyFrom(other timeseries.Observable) { + o := other.(*histogram) + if o.valueCount == -1 { + h.allocateBuckets() + copy(h.buckets, o.buckets) + } + h.sum = o.sum + h.sumOfSquares = o.sumOfSquares + h.value = o.value + h.valueCount = o.valueCount +} + +// Multiply scales the histogram by the specified ratio. +func (h *histogram) Multiply(ratio float64) { + if h.valueCount == -1 { + for i := range h.buckets { + h.buckets[i] = int64(float64(h.buckets[i]) * ratio) + } + } else { + h.valueCount = int64(float64(h.valueCount) * ratio) + } + h.sum = int64(float64(h.sum) * ratio) + h.sumOfSquares = h.sumOfSquares * ratio +} + +// New creates a new histogram. +func (h *histogram) New() timeseries.Observable { + r := new(histogram) + r.Clear() + return r +} + +func (h *histogram) String() string { + return fmt.Sprintf("%d, %f, %d, %d, %v", + h.sum, h.sumOfSquares, h.value, h.valueCount, h.buckets) +} + +// round returns the closest int64 to the argument +func round(in float64) int64 { + return int64(math.Floor(in + 0.5)) +} + +// bucketBoundary returns the first value in the bucket. +func bucketBoundary(bucket uint8) int64 { + if bucket == 0 { + return 0 + } + return 1 << bucket +} + +// bucketData holds data about a specific bucket for use in distTmpl. +type bucketData struct { + Lower, Upper int64 + N int64 + Pct, CumulativePct float64 + GraphWidth int +} + +// data holds data about a Distribution for use in distTmpl. +type data struct { + Buckets []*bucketData + Count, Median int64 + Mean, StandardDeviation float64 +} + +// maxHTMLBarWidth is the maximum width of the HTML bar for visualizing buckets. +const maxHTMLBarWidth = 350.0 + +// newData returns data representing h for use in distTmpl. +func (h *histogram) newData() *data { + // Force the allocation of buckets to simplify the rendering implementation + h.allocateBuckets() + // We scale the bars on the right so that the largest bar is + // maxHTMLBarWidth pixels in width. + maxBucket := int64(0) + for _, n := range h.buckets { + if n > maxBucket { + maxBucket = n + } + } + total := h.total() + barsizeMult := maxHTMLBarWidth / float64(maxBucket) + var pctMult float64 + if total == 0 { + pctMult = 1.0 + } else { + pctMult = 100.0 / float64(total) + } + + buckets := make([]*bucketData, len(h.buckets)) + runningTotal := int64(0) + for i, n := range h.buckets { + if n == 0 { + continue + } + runningTotal += n + var upperBound int64 + if i < bucketCount-1 { + upperBound = bucketBoundary(uint8(i + 1)) + } else { + upperBound = math.MaxInt64 + } + buckets[i] = &bucketData{ + Lower: bucketBoundary(uint8(i)), + Upper: upperBound, + N: n, + Pct: float64(n) * pctMult, + CumulativePct: float64(runningTotal) * pctMult, + GraphWidth: int(float64(n) * barsizeMult), + } + } + return &data{ + Buckets: buckets, + Count: total, + Median: h.median(), + Mean: h.average(), + StandardDeviation: h.standardDeviation(), + } +} + +func (h *histogram) html() template.HTML { + buf := new(bytes.Buffer) + if err := distTmpl().Execute(buf, h.newData()); err != nil { + buf.Reset() + log.Printf("net/trace: couldn't execute template: %v", err) + } + return template.HTML(buf.String()) +} + +var distTmplCache *template.Template +var distTmplOnce sync.Once + +func distTmpl() *template.Template { + distTmplOnce.Do(func() { + // Input: data + distTmplCache = template.Must(template.New("distTmpl").Parse(` + + + + + + + +
Count: {{.Count}}Mean: {{printf "%.0f" .Mean}}StdDev: {{printf "%.0f" .StandardDeviation}}Median: {{.Median}}
+
+ +{{range $b := .Buckets}} +{{if $b}} + + + + + + + + + +{{end}} +{{end}} +
[{{.Lower}},{{.Upper}}){{.N}}{{printf "%#.3f" .Pct}}%{{printf "%#.3f" .CumulativePct}}%
+`)) + }) + return distTmplCache +} diff --git a/vendor/golang.org/x/net/trace/trace.go b/vendor/golang.org/x/net/trace/trace.go new file mode 100644 index 0000000..3ebf6f2 --- /dev/null +++ b/vendor/golang.org/x/net/trace/trace.go @@ -0,0 +1,1130 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package trace implements tracing of requests and long-lived objects. +It exports HTTP interfaces on /debug/requests and /debug/events. + +A trace.Trace provides tracing for short-lived objects, usually requests. +A request handler might be implemented like this: + + func fooHandler(w http.ResponseWriter, req *http.Request) { + tr := trace.New("mypkg.Foo", req.URL.Path) + defer tr.Finish() + ... + tr.LazyPrintf("some event %q happened", str) + ... + if err := somethingImportant(); err != nil { + tr.LazyPrintf("somethingImportant failed: %v", err) + tr.SetError() + } + } + +The /debug/requests HTTP endpoint organizes the traces by family, +errors, and duration. It also provides histogram of request duration +for each family. + +A trace.EventLog provides tracing for long-lived objects, such as RPC +connections. + + // A Fetcher fetches URL paths for a single domain. + type Fetcher struct { + domain string + events trace.EventLog + } + + func NewFetcher(domain string) *Fetcher { + return &Fetcher{ + domain, + trace.NewEventLog("mypkg.Fetcher", domain), + } + } + + func (f *Fetcher) Fetch(path string) (string, error) { + resp, err := http.Get("http://" + f.domain + "/" + path) + if err != nil { + f.events.Errorf("Get(%q) = %v", path, err) + return "", err + } + f.events.Printf("Get(%q) = %s", path, resp.Status) + ... + } + + func (f *Fetcher) Close() error { + f.events.Finish() + return nil + } + +The /debug/events HTTP endpoint organizes the event logs by family and +by time since the last error. The expanded view displays recent log +entries and the log's call stack. +*/ +package trace // import "golang.org/x/net/trace" + +import ( + "bytes" + "context" + "fmt" + "html/template" + "io" + "log" + "net" + "net/http" + "net/url" + "runtime" + "sort" + "strconv" + "sync" + "sync/atomic" + "time" + + "golang.org/x/net/internal/timeseries" +) + +// DebugUseAfterFinish controls whether to debug uses of Trace values after finishing. +// FOR DEBUGGING ONLY. This will slow down the program. +var DebugUseAfterFinish = false + +// HTTP ServeMux paths. +const ( + debugRequestsPath = "/debug/requests" + debugEventsPath = "/debug/events" +) + +// AuthRequest determines whether a specific request is permitted to load the +// /debug/requests or /debug/events pages. +// +// It returns two bools; the first indicates whether the page may be viewed at all, +// and the second indicates whether sensitive events will be shown. +// +// AuthRequest may be replaced by a program to customize its authorization requirements. +// +// The default AuthRequest function returns (true, true) if and only if the request +// comes from localhost/127.0.0.1/[::1]. +var AuthRequest = func(req *http.Request) (any, sensitive bool) { + // RemoteAddr is commonly in the form "IP" or "IP:port". + // If it is in the form "IP:port", split off the port. + host, _, err := net.SplitHostPort(req.RemoteAddr) + if err != nil { + host = req.RemoteAddr + } + switch host { + case "localhost", "127.0.0.1", "::1": + return true, true + default: + return false, false + } +} + +func init() { + _, pat := http.DefaultServeMux.Handler(&http.Request{URL: &url.URL{Path: debugRequestsPath}}) + if pat == debugRequestsPath { + panic("/debug/requests is already registered. You may have two independent copies of " + + "golang.org/x/net/trace in your binary, trying to maintain separate state. This may " + + "involve a vendored copy of golang.org/x/net/trace.") + } + + // TODO(jbd): Serve Traces from /debug/traces in the future? + // There is no requirement for a request to be present to have traces. + http.HandleFunc(debugRequestsPath, Traces) + http.HandleFunc(debugEventsPath, Events) +} + +// NewContext returns a copy of the parent context +// and associates it with a Trace. +func NewContext(ctx context.Context, tr Trace) context.Context { + return context.WithValue(ctx, contextKey, tr) +} + +// FromContext returns the Trace bound to the context, if any. +func FromContext(ctx context.Context) (tr Trace, ok bool) { + tr, ok = ctx.Value(contextKey).(Trace) + return +} + +// Traces responds with traces from the program. +// The package initialization registers it in http.DefaultServeMux +// at /debug/requests. +// +// It performs authorization by running AuthRequest. +func Traces(w http.ResponseWriter, req *http.Request) { + any, sensitive := AuthRequest(req) + if !any { + http.Error(w, "not allowed", http.StatusUnauthorized) + return + } + w.Header().Set("Content-Type", "text/html; charset=utf-8") + Render(w, req, sensitive) +} + +// Events responds with a page of events collected by EventLogs. +// The package initialization registers it in http.DefaultServeMux +// at /debug/events. +// +// It performs authorization by running AuthRequest. +func Events(w http.ResponseWriter, req *http.Request) { + any, sensitive := AuthRequest(req) + if !any { + http.Error(w, "not allowed", http.StatusUnauthorized) + return + } + w.Header().Set("Content-Type", "text/html; charset=utf-8") + RenderEvents(w, req, sensitive) +} + +// Render renders the HTML page typically served at /debug/requests. +// It does not do any auth checking. The request may be nil. +// +// Most users will use the Traces handler. +func Render(w io.Writer, req *http.Request, sensitive bool) { + data := &struct { + Families []string + ActiveTraceCount map[string]int + CompletedTraces map[string]*family + + // Set when a bucket has been selected. + Traces traceList + Family string + Bucket int + Expanded bool + Traced bool + Active bool + ShowSensitive bool // whether to show sensitive events + + Histogram template.HTML + HistogramWindow string // e.g. "last minute", "last hour", "all time" + + // If non-zero, the set of traces is a partial set, + // and this is the total number. + Total int + }{ + CompletedTraces: completedTraces, + } + + data.ShowSensitive = sensitive + if req != nil { + // Allow show_sensitive=0 to force hiding of sensitive data for testing. + // This only goes one way; you can't use show_sensitive=1 to see things. + if req.FormValue("show_sensitive") == "0" { + data.ShowSensitive = false + } + + if exp, err := strconv.ParseBool(req.FormValue("exp")); err == nil { + data.Expanded = exp + } + if exp, err := strconv.ParseBool(req.FormValue("rtraced")); err == nil { + data.Traced = exp + } + } + + completedMu.RLock() + data.Families = make([]string, 0, len(completedTraces)) + for fam := range completedTraces { + data.Families = append(data.Families, fam) + } + completedMu.RUnlock() + sort.Strings(data.Families) + + // We are careful here to minimize the time spent locking activeMu, + // since that lock is required every time an RPC starts and finishes. + data.ActiveTraceCount = make(map[string]int, len(data.Families)) + activeMu.RLock() + for fam, s := range activeTraces { + data.ActiveTraceCount[fam] = s.Len() + } + activeMu.RUnlock() + + var ok bool + data.Family, data.Bucket, ok = parseArgs(req) + switch { + case !ok: + // No-op + case data.Bucket == -1: + data.Active = true + n := data.ActiveTraceCount[data.Family] + data.Traces = getActiveTraces(data.Family) + if len(data.Traces) < n { + data.Total = n + } + case data.Bucket < bucketsPerFamily: + if b := lookupBucket(data.Family, data.Bucket); b != nil { + data.Traces = b.Copy(data.Traced) + } + default: + if f := getFamily(data.Family, false); f != nil { + var obs timeseries.Observable + f.LatencyMu.RLock() + switch o := data.Bucket - bucketsPerFamily; o { + case 0: + obs = f.Latency.Minute() + data.HistogramWindow = "last minute" + case 1: + obs = f.Latency.Hour() + data.HistogramWindow = "last hour" + case 2: + obs = f.Latency.Total() + data.HistogramWindow = "all time" + } + f.LatencyMu.RUnlock() + if obs != nil { + data.Histogram = obs.(*histogram).html() + } + } + } + + if data.Traces != nil { + defer data.Traces.Free() + sort.Sort(data.Traces) + } + + completedMu.RLock() + defer completedMu.RUnlock() + if err := pageTmpl().ExecuteTemplate(w, "Page", data); err != nil { + log.Printf("net/trace: Failed executing template: %v", err) + } +} + +func parseArgs(req *http.Request) (fam string, b int, ok bool) { + if req == nil { + return "", 0, false + } + fam, bStr := req.FormValue("fam"), req.FormValue("b") + if fam == "" || bStr == "" { + return "", 0, false + } + b, err := strconv.Atoi(bStr) + if err != nil || b < -1 { + return "", 0, false + } + + return fam, b, true +} + +func lookupBucket(fam string, b int) *traceBucket { + f := getFamily(fam, false) + if f == nil || b < 0 || b >= len(f.Buckets) { + return nil + } + return f.Buckets[b] +} + +type contextKeyT string + +var contextKey = contextKeyT("golang.org/x/net/trace.Trace") + +// Trace represents an active request. +type Trace interface { + // LazyLog adds x to the event log. It will be evaluated each time the + // /debug/requests page is rendered. Any memory referenced by x will be + // pinned until the trace is finished and later discarded. + LazyLog(x fmt.Stringer, sensitive bool) + + // LazyPrintf evaluates its arguments with fmt.Sprintf each time the + // /debug/requests page is rendered. Any memory referenced by a will be + // pinned until the trace is finished and later discarded. + LazyPrintf(format string, a ...interface{}) + + // SetError declares that this trace resulted in an error. + SetError() + + // SetRecycler sets a recycler for the trace. + // f will be called for each event passed to LazyLog at a time when + // it is no longer required, whether while the trace is still active + // and the event is discarded, or when a completed trace is discarded. + SetRecycler(f func(interface{})) + + // SetTraceInfo sets the trace info for the trace. + // This is currently unused. + SetTraceInfo(traceID, spanID uint64) + + // SetMaxEvents sets the maximum number of events that will be stored + // in the trace. This has no effect if any events have already been + // added to the trace. + SetMaxEvents(m int) + + // Finish declares that this trace is complete. + // The trace should not be used after calling this method. + Finish() +} + +type lazySprintf struct { + format string + a []interface{} +} + +func (l *lazySprintf) String() string { + return fmt.Sprintf(l.format, l.a...) +} + +// New returns a new Trace with the specified family and title. +func New(family, title string) Trace { + tr := newTrace() + tr.ref() + tr.Family, tr.Title = family, title + tr.Start = time.Now() + tr.maxEvents = maxEventsPerTrace + tr.events = tr.eventsBuf[:0] + + activeMu.RLock() + s := activeTraces[tr.Family] + activeMu.RUnlock() + if s == nil { + activeMu.Lock() + s = activeTraces[tr.Family] // check again + if s == nil { + s = new(traceSet) + activeTraces[tr.Family] = s + } + activeMu.Unlock() + } + s.Add(tr) + + // Trigger allocation of the completed trace structure for this family. + // This will cause the family to be present in the request page during + // the first trace of this family. We don't care about the return value, + // nor is there any need for this to run inline, so we execute it in its + // own goroutine, but only if the family isn't allocated yet. + completedMu.RLock() + if _, ok := completedTraces[tr.Family]; !ok { + go allocFamily(tr.Family) + } + completedMu.RUnlock() + + return tr +} + +func (tr *trace) Finish() { + elapsed := time.Now().Sub(tr.Start) + tr.mu.Lock() + tr.Elapsed = elapsed + tr.mu.Unlock() + + if DebugUseAfterFinish { + buf := make([]byte, 4<<10) // 4 KB should be enough + n := runtime.Stack(buf, false) + tr.finishStack = buf[:n] + } + + activeMu.RLock() + m := activeTraces[tr.Family] + activeMu.RUnlock() + m.Remove(tr) + + f := getFamily(tr.Family, true) + tr.mu.RLock() // protects tr fields in Cond.match calls + for _, b := range f.Buckets { + if b.Cond.match(tr) { + b.Add(tr) + } + } + tr.mu.RUnlock() + + // Add a sample of elapsed time as microseconds to the family's timeseries + h := new(histogram) + h.addMeasurement(elapsed.Nanoseconds() / 1e3) + f.LatencyMu.Lock() + f.Latency.Add(h) + f.LatencyMu.Unlock() + + tr.unref() // matches ref in New +} + +const ( + bucketsPerFamily = 9 + tracesPerBucket = 10 + maxActiveTraces = 20 // Maximum number of active traces to show. + maxEventsPerTrace = 10 + numHistogramBuckets = 38 +) + +var ( + // The active traces. + activeMu sync.RWMutex + activeTraces = make(map[string]*traceSet) // family -> traces + + // Families of completed traces. + completedMu sync.RWMutex + completedTraces = make(map[string]*family) // family -> traces +) + +type traceSet struct { + mu sync.RWMutex + m map[*trace]bool + + // We could avoid the entire map scan in FirstN by having a slice of all the traces + // ordered by start time, and an index into that from the trace struct, with a periodic + // repack of the slice after enough traces finish; we could also use a skip list or similar. + // However, that would shift some of the expense from /debug/requests time to RPC time, + // which is probably the wrong trade-off. +} + +func (ts *traceSet) Len() int { + ts.mu.RLock() + defer ts.mu.RUnlock() + return len(ts.m) +} + +func (ts *traceSet) Add(tr *trace) { + ts.mu.Lock() + if ts.m == nil { + ts.m = make(map[*trace]bool) + } + ts.m[tr] = true + ts.mu.Unlock() +} + +func (ts *traceSet) Remove(tr *trace) { + ts.mu.Lock() + delete(ts.m, tr) + ts.mu.Unlock() +} + +// FirstN returns the first n traces ordered by time. +func (ts *traceSet) FirstN(n int) traceList { + ts.mu.RLock() + defer ts.mu.RUnlock() + + if n > len(ts.m) { + n = len(ts.m) + } + trl := make(traceList, 0, n) + + // Fast path for when no selectivity is needed. + if n == len(ts.m) { + for tr := range ts.m { + tr.ref() + trl = append(trl, tr) + } + sort.Sort(trl) + return trl + } + + // Pick the oldest n traces. + // This is inefficient. See the comment in the traceSet struct. + for tr := range ts.m { + // Put the first n traces into trl in the order they occur. + // When we have n, sort trl, and thereafter maintain its order. + if len(trl) < n { + tr.ref() + trl = append(trl, tr) + if len(trl) == n { + // This is guaranteed to happen exactly once during this loop. + sort.Sort(trl) + } + continue + } + if tr.Start.After(trl[n-1].Start) { + continue + } + + // Find where to insert this one. + tr.ref() + i := sort.Search(n, func(i int) bool { return trl[i].Start.After(tr.Start) }) + trl[n-1].unref() + copy(trl[i+1:], trl[i:]) + trl[i] = tr + } + + return trl +} + +func getActiveTraces(fam string) traceList { + activeMu.RLock() + s := activeTraces[fam] + activeMu.RUnlock() + if s == nil { + return nil + } + return s.FirstN(maxActiveTraces) +} + +func getFamily(fam string, allocNew bool) *family { + completedMu.RLock() + f := completedTraces[fam] + completedMu.RUnlock() + if f == nil && allocNew { + f = allocFamily(fam) + } + return f +} + +func allocFamily(fam string) *family { + completedMu.Lock() + defer completedMu.Unlock() + f := completedTraces[fam] + if f == nil { + f = newFamily() + completedTraces[fam] = f + } + return f +} + +// family represents a set of trace buckets and associated latency information. +type family struct { + // traces may occur in multiple buckets. + Buckets [bucketsPerFamily]*traceBucket + + // latency time series + LatencyMu sync.RWMutex + Latency *timeseries.MinuteHourSeries +} + +func newFamily() *family { + return &family{ + Buckets: [bucketsPerFamily]*traceBucket{ + {Cond: minCond(0)}, + {Cond: minCond(50 * time.Millisecond)}, + {Cond: minCond(100 * time.Millisecond)}, + {Cond: minCond(200 * time.Millisecond)}, + {Cond: minCond(500 * time.Millisecond)}, + {Cond: minCond(1 * time.Second)}, + {Cond: minCond(10 * time.Second)}, + {Cond: minCond(100 * time.Second)}, + {Cond: errorCond{}}, + }, + Latency: timeseries.NewMinuteHourSeries(func() timeseries.Observable { return new(histogram) }), + } +} + +// traceBucket represents a size-capped bucket of historic traces, +// along with a condition for a trace to belong to the bucket. +type traceBucket struct { + Cond cond + + // Ring buffer implementation of a fixed-size FIFO queue. + mu sync.RWMutex + buf [tracesPerBucket]*trace + start int // < tracesPerBucket + length int // <= tracesPerBucket +} + +func (b *traceBucket) Add(tr *trace) { + b.mu.Lock() + defer b.mu.Unlock() + + i := b.start + b.length + if i >= tracesPerBucket { + i -= tracesPerBucket + } + if b.length == tracesPerBucket { + // "Remove" an element from the bucket. + b.buf[i].unref() + b.start++ + if b.start == tracesPerBucket { + b.start = 0 + } + } + b.buf[i] = tr + if b.length < tracesPerBucket { + b.length++ + } + tr.ref() +} + +// Copy returns a copy of the traces in the bucket. +// If tracedOnly is true, only the traces with trace information will be returned. +// The logs will be ref'd before returning; the caller should call +// the Free method when it is done with them. +// TODO(dsymonds): keep track of traced requests in separate buckets. +func (b *traceBucket) Copy(tracedOnly bool) traceList { + b.mu.RLock() + defer b.mu.RUnlock() + + trl := make(traceList, 0, b.length) + for i, x := 0, b.start; i < b.length; i++ { + tr := b.buf[x] + if !tracedOnly || tr.spanID != 0 { + tr.ref() + trl = append(trl, tr) + } + x++ + if x == b.length { + x = 0 + } + } + return trl +} + +func (b *traceBucket) Empty() bool { + b.mu.RLock() + defer b.mu.RUnlock() + return b.length == 0 +} + +// cond represents a condition on a trace. +type cond interface { + match(t *trace) bool + String() string +} + +type minCond time.Duration + +func (m minCond) match(t *trace) bool { return t.Elapsed >= time.Duration(m) } +func (m minCond) String() string { return fmt.Sprintf("≥%gs", time.Duration(m).Seconds()) } + +type errorCond struct{} + +func (e errorCond) match(t *trace) bool { return t.IsError } +func (e errorCond) String() string { return "errors" } + +type traceList []*trace + +// Free calls unref on each element of the list. +func (trl traceList) Free() { + for _, t := range trl { + t.unref() + } +} + +// traceList may be sorted in reverse chronological order. +func (trl traceList) Len() int { return len(trl) } +func (trl traceList) Less(i, j int) bool { return trl[i].Start.After(trl[j].Start) } +func (trl traceList) Swap(i, j int) { trl[i], trl[j] = trl[j], trl[i] } + +// An event is a timestamped log entry in a trace. +type event struct { + When time.Time + Elapsed time.Duration // since previous event in trace + NewDay bool // whether this event is on a different day to the previous event + Recyclable bool // whether this event was passed via LazyLog + Sensitive bool // whether this event contains sensitive information + What interface{} // string or fmt.Stringer +} + +// WhenString returns a string representation of the elapsed time of the event. +// It will include the date if midnight was crossed. +func (e event) WhenString() string { + if e.NewDay { + return e.When.Format("2006/01/02 15:04:05.000000") + } + return e.When.Format("15:04:05.000000") +} + +// discarded represents a number of discarded events. +// It is stored as *discarded to make it easier to update in-place. +type discarded int + +func (d *discarded) String() string { + return fmt.Sprintf("(%d events discarded)", int(*d)) +} + +// trace represents an active or complete request, +// either sent or received by this program. +type trace struct { + // Family is the top-level grouping of traces to which this belongs. + Family string + + // Title is the title of this trace. + Title string + + // Start time of the this trace. + Start time.Time + + mu sync.RWMutex + events []event // Append-only sequence of events (modulo discards). + maxEvents int + recycler func(interface{}) + IsError bool // Whether this trace resulted in an error. + Elapsed time.Duration // Elapsed time for this trace, zero while active. + traceID uint64 // Trace information if non-zero. + spanID uint64 + + refs int32 // how many buckets this is in + disc discarded // scratch space to avoid allocation + + finishStack []byte // where finish was called, if DebugUseAfterFinish is set + + eventsBuf [4]event // preallocated buffer in case we only log a few events +} + +func (tr *trace) reset() { + // Clear all but the mutex. Mutexes may not be copied, even when unlocked. + tr.Family = "" + tr.Title = "" + tr.Start = time.Time{} + + tr.mu.Lock() + tr.Elapsed = 0 + tr.traceID = 0 + tr.spanID = 0 + tr.IsError = false + tr.maxEvents = 0 + tr.events = nil + tr.recycler = nil + tr.mu.Unlock() + + tr.refs = 0 + tr.disc = 0 + tr.finishStack = nil + for i := range tr.eventsBuf { + tr.eventsBuf[i] = event{} + } +} + +// delta returns the elapsed time since the last event or the trace start, +// and whether it spans midnight. +// L >= tr.mu +func (tr *trace) delta(t time.Time) (time.Duration, bool) { + if len(tr.events) == 0 { + return t.Sub(tr.Start), false + } + prev := tr.events[len(tr.events)-1].When + return t.Sub(prev), prev.Day() != t.Day() +} + +func (tr *trace) addEvent(x interface{}, recyclable, sensitive bool) { + if DebugUseAfterFinish && tr.finishStack != nil { + buf := make([]byte, 4<<10) // 4 KB should be enough + n := runtime.Stack(buf, false) + log.Printf("net/trace: trace used after finish:\nFinished at:\n%s\nUsed at:\n%s", tr.finishStack, buf[:n]) + } + + /* + NOTE TO DEBUGGERS + + If you are here because your program panicked in this code, + it is almost definitely the fault of code using this package, + and very unlikely to be the fault of this code. + + The most likely scenario is that some code elsewhere is using + a trace.Trace after its Finish method is called. + You can temporarily set the DebugUseAfterFinish var + to help discover where that is; do not leave that var set, + since it makes this package much less efficient. + */ + + e := event{When: time.Now(), What: x, Recyclable: recyclable, Sensitive: sensitive} + tr.mu.Lock() + e.Elapsed, e.NewDay = tr.delta(e.When) + if len(tr.events) < tr.maxEvents { + tr.events = append(tr.events, e) + } else { + // Discard the middle events. + di := int((tr.maxEvents - 1) / 2) + if d, ok := tr.events[di].What.(*discarded); ok { + (*d)++ + } else { + // disc starts at two to count for the event it is replacing, + // plus the next one that we are about to drop. + tr.disc = 2 + if tr.recycler != nil && tr.events[di].Recyclable { + go tr.recycler(tr.events[di].What) + } + tr.events[di].What = &tr.disc + } + // The timestamp of the discarded meta-event should be + // the time of the last event it is representing. + tr.events[di].When = tr.events[di+1].When + + if tr.recycler != nil && tr.events[di+1].Recyclable { + go tr.recycler(tr.events[di+1].What) + } + copy(tr.events[di+1:], tr.events[di+2:]) + tr.events[tr.maxEvents-1] = e + } + tr.mu.Unlock() +} + +func (tr *trace) LazyLog(x fmt.Stringer, sensitive bool) { + tr.addEvent(x, true, sensitive) +} + +func (tr *trace) LazyPrintf(format string, a ...interface{}) { + tr.addEvent(&lazySprintf{format, a}, false, false) +} + +func (tr *trace) SetError() { + tr.mu.Lock() + tr.IsError = true + tr.mu.Unlock() +} + +func (tr *trace) SetRecycler(f func(interface{})) { + tr.mu.Lock() + tr.recycler = f + tr.mu.Unlock() +} + +func (tr *trace) SetTraceInfo(traceID, spanID uint64) { + tr.mu.Lock() + tr.traceID, tr.spanID = traceID, spanID + tr.mu.Unlock() +} + +func (tr *trace) SetMaxEvents(m int) { + tr.mu.Lock() + // Always keep at least three events: first, discarded count, last. + if len(tr.events) == 0 && m > 3 { + tr.maxEvents = m + } + tr.mu.Unlock() +} + +func (tr *trace) ref() { + atomic.AddInt32(&tr.refs, 1) +} + +func (tr *trace) unref() { + if atomic.AddInt32(&tr.refs, -1) == 0 { + tr.mu.RLock() + if tr.recycler != nil { + // freeTrace clears tr, so we hold tr.recycler and tr.events here. + go func(f func(interface{}), es []event) { + for _, e := range es { + if e.Recyclable { + f(e.What) + } + } + }(tr.recycler, tr.events) + } + tr.mu.RUnlock() + + freeTrace(tr) + } +} + +func (tr *trace) When() string { + return tr.Start.Format("2006/01/02 15:04:05.000000") +} + +func (tr *trace) ElapsedTime() string { + tr.mu.RLock() + t := tr.Elapsed + tr.mu.RUnlock() + + if t == 0 { + // Active trace. + t = time.Since(tr.Start) + } + return fmt.Sprintf("%.6f", t.Seconds()) +} + +func (tr *trace) Events() []event { + tr.mu.RLock() + defer tr.mu.RUnlock() + return tr.events +} + +var traceFreeList = make(chan *trace, 1000) // TODO(dsymonds): Use sync.Pool? + +// newTrace returns a trace ready to use. +func newTrace() *trace { + select { + case tr := <-traceFreeList: + return tr + default: + return new(trace) + } +} + +// freeTrace adds tr to traceFreeList if there's room. +// This is non-blocking. +func freeTrace(tr *trace) { + if DebugUseAfterFinish { + return // never reuse + } + tr.reset() + select { + case traceFreeList <- tr: + default: + } +} + +func elapsed(d time.Duration) string { + b := []byte(fmt.Sprintf("%.6f", d.Seconds())) + + // For subsecond durations, blank all zeros before decimal point, + // and all zeros between the decimal point and the first non-zero digit. + if d < time.Second { + dot := bytes.IndexByte(b, '.') + for i := 0; i < dot; i++ { + b[i] = ' ' + } + for i := dot + 1; i < len(b); i++ { + if b[i] == '0' { + b[i] = ' ' + } else { + break + } + } + } + + return string(b) +} + +var pageTmplCache *template.Template +var pageTmplOnce sync.Once + +func pageTmpl() *template.Template { + pageTmplOnce.Do(func() { + pageTmplCache = template.Must(template.New("Page").Funcs(template.FuncMap{ + "elapsed": elapsed, + "add": func(a, b int) int { return a + b }, + }).Parse(pageHTML)) + }) + return pageTmplCache +} + +const pageHTML = ` +{{template "Prolog" .}} +{{template "StatusTable" .}} +{{template "Epilog" .}} + +{{define "Prolog"}} + + + /debug/requests + + + + +

/debug/requests

+{{end}} {{/* end of Prolog */}} + +{{define "StatusTable"}} + + {{range $fam := .Families}} + + + + {{$n := index $.ActiveTraceCount $fam}} + + + {{$f := index $.CompletedTraces $fam}} + {{range $i, $b := $f.Buckets}} + {{$empty := $b.Empty}} + + {{end}} + + {{$nb := len $f.Buckets}} + + + + + + {{end}} +
{{$fam}} + {{if $n}}{{end}} + [{{$n}} active] + {{if $n}}{{end}} + + {{if not $empty}}{{end}} + [{{.Cond}}] + {{if not $empty}}{{end}} + + [minute] + + [hour] + + [total] +
+{{end}} {{/* end of StatusTable */}} + +{{define "Epilog"}} +{{if $.Traces}} +
+

Family: {{$.Family}}

+ +{{if or $.Expanded $.Traced}} + [Normal/Summary] +{{else}} + [Normal/Summary] +{{end}} + +{{if or (not $.Expanded) $.Traced}} + [Normal/Expanded] +{{else}} + [Normal/Expanded] +{{end}} + +{{if not $.Active}} + {{if or $.Expanded (not $.Traced)}} + [Traced/Summary] + {{else}} + [Traced/Summary] + {{end}} + {{if or (not $.Expanded) (not $.Traced)}} + [Traced/Expanded] + {{else}} + [Traced/Expanded] + {{end}} +{{end}} + +{{if $.Total}} +

Showing {{len $.Traces}} of {{$.Total}} traces.

+{{end}} + + + + + {{range $tr := $.Traces}} + + + + + {{/* TODO: include traceID/spanID */}} + + {{if $.Expanded}} + {{range $tr.Events}} + + + + + + {{end}} + {{end}} + {{end}} +
+ {{if $.Active}}Active{{else}}Completed{{end}} Requests +
WhenElapsed (s)
{{$tr.When}}{{$tr.ElapsedTime}}{{$tr.Title}}
{{.WhenString}}{{elapsed .Elapsed}}{{if or $.ShowSensitive (not .Sensitive)}}... {{.What}}{{else}}[redacted]{{end}}
+{{end}} {{/* if $.Traces */}} + +{{if $.Histogram}} +

Latency (µs) of {{$.Family}} over {{$.HistogramWindow}}

+{{$.Histogram}} +{{end}} {{/* if $.Histogram */}} + + + +{{end}} {{/* end of Epilog */}} +` diff --git a/vendor/golang.org/x/text/AUTHORS b/vendor/golang.org/x/text/AUTHORS new file mode 100644 index 0000000..15167cd --- /dev/null +++ b/vendor/golang.org/x/text/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/text/CONTRIBUTORS b/vendor/golang.org/x/text/CONTRIBUTORS new file mode 100644 index 0000000..1c4577e --- /dev/null +++ b/vendor/golang.org/x/text/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/text/LICENSE b/vendor/golang.org/x/text/LICENSE new file mode 100644 index 0000000..6a66aea --- /dev/null +++ b/vendor/golang.org/x/text/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/text/PATENTS b/vendor/golang.org/x/text/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/vendor/golang.org/x/text/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule.go b/vendor/golang.org/x/text/secure/bidirule/bidirule.go new file mode 100644 index 0000000..e2b70f7 --- /dev/null +++ b/vendor/golang.org/x/text/secure/bidirule/bidirule.go @@ -0,0 +1,336 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package bidirule implements the Bidi Rule defined by RFC 5893. +// +// This package is under development. The API may change without notice and +// without preserving backward compatibility. +package bidirule + +import ( + "errors" + "unicode/utf8" + + "golang.org/x/text/transform" + "golang.org/x/text/unicode/bidi" +) + +// This file contains an implementation of RFC 5893: Right-to-Left Scripts for +// Internationalized Domain Names for Applications (IDNA) +// +// A label is an individual component of a domain name. Labels are usually +// shown separated by dots; for example, the domain name "www.example.com" is +// composed of three labels: "www", "example", and "com". +// +// An RTL label is a label that contains at least one character of class R, AL, +// or AN. An LTR label is any label that is not an RTL label. +// +// A "Bidi domain name" is a domain name that contains at least one RTL label. +// +// The following guarantees can be made based on the above: +// +// o In a domain name consisting of only labels that satisfy the rule, +// the requirements of Section 3 are satisfied. Note that even LTR +// labels and pure ASCII labels have to be tested. +// +// o In a domain name consisting of only LDH labels (as defined in the +// Definitions document [RFC5890]) and labels that satisfy the rule, +// the requirements of Section 3 are satisfied as long as a label +// that starts with an ASCII digit does not come after a +// right-to-left label. +// +// No guarantee is given for other combinations. + +// ErrInvalid indicates a label is invalid according to the Bidi Rule. +var ErrInvalid = errors.New("bidirule: failed Bidi Rule") + +type ruleState uint8 + +const ( + ruleInitial ruleState = iota + ruleLTR + ruleLTRFinal + ruleRTL + ruleRTLFinal + ruleInvalid +) + +type ruleTransition struct { + next ruleState + mask uint16 +} + +var transitions = [...][2]ruleTransition{ + // [2.1] The first character must be a character with Bidi property L, R, or + // AL. If it has the R or AL property, it is an RTL label; if it has the L + // property, it is an LTR label. + ruleInitial: { + {ruleLTRFinal, 1 << bidi.L}, + {ruleRTLFinal, 1< 0 bytes returned + // before considering the error". + if r.src0 != r.src1 || r.err != nil { + r.dst0 = 0 + r.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF) + r.src0 += n + + switch { + case err == nil: + if r.src0 != r.src1 { + r.err = errInconsistentByteCount + } + // The Transform call was successful; we are complete if we + // cannot read more bytes into src. + r.transformComplete = r.err != nil + continue + case err == ErrShortDst && (r.dst1 != 0 || n != 0): + // Make room in dst by copying out, and try again. + continue + case err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil: + // Read more bytes into src via the code below, and try again. + default: + r.transformComplete = true + // The reader error (r.err) takes precedence over the + // transformer error (err) unless r.err is nil or io.EOF. + if r.err == nil || r.err == io.EOF { + r.err = err + } + continue + } + } + + // Move any untransformed source bytes to the start of the buffer + // and read more bytes. + if r.src0 != 0 { + r.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1]) + } + n, r.err = r.r.Read(r.src[r.src1:]) + r.src1 += n + } +} + +// TODO: implement ReadByte (and ReadRune??). + +// Writer wraps another io.Writer by transforming the bytes read. +// The user needs to call Close to flush unwritten bytes that may +// be buffered. +type Writer struct { + w io.Writer + t Transformer + dst []byte + + // src[:n] contains bytes that have not yet passed through t. + src []byte + n int +} + +// NewWriter returns a new Writer that wraps w by transforming the bytes written +// via t. It calls Reset on t. +func NewWriter(w io.Writer, t Transformer) *Writer { + t.Reset() + return &Writer{ + w: w, + t: t, + dst: make([]byte, defaultBufSize), + src: make([]byte, defaultBufSize), + } +} + +// Write implements the io.Writer interface. If there are not enough +// bytes available to complete a Transform, the bytes will be buffered +// for the next write. Call Close to convert the remaining bytes. +func (w *Writer) Write(data []byte) (n int, err error) { + src := data + if w.n > 0 { + // Append bytes from data to the last remainder. + // TODO: limit the amount copied on first try. + n = copy(w.src[w.n:], data) + w.n += n + src = w.src[:w.n] + } + for { + nDst, nSrc, err := w.t.Transform(w.dst, src, false) + if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { + return n, werr + } + src = src[nSrc:] + if w.n == 0 { + n += nSrc + } else if len(src) <= n { + // Enough bytes from w.src have been consumed. We make src point + // to data instead to reduce the copying. + w.n = 0 + n -= len(src) + src = data[n:] + if n < len(data) && (err == nil || err == ErrShortSrc) { + continue + } + } + switch err { + case ErrShortDst: + // This error is okay as long as we are making progress. + if nDst > 0 || nSrc > 0 { + continue + } + case ErrShortSrc: + if len(src) < len(w.src) { + m := copy(w.src, src) + // If w.n > 0, bytes from data were already copied to w.src and n + // was already set to the number of bytes consumed. + if w.n == 0 { + n += m + } + w.n = m + err = nil + } else if nDst > 0 || nSrc > 0 { + // Not enough buffer to store the remainder. Keep processing as + // long as there is progress. Without this case, transforms that + // require a lookahead larger than the buffer may result in an + // error. This is not something one may expect to be common in + // practice, but it may occur when buffers are set to small + // sizes during testing. + continue + } + case nil: + if w.n > 0 { + err = errInconsistentByteCount + } + } + return n, err + } +} + +// Close implements the io.Closer interface. +func (w *Writer) Close() error { + src := w.src[:w.n] + for { + nDst, nSrc, err := w.t.Transform(w.dst, src, true) + if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { + return werr + } + if err != ErrShortDst { + return err + } + src = src[nSrc:] + } +} + +type nop struct{ NopResetter } + +func (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := copy(dst, src) + if n < len(src) { + err = ErrShortDst + } + return n, n, err +} + +func (nop) Span(src []byte, atEOF bool) (n int, err error) { + return len(src), nil +} + +type discard struct{ NopResetter } + +func (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + return 0, len(src), nil +} + +var ( + // Discard is a Transformer for which all Transform calls succeed + // by consuming all bytes and writing nothing. + Discard Transformer = discard{} + + // Nop is a SpanningTransformer that copies src to dst. + Nop SpanningTransformer = nop{} +) + +// chain is a sequence of links. A chain with N Transformers has N+1 links and +// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst +// buffers given to chain.Transform and the middle N-1 buffers are intermediate +// buffers owned by the chain. The i'th link transforms bytes from the i'th +// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer +// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N). +type chain struct { + link []link + err error + // errStart is the index at which the error occurred plus 1. Processing + // errStart at this level at the next call to Transform. As long as + // errStart > 0, chain will not consume any more source bytes. + errStart int +} + +func (c *chain) fatalError(errIndex int, err error) { + if i := errIndex + 1; i > c.errStart { + c.errStart = i + c.err = err + } +} + +type link struct { + t Transformer + // b[p:n] holds the bytes to be transformed by t. + b []byte + p int + n int +} + +func (l *link) src() []byte { + return l.b[l.p:l.n] +} + +func (l *link) dst() []byte { + return l.b[l.n:] +} + +// Chain returns a Transformer that applies t in sequence. +func Chain(t ...Transformer) Transformer { + if len(t) == 0 { + return nop{} + } + c := &chain{link: make([]link, len(t)+1)} + for i, tt := range t { + c.link[i].t = tt + } + // Allocate intermediate buffers. + b := make([][defaultBufSize]byte, len(t)-1) + for i := range b { + c.link[i+1].b = b[i][:] + } + return c +} + +// Reset resets the state of Chain. It calls Reset on all the Transformers. +func (c *chain) Reset() { + for i, l := range c.link { + if l.t != nil { + l.t.Reset() + } + c.link[i].p, c.link[i].n = 0, 0 + } +} + +// TODO: make chain use Span (is going to be fun to implement!) + +// Transform applies the transformers of c in sequence. +func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + // Set up src and dst in the chain. + srcL := &c.link[0] + dstL := &c.link[len(c.link)-1] + srcL.b, srcL.p, srcL.n = src, 0, len(src) + dstL.b, dstL.n = dst, 0 + var lastFull, needProgress bool // for detecting progress + + // i is the index of the next Transformer to apply, for i in [low, high]. + // low is the lowest index for which c.link[low] may still produce bytes. + // high is the highest index for which c.link[high] has a Transformer. + // The error returned by Transform determines whether to increase or + // decrease i. We try to completely fill a buffer before converting it. + for low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; { + in, out := &c.link[i], &c.link[i+1] + nDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i) + out.n += nDst + in.p += nSrc + if i > 0 && in.p == in.n { + in.p, in.n = 0, 0 + } + needProgress, lastFull = lastFull, false + switch err0 { + case ErrShortDst: + // Process the destination buffer next. Return if we are already + // at the high index. + if i == high { + return dstL.n, srcL.p, ErrShortDst + } + if out.n != 0 { + i++ + // If the Transformer at the next index is not able to process any + // source bytes there is nothing that can be done to make progress + // and the bytes will remain unprocessed. lastFull is used to + // detect this and break out of the loop with a fatal error. + lastFull = true + continue + } + // The destination buffer was too small, but is completely empty. + // Return a fatal error as this transformation can never complete. + c.fatalError(i, errShortInternal) + case ErrShortSrc: + if i == 0 { + // Save ErrShortSrc in err. All other errors take precedence. + err = ErrShortSrc + break + } + // Source bytes were depleted before filling up the destination buffer. + // Verify we made some progress, move the remaining bytes to the errStart + // and try to get more source bytes. + if needProgress && nSrc == 0 || in.n-in.p == len(in.b) { + // There were not enough source bytes to proceed while the source + // buffer cannot hold any more bytes. Return a fatal error as this + // transformation can never complete. + c.fatalError(i, errShortInternal) + break + } + // in.b is an internal buffer and we can make progress. + in.p, in.n = 0, copy(in.b, in.src()) + fallthrough + case nil: + // if i == low, we have depleted the bytes at index i or any lower levels. + // In that case we increase low and i. In all other cases we decrease i to + // fetch more bytes before proceeding to the next index. + if i > low { + i-- + continue + } + default: + c.fatalError(i, err0) + } + // Exhausted level low or fatal error: increase low and continue + // to process the bytes accepted so far. + i++ + low = i + } + + // If c.errStart > 0, this means we found a fatal error. We will clear + // all upstream buffers. At this point, no more progress can be made + // downstream, as Transform would have bailed while handling ErrShortDst. + if c.errStart > 0 { + for i := 1; i < c.errStart; i++ { + c.link[i].p, c.link[i].n = 0, 0 + } + err, c.errStart, c.err = c.err, 0, nil + } + return dstL.n, srcL.p, err +} + +// Deprecated: Use runes.Remove instead. +func RemoveFunc(f func(r rune) bool) Transformer { + return removeF(f) +} + +type removeF func(r rune) bool + +func (removeF) Reset() {} + +// Transform implements the Transformer interface. +func (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + for r, sz := rune(0), 0; len(src) > 0; src = src[sz:] { + + if r = rune(src[0]); r < utf8.RuneSelf { + sz = 1 + } else { + r, sz = utf8.DecodeRune(src) + + if sz == 1 { + // Invalid rune. + if !atEOF && !utf8.FullRune(src) { + err = ErrShortSrc + break + } + // We replace illegal bytes with RuneError. Not doing so might + // otherwise turn a sequence of invalid UTF-8 into valid UTF-8. + // The resulting byte sequence may subsequently contain runes + // for which t(r) is true that were passed unnoticed. + if !t(r) { + if nDst+3 > len(dst) { + err = ErrShortDst + break + } + nDst += copy(dst[nDst:], "\uFFFD") + } + nSrc++ + continue + } + } + + if !t(r) { + if nDst+sz > len(dst) { + err = ErrShortDst + break + } + nDst += copy(dst[nDst:], src[:sz]) + } + nSrc += sz + } + return +} + +// grow returns a new []byte that is longer than b, and copies the first n bytes +// of b to the start of the new slice. +func grow(b []byte, n int) []byte { + m := len(b) + if m <= 32 { + m = 64 + } else if m <= 256 { + m *= 2 + } else { + m += m >> 1 + } + buf := make([]byte, m) + copy(buf, b[:n]) + return buf +} + +const initialBufSize = 128 + +// String returns a string with the result of converting s[:n] using t, where +// n <= len(s). If err == nil, n will be len(s). It calls Reset on t. +func String(t Transformer, s string) (result string, n int, err error) { + t.Reset() + if s == "" { + // Fast path for the common case for empty input. Results in about a + // 86% reduction of running time for BenchmarkStringLowerEmpty. + if _, _, err := t.Transform(nil, nil, true); err == nil { + return "", 0, nil + } + } + + // Allocate only once. Note that both dst and src escape when passed to + // Transform. + buf := [2 * initialBufSize]byte{} + dst := buf[:initialBufSize:initialBufSize] + src := buf[initialBufSize : 2*initialBufSize] + + // The input string s is transformed in multiple chunks (starting with a + // chunk size of initialBufSize). nDst and nSrc are per-chunk (or + // per-Transform-call) indexes, pDst and pSrc are overall indexes. + nDst, nSrc := 0, 0 + pDst, pSrc := 0, 0 + + // pPrefix is the length of a common prefix: the first pPrefix bytes of the + // result will equal the first pPrefix bytes of s. It is not guaranteed to + // be the largest such value, but if pPrefix, len(result) and len(s) are + // all equal after the final transform (i.e. calling Transform with atEOF + // being true returned nil error) then we don't need to allocate a new + // result string. + pPrefix := 0 + for { + // Invariant: pDst == pPrefix && pSrc == pPrefix. + + n := copy(src, s[pSrc:]) + nDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s)) + pDst += nDst + pSrc += nSrc + + // TODO: let transformers implement an optional Spanner interface, akin + // to norm's QuickSpan. This would even allow us to avoid any allocation. + if !bytes.Equal(dst[:nDst], src[:nSrc]) { + break + } + pPrefix = pSrc + if err == ErrShortDst { + // A buffer can only be short if a transformer modifies its input. + break + } else if err == ErrShortSrc { + if nSrc == 0 { + // No progress was made. + break + } + // Equal so far and !atEOF, so continue checking. + } else if err != nil || pPrefix == len(s) { + return string(s[:pPrefix]), pPrefix, err + } + } + // Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc. + + // We have transformed the first pSrc bytes of the input s to become pDst + // transformed bytes. Those transformed bytes are discontiguous: the first + // pPrefix of them equal s[:pPrefix] and the last nDst of them equal + // dst[:nDst]. We copy them around, into a new dst buffer if necessary, so + // that they become one contiguous slice: dst[:pDst]. + if pPrefix != 0 { + newDst := dst + if pDst > len(newDst) { + newDst = make([]byte, len(s)+nDst-nSrc) + } + copy(newDst[pPrefix:pDst], dst[:nDst]) + copy(newDst[:pPrefix], s[:pPrefix]) + dst = newDst + } + + // Prevent duplicate Transform calls with atEOF being true at the end of + // the input. Also return if we have an unrecoverable error. + if (err == nil && pSrc == len(s)) || + (err != nil && err != ErrShortDst && err != ErrShortSrc) { + return string(dst[:pDst]), pSrc, err + } + + // Transform the remaining input, growing dst and src buffers as necessary. + for { + n := copy(src, s[pSrc:]) + atEOF := pSrc+n == len(s) + nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], atEOF) + pDst += nDst + pSrc += nSrc + + // If we got ErrShortDst or ErrShortSrc, do not grow as long as we can + // make progress. This may avoid excessive allocations. + if err == ErrShortDst { + if nDst == 0 { + dst = grow(dst, pDst) + } + } else if err == ErrShortSrc { + if atEOF { + return string(dst[:pDst]), pSrc, err + } + if nSrc == 0 { + src = grow(src, 0) + } + } else if err != nil || pSrc == len(s) { + return string(dst[:pDst]), pSrc, err + } + } +} + +// Bytes returns a new byte slice with the result of converting b[:n] using t, +// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t. +func Bytes(t Transformer, b []byte) (result []byte, n int, err error) { + return doAppend(t, 0, make([]byte, len(b)), b) +} + +// Append appends the result of converting src[:n] using t to dst, where +// n <= len(src), If err == nil, n will be len(src). It calls Reset on t. +func Append(t Transformer, dst, src []byte) (result []byte, n int, err error) { + if len(dst) == cap(dst) { + n := len(src) + len(dst) // It is okay for this to be 0. + b := make([]byte, n) + dst = b[:copy(b, dst)] + } + return doAppend(t, len(dst), dst[:cap(dst)], src) +} + +func doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) { + t.Reset() + pSrc := 0 + for { + nDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true) + pDst += nDst + pSrc += nSrc + if err != ErrShortDst { + return dst[:pDst], pSrc, err + } + + // Grow the destination buffer, but do not grow as long as we can make + // progress. This may avoid excessive allocations. + if nDst == 0 { + dst = grow(dst, pDst) + } + } +} diff --git a/vendor/golang.org/x/text/unicode/bidi/bidi.go b/vendor/golang.org/x/text/unicode/bidi/bidi.go new file mode 100644 index 0000000..fd05760 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/bidi.go @@ -0,0 +1,359 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run gen.go gen_trieval.go gen_ranges.go + +// Package bidi contains functionality for bidirectional text support. +// +// See https://www.unicode.org/reports/tr9. +// +// NOTE: UNDER CONSTRUCTION. This API may change in backwards incompatible ways +// and without notice. +package bidi // import "golang.org/x/text/unicode/bidi" + +// TODO +// - Transformer for reordering? +// - Transformer (validator, really) for Bidi Rule. + +import ( + "bytes" +) + +// This API tries to avoid dealing with embedding levels for now. Under the hood +// these will be computed, but the question is to which extent the user should +// know they exist. We should at some point allow the user to specify an +// embedding hierarchy, though. + +// A Direction indicates the overall flow of text. +type Direction int + +const ( + // LeftToRight indicates the text contains no right-to-left characters and + // that either there are some left-to-right characters or the option + // DefaultDirection(LeftToRight) was passed. + LeftToRight Direction = iota + + // RightToLeft indicates the text contains no left-to-right characters and + // that either there are some right-to-left characters or the option + // DefaultDirection(RightToLeft) was passed. + RightToLeft + + // Mixed indicates text contains both left-to-right and right-to-left + // characters. + Mixed + + // Neutral means that text contains no left-to-right and right-to-left + // characters and that no default direction has been set. + Neutral +) + +type options struct { + defaultDirection Direction +} + +// An Option is an option for Bidi processing. +type Option func(*options) + +// ICU allows the user to define embedding levels. This may be used, for example, +// to use hierarchical structure of markup languages to define embeddings. +// The following option may be a way to expose this functionality in this API. +// // LevelFunc sets a function that associates nesting levels with the given text. +// // The levels function will be called with monotonically increasing values for p. +// func LevelFunc(levels func(p int) int) Option { +// panic("unimplemented") +// } + +// DefaultDirection sets the default direction for a Paragraph. The direction is +// overridden if the text contains directional characters. +func DefaultDirection(d Direction) Option { + return func(opts *options) { + opts.defaultDirection = d + } +} + +// A Paragraph holds a single Paragraph for Bidi processing. +type Paragraph struct { + p []byte + o Ordering + opts []Option + types []Class + pairTypes []bracketType + pairValues []rune + runes []rune + options options +} + +// Initialize the p.pairTypes, p.pairValues and p.types from the input previously +// set by p.SetBytes() or p.SetString(). Also limit the input up to (and including) a paragraph +// separator (bidi class B). +// +// The function p.Order() needs these values to be set, so this preparation could be postponed. +// But since the SetBytes and SetStrings functions return the length of the input up to the paragraph +// separator, the whole input needs to be processed anyway and should not be done twice. +// +// The function has the same return values as SetBytes() / SetString() +func (p *Paragraph) prepareInput() (n int, err error) { + p.runes = bytes.Runes(p.p) + bytecount := 0 + // clear slices from previous SetString or SetBytes + p.pairTypes = nil + p.pairValues = nil + p.types = nil + + for _, r := range p.runes { + props, i := LookupRune(r) + bytecount += i + cls := props.Class() + if cls == B { + return bytecount, nil + } + p.types = append(p.types, cls) + if props.IsOpeningBracket() { + p.pairTypes = append(p.pairTypes, bpOpen) + p.pairValues = append(p.pairValues, r) + } else if props.IsBracket() { + // this must be a closing bracket, + // since IsOpeningBracket is not true + p.pairTypes = append(p.pairTypes, bpClose) + p.pairValues = append(p.pairValues, r) + } else { + p.pairTypes = append(p.pairTypes, bpNone) + p.pairValues = append(p.pairValues, 0) + } + } + return bytecount, nil +} + +// SetBytes configures p for the given paragraph text. It replaces text +// previously set by SetBytes or SetString. If b contains a paragraph separator +// it will only process the first paragraph and report the number of bytes +// consumed from b including this separator. Error may be non-nil if options are +// given. +func (p *Paragraph) SetBytes(b []byte, opts ...Option) (n int, err error) { + p.p = b + p.opts = opts + return p.prepareInput() +} + +// SetString configures s for the given paragraph text. It replaces text +// previously set by SetBytes or SetString. If s contains a paragraph separator +// it will only process the first paragraph and report the number of bytes +// consumed from s including this separator. Error may be non-nil if options are +// given. +func (p *Paragraph) SetString(s string, opts ...Option) (n int, err error) { + p.p = []byte(s) + p.opts = opts + return p.prepareInput() +} + +// IsLeftToRight reports whether the principle direction of rendering for this +// paragraphs is left-to-right. If this returns false, the principle direction +// of rendering is right-to-left. +func (p *Paragraph) IsLeftToRight() bool { + return p.Direction() == LeftToRight +} + +// Direction returns the direction of the text of this paragraph. +// +// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral. +func (p *Paragraph) Direction() Direction { + return p.o.Direction() +} + +// TODO: what happens if the position is > len(input)? This should return an error. + +// RunAt reports the Run at the given position of the input text. +// +// This method can be used for computing line breaks on paragraphs. +func (p *Paragraph) RunAt(pos int) Run { + c := 0 + runNumber := 0 + for i, r := range p.o.runes { + c += len(r) + if pos < c { + runNumber = i + } + } + return p.o.Run(runNumber) +} + +func calculateOrdering(levels []level, runes []rune) Ordering { + var curDir Direction + + prevDir := Neutral + prevI := 0 + + o := Ordering{} + // lvl = 0,2,4,...: left to right + // lvl = 1,3,5,...: right to left + for i, lvl := range levels { + if lvl%2 == 0 { + curDir = LeftToRight + } else { + curDir = RightToLeft + } + if curDir != prevDir { + if i > 0 { + o.runes = append(o.runes, runes[prevI:i]) + o.directions = append(o.directions, prevDir) + o.startpos = append(o.startpos, prevI) + } + prevI = i + prevDir = curDir + } + } + o.runes = append(o.runes, runes[prevI:]) + o.directions = append(o.directions, prevDir) + o.startpos = append(o.startpos, prevI) + return o +} + +// Order computes the visual ordering of all the runs in a Paragraph. +func (p *Paragraph) Order() (Ordering, error) { + if len(p.types) == 0 { + return Ordering{}, nil + } + + for _, fn := range p.opts { + fn(&p.options) + } + lvl := level(-1) + if p.options.defaultDirection == RightToLeft { + lvl = 1 + } + para, err := newParagraph(p.types, p.pairTypes, p.pairValues, lvl) + if err != nil { + return Ordering{}, err + } + + levels := para.getLevels([]int{len(p.types)}) + + p.o = calculateOrdering(levels, p.runes) + return p.o, nil +} + +// Line computes the visual ordering of runs for a single line starting and +// ending at the given positions in the original text. +func (p *Paragraph) Line(start, end int) (Ordering, error) { + lineTypes := p.types[start:end] + para, err := newParagraph(lineTypes, p.pairTypes[start:end], p.pairValues[start:end], -1) + if err != nil { + return Ordering{}, err + } + levels := para.getLevels([]int{len(lineTypes)}) + o := calculateOrdering(levels, p.runes[start:end]) + return o, nil +} + +// An Ordering holds the computed visual order of runs of a Paragraph. Calling +// SetBytes or SetString on the originating Paragraph invalidates an Ordering. +// The methods of an Ordering should only be called by one goroutine at a time. +type Ordering struct { + runes [][]rune + directions []Direction + startpos []int +} + +// Direction reports the directionality of the runs. +// +// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral. +func (o *Ordering) Direction() Direction { + return o.directions[0] +} + +// NumRuns returns the number of runs. +func (o *Ordering) NumRuns() int { + return len(o.runes) +} + +// Run returns the ith run within the ordering. +func (o *Ordering) Run(i int) Run { + r := Run{ + runes: o.runes[i], + direction: o.directions[i], + startpos: o.startpos[i], + } + return r +} + +// TODO: perhaps with options. +// // Reorder creates a reader that reads the runes in visual order per character. +// // Modifiers remain after the runes they modify. +// func (l *Runs) Reorder() io.Reader { +// panic("unimplemented") +// } + +// A Run is a continuous sequence of characters of a single direction. +type Run struct { + runes []rune + direction Direction + startpos int +} + +// String returns the text of the run in its original order. +func (r *Run) String() string { + return string(r.runes) +} + +// Bytes returns the text of the run in its original order. +func (r *Run) Bytes() []byte { + return []byte(r.String()) +} + +// TODO: methods for +// - Display order +// - headers and footers +// - bracket replacement. + +// Direction reports the direction of the run. +func (r *Run) Direction() Direction { + return r.direction +} + +// Pos returns the position of the Run within the text passed to SetBytes or SetString of the +// originating Paragraph value. +func (r *Run) Pos() (start, end int) { + return r.startpos, r.startpos + len(r.runes) - 1 +} + +// AppendReverse reverses the order of characters of in, appends them to out, +// and returns the result. Modifiers will still follow the runes they modify. +// Brackets are replaced with their counterparts. +func AppendReverse(out, in []byte) []byte { + ret := make([]byte, len(in)+len(out)) + copy(ret, out) + inRunes := bytes.Runes(in) + + for i, r := range inRunes { + prop, _ := LookupRune(r) + if prop.IsBracket() { + inRunes[i] = prop.reverseBracket(r) + } + } + + for i, j := 0, len(inRunes)-1; i < j; i, j = i+1, j-1 { + inRunes[i], inRunes[j] = inRunes[j], inRunes[i] + } + copy(ret[len(out):], string(inRunes)) + + return ret +} + +// ReverseString reverses the order of characters in s and returns a new string. +// Modifiers will still follow the runes they modify. Brackets are replaced with +// their counterparts. +func ReverseString(s string) string { + input := []rune(s) + li := len(input) + ret := make([]rune, li) + for i, r := range input { + prop, _ := LookupRune(r) + if prop.IsBracket() { + ret[li-i-1] = prop.reverseBracket(r) + } else { + ret[li-i-1] = r + } + } + return string(ret) +} diff --git a/vendor/golang.org/x/text/unicode/bidi/bracket.go b/vendor/golang.org/x/text/unicode/bidi/bracket.go new file mode 100644 index 0000000..1853939 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/bracket.go @@ -0,0 +1,335 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bidi + +import ( + "container/list" + "fmt" + "sort" +) + +// This file contains a port of the reference implementation of the +// Bidi Parentheses Algorithm: +// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/BidiPBAReference.java +// +// The implementation in this file covers definitions BD14-BD16 and rule N0 +// of UAX#9. +// +// Some preprocessing is done for each rune before data is passed to this +// algorithm: +// - opening and closing brackets are identified +// - a bracket pair type, like '(' and ')' is assigned a unique identifier that +// is identical for the opening and closing bracket. It is left to do these +// mappings. +// - The BPA algorithm requires that bracket characters that are canonical +// equivalents of each other be able to be substituted for each other. +// It is the responsibility of the caller to do this canonicalization. +// +// In implementing BD16, this implementation departs slightly from the "logical" +// algorithm defined in UAX#9. In particular, the stack referenced there +// supports operations that go beyond a "basic" stack. An equivalent +// implementation based on a linked list is used here. + +// Bidi_Paired_Bracket_Type +// BD14. An opening paired bracket is a character whose +// Bidi_Paired_Bracket_Type property value is Open. +// +// BD15. A closing paired bracket is a character whose +// Bidi_Paired_Bracket_Type property value is Close. +type bracketType byte + +const ( + bpNone bracketType = iota + bpOpen + bpClose +) + +// bracketPair holds a pair of index values for opening and closing bracket +// location of a bracket pair. +type bracketPair struct { + opener int + closer int +} + +func (b *bracketPair) String() string { + return fmt.Sprintf("(%v, %v)", b.opener, b.closer) +} + +// bracketPairs is a slice of bracketPairs with a sort.Interface implementation. +type bracketPairs []bracketPair + +func (b bracketPairs) Len() int { return len(b) } +func (b bracketPairs) Swap(i, j int) { b[i], b[j] = b[j], b[i] } +func (b bracketPairs) Less(i, j int) bool { return b[i].opener < b[j].opener } + +// resolvePairedBrackets runs the paired bracket part of the UBA algorithm. +// +// For each rune, it takes the indexes into the original string, the class the +// bracket type (in pairTypes) and the bracket identifier (pairValues). It also +// takes the direction type for the start-of-sentence and the embedding level. +// +// The identifiers for bracket types are the rune of the canonicalized opening +// bracket for brackets (open or close) or 0 for runes that are not brackets. +func resolvePairedBrackets(s *isolatingRunSequence) { + p := bracketPairer{ + sos: s.sos, + openers: list.New(), + codesIsolatedRun: s.types, + indexes: s.indexes, + } + dirEmbed := L + if s.level&1 != 0 { + dirEmbed = R + } + p.locateBrackets(s.p.pairTypes, s.p.pairValues) + p.resolveBrackets(dirEmbed, s.p.initialTypes) +} + +type bracketPairer struct { + sos Class // direction corresponding to start of sequence + + // The following is a restatement of BD 16 using non-algorithmic language. + // + // A bracket pair is a pair of characters consisting of an opening + // paired bracket and a closing paired bracket such that the + // Bidi_Paired_Bracket property value of the former equals the latter, + // subject to the following constraints. + // - both characters of a pair occur in the same isolating run sequence + // - the closing character of a pair follows the opening character + // - any bracket character can belong at most to one pair, the earliest possible one + // - any bracket character not part of a pair is treated like an ordinary character + // - pairs may nest properly, but their spans may not overlap otherwise + + // Bracket characters with canonical decompositions are supposed to be + // treated as if they had been normalized, to allow normalized and non- + // normalized text to give the same result. In this implementation that step + // is pushed out to the caller. The caller has to ensure that the pairValue + // slices contain the rune of the opening bracket after normalization for + // any opening or closing bracket. + + openers *list.List // list of positions for opening brackets + + // bracket pair positions sorted by location of opening bracket + pairPositions bracketPairs + + codesIsolatedRun []Class // directional bidi codes for an isolated run + indexes []int // array of index values into the original string + +} + +// matchOpener reports whether characters at given positions form a matching +// bracket pair. +func (p *bracketPairer) matchOpener(pairValues []rune, opener, closer int) bool { + return pairValues[p.indexes[opener]] == pairValues[p.indexes[closer]] +} + +const maxPairingDepth = 63 + +// locateBrackets locates matching bracket pairs according to BD16. +// +// This implementation uses a linked list instead of a stack, because, while +// elements are added at the front (like a push) they are not generally removed +// in atomic 'pop' operations, reducing the benefit of the stack archetype. +func (p *bracketPairer) locateBrackets(pairTypes []bracketType, pairValues []rune) { + // traverse the run + // do that explicitly (not in a for-each) so we can record position + for i, index := range p.indexes { + + // look at the bracket type for each character + if pairTypes[index] == bpNone || p.codesIsolatedRun[i] != ON { + // continue scanning + continue + } + switch pairTypes[index] { + case bpOpen: + // check if maximum pairing depth reached + if p.openers.Len() == maxPairingDepth { + p.openers.Init() + return + } + // remember opener location, most recent first + p.openers.PushFront(i) + + case bpClose: + // see if there is a match + count := 0 + for elem := p.openers.Front(); elem != nil; elem = elem.Next() { + count++ + opener := elem.Value.(int) + if p.matchOpener(pairValues, opener, i) { + // if the opener matches, add nested pair to the ordered list + p.pairPositions = append(p.pairPositions, bracketPair{opener, i}) + // remove up to and including matched opener + for ; count > 0; count-- { + p.openers.Remove(p.openers.Front()) + } + break + } + } + sort.Sort(p.pairPositions) + // if we get here, the closing bracket matched no openers + // and gets ignored + } + } +} + +// Bracket pairs within an isolating run sequence are processed as units so +// that both the opening and the closing paired bracket in a pair resolve to +// the same direction. +// +// N0. Process bracket pairs in an isolating run sequence sequentially in +// the logical order of the text positions of the opening paired brackets +// using the logic given below. Within this scope, bidirectional types EN +// and AN are treated as R. +// +// Identify the bracket pairs in the current isolating run sequence +// according to BD16. For each bracket-pair element in the list of pairs of +// text positions: +// +// a Inspect the bidirectional types of the characters enclosed within the +// bracket pair. +// +// b If any strong type (either L or R) matching the embedding direction is +// found, set the type for both brackets in the pair to match the embedding +// direction. +// +// o [ e ] o -> o e e e o +// +// o [ o e ] -> o e o e e +// +// o [ NI e ] -> o e NI e e +// +// c Otherwise, if a strong type (opposite the embedding direction) is +// found, test for adjacent strong types as follows: 1 First, check +// backwards before the opening paired bracket until the first strong type +// (L, R, or sos) is found. If that first preceding strong type is opposite +// the embedding direction, then set the type for both brackets in the pair +// to that type. 2 Otherwise, set the type for both brackets in the pair to +// the embedding direction. +// +// o [ o ] e -> o o o o e +// +// o [ o NI ] o -> o o o NI o o +// +// e [ o ] o -> e e o e o +// +// e [ o ] e -> e e o e e +// +// e ( o [ o ] NI ) e -> e e o o o o NI e e +// +// d Otherwise, do not set the type for the current bracket pair. Note that +// if the enclosed text contains no strong types the paired brackets will +// both resolve to the same level when resolved individually using rules N1 +// and N2. +// +// e ( NI ) o -> e ( NI ) o + +// getStrongTypeN0 maps character's directional code to strong type as required +// by rule N0. +// +// TODO: have separate type for "strong" directionality. +func (p *bracketPairer) getStrongTypeN0(index int) Class { + switch p.codesIsolatedRun[index] { + // in the scope of N0, number types are treated as R + case EN, AN, AL, R: + return R + case L: + return L + default: + return ON + } +} + +// classifyPairContent reports the strong types contained inside a Bracket Pair, +// assuming the given embedding direction. +// +// It returns ON if no strong type is found. If a single strong type is found, +// it returns this type. Otherwise it returns the embedding direction. +// +// TODO: use separate type for "strong" directionality. +func (p *bracketPairer) classifyPairContent(loc bracketPair, dirEmbed Class) Class { + dirOpposite := ON + for i := loc.opener + 1; i < loc.closer; i++ { + dir := p.getStrongTypeN0(i) + if dir == ON { + continue + } + if dir == dirEmbed { + return dir // type matching embedding direction found + } + dirOpposite = dir + } + // return ON if no strong type found, or class opposite to dirEmbed + return dirOpposite +} + +// classBeforePair determines which strong types are present before a Bracket +// Pair. Return R or L if strong type found, otherwise ON. +func (p *bracketPairer) classBeforePair(loc bracketPair) Class { + for i := loc.opener - 1; i >= 0; i-- { + if dir := p.getStrongTypeN0(i); dir != ON { + return dir + } + } + // no strong types found, return sos + return p.sos +} + +// assignBracketType implements rule N0 for a single bracket pair. +func (p *bracketPairer) assignBracketType(loc bracketPair, dirEmbed Class, initialTypes []Class) { + // rule "N0, a", inspect contents of pair + dirPair := p.classifyPairContent(loc, dirEmbed) + + // dirPair is now L, R, or N (no strong type found) + + // the following logical tests are performed out of order compared to + // the statement of the rules but yield the same results + if dirPair == ON { + return // case "d" - nothing to do + } + + if dirPair != dirEmbed { + // case "c": strong type found, opposite - check before (c.1) + dirPair = p.classBeforePair(loc) + if dirPair == dirEmbed || dirPair == ON { + // no strong opposite type found before - use embedding (c.2) + dirPair = dirEmbed + } + } + // else: case "b", strong type found matching embedding, + // no explicit action needed, as dirPair is already set to embedding + // direction + + // set the bracket types to the type found + p.setBracketsToType(loc, dirPair, initialTypes) +} + +func (p *bracketPairer) setBracketsToType(loc bracketPair, dirPair Class, initialTypes []Class) { + p.codesIsolatedRun[loc.opener] = dirPair + p.codesIsolatedRun[loc.closer] = dirPair + + for i := loc.opener + 1; i < loc.closer; i++ { + index := p.indexes[i] + if initialTypes[index] != NSM { + break + } + p.codesIsolatedRun[i] = dirPair + } + + for i := loc.closer + 1; i < len(p.indexes); i++ { + index := p.indexes[i] + if initialTypes[index] != NSM { + break + } + p.codesIsolatedRun[i] = dirPair + } +} + +// resolveBrackets implements rule N0 for a list of pairs. +func (p *bracketPairer) resolveBrackets(dirEmbed Class, initialTypes []Class) { + for _, loc := range p.pairPositions { + p.assignBracketType(loc, dirEmbed, initialTypes) + } +} diff --git a/vendor/golang.org/x/text/unicode/bidi/core.go b/vendor/golang.org/x/text/unicode/bidi/core.go new file mode 100644 index 0000000..e4c0811 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/core.go @@ -0,0 +1,1071 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bidi + +import ( + "fmt" + "log" +) + +// This implementation is a port based on the reference implementation found at: +// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/ +// +// described in Unicode Bidirectional Algorithm (UAX #9). +// +// Input: +// There are two levels of input to the algorithm, since clients may prefer to +// supply some information from out-of-band sources rather than relying on the +// default behavior. +// +// - Bidi class array +// - Bidi class array, with externally supplied base line direction +// +// Output: +// Output is separated into several stages: +// +// - levels array over entire paragraph +// - reordering array over entire paragraph +// - levels array over line +// - reordering array over line +// +// Note that for conformance to the Unicode Bidirectional Algorithm, +// implementations are only required to generate correct reordering and +// character directionality (odd or even levels) over a line. Generating +// identical level arrays over a line is not required. Bidi explicit format +// codes (LRE, RLE, LRO, RLO, PDF) and BN can be assigned arbitrary levels and +// positions as long as the rest of the input is properly reordered. +// +// As the algorithm is defined to operate on a single paragraph at a time, this +// implementation is written to handle single paragraphs. Thus rule P1 is +// presumed by this implementation-- the data provided to the implementation is +// assumed to be a single paragraph, and either contains no 'B' codes, or a +// single 'B' code at the end of the input. 'B' is allowed as input to +// illustrate how the algorithm assigns it a level. +// +// Also note that rules L3 and L4 depend on the rendering engine that uses the +// result of the bidi algorithm. This implementation assumes that the rendering +// engine expects combining marks in visual order (e.g. to the left of their +// base character in RTL runs) and that it adjusts the glyphs used to render +// mirrored characters that are in RTL runs so that they render appropriately. + +// level is the embedding level of a character. Even embedding levels indicate +// left-to-right order and odd levels indicate right-to-left order. The special +// level of -1 is reserved for undefined order. +type level int8 + +const implicitLevel level = -1 + +// in returns if x is equal to any of the values in set. +func (c Class) in(set ...Class) bool { + for _, s := range set { + if c == s { + return true + } + } + return false +} + +// A paragraph contains the state of a paragraph. +type paragraph struct { + initialTypes []Class + + // Arrays of properties needed for paired bracket evaluation in N0 + pairTypes []bracketType // paired Bracket types for paragraph + pairValues []rune // rune for opening bracket or pbOpen and pbClose; 0 for pbNone + + embeddingLevel level // default: = implicitLevel; + + // at the paragraph levels + resultTypes []Class + resultLevels []level + + // Index of matching PDI for isolate initiator characters. For other + // characters, the value of matchingPDI will be set to -1. For isolate + // initiators with no matching PDI, matchingPDI will be set to the length of + // the input string. + matchingPDI []int + + // Index of matching isolate initiator for PDI characters. For other + // characters, and for PDIs with no matching isolate initiator, the value of + // matchingIsolateInitiator will be set to -1. + matchingIsolateInitiator []int +} + +// newParagraph initializes a paragraph. The user needs to supply a few arrays +// corresponding to the preprocessed text input. The types correspond to the +// Unicode BiDi classes for each rune. pairTypes indicates the bracket type for +// each rune. pairValues provides a unique bracket class identifier for each +// rune (suggested is the rune of the open bracket for opening and matching +// close brackets, after normalization). The embedding levels are optional, but +// may be supplied to encode embedding levels of styled text. +func newParagraph(types []Class, pairTypes []bracketType, pairValues []rune, levels level) (*paragraph, error) { + var err error + if err = validateTypes(types); err != nil { + return nil, err + } + if err = validatePbTypes(pairTypes); err != nil { + return nil, err + } + if err = validatePbValues(pairValues, pairTypes); err != nil { + return nil, err + } + if err = validateParagraphEmbeddingLevel(levels); err != nil { + return nil, err + } + + p := ¶graph{ + initialTypes: append([]Class(nil), types...), + embeddingLevel: levels, + + pairTypes: pairTypes, + pairValues: pairValues, + + resultTypes: append([]Class(nil), types...), + } + p.run() + return p, nil +} + +func (p *paragraph) Len() int { return len(p.initialTypes) } + +// The algorithm. Does not include line-based processing (Rules L1, L2). +// These are applied later in the line-based phase of the algorithm. +func (p *paragraph) run() { + p.determineMatchingIsolates() + + // 1) determining the paragraph level + // Rule P1 is the requirement for entering this algorithm. + // Rules P2, P3. + // If no externally supplied paragraph embedding level, use default. + if p.embeddingLevel == implicitLevel { + p.embeddingLevel = p.determineParagraphEmbeddingLevel(0, p.Len()) + } + + // Initialize result levels to paragraph embedding level. + p.resultLevels = make([]level, p.Len()) + setLevels(p.resultLevels, p.embeddingLevel) + + // 2) Explicit levels and directions + // Rules X1-X8. + p.determineExplicitEmbeddingLevels() + + // Rule X9. + // We do not remove the embeddings, the overrides, the PDFs, and the BNs + // from the string explicitly. But they are not copied into isolating run + // sequences when they are created, so they are removed for all + // practical purposes. + + // Rule X10. + // Run remainder of algorithm one isolating run sequence at a time + for _, seq := range p.determineIsolatingRunSequences() { + // 3) resolving weak types + // Rules W1-W7. + seq.resolveWeakTypes() + + // 4a) resolving paired brackets + // Rule N0 + resolvePairedBrackets(seq) + + // 4b) resolving neutral types + // Rules N1-N3. + seq.resolveNeutralTypes() + + // 5) resolving implicit embedding levels + // Rules I1, I2. + seq.resolveImplicitLevels() + + // Apply the computed levels and types + seq.applyLevelsAndTypes() + } + + // Assign appropriate levels to 'hide' LREs, RLEs, LROs, RLOs, PDFs, and + // BNs. This is for convenience, so the resulting level array will have + // a value for every character. + p.assignLevelsToCharactersRemovedByX9() +} + +// determineMatchingIsolates determines the matching PDI for each isolate +// initiator and vice versa. +// +// Definition BD9. +// +// At the end of this function: +// +// - The member variable matchingPDI is set to point to the index of the +// matching PDI character for each isolate initiator character. If there is +// no matching PDI, it is set to the length of the input text. For other +// characters, it is set to -1. +// - The member variable matchingIsolateInitiator is set to point to the +// index of the matching isolate initiator character for each PDI character. +// If there is no matching isolate initiator, or the character is not a PDI, +// it is set to -1. +func (p *paragraph) determineMatchingIsolates() { + p.matchingPDI = make([]int, p.Len()) + p.matchingIsolateInitiator = make([]int, p.Len()) + + for i := range p.matchingIsolateInitiator { + p.matchingIsolateInitiator[i] = -1 + } + + for i := range p.matchingPDI { + p.matchingPDI[i] = -1 + + if t := p.resultTypes[i]; t.in(LRI, RLI, FSI) { + depthCounter := 1 + for j := i + 1; j < p.Len(); j++ { + if u := p.resultTypes[j]; u.in(LRI, RLI, FSI) { + depthCounter++ + } else if u == PDI { + if depthCounter--; depthCounter == 0 { + p.matchingPDI[i] = j + p.matchingIsolateInitiator[j] = i + break + } + } + } + if p.matchingPDI[i] == -1 { + p.matchingPDI[i] = p.Len() + } + } + } +} + +// determineParagraphEmbeddingLevel reports the resolved paragraph direction of +// the substring limited by the given range [start, end). +// +// Determines the paragraph level based on rules P2, P3. This is also used +// in rule X5c to find if an FSI should resolve to LRI or RLI. +func (p *paragraph) determineParagraphEmbeddingLevel(start, end int) level { + var strongType Class = unknownClass + + // Rule P2. + for i := start; i < end; i++ { + if t := p.resultTypes[i]; t.in(L, AL, R) { + strongType = t + break + } else if t.in(FSI, LRI, RLI) { + i = p.matchingPDI[i] // skip over to the matching PDI + if i > end { + log.Panic("assert (i <= end)") + } + } + } + // Rule P3. + switch strongType { + case unknownClass: // none found + // default embedding level when no strong types found is 0. + return 0 + case L: + return 0 + default: // AL, R + return 1 + } +} + +const maxDepth = 125 + +// This stack will store the embedding levels and override and isolated +// statuses +type directionalStatusStack struct { + stackCounter int + embeddingLevelStack [maxDepth + 1]level + overrideStatusStack [maxDepth + 1]Class + isolateStatusStack [maxDepth + 1]bool +} + +func (s *directionalStatusStack) empty() { s.stackCounter = 0 } +func (s *directionalStatusStack) pop() { s.stackCounter-- } +func (s *directionalStatusStack) depth() int { return s.stackCounter } + +func (s *directionalStatusStack) push(level level, overrideStatus Class, isolateStatus bool) { + s.embeddingLevelStack[s.stackCounter] = level + s.overrideStatusStack[s.stackCounter] = overrideStatus + s.isolateStatusStack[s.stackCounter] = isolateStatus + s.stackCounter++ +} + +func (s *directionalStatusStack) lastEmbeddingLevel() level { + return s.embeddingLevelStack[s.stackCounter-1] +} + +func (s *directionalStatusStack) lastDirectionalOverrideStatus() Class { + return s.overrideStatusStack[s.stackCounter-1] +} + +func (s *directionalStatusStack) lastDirectionalIsolateStatus() bool { + return s.isolateStatusStack[s.stackCounter-1] +} + +// Determine explicit levels using rules X1 - X8 +func (p *paragraph) determineExplicitEmbeddingLevels() { + var stack directionalStatusStack + var overflowIsolateCount, overflowEmbeddingCount, validIsolateCount int + + // Rule X1. + stack.push(p.embeddingLevel, ON, false) + + for i, t := range p.resultTypes { + // Rules X2, X3, X4, X5, X5a, X5b, X5c + switch t { + case RLE, LRE, RLO, LRO, RLI, LRI, FSI: + isIsolate := t.in(RLI, LRI, FSI) + isRTL := t.in(RLE, RLO, RLI) + + // override if this is an FSI that resolves to RLI + if t == FSI { + isRTL = (p.determineParagraphEmbeddingLevel(i+1, p.matchingPDI[i]) == 1) + } + if isIsolate { + p.resultLevels[i] = stack.lastEmbeddingLevel() + if stack.lastDirectionalOverrideStatus() != ON { + p.resultTypes[i] = stack.lastDirectionalOverrideStatus() + } + } + + var newLevel level + if isRTL { + // least greater odd + newLevel = (stack.lastEmbeddingLevel() + 1) | 1 + } else { + // least greater even + newLevel = (stack.lastEmbeddingLevel() + 2) &^ 1 + } + + if newLevel <= maxDepth && overflowIsolateCount == 0 && overflowEmbeddingCount == 0 { + if isIsolate { + validIsolateCount++ + } + // Push new embedding level, override status, and isolated + // status. + // No check for valid stack counter, since the level check + // suffices. + switch t { + case LRO: + stack.push(newLevel, L, isIsolate) + case RLO: + stack.push(newLevel, R, isIsolate) + default: + stack.push(newLevel, ON, isIsolate) + } + // Not really part of the spec + if !isIsolate { + p.resultLevels[i] = newLevel + } + } else { + // This is an invalid explicit formatting character, + // so apply the "Otherwise" part of rules X2-X5b. + if isIsolate { + overflowIsolateCount++ + } else { // !isIsolate + if overflowIsolateCount == 0 { + overflowEmbeddingCount++ + } + } + } + + // Rule X6a + case PDI: + if overflowIsolateCount > 0 { + overflowIsolateCount-- + } else if validIsolateCount == 0 { + // do nothing + } else { + overflowEmbeddingCount = 0 + for !stack.lastDirectionalIsolateStatus() { + stack.pop() + } + stack.pop() + validIsolateCount-- + } + p.resultLevels[i] = stack.lastEmbeddingLevel() + + // Rule X7 + case PDF: + // Not really part of the spec + p.resultLevels[i] = stack.lastEmbeddingLevel() + + if overflowIsolateCount > 0 { + // do nothing + } else if overflowEmbeddingCount > 0 { + overflowEmbeddingCount-- + } else if !stack.lastDirectionalIsolateStatus() && stack.depth() >= 2 { + stack.pop() + } + + case B: // paragraph separator. + // Rule X8. + + // These values are reset for clarity, in this implementation B + // can only occur as the last code in the array. + stack.empty() + overflowIsolateCount = 0 + overflowEmbeddingCount = 0 + validIsolateCount = 0 + p.resultLevels[i] = p.embeddingLevel + + default: + p.resultLevels[i] = stack.lastEmbeddingLevel() + if stack.lastDirectionalOverrideStatus() != ON { + p.resultTypes[i] = stack.lastDirectionalOverrideStatus() + } + } + } +} + +type isolatingRunSequence struct { + p *paragraph + + indexes []int // indexes to the original string + + types []Class // type of each character using the index + resolvedLevels []level // resolved levels after application of rules + level level + sos, eos Class +} + +func (i *isolatingRunSequence) Len() int { return len(i.indexes) } + +func maxLevel(a, b level) level { + if a > b { + return a + } + return b +} + +// Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types, +// either L or R, for each isolating run sequence. +func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence { + length := len(indexes) + types := make([]Class, length) + for i, x := range indexes { + types[i] = p.resultTypes[x] + } + + // assign level, sos and eos + prevChar := indexes[0] - 1 + for prevChar >= 0 && isRemovedByX9(p.initialTypes[prevChar]) { + prevChar-- + } + prevLevel := p.embeddingLevel + if prevChar >= 0 { + prevLevel = p.resultLevels[prevChar] + } + + var succLevel level + lastType := types[length-1] + if lastType.in(LRI, RLI, FSI) { + succLevel = p.embeddingLevel + } else { + // the first character after the end of run sequence + limit := indexes[length-1] + 1 + for ; limit < p.Len() && isRemovedByX9(p.initialTypes[limit]); limit++ { + + } + succLevel = p.embeddingLevel + if limit < p.Len() { + succLevel = p.resultLevels[limit] + } + } + level := p.resultLevels[indexes[0]] + return &isolatingRunSequence{ + p: p, + indexes: indexes, + types: types, + level: level, + sos: typeForLevel(maxLevel(prevLevel, level)), + eos: typeForLevel(maxLevel(succLevel, level)), + } +} + +// Resolving weak types Rules W1-W7. +// +// Note that some weak types (EN, AN) remain after this processing is +// complete. +func (s *isolatingRunSequence) resolveWeakTypes() { + + // on entry, only these types remain + s.assertOnly(L, R, AL, EN, ES, ET, AN, CS, B, S, WS, ON, NSM, LRI, RLI, FSI, PDI) + + // Rule W1. + // Changes all NSMs. + precedingCharacterType := s.sos + for i, t := range s.types { + if t == NSM { + s.types[i] = precedingCharacterType + } else { + if t.in(LRI, RLI, FSI, PDI) { + precedingCharacterType = ON + } + precedingCharacterType = t + } + } + + // Rule W2. + // EN does not change at the start of the run, because sos != AL. + for i, t := range s.types { + if t == EN { + for j := i - 1; j >= 0; j-- { + if t := s.types[j]; t.in(L, R, AL) { + if t == AL { + s.types[i] = AN + } + break + } + } + } + } + + // Rule W3. + for i, t := range s.types { + if t == AL { + s.types[i] = R + } + } + + // Rule W4. + // Since there must be values on both sides for this rule to have an + // effect, the scan skips the first and last value. + // + // Although the scan proceeds left to right, and changes the type + // values in a way that would appear to affect the computations + // later in the scan, there is actually no problem. A change in the + // current value can only affect the value to its immediate right, + // and only affect it if it is ES or CS. But the current value can + // only change if the value to its right is not ES or CS. Thus + // either the current value will not change, or its change will have + // no effect on the remainder of the analysis. + + for i := 1; i < s.Len()-1; i++ { + t := s.types[i] + if t == ES || t == CS { + prevSepType := s.types[i-1] + succSepType := s.types[i+1] + if prevSepType == EN && succSepType == EN { + s.types[i] = EN + } else if s.types[i] == CS && prevSepType == AN && succSepType == AN { + s.types[i] = AN + } + } + } + + // Rule W5. + for i, t := range s.types { + if t == ET { + // locate end of sequence + runStart := i + runEnd := s.findRunLimit(runStart, ET) + + // check values at ends of sequence + t := s.sos + if runStart > 0 { + t = s.types[runStart-1] + } + if t != EN { + t = s.eos + if runEnd < len(s.types) { + t = s.types[runEnd] + } + } + if t == EN { + setTypes(s.types[runStart:runEnd], EN) + } + // continue at end of sequence + i = runEnd + } + } + + // Rule W6. + for i, t := range s.types { + if t.in(ES, ET, CS) { + s.types[i] = ON + } + } + + // Rule W7. + for i, t := range s.types { + if t == EN { + // set default if we reach start of run + prevStrongType := s.sos + for j := i - 1; j >= 0; j-- { + t = s.types[j] + if t == L || t == R { // AL's have been changed to R + prevStrongType = t + break + } + } + if prevStrongType == L { + s.types[i] = L + } + } + } +} + +// 6) resolving neutral types Rules N1-N2. +func (s *isolatingRunSequence) resolveNeutralTypes() { + + // on entry, only these types can be in resultTypes + s.assertOnly(L, R, EN, AN, B, S, WS, ON, RLI, LRI, FSI, PDI) + + for i, t := range s.types { + switch t { + case WS, ON, B, S, RLI, LRI, FSI, PDI: + // find bounds of run of neutrals + runStart := i + runEnd := s.findRunLimit(runStart, B, S, WS, ON, RLI, LRI, FSI, PDI) + + // determine effective types at ends of run + var leadType, trailType Class + + // Note that the character found can only be L, R, AN, or + // EN. + if runStart == 0 { + leadType = s.sos + } else { + leadType = s.types[runStart-1] + if leadType.in(AN, EN) { + leadType = R + } + } + if runEnd == len(s.types) { + trailType = s.eos + } else { + trailType = s.types[runEnd] + if trailType.in(AN, EN) { + trailType = R + } + } + + var resolvedType Class + if leadType == trailType { + // Rule N1. + resolvedType = leadType + } else { + // Rule N2. + // Notice the embedding level of the run is used, not + // the paragraph embedding level. + resolvedType = typeForLevel(s.level) + } + + setTypes(s.types[runStart:runEnd], resolvedType) + + // skip over run of (former) neutrals + i = runEnd + } + } +} + +func setLevels(levels []level, newLevel level) { + for i := range levels { + levels[i] = newLevel + } +} + +func setTypes(types []Class, newType Class) { + for i := range types { + types[i] = newType + } +} + +// 7) resolving implicit embedding levels Rules I1, I2. +func (s *isolatingRunSequence) resolveImplicitLevels() { + + // on entry, only these types can be in resultTypes + s.assertOnly(L, R, EN, AN) + + s.resolvedLevels = make([]level, len(s.types)) + setLevels(s.resolvedLevels, s.level) + + if (s.level & 1) == 0 { // even level + for i, t := range s.types { + // Rule I1. + if t == L { + // no change + } else if t == R { + s.resolvedLevels[i] += 1 + } else { // t == AN || t == EN + s.resolvedLevels[i] += 2 + } + } + } else { // odd level + for i, t := range s.types { + // Rule I2. + if t == R { + // no change + } else { // t == L || t == AN || t == EN + s.resolvedLevels[i] += 1 + } + } + } +} + +// Applies the levels and types resolved in rules W1-I2 to the +// resultLevels array. +func (s *isolatingRunSequence) applyLevelsAndTypes() { + for i, x := range s.indexes { + s.p.resultTypes[x] = s.types[i] + s.p.resultLevels[x] = s.resolvedLevels[i] + } +} + +// Return the limit of the run consisting only of the types in validSet +// starting at index. This checks the value at index, and will return +// index if that value is not in validSet. +func (s *isolatingRunSequence) findRunLimit(index int, validSet ...Class) int { +loop: + for ; index < len(s.types); index++ { + t := s.types[index] + for _, valid := range validSet { + if t == valid { + continue loop + } + } + return index // didn't find a match in validSet + } + return len(s.types) +} + +// Algorithm validation. Assert that all values in types are in the +// provided set. +func (s *isolatingRunSequence) assertOnly(codes ...Class) { +loop: + for i, t := range s.types { + for _, c := range codes { + if t == c { + continue loop + } + } + log.Panicf("invalid bidi code %v present in assertOnly at position %d", t, s.indexes[i]) + } +} + +// determineLevelRuns returns an array of level runs. Each level run is +// described as an array of indexes into the input string. +// +// Determines the level runs. Rule X9 will be applied in determining the +// runs, in the way that makes sure the characters that are supposed to be +// removed are not included in the runs. +func (p *paragraph) determineLevelRuns() [][]int { + run := []int{} + allRuns := [][]int{} + currentLevel := implicitLevel + + for i := range p.initialTypes { + if !isRemovedByX9(p.initialTypes[i]) { + if p.resultLevels[i] != currentLevel { + // we just encountered a new run; wrap up last run + if currentLevel >= 0 { // only wrap it up if there was a run + allRuns = append(allRuns, run) + run = nil + } + // Start new run + currentLevel = p.resultLevels[i] + } + run = append(run, i) + } + } + // Wrap up the final run, if any + if len(run) > 0 { + allRuns = append(allRuns, run) + } + return allRuns +} + +// Definition BD13. Determine isolating run sequences. +func (p *paragraph) determineIsolatingRunSequences() []*isolatingRunSequence { + levelRuns := p.determineLevelRuns() + + // Compute the run that each character belongs to + runForCharacter := make([]int, p.Len()) + for i, run := range levelRuns { + for _, index := range run { + runForCharacter[index] = i + } + } + + sequences := []*isolatingRunSequence{} + + var currentRunSequence []int + + for _, run := range levelRuns { + first := run[0] + if p.initialTypes[first] != PDI || p.matchingIsolateInitiator[first] == -1 { + currentRunSequence = nil + // int run = i; + for { + // Copy this level run into currentRunSequence + currentRunSequence = append(currentRunSequence, run...) + + last := currentRunSequence[len(currentRunSequence)-1] + lastT := p.initialTypes[last] + if lastT.in(LRI, RLI, FSI) && p.matchingPDI[last] != p.Len() { + run = levelRuns[runForCharacter[p.matchingPDI[last]]] + } else { + break + } + } + sequences = append(sequences, p.isolatingRunSequence(currentRunSequence)) + } + } + return sequences +} + +// Assign level information to characters removed by rule X9. This is for +// ease of relating the level information to the original input data. Note +// that the levels assigned to these codes are arbitrary, they're chosen so +// as to avoid breaking level runs. +func (p *paragraph) assignLevelsToCharactersRemovedByX9() { + for i, t := range p.initialTypes { + if t.in(LRE, RLE, LRO, RLO, PDF, BN) { + p.resultTypes[i] = t + p.resultLevels[i] = -1 + } + } + // now propagate forward the levels information (could have + // propagated backward, the main thing is not to introduce a level + // break where one doesn't already exist). + + if p.resultLevels[0] == -1 { + p.resultLevels[0] = p.embeddingLevel + } + for i := 1; i < len(p.initialTypes); i++ { + if p.resultLevels[i] == -1 { + p.resultLevels[i] = p.resultLevels[i-1] + } + } + // Embedding information is for informational purposes only so need not be + // adjusted. +} + +// +// Output +// + +// getLevels computes levels array breaking lines at offsets in linebreaks. +// Rule L1. +// +// The linebreaks array must include at least one value. The values must be +// in strictly increasing order (no duplicates) between 1 and the length of +// the text, inclusive. The last value must be the length of the text. +func (p *paragraph) getLevels(linebreaks []int) []level { + // Note that since the previous processing has removed all + // P, S, and WS values from resultTypes, the values referred to + // in these rules are the initial types, before any processing + // has been applied (including processing of overrides). + // + // This example implementation has reinserted explicit format codes + // and BN, in order that the levels array correspond to the + // initial text. Their final placement is not normative. + // These codes are treated like WS in this implementation, + // so they don't interrupt sequences of WS. + + validateLineBreaks(linebreaks, p.Len()) + + result := append([]level(nil), p.resultLevels...) + + // don't worry about linebreaks since if there is a break within + // a series of WS values preceding S, the linebreak itself + // causes the reset. + for i, t := range p.initialTypes { + if t.in(B, S) { + // Rule L1, clauses one and two. + result[i] = p.embeddingLevel + + // Rule L1, clause three. + for j := i - 1; j >= 0; j-- { + if isWhitespace(p.initialTypes[j]) { // including format codes + result[j] = p.embeddingLevel + } else { + break + } + } + } + } + + // Rule L1, clause four. + start := 0 + for _, limit := range linebreaks { + for j := limit - 1; j >= start; j-- { + if isWhitespace(p.initialTypes[j]) { // including format codes + result[j] = p.embeddingLevel + } else { + break + } + } + start = limit + } + + return result +} + +// getReordering returns the reordering of lines from a visual index to a +// logical index for line breaks at the given offsets. +// +// Lines are concatenated from left to right. So for example, the fifth +// character from the left on the third line is +// +// getReordering(linebreaks)[linebreaks[1] + 4] +// +// (linebreaks[1] is the position after the last character of the second +// line, which is also the index of the first character on the third line, +// and adding four gets the fifth character from the left). +// +// The linebreaks array must include at least one value. The values must be +// in strictly increasing order (no duplicates) between 1 and the length of +// the text, inclusive. The last value must be the length of the text. +func (p *paragraph) getReordering(linebreaks []int) []int { + validateLineBreaks(linebreaks, p.Len()) + + return computeMultilineReordering(p.getLevels(linebreaks), linebreaks) +} + +// Return multiline reordering array for a given level array. Reordering +// does not occur across a line break. +func computeMultilineReordering(levels []level, linebreaks []int) []int { + result := make([]int, len(levels)) + + start := 0 + for _, limit := range linebreaks { + tempLevels := make([]level, limit-start) + copy(tempLevels, levels[start:]) + + for j, order := range computeReordering(tempLevels) { + result[start+j] = order + start + } + start = limit + } + return result +} + +// Return reordering array for a given level array. This reorders a single +// line. The reordering is a visual to logical map. For example, the +// leftmost char is string.charAt(order[0]). Rule L2. +func computeReordering(levels []level) []int { + result := make([]int, len(levels)) + // initialize order + for i := range result { + result[i] = i + } + + // locate highest level found on line. + // Note the rules say text, but no reordering across line bounds is + // performed, so this is sufficient. + highestLevel := level(0) + lowestOddLevel := level(maxDepth + 2) + for _, level := range levels { + if level > highestLevel { + highestLevel = level + } + if level&1 != 0 && level < lowestOddLevel { + lowestOddLevel = level + } + } + + for level := highestLevel; level >= lowestOddLevel; level-- { + for i := 0; i < len(levels); i++ { + if levels[i] >= level { + // find range of text at or above this level + start := i + limit := i + 1 + for limit < len(levels) && levels[limit] >= level { + limit++ + } + + for j, k := start, limit-1; j < k; j, k = j+1, k-1 { + result[j], result[k] = result[k], result[j] + } + // skip to end of level run + i = limit + } + } + } + + return result +} + +// isWhitespace reports whether the type is considered a whitespace type for the +// line break rules. +func isWhitespace(c Class) bool { + switch c { + case LRE, RLE, LRO, RLO, PDF, LRI, RLI, FSI, PDI, BN, WS: + return true + } + return false +} + +// isRemovedByX9 reports whether the type is one of the types removed in X9. +func isRemovedByX9(c Class) bool { + switch c { + case LRE, RLE, LRO, RLO, PDF, BN: + return true + } + return false +} + +// typeForLevel reports the strong type (L or R) corresponding to the level. +func typeForLevel(level level) Class { + if (level & 0x1) == 0 { + return L + } + return R +} + +func validateTypes(types []Class) error { + if len(types) == 0 { + return fmt.Errorf("types is null") + } + for i, t := range types[:len(types)-1] { + if t == B { + return fmt.Errorf("B type before end of paragraph at index: %d", i) + } + } + return nil +} + +func validateParagraphEmbeddingLevel(embeddingLevel level) error { + if embeddingLevel != implicitLevel && + embeddingLevel != 0 && + embeddingLevel != 1 { + return fmt.Errorf("illegal paragraph embedding level: %d", embeddingLevel) + } + return nil +} + +func validateLineBreaks(linebreaks []int, textLength int) error { + prev := 0 + for i, next := range linebreaks { + if next <= prev { + return fmt.Errorf("bad linebreak: %d at index: %d", next, i) + } + prev = next + } + if prev != textLength { + return fmt.Errorf("last linebreak was %d, want %d", prev, textLength) + } + return nil +} + +func validatePbTypes(pairTypes []bracketType) error { + if len(pairTypes) == 0 { + return fmt.Errorf("pairTypes is null") + } + for i, pt := range pairTypes { + switch pt { + case bpNone, bpOpen, bpClose: + default: + return fmt.Errorf("illegal pairType value at %d: %v", i, pairTypes[i]) + } + } + return nil +} + +func validatePbValues(pairValues []rune, pairTypes []bracketType) error { + if pairValues == nil { + return fmt.Errorf("pairValues is null") + } + if len(pairTypes) != len(pairValues) { + return fmt.Errorf("pairTypes is different length from pairValues") + } + return nil +} diff --git a/vendor/golang.org/x/text/unicode/bidi/prop.go b/vendor/golang.org/x/text/unicode/bidi/prop.go new file mode 100644 index 0000000..7c9484e --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/prop.go @@ -0,0 +1,206 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bidi + +import "unicode/utf8" + +// Properties provides access to BiDi properties of runes. +type Properties struct { + entry uint8 + last uint8 +} + +var trie = newBidiTrie(0) + +// TODO: using this for bidirule reduces the running time by about 5%. Consider +// if this is worth exposing or if we can find a way to speed up the Class +// method. +// +// // CompactClass is like Class, but maps all of the BiDi control classes +// // (LRO, RLO, LRE, RLE, PDF, LRI, RLI, FSI, PDI) to the class Control. +// func (p Properties) CompactClass() Class { +// return Class(p.entry & 0x0F) +// } + +// Class returns the Bidi class for p. +func (p Properties) Class() Class { + c := Class(p.entry & 0x0F) + if c == Control { + c = controlByteToClass[p.last&0xF] + } + return c +} + +// IsBracket reports whether the rune is a bracket. +func (p Properties) IsBracket() bool { return p.entry&0xF0 != 0 } + +// IsOpeningBracket reports whether the rune is an opening bracket. +// IsBracket must return true. +func (p Properties) IsOpeningBracket() bool { return p.entry&openMask != 0 } + +// TODO: find a better API and expose. +func (p Properties) reverseBracket(r rune) rune { + return xorMasks[p.entry>>xorMaskShift] ^ r +} + +var controlByteToClass = [16]Class{ + 0xD: LRO, // U+202D LeftToRightOverride, + 0xE: RLO, // U+202E RightToLeftOverride, + 0xA: LRE, // U+202A LeftToRightEmbedding, + 0xB: RLE, // U+202B RightToLeftEmbedding, + 0xC: PDF, // U+202C PopDirectionalFormat, + 0x6: LRI, // U+2066 LeftToRightIsolate, + 0x7: RLI, // U+2067 RightToLeftIsolate, + 0x8: FSI, // U+2068 FirstStrongIsolate, + 0x9: PDI, // U+2069 PopDirectionalIsolate, +} + +// LookupRune returns properties for r. +func LookupRune(r rune) (p Properties, size int) { + var buf [4]byte + n := utf8.EncodeRune(buf[:], r) + return Lookup(buf[:n]) +} + +// TODO: these lookup methods are based on the generated trie code. The returned +// sizes have slightly different semantics from the generated code, in that it +// always returns size==1 for an illegal UTF-8 byte (instead of the length +// of the maximum invalid subsequence). Most Transformers, like unicode/norm, +// leave invalid UTF-8 untouched, in which case it has performance benefits to +// do so (without changing the semantics). Bidi requires the semantics used here +// for the bidirule implementation to be compatible with the Go semantics. +// They ultimately should perhaps be adopted by all trie implementations, for +// convenience sake. +// This unrolled code also boosts performance of the secure/bidirule package by +// about 30%. +// So, to remove this code: +// - add option to trie generator to define return type. +// - always return 1 byte size for ill-formed UTF-8 runes. + +// Lookup returns properties for the first rune in s and the width in bytes of +// its encoding. The size will be 0 if s does not hold enough bytes to complete +// the encoding. +func Lookup(s []byte) (p Properties, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return Properties{entry: bidiValues[c0]}, 1 + case c0 < 0xC2: + return Properties{}, 1 + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c1)}, 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return Properties{}, 1 + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c3)}, 4 + } + // Illegal rune + return Properties{}, 1 +} + +// LookupString returns properties for the first rune in s and the width in +// bytes of its encoding. The size will be 0 if s does not hold enough bytes to +// complete the encoding. +func LookupString(s string) (p Properties, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return Properties{entry: bidiValues[c0]}, 1 + case c0 < 0xC2: + return Properties{}, 1 + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c1)}, 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return Properties{}, 1 + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c3)}, 4 + } + // Illegal rune + return Properties{}, 1 +} diff --git a/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go new file mode 100644 index 0000000..42fa8d7 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go @@ -0,0 +1,1816 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.10 && !go1.13 +// +build go1.10,!go1.13 + +package bidi + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "10.0.0" + +// xorMasks contains masks to be xor-ed with brackets to get the reverse +// version. +var xorMasks = []int32{ // 8 elements + 0, 1, 6, 7, 3, 15, 29, 63, +} // Size: 56 bytes + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupUnsafe(s []byte) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookupString(s string) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupStringUnsafe(s string) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// bidiTrie. Total size: 16128 bytes (15.75 KiB). Checksum: 8122d83e461996f. +type bidiTrie struct{} + +func newBidiTrie(i int) *bidiTrie { + return &bidiTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 { + switch { + default: + return uint8(bidiValues[n<<6+uint32(b)]) + } +} + +// bidiValues: 228 blocks, 14592 entries, 14592 bytes +// The third block is the zero block. +var bidiValues = [14592]uint8{ + // Block 0x0, offset 0x0 + 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b, + 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008, + 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b, + 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b, + 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007, + 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004, + 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a, + 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006, + 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002, + 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a, + 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a, + // Block 0x1, offset 0x40 + 0x40: 0x000a, + 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a, + 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a, + 0x7b: 0x005a, + 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007, + 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b, + 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b, + 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b, + 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b, + 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004, + 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a, + 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a, + 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a, + 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a, + 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a, + // Block 0x4, offset 0x100 + 0x117: 0x000a, + 0x137: 0x000a, + // Block 0x5, offset 0x140 + 0x179: 0x000a, 0x17a: 0x000a, + // Block 0x6, offset 0x180 + 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a, + 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a, + 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a, + 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a, + 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a, + 0x19e: 0x000a, 0x19f: 0x000a, + 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a, + 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a, + 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a, + 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a, + 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c, + 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c, + 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c, + 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c, + 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c, + 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c, + 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c, + 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c, + 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c, + 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c, + 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c, + // Block 0x8, offset 0x200 + 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c, + 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c, + 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c, + 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c, + 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c, + 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c, + 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c, + 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c, + 0x234: 0x000a, 0x235: 0x000a, + 0x23e: 0x000a, + // Block 0x9, offset 0x240 + 0x244: 0x000a, 0x245: 0x000a, + 0x247: 0x000a, + // Block 0xa, offset 0x280 + 0x2b6: 0x000a, + // Block 0xb, offset 0x2c0 + 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c, + 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c, + // Block 0xc, offset 0x300 + 0x30a: 0x000a, + 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c, + 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c, + 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c, + 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c, + 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c, + 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c, + 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c, + 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c, + 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c, + // Block 0xd, offset 0x340 + 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c, + 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001, + 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001, + 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001, + 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001, + 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001, + 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001, + 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001, + 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001, + 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001, + 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001, + // Block 0xe, offset 0x380 + 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005, + 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d, + 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c, + 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c, + 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d, + 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d, + 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d, + 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d, + 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d, + 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d, + 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d, + 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c, + 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c, + 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c, + 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c, + 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005, + 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005, + 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d, + 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d, + 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d, + 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d, + // Block 0x10, offset 0x400 + 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d, + 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d, + 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d, + 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d, + 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d, + 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d, + 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d, + 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d, + 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d, + 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d, + 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d, + // Block 0x11, offset 0x440 + 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d, + 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d, + 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d, + 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c, + 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005, + 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c, + 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a, + 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d, + 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002, + 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d, + 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d, + // Block 0x12, offset 0x480 + 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d, + 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d, + 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c, + 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d, + 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d, + 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d, + 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d, + 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d, + 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c, + 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c, + 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c, + 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d, + 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d, + 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d, + 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d, + 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d, + 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d, + 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d, + 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d, + 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d, + 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d, + // Block 0x14, offset 0x500 + 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d, + 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d, + 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d, + 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d, + 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d, + 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d, + 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c, + 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c, + 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d, + 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d, + 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d, + // Block 0x15, offset 0x540 + 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001, + 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001, + 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001, + 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001, + 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001, + 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001, + 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001, + 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c, + 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001, + 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001, + 0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001, + // Block 0x16, offset 0x580 + 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001, + 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001, + 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001, + 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c, + 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c, + 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c, + 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c, + 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001, + 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001, + 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001, + 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001, + 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001, + 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001, + 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001, + 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001, + 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d, + 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d, + 0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d, + 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001, + 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001, + 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001, + // Block 0x18, offset 0x600 + 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001, + 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001, + 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001, + 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001, + 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001, + 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d, + 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d, + 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d, + 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d, + 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d, + 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d, + // Block 0x19, offset 0x640 + 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d, + 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d, + 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d, + 0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c, + 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c, + 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c, + 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c, + 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c, + 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c, + 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c, + 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c, + // Block 0x1a, offset 0x680 + 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c, + 0x6ba: 0x000c, + 0x6bc: 0x000c, + // Block 0x1b, offset 0x6c0 + 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c, + 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c, + 0x6cd: 0x000c, 0x6d1: 0x000c, + 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c, + 0x6e2: 0x000c, 0x6e3: 0x000c, + // Block 0x1c, offset 0x700 + 0x701: 0x000c, + 0x73c: 0x000c, + // Block 0x1d, offset 0x740 + 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c, + 0x74d: 0x000c, + 0x762: 0x000c, 0x763: 0x000c, + 0x772: 0x0004, 0x773: 0x0004, + 0x77b: 0x0004, + // Block 0x1e, offset 0x780 + 0x781: 0x000c, 0x782: 0x000c, + 0x7bc: 0x000c, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x000c, 0x7c2: 0x000c, + 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c, + 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c, + 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c, + // Block 0x20, offset 0x800 + 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c, + 0x807: 0x000c, 0x808: 0x000c, + 0x80d: 0x000c, + 0x822: 0x000c, 0x823: 0x000c, + 0x831: 0x0004, + 0x83a: 0x000c, 0x83b: 0x000c, + 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c, + // Block 0x21, offset 0x840 + 0x841: 0x000c, + 0x87c: 0x000c, 0x87f: 0x000c, + // Block 0x22, offset 0x880 + 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c, + 0x88d: 0x000c, + 0x896: 0x000c, + 0x8a2: 0x000c, 0x8a3: 0x000c, + // Block 0x23, offset 0x8c0 + 0x8c2: 0x000c, + // Block 0x24, offset 0x900 + 0x900: 0x000c, + 0x90d: 0x000c, + 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a, + 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a, + // Block 0x25, offset 0x940 + 0x940: 0x000c, + 0x97e: 0x000c, 0x97f: 0x000c, + // Block 0x26, offset 0x980 + 0x980: 0x000c, + 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c, + 0x98c: 0x000c, 0x98d: 0x000c, + 0x995: 0x000c, 0x996: 0x000c, + 0x9a2: 0x000c, 0x9a3: 0x000c, + 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a, + 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a, + // Block 0x27, offset 0x9c0 + 0x9cc: 0x000c, 0x9cd: 0x000c, + 0x9e2: 0x000c, 0x9e3: 0x000c, + // Block 0x28, offset 0xa00 + 0xa00: 0x000c, 0xa01: 0x000c, + 0xa3b: 0x000c, + 0xa3c: 0x000c, + // Block 0x29, offset 0xa40 + 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c, + 0xa4d: 0x000c, + 0xa62: 0x000c, 0xa63: 0x000c, + // Block 0x2a, offset 0xa80 + 0xa8a: 0x000c, + 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c, + // Block 0x2b, offset 0xac0 + 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c, + 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c, + 0xaff: 0x0004, + // Block 0x2c, offset 0xb00 + 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c, + 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c, + // Block 0x2d, offset 0xb40 + 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c, + 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c, + 0xb7c: 0x000c, + // Block 0x2e, offset 0xb80 + 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c, + 0xb8c: 0x000c, 0xb8d: 0x000c, + // Block 0x2f, offset 0xbc0 + 0xbd8: 0x000c, 0xbd9: 0x000c, + 0xbf5: 0x000c, + 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a, + 0xbfc: 0x003a, 0xbfd: 0x002a, + // Block 0x30, offset 0xc00 + 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c, + 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c, + 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c, + // Block 0x31, offset 0xc40 + 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c, + 0xc46: 0x000c, 0xc47: 0x000c, + 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c, + 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c, + 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c, + 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c, + 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c, + 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c, + 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c, + 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c, + 0xc7c: 0x000c, + // Block 0x32, offset 0xc80 + 0xc86: 0x000c, + // Block 0x33, offset 0xcc0 + 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c, + 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c, + 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c, + 0xcfd: 0x000c, 0xcfe: 0x000c, + // Block 0x34, offset 0xd00 + 0xd18: 0x000c, 0xd19: 0x000c, + 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c, + 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, + // Block 0x35, offset 0xd40 + 0xd42: 0x000c, 0xd45: 0x000c, + 0xd46: 0x000c, + 0xd4d: 0x000c, + 0xd5d: 0x000c, + // Block 0x36, offset 0xd80 + 0xd9d: 0x000c, + 0xd9e: 0x000c, 0xd9f: 0x000c, + // Block 0x37, offset 0xdc0 + 0xdd0: 0x000a, 0xdd1: 0x000a, + 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a, + 0xdd8: 0x000a, 0xdd9: 0x000a, + // Block 0x38, offset 0xe00 + 0xe00: 0x000a, + // Block 0x39, offset 0xe40 + 0xe40: 0x0009, + 0xe5b: 0x007a, 0xe5c: 0x006a, + // Block 0x3a, offset 0xe80 + 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c, + 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c, + // Block 0x3b, offset 0xec0 + 0xed2: 0x000c, 0xed3: 0x000c, + 0xef2: 0x000c, 0xef3: 0x000c, + // Block 0x3c, offset 0xf00 + 0xf34: 0x000c, 0xf35: 0x000c, + 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c, + 0xf3c: 0x000c, 0xf3d: 0x000c, + // Block 0x3d, offset 0xf40 + 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c, + 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c, + 0xf52: 0x000c, 0xf53: 0x000c, + 0xf5b: 0x0004, 0xf5d: 0x000c, + 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a, + 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a, + // Block 0x3e, offset 0xf80 + 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a, + 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c, + 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b, + // Block 0x3f, offset 0xfc0 + 0xfc5: 0x000c, + 0xfc6: 0x000c, + 0xfe9: 0x000c, + // Block 0x40, offset 0x1000 + 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c, + 0x1027: 0x000c, 0x1028: 0x000c, + 0x1032: 0x000c, + 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c, + // Block 0x41, offset 0x1040 + 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a, + // Block 0x42, offset 0x1080 + 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a, + 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a, + 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a, + 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a, + 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a, + 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a, + // Block 0x43, offset 0x10c0 + 0x10d7: 0x000c, + 0x10d8: 0x000c, 0x10db: 0x000c, + // Block 0x44, offset 0x1100 + 0x1116: 0x000c, + 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c, + 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c, + 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c, + 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c, + 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c, + 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c, + 0x113c: 0x000c, 0x113f: 0x000c, + // Block 0x45, offset 0x1140 + 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c, + 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c, + 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c, + // Block 0x46, offset 0x1180 + 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c, + 0x11b4: 0x000c, + 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, + 0x11bc: 0x000c, + // Block 0x47, offset 0x11c0 + 0x11c2: 0x000c, + 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c, + 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c, + // Block 0x48, offset 0x1200 + 0x1200: 0x000c, 0x1201: 0x000c, + 0x1222: 0x000c, 0x1223: 0x000c, + 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c, + 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c, + // Block 0x49, offset 0x1240 + 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c, + 0x126d: 0x000c, 0x126f: 0x000c, + 0x1270: 0x000c, 0x1271: 0x000c, + // Block 0x4a, offset 0x1280 + 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c, + 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c, + 0x12b6: 0x000c, 0x12b7: 0x000c, + // Block 0x4b, offset 0x12c0 + 0x12d0: 0x000c, 0x12d1: 0x000c, + 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c, + 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c, + 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c, + 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c, + 0x12ed: 0x000c, + 0x12f4: 0x000c, + 0x12f8: 0x000c, 0x12f9: 0x000c, + // Block 0x4c, offset 0x1300 + 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c, + 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c, + 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c, + 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c, + 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c, + 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c, + 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c, + 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c, + 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c, + 0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c, + 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c, + // Block 0x4d, offset 0x1340 + 0x137d: 0x000a, 0x137f: 0x000a, + // Block 0x4e, offset 0x1380 + 0x1380: 0x000a, 0x1381: 0x000a, + 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a, + 0x139d: 0x000a, + 0x139e: 0x000a, 0x139f: 0x000a, + 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a, + 0x13bd: 0x000a, 0x13be: 0x000a, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009, + 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b, + 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a, + 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a, + 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a, + 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a, + 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007, + 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006, + 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a, + 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a, + 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a, + // Block 0x50, offset 0x1400 + 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a, + 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a, + 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a, + 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a, + 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a, + 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b, + 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e, + 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b, + 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002, + 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003, + 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a, + // Block 0x51, offset 0x1440 + 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002, + 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003, + 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a, + 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004, + 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004, + 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004, + 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004, + 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004, + 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004, + // Block 0x52, offset 0x1480 + 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004, + 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004, + 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c, + 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c, + 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c, + 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c, + 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c, + 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c, + 0x14b0: 0x000c, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a, + 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a, + 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a, + 0x14d8: 0x000a, + 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a, + 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a, + 0x14ee: 0x0004, + 0x14fa: 0x000a, 0x14fb: 0x000a, + // Block 0x54, offset 0x1500 + 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a, + 0x150a: 0x000a, 0x150b: 0x000a, + 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a, + 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a, + 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a, + 0x151e: 0x000a, 0x151f: 0x000a, + // Block 0x55, offset 0x1540 + 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a, + 0x1550: 0x000a, 0x1551: 0x000a, + 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a, + 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a, + 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a, + 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a, + 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a, + 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a, + 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a, + 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a, + // Block 0x56, offset 0x1580 + 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a, + 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a, + 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a, + 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a, + 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a, + 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a, + 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a, + 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a, + 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a, + 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a, + 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a, + 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a, + 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a, + 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a, + 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a, + 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a, + 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a, + 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a, + 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a, + 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a, + 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a, + // Block 0x58, offset 0x1600 + 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a, + 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a, + 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a, + 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a, + 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a, + 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a, + 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a, + 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a, + 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a, + // Block 0x59, offset 0x1640 + 0x167b: 0x000a, + 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a, + // Block 0x5a, offset 0x1680 + 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a, + 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a, + 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a, + 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a, + 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a, + 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a, + 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a, + 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a, + 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a, + 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a, + 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a, + 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a, + 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a, + 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a, + 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a, + 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a, + 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, + // Block 0x5c, offset 0x1700 + 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a, + 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, + 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a, + 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a, + 0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a, + 0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a, + 0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a, + 0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a, + // Block 0x5d, offset 0x1740 + 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a, + 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002, + 0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002, + 0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002, + 0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002, + // Block 0x5e, offset 0x1780 + 0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a, + 0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a, + 0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a, + 0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a, + 0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a, + 0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a, + 0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a, + 0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a, + 0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a, + 0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a, + 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a, + 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a, + 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a, + 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a, + // Block 0x60, offset 0x1800 + 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a, + 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a, + 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a, + 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a, + 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a, + 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a, + 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a, + 0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a, + 0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a, + 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a, + 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a, + // Block 0x61, offset 0x1840 + 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a, + 0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a, + 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a, + 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a, + 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a, + 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a, + 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a, + 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a, + 0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a, + 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a, + 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a, + // Block 0x62, offset 0x1880 + 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a, + 0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a, + 0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a, + 0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba, + 0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a, + 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a, + 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a, + 0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a, + 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a, + 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a, + 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a, + 0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a, + 0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a, + 0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a, + 0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a, + 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a, + 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a, + 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a, + 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a, + 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a, + 0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a, + // Block 0x64, offset 0x1900 + 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a, + 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a, + 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a, + 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a, + 0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a, + 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a, + 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a, + 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a, + 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, + 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a, + 0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a, + // Block 0x65, offset 0x1940 + 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a, + 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a, + 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a, + 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, + 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a, + 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a, + 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a, + 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a, + 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a, + 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, + 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a, + // Block 0x66, offset 0x1980 + 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a, + 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a, + 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a, + 0x1992: 0x000a, + 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a, + // Block 0x67, offset 0x19c0 + 0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a, + 0x19ea: 0x000a, 0x19ef: 0x000c, + 0x19f0: 0x000c, 0x19f1: 0x000c, + 0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a, + 0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a, + // Block 0x68, offset 0x1a00 + 0x1a3f: 0x000c, + // Block 0x69, offset 0x1a40 + 0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c, + 0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c, + 0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c, + 0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c, + 0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c, + 0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a, + 0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a, + 0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a, + 0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a, + 0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a, + 0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a, + 0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a, + 0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a, + 0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a, + 0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a, + 0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a, + 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a, + 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a, + 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a, + 0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a, + 0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a, + 0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a, + 0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a, + 0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a, + 0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a, + 0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a, + 0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a, + 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a, + 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a, + 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a, + 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a, + 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a, + 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a, + 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a, + 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a, + 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a, + 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a, + 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, + 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a, + 0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, + 0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a, + 0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a, + 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a, + 0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a, + 0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a, + 0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c, + 0x1bf0: 0x000a, + 0x1bf6: 0x000a, 0x1bf7: 0x000a, + 0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a, + // Block 0x70, offset 0x1c00 + 0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a, + 0x1c20: 0x000a, + // Block 0x71, offset 0x1c40 + 0x1c7b: 0x000a, + // Block 0x72, offset 0x1c80 + 0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a, + 0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a, + 0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a, + 0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a, + 0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a, + 0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a, + // Block 0x73, offset 0x1cc0 + 0x1cdd: 0x000a, + 0x1cde: 0x000a, + // Block 0x74, offset 0x1d00 + 0x1d10: 0x000a, 0x1d11: 0x000a, + 0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a, + 0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a, + 0x1d1e: 0x000a, 0x1d1f: 0x000a, + 0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a, + // Block 0x75, offset 0x1d40 + 0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a, + 0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a, + 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a, + // Block 0x76, offset 0x1d80 + 0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a, + // Block 0x77, offset 0x1dc0 + 0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a, + // Block 0x78, offset 0x1e00 + 0x1e1e: 0x000a, 0x1e1f: 0x000a, + 0x1e3f: 0x000a, + // Block 0x79, offset 0x1e40 + 0x1e50: 0x000a, 0x1e51: 0x000a, + 0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a, + 0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a, + 0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a, + 0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a, + 0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a, + 0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a, + 0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a, + 0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a, + 0x1e86: 0x000a, + // Block 0x7b, offset 0x1ec0 + 0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a, + // Block 0x7c, offset 0x1f00 + 0x1f2f: 0x000c, + 0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c, + 0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c, + 0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a, + // Block 0x7d, offset 0x1f40 + 0x1f5e: 0x000c, 0x1f5f: 0x000c, + // Block 0x7e, offset 0x1f80 + 0x1fb0: 0x000c, 0x1fb1: 0x000c, + // Block 0x7f, offset 0x1fc0 + 0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a, + 0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a, + 0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a, + 0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a, + 0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a, + 0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a, + // Block 0x80, offset 0x2000 + 0x2008: 0x000a, + // Block 0x81, offset 0x2040 + 0x2042: 0x000c, + 0x2046: 0x000c, 0x204b: 0x000c, + 0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a, + 0x206a: 0x000a, 0x206b: 0x000a, + 0x2078: 0x0004, 0x2079: 0x0004, + // Block 0x82, offset 0x2080 + 0x20b4: 0x000a, 0x20b5: 0x000a, + 0x20b6: 0x000a, 0x20b7: 0x000a, + // Block 0x83, offset 0x20c0 + 0x20c4: 0x000c, 0x20c5: 0x000c, + 0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c, + 0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c, + 0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c, + 0x20f0: 0x000c, 0x20f1: 0x000c, + // Block 0x84, offset 0x2100 + 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c, + 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, + // Block 0x85, offset 0x2140 + 0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c, + 0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c, + // Block 0x86, offset 0x2180 + 0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c, + 0x21b3: 0x000c, + 0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c, + 0x21bc: 0x000c, + // Block 0x87, offset 0x21c0 + 0x21e5: 0x000c, + // Block 0x88, offset 0x2200 + 0x2229: 0x000c, + 0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c, + 0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c, + 0x2236: 0x000c, + // Block 0x89, offset 0x2240 + 0x2243: 0x000c, + 0x224c: 0x000c, + 0x227c: 0x000c, + // Block 0x8a, offset 0x2280 + 0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c, + 0x22b7: 0x000c, 0x22b8: 0x000c, + 0x22be: 0x000c, 0x22bf: 0x000c, + // Block 0x8b, offset 0x22c0 + 0x22c1: 0x000c, + 0x22ec: 0x000c, 0x22ed: 0x000c, + 0x22f6: 0x000c, + // Block 0x8c, offset 0x2300 + 0x2325: 0x000c, 0x2328: 0x000c, + 0x232d: 0x000c, + // Block 0x8d, offset 0x2340 + 0x235d: 0x0001, + 0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001, + 0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003, + 0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001, + 0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001, + 0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001, + 0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001, + // Block 0x8e, offset 0x2380 + 0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001, + 0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001, + 0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d, + 0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d, + 0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d, + 0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d, + 0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d, + 0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d, + 0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d, + 0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d, + 0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d, + // Block 0x8f, offset 0x23c0 + 0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d, + 0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d, + 0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d, + 0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d, + 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d, + 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d, + 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d, + 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d, + 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d, + 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d, + 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a, + // Block 0x90, offset 0x2400 + 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d, + 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d, + 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b, + 0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b, + 0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b, + 0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b, + 0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b, + 0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b, + 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d, + 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d, + 0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d, + // Block 0x91, offset 0x2440 + 0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c, + 0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c, + 0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a, + 0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a, + 0x2458: 0x000a, 0x2459: 0x000a, + 0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c, + 0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c, + 0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c, + 0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a, + 0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a, + 0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a, + // Block 0x92, offset 0x2480 + 0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a, + 0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a, + 0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a, + 0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a, + 0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a, + 0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003, + 0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004, + 0x24aa: 0x0004, 0x24ab: 0x000a, + 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d, + 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d, + 0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d, + // Block 0x93, offset 0x24c0 + 0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d, + 0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d, + 0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d, + 0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d, + 0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d, + 0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d, + 0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d, + 0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d, + 0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d, + 0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d, + 0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b, + // Block 0x94, offset 0x2500 + 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004, + 0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003, + 0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002, + 0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002, + 0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a, + 0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a, + 0x253b: 0x005a, + 0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a, + // Block 0x95, offset 0x2540 + 0x2540: 0x000a, + 0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a, + 0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a, + 0x2564: 0x000a, 0x2565: 0x000a, + // Block 0x96, offset 0x2580 + 0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a, + 0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a, + 0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a, + 0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b, + 0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a, + 0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b, + // Block 0x97, offset 0x25c0 + 0x25c1: 0x000a, + // Block 0x98, offset 0x2600 + 0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a, + 0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a, + 0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a, + 0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a, + 0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a, + 0x2620: 0x000a, + // Block 0x99, offset 0x2640 + 0x267d: 0x000c, + // Block 0x9a, offset 0x2680 + 0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002, + 0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002, + 0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002, + 0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002, + 0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002, + // Block 0x9b, offset 0x26c0 + 0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c, + // Block 0x9c, offset 0x2700 + 0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001, + 0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001, + 0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001, + 0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001, + 0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001, + 0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001, + 0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001, + 0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001, + 0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001, + 0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001, + 0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001, + // Block 0x9d, offset 0x2740 + 0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001, + 0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001, + 0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001, + 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001, + 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001, + 0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001, + 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001, + 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001, + 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001, + 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001, + 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001, + // Block 0x9e, offset 0x2780 + 0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c, + 0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001, + 0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001, + 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001, + 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001, + 0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001, + 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001, + 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001, + 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001, + 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001, + 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c, + // Block 0x9f, offset 0x27c0 + 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001, + 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001, + 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001, + 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001, + 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001, + 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001, + 0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001, + 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001, + 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001, + 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001, + 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001, + // Block 0xa0, offset 0x2800 + 0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001, + 0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001, + 0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001, + 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001, + 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001, + 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001, + 0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001, + 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001, + 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001, + 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a, + 0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a, + // Block 0xa1, offset 0x2840 + 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001, + 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001, + 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001, + 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001, + 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001, + 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0005, 0x2861: 0x0005, 0x2862: 0x0005, 0x2863: 0x0005, + 0x2864: 0x0005, 0x2865: 0x0005, 0x2866: 0x0005, 0x2867: 0x0005, 0x2868: 0x0005, 0x2869: 0x0005, + 0x286a: 0x0005, 0x286b: 0x0005, 0x286c: 0x0005, 0x286d: 0x0005, 0x286e: 0x0005, 0x286f: 0x0005, + 0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005, + 0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x0005, 0x287b: 0x0005, + 0x287c: 0x0005, 0x287d: 0x0005, 0x287e: 0x0005, 0x287f: 0x0001, + // Block 0xa2, offset 0x2880 + 0x2881: 0x000c, + 0x28b8: 0x000c, 0x28b9: 0x000c, 0x28ba: 0x000c, 0x28bb: 0x000c, + 0x28bc: 0x000c, 0x28bd: 0x000c, 0x28be: 0x000c, 0x28bf: 0x000c, + // Block 0xa3, offset 0x28c0 + 0x28c0: 0x000c, 0x28c1: 0x000c, 0x28c2: 0x000c, 0x28c3: 0x000c, 0x28c4: 0x000c, 0x28c5: 0x000c, + 0x28c6: 0x000c, + 0x28d2: 0x000a, 0x28d3: 0x000a, 0x28d4: 0x000a, 0x28d5: 0x000a, 0x28d6: 0x000a, 0x28d7: 0x000a, + 0x28d8: 0x000a, 0x28d9: 0x000a, 0x28da: 0x000a, 0x28db: 0x000a, 0x28dc: 0x000a, 0x28dd: 0x000a, + 0x28de: 0x000a, 0x28df: 0x000a, 0x28e0: 0x000a, 0x28e1: 0x000a, 0x28e2: 0x000a, 0x28e3: 0x000a, + 0x28e4: 0x000a, 0x28e5: 0x000a, + 0x28ff: 0x000c, + // Block 0xa4, offset 0x2900 + 0x2900: 0x000c, 0x2901: 0x000c, + 0x2933: 0x000c, 0x2934: 0x000c, 0x2935: 0x000c, + 0x2936: 0x000c, 0x2939: 0x000c, 0x293a: 0x000c, + // Block 0xa5, offset 0x2940 + 0x2940: 0x000c, 0x2941: 0x000c, 0x2942: 0x000c, + 0x2967: 0x000c, 0x2968: 0x000c, 0x2969: 0x000c, + 0x296a: 0x000c, 0x296b: 0x000c, 0x296d: 0x000c, 0x296e: 0x000c, 0x296f: 0x000c, + 0x2970: 0x000c, 0x2971: 0x000c, 0x2972: 0x000c, 0x2973: 0x000c, 0x2974: 0x000c, + // Block 0xa6, offset 0x2980 + 0x29b3: 0x000c, + // Block 0xa7, offset 0x29c0 + 0x29c0: 0x000c, 0x29c1: 0x000c, + 0x29f6: 0x000c, 0x29f7: 0x000c, 0x29f8: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c, 0x29fb: 0x000c, + 0x29fc: 0x000c, 0x29fd: 0x000c, 0x29fe: 0x000c, + // Block 0xa8, offset 0x2a00 + 0x2a0a: 0x000c, 0x2a0b: 0x000c, + 0x2a0c: 0x000c, + // Block 0xa9, offset 0x2a40 + 0x2a6f: 0x000c, + 0x2a70: 0x000c, 0x2a71: 0x000c, 0x2a74: 0x000c, + 0x2a76: 0x000c, 0x2a77: 0x000c, + 0x2a7e: 0x000c, + // Block 0xaa, offset 0x2a80 + 0x2a9f: 0x000c, 0x2aa3: 0x000c, + 0x2aa4: 0x000c, 0x2aa5: 0x000c, 0x2aa6: 0x000c, 0x2aa7: 0x000c, 0x2aa8: 0x000c, 0x2aa9: 0x000c, + 0x2aaa: 0x000c, + // Block 0xab, offset 0x2ac0 + 0x2ac0: 0x000c, 0x2ac1: 0x000c, + 0x2afc: 0x000c, + // Block 0xac, offset 0x2b00 + 0x2b00: 0x000c, + 0x2b26: 0x000c, 0x2b27: 0x000c, 0x2b28: 0x000c, 0x2b29: 0x000c, + 0x2b2a: 0x000c, 0x2b2b: 0x000c, 0x2b2c: 0x000c, + 0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b32: 0x000c, 0x2b33: 0x000c, 0x2b34: 0x000c, + // Block 0xad, offset 0x2b40 + 0x2b78: 0x000c, 0x2b79: 0x000c, 0x2b7a: 0x000c, 0x2b7b: 0x000c, + 0x2b7c: 0x000c, 0x2b7d: 0x000c, 0x2b7e: 0x000c, 0x2b7f: 0x000c, + // Block 0xae, offset 0x2b80 + 0x2b82: 0x000c, 0x2b83: 0x000c, 0x2b84: 0x000c, + 0x2b86: 0x000c, + // Block 0xaf, offset 0x2bc0 + 0x2bf3: 0x000c, 0x2bf4: 0x000c, 0x2bf5: 0x000c, + 0x2bf6: 0x000c, 0x2bf7: 0x000c, 0x2bf8: 0x000c, 0x2bfa: 0x000c, + 0x2bff: 0x000c, + // Block 0xb0, offset 0x2c00 + 0x2c00: 0x000c, 0x2c02: 0x000c, 0x2c03: 0x000c, + // Block 0xb1, offset 0x2c40 + 0x2c72: 0x000c, 0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c, + 0x2c7c: 0x000c, 0x2c7d: 0x000c, 0x2c7f: 0x000c, + // Block 0xb2, offset 0x2c80 + 0x2c80: 0x000c, + 0x2c9c: 0x000c, 0x2c9d: 0x000c, + // Block 0xb3, offset 0x2cc0 + 0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c, + 0x2cf6: 0x000c, 0x2cf7: 0x000c, 0x2cf8: 0x000c, 0x2cf9: 0x000c, 0x2cfa: 0x000c, + 0x2cfd: 0x000c, 0x2cff: 0x000c, + // Block 0xb4, offset 0x2d00 + 0x2d00: 0x000c, + 0x2d20: 0x000a, 0x2d21: 0x000a, 0x2d22: 0x000a, 0x2d23: 0x000a, + 0x2d24: 0x000a, 0x2d25: 0x000a, 0x2d26: 0x000a, 0x2d27: 0x000a, 0x2d28: 0x000a, 0x2d29: 0x000a, + 0x2d2a: 0x000a, 0x2d2b: 0x000a, 0x2d2c: 0x000a, + // Block 0xb5, offset 0x2d40 + 0x2d6b: 0x000c, 0x2d6d: 0x000c, + 0x2d70: 0x000c, 0x2d71: 0x000c, 0x2d72: 0x000c, 0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c, + 0x2d77: 0x000c, + // Block 0xb6, offset 0x2d80 + 0x2d9d: 0x000c, + 0x2d9e: 0x000c, 0x2d9f: 0x000c, 0x2da2: 0x000c, 0x2da3: 0x000c, + 0x2da4: 0x000c, 0x2da5: 0x000c, 0x2da7: 0x000c, 0x2da8: 0x000c, 0x2da9: 0x000c, + 0x2daa: 0x000c, 0x2dab: 0x000c, + // Block 0xb7, offset 0x2dc0 + 0x2dc1: 0x000c, 0x2dc2: 0x000c, 0x2dc3: 0x000c, 0x2dc4: 0x000c, 0x2dc5: 0x000c, + 0x2dc6: 0x000c, 0x2dc9: 0x000c, 0x2dca: 0x000c, + 0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c, + 0x2df6: 0x000c, 0x2df7: 0x000c, 0x2df8: 0x000c, 0x2dfb: 0x000c, + 0x2dfc: 0x000c, 0x2dfd: 0x000c, 0x2dfe: 0x000c, + // Block 0xb8, offset 0x2e00 + 0x2e07: 0x000c, + 0x2e11: 0x000c, + 0x2e12: 0x000c, 0x2e13: 0x000c, 0x2e14: 0x000c, 0x2e15: 0x000c, 0x2e16: 0x000c, + 0x2e19: 0x000c, 0x2e1a: 0x000c, 0x2e1b: 0x000c, + // Block 0xb9, offset 0x2e40 + 0x2e4a: 0x000c, 0x2e4b: 0x000c, + 0x2e4c: 0x000c, 0x2e4d: 0x000c, 0x2e4e: 0x000c, 0x2e4f: 0x000c, 0x2e50: 0x000c, 0x2e51: 0x000c, + 0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, + 0x2e58: 0x000c, 0x2e59: 0x000c, + // Block 0xba, offset 0x2e80 + 0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c, + 0x2eb6: 0x000c, 0x2eb8: 0x000c, 0x2eb9: 0x000c, 0x2eba: 0x000c, 0x2ebb: 0x000c, + 0x2ebc: 0x000c, 0x2ebd: 0x000c, + // Block 0xbb, offset 0x2ec0 + 0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c, 0x2ed7: 0x000c, + 0x2ed8: 0x000c, 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c, 0x2edc: 0x000c, 0x2edd: 0x000c, + 0x2ede: 0x000c, 0x2edf: 0x000c, 0x2ee0: 0x000c, 0x2ee1: 0x000c, 0x2ee2: 0x000c, 0x2ee3: 0x000c, + 0x2ee4: 0x000c, 0x2ee5: 0x000c, 0x2ee6: 0x000c, 0x2ee7: 0x000c, + 0x2eea: 0x000c, 0x2eeb: 0x000c, 0x2eec: 0x000c, 0x2eed: 0x000c, 0x2eee: 0x000c, 0x2eef: 0x000c, + 0x2ef0: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef5: 0x000c, + 0x2ef6: 0x000c, + // Block 0xbc, offset 0x2f00 + 0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c, + 0x2f36: 0x000c, 0x2f3a: 0x000c, + 0x2f3c: 0x000c, 0x2f3d: 0x000c, 0x2f3f: 0x000c, + // Block 0xbd, offset 0x2f40 + 0x2f40: 0x000c, 0x2f41: 0x000c, 0x2f42: 0x000c, 0x2f43: 0x000c, 0x2f44: 0x000c, 0x2f45: 0x000c, + 0x2f47: 0x000c, + // Block 0xbe, offset 0x2f80 + 0x2fb0: 0x000c, 0x2fb1: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb4: 0x000c, + // Block 0xbf, offset 0x2fc0 + 0x2ff0: 0x000c, 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c, + 0x2ff6: 0x000c, + // Block 0xc0, offset 0x3000 + 0x300f: 0x000c, 0x3010: 0x000c, 0x3011: 0x000c, + 0x3012: 0x000c, + // Block 0xc1, offset 0x3040 + 0x305d: 0x000c, + 0x305e: 0x000c, 0x3060: 0x000b, 0x3061: 0x000b, 0x3062: 0x000b, 0x3063: 0x000b, + // Block 0xc2, offset 0x3080 + 0x30a7: 0x000c, 0x30a8: 0x000c, 0x30a9: 0x000c, + 0x30b3: 0x000b, 0x30b4: 0x000b, 0x30b5: 0x000b, + 0x30b6: 0x000b, 0x30b7: 0x000b, 0x30b8: 0x000b, 0x30b9: 0x000b, 0x30ba: 0x000b, 0x30bb: 0x000c, + 0x30bc: 0x000c, 0x30bd: 0x000c, 0x30be: 0x000c, 0x30bf: 0x000c, + // Block 0xc3, offset 0x30c0 + 0x30c0: 0x000c, 0x30c1: 0x000c, 0x30c2: 0x000c, 0x30c5: 0x000c, + 0x30c6: 0x000c, 0x30c7: 0x000c, 0x30c8: 0x000c, 0x30c9: 0x000c, 0x30ca: 0x000c, 0x30cb: 0x000c, + 0x30ea: 0x000c, 0x30eb: 0x000c, 0x30ec: 0x000c, 0x30ed: 0x000c, + // Block 0xc4, offset 0x3100 + 0x3100: 0x000a, 0x3101: 0x000a, 0x3102: 0x000c, 0x3103: 0x000c, 0x3104: 0x000c, 0x3105: 0x000a, + // Block 0xc5, offset 0x3140 + 0x3140: 0x000a, 0x3141: 0x000a, 0x3142: 0x000a, 0x3143: 0x000a, 0x3144: 0x000a, 0x3145: 0x000a, + 0x3146: 0x000a, 0x3147: 0x000a, 0x3148: 0x000a, 0x3149: 0x000a, 0x314a: 0x000a, 0x314b: 0x000a, + 0x314c: 0x000a, 0x314d: 0x000a, 0x314e: 0x000a, 0x314f: 0x000a, 0x3150: 0x000a, 0x3151: 0x000a, + 0x3152: 0x000a, 0x3153: 0x000a, 0x3154: 0x000a, 0x3155: 0x000a, 0x3156: 0x000a, + // Block 0xc6, offset 0x3180 + 0x319b: 0x000a, + // Block 0xc7, offset 0x31c0 + 0x31d5: 0x000a, + // Block 0xc8, offset 0x3200 + 0x320f: 0x000a, + // Block 0xc9, offset 0x3240 + 0x3249: 0x000a, + // Block 0xca, offset 0x3280 + 0x3283: 0x000a, + 0x328e: 0x0002, 0x328f: 0x0002, 0x3290: 0x0002, 0x3291: 0x0002, + 0x3292: 0x0002, 0x3293: 0x0002, 0x3294: 0x0002, 0x3295: 0x0002, 0x3296: 0x0002, 0x3297: 0x0002, + 0x3298: 0x0002, 0x3299: 0x0002, 0x329a: 0x0002, 0x329b: 0x0002, 0x329c: 0x0002, 0x329d: 0x0002, + 0x329e: 0x0002, 0x329f: 0x0002, 0x32a0: 0x0002, 0x32a1: 0x0002, 0x32a2: 0x0002, 0x32a3: 0x0002, + 0x32a4: 0x0002, 0x32a5: 0x0002, 0x32a6: 0x0002, 0x32a7: 0x0002, 0x32a8: 0x0002, 0x32a9: 0x0002, + 0x32aa: 0x0002, 0x32ab: 0x0002, 0x32ac: 0x0002, 0x32ad: 0x0002, 0x32ae: 0x0002, 0x32af: 0x0002, + 0x32b0: 0x0002, 0x32b1: 0x0002, 0x32b2: 0x0002, 0x32b3: 0x0002, 0x32b4: 0x0002, 0x32b5: 0x0002, + 0x32b6: 0x0002, 0x32b7: 0x0002, 0x32b8: 0x0002, 0x32b9: 0x0002, 0x32ba: 0x0002, 0x32bb: 0x0002, + 0x32bc: 0x0002, 0x32bd: 0x0002, 0x32be: 0x0002, 0x32bf: 0x0002, + // Block 0xcb, offset 0x32c0 + 0x32c0: 0x000c, 0x32c1: 0x000c, 0x32c2: 0x000c, 0x32c3: 0x000c, 0x32c4: 0x000c, 0x32c5: 0x000c, + 0x32c6: 0x000c, 0x32c7: 0x000c, 0x32c8: 0x000c, 0x32c9: 0x000c, 0x32ca: 0x000c, 0x32cb: 0x000c, + 0x32cc: 0x000c, 0x32cd: 0x000c, 0x32ce: 0x000c, 0x32cf: 0x000c, 0x32d0: 0x000c, 0x32d1: 0x000c, + 0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x000c, + 0x32d8: 0x000c, 0x32d9: 0x000c, 0x32da: 0x000c, 0x32db: 0x000c, 0x32dc: 0x000c, 0x32dd: 0x000c, + 0x32de: 0x000c, 0x32df: 0x000c, 0x32e0: 0x000c, 0x32e1: 0x000c, 0x32e2: 0x000c, 0x32e3: 0x000c, + 0x32e4: 0x000c, 0x32e5: 0x000c, 0x32e6: 0x000c, 0x32e7: 0x000c, 0x32e8: 0x000c, 0x32e9: 0x000c, + 0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c, 0x32ee: 0x000c, 0x32ef: 0x000c, + 0x32f0: 0x000c, 0x32f1: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f4: 0x000c, 0x32f5: 0x000c, + 0x32f6: 0x000c, 0x32fb: 0x000c, + 0x32fc: 0x000c, 0x32fd: 0x000c, 0x32fe: 0x000c, 0x32ff: 0x000c, + // Block 0xcc, offset 0x3300 + 0x3300: 0x000c, 0x3301: 0x000c, 0x3302: 0x000c, 0x3303: 0x000c, 0x3304: 0x000c, 0x3305: 0x000c, + 0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x000c, + 0x330c: 0x000c, 0x330d: 0x000c, 0x330e: 0x000c, 0x330f: 0x000c, 0x3310: 0x000c, 0x3311: 0x000c, + 0x3312: 0x000c, 0x3313: 0x000c, 0x3314: 0x000c, 0x3315: 0x000c, 0x3316: 0x000c, 0x3317: 0x000c, + 0x3318: 0x000c, 0x3319: 0x000c, 0x331a: 0x000c, 0x331b: 0x000c, 0x331c: 0x000c, 0x331d: 0x000c, + 0x331e: 0x000c, 0x331f: 0x000c, 0x3320: 0x000c, 0x3321: 0x000c, 0x3322: 0x000c, 0x3323: 0x000c, + 0x3324: 0x000c, 0x3325: 0x000c, 0x3326: 0x000c, 0x3327: 0x000c, 0x3328: 0x000c, 0x3329: 0x000c, + 0x332a: 0x000c, 0x332b: 0x000c, 0x332c: 0x000c, + 0x3335: 0x000c, + // Block 0xcd, offset 0x3340 + 0x3344: 0x000c, + 0x335b: 0x000c, 0x335c: 0x000c, 0x335d: 0x000c, + 0x335e: 0x000c, 0x335f: 0x000c, 0x3361: 0x000c, 0x3362: 0x000c, 0x3363: 0x000c, + 0x3364: 0x000c, 0x3365: 0x000c, 0x3366: 0x000c, 0x3367: 0x000c, 0x3368: 0x000c, 0x3369: 0x000c, + 0x336a: 0x000c, 0x336b: 0x000c, 0x336c: 0x000c, 0x336d: 0x000c, 0x336e: 0x000c, 0x336f: 0x000c, + // Block 0xce, offset 0x3380 + 0x3380: 0x000c, 0x3381: 0x000c, 0x3382: 0x000c, 0x3383: 0x000c, 0x3384: 0x000c, 0x3385: 0x000c, + 0x3386: 0x000c, 0x3388: 0x000c, 0x3389: 0x000c, 0x338a: 0x000c, 0x338b: 0x000c, + 0x338c: 0x000c, 0x338d: 0x000c, 0x338e: 0x000c, 0x338f: 0x000c, 0x3390: 0x000c, 0x3391: 0x000c, + 0x3392: 0x000c, 0x3393: 0x000c, 0x3394: 0x000c, 0x3395: 0x000c, 0x3396: 0x000c, 0x3397: 0x000c, + 0x3398: 0x000c, 0x339b: 0x000c, 0x339c: 0x000c, 0x339d: 0x000c, + 0x339e: 0x000c, 0x339f: 0x000c, 0x33a0: 0x000c, 0x33a1: 0x000c, 0x33a3: 0x000c, + 0x33a4: 0x000c, 0x33a6: 0x000c, 0x33a7: 0x000c, 0x33a8: 0x000c, 0x33a9: 0x000c, + 0x33aa: 0x000c, + // Block 0xcf, offset 0x33c0 + 0x33c0: 0x0001, 0x33c1: 0x0001, 0x33c2: 0x0001, 0x33c3: 0x0001, 0x33c4: 0x0001, 0x33c5: 0x0001, + 0x33c6: 0x0001, 0x33c7: 0x0001, 0x33c8: 0x0001, 0x33c9: 0x0001, 0x33ca: 0x0001, 0x33cb: 0x0001, + 0x33cc: 0x0001, 0x33cd: 0x0001, 0x33ce: 0x0001, 0x33cf: 0x0001, 0x33d0: 0x000c, 0x33d1: 0x000c, + 0x33d2: 0x000c, 0x33d3: 0x000c, 0x33d4: 0x000c, 0x33d5: 0x000c, 0x33d6: 0x000c, 0x33d7: 0x0001, + 0x33d8: 0x0001, 0x33d9: 0x0001, 0x33da: 0x0001, 0x33db: 0x0001, 0x33dc: 0x0001, 0x33dd: 0x0001, + 0x33de: 0x0001, 0x33df: 0x0001, 0x33e0: 0x0001, 0x33e1: 0x0001, 0x33e2: 0x0001, 0x33e3: 0x0001, + 0x33e4: 0x0001, 0x33e5: 0x0001, 0x33e6: 0x0001, 0x33e7: 0x0001, 0x33e8: 0x0001, 0x33e9: 0x0001, + 0x33ea: 0x0001, 0x33eb: 0x0001, 0x33ec: 0x0001, 0x33ed: 0x0001, 0x33ee: 0x0001, 0x33ef: 0x0001, + 0x33f0: 0x0001, 0x33f1: 0x0001, 0x33f2: 0x0001, 0x33f3: 0x0001, 0x33f4: 0x0001, 0x33f5: 0x0001, + 0x33f6: 0x0001, 0x33f7: 0x0001, 0x33f8: 0x0001, 0x33f9: 0x0001, 0x33fa: 0x0001, 0x33fb: 0x0001, + 0x33fc: 0x0001, 0x33fd: 0x0001, 0x33fe: 0x0001, 0x33ff: 0x0001, + // Block 0xd0, offset 0x3400 + 0x3400: 0x0001, 0x3401: 0x0001, 0x3402: 0x0001, 0x3403: 0x0001, 0x3404: 0x000c, 0x3405: 0x000c, + 0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x0001, + 0x340c: 0x0001, 0x340d: 0x0001, 0x340e: 0x0001, 0x340f: 0x0001, 0x3410: 0x0001, 0x3411: 0x0001, + 0x3412: 0x0001, 0x3413: 0x0001, 0x3414: 0x0001, 0x3415: 0x0001, 0x3416: 0x0001, 0x3417: 0x0001, + 0x3418: 0x0001, 0x3419: 0x0001, 0x341a: 0x0001, 0x341b: 0x0001, 0x341c: 0x0001, 0x341d: 0x0001, + 0x341e: 0x0001, 0x341f: 0x0001, 0x3420: 0x0001, 0x3421: 0x0001, 0x3422: 0x0001, 0x3423: 0x0001, + 0x3424: 0x0001, 0x3425: 0x0001, 0x3426: 0x0001, 0x3427: 0x0001, 0x3428: 0x0001, 0x3429: 0x0001, + 0x342a: 0x0001, 0x342b: 0x0001, 0x342c: 0x0001, 0x342d: 0x0001, 0x342e: 0x0001, 0x342f: 0x0001, + 0x3430: 0x0001, 0x3431: 0x0001, 0x3432: 0x0001, 0x3433: 0x0001, 0x3434: 0x0001, 0x3435: 0x0001, + 0x3436: 0x0001, 0x3437: 0x0001, 0x3438: 0x0001, 0x3439: 0x0001, 0x343a: 0x0001, 0x343b: 0x0001, + 0x343c: 0x0001, 0x343d: 0x0001, 0x343e: 0x0001, 0x343f: 0x0001, + // Block 0xd1, offset 0x3440 + 0x3440: 0x000d, 0x3441: 0x000d, 0x3442: 0x000d, 0x3443: 0x000d, 0x3444: 0x000d, 0x3445: 0x000d, + 0x3446: 0x000d, 0x3447: 0x000d, 0x3448: 0x000d, 0x3449: 0x000d, 0x344a: 0x000d, 0x344b: 0x000d, + 0x344c: 0x000d, 0x344d: 0x000d, 0x344e: 0x000d, 0x344f: 0x000d, 0x3450: 0x000d, 0x3451: 0x000d, + 0x3452: 0x000d, 0x3453: 0x000d, 0x3454: 0x000d, 0x3455: 0x000d, 0x3456: 0x000d, 0x3457: 0x000d, + 0x3458: 0x000d, 0x3459: 0x000d, 0x345a: 0x000d, 0x345b: 0x000d, 0x345c: 0x000d, 0x345d: 0x000d, + 0x345e: 0x000d, 0x345f: 0x000d, 0x3460: 0x000d, 0x3461: 0x000d, 0x3462: 0x000d, 0x3463: 0x000d, + 0x3464: 0x000d, 0x3465: 0x000d, 0x3466: 0x000d, 0x3467: 0x000d, 0x3468: 0x000d, 0x3469: 0x000d, + 0x346a: 0x000d, 0x346b: 0x000d, 0x346c: 0x000d, 0x346d: 0x000d, 0x346e: 0x000d, 0x346f: 0x000d, + 0x3470: 0x000a, 0x3471: 0x000a, 0x3472: 0x000d, 0x3473: 0x000d, 0x3474: 0x000d, 0x3475: 0x000d, + 0x3476: 0x000d, 0x3477: 0x000d, 0x3478: 0x000d, 0x3479: 0x000d, 0x347a: 0x000d, 0x347b: 0x000d, + 0x347c: 0x000d, 0x347d: 0x000d, 0x347e: 0x000d, 0x347f: 0x000d, + // Block 0xd2, offset 0x3480 + 0x3480: 0x000a, 0x3481: 0x000a, 0x3482: 0x000a, 0x3483: 0x000a, 0x3484: 0x000a, 0x3485: 0x000a, + 0x3486: 0x000a, 0x3487: 0x000a, 0x3488: 0x000a, 0x3489: 0x000a, 0x348a: 0x000a, 0x348b: 0x000a, + 0x348c: 0x000a, 0x348d: 0x000a, 0x348e: 0x000a, 0x348f: 0x000a, 0x3490: 0x000a, 0x3491: 0x000a, + 0x3492: 0x000a, 0x3493: 0x000a, 0x3494: 0x000a, 0x3495: 0x000a, 0x3496: 0x000a, 0x3497: 0x000a, + 0x3498: 0x000a, 0x3499: 0x000a, 0x349a: 0x000a, 0x349b: 0x000a, 0x349c: 0x000a, 0x349d: 0x000a, + 0x349e: 0x000a, 0x349f: 0x000a, 0x34a0: 0x000a, 0x34a1: 0x000a, 0x34a2: 0x000a, 0x34a3: 0x000a, + 0x34a4: 0x000a, 0x34a5: 0x000a, 0x34a6: 0x000a, 0x34a7: 0x000a, 0x34a8: 0x000a, 0x34a9: 0x000a, + 0x34aa: 0x000a, 0x34ab: 0x000a, + 0x34b0: 0x000a, 0x34b1: 0x000a, 0x34b2: 0x000a, 0x34b3: 0x000a, 0x34b4: 0x000a, 0x34b5: 0x000a, + 0x34b6: 0x000a, 0x34b7: 0x000a, 0x34b8: 0x000a, 0x34b9: 0x000a, 0x34ba: 0x000a, 0x34bb: 0x000a, + 0x34bc: 0x000a, 0x34bd: 0x000a, 0x34be: 0x000a, 0x34bf: 0x000a, + // Block 0xd3, offset 0x34c0 + 0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a, + 0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a, + 0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a, + 0x34d2: 0x000a, 0x34d3: 0x000a, + 0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a, + 0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a, + 0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a, 0x34ed: 0x000a, 0x34ee: 0x000a, + 0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a, + 0x34f6: 0x000a, 0x34f7: 0x000a, 0x34f8: 0x000a, 0x34f9: 0x000a, 0x34fa: 0x000a, 0x34fb: 0x000a, + 0x34fc: 0x000a, 0x34fd: 0x000a, 0x34fe: 0x000a, 0x34ff: 0x000a, + // Block 0xd4, offset 0x3500 + 0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a, + 0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a, + 0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3511: 0x000a, + 0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a, 0x3515: 0x000a, 0x3516: 0x000a, 0x3517: 0x000a, + 0x3518: 0x000a, 0x3519: 0x000a, 0x351a: 0x000a, 0x351b: 0x000a, 0x351c: 0x000a, 0x351d: 0x000a, + 0x351e: 0x000a, 0x351f: 0x000a, 0x3520: 0x000a, 0x3521: 0x000a, 0x3522: 0x000a, 0x3523: 0x000a, + 0x3524: 0x000a, 0x3525: 0x000a, 0x3526: 0x000a, 0x3527: 0x000a, 0x3528: 0x000a, 0x3529: 0x000a, + 0x352a: 0x000a, 0x352b: 0x000a, 0x352c: 0x000a, 0x352d: 0x000a, 0x352e: 0x000a, 0x352f: 0x000a, + 0x3530: 0x000a, 0x3531: 0x000a, 0x3532: 0x000a, 0x3533: 0x000a, 0x3534: 0x000a, 0x3535: 0x000a, + // Block 0xd5, offset 0x3540 + 0x3540: 0x0002, 0x3541: 0x0002, 0x3542: 0x0002, 0x3543: 0x0002, 0x3544: 0x0002, 0x3545: 0x0002, + 0x3546: 0x0002, 0x3547: 0x0002, 0x3548: 0x0002, 0x3549: 0x0002, 0x354a: 0x0002, 0x354b: 0x000a, + 0x354c: 0x000a, + // Block 0xd6, offset 0x3580 + 0x35aa: 0x000a, 0x35ab: 0x000a, + // Block 0xd7, offset 0x35c0 + 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a, + 0x35e4: 0x000a, 0x35e5: 0x000a, + // Block 0xd8, offset 0x3600 + 0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a, + 0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a, + 0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a, + 0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a, + 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a, + 0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a, + 0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a, + 0x3630: 0x000a, 0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a, + 0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, + // Block 0xd9, offset 0x3640 + 0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a, + 0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a, + 0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3650: 0x000a, 0x3651: 0x000a, + 0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, + // Block 0xda, offset 0x3680 + 0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a, + 0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a, + 0x3690: 0x000a, 0x3691: 0x000a, + 0x3692: 0x000a, 0x3693: 0x000a, 0x3694: 0x000a, 0x3695: 0x000a, 0x3696: 0x000a, 0x3697: 0x000a, + 0x3698: 0x000a, 0x3699: 0x000a, 0x369a: 0x000a, 0x369b: 0x000a, 0x369c: 0x000a, 0x369d: 0x000a, + 0x369e: 0x000a, 0x369f: 0x000a, 0x36a0: 0x000a, 0x36a1: 0x000a, 0x36a2: 0x000a, 0x36a3: 0x000a, + 0x36a4: 0x000a, 0x36a5: 0x000a, 0x36a6: 0x000a, 0x36a7: 0x000a, 0x36a8: 0x000a, 0x36a9: 0x000a, + 0x36aa: 0x000a, 0x36ab: 0x000a, 0x36ac: 0x000a, 0x36ad: 0x000a, 0x36ae: 0x000a, 0x36af: 0x000a, + 0x36b0: 0x000a, 0x36b1: 0x000a, 0x36b2: 0x000a, 0x36b3: 0x000a, 0x36b4: 0x000a, 0x36b5: 0x000a, + 0x36b6: 0x000a, 0x36b7: 0x000a, 0x36b8: 0x000a, 0x36b9: 0x000a, 0x36ba: 0x000a, 0x36bb: 0x000a, + 0x36bc: 0x000a, 0x36bd: 0x000a, 0x36be: 0x000a, 0x36bf: 0x000a, + // Block 0xdb, offset 0x36c0 + 0x36c0: 0x000a, 0x36c1: 0x000a, 0x36c2: 0x000a, 0x36c3: 0x000a, 0x36c4: 0x000a, 0x36c5: 0x000a, + 0x36c6: 0x000a, 0x36c7: 0x000a, + 0x36d0: 0x000a, 0x36d1: 0x000a, + 0x36d2: 0x000a, 0x36d3: 0x000a, 0x36d4: 0x000a, 0x36d5: 0x000a, 0x36d6: 0x000a, 0x36d7: 0x000a, + 0x36d8: 0x000a, 0x36d9: 0x000a, + 0x36e0: 0x000a, 0x36e1: 0x000a, 0x36e2: 0x000a, 0x36e3: 0x000a, + 0x36e4: 0x000a, 0x36e5: 0x000a, 0x36e6: 0x000a, 0x36e7: 0x000a, 0x36e8: 0x000a, 0x36e9: 0x000a, + 0x36ea: 0x000a, 0x36eb: 0x000a, 0x36ec: 0x000a, 0x36ed: 0x000a, 0x36ee: 0x000a, 0x36ef: 0x000a, + 0x36f0: 0x000a, 0x36f1: 0x000a, 0x36f2: 0x000a, 0x36f3: 0x000a, 0x36f4: 0x000a, 0x36f5: 0x000a, + 0x36f6: 0x000a, 0x36f7: 0x000a, 0x36f8: 0x000a, 0x36f9: 0x000a, 0x36fa: 0x000a, 0x36fb: 0x000a, + 0x36fc: 0x000a, 0x36fd: 0x000a, 0x36fe: 0x000a, 0x36ff: 0x000a, + // Block 0xdc, offset 0x3700 + 0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a, + 0x3706: 0x000a, 0x3707: 0x000a, + 0x3710: 0x000a, 0x3711: 0x000a, + 0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a, + 0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a, + 0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a, + 0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a, + 0x372a: 0x000a, 0x372b: 0x000a, 0x372c: 0x000a, 0x372d: 0x000a, + // Block 0xdd, offset 0x3740 + 0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a, + 0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a, + 0x3750: 0x000a, 0x3751: 0x000a, + 0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a, 0x3755: 0x000a, 0x3756: 0x000a, 0x3757: 0x000a, + 0x3758: 0x000a, 0x3759: 0x000a, 0x375a: 0x000a, 0x375b: 0x000a, 0x375c: 0x000a, 0x375d: 0x000a, + 0x375e: 0x000a, 0x375f: 0x000a, 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a, + 0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a, + 0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a, 0x376f: 0x000a, + 0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a, + 0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, 0x377a: 0x000a, 0x377b: 0x000a, + 0x377c: 0x000a, 0x377d: 0x000a, 0x377e: 0x000a, + // Block 0xde, offset 0x3780 + 0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a, + 0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a, + 0x378c: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a, + 0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a, + 0x3798: 0x000a, 0x3799: 0x000a, 0x379a: 0x000a, 0x379b: 0x000a, 0x379c: 0x000a, 0x379d: 0x000a, + 0x379e: 0x000a, 0x379f: 0x000a, 0x37a0: 0x000a, 0x37a1: 0x000a, 0x37a2: 0x000a, 0x37a3: 0x000a, + 0x37a4: 0x000a, 0x37a5: 0x000a, 0x37a6: 0x000a, 0x37a7: 0x000a, 0x37a8: 0x000a, 0x37a9: 0x000a, + 0x37aa: 0x000a, 0x37ab: 0x000a, + // Block 0xdf, offset 0x37c0 + 0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a, + 0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a, + 0x37cc: 0x000a, 0x37cd: 0x000a, 0x37ce: 0x000a, 0x37cf: 0x000a, 0x37d0: 0x000a, 0x37d1: 0x000a, + 0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a, + // Block 0xe0, offset 0x3800 + 0x3800: 0x000a, + 0x3810: 0x000a, 0x3811: 0x000a, + 0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a, + 0x3818: 0x000a, 0x3819: 0x000a, 0x381a: 0x000a, 0x381b: 0x000a, 0x381c: 0x000a, 0x381d: 0x000a, + 0x381e: 0x000a, 0x381f: 0x000a, 0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a, + 0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a, + // Block 0xe1, offset 0x3840 + 0x387e: 0x000b, 0x387f: 0x000b, + // Block 0xe2, offset 0x3880 + 0x3880: 0x000b, 0x3881: 0x000b, 0x3882: 0x000b, 0x3883: 0x000b, 0x3884: 0x000b, 0x3885: 0x000b, + 0x3886: 0x000b, 0x3887: 0x000b, 0x3888: 0x000b, 0x3889: 0x000b, 0x388a: 0x000b, 0x388b: 0x000b, + 0x388c: 0x000b, 0x388d: 0x000b, 0x388e: 0x000b, 0x388f: 0x000b, 0x3890: 0x000b, 0x3891: 0x000b, + 0x3892: 0x000b, 0x3893: 0x000b, 0x3894: 0x000b, 0x3895: 0x000b, 0x3896: 0x000b, 0x3897: 0x000b, + 0x3898: 0x000b, 0x3899: 0x000b, 0x389a: 0x000b, 0x389b: 0x000b, 0x389c: 0x000b, 0x389d: 0x000b, + 0x389e: 0x000b, 0x389f: 0x000b, 0x38a0: 0x000b, 0x38a1: 0x000b, 0x38a2: 0x000b, 0x38a3: 0x000b, + 0x38a4: 0x000b, 0x38a5: 0x000b, 0x38a6: 0x000b, 0x38a7: 0x000b, 0x38a8: 0x000b, 0x38a9: 0x000b, + 0x38aa: 0x000b, 0x38ab: 0x000b, 0x38ac: 0x000b, 0x38ad: 0x000b, 0x38ae: 0x000b, 0x38af: 0x000b, + 0x38b0: 0x000b, 0x38b1: 0x000b, 0x38b2: 0x000b, 0x38b3: 0x000b, 0x38b4: 0x000b, 0x38b5: 0x000b, + 0x38b6: 0x000b, 0x38b7: 0x000b, 0x38b8: 0x000b, 0x38b9: 0x000b, 0x38ba: 0x000b, 0x38bb: 0x000b, + 0x38bc: 0x000b, 0x38bd: 0x000b, 0x38be: 0x000b, 0x38bf: 0x000b, + // Block 0xe3, offset 0x38c0 + 0x38c0: 0x000c, 0x38c1: 0x000c, 0x38c2: 0x000c, 0x38c3: 0x000c, 0x38c4: 0x000c, 0x38c5: 0x000c, + 0x38c6: 0x000c, 0x38c7: 0x000c, 0x38c8: 0x000c, 0x38c9: 0x000c, 0x38ca: 0x000c, 0x38cb: 0x000c, + 0x38cc: 0x000c, 0x38cd: 0x000c, 0x38ce: 0x000c, 0x38cf: 0x000c, 0x38d0: 0x000c, 0x38d1: 0x000c, + 0x38d2: 0x000c, 0x38d3: 0x000c, 0x38d4: 0x000c, 0x38d5: 0x000c, 0x38d6: 0x000c, 0x38d7: 0x000c, + 0x38d8: 0x000c, 0x38d9: 0x000c, 0x38da: 0x000c, 0x38db: 0x000c, 0x38dc: 0x000c, 0x38dd: 0x000c, + 0x38de: 0x000c, 0x38df: 0x000c, 0x38e0: 0x000c, 0x38e1: 0x000c, 0x38e2: 0x000c, 0x38e3: 0x000c, + 0x38e4: 0x000c, 0x38e5: 0x000c, 0x38e6: 0x000c, 0x38e7: 0x000c, 0x38e8: 0x000c, 0x38e9: 0x000c, + 0x38ea: 0x000c, 0x38eb: 0x000c, 0x38ec: 0x000c, 0x38ed: 0x000c, 0x38ee: 0x000c, 0x38ef: 0x000c, + 0x38f0: 0x000b, 0x38f1: 0x000b, 0x38f2: 0x000b, 0x38f3: 0x000b, 0x38f4: 0x000b, 0x38f5: 0x000b, + 0x38f6: 0x000b, 0x38f7: 0x000b, 0x38f8: 0x000b, 0x38f9: 0x000b, 0x38fa: 0x000b, 0x38fb: 0x000b, + 0x38fc: 0x000b, 0x38fd: 0x000b, 0x38fe: 0x000b, 0x38ff: 0x000b, +} + +// bidiIndex: 24 blocks, 1536 entries, 1536 bytes +// Block 0 is the zero block. +var bidiIndex = [1536]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x02, + 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08, + 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b, + 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, + 0xea: 0x07, 0xef: 0x08, + 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15, + // Block 0x4, offset 0x100 + 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b, + 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22, + 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28, + 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30, + // Block 0x5, offset 0x140 + 0x140: 0x31, 0x141: 0x32, 0x142: 0x33, + 0x14d: 0x34, 0x14e: 0x35, + 0x150: 0x36, + 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b, + 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40, + 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47, + 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a, + 0x17e: 0x4b, 0x17f: 0x4c, + // Block 0x6, offset 0x180 + 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54, + 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54, + 0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54, + 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f, + 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61, + 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64, + 0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67, + 0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70, + 0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76, + // Block 0x8, offset 0x200 + 0x237: 0x54, + // Block 0x9, offset 0x240 + 0x252: 0x77, 0x253: 0x78, + 0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e, + 0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85, + 0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a, + // Block 0xa, offset 0x280 + 0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e, + 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e, + 0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94, + // Block 0xb, offset 0x2c0 + 0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97, + 0x2cb: 0x98, 0x2cd: 0x99, + 0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a, + 0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a, + 0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9a, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a, + 0x2f8: 0x9a, 0x2f9: 0x9f, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0x9a, 0x2fd: 0x9a, 0x2fe: 0x9a, 0x2ff: 0x9a, + // Block 0xc, offset 0x300 + 0x300: 0xa0, 0x301: 0xa1, 0x302: 0xa2, 0x304: 0xa3, 0x305: 0xa4, 0x306: 0xa5, 0x307: 0xa6, + 0x308: 0xa7, 0x30b: 0xa8, 0x30c: 0xa9, 0x30d: 0xaa, + 0x310: 0xab, 0x311: 0xac, 0x312: 0xad, 0x313: 0xae, 0x316: 0xaf, 0x317: 0xb0, + 0x318: 0xb1, 0x319: 0xb2, 0x31a: 0xb3, 0x31c: 0xb4, + 0x328: 0xb5, 0x329: 0xb6, 0x32a: 0xb7, + 0x330: 0xb8, 0x332: 0xb9, 0x334: 0xba, 0x335: 0xbb, + // Block 0xd, offset 0x340 + 0x36b: 0xbc, 0x36c: 0xbd, + 0x37e: 0xbe, + // Block 0xe, offset 0x380 + 0x3b2: 0xbf, + // Block 0xf, offset 0x3c0 + 0x3c5: 0xc0, 0x3c6: 0xc1, + 0x3c8: 0x54, 0x3c9: 0xc2, 0x3cc: 0x54, 0x3cd: 0xc3, + 0x3db: 0xc4, 0x3dc: 0xc5, 0x3dd: 0xc6, 0x3de: 0xc7, 0x3df: 0xc8, + 0x3e8: 0xc9, 0x3e9: 0xca, 0x3ea: 0xcb, + // Block 0x10, offset 0x400 + 0x400: 0xcc, + 0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xcd, 0x424: 0x9a, 0x425: 0xce, 0x426: 0x9a, 0x427: 0x9a, + 0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a, + 0x430: 0x9a, 0x431: 0x9a, 0x432: 0x9a, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a, + 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcf, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a, + // Block 0x11, offset 0x440 + 0x440: 0xd0, 0x441: 0x54, 0x442: 0xd1, 0x443: 0xd2, 0x444: 0xd3, 0x445: 0xd4, + 0x449: 0xd5, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54, + 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54, + 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd6, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xd7, + 0x460: 0xd8, 0x461: 0xd9, 0x462: 0xda, 0x464: 0xdb, 0x465: 0xdc, 0x466: 0xdd, 0x467: 0xde, + 0x47f: 0xdf, + // Block 0x12, offset 0x480 + 0x4bf: 0xdf, + // Block 0x13, offset 0x4c0 + 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b, + 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f, + 0x4ef: 0x10, + 0x4ff: 0x10, + // Block 0x14, offset 0x500 + 0x50f: 0x10, + 0x51f: 0x10, + 0x52f: 0x10, + 0x53f: 0x10, + // Block 0x15, offset 0x540 + 0x540: 0xe0, 0x541: 0xe0, 0x542: 0xe0, 0x543: 0xe0, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe1, + 0x548: 0xe0, 0x549: 0xe0, 0x54a: 0xe0, 0x54b: 0xe0, 0x54c: 0xe0, 0x54d: 0xe0, 0x54e: 0xe0, 0x54f: 0xe0, + 0x550: 0xe0, 0x551: 0xe0, 0x552: 0xe0, 0x553: 0xe0, 0x554: 0xe0, 0x555: 0xe0, 0x556: 0xe0, 0x557: 0xe0, + 0x558: 0xe0, 0x559: 0xe0, 0x55a: 0xe0, 0x55b: 0xe0, 0x55c: 0xe0, 0x55d: 0xe0, 0x55e: 0xe0, 0x55f: 0xe0, + 0x560: 0xe0, 0x561: 0xe0, 0x562: 0xe0, 0x563: 0xe0, 0x564: 0xe0, 0x565: 0xe0, 0x566: 0xe0, 0x567: 0xe0, + 0x568: 0xe0, 0x569: 0xe0, 0x56a: 0xe0, 0x56b: 0xe0, 0x56c: 0xe0, 0x56d: 0xe0, 0x56e: 0xe0, 0x56f: 0xe0, + 0x570: 0xe0, 0x571: 0xe0, 0x572: 0xe0, 0x573: 0xe0, 0x574: 0xe0, 0x575: 0xe0, 0x576: 0xe0, 0x577: 0xe0, + 0x578: 0xe0, 0x579: 0xe0, 0x57a: 0xe0, 0x57b: 0xe0, 0x57c: 0xe0, 0x57d: 0xe0, 0x57e: 0xe0, 0x57f: 0xe0, + // Block 0x16, offset 0x580 + 0x58f: 0x10, + 0x59f: 0x10, + 0x5a0: 0x13, + 0x5af: 0x10, + 0x5bf: 0x10, + // Block 0x17, offset 0x5c0 + 0x5cf: 0x10, +} + +// Total table size 16184 bytes (15KiB); checksum: F50EF68C diff --git a/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go new file mode 100644 index 0000000..56a0e1e --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go @@ -0,0 +1,1888 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.13 && !go1.14 +// +build go1.13,!go1.14 + +package bidi + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "11.0.0" + +// xorMasks contains masks to be xor-ed with brackets to get the reverse +// version. +var xorMasks = []int32{ // 8 elements + 0, 1, 6, 7, 3, 15, 29, 63, +} // Size: 56 bytes + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupUnsafe(s []byte) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookupString(s string) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupStringUnsafe(s string) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// bidiTrie. Total size: 16512 bytes (16.12 KiB). Checksum: 2a9cf1317f2ffaa. +type bidiTrie struct{} + +func newBidiTrie(i int) *bidiTrie { + return &bidiTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 { + switch { + default: + return uint8(bidiValues[n<<6+uint32(b)]) + } +} + +// bidiValues: 234 blocks, 14976 entries, 14976 bytes +// The third block is the zero block. +var bidiValues = [14976]uint8{ + // Block 0x0, offset 0x0 + 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b, + 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008, + 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b, + 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b, + 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007, + 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004, + 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a, + 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006, + 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002, + 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a, + 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a, + // Block 0x1, offset 0x40 + 0x40: 0x000a, + 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a, + 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a, + 0x7b: 0x005a, + 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007, + 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b, + 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b, + 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b, + 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b, + 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004, + 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a, + 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a, + 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a, + 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a, + 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a, + // Block 0x4, offset 0x100 + 0x117: 0x000a, + 0x137: 0x000a, + // Block 0x5, offset 0x140 + 0x179: 0x000a, 0x17a: 0x000a, + // Block 0x6, offset 0x180 + 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a, + 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a, + 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a, + 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a, + 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a, + 0x19e: 0x000a, 0x19f: 0x000a, + 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a, + 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a, + 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a, + 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a, + 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c, + 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c, + 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c, + 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c, + 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c, + 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c, + 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c, + 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c, + 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c, + 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c, + 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c, + // Block 0x8, offset 0x200 + 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c, + 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c, + 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c, + 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c, + 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c, + 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c, + 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c, + 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c, + 0x234: 0x000a, 0x235: 0x000a, + 0x23e: 0x000a, + // Block 0x9, offset 0x240 + 0x244: 0x000a, 0x245: 0x000a, + 0x247: 0x000a, + // Block 0xa, offset 0x280 + 0x2b6: 0x000a, + // Block 0xb, offset 0x2c0 + 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c, + 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c, + // Block 0xc, offset 0x300 + 0x30a: 0x000a, + 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c, + 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c, + 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c, + 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c, + 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c, + 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c, + 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c, + 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c, + 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c, + // Block 0xd, offset 0x340 + 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c, + 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001, + 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001, + 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001, + 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001, + 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001, + 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001, + 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001, + 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001, + 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001, + 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001, + // Block 0xe, offset 0x380 + 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005, + 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d, + 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c, + 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c, + 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d, + 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d, + 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d, + 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d, + 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d, + 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d, + 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d, + 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c, + 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c, + 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c, + 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c, + 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005, + 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005, + 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d, + 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d, + 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d, + 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d, + // Block 0x10, offset 0x400 + 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d, + 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d, + 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d, + 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d, + 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d, + 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d, + 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d, + 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d, + 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d, + 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d, + 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d, + // Block 0x11, offset 0x440 + 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d, + 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d, + 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d, + 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c, + 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005, + 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c, + 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a, + 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d, + 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002, + 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d, + 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d, + // Block 0x12, offset 0x480 + 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d, + 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d, + 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c, + 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d, + 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d, + 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d, + 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d, + 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d, + 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c, + 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c, + 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c, + 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d, + 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d, + 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d, + 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d, + 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d, + 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d, + 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d, + 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d, + 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d, + 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d, + // Block 0x14, offset 0x500 + 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d, + 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d, + 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d, + 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d, + 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d, + 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d, + 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c, + 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c, + 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d, + 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d, + 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d, + // Block 0x15, offset 0x540 + 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001, + 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001, + 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001, + 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001, + 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001, + 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001, + 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001, + 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c, + 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001, + 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001, + 0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001, + // Block 0x16, offset 0x580 + 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001, + 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001, + 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001, + 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c, + 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c, + 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c, + 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c, + 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001, + 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001, + 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001, + 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001, + 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001, + 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001, + 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001, + 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001, + 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d, + 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d, + 0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d, + 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001, + 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001, + 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001, + // Block 0x18, offset 0x600 + 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001, + 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001, + 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001, + 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001, + 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001, + 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d, + 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d, + 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d, + 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d, + 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d, + 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d, + // Block 0x19, offset 0x640 + 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d, + 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d, + 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d, + 0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c, + 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c, + 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c, + 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c, + 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c, + 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c, + 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c, + 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c, + // Block 0x1a, offset 0x680 + 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c, + 0x6ba: 0x000c, + 0x6bc: 0x000c, + // Block 0x1b, offset 0x6c0 + 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c, + 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c, + 0x6cd: 0x000c, 0x6d1: 0x000c, + 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c, + 0x6e2: 0x000c, 0x6e3: 0x000c, + // Block 0x1c, offset 0x700 + 0x701: 0x000c, + 0x73c: 0x000c, + // Block 0x1d, offset 0x740 + 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c, + 0x74d: 0x000c, + 0x762: 0x000c, 0x763: 0x000c, + 0x772: 0x0004, 0x773: 0x0004, + 0x77b: 0x0004, + 0x77e: 0x000c, + // Block 0x1e, offset 0x780 + 0x781: 0x000c, 0x782: 0x000c, + 0x7bc: 0x000c, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x000c, 0x7c2: 0x000c, + 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c, + 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c, + 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c, + // Block 0x20, offset 0x800 + 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c, + 0x807: 0x000c, 0x808: 0x000c, + 0x80d: 0x000c, + 0x822: 0x000c, 0x823: 0x000c, + 0x831: 0x0004, + 0x83a: 0x000c, 0x83b: 0x000c, + 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c, + // Block 0x21, offset 0x840 + 0x841: 0x000c, + 0x87c: 0x000c, 0x87f: 0x000c, + // Block 0x22, offset 0x880 + 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c, + 0x88d: 0x000c, + 0x896: 0x000c, + 0x8a2: 0x000c, 0x8a3: 0x000c, + // Block 0x23, offset 0x8c0 + 0x8c2: 0x000c, + // Block 0x24, offset 0x900 + 0x900: 0x000c, + 0x90d: 0x000c, + 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a, + 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a, + // Block 0x25, offset 0x940 + 0x940: 0x000c, 0x944: 0x000c, + 0x97e: 0x000c, 0x97f: 0x000c, + // Block 0x26, offset 0x980 + 0x980: 0x000c, + 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c, + 0x98c: 0x000c, 0x98d: 0x000c, + 0x995: 0x000c, 0x996: 0x000c, + 0x9a2: 0x000c, 0x9a3: 0x000c, + 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a, + 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a, + // Block 0x27, offset 0x9c0 + 0x9cc: 0x000c, 0x9cd: 0x000c, + 0x9e2: 0x000c, 0x9e3: 0x000c, + // Block 0x28, offset 0xa00 + 0xa00: 0x000c, 0xa01: 0x000c, + 0xa3b: 0x000c, + 0xa3c: 0x000c, + // Block 0x29, offset 0xa40 + 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c, + 0xa4d: 0x000c, + 0xa62: 0x000c, 0xa63: 0x000c, + // Block 0x2a, offset 0xa80 + 0xa8a: 0x000c, + 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c, + // Block 0x2b, offset 0xac0 + 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c, + 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c, + 0xaff: 0x0004, + // Block 0x2c, offset 0xb00 + 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c, + 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c, + // Block 0x2d, offset 0xb40 + 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c, + 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c, + 0xb7c: 0x000c, + // Block 0x2e, offset 0xb80 + 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c, + 0xb8c: 0x000c, 0xb8d: 0x000c, + // Block 0x2f, offset 0xbc0 + 0xbd8: 0x000c, 0xbd9: 0x000c, + 0xbf5: 0x000c, + 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a, + 0xbfc: 0x003a, 0xbfd: 0x002a, + // Block 0x30, offset 0xc00 + 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c, + 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c, + 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c, + // Block 0x31, offset 0xc40 + 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c, + 0xc46: 0x000c, 0xc47: 0x000c, + 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c, + 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c, + 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c, + 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c, + 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c, + 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c, + 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c, + 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c, + 0xc7c: 0x000c, + // Block 0x32, offset 0xc80 + 0xc86: 0x000c, + // Block 0x33, offset 0xcc0 + 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c, + 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c, + 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c, + 0xcfd: 0x000c, 0xcfe: 0x000c, + // Block 0x34, offset 0xd00 + 0xd18: 0x000c, 0xd19: 0x000c, + 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c, + 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, + // Block 0x35, offset 0xd40 + 0xd42: 0x000c, 0xd45: 0x000c, + 0xd46: 0x000c, + 0xd4d: 0x000c, + 0xd5d: 0x000c, + // Block 0x36, offset 0xd80 + 0xd9d: 0x000c, + 0xd9e: 0x000c, 0xd9f: 0x000c, + // Block 0x37, offset 0xdc0 + 0xdd0: 0x000a, 0xdd1: 0x000a, + 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a, + 0xdd8: 0x000a, 0xdd9: 0x000a, + // Block 0x38, offset 0xe00 + 0xe00: 0x000a, + // Block 0x39, offset 0xe40 + 0xe40: 0x0009, + 0xe5b: 0x007a, 0xe5c: 0x006a, + // Block 0x3a, offset 0xe80 + 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c, + 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c, + // Block 0x3b, offset 0xec0 + 0xed2: 0x000c, 0xed3: 0x000c, + 0xef2: 0x000c, 0xef3: 0x000c, + // Block 0x3c, offset 0xf00 + 0xf34: 0x000c, 0xf35: 0x000c, + 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c, + 0xf3c: 0x000c, 0xf3d: 0x000c, + // Block 0x3d, offset 0xf40 + 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c, + 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c, + 0xf52: 0x000c, 0xf53: 0x000c, + 0xf5b: 0x0004, 0xf5d: 0x000c, + 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a, + 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a, + // Block 0x3e, offset 0xf80 + 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a, + 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c, + 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b, + // Block 0x3f, offset 0xfc0 + 0xfc5: 0x000c, + 0xfc6: 0x000c, + 0xfe9: 0x000c, + // Block 0x40, offset 0x1000 + 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c, + 0x1027: 0x000c, 0x1028: 0x000c, + 0x1032: 0x000c, + 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c, + // Block 0x41, offset 0x1040 + 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a, + // Block 0x42, offset 0x1080 + 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a, + 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a, + 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a, + 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a, + 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a, + 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a, + // Block 0x43, offset 0x10c0 + 0x10d7: 0x000c, + 0x10d8: 0x000c, 0x10db: 0x000c, + // Block 0x44, offset 0x1100 + 0x1116: 0x000c, + 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c, + 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c, + 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c, + 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c, + 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c, + 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c, + 0x113c: 0x000c, 0x113f: 0x000c, + // Block 0x45, offset 0x1140 + 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c, + 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c, + 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c, + // Block 0x46, offset 0x1180 + 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c, + 0x11b4: 0x000c, + 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, + 0x11bc: 0x000c, + // Block 0x47, offset 0x11c0 + 0x11c2: 0x000c, + 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c, + 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c, + // Block 0x48, offset 0x1200 + 0x1200: 0x000c, 0x1201: 0x000c, + 0x1222: 0x000c, 0x1223: 0x000c, + 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c, + 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c, + // Block 0x49, offset 0x1240 + 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c, + 0x126d: 0x000c, 0x126f: 0x000c, + 0x1270: 0x000c, 0x1271: 0x000c, + // Block 0x4a, offset 0x1280 + 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c, + 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c, + 0x12b6: 0x000c, 0x12b7: 0x000c, + // Block 0x4b, offset 0x12c0 + 0x12d0: 0x000c, 0x12d1: 0x000c, + 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c, + 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c, + 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c, + 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c, + 0x12ed: 0x000c, + 0x12f4: 0x000c, + 0x12f8: 0x000c, 0x12f9: 0x000c, + // Block 0x4c, offset 0x1300 + 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c, + 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c, + 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c, + 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c, + 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c, + 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c, + 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c, + 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c, + 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c, + 0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c, + 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c, + // Block 0x4d, offset 0x1340 + 0x137d: 0x000a, 0x137f: 0x000a, + // Block 0x4e, offset 0x1380 + 0x1380: 0x000a, 0x1381: 0x000a, + 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a, + 0x139d: 0x000a, + 0x139e: 0x000a, 0x139f: 0x000a, + 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a, + 0x13bd: 0x000a, 0x13be: 0x000a, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009, + 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b, + 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a, + 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a, + 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a, + 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a, + 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007, + 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006, + 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a, + 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a, + 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a, + // Block 0x50, offset 0x1400 + 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a, + 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a, + 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a, + 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a, + 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a, + 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b, + 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e, + 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b, + 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002, + 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003, + 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a, + // Block 0x51, offset 0x1440 + 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002, + 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003, + 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a, + 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004, + 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004, + 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004, + 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004, + 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004, + 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004, + // Block 0x52, offset 0x1480 + 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004, + 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004, + 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c, + 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c, + 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c, + 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c, + 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c, + 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c, + 0x14b0: 0x000c, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a, + 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a, + 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a, + 0x14d8: 0x000a, + 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a, + 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a, + 0x14ee: 0x0004, + 0x14fa: 0x000a, 0x14fb: 0x000a, + // Block 0x54, offset 0x1500 + 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a, + 0x150a: 0x000a, 0x150b: 0x000a, + 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a, + 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a, + 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a, + 0x151e: 0x000a, 0x151f: 0x000a, + // Block 0x55, offset 0x1540 + 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a, + 0x1550: 0x000a, 0x1551: 0x000a, + 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a, + 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a, + 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a, + 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a, + 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a, + 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a, + 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a, + 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a, + // Block 0x56, offset 0x1580 + 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a, + 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a, + 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a, + 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a, + 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a, + 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a, + 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a, + 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a, + 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a, + 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a, + 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a, + 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a, + 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a, + 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a, + 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a, + 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a, + 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a, + 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a, + 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a, + 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a, + 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a, + // Block 0x58, offset 0x1600 + 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a, + 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a, + 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a, + 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a, + 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a, + 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a, + 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a, + 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a, + 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a, + // Block 0x59, offset 0x1640 + 0x167b: 0x000a, + 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a, + // Block 0x5a, offset 0x1680 + 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a, + 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a, + 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a, + 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a, + 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a, + 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a, + 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a, + 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a, + 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a, + 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a, + 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a, + 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a, + 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a, + 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a, + 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a, + 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a, + 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, + // Block 0x5c, offset 0x1700 + 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a, + 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, + 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a, + 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a, + 0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a, + 0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a, + 0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a, + 0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a, + // Block 0x5d, offset 0x1740 + 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a, + 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002, + 0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002, + 0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002, + 0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002, + // Block 0x5e, offset 0x1780 + 0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a, + 0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a, + 0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a, + 0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a, + 0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a, + 0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a, + 0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a, + 0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a, + 0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a, + 0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a, + 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a, + 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a, + 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a, + 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a, + // Block 0x60, offset 0x1800 + 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a, + 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a, + 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a, + 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a, + 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a, + 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a, + 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a, + 0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a, + 0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a, + 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a, + 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a, + // Block 0x61, offset 0x1840 + 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a, + 0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a, + 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a, + 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a, + 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a, + 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a, + 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a, + 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a, + 0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a, + 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a, + 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a, + // Block 0x62, offset 0x1880 + 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a, + 0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a, + 0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a, + 0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba, + 0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a, + 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a, + 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a, + 0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a, + 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a, + 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a, + 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a, + 0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a, + 0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a, + 0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a, + 0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a, + 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a, + 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a, + 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a, + 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a, + 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a, + 0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a, + // Block 0x64, offset 0x1900 + 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a, + 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a, + 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a, + 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a, + 0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a, + 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a, + 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a, + 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a, + 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, + 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a, + 0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a, + // Block 0x65, offset 0x1940 + 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a, + 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a, + 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a, + 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, + 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a, + 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a, + 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a, + 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a, + 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a, + 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a, + 0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a, + // Block 0x66, offset 0x1980 + 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a, + 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a, + 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a, + 0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1996: 0x000a, 0x1997: 0x000a, + 0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a, + 0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a, + 0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a, + 0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a, + 0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a, + 0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a, + 0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, + // Block 0x67, offset 0x19c0 + 0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a, + 0x19ea: 0x000a, 0x19ef: 0x000c, + 0x19f0: 0x000c, 0x19f1: 0x000c, + 0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a, + 0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a, + // Block 0x68, offset 0x1a00 + 0x1a3f: 0x000c, + // Block 0x69, offset 0x1a40 + 0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c, + 0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c, + 0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c, + 0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c, + 0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c, + 0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a, + 0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a, + 0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a, + 0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a, + 0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a, + 0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a, + 0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a, + 0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a, + 0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a, + 0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a, + 0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a, + 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a, + 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a, + 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a, + 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a, + 0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a, + 0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a, + 0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a, + 0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a, + 0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a, + 0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a, + 0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a, + 0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a, + 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a, + 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a, + 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a, + 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a, + 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a, + 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a, + 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a, + 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a, + 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a, + 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a, + 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, + 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a, + 0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, + 0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a, + 0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a, + 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a, + 0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a, + 0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a, + 0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c, + 0x1bf0: 0x000a, + 0x1bf6: 0x000a, 0x1bf7: 0x000a, + 0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a, + // Block 0x70, offset 0x1c00 + 0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a, + 0x1c20: 0x000a, + // Block 0x71, offset 0x1c40 + 0x1c7b: 0x000a, + // Block 0x72, offset 0x1c80 + 0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a, + 0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a, + 0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a, + 0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a, + 0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a, + 0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a, + // Block 0x73, offset 0x1cc0 + 0x1cdd: 0x000a, + 0x1cde: 0x000a, + // Block 0x74, offset 0x1d00 + 0x1d10: 0x000a, 0x1d11: 0x000a, + 0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a, + 0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a, + 0x1d1e: 0x000a, 0x1d1f: 0x000a, + 0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a, + // Block 0x75, offset 0x1d40 + 0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a, + 0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a, + 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a, + // Block 0x76, offset 0x1d80 + 0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a, + // Block 0x77, offset 0x1dc0 + 0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a, + // Block 0x78, offset 0x1e00 + 0x1e1e: 0x000a, 0x1e1f: 0x000a, + 0x1e3f: 0x000a, + // Block 0x79, offset 0x1e40 + 0x1e50: 0x000a, 0x1e51: 0x000a, + 0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a, + 0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a, + 0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a, + 0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a, + 0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a, + 0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a, + 0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a, + 0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a, + 0x1e86: 0x000a, + // Block 0x7b, offset 0x1ec0 + 0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a, + // Block 0x7c, offset 0x1f00 + 0x1f2f: 0x000c, + 0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c, + 0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c, + 0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a, + // Block 0x7d, offset 0x1f40 + 0x1f5e: 0x000c, 0x1f5f: 0x000c, + // Block 0x7e, offset 0x1f80 + 0x1fb0: 0x000c, 0x1fb1: 0x000c, + // Block 0x7f, offset 0x1fc0 + 0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a, + 0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a, + 0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a, + 0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a, + 0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a, + 0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a, + // Block 0x80, offset 0x2000 + 0x2008: 0x000a, + // Block 0x81, offset 0x2040 + 0x2042: 0x000c, + 0x2046: 0x000c, 0x204b: 0x000c, + 0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a, + 0x206a: 0x000a, 0x206b: 0x000a, + 0x2078: 0x0004, 0x2079: 0x0004, + // Block 0x82, offset 0x2080 + 0x20b4: 0x000a, 0x20b5: 0x000a, + 0x20b6: 0x000a, 0x20b7: 0x000a, + // Block 0x83, offset 0x20c0 + 0x20c4: 0x000c, 0x20c5: 0x000c, + 0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c, + 0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c, + 0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c, + 0x20f0: 0x000c, 0x20f1: 0x000c, + 0x20ff: 0x000c, + // Block 0x84, offset 0x2100 + 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c, + 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, + // Block 0x85, offset 0x2140 + 0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c, + 0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c, + // Block 0x86, offset 0x2180 + 0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c, + 0x21b3: 0x000c, + 0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c, + 0x21bc: 0x000c, + // Block 0x87, offset 0x21c0 + 0x21e5: 0x000c, + // Block 0x88, offset 0x2200 + 0x2229: 0x000c, + 0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c, + 0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c, + 0x2236: 0x000c, + // Block 0x89, offset 0x2240 + 0x2243: 0x000c, + 0x224c: 0x000c, + 0x227c: 0x000c, + // Block 0x8a, offset 0x2280 + 0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c, + 0x22b7: 0x000c, 0x22b8: 0x000c, + 0x22be: 0x000c, 0x22bf: 0x000c, + // Block 0x8b, offset 0x22c0 + 0x22c1: 0x000c, + 0x22ec: 0x000c, 0x22ed: 0x000c, + 0x22f6: 0x000c, + // Block 0x8c, offset 0x2300 + 0x2325: 0x000c, 0x2328: 0x000c, + 0x232d: 0x000c, + // Block 0x8d, offset 0x2340 + 0x235d: 0x0001, + 0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001, + 0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003, + 0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001, + 0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001, + 0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001, + 0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001, + // Block 0x8e, offset 0x2380 + 0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001, + 0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001, + 0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d, + 0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d, + 0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d, + 0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d, + 0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d, + 0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d, + 0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d, + 0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d, + 0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d, + // Block 0x8f, offset 0x23c0 + 0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d, + 0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d, + 0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d, + 0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d, + 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d, + 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d, + 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d, + 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d, + 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d, + 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d, + 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a, + // Block 0x90, offset 0x2400 + 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d, + 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d, + 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b, + 0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b, + 0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b, + 0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b, + 0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b, + 0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b, + 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d, + 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d, + 0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d, + // Block 0x91, offset 0x2440 + 0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c, + 0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c, + 0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a, + 0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a, + 0x2458: 0x000a, 0x2459: 0x000a, + 0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c, + 0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c, + 0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c, + 0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a, + 0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a, + 0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a, + // Block 0x92, offset 0x2480 + 0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a, + 0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a, + 0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a, + 0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a, + 0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a, + 0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003, + 0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004, + 0x24aa: 0x0004, 0x24ab: 0x000a, + 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d, + 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d, + 0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d, + // Block 0x93, offset 0x24c0 + 0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d, + 0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d, + 0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d, + 0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d, + 0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d, + 0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d, + 0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d, + 0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d, + 0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d, + 0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d, + 0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b, + // Block 0x94, offset 0x2500 + 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004, + 0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003, + 0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002, + 0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002, + 0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a, + 0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a, + 0x253b: 0x005a, + 0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a, + // Block 0x95, offset 0x2540 + 0x2540: 0x000a, + 0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a, + 0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a, + 0x2564: 0x000a, 0x2565: 0x000a, + // Block 0x96, offset 0x2580 + 0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a, + 0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a, + 0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a, + 0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b, + 0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a, + 0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b, + // Block 0x97, offset 0x25c0 + 0x25c1: 0x000a, + // Block 0x98, offset 0x2600 + 0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a, + 0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a, + 0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a, + 0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a, + 0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a, + 0x2620: 0x000a, + // Block 0x99, offset 0x2640 + 0x267d: 0x000c, + // Block 0x9a, offset 0x2680 + 0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002, + 0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002, + 0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002, + 0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002, + 0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002, + // Block 0x9b, offset 0x26c0 + 0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c, + // Block 0x9c, offset 0x2700 + 0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001, + 0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001, + 0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001, + 0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001, + 0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001, + 0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001, + 0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001, + 0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001, + 0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001, + 0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001, + 0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001, + // Block 0x9d, offset 0x2740 + 0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001, + 0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001, + 0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001, + 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001, + 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001, + 0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001, + 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001, + 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001, + 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001, + 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001, + 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001, + // Block 0x9e, offset 0x2780 + 0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c, + 0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001, + 0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001, + 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001, + 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001, + 0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001, + 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001, + 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001, + 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001, + 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001, + 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c, + // Block 0x9f, offset 0x27c0 + 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001, + 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001, + 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001, + 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001, + 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001, + 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001, + 0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001, + 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001, + 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001, + 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001, + 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001, + // Block 0xa0, offset 0x2800 + 0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001, + 0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001, + 0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001, + 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001, + 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001, + 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001, + 0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001, + 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001, + 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001, + 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a, + 0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a, + // Block 0xa1, offset 0x2840 + 0x2840: 0x000d, 0x2841: 0x000d, 0x2842: 0x000d, 0x2843: 0x000d, 0x2844: 0x000d, 0x2845: 0x000d, + 0x2846: 0x000d, 0x2847: 0x000d, 0x2848: 0x000d, 0x2849: 0x000d, 0x284a: 0x000d, 0x284b: 0x000d, + 0x284c: 0x000d, 0x284d: 0x000d, 0x284e: 0x000d, 0x284f: 0x000d, 0x2850: 0x000d, 0x2851: 0x000d, + 0x2852: 0x000d, 0x2853: 0x000d, 0x2854: 0x000d, 0x2855: 0x000d, 0x2856: 0x000d, 0x2857: 0x000d, + 0x2858: 0x000d, 0x2859: 0x000d, 0x285a: 0x000d, 0x285b: 0x000d, 0x285c: 0x000d, 0x285d: 0x000d, + 0x285e: 0x000d, 0x285f: 0x000d, 0x2860: 0x000d, 0x2861: 0x000d, 0x2862: 0x000d, 0x2863: 0x000d, + 0x2864: 0x000c, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x000c, 0x2868: 0x000d, 0x2869: 0x000d, + 0x286a: 0x000d, 0x286b: 0x000d, 0x286c: 0x000d, 0x286d: 0x000d, 0x286e: 0x000d, 0x286f: 0x000d, + 0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005, + 0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x000d, 0x287b: 0x000d, + 0x287c: 0x000d, 0x287d: 0x000d, 0x287e: 0x000d, 0x287f: 0x000d, + // Block 0xa2, offset 0x2880 + 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001, + 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001, + 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001, + 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001, + 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001, + 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005, + 0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005, + 0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005, + 0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005, + 0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005, + 0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001, + // Block 0xa3, offset 0x28c0 + 0x28c0: 0x0001, 0x28c1: 0x0001, 0x28c2: 0x0001, 0x28c3: 0x0001, 0x28c4: 0x0001, 0x28c5: 0x0001, + 0x28c6: 0x0001, 0x28c7: 0x0001, 0x28c8: 0x0001, 0x28c9: 0x0001, 0x28ca: 0x0001, 0x28cb: 0x0001, + 0x28cc: 0x0001, 0x28cd: 0x0001, 0x28ce: 0x0001, 0x28cf: 0x0001, 0x28d0: 0x0001, 0x28d1: 0x0001, + 0x28d2: 0x0001, 0x28d3: 0x0001, 0x28d4: 0x0001, 0x28d5: 0x0001, 0x28d6: 0x0001, 0x28d7: 0x0001, + 0x28d8: 0x0001, 0x28d9: 0x0001, 0x28da: 0x0001, 0x28db: 0x0001, 0x28dc: 0x0001, 0x28dd: 0x0001, + 0x28de: 0x0001, 0x28df: 0x0001, 0x28e0: 0x0001, 0x28e1: 0x0001, 0x28e2: 0x0001, 0x28e3: 0x0001, + 0x28e4: 0x0001, 0x28e5: 0x0001, 0x28e6: 0x0001, 0x28e7: 0x0001, 0x28e8: 0x0001, 0x28e9: 0x0001, + 0x28ea: 0x0001, 0x28eb: 0x0001, 0x28ec: 0x0001, 0x28ed: 0x0001, 0x28ee: 0x0001, 0x28ef: 0x0001, + 0x28f0: 0x000d, 0x28f1: 0x000d, 0x28f2: 0x000d, 0x28f3: 0x000d, 0x28f4: 0x000d, 0x28f5: 0x000d, + 0x28f6: 0x000d, 0x28f7: 0x000d, 0x28f8: 0x000d, 0x28f9: 0x000d, 0x28fa: 0x000d, 0x28fb: 0x000d, + 0x28fc: 0x000d, 0x28fd: 0x000d, 0x28fe: 0x000d, 0x28ff: 0x000d, + // Block 0xa4, offset 0x2900 + 0x2900: 0x000d, 0x2901: 0x000d, 0x2902: 0x000d, 0x2903: 0x000d, 0x2904: 0x000d, 0x2905: 0x000d, + 0x2906: 0x000c, 0x2907: 0x000c, 0x2908: 0x000c, 0x2909: 0x000c, 0x290a: 0x000c, 0x290b: 0x000c, + 0x290c: 0x000c, 0x290d: 0x000c, 0x290e: 0x000c, 0x290f: 0x000c, 0x2910: 0x000c, 0x2911: 0x000d, + 0x2912: 0x000d, 0x2913: 0x000d, 0x2914: 0x000d, 0x2915: 0x000d, 0x2916: 0x000d, 0x2917: 0x000d, + 0x2918: 0x000d, 0x2919: 0x000d, 0x291a: 0x000d, 0x291b: 0x000d, 0x291c: 0x000d, 0x291d: 0x000d, + 0x291e: 0x000d, 0x291f: 0x000d, 0x2920: 0x000d, 0x2921: 0x000d, 0x2922: 0x000d, 0x2923: 0x000d, + 0x2924: 0x000d, 0x2925: 0x000d, 0x2926: 0x000d, 0x2927: 0x000d, 0x2928: 0x000d, 0x2929: 0x000d, + 0x292a: 0x000d, 0x292b: 0x000d, 0x292c: 0x000d, 0x292d: 0x000d, 0x292e: 0x000d, 0x292f: 0x000d, + 0x2930: 0x0001, 0x2931: 0x0001, 0x2932: 0x0001, 0x2933: 0x0001, 0x2934: 0x0001, 0x2935: 0x0001, + 0x2936: 0x0001, 0x2937: 0x0001, 0x2938: 0x0001, 0x2939: 0x0001, 0x293a: 0x0001, 0x293b: 0x0001, + 0x293c: 0x0001, 0x293d: 0x0001, 0x293e: 0x0001, 0x293f: 0x0001, + // Block 0xa5, offset 0x2940 + 0x2941: 0x000c, + 0x2978: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c, 0x297b: 0x000c, + 0x297c: 0x000c, 0x297d: 0x000c, 0x297e: 0x000c, 0x297f: 0x000c, + // Block 0xa6, offset 0x2980 + 0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c, 0x2983: 0x000c, 0x2984: 0x000c, 0x2985: 0x000c, + 0x2986: 0x000c, + 0x2992: 0x000a, 0x2993: 0x000a, 0x2994: 0x000a, 0x2995: 0x000a, 0x2996: 0x000a, 0x2997: 0x000a, + 0x2998: 0x000a, 0x2999: 0x000a, 0x299a: 0x000a, 0x299b: 0x000a, 0x299c: 0x000a, 0x299d: 0x000a, + 0x299e: 0x000a, 0x299f: 0x000a, 0x29a0: 0x000a, 0x29a1: 0x000a, 0x29a2: 0x000a, 0x29a3: 0x000a, + 0x29a4: 0x000a, 0x29a5: 0x000a, + 0x29bf: 0x000c, + // Block 0xa7, offset 0x29c0 + 0x29c0: 0x000c, 0x29c1: 0x000c, + 0x29f3: 0x000c, 0x29f4: 0x000c, 0x29f5: 0x000c, + 0x29f6: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c, + // Block 0xa8, offset 0x2a00 + 0x2a00: 0x000c, 0x2a01: 0x000c, 0x2a02: 0x000c, + 0x2a27: 0x000c, 0x2a28: 0x000c, 0x2a29: 0x000c, + 0x2a2a: 0x000c, 0x2a2b: 0x000c, 0x2a2d: 0x000c, 0x2a2e: 0x000c, 0x2a2f: 0x000c, + 0x2a30: 0x000c, 0x2a31: 0x000c, 0x2a32: 0x000c, 0x2a33: 0x000c, 0x2a34: 0x000c, + // Block 0xa9, offset 0x2a40 + 0x2a73: 0x000c, + // Block 0xaa, offset 0x2a80 + 0x2a80: 0x000c, 0x2a81: 0x000c, + 0x2ab6: 0x000c, 0x2ab7: 0x000c, 0x2ab8: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c, 0x2abb: 0x000c, + 0x2abc: 0x000c, 0x2abd: 0x000c, 0x2abe: 0x000c, + // Block 0xab, offset 0x2ac0 + 0x2ac9: 0x000c, 0x2aca: 0x000c, 0x2acb: 0x000c, + 0x2acc: 0x000c, + // Block 0xac, offset 0x2b00 + 0x2b2f: 0x000c, + 0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b34: 0x000c, + 0x2b36: 0x000c, 0x2b37: 0x000c, + 0x2b3e: 0x000c, + // Block 0xad, offset 0x2b40 + 0x2b5f: 0x000c, 0x2b63: 0x000c, + 0x2b64: 0x000c, 0x2b65: 0x000c, 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c, + 0x2b6a: 0x000c, + // Block 0xae, offset 0x2b80 + 0x2b80: 0x000c, + 0x2ba6: 0x000c, 0x2ba7: 0x000c, 0x2ba8: 0x000c, 0x2ba9: 0x000c, + 0x2baa: 0x000c, 0x2bab: 0x000c, 0x2bac: 0x000c, + 0x2bb0: 0x000c, 0x2bb1: 0x000c, 0x2bb2: 0x000c, 0x2bb3: 0x000c, 0x2bb4: 0x000c, + // Block 0xaf, offset 0x2bc0 + 0x2bf8: 0x000c, 0x2bf9: 0x000c, 0x2bfa: 0x000c, 0x2bfb: 0x000c, + 0x2bfc: 0x000c, 0x2bfd: 0x000c, 0x2bfe: 0x000c, 0x2bff: 0x000c, + // Block 0xb0, offset 0x2c00 + 0x2c02: 0x000c, 0x2c03: 0x000c, 0x2c04: 0x000c, + 0x2c06: 0x000c, + 0x2c1e: 0x000c, + // Block 0xb1, offset 0x2c40 + 0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c, + 0x2c76: 0x000c, 0x2c77: 0x000c, 0x2c78: 0x000c, 0x2c7a: 0x000c, + 0x2c7f: 0x000c, + // Block 0xb2, offset 0x2c80 + 0x2c80: 0x000c, 0x2c82: 0x000c, 0x2c83: 0x000c, + // Block 0xb3, offset 0x2cc0 + 0x2cf2: 0x000c, 0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c, + 0x2cfc: 0x000c, 0x2cfd: 0x000c, 0x2cff: 0x000c, + // Block 0xb4, offset 0x2d00 + 0x2d00: 0x000c, + 0x2d1c: 0x000c, 0x2d1d: 0x000c, + // Block 0xb5, offset 0x2d40 + 0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c, + 0x2d76: 0x000c, 0x2d77: 0x000c, 0x2d78: 0x000c, 0x2d79: 0x000c, 0x2d7a: 0x000c, + 0x2d7d: 0x000c, 0x2d7f: 0x000c, + // Block 0xb6, offset 0x2d80 + 0x2d80: 0x000c, + 0x2da0: 0x000a, 0x2da1: 0x000a, 0x2da2: 0x000a, 0x2da3: 0x000a, + 0x2da4: 0x000a, 0x2da5: 0x000a, 0x2da6: 0x000a, 0x2da7: 0x000a, 0x2da8: 0x000a, 0x2da9: 0x000a, + 0x2daa: 0x000a, 0x2dab: 0x000a, 0x2dac: 0x000a, + // Block 0xb7, offset 0x2dc0 + 0x2deb: 0x000c, 0x2ded: 0x000c, + 0x2df0: 0x000c, 0x2df1: 0x000c, 0x2df2: 0x000c, 0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c, + 0x2df7: 0x000c, + // Block 0xb8, offset 0x2e00 + 0x2e1d: 0x000c, + 0x2e1e: 0x000c, 0x2e1f: 0x000c, 0x2e22: 0x000c, 0x2e23: 0x000c, + 0x2e24: 0x000c, 0x2e25: 0x000c, 0x2e27: 0x000c, 0x2e28: 0x000c, 0x2e29: 0x000c, + 0x2e2a: 0x000c, 0x2e2b: 0x000c, + // Block 0xb9, offset 0x2e40 + 0x2e6f: 0x000c, + 0x2e70: 0x000c, 0x2e71: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e74: 0x000c, 0x2e75: 0x000c, + 0x2e76: 0x000c, 0x2e77: 0x000c, 0x2e79: 0x000c, 0x2e7a: 0x000c, + // Block 0xba, offset 0x2e80 + 0x2e81: 0x000c, 0x2e82: 0x000c, 0x2e83: 0x000c, 0x2e84: 0x000c, 0x2e85: 0x000c, + 0x2e86: 0x000c, 0x2e89: 0x000c, 0x2e8a: 0x000c, + 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c, + 0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2ebb: 0x000c, + 0x2ebc: 0x000c, 0x2ebd: 0x000c, 0x2ebe: 0x000c, + // Block 0xbb, offset 0x2ec0 + 0x2ec7: 0x000c, + 0x2ed1: 0x000c, + 0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c, + 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c, + // Block 0xbc, offset 0x2f00 + 0x2f0a: 0x000c, 0x2f0b: 0x000c, + 0x2f0c: 0x000c, 0x2f0d: 0x000c, 0x2f0e: 0x000c, 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c, + 0x2f12: 0x000c, 0x2f13: 0x000c, 0x2f14: 0x000c, 0x2f15: 0x000c, 0x2f16: 0x000c, + 0x2f18: 0x000c, 0x2f19: 0x000c, + // Block 0xbd, offset 0x2f40 + 0x2f70: 0x000c, 0x2f71: 0x000c, 0x2f72: 0x000c, 0x2f73: 0x000c, 0x2f74: 0x000c, 0x2f75: 0x000c, + 0x2f76: 0x000c, 0x2f78: 0x000c, 0x2f79: 0x000c, 0x2f7a: 0x000c, 0x2f7b: 0x000c, + 0x2f7c: 0x000c, 0x2f7d: 0x000c, + // Block 0xbe, offset 0x2f80 + 0x2f92: 0x000c, 0x2f93: 0x000c, 0x2f94: 0x000c, 0x2f95: 0x000c, 0x2f96: 0x000c, 0x2f97: 0x000c, + 0x2f98: 0x000c, 0x2f99: 0x000c, 0x2f9a: 0x000c, 0x2f9b: 0x000c, 0x2f9c: 0x000c, 0x2f9d: 0x000c, + 0x2f9e: 0x000c, 0x2f9f: 0x000c, 0x2fa0: 0x000c, 0x2fa1: 0x000c, 0x2fa2: 0x000c, 0x2fa3: 0x000c, + 0x2fa4: 0x000c, 0x2fa5: 0x000c, 0x2fa6: 0x000c, 0x2fa7: 0x000c, + 0x2faa: 0x000c, 0x2fab: 0x000c, 0x2fac: 0x000c, 0x2fad: 0x000c, 0x2fae: 0x000c, 0x2faf: 0x000c, + 0x2fb0: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb5: 0x000c, + 0x2fb6: 0x000c, + // Block 0xbf, offset 0x2fc0 + 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c, + 0x2ff6: 0x000c, 0x2ffa: 0x000c, + 0x2ffc: 0x000c, 0x2ffd: 0x000c, 0x2fff: 0x000c, + // Block 0xc0, offset 0x3000 + 0x3000: 0x000c, 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c, + 0x3007: 0x000c, + // Block 0xc1, offset 0x3040 + 0x3050: 0x000c, 0x3051: 0x000c, + 0x3055: 0x000c, 0x3057: 0x000c, + // Block 0xc2, offset 0x3080 + 0x30b3: 0x000c, 0x30b4: 0x000c, + // Block 0xc3, offset 0x30c0 + 0x30f0: 0x000c, 0x30f1: 0x000c, 0x30f2: 0x000c, 0x30f3: 0x000c, 0x30f4: 0x000c, + // Block 0xc4, offset 0x3100 + 0x3130: 0x000c, 0x3131: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3134: 0x000c, 0x3135: 0x000c, + 0x3136: 0x000c, + // Block 0xc5, offset 0x3140 + 0x314f: 0x000c, 0x3150: 0x000c, 0x3151: 0x000c, + 0x3152: 0x000c, + // Block 0xc6, offset 0x3180 + 0x319d: 0x000c, + 0x319e: 0x000c, 0x31a0: 0x000b, 0x31a1: 0x000b, 0x31a2: 0x000b, 0x31a3: 0x000b, + // Block 0xc7, offset 0x31c0 + 0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c, + 0x31f3: 0x000b, 0x31f4: 0x000b, 0x31f5: 0x000b, + 0x31f6: 0x000b, 0x31f7: 0x000b, 0x31f8: 0x000b, 0x31f9: 0x000b, 0x31fa: 0x000b, 0x31fb: 0x000c, + 0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c, + // Block 0xc8, offset 0x3200 + 0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3205: 0x000c, + 0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c, + 0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c, 0x322d: 0x000c, + // Block 0xc9, offset 0x3240 + 0x3240: 0x000a, 0x3241: 0x000a, 0x3242: 0x000c, 0x3243: 0x000c, 0x3244: 0x000c, 0x3245: 0x000a, + // Block 0xca, offset 0x3280 + 0x3280: 0x000a, 0x3281: 0x000a, 0x3282: 0x000a, 0x3283: 0x000a, 0x3284: 0x000a, 0x3285: 0x000a, + 0x3286: 0x000a, 0x3287: 0x000a, 0x3288: 0x000a, 0x3289: 0x000a, 0x328a: 0x000a, 0x328b: 0x000a, + 0x328c: 0x000a, 0x328d: 0x000a, 0x328e: 0x000a, 0x328f: 0x000a, 0x3290: 0x000a, 0x3291: 0x000a, + 0x3292: 0x000a, 0x3293: 0x000a, 0x3294: 0x000a, 0x3295: 0x000a, 0x3296: 0x000a, + // Block 0xcb, offset 0x32c0 + 0x32db: 0x000a, + // Block 0xcc, offset 0x3300 + 0x3315: 0x000a, + // Block 0xcd, offset 0x3340 + 0x334f: 0x000a, + // Block 0xce, offset 0x3380 + 0x3389: 0x000a, + // Block 0xcf, offset 0x33c0 + 0x33c3: 0x000a, + 0x33ce: 0x0002, 0x33cf: 0x0002, 0x33d0: 0x0002, 0x33d1: 0x0002, + 0x33d2: 0x0002, 0x33d3: 0x0002, 0x33d4: 0x0002, 0x33d5: 0x0002, 0x33d6: 0x0002, 0x33d7: 0x0002, + 0x33d8: 0x0002, 0x33d9: 0x0002, 0x33da: 0x0002, 0x33db: 0x0002, 0x33dc: 0x0002, 0x33dd: 0x0002, + 0x33de: 0x0002, 0x33df: 0x0002, 0x33e0: 0x0002, 0x33e1: 0x0002, 0x33e2: 0x0002, 0x33e3: 0x0002, + 0x33e4: 0x0002, 0x33e5: 0x0002, 0x33e6: 0x0002, 0x33e7: 0x0002, 0x33e8: 0x0002, 0x33e9: 0x0002, + 0x33ea: 0x0002, 0x33eb: 0x0002, 0x33ec: 0x0002, 0x33ed: 0x0002, 0x33ee: 0x0002, 0x33ef: 0x0002, + 0x33f0: 0x0002, 0x33f1: 0x0002, 0x33f2: 0x0002, 0x33f3: 0x0002, 0x33f4: 0x0002, 0x33f5: 0x0002, + 0x33f6: 0x0002, 0x33f7: 0x0002, 0x33f8: 0x0002, 0x33f9: 0x0002, 0x33fa: 0x0002, 0x33fb: 0x0002, + 0x33fc: 0x0002, 0x33fd: 0x0002, 0x33fe: 0x0002, 0x33ff: 0x0002, + // Block 0xd0, offset 0x3400 + 0x3400: 0x000c, 0x3401: 0x000c, 0x3402: 0x000c, 0x3403: 0x000c, 0x3404: 0x000c, 0x3405: 0x000c, + 0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x000c, + 0x340c: 0x000c, 0x340d: 0x000c, 0x340e: 0x000c, 0x340f: 0x000c, 0x3410: 0x000c, 0x3411: 0x000c, + 0x3412: 0x000c, 0x3413: 0x000c, 0x3414: 0x000c, 0x3415: 0x000c, 0x3416: 0x000c, 0x3417: 0x000c, + 0x3418: 0x000c, 0x3419: 0x000c, 0x341a: 0x000c, 0x341b: 0x000c, 0x341c: 0x000c, 0x341d: 0x000c, + 0x341e: 0x000c, 0x341f: 0x000c, 0x3420: 0x000c, 0x3421: 0x000c, 0x3422: 0x000c, 0x3423: 0x000c, + 0x3424: 0x000c, 0x3425: 0x000c, 0x3426: 0x000c, 0x3427: 0x000c, 0x3428: 0x000c, 0x3429: 0x000c, + 0x342a: 0x000c, 0x342b: 0x000c, 0x342c: 0x000c, 0x342d: 0x000c, 0x342e: 0x000c, 0x342f: 0x000c, + 0x3430: 0x000c, 0x3431: 0x000c, 0x3432: 0x000c, 0x3433: 0x000c, 0x3434: 0x000c, 0x3435: 0x000c, + 0x3436: 0x000c, 0x343b: 0x000c, + 0x343c: 0x000c, 0x343d: 0x000c, 0x343e: 0x000c, 0x343f: 0x000c, + // Block 0xd1, offset 0x3440 + 0x3440: 0x000c, 0x3441: 0x000c, 0x3442: 0x000c, 0x3443: 0x000c, 0x3444: 0x000c, 0x3445: 0x000c, + 0x3446: 0x000c, 0x3447: 0x000c, 0x3448: 0x000c, 0x3449: 0x000c, 0x344a: 0x000c, 0x344b: 0x000c, + 0x344c: 0x000c, 0x344d: 0x000c, 0x344e: 0x000c, 0x344f: 0x000c, 0x3450: 0x000c, 0x3451: 0x000c, + 0x3452: 0x000c, 0x3453: 0x000c, 0x3454: 0x000c, 0x3455: 0x000c, 0x3456: 0x000c, 0x3457: 0x000c, + 0x3458: 0x000c, 0x3459: 0x000c, 0x345a: 0x000c, 0x345b: 0x000c, 0x345c: 0x000c, 0x345d: 0x000c, + 0x345e: 0x000c, 0x345f: 0x000c, 0x3460: 0x000c, 0x3461: 0x000c, 0x3462: 0x000c, 0x3463: 0x000c, + 0x3464: 0x000c, 0x3465: 0x000c, 0x3466: 0x000c, 0x3467: 0x000c, 0x3468: 0x000c, 0x3469: 0x000c, + 0x346a: 0x000c, 0x346b: 0x000c, 0x346c: 0x000c, + 0x3475: 0x000c, + // Block 0xd2, offset 0x3480 + 0x3484: 0x000c, + 0x349b: 0x000c, 0x349c: 0x000c, 0x349d: 0x000c, + 0x349e: 0x000c, 0x349f: 0x000c, 0x34a1: 0x000c, 0x34a2: 0x000c, 0x34a3: 0x000c, + 0x34a4: 0x000c, 0x34a5: 0x000c, 0x34a6: 0x000c, 0x34a7: 0x000c, 0x34a8: 0x000c, 0x34a9: 0x000c, + 0x34aa: 0x000c, 0x34ab: 0x000c, 0x34ac: 0x000c, 0x34ad: 0x000c, 0x34ae: 0x000c, 0x34af: 0x000c, + // Block 0xd3, offset 0x34c0 + 0x34c0: 0x000c, 0x34c1: 0x000c, 0x34c2: 0x000c, 0x34c3: 0x000c, 0x34c4: 0x000c, 0x34c5: 0x000c, + 0x34c6: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c, + 0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c, + 0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c, 0x34d6: 0x000c, 0x34d7: 0x000c, + 0x34d8: 0x000c, 0x34db: 0x000c, 0x34dc: 0x000c, 0x34dd: 0x000c, + 0x34de: 0x000c, 0x34df: 0x000c, 0x34e0: 0x000c, 0x34e1: 0x000c, 0x34e3: 0x000c, + 0x34e4: 0x000c, 0x34e6: 0x000c, 0x34e7: 0x000c, 0x34e8: 0x000c, 0x34e9: 0x000c, + 0x34ea: 0x000c, + // Block 0xd4, offset 0x3500 + 0x3500: 0x0001, 0x3501: 0x0001, 0x3502: 0x0001, 0x3503: 0x0001, 0x3504: 0x0001, 0x3505: 0x0001, + 0x3506: 0x0001, 0x3507: 0x0001, 0x3508: 0x0001, 0x3509: 0x0001, 0x350a: 0x0001, 0x350b: 0x0001, + 0x350c: 0x0001, 0x350d: 0x0001, 0x350e: 0x0001, 0x350f: 0x0001, 0x3510: 0x000c, 0x3511: 0x000c, + 0x3512: 0x000c, 0x3513: 0x000c, 0x3514: 0x000c, 0x3515: 0x000c, 0x3516: 0x000c, 0x3517: 0x0001, + 0x3518: 0x0001, 0x3519: 0x0001, 0x351a: 0x0001, 0x351b: 0x0001, 0x351c: 0x0001, 0x351d: 0x0001, + 0x351e: 0x0001, 0x351f: 0x0001, 0x3520: 0x0001, 0x3521: 0x0001, 0x3522: 0x0001, 0x3523: 0x0001, + 0x3524: 0x0001, 0x3525: 0x0001, 0x3526: 0x0001, 0x3527: 0x0001, 0x3528: 0x0001, 0x3529: 0x0001, + 0x352a: 0x0001, 0x352b: 0x0001, 0x352c: 0x0001, 0x352d: 0x0001, 0x352e: 0x0001, 0x352f: 0x0001, + 0x3530: 0x0001, 0x3531: 0x0001, 0x3532: 0x0001, 0x3533: 0x0001, 0x3534: 0x0001, 0x3535: 0x0001, + 0x3536: 0x0001, 0x3537: 0x0001, 0x3538: 0x0001, 0x3539: 0x0001, 0x353a: 0x0001, 0x353b: 0x0001, + 0x353c: 0x0001, 0x353d: 0x0001, 0x353e: 0x0001, 0x353f: 0x0001, + // Block 0xd5, offset 0x3540 + 0x3540: 0x0001, 0x3541: 0x0001, 0x3542: 0x0001, 0x3543: 0x0001, 0x3544: 0x000c, 0x3545: 0x000c, + 0x3546: 0x000c, 0x3547: 0x000c, 0x3548: 0x000c, 0x3549: 0x000c, 0x354a: 0x000c, 0x354b: 0x0001, + 0x354c: 0x0001, 0x354d: 0x0001, 0x354e: 0x0001, 0x354f: 0x0001, 0x3550: 0x0001, 0x3551: 0x0001, + 0x3552: 0x0001, 0x3553: 0x0001, 0x3554: 0x0001, 0x3555: 0x0001, 0x3556: 0x0001, 0x3557: 0x0001, + 0x3558: 0x0001, 0x3559: 0x0001, 0x355a: 0x0001, 0x355b: 0x0001, 0x355c: 0x0001, 0x355d: 0x0001, + 0x355e: 0x0001, 0x355f: 0x0001, 0x3560: 0x0001, 0x3561: 0x0001, 0x3562: 0x0001, 0x3563: 0x0001, + 0x3564: 0x0001, 0x3565: 0x0001, 0x3566: 0x0001, 0x3567: 0x0001, 0x3568: 0x0001, 0x3569: 0x0001, + 0x356a: 0x0001, 0x356b: 0x0001, 0x356c: 0x0001, 0x356d: 0x0001, 0x356e: 0x0001, 0x356f: 0x0001, + 0x3570: 0x0001, 0x3571: 0x0001, 0x3572: 0x0001, 0x3573: 0x0001, 0x3574: 0x0001, 0x3575: 0x0001, + 0x3576: 0x0001, 0x3577: 0x0001, 0x3578: 0x0001, 0x3579: 0x0001, 0x357a: 0x0001, 0x357b: 0x0001, + 0x357c: 0x0001, 0x357d: 0x0001, 0x357e: 0x0001, 0x357f: 0x0001, + // Block 0xd6, offset 0x3580 + 0x3580: 0x000d, 0x3581: 0x000d, 0x3582: 0x000d, 0x3583: 0x000d, 0x3584: 0x000d, 0x3585: 0x000d, + 0x3586: 0x000d, 0x3587: 0x000d, 0x3588: 0x000d, 0x3589: 0x000d, 0x358a: 0x000d, 0x358b: 0x000d, + 0x358c: 0x000d, 0x358d: 0x000d, 0x358e: 0x000d, 0x358f: 0x000d, 0x3590: 0x000d, 0x3591: 0x000d, + 0x3592: 0x000d, 0x3593: 0x000d, 0x3594: 0x000d, 0x3595: 0x000d, 0x3596: 0x000d, 0x3597: 0x000d, + 0x3598: 0x000d, 0x3599: 0x000d, 0x359a: 0x000d, 0x359b: 0x000d, 0x359c: 0x000d, 0x359d: 0x000d, + 0x359e: 0x000d, 0x359f: 0x000d, 0x35a0: 0x000d, 0x35a1: 0x000d, 0x35a2: 0x000d, 0x35a3: 0x000d, + 0x35a4: 0x000d, 0x35a5: 0x000d, 0x35a6: 0x000d, 0x35a7: 0x000d, 0x35a8: 0x000d, 0x35a9: 0x000d, + 0x35aa: 0x000d, 0x35ab: 0x000d, 0x35ac: 0x000d, 0x35ad: 0x000d, 0x35ae: 0x000d, 0x35af: 0x000d, + 0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000d, 0x35b3: 0x000d, 0x35b4: 0x000d, 0x35b5: 0x000d, + 0x35b6: 0x000d, 0x35b7: 0x000d, 0x35b8: 0x000d, 0x35b9: 0x000d, 0x35ba: 0x000d, 0x35bb: 0x000d, + 0x35bc: 0x000d, 0x35bd: 0x000d, 0x35be: 0x000d, 0x35bf: 0x000d, + // Block 0xd7, offset 0x35c0 + 0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a, + 0x35c6: 0x000a, 0x35c7: 0x000a, 0x35c8: 0x000a, 0x35c9: 0x000a, 0x35ca: 0x000a, 0x35cb: 0x000a, + 0x35cc: 0x000a, 0x35cd: 0x000a, 0x35ce: 0x000a, 0x35cf: 0x000a, 0x35d0: 0x000a, 0x35d1: 0x000a, + 0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a, + 0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a, + 0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a, + 0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a, + 0x35ea: 0x000a, 0x35eb: 0x000a, + 0x35f0: 0x000a, 0x35f1: 0x000a, 0x35f2: 0x000a, 0x35f3: 0x000a, 0x35f4: 0x000a, 0x35f5: 0x000a, + 0x35f6: 0x000a, 0x35f7: 0x000a, 0x35f8: 0x000a, 0x35f9: 0x000a, 0x35fa: 0x000a, 0x35fb: 0x000a, + 0x35fc: 0x000a, 0x35fd: 0x000a, 0x35fe: 0x000a, 0x35ff: 0x000a, + // Block 0xd8, offset 0x3600 + 0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a, + 0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a, + 0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a, + 0x3612: 0x000a, 0x3613: 0x000a, + 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a, + 0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a, + 0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a, 0x362d: 0x000a, 0x362e: 0x000a, + 0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a, + 0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a, + 0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a, 0x363f: 0x000a, + // Block 0xd9, offset 0x3640 + 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a, + 0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a, + 0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3651: 0x000a, + 0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a, + 0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a, + 0x365e: 0x000a, 0x365f: 0x000a, 0x3660: 0x000a, 0x3661: 0x000a, 0x3662: 0x000a, 0x3663: 0x000a, + 0x3664: 0x000a, 0x3665: 0x000a, 0x3666: 0x000a, 0x3667: 0x000a, 0x3668: 0x000a, 0x3669: 0x000a, + 0x366a: 0x000a, 0x366b: 0x000a, 0x366c: 0x000a, 0x366d: 0x000a, 0x366e: 0x000a, 0x366f: 0x000a, + 0x3670: 0x000a, 0x3671: 0x000a, 0x3672: 0x000a, 0x3673: 0x000a, 0x3674: 0x000a, 0x3675: 0x000a, + // Block 0xda, offset 0x3680 + 0x3680: 0x0002, 0x3681: 0x0002, 0x3682: 0x0002, 0x3683: 0x0002, 0x3684: 0x0002, 0x3685: 0x0002, + 0x3686: 0x0002, 0x3687: 0x0002, 0x3688: 0x0002, 0x3689: 0x0002, 0x368a: 0x0002, 0x368b: 0x000a, + 0x368c: 0x000a, + 0x36af: 0x000a, + // Block 0xdb, offset 0x36c0 + 0x36ea: 0x000a, 0x36eb: 0x000a, + // Block 0xdc, offset 0x3700 + 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a, + 0x3724: 0x000a, 0x3725: 0x000a, + // Block 0xdd, offset 0x3740 + 0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a, + 0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a, + 0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a, 0x3751: 0x000a, + 0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a, + 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a, + 0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a, + 0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, + 0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a, + 0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, + // Block 0xde, offset 0x3780 + 0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a, + 0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a, + 0x378c: 0x000a, 0x378d: 0x000a, 0x378e: 0x000a, 0x378f: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a, + 0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a, + 0x3798: 0x000a, + // Block 0xdf, offset 0x37c0 + 0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a, + 0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a, + 0x37d0: 0x000a, 0x37d1: 0x000a, + 0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a, + 0x37d8: 0x000a, 0x37d9: 0x000a, 0x37da: 0x000a, 0x37db: 0x000a, 0x37dc: 0x000a, 0x37dd: 0x000a, + 0x37de: 0x000a, 0x37df: 0x000a, 0x37e0: 0x000a, 0x37e1: 0x000a, 0x37e2: 0x000a, 0x37e3: 0x000a, + 0x37e4: 0x000a, 0x37e5: 0x000a, 0x37e6: 0x000a, 0x37e7: 0x000a, 0x37e8: 0x000a, 0x37e9: 0x000a, + 0x37ea: 0x000a, 0x37eb: 0x000a, 0x37ec: 0x000a, 0x37ed: 0x000a, 0x37ee: 0x000a, 0x37ef: 0x000a, + 0x37f0: 0x000a, 0x37f1: 0x000a, 0x37f2: 0x000a, 0x37f3: 0x000a, 0x37f4: 0x000a, 0x37f5: 0x000a, + 0x37f6: 0x000a, 0x37f7: 0x000a, 0x37f8: 0x000a, 0x37f9: 0x000a, 0x37fa: 0x000a, 0x37fb: 0x000a, + 0x37fc: 0x000a, 0x37fd: 0x000a, 0x37fe: 0x000a, 0x37ff: 0x000a, + // Block 0xe0, offset 0x3800 + 0x3800: 0x000a, 0x3801: 0x000a, 0x3802: 0x000a, 0x3803: 0x000a, 0x3804: 0x000a, 0x3805: 0x000a, + 0x3806: 0x000a, 0x3807: 0x000a, + 0x3810: 0x000a, 0x3811: 0x000a, + 0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a, + 0x3818: 0x000a, 0x3819: 0x000a, + 0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a, + 0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a, 0x3827: 0x000a, 0x3828: 0x000a, 0x3829: 0x000a, + 0x382a: 0x000a, 0x382b: 0x000a, 0x382c: 0x000a, 0x382d: 0x000a, 0x382e: 0x000a, 0x382f: 0x000a, + 0x3830: 0x000a, 0x3831: 0x000a, 0x3832: 0x000a, 0x3833: 0x000a, 0x3834: 0x000a, 0x3835: 0x000a, + 0x3836: 0x000a, 0x3837: 0x000a, 0x3838: 0x000a, 0x3839: 0x000a, 0x383a: 0x000a, 0x383b: 0x000a, + 0x383c: 0x000a, 0x383d: 0x000a, 0x383e: 0x000a, 0x383f: 0x000a, + // Block 0xe1, offset 0x3840 + 0x3840: 0x000a, 0x3841: 0x000a, 0x3842: 0x000a, 0x3843: 0x000a, 0x3844: 0x000a, 0x3845: 0x000a, + 0x3846: 0x000a, 0x3847: 0x000a, + 0x3850: 0x000a, 0x3851: 0x000a, + 0x3852: 0x000a, 0x3853: 0x000a, 0x3854: 0x000a, 0x3855: 0x000a, 0x3856: 0x000a, 0x3857: 0x000a, + 0x3858: 0x000a, 0x3859: 0x000a, 0x385a: 0x000a, 0x385b: 0x000a, 0x385c: 0x000a, 0x385d: 0x000a, + 0x385e: 0x000a, 0x385f: 0x000a, 0x3860: 0x000a, 0x3861: 0x000a, 0x3862: 0x000a, 0x3863: 0x000a, + 0x3864: 0x000a, 0x3865: 0x000a, 0x3866: 0x000a, 0x3867: 0x000a, 0x3868: 0x000a, 0x3869: 0x000a, + 0x386a: 0x000a, 0x386b: 0x000a, 0x386c: 0x000a, 0x386d: 0x000a, + // Block 0xe2, offset 0x3880 + 0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a, + 0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a, + 0x3890: 0x000a, 0x3891: 0x000a, + 0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, 0x3896: 0x000a, 0x3897: 0x000a, + 0x3898: 0x000a, 0x3899: 0x000a, 0x389a: 0x000a, 0x389b: 0x000a, 0x389c: 0x000a, 0x389d: 0x000a, + 0x389e: 0x000a, 0x389f: 0x000a, 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a, + 0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a, + 0x38aa: 0x000a, 0x38ab: 0x000a, 0x38ac: 0x000a, 0x38ad: 0x000a, 0x38ae: 0x000a, 0x38af: 0x000a, + 0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a, + 0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, 0x38bb: 0x000a, + 0x38bc: 0x000a, 0x38bd: 0x000a, 0x38be: 0x000a, + // Block 0xe3, offset 0x38c0 + 0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a, + 0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a, + 0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a, + 0x38d2: 0x000a, 0x38d3: 0x000a, 0x38d4: 0x000a, 0x38d5: 0x000a, 0x38d6: 0x000a, 0x38d7: 0x000a, + 0x38d8: 0x000a, 0x38d9: 0x000a, 0x38da: 0x000a, 0x38db: 0x000a, 0x38dc: 0x000a, 0x38dd: 0x000a, + 0x38de: 0x000a, 0x38df: 0x000a, 0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a, + 0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a, + 0x38ea: 0x000a, 0x38eb: 0x000a, 0x38ec: 0x000a, 0x38ed: 0x000a, 0x38ee: 0x000a, 0x38ef: 0x000a, + 0x38f0: 0x000a, 0x38f3: 0x000a, 0x38f4: 0x000a, 0x38f5: 0x000a, + 0x38f6: 0x000a, 0x38fa: 0x000a, + 0x38fc: 0x000a, 0x38fd: 0x000a, 0x38fe: 0x000a, 0x38ff: 0x000a, + // Block 0xe4, offset 0x3900 + 0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a, + 0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a, + 0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3910: 0x000a, 0x3911: 0x000a, + 0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a, + 0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a, + 0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a, + 0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a, + 0x3936: 0x000a, 0x3937: 0x000a, 0x3938: 0x000a, 0x3939: 0x000a, + // Block 0xe5, offset 0x3940 + 0x3940: 0x000a, 0x3941: 0x000a, 0x3942: 0x000a, + 0x3950: 0x000a, 0x3951: 0x000a, + 0x3952: 0x000a, 0x3953: 0x000a, 0x3954: 0x000a, 0x3955: 0x000a, 0x3956: 0x000a, 0x3957: 0x000a, + 0x3958: 0x000a, 0x3959: 0x000a, 0x395a: 0x000a, 0x395b: 0x000a, 0x395c: 0x000a, 0x395d: 0x000a, + 0x395e: 0x000a, 0x395f: 0x000a, 0x3960: 0x000a, 0x3961: 0x000a, 0x3962: 0x000a, 0x3963: 0x000a, + 0x3964: 0x000a, 0x3965: 0x000a, 0x3966: 0x000a, 0x3967: 0x000a, 0x3968: 0x000a, 0x3969: 0x000a, + 0x396a: 0x000a, 0x396b: 0x000a, 0x396c: 0x000a, 0x396d: 0x000a, 0x396e: 0x000a, 0x396f: 0x000a, + 0x3970: 0x000a, 0x3971: 0x000a, 0x3972: 0x000a, 0x3973: 0x000a, 0x3974: 0x000a, 0x3975: 0x000a, + 0x3976: 0x000a, 0x3977: 0x000a, 0x3978: 0x000a, 0x3979: 0x000a, 0x397a: 0x000a, 0x397b: 0x000a, + 0x397c: 0x000a, 0x397d: 0x000a, 0x397e: 0x000a, 0x397f: 0x000a, + // Block 0xe6, offset 0x3980 + 0x39a0: 0x000a, 0x39a1: 0x000a, 0x39a2: 0x000a, 0x39a3: 0x000a, + 0x39a4: 0x000a, 0x39a5: 0x000a, 0x39a6: 0x000a, 0x39a7: 0x000a, 0x39a8: 0x000a, 0x39a9: 0x000a, + 0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a, + // Block 0xe7, offset 0x39c0 + 0x39fe: 0x000b, 0x39ff: 0x000b, + // Block 0xe8, offset 0x3a00 + 0x3a00: 0x000b, 0x3a01: 0x000b, 0x3a02: 0x000b, 0x3a03: 0x000b, 0x3a04: 0x000b, 0x3a05: 0x000b, + 0x3a06: 0x000b, 0x3a07: 0x000b, 0x3a08: 0x000b, 0x3a09: 0x000b, 0x3a0a: 0x000b, 0x3a0b: 0x000b, + 0x3a0c: 0x000b, 0x3a0d: 0x000b, 0x3a0e: 0x000b, 0x3a0f: 0x000b, 0x3a10: 0x000b, 0x3a11: 0x000b, + 0x3a12: 0x000b, 0x3a13: 0x000b, 0x3a14: 0x000b, 0x3a15: 0x000b, 0x3a16: 0x000b, 0x3a17: 0x000b, + 0x3a18: 0x000b, 0x3a19: 0x000b, 0x3a1a: 0x000b, 0x3a1b: 0x000b, 0x3a1c: 0x000b, 0x3a1d: 0x000b, + 0x3a1e: 0x000b, 0x3a1f: 0x000b, 0x3a20: 0x000b, 0x3a21: 0x000b, 0x3a22: 0x000b, 0x3a23: 0x000b, + 0x3a24: 0x000b, 0x3a25: 0x000b, 0x3a26: 0x000b, 0x3a27: 0x000b, 0x3a28: 0x000b, 0x3a29: 0x000b, + 0x3a2a: 0x000b, 0x3a2b: 0x000b, 0x3a2c: 0x000b, 0x3a2d: 0x000b, 0x3a2e: 0x000b, 0x3a2f: 0x000b, + 0x3a30: 0x000b, 0x3a31: 0x000b, 0x3a32: 0x000b, 0x3a33: 0x000b, 0x3a34: 0x000b, 0x3a35: 0x000b, + 0x3a36: 0x000b, 0x3a37: 0x000b, 0x3a38: 0x000b, 0x3a39: 0x000b, 0x3a3a: 0x000b, 0x3a3b: 0x000b, + 0x3a3c: 0x000b, 0x3a3d: 0x000b, 0x3a3e: 0x000b, 0x3a3f: 0x000b, + // Block 0xe9, offset 0x3a40 + 0x3a40: 0x000c, 0x3a41: 0x000c, 0x3a42: 0x000c, 0x3a43: 0x000c, 0x3a44: 0x000c, 0x3a45: 0x000c, + 0x3a46: 0x000c, 0x3a47: 0x000c, 0x3a48: 0x000c, 0x3a49: 0x000c, 0x3a4a: 0x000c, 0x3a4b: 0x000c, + 0x3a4c: 0x000c, 0x3a4d: 0x000c, 0x3a4e: 0x000c, 0x3a4f: 0x000c, 0x3a50: 0x000c, 0x3a51: 0x000c, + 0x3a52: 0x000c, 0x3a53: 0x000c, 0x3a54: 0x000c, 0x3a55: 0x000c, 0x3a56: 0x000c, 0x3a57: 0x000c, + 0x3a58: 0x000c, 0x3a59: 0x000c, 0x3a5a: 0x000c, 0x3a5b: 0x000c, 0x3a5c: 0x000c, 0x3a5d: 0x000c, + 0x3a5e: 0x000c, 0x3a5f: 0x000c, 0x3a60: 0x000c, 0x3a61: 0x000c, 0x3a62: 0x000c, 0x3a63: 0x000c, + 0x3a64: 0x000c, 0x3a65: 0x000c, 0x3a66: 0x000c, 0x3a67: 0x000c, 0x3a68: 0x000c, 0x3a69: 0x000c, + 0x3a6a: 0x000c, 0x3a6b: 0x000c, 0x3a6c: 0x000c, 0x3a6d: 0x000c, 0x3a6e: 0x000c, 0x3a6f: 0x000c, + 0x3a70: 0x000b, 0x3a71: 0x000b, 0x3a72: 0x000b, 0x3a73: 0x000b, 0x3a74: 0x000b, 0x3a75: 0x000b, + 0x3a76: 0x000b, 0x3a77: 0x000b, 0x3a78: 0x000b, 0x3a79: 0x000b, 0x3a7a: 0x000b, 0x3a7b: 0x000b, + 0x3a7c: 0x000b, 0x3a7d: 0x000b, 0x3a7e: 0x000b, 0x3a7f: 0x000b, +} + +// bidiIndex: 24 blocks, 1536 entries, 1536 bytes +// Block 0 is the zero block. +var bidiIndex = [1536]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x02, + 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08, + 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b, + 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, + 0xea: 0x07, 0xef: 0x08, + 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15, + // Block 0x4, offset 0x100 + 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b, + 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22, + 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28, + 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30, + // Block 0x5, offset 0x140 + 0x140: 0x31, 0x141: 0x32, 0x142: 0x33, + 0x14d: 0x34, 0x14e: 0x35, + 0x150: 0x36, + 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b, + 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40, + 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47, + 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a, + 0x17e: 0x4b, 0x17f: 0x4c, + // Block 0x6, offset 0x180 + 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54, + 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54, + 0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54, + 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f, + 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61, + 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64, + 0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67, + 0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70, + 0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76, + // Block 0x8, offset 0x200 + 0x237: 0x54, + // Block 0x9, offset 0x240 + 0x252: 0x77, 0x253: 0x78, + 0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e, + 0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85, + 0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a, + // Block 0xa, offset 0x280 + 0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e, + 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e, + 0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94, + // Block 0xb, offset 0x2c0 + 0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97, + 0x2cb: 0x98, 0x2cd: 0x99, + 0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a, + 0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a, + 0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9f, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a, + 0x2f8: 0x9a, 0x2f9: 0xa0, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0xa1, 0x2fd: 0xa2, 0x2fe: 0x9a, 0x2ff: 0x9a, + // Block 0xc, offset 0x300 + 0x300: 0xa3, 0x301: 0xa4, 0x302: 0xa5, 0x304: 0xa6, 0x305: 0xa7, 0x306: 0xa8, 0x307: 0xa9, + 0x308: 0xaa, 0x30b: 0xab, 0x30c: 0x26, 0x30d: 0xac, + 0x310: 0xad, 0x311: 0xae, 0x312: 0xaf, 0x313: 0xb0, 0x316: 0xb1, 0x317: 0xb2, + 0x318: 0xb3, 0x319: 0xb4, 0x31a: 0xb5, 0x31c: 0xb6, + 0x320: 0xb7, + 0x328: 0xb8, 0x329: 0xb9, 0x32a: 0xba, + 0x330: 0xbb, 0x332: 0xbc, 0x334: 0xbd, 0x335: 0xbe, 0x336: 0xbf, + 0x33b: 0xc0, + // Block 0xd, offset 0x340 + 0x36b: 0xc1, 0x36c: 0xc2, + 0x37e: 0xc3, + // Block 0xe, offset 0x380 + 0x3b2: 0xc4, + // Block 0xf, offset 0x3c0 + 0x3c5: 0xc5, 0x3c6: 0xc6, + 0x3c8: 0x54, 0x3c9: 0xc7, 0x3cc: 0x54, 0x3cd: 0xc8, + 0x3db: 0xc9, 0x3dc: 0xca, 0x3dd: 0xcb, 0x3de: 0xcc, 0x3df: 0xcd, + 0x3e8: 0xce, 0x3e9: 0xcf, 0x3ea: 0xd0, + // Block 0x10, offset 0x400 + 0x400: 0xd1, + 0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xd2, 0x424: 0x9a, 0x425: 0xd3, 0x426: 0x9a, 0x427: 0x9a, + 0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a, + 0x430: 0x9a, 0x431: 0xa1, 0x432: 0x0e, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a, + 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xd4, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a, + // Block 0x11, offset 0x440 + 0x440: 0xd5, 0x441: 0x54, 0x442: 0xd6, 0x443: 0xd7, 0x444: 0xd8, 0x445: 0xd9, + 0x449: 0xda, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54, + 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54, + 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xdb, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xdc, + 0x460: 0xdd, 0x461: 0xde, 0x462: 0xdf, 0x464: 0xe0, 0x465: 0xe1, 0x466: 0xe2, 0x467: 0xe3, + 0x469: 0xe4, + 0x47f: 0xe5, + // Block 0x12, offset 0x480 + 0x4bf: 0xe5, + // Block 0x13, offset 0x4c0 + 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b, + 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f, + 0x4ef: 0x10, + 0x4ff: 0x10, + // Block 0x14, offset 0x500 + 0x50f: 0x10, + 0x51f: 0x10, + 0x52f: 0x10, + 0x53f: 0x10, + // Block 0x15, offset 0x540 + 0x540: 0xe6, 0x541: 0xe6, 0x542: 0xe6, 0x543: 0xe6, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe7, + 0x548: 0xe6, 0x549: 0xe6, 0x54a: 0xe6, 0x54b: 0xe6, 0x54c: 0xe6, 0x54d: 0xe6, 0x54e: 0xe6, 0x54f: 0xe6, + 0x550: 0xe6, 0x551: 0xe6, 0x552: 0xe6, 0x553: 0xe6, 0x554: 0xe6, 0x555: 0xe6, 0x556: 0xe6, 0x557: 0xe6, + 0x558: 0xe6, 0x559: 0xe6, 0x55a: 0xe6, 0x55b: 0xe6, 0x55c: 0xe6, 0x55d: 0xe6, 0x55e: 0xe6, 0x55f: 0xe6, + 0x560: 0xe6, 0x561: 0xe6, 0x562: 0xe6, 0x563: 0xe6, 0x564: 0xe6, 0x565: 0xe6, 0x566: 0xe6, 0x567: 0xe6, + 0x568: 0xe6, 0x569: 0xe6, 0x56a: 0xe6, 0x56b: 0xe6, 0x56c: 0xe6, 0x56d: 0xe6, 0x56e: 0xe6, 0x56f: 0xe6, + 0x570: 0xe6, 0x571: 0xe6, 0x572: 0xe6, 0x573: 0xe6, 0x574: 0xe6, 0x575: 0xe6, 0x576: 0xe6, 0x577: 0xe6, + 0x578: 0xe6, 0x579: 0xe6, 0x57a: 0xe6, 0x57b: 0xe6, 0x57c: 0xe6, 0x57d: 0xe6, 0x57e: 0xe6, 0x57f: 0xe6, + // Block 0x16, offset 0x580 + 0x58f: 0x10, + 0x59f: 0x10, + 0x5a0: 0x13, + 0x5af: 0x10, + 0x5bf: 0x10, + // Block 0x17, offset 0x5c0 + 0x5cf: 0x10, +} + +// Total table size 16568 bytes (16KiB); checksum: F50EF68C diff --git a/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go new file mode 100644 index 0000000..baacf32 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go @@ -0,0 +1,1924 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.14 && !go1.16 +// +build go1.14,!go1.16 + +package bidi + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "12.0.0" + +// xorMasks contains masks to be xor-ed with brackets to get the reverse +// version. +var xorMasks = []int32{ // 8 elements + 0, 1, 6, 7, 3, 15, 29, 63, +} // Size: 56 bytes + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupUnsafe(s []byte) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookupString(s string) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupStringUnsafe(s string) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// bidiTrie. Total size: 16896 bytes (16.50 KiB). Checksum: 6f0927067913dc6d. +type bidiTrie struct{} + +func newBidiTrie(i int) *bidiTrie { + return &bidiTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 { + switch { + default: + return uint8(bidiValues[n<<6+uint32(b)]) + } +} + +// bidiValues: 240 blocks, 15360 entries, 15360 bytes +// The third block is the zero block. +var bidiValues = [15360]uint8{ + // Block 0x0, offset 0x0 + 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b, + 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008, + 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b, + 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b, + 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007, + 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004, + 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a, + 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006, + 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002, + 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a, + 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a, + // Block 0x1, offset 0x40 + 0x40: 0x000a, + 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a, + 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a, + 0x7b: 0x005a, + 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007, + 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b, + 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b, + 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b, + 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b, + 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004, + 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a, + 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a, + 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a, + 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a, + 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a, + // Block 0x4, offset 0x100 + 0x117: 0x000a, + 0x137: 0x000a, + // Block 0x5, offset 0x140 + 0x179: 0x000a, 0x17a: 0x000a, + // Block 0x6, offset 0x180 + 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a, + 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a, + 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a, + 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a, + 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a, + 0x19e: 0x000a, 0x19f: 0x000a, + 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a, + 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a, + 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a, + 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a, + 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c, + 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c, + 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c, + 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c, + 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c, + 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c, + 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c, + 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c, + 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c, + 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c, + 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c, + // Block 0x8, offset 0x200 + 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c, + 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c, + 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c, + 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c, + 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c, + 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c, + 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c, + 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c, + 0x234: 0x000a, 0x235: 0x000a, + 0x23e: 0x000a, + // Block 0x9, offset 0x240 + 0x244: 0x000a, 0x245: 0x000a, + 0x247: 0x000a, + // Block 0xa, offset 0x280 + 0x2b6: 0x000a, + // Block 0xb, offset 0x2c0 + 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c, + 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c, + // Block 0xc, offset 0x300 + 0x30a: 0x000a, + 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c, + 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c, + 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c, + 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c, + 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c, + 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c, + 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c, + 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c, + 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c, + // Block 0xd, offset 0x340 + 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c, + 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001, + 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001, + 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001, + 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001, + 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001, + 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001, + 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001, + 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001, + 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001, + 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001, + // Block 0xe, offset 0x380 + 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005, + 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d, + 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c, + 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c, + 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d, + 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d, + 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d, + 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d, + 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d, + 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d, + 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d, + 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c, + 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c, + 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c, + 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c, + 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005, + 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005, + 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d, + 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d, + 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d, + 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d, + // Block 0x10, offset 0x400 + 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d, + 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d, + 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d, + 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d, + 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d, + 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d, + 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d, + 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d, + 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d, + 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d, + 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d, + // Block 0x11, offset 0x440 + 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d, + 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d, + 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d, + 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c, + 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005, + 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c, + 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a, + 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d, + 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002, + 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d, + 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d, + // Block 0x12, offset 0x480 + 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d, + 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d, + 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c, + 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d, + 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d, + 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d, + 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d, + 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d, + 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c, + 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c, + 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c, + 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d, + 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d, + 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d, + 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d, + 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d, + 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d, + 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d, + 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d, + 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d, + 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d, + // Block 0x14, offset 0x500 + 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d, + 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d, + 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d, + 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d, + 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d, + 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d, + 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c, + 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c, + 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d, + 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d, + 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d, + // Block 0x15, offset 0x540 + 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001, + 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001, + 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001, + 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001, + 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001, + 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001, + 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001, + 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c, + 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001, + 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001, + 0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001, + // Block 0x16, offset 0x580 + 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001, + 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001, + 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001, + 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c, + 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c, + 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c, + 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c, + 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001, + 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001, + 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001, + 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001, + 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001, + 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001, + 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001, + 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001, + 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d, + 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d, + 0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d, + 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001, + 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001, + 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001, + // Block 0x18, offset 0x600 + 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001, + 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001, + 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001, + 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001, + 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001, + 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d, + 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d, + 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d, + 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d, + 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d, + 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d, + // Block 0x19, offset 0x640 + 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d, + 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d, + 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d, + 0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c, + 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c, + 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c, + 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c, + 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c, + 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c, + 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c, + 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c, + // Block 0x1a, offset 0x680 + 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c, + 0x6ba: 0x000c, + 0x6bc: 0x000c, + // Block 0x1b, offset 0x6c0 + 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c, + 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c, + 0x6cd: 0x000c, 0x6d1: 0x000c, + 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c, + 0x6e2: 0x000c, 0x6e3: 0x000c, + // Block 0x1c, offset 0x700 + 0x701: 0x000c, + 0x73c: 0x000c, + // Block 0x1d, offset 0x740 + 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c, + 0x74d: 0x000c, + 0x762: 0x000c, 0x763: 0x000c, + 0x772: 0x0004, 0x773: 0x0004, + 0x77b: 0x0004, + 0x77e: 0x000c, + // Block 0x1e, offset 0x780 + 0x781: 0x000c, 0x782: 0x000c, + 0x7bc: 0x000c, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x000c, 0x7c2: 0x000c, + 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c, + 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c, + 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c, + // Block 0x20, offset 0x800 + 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c, + 0x807: 0x000c, 0x808: 0x000c, + 0x80d: 0x000c, + 0x822: 0x000c, 0x823: 0x000c, + 0x831: 0x0004, + 0x83a: 0x000c, 0x83b: 0x000c, + 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c, + // Block 0x21, offset 0x840 + 0x841: 0x000c, + 0x87c: 0x000c, 0x87f: 0x000c, + // Block 0x22, offset 0x880 + 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c, + 0x88d: 0x000c, + 0x896: 0x000c, + 0x8a2: 0x000c, 0x8a3: 0x000c, + // Block 0x23, offset 0x8c0 + 0x8c2: 0x000c, + // Block 0x24, offset 0x900 + 0x900: 0x000c, + 0x90d: 0x000c, + 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a, + 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a, + // Block 0x25, offset 0x940 + 0x940: 0x000c, 0x944: 0x000c, + 0x97e: 0x000c, 0x97f: 0x000c, + // Block 0x26, offset 0x980 + 0x980: 0x000c, + 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c, + 0x98c: 0x000c, 0x98d: 0x000c, + 0x995: 0x000c, 0x996: 0x000c, + 0x9a2: 0x000c, 0x9a3: 0x000c, + 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a, + 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a, + // Block 0x27, offset 0x9c0 + 0x9cc: 0x000c, 0x9cd: 0x000c, + 0x9e2: 0x000c, 0x9e3: 0x000c, + // Block 0x28, offset 0xa00 + 0xa00: 0x000c, 0xa01: 0x000c, + 0xa3b: 0x000c, + 0xa3c: 0x000c, + // Block 0x29, offset 0xa40 + 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c, + 0xa4d: 0x000c, + 0xa62: 0x000c, 0xa63: 0x000c, + // Block 0x2a, offset 0xa80 + 0xa8a: 0x000c, + 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c, + // Block 0x2b, offset 0xac0 + 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c, + 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c, + 0xaff: 0x0004, + // Block 0x2c, offset 0xb00 + 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c, + 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c, + // Block 0x2d, offset 0xb40 + 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c, + 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7a: 0x000c, 0xb7b: 0x000c, + 0xb7c: 0x000c, + // Block 0x2e, offset 0xb80 + 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c, + 0xb8c: 0x000c, 0xb8d: 0x000c, + // Block 0x2f, offset 0xbc0 + 0xbd8: 0x000c, 0xbd9: 0x000c, + 0xbf5: 0x000c, + 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a, + 0xbfc: 0x003a, 0xbfd: 0x002a, + // Block 0x30, offset 0xc00 + 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c, + 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c, + 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c, + // Block 0x31, offset 0xc40 + 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c, + 0xc46: 0x000c, 0xc47: 0x000c, + 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c, + 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c, + 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c, + 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c, + 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c, + 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c, + 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c, + 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c, + 0xc7c: 0x000c, + // Block 0x32, offset 0xc80 + 0xc86: 0x000c, + // Block 0x33, offset 0xcc0 + 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c, + 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c, + 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c, + 0xcfd: 0x000c, 0xcfe: 0x000c, + // Block 0x34, offset 0xd00 + 0xd18: 0x000c, 0xd19: 0x000c, + 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c, + 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, + // Block 0x35, offset 0xd40 + 0xd42: 0x000c, 0xd45: 0x000c, + 0xd46: 0x000c, + 0xd4d: 0x000c, + 0xd5d: 0x000c, + // Block 0x36, offset 0xd80 + 0xd9d: 0x000c, + 0xd9e: 0x000c, 0xd9f: 0x000c, + // Block 0x37, offset 0xdc0 + 0xdd0: 0x000a, 0xdd1: 0x000a, + 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a, + 0xdd8: 0x000a, 0xdd9: 0x000a, + // Block 0x38, offset 0xe00 + 0xe00: 0x000a, + // Block 0x39, offset 0xe40 + 0xe40: 0x0009, + 0xe5b: 0x007a, 0xe5c: 0x006a, + // Block 0x3a, offset 0xe80 + 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c, + 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c, + // Block 0x3b, offset 0xec0 + 0xed2: 0x000c, 0xed3: 0x000c, + 0xef2: 0x000c, 0xef3: 0x000c, + // Block 0x3c, offset 0xf00 + 0xf34: 0x000c, 0xf35: 0x000c, + 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c, + 0xf3c: 0x000c, 0xf3d: 0x000c, + // Block 0x3d, offset 0xf40 + 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c, + 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c, + 0xf52: 0x000c, 0xf53: 0x000c, + 0xf5b: 0x0004, 0xf5d: 0x000c, + 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a, + 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a, + // Block 0x3e, offset 0xf80 + 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a, + 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c, + 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b, + // Block 0x3f, offset 0xfc0 + 0xfc5: 0x000c, + 0xfc6: 0x000c, + 0xfe9: 0x000c, + // Block 0x40, offset 0x1000 + 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c, + 0x1027: 0x000c, 0x1028: 0x000c, + 0x1032: 0x000c, + 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c, + // Block 0x41, offset 0x1040 + 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a, + // Block 0x42, offset 0x1080 + 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a, + 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a, + 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a, + 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a, + 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a, + 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a, + // Block 0x43, offset 0x10c0 + 0x10d7: 0x000c, + 0x10d8: 0x000c, 0x10db: 0x000c, + // Block 0x44, offset 0x1100 + 0x1116: 0x000c, + 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c, + 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c, + 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c, + 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c, + 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c, + 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c, + 0x113c: 0x000c, 0x113f: 0x000c, + // Block 0x45, offset 0x1140 + 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c, + 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c, + 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c, + // Block 0x46, offset 0x1180 + 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c, + 0x11b4: 0x000c, + 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, + 0x11bc: 0x000c, + // Block 0x47, offset 0x11c0 + 0x11c2: 0x000c, + 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c, + 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c, + // Block 0x48, offset 0x1200 + 0x1200: 0x000c, 0x1201: 0x000c, + 0x1222: 0x000c, 0x1223: 0x000c, + 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c, + 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c, + // Block 0x49, offset 0x1240 + 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c, + 0x126d: 0x000c, 0x126f: 0x000c, + 0x1270: 0x000c, 0x1271: 0x000c, + // Block 0x4a, offset 0x1280 + 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c, + 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c, + 0x12b6: 0x000c, 0x12b7: 0x000c, + // Block 0x4b, offset 0x12c0 + 0x12d0: 0x000c, 0x12d1: 0x000c, + 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c, + 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c, + 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c, + 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c, + 0x12ed: 0x000c, + 0x12f4: 0x000c, + 0x12f8: 0x000c, 0x12f9: 0x000c, + // Block 0x4c, offset 0x1300 + 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c, + 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c, + 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c, + 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c, + 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c, + 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c, + 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c, + 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c, + 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c, + 0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c, + 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c, + // Block 0x4d, offset 0x1340 + 0x137d: 0x000a, 0x137f: 0x000a, + // Block 0x4e, offset 0x1380 + 0x1380: 0x000a, 0x1381: 0x000a, + 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a, + 0x139d: 0x000a, + 0x139e: 0x000a, 0x139f: 0x000a, + 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a, + 0x13bd: 0x000a, 0x13be: 0x000a, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009, + 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b, + 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a, + 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a, + 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a, + 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a, + 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007, + 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006, + 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a, + 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a, + 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a, + // Block 0x50, offset 0x1400 + 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a, + 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a, + 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a, + 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a, + 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a, + 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b, + 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e, + 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b, + 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002, + 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003, + 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a, + // Block 0x51, offset 0x1440 + 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002, + 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003, + 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a, + 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004, + 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004, + 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004, + 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004, + 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004, + 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004, + // Block 0x52, offset 0x1480 + 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004, + 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004, + 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c, + 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c, + 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c, + 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c, + 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c, + 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c, + 0x14b0: 0x000c, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a, + 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a, + 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a, + 0x14d8: 0x000a, + 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a, + 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a, + 0x14ee: 0x0004, + 0x14fa: 0x000a, 0x14fb: 0x000a, + // Block 0x54, offset 0x1500 + 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a, + 0x150a: 0x000a, 0x150b: 0x000a, + 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a, + 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a, + 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a, + 0x151e: 0x000a, 0x151f: 0x000a, + // Block 0x55, offset 0x1540 + 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a, + 0x1550: 0x000a, 0x1551: 0x000a, + 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a, + 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a, + 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a, + 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a, + 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a, + 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a, + 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a, + 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a, + // Block 0x56, offset 0x1580 + 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a, + 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a, + 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a, + 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a, + 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a, + 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a, + 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a, + 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a, + 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a, + 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a, + 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a, + 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a, + 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a, + 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a, + 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a, + 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a, + 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a, + 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a, + 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a, + 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a, + 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a, + // Block 0x58, offset 0x1600 + 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a, + 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a, + 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a, + 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a, + 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a, + 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a, + 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a, + 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a, + 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a, + // Block 0x59, offset 0x1640 + 0x167b: 0x000a, + 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a, + // Block 0x5a, offset 0x1680 + 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a, + 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a, + 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a, + 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a, + 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a, + 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a, + 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a, + 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a, + 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a, + 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a, + 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a, + 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a, + 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a, + 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a, + 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a, + 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a, + 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, + // Block 0x5c, offset 0x1700 + 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a, + 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, + 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a, + 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a, + 0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a, + 0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a, + 0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a, + 0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a, + // Block 0x5d, offset 0x1740 + 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a, + 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002, + 0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002, + 0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002, + 0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002, + // Block 0x5e, offset 0x1780 + 0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a, + 0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a, + 0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a, + 0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a, + 0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a, + 0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a, + 0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a, + 0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a, + 0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a, + 0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a, + 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a, + 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a, + 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a, + 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a, + // Block 0x60, offset 0x1800 + 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a, + 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a, + 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a, + 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a, + 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a, + 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a, + 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a, + 0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a, + 0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a, + 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a, + 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a, + // Block 0x61, offset 0x1840 + 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a, + 0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a, + 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a, + 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a, + 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a, + 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a, + 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a, + 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a, + 0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a, + 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a, + 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a, + // Block 0x62, offset 0x1880 + 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a, + 0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a, + 0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a, + 0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba, + 0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a, + 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a, + 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a, + 0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a, + 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a, + 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a, + 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a, + 0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a, + 0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a, + 0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a, + 0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a, + 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a, + 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a, + 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a, + 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a, + 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a, + 0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a, + // Block 0x64, offset 0x1900 + 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a, + 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a, + 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a, + 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a, + 0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a, + 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a, + 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a, + 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a, + 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, + 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a, + 0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a, + // Block 0x65, offset 0x1940 + 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a, + 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a, + 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a, + 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, + 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a, + 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a, + 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a, + 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a, + 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a, + 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a, + 0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a, + // Block 0x66, offset 0x1980 + 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a, + 0x19aa: 0x000a, 0x19af: 0x000c, + 0x19b0: 0x000c, 0x19b1: 0x000c, + 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a, + 0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a, + // Block 0x67, offset 0x19c0 + 0x19ff: 0x000c, + // Block 0x68, offset 0x1a00 + 0x1a20: 0x000c, 0x1a21: 0x000c, 0x1a22: 0x000c, 0x1a23: 0x000c, + 0x1a24: 0x000c, 0x1a25: 0x000c, 0x1a26: 0x000c, 0x1a27: 0x000c, 0x1a28: 0x000c, 0x1a29: 0x000c, + 0x1a2a: 0x000c, 0x1a2b: 0x000c, 0x1a2c: 0x000c, 0x1a2d: 0x000c, 0x1a2e: 0x000c, 0x1a2f: 0x000c, + 0x1a30: 0x000c, 0x1a31: 0x000c, 0x1a32: 0x000c, 0x1a33: 0x000c, 0x1a34: 0x000c, 0x1a35: 0x000c, + 0x1a36: 0x000c, 0x1a37: 0x000c, 0x1a38: 0x000c, 0x1a39: 0x000c, 0x1a3a: 0x000c, 0x1a3b: 0x000c, + 0x1a3c: 0x000c, 0x1a3d: 0x000c, 0x1a3e: 0x000c, 0x1a3f: 0x000c, + // Block 0x69, offset 0x1a40 + 0x1a40: 0x000a, 0x1a41: 0x000a, 0x1a42: 0x000a, 0x1a43: 0x000a, 0x1a44: 0x000a, 0x1a45: 0x000a, + 0x1a46: 0x000a, 0x1a47: 0x000a, 0x1a48: 0x000a, 0x1a49: 0x000a, 0x1a4a: 0x000a, 0x1a4b: 0x000a, + 0x1a4c: 0x000a, 0x1a4d: 0x000a, 0x1a4e: 0x000a, 0x1a4f: 0x000a, 0x1a50: 0x000a, 0x1a51: 0x000a, + 0x1a52: 0x000a, 0x1a53: 0x000a, 0x1a54: 0x000a, 0x1a55: 0x000a, 0x1a56: 0x000a, 0x1a57: 0x000a, + 0x1a58: 0x000a, 0x1a59: 0x000a, 0x1a5a: 0x000a, 0x1a5b: 0x000a, 0x1a5c: 0x000a, 0x1a5d: 0x000a, + 0x1a5e: 0x000a, 0x1a5f: 0x000a, 0x1a60: 0x000a, 0x1a61: 0x000a, 0x1a62: 0x003a, 0x1a63: 0x002a, + 0x1a64: 0x003a, 0x1a65: 0x002a, 0x1a66: 0x003a, 0x1a67: 0x002a, 0x1a68: 0x003a, 0x1a69: 0x002a, + 0x1a6a: 0x000a, 0x1a6b: 0x000a, 0x1a6c: 0x000a, 0x1a6d: 0x000a, 0x1a6e: 0x000a, 0x1a6f: 0x000a, + 0x1a70: 0x000a, 0x1a71: 0x000a, 0x1a72: 0x000a, 0x1a73: 0x000a, 0x1a74: 0x000a, 0x1a75: 0x000a, + 0x1a76: 0x000a, 0x1a77: 0x000a, 0x1a78: 0x000a, 0x1a79: 0x000a, 0x1a7a: 0x000a, 0x1a7b: 0x000a, + 0x1a7c: 0x000a, 0x1a7d: 0x000a, 0x1a7e: 0x000a, 0x1a7f: 0x000a, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a, + 0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a, + 0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a, + 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a, + 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a, + 0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a, + 0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a, + 0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x000a, 0x1ae3: 0x000a, + 0x1ae4: 0x000a, 0x1ae5: 0x000a, 0x1ae6: 0x000a, 0x1ae7: 0x000a, 0x1ae8: 0x000a, 0x1ae9: 0x000a, + 0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a, + 0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a, + 0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a, + 0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a, + 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a, + 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a, + 0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a, + 0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1a: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a, + 0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a, + 0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a, + 0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a, + 0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a, + 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a, + 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a, + 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, + 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a, + 0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0x0009, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, + 0x1b88: 0x003a, 0x1b89: 0x002a, 0x1b8a: 0x003a, 0x1b8b: 0x002a, + 0x1b8c: 0x003a, 0x1b8d: 0x002a, 0x1b8e: 0x003a, 0x1b8f: 0x002a, 0x1b90: 0x003a, 0x1b91: 0x002a, + 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x003a, 0x1b95: 0x002a, 0x1b96: 0x003a, 0x1b97: 0x002a, + 0x1b98: 0x003a, 0x1b99: 0x002a, 0x1b9a: 0x003a, 0x1b9b: 0x002a, 0x1b9c: 0x000a, 0x1b9d: 0x000a, + 0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, + 0x1baa: 0x000c, 0x1bab: 0x000c, 0x1bac: 0x000c, 0x1bad: 0x000c, + 0x1bb0: 0x000a, + 0x1bb6: 0x000a, 0x1bb7: 0x000a, + 0x1bbd: 0x000a, 0x1bbe: 0x000a, 0x1bbf: 0x000a, + // Block 0x6f, offset 0x1bc0 + 0x1bd9: 0x000c, 0x1bda: 0x000c, 0x1bdb: 0x000a, 0x1bdc: 0x000a, + 0x1be0: 0x000a, + // Block 0x70, offset 0x1c00 + 0x1c3b: 0x000a, + // Block 0x71, offset 0x1c40 + 0x1c40: 0x000a, 0x1c41: 0x000a, 0x1c42: 0x000a, 0x1c43: 0x000a, 0x1c44: 0x000a, 0x1c45: 0x000a, + 0x1c46: 0x000a, 0x1c47: 0x000a, 0x1c48: 0x000a, 0x1c49: 0x000a, 0x1c4a: 0x000a, 0x1c4b: 0x000a, + 0x1c4c: 0x000a, 0x1c4d: 0x000a, 0x1c4e: 0x000a, 0x1c4f: 0x000a, 0x1c50: 0x000a, 0x1c51: 0x000a, + 0x1c52: 0x000a, 0x1c53: 0x000a, 0x1c54: 0x000a, 0x1c55: 0x000a, 0x1c56: 0x000a, 0x1c57: 0x000a, + 0x1c58: 0x000a, 0x1c59: 0x000a, 0x1c5a: 0x000a, 0x1c5b: 0x000a, 0x1c5c: 0x000a, 0x1c5d: 0x000a, + 0x1c5e: 0x000a, 0x1c5f: 0x000a, 0x1c60: 0x000a, 0x1c61: 0x000a, 0x1c62: 0x000a, 0x1c63: 0x000a, + // Block 0x72, offset 0x1c80 + 0x1c9d: 0x000a, + 0x1c9e: 0x000a, + // Block 0x73, offset 0x1cc0 + 0x1cd0: 0x000a, 0x1cd1: 0x000a, + 0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a, + 0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a, + 0x1cde: 0x000a, 0x1cdf: 0x000a, + 0x1cfc: 0x000a, 0x1cfd: 0x000a, 0x1cfe: 0x000a, + // Block 0x74, offset 0x1d00 + 0x1d31: 0x000a, 0x1d32: 0x000a, 0x1d33: 0x000a, 0x1d34: 0x000a, 0x1d35: 0x000a, + 0x1d36: 0x000a, 0x1d37: 0x000a, 0x1d38: 0x000a, 0x1d39: 0x000a, 0x1d3a: 0x000a, 0x1d3b: 0x000a, + 0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a, 0x1d3f: 0x000a, + // Block 0x75, offset 0x1d40 + 0x1d4c: 0x000a, 0x1d4d: 0x000a, 0x1d4e: 0x000a, 0x1d4f: 0x000a, + // Block 0x76, offset 0x1d80 + 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, + // Block 0x77, offset 0x1dc0 + 0x1dde: 0x000a, 0x1ddf: 0x000a, + 0x1dff: 0x000a, + // Block 0x78, offset 0x1e00 + 0x1e10: 0x000a, 0x1e11: 0x000a, + 0x1e12: 0x000a, 0x1e13: 0x000a, 0x1e14: 0x000a, 0x1e15: 0x000a, 0x1e16: 0x000a, 0x1e17: 0x000a, + 0x1e18: 0x000a, 0x1e19: 0x000a, 0x1e1a: 0x000a, 0x1e1b: 0x000a, 0x1e1c: 0x000a, 0x1e1d: 0x000a, + 0x1e1e: 0x000a, 0x1e1f: 0x000a, 0x1e20: 0x000a, 0x1e21: 0x000a, 0x1e22: 0x000a, 0x1e23: 0x000a, + 0x1e24: 0x000a, 0x1e25: 0x000a, 0x1e26: 0x000a, 0x1e27: 0x000a, 0x1e28: 0x000a, 0x1e29: 0x000a, + 0x1e2a: 0x000a, 0x1e2b: 0x000a, 0x1e2c: 0x000a, 0x1e2d: 0x000a, 0x1e2e: 0x000a, 0x1e2f: 0x000a, + 0x1e30: 0x000a, 0x1e31: 0x000a, 0x1e32: 0x000a, 0x1e33: 0x000a, 0x1e34: 0x000a, 0x1e35: 0x000a, + 0x1e36: 0x000a, 0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a, 0x1e3b: 0x000a, + 0x1e3c: 0x000a, 0x1e3d: 0x000a, 0x1e3e: 0x000a, 0x1e3f: 0x000a, + // Block 0x79, offset 0x1e40 + 0x1e40: 0x000a, 0x1e41: 0x000a, 0x1e42: 0x000a, 0x1e43: 0x000a, 0x1e44: 0x000a, 0x1e45: 0x000a, + 0x1e46: 0x000a, + // Block 0x7a, offset 0x1e80 + 0x1e8d: 0x000a, 0x1e8e: 0x000a, 0x1e8f: 0x000a, + // Block 0x7b, offset 0x1ec0 + 0x1eef: 0x000c, + 0x1ef0: 0x000c, 0x1ef1: 0x000c, 0x1ef2: 0x000c, 0x1ef3: 0x000a, 0x1ef4: 0x000c, 0x1ef5: 0x000c, + 0x1ef6: 0x000c, 0x1ef7: 0x000c, 0x1ef8: 0x000c, 0x1ef9: 0x000c, 0x1efa: 0x000c, 0x1efb: 0x000c, + 0x1efc: 0x000c, 0x1efd: 0x000c, 0x1efe: 0x000a, 0x1eff: 0x000a, + // Block 0x7c, offset 0x1f00 + 0x1f1e: 0x000c, 0x1f1f: 0x000c, + // Block 0x7d, offset 0x1f40 + 0x1f70: 0x000c, 0x1f71: 0x000c, + // Block 0x7e, offset 0x1f80 + 0x1f80: 0x000a, 0x1f81: 0x000a, 0x1f82: 0x000a, 0x1f83: 0x000a, 0x1f84: 0x000a, 0x1f85: 0x000a, + 0x1f86: 0x000a, 0x1f87: 0x000a, 0x1f88: 0x000a, 0x1f89: 0x000a, 0x1f8a: 0x000a, 0x1f8b: 0x000a, + 0x1f8c: 0x000a, 0x1f8d: 0x000a, 0x1f8e: 0x000a, 0x1f8f: 0x000a, 0x1f90: 0x000a, 0x1f91: 0x000a, + 0x1f92: 0x000a, 0x1f93: 0x000a, 0x1f94: 0x000a, 0x1f95: 0x000a, 0x1f96: 0x000a, 0x1f97: 0x000a, + 0x1f98: 0x000a, 0x1f99: 0x000a, 0x1f9a: 0x000a, 0x1f9b: 0x000a, 0x1f9c: 0x000a, 0x1f9d: 0x000a, + 0x1f9e: 0x000a, 0x1f9f: 0x000a, 0x1fa0: 0x000a, 0x1fa1: 0x000a, + // Block 0x7f, offset 0x1fc0 + 0x1fc8: 0x000a, + // Block 0x80, offset 0x2000 + 0x2002: 0x000c, + 0x2006: 0x000c, 0x200b: 0x000c, + 0x2025: 0x000c, 0x2026: 0x000c, 0x2028: 0x000a, 0x2029: 0x000a, + 0x202a: 0x000a, 0x202b: 0x000a, + 0x2038: 0x0004, 0x2039: 0x0004, + // Block 0x81, offset 0x2040 + 0x2074: 0x000a, 0x2075: 0x000a, + 0x2076: 0x000a, 0x2077: 0x000a, + // Block 0x82, offset 0x2080 + 0x2084: 0x000c, 0x2085: 0x000c, + 0x20a0: 0x000c, 0x20a1: 0x000c, 0x20a2: 0x000c, 0x20a3: 0x000c, + 0x20a4: 0x000c, 0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a7: 0x000c, 0x20a8: 0x000c, 0x20a9: 0x000c, + 0x20aa: 0x000c, 0x20ab: 0x000c, 0x20ac: 0x000c, 0x20ad: 0x000c, 0x20ae: 0x000c, 0x20af: 0x000c, + 0x20b0: 0x000c, 0x20b1: 0x000c, + 0x20bf: 0x000c, + // Block 0x83, offset 0x20c0 + 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c, + 0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, + // Block 0x84, offset 0x2100 + 0x2107: 0x000c, 0x2108: 0x000c, 0x2109: 0x000c, 0x210a: 0x000c, 0x210b: 0x000c, + 0x210c: 0x000c, 0x210d: 0x000c, 0x210e: 0x000c, 0x210f: 0x000c, 0x2110: 0x000c, 0x2111: 0x000c, + // Block 0x85, offset 0x2140 + 0x2140: 0x000c, 0x2141: 0x000c, 0x2142: 0x000c, + 0x2173: 0x000c, + 0x2176: 0x000c, 0x2177: 0x000c, 0x2178: 0x000c, 0x2179: 0x000c, + 0x217c: 0x000c, 0x217d: 0x000c, + // Block 0x86, offset 0x2180 + 0x21a5: 0x000c, + // Block 0x87, offset 0x21c0 + 0x21e9: 0x000c, + 0x21ea: 0x000c, 0x21eb: 0x000c, 0x21ec: 0x000c, 0x21ed: 0x000c, 0x21ee: 0x000c, + 0x21f1: 0x000c, 0x21f2: 0x000c, 0x21f5: 0x000c, + 0x21f6: 0x000c, + // Block 0x88, offset 0x2200 + 0x2203: 0x000c, + 0x220c: 0x000c, + 0x223c: 0x000c, + // Block 0x89, offset 0x2240 + 0x2270: 0x000c, 0x2272: 0x000c, 0x2273: 0x000c, 0x2274: 0x000c, + 0x2277: 0x000c, 0x2278: 0x000c, + 0x227e: 0x000c, 0x227f: 0x000c, + // Block 0x8a, offset 0x2280 + 0x2281: 0x000c, + 0x22ac: 0x000c, 0x22ad: 0x000c, + 0x22b6: 0x000c, + // Block 0x8b, offset 0x22c0 + 0x22e5: 0x000c, 0x22e8: 0x000c, + 0x22ed: 0x000c, + // Block 0x8c, offset 0x2300 + 0x231d: 0x0001, + 0x231e: 0x000c, 0x231f: 0x0001, 0x2320: 0x0001, 0x2321: 0x0001, 0x2322: 0x0001, 0x2323: 0x0001, + 0x2324: 0x0001, 0x2325: 0x0001, 0x2326: 0x0001, 0x2327: 0x0001, 0x2328: 0x0001, 0x2329: 0x0003, + 0x232a: 0x0001, 0x232b: 0x0001, 0x232c: 0x0001, 0x232d: 0x0001, 0x232e: 0x0001, 0x232f: 0x0001, + 0x2330: 0x0001, 0x2331: 0x0001, 0x2332: 0x0001, 0x2333: 0x0001, 0x2334: 0x0001, 0x2335: 0x0001, + 0x2336: 0x0001, 0x2337: 0x0001, 0x2338: 0x0001, 0x2339: 0x0001, 0x233a: 0x0001, 0x233b: 0x0001, + 0x233c: 0x0001, 0x233d: 0x0001, 0x233e: 0x0001, 0x233f: 0x0001, + // Block 0x8d, offset 0x2340 + 0x2340: 0x0001, 0x2341: 0x0001, 0x2342: 0x0001, 0x2343: 0x0001, 0x2344: 0x0001, 0x2345: 0x0001, + 0x2346: 0x0001, 0x2347: 0x0001, 0x2348: 0x0001, 0x2349: 0x0001, 0x234a: 0x0001, 0x234b: 0x0001, + 0x234c: 0x0001, 0x234d: 0x0001, 0x234e: 0x0001, 0x234f: 0x0001, 0x2350: 0x000d, 0x2351: 0x000d, + 0x2352: 0x000d, 0x2353: 0x000d, 0x2354: 0x000d, 0x2355: 0x000d, 0x2356: 0x000d, 0x2357: 0x000d, + 0x2358: 0x000d, 0x2359: 0x000d, 0x235a: 0x000d, 0x235b: 0x000d, 0x235c: 0x000d, 0x235d: 0x000d, + 0x235e: 0x000d, 0x235f: 0x000d, 0x2360: 0x000d, 0x2361: 0x000d, 0x2362: 0x000d, 0x2363: 0x000d, + 0x2364: 0x000d, 0x2365: 0x000d, 0x2366: 0x000d, 0x2367: 0x000d, 0x2368: 0x000d, 0x2369: 0x000d, + 0x236a: 0x000d, 0x236b: 0x000d, 0x236c: 0x000d, 0x236d: 0x000d, 0x236e: 0x000d, 0x236f: 0x000d, + 0x2370: 0x000d, 0x2371: 0x000d, 0x2372: 0x000d, 0x2373: 0x000d, 0x2374: 0x000d, 0x2375: 0x000d, + 0x2376: 0x000d, 0x2377: 0x000d, 0x2378: 0x000d, 0x2379: 0x000d, 0x237a: 0x000d, 0x237b: 0x000d, + 0x237c: 0x000d, 0x237d: 0x000d, 0x237e: 0x000d, 0x237f: 0x000d, + // Block 0x8e, offset 0x2380 + 0x2380: 0x000d, 0x2381: 0x000d, 0x2382: 0x000d, 0x2383: 0x000d, 0x2384: 0x000d, 0x2385: 0x000d, + 0x2386: 0x000d, 0x2387: 0x000d, 0x2388: 0x000d, 0x2389: 0x000d, 0x238a: 0x000d, 0x238b: 0x000d, + 0x238c: 0x000d, 0x238d: 0x000d, 0x238e: 0x000d, 0x238f: 0x000d, 0x2390: 0x000d, 0x2391: 0x000d, + 0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d, + 0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d, + 0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d, + 0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d, + 0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d, + 0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d, + 0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d, + 0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000a, 0x23bf: 0x000a, + // Block 0x8f, offset 0x23c0 + 0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d, + 0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d, + 0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000b, 0x23d1: 0x000b, + 0x23d2: 0x000b, 0x23d3: 0x000b, 0x23d4: 0x000b, 0x23d5: 0x000b, 0x23d6: 0x000b, 0x23d7: 0x000b, + 0x23d8: 0x000b, 0x23d9: 0x000b, 0x23da: 0x000b, 0x23db: 0x000b, 0x23dc: 0x000b, 0x23dd: 0x000b, + 0x23de: 0x000b, 0x23df: 0x000b, 0x23e0: 0x000b, 0x23e1: 0x000b, 0x23e2: 0x000b, 0x23e3: 0x000b, + 0x23e4: 0x000b, 0x23e5: 0x000b, 0x23e6: 0x000b, 0x23e7: 0x000b, 0x23e8: 0x000b, 0x23e9: 0x000b, + 0x23ea: 0x000b, 0x23eb: 0x000b, 0x23ec: 0x000b, 0x23ed: 0x000b, 0x23ee: 0x000b, 0x23ef: 0x000b, + 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d, + 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d, + 0x23fc: 0x000d, 0x23fd: 0x000a, 0x23fe: 0x000d, 0x23ff: 0x000d, + // Block 0x90, offset 0x2400 + 0x2400: 0x000c, 0x2401: 0x000c, 0x2402: 0x000c, 0x2403: 0x000c, 0x2404: 0x000c, 0x2405: 0x000c, + 0x2406: 0x000c, 0x2407: 0x000c, 0x2408: 0x000c, 0x2409: 0x000c, 0x240a: 0x000c, 0x240b: 0x000c, + 0x240c: 0x000c, 0x240d: 0x000c, 0x240e: 0x000c, 0x240f: 0x000c, 0x2410: 0x000a, 0x2411: 0x000a, + 0x2412: 0x000a, 0x2413: 0x000a, 0x2414: 0x000a, 0x2415: 0x000a, 0x2416: 0x000a, 0x2417: 0x000a, + 0x2418: 0x000a, 0x2419: 0x000a, + 0x2420: 0x000c, 0x2421: 0x000c, 0x2422: 0x000c, 0x2423: 0x000c, + 0x2424: 0x000c, 0x2425: 0x000c, 0x2426: 0x000c, 0x2427: 0x000c, 0x2428: 0x000c, 0x2429: 0x000c, + 0x242a: 0x000c, 0x242b: 0x000c, 0x242c: 0x000c, 0x242d: 0x000c, 0x242e: 0x000c, 0x242f: 0x000c, + 0x2430: 0x000a, 0x2431: 0x000a, 0x2432: 0x000a, 0x2433: 0x000a, 0x2434: 0x000a, 0x2435: 0x000a, + 0x2436: 0x000a, 0x2437: 0x000a, 0x2438: 0x000a, 0x2439: 0x000a, 0x243a: 0x000a, 0x243b: 0x000a, + 0x243c: 0x000a, 0x243d: 0x000a, 0x243e: 0x000a, 0x243f: 0x000a, + // Block 0x91, offset 0x2440 + 0x2440: 0x000a, 0x2441: 0x000a, 0x2442: 0x000a, 0x2443: 0x000a, 0x2444: 0x000a, 0x2445: 0x000a, + 0x2446: 0x000a, 0x2447: 0x000a, 0x2448: 0x000a, 0x2449: 0x000a, 0x244a: 0x000a, 0x244b: 0x000a, + 0x244c: 0x000a, 0x244d: 0x000a, 0x244e: 0x000a, 0x244f: 0x000a, 0x2450: 0x0006, 0x2451: 0x000a, + 0x2452: 0x0006, 0x2454: 0x000a, 0x2455: 0x0006, 0x2456: 0x000a, 0x2457: 0x000a, + 0x2458: 0x000a, 0x2459: 0x009a, 0x245a: 0x008a, 0x245b: 0x007a, 0x245c: 0x006a, 0x245d: 0x009a, + 0x245e: 0x008a, 0x245f: 0x0004, 0x2460: 0x000a, 0x2461: 0x000a, 0x2462: 0x0003, 0x2463: 0x0003, + 0x2464: 0x000a, 0x2465: 0x000a, 0x2466: 0x000a, 0x2468: 0x000a, 0x2469: 0x0004, + 0x246a: 0x0004, 0x246b: 0x000a, + 0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d, + 0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d, + 0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000d, 0x247f: 0x000d, + // Block 0x92, offset 0x2480 + 0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d, + 0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d, + 0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000d, 0x2490: 0x000d, 0x2491: 0x000d, + 0x2492: 0x000d, 0x2493: 0x000d, 0x2494: 0x000d, 0x2495: 0x000d, 0x2496: 0x000d, 0x2497: 0x000d, + 0x2498: 0x000d, 0x2499: 0x000d, 0x249a: 0x000d, 0x249b: 0x000d, 0x249c: 0x000d, 0x249d: 0x000d, + 0x249e: 0x000d, 0x249f: 0x000d, 0x24a0: 0x000d, 0x24a1: 0x000d, 0x24a2: 0x000d, 0x24a3: 0x000d, + 0x24a4: 0x000d, 0x24a5: 0x000d, 0x24a6: 0x000d, 0x24a7: 0x000d, 0x24a8: 0x000d, 0x24a9: 0x000d, + 0x24aa: 0x000d, 0x24ab: 0x000d, 0x24ac: 0x000d, 0x24ad: 0x000d, 0x24ae: 0x000d, 0x24af: 0x000d, + 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d, + 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d, + 0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000b, + // Block 0x93, offset 0x24c0 + 0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x0004, 0x24c4: 0x0004, 0x24c5: 0x0004, + 0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x003a, 0x24c9: 0x002a, 0x24ca: 0x000a, 0x24cb: 0x0003, + 0x24cc: 0x0006, 0x24cd: 0x0003, 0x24ce: 0x0006, 0x24cf: 0x0006, 0x24d0: 0x0002, 0x24d1: 0x0002, + 0x24d2: 0x0002, 0x24d3: 0x0002, 0x24d4: 0x0002, 0x24d5: 0x0002, 0x24d6: 0x0002, 0x24d7: 0x0002, + 0x24d8: 0x0002, 0x24d9: 0x0002, 0x24da: 0x0006, 0x24db: 0x000a, 0x24dc: 0x000a, 0x24dd: 0x000a, + 0x24de: 0x000a, 0x24df: 0x000a, 0x24e0: 0x000a, + 0x24fb: 0x005a, + 0x24fc: 0x000a, 0x24fd: 0x004a, 0x24fe: 0x000a, 0x24ff: 0x000a, + // Block 0x94, offset 0x2500 + 0x2500: 0x000a, + 0x251b: 0x005a, 0x251c: 0x000a, 0x251d: 0x004a, + 0x251e: 0x000a, 0x251f: 0x00fa, 0x2520: 0x00ea, 0x2521: 0x000a, 0x2522: 0x003a, 0x2523: 0x002a, + 0x2524: 0x000a, 0x2525: 0x000a, + // Block 0x95, offset 0x2540 + 0x2560: 0x0004, 0x2561: 0x0004, 0x2562: 0x000a, 0x2563: 0x000a, + 0x2564: 0x000a, 0x2565: 0x0004, 0x2566: 0x0004, 0x2568: 0x000a, 0x2569: 0x000a, + 0x256a: 0x000a, 0x256b: 0x000a, 0x256c: 0x000a, 0x256d: 0x000a, 0x256e: 0x000a, + 0x2570: 0x000b, 0x2571: 0x000b, 0x2572: 0x000b, 0x2573: 0x000b, 0x2574: 0x000b, 0x2575: 0x000b, + 0x2576: 0x000b, 0x2577: 0x000b, 0x2578: 0x000b, 0x2579: 0x000a, 0x257a: 0x000a, 0x257b: 0x000a, + 0x257c: 0x000a, 0x257d: 0x000a, 0x257e: 0x000b, 0x257f: 0x000b, + // Block 0x96, offset 0x2580 + 0x2581: 0x000a, + // Block 0x97, offset 0x25c0 + 0x25c0: 0x000a, 0x25c1: 0x000a, 0x25c2: 0x000a, 0x25c3: 0x000a, 0x25c4: 0x000a, 0x25c5: 0x000a, + 0x25c6: 0x000a, 0x25c7: 0x000a, 0x25c8: 0x000a, 0x25c9: 0x000a, 0x25ca: 0x000a, 0x25cb: 0x000a, + 0x25cc: 0x000a, 0x25d0: 0x000a, 0x25d1: 0x000a, + 0x25d2: 0x000a, 0x25d3: 0x000a, 0x25d4: 0x000a, 0x25d5: 0x000a, 0x25d6: 0x000a, 0x25d7: 0x000a, + 0x25d8: 0x000a, 0x25d9: 0x000a, 0x25da: 0x000a, 0x25db: 0x000a, + 0x25e0: 0x000a, + // Block 0x98, offset 0x2600 + 0x263d: 0x000c, + // Block 0x99, offset 0x2640 + 0x2660: 0x000c, 0x2661: 0x0002, 0x2662: 0x0002, 0x2663: 0x0002, + 0x2664: 0x0002, 0x2665: 0x0002, 0x2666: 0x0002, 0x2667: 0x0002, 0x2668: 0x0002, 0x2669: 0x0002, + 0x266a: 0x0002, 0x266b: 0x0002, 0x266c: 0x0002, 0x266d: 0x0002, 0x266e: 0x0002, 0x266f: 0x0002, + 0x2670: 0x0002, 0x2671: 0x0002, 0x2672: 0x0002, 0x2673: 0x0002, 0x2674: 0x0002, 0x2675: 0x0002, + 0x2676: 0x0002, 0x2677: 0x0002, 0x2678: 0x0002, 0x2679: 0x0002, 0x267a: 0x0002, 0x267b: 0x0002, + // Block 0x9a, offset 0x2680 + 0x26b6: 0x000c, 0x26b7: 0x000c, 0x26b8: 0x000c, 0x26b9: 0x000c, 0x26ba: 0x000c, + // Block 0x9b, offset 0x26c0 + 0x26c0: 0x0001, 0x26c1: 0x0001, 0x26c2: 0x0001, 0x26c3: 0x0001, 0x26c4: 0x0001, 0x26c5: 0x0001, + 0x26c6: 0x0001, 0x26c7: 0x0001, 0x26c8: 0x0001, 0x26c9: 0x0001, 0x26ca: 0x0001, 0x26cb: 0x0001, + 0x26cc: 0x0001, 0x26cd: 0x0001, 0x26ce: 0x0001, 0x26cf: 0x0001, 0x26d0: 0x0001, 0x26d1: 0x0001, + 0x26d2: 0x0001, 0x26d3: 0x0001, 0x26d4: 0x0001, 0x26d5: 0x0001, 0x26d6: 0x0001, 0x26d7: 0x0001, + 0x26d8: 0x0001, 0x26d9: 0x0001, 0x26da: 0x0001, 0x26db: 0x0001, 0x26dc: 0x0001, 0x26dd: 0x0001, + 0x26de: 0x0001, 0x26df: 0x0001, 0x26e0: 0x0001, 0x26e1: 0x0001, 0x26e2: 0x0001, 0x26e3: 0x0001, + 0x26e4: 0x0001, 0x26e5: 0x0001, 0x26e6: 0x0001, 0x26e7: 0x0001, 0x26e8: 0x0001, 0x26e9: 0x0001, + 0x26ea: 0x0001, 0x26eb: 0x0001, 0x26ec: 0x0001, 0x26ed: 0x0001, 0x26ee: 0x0001, 0x26ef: 0x0001, + 0x26f0: 0x0001, 0x26f1: 0x0001, 0x26f2: 0x0001, 0x26f3: 0x0001, 0x26f4: 0x0001, 0x26f5: 0x0001, + 0x26f6: 0x0001, 0x26f7: 0x0001, 0x26f8: 0x0001, 0x26f9: 0x0001, 0x26fa: 0x0001, 0x26fb: 0x0001, + 0x26fc: 0x0001, 0x26fd: 0x0001, 0x26fe: 0x0001, 0x26ff: 0x0001, + // Block 0x9c, offset 0x2700 + 0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001, + 0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001, + 0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001, + 0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001, + 0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001, + 0x271e: 0x0001, 0x271f: 0x000a, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001, + 0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001, + 0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001, + 0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001, + 0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001, + 0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001, + // Block 0x9d, offset 0x2740 + 0x2740: 0x0001, 0x2741: 0x000c, 0x2742: 0x000c, 0x2743: 0x000c, 0x2744: 0x0001, 0x2745: 0x000c, + 0x2746: 0x000c, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001, + 0x274c: 0x000c, 0x274d: 0x000c, 0x274e: 0x000c, 0x274f: 0x000c, 0x2750: 0x0001, 0x2751: 0x0001, + 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001, + 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001, + 0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001, + 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001, + 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001, + 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001, + 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x000c, 0x2779: 0x000c, 0x277a: 0x000c, 0x277b: 0x0001, + 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x000c, + // Block 0x9e, offset 0x2780 + 0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001, + 0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001, + 0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001, + 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001, + 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001, + 0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001, + 0x27a4: 0x0001, 0x27a5: 0x000c, 0x27a6: 0x000c, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001, + 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001, + 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001, + 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001, + 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001, + // Block 0x9f, offset 0x27c0 + 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001, + 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001, + 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001, + 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001, + 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001, + 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001, + 0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001, + 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001, + 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001, + 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x000a, 0x27fa: 0x000a, 0x27fb: 0x000a, + 0x27fc: 0x000a, 0x27fd: 0x000a, 0x27fe: 0x000a, 0x27ff: 0x000a, + // Block 0xa0, offset 0x2800 + 0x2800: 0x000d, 0x2801: 0x000d, 0x2802: 0x000d, 0x2803: 0x000d, 0x2804: 0x000d, 0x2805: 0x000d, + 0x2806: 0x000d, 0x2807: 0x000d, 0x2808: 0x000d, 0x2809: 0x000d, 0x280a: 0x000d, 0x280b: 0x000d, + 0x280c: 0x000d, 0x280d: 0x000d, 0x280e: 0x000d, 0x280f: 0x000d, 0x2810: 0x000d, 0x2811: 0x000d, + 0x2812: 0x000d, 0x2813: 0x000d, 0x2814: 0x000d, 0x2815: 0x000d, 0x2816: 0x000d, 0x2817: 0x000d, + 0x2818: 0x000d, 0x2819: 0x000d, 0x281a: 0x000d, 0x281b: 0x000d, 0x281c: 0x000d, 0x281d: 0x000d, + 0x281e: 0x000d, 0x281f: 0x000d, 0x2820: 0x000d, 0x2821: 0x000d, 0x2822: 0x000d, 0x2823: 0x000d, + 0x2824: 0x000c, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x000c, 0x2828: 0x000d, 0x2829: 0x000d, + 0x282a: 0x000d, 0x282b: 0x000d, 0x282c: 0x000d, 0x282d: 0x000d, 0x282e: 0x000d, 0x282f: 0x000d, + 0x2830: 0x0005, 0x2831: 0x0005, 0x2832: 0x0005, 0x2833: 0x0005, 0x2834: 0x0005, 0x2835: 0x0005, + 0x2836: 0x0005, 0x2837: 0x0005, 0x2838: 0x0005, 0x2839: 0x0005, 0x283a: 0x000d, 0x283b: 0x000d, + 0x283c: 0x000d, 0x283d: 0x000d, 0x283e: 0x000d, 0x283f: 0x000d, + // Block 0xa1, offset 0x2840 + 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001, + 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001, + 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001, + 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001, + 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001, + 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0005, 0x2861: 0x0005, 0x2862: 0x0005, 0x2863: 0x0005, + 0x2864: 0x0005, 0x2865: 0x0005, 0x2866: 0x0005, 0x2867: 0x0005, 0x2868: 0x0005, 0x2869: 0x0005, + 0x286a: 0x0005, 0x286b: 0x0005, 0x286c: 0x0005, 0x286d: 0x0005, 0x286e: 0x0005, 0x286f: 0x0005, + 0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005, + 0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x0005, 0x287b: 0x0005, + 0x287c: 0x0005, 0x287d: 0x0005, 0x287e: 0x0005, 0x287f: 0x0001, + // Block 0xa2, offset 0x2880 + 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001, + 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001, + 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001, + 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001, + 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001, + 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001, + 0x28a4: 0x0001, 0x28a5: 0x0001, 0x28a6: 0x0001, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001, + 0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001, + 0x28b0: 0x000d, 0x28b1: 0x000d, 0x28b2: 0x000d, 0x28b3: 0x000d, 0x28b4: 0x000d, 0x28b5: 0x000d, + 0x28b6: 0x000d, 0x28b7: 0x000d, 0x28b8: 0x000d, 0x28b9: 0x000d, 0x28ba: 0x000d, 0x28bb: 0x000d, + 0x28bc: 0x000d, 0x28bd: 0x000d, 0x28be: 0x000d, 0x28bf: 0x000d, + // Block 0xa3, offset 0x28c0 + 0x28c0: 0x000d, 0x28c1: 0x000d, 0x28c2: 0x000d, 0x28c3: 0x000d, 0x28c4: 0x000d, 0x28c5: 0x000d, + 0x28c6: 0x000c, 0x28c7: 0x000c, 0x28c8: 0x000c, 0x28c9: 0x000c, 0x28ca: 0x000c, 0x28cb: 0x000c, + 0x28cc: 0x000c, 0x28cd: 0x000c, 0x28ce: 0x000c, 0x28cf: 0x000c, 0x28d0: 0x000c, 0x28d1: 0x000d, + 0x28d2: 0x000d, 0x28d3: 0x000d, 0x28d4: 0x000d, 0x28d5: 0x000d, 0x28d6: 0x000d, 0x28d7: 0x000d, + 0x28d8: 0x000d, 0x28d9: 0x000d, 0x28da: 0x000d, 0x28db: 0x000d, 0x28dc: 0x000d, 0x28dd: 0x000d, + 0x28de: 0x000d, 0x28df: 0x000d, 0x28e0: 0x000d, 0x28e1: 0x000d, 0x28e2: 0x000d, 0x28e3: 0x000d, + 0x28e4: 0x000d, 0x28e5: 0x000d, 0x28e6: 0x000d, 0x28e7: 0x000d, 0x28e8: 0x000d, 0x28e9: 0x000d, + 0x28ea: 0x000d, 0x28eb: 0x000d, 0x28ec: 0x000d, 0x28ed: 0x000d, 0x28ee: 0x000d, 0x28ef: 0x000d, + 0x28f0: 0x0001, 0x28f1: 0x0001, 0x28f2: 0x0001, 0x28f3: 0x0001, 0x28f4: 0x0001, 0x28f5: 0x0001, + 0x28f6: 0x0001, 0x28f7: 0x0001, 0x28f8: 0x0001, 0x28f9: 0x0001, 0x28fa: 0x0001, 0x28fb: 0x0001, + 0x28fc: 0x0001, 0x28fd: 0x0001, 0x28fe: 0x0001, 0x28ff: 0x0001, + // Block 0xa4, offset 0x2900 + 0x2901: 0x000c, + 0x2938: 0x000c, 0x2939: 0x000c, 0x293a: 0x000c, 0x293b: 0x000c, + 0x293c: 0x000c, 0x293d: 0x000c, 0x293e: 0x000c, 0x293f: 0x000c, + // Block 0xa5, offset 0x2940 + 0x2940: 0x000c, 0x2941: 0x000c, 0x2942: 0x000c, 0x2943: 0x000c, 0x2944: 0x000c, 0x2945: 0x000c, + 0x2946: 0x000c, + 0x2952: 0x000a, 0x2953: 0x000a, 0x2954: 0x000a, 0x2955: 0x000a, 0x2956: 0x000a, 0x2957: 0x000a, + 0x2958: 0x000a, 0x2959: 0x000a, 0x295a: 0x000a, 0x295b: 0x000a, 0x295c: 0x000a, 0x295d: 0x000a, + 0x295e: 0x000a, 0x295f: 0x000a, 0x2960: 0x000a, 0x2961: 0x000a, 0x2962: 0x000a, 0x2963: 0x000a, + 0x2964: 0x000a, 0x2965: 0x000a, + 0x297f: 0x000c, + // Block 0xa6, offset 0x2980 + 0x2980: 0x000c, 0x2981: 0x000c, + 0x29b3: 0x000c, 0x29b4: 0x000c, 0x29b5: 0x000c, + 0x29b6: 0x000c, 0x29b9: 0x000c, 0x29ba: 0x000c, + // Block 0xa7, offset 0x29c0 + 0x29c0: 0x000c, 0x29c1: 0x000c, 0x29c2: 0x000c, + 0x29e7: 0x000c, 0x29e8: 0x000c, 0x29e9: 0x000c, + 0x29ea: 0x000c, 0x29eb: 0x000c, 0x29ed: 0x000c, 0x29ee: 0x000c, 0x29ef: 0x000c, + 0x29f0: 0x000c, 0x29f1: 0x000c, 0x29f2: 0x000c, 0x29f3: 0x000c, 0x29f4: 0x000c, + // Block 0xa8, offset 0x2a00 + 0x2a33: 0x000c, + // Block 0xa9, offset 0x2a40 + 0x2a40: 0x000c, 0x2a41: 0x000c, + 0x2a76: 0x000c, 0x2a77: 0x000c, 0x2a78: 0x000c, 0x2a79: 0x000c, 0x2a7a: 0x000c, 0x2a7b: 0x000c, + 0x2a7c: 0x000c, 0x2a7d: 0x000c, 0x2a7e: 0x000c, + // Block 0xaa, offset 0x2a80 + 0x2a89: 0x000c, 0x2a8a: 0x000c, 0x2a8b: 0x000c, + 0x2a8c: 0x000c, + // Block 0xab, offset 0x2ac0 + 0x2aef: 0x000c, + 0x2af0: 0x000c, 0x2af1: 0x000c, 0x2af4: 0x000c, + 0x2af6: 0x000c, 0x2af7: 0x000c, + 0x2afe: 0x000c, + // Block 0xac, offset 0x2b00 + 0x2b1f: 0x000c, 0x2b23: 0x000c, + 0x2b24: 0x000c, 0x2b25: 0x000c, 0x2b26: 0x000c, 0x2b27: 0x000c, 0x2b28: 0x000c, 0x2b29: 0x000c, + 0x2b2a: 0x000c, + // Block 0xad, offset 0x2b40 + 0x2b40: 0x000c, + 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c, + 0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c, + 0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c, + // Block 0xae, offset 0x2b80 + 0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c, + 0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c, + // Block 0xaf, offset 0x2bc0 + 0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c, + 0x2bc6: 0x000c, + 0x2bde: 0x000c, + // Block 0xb0, offset 0x2c00 + 0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c, + 0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c, + 0x2c3f: 0x000c, + // Block 0xb1, offset 0x2c40 + 0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c, + // Block 0xb2, offset 0x2c80 + 0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c, + 0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c, + // Block 0xb3, offset 0x2cc0 + 0x2cc0: 0x000c, + 0x2cdc: 0x000c, 0x2cdd: 0x000c, + // Block 0xb4, offset 0x2d00 + 0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c, + 0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c, + 0x2d3d: 0x000c, 0x2d3f: 0x000c, + // Block 0xb5, offset 0x2d40 + 0x2d40: 0x000c, + 0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a, + 0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a, + 0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a, + // Block 0xb6, offset 0x2d80 + 0x2dab: 0x000c, 0x2dad: 0x000c, + 0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c, + 0x2db7: 0x000c, + // Block 0xb7, offset 0x2dc0 + 0x2ddd: 0x000c, + 0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c, + 0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c, + 0x2dea: 0x000c, 0x2deb: 0x000c, + // Block 0xb8, offset 0x2e00 + 0x2e2f: 0x000c, + 0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c, + 0x2e36: 0x000c, 0x2e37: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c, + // Block 0xb9, offset 0x2e40 + 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c, + 0x2e5a: 0x000c, 0x2e5b: 0x000c, + 0x2e60: 0x000c, + // Block 0xba, offset 0x2e80 + 0x2e81: 0x000c, 0x2e82: 0x000c, 0x2e83: 0x000c, 0x2e84: 0x000c, 0x2e85: 0x000c, + 0x2e86: 0x000c, 0x2e89: 0x000c, 0x2e8a: 0x000c, + 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c, + 0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2ebb: 0x000c, + 0x2ebc: 0x000c, 0x2ebd: 0x000c, 0x2ebe: 0x000c, + // Block 0xbb, offset 0x2ec0 + 0x2ec7: 0x000c, + 0x2ed1: 0x000c, + 0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c, + 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c, + // Block 0xbc, offset 0x2f00 + 0x2f0a: 0x000c, 0x2f0b: 0x000c, + 0x2f0c: 0x000c, 0x2f0d: 0x000c, 0x2f0e: 0x000c, 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c, + 0x2f12: 0x000c, 0x2f13: 0x000c, 0x2f14: 0x000c, 0x2f15: 0x000c, 0x2f16: 0x000c, + 0x2f18: 0x000c, 0x2f19: 0x000c, + // Block 0xbd, offset 0x2f40 + 0x2f70: 0x000c, 0x2f71: 0x000c, 0x2f72: 0x000c, 0x2f73: 0x000c, 0x2f74: 0x000c, 0x2f75: 0x000c, + 0x2f76: 0x000c, 0x2f78: 0x000c, 0x2f79: 0x000c, 0x2f7a: 0x000c, 0x2f7b: 0x000c, + 0x2f7c: 0x000c, 0x2f7d: 0x000c, + // Block 0xbe, offset 0x2f80 + 0x2f92: 0x000c, 0x2f93: 0x000c, 0x2f94: 0x000c, 0x2f95: 0x000c, 0x2f96: 0x000c, 0x2f97: 0x000c, + 0x2f98: 0x000c, 0x2f99: 0x000c, 0x2f9a: 0x000c, 0x2f9b: 0x000c, 0x2f9c: 0x000c, 0x2f9d: 0x000c, + 0x2f9e: 0x000c, 0x2f9f: 0x000c, 0x2fa0: 0x000c, 0x2fa1: 0x000c, 0x2fa2: 0x000c, 0x2fa3: 0x000c, + 0x2fa4: 0x000c, 0x2fa5: 0x000c, 0x2fa6: 0x000c, 0x2fa7: 0x000c, + 0x2faa: 0x000c, 0x2fab: 0x000c, 0x2fac: 0x000c, 0x2fad: 0x000c, 0x2fae: 0x000c, 0x2faf: 0x000c, + 0x2fb0: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb5: 0x000c, + 0x2fb6: 0x000c, + // Block 0xbf, offset 0x2fc0 + 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c, + 0x2ff6: 0x000c, 0x2ffa: 0x000c, + 0x2ffc: 0x000c, 0x2ffd: 0x000c, 0x2fff: 0x000c, + // Block 0xc0, offset 0x3000 + 0x3000: 0x000c, 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c, + 0x3007: 0x000c, + // Block 0xc1, offset 0x3040 + 0x3050: 0x000c, 0x3051: 0x000c, + 0x3055: 0x000c, 0x3057: 0x000c, + // Block 0xc2, offset 0x3080 + 0x30b3: 0x000c, 0x30b4: 0x000c, + // Block 0xc3, offset 0x30c0 + 0x30d5: 0x000a, 0x30d6: 0x000a, 0x30d7: 0x000a, + 0x30d8: 0x000a, 0x30d9: 0x000a, 0x30da: 0x000a, 0x30db: 0x000a, 0x30dc: 0x000a, 0x30dd: 0x0004, + 0x30de: 0x0004, 0x30df: 0x0004, 0x30e0: 0x0004, 0x30e1: 0x000a, 0x30e2: 0x000a, 0x30e3: 0x000a, + 0x30e4: 0x000a, 0x30e5: 0x000a, 0x30e6: 0x000a, 0x30e7: 0x000a, 0x30e8: 0x000a, 0x30e9: 0x000a, + 0x30ea: 0x000a, 0x30eb: 0x000a, 0x30ec: 0x000a, 0x30ed: 0x000a, 0x30ee: 0x000a, 0x30ef: 0x000a, + 0x30f0: 0x000a, 0x30f1: 0x000a, + // Block 0xc4, offset 0x3100 + 0x3130: 0x000c, 0x3131: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3134: 0x000c, + // Block 0xc5, offset 0x3140 + 0x3170: 0x000c, 0x3171: 0x000c, 0x3172: 0x000c, 0x3173: 0x000c, 0x3174: 0x000c, 0x3175: 0x000c, + 0x3176: 0x000c, + // Block 0xc6, offset 0x3180 + 0x318f: 0x000c, + // Block 0xc7, offset 0x31c0 + 0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c, + 0x31d2: 0x000c, + // Block 0xc8, offset 0x3200 + 0x3222: 0x000a, + // Block 0xc9, offset 0x3240 + 0x325d: 0x000c, + 0x325e: 0x000c, 0x3260: 0x000b, 0x3261: 0x000b, 0x3262: 0x000b, 0x3263: 0x000b, + // Block 0xca, offset 0x3280 + 0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c, + 0x32b3: 0x000b, 0x32b4: 0x000b, 0x32b5: 0x000b, + 0x32b6: 0x000b, 0x32b7: 0x000b, 0x32b8: 0x000b, 0x32b9: 0x000b, 0x32ba: 0x000b, 0x32bb: 0x000c, + 0x32bc: 0x000c, 0x32bd: 0x000c, 0x32be: 0x000c, 0x32bf: 0x000c, + // Block 0xcb, offset 0x32c0 + 0x32c0: 0x000c, 0x32c1: 0x000c, 0x32c2: 0x000c, 0x32c5: 0x000c, + 0x32c6: 0x000c, 0x32c7: 0x000c, 0x32c8: 0x000c, 0x32c9: 0x000c, 0x32ca: 0x000c, 0x32cb: 0x000c, + 0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c, + // Block 0xcc, offset 0x3300 + 0x3300: 0x000a, 0x3301: 0x000a, 0x3302: 0x000c, 0x3303: 0x000c, 0x3304: 0x000c, 0x3305: 0x000a, + // Block 0xcd, offset 0x3340 + 0x3340: 0x000a, 0x3341: 0x000a, 0x3342: 0x000a, 0x3343: 0x000a, 0x3344: 0x000a, 0x3345: 0x000a, + 0x3346: 0x000a, 0x3347: 0x000a, 0x3348: 0x000a, 0x3349: 0x000a, 0x334a: 0x000a, 0x334b: 0x000a, + 0x334c: 0x000a, 0x334d: 0x000a, 0x334e: 0x000a, 0x334f: 0x000a, 0x3350: 0x000a, 0x3351: 0x000a, + 0x3352: 0x000a, 0x3353: 0x000a, 0x3354: 0x000a, 0x3355: 0x000a, 0x3356: 0x000a, + // Block 0xce, offset 0x3380 + 0x339b: 0x000a, + // Block 0xcf, offset 0x33c0 + 0x33d5: 0x000a, + // Block 0xd0, offset 0x3400 + 0x340f: 0x000a, + // Block 0xd1, offset 0x3440 + 0x3449: 0x000a, + // Block 0xd2, offset 0x3480 + 0x3483: 0x000a, + 0x348e: 0x0002, 0x348f: 0x0002, 0x3490: 0x0002, 0x3491: 0x0002, + 0x3492: 0x0002, 0x3493: 0x0002, 0x3494: 0x0002, 0x3495: 0x0002, 0x3496: 0x0002, 0x3497: 0x0002, + 0x3498: 0x0002, 0x3499: 0x0002, 0x349a: 0x0002, 0x349b: 0x0002, 0x349c: 0x0002, 0x349d: 0x0002, + 0x349e: 0x0002, 0x349f: 0x0002, 0x34a0: 0x0002, 0x34a1: 0x0002, 0x34a2: 0x0002, 0x34a3: 0x0002, + 0x34a4: 0x0002, 0x34a5: 0x0002, 0x34a6: 0x0002, 0x34a7: 0x0002, 0x34a8: 0x0002, 0x34a9: 0x0002, + 0x34aa: 0x0002, 0x34ab: 0x0002, 0x34ac: 0x0002, 0x34ad: 0x0002, 0x34ae: 0x0002, 0x34af: 0x0002, + 0x34b0: 0x0002, 0x34b1: 0x0002, 0x34b2: 0x0002, 0x34b3: 0x0002, 0x34b4: 0x0002, 0x34b5: 0x0002, + 0x34b6: 0x0002, 0x34b7: 0x0002, 0x34b8: 0x0002, 0x34b9: 0x0002, 0x34ba: 0x0002, 0x34bb: 0x0002, + 0x34bc: 0x0002, 0x34bd: 0x0002, 0x34be: 0x0002, 0x34bf: 0x0002, + // Block 0xd3, offset 0x34c0 + 0x34c0: 0x000c, 0x34c1: 0x000c, 0x34c2: 0x000c, 0x34c3: 0x000c, 0x34c4: 0x000c, 0x34c5: 0x000c, + 0x34c6: 0x000c, 0x34c7: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c, + 0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c, + 0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c, 0x34d6: 0x000c, 0x34d7: 0x000c, + 0x34d8: 0x000c, 0x34d9: 0x000c, 0x34da: 0x000c, 0x34db: 0x000c, 0x34dc: 0x000c, 0x34dd: 0x000c, + 0x34de: 0x000c, 0x34df: 0x000c, 0x34e0: 0x000c, 0x34e1: 0x000c, 0x34e2: 0x000c, 0x34e3: 0x000c, + 0x34e4: 0x000c, 0x34e5: 0x000c, 0x34e6: 0x000c, 0x34e7: 0x000c, 0x34e8: 0x000c, 0x34e9: 0x000c, + 0x34ea: 0x000c, 0x34eb: 0x000c, 0x34ec: 0x000c, 0x34ed: 0x000c, 0x34ee: 0x000c, 0x34ef: 0x000c, + 0x34f0: 0x000c, 0x34f1: 0x000c, 0x34f2: 0x000c, 0x34f3: 0x000c, 0x34f4: 0x000c, 0x34f5: 0x000c, + 0x34f6: 0x000c, 0x34fb: 0x000c, + 0x34fc: 0x000c, 0x34fd: 0x000c, 0x34fe: 0x000c, 0x34ff: 0x000c, + // Block 0xd4, offset 0x3500 + 0x3500: 0x000c, 0x3501: 0x000c, 0x3502: 0x000c, 0x3503: 0x000c, 0x3504: 0x000c, 0x3505: 0x000c, + 0x3506: 0x000c, 0x3507: 0x000c, 0x3508: 0x000c, 0x3509: 0x000c, 0x350a: 0x000c, 0x350b: 0x000c, + 0x350c: 0x000c, 0x350d: 0x000c, 0x350e: 0x000c, 0x350f: 0x000c, 0x3510: 0x000c, 0x3511: 0x000c, + 0x3512: 0x000c, 0x3513: 0x000c, 0x3514: 0x000c, 0x3515: 0x000c, 0x3516: 0x000c, 0x3517: 0x000c, + 0x3518: 0x000c, 0x3519: 0x000c, 0x351a: 0x000c, 0x351b: 0x000c, 0x351c: 0x000c, 0x351d: 0x000c, + 0x351e: 0x000c, 0x351f: 0x000c, 0x3520: 0x000c, 0x3521: 0x000c, 0x3522: 0x000c, 0x3523: 0x000c, + 0x3524: 0x000c, 0x3525: 0x000c, 0x3526: 0x000c, 0x3527: 0x000c, 0x3528: 0x000c, 0x3529: 0x000c, + 0x352a: 0x000c, 0x352b: 0x000c, 0x352c: 0x000c, + 0x3535: 0x000c, + // Block 0xd5, offset 0x3540 + 0x3544: 0x000c, + 0x355b: 0x000c, 0x355c: 0x000c, 0x355d: 0x000c, + 0x355e: 0x000c, 0x355f: 0x000c, 0x3561: 0x000c, 0x3562: 0x000c, 0x3563: 0x000c, + 0x3564: 0x000c, 0x3565: 0x000c, 0x3566: 0x000c, 0x3567: 0x000c, 0x3568: 0x000c, 0x3569: 0x000c, + 0x356a: 0x000c, 0x356b: 0x000c, 0x356c: 0x000c, 0x356d: 0x000c, 0x356e: 0x000c, 0x356f: 0x000c, + // Block 0xd6, offset 0x3580 + 0x3580: 0x000c, 0x3581: 0x000c, 0x3582: 0x000c, 0x3583: 0x000c, 0x3584: 0x000c, 0x3585: 0x000c, + 0x3586: 0x000c, 0x3588: 0x000c, 0x3589: 0x000c, 0x358a: 0x000c, 0x358b: 0x000c, + 0x358c: 0x000c, 0x358d: 0x000c, 0x358e: 0x000c, 0x358f: 0x000c, 0x3590: 0x000c, 0x3591: 0x000c, + 0x3592: 0x000c, 0x3593: 0x000c, 0x3594: 0x000c, 0x3595: 0x000c, 0x3596: 0x000c, 0x3597: 0x000c, + 0x3598: 0x000c, 0x359b: 0x000c, 0x359c: 0x000c, 0x359d: 0x000c, + 0x359e: 0x000c, 0x359f: 0x000c, 0x35a0: 0x000c, 0x35a1: 0x000c, 0x35a3: 0x000c, + 0x35a4: 0x000c, 0x35a6: 0x000c, 0x35a7: 0x000c, 0x35a8: 0x000c, 0x35a9: 0x000c, + 0x35aa: 0x000c, + // Block 0xd7, offset 0x35c0 + 0x35ec: 0x000c, 0x35ed: 0x000c, 0x35ee: 0x000c, 0x35ef: 0x000c, + 0x35ff: 0x0004, + // Block 0xd8, offset 0x3600 + 0x3600: 0x0001, 0x3601: 0x0001, 0x3602: 0x0001, 0x3603: 0x0001, 0x3604: 0x0001, 0x3605: 0x0001, + 0x3606: 0x0001, 0x3607: 0x0001, 0x3608: 0x0001, 0x3609: 0x0001, 0x360a: 0x0001, 0x360b: 0x0001, + 0x360c: 0x0001, 0x360d: 0x0001, 0x360e: 0x0001, 0x360f: 0x0001, 0x3610: 0x000c, 0x3611: 0x000c, + 0x3612: 0x000c, 0x3613: 0x000c, 0x3614: 0x000c, 0x3615: 0x000c, 0x3616: 0x000c, 0x3617: 0x0001, + 0x3618: 0x0001, 0x3619: 0x0001, 0x361a: 0x0001, 0x361b: 0x0001, 0x361c: 0x0001, 0x361d: 0x0001, + 0x361e: 0x0001, 0x361f: 0x0001, 0x3620: 0x0001, 0x3621: 0x0001, 0x3622: 0x0001, 0x3623: 0x0001, + 0x3624: 0x0001, 0x3625: 0x0001, 0x3626: 0x0001, 0x3627: 0x0001, 0x3628: 0x0001, 0x3629: 0x0001, + 0x362a: 0x0001, 0x362b: 0x0001, 0x362c: 0x0001, 0x362d: 0x0001, 0x362e: 0x0001, 0x362f: 0x0001, + 0x3630: 0x0001, 0x3631: 0x0001, 0x3632: 0x0001, 0x3633: 0x0001, 0x3634: 0x0001, 0x3635: 0x0001, + 0x3636: 0x0001, 0x3637: 0x0001, 0x3638: 0x0001, 0x3639: 0x0001, 0x363a: 0x0001, 0x363b: 0x0001, + 0x363c: 0x0001, 0x363d: 0x0001, 0x363e: 0x0001, 0x363f: 0x0001, + // Block 0xd9, offset 0x3640 + 0x3640: 0x0001, 0x3641: 0x0001, 0x3642: 0x0001, 0x3643: 0x0001, 0x3644: 0x000c, 0x3645: 0x000c, + 0x3646: 0x000c, 0x3647: 0x000c, 0x3648: 0x000c, 0x3649: 0x000c, 0x364a: 0x000c, 0x364b: 0x0001, + 0x364c: 0x0001, 0x364d: 0x0001, 0x364e: 0x0001, 0x364f: 0x0001, 0x3650: 0x0001, 0x3651: 0x0001, + 0x3652: 0x0001, 0x3653: 0x0001, 0x3654: 0x0001, 0x3655: 0x0001, 0x3656: 0x0001, 0x3657: 0x0001, + 0x3658: 0x0001, 0x3659: 0x0001, 0x365a: 0x0001, 0x365b: 0x0001, 0x365c: 0x0001, 0x365d: 0x0001, + 0x365e: 0x0001, 0x365f: 0x0001, 0x3660: 0x0001, 0x3661: 0x0001, 0x3662: 0x0001, 0x3663: 0x0001, + 0x3664: 0x0001, 0x3665: 0x0001, 0x3666: 0x0001, 0x3667: 0x0001, 0x3668: 0x0001, 0x3669: 0x0001, + 0x366a: 0x0001, 0x366b: 0x0001, 0x366c: 0x0001, 0x366d: 0x0001, 0x366e: 0x0001, 0x366f: 0x0001, + 0x3670: 0x0001, 0x3671: 0x0001, 0x3672: 0x0001, 0x3673: 0x0001, 0x3674: 0x0001, 0x3675: 0x0001, + 0x3676: 0x0001, 0x3677: 0x0001, 0x3678: 0x0001, 0x3679: 0x0001, 0x367a: 0x0001, 0x367b: 0x0001, + 0x367c: 0x0001, 0x367d: 0x0001, 0x367e: 0x0001, 0x367f: 0x0001, + // Block 0xda, offset 0x3680 + 0x3680: 0x000d, 0x3681: 0x000d, 0x3682: 0x000d, 0x3683: 0x000d, 0x3684: 0x000d, 0x3685: 0x000d, + 0x3686: 0x000d, 0x3687: 0x000d, 0x3688: 0x000d, 0x3689: 0x000d, 0x368a: 0x000d, 0x368b: 0x000d, + 0x368c: 0x000d, 0x368d: 0x000d, 0x368e: 0x000d, 0x368f: 0x000d, 0x3690: 0x0001, 0x3691: 0x0001, + 0x3692: 0x0001, 0x3693: 0x0001, 0x3694: 0x0001, 0x3695: 0x0001, 0x3696: 0x0001, 0x3697: 0x0001, + 0x3698: 0x0001, 0x3699: 0x0001, 0x369a: 0x0001, 0x369b: 0x0001, 0x369c: 0x0001, 0x369d: 0x0001, + 0x369e: 0x0001, 0x369f: 0x0001, 0x36a0: 0x0001, 0x36a1: 0x0001, 0x36a2: 0x0001, 0x36a3: 0x0001, + 0x36a4: 0x0001, 0x36a5: 0x0001, 0x36a6: 0x0001, 0x36a7: 0x0001, 0x36a8: 0x0001, 0x36a9: 0x0001, + 0x36aa: 0x0001, 0x36ab: 0x0001, 0x36ac: 0x0001, 0x36ad: 0x0001, 0x36ae: 0x0001, 0x36af: 0x0001, + 0x36b0: 0x0001, 0x36b1: 0x0001, 0x36b2: 0x0001, 0x36b3: 0x0001, 0x36b4: 0x0001, 0x36b5: 0x0001, + 0x36b6: 0x0001, 0x36b7: 0x0001, 0x36b8: 0x0001, 0x36b9: 0x0001, 0x36ba: 0x0001, 0x36bb: 0x0001, + 0x36bc: 0x0001, 0x36bd: 0x0001, 0x36be: 0x0001, 0x36bf: 0x0001, + // Block 0xdb, offset 0x36c0 + 0x36c0: 0x000d, 0x36c1: 0x000d, 0x36c2: 0x000d, 0x36c3: 0x000d, 0x36c4: 0x000d, 0x36c5: 0x000d, + 0x36c6: 0x000d, 0x36c7: 0x000d, 0x36c8: 0x000d, 0x36c9: 0x000d, 0x36ca: 0x000d, 0x36cb: 0x000d, + 0x36cc: 0x000d, 0x36cd: 0x000d, 0x36ce: 0x000d, 0x36cf: 0x000d, 0x36d0: 0x000d, 0x36d1: 0x000d, + 0x36d2: 0x000d, 0x36d3: 0x000d, 0x36d4: 0x000d, 0x36d5: 0x000d, 0x36d6: 0x000d, 0x36d7: 0x000d, + 0x36d8: 0x000d, 0x36d9: 0x000d, 0x36da: 0x000d, 0x36db: 0x000d, 0x36dc: 0x000d, 0x36dd: 0x000d, + 0x36de: 0x000d, 0x36df: 0x000d, 0x36e0: 0x000d, 0x36e1: 0x000d, 0x36e2: 0x000d, 0x36e3: 0x000d, + 0x36e4: 0x000d, 0x36e5: 0x000d, 0x36e6: 0x000d, 0x36e7: 0x000d, 0x36e8: 0x000d, 0x36e9: 0x000d, + 0x36ea: 0x000d, 0x36eb: 0x000d, 0x36ec: 0x000d, 0x36ed: 0x000d, 0x36ee: 0x000d, 0x36ef: 0x000d, + 0x36f0: 0x000a, 0x36f1: 0x000a, 0x36f2: 0x000d, 0x36f3: 0x000d, 0x36f4: 0x000d, 0x36f5: 0x000d, + 0x36f6: 0x000d, 0x36f7: 0x000d, 0x36f8: 0x000d, 0x36f9: 0x000d, 0x36fa: 0x000d, 0x36fb: 0x000d, + 0x36fc: 0x000d, 0x36fd: 0x000d, 0x36fe: 0x000d, 0x36ff: 0x000d, + // Block 0xdc, offset 0x3700 + 0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a, + 0x3706: 0x000a, 0x3707: 0x000a, 0x3708: 0x000a, 0x3709: 0x000a, 0x370a: 0x000a, 0x370b: 0x000a, + 0x370c: 0x000a, 0x370d: 0x000a, 0x370e: 0x000a, 0x370f: 0x000a, 0x3710: 0x000a, 0x3711: 0x000a, + 0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a, + 0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a, + 0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a, + 0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a, + 0x372a: 0x000a, 0x372b: 0x000a, + 0x3730: 0x000a, 0x3731: 0x000a, 0x3732: 0x000a, 0x3733: 0x000a, 0x3734: 0x000a, 0x3735: 0x000a, + 0x3736: 0x000a, 0x3737: 0x000a, 0x3738: 0x000a, 0x3739: 0x000a, 0x373a: 0x000a, 0x373b: 0x000a, + 0x373c: 0x000a, 0x373d: 0x000a, 0x373e: 0x000a, 0x373f: 0x000a, + // Block 0xdd, offset 0x3740 + 0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a, + 0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a, + 0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a, 0x3751: 0x000a, + 0x3752: 0x000a, 0x3753: 0x000a, + 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a, + 0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a, + 0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a, + 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a, + 0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, 0x377a: 0x000a, 0x377b: 0x000a, + 0x377c: 0x000a, 0x377d: 0x000a, 0x377e: 0x000a, 0x377f: 0x000a, + // Block 0xde, offset 0x3780 + 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a, + 0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a, + 0x378c: 0x000a, 0x378d: 0x000a, 0x378e: 0x000a, 0x378f: 0x000a, 0x3791: 0x000a, + 0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a, + 0x3798: 0x000a, 0x3799: 0x000a, 0x379a: 0x000a, 0x379b: 0x000a, 0x379c: 0x000a, 0x379d: 0x000a, + 0x379e: 0x000a, 0x379f: 0x000a, 0x37a0: 0x000a, 0x37a1: 0x000a, 0x37a2: 0x000a, 0x37a3: 0x000a, + 0x37a4: 0x000a, 0x37a5: 0x000a, 0x37a6: 0x000a, 0x37a7: 0x000a, 0x37a8: 0x000a, 0x37a9: 0x000a, + 0x37aa: 0x000a, 0x37ab: 0x000a, 0x37ac: 0x000a, 0x37ad: 0x000a, 0x37ae: 0x000a, 0x37af: 0x000a, + 0x37b0: 0x000a, 0x37b1: 0x000a, 0x37b2: 0x000a, 0x37b3: 0x000a, 0x37b4: 0x000a, 0x37b5: 0x000a, + // Block 0xdf, offset 0x37c0 + 0x37c0: 0x0002, 0x37c1: 0x0002, 0x37c2: 0x0002, 0x37c3: 0x0002, 0x37c4: 0x0002, 0x37c5: 0x0002, + 0x37c6: 0x0002, 0x37c7: 0x0002, 0x37c8: 0x0002, 0x37c9: 0x0002, 0x37ca: 0x0002, 0x37cb: 0x000a, + 0x37cc: 0x000a, + 0x37ef: 0x000a, + // Block 0xe0, offset 0x3800 + 0x382a: 0x000a, 0x382b: 0x000a, 0x382c: 0x000a, + // Block 0xe1, offset 0x3840 + 0x3860: 0x000a, 0x3861: 0x000a, 0x3862: 0x000a, 0x3863: 0x000a, + 0x3864: 0x000a, 0x3865: 0x000a, + // Block 0xe2, offset 0x3880 + 0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a, + 0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a, + 0x388c: 0x000a, 0x388d: 0x000a, 0x388e: 0x000a, 0x388f: 0x000a, 0x3890: 0x000a, 0x3891: 0x000a, + 0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, + 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a, + 0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a, + 0x38aa: 0x000a, 0x38ab: 0x000a, 0x38ac: 0x000a, + 0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a, + 0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, + // Block 0xe3, offset 0x38c0 + 0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a, + 0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a, + 0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a, + 0x38d2: 0x000a, 0x38d3: 0x000a, 0x38d4: 0x000a, 0x38d5: 0x000a, 0x38d6: 0x000a, 0x38d7: 0x000a, + 0x38d8: 0x000a, + 0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a, + 0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a, + 0x38ea: 0x000a, 0x38eb: 0x000a, + // Block 0xe4, offset 0x3900 + 0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a, + 0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a, + 0x3910: 0x000a, 0x3911: 0x000a, + 0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a, + 0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a, + 0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a, 0x3923: 0x000a, + 0x3924: 0x000a, 0x3925: 0x000a, 0x3926: 0x000a, 0x3927: 0x000a, 0x3928: 0x000a, 0x3929: 0x000a, + 0x392a: 0x000a, 0x392b: 0x000a, 0x392c: 0x000a, 0x392d: 0x000a, 0x392e: 0x000a, 0x392f: 0x000a, + 0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a, + 0x3936: 0x000a, 0x3937: 0x000a, 0x3938: 0x000a, 0x3939: 0x000a, 0x393a: 0x000a, 0x393b: 0x000a, + 0x393c: 0x000a, 0x393d: 0x000a, 0x393e: 0x000a, 0x393f: 0x000a, + // Block 0xe5, offset 0x3940 + 0x3940: 0x000a, 0x3941: 0x000a, 0x3942: 0x000a, 0x3943: 0x000a, 0x3944: 0x000a, 0x3945: 0x000a, + 0x3946: 0x000a, 0x3947: 0x000a, + 0x3950: 0x000a, 0x3951: 0x000a, + 0x3952: 0x000a, 0x3953: 0x000a, 0x3954: 0x000a, 0x3955: 0x000a, 0x3956: 0x000a, 0x3957: 0x000a, + 0x3958: 0x000a, 0x3959: 0x000a, + 0x3960: 0x000a, 0x3961: 0x000a, 0x3962: 0x000a, 0x3963: 0x000a, + 0x3964: 0x000a, 0x3965: 0x000a, 0x3966: 0x000a, 0x3967: 0x000a, 0x3968: 0x000a, 0x3969: 0x000a, + 0x396a: 0x000a, 0x396b: 0x000a, 0x396c: 0x000a, 0x396d: 0x000a, 0x396e: 0x000a, 0x396f: 0x000a, + 0x3970: 0x000a, 0x3971: 0x000a, 0x3972: 0x000a, 0x3973: 0x000a, 0x3974: 0x000a, 0x3975: 0x000a, + 0x3976: 0x000a, 0x3977: 0x000a, 0x3978: 0x000a, 0x3979: 0x000a, 0x397a: 0x000a, 0x397b: 0x000a, + 0x397c: 0x000a, 0x397d: 0x000a, 0x397e: 0x000a, 0x397f: 0x000a, + // Block 0xe6, offset 0x3980 + 0x3980: 0x000a, 0x3981: 0x000a, 0x3982: 0x000a, 0x3983: 0x000a, 0x3984: 0x000a, 0x3985: 0x000a, + 0x3986: 0x000a, 0x3987: 0x000a, + 0x3990: 0x000a, 0x3991: 0x000a, + 0x3992: 0x000a, 0x3993: 0x000a, 0x3994: 0x000a, 0x3995: 0x000a, 0x3996: 0x000a, 0x3997: 0x000a, + 0x3998: 0x000a, 0x3999: 0x000a, 0x399a: 0x000a, 0x399b: 0x000a, 0x399c: 0x000a, 0x399d: 0x000a, + 0x399e: 0x000a, 0x399f: 0x000a, 0x39a0: 0x000a, 0x39a1: 0x000a, 0x39a2: 0x000a, 0x39a3: 0x000a, + 0x39a4: 0x000a, 0x39a5: 0x000a, 0x39a6: 0x000a, 0x39a7: 0x000a, 0x39a8: 0x000a, 0x39a9: 0x000a, + 0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a, + // Block 0xe7, offset 0x39c0 + 0x39c0: 0x000a, 0x39c1: 0x000a, 0x39c2: 0x000a, 0x39c3: 0x000a, 0x39c4: 0x000a, 0x39c5: 0x000a, + 0x39c6: 0x000a, 0x39c7: 0x000a, 0x39c8: 0x000a, 0x39c9: 0x000a, 0x39ca: 0x000a, 0x39cb: 0x000a, + 0x39cd: 0x000a, 0x39ce: 0x000a, 0x39cf: 0x000a, 0x39d0: 0x000a, 0x39d1: 0x000a, + 0x39d2: 0x000a, 0x39d3: 0x000a, 0x39d4: 0x000a, 0x39d5: 0x000a, 0x39d6: 0x000a, 0x39d7: 0x000a, + 0x39d8: 0x000a, 0x39d9: 0x000a, 0x39da: 0x000a, 0x39db: 0x000a, 0x39dc: 0x000a, 0x39dd: 0x000a, + 0x39de: 0x000a, 0x39df: 0x000a, 0x39e0: 0x000a, 0x39e1: 0x000a, 0x39e2: 0x000a, 0x39e3: 0x000a, + 0x39e4: 0x000a, 0x39e5: 0x000a, 0x39e6: 0x000a, 0x39e7: 0x000a, 0x39e8: 0x000a, 0x39e9: 0x000a, + 0x39ea: 0x000a, 0x39eb: 0x000a, 0x39ec: 0x000a, 0x39ed: 0x000a, 0x39ee: 0x000a, 0x39ef: 0x000a, + 0x39f0: 0x000a, 0x39f1: 0x000a, 0x39f2: 0x000a, 0x39f3: 0x000a, 0x39f4: 0x000a, 0x39f5: 0x000a, + 0x39f6: 0x000a, 0x39f7: 0x000a, 0x39f8: 0x000a, 0x39f9: 0x000a, 0x39fa: 0x000a, 0x39fb: 0x000a, + 0x39fc: 0x000a, 0x39fd: 0x000a, 0x39fe: 0x000a, 0x39ff: 0x000a, + // Block 0xe8, offset 0x3a00 + 0x3a00: 0x000a, 0x3a01: 0x000a, 0x3a02: 0x000a, 0x3a03: 0x000a, 0x3a04: 0x000a, 0x3a05: 0x000a, + 0x3a06: 0x000a, 0x3a07: 0x000a, 0x3a08: 0x000a, 0x3a09: 0x000a, 0x3a0a: 0x000a, 0x3a0b: 0x000a, + 0x3a0c: 0x000a, 0x3a0d: 0x000a, 0x3a0e: 0x000a, 0x3a0f: 0x000a, 0x3a10: 0x000a, 0x3a11: 0x000a, + 0x3a12: 0x000a, 0x3a13: 0x000a, 0x3a14: 0x000a, 0x3a15: 0x000a, 0x3a16: 0x000a, 0x3a17: 0x000a, + 0x3a18: 0x000a, 0x3a19: 0x000a, 0x3a1a: 0x000a, 0x3a1b: 0x000a, 0x3a1c: 0x000a, 0x3a1d: 0x000a, + 0x3a1e: 0x000a, 0x3a1f: 0x000a, 0x3a20: 0x000a, 0x3a21: 0x000a, 0x3a22: 0x000a, 0x3a23: 0x000a, + 0x3a24: 0x000a, 0x3a25: 0x000a, 0x3a26: 0x000a, 0x3a27: 0x000a, 0x3a28: 0x000a, 0x3a29: 0x000a, + 0x3a2a: 0x000a, 0x3a2b: 0x000a, 0x3a2c: 0x000a, 0x3a2d: 0x000a, 0x3a2e: 0x000a, 0x3a2f: 0x000a, + 0x3a30: 0x000a, 0x3a31: 0x000a, 0x3a33: 0x000a, 0x3a34: 0x000a, 0x3a35: 0x000a, + 0x3a36: 0x000a, 0x3a3a: 0x000a, 0x3a3b: 0x000a, + 0x3a3c: 0x000a, 0x3a3d: 0x000a, 0x3a3e: 0x000a, 0x3a3f: 0x000a, + // Block 0xe9, offset 0x3a40 + 0x3a40: 0x000a, 0x3a41: 0x000a, 0x3a42: 0x000a, 0x3a43: 0x000a, 0x3a44: 0x000a, 0x3a45: 0x000a, + 0x3a46: 0x000a, 0x3a47: 0x000a, 0x3a48: 0x000a, 0x3a49: 0x000a, 0x3a4a: 0x000a, 0x3a4b: 0x000a, + 0x3a4c: 0x000a, 0x3a4d: 0x000a, 0x3a4e: 0x000a, 0x3a4f: 0x000a, 0x3a50: 0x000a, 0x3a51: 0x000a, + 0x3a52: 0x000a, 0x3a53: 0x000a, 0x3a54: 0x000a, 0x3a55: 0x000a, 0x3a56: 0x000a, 0x3a57: 0x000a, + 0x3a58: 0x000a, 0x3a59: 0x000a, 0x3a5a: 0x000a, 0x3a5b: 0x000a, 0x3a5c: 0x000a, 0x3a5d: 0x000a, + 0x3a5e: 0x000a, 0x3a5f: 0x000a, 0x3a60: 0x000a, 0x3a61: 0x000a, 0x3a62: 0x000a, + 0x3a65: 0x000a, 0x3a66: 0x000a, 0x3a67: 0x000a, 0x3a68: 0x000a, 0x3a69: 0x000a, + 0x3a6a: 0x000a, 0x3a6e: 0x000a, 0x3a6f: 0x000a, + 0x3a70: 0x000a, 0x3a71: 0x000a, 0x3a72: 0x000a, 0x3a73: 0x000a, 0x3a74: 0x000a, 0x3a75: 0x000a, + 0x3a76: 0x000a, 0x3a77: 0x000a, 0x3a78: 0x000a, 0x3a79: 0x000a, 0x3a7a: 0x000a, 0x3a7b: 0x000a, + 0x3a7c: 0x000a, 0x3a7d: 0x000a, 0x3a7e: 0x000a, 0x3a7f: 0x000a, + // Block 0xea, offset 0x3a80 + 0x3a80: 0x000a, 0x3a81: 0x000a, 0x3a82: 0x000a, 0x3a83: 0x000a, 0x3a84: 0x000a, 0x3a85: 0x000a, + 0x3a86: 0x000a, 0x3a87: 0x000a, 0x3a88: 0x000a, 0x3a89: 0x000a, 0x3a8a: 0x000a, + 0x3a8d: 0x000a, 0x3a8e: 0x000a, 0x3a8f: 0x000a, 0x3a90: 0x000a, 0x3a91: 0x000a, + 0x3a92: 0x000a, 0x3a93: 0x000a, 0x3a94: 0x000a, 0x3a95: 0x000a, 0x3a96: 0x000a, 0x3a97: 0x000a, + 0x3a98: 0x000a, 0x3a99: 0x000a, 0x3a9a: 0x000a, 0x3a9b: 0x000a, 0x3a9c: 0x000a, 0x3a9d: 0x000a, + 0x3a9e: 0x000a, 0x3a9f: 0x000a, 0x3aa0: 0x000a, 0x3aa1: 0x000a, 0x3aa2: 0x000a, 0x3aa3: 0x000a, + 0x3aa4: 0x000a, 0x3aa5: 0x000a, 0x3aa6: 0x000a, 0x3aa7: 0x000a, 0x3aa8: 0x000a, 0x3aa9: 0x000a, + 0x3aaa: 0x000a, 0x3aab: 0x000a, 0x3aac: 0x000a, 0x3aad: 0x000a, 0x3aae: 0x000a, 0x3aaf: 0x000a, + 0x3ab0: 0x000a, 0x3ab1: 0x000a, 0x3ab2: 0x000a, 0x3ab3: 0x000a, 0x3ab4: 0x000a, 0x3ab5: 0x000a, + 0x3ab6: 0x000a, 0x3ab7: 0x000a, 0x3ab8: 0x000a, 0x3ab9: 0x000a, 0x3aba: 0x000a, 0x3abb: 0x000a, + 0x3abc: 0x000a, 0x3abd: 0x000a, 0x3abe: 0x000a, 0x3abf: 0x000a, + // Block 0xeb, offset 0x3ac0 + 0x3ac0: 0x000a, 0x3ac1: 0x000a, 0x3ac2: 0x000a, 0x3ac3: 0x000a, 0x3ac4: 0x000a, 0x3ac5: 0x000a, + 0x3ac6: 0x000a, 0x3ac7: 0x000a, 0x3ac8: 0x000a, 0x3ac9: 0x000a, 0x3aca: 0x000a, 0x3acb: 0x000a, + 0x3acc: 0x000a, 0x3acd: 0x000a, 0x3ace: 0x000a, 0x3acf: 0x000a, 0x3ad0: 0x000a, 0x3ad1: 0x000a, + 0x3ad2: 0x000a, 0x3ad3: 0x000a, + 0x3ae0: 0x000a, 0x3ae1: 0x000a, 0x3ae2: 0x000a, 0x3ae3: 0x000a, + 0x3ae4: 0x000a, 0x3ae5: 0x000a, 0x3ae6: 0x000a, 0x3ae7: 0x000a, 0x3ae8: 0x000a, 0x3ae9: 0x000a, + 0x3aea: 0x000a, 0x3aeb: 0x000a, 0x3aec: 0x000a, 0x3aed: 0x000a, + 0x3af0: 0x000a, 0x3af1: 0x000a, 0x3af2: 0x000a, 0x3af3: 0x000a, + 0x3af8: 0x000a, 0x3af9: 0x000a, 0x3afa: 0x000a, + // Block 0xec, offset 0x3b00 + 0x3b00: 0x000a, 0x3b01: 0x000a, 0x3b02: 0x000a, + 0x3b10: 0x000a, 0x3b11: 0x000a, + 0x3b12: 0x000a, 0x3b13: 0x000a, 0x3b14: 0x000a, 0x3b15: 0x000a, + // Block 0xed, offset 0x3b40 + 0x3b7e: 0x000b, 0x3b7f: 0x000b, + // Block 0xee, offset 0x3b80 + 0x3b80: 0x000b, 0x3b81: 0x000b, 0x3b82: 0x000b, 0x3b83: 0x000b, 0x3b84: 0x000b, 0x3b85: 0x000b, + 0x3b86: 0x000b, 0x3b87: 0x000b, 0x3b88: 0x000b, 0x3b89: 0x000b, 0x3b8a: 0x000b, 0x3b8b: 0x000b, + 0x3b8c: 0x000b, 0x3b8d: 0x000b, 0x3b8e: 0x000b, 0x3b8f: 0x000b, 0x3b90: 0x000b, 0x3b91: 0x000b, + 0x3b92: 0x000b, 0x3b93: 0x000b, 0x3b94: 0x000b, 0x3b95: 0x000b, 0x3b96: 0x000b, 0x3b97: 0x000b, + 0x3b98: 0x000b, 0x3b99: 0x000b, 0x3b9a: 0x000b, 0x3b9b: 0x000b, 0x3b9c: 0x000b, 0x3b9d: 0x000b, + 0x3b9e: 0x000b, 0x3b9f: 0x000b, 0x3ba0: 0x000b, 0x3ba1: 0x000b, 0x3ba2: 0x000b, 0x3ba3: 0x000b, + 0x3ba4: 0x000b, 0x3ba5: 0x000b, 0x3ba6: 0x000b, 0x3ba7: 0x000b, 0x3ba8: 0x000b, 0x3ba9: 0x000b, + 0x3baa: 0x000b, 0x3bab: 0x000b, 0x3bac: 0x000b, 0x3bad: 0x000b, 0x3bae: 0x000b, 0x3baf: 0x000b, + 0x3bb0: 0x000b, 0x3bb1: 0x000b, 0x3bb2: 0x000b, 0x3bb3: 0x000b, 0x3bb4: 0x000b, 0x3bb5: 0x000b, + 0x3bb6: 0x000b, 0x3bb7: 0x000b, 0x3bb8: 0x000b, 0x3bb9: 0x000b, 0x3bba: 0x000b, 0x3bbb: 0x000b, + 0x3bbc: 0x000b, 0x3bbd: 0x000b, 0x3bbe: 0x000b, 0x3bbf: 0x000b, + // Block 0xef, offset 0x3bc0 + 0x3bc0: 0x000c, 0x3bc1: 0x000c, 0x3bc2: 0x000c, 0x3bc3: 0x000c, 0x3bc4: 0x000c, 0x3bc5: 0x000c, + 0x3bc6: 0x000c, 0x3bc7: 0x000c, 0x3bc8: 0x000c, 0x3bc9: 0x000c, 0x3bca: 0x000c, 0x3bcb: 0x000c, + 0x3bcc: 0x000c, 0x3bcd: 0x000c, 0x3bce: 0x000c, 0x3bcf: 0x000c, 0x3bd0: 0x000c, 0x3bd1: 0x000c, + 0x3bd2: 0x000c, 0x3bd3: 0x000c, 0x3bd4: 0x000c, 0x3bd5: 0x000c, 0x3bd6: 0x000c, 0x3bd7: 0x000c, + 0x3bd8: 0x000c, 0x3bd9: 0x000c, 0x3bda: 0x000c, 0x3bdb: 0x000c, 0x3bdc: 0x000c, 0x3bdd: 0x000c, + 0x3bde: 0x000c, 0x3bdf: 0x000c, 0x3be0: 0x000c, 0x3be1: 0x000c, 0x3be2: 0x000c, 0x3be3: 0x000c, + 0x3be4: 0x000c, 0x3be5: 0x000c, 0x3be6: 0x000c, 0x3be7: 0x000c, 0x3be8: 0x000c, 0x3be9: 0x000c, + 0x3bea: 0x000c, 0x3beb: 0x000c, 0x3bec: 0x000c, 0x3bed: 0x000c, 0x3bee: 0x000c, 0x3bef: 0x000c, + 0x3bf0: 0x000b, 0x3bf1: 0x000b, 0x3bf2: 0x000b, 0x3bf3: 0x000b, 0x3bf4: 0x000b, 0x3bf5: 0x000b, + 0x3bf6: 0x000b, 0x3bf7: 0x000b, 0x3bf8: 0x000b, 0x3bf9: 0x000b, 0x3bfa: 0x000b, 0x3bfb: 0x000b, + 0x3bfc: 0x000b, 0x3bfd: 0x000b, 0x3bfe: 0x000b, 0x3bff: 0x000b, +} + +// bidiIndex: 24 blocks, 1536 entries, 1536 bytes +// Block 0 is the zero block. +var bidiIndex = [1536]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x02, + 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08, + 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b, + 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, + 0xea: 0x07, 0xef: 0x08, + 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15, + // Block 0x4, offset 0x100 + 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b, + 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22, + 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28, + 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30, + // Block 0x5, offset 0x140 + 0x140: 0x31, 0x141: 0x32, 0x142: 0x33, + 0x14d: 0x34, 0x14e: 0x35, + 0x150: 0x36, + 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b, + 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40, + 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47, + 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a, + 0x17e: 0x4b, 0x17f: 0x4c, + // Block 0x6, offset 0x180 + 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54, + 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54, + 0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54, + 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f, + 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61, + 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x54, + 0x1b3: 0x64, 0x1b5: 0x65, 0x1b7: 0x66, + 0x1b8: 0x67, 0x1b9: 0x68, 0x1ba: 0x69, 0x1bb: 0x6a, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6b, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x6c, 0x1c2: 0x6d, 0x1c3: 0x6e, 0x1c7: 0x6f, + 0x1c8: 0x70, 0x1c9: 0x71, 0x1ca: 0x72, 0x1cb: 0x73, 0x1cd: 0x74, 0x1cf: 0x75, + // Block 0x8, offset 0x200 + 0x237: 0x54, + // Block 0x9, offset 0x240 + 0x252: 0x76, 0x253: 0x77, + 0x258: 0x78, 0x259: 0x79, 0x25a: 0x7a, 0x25b: 0x7b, 0x25c: 0x7c, 0x25e: 0x7d, + 0x260: 0x7e, 0x261: 0x7f, 0x263: 0x80, 0x264: 0x81, 0x265: 0x82, 0x266: 0x83, 0x267: 0x84, + 0x268: 0x85, 0x269: 0x86, 0x26a: 0x87, 0x26b: 0x88, 0x26f: 0x89, + // Block 0xa, offset 0x280 + 0x2ac: 0x8a, 0x2ad: 0x8b, 0x2ae: 0x0e, 0x2af: 0x0e, + 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8c, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8d, + 0x2b8: 0x8e, 0x2b9: 0x8f, 0x2ba: 0x0e, 0x2bb: 0x90, 0x2bc: 0x91, 0x2bd: 0x92, 0x2bf: 0x93, + // Block 0xb, offset 0x2c0 + 0x2c4: 0x94, 0x2c5: 0x54, 0x2c6: 0x95, 0x2c7: 0x96, + 0x2cb: 0x97, 0x2cd: 0x98, + 0x2e0: 0x99, 0x2e1: 0x99, 0x2e2: 0x99, 0x2e3: 0x99, 0x2e4: 0x9a, 0x2e5: 0x99, 0x2e6: 0x99, 0x2e7: 0x99, + 0x2e8: 0x9b, 0x2e9: 0x99, 0x2ea: 0x99, 0x2eb: 0x9c, 0x2ec: 0x9d, 0x2ed: 0x99, 0x2ee: 0x99, 0x2ef: 0x99, + 0x2f0: 0x99, 0x2f1: 0x99, 0x2f2: 0x99, 0x2f3: 0x99, 0x2f4: 0x9e, 0x2f5: 0x99, 0x2f6: 0x99, 0x2f7: 0x99, + 0x2f8: 0x99, 0x2f9: 0x9f, 0x2fa: 0x99, 0x2fb: 0x99, 0x2fc: 0xa0, 0x2fd: 0xa1, 0x2fe: 0x99, 0x2ff: 0x99, + // Block 0xc, offset 0x300 + 0x300: 0xa2, 0x301: 0xa3, 0x302: 0xa4, 0x304: 0xa5, 0x305: 0xa6, 0x306: 0xa7, 0x307: 0xa8, + 0x308: 0xa9, 0x30b: 0xaa, 0x30c: 0x26, 0x30d: 0xab, + 0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1, + 0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5, + 0x320: 0xb6, 0x327: 0xb7, + 0x328: 0xb8, 0x329: 0xb9, 0x32a: 0xba, + 0x330: 0xbb, 0x332: 0xbc, 0x334: 0xbd, 0x335: 0xbe, 0x336: 0xbf, + 0x33b: 0xc0, 0x33f: 0xc1, + // Block 0xd, offset 0x340 + 0x36b: 0xc2, 0x36c: 0xc3, + 0x37d: 0xc4, 0x37e: 0xc5, 0x37f: 0xc6, + // Block 0xe, offset 0x380 + 0x3b2: 0xc7, + // Block 0xf, offset 0x3c0 + 0x3c5: 0xc8, 0x3c6: 0xc9, + 0x3c8: 0x54, 0x3c9: 0xca, 0x3cc: 0x54, 0x3cd: 0xcb, + 0x3db: 0xcc, 0x3dc: 0xcd, 0x3dd: 0xce, 0x3de: 0xcf, 0x3df: 0xd0, + 0x3e8: 0xd1, 0x3e9: 0xd2, 0x3ea: 0xd3, + // Block 0x10, offset 0x400 + 0x400: 0xd4, 0x404: 0xc3, + 0x40b: 0xd5, + 0x420: 0x99, 0x421: 0x99, 0x422: 0x99, 0x423: 0xd6, 0x424: 0x99, 0x425: 0xd7, 0x426: 0x99, 0x427: 0x99, + 0x428: 0x99, 0x429: 0x99, 0x42a: 0x99, 0x42b: 0x99, 0x42c: 0x99, 0x42d: 0x99, 0x42e: 0x99, 0x42f: 0x99, + 0x430: 0x99, 0x431: 0xa0, 0x432: 0x0e, 0x433: 0x99, 0x434: 0x0e, 0x435: 0xd8, 0x436: 0x99, 0x437: 0x99, + 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xd9, 0x43c: 0x99, 0x43d: 0x99, 0x43e: 0x99, 0x43f: 0x99, + // Block 0x11, offset 0x440 + 0x440: 0xda, 0x441: 0x54, 0x442: 0xdb, 0x443: 0xdc, 0x444: 0xdd, 0x445: 0xde, + 0x449: 0xdf, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54, + 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54, + 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xe0, 0x45c: 0x54, 0x45d: 0x6a, 0x45e: 0x54, 0x45f: 0xe1, + 0x460: 0xe2, 0x461: 0xe3, 0x462: 0xe4, 0x464: 0xe5, 0x465: 0xe6, 0x466: 0xe7, 0x467: 0xe8, + 0x468: 0x54, 0x469: 0xe9, 0x46a: 0xea, + 0x47f: 0xeb, + // Block 0x12, offset 0x480 + 0x4bf: 0xeb, + // Block 0x13, offset 0x4c0 + 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b, + 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f, + 0x4ef: 0x10, + 0x4ff: 0x10, + // Block 0x14, offset 0x500 + 0x50f: 0x10, + 0x51f: 0x10, + 0x52f: 0x10, + 0x53f: 0x10, + // Block 0x15, offset 0x540 + 0x540: 0xec, 0x541: 0xec, 0x542: 0xec, 0x543: 0xec, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xed, + 0x548: 0xec, 0x549: 0xec, 0x54a: 0xec, 0x54b: 0xec, 0x54c: 0xec, 0x54d: 0xec, 0x54e: 0xec, 0x54f: 0xec, + 0x550: 0xec, 0x551: 0xec, 0x552: 0xec, 0x553: 0xec, 0x554: 0xec, 0x555: 0xec, 0x556: 0xec, 0x557: 0xec, + 0x558: 0xec, 0x559: 0xec, 0x55a: 0xec, 0x55b: 0xec, 0x55c: 0xec, 0x55d: 0xec, 0x55e: 0xec, 0x55f: 0xec, + 0x560: 0xec, 0x561: 0xec, 0x562: 0xec, 0x563: 0xec, 0x564: 0xec, 0x565: 0xec, 0x566: 0xec, 0x567: 0xec, + 0x568: 0xec, 0x569: 0xec, 0x56a: 0xec, 0x56b: 0xec, 0x56c: 0xec, 0x56d: 0xec, 0x56e: 0xec, 0x56f: 0xec, + 0x570: 0xec, 0x571: 0xec, 0x572: 0xec, 0x573: 0xec, 0x574: 0xec, 0x575: 0xec, 0x576: 0xec, 0x577: 0xec, + 0x578: 0xec, 0x579: 0xec, 0x57a: 0xec, 0x57b: 0xec, 0x57c: 0xec, 0x57d: 0xec, 0x57e: 0xec, 0x57f: 0xec, + // Block 0x16, offset 0x580 + 0x58f: 0x10, + 0x59f: 0x10, + 0x5a0: 0x13, + 0x5af: 0x10, + 0x5bf: 0x10, + // Block 0x17, offset 0x5c0 + 0x5cf: 0x10, +} + +// Total table size 16952 bytes (16KiB); checksum: F50EF68C diff --git a/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go new file mode 100644 index 0000000..f248eff --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go @@ -0,0 +1,1956 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.16 +// +build go1.16 + +package bidi + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "13.0.0" + +// xorMasks contains masks to be xor-ed with brackets to get the reverse +// version. +var xorMasks = []int32{ // 8 elements + 0, 1, 6, 7, 3, 15, 29, 63, +} // Size: 56 bytes + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupUnsafe(s []byte) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookupString(s string) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupStringUnsafe(s string) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// bidiTrie. Total size: 17408 bytes (17.00 KiB). Checksum: df85fcbfe9b8377f. +type bidiTrie struct{} + +func newBidiTrie(i int) *bidiTrie { + return &bidiTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 { + switch { + default: + return uint8(bidiValues[n<<6+uint32(b)]) + } +} + +// bidiValues: 248 blocks, 15872 entries, 15872 bytes +// The third block is the zero block. +var bidiValues = [15872]uint8{ + // Block 0x0, offset 0x0 + 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b, + 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008, + 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b, + 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b, + 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007, + 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004, + 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a, + 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006, + 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002, + 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a, + 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a, + // Block 0x1, offset 0x40 + 0x40: 0x000a, + 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a, + 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a, + 0x7b: 0x005a, + 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007, + 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b, + 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b, + 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b, + 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b, + 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004, + 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a, + 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a, + 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a, + 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a, + 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a, + // Block 0x4, offset 0x100 + 0x117: 0x000a, + 0x137: 0x000a, + // Block 0x5, offset 0x140 + 0x179: 0x000a, 0x17a: 0x000a, + // Block 0x6, offset 0x180 + 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a, + 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a, + 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a, + 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a, + 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a, + 0x19e: 0x000a, 0x19f: 0x000a, + 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a, + 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a, + 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a, + 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a, + 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c, + 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c, + 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c, + 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c, + 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c, + 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c, + 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c, + 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c, + 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c, + 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c, + 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c, + // Block 0x8, offset 0x200 + 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c, + 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c, + 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c, + 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c, + 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c, + 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c, + 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c, + 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c, + 0x234: 0x000a, 0x235: 0x000a, + 0x23e: 0x000a, + // Block 0x9, offset 0x240 + 0x244: 0x000a, 0x245: 0x000a, + 0x247: 0x000a, + // Block 0xa, offset 0x280 + 0x2b6: 0x000a, + // Block 0xb, offset 0x2c0 + 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c, + 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c, + // Block 0xc, offset 0x300 + 0x30a: 0x000a, + 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c, + 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c, + 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c, + 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c, + 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c, + 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c, + 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c, + 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c, + 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c, + // Block 0xd, offset 0x340 + 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c, + 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001, + 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001, + 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001, + 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001, + 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001, + 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001, + 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001, + 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001, + 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001, + 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001, + // Block 0xe, offset 0x380 + 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005, + 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d, + 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c, + 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c, + 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d, + 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d, + 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d, + 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d, + 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d, + 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d, + 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d, + 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c, + 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c, + 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c, + 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c, + 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005, + 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005, + 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d, + 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d, + 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d, + 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d, + // Block 0x10, offset 0x400 + 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d, + 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d, + 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d, + 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d, + 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d, + 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d, + 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d, + 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d, + 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d, + 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d, + 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d, + // Block 0x11, offset 0x440 + 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d, + 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d, + 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d, + 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c, + 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005, + 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c, + 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a, + 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d, + 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002, + 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d, + 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d, + // Block 0x12, offset 0x480 + 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d, + 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d, + 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c, + 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d, + 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d, + 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d, + 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d, + 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d, + 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c, + 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c, + 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c, + 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d, + 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d, + 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d, + 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d, + 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d, + 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d, + 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d, + 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d, + 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d, + 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d, + // Block 0x14, offset 0x500 + 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d, + 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d, + 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d, + 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d, + 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d, + 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d, + 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c, + 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c, + 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d, + 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d, + 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d, + // Block 0x15, offset 0x540 + 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001, + 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001, + 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001, + 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001, + 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001, + 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001, + 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001, + 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c, + 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001, + 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001, + 0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001, + // Block 0x16, offset 0x580 + 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001, + 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001, + 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001, + 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c, + 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c, + 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c, + 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c, + 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001, + 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001, + 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001, + 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001, + 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001, + 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001, + 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001, + 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001, + 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d, + 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d, + 0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d, + 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001, + 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001, + 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001, + // Block 0x18, offset 0x600 + 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001, + 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001, + 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001, + 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001, + 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001, + 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d, + 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d, + 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d, + 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d, + 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d, + 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d, + // Block 0x19, offset 0x640 + 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d, + 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d, + 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d, + 0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c, + 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c, + 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c, + 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c, + 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c, + 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c, + 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c, + 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c, + // Block 0x1a, offset 0x680 + 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c, + 0x6ba: 0x000c, + 0x6bc: 0x000c, + // Block 0x1b, offset 0x6c0 + 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c, + 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c, + 0x6cd: 0x000c, 0x6d1: 0x000c, + 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c, + 0x6e2: 0x000c, 0x6e3: 0x000c, + // Block 0x1c, offset 0x700 + 0x701: 0x000c, + 0x73c: 0x000c, + // Block 0x1d, offset 0x740 + 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c, + 0x74d: 0x000c, + 0x762: 0x000c, 0x763: 0x000c, + 0x772: 0x0004, 0x773: 0x0004, + 0x77b: 0x0004, + 0x77e: 0x000c, + // Block 0x1e, offset 0x780 + 0x781: 0x000c, 0x782: 0x000c, + 0x7bc: 0x000c, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x000c, 0x7c2: 0x000c, + 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c, + 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c, + 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c, + // Block 0x20, offset 0x800 + 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c, + 0x807: 0x000c, 0x808: 0x000c, + 0x80d: 0x000c, + 0x822: 0x000c, 0x823: 0x000c, + 0x831: 0x0004, + 0x83a: 0x000c, 0x83b: 0x000c, + 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c, + // Block 0x21, offset 0x840 + 0x841: 0x000c, + 0x87c: 0x000c, 0x87f: 0x000c, + // Block 0x22, offset 0x880 + 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c, + 0x88d: 0x000c, + 0x895: 0x000c, 0x896: 0x000c, + 0x8a2: 0x000c, 0x8a3: 0x000c, + // Block 0x23, offset 0x8c0 + 0x8c2: 0x000c, + // Block 0x24, offset 0x900 + 0x900: 0x000c, + 0x90d: 0x000c, + 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a, + 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a, + // Block 0x25, offset 0x940 + 0x940: 0x000c, 0x944: 0x000c, + 0x97e: 0x000c, 0x97f: 0x000c, + // Block 0x26, offset 0x980 + 0x980: 0x000c, + 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c, + 0x98c: 0x000c, 0x98d: 0x000c, + 0x995: 0x000c, 0x996: 0x000c, + 0x9a2: 0x000c, 0x9a3: 0x000c, + 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a, + 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a, + // Block 0x27, offset 0x9c0 + 0x9cc: 0x000c, 0x9cd: 0x000c, + 0x9e2: 0x000c, 0x9e3: 0x000c, + // Block 0x28, offset 0xa00 + 0xa00: 0x000c, 0xa01: 0x000c, + 0xa3b: 0x000c, + 0xa3c: 0x000c, + // Block 0x29, offset 0xa40 + 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c, + 0xa4d: 0x000c, + 0xa62: 0x000c, 0xa63: 0x000c, + // Block 0x2a, offset 0xa80 + 0xa81: 0x000c, + // Block 0x2b, offset 0xac0 + 0xaca: 0x000c, + 0xad2: 0x000c, 0xad3: 0x000c, 0xad4: 0x000c, 0xad6: 0x000c, + // Block 0x2c, offset 0xb00 + 0xb31: 0x000c, 0xb34: 0x000c, 0xb35: 0x000c, + 0xb36: 0x000c, 0xb37: 0x000c, 0xb38: 0x000c, 0xb39: 0x000c, 0xb3a: 0x000c, + 0xb3f: 0x0004, + // Block 0x2d, offset 0xb40 + 0xb47: 0x000c, 0xb48: 0x000c, 0xb49: 0x000c, 0xb4a: 0x000c, 0xb4b: 0x000c, + 0xb4c: 0x000c, 0xb4d: 0x000c, 0xb4e: 0x000c, + // Block 0x2e, offset 0xb80 + 0xbb1: 0x000c, 0xbb4: 0x000c, 0xbb5: 0x000c, + 0xbb6: 0x000c, 0xbb7: 0x000c, 0xbb8: 0x000c, 0xbb9: 0x000c, 0xbba: 0x000c, 0xbbb: 0x000c, + 0xbbc: 0x000c, + // Block 0x2f, offset 0xbc0 + 0xbc8: 0x000c, 0xbc9: 0x000c, 0xbca: 0x000c, 0xbcb: 0x000c, + 0xbcc: 0x000c, 0xbcd: 0x000c, + // Block 0x30, offset 0xc00 + 0xc18: 0x000c, 0xc19: 0x000c, + 0xc35: 0x000c, + 0xc37: 0x000c, 0xc39: 0x000c, 0xc3a: 0x003a, 0xc3b: 0x002a, + 0xc3c: 0x003a, 0xc3d: 0x002a, + // Block 0x31, offset 0xc40 + 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c, + 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c, + 0xc7c: 0x000c, 0xc7d: 0x000c, 0xc7e: 0x000c, + // Block 0x32, offset 0xc80 + 0xc80: 0x000c, 0xc81: 0x000c, 0xc82: 0x000c, 0xc83: 0x000c, 0xc84: 0x000c, + 0xc86: 0x000c, 0xc87: 0x000c, + 0xc8d: 0x000c, 0xc8e: 0x000c, 0xc8f: 0x000c, 0xc90: 0x000c, 0xc91: 0x000c, + 0xc92: 0x000c, 0xc93: 0x000c, 0xc94: 0x000c, 0xc95: 0x000c, 0xc96: 0x000c, 0xc97: 0x000c, + 0xc99: 0x000c, 0xc9a: 0x000c, 0xc9b: 0x000c, 0xc9c: 0x000c, 0xc9d: 0x000c, + 0xc9e: 0x000c, 0xc9f: 0x000c, 0xca0: 0x000c, 0xca1: 0x000c, 0xca2: 0x000c, 0xca3: 0x000c, + 0xca4: 0x000c, 0xca5: 0x000c, 0xca6: 0x000c, 0xca7: 0x000c, 0xca8: 0x000c, 0xca9: 0x000c, + 0xcaa: 0x000c, 0xcab: 0x000c, 0xcac: 0x000c, 0xcad: 0x000c, 0xcae: 0x000c, 0xcaf: 0x000c, + 0xcb0: 0x000c, 0xcb1: 0x000c, 0xcb2: 0x000c, 0xcb3: 0x000c, 0xcb4: 0x000c, 0xcb5: 0x000c, + 0xcb6: 0x000c, 0xcb7: 0x000c, 0xcb8: 0x000c, 0xcb9: 0x000c, 0xcba: 0x000c, 0xcbb: 0x000c, + 0xcbc: 0x000c, + // Block 0x33, offset 0xcc0 + 0xcc6: 0x000c, + // Block 0x34, offset 0xd00 + 0xd2d: 0x000c, 0xd2e: 0x000c, 0xd2f: 0x000c, + 0xd30: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, 0xd35: 0x000c, + 0xd36: 0x000c, 0xd37: 0x000c, 0xd39: 0x000c, 0xd3a: 0x000c, + 0xd3d: 0x000c, 0xd3e: 0x000c, + // Block 0x35, offset 0xd40 + 0xd58: 0x000c, 0xd59: 0x000c, + 0xd5e: 0x000c, 0xd5f: 0x000c, 0xd60: 0x000c, + 0xd71: 0x000c, 0xd72: 0x000c, 0xd73: 0x000c, 0xd74: 0x000c, + // Block 0x36, offset 0xd80 + 0xd82: 0x000c, 0xd85: 0x000c, + 0xd86: 0x000c, + 0xd8d: 0x000c, + 0xd9d: 0x000c, + // Block 0x37, offset 0xdc0 + 0xddd: 0x000c, + 0xdde: 0x000c, 0xddf: 0x000c, + // Block 0x38, offset 0xe00 + 0xe10: 0x000a, 0xe11: 0x000a, + 0xe12: 0x000a, 0xe13: 0x000a, 0xe14: 0x000a, 0xe15: 0x000a, 0xe16: 0x000a, 0xe17: 0x000a, + 0xe18: 0x000a, 0xe19: 0x000a, + // Block 0x39, offset 0xe40 + 0xe40: 0x000a, + // Block 0x3a, offset 0xe80 + 0xe80: 0x0009, + 0xe9b: 0x007a, 0xe9c: 0x006a, + // Block 0x3b, offset 0xec0 + 0xed2: 0x000c, 0xed3: 0x000c, 0xed4: 0x000c, + 0xef2: 0x000c, 0xef3: 0x000c, 0xef4: 0x000c, + // Block 0x3c, offset 0xf00 + 0xf12: 0x000c, 0xf13: 0x000c, + 0xf32: 0x000c, 0xf33: 0x000c, + // Block 0x3d, offset 0xf40 + 0xf74: 0x000c, 0xf75: 0x000c, + 0xf77: 0x000c, 0xf78: 0x000c, 0xf79: 0x000c, 0xf7a: 0x000c, 0xf7b: 0x000c, + 0xf7c: 0x000c, 0xf7d: 0x000c, + // Block 0x3e, offset 0xf80 + 0xf86: 0x000c, 0xf89: 0x000c, 0xf8a: 0x000c, 0xf8b: 0x000c, + 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000c, 0xf8f: 0x000c, 0xf90: 0x000c, 0xf91: 0x000c, + 0xf92: 0x000c, 0xf93: 0x000c, + 0xf9b: 0x0004, 0xf9d: 0x000c, + 0xfb0: 0x000a, 0xfb1: 0x000a, 0xfb2: 0x000a, 0xfb3: 0x000a, 0xfb4: 0x000a, 0xfb5: 0x000a, + 0xfb6: 0x000a, 0xfb7: 0x000a, 0xfb8: 0x000a, 0xfb9: 0x000a, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x000a, 0xfc1: 0x000a, 0xfc2: 0x000a, 0xfc3: 0x000a, 0xfc4: 0x000a, 0xfc5: 0x000a, + 0xfc6: 0x000a, 0xfc7: 0x000a, 0xfc8: 0x000a, 0xfc9: 0x000a, 0xfca: 0x000a, 0xfcb: 0x000c, + 0xfcc: 0x000c, 0xfcd: 0x000c, 0xfce: 0x000b, + // Block 0x40, offset 0x1000 + 0x1005: 0x000c, + 0x1006: 0x000c, + 0x1029: 0x000c, + // Block 0x41, offset 0x1040 + 0x1060: 0x000c, 0x1061: 0x000c, 0x1062: 0x000c, + 0x1067: 0x000c, 0x1068: 0x000c, + 0x1072: 0x000c, + 0x1079: 0x000c, 0x107a: 0x000c, 0x107b: 0x000c, + // Block 0x42, offset 0x1080 + 0x1080: 0x000a, 0x1084: 0x000a, 0x1085: 0x000a, + // Block 0x43, offset 0x10c0 + 0x10de: 0x000a, 0x10df: 0x000a, 0x10e0: 0x000a, 0x10e1: 0x000a, 0x10e2: 0x000a, 0x10e3: 0x000a, + 0x10e4: 0x000a, 0x10e5: 0x000a, 0x10e6: 0x000a, 0x10e7: 0x000a, 0x10e8: 0x000a, 0x10e9: 0x000a, + 0x10ea: 0x000a, 0x10eb: 0x000a, 0x10ec: 0x000a, 0x10ed: 0x000a, 0x10ee: 0x000a, 0x10ef: 0x000a, + 0x10f0: 0x000a, 0x10f1: 0x000a, 0x10f2: 0x000a, 0x10f3: 0x000a, 0x10f4: 0x000a, 0x10f5: 0x000a, + 0x10f6: 0x000a, 0x10f7: 0x000a, 0x10f8: 0x000a, 0x10f9: 0x000a, 0x10fa: 0x000a, 0x10fb: 0x000a, + 0x10fc: 0x000a, 0x10fd: 0x000a, 0x10fe: 0x000a, 0x10ff: 0x000a, + // Block 0x44, offset 0x1100 + 0x1117: 0x000c, + 0x1118: 0x000c, 0x111b: 0x000c, + // Block 0x45, offset 0x1140 + 0x1156: 0x000c, + 0x1158: 0x000c, 0x1159: 0x000c, 0x115a: 0x000c, 0x115b: 0x000c, 0x115c: 0x000c, 0x115d: 0x000c, + 0x115e: 0x000c, 0x1160: 0x000c, 0x1162: 0x000c, + 0x1165: 0x000c, 0x1166: 0x000c, 0x1167: 0x000c, 0x1168: 0x000c, 0x1169: 0x000c, + 0x116a: 0x000c, 0x116b: 0x000c, 0x116c: 0x000c, + 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c, + 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c, + 0x117c: 0x000c, 0x117f: 0x000c, + // Block 0x46, offset 0x1180 + 0x11b0: 0x000c, 0x11b1: 0x000c, 0x11b2: 0x000c, 0x11b3: 0x000c, 0x11b4: 0x000c, 0x11b5: 0x000c, + 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, 0x11bb: 0x000c, + 0x11bc: 0x000c, 0x11bd: 0x000c, 0x11be: 0x000c, 0x11bf: 0x000c, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x000c, + // Block 0x48, offset 0x1200 + 0x1200: 0x000c, 0x1201: 0x000c, 0x1202: 0x000c, 0x1203: 0x000c, + 0x1234: 0x000c, + 0x1236: 0x000c, 0x1237: 0x000c, 0x1238: 0x000c, 0x1239: 0x000c, 0x123a: 0x000c, + 0x123c: 0x000c, + // Block 0x49, offset 0x1240 + 0x1242: 0x000c, + 0x126b: 0x000c, 0x126c: 0x000c, 0x126d: 0x000c, 0x126e: 0x000c, 0x126f: 0x000c, + 0x1270: 0x000c, 0x1271: 0x000c, 0x1272: 0x000c, 0x1273: 0x000c, + // Block 0x4a, offset 0x1280 + 0x1280: 0x000c, 0x1281: 0x000c, + 0x12a2: 0x000c, 0x12a3: 0x000c, + 0x12a4: 0x000c, 0x12a5: 0x000c, 0x12a8: 0x000c, 0x12a9: 0x000c, + 0x12ab: 0x000c, 0x12ac: 0x000c, 0x12ad: 0x000c, + // Block 0x4b, offset 0x12c0 + 0x12e6: 0x000c, 0x12e8: 0x000c, 0x12e9: 0x000c, + 0x12ed: 0x000c, 0x12ef: 0x000c, + 0x12f0: 0x000c, 0x12f1: 0x000c, + // Block 0x4c, offset 0x1300 + 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c, + 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, + 0x1336: 0x000c, 0x1337: 0x000c, + // Block 0x4d, offset 0x1340 + 0x1350: 0x000c, 0x1351: 0x000c, + 0x1352: 0x000c, 0x1354: 0x000c, 0x1355: 0x000c, 0x1356: 0x000c, 0x1357: 0x000c, + 0x1358: 0x000c, 0x1359: 0x000c, 0x135a: 0x000c, 0x135b: 0x000c, 0x135c: 0x000c, 0x135d: 0x000c, + 0x135e: 0x000c, 0x135f: 0x000c, 0x1360: 0x000c, 0x1362: 0x000c, 0x1363: 0x000c, + 0x1364: 0x000c, 0x1365: 0x000c, 0x1366: 0x000c, 0x1367: 0x000c, 0x1368: 0x000c, + 0x136d: 0x000c, + 0x1374: 0x000c, + 0x1378: 0x000c, 0x1379: 0x000c, + // Block 0x4e, offset 0x1380 + 0x1380: 0x000c, 0x1381: 0x000c, 0x1382: 0x000c, 0x1383: 0x000c, 0x1384: 0x000c, 0x1385: 0x000c, + 0x1386: 0x000c, 0x1387: 0x000c, 0x1388: 0x000c, 0x1389: 0x000c, 0x138a: 0x000c, 0x138b: 0x000c, + 0x138c: 0x000c, 0x138d: 0x000c, 0x138e: 0x000c, 0x138f: 0x000c, 0x1390: 0x000c, 0x1391: 0x000c, + 0x1392: 0x000c, 0x1393: 0x000c, 0x1394: 0x000c, 0x1395: 0x000c, 0x1396: 0x000c, 0x1397: 0x000c, + 0x1398: 0x000c, 0x1399: 0x000c, 0x139a: 0x000c, 0x139b: 0x000c, 0x139c: 0x000c, 0x139d: 0x000c, + 0x139e: 0x000c, 0x139f: 0x000c, 0x13a0: 0x000c, 0x13a1: 0x000c, 0x13a2: 0x000c, 0x13a3: 0x000c, + 0x13a4: 0x000c, 0x13a5: 0x000c, 0x13a6: 0x000c, 0x13a7: 0x000c, 0x13a8: 0x000c, 0x13a9: 0x000c, + 0x13aa: 0x000c, 0x13ab: 0x000c, 0x13ac: 0x000c, 0x13ad: 0x000c, 0x13ae: 0x000c, 0x13af: 0x000c, + 0x13b0: 0x000c, 0x13b1: 0x000c, 0x13b2: 0x000c, 0x13b3: 0x000c, 0x13b4: 0x000c, 0x13b5: 0x000c, + 0x13b6: 0x000c, 0x13b7: 0x000c, 0x13b8: 0x000c, 0x13b9: 0x000c, 0x13bb: 0x000c, + 0x13bc: 0x000c, 0x13bd: 0x000c, 0x13be: 0x000c, 0x13bf: 0x000c, + // Block 0x4f, offset 0x13c0 + 0x13fd: 0x000a, 0x13ff: 0x000a, + // Block 0x50, offset 0x1400 + 0x1400: 0x000a, 0x1401: 0x000a, + 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, + 0x141d: 0x000a, + 0x141e: 0x000a, 0x141f: 0x000a, + 0x142d: 0x000a, 0x142e: 0x000a, 0x142f: 0x000a, + 0x143d: 0x000a, 0x143e: 0x000a, + // Block 0x51, offset 0x1440 + 0x1440: 0x0009, 0x1441: 0x0009, 0x1442: 0x0009, 0x1443: 0x0009, 0x1444: 0x0009, 0x1445: 0x0009, + 0x1446: 0x0009, 0x1447: 0x0009, 0x1448: 0x0009, 0x1449: 0x0009, 0x144a: 0x0009, 0x144b: 0x000b, + 0x144c: 0x000b, 0x144d: 0x000b, 0x144f: 0x0001, 0x1450: 0x000a, 0x1451: 0x000a, + 0x1452: 0x000a, 0x1453: 0x000a, 0x1454: 0x000a, 0x1455: 0x000a, 0x1456: 0x000a, 0x1457: 0x000a, + 0x1458: 0x000a, 0x1459: 0x000a, 0x145a: 0x000a, 0x145b: 0x000a, 0x145c: 0x000a, 0x145d: 0x000a, + 0x145e: 0x000a, 0x145f: 0x000a, 0x1460: 0x000a, 0x1461: 0x000a, 0x1462: 0x000a, 0x1463: 0x000a, + 0x1464: 0x000a, 0x1465: 0x000a, 0x1466: 0x000a, 0x1467: 0x000a, 0x1468: 0x0009, 0x1469: 0x0007, + 0x146a: 0x000e, 0x146b: 0x000e, 0x146c: 0x000e, 0x146d: 0x000e, 0x146e: 0x000e, 0x146f: 0x0006, + 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x000a, + 0x1476: 0x000a, 0x1477: 0x000a, 0x1478: 0x000a, 0x1479: 0x000a, 0x147a: 0x000a, 0x147b: 0x000a, + 0x147c: 0x000a, 0x147d: 0x000a, 0x147e: 0x000a, 0x147f: 0x000a, + // Block 0x52, offset 0x1480 + 0x1480: 0x000a, 0x1481: 0x000a, 0x1482: 0x000a, 0x1483: 0x000a, 0x1484: 0x0006, 0x1485: 0x009a, + 0x1486: 0x008a, 0x1487: 0x000a, 0x1488: 0x000a, 0x1489: 0x000a, 0x148a: 0x000a, 0x148b: 0x000a, + 0x148c: 0x000a, 0x148d: 0x000a, 0x148e: 0x000a, 0x148f: 0x000a, 0x1490: 0x000a, 0x1491: 0x000a, + 0x1492: 0x000a, 0x1493: 0x000a, 0x1494: 0x000a, 0x1495: 0x000a, 0x1496: 0x000a, 0x1497: 0x000a, + 0x1498: 0x000a, 0x1499: 0x000a, 0x149a: 0x000a, 0x149b: 0x000a, 0x149c: 0x000a, 0x149d: 0x000a, + 0x149e: 0x000a, 0x149f: 0x0009, 0x14a0: 0x000b, 0x14a1: 0x000b, 0x14a2: 0x000b, 0x14a3: 0x000b, + 0x14a4: 0x000b, 0x14a5: 0x000b, 0x14a6: 0x000e, 0x14a7: 0x000e, 0x14a8: 0x000e, 0x14a9: 0x000e, + 0x14aa: 0x000b, 0x14ab: 0x000b, 0x14ac: 0x000b, 0x14ad: 0x000b, 0x14ae: 0x000b, 0x14af: 0x000b, + 0x14b0: 0x0002, 0x14b4: 0x0002, 0x14b5: 0x0002, + 0x14b6: 0x0002, 0x14b7: 0x0002, 0x14b8: 0x0002, 0x14b9: 0x0002, 0x14ba: 0x0003, 0x14bb: 0x0003, + 0x14bc: 0x000a, 0x14bd: 0x009a, 0x14be: 0x008a, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x0002, 0x14c1: 0x0002, 0x14c2: 0x0002, 0x14c3: 0x0002, 0x14c4: 0x0002, 0x14c5: 0x0002, + 0x14c6: 0x0002, 0x14c7: 0x0002, 0x14c8: 0x0002, 0x14c9: 0x0002, 0x14ca: 0x0003, 0x14cb: 0x0003, + 0x14cc: 0x000a, 0x14cd: 0x009a, 0x14ce: 0x008a, + 0x14e0: 0x0004, 0x14e1: 0x0004, 0x14e2: 0x0004, 0x14e3: 0x0004, + 0x14e4: 0x0004, 0x14e5: 0x0004, 0x14e6: 0x0004, 0x14e7: 0x0004, 0x14e8: 0x0004, 0x14e9: 0x0004, + 0x14ea: 0x0004, 0x14eb: 0x0004, 0x14ec: 0x0004, 0x14ed: 0x0004, 0x14ee: 0x0004, 0x14ef: 0x0004, + 0x14f0: 0x0004, 0x14f1: 0x0004, 0x14f2: 0x0004, 0x14f3: 0x0004, 0x14f4: 0x0004, 0x14f5: 0x0004, + 0x14f6: 0x0004, 0x14f7: 0x0004, 0x14f8: 0x0004, 0x14f9: 0x0004, 0x14fa: 0x0004, 0x14fb: 0x0004, + 0x14fc: 0x0004, 0x14fd: 0x0004, 0x14fe: 0x0004, 0x14ff: 0x0004, + // Block 0x54, offset 0x1500 + 0x1500: 0x0004, 0x1501: 0x0004, 0x1502: 0x0004, 0x1503: 0x0004, 0x1504: 0x0004, 0x1505: 0x0004, + 0x1506: 0x0004, 0x1507: 0x0004, 0x1508: 0x0004, 0x1509: 0x0004, 0x150a: 0x0004, 0x150b: 0x0004, + 0x150c: 0x0004, 0x150d: 0x0004, 0x150e: 0x0004, 0x150f: 0x0004, 0x1510: 0x000c, 0x1511: 0x000c, + 0x1512: 0x000c, 0x1513: 0x000c, 0x1514: 0x000c, 0x1515: 0x000c, 0x1516: 0x000c, 0x1517: 0x000c, + 0x1518: 0x000c, 0x1519: 0x000c, 0x151a: 0x000c, 0x151b: 0x000c, 0x151c: 0x000c, 0x151d: 0x000c, + 0x151e: 0x000c, 0x151f: 0x000c, 0x1520: 0x000c, 0x1521: 0x000c, 0x1522: 0x000c, 0x1523: 0x000c, + 0x1524: 0x000c, 0x1525: 0x000c, 0x1526: 0x000c, 0x1527: 0x000c, 0x1528: 0x000c, 0x1529: 0x000c, + 0x152a: 0x000c, 0x152b: 0x000c, 0x152c: 0x000c, 0x152d: 0x000c, 0x152e: 0x000c, 0x152f: 0x000c, + 0x1530: 0x000c, + // Block 0x55, offset 0x1540 + 0x1540: 0x000a, 0x1541: 0x000a, 0x1543: 0x000a, 0x1544: 0x000a, 0x1545: 0x000a, + 0x1546: 0x000a, 0x1548: 0x000a, 0x1549: 0x000a, + 0x1554: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a, + 0x1558: 0x000a, + 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a, + 0x1565: 0x000a, 0x1567: 0x000a, 0x1569: 0x000a, + 0x156e: 0x0004, + 0x157a: 0x000a, 0x157b: 0x000a, + // Block 0x56, offset 0x1580 + 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, + 0x158a: 0x000a, 0x158b: 0x000a, + 0x158c: 0x000a, 0x158d: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a, + 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a, + 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a, + 0x159e: 0x000a, 0x159f: 0x000a, + // Block 0x57, offset 0x15c0 + 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a, + 0x15d0: 0x000a, 0x15d1: 0x000a, + 0x15d2: 0x000a, 0x15d3: 0x000a, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a, + 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a, + 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a, + 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a, + 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a, + 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a, + 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a, + 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a, + // Block 0x58, offset 0x1600 + 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a, + 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x000a, 0x1609: 0x000a, 0x160a: 0x000a, 0x160b: 0x000a, + 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a, + 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a, + 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a, + 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a, + 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x000a, + 0x162a: 0x000a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a, + 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a, + 0x1636: 0x000a, 0x1637: 0x000a, 0x1638: 0x000a, 0x1639: 0x000a, 0x163a: 0x000a, 0x163b: 0x000a, + 0x163c: 0x000a, 0x163d: 0x000a, 0x163e: 0x000a, 0x163f: 0x000a, + // Block 0x59, offset 0x1640 + 0x1640: 0x000a, 0x1641: 0x000a, 0x1642: 0x000a, 0x1643: 0x000a, 0x1644: 0x000a, 0x1645: 0x000a, + 0x1646: 0x000a, 0x1647: 0x000a, 0x1648: 0x000a, 0x1649: 0x000a, 0x164a: 0x000a, 0x164b: 0x000a, + 0x164c: 0x000a, 0x164d: 0x000a, 0x164e: 0x000a, 0x164f: 0x000a, 0x1650: 0x000a, 0x1651: 0x000a, + 0x1652: 0x0003, 0x1653: 0x0004, 0x1654: 0x000a, 0x1655: 0x000a, 0x1656: 0x000a, 0x1657: 0x000a, + 0x1658: 0x000a, 0x1659: 0x000a, 0x165a: 0x000a, 0x165b: 0x000a, 0x165c: 0x000a, 0x165d: 0x000a, + 0x165e: 0x000a, 0x165f: 0x000a, 0x1660: 0x000a, 0x1661: 0x000a, 0x1662: 0x000a, 0x1663: 0x000a, + 0x1664: 0x000a, 0x1665: 0x000a, 0x1666: 0x000a, 0x1667: 0x000a, 0x1668: 0x000a, 0x1669: 0x000a, + 0x166a: 0x000a, 0x166b: 0x000a, 0x166c: 0x000a, 0x166d: 0x000a, 0x166e: 0x000a, 0x166f: 0x000a, + 0x1670: 0x000a, 0x1671: 0x000a, 0x1672: 0x000a, 0x1673: 0x000a, 0x1674: 0x000a, 0x1675: 0x000a, + 0x1676: 0x000a, 0x1677: 0x000a, 0x1678: 0x000a, 0x1679: 0x000a, 0x167a: 0x000a, 0x167b: 0x000a, + 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a, + // Block 0x5a, offset 0x1680 + 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a, + 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x003a, 0x1689: 0x002a, 0x168a: 0x003a, 0x168b: 0x002a, + 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a, + 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1695: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a, + 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a, + 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a, + 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x009a, + 0x16aa: 0x008a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a, + 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a, + // Block 0x5b, offset 0x16c0 + 0x16fb: 0x000a, + 0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a, 0x16ff: 0x000a, + // Block 0x5c, offset 0x1700 + 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a, + 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a, + 0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a, + 0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a, + 0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a, + 0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a, + 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a, + 0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a, + 0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a, + 0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a, + 0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a, + // Block 0x5d, offset 0x1740 + 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a, + 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a, 0x174b: 0x000a, + 0x174c: 0x000a, 0x174d: 0x000a, 0x174e: 0x000a, 0x174f: 0x000a, 0x1750: 0x000a, 0x1751: 0x000a, + 0x1752: 0x000a, 0x1753: 0x000a, 0x1754: 0x000a, 0x1755: 0x000a, 0x1756: 0x000a, 0x1757: 0x000a, + 0x1758: 0x000a, 0x1759: 0x000a, 0x175a: 0x000a, 0x175b: 0x000a, 0x175c: 0x000a, 0x175d: 0x000a, + 0x175e: 0x000a, 0x175f: 0x000a, 0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a, + 0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, + // Block 0x5e, offset 0x1780 + 0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a, + 0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x000a, 0x1789: 0x000a, 0x178a: 0x000a, + 0x17a0: 0x000a, 0x17a1: 0x000a, 0x17a2: 0x000a, 0x17a3: 0x000a, + 0x17a4: 0x000a, 0x17a5: 0x000a, 0x17a6: 0x000a, 0x17a7: 0x000a, 0x17a8: 0x000a, 0x17a9: 0x000a, + 0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a, + 0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a, + 0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a, + 0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a, + 0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x0002, 0x17c9: 0x0002, 0x17ca: 0x0002, 0x17cb: 0x0002, + 0x17cc: 0x0002, 0x17cd: 0x0002, 0x17ce: 0x0002, 0x17cf: 0x0002, 0x17d0: 0x0002, 0x17d1: 0x0002, + 0x17d2: 0x0002, 0x17d3: 0x0002, 0x17d4: 0x0002, 0x17d5: 0x0002, 0x17d6: 0x0002, 0x17d7: 0x0002, + 0x17d8: 0x0002, 0x17d9: 0x0002, 0x17da: 0x0002, 0x17db: 0x0002, + // Block 0x60, offset 0x1800 + 0x182a: 0x000a, 0x182b: 0x000a, 0x182c: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a, + 0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a, + 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a, + 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a, + // Block 0x61, offset 0x1840 + 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a, + 0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a, + 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a, + 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a, + 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a, + 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a, + 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x000a, 0x1869: 0x000a, + 0x186a: 0x000a, 0x186b: 0x000a, 0x186d: 0x000a, 0x186e: 0x000a, 0x186f: 0x000a, + 0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a, + 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a, + 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a, + // Block 0x62, offset 0x1880 + 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x000a, + 0x1886: 0x000a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a, + 0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a, + 0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a, + 0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a, + 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a, + 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x003a, 0x18a9: 0x002a, + 0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a, + 0x18b0: 0x003a, 0x18b1: 0x002a, 0x18b2: 0x003a, 0x18b3: 0x002a, 0x18b4: 0x003a, 0x18b5: 0x002a, + 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a, + 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x009a, + 0x18c6: 0x008a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a, + 0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a, + 0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a, + 0x18d8: 0x000a, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a, + 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a, + 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x003a, 0x18e7: 0x002a, 0x18e8: 0x003a, 0x18e9: 0x002a, + 0x18ea: 0x003a, 0x18eb: 0x002a, 0x18ec: 0x003a, 0x18ed: 0x002a, 0x18ee: 0x003a, 0x18ef: 0x002a, + 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a, + 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a, + 0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a, + // Block 0x64, offset 0x1900 + 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x007a, 0x1904: 0x006a, 0x1905: 0x009a, + 0x1906: 0x008a, 0x1907: 0x00ba, 0x1908: 0x00aa, 0x1909: 0x009a, 0x190a: 0x008a, 0x190b: 0x007a, + 0x190c: 0x006a, 0x190d: 0x00da, 0x190e: 0x002a, 0x190f: 0x003a, 0x1910: 0x00ca, 0x1911: 0x009a, + 0x1912: 0x008a, 0x1913: 0x007a, 0x1914: 0x006a, 0x1915: 0x009a, 0x1916: 0x008a, 0x1917: 0x00ba, + 0x1918: 0x00aa, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a, + 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a, + 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a, + 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a, + 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a, + 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a, + 0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a, + // Block 0x65, offset 0x1940 + 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a, + 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a, + 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a, + 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a, + 0x1958: 0x003a, 0x1959: 0x002a, 0x195a: 0x003a, 0x195b: 0x002a, 0x195c: 0x000a, 0x195d: 0x000a, + 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a, + 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a, + 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a, + 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a, + 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a, + 0x197c: 0x003a, 0x197d: 0x002a, 0x197e: 0x000a, 0x197f: 0x000a, + // Block 0x66, offset 0x1980 + 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a, + 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a, + 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a, + 0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1996: 0x000a, 0x1997: 0x000a, + 0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a, + 0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a, + 0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a, + 0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a, + 0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, + 0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a, + 0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a, + 0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19c9: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a, + 0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a, + 0x19d2: 0x000a, 0x19d3: 0x000a, 0x19d4: 0x000a, 0x19d5: 0x000a, 0x19d7: 0x000a, + 0x19d8: 0x000a, 0x19d9: 0x000a, 0x19da: 0x000a, 0x19db: 0x000a, 0x19dc: 0x000a, 0x19dd: 0x000a, + 0x19de: 0x000a, 0x19df: 0x000a, 0x19e0: 0x000a, 0x19e1: 0x000a, 0x19e2: 0x000a, 0x19e3: 0x000a, + 0x19e4: 0x000a, 0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a, + 0x19ea: 0x000a, 0x19eb: 0x000a, 0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a, + 0x19f0: 0x000a, 0x19f1: 0x000a, 0x19f2: 0x000a, 0x19f3: 0x000a, 0x19f4: 0x000a, 0x19f5: 0x000a, + 0x19f6: 0x000a, 0x19f7: 0x000a, 0x19f8: 0x000a, 0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a, + 0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a, + // Block 0x68, offset 0x1a00 + 0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a, + 0x1a2a: 0x000a, 0x1a2f: 0x000c, + 0x1a30: 0x000c, 0x1a31: 0x000c, + 0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a, + 0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a, + // Block 0x69, offset 0x1a40 + 0x1a7f: 0x000c, + // Block 0x6a, offset 0x1a80 + 0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c, + 0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c, + 0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c, + 0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c, + 0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c, + 0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a, + 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a, + 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a, + 0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a, + 0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a, + 0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a, + 0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a, + 0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a, + 0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a, + 0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a, + 0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a, + 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a, + 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a, + 0x1b12: 0x000a, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a, + 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a, + 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a, + 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a, + 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a, + 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a, + 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a, + 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a, + 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a, + 0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a, + 0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a, + 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a, + 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a, + 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a, + 0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a, + 0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a, + 0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a, + 0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a, + 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a, + 0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a, + 0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a, + 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a, + 0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a, + 0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a, + 0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a, + 0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a, + 0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a, + 0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a, + 0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a, + 0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c, + 0x1c30: 0x000a, + 0x1c36: 0x000a, 0x1c37: 0x000a, + 0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a, + // Block 0x71, offset 0x1c40 + 0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a, + 0x1c60: 0x000a, + // Block 0x72, offset 0x1c80 + 0x1cbb: 0x000a, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a, + 0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a, + 0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a, + 0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a, + 0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a, + 0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a, + // Block 0x74, offset 0x1d00 + 0x1d1d: 0x000a, + 0x1d1e: 0x000a, + // Block 0x75, offset 0x1d40 + 0x1d50: 0x000a, 0x1d51: 0x000a, + 0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a, + 0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a, + 0x1d5e: 0x000a, 0x1d5f: 0x000a, + 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, + // Block 0x76, offset 0x1d80 + 0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a, + 0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a, + 0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a, + // Block 0x77, offset 0x1dc0 + 0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a, + // Block 0x78, offset 0x1e00 + 0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a, + // Block 0x79, offset 0x1e40 + 0x1e5e: 0x000a, 0x1e5f: 0x000a, + 0x1e7f: 0x000a, + // Block 0x7a, offset 0x1e80 + 0x1e90: 0x000a, 0x1e91: 0x000a, + 0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a, + 0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a, + 0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a, + 0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a, + 0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a, + 0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a, + 0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a, + 0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a, + 0x1ec6: 0x000a, + // Block 0x7c, offset 0x1f00 + 0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a, + // Block 0x7d, offset 0x1f40 + 0x1f6f: 0x000c, + 0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c, + 0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c, + 0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a, + // Block 0x7e, offset 0x1f80 + 0x1f9e: 0x000c, 0x1f9f: 0x000c, + // Block 0x7f, offset 0x1fc0 + 0x1ff0: 0x000c, 0x1ff1: 0x000c, + // Block 0x80, offset 0x2000 + 0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a, + 0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a, + 0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a, + 0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a, + 0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a, + 0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a, + // Block 0x81, offset 0x2040 + 0x2048: 0x000a, + // Block 0x82, offset 0x2080 + 0x2082: 0x000c, + 0x2086: 0x000c, 0x208b: 0x000c, + 0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a, + 0x20aa: 0x000a, 0x20ab: 0x000a, 0x20ac: 0x000c, + 0x20b8: 0x0004, 0x20b9: 0x0004, + // Block 0x83, offset 0x20c0 + 0x20f4: 0x000a, 0x20f5: 0x000a, + 0x20f6: 0x000a, 0x20f7: 0x000a, + // Block 0x84, offset 0x2100 + 0x2104: 0x000c, 0x2105: 0x000c, + 0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c, + 0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c, + 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c, + 0x2130: 0x000c, 0x2131: 0x000c, + 0x213f: 0x000c, + // Block 0x85, offset 0x2140 + 0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c, + 0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c, + // Block 0x86, offset 0x2180 + 0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c, + 0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c, + // Block 0x87, offset 0x21c0 + 0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c, + 0x21f3: 0x000c, + 0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c, + 0x21fc: 0x000c, 0x21fd: 0x000c, + // Block 0x88, offset 0x2200 + 0x2225: 0x000c, + // Block 0x89, offset 0x2240 + 0x2269: 0x000c, + 0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c, + 0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c, + 0x2276: 0x000c, + // Block 0x8a, offset 0x2280 + 0x2283: 0x000c, + 0x228c: 0x000c, + 0x22bc: 0x000c, + // Block 0x8b, offset 0x22c0 + 0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c, + 0x22f7: 0x000c, 0x22f8: 0x000c, + 0x22fe: 0x000c, 0x22ff: 0x000c, + // Block 0x8c, offset 0x2300 + 0x2301: 0x000c, + 0x232c: 0x000c, 0x232d: 0x000c, + 0x2336: 0x000c, + // Block 0x8d, offset 0x2340 + 0x236a: 0x000a, 0x236b: 0x000a, + // Block 0x8e, offset 0x2380 + 0x23a5: 0x000c, 0x23a8: 0x000c, + 0x23ad: 0x000c, + // Block 0x8f, offset 0x23c0 + 0x23dd: 0x0001, + 0x23de: 0x000c, 0x23df: 0x0001, 0x23e0: 0x0001, 0x23e1: 0x0001, 0x23e2: 0x0001, 0x23e3: 0x0001, + 0x23e4: 0x0001, 0x23e5: 0x0001, 0x23e6: 0x0001, 0x23e7: 0x0001, 0x23e8: 0x0001, 0x23e9: 0x0003, + 0x23ea: 0x0001, 0x23eb: 0x0001, 0x23ec: 0x0001, 0x23ed: 0x0001, 0x23ee: 0x0001, 0x23ef: 0x0001, + 0x23f0: 0x0001, 0x23f1: 0x0001, 0x23f2: 0x0001, 0x23f3: 0x0001, 0x23f4: 0x0001, 0x23f5: 0x0001, + 0x23f6: 0x0001, 0x23f7: 0x0001, 0x23f8: 0x0001, 0x23f9: 0x0001, 0x23fa: 0x0001, 0x23fb: 0x0001, + 0x23fc: 0x0001, 0x23fd: 0x0001, 0x23fe: 0x0001, 0x23ff: 0x0001, + // Block 0x90, offset 0x2400 + 0x2400: 0x0001, 0x2401: 0x0001, 0x2402: 0x0001, 0x2403: 0x0001, 0x2404: 0x0001, 0x2405: 0x0001, + 0x2406: 0x0001, 0x2407: 0x0001, 0x2408: 0x0001, 0x2409: 0x0001, 0x240a: 0x0001, 0x240b: 0x0001, + 0x240c: 0x0001, 0x240d: 0x0001, 0x240e: 0x0001, 0x240f: 0x0001, 0x2410: 0x000d, 0x2411: 0x000d, + 0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d, + 0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d, + 0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d, + 0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d, + 0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d, + 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d, + 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d, + 0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000d, 0x243f: 0x000d, + // Block 0x91, offset 0x2440 + 0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d, + 0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d, + 0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000d, 0x2451: 0x000d, + 0x2452: 0x000d, 0x2453: 0x000d, 0x2454: 0x000d, 0x2455: 0x000d, 0x2456: 0x000d, 0x2457: 0x000d, + 0x2458: 0x000d, 0x2459: 0x000d, 0x245a: 0x000d, 0x245b: 0x000d, 0x245c: 0x000d, 0x245d: 0x000d, + 0x245e: 0x000d, 0x245f: 0x000d, 0x2460: 0x000d, 0x2461: 0x000d, 0x2462: 0x000d, 0x2463: 0x000d, + 0x2464: 0x000d, 0x2465: 0x000d, 0x2466: 0x000d, 0x2467: 0x000d, 0x2468: 0x000d, 0x2469: 0x000d, + 0x246a: 0x000d, 0x246b: 0x000d, 0x246c: 0x000d, 0x246d: 0x000d, 0x246e: 0x000d, 0x246f: 0x000d, + 0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d, + 0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d, + 0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000a, 0x247f: 0x000a, + // Block 0x92, offset 0x2480 + 0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d, + 0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d, + 0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000d, 0x2490: 0x000b, 0x2491: 0x000b, + 0x2492: 0x000b, 0x2493: 0x000b, 0x2494: 0x000b, 0x2495: 0x000b, 0x2496: 0x000b, 0x2497: 0x000b, + 0x2498: 0x000b, 0x2499: 0x000b, 0x249a: 0x000b, 0x249b: 0x000b, 0x249c: 0x000b, 0x249d: 0x000b, + 0x249e: 0x000b, 0x249f: 0x000b, 0x24a0: 0x000b, 0x24a1: 0x000b, 0x24a2: 0x000b, 0x24a3: 0x000b, + 0x24a4: 0x000b, 0x24a5: 0x000b, 0x24a6: 0x000b, 0x24a7: 0x000b, 0x24a8: 0x000b, 0x24a9: 0x000b, + 0x24aa: 0x000b, 0x24ab: 0x000b, 0x24ac: 0x000b, 0x24ad: 0x000b, 0x24ae: 0x000b, 0x24af: 0x000b, + 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d, + 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d, + 0x24bc: 0x000d, 0x24bd: 0x000a, 0x24be: 0x000d, 0x24bf: 0x000d, + // Block 0x93, offset 0x24c0 + 0x24c0: 0x000c, 0x24c1: 0x000c, 0x24c2: 0x000c, 0x24c3: 0x000c, 0x24c4: 0x000c, 0x24c5: 0x000c, + 0x24c6: 0x000c, 0x24c7: 0x000c, 0x24c8: 0x000c, 0x24c9: 0x000c, 0x24ca: 0x000c, 0x24cb: 0x000c, + 0x24cc: 0x000c, 0x24cd: 0x000c, 0x24ce: 0x000c, 0x24cf: 0x000c, 0x24d0: 0x000a, 0x24d1: 0x000a, + 0x24d2: 0x000a, 0x24d3: 0x000a, 0x24d4: 0x000a, 0x24d5: 0x000a, 0x24d6: 0x000a, 0x24d7: 0x000a, + 0x24d8: 0x000a, 0x24d9: 0x000a, + 0x24e0: 0x000c, 0x24e1: 0x000c, 0x24e2: 0x000c, 0x24e3: 0x000c, + 0x24e4: 0x000c, 0x24e5: 0x000c, 0x24e6: 0x000c, 0x24e7: 0x000c, 0x24e8: 0x000c, 0x24e9: 0x000c, + 0x24ea: 0x000c, 0x24eb: 0x000c, 0x24ec: 0x000c, 0x24ed: 0x000c, 0x24ee: 0x000c, 0x24ef: 0x000c, + 0x24f0: 0x000a, 0x24f1: 0x000a, 0x24f2: 0x000a, 0x24f3: 0x000a, 0x24f4: 0x000a, 0x24f5: 0x000a, + 0x24f6: 0x000a, 0x24f7: 0x000a, 0x24f8: 0x000a, 0x24f9: 0x000a, 0x24fa: 0x000a, 0x24fb: 0x000a, + 0x24fc: 0x000a, 0x24fd: 0x000a, 0x24fe: 0x000a, 0x24ff: 0x000a, + // Block 0x94, offset 0x2500 + 0x2500: 0x000a, 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x000a, 0x2504: 0x000a, 0x2505: 0x000a, + 0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x000a, 0x2509: 0x000a, 0x250a: 0x000a, 0x250b: 0x000a, + 0x250c: 0x000a, 0x250d: 0x000a, 0x250e: 0x000a, 0x250f: 0x000a, 0x2510: 0x0006, 0x2511: 0x000a, + 0x2512: 0x0006, 0x2514: 0x000a, 0x2515: 0x0006, 0x2516: 0x000a, 0x2517: 0x000a, + 0x2518: 0x000a, 0x2519: 0x009a, 0x251a: 0x008a, 0x251b: 0x007a, 0x251c: 0x006a, 0x251d: 0x009a, + 0x251e: 0x008a, 0x251f: 0x0004, 0x2520: 0x000a, 0x2521: 0x000a, 0x2522: 0x0003, 0x2523: 0x0003, + 0x2524: 0x000a, 0x2525: 0x000a, 0x2526: 0x000a, 0x2528: 0x000a, 0x2529: 0x0004, + 0x252a: 0x0004, 0x252b: 0x000a, + 0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d, + 0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d, + 0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000d, + // Block 0x95, offset 0x2540 + 0x2540: 0x000d, 0x2541: 0x000d, 0x2542: 0x000d, 0x2543: 0x000d, 0x2544: 0x000d, 0x2545: 0x000d, + 0x2546: 0x000d, 0x2547: 0x000d, 0x2548: 0x000d, 0x2549: 0x000d, 0x254a: 0x000d, 0x254b: 0x000d, + 0x254c: 0x000d, 0x254d: 0x000d, 0x254e: 0x000d, 0x254f: 0x000d, 0x2550: 0x000d, 0x2551: 0x000d, + 0x2552: 0x000d, 0x2553: 0x000d, 0x2554: 0x000d, 0x2555: 0x000d, 0x2556: 0x000d, 0x2557: 0x000d, + 0x2558: 0x000d, 0x2559: 0x000d, 0x255a: 0x000d, 0x255b: 0x000d, 0x255c: 0x000d, 0x255d: 0x000d, + 0x255e: 0x000d, 0x255f: 0x000d, 0x2560: 0x000d, 0x2561: 0x000d, 0x2562: 0x000d, 0x2563: 0x000d, + 0x2564: 0x000d, 0x2565: 0x000d, 0x2566: 0x000d, 0x2567: 0x000d, 0x2568: 0x000d, 0x2569: 0x000d, + 0x256a: 0x000d, 0x256b: 0x000d, 0x256c: 0x000d, 0x256d: 0x000d, 0x256e: 0x000d, 0x256f: 0x000d, + 0x2570: 0x000d, 0x2571: 0x000d, 0x2572: 0x000d, 0x2573: 0x000d, 0x2574: 0x000d, 0x2575: 0x000d, + 0x2576: 0x000d, 0x2577: 0x000d, 0x2578: 0x000d, 0x2579: 0x000d, 0x257a: 0x000d, 0x257b: 0x000d, + 0x257c: 0x000d, 0x257d: 0x000d, 0x257e: 0x000d, 0x257f: 0x000b, + // Block 0x96, offset 0x2580 + 0x2581: 0x000a, 0x2582: 0x000a, 0x2583: 0x0004, 0x2584: 0x0004, 0x2585: 0x0004, + 0x2586: 0x000a, 0x2587: 0x000a, 0x2588: 0x003a, 0x2589: 0x002a, 0x258a: 0x000a, 0x258b: 0x0003, + 0x258c: 0x0006, 0x258d: 0x0003, 0x258e: 0x0006, 0x258f: 0x0006, 0x2590: 0x0002, 0x2591: 0x0002, + 0x2592: 0x0002, 0x2593: 0x0002, 0x2594: 0x0002, 0x2595: 0x0002, 0x2596: 0x0002, 0x2597: 0x0002, + 0x2598: 0x0002, 0x2599: 0x0002, 0x259a: 0x0006, 0x259b: 0x000a, 0x259c: 0x000a, 0x259d: 0x000a, + 0x259e: 0x000a, 0x259f: 0x000a, 0x25a0: 0x000a, + 0x25bb: 0x005a, + 0x25bc: 0x000a, 0x25bd: 0x004a, 0x25be: 0x000a, 0x25bf: 0x000a, + // Block 0x97, offset 0x25c0 + 0x25c0: 0x000a, + 0x25db: 0x005a, 0x25dc: 0x000a, 0x25dd: 0x004a, + 0x25de: 0x000a, 0x25df: 0x00fa, 0x25e0: 0x00ea, 0x25e1: 0x000a, 0x25e2: 0x003a, 0x25e3: 0x002a, + 0x25e4: 0x000a, 0x25e5: 0x000a, + // Block 0x98, offset 0x2600 + 0x2620: 0x0004, 0x2621: 0x0004, 0x2622: 0x000a, 0x2623: 0x000a, + 0x2624: 0x000a, 0x2625: 0x0004, 0x2626: 0x0004, 0x2628: 0x000a, 0x2629: 0x000a, + 0x262a: 0x000a, 0x262b: 0x000a, 0x262c: 0x000a, 0x262d: 0x000a, 0x262e: 0x000a, + 0x2630: 0x000b, 0x2631: 0x000b, 0x2632: 0x000b, 0x2633: 0x000b, 0x2634: 0x000b, 0x2635: 0x000b, + 0x2636: 0x000b, 0x2637: 0x000b, 0x2638: 0x000b, 0x2639: 0x000a, 0x263a: 0x000a, 0x263b: 0x000a, + 0x263c: 0x000a, 0x263d: 0x000a, 0x263e: 0x000b, 0x263f: 0x000b, + // Block 0x99, offset 0x2640 + 0x2641: 0x000a, + // Block 0x9a, offset 0x2680 + 0x2680: 0x000a, 0x2681: 0x000a, 0x2682: 0x000a, 0x2683: 0x000a, 0x2684: 0x000a, 0x2685: 0x000a, + 0x2686: 0x000a, 0x2687: 0x000a, 0x2688: 0x000a, 0x2689: 0x000a, 0x268a: 0x000a, 0x268b: 0x000a, + 0x268c: 0x000a, 0x2690: 0x000a, 0x2691: 0x000a, + 0x2692: 0x000a, 0x2693: 0x000a, 0x2694: 0x000a, 0x2695: 0x000a, 0x2696: 0x000a, 0x2697: 0x000a, + 0x2698: 0x000a, 0x2699: 0x000a, 0x269a: 0x000a, 0x269b: 0x000a, 0x269c: 0x000a, + 0x26a0: 0x000a, + // Block 0x9b, offset 0x26c0 + 0x26fd: 0x000c, + // Block 0x9c, offset 0x2700 + 0x2720: 0x000c, 0x2721: 0x0002, 0x2722: 0x0002, 0x2723: 0x0002, + 0x2724: 0x0002, 0x2725: 0x0002, 0x2726: 0x0002, 0x2727: 0x0002, 0x2728: 0x0002, 0x2729: 0x0002, + 0x272a: 0x0002, 0x272b: 0x0002, 0x272c: 0x0002, 0x272d: 0x0002, 0x272e: 0x0002, 0x272f: 0x0002, + 0x2730: 0x0002, 0x2731: 0x0002, 0x2732: 0x0002, 0x2733: 0x0002, 0x2734: 0x0002, 0x2735: 0x0002, + 0x2736: 0x0002, 0x2737: 0x0002, 0x2738: 0x0002, 0x2739: 0x0002, 0x273a: 0x0002, 0x273b: 0x0002, + // Block 0x9d, offset 0x2740 + 0x2776: 0x000c, 0x2777: 0x000c, 0x2778: 0x000c, 0x2779: 0x000c, 0x277a: 0x000c, + // Block 0x9e, offset 0x2780 + 0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001, + 0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001, + 0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001, + 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001, + 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001, + 0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001, + 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001, + 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001, + 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001, + 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001, + 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001, + // Block 0x9f, offset 0x27c0 + 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001, + 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001, + 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001, + 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001, + 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001, + 0x27de: 0x0001, 0x27df: 0x000a, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001, + 0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001, + 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001, + 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001, + 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001, + 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001, + // Block 0xa0, offset 0x2800 + 0x2800: 0x0001, 0x2801: 0x000c, 0x2802: 0x000c, 0x2803: 0x000c, 0x2804: 0x0001, 0x2805: 0x000c, + 0x2806: 0x000c, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001, + 0x280c: 0x000c, 0x280d: 0x000c, 0x280e: 0x000c, 0x280f: 0x000c, 0x2810: 0x0001, 0x2811: 0x0001, + 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001, + 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001, + 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001, + 0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001, + 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001, + 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001, + 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x000c, 0x2839: 0x000c, 0x283a: 0x000c, 0x283b: 0x0001, + 0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x000c, + // Block 0xa1, offset 0x2840 + 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001, + 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001, + 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001, + 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001, + 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001, + 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001, + 0x2864: 0x0001, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001, + 0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001, + 0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001, + 0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x0001, 0x287a: 0x0001, 0x287b: 0x0001, + 0x287c: 0x0001, 0x287d: 0x0001, 0x287e: 0x0001, 0x287f: 0x0001, + // Block 0xa2, offset 0x2880 + 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001, + 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001, + 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001, + 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001, + 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001, + 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001, + 0x28a4: 0x0001, 0x28a5: 0x0001, 0x28a6: 0x0001, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001, + 0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001, + 0x28b0: 0x0001, 0x28b1: 0x0001, 0x28b2: 0x0001, 0x28b3: 0x0001, 0x28b4: 0x0001, 0x28b5: 0x0001, + 0x28b6: 0x0001, 0x28b7: 0x0001, 0x28b8: 0x0001, 0x28b9: 0x000a, 0x28ba: 0x000a, 0x28bb: 0x000a, + 0x28bc: 0x000a, 0x28bd: 0x000a, 0x28be: 0x000a, 0x28bf: 0x000a, + // Block 0xa3, offset 0x28c0 + 0x28c0: 0x000d, 0x28c1: 0x000d, 0x28c2: 0x000d, 0x28c3: 0x000d, 0x28c4: 0x000d, 0x28c5: 0x000d, + 0x28c6: 0x000d, 0x28c7: 0x000d, 0x28c8: 0x000d, 0x28c9: 0x000d, 0x28ca: 0x000d, 0x28cb: 0x000d, + 0x28cc: 0x000d, 0x28cd: 0x000d, 0x28ce: 0x000d, 0x28cf: 0x000d, 0x28d0: 0x000d, 0x28d1: 0x000d, + 0x28d2: 0x000d, 0x28d3: 0x000d, 0x28d4: 0x000d, 0x28d5: 0x000d, 0x28d6: 0x000d, 0x28d7: 0x000d, + 0x28d8: 0x000d, 0x28d9: 0x000d, 0x28da: 0x000d, 0x28db: 0x000d, 0x28dc: 0x000d, 0x28dd: 0x000d, + 0x28de: 0x000d, 0x28df: 0x000d, 0x28e0: 0x000d, 0x28e1: 0x000d, 0x28e2: 0x000d, 0x28e3: 0x000d, + 0x28e4: 0x000c, 0x28e5: 0x000c, 0x28e6: 0x000c, 0x28e7: 0x000c, 0x28e8: 0x000d, 0x28e9: 0x000d, + 0x28ea: 0x000d, 0x28eb: 0x000d, 0x28ec: 0x000d, 0x28ed: 0x000d, 0x28ee: 0x000d, 0x28ef: 0x000d, + 0x28f0: 0x0005, 0x28f1: 0x0005, 0x28f2: 0x0005, 0x28f3: 0x0005, 0x28f4: 0x0005, 0x28f5: 0x0005, + 0x28f6: 0x0005, 0x28f7: 0x0005, 0x28f8: 0x0005, 0x28f9: 0x0005, 0x28fa: 0x000d, 0x28fb: 0x000d, + 0x28fc: 0x000d, 0x28fd: 0x000d, 0x28fe: 0x000d, 0x28ff: 0x000d, + // Block 0xa4, offset 0x2900 + 0x2900: 0x0001, 0x2901: 0x0001, 0x2902: 0x0001, 0x2903: 0x0001, 0x2904: 0x0001, 0x2905: 0x0001, + 0x2906: 0x0001, 0x2907: 0x0001, 0x2908: 0x0001, 0x2909: 0x0001, 0x290a: 0x0001, 0x290b: 0x0001, + 0x290c: 0x0001, 0x290d: 0x0001, 0x290e: 0x0001, 0x290f: 0x0001, 0x2910: 0x0001, 0x2911: 0x0001, + 0x2912: 0x0001, 0x2913: 0x0001, 0x2914: 0x0001, 0x2915: 0x0001, 0x2916: 0x0001, 0x2917: 0x0001, + 0x2918: 0x0001, 0x2919: 0x0001, 0x291a: 0x0001, 0x291b: 0x0001, 0x291c: 0x0001, 0x291d: 0x0001, + 0x291e: 0x0001, 0x291f: 0x0001, 0x2920: 0x0005, 0x2921: 0x0005, 0x2922: 0x0005, 0x2923: 0x0005, + 0x2924: 0x0005, 0x2925: 0x0005, 0x2926: 0x0005, 0x2927: 0x0005, 0x2928: 0x0005, 0x2929: 0x0005, + 0x292a: 0x0005, 0x292b: 0x0005, 0x292c: 0x0005, 0x292d: 0x0005, 0x292e: 0x0005, 0x292f: 0x0005, + 0x2930: 0x0005, 0x2931: 0x0005, 0x2932: 0x0005, 0x2933: 0x0005, 0x2934: 0x0005, 0x2935: 0x0005, + 0x2936: 0x0005, 0x2937: 0x0005, 0x2938: 0x0005, 0x2939: 0x0005, 0x293a: 0x0005, 0x293b: 0x0005, + 0x293c: 0x0005, 0x293d: 0x0005, 0x293e: 0x0005, 0x293f: 0x0001, + // Block 0xa5, offset 0x2940 + 0x2940: 0x0001, 0x2941: 0x0001, 0x2942: 0x0001, 0x2943: 0x0001, 0x2944: 0x0001, 0x2945: 0x0001, + 0x2946: 0x0001, 0x2947: 0x0001, 0x2948: 0x0001, 0x2949: 0x0001, 0x294a: 0x0001, 0x294b: 0x0001, + 0x294c: 0x0001, 0x294d: 0x0001, 0x294e: 0x0001, 0x294f: 0x0001, 0x2950: 0x0001, 0x2951: 0x0001, + 0x2952: 0x0001, 0x2953: 0x0001, 0x2954: 0x0001, 0x2955: 0x0001, 0x2956: 0x0001, 0x2957: 0x0001, + 0x2958: 0x0001, 0x2959: 0x0001, 0x295a: 0x0001, 0x295b: 0x0001, 0x295c: 0x0001, 0x295d: 0x0001, + 0x295e: 0x0001, 0x295f: 0x0001, 0x2960: 0x0001, 0x2961: 0x0001, 0x2962: 0x0001, 0x2963: 0x0001, + 0x2964: 0x0001, 0x2965: 0x0001, 0x2966: 0x0001, 0x2967: 0x0001, 0x2968: 0x0001, 0x2969: 0x0001, + 0x296a: 0x0001, 0x296b: 0x000c, 0x296c: 0x000c, 0x296d: 0x0001, 0x296e: 0x0001, 0x296f: 0x0001, + 0x2970: 0x0001, 0x2971: 0x0001, 0x2972: 0x0001, 0x2973: 0x0001, 0x2974: 0x0001, 0x2975: 0x0001, + 0x2976: 0x0001, 0x2977: 0x0001, 0x2978: 0x0001, 0x2979: 0x0001, 0x297a: 0x0001, 0x297b: 0x0001, + 0x297c: 0x0001, 0x297d: 0x0001, 0x297e: 0x0001, 0x297f: 0x0001, + // Block 0xa6, offset 0x2980 + 0x2980: 0x0001, 0x2981: 0x0001, 0x2982: 0x0001, 0x2983: 0x0001, 0x2984: 0x0001, 0x2985: 0x0001, + 0x2986: 0x0001, 0x2987: 0x0001, 0x2988: 0x0001, 0x2989: 0x0001, 0x298a: 0x0001, 0x298b: 0x0001, + 0x298c: 0x0001, 0x298d: 0x0001, 0x298e: 0x0001, 0x298f: 0x0001, 0x2990: 0x0001, 0x2991: 0x0001, + 0x2992: 0x0001, 0x2993: 0x0001, 0x2994: 0x0001, 0x2995: 0x0001, 0x2996: 0x0001, 0x2997: 0x0001, + 0x2998: 0x0001, 0x2999: 0x0001, 0x299a: 0x0001, 0x299b: 0x0001, 0x299c: 0x0001, 0x299d: 0x0001, + 0x299e: 0x0001, 0x299f: 0x0001, 0x29a0: 0x0001, 0x29a1: 0x0001, 0x29a2: 0x0001, 0x29a3: 0x0001, + 0x29a4: 0x0001, 0x29a5: 0x0001, 0x29a6: 0x0001, 0x29a7: 0x0001, 0x29a8: 0x0001, 0x29a9: 0x0001, + 0x29aa: 0x0001, 0x29ab: 0x0001, 0x29ac: 0x0001, 0x29ad: 0x0001, 0x29ae: 0x0001, 0x29af: 0x0001, + 0x29b0: 0x000d, 0x29b1: 0x000d, 0x29b2: 0x000d, 0x29b3: 0x000d, 0x29b4: 0x000d, 0x29b5: 0x000d, + 0x29b6: 0x000d, 0x29b7: 0x000d, 0x29b8: 0x000d, 0x29b9: 0x000d, 0x29ba: 0x000d, 0x29bb: 0x000d, + 0x29bc: 0x000d, 0x29bd: 0x000d, 0x29be: 0x000d, 0x29bf: 0x000d, + // Block 0xa7, offset 0x29c0 + 0x29c0: 0x000d, 0x29c1: 0x000d, 0x29c2: 0x000d, 0x29c3: 0x000d, 0x29c4: 0x000d, 0x29c5: 0x000d, + 0x29c6: 0x000c, 0x29c7: 0x000c, 0x29c8: 0x000c, 0x29c9: 0x000c, 0x29ca: 0x000c, 0x29cb: 0x000c, + 0x29cc: 0x000c, 0x29cd: 0x000c, 0x29ce: 0x000c, 0x29cf: 0x000c, 0x29d0: 0x000c, 0x29d1: 0x000d, + 0x29d2: 0x000d, 0x29d3: 0x000d, 0x29d4: 0x000d, 0x29d5: 0x000d, 0x29d6: 0x000d, 0x29d7: 0x000d, + 0x29d8: 0x000d, 0x29d9: 0x000d, 0x29da: 0x000d, 0x29db: 0x000d, 0x29dc: 0x000d, 0x29dd: 0x000d, + 0x29de: 0x000d, 0x29df: 0x000d, 0x29e0: 0x000d, 0x29e1: 0x000d, 0x29e2: 0x000d, 0x29e3: 0x000d, + 0x29e4: 0x000d, 0x29e5: 0x000d, 0x29e6: 0x000d, 0x29e7: 0x000d, 0x29e8: 0x000d, 0x29e9: 0x000d, + 0x29ea: 0x000d, 0x29eb: 0x000d, 0x29ec: 0x000d, 0x29ed: 0x000d, 0x29ee: 0x000d, 0x29ef: 0x000d, + 0x29f0: 0x0001, 0x29f1: 0x0001, 0x29f2: 0x0001, 0x29f3: 0x0001, 0x29f4: 0x0001, 0x29f5: 0x0001, + 0x29f6: 0x0001, 0x29f7: 0x0001, 0x29f8: 0x0001, 0x29f9: 0x0001, 0x29fa: 0x0001, 0x29fb: 0x0001, + 0x29fc: 0x0001, 0x29fd: 0x0001, 0x29fe: 0x0001, 0x29ff: 0x0001, + // Block 0xa8, offset 0x2a00 + 0x2a01: 0x000c, + 0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c, + 0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c, 0x2a3f: 0x000c, + // Block 0xa9, offset 0x2a40 + 0x2a40: 0x000c, 0x2a41: 0x000c, 0x2a42: 0x000c, 0x2a43: 0x000c, 0x2a44: 0x000c, 0x2a45: 0x000c, + 0x2a46: 0x000c, + 0x2a52: 0x000a, 0x2a53: 0x000a, 0x2a54: 0x000a, 0x2a55: 0x000a, 0x2a56: 0x000a, 0x2a57: 0x000a, + 0x2a58: 0x000a, 0x2a59: 0x000a, 0x2a5a: 0x000a, 0x2a5b: 0x000a, 0x2a5c: 0x000a, 0x2a5d: 0x000a, + 0x2a5e: 0x000a, 0x2a5f: 0x000a, 0x2a60: 0x000a, 0x2a61: 0x000a, 0x2a62: 0x000a, 0x2a63: 0x000a, + 0x2a64: 0x000a, 0x2a65: 0x000a, + 0x2a7f: 0x000c, + // Block 0xaa, offset 0x2a80 + 0x2a80: 0x000c, 0x2a81: 0x000c, + 0x2ab3: 0x000c, 0x2ab4: 0x000c, 0x2ab5: 0x000c, + 0x2ab6: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c, + // Block 0xab, offset 0x2ac0 + 0x2ac0: 0x000c, 0x2ac1: 0x000c, 0x2ac2: 0x000c, + 0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c, + 0x2aea: 0x000c, 0x2aeb: 0x000c, 0x2aed: 0x000c, 0x2aee: 0x000c, 0x2aef: 0x000c, + 0x2af0: 0x000c, 0x2af1: 0x000c, 0x2af2: 0x000c, 0x2af3: 0x000c, 0x2af4: 0x000c, + // Block 0xac, offset 0x2b00 + 0x2b33: 0x000c, + // Block 0xad, offset 0x2b40 + 0x2b40: 0x000c, 0x2b41: 0x000c, + 0x2b76: 0x000c, 0x2b77: 0x000c, 0x2b78: 0x000c, 0x2b79: 0x000c, 0x2b7a: 0x000c, 0x2b7b: 0x000c, + 0x2b7c: 0x000c, 0x2b7d: 0x000c, 0x2b7e: 0x000c, + // Block 0xae, offset 0x2b80 + 0x2b89: 0x000c, 0x2b8a: 0x000c, 0x2b8b: 0x000c, + 0x2b8c: 0x000c, 0x2b8f: 0x000c, + // Block 0xaf, offset 0x2bc0 + 0x2bef: 0x000c, + 0x2bf0: 0x000c, 0x2bf1: 0x000c, 0x2bf4: 0x000c, + 0x2bf6: 0x000c, 0x2bf7: 0x000c, + 0x2bfe: 0x000c, + // Block 0xb0, offset 0x2c00 + 0x2c1f: 0x000c, 0x2c23: 0x000c, + 0x2c24: 0x000c, 0x2c25: 0x000c, 0x2c26: 0x000c, 0x2c27: 0x000c, 0x2c28: 0x000c, 0x2c29: 0x000c, + 0x2c2a: 0x000c, + // Block 0xb1, offset 0x2c40 + 0x2c40: 0x000c, + 0x2c66: 0x000c, 0x2c67: 0x000c, 0x2c68: 0x000c, 0x2c69: 0x000c, + 0x2c6a: 0x000c, 0x2c6b: 0x000c, 0x2c6c: 0x000c, + 0x2c70: 0x000c, 0x2c71: 0x000c, 0x2c72: 0x000c, 0x2c73: 0x000c, 0x2c74: 0x000c, + // Block 0xb2, offset 0x2c80 + 0x2cb8: 0x000c, 0x2cb9: 0x000c, 0x2cba: 0x000c, 0x2cbb: 0x000c, + 0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbe: 0x000c, 0x2cbf: 0x000c, + // Block 0xb3, offset 0x2cc0 + 0x2cc2: 0x000c, 0x2cc3: 0x000c, 0x2cc4: 0x000c, + 0x2cc6: 0x000c, + 0x2cde: 0x000c, + // Block 0xb4, offset 0x2d00 + 0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c, + 0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d3a: 0x000c, + 0x2d3f: 0x000c, + // Block 0xb5, offset 0x2d40 + 0x2d40: 0x000c, 0x2d42: 0x000c, 0x2d43: 0x000c, + // Block 0xb6, offset 0x2d80 + 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c, + 0x2dbc: 0x000c, 0x2dbd: 0x000c, 0x2dbf: 0x000c, + // Block 0xb7, offset 0x2dc0 + 0x2dc0: 0x000c, + 0x2ddc: 0x000c, 0x2ddd: 0x000c, + // Block 0xb8, offset 0x2e00 + 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c, + 0x2e36: 0x000c, 0x2e37: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c, + 0x2e3d: 0x000c, 0x2e3f: 0x000c, + // Block 0xb9, offset 0x2e40 + 0x2e40: 0x000c, + 0x2e60: 0x000a, 0x2e61: 0x000a, 0x2e62: 0x000a, 0x2e63: 0x000a, + 0x2e64: 0x000a, 0x2e65: 0x000a, 0x2e66: 0x000a, 0x2e67: 0x000a, 0x2e68: 0x000a, 0x2e69: 0x000a, + 0x2e6a: 0x000a, 0x2e6b: 0x000a, 0x2e6c: 0x000a, + // Block 0xba, offset 0x2e80 + 0x2eab: 0x000c, 0x2ead: 0x000c, + 0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c, + 0x2eb7: 0x000c, + // Block 0xbb, offset 0x2ec0 + 0x2edd: 0x000c, + 0x2ede: 0x000c, 0x2edf: 0x000c, 0x2ee2: 0x000c, 0x2ee3: 0x000c, + 0x2ee4: 0x000c, 0x2ee5: 0x000c, 0x2ee7: 0x000c, 0x2ee8: 0x000c, 0x2ee9: 0x000c, + 0x2eea: 0x000c, 0x2eeb: 0x000c, + // Block 0xbc, offset 0x2f00 + 0x2f2f: 0x000c, + 0x2f30: 0x000c, 0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c, + 0x2f36: 0x000c, 0x2f37: 0x000c, 0x2f39: 0x000c, 0x2f3a: 0x000c, + // Block 0xbd, offset 0x2f40 + 0x2f7b: 0x000c, + 0x2f7c: 0x000c, 0x2f7e: 0x000c, + // Block 0xbe, offset 0x2f80 + 0x2f83: 0x000c, + // Block 0xbf, offset 0x2fc0 + 0x2fd4: 0x000c, 0x2fd5: 0x000c, 0x2fd6: 0x000c, 0x2fd7: 0x000c, + 0x2fda: 0x000c, 0x2fdb: 0x000c, + 0x2fe0: 0x000c, + // Block 0xc0, offset 0x3000 + 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c, + 0x3006: 0x000c, 0x3009: 0x000c, 0x300a: 0x000c, + 0x3033: 0x000c, 0x3034: 0x000c, 0x3035: 0x000c, + 0x3036: 0x000c, 0x3037: 0x000c, 0x3038: 0x000c, 0x303b: 0x000c, + 0x303c: 0x000c, 0x303d: 0x000c, 0x303e: 0x000c, + // Block 0xc1, offset 0x3040 + 0x3047: 0x000c, + 0x3051: 0x000c, + 0x3052: 0x000c, 0x3053: 0x000c, 0x3054: 0x000c, 0x3055: 0x000c, 0x3056: 0x000c, + 0x3059: 0x000c, 0x305a: 0x000c, 0x305b: 0x000c, + // Block 0xc2, offset 0x3080 + 0x308a: 0x000c, 0x308b: 0x000c, + 0x308c: 0x000c, 0x308d: 0x000c, 0x308e: 0x000c, 0x308f: 0x000c, 0x3090: 0x000c, 0x3091: 0x000c, + 0x3092: 0x000c, 0x3093: 0x000c, 0x3094: 0x000c, 0x3095: 0x000c, 0x3096: 0x000c, + 0x3098: 0x000c, 0x3099: 0x000c, + // Block 0xc3, offset 0x30c0 + 0x30f0: 0x000c, 0x30f1: 0x000c, 0x30f2: 0x000c, 0x30f3: 0x000c, 0x30f4: 0x000c, 0x30f5: 0x000c, + 0x30f6: 0x000c, 0x30f8: 0x000c, 0x30f9: 0x000c, 0x30fa: 0x000c, 0x30fb: 0x000c, + 0x30fc: 0x000c, 0x30fd: 0x000c, + // Block 0xc4, offset 0x3100 + 0x3112: 0x000c, 0x3113: 0x000c, 0x3114: 0x000c, 0x3115: 0x000c, 0x3116: 0x000c, 0x3117: 0x000c, + 0x3118: 0x000c, 0x3119: 0x000c, 0x311a: 0x000c, 0x311b: 0x000c, 0x311c: 0x000c, 0x311d: 0x000c, + 0x311e: 0x000c, 0x311f: 0x000c, 0x3120: 0x000c, 0x3121: 0x000c, 0x3122: 0x000c, 0x3123: 0x000c, + 0x3124: 0x000c, 0x3125: 0x000c, 0x3126: 0x000c, 0x3127: 0x000c, + 0x312a: 0x000c, 0x312b: 0x000c, 0x312c: 0x000c, 0x312d: 0x000c, 0x312e: 0x000c, 0x312f: 0x000c, + 0x3130: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3135: 0x000c, + 0x3136: 0x000c, + // Block 0xc5, offset 0x3140 + 0x3171: 0x000c, 0x3172: 0x000c, 0x3173: 0x000c, 0x3174: 0x000c, 0x3175: 0x000c, + 0x3176: 0x000c, 0x317a: 0x000c, + 0x317c: 0x000c, 0x317d: 0x000c, 0x317f: 0x000c, + // Block 0xc6, offset 0x3180 + 0x3180: 0x000c, 0x3181: 0x000c, 0x3182: 0x000c, 0x3183: 0x000c, 0x3184: 0x000c, 0x3185: 0x000c, + 0x3187: 0x000c, + // Block 0xc7, offset 0x31c0 + 0x31d0: 0x000c, 0x31d1: 0x000c, + 0x31d5: 0x000c, 0x31d7: 0x000c, + // Block 0xc8, offset 0x3200 + 0x3233: 0x000c, 0x3234: 0x000c, + // Block 0xc9, offset 0x3240 + 0x3255: 0x000a, 0x3256: 0x000a, 0x3257: 0x000a, + 0x3258: 0x000a, 0x3259: 0x000a, 0x325a: 0x000a, 0x325b: 0x000a, 0x325c: 0x000a, 0x325d: 0x0004, + 0x325e: 0x0004, 0x325f: 0x0004, 0x3260: 0x0004, 0x3261: 0x000a, 0x3262: 0x000a, 0x3263: 0x000a, + 0x3264: 0x000a, 0x3265: 0x000a, 0x3266: 0x000a, 0x3267: 0x000a, 0x3268: 0x000a, 0x3269: 0x000a, + 0x326a: 0x000a, 0x326b: 0x000a, 0x326c: 0x000a, 0x326d: 0x000a, 0x326e: 0x000a, 0x326f: 0x000a, + 0x3270: 0x000a, 0x3271: 0x000a, + // Block 0xca, offset 0x3280 + 0x32b0: 0x000c, 0x32b1: 0x000c, 0x32b2: 0x000c, 0x32b3: 0x000c, 0x32b4: 0x000c, + // Block 0xcb, offset 0x32c0 + 0x32f0: 0x000c, 0x32f1: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f4: 0x000c, 0x32f5: 0x000c, + 0x32f6: 0x000c, + // Block 0xcc, offset 0x3300 + 0x330f: 0x000c, + // Block 0xcd, offset 0x3340 + 0x334f: 0x000c, 0x3350: 0x000c, 0x3351: 0x000c, + 0x3352: 0x000c, + // Block 0xce, offset 0x3380 + 0x33a2: 0x000a, + 0x33a4: 0x000c, + // Block 0xcf, offset 0x33c0 + 0x33dd: 0x000c, + 0x33de: 0x000c, 0x33e0: 0x000b, 0x33e1: 0x000b, 0x33e2: 0x000b, 0x33e3: 0x000b, + // Block 0xd0, offset 0x3400 + 0x3427: 0x000c, 0x3428: 0x000c, 0x3429: 0x000c, + 0x3433: 0x000b, 0x3434: 0x000b, 0x3435: 0x000b, + 0x3436: 0x000b, 0x3437: 0x000b, 0x3438: 0x000b, 0x3439: 0x000b, 0x343a: 0x000b, 0x343b: 0x000c, + 0x343c: 0x000c, 0x343d: 0x000c, 0x343e: 0x000c, 0x343f: 0x000c, + // Block 0xd1, offset 0x3440 + 0x3440: 0x000c, 0x3441: 0x000c, 0x3442: 0x000c, 0x3445: 0x000c, + 0x3446: 0x000c, 0x3447: 0x000c, 0x3448: 0x000c, 0x3449: 0x000c, 0x344a: 0x000c, 0x344b: 0x000c, + 0x346a: 0x000c, 0x346b: 0x000c, 0x346c: 0x000c, 0x346d: 0x000c, + // Block 0xd2, offset 0x3480 + 0x3480: 0x000a, 0x3481: 0x000a, 0x3482: 0x000c, 0x3483: 0x000c, 0x3484: 0x000c, 0x3485: 0x000a, + // Block 0xd3, offset 0x34c0 + 0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a, + 0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a, + 0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a, + 0x34d2: 0x000a, 0x34d3: 0x000a, 0x34d4: 0x000a, 0x34d5: 0x000a, 0x34d6: 0x000a, + // Block 0xd4, offset 0x3500 + 0x351b: 0x000a, + // Block 0xd5, offset 0x3540 + 0x3555: 0x000a, + // Block 0xd6, offset 0x3580 + 0x358f: 0x000a, + // Block 0xd7, offset 0x35c0 + 0x35c9: 0x000a, + // Block 0xd8, offset 0x3600 + 0x3603: 0x000a, + 0x360e: 0x0002, 0x360f: 0x0002, 0x3610: 0x0002, 0x3611: 0x0002, + 0x3612: 0x0002, 0x3613: 0x0002, 0x3614: 0x0002, 0x3615: 0x0002, 0x3616: 0x0002, 0x3617: 0x0002, + 0x3618: 0x0002, 0x3619: 0x0002, 0x361a: 0x0002, 0x361b: 0x0002, 0x361c: 0x0002, 0x361d: 0x0002, + 0x361e: 0x0002, 0x361f: 0x0002, 0x3620: 0x0002, 0x3621: 0x0002, 0x3622: 0x0002, 0x3623: 0x0002, + 0x3624: 0x0002, 0x3625: 0x0002, 0x3626: 0x0002, 0x3627: 0x0002, 0x3628: 0x0002, 0x3629: 0x0002, + 0x362a: 0x0002, 0x362b: 0x0002, 0x362c: 0x0002, 0x362d: 0x0002, 0x362e: 0x0002, 0x362f: 0x0002, + 0x3630: 0x0002, 0x3631: 0x0002, 0x3632: 0x0002, 0x3633: 0x0002, 0x3634: 0x0002, 0x3635: 0x0002, + 0x3636: 0x0002, 0x3637: 0x0002, 0x3638: 0x0002, 0x3639: 0x0002, 0x363a: 0x0002, 0x363b: 0x0002, + 0x363c: 0x0002, 0x363d: 0x0002, 0x363e: 0x0002, 0x363f: 0x0002, + // Block 0xd9, offset 0x3640 + 0x3640: 0x000c, 0x3641: 0x000c, 0x3642: 0x000c, 0x3643: 0x000c, 0x3644: 0x000c, 0x3645: 0x000c, + 0x3646: 0x000c, 0x3647: 0x000c, 0x3648: 0x000c, 0x3649: 0x000c, 0x364a: 0x000c, 0x364b: 0x000c, + 0x364c: 0x000c, 0x364d: 0x000c, 0x364e: 0x000c, 0x364f: 0x000c, 0x3650: 0x000c, 0x3651: 0x000c, + 0x3652: 0x000c, 0x3653: 0x000c, 0x3654: 0x000c, 0x3655: 0x000c, 0x3656: 0x000c, 0x3657: 0x000c, + 0x3658: 0x000c, 0x3659: 0x000c, 0x365a: 0x000c, 0x365b: 0x000c, 0x365c: 0x000c, 0x365d: 0x000c, + 0x365e: 0x000c, 0x365f: 0x000c, 0x3660: 0x000c, 0x3661: 0x000c, 0x3662: 0x000c, 0x3663: 0x000c, + 0x3664: 0x000c, 0x3665: 0x000c, 0x3666: 0x000c, 0x3667: 0x000c, 0x3668: 0x000c, 0x3669: 0x000c, + 0x366a: 0x000c, 0x366b: 0x000c, 0x366c: 0x000c, 0x366d: 0x000c, 0x366e: 0x000c, 0x366f: 0x000c, + 0x3670: 0x000c, 0x3671: 0x000c, 0x3672: 0x000c, 0x3673: 0x000c, 0x3674: 0x000c, 0x3675: 0x000c, + 0x3676: 0x000c, 0x367b: 0x000c, + 0x367c: 0x000c, 0x367d: 0x000c, 0x367e: 0x000c, 0x367f: 0x000c, + // Block 0xda, offset 0x3680 + 0x3680: 0x000c, 0x3681: 0x000c, 0x3682: 0x000c, 0x3683: 0x000c, 0x3684: 0x000c, 0x3685: 0x000c, + 0x3686: 0x000c, 0x3687: 0x000c, 0x3688: 0x000c, 0x3689: 0x000c, 0x368a: 0x000c, 0x368b: 0x000c, + 0x368c: 0x000c, 0x368d: 0x000c, 0x368e: 0x000c, 0x368f: 0x000c, 0x3690: 0x000c, 0x3691: 0x000c, + 0x3692: 0x000c, 0x3693: 0x000c, 0x3694: 0x000c, 0x3695: 0x000c, 0x3696: 0x000c, 0x3697: 0x000c, + 0x3698: 0x000c, 0x3699: 0x000c, 0x369a: 0x000c, 0x369b: 0x000c, 0x369c: 0x000c, 0x369d: 0x000c, + 0x369e: 0x000c, 0x369f: 0x000c, 0x36a0: 0x000c, 0x36a1: 0x000c, 0x36a2: 0x000c, 0x36a3: 0x000c, + 0x36a4: 0x000c, 0x36a5: 0x000c, 0x36a6: 0x000c, 0x36a7: 0x000c, 0x36a8: 0x000c, 0x36a9: 0x000c, + 0x36aa: 0x000c, 0x36ab: 0x000c, 0x36ac: 0x000c, + 0x36b5: 0x000c, + // Block 0xdb, offset 0x36c0 + 0x36c4: 0x000c, + 0x36db: 0x000c, 0x36dc: 0x000c, 0x36dd: 0x000c, + 0x36de: 0x000c, 0x36df: 0x000c, 0x36e1: 0x000c, 0x36e2: 0x000c, 0x36e3: 0x000c, + 0x36e4: 0x000c, 0x36e5: 0x000c, 0x36e6: 0x000c, 0x36e7: 0x000c, 0x36e8: 0x000c, 0x36e9: 0x000c, + 0x36ea: 0x000c, 0x36eb: 0x000c, 0x36ec: 0x000c, 0x36ed: 0x000c, 0x36ee: 0x000c, 0x36ef: 0x000c, + // Block 0xdc, offset 0x3700 + 0x3700: 0x000c, 0x3701: 0x000c, 0x3702: 0x000c, 0x3703: 0x000c, 0x3704: 0x000c, 0x3705: 0x000c, + 0x3706: 0x000c, 0x3708: 0x000c, 0x3709: 0x000c, 0x370a: 0x000c, 0x370b: 0x000c, + 0x370c: 0x000c, 0x370d: 0x000c, 0x370e: 0x000c, 0x370f: 0x000c, 0x3710: 0x000c, 0x3711: 0x000c, + 0x3712: 0x000c, 0x3713: 0x000c, 0x3714: 0x000c, 0x3715: 0x000c, 0x3716: 0x000c, 0x3717: 0x000c, + 0x3718: 0x000c, 0x371b: 0x000c, 0x371c: 0x000c, 0x371d: 0x000c, + 0x371e: 0x000c, 0x371f: 0x000c, 0x3720: 0x000c, 0x3721: 0x000c, 0x3723: 0x000c, + 0x3724: 0x000c, 0x3726: 0x000c, 0x3727: 0x000c, 0x3728: 0x000c, 0x3729: 0x000c, + 0x372a: 0x000c, + // Block 0xdd, offset 0x3740 + 0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c, + 0x377f: 0x0004, + // Block 0xde, offset 0x3780 + 0x3780: 0x0001, 0x3781: 0x0001, 0x3782: 0x0001, 0x3783: 0x0001, 0x3784: 0x0001, 0x3785: 0x0001, + 0x3786: 0x0001, 0x3787: 0x0001, 0x3788: 0x0001, 0x3789: 0x0001, 0x378a: 0x0001, 0x378b: 0x0001, + 0x378c: 0x0001, 0x378d: 0x0001, 0x378e: 0x0001, 0x378f: 0x0001, 0x3790: 0x000c, 0x3791: 0x000c, + 0x3792: 0x000c, 0x3793: 0x000c, 0x3794: 0x000c, 0x3795: 0x000c, 0x3796: 0x000c, 0x3797: 0x0001, + 0x3798: 0x0001, 0x3799: 0x0001, 0x379a: 0x0001, 0x379b: 0x0001, 0x379c: 0x0001, 0x379d: 0x0001, + 0x379e: 0x0001, 0x379f: 0x0001, 0x37a0: 0x0001, 0x37a1: 0x0001, 0x37a2: 0x0001, 0x37a3: 0x0001, + 0x37a4: 0x0001, 0x37a5: 0x0001, 0x37a6: 0x0001, 0x37a7: 0x0001, 0x37a8: 0x0001, 0x37a9: 0x0001, + 0x37aa: 0x0001, 0x37ab: 0x0001, 0x37ac: 0x0001, 0x37ad: 0x0001, 0x37ae: 0x0001, 0x37af: 0x0001, + 0x37b0: 0x0001, 0x37b1: 0x0001, 0x37b2: 0x0001, 0x37b3: 0x0001, 0x37b4: 0x0001, 0x37b5: 0x0001, + 0x37b6: 0x0001, 0x37b7: 0x0001, 0x37b8: 0x0001, 0x37b9: 0x0001, 0x37ba: 0x0001, 0x37bb: 0x0001, + 0x37bc: 0x0001, 0x37bd: 0x0001, 0x37be: 0x0001, 0x37bf: 0x0001, + // Block 0xdf, offset 0x37c0 + 0x37c0: 0x0001, 0x37c1: 0x0001, 0x37c2: 0x0001, 0x37c3: 0x0001, 0x37c4: 0x000c, 0x37c5: 0x000c, + 0x37c6: 0x000c, 0x37c7: 0x000c, 0x37c8: 0x000c, 0x37c9: 0x000c, 0x37ca: 0x000c, 0x37cb: 0x0001, + 0x37cc: 0x0001, 0x37cd: 0x0001, 0x37ce: 0x0001, 0x37cf: 0x0001, 0x37d0: 0x0001, 0x37d1: 0x0001, + 0x37d2: 0x0001, 0x37d3: 0x0001, 0x37d4: 0x0001, 0x37d5: 0x0001, 0x37d6: 0x0001, 0x37d7: 0x0001, + 0x37d8: 0x0001, 0x37d9: 0x0001, 0x37da: 0x0001, 0x37db: 0x0001, 0x37dc: 0x0001, 0x37dd: 0x0001, + 0x37de: 0x0001, 0x37df: 0x0001, 0x37e0: 0x0001, 0x37e1: 0x0001, 0x37e2: 0x0001, 0x37e3: 0x0001, + 0x37e4: 0x0001, 0x37e5: 0x0001, 0x37e6: 0x0001, 0x37e7: 0x0001, 0x37e8: 0x0001, 0x37e9: 0x0001, + 0x37ea: 0x0001, 0x37eb: 0x0001, 0x37ec: 0x0001, 0x37ed: 0x0001, 0x37ee: 0x0001, 0x37ef: 0x0001, + 0x37f0: 0x0001, 0x37f1: 0x0001, 0x37f2: 0x0001, 0x37f3: 0x0001, 0x37f4: 0x0001, 0x37f5: 0x0001, + 0x37f6: 0x0001, 0x37f7: 0x0001, 0x37f8: 0x0001, 0x37f9: 0x0001, 0x37fa: 0x0001, 0x37fb: 0x0001, + 0x37fc: 0x0001, 0x37fd: 0x0001, 0x37fe: 0x0001, 0x37ff: 0x0001, + // Block 0xe0, offset 0x3800 + 0x3800: 0x000d, 0x3801: 0x000d, 0x3802: 0x000d, 0x3803: 0x000d, 0x3804: 0x000d, 0x3805: 0x000d, + 0x3806: 0x000d, 0x3807: 0x000d, 0x3808: 0x000d, 0x3809: 0x000d, 0x380a: 0x000d, 0x380b: 0x000d, + 0x380c: 0x000d, 0x380d: 0x000d, 0x380e: 0x000d, 0x380f: 0x000d, 0x3810: 0x0001, 0x3811: 0x0001, + 0x3812: 0x0001, 0x3813: 0x0001, 0x3814: 0x0001, 0x3815: 0x0001, 0x3816: 0x0001, 0x3817: 0x0001, + 0x3818: 0x0001, 0x3819: 0x0001, 0x381a: 0x0001, 0x381b: 0x0001, 0x381c: 0x0001, 0x381d: 0x0001, + 0x381e: 0x0001, 0x381f: 0x0001, 0x3820: 0x0001, 0x3821: 0x0001, 0x3822: 0x0001, 0x3823: 0x0001, + 0x3824: 0x0001, 0x3825: 0x0001, 0x3826: 0x0001, 0x3827: 0x0001, 0x3828: 0x0001, 0x3829: 0x0001, + 0x382a: 0x0001, 0x382b: 0x0001, 0x382c: 0x0001, 0x382d: 0x0001, 0x382e: 0x0001, 0x382f: 0x0001, + 0x3830: 0x0001, 0x3831: 0x0001, 0x3832: 0x0001, 0x3833: 0x0001, 0x3834: 0x0001, 0x3835: 0x0001, + 0x3836: 0x0001, 0x3837: 0x0001, 0x3838: 0x0001, 0x3839: 0x0001, 0x383a: 0x0001, 0x383b: 0x0001, + 0x383c: 0x0001, 0x383d: 0x0001, 0x383e: 0x0001, 0x383f: 0x0001, + // Block 0xe1, offset 0x3840 + 0x3840: 0x000d, 0x3841: 0x000d, 0x3842: 0x000d, 0x3843: 0x000d, 0x3844: 0x000d, 0x3845: 0x000d, + 0x3846: 0x000d, 0x3847: 0x000d, 0x3848: 0x000d, 0x3849: 0x000d, 0x384a: 0x000d, 0x384b: 0x000d, + 0x384c: 0x000d, 0x384d: 0x000d, 0x384e: 0x000d, 0x384f: 0x000d, 0x3850: 0x000d, 0x3851: 0x000d, + 0x3852: 0x000d, 0x3853: 0x000d, 0x3854: 0x000d, 0x3855: 0x000d, 0x3856: 0x000d, 0x3857: 0x000d, + 0x3858: 0x000d, 0x3859: 0x000d, 0x385a: 0x000d, 0x385b: 0x000d, 0x385c: 0x000d, 0x385d: 0x000d, + 0x385e: 0x000d, 0x385f: 0x000d, 0x3860: 0x000d, 0x3861: 0x000d, 0x3862: 0x000d, 0x3863: 0x000d, + 0x3864: 0x000d, 0x3865: 0x000d, 0x3866: 0x000d, 0x3867: 0x000d, 0x3868: 0x000d, 0x3869: 0x000d, + 0x386a: 0x000d, 0x386b: 0x000d, 0x386c: 0x000d, 0x386d: 0x000d, 0x386e: 0x000d, 0x386f: 0x000d, + 0x3870: 0x000a, 0x3871: 0x000a, 0x3872: 0x000d, 0x3873: 0x000d, 0x3874: 0x000d, 0x3875: 0x000d, + 0x3876: 0x000d, 0x3877: 0x000d, 0x3878: 0x000d, 0x3879: 0x000d, 0x387a: 0x000d, 0x387b: 0x000d, + 0x387c: 0x000d, 0x387d: 0x000d, 0x387e: 0x000d, 0x387f: 0x000d, + // Block 0xe2, offset 0x3880 + 0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a, + 0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a, + 0x388c: 0x000a, 0x388d: 0x000a, 0x388e: 0x000a, 0x388f: 0x000a, 0x3890: 0x000a, 0x3891: 0x000a, + 0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, 0x3896: 0x000a, 0x3897: 0x000a, + 0x3898: 0x000a, 0x3899: 0x000a, 0x389a: 0x000a, 0x389b: 0x000a, 0x389c: 0x000a, 0x389d: 0x000a, + 0x389e: 0x000a, 0x389f: 0x000a, 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a, + 0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a, + 0x38aa: 0x000a, 0x38ab: 0x000a, + 0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a, + 0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, 0x38bb: 0x000a, + 0x38bc: 0x000a, 0x38bd: 0x000a, 0x38be: 0x000a, 0x38bf: 0x000a, + // Block 0xe3, offset 0x38c0 + 0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a, + 0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a, + 0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a, + 0x38d2: 0x000a, 0x38d3: 0x000a, + 0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a, + 0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a, + 0x38ea: 0x000a, 0x38eb: 0x000a, 0x38ec: 0x000a, 0x38ed: 0x000a, 0x38ee: 0x000a, + 0x38f1: 0x000a, 0x38f2: 0x000a, 0x38f3: 0x000a, 0x38f4: 0x000a, 0x38f5: 0x000a, + 0x38f6: 0x000a, 0x38f7: 0x000a, 0x38f8: 0x000a, 0x38f9: 0x000a, 0x38fa: 0x000a, 0x38fb: 0x000a, + 0x38fc: 0x000a, 0x38fd: 0x000a, 0x38fe: 0x000a, 0x38ff: 0x000a, + // Block 0xe4, offset 0x3900 + 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a, + 0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a, + 0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3911: 0x000a, + 0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a, + 0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a, + 0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a, 0x3923: 0x000a, + 0x3924: 0x000a, 0x3925: 0x000a, 0x3926: 0x000a, 0x3927: 0x000a, 0x3928: 0x000a, 0x3929: 0x000a, + 0x392a: 0x000a, 0x392b: 0x000a, 0x392c: 0x000a, 0x392d: 0x000a, 0x392e: 0x000a, 0x392f: 0x000a, + 0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a, + // Block 0xe5, offset 0x3940 + 0x3940: 0x0002, 0x3941: 0x0002, 0x3942: 0x0002, 0x3943: 0x0002, 0x3944: 0x0002, 0x3945: 0x0002, + 0x3946: 0x0002, 0x3947: 0x0002, 0x3948: 0x0002, 0x3949: 0x0002, 0x394a: 0x0002, 0x394b: 0x000a, + 0x394c: 0x000a, 0x394d: 0x000a, 0x394e: 0x000a, 0x394f: 0x000a, + 0x396f: 0x000a, + // Block 0xe6, offset 0x3980 + 0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a, 0x39ae: 0x000a, 0x39af: 0x000a, + // Block 0xe7, offset 0x39c0 + 0x39ed: 0x000a, + // Block 0xe8, offset 0x3a00 + 0x3a20: 0x000a, 0x3a21: 0x000a, 0x3a22: 0x000a, 0x3a23: 0x000a, + 0x3a24: 0x000a, 0x3a25: 0x000a, + // Block 0xe9, offset 0x3a40 + 0x3a40: 0x000a, 0x3a41: 0x000a, 0x3a42: 0x000a, 0x3a43: 0x000a, 0x3a44: 0x000a, 0x3a45: 0x000a, + 0x3a46: 0x000a, 0x3a47: 0x000a, 0x3a48: 0x000a, 0x3a49: 0x000a, 0x3a4a: 0x000a, 0x3a4b: 0x000a, + 0x3a4c: 0x000a, 0x3a4d: 0x000a, 0x3a4e: 0x000a, 0x3a4f: 0x000a, 0x3a50: 0x000a, 0x3a51: 0x000a, + 0x3a52: 0x000a, 0x3a53: 0x000a, 0x3a54: 0x000a, 0x3a55: 0x000a, 0x3a56: 0x000a, 0x3a57: 0x000a, + 0x3a60: 0x000a, 0x3a61: 0x000a, 0x3a62: 0x000a, 0x3a63: 0x000a, + 0x3a64: 0x000a, 0x3a65: 0x000a, 0x3a66: 0x000a, 0x3a67: 0x000a, 0x3a68: 0x000a, 0x3a69: 0x000a, + 0x3a6a: 0x000a, 0x3a6b: 0x000a, 0x3a6c: 0x000a, + 0x3a70: 0x000a, 0x3a71: 0x000a, 0x3a72: 0x000a, 0x3a73: 0x000a, 0x3a74: 0x000a, 0x3a75: 0x000a, + 0x3a76: 0x000a, 0x3a77: 0x000a, 0x3a78: 0x000a, 0x3a79: 0x000a, 0x3a7a: 0x000a, 0x3a7b: 0x000a, + 0x3a7c: 0x000a, + // Block 0xea, offset 0x3a80 + 0x3a80: 0x000a, 0x3a81: 0x000a, 0x3a82: 0x000a, 0x3a83: 0x000a, 0x3a84: 0x000a, 0x3a85: 0x000a, + 0x3a86: 0x000a, 0x3a87: 0x000a, 0x3a88: 0x000a, 0x3a89: 0x000a, 0x3a8a: 0x000a, 0x3a8b: 0x000a, + 0x3a8c: 0x000a, 0x3a8d: 0x000a, 0x3a8e: 0x000a, 0x3a8f: 0x000a, 0x3a90: 0x000a, 0x3a91: 0x000a, + 0x3a92: 0x000a, 0x3a93: 0x000a, 0x3a94: 0x000a, 0x3a95: 0x000a, 0x3a96: 0x000a, 0x3a97: 0x000a, + 0x3a98: 0x000a, + 0x3aa0: 0x000a, 0x3aa1: 0x000a, 0x3aa2: 0x000a, 0x3aa3: 0x000a, + 0x3aa4: 0x000a, 0x3aa5: 0x000a, 0x3aa6: 0x000a, 0x3aa7: 0x000a, 0x3aa8: 0x000a, 0x3aa9: 0x000a, + 0x3aaa: 0x000a, 0x3aab: 0x000a, + // Block 0xeb, offset 0x3ac0 + 0x3ac0: 0x000a, 0x3ac1: 0x000a, 0x3ac2: 0x000a, 0x3ac3: 0x000a, 0x3ac4: 0x000a, 0x3ac5: 0x000a, + 0x3ac6: 0x000a, 0x3ac7: 0x000a, 0x3ac8: 0x000a, 0x3ac9: 0x000a, 0x3aca: 0x000a, 0x3acb: 0x000a, + 0x3ad0: 0x000a, 0x3ad1: 0x000a, + 0x3ad2: 0x000a, 0x3ad3: 0x000a, 0x3ad4: 0x000a, 0x3ad5: 0x000a, 0x3ad6: 0x000a, 0x3ad7: 0x000a, + 0x3ad8: 0x000a, 0x3ad9: 0x000a, 0x3ada: 0x000a, 0x3adb: 0x000a, 0x3adc: 0x000a, 0x3add: 0x000a, + 0x3ade: 0x000a, 0x3adf: 0x000a, 0x3ae0: 0x000a, 0x3ae1: 0x000a, 0x3ae2: 0x000a, 0x3ae3: 0x000a, + 0x3ae4: 0x000a, 0x3ae5: 0x000a, 0x3ae6: 0x000a, 0x3ae7: 0x000a, 0x3ae8: 0x000a, 0x3ae9: 0x000a, + 0x3aea: 0x000a, 0x3aeb: 0x000a, 0x3aec: 0x000a, 0x3aed: 0x000a, 0x3aee: 0x000a, 0x3aef: 0x000a, + 0x3af0: 0x000a, 0x3af1: 0x000a, 0x3af2: 0x000a, 0x3af3: 0x000a, 0x3af4: 0x000a, 0x3af5: 0x000a, + 0x3af6: 0x000a, 0x3af7: 0x000a, 0x3af8: 0x000a, 0x3af9: 0x000a, 0x3afa: 0x000a, 0x3afb: 0x000a, + 0x3afc: 0x000a, 0x3afd: 0x000a, 0x3afe: 0x000a, 0x3aff: 0x000a, + // Block 0xec, offset 0x3b00 + 0x3b00: 0x000a, 0x3b01: 0x000a, 0x3b02: 0x000a, 0x3b03: 0x000a, 0x3b04: 0x000a, 0x3b05: 0x000a, + 0x3b06: 0x000a, 0x3b07: 0x000a, + 0x3b10: 0x000a, 0x3b11: 0x000a, + 0x3b12: 0x000a, 0x3b13: 0x000a, 0x3b14: 0x000a, 0x3b15: 0x000a, 0x3b16: 0x000a, 0x3b17: 0x000a, + 0x3b18: 0x000a, 0x3b19: 0x000a, + 0x3b20: 0x000a, 0x3b21: 0x000a, 0x3b22: 0x000a, 0x3b23: 0x000a, + 0x3b24: 0x000a, 0x3b25: 0x000a, 0x3b26: 0x000a, 0x3b27: 0x000a, 0x3b28: 0x000a, 0x3b29: 0x000a, + 0x3b2a: 0x000a, 0x3b2b: 0x000a, 0x3b2c: 0x000a, 0x3b2d: 0x000a, 0x3b2e: 0x000a, 0x3b2f: 0x000a, + 0x3b30: 0x000a, 0x3b31: 0x000a, 0x3b32: 0x000a, 0x3b33: 0x000a, 0x3b34: 0x000a, 0x3b35: 0x000a, + 0x3b36: 0x000a, 0x3b37: 0x000a, 0x3b38: 0x000a, 0x3b39: 0x000a, 0x3b3a: 0x000a, 0x3b3b: 0x000a, + 0x3b3c: 0x000a, 0x3b3d: 0x000a, 0x3b3e: 0x000a, 0x3b3f: 0x000a, + // Block 0xed, offset 0x3b40 + 0x3b40: 0x000a, 0x3b41: 0x000a, 0x3b42: 0x000a, 0x3b43: 0x000a, 0x3b44: 0x000a, 0x3b45: 0x000a, + 0x3b46: 0x000a, 0x3b47: 0x000a, + 0x3b50: 0x000a, 0x3b51: 0x000a, + 0x3b52: 0x000a, 0x3b53: 0x000a, 0x3b54: 0x000a, 0x3b55: 0x000a, 0x3b56: 0x000a, 0x3b57: 0x000a, + 0x3b58: 0x000a, 0x3b59: 0x000a, 0x3b5a: 0x000a, 0x3b5b: 0x000a, 0x3b5c: 0x000a, 0x3b5d: 0x000a, + 0x3b5e: 0x000a, 0x3b5f: 0x000a, 0x3b60: 0x000a, 0x3b61: 0x000a, 0x3b62: 0x000a, 0x3b63: 0x000a, + 0x3b64: 0x000a, 0x3b65: 0x000a, 0x3b66: 0x000a, 0x3b67: 0x000a, 0x3b68: 0x000a, 0x3b69: 0x000a, + 0x3b6a: 0x000a, 0x3b6b: 0x000a, 0x3b6c: 0x000a, 0x3b6d: 0x000a, + 0x3b70: 0x000a, 0x3b71: 0x000a, + // Block 0xee, offset 0x3b80 + 0x3b80: 0x000a, 0x3b81: 0x000a, 0x3b82: 0x000a, 0x3b83: 0x000a, 0x3b84: 0x000a, 0x3b85: 0x000a, + 0x3b86: 0x000a, 0x3b87: 0x000a, 0x3b88: 0x000a, 0x3b89: 0x000a, 0x3b8a: 0x000a, 0x3b8b: 0x000a, + 0x3b8c: 0x000a, 0x3b8d: 0x000a, 0x3b8e: 0x000a, 0x3b8f: 0x000a, 0x3b90: 0x000a, 0x3b91: 0x000a, + 0x3b92: 0x000a, 0x3b93: 0x000a, 0x3b94: 0x000a, 0x3b95: 0x000a, 0x3b96: 0x000a, 0x3b97: 0x000a, + 0x3b98: 0x000a, 0x3b99: 0x000a, 0x3b9a: 0x000a, 0x3b9b: 0x000a, 0x3b9c: 0x000a, 0x3b9d: 0x000a, + 0x3b9e: 0x000a, 0x3b9f: 0x000a, 0x3ba0: 0x000a, 0x3ba1: 0x000a, 0x3ba2: 0x000a, 0x3ba3: 0x000a, + 0x3ba4: 0x000a, 0x3ba5: 0x000a, 0x3ba6: 0x000a, 0x3ba7: 0x000a, 0x3ba8: 0x000a, 0x3ba9: 0x000a, + 0x3baa: 0x000a, 0x3bab: 0x000a, 0x3bac: 0x000a, 0x3bad: 0x000a, 0x3bae: 0x000a, 0x3baf: 0x000a, + 0x3bb0: 0x000a, 0x3bb1: 0x000a, 0x3bb2: 0x000a, 0x3bb3: 0x000a, 0x3bb4: 0x000a, 0x3bb5: 0x000a, + 0x3bb6: 0x000a, 0x3bb7: 0x000a, 0x3bb8: 0x000a, 0x3bba: 0x000a, 0x3bbb: 0x000a, + 0x3bbc: 0x000a, 0x3bbd: 0x000a, 0x3bbe: 0x000a, 0x3bbf: 0x000a, + // Block 0xef, offset 0x3bc0 + 0x3bc0: 0x000a, 0x3bc1: 0x000a, 0x3bc2: 0x000a, 0x3bc3: 0x000a, 0x3bc4: 0x000a, 0x3bc5: 0x000a, + 0x3bc6: 0x000a, 0x3bc7: 0x000a, 0x3bc8: 0x000a, 0x3bc9: 0x000a, 0x3bca: 0x000a, 0x3bcb: 0x000a, + 0x3bcd: 0x000a, 0x3bce: 0x000a, 0x3bcf: 0x000a, 0x3bd0: 0x000a, 0x3bd1: 0x000a, + 0x3bd2: 0x000a, 0x3bd3: 0x000a, 0x3bd4: 0x000a, 0x3bd5: 0x000a, 0x3bd6: 0x000a, 0x3bd7: 0x000a, + 0x3bd8: 0x000a, 0x3bd9: 0x000a, 0x3bda: 0x000a, 0x3bdb: 0x000a, 0x3bdc: 0x000a, 0x3bdd: 0x000a, + 0x3bde: 0x000a, 0x3bdf: 0x000a, 0x3be0: 0x000a, 0x3be1: 0x000a, 0x3be2: 0x000a, 0x3be3: 0x000a, + 0x3be4: 0x000a, 0x3be5: 0x000a, 0x3be6: 0x000a, 0x3be7: 0x000a, 0x3be8: 0x000a, 0x3be9: 0x000a, + 0x3bea: 0x000a, 0x3beb: 0x000a, 0x3bec: 0x000a, 0x3bed: 0x000a, 0x3bee: 0x000a, 0x3bef: 0x000a, + 0x3bf0: 0x000a, 0x3bf1: 0x000a, 0x3bf2: 0x000a, 0x3bf3: 0x000a, 0x3bf4: 0x000a, 0x3bf5: 0x000a, + 0x3bf6: 0x000a, 0x3bf7: 0x000a, 0x3bf8: 0x000a, 0x3bf9: 0x000a, 0x3bfa: 0x000a, 0x3bfb: 0x000a, + 0x3bfc: 0x000a, 0x3bfd: 0x000a, 0x3bfe: 0x000a, 0x3bff: 0x000a, + // Block 0xf0, offset 0x3c00 + 0x3c00: 0x000a, 0x3c01: 0x000a, 0x3c02: 0x000a, 0x3c03: 0x000a, 0x3c04: 0x000a, 0x3c05: 0x000a, + 0x3c06: 0x000a, 0x3c07: 0x000a, 0x3c08: 0x000a, 0x3c09: 0x000a, 0x3c0a: 0x000a, 0x3c0b: 0x000a, + 0x3c0c: 0x000a, 0x3c0d: 0x000a, 0x3c0e: 0x000a, 0x3c0f: 0x000a, 0x3c10: 0x000a, 0x3c11: 0x000a, + 0x3c12: 0x000a, 0x3c13: 0x000a, + 0x3c20: 0x000a, 0x3c21: 0x000a, 0x3c22: 0x000a, 0x3c23: 0x000a, + 0x3c24: 0x000a, 0x3c25: 0x000a, 0x3c26: 0x000a, 0x3c27: 0x000a, 0x3c28: 0x000a, 0x3c29: 0x000a, + 0x3c2a: 0x000a, 0x3c2b: 0x000a, 0x3c2c: 0x000a, 0x3c2d: 0x000a, + 0x3c30: 0x000a, 0x3c31: 0x000a, 0x3c32: 0x000a, 0x3c33: 0x000a, 0x3c34: 0x000a, + 0x3c38: 0x000a, 0x3c39: 0x000a, 0x3c3a: 0x000a, + // Block 0xf1, offset 0x3c40 + 0x3c40: 0x000a, 0x3c41: 0x000a, 0x3c42: 0x000a, 0x3c43: 0x000a, 0x3c44: 0x000a, 0x3c45: 0x000a, + 0x3c46: 0x000a, + 0x3c50: 0x000a, 0x3c51: 0x000a, + 0x3c52: 0x000a, 0x3c53: 0x000a, 0x3c54: 0x000a, 0x3c55: 0x000a, 0x3c56: 0x000a, 0x3c57: 0x000a, + 0x3c58: 0x000a, 0x3c59: 0x000a, 0x3c5a: 0x000a, 0x3c5b: 0x000a, 0x3c5c: 0x000a, 0x3c5d: 0x000a, + 0x3c5e: 0x000a, 0x3c5f: 0x000a, 0x3c60: 0x000a, 0x3c61: 0x000a, 0x3c62: 0x000a, 0x3c63: 0x000a, + 0x3c64: 0x000a, 0x3c65: 0x000a, 0x3c66: 0x000a, 0x3c67: 0x000a, 0x3c68: 0x000a, + 0x3c70: 0x000a, 0x3c71: 0x000a, 0x3c72: 0x000a, 0x3c73: 0x000a, 0x3c74: 0x000a, 0x3c75: 0x000a, + 0x3c76: 0x000a, + // Block 0xf2, offset 0x3c80 + 0x3c80: 0x000a, 0x3c81: 0x000a, 0x3c82: 0x000a, + 0x3c90: 0x000a, 0x3c91: 0x000a, + 0x3c92: 0x000a, 0x3c93: 0x000a, 0x3c94: 0x000a, 0x3c95: 0x000a, 0x3c96: 0x000a, + // Block 0xf3, offset 0x3cc0 + 0x3cc0: 0x000a, 0x3cc1: 0x000a, 0x3cc2: 0x000a, 0x3cc3: 0x000a, 0x3cc4: 0x000a, 0x3cc5: 0x000a, + 0x3cc6: 0x000a, 0x3cc7: 0x000a, 0x3cc8: 0x000a, 0x3cc9: 0x000a, 0x3cca: 0x000a, 0x3ccb: 0x000a, + 0x3ccc: 0x000a, 0x3ccd: 0x000a, 0x3cce: 0x000a, 0x3ccf: 0x000a, 0x3cd0: 0x000a, 0x3cd1: 0x000a, + 0x3cd2: 0x000a, 0x3cd4: 0x000a, 0x3cd5: 0x000a, 0x3cd6: 0x000a, 0x3cd7: 0x000a, + 0x3cd8: 0x000a, 0x3cd9: 0x000a, 0x3cda: 0x000a, 0x3cdb: 0x000a, 0x3cdc: 0x000a, 0x3cdd: 0x000a, + 0x3cde: 0x000a, 0x3cdf: 0x000a, 0x3ce0: 0x000a, 0x3ce1: 0x000a, 0x3ce2: 0x000a, 0x3ce3: 0x000a, + 0x3ce4: 0x000a, 0x3ce5: 0x000a, 0x3ce6: 0x000a, 0x3ce7: 0x000a, 0x3ce8: 0x000a, 0x3ce9: 0x000a, + 0x3cea: 0x000a, 0x3ceb: 0x000a, 0x3cec: 0x000a, 0x3ced: 0x000a, 0x3cee: 0x000a, 0x3cef: 0x000a, + 0x3cf0: 0x000a, 0x3cf1: 0x000a, 0x3cf2: 0x000a, 0x3cf3: 0x000a, 0x3cf4: 0x000a, 0x3cf5: 0x000a, + 0x3cf6: 0x000a, 0x3cf7: 0x000a, 0x3cf8: 0x000a, 0x3cf9: 0x000a, 0x3cfa: 0x000a, 0x3cfb: 0x000a, + 0x3cfc: 0x000a, 0x3cfd: 0x000a, 0x3cfe: 0x000a, 0x3cff: 0x000a, + // Block 0xf4, offset 0x3d00 + 0x3d00: 0x000a, 0x3d01: 0x000a, 0x3d02: 0x000a, 0x3d03: 0x000a, 0x3d04: 0x000a, 0x3d05: 0x000a, + 0x3d06: 0x000a, 0x3d07: 0x000a, 0x3d08: 0x000a, 0x3d09: 0x000a, 0x3d0a: 0x000a, + 0x3d30: 0x0002, 0x3d31: 0x0002, 0x3d32: 0x0002, 0x3d33: 0x0002, 0x3d34: 0x0002, 0x3d35: 0x0002, + 0x3d36: 0x0002, 0x3d37: 0x0002, 0x3d38: 0x0002, 0x3d39: 0x0002, + // Block 0xf5, offset 0x3d40 + 0x3d7e: 0x000b, 0x3d7f: 0x000b, + // Block 0xf6, offset 0x3d80 + 0x3d80: 0x000b, 0x3d81: 0x000b, 0x3d82: 0x000b, 0x3d83: 0x000b, 0x3d84: 0x000b, 0x3d85: 0x000b, + 0x3d86: 0x000b, 0x3d87: 0x000b, 0x3d88: 0x000b, 0x3d89: 0x000b, 0x3d8a: 0x000b, 0x3d8b: 0x000b, + 0x3d8c: 0x000b, 0x3d8d: 0x000b, 0x3d8e: 0x000b, 0x3d8f: 0x000b, 0x3d90: 0x000b, 0x3d91: 0x000b, + 0x3d92: 0x000b, 0x3d93: 0x000b, 0x3d94: 0x000b, 0x3d95: 0x000b, 0x3d96: 0x000b, 0x3d97: 0x000b, + 0x3d98: 0x000b, 0x3d99: 0x000b, 0x3d9a: 0x000b, 0x3d9b: 0x000b, 0x3d9c: 0x000b, 0x3d9d: 0x000b, + 0x3d9e: 0x000b, 0x3d9f: 0x000b, 0x3da0: 0x000b, 0x3da1: 0x000b, 0x3da2: 0x000b, 0x3da3: 0x000b, + 0x3da4: 0x000b, 0x3da5: 0x000b, 0x3da6: 0x000b, 0x3da7: 0x000b, 0x3da8: 0x000b, 0x3da9: 0x000b, + 0x3daa: 0x000b, 0x3dab: 0x000b, 0x3dac: 0x000b, 0x3dad: 0x000b, 0x3dae: 0x000b, 0x3daf: 0x000b, + 0x3db0: 0x000b, 0x3db1: 0x000b, 0x3db2: 0x000b, 0x3db3: 0x000b, 0x3db4: 0x000b, 0x3db5: 0x000b, + 0x3db6: 0x000b, 0x3db7: 0x000b, 0x3db8: 0x000b, 0x3db9: 0x000b, 0x3dba: 0x000b, 0x3dbb: 0x000b, + 0x3dbc: 0x000b, 0x3dbd: 0x000b, 0x3dbe: 0x000b, 0x3dbf: 0x000b, + // Block 0xf7, offset 0x3dc0 + 0x3dc0: 0x000c, 0x3dc1: 0x000c, 0x3dc2: 0x000c, 0x3dc3: 0x000c, 0x3dc4: 0x000c, 0x3dc5: 0x000c, + 0x3dc6: 0x000c, 0x3dc7: 0x000c, 0x3dc8: 0x000c, 0x3dc9: 0x000c, 0x3dca: 0x000c, 0x3dcb: 0x000c, + 0x3dcc: 0x000c, 0x3dcd: 0x000c, 0x3dce: 0x000c, 0x3dcf: 0x000c, 0x3dd0: 0x000c, 0x3dd1: 0x000c, + 0x3dd2: 0x000c, 0x3dd3: 0x000c, 0x3dd4: 0x000c, 0x3dd5: 0x000c, 0x3dd6: 0x000c, 0x3dd7: 0x000c, + 0x3dd8: 0x000c, 0x3dd9: 0x000c, 0x3dda: 0x000c, 0x3ddb: 0x000c, 0x3ddc: 0x000c, 0x3ddd: 0x000c, + 0x3dde: 0x000c, 0x3ddf: 0x000c, 0x3de0: 0x000c, 0x3de1: 0x000c, 0x3de2: 0x000c, 0x3de3: 0x000c, + 0x3de4: 0x000c, 0x3de5: 0x000c, 0x3de6: 0x000c, 0x3de7: 0x000c, 0x3de8: 0x000c, 0x3de9: 0x000c, + 0x3dea: 0x000c, 0x3deb: 0x000c, 0x3dec: 0x000c, 0x3ded: 0x000c, 0x3dee: 0x000c, 0x3def: 0x000c, + 0x3df0: 0x000b, 0x3df1: 0x000b, 0x3df2: 0x000b, 0x3df3: 0x000b, 0x3df4: 0x000b, 0x3df5: 0x000b, + 0x3df6: 0x000b, 0x3df7: 0x000b, 0x3df8: 0x000b, 0x3df9: 0x000b, 0x3dfa: 0x000b, 0x3dfb: 0x000b, + 0x3dfc: 0x000b, 0x3dfd: 0x000b, 0x3dfe: 0x000b, 0x3dff: 0x000b, +} + +// bidiIndex: 24 blocks, 1536 entries, 1536 bytes +// Block 0 is the zero block. +var bidiIndex = [1536]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x02, + 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08, + 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b, + 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, + 0xea: 0x07, 0xef: 0x08, + 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15, + // Block 0x4, offset 0x100 + 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b, + 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22, + 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x136: 0x28, 0x137: 0x29, + 0x138: 0x2a, 0x139: 0x2b, 0x13a: 0x2c, 0x13b: 0x2d, 0x13c: 0x2e, 0x13d: 0x2f, 0x13e: 0x30, 0x13f: 0x31, + // Block 0x5, offset 0x140 + 0x140: 0x32, 0x141: 0x33, 0x142: 0x34, + 0x14d: 0x35, 0x14e: 0x36, + 0x150: 0x37, + 0x15a: 0x38, 0x15c: 0x39, 0x15d: 0x3a, 0x15e: 0x3b, 0x15f: 0x3c, + 0x160: 0x3d, 0x162: 0x3e, 0x164: 0x3f, 0x165: 0x40, 0x167: 0x41, + 0x168: 0x42, 0x169: 0x43, 0x16a: 0x44, 0x16b: 0x45, 0x16c: 0x46, 0x16d: 0x47, 0x16e: 0x48, 0x16f: 0x49, + 0x170: 0x4a, 0x173: 0x4b, 0x177: 0x4c, + 0x17e: 0x4d, 0x17f: 0x4e, + // Block 0x6, offset 0x180 + 0x180: 0x4f, 0x181: 0x50, 0x182: 0x51, 0x183: 0x52, 0x184: 0x53, 0x185: 0x54, 0x186: 0x55, 0x187: 0x56, + 0x188: 0x57, 0x189: 0x56, 0x18a: 0x56, 0x18b: 0x56, 0x18c: 0x58, 0x18d: 0x59, 0x18e: 0x5a, 0x18f: 0x56, + 0x190: 0x5b, 0x191: 0x5c, 0x192: 0x5d, 0x193: 0x5e, 0x194: 0x56, 0x195: 0x56, 0x196: 0x56, 0x197: 0x56, + 0x198: 0x56, 0x199: 0x56, 0x19a: 0x5f, 0x19b: 0x56, 0x19c: 0x56, 0x19d: 0x60, 0x19e: 0x56, 0x19f: 0x61, + 0x1a4: 0x56, 0x1a5: 0x56, 0x1a6: 0x62, 0x1a7: 0x63, + 0x1a8: 0x56, 0x1a9: 0x56, 0x1aa: 0x56, 0x1ab: 0x56, 0x1ac: 0x56, 0x1ad: 0x64, 0x1ae: 0x65, 0x1af: 0x56, + 0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68, + 0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x56, 0x1bd: 0x56, 0x1be: 0x56, 0x1bf: 0x6d, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71, + 0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77, + // Block 0x8, offset 0x200 + 0x237: 0x56, + // Block 0x9, offset 0x240 + 0x252: 0x78, 0x253: 0x79, + 0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f, + 0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26d: 0x8b, 0x26f: 0x8c, + // Block 0xa, offset 0x280 + 0x2ac: 0x8d, 0x2ad: 0x8e, 0x2ae: 0x0e, 0x2af: 0x0e, + 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8f, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x90, + 0x2b8: 0x91, 0x2b9: 0x92, 0x2ba: 0x0e, 0x2bb: 0x93, 0x2bc: 0x94, 0x2bd: 0x95, 0x2bf: 0x96, + // Block 0xb, offset 0x2c0 + 0x2c4: 0x97, 0x2c5: 0x56, 0x2c6: 0x98, 0x2c7: 0x99, + 0x2cb: 0x9a, 0x2cd: 0x9b, + 0x2e0: 0x9c, 0x2e1: 0x9c, 0x2e2: 0x9c, 0x2e3: 0x9c, 0x2e4: 0x9d, 0x2e5: 0x9c, 0x2e6: 0x9c, 0x2e7: 0x9c, + 0x2e8: 0x9e, 0x2e9: 0x9c, 0x2ea: 0x9c, 0x2eb: 0x9f, 0x2ec: 0xa0, 0x2ed: 0x9c, 0x2ee: 0x9c, 0x2ef: 0x9c, + 0x2f0: 0x9c, 0x2f1: 0x9c, 0x2f2: 0x9c, 0x2f3: 0x9c, 0x2f4: 0xa1, 0x2f5: 0x9c, 0x2f6: 0x9c, 0x2f7: 0x9c, + 0x2f8: 0x9c, 0x2f9: 0xa2, 0x2fa: 0xa3, 0x2fb: 0x9c, 0x2fc: 0xa4, 0x2fd: 0xa5, 0x2fe: 0x9c, 0x2ff: 0x9c, + // Block 0xc, offset 0x300 + 0x300: 0xa6, 0x301: 0xa7, 0x302: 0xa8, 0x304: 0xa9, 0x305: 0xaa, 0x306: 0xab, 0x307: 0xac, + 0x308: 0xad, 0x30b: 0xae, 0x30c: 0x26, 0x30d: 0xaf, + 0x310: 0xb0, 0x311: 0xb1, 0x312: 0xb2, 0x313: 0xb3, 0x316: 0xb4, 0x317: 0xb5, + 0x318: 0xb6, 0x319: 0xb7, 0x31a: 0xb8, 0x31c: 0xb9, + 0x320: 0xba, 0x324: 0xbb, 0x325: 0xbc, 0x327: 0xbd, + 0x328: 0xbe, 0x329: 0xbf, 0x32a: 0xc0, + 0x330: 0xc1, 0x332: 0xc2, 0x334: 0xc3, 0x335: 0xc4, 0x336: 0xc5, + 0x33b: 0xc6, 0x33f: 0xc7, + // Block 0xd, offset 0x340 + 0x36b: 0xc8, 0x36c: 0xc9, + 0x37d: 0xca, 0x37e: 0xcb, 0x37f: 0xcc, + // Block 0xe, offset 0x380 + 0x3b2: 0xcd, + // Block 0xf, offset 0x3c0 + 0x3c5: 0xce, 0x3c6: 0xcf, + 0x3c8: 0x56, 0x3c9: 0xd0, 0x3cc: 0x56, 0x3cd: 0xd1, + 0x3db: 0xd2, 0x3dc: 0xd3, 0x3dd: 0xd4, 0x3de: 0xd5, 0x3df: 0xd6, + 0x3e8: 0xd7, 0x3e9: 0xd8, 0x3ea: 0xd9, + // Block 0x10, offset 0x400 + 0x400: 0xda, 0x404: 0xc9, + 0x40b: 0xdb, + 0x420: 0x9c, 0x421: 0x9c, 0x422: 0x9c, 0x423: 0xdc, 0x424: 0x9c, 0x425: 0xdd, 0x426: 0x9c, 0x427: 0x9c, + 0x428: 0x9c, 0x429: 0x9c, 0x42a: 0x9c, 0x42b: 0x9c, 0x42c: 0x9c, 0x42d: 0x9c, 0x42e: 0x9c, 0x42f: 0x9c, + 0x430: 0x9c, 0x431: 0xa4, 0x432: 0x0e, 0x433: 0x9c, 0x434: 0x0e, 0x435: 0xde, 0x436: 0x9c, 0x437: 0x9c, + 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xdf, 0x43c: 0x9c, 0x43d: 0x9c, 0x43e: 0x9c, 0x43f: 0x9c, + // Block 0x11, offset 0x440 + 0x440: 0xe0, 0x441: 0x56, 0x442: 0xe1, 0x443: 0xe2, 0x444: 0xe3, 0x445: 0xe4, 0x446: 0xe5, + 0x449: 0xe6, 0x44c: 0x56, 0x44d: 0x56, 0x44e: 0x56, 0x44f: 0x56, + 0x450: 0x56, 0x451: 0x56, 0x452: 0x56, 0x453: 0x56, 0x454: 0x56, 0x455: 0x56, 0x456: 0x56, 0x457: 0x56, + 0x458: 0x56, 0x459: 0x56, 0x45a: 0x56, 0x45b: 0xe7, 0x45c: 0x56, 0x45d: 0x6c, 0x45e: 0x56, 0x45f: 0xe8, + 0x460: 0xe9, 0x461: 0xea, 0x462: 0xeb, 0x464: 0x56, 0x465: 0xec, 0x466: 0x56, 0x467: 0xed, + 0x468: 0x56, 0x469: 0xee, 0x46a: 0xef, 0x46b: 0xf0, 0x46c: 0x56, 0x46d: 0x56, 0x46e: 0xf1, 0x46f: 0xf2, + 0x47f: 0xf3, + // Block 0x12, offset 0x480 + 0x4bf: 0xf3, + // Block 0x13, offset 0x4c0 + 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b, + 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f, + 0x4ef: 0x10, + 0x4ff: 0x10, + // Block 0x14, offset 0x500 + 0x50f: 0x10, + 0x51f: 0x10, + 0x52f: 0x10, + 0x53f: 0x10, + // Block 0x15, offset 0x540 + 0x540: 0xf4, 0x541: 0xf4, 0x542: 0xf4, 0x543: 0xf4, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xf5, + 0x548: 0xf4, 0x549: 0xf4, 0x54a: 0xf4, 0x54b: 0xf4, 0x54c: 0xf4, 0x54d: 0xf4, 0x54e: 0xf4, 0x54f: 0xf4, + 0x550: 0xf4, 0x551: 0xf4, 0x552: 0xf4, 0x553: 0xf4, 0x554: 0xf4, 0x555: 0xf4, 0x556: 0xf4, 0x557: 0xf4, + 0x558: 0xf4, 0x559: 0xf4, 0x55a: 0xf4, 0x55b: 0xf4, 0x55c: 0xf4, 0x55d: 0xf4, 0x55e: 0xf4, 0x55f: 0xf4, + 0x560: 0xf4, 0x561: 0xf4, 0x562: 0xf4, 0x563: 0xf4, 0x564: 0xf4, 0x565: 0xf4, 0x566: 0xf4, 0x567: 0xf4, + 0x568: 0xf4, 0x569: 0xf4, 0x56a: 0xf4, 0x56b: 0xf4, 0x56c: 0xf4, 0x56d: 0xf4, 0x56e: 0xf4, 0x56f: 0xf4, + 0x570: 0xf4, 0x571: 0xf4, 0x572: 0xf4, 0x573: 0xf4, 0x574: 0xf4, 0x575: 0xf4, 0x576: 0xf4, 0x577: 0xf4, + 0x578: 0xf4, 0x579: 0xf4, 0x57a: 0xf4, 0x57b: 0xf4, 0x57c: 0xf4, 0x57d: 0xf4, 0x57e: 0xf4, 0x57f: 0xf4, + // Block 0x16, offset 0x580 + 0x58f: 0x10, + 0x59f: 0x10, + 0x5a0: 0x13, + 0x5af: 0x10, + 0x5bf: 0x10, + // Block 0x17, offset 0x5c0 + 0x5cf: 0x10, +} + +// Total table size 17464 bytes (17KiB); checksum: F50EF68C diff --git a/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go new file mode 100644 index 0000000..f517fdb --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go @@ -0,0 +1,1782 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build !go1.10 +// +build !go1.10 + +package bidi + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "9.0.0" + +// xorMasks contains masks to be xor-ed with brackets to get the reverse +// version. +var xorMasks = []int32{ // 8 elements + 0, 1, 6, 7, 3, 15, 29, 63, +} // Size: 56 bytes + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupUnsafe(s []byte) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookupString(s string) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupStringUnsafe(s string) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// bidiTrie. Total size: 15744 bytes (15.38 KiB). Checksum: b4c3b70954803b86. +type bidiTrie struct{} + +func newBidiTrie(i int) *bidiTrie { + return &bidiTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 { + switch { + default: + return uint8(bidiValues[n<<6+uint32(b)]) + } +} + +// bidiValues: 222 blocks, 14208 entries, 14208 bytes +// The third block is the zero block. +var bidiValues = [14208]uint8{ + // Block 0x0, offset 0x0 + 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b, + 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008, + 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b, + 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b, + 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007, + 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004, + 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a, + 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006, + 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002, + 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a, + 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a, + // Block 0x1, offset 0x40 + 0x40: 0x000a, + 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a, + 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a, + 0x7b: 0x005a, + 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007, + 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b, + 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b, + 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b, + 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b, + 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004, + 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a, + 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a, + 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a, + 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a, + 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a, + // Block 0x4, offset 0x100 + 0x117: 0x000a, + 0x137: 0x000a, + // Block 0x5, offset 0x140 + 0x179: 0x000a, 0x17a: 0x000a, + // Block 0x6, offset 0x180 + 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a, + 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a, + 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a, + 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a, + 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a, + 0x19e: 0x000a, 0x19f: 0x000a, + 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a, + 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a, + 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a, + 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a, + 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c, + 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c, + 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c, + 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c, + 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c, + 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c, + 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c, + 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c, + 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c, + 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c, + 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c, + // Block 0x8, offset 0x200 + 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c, + 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c, + 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c, + 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c, + 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c, + 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c, + 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c, + 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c, + 0x234: 0x000a, 0x235: 0x000a, + 0x23e: 0x000a, + // Block 0x9, offset 0x240 + 0x244: 0x000a, 0x245: 0x000a, + 0x247: 0x000a, + // Block 0xa, offset 0x280 + 0x2b6: 0x000a, + // Block 0xb, offset 0x2c0 + 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c, + 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c, + // Block 0xc, offset 0x300 + 0x30a: 0x000a, + 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c, + 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c, + 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c, + 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c, + 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c, + 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c, + 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c, + 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c, + 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c, + // Block 0xd, offset 0x340 + 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c, + 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001, + 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001, + 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001, + 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001, + 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001, + 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001, + 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001, + 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001, + 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001, + 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001, + // Block 0xe, offset 0x380 + 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005, + 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d, + 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c, + 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c, + 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d, + 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d, + 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d, + 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d, + 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d, + 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d, + 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d, + 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c, + 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c, + 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c, + 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c, + 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005, + 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005, + 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d, + 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d, + 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d, + 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d, + // Block 0x10, offset 0x400 + 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d, + 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d, + 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d, + 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d, + 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d, + 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d, + 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d, + 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d, + 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d, + 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d, + 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d, + // Block 0x11, offset 0x440 + 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d, + 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d, + 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d, + 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c, + 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005, + 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c, + 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a, + 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d, + 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002, + 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d, + 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d, + // Block 0x12, offset 0x480 + 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d, + 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d, + 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c, + 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d, + 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d, + 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d, + 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d, + 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d, + 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c, + 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c, + 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c, + 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d, + 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d, + 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d, + 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d, + 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d, + 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d, + 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d, + 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d, + 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d, + 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d, + // Block 0x14, offset 0x500 + 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d, + 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d, + 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d, + 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d, + 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d, + 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d, + 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c, + 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c, + 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d, + 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d, + 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d, + // Block 0x15, offset 0x540 + 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001, + 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001, + 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001, + 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001, + 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001, + 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001, + 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001, + 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c, + 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001, + 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001, + 0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001, + // Block 0x16, offset 0x580 + 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001, + 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001, + 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001, + 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c, + 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c, + 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c, + 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c, + 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001, + 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001, + 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001, + 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001, + 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001, + 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001, + 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001, + 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001, + 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x0001, 0x5e1: 0x0001, 0x5e2: 0x0001, 0x5e3: 0x0001, + 0x5e4: 0x0001, 0x5e5: 0x0001, 0x5e6: 0x0001, 0x5e7: 0x0001, 0x5e8: 0x0001, 0x5e9: 0x0001, + 0x5ea: 0x0001, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001, + 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001, + 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001, + 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001, + // Block 0x18, offset 0x600 + 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001, + 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001, + 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001, + 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001, + 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001, + 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d, + 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d, + 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d, + 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d, + 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d, + 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d, + // Block 0x19, offset 0x640 + 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d, + 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d, + 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d, + 0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c, + 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c, + 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c, + 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c, + 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c, + 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c, + 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c, + 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c, + // Block 0x1a, offset 0x680 + 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c, + 0x6ba: 0x000c, + 0x6bc: 0x000c, + // Block 0x1b, offset 0x6c0 + 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c, + 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c, + 0x6cd: 0x000c, 0x6d1: 0x000c, + 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c, + 0x6e2: 0x000c, 0x6e3: 0x000c, + // Block 0x1c, offset 0x700 + 0x701: 0x000c, + 0x73c: 0x000c, + // Block 0x1d, offset 0x740 + 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c, + 0x74d: 0x000c, + 0x762: 0x000c, 0x763: 0x000c, + 0x772: 0x0004, 0x773: 0x0004, + 0x77b: 0x0004, + // Block 0x1e, offset 0x780 + 0x781: 0x000c, 0x782: 0x000c, + 0x7bc: 0x000c, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x000c, 0x7c2: 0x000c, + 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c, + 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c, + 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c, + // Block 0x20, offset 0x800 + 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c, + 0x807: 0x000c, 0x808: 0x000c, + 0x80d: 0x000c, + 0x822: 0x000c, 0x823: 0x000c, + 0x831: 0x0004, + // Block 0x21, offset 0x840 + 0x841: 0x000c, + 0x87c: 0x000c, 0x87f: 0x000c, + // Block 0x22, offset 0x880 + 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c, + 0x88d: 0x000c, + 0x896: 0x000c, + 0x8a2: 0x000c, 0x8a3: 0x000c, + // Block 0x23, offset 0x8c0 + 0x8c2: 0x000c, + // Block 0x24, offset 0x900 + 0x900: 0x000c, + 0x90d: 0x000c, + 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a, + 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a, + // Block 0x25, offset 0x940 + 0x940: 0x000c, + 0x97e: 0x000c, 0x97f: 0x000c, + // Block 0x26, offset 0x980 + 0x980: 0x000c, + 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c, + 0x98c: 0x000c, 0x98d: 0x000c, + 0x995: 0x000c, 0x996: 0x000c, + 0x9a2: 0x000c, 0x9a3: 0x000c, + 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a, + 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a, + // Block 0x27, offset 0x9c0 + 0x9cc: 0x000c, 0x9cd: 0x000c, + 0x9e2: 0x000c, 0x9e3: 0x000c, + // Block 0x28, offset 0xa00 + 0xa01: 0x000c, + // Block 0x29, offset 0xa40 + 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c, + 0xa4d: 0x000c, + 0xa62: 0x000c, 0xa63: 0x000c, + // Block 0x2a, offset 0xa80 + 0xa8a: 0x000c, + 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c, + // Block 0x2b, offset 0xac0 + 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c, + 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c, + 0xaff: 0x0004, + // Block 0x2c, offset 0xb00 + 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c, + 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c, + // Block 0x2d, offset 0xb40 + 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c, + 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c, + 0xb7c: 0x000c, + // Block 0x2e, offset 0xb80 + 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c, + 0xb8c: 0x000c, 0xb8d: 0x000c, + // Block 0x2f, offset 0xbc0 + 0xbd8: 0x000c, 0xbd9: 0x000c, + 0xbf5: 0x000c, + 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a, + 0xbfc: 0x003a, 0xbfd: 0x002a, + // Block 0x30, offset 0xc00 + 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c, + 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c, + 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c, + // Block 0x31, offset 0xc40 + 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c, + 0xc46: 0x000c, 0xc47: 0x000c, + 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c, + 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c, + 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c, + 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c, + 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c, + 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c, + 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c, + 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c, + 0xc7c: 0x000c, + // Block 0x32, offset 0xc80 + 0xc86: 0x000c, + // Block 0x33, offset 0xcc0 + 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c, + 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c, + 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c, + 0xcfd: 0x000c, 0xcfe: 0x000c, + // Block 0x34, offset 0xd00 + 0xd18: 0x000c, 0xd19: 0x000c, + 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c, + 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, + // Block 0x35, offset 0xd40 + 0xd42: 0x000c, 0xd45: 0x000c, + 0xd46: 0x000c, + 0xd4d: 0x000c, + 0xd5d: 0x000c, + // Block 0x36, offset 0xd80 + 0xd9d: 0x000c, + 0xd9e: 0x000c, 0xd9f: 0x000c, + // Block 0x37, offset 0xdc0 + 0xdd0: 0x000a, 0xdd1: 0x000a, + 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a, + 0xdd8: 0x000a, 0xdd9: 0x000a, + // Block 0x38, offset 0xe00 + 0xe00: 0x000a, + // Block 0x39, offset 0xe40 + 0xe40: 0x0009, + 0xe5b: 0x007a, 0xe5c: 0x006a, + // Block 0x3a, offset 0xe80 + 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c, + 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c, + // Block 0x3b, offset 0xec0 + 0xed2: 0x000c, 0xed3: 0x000c, + 0xef2: 0x000c, 0xef3: 0x000c, + // Block 0x3c, offset 0xf00 + 0xf34: 0x000c, 0xf35: 0x000c, + 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c, + 0xf3c: 0x000c, 0xf3d: 0x000c, + // Block 0x3d, offset 0xf40 + 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c, + 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c, + 0xf52: 0x000c, 0xf53: 0x000c, + 0xf5b: 0x0004, 0xf5d: 0x000c, + 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a, + 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a, + // Block 0x3e, offset 0xf80 + 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a, + 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c, + 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b, + // Block 0x3f, offset 0xfc0 + 0xfc5: 0x000c, + 0xfc6: 0x000c, + 0xfe9: 0x000c, + // Block 0x40, offset 0x1000 + 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c, + 0x1027: 0x000c, 0x1028: 0x000c, + 0x1032: 0x000c, + 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c, + // Block 0x41, offset 0x1040 + 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a, + // Block 0x42, offset 0x1080 + 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a, + 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a, + 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a, + 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a, + 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a, + 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a, + // Block 0x43, offset 0x10c0 + 0x10d7: 0x000c, + 0x10d8: 0x000c, 0x10db: 0x000c, + // Block 0x44, offset 0x1100 + 0x1116: 0x000c, + 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c, + 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c, + 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c, + 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c, + 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c, + 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c, + 0x113c: 0x000c, 0x113f: 0x000c, + // Block 0x45, offset 0x1140 + 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c, + 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c, + 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c, + // Block 0x46, offset 0x1180 + 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c, + 0x11b4: 0x000c, + 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, + 0x11bc: 0x000c, + // Block 0x47, offset 0x11c0 + 0x11c2: 0x000c, + 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c, + 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c, + // Block 0x48, offset 0x1200 + 0x1200: 0x000c, 0x1201: 0x000c, + 0x1222: 0x000c, 0x1223: 0x000c, + 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c, + 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c, + // Block 0x49, offset 0x1240 + 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c, + 0x126d: 0x000c, 0x126f: 0x000c, + 0x1270: 0x000c, 0x1271: 0x000c, + // Block 0x4a, offset 0x1280 + 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c, + 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c, + 0x12b6: 0x000c, 0x12b7: 0x000c, + // Block 0x4b, offset 0x12c0 + 0x12d0: 0x000c, 0x12d1: 0x000c, + 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c, + 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c, + 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c, + 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c, + 0x12ed: 0x000c, + 0x12f4: 0x000c, + 0x12f8: 0x000c, 0x12f9: 0x000c, + // Block 0x4c, offset 0x1300 + 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c, + 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c, + 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c, + 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c, + 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c, + 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c, + 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c, + 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c, + 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c, + 0x133b: 0x000c, + 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c, + // Block 0x4d, offset 0x1340 + 0x137d: 0x000a, 0x137f: 0x000a, + // Block 0x4e, offset 0x1380 + 0x1380: 0x000a, 0x1381: 0x000a, + 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a, + 0x139d: 0x000a, + 0x139e: 0x000a, 0x139f: 0x000a, + 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a, + 0x13bd: 0x000a, 0x13be: 0x000a, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009, + 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b, + 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a, + 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a, + 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a, + 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a, + 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007, + 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006, + 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a, + 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a, + 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a, + // Block 0x50, offset 0x1400 + 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a, + 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a, + 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a, + 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a, + 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a, + 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b, + 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e, + 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b, + 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002, + 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003, + 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a, + // Block 0x51, offset 0x1440 + 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002, + 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003, + 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a, + 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004, + 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004, + 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004, + 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004, + 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004, + 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004, + // Block 0x52, offset 0x1480 + 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004, + 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004, + 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c, + 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c, + 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c, + 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c, + 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c, + 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c, + 0x14b0: 0x000c, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a, + 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a, + 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a, + 0x14d8: 0x000a, + 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a, + 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a, + 0x14ee: 0x0004, + 0x14fa: 0x000a, 0x14fb: 0x000a, + // Block 0x54, offset 0x1500 + 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a, + 0x150a: 0x000a, 0x150b: 0x000a, + 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a, + 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a, + 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a, + 0x151e: 0x000a, 0x151f: 0x000a, + // Block 0x55, offset 0x1540 + 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a, + 0x1550: 0x000a, 0x1551: 0x000a, + 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a, + 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a, + 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a, + 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a, + 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a, + 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a, + 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a, + 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a, + // Block 0x56, offset 0x1580 + 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a, + 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a, + 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a, + 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a, + 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a, + 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a, + 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a, + 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a, + 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a, + 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a, + 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a, + 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a, + 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a, + 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a, + 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a, + 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a, + 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a, + 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a, + 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a, + 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a, + 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a, + // Block 0x58, offset 0x1600 + 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a, + 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a, + 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a, + 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a, + 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a, + 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a, + 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a, + 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a, + 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a, + // Block 0x59, offset 0x1640 + 0x167b: 0x000a, + 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a, + // Block 0x5a, offset 0x1680 + 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a, + 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a, + 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a, + 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a, + 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a, + 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a, + 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a, + 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a, + 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a, + 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a, + 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a, + 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a, + 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a, + 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a, + 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a, + 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a, + 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a, + 0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a, + 0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a, + 0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a, + 0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a, + // Block 0x5c, offset 0x1700 + 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a, + 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a, + 0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a, + 0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a, + 0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a, + 0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a, + 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, + // Block 0x5d, offset 0x1740 + 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a, + 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a, + 0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a, + 0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a, + 0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a, + 0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a, + 0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a, + 0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a, + // Block 0x5e, offset 0x1780 + 0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a, + 0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002, + 0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002, + 0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002, + 0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002, + // Block 0x5f, offset 0x17c0 + 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a, + 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a, + 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a, + 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a, + // Block 0x60, offset 0x1800 + 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a, + 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a, + 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a, + 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a, + 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a, + 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a, + 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a, + 0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a, + 0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a, + 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a, + 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a, + // Block 0x61, offset 0x1840 + 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a, + 0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a, + 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a, + 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a, + 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a, + 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a, + 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a, + 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a, + 0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a, + 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a, + 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a, + // Block 0x62, offset 0x1880 + 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a, + 0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a, + 0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a, + 0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a, + 0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a, + 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a, + 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a, + 0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a, + 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a, + 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a, + 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a, + 0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a, + 0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a, + 0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba, + 0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a, + 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a, + 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a, + 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a, + 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a, + 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a, + 0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a, + // Block 0x64, offset 0x1900 + 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a, + 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a, + 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a, + 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a, + 0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a, + 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a, + 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a, + 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a, + 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a, + 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a, + 0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a, + // Block 0x65, offset 0x1940 + 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a, + 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a, + 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a, + 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a, + 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a, + 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a, + 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a, + 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a, + 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, + 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a, + 0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a, + // Block 0x66, offset 0x1980 + 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a, + 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a, + 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a, + 0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, + 0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a, + 0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a, + 0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a, + 0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a, + 0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a, + 0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, + 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a, + 0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a, + 0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a, + 0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a, + // Block 0x68, offset 0x1a00 + 0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a, + 0x1a2a: 0x000a, 0x1a2f: 0x000c, + 0x1a30: 0x000c, 0x1a31: 0x000c, + 0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a, + 0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a, + // Block 0x69, offset 0x1a40 + 0x1a7f: 0x000c, + // Block 0x6a, offset 0x1a80 + 0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c, + 0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c, + 0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c, + 0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c, + 0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c, + 0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a, + 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a, + 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a, + 0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a, + 0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a, + 0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a, + 0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a, + 0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a, + 0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a, + 0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a, + 0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a, + 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a, + 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a, + 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a, + 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a, + 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a, + 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a, + 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a, + 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a, + 0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a, + 0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a, + 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a, + 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a, + 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a, + 0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a, + 0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a, + 0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a, + 0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a, + 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a, + 0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a, + 0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a, + 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a, + 0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a, + 0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a, + 0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a, + 0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a, + 0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a, + 0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a, + 0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a, + 0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c, + 0x1c30: 0x000a, + 0x1c36: 0x000a, 0x1c37: 0x000a, + 0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a, + // Block 0x71, offset 0x1c40 + 0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a, + 0x1c60: 0x000a, + // Block 0x72, offset 0x1c80 + 0x1cbb: 0x000a, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a, + 0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a, + 0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a, + 0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a, + 0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a, + 0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a, + // Block 0x74, offset 0x1d00 + 0x1d1d: 0x000a, + 0x1d1e: 0x000a, + // Block 0x75, offset 0x1d40 + 0x1d50: 0x000a, 0x1d51: 0x000a, + 0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a, + 0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a, + 0x1d5e: 0x000a, 0x1d5f: 0x000a, + 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, + // Block 0x76, offset 0x1d80 + 0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a, + 0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a, + 0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a, + // Block 0x77, offset 0x1dc0 + 0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a, + // Block 0x78, offset 0x1e00 + 0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a, + // Block 0x79, offset 0x1e40 + 0x1e5e: 0x000a, 0x1e5f: 0x000a, + 0x1e7f: 0x000a, + // Block 0x7a, offset 0x1e80 + 0x1e90: 0x000a, 0x1e91: 0x000a, + 0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a, + 0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a, + 0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a, + 0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a, + 0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a, + 0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a, + 0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a, + 0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a, + 0x1ec6: 0x000a, + // Block 0x7c, offset 0x1f00 + 0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a, + // Block 0x7d, offset 0x1f40 + 0x1f6f: 0x000c, + 0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c, + 0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c, + 0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a, + // Block 0x7e, offset 0x1f80 + 0x1f9e: 0x000c, 0x1f9f: 0x000c, + // Block 0x7f, offset 0x1fc0 + 0x1ff0: 0x000c, 0x1ff1: 0x000c, + // Block 0x80, offset 0x2000 + 0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a, + 0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a, + 0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a, + 0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a, + 0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a, + 0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a, + // Block 0x81, offset 0x2040 + 0x2048: 0x000a, + // Block 0x82, offset 0x2080 + 0x2082: 0x000c, + 0x2086: 0x000c, 0x208b: 0x000c, + 0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a, + 0x20aa: 0x000a, 0x20ab: 0x000a, + 0x20b8: 0x0004, 0x20b9: 0x0004, + // Block 0x83, offset 0x20c0 + 0x20f4: 0x000a, 0x20f5: 0x000a, + 0x20f6: 0x000a, 0x20f7: 0x000a, + // Block 0x84, offset 0x2100 + 0x2104: 0x000c, 0x2105: 0x000c, + 0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c, + 0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c, + 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c, + 0x2130: 0x000c, 0x2131: 0x000c, + // Block 0x85, offset 0x2140 + 0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c, + 0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c, + // Block 0x86, offset 0x2180 + 0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c, + 0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c, + // Block 0x87, offset 0x21c0 + 0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c, + 0x21f3: 0x000c, + 0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c, + 0x21fc: 0x000c, + // Block 0x88, offset 0x2200 + 0x2225: 0x000c, + // Block 0x89, offset 0x2240 + 0x2269: 0x000c, + 0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c, + 0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c, + 0x2276: 0x000c, + // Block 0x8a, offset 0x2280 + 0x2283: 0x000c, + 0x228c: 0x000c, + 0x22bc: 0x000c, + // Block 0x8b, offset 0x22c0 + 0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c, + 0x22f7: 0x000c, 0x22f8: 0x000c, + 0x22fe: 0x000c, 0x22ff: 0x000c, + // Block 0x8c, offset 0x2300 + 0x2301: 0x000c, + 0x232c: 0x000c, 0x232d: 0x000c, + 0x2336: 0x000c, + // Block 0x8d, offset 0x2340 + 0x2365: 0x000c, 0x2368: 0x000c, + 0x236d: 0x000c, + // Block 0x8e, offset 0x2380 + 0x239d: 0x0001, + 0x239e: 0x000c, 0x239f: 0x0001, 0x23a0: 0x0001, 0x23a1: 0x0001, 0x23a2: 0x0001, 0x23a3: 0x0001, + 0x23a4: 0x0001, 0x23a5: 0x0001, 0x23a6: 0x0001, 0x23a7: 0x0001, 0x23a8: 0x0001, 0x23a9: 0x0003, + 0x23aa: 0x0001, 0x23ab: 0x0001, 0x23ac: 0x0001, 0x23ad: 0x0001, 0x23ae: 0x0001, 0x23af: 0x0001, + 0x23b0: 0x0001, 0x23b1: 0x0001, 0x23b2: 0x0001, 0x23b3: 0x0001, 0x23b4: 0x0001, 0x23b5: 0x0001, + 0x23b6: 0x0001, 0x23b7: 0x0001, 0x23b8: 0x0001, 0x23b9: 0x0001, 0x23ba: 0x0001, 0x23bb: 0x0001, + 0x23bc: 0x0001, 0x23bd: 0x0001, 0x23be: 0x0001, 0x23bf: 0x0001, + // Block 0x8f, offset 0x23c0 + 0x23c0: 0x0001, 0x23c1: 0x0001, 0x23c2: 0x0001, 0x23c3: 0x0001, 0x23c4: 0x0001, 0x23c5: 0x0001, + 0x23c6: 0x0001, 0x23c7: 0x0001, 0x23c8: 0x0001, 0x23c9: 0x0001, 0x23ca: 0x0001, 0x23cb: 0x0001, + 0x23cc: 0x0001, 0x23cd: 0x0001, 0x23ce: 0x0001, 0x23cf: 0x0001, 0x23d0: 0x000d, 0x23d1: 0x000d, + 0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d, + 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d, + 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d, + 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d, + 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d, + 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d, + 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d, + 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d, + // Block 0x90, offset 0x2400 + 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d, + 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d, + 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d, + 0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d, + 0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d, + 0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d, + 0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d, + 0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d, + 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d, + 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d, + 0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a, + // Block 0x91, offset 0x2440 + 0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d, + 0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d, + 0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000b, 0x2451: 0x000b, + 0x2452: 0x000b, 0x2453: 0x000b, 0x2454: 0x000b, 0x2455: 0x000b, 0x2456: 0x000b, 0x2457: 0x000b, + 0x2458: 0x000b, 0x2459: 0x000b, 0x245a: 0x000b, 0x245b: 0x000b, 0x245c: 0x000b, 0x245d: 0x000b, + 0x245e: 0x000b, 0x245f: 0x000b, 0x2460: 0x000b, 0x2461: 0x000b, 0x2462: 0x000b, 0x2463: 0x000b, + 0x2464: 0x000b, 0x2465: 0x000b, 0x2466: 0x000b, 0x2467: 0x000b, 0x2468: 0x000b, 0x2469: 0x000b, + 0x246a: 0x000b, 0x246b: 0x000b, 0x246c: 0x000b, 0x246d: 0x000b, 0x246e: 0x000b, 0x246f: 0x000b, + 0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d, + 0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d, + 0x247c: 0x000d, 0x247d: 0x000a, 0x247e: 0x000d, 0x247f: 0x000d, + // Block 0x92, offset 0x2480 + 0x2480: 0x000c, 0x2481: 0x000c, 0x2482: 0x000c, 0x2483: 0x000c, 0x2484: 0x000c, 0x2485: 0x000c, + 0x2486: 0x000c, 0x2487: 0x000c, 0x2488: 0x000c, 0x2489: 0x000c, 0x248a: 0x000c, 0x248b: 0x000c, + 0x248c: 0x000c, 0x248d: 0x000c, 0x248e: 0x000c, 0x248f: 0x000c, 0x2490: 0x000a, 0x2491: 0x000a, + 0x2492: 0x000a, 0x2493: 0x000a, 0x2494: 0x000a, 0x2495: 0x000a, 0x2496: 0x000a, 0x2497: 0x000a, + 0x2498: 0x000a, 0x2499: 0x000a, + 0x24a0: 0x000c, 0x24a1: 0x000c, 0x24a2: 0x000c, 0x24a3: 0x000c, + 0x24a4: 0x000c, 0x24a5: 0x000c, 0x24a6: 0x000c, 0x24a7: 0x000c, 0x24a8: 0x000c, 0x24a9: 0x000c, + 0x24aa: 0x000c, 0x24ab: 0x000c, 0x24ac: 0x000c, 0x24ad: 0x000c, 0x24ae: 0x000c, 0x24af: 0x000c, + 0x24b0: 0x000a, 0x24b1: 0x000a, 0x24b2: 0x000a, 0x24b3: 0x000a, 0x24b4: 0x000a, 0x24b5: 0x000a, + 0x24b6: 0x000a, 0x24b7: 0x000a, 0x24b8: 0x000a, 0x24b9: 0x000a, 0x24ba: 0x000a, 0x24bb: 0x000a, + 0x24bc: 0x000a, 0x24bd: 0x000a, 0x24be: 0x000a, 0x24bf: 0x000a, + // Block 0x93, offset 0x24c0 + 0x24c0: 0x000a, 0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x000a, 0x24c4: 0x000a, 0x24c5: 0x000a, + 0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x000a, 0x24c9: 0x000a, 0x24ca: 0x000a, 0x24cb: 0x000a, + 0x24cc: 0x000a, 0x24cd: 0x000a, 0x24ce: 0x000a, 0x24cf: 0x000a, 0x24d0: 0x0006, 0x24d1: 0x000a, + 0x24d2: 0x0006, 0x24d4: 0x000a, 0x24d5: 0x0006, 0x24d6: 0x000a, 0x24d7: 0x000a, + 0x24d8: 0x000a, 0x24d9: 0x009a, 0x24da: 0x008a, 0x24db: 0x007a, 0x24dc: 0x006a, 0x24dd: 0x009a, + 0x24de: 0x008a, 0x24df: 0x0004, 0x24e0: 0x000a, 0x24e1: 0x000a, 0x24e2: 0x0003, 0x24e3: 0x0003, + 0x24e4: 0x000a, 0x24e5: 0x000a, 0x24e6: 0x000a, 0x24e8: 0x000a, 0x24e9: 0x0004, + 0x24ea: 0x0004, 0x24eb: 0x000a, + 0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d, + 0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d, + 0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000d, + // Block 0x94, offset 0x2500 + 0x2500: 0x000d, 0x2501: 0x000d, 0x2502: 0x000d, 0x2503: 0x000d, 0x2504: 0x000d, 0x2505: 0x000d, + 0x2506: 0x000d, 0x2507: 0x000d, 0x2508: 0x000d, 0x2509: 0x000d, 0x250a: 0x000d, 0x250b: 0x000d, + 0x250c: 0x000d, 0x250d: 0x000d, 0x250e: 0x000d, 0x250f: 0x000d, 0x2510: 0x000d, 0x2511: 0x000d, + 0x2512: 0x000d, 0x2513: 0x000d, 0x2514: 0x000d, 0x2515: 0x000d, 0x2516: 0x000d, 0x2517: 0x000d, + 0x2518: 0x000d, 0x2519: 0x000d, 0x251a: 0x000d, 0x251b: 0x000d, 0x251c: 0x000d, 0x251d: 0x000d, + 0x251e: 0x000d, 0x251f: 0x000d, 0x2520: 0x000d, 0x2521: 0x000d, 0x2522: 0x000d, 0x2523: 0x000d, + 0x2524: 0x000d, 0x2525: 0x000d, 0x2526: 0x000d, 0x2527: 0x000d, 0x2528: 0x000d, 0x2529: 0x000d, + 0x252a: 0x000d, 0x252b: 0x000d, 0x252c: 0x000d, 0x252d: 0x000d, 0x252e: 0x000d, 0x252f: 0x000d, + 0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d, + 0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d, + 0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000b, + // Block 0x95, offset 0x2540 + 0x2541: 0x000a, 0x2542: 0x000a, 0x2543: 0x0004, 0x2544: 0x0004, 0x2545: 0x0004, + 0x2546: 0x000a, 0x2547: 0x000a, 0x2548: 0x003a, 0x2549: 0x002a, 0x254a: 0x000a, 0x254b: 0x0003, + 0x254c: 0x0006, 0x254d: 0x0003, 0x254e: 0x0006, 0x254f: 0x0006, 0x2550: 0x0002, 0x2551: 0x0002, + 0x2552: 0x0002, 0x2553: 0x0002, 0x2554: 0x0002, 0x2555: 0x0002, 0x2556: 0x0002, 0x2557: 0x0002, + 0x2558: 0x0002, 0x2559: 0x0002, 0x255a: 0x0006, 0x255b: 0x000a, 0x255c: 0x000a, 0x255d: 0x000a, + 0x255e: 0x000a, 0x255f: 0x000a, 0x2560: 0x000a, + 0x257b: 0x005a, + 0x257c: 0x000a, 0x257d: 0x004a, 0x257e: 0x000a, 0x257f: 0x000a, + // Block 0x96, offset 0x2580 + 0x2580: 0x000a, + 0x259b: 0x005a, 0x259c: 0x000a, 0x259d: 0x004a, + 0x259e: 0x000a, 0x259f: 0x00fa, 0x25a0: 0x00ea, 0x25a1: 0x000a, 0x25a2: 0x003a, 0x25a3: 0x002a, + 0x25a4: 0x000a, 0x25a5: 0x000a, + // Block 0x97, offset 0x25c0 + 0x25e0: 0x0004, 0x25e1: 0x0004, 0x25e2: 0x000a, 0x25e3: 0x000a, + 0x25e4: 0x000a, 0x25e5: 0x0004, 0x25e6: 0x0004, 0x25e8: 0x000a, 0x25e9: 0x000a, + 0x25ea: 0x000a, 0x25eb: 0x000a, 0x25ec: 0x000a, 0x25ed: 0x000a, 0x25ee: 0x000a, + 0x25f0: 0x000b, 0x25f1: 0x000b, 0x25f2: 0x000b, 0x25f3: 0x000b, 0x25f4: 0x000b, 0x25f5: 0x000b, + 0x25f6: 0x000b, 0x25f7: 0x000b, 0x25f8: 0x000b, 0x25f9: 0x000a, 0x25fa: 0x000a, 0x25fb: 0x000a, + 0x25fc: 0x000a, 0x25fd: 0x000a, 0x25fe: 0x000b, 0x25ff: 0x000b, + // Block 0x98, offset 0x2600 + 0x2601: 0x000a, + // Block 0x99, offset 0x2640 + 0x2640: 0x000a, 0x2641: 0x000a, 0x2642: 0x000a, 0x2643: 0x000a, 0x2644: 0x000a, 0x2645: 0x000a, + 0x2646: 0x000a, 0x2647: 0x000a, 0x2648: 0x000a, 0x2649: 0x000a, 0x264a: 0x000a, 0x264b: 0x000a, + 0x264c: 0x000a, 0x2650: 0x000a, 0x2651: 0x000a, + 0x2652: 0x000a, 0x2653: 0x000a, 0x2654: 0x000a, 0x2655: 0x000a, 0x2656: 0x000a, 0x2657: 0x000a, + 0x2658: 0x000a, 0x2659: 0x000a, 0x265a: 0x000a, 0x265b: 0x000a, + 0x2660: 0x000a, + // Block 0x9a, offset 0x2680 + 0x26bd: 0x000c, + // Block 0x9b, offset 0x26c0 + 0x26e0: 0x000c, 0x26e1: 0x0002, 0x26e2: 0x0002, 0x26e3: 0x0002, + 0x26e4: 0x0002, 0x26e5: 0x0002, 0x26e6: 0x0002, 0x26e7: 0x0002, 0x26e8: 0x0002, 0x26e9: 0x0002, + 0x26ea: 0x0002, 0x26eb: 0x0002, 0x26ec: 0x0002, 0x26ed: 0x0002, 0x26ee: 0x0002, 0x26ef: 0x0002, + 0x26f0: 0x0002, 0x26f1: 0x0002, 0x26f2: 0x0002, 0x26f3: 0x0002, 0x26f4: 0x0002, 0x26f5: 0x0002, + 0x26f6: 0x0002, 0x26f7: 0x0002, 0x26f8: 0x0002, 0x26f9: 0x0002, 0x26fa: 0x0002, 0x26fb: 0x0002, + // Block 0x9c, offset 0x2700 + 0x2736: 0x000c, 0x2737: 0x000c, 0x2738: 0x000c, 0x2739: 0x000c, 0x273a: 0x000c, + // Block 0x9d, offset 0x2740 + 0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001, + 0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001, + 0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001, + 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001, + 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001, + 0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001, + 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001, + 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001, + 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001, + 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001, + 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001, + // Block 0x9e, offset 0x2780 + 0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001, + 0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001, + 0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001, + 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001, + 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001, + 0x279e: 0x0001, 0x279f: 0x000a, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001, + 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001, + 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001, + 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001, + 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001, + 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001, + // Block 0x9f, offset 0x27c0 + 0x27c0: 0x0001, 0x27c1: 0x000c, 0x27c2: 0x000c, 0x27c3: 0x000c, 0x27c4: 0x0001, 0x27c5: 0x000c, + 0x27c6: 0x000c, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001, + 0x27cc: 0x000c, 0x27cd: 0x000c, 0x27ce: 0x000c, 0x27cf: 0x000c, 0x27d0: 0x0001, 0x27d1: 0x0001, + 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001, + 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001, + 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001, + 0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001, + 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001, + 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001, + 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x000c, 0x27f9: 0x000c, 0x27fa: 0x000c, 0x27fb: 0x0001, + 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x000c, + // Block 0xa0, offset 0x2800 + 0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001, + 0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001, + 0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001, + 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001, + 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001, + 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001, + 0x2824: 0x0001, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001, + 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001, + 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001, + 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x0001, 0x283a: 0x0001, 0x283b: 0x0001, + 0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x0001, + // Block 0xa1, offset 0x2840 + 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001, + 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001, + 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001, + 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001, + 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001, + 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001, + 0x2864: 0x0001, 0x2865: 0x0001, 0x2866: 0x0001, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001, + 0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001, + 0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001, + 0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x000a, 0x287a: 0x000a, 0x287b: 0x000a, + 0x287c: 0x000a, 0x287d: 0x000a, 0x287e: 0x000a, 0x287f: 0x000a, + // Block 0xa2, offset 0x2880 + 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001, + 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001, + 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001, + 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001, + 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001, + 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005, + 0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005, + 0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005, + 0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005, + 0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005, + 0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001, + // Block 0xa3, offset 0x28c0 + 0x28c1: 0x000c, + 0x28f8: 0x000c, 0x28f9: 0x000c, 0x28fa: 0x000c, 0x28fb: 0x000c, + 0x28fc: 0x000c, 0x28fd: 0x000c, 0x28fe: 0x000c, 0x28ff: 0x000c, + // Block 0xa4, offset 0x2900 + 0x2900: 0x000c, 0x2901: 0x000c, 0x2902: 0x000c, 0x2903: 0x000c, 0x2904: 0x000c, 0x2905: 0x000c, + 0x2906: 0x000c, + 0x2912: 0x000a, 0x2913: 0x000a, 0x2914: 0x000a, 0x2915: 0x000a, 0x2916: 0x000a, 0x2917: 0x000a, + 0x2918: 0x000a, 0x2919: 0x000a, 0x291a: 0x000a, 0x291b: 0x000a, 0x291c: 0x000a, 0x291d: 0x000a, + 0x291e: 0x000a, 0x291f: 0x000a, 0x2920: 0x000a, 0x2921: 0x000a, 0x2922: 0x000a, 0x2923: 0x000a, + 0x2924: 0x000a, 0x2925: 0x000a, + 0x293f: 0x000c, + // Block 0xa5, offset 0x2940 + 0x2940: 0x000c, 0x2941: 0x000c, + 0x2973: 0x000c, 0x2974: 0x000c, 0x2975: 0x000c, + 0x2976: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c, + // Block 0xa6, offset 0x2980 + 0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c, + 0x29a7: 0x000c, 0x29a8: 0x000c, 0x29a9: 0x000c, + 0x29aa: 0x000c, 0x29ab: 0x000c, 0x29ad: 0x000c, 0x29ae: 0x000c, 0x29af: 0x000c, + 0x29b0: 0x000c, 0x29b1: 0x000c, 0x29b2: 0x000c, 0x29b3: 0x000c, 0x29b4: 0x000c, + // Block 0xa7, offset 0x29c0 + 0x29f3: 0x000c, + // Block 0xa8, offset 0x2a00 + 0x2a00: 0x000c, 0x2a01: 0x000c, + 0x2a36: 0x000c, 0x2a37: 0x000c, 0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c, + 0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c, + // Block 0xa9, offset 0x2a40 + 0x2a4a: 0x000c, 0x2a4b: 0x000c, + 0x2a4c: 0x000c, + // Block 0xaa, offset 0x2a80 + 0x2aaf: 0x000c, + 0x2ab0: 0x000c, 0x2ab1: 0x000c, 0x2ab4: 0x000c, + 0x2ab6: 0x000c, 0x2ab7: 0x000c, + 0x2abe: 0x000c, + // Block 0xab, offset 0x2ac0 + 0x2adf: 0x000c, 0x2ae3: 0x000c, + 0x2ae4: 0x000c, 0x2ae5: 0x000c, 0x2ae6: 0x000c, 0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c, + 0x2aea: 0x000c, + // Block 0xac, offset 0x2b00 + 0x2b00: 0x000c, 0x2b01: 0x000c, + 0x2b3c: 0x000c, + // Block 0xad, offset 0x2b40 + 0x2b40: 0x000c, + 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c, + 0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c, + 0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c, + // Block 0xae, offset 0x2b80 + 0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c, + 0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c, + // Block 0xaf, offset 0x2bc0 + 0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c, + 0x2bc6: 0x000c, + // Block 0xb0, offset 0x2c00 + 0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c, + 0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c, + 0x2c3f: 0x000c, + // Block 0xb1, offset 0x2c40 + 0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c, + // Block 0xb2, offset 0x2c80 + 0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c, + 0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c, + // Block 0xb3, offset 0x2cc0 + 0x2cc0: 0x000c, + 0x2cdc: 0x000c, 0x2cdd: 0x000c, + // Block 0xb4, offset 0x2d00 + 0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c, + 0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c, + 0x2d3d: 0x000c, 0x2d3f: 0x000c, + // Block 0xb5, offset 0x2d40 + 0x2d40: 0x000c, + 0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a, + 0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a, + 0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a, + // Block 0xb6, offset 0x2d80 + 0x2dab: 0x000c, 0x2dad: 0x000c, + 0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c, + 0x2db7: 0x000c, + // Block 0xb7, offset 0x2dc0 + 0x2ddd: 0x000c, + 0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c, + 0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c, + 0x2dea: 0x000c, 0x2deb: 0x000c, + // Block 0xb8, offset 0x2e00 + 0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c, + 0x2e36: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c, 0x2e3b: 0x000c, + 0x2e3c: 0x000c, 0x2e3d: 0x000c, + // Block 0xb9, offset 0x2e40 + 0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c, + 0x2e58: 0x000c, 0x2e59: 0x000c, 0x2e5a: 0x000c, 0x2e5b: 0x000c, 0x2e5c: 0x000c, 0x2e5d: 0x000c, + 0x2e5e: 0x000c, 0x2e5f: 0x000c, 0x2e60: 0x000c, 0x2e61: 0x000c, 0x2e62: 0x000c, 0x2e63: 0x000c, + 0x2e64: 0x000c, 0x2e65: 0x000c, 0x2e66: 0x000c, 0x2e67: 0x000c, + 0x2e6a: 0x000c, 0x2e6b: 0x000c, 0x2e6c: 0x000c, 0x2e6d: 0x000c, 0x2e6e: 0x000c, 0x2e6f: 0x000c, + 0x2e70: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e75: 0x000c, + 0x2e76: 0x000c, + // Block 0xba, offset 0x2e80 + 0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, + // Block 0xbb, offset 0x2ec0 + 0x2ef0: 0x000c, 0x2ef1: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef4: 0x000c, 0x2ef5: 0x000c, + 0x2ef6: 0x000c, + // Block 0xbc, offset 0x2f00 + 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c, + 0x2f12: 0x000c, + // Block 0xbd, offset 0x2f40 + 0x2f5d: 0x000c, + 0x2f5e: 0x000c, 0x2f60: 0x000b, 0x2f61: 0x000b, 0x2f62: 0x000b, 0x2f63: 0x000b, + // Block 0xbe, offset 0x2f80 + 0x2fa7: 0x000c, 0x2fa8: 0x000c, 0x2fa9: 0x000c, + 0x2fb3: 0x000b, 0x2fb4: 0x000b, 0x2fb5: 0x000b, + 0x2fb6: 0x000b, 0x2fb7: 0x000b, 0x2fb8: 0x000b, 0x2fb9: 0x000b, 0x2fba: 0x000b, 0x2fbb: 0x000c, + 0x2fbc: 0x000c, 0x2fbd: 0x000c, 0x2fbe: 0x000c, 0x2fbf: 0x000c, + // Block 0xbf, offset 0x2fc0 + 0x2fc0: 0x000c, 0x2fc1: 0x000c, 0x2fc2: 0x000c, 0x2fc5: 0x000c, + 0x2fc6: 0x000c, 0x2fc7: 0x000c, 0x2fc8: 0x000c, 0x2fc9: 0x000c, 0x2fca: 0x000c, 0x2fcb: 0x000c, + 0x2fea: 0x000c, 0x2feb: 0x000c, 0x2fec: 0x000c, 0x2fed: 0x000c, + // Block 0xc0, offset 0x3000 + 0x3000: 0x000a, 0x3001: 0x000a, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000a, + // Block 0xc1, offset 0x3040 + 0x3040: 0x000a, 0x3041: 0x000a, 0x3042: 0x000a, 0x3043: 0x000a, 0x3044: 0x000a, 0x3045: 0x000a, + 0x3046: 0x000a, 0x3047: 0x000a, 0x3048: 0x000a, 0x3049: 0x000a, 0x304a: 0x000a, 0x304b: 0x000a, + 0x304c: 0x000a, 0x304d: 0x000a, 0x304e: 0x000a, 0x304f: 0x000a, 0x3050: 0x000a, 0x3051: 0x000a, + 0x3052: 0x000a, 0x3053: 0x000a, 0x3054: 0x000a, 0x3055: 0x000a, 0x3056: 0x000a, + // Block 0xc2, offset 0x3080 + 0x309b: 0x000a, + // Block 0xc3, offset 0x30c0 + 0x30d5: 0x000a, + // Block 0xc4, offset 0x3100 + 0x310f: 0x000a, + // Block 0xc5, offset 0x3140 + 0x3149: 0x000a, + // Block 0xc6, offset 0x3180 + 0x3183: 0x000a, + 0x318e: 0x0002, 0x318f: 0x0002, 0x3190: 0x0002, 0x3191: 0x0002, + 0x3192: 0x0002, 0x3193: 0x0002, 0x3194: 0x0002, 0x3195: 0x0002, 0x3196: 0x0002, 0x3197: 0x0002, + 0x3198: 0x0002, 0x3199: 0x0002, 0x319a: 0x0002, 0x319b: 0x0002, 0x319c: 0x0002, 0x319d: 0x0002, + 0x319e: 0x0002, 0x319f: 0x0002, 0x31a0: 0x0002, 0x31a1: 0x0002, 0x31a2: 0x0002, 0x31a3: 0x0002, + 0x31a4: 0x0002, 0x31a5: 0x0002, 0x31a6: 0x0002, 0x31a7: 0x0002, 0x31a8: 0x0002, 0x31a9: 0x0002, + 0x31aa: 0x0002, 0x31ab: 0x0002, 0x31ac: 0x0002, 0x31ad: 0x0002, 0x31ae: 0x0002, 0x31af: 0x0002, + 0x31b0: 0x0002, 0x31b1: 0x0002, 0x31b2: 0x0002, 0x31b3: 0x0002, 0x31b4: 0x0002, 0x31b5: 0x0002, + 0x31b6: 0x0002, 0x31b7: 0x0002, 0x31b8: 0x0002, 0x31b9: 0x0002, 0x31ba: 0x0002, 0x31bb: 0x0002, + 0x31bc: 0x0002, 0x31bd: 0x0002, 0x31be: 0x0002, 0x31bf: 0x0002, + // Block 0xc7, offset 0x31c0 + 0x31c0: 0x000c, 0x31c1: 0x000c, 0x31c2: 0x000c, 0x31c3: 0x000c, 0x31c4: 0x000c, 0x31c5: 0x000c, + 0x31c6: 0x000c, 0x31c7: 0x000c, 0x31c8: 0x000c, 0x31c9: 0x000c, 0x31ca: 0x000c, 0x31cb: 0x000c, + 0x31cc: 0x000c, 0x31cd: 0x000c, 0x31ce: 0x000c, 0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c, + 0x31d2: 0x000c, 0x31d3: 0x000c, 0x31d4: 0x000c, 0x31d5: 0x000c, 0x31d6: 0x000c, 0x31d7: 0x000c, + 0x31d8: 0x000c, 0x31d9: 0x000c, 0x31da: 0x000c, 0x31db: 0x000c, 0x31dc: 0x000c, 0x31dd: 0x000c, + 0x31de: 0x000c, 0x31df: 0x000c, 0x31e0: 0x000c, 0x31e1: 0x000c, 0x31e2: 0x000c, 0x31e3: 0x000c, + 0x31e4: 0x000c, 0x31e5: 0x000c, 0x31e6: 0x000c, 0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c, + 0x31ea: 0x000c, 0x31eb: 0x000c, 0x31ec: 0x000c, 0x31ed: 0x000c, 0x31ee: 0x000c, 0x31ef: 0x000c, + 0x31f0: 0x000c, 0x31f1: 0x000c, 0x31f2: 0x000c, 0x31f3: 0x000c, 0x31f4: 0x000c, 0x31f5: 0x000c, + 0x31f6: 0x000c, 0x31fb: 0x000c, + 0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c, + // Block 0xc8, offset 0x3200 + 0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3203: 0x000c, 0x3204: 0x000c, 0x3205: 0x000c, + 0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c, + 0x320c: 0x000c, 0x320d: 0x000c, 0x320e: 0x000c, 0x320f: 0x000c, 0x3210: 0x000c, 0x3211: 0x000c, + 0x3212: 0x000c, 0x3213: 0x000c, 0x3214: 0x000c, 0x3215: 0x000c, 0x3216: 0x000c, 0x3217: 0x000c, + 0x3218: 0x000c, 0x3219: 0x000c, 0x321a: 0x000c, 0x321b: 0x000c, 0x321c: 0x000c, 0x321d: 0x000c, + 0x321e: 0x000c, 0x321f: 0x000c, 0x3220: 0x000c, 0x3221: 0x000c, 0x3222: 0x000c, 0x3223: 0x000c, + 0x3224: 0x000c, 0x3225: 0x000c, 0x3226: 0x000c, 0x3227: 0x000c, 0x3228: 0x000c, 0x3229: 0x000c, + 0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c, + 0x3235: 0x000c, + // Block 0xc9, offset 0x3240 + 0x3244: 0x000c, + 0x325b: 0x000c, 0x325c: 0x000c, 0x325d: 0x000c, + 0x325e: 0x000c, 0x325f: 0x000c, 0x3261: 0x000c, 0x3262: 0x000c, 0x3263: 0x000c, + 0x3264: 0x000c, 0x3265: 0x000c, 0x3266: 0x000c, 0x3267: 0x000c, 0x3268: 0x000c, 0x3269: 0x000c, + 0x326a: 0x000c, 0x326b: 0x000c, 0x326c: 0x000c, 0x326d: 0x000c, 0x326e: 0x000c, 0x326f: 0x000c, + // Block 0xca, offset 0x3280 + 0x3280: 0x000c, 0x3281: 0x000c, 0x3282: 0x000c, 0x3283: 0x000c, 0x3284: 0x000c, 0x3285: 0x000c, + 0x3286: 0x000c, 0x3288: 0x000c, 0x3289: 0x000c, 0x328a: 0x000c, 0x328b: 0x000c, + 0x328c: 0x000c, 0x328d: 0x000c, 0x328e: 0x000c, 0x328f: 0x000c, 0x3290: 0x000c, 0x3291: 0x000c, + 0x3292: 0x000c, 0x3293: 0x000c, 0x3294: 0x000c, 0x3295: 0x000c, 0x3296: 0x000c, 0x3297: 0x000c, + 0x3298: 0x000c, 0x329b: 0x000c, 0x329c: 0x000c, 0x329d: 0x000c, + 0x329e: 0x000c, 0x329f: 0x000c, 0x32a0: 0x000c, 0x32a1: 0x000c, 0x32a3: 0x000c, + 0x32a4: 0x000c, 0x32a6: 0x000c, 0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c, + 0x32aa: 0x000c, + // Block 0xcb, offset 0x32c0 + 0x32c0: 0x0001, 0x32c1: 0x0001, 0x32c2: 0x0001, 0x32c3: 0x0001, 0x32c4: 0x0001, 0x32c5: 0x0001, + 0x32c6: 0x0001, 0x32c7: 0x0001, 0x32c8: 0x0001, 0x32c9: 0x0001, 0x32ca: 0x0001, 0x32cb: 0x0001, + 0x32cc: 0x0001, 0x32cd: 0x0001, 0x32ce: 0x0001, 0x32cf: 0x0001, 0x32d0: 0x000c, 0x32d1: 0x000c, + 0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x0001, + 0x32d8: 0x0001, 0x32d9: 0x0001, 0x32da: 0x0001, 0x32db: 0x0001, 0x32dc: 0x0001, 0x32dd: 0x0001, + 0x32de: 0x0001, 0x32df: 0x0001, 0x32e0: 0x0001, 0x32e1: 0x0001, 0x32e2: 0x0001, 0x32e3: 0x0001, + 0x32e4: 0x0001, 0x32e5: 0x0001, 0x32e6: 0x0001, 0x32e7: 0x0001, 0x32e8: 0x0001, 0x32e9: 0x0001, + 0x32ea: 0x0001, 0x32eb: 0x0001, 0x32ec: 0x0001, 0x32ed: 0x0001, 0x32ee: 0x0001, 0x32ef: 0x0001, + 0x32f0: 0x0001, 0x32f1: 0x0001, 0x32f2: 0x0001, 0x32f3: 0x0001, 0x32f4: 0x0001, 0x32f5: 0x0001, + 0x32f6: 0x0001, 0x32f7: 0x0001, 0x32f8: 0x0001, 0x32f9: 0x0001, 0x32fa: 0x0001, 0x32fb: 0x0001, + 0x32fc: 0x0001, 0x32fd: 0x0001, 0x32fe: 0x0001, 0x32ff: 0x0001, + // Block 0xcc, offset 0x3300 + 0x3300: 0x0001, 0x3301: 0x0001, 0x3302: 0x0001, 0x3303: 0x0001, 0x3304: 0x000c, 0x3305: 0x000c, + 0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x0001, + 0x330c: 0x0001, 0x330d: 0x0001, 0x330e: 0x0001, 0x330f: 0x0001, 0x3310: 0x0001, 0x3311: 0x0001, + 0x3312: 0x0001, 0x3313: 0x0001, 0x3314: 0x0001, 0x3315: 0x0001, 0x3316: 0x0001, 0x3317: 0x0001, + 0x3318: 0x0001, 0x3319: 0x0001, 0x331a: 0x0001, 0x331b: 0x0001, 0x331c: 0x0001, 0x331d: 0x0001, + 0x331e: 0x0001, 0x331f: 0x0001, 0x3320: 0x0001, 0x3321: 0x0001, 0x3322: 0x0001, 0x3323: 0x0001, + 0x3324: 0x0001, 0x3325: 0x0001, 0x3326: 0x0001, 0x3327: 0x0001, 0x3328: 0x0001, 0x3329: 0x0001, + 0x332a: 0x0001, 0x332b: 0x0001, 0x332c: 0x0001, 0x332d: 0x0001, 0x332e: 0x0001, 0x332f: 0x0001, + 0x3330: 0x0001, 0x3331: 0x0001, 0x3332: 0x0001, 0x3333: 0x0001, 0x3334: 0x0001, 0x3335: 0x0001, + 0x3336: 0x0001, 0x3337: 0x0001, 0x3338: 0x0001, 0x3339: 0x0001, 0x333a: 0x0001, 0x333b: 0x0001, + 0x333c: 0x0001, 0x333d: 0x0001, 0x333e: 0x0001, 0x333f: 0x0001, + // Block 0xcd, offset 0x3340 + 0x3340: 0x000d, 0x3341: 0x000d, 0x3342: 0x000d, 0x3343: 0x000d, 0x3344: 0x000d, 0x3345: 0x000d, + 0x3346: 0x000d, 0x3347: 0x000d, 0x3348: 0x000d, 0x3349: 0x000d, 0x334a: 0x000d, 0x334b: 0x000d, + 0x334c: 0x000d, 0x334d: 0x000d, 0x334e: 0x000d, 0x334f: 0x000d, 0x3350: 0x000d, 0x3351: 0x000d, + 0x3352: 0x000d, 0x3353: 0x000d, 0x3354: 0x000d, 0x3355: 0x000d, 0x3356: 0x000d, 0x3357: 0x000d, + 0x3358: 0x000d, 0x3359: 0x000d, 0x335a: 0x000d, 0x335b: 0x000d, 0x335c: 0x000d, 0x335d: 0x000d, + 0x335e: 0x000d, 0x335f: 0x000d, 0x3360: 0x000d, 0x3361: 0x000d, 0x3362: 0x000d, 0x3363: 0x000d, + 0x3364: 0x000d, 0x3365: 0x000d, 0x3366: 0x000d, 0x3367: 0x000d, 0x3368: 0x000d, 0x3369: 0x000d, + 0x336a: 0x000d, 0x336b: 0x000d, 0x336c: 0x000d, 0x336d: 0x000d, 0x336e: 0x000d, 0x336f: 0x000d, + 0x3370: 0x000a, 0x3371: 0x000a, 0x3372: 0x000d, 0x3373: 0x000d, 0x3374: 0x000d, 0x3375: 0x000d, + 0x3376: 0x000d, 0x3377: 0x000d, 0x3378: 0x000d, 0x3379: 0x000d, 0x337a: 0x000d, 0x337b: 0x000d, + 0x337c: 0x000d, 0x337d: 0x000d, 0x337e: 0x000d, 0x337f: 0x000d, + // Block 0xce, offset 0x3380 + 0x3380: 0x000a, 0x3381: 0x000a, 0x3382: 0x000a, 0x3383: 0x000a, 0x3384: 0x000a, 0x3385: 0x000a, + 0x3386: 0x000a, 0x3387: 0x000a, 0x3388: 0x000a, 0x3389: 0x000a, 0x338a: 0x000a, 0x338b: 0x000a, + 0x338c: 0x000a, 0x338d: 0x000a, 0x338e: 0x000a, 0x338f: 0x000a, 0x3390: 0x000a, 0x3391: 0x000a, + 0x3392: 0x000a, 0x3393: 0x000a, 0x3394: 0x000a, 0x3395: 0x000a, 0x3396: 0x000a, 0x3397: 0x000a, + 0x3398: 0x000a, 0x3399: 0x000a, 0x339a: 0x000a, 0x339b: 0x000a, 0x339c: 0x000a, 0x339d: 0x000a, + 0x339e: 0x000a, 0x339f: 0x000a, 0x33a0: 0x000a, 0x33a1: 0x000a, 0x33a2: 0x000a, 0x33a3: 0x000a, + 0x33a4: 0x000a, 0x33a5: 0x000a, 0x33a6: 0x000a, 0x33a7: 0x000a, 0x33a8: 0x000a, 0x33a9: 0x000a, + 0x33aa: 0x000a, 0x33ab: 0x000a, + 0x33b0: 0x000a, 0x33b1: 0x000a, 0x33b2: 0x000a, 0x33b3: 0x000a, 0x33b4: 0x000a, 0x33b5: 0x000a, + 0x33b6: 0x000a, 0x33b7: 0x000a, 0x33b8: 0x000a, 0x33b9: 0x000a, 0x33ba: 0x000a, 0x33bb: 0x000a, + 0x33bc: 0x000a, 0x33bd: 0x000a, 0x33be: 0x000a, 0x33bf: 0x000a, + // Block 0xcf, offset 0x33c0 + 0x33c0: 0x000a, 0x33c1: 0x000a, 0x33c2: 0x000a, 0x33c3: 0x000a, 0x33c4: 0x000a, 0x33c5: 0x000a, + 0x33c6: 0x000a, 0x33c7: 0x000a, 0x33c8: 0x000a, 0x33c9: 0x000a, 0x33ca: 0x000a, 0x33cb: 0x000a, + 0x33cc: 0x000a, 0x33cd: 0x000a, 0x33ce: 0x000a, 0x33cf: 0x000a, 0x33d0: 0x000a, 0x33d1: 0x000a, + 0x33d2: 0x000a, 0x33d3: 0x000a, + 0x33e0: 0x000a, 0x33e1: 0x000a, 0x33e2: 0x000a, 0x33e3: 0x000a, + 0x33e4: 0x000a, 0x33e5: 0x000a, 0x33e6: 0x000a, 0x33e7: 0x000a, 0x33e8: 0x000a, 0x33e9: 0x000a, + 0x33ea: 0x000a, 0x33eb: 0x000a, 0x33ec: 0x000a, 0x33ed: 0x000a, 0x33ee: 0x000a, + 0x33f1: 0x000a, 0x33f2: 0x000a, 0x33f3: 0x000a, 0x33f4: 0x000a, 0x33f5: 0x000a, + 0x33f6: 0x000a, 0x33f7: 0x000a, 0x33f8: 0x000a, 0x33f9: 0x000a, 0x33fa: 0x000a, 0x33fb: 0x000a, + 0x33fc: 0x000a, 0x33fd: 0x000a, 0x33fe: 0x000a, 0x33ff: 0x000a, + // Block 0xd0, offset 0x3400 + 0x3401: 0x000a, 0x3402: 0x000a, 0x3403: 0x000a, 0x3404: 0x000a, 0x3405: 0x000a, + 0x3406: 0x000a, 0x3407: 0x000a, 0x3408: 0x000a, 0x3409: 0x000a, 0x340a: 0x000a, 0x340b: 0x000a, + 0x340c: 0x000a, 0x340d: 0x000a, 0x340e: 0x000a, 0x340f: 0x000a, 0x3411: 0x000a, + 0x3412: 0x000a, 0x3413: 0x000a, 0x3414: 0x000a, 0x3415: 0x000a, 0x3416: 0x000a, 0x3417: 0x000a, + 0x3418: 0x000a, 0x3419: 0x000a, 0x341a: 0x000a, 0x341b: 0x000a, 0x341c: 0x000a, 0x341d: 0x000a, + 0x341e: 0x000a, 0x341f: 0x000a, 0x3420: 0x000a, 0x3421: 0x000a, 0x3422: 0x000a, 0x3423: 0x000a, + 0x3424: 0x000a, 0x3425: 0x000a, 0x3426: 0x000a, 0x3427: 0x000a, 0x3428: 0x000a, 0x3429: 0x000a, + 0x342a: 0x000a, 0x342b: 0x000a, 0x342c: 0x000a, 0x342d: 0x000a, 0x342e: 0x000a, 0x342f: 0x000a, + 0x3430: 0x000a, 0x3431: 0x000a, 0x3432: 0x000a, 0x3433: 0x000a, 0x3434: 0x000a, 0x3435: 0x000a, + // Block 0xd1, offset 0x3440 + 0x3440: 0x0002, 0x3441: 0x0002, 0x3442: 0x0002, 0x3443: 0x0002, 0x3444: 0x0002, 0x3445: 0x0002, + 0x3446: 0x0002, 0x3447: 0x0002, 0x3448: 0x0002, 0x3449: 0x0002, 0x344a: 0x0002, 0x344b: 0x000a, + 0x344c: 0x000a, + // Block 0xd2, offset 0x3480 + 0x34aa: 0x000a, 0x34ab: 0x000a, + // Block 0xd3, offset 0x34c0 + 0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a, + 0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a, + 0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a, + 0x34d2: 0x000a, + 0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a, + 0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a, + 0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a, + 0x34f0: 0x000a, 0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a, + 0x34f6: 0x000a, + // Block 0xd4, offset 0x3500 + 0x3500: 0x000a, 0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a, + 0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a, + 0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3510: 0x000a, 0x3511: 0x000a, + 0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a, + // Block 0xd5, offset 0x3540 + 0x3540: 0x000a, 0x3541: 0x000a, 0x3542: 0x000a, 0x3543: 0x000a, 0x3544: 0x000a, 0x3545: 0x000a, + 0x3546: 0x000a, 0x3547: 0x000a, 0x3548: 0x000a, 0x3549: 0x000a, 0x354a: 0x000a, 0x354b: 0x000a, + 0x3550: 0x000a, 0x3551: 0x000a, + 0x3552: 0x000a, 0x3553: 0x000a, 0x3554: 0x000a, 0x3555: 0x000a, 0x3556: 0x000a, 0x3557: 0x000a, + 0x3558: 0x000a, 0x3559: 0x000a, 0x355a: 0x000a, 0x355b: 0x000a, 0x355c: 0x000a, 0x355d: 0x000a, + 0x355e: 0x000a, 0x355f: 0x000a, 0x3560: 0x000a, 0x3561: 0x000a, 0x3562: 0x000a, 0x3563: 0x000a, + 0x3564: 0x000a, 0x3565: 0x000a, 0x3566: 0x000a, 0x3567: 0x000a, 0x3568: 0x000a, 0x3569: 0x000a, + 0x356a: 0x000a, 0x356b: 0x000a, 0x356c: 0x000a, 0x356d: 0x000a, 0x356e: 0x000a, 0x356f: 0x000a, + 0x3570: 0x000a, 0x3571: 0x000a, 0x3572: 0x000a, 0x3573: 0x000a, 0x3574: 0x000a, 0x3575: 0x000a, + 0x3576: 0x000a, 0x3577: 0x000a, 0x3578: 0x000a, 0x3579: 0x000a, 0x357a: 0x000a, 0x357b: 0x000a, + 0x357c: 0x000a, 0x357d: 0x000a, 0x357e: 0x000a, 0x357f: 0x000a, + // Block 0xd6, offset 0x3580 + 0x3580: 0x000a, 0x3581: 0x000a, 0x3582: 0x000a, 0x3583: 0x000a, 0x3584: 0x000a, 0x3585: 0x000a, + 0x3586: 0x000a, 0x3587: 0x000a, + 0x3590: 0x000a, 0x3591: 0x000a, + 0x3592: 0x000a, 0x3593: 0x000a, 0x3594: 0x000a, 0x3595: 0x000a, 0x3596: 0x000a, 0x3597: 0x000a, + 0x3598: 0x000a, 0x3599: 0x000a, + 0x35a0: 0x000a, 0x35a1: 0x000a, 0x35a2: 0x000a, 0x35a3: 0x000a, + 0x35a4: 0x000a, 0x35a5: 0x000a, 0x35a6: 0x000a, 0x35a7: 0x000a, 0x35a8: 0x000a, 0x35a9: 0x000a, + 0x35aa: 0x000a, 0x35ab: 0x000a, 0x35ac: 0x000a, 0x35ad: 0x000a, 0x35ae: 0x000a, 0x35af: 0x000a, + 0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000a, 0x35b3: 0x000a, 0x35b4: 0x000a, 0x35b5: 0x000a, + 0x35b6: 0x000a, 0x35b7: 0x000a, 0x35b8: 0x000a, 0x35b9: 0x000a, 0x35ba: 0x000a, 0x35bb: 0x000a, + 0x35bc: 0x000a, 0x35bd: 0x000a, 0x35be: 0x000a, 0x35bf: 0x000a, + // Block 0xd7, offset 0x35c0 + 0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a, + 0x35c6: 0x000a, 0x35c7: 0x000a, + 0x35d0: 0x000a, 0x35d1: 0x000a, + 0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a, + 0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a, + 0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a, + 0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a, + 0x35ea: 0x000a, 0x35eb: 0x000a, 0x35ec: 0x000a, 0x35ed: 0x000a, + // Block 0xd8, offset 0x3600 + 0x3610: 0x000a, 0x3611: 0x000a, + 0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a, 0x3615: 0x000a, 0x3616: 0x000a, 0x3617: 0x000a, + 0x3618: 0x000a, 0x3619: 0x000a, 0x361a: 0x000a, 0x361b: 0x000a, 0x361c: 0x000a, 0x361d: 0x000a, + 0x361e: 0x000a, 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a, + 0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, + 0x3630: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a, + 0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a, + 0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a, + // Block 0xd9, offset 0x3640 + 0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a, + 0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a, + 0x3650: 0x000a, 0x3651: 0x000a, + 0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a, + 0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a, + 0x365e: 0x000a, + // Block 0xda, offset 0x3680 + 0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a, + 0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a, + 0x368c: 0x000a, 0x368d: 0x000a, 0x368e: 0x000a, 0x368f: 0x000a, 0x3690: 0x000a, 0x3691: 0x000a, + // Block 0xdb, offset 0x36c0 + 0x36fe: 0x000b, 0x36ff: 0x000b, + // Block 0xdc, offset 0x3700 + 0x3700: 0x000b, 0x3701: 0x000b, 0x3702: 0x000b, 0x3703: 0x000b, 0x3704: 0x000b, 0x3705: 0x000b, + 0x3706: 0x000b, 0x3707: 0x000b, 0x3708: 0x000b, 0x3709: 0x000b, 0x370a: 0x000b, 0x370b: 0x000b, + 0x370c: 0x000b, 0x370d: 0x000b, 0x370e: 0x000b, 0x370f: 0x000b, 0x3710: 0x000b, 0x3711: 0x000b, + 0x3712: 0x000b, 0x3713: 0x000b, 0x3714: 0x000b, 0x3715: 0x000b, 0x3716: 0x000b, 0x3717: 0x000b, + 0x3718: 0x000b, 0x3719: 0x000b, 0x371a: 0x000b, 0x371b: 0x000b, 0x371c: 0x000b, 0x371d: 0x000b, + 0x371e: 0x000b, 0x371f: 0x000b, 0x3720: 0x000b, 0x3721: 0x000b, 0x3722: 0x000b, 0x3723: 0x000b, + 0x3724: 0x000b, 0x3725: 0x000b, 0x3726: 0x000b, 0x3727: 0x000b, 0x3728: 0x000b, 0x3729: 0x000b, + 0x372a: 0x000b, 0x372b: 0x000b, 0x372c: 0x000b, 0x372d: 0x000b, 0x372e: 0x000b, 0x372f: 0x000b, + 0x3730: 0x000b, 0x3731: 0x000b, 0x3732: 0x000b, 0x3733: 0x000b, 0x3734: 0x000b, 0x3735: 0x000b, + 0x3736: 0x000b, 0x3737: 0x000b, 0x3738: 0x000b, 0x3739: 0x000b, 0x373a: 0x000b, 0x373b: 0x000b, + 0x373c: 0x000b, 0x373d: 0x000b, 0x373e: 0x000b, 0x373f: 0x000b, + // Block 0xdd, offset 0x3740 + 0x3740: 0x000c, 0x3741: 0x000c, 0x3742: 0x000c, 0x3743: 0x000c, 0x3744: 0x000c, 0x3745: 0x000c, + 0x3746: 0x000c, 0x3747: 0x000c, 0x3748: 0x000c, 0x3749: 0x000c, 0x374a: 0x000c, 0x374b: 0x000c, + 0x374c: 0x000c, 0x374d: 0x000c, 0x374e: 0x000c, 0x374f: 0x000c, 0x3750: 0x000c, 0x3751: 0x000c, + 0x3752: 0x000c, 0x3753: 0x000c, 0x3754: 0x000c, 0x3755: 0x000c, 0x3756: 0x000c, 0x3757: 0x000c, + 0x3758: 0x000c, 0x3759: 0x000c, 0x375a: 0x000c, 0x375b: 0x000c, 0x375c: 0x000c, 0x375d: 0x000c, + 0x375e: 0x000c, 0x375f: 0x000c, 0x3760: 0x000c, 0x3761: 0x000c, 0x3762: 0x000c, 0x3763: 0x000c, + 0x3764: 0x000c, 0x3765: 0x000c, 0x3766: 0x000c, 0x3767: 0x000c, 0x3768: 0x000c, 0x3769: 0x000c, + 0x376a: 0x000c, 0x376b: 0x000c, 0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c, + 0x3770: 0x000b, 0x3771: 0x000b, 0x3772: 0x000b, 0x3773: 0x000b, 0x3774: 0x000b, 0x3775: 0x000b, + 0x3776: 0x000b, 0x3777: 0x000b, 0x3778: 0x000b, 0x3779: 0x000b, 0x377a: 0x000b, 0x377b: 0x000b, + 0x377c: 0x000b, 0x377d: 0x000b, 0x377e: 0x000b, 0x377f: 0x000b, +} + +// bidiIndex: 24 blocks, 1536 entries, 1536 bytes +// Block 0 is the zero block. +var bidiIndex = [1536]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x02, + 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08, + 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b, + 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, + 0xea: 0x07, 0xef: 0x08, + 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15, + // Block 0x4, offset 0x100 + 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b, + 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22, + 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28, + 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30, + // Block 0x5, offset 0x140 + 0x140: 0x31, 0x141: 0x32, 0x142: 0x33, + 0x14d: 0x34, 0x14e: 0x35, + 0x150: 0x36, + 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b, + 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40, + 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47, + 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a, + 0x17e: 0x4b, 0x17f: 0x4c, + // Block 0x6, offset 0x180 + 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54, + 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x59, + 0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54, + 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5e, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5f, 0x19e: 0x54, 0x19f: 0x60, + 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x61, 0x1a7: 0x62, + 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x63, 0x1ae: 0x64, 0x1af: 0x65, + 0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68, + 0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6d, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71, + 0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77, + // Block 0x8, offset 0x200 + 0x237: 0x54, + // Block 0x9, offset 0x240 + 0x252: 0x78, 0x253: 0x79, + 0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f, + 0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26f: 0x8b, + // Block 0xa, offset 0x280 + 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x0e, 0x2af: 0x0e, + 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8f, + 0x2b8: 0x90, 0x2b9: 0x91, 0x2ba: 0x0e, 0x2bb: 0x92, 0x2bc: 0x93, 0x2bd: 0x94, 0x2bf: 0x95, + // Block 0xb, offset 0x2c0 + 0x2c4: 0x96, 0x2c5: 0x54, 0x2c6: 0x97, 0x2c7: 0x98, + 0x2cb: 0x99, 0x2cd: 0x9a, + 0x2e0: 0x9b, 0x2e1: 0x9b, 0x2e2: 0x9b, 0x2e3: 0x9b, 0x2e4: 0x9c, 0x2e5: 0x9b, 0x2e6: 0x9b, 0x2e7: 0x9b, + 0x2e8: 0x9d, 0x2e9: 0x9b, 0x2ea: 0x9b, 0x2eb: 0x9e, 0x2ec: 0x9f, 0x2ed: 0x9b, 0x2ee: 0x9b, 0x2ef: 0x9b, + 0x2f0: 0x9b, 0x2f1: 0x9b, 0x2f2: 0x9b, 0x2f3: 0x9b, 0x2f4: 0x9b, 0x2f5: 0x9b, 0x2f6: 0x9b, 0x2f7: 0x9b, + 0x2f8: 0x9b, 0x2f9: 0xa0, 0x2fa: 0x9b, 0x2fb: 0x9b, 0x2fc: 0x9b, 0x2fd: 0x9b, 0x2fe: 0x9b, 0x2ff: 0x9b, + // Block 0xc, offset 0x300 + 0x300: 0xa1, 0x301: 0xa2, 0x302: 0xa3, 0x304: 0xa4, 0x305: 0xa5, 0x306: 0xa6, 0x307: 0xa7, + 0x308: 0xa8, 0x30b: 0xa9, 0x30c: 0xaa, 0x30d: 0xab, + 0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1, + 0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5, + 0x330: 0xb6, 0x332: 0xb7, + // Block 0xd, offset 0x340 + 0x36b: 0xb8, 0x36c: 0xb9, + 0x37e: 0xba, + // Block 0xe, offset 0x380 + 0x3b2: 0xbb, + // Block 0xf, offset 0x3c0 + 0x3c5: 0xbc, 0x3c6: 0xbd, + 0x3c8: 0x54, 0x3c9: 0xbe, 0x3cc: 0x54, 0x3cd: 0xbf, + 0x3db: 0xc0, 0x3dc: 0xc1, 0x3dd: 0xc2, 0x3de: 0xc3, 0x3df: 0xc4, + 0x3e8: 0xc5, 0x3e9: 0xc6, 0x3ea: 0xc7, + // Block 0x10, offset 0x400 + 0x400: 0xc8, + 0x420: 0x9b, 0x421: 0x9b, 0x422: 0x9b, 0x423: 0xc9, 0x424: 0x9b, 0x425: 0xca, 0x426: 0x9b, 0x427: 0x9b, + 0x428: 0x9b, 0x429: 0x9b, 0x42a: 0x9b, 0x42b: 0x9b, 0x42c: 0x9b, 0x42d: 0x9b, 0x42e: 0x9b, 0x42f: 0x9b, + 0x430: 0x9b, 0x431: 0x9b, 0x432: 0x9b, 0x433: 0x9b, 0x434: 0x9b, 0x435: 0x9b, 0x436: 0x9b, 0x437: 0x9b, + 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcb, 0x43c: 0x9b, 0x43d: 0x9b, 0x43e: 0x9b, 0x43f: 0x9b, + // Block 0x11, offset 0x440 + 0x440: 0xcc, 0x441: 0x54, 0x442: 0xcd, 0x443: 0xce, 0x444: 0xcf, 0x445: 0xd0, + 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54, + 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54, + 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd1, 0x45c: 0x54, 0x45d: 0x6c, 0x45e: 0x54, 0x45f: 0xd2, + 0x460: 0xd3, 0x461: 0xd4, 0x462: 0xd5, 0x464: 0xd6, 0x465: 0xd7, 0x466: 0xd8, 0x467: 0x36, + 0x47f: 0xd9, + // Block 0x12, offset 0x480 + 0x4bf: 0xd9, + // Block 0x13, offset 0x4c0 + 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b, + 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f, + 0x4ef: 0x10, + 0x4ff: 0x10, + // Block 0x14, offset 0x500 + 0x50f: 0x10, + 0x51f: 0x10, + 0x52f: 0x10, + 0x53f: 0x10, + // Block 0x15, offset 0x540 + 0x540: 0xda, 0x541: 0xda, 0x542: 0xda, 0x543: 0xda, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xdb, + 0x548: 0xda, 0x549: 0xda, 0x54a: 0xda, 0x54b: 0xda, 0x54c: 0xda, 0x54d: 0xda, 0x54e: 0xda, 0x54f: 0xda, + 0x550: 0xda, 0x551: 0xda, 0x552: 0xda, 0x553: 0xda, 0x554: 0xda, 0x555: 0xda, 0x556: 0xda, 0x557: 0xda, + 0x558: 0xda, 0x559: 0xda, 0x55a: 0xda, 0x55b: 0xda, 0x55c: 0xda, 0x55d: 0xda, 0x55e: 0xda, 0x55f: 0xda, + 0x560: 0xda, 0x561: 0xda, 0x562: 0xda, 0x563: 0xda, 0x564: 0xda, 0x565: 0xda, 0x566: 0xda, 0x567: 0xda, + 0x568: 0xda, 0x569: 0xda, 0x56a: 0xda, 0x56b: 0xda, 0x56c: 0xda, 0x56d: 0xda, 0x56e: 0xda, 0x56f: 0xda, + 0x570: 0xda, 0x571: 0xda, 0x572: 0xda, 0x573: 0xda, 0x574: 0xda, 0x575: 0xda, 0x576: 0xda, 0x577: 0xda, + 0x578: 0xda, 0x579: 0xda, 0x57a: 0xda, 0x57b: 0xda, 0x57c: 0xda, 0x57d: 0xda, 0x57e: 0xda, 0x57f: 0xda, + // Block 0x16, offset 0x580 + 0x58f: 0x10, + 0x59f: 0x10, + 0x5a0: 0x13, + 0x5af: 0x10, + 0x5bf: 0x10, + // Block 0x17, offset 0x5c0 + 0x5cf: 0x10, +} + +// Total table size 15800 bytes (15KiB); checksum: F50EF68C diff --git a/vendor/golang.org/x/text/unicode/bidi/trieval.go b/vendor/golang.org/x/text/unicode/bidi/trieval.go new file mode 100644 index 0000000..4c459c4 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/trieval.go @@ -0,0 +1,60 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +package bidi + +// Class is the Unicode BiDi class. Each rune has a single class. +type Class uint + +const ( + L Class = iota // LeftToRight + R // RightToLeft + EN // EuropeanNumber + ES // EuropeanSeparator + ET // EuropeanTerminator + AN // ArabicNumber + CS // CommonSeparator + B // ParagraphSeparator + S // SegmentSeparator + WS // WhiteSpace + ON // OtherNeutral + BN // BoundaryNeutral + NSM // NonspacingMark + AL // ArabicLetter + Control // Control LRO - PDI + + numClass + + LRO // LeftToRightOverride + RLO // RightToLeftOverride + LRE // LeftToRightEmbedding + RLE // RightToLeftEmbedding + PDF // PopDirectionalFormat + LRI // LeftToRightIsolate + RLI // RightToLeftIsolate + FSI // FirstStrongIsolate + PDI // PopDirectionalIsolate + + unknownClass = ^Class(0) +) + +var controlToClass = map[rune]Class{ + 0x202D: LRO, // LeftToRightOverride, + 0x202E: RLO, // RightToLeftOverride, + 0x202A: LRE, // LeftToRightEmbedding, + 0x202B: RLE, // RightToLeftEmbedding, + 0x202C: PDF, // PopDirectionalFormat, + 0x2066: LRI, // LeftToRightIsolate, + 0x2067: RLI, // RightToLeftIsolate, + 0x2068: FSI, // FirstStrongIsolate, + 0x2069: PDI, // PopDirectionalIsolate, +} + +// A trie entry has the following bits: +// 7..5 XOR mask for brackets +// 4 1: Bracket open, 0: Bracket close +// 3..0 Class type + +const ( + openMask = 0x10 + xorMaskShift = 5 +) diff --git a/vendor/golang.org/x/text/unicode/norm/composition.go b/vendor/golang.org/x/text/unicode/norm/composition.go new file mode 100644 index 0000000..e2087bc --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/composition.go @@ -0,0 +1,512 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import "unicode/utf8" + +const ( + maxNonStarters = 30 + // The maximum number of characters needed for a buffer is + // maxNonStarters + 1 for the starter + 1 for the GCJ + maxBufferSize = maxNonStarters + 2 + maxNFCExpansion = 3 // NFC(0x1D160) + maxNFKCExpansion = 18 // NFKC(0xFDFA) + + maxByteBufferSize = utf8.UTFMax * maxBufferSize // 128 +) + +// ssState is used for reporting the segment state after inserting a rune. +// It is returned by streamSafe.next. +type ssState int + +const ( + // Indicates a rune was successfully added to the segment. + ssSuccess ssState = iota + // Indicates a rune starts a new segment and should not be added. + ssStarter + // Indicates a rune caused a segment overflow and a CGJ should be inserted. + ssOverflow +) + +// streamSafe implements the policy of when a CGJ should be inserted. +type streamSafe uint8 + +// first inserts the first rune of a segment. It is a faster version of next if +// it is known p represents the first rune in a segment. +func (ss *streamSafe) first(p Properties) { + *ss = streamSafe(p.nTrailingNonStarters()) +} + +// insert returns a ssState value to indicate whether a rune represented by p +// can be inserted. +func (ss *streamSafe) next(p Properties) ssState { + if *ss > maxNonStarters { + panic("streamSafe was not reset") + } + n := p.nLeadingNonStarters() + if *ss += streamSafe(n); *ss > maxNonStarters { + *ss = 0 + return ssOverflow + } + // The Stream-Safe Text Processing prescribes that the counting can stop + // as soon as a starter is encountered. However, there are some starters, + // like Jamo V and T, that can combine with other runes, leaving their + // successive non-starters appended to the previous, possibly causing an + // overflow. We will therefore consider any rune with a non-zero nLead to + // be a non-starter. Note that it always hold that if nLead > 0 then + // nLead == nTrail. + if n == 0 { + *ss = streamSafe(p.nTrailingNonStarters()) + return ssStarter + } + return ssSuccess +} + +// backwards is used for checking for overflow and segment starts +// when traversing a string backwards. Users do not need to call first +// for the first rune. The state of the streamSafe retains the count of +// the non-starters loaded. +func (ss *streamSafe) backwards(p Properties) ssState { + if *ss > maxNonStarters { + panic("streamSafe was not reset") + } + c := *ss + streamSafe(p.nTrailingNonStarters()) + if c > maxNonStarters { + return ssOverflow + } + *ss = c + if p.nLeadingNonStarters() == 0 { + return ssStarter + } + return ssSuccess +} + +func (ss streamSafe) isMax() bool { + return ss == maxNonStarters +} + +// GraphemeJoiner is inserted after maxNonStarters non-starter runes. +const GraphemeJoiner = "\u034F" + +// reorderBuffer is used to normalize a single segment. Characters inserted with +// insert are decomposed and reordered based on CCC. The compose method can +// be used to recombine characters. Note that the byte buffer does not hold +// the UTF-8 characters in order. Only the rune array is maintained in sorted +// order. flush writes the resulting segment to a byte array. +type reorderBuffer struct { + rune [maxBufferSize]Properties // Per character info. + byte [maxByteBufferSize]byte // UTF-8 buffer. Referenced by runeInfo.pos. + nbyte uint8 // Number or bytes. + ss streamSafe // For limiting length of non-starter sequence. + nrune int // Number of runeInfos. + f formInfo + + src input + nsrc int + tmpBytes input + + out []byte + flushF func(*reorderBuffer) bool +} + +func (rb *reorderBuffer) init(f Form, src []byte) { + rb.f = *formTable[f] + rb.src.setBytes(src) + rb.nsrc = len(src) + rb.ss = 0 +} + +func (rb *reorderBuffer) initString(f Form, src string) { + rb.f = *formTable[f] + rb.src.setString(src) + rb.nsrc = len(src) + rb.ss = 0 +} + +func (rb *reorderBuffer) setFlusher(out []byte, f func(*reorderBuffer) bool) { + rb.out = out + rb.flushF = f +} + +// reset discards all characters from the buffer. +func (rb *reorderBuffer) reset() { + rb.nrune = 0 + rb.nbyte = 0 +} + +func (rb *reorderBuffer) doFlush() bool { + if rb.f.composing { + rb.compose() + } + res := rb.flushF(rb) + rb.reset() + return res +} + +// appendFlush appends the normalized segment to rb.out. +func appendFlush(rb *reorderBuffer) bool { + for i := 0; i < rb.nrune; i++ { + start := rb.rune[i].pos + end := start + rb.rune[i].size + rb.out = append(rb.out, rb.byte[start:end]...) + } + return true +} + +// flush appends the normalized segment to out and resets rb. +func (rb *reorderBuffer) flush(out []byte) []byte { + for i := 0; i < rb.nrune; i++ { + start := rb.rune[i].pos + end := start + rb.rune[i].size + out = append(out, rb.byte[start:end]...) + } + rb.reset() + return out +} + +// flushCopy copies the normalized segment to buf and resets rb. +// It returns the number of bytes written to buf. +func (rb *reorderBuffer) flushCopy(buf []byte) int { + p := 0 + for i := 0; i < rb.nrune; i++ { + runep := rb.rune[i] + p += copy(buf[p:], rb.byte[runep.pos:runep.pos+runep.size]) + } + rb.reset() + return p +} + +// insertOrdered inserts a rune in the buffer, ordered by Canonical Combining Class. +// It returns false if the buffer is not large enough to hold the rune. +// It is used internally by insert and insertString only. +func (rb *reorderBuffer) insertOrdered(info Properties) { + n := rb.nrune + b := rb.rune[:] + cc := info.ccc + if cc > 0 { + // Find insertion position + move elements to make room. + for ; n > 0; n-- { + if b[n-1].ccc <= cc { + break + } + b[n] = b[n-1] + } + } + rb.nrune += 1 + pos := uint8(rb.nbyte) + rb.nbyte += utf8.UTFMax + info.pos = pos + b[n] = info +} + +// insertErr is an error code returned by insert. Using this type instead +// of error improves performance up to 20% for many of the benchmarks. +type insertErr int + +const ( + iSuccess insertErr = -iota + iShortDst + iShortSrc +) + +// insertFlush inserts the given rune in the buffer ordered by CCC. +// If a decomposition with multiple segments are encountered, they leading +// ones are flushed. +// It returns a non-zero error code if the rune was not inserted. +func (rb *reorderBuffer) insertFlush(src input, i int, info Properties) insertErr { + if rune := src.hangul(i); rune != 0 { + rb.decomposeHangul(rune) + return iSuccess + } + if info.hasDecomposition() { + return rb.insertDecomposed(info.Decomposition()) + } + rb.insertSingle(src, i, info) + return iSuccess +} + +// insertUnsafe inserts the given rune in the buffer ordered by CCC. +// It is assumed there is sufficient space to hold the runes. It is the +// responsibility of the caller to ensure this. This can be done by checking +// the state returned by the streamSafe type. +func (rb *reorderBuffer) insertUnsafe(src input, i int, info Properties) { + if rune := src.hangul(i); rune != 0 { + rb.decomposeHangul(rune) + } + if info.hasDecomposition() { + // TODO: inline. + rb.insertDecomposed(info.Decomposition()) + } else { + rb.insertSingle(src, i, info) + } +} + +// insertDecomposed inserts an entry in to the reorderBuffer for each rune +// in dcomp. dcomp must be a sequence of decomposed UTF-8-encoded runes. +// It flushes the buffer on each new segment start. +func (rb *reorderBuffer) insertDecomposed(dcomp []byte) insertErr { + rb.tmpBytes.setBytes(dcomp) + // As the streamSafe accounting already handles the counting for modifiers, + // we don't have to call next. However, we do need to keep the accounting + // intact when flushing the buffer. + for i := 0; i < len(dcomp); { + info := rb.f.info(rb.tmpBytes, i) + if info.BoundaryBefore() && rb.nrune > 0 && !rb.doFlush() { + return iShortDst + } + i += copy(rb.byte[rb.nbyte:], dcomp[i:i+int(info.size)]) + rb.insertOrdered(info) + } + return iSuccess +} + +// insertSingle inserts an entry in the reorderBuffer for the rune at +// position i. info is the runeInfo for the rune at position i. +func (rb *reorderBuffer) insertSingle(src input, i int, info Properties) { + src.copySlice(rb.byte[rb.nbyte:], i, i+int(info.size)) + rb.insertOrdered(info) +} + +// insertCGJ inserts a Combining Grapheme Joiner (0x034f) into rb. +func (rb *reorderBuffer) insertCGJ() { + rb.insertSingle(input{str: GraphemeJoiner}, 0, Properties{size: uint8(len(GraphemeJoiner))}) +} + +// appendRune inserts a rune at the end of the buffer. It is used for Hangul. +func (rb *reorderBuffer) appendRune(r rune) { + bn := rb.nbyte + sz := utf8.EncodeRune(rb.byte[bn:], rune(r)) + rb.nbyte += utf8.UTFMax + rb.rune[rb.nrune] = Properties{pos: bn, size: uint8(sz)} + rb.nrune++ +} + +// assignRune sets a rune at position pos. It is used for Hangul and recomposition. +func (rb *reorderBuffer) assignRune(pos int, r rune) { + bn := rb.rune[pos].pos + sz := utf8.EncodeRune(rb.byte[bn:], rune(r)) + rb.rune[pos] = Properties{pos: bn, size: uint8(sz)} +} + +// runeAt returns the rune at position n. It is used for Hangul and recomposition. +func (rb *reorderBuffer) runeAt(n int) rune { + inf := rb.rune[n] + r, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size]) + return r +} + +// bytesAt returns the UTF-8 encoding of the rune at position n. +// It is used for Hangul and recomposition. +func (rb *reorderBuffer) bytesAt(n int) []byte { + inf := rb.rune[n] + return rb.byte[inf.pos : int(inf.pos)+int(inf.size)] +} + +// For Hangul we combine algorithmically, instead of using tables. +const ( + hangulBase = 0xAC00 // UTF-8(hangulBase) -> EA B0 80 + hangulBase0 = 0xEA + hangulBase1 = 0xB0 + hangulBase2 = 0x80 + + hangulEnd = hangulBase + jamoLVTCount // UTF-8(0xD7A4) -> ED 9E A4 + hangulEnd0 = 0xED + hangulEnd1 = 0x9E + hangulEnd2 = 0xA4 + + jamoLBase = 0x1100 // UTF-8(jamoLBase) -> E1 84 00 + jamoLBase0 = 0xE1 + jamoLBase1 = 0x84 + jamoLEnd = 0x1113 + jamoVBase = 0x1161 + jamoVEnd = 0x1176 + jamoTBase = 0x11A7 + jamoTEnd = 0x11C3 + + jamoTCount = 28 + jamoVCount = 21 + jamoVTCount = 21 * 28 + jamoLVTCount = 19 * 21 * 28 +) + +const hangulUTF8Size = 3 + +func isHangul(b []byte) bool { + if len(b) < hangulUTF8Size { + return false + } + b0 := b[0] + if b0 < hangulBase0 { + return false + } + b1 := b[1] + switch { + case b0 == hangulBase0: + return b1 >= hangulBase1 + case b0 < hangulEnd0: + return true + case b0 > hangulEnd0: + return false + case b1 < hangulEnd1: + return true + } + return b1 == hangulEnd1 && b[2] < hangulEnd2 +} + +func isHangulString(b string) bool { + if len(b) < hangulUTF8Size { + return false + } + b0 := b[0] + if b0 < hangulBase0 { + return false + } + b1 := b[1] + switch { + case b0 == hangulBase0: + return b1 >= hangulBase1 + case b0 < hangulEnd0: + return true + case b0 > hangulEnd0: + return false + case b1 < hangulEnd1: + return true + } + return b1 == hangulEnd1 && b[2] < hangulEnd2 +} + +// Caller must ensure len(b) >= 2. +func isJamoVT(b []byte) bool { + // True if (rune & 0xff00) == jamoLBase + return b[0] == jamoLBase0 && (b[1]&0xFC) == jamoLBase1 +} + +func isHangulWithoutJamoT(b []byte) bool { + c, _ := utf8.DecodeRune(b) + c -= hangulBase + return c < jamoLVTCount && c%jamoTCount == 0 +} + +// decomposeHangul writes the decomposed Hangul to buf and returns the number +// of bytes written. len(buf) should be at least 9. +func decomposeHangul(buf []byte, r rune) int { + const JamoUTF8Len = 3 + r -= hangulBase + x := r % jamoTCount + r /= jamoTCount + utf8.EncodeRune(buf, jamoLBase+r/jamoVCount) + utf8.EncodeRune(buf[JamoUTF8Len:], jamoVBase+r%jamoVCount) + if x != 0 { + utf8.EncodeRune(buf[2*JamoUTF8Len:], jamoTBase+x) + return 3 * JamoUTF8Len + } + return 2 * JamoUTF8Len +} + +// decomposeHangul algorithmically decomposes a Hangul rune into +// its Jamo components. +// See https://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul. +func (rb *reorderBuffer) decomposeHangul(r rune) { + r -= hangulBase + x := r % jamoTCount + r /= jamoTCount + rb.appendRune(jamoLBase + r/jamoVCount) + rb.appendRune(jamoVBase + r%jamoVCount) + if x != 0 { + rb.appendRune(jamoTBase + x) + } +} + +// combineHangul algorithmically combines Jamo character components into Hangul. +// See https://unicode.org/reports/tr15/#Hangul for details on combining Hangul. +func (rb *reorderBuffer) combineHangul(s, i, k int) { + b := rb.rune[:] + bn := rb.nrune + for ; i < bn; i++ { + cccB := b[k-1].ccc + cccC := b[i].ccc + if cccB == 0 { + s = k - 1 + } + if s != k-1 && cccB >= cccC { + // b[i] is blocked by greater-equal cccX below it + b[k] = b[i] + k++ + } else { + l := rb.runeAt(s) // also used to compare to hangulBase + v := rb.runeAt(i) // also used to compare to jamoT + switch { + case jamoLBase <= l && l < jamoLEnd && + jamoVBase <= v && v < jamoVEnd: + // 11xx plus 116x to LV + rb.assignRune(s, hangulBase+ + (l-jamoLBase)*jamoVTCount+(v-jamoVBase)*jamoTCount) + case hangulBase <= l && l < hangulEnd && + jamoTBase < v && v < jamoTEnd && + ((l-hangulBase)%jamoTCount) == 0: + // ACxx plus 11Ax to LVT + rb.assignRune(s, l+v-jamoTBase) + default: + b[k] = b[i] + k++ + } + } + } + rb.nrune = k +} + +// compose recombines the runes in the buffer. +// It should only be used to recompose a single segment, as it will not +// handle alternations between Hangul and non-Hangul characters correctly. +func (rb *reorderBuffer) compose() { + // Lazily load the map used by the combine func below, but do + // it outside of the loop. + recompMapOnce.Do(buildRecompMap) + + // UAX #15, section X5 , including Corrigendum #5 + // "In any character sequence beginning with starter S, a character C is + // blocked from S if and only if there is some character B between S + // and C, and either B is a starter or it has the same or higher + // combining class as C." + bn := rb.nrune + if bn == 0 { + return + } + k := 1 + b := rb.rune[:] + for s, i := 0, 1; i < bn; i++ { + if isJamoVT(rb.bytesAt(i)) { + // Redo from start in Hangul mode. Necessary to support + // U+320E..U+321E in NFKC mode. + rb.combineHangul(s, i, k) + return + } + ii := b[i] + // We can only use combineForward as a filter if we later + // get the info for the combined character. This is more + // expensive than using the filter. Using combinesBackward() + // is safe. + if ii.combinesBackward() { + cccB := b[k-1].ccc + cccC := ii.ccc + blocked := false // b[i] blocked by starter or greater or equal CCC? + if cccB == 0 { + s = k - 1 + } else { + blocked = s != k-1 && cccB >= cccC + } + if !blocked { + combined := combine(rb.runeAt(s), rb.runeAt(i)) + if combined != 0 { + rb.assignRune(s, combined) + continue + } + } + } + b[k] = b[i] + k++ + } + rb.nrune = k +} diff --git a/vendor/golang.org/x/text/unicode/norm/forminfo.go b/vendor/golang.org/x/text/unicode/norm/forminfo.go new file mode 100644 index 0000000..526c703 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/forminfo.go @@ -0,0 +1,278 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import "encoding/binary" + +// This file contains Form-specific logic and wrappers for data in tables.go. + +// Rune info is stored in a separate trie per composing form. A composing form +// and its corresponding decomposing form share the same trie. Each trie maps +// a rune to a uint16. The values take two forms. For v >= 0x8000: +// bits +// 15: 1 (inverse of NFD_QC bit of qcInfo) +// 13..7: qcInfo (see below). isYesD is always true (no decompostion). +// 6..0: ccc (compressed CCC value). +// For v < 0x8000, the respective rune has a decomposition and v is an index +// into a byte array of UTF-8 decomposition sequences and additional info and +// has the form: +//
* [ []] +// The header contains the number of bytes in the decomposition (excluding this +// length byte). The two most significant bits of this length byte correspond +// to bit 5 and 4 of qcInfo (see below). The byte sequence itself starts at v+1. +// The byte sequence is followed by a trailing and leading CCC if the values +// for these are not zero. The value of v determines which ccc are appended +// to the sequences. For v < firstCCC, there are none, for v >= firstCCC, +// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC +// there is an additional leading ccc. The value of tccc itself is the +// trailing CCC shifted left 2 bits. The two least-significant bits of tccc +// are the number of trailing non-starters. + +const ( + qcInfoMask = 0x3F // to clear all but the relevant bits in a qcInfo + headerLenMask = 0x3F // extract the length value from the header byte + headerFlagsMask = 0xC0 // extract the qcInfo bits from the header byte +) + +// Properties provides access to normalization properties of a rune. +type Properties struct { + pos uint8 // start position in reorderBuffer; used in composition.go + size uint8 // length of UTF-8 encoding of this rune + ccc uint8 // leading canonical combining class (ccc if not decomposition) + tccc uint8 // trailing canonical combining class (ccc if not decomposition) + nLead uint8 // number of leading non-starters. + flags qcInfo // quick check flags + index uint16 +} + +// functions dispatchable per form +type lookupFunc func(b input, i int) Properties + +// formInfo holds Form-specific functions and tables. +type formInfo struct { + form Form + composing, compatibility bool // form type + info lookupFunc + nextMain iterFunc +} + +var formTable = []*formInfo{{ + form: NFC, + composing: true, + compatibility: false, + info: lookupInfoNFC, + nextMain: nextComposed, +}, { + form: NFD, + composing: false, + compatibility: false, + info: lookupInfoNFC, + nextMain: nextDecomposed, +}, { + form: NFKC, + composing: true, + compatibility: true, + info: lookupInfoNFKC, + nextMain: nextComposed, +}, { + form: NFKD, + composing: false, + compatibility: true, + info: lookupInfoNFKC, + nextMain: nextDecomposed, +}} + +// We do not distinguish between boundaries for NFC, NFD, etc. to avoid +// unexpected behavior for the user. For example, in NFD, there is a boundary +// after 'a'. However, 'a' might combine with modifiers, so from the application's +// perspective it is not a good boundary. We will therefore always use the +// boundaries for the combining variants. + +// BoundaryBefore returns true if this rune starts a new segment and +// cannot combine with any rune on the left. +func (p Properties) BoundaryBefore() bool { + if p.ccc == 0 && !p.combinesBackward() { + return true + } + // We assume that the CCC of the first character in a decomposition + // is always non-zero if different from info.ccc and that we can return + // false at this point. This is verified by maketables. + return false +} + +// BoundaryAfter returns true if runes cannot combine with or otherwise +// interact with this or previous runes. +func (p Properties) BoundaryAfter() bool { + // TODO: loosen these conditions. + return p.isInert() +} + +// We pack quick check data in 4 bits: +// 5: Combines forward (0 == false, 1 == true) +// 4..3: NFC_QC Yes(00), No (10), or Maybe (11) +// 2: NFD_QC Yes (0) or No (1). No also means there is a decomposition. +// 1..0: Number of trailing non-starters. +// +// When all 4 bits are zero, the character is inert, meaning it is never +// influenced by normalization. +type qcInfo uint8 + +func (p Properties) isYesC() bool { return p.flags&0x10 == 0 } +func (p Properties) isYesD() bool { return p.flags&0x4 == 0 } + +func (p Properties) combinesForward() bool { return p.flags&0x20 != 0 } +func (p Properties) combinesBackward() bool { return p.flags&0x8 != 0 } // == isMaybe +func (p Properties) hasDecomposition() bool { return p.flags&0x4 != 0 } // == isNoD + +func (p Properties) isInert() bool { + return p.flags&qcInfoMask == 0 && p.ccc == 0 +} + +func (p Properties) multiSegment() bool { + return p.index >= firstMulti && p.index < endMulti +} + +func (p Properties) nLeadingNonStarters() uint8 { + return p.nLead +} + +func (p Properties) nTrailingNonStarters() uint8 { + return uint8(p.flags & 0x03) +} + +// Decomposition returns the decomposition for the underlying rune +// or nil if there is none. +func (p Properties) Decomposition() []byte { + // TODO: create the decomposition for Hangul? + if p.index == 0 { + return nil + } + i := p.index + n := decomps[i] & headerLenMask + i++ + return decomps[i : i+uint16(n)] +} + +// Size returns the length of UTF-8 encoding of the rune. +func (p Properties) Size() int { + return int(p.size) +} + +// CCC returns the canonical combining class of the underlying rune. +func (p Properties) CCC() uint8 { + if p.index >= firstCCCZeroExcept { + return 0 + } + return ccc[p.ccc] +} + +// LeadCCC returns the CCC of the first rune in the decomposition. +// If there is no decomposition, LeadCCC equals CCC. +func (p Properties) LeadCCC() uint8 { + return ccc[p.ccc] +} + +// TrailCCC returns the CCC of the last rune in the decomposition. +// If there is no decomposition, TrailCCC equals CCC. +func (p Properties) TrailCCC() uint8 { + return ccc[p.tccc] +} + +func buildRecompMap() { + recompMap = make(map[uint32]rune, len(recompMapPacked)/8) + var buf [8]byte + for i := 0; i < len(recompMapPacked); i += 8 { + copy(buf[:], recompMapPacked[i:i+8]) + key := binary.BigEndian.Uint32(buf[:4]) + val := binary.BigEndian.Uint32(buf[4:]) + recompMap[key] = rune(val) + } +} + +// Recomposition +// We use 32-bit keys instead of 64-bit for the two codepoint keys. +// This clips off the bits of three entries, but we know this will not +// result in a collision. In the unlikely event that changes to +// UnicodeData.txt introduce collisions, the compiler will catch it. +// Note that the recomposition map for NFC and NFKC are identical. + +// combine returns the combined rune or 0 if it doesn't exist. +// +// The caller is responsible for calling +// recompMapOnce.Do(buildRecompMap) sometime before this is called. +func combine(a, b rune) rune { + key := uint32(uint16(a))<<16 + uint32(uint16(b)) + if recompMap == nil { + panic("caller error") // see func comment + } + return recompMap[key] +} + +func lookupInfoNFC(b input, i int) Properties { + v, sz := b.charinfoNFC(i) + return compInfo(v, sz) +} + +func lookupInfoNFKC(b input, i int) Properties { + v, sz := b.charinfoNFKC(i) + return compInfo(v, sz) +} + +// Properties returns properties for the first rune in s. +func (f Form) Properties(s []byte) Properties { + if f == NFC || f == NFD { + return compInfo(nfcData.lookup(s)) + } + return compInfo(nfkcData.lookup(s)) +} + +// PropertiesString returns properties for the first rune in s. +func (f Form) PropertiesString(s string) Properties { + if f == NFC || f == NFD { + return compInfo(nfcData.lookupString(s)) + } + return compInfo(nfkcData.lookupString(s)) +} + +// compInfo converts the information contained in v and sz +// to a Properties. See the comment at the top of the file +// for more information on the format. +func compInfo(v uint16, sz int) Properties { + if v == 0 { + return Properties{size: uint8(sz)} + } else if v >= 0x8000 { + p := Properties{ + size: uint8(sz), + ccc: uint8(v), + tccc: uint8(v), + flags: qcInfo(v >> 8), + } + if p.ccc > 0 || p.combinesBackward() { + p.nLead = uint8(p.flags & 0x3) + } + return p + } + // has decomposition + h := decomps[v] + f := (qcInfo(h&headerFlagsMask) >> 2) | 0x4 + p := Properties{size: uint8(sz), flags: f, index: v} + if v >= firstCCC { + v += uint16(h&headerLenMask) + 1 + c := decomps[v] + p.tccc = c >> 2 + p.flags |= qcInfo(c & 0x3) + if v >= firstLeadingCCC { + p.nLead = c & 0x3 + if v >= firstStarterWithNLead { + // We were tricked. Remove the decomposition. + p.flags &= 0x03 + p.index = 0 + return p + } + p.ccc = decomps[v+1] + } + } + return p +} diff --git a/vendor/golang.org/x/text/unicode/norm/input.go b/vendor/golang.org/x/text/unicode/norm/input.go new file mode 100644 index 0000000..479e35b --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/input.go @@ -0,0 +1,109 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import "unicode/utf8" + +type input struct { + str string + bytes []byte +} + +func inputBytes(str []byte) input { + return input{bytes: str} +} + +func inputString(str string) input { + return input{str: str} +} + +func (in *input) setBytes(str []byte) { + in.str = "" + in.bytes = str +} + +func (in *input) setString(str string) { + in.str = str + in.bytes = nil +} + +func (in *input) _byte(p int) byte { + if in.bytes == nil { + return in.str[p] + } + return in.bytes[p] +} + +func (in *input) skipASCII(p, max int) int { + if in.bytes == nil { + for ; p < max && in.str[p] < utf8.RuneSelf; p++ { + } + } else { + for ; p < max && in.bytes[p] < utf8.RuneSelf; p++ { + } + } + return p +} + +func (in *input) skipContinuationBytes(p int) int { + if in.bytes == nil { + for ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ { + } + } else { + for ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ { + } + } + return p +} + +func (in *input) appendSlice(buf []byte, b, e int) []byte { + if in.bytes != nil { + return append(buf, in.bytes[b:e]...) + } + for i := b; i < e; i++ { + buf = append(buf, in.str[i]) + } + return buf +} + +func (in *input) copySlice(buf []byte, b, e int) int { + if in.bytes == nil { + return copy(buf, in.str[b:e]) + } + return copy(buf, in.bytes[b:e]) +} + +func (in *input) charinfoNFC(p int) (uint16, int) { + if in.bytes == nil { + return nfcData.lookupString(in.str[p:]) + } + return nfcData.lookup(in.bytes[p:]) +} + +func (in *input) charinfoNFKC(p int) (uint16, int) { + if in.bytes == nil { + return nfkcData.lookupString(in.str[p:]) + } + return nfkcData.lookup(in.bytes[p:]) +} + +func (in *input) hangul(p int) (r rune) { + var size int + if in.bytes == nil { + if !isHangulString(in.str[p:]) { + return 0 + } + r, size = utf8.DecodeRuneInString(in.str[p:]) + } else { + if !isHangul(in.bytes[p:]) { + return 0 + } + r, size = utf8.DecodeRune(in.bytes[p:]) + } + if size != hangulUTF8Size { + return 0 + } + return r +} diff --git a/vendor/golang.org/x/text/unicode/norm/iter.go b/vendor/golang.org/x/text/unicode/norm/iter.go new file mode 100644 index 0000000..417c6b2 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/iter.go @@ -0,0 +1,458 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import ( + "fmt" + "unicode/utf8" +) + +// MaxSegmentSize is the maximum size of a byte buffer needed to consider any +// sequence of starter and non-starter runes for the purpose of normalization. +const MaxSegmentSize = maxByteBufferSize + +// An Iter iterates over a string or byte slice, while normalizing it +// to a given Form. +type Iter struct { + rb reorderBuffer + buf [maxByteBufferSize]byte + info Properties // first character saved from previous iteration + next iterFunc // implementation of next depends on form + asciiF iterFunc + + p int // current position in input source + multiSeg []byte // remainder of multi-segment decomposition +} + +type iterFunc func(*Iter) []byte + +// Init initializes i to iterate over src after normalizing it to Form f. +func (i *Iter) Init(f Form, src []byte) { + i.p = 0 + if len(src) == 0 { + i.setDone() + i.rb.nsrc = 0 + return + } + i.multiSeg = nil + i.rb.init(f, src) + i.next = i.rb.f.nextMain + i.asciiF = nextASCIIBytes + i.info = i.rb.f.info(i.rb.src, i.p) + i.rb.ss.first(i.info) +} + +// InitString initializes i to iterate over src after normalizing it to Form f. +func (i *Iter) InitString(f Form, src string) { + i.p = 0 + if len(src) == 0 { + i.setDone() + i.rb.nsrc = 0 + return + } + i.multiSeg = nil + i.rb.initString(f, src) + i.next = i.rb.f.nextMain + i.asciiF = nextASCIIString + i.info = i.rb.f.info(i.rb.src, i.p) + i.rb.ss.first(i.info) +} + +// Seek sets the segment to be returned by the next call to Next to start +// at position p. It is the responsibility of the caller to set p to the +// start of a segment. +func (i *Iter) Seek(offset int64, whence int) (int64, error) { + var abs int64 + switch whence { + case 0: + abs = offset + case 1: + abs = int64(i.p) + offset + case 2: + abs = int64(i.rb.nsrc) + offset + default: + return 0, fmt.Errorf("norm: invalid whence") + } + if abs < 0 { + return 0, fmt.Errorf("norm: negative position") + } + if int(abs) >= i.rb.nsrc { + i.setDone() + return int64(i.p), nil + } + i.p = int(abs) + i.multiSeg = nil + i.next = i.rb.f.nextMain + i.info = i.rb.f.info(i.rb.src, i.p) + i.rb.ss.first(i.info) + return abs, nil +} + +// returnSlice returns a slice of the underlying input type as a byte slice. +// If the underlying is of type []byte, it will simply return a slice. +// If the underlying is of type string, it will copy the slice to the buffer +// and return that. +func (i *Iter) returnSlice(a, b int) []byte { + if i.rb.src.bytes == nil { + return i.buf[:copy(i.buf[:], i.rb.src.str[a:b])] + } + return i.rb.src.bytes[a:b] +} + +// Pos returns the byte position at which the next call to Next will commence processing. +func (i *Iter) Pos() int { + return i.p +} + +func (i *Iter) setDone() { + i.next = nextDone + i.p = i.rb.nsrc +} + +// Done returns true if there is no more input to process. +func (i *Iter) Done() bool { + return i.p >= i.rb.nsrc +} + +// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input. +// For any input a and b for which f(a) == f(b), subsequent calls +// to Next will return the same segments. +// Modifying runes are grouped together with the preceding starter, if such a starter exists. +// Although not guaranteed, n will typically be the smallest possible n. +func (i *Iter) Next() []byte { + return i.next(i) +} + +func nextASCIIBytes(i *Iter) []byte { + p := i.p + 1 + if p >= i.rb.nsrc { + p0 := i.p + i.setDone() + return i.rb.src.bytes[p0:p] + } + if i.rb.src.bytes[p] < utf8.RuneSelf { + p0 := i.p + i.p = p + return i.rb.src.bytes[p0:p] + } + i.info = i.rb.f.info(i.rb.src, i.p) + i.next = i.rb.f.nextMain + return i.next(i) +} + +func nextASCIIString(i *Iter) []byte { + p := i.p + 1 + if p >= i.rb.nsrc { + i.buf[0] = i.rb.src.str[i.p] + i.setDone() + return i.buf[:1] + } + if i.rb.src.str[p] < utf8.RuneSelf { + i.buf[0] = i.rb.src.str[i.p] + i.p = p + return i.buf[:1] + } + i.info = i.rb.f.info(i.rb.src, i.p) + i.next = i.rb.f.nextMain + return i.next(i) +} + +func nextHangul(i *Iter) []byte { + p := i.p + next := p + hangulUTF8Size + if next >= i.rb.nsrc { + i.setDone() + } else if i.rb.src.hangul(next) == 0 { + i.rb.ss.next(i.info) + i.info = i.rb.f.info(i.rb.src, i.p) + i.next = i.rb.f.nextMain + return i.next(i) + } + i.p = next + return i.buf[:decomposeHangul(i.buf[:], i.rb.src.hangul(p))] +} + +func nextDone(i *Iter) []byte { + return nil +} + +// nextMulti is used for iterating over multi-segment decompositions +// for decomposing normal forms. +func nextMulti(i *Iter) []byte { + j := 0 + d := i.multiSeg + // skip first rune + for j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ { + } + for j < len(d) { + info := i.rb.f.info(input{bytes: d}, j) + if info.BoundaryBefore() { + i.multiSeg = d[j:] + return d[:j] + } + j += int(info.size) + } + // treat last segment as normal decomposition + i.next = i.rb.f.nextMain + return i.next(i) +} + +// nextMultiNorm is used for iterating over multi-segment decompositions +// for composing normal forms. +func nextMultiNorm(i *Iter) []byte { + j := 0 + d := i.multiSeg + for j < len(d) { + info := i.rb.f.info(input{bytes: d}, j) + if info.BoundaryBefore() { + i.rb.compose() + seg := i.buf[:i.rb.flushCopy(i.buf[:])] + i.rb.insertUnsafe(input{bytes: d}, j, info) + i.multiSeg = d[j+int(info.size):] + return seg + } + i.rb.insertUnsafe(input{bytes: d}, j, info) + j += int(info.size) + } + i.multiSeg = nil + i.next = nextComposed + return doNormComposed(i) +} + +// nextDecomposed is the implementation of Next for forms NFD and NFKD. +func nextDecomposed(i *Iter) (next []byte) { + outp := 0 + inCopyStart, outCopyStart := i.p, 0 + for { + if sz := int(i.info.size); sz <= 1 { + i.rb.ss = 0 + p := i.p + i.p++ // ASCII or illegal byte. Either way, advance by 1. + if i.p >= i.rb.nsrc { + i.setDone() + return i.returnSlice(p, i.p) + } else if i.rb.src._byte(i.p) < utf8.RuneSelf { + i.next = i.asciiF + return i.returnSlice(p, i.p) + } + outp++ + } else if d := i.info.Decomposition(); d != nil { + // Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero. + // Case 1: there is a leftover to copy. In this case the decomposition + // must begin with a modifier and should always be appended. + // Case 2: no leftover. Simply return d if followed by a ccc == 0 value. + p := outp + len(d) + if outp > 0 { + i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) + // TODO: this condition should not be possible, but we leave it + // in for defensive purposes. + if p > len(i.buf) { + return i.buf[:outp] + } + } else if i.info.multiSegment() { + // outp must be 0 as multi-segment decompositions always + // start a new segment. + if i.multiSeg == nil { + i.multiSeg = d + i.next = nextMulti + return nextMulti(i) + } + // We are in the last segment. Treat as normal decomposition. + d = i.multiSeg + i.multiSeg = nil + p = len(d) + } + prevCC := i.info.tccc + if i.p += sz; i.p >= i.rb.nsrc { + i.setDone() + i.info = Properties{} // Force BoundaryBefore to succeed. + } else { + i.info = i.rb.f.info(i.rb.src, i.p) + } + switch i.rb.ss.next(i.info) { + case ssOverflow: + i.next = nextCGJDecompose + fallthrough + case ssStarter: + if outp > 0 { + copy(i.buf[outp:], d) + return i.buf[:p] + } + return d + } + copy(i.buf[outp:], d) + outp = p + inCopyStart, outCopyStart = i.p, outp + if i.info.ccc < prevCC { + goto doNorm + } + continue + } else if r := i.rb.src.hangul(i.p); r != 0 { + outp = decomposeHangul(i.buf[:], r) + i.p += hangulUTF8Size + inCopyStart, outCopyStart = i.p, outp + if i.p >= i.rb.nsrc { + i.setDone() + break + } else if i.rb.src.hangul(i.p) != 0 { + i.next = nextHangul + return i.buf[:outp] + } + } else { + p := outp + sz + if p > len(i.buf) { + break + } + outp = p + i.p += sz + } + if i.p >= i.rb.nsrc { + i.setDone() + break + } + prevCC := i.info.tccc + i.info = i.rb.f.info(i.rb.src, i.p) + if v := i.rb.ss.next(i.info); v == ssStarter { + break + } else if v == ssOverflow { + i.next = nextCGJDecompose + break + } + if i.info.ccc < prevCC { + goto doNorm + } + } + if outCopyStart == 0 { + return i.returnSlice(inCopyStart, i.p) + } else if inCopyStart < i.p { + i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) + } + return i.buf[:outp] +doNorm: + // Insert what we have decomposed so far in the reorderBuffer. + // As we will only reorder, there will always be enough room. + i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) + i.rb.insertDecomposed(i.buf[0:outp]) + return doNormDecomposed(i) +} + +func doNormDecomposed(i *Iter) []byte { + for { + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + if i.p += int(i.info.size); i.p >= i.rb.nsrc { + i.setDone() + break + } + i.info = i.rb.f.info(i.rb.src, i.p) + if i.info.ccc == 0 { + break + } + if s := i.rb.ss.next(i.info); s == ssOverflow { + i.next = nextCGJDecompose + break + } + } + // new segment or too many combining characters: exit normalization + return i.buf[:i.rb.flushCopy(i.buf[:])] +} + +func nextCGJDecompose(i *Iter) []byte { + i.rb.ss = 0 + i.rb.insertCGJ() + i.next = nextDecomposed + i.rb.ss.first(i.info) + buf := doNormDecomposed(i) + return buf +} + +// nextComposed is the implementation of Next for forms NFC and NFKC. +func nextComposed(i *Iter) []byte { + outp, startp := 0, i.p + var prevCC uint8 + for { + if !i.info.isYesC() { + goto doNorm + } + prevCC = i.info.tccc + sz := int(i.info.size) + if sz == 0 { + sz = 1 // illegal rune: copy byte-by-byte + } + p := outp + sz + if p > len(i.buf) { + break + } + outp = p + i.p += sz + if i.p >= i.rb.nsrc { + i.setDone() + break + } else if i.rb.src._byte(i.p) < utf8.RuneSelf { + i.rb.ss = 0 + i.next = i.asciiF + break + } + i.info = i.rb.f.info(i.rb.src, i.p) + if v := i.rb.ss.next(i.info); v == ssStarter { + break + } else if v == ssOverflow { + i.next = nextCGJCompose + break + } + if i.info.ccc < prevCC { + goto doNorm + } + } + return i.returnSlice(startp, i.p) +doNorm: + // reset to start position + i.p = startp + i.info = i.rb.f.info(i.rb.src, i.p) + i.rb.ss.first(i.info) + if i.info.multiSegment() { + d := i.info.Decomposition() + info := i.rb.f.info(input{bytes: d}, 0) + i.rb.insertUnsafe(input{bytes: d}, 0, info) + i.multiSeg = d[int(info.size):] + i.next = nextMultiNorm + return nextMultiNorm(i) + } + i.rb.ss.first(i.info) + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + return doNormComposed(i) +} + +func doNormComposed(i *Iter) []byte { + // First rune should already be inserted. + for { + if i.p += int(i.info.size); i.p >= i.rb.nsrc { + i.setDone() + break + } + i.info = i.rb.f.info(i.rb.src, i.p) + if s := i.rb.ss.next(i.info); s == ssStarter { + break + } else if s == ssOverflow { + i.next = nextCGJCompose + break + } + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + } + i.rb.compose() + seg := i.buf[:i.rb.flushCopy(i.buf[:])] + return seg +} + +func nextCGJCompose(i *Iter) []byte { + i.rb.ss = 0 // instead of first + i.rb.insertCGJ() + i.next = nextComposed + // Note that we treat any rune with nLeadingNonStarters > 0 as a non-starter, + // even if they are not. This is particularly dubious for U+FF9E and UFF9A. + // If we ever change that, insert a check here. + i.rb.ss.first(i.info) + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + return doNormComposed(i) +} diff --git a/vendor/golang.org/x/text/unicode/norm/normalize.go b/vendor/golang.org/x/text/unicode/norm/normalize.go new file mode 100644 index 0000000..95efcf2 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/normalize.go @@ -0,0 +1,609 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Note: the file data_test.go that is generated should not be checked in. +//go:generate go run maketables.go triegen.go +//go:generate go test -tags test + +// Package norm contains types and functions for normalizing Unicode strings. +package norm // import "golang.org/x/text/unicode/norm" + +import ( + "unicode/utf8" + + "golang.org/x/text/transform" +) + +// A Form denotes a canonical representation of Unicode code points. +// The Unicode-defined normalization and equivalence forms are: +// +// NFC Unicode Normalization Form C +// NFD Unicode Normalization Form D +// NFKC Unicode Normalization Form KC +// NFKD Unicode Normalization Form KD +// +// For a Form f, this documentation uses the notation f(x) to mean +// the bytes or string x converted to the given form. +// A position n in x is called a boundary if conversion to the form can +// proceed independently on both sides: +// f(x) == append(f(x[0:n]), f(x[n:])...) +// +// References: https://unicode.org/reports/tr15/ and +// https://unicode.org/notes/tn5/. +type Form int + +const ( + NFC Form = iota + NFD + NFKC + NFKD +) + +// Bytes returns f(b). May return b if f(b) = b. +func (f Form) Bytes(b []byte) []byte { + src := inputBytes(b) + ft := formTable[f] + n, ok := ft.quickSpan(src, 0, len(b), true) + if ok { + return b + } + out := make([]byte, n, len(b)) + copy(out, b[0:n]) + rb := reorderBuffer{f: *ft, src: src, nsrc: len(b), out: out, flushF: appendFlush} + return doAppendInner(&rb, n) +} + +// String returns f(s). +func (f Form) String(s string) string { + src := inputString(s) + ft := formTable[f] + n, ok := ft.quickSpan(src, 0, len(s), true) + if ok { + return s + } + out := make([]byte, n, len(s)) + copy(out, s[0:n]) + rb := reorderBuffer{f: *ft, src: src, nsrc: len(s), out: out, flushF: appendFlush} + return string(doAppendInner(&rb, n)) +} + +// IsNormal returns true if b == f(b). +func (f Form) IsNormal(b []byte) bool { + src := inputBytes(b) + ft := formTable[f] + bp, ok := ft.quickSpan(src, 0, len(b), true) + if ok { + return true + } + rb := reorderBuffer{f: *ft, src: src, nsrc: len(b)} + rb.setFlusher(nil, cmpNormalBytes) + for bp < len(b) { + rb.out = b[bp:] + if bp = decomposeSegment(&rb, bp, true); bp < 0 { + return false + } + bp, _ = rb.f.quickSpan(rb.src, bp, len(b), true) + } + return true +} + +func cmpNormalBytes(rb *reorderBuffer) bool { + b := rb.out + for i := 0; i < rb.nrune; i++ { + info := rb.rune[i] + if int(info.size) > len(b) { + return false + } + p := info.pos + pe := p + info.size + for ; p < pe; p++ { + if b[0] != rb.byte[p] { + return false + } + b = b[1:] + } + } + return true +} + +// IsNormalString returns true if s == f(s). +func (f Form) IsNormalString(s string) bool { + src := inputString(s) + ft := formTable[f] + bp, ok := ft.quickSpan(src, 0, len(s), true) + if ok { + return true + } + rb := reorderBuffer{f: *ft, src: src, nsrc: len(s)} + rb.setFlusher(nil, func(rb *reorderBuffer) bool { + for i := 0; i < rb.nrune; i++ { + info := rb.rune[i] + if bp+int(info.size) > len(s) { + return false + } + p := info.pos + pe := p + info.size + for ; p < pe; p++ { + if s[bp] != rb.byte[p] { + return false + } + bp++ + } + } + return true + }) + for bp < len(s) { + if bp = decomposeSegment(&rb, bp, true); bp < 0 { + return false + } + bp, _ = rb.f.quickSpan(rb.src, bp, len(s), true) + } + return true +} + +// patchTail fixes a case where a rune may be incorrectly normalized +// if it is followed by illegal continuation bytes. It returns the +// patched buffer and whether the decomposition is still in progress. +func patchTail(rb *reorderBuffer) bool { + info, p := lastRuneStart(&rb.f, rb.out) + if p == -1 || info.size == 0 { + return true + } + end := p + int(info.size) + extra := len(rb.out) - end + if extra > 0 { + // Potentially allocating memory. However, this only + // happens with ill-formed UTF-8. + x := make([]byte, 0) + x = append(x, rb.out[len(rb.out)-extra:]...) + rb.out = rb.out[:end] + decomposeToLastBoundary(rb) + rb.doFlush() + rb.out = append(rb.out, x...) + return false + } + buf := rb.out[p:] + rb.out = rb.out[:p] + decomposeToLastBoundary(rb) + if s := rb.ss.next(info); s == ssStarter { + rb.doFlush() + rb.ss.first(info) + } else if s == ssOverflow { + rb.doFlush() + rb.insertCGJ() + rb.ss = 0 + } + rb.insertUnsafe(inputBytes(buf), 0, info) + return true +} + +func appendQuick(rb *reorderBuffer, i int) int { + if rb.nsrc == i { + return i + } + end, _ := rb.f.quickSpan(rb.src, i, rb.nsrc, true) + rb.out = rb.src.appendSlice(rb.out, i, end) + return end +} + +// Append returns f(append(out, b...)). +// The buffer out must be nil, empty, or equal to f(out). +func (f Form) Append(out []byte, src ...byte) []byte { + return f.doAppend(out, inputBytes(src), len(src)) +} + +func (f Form) doAppend(out []byte, src input, n int) []byte { + if n == 0 { + return out + } + ft := formTable[f] + // Attempt to do a quickSpan first so we can avoid initializing the reorderBuffer. + if len(out) == 0 { + p, _ := ft.quickSpan(src, 0, n, true) + out = src.appendSlice(out, 0, p) + if p == n { + return out + } + rb := reorderBuffer{f: *ft, src: src, nsrc: n, out: out, flushF: appendFlush} + return doAppendInner(&rb, p) + } + rb := reorderBuffer{f: *ft, src: src, nsrc: n} + return doAppend(&rb, out, 0) +} + +func doAppend(rb *reorderBuffer, out []byte, p int) []byte { + rb.setFlusher(out, appendFlush) + src, n := rb.src, rb.nsrc + doMerge := len(out) > 0 + if q := src.skipContinuationBytes(p); q > p { + // Move leading non-starters to destination. + rb.out = src.appendSlice(rb.out, p, q) + p = q + doMerge = patchTail(rb) + } + fd := &rb.f + if doMerge { + var info Properties + if p < n { + info = fd.info(src, p) + if !info.BoundaryBefore() || info.nLeadingNonStarters() > 0 { + if p == 0 { + decomposeToLastBoundary(rb) + } + p = decomposeSegment(rb, p, true) + } + } + if info.size == 0 { + rb.doFlush() + // Append incomplete UTF-8 encoding. + return src.appendSlice(rb.out, p, n) + } + if rb.nrune > 0 { + return doAppendInner(rb, p) + } + } + p = appendQuick(rb, p) + return doAppendInner(rb, p) +} + +func doAppendInner(rb *reorderBuffer, p int) []byte { + for n := rb.nsrc; p < n; { + p = decomposeSegment(rb, p, true) + p = appendQuick(rb, p) + } + return rb.out +} + +// AppendString returns f(append(out, []byte(s))). +// The buffer out must be nil, empty, or equal to f(out). +func (f Form) AppendString(out []byte, src string) []byte { + return f.doAppend(out, inputString(src), len(src)) +} + +// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]). +// It is not guaranteed to return the largest such n. +func (f Form) QuickSpan(b []byte) int { + n, _ := formTable[f].quickSpan(inputBytes(b), 0, len(b), true) + return n +} + +// Span implements transform.SpanningTransformer. It returns a boundary n such +// that b[0:n] == f(b[0:n]). It is not guaranteed to return the largest such n. +func (f Form) Span(b []byte, atEOF bool) (n int, err error) { + n, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), atEOF) + if n < len(b) { + if !ok { + err = transform.ErrEndOfSpan + } else { + err = transform.ErrShortSrc + } + } + return n, err +} + +// SpanString returns a boundary n such that s[0:n] == f(s[0:n]). +// It is not guaranteed to return the largest such n. +func (f Form) SpanString(s string, atEOF bool) (n int, err error) { + n, ok := formTable[f].quickSpan(inputString(s), 0, len(s), atEOF) + if n < len(s) { + if !ok { + err = transform.ErrEndOfSpan + } else { + err = transform.ErrShortSrc + } + } + return n, err +} + +// quickSpan returns a boundary n such that src[0:n] == f(src[0:n]) and +// whether any non-normalized parts were found. If atEOF is false, n will +// not point past the last segment if this segment might be become +// non-normalized by appending other runes. +func (f *formInfo) quickSpan(src input, i, end int, atEOF bool) (n int, ok bool) { + var lastCC uint8 + ss := streamSafe(0) + lastSegStart := i + for n = end; i < n; { + if j := src.skipASCII(i, n); i != j { + i = j + lastSegStart = i - 1 + lastCC = 0 + ss = 0 + continue + } + info := f.info(src, i) + if info.size == 0 { + if atEOF { + // include incomplete runes + return n, true + } + return lastSegStart, true + } + // This block needs to be before the next, because it is possible to + // have an overflow for runes that are starters (e.g. with U+FF9E). + switch ss.next(info) { + case ssStarter: + lastSegStart = i + case ssOverflow: + return lastSegStart, false + case ssSuccess: + if lastCC > info.ccc { + return lastSegStart, false + } + } + if f.composing { + if !info.isYesC() { + break + } + } else { + if !info.isYesD() { + break + } + } + lastCC = info.ccc + i += int(info.size) + } + if i == n { + if !atEOF { + n = lastSegStart + } + return n, true + } + return lastSegStart, false +} + +// QuickSpanString returns a boundary n such that s[0:n] == f(s[0:n]). +// It is not guaranteed to return the largest such n. +func (f Form) QuickSpanString(s string) int { + n, _ := formTable[f].quickSpan(inputString(s), 0, len(s), true) + return n +} + +// FirstBoundary returns the position i of the first boundary in b +// or -1 if b contains no boundary. +func (f Form) FirstBoundary(b []byte) int { + return f.firstBoundary(inputBytes(b), len(b)) +} + +func (f Form) firstBoundary(src input, nsrc int) int { + i := src.skipContinuationBytes(0) + if i >= nsrc { + return -1 + } + fd := formTable[f] + ss := streamSafe(0) + // We should call ss.first here, but we can't as the first rune is + // skipped already. This means FirstBoundary can't really determine + // CGJ insertion points correctly. Luckily it doesn't have to. + for { + info := fd.info(src, i) + if info.size == 0 { + return -1 + } + if s := ss.next(info); s != ssSuccess { + return i + } + i += int(info.size) + if i >= nsrc { + if !info.BoundaryAfter() && !ss.isMax() { + return -1 + } + return nsrc + } + } +} + +// FirstBoundaryInString returns the position i of the first boundary in s +// or -1 if s contains no boundary. +func (f Form) FirstBoundaryInString(s string) int { + return f.firstBoundary(inputString(s), len(s)) +} + +// NextBoundary reports the index of the boundary between the first and next +// segment in b or -1 if atEOF is false and there are not enough bytes to +// determine this boundary. +func (f Form) NextBoundary(b []byte, atEOF bool) int { + return f.nextBoundary(inputBytes(b), len(b), atEOF) +} + +// NextBoundaryInString reports the index of the boundary between the first and +// next segment in b or -1 if atEOF is false and there are not enough bytes to +// determine this boundary. +func (f Form) NextBoundaryInString(s string, atEOF bool) int { + return f.nextBoundary(inputString(s), len(s), atEOF) +} + +func (f Form) nextBoundary(src input, nsrc int, atEOF bool) int { + if nsrc == 0 { + if atEOF { + return 0 + } + return -1 + } + fd := formTable[f] + info := fd.info(src, 0) + if info.size == 0 { + if atEOF { + return 1 + } + return -1 + } + ss := streamSafe(0) + ss.first(info) + + for i := int(info.size); i < nsrc; i += int(info.size) { + info = fd.info(src, i) + if info.size == 0 { + if atEOF { + return i + } + return -1 + } + // TODO: Using streamSafe to determine the boundary isn't the same as + // using BoundaryBefore. Determine which should be used. + if s := ss.next(info); s != ssSuccess { + return i + } + } + if !atEOF && !info.BoundaryAfter() && !ss.isMax() { + return -1 + } + return nsrc +} + +// LastBoundary returns the position i of the last boundary in b +// or -1 if b contains no boundary. +func (f Form) LastBoundary(b []byte) int { + return lastBoundary(formTable[f], b) +} + +func lastBoundary(fd *formInfo, b []byte) int { + i := len(b) + info, p := lastRuneStart(fd, b) + if p == -1 { + return -1 + } + if info.size == 0 { // ends with incomplete rune + if p == 0 { // starts with incomplete rune + return -1 + } + i = p + info, p = lastRuneStart(fd, b[:i]) + if p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter + return i + } + } + if p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8 + return i + } + if info.BoundaryAfter() { + return i + } + ss := streamSafe(0) + v := ss.backwards(info) + for i = p; i >= 0 && v != ssStarter; i = p { + info, p = lastRuneStart(fd, b[:i]) + if v = ss.backwards(info); v == ssOverflow { + break + } + if p+int(info.size) != i { + if p == -1 { // no boundary found + return -1 + } + return i // boundary after an illegal UTF-8 encoding + } + } + return i +} + +// decomposeSegment scans the first segment in src into rb. It inserts 0x034f +// (Grapheme Joiner) when it encounters a sequence of more than 30 non-starters +// and returns the number of bytes consumed from src or iShortDst or iShortSrc. +func decomposeSegment(rb *reorderBuffer, sp int, atEOF bool) int { + // Force one character to be consumed. + info := rb.f.info(rb.src, sp) + if info.size == 0 { + return 0 + } + if s := rb.ss.next(info); s == ssStarter { + // TODO: this could be removed if we don't support merging. + if rb.nrune > 0 { + goto end + } + } else if s == ssOverflow { + rb.insertCGJ() + goto end + } + if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { + return int(err) + } + for { + sp += int(info.size) + if sp >= rb.nsrc { + if !atEOF && !info.BoundaryAfter() { + return int(iShortSrc) + } + break + } + info = rb.f.info(rb.src, sp) + if info.size == 0 { + if !atEOF { + return int(iShortSrc) + } + break + } + if s := rb.ss.next(info); s == ssStarter { + break + } else if s == ssOverflow { + rb.insertCGJ() + break + } + if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { + return int(err) + } + } +end: + if !rb.doFlush() { + return int(iShortDst) + } + return sp +} + +// lastRuneStart returns the runeInfo and position of the last +// rune in buf or the zero runeInfo and -1 if no rune was found. +func lastRuneStart(fd *formInfo, buf []byte) (Properties, int) { + p := len(buf) - 1 + for ; p >= 0 && !utf8.RuneStart(buf[p]); p-- { + } + if p < 0 { + return Properties{}, -1 + } + return fd.info(inputBytes(buf), p), p +} + +// decomposeToLastBoundary finds an open segment at the end of the buffer +// and scans it into rb. Returns the buffer minus the last segment. +func decomposeToLastBoundary(rb *reorderBuffer) { + fd := &rb.f + info, i := lastRuneStart(fd, rb.out) + if int(info.size) != len(rb.out)-i { + // illegal trailing continuation bytes + return + } + if info.BoundaryAfter() { + return + } + var add [maxNonStarters + 1]Properties // stores runeInfo in reverse order + padd := 0 + ss := streamSafe(0) + p := len(rb.out) + for { + add[padd] = info + v := ss.backwards(info) + if v == ssOverflow { + // Note that if we have an overflow, it the string we are appending to + // is not correctly normalized. In this case the behavior is undefined. + break + } + padd++ + p -= int(info.size) + if v == ssStarter || p < 0 { + break + } + info, i = lastRuneStart(fd, rb.out[:p]) + if int(info.size) != p-i { + break + } + } + rb.ss = ss + // Copy bytes for insertion as we may need to overwrite rb.out. + var buf [maxBufferSize * utf8.UTFMax]byte + cp := buf[:copy(buf[:], rb.out[p:])] + rb.out = rb.out[:p] + for padd--; padd >= 0; padd-- { + info = add[padd] + rb.insertUnsafe(inputBytes(cp), 0, info) + cp = cp[info.size:] + } +} diff --git a/vendor/golang.org/x/text/unicode/norm/readwriter.go b/vendor/golang.org/x/text/unicode/norm/readwriter.go new file mode 100644 index 0000000..b38096f --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/readwriter.go @@ -0,0 +1,125 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import "io" + +type normWriter struct { + rb reorderBuffer + w io.Writer + buf []byte +} + +// Write implements the standard write interface. If the last characters are +// not at a normalization boundary, the bytes will be buffered for the next +// write. The remaining bytes will be written on close. +func (w *normWriter) Write(data []byte) (n int, err error) { + // Process data in pieces to keep w.buf size bounded. + const chunk = 4000 + + for len(data) > 0 { + // Normalize into w.buf. + m := len(data) + if m > chunk { + m = chunk + } + w.rb.src = inputBytes(data[:m]) + w.rb.nsrc = m + w.buf = doAppend(&w.rb, w.buf, 0) + data = data[m:] + n += m + + // Write out complete prefix, save remainder. + // Note that lastBoundary looks back at most 31 runes. + i := lastBoundary(&w.rb.f, w.buf) + if i == -1 { + i = 0 + } + if i > 0 { + if _, err = w.w.Write(w.buf[:i]); err != nil { + break + } + bn := copy(w.buf, w.buf[i:]) + w.buf = w.buf[:bn] + } + } + return n, err +} + +// Close forces data that remains in the buffer to be written. +func (w *normWriter) Close() error { + if len(w.buf) > 0 { + _, err := w.w.Write(w.buf) + if err != nil { + return err + } + } + return nil +} + +// Writer returns a new writer that implements Write(b) +// by writing f(b) to w. The returned writer may use an +// internal buffer to maintain state across Write calls. +// Calling its Close method writes any buffered data to w. +func (f Form) Writer(w io.Writer) io.WriteCloser { + wr := &normWriter{rb: reorderBuffer{}, w: w} + wr.rb.init(f, nil) + return wr +} + +type normReader struct { + rb reorderBuffer + r io.Reader + inbuf []byte + outbuf []byte + bufStart int + lastBoundary int + err error +} + +// Read implements the standard read interface. +func (r *normReader) Read(p []byte) (int, error) { + for { + if r.lastBoundary-r.bufStart > 0 { + n := copy(p, r.outbuf[r.bufStart:r.lastBoundary]) + r.bufStart += n + if r.lastBoundary-r.bufStart > 0 { + return n, nil + } + return n, r.err + } + if r.err != nil { + return 0, r.err + } + outn := copy(r.outbuf, r.outbuf[r.lastBoundary:]) + r.outbuf = r.outbuf[0:outn] + r.bufStart = 0 + + n, err := r.r.Read(r.inbuf) + r.rb.src = inputBytes(r.inbuf[0:n]) + r.rb.nsrc, r.err = n, err + if n > 0 { + r.outbuf = doAppend(&r.rb, r.outbuf, 0) + } + if err == io.EOF { + r.lastBoundary = len(r.outbuf) + } else { + r.lastBoundary = lastBoundary(&r.rb.f, r.outbuf) + if r.lastBoundary == -1 { + r.lastBoundary = 0 + } + } + } +} + +// Reader returns a new reader that implements Read +// by reading data from r and returning f(data). +func (f Form) Reader(r io.Reader) io.Reader { + const chunk = 4000 + buf := make([]byte, chunk) + rr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf} + rr.rb.init(f, buf) + return rr +} diff --git a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go new file mode 100644 index 0000000..f5a0788 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go @@ -0,0 +1,7658 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.10 && !go1.13 +// +build go1.10,!go1.13 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "10.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [55]uint8{ + 0, 1, 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, + 84, 91, 103, 107, 118, 122, 129, 130, + 132, 202, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x186D + firstCCC = 0x2C9E + endMulti = 0x2F60 + firstLeadingCCC = 0x49AE + firstCCCZeroExcept = 0x4A78 + firstStarterWithNLead = 0x4A9F + lastDecomp = 0x4AA1 + maxDecomp = 0x8000 +) + +// decomps: 19105 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, + 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, + 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, + 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, + 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, + 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, + 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, + 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, + 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, + 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, + 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, + 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, + 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, + 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, + 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, + 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, + 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, + 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, + // Bytes 200 - 23f + 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, + 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, + 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, + 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, + 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, + 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, + 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, + 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, + 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, + 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, + 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, + 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, + 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, + 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, + 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, + 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, + 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, + 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, + 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, + 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, + 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, + 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, + 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, + 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, + 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, + 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, + 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, + 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, + 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, + // Bytes 300 - 33f + 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, + 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, + 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, + 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, + 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, + 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, + 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, + 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, + // Bytes 340 - 37f + 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, + 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, + 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, + 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, + 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, + 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, + 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, + 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, + // Bytes 380 - 3bf + 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, + 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, + 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, + 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, + 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, + 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, + 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, + 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, + // Bytes 3c0 - 3ff + 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, + 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, + 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, + 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, + 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, + 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, + 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, + 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, + // Bytes 400 - 43f + 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, + 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, + 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, + 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, + 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, + 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, + 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, + 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, + // Bytes 440 - 47f + 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, + 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, + 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, + 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, + 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, + 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, + 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, + 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, + // Bytes 480 - 4bf + 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, + 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, + 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, + 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, + 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, + 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, + 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, + 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, + // Bytes 4c0 - 4ff + 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, + 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, + 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, + 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, + 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, + 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, + 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, + 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, + // Bytes 500 - 53f + 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, + 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, + 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, + 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, + 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, + 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, + 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, + 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, + // Bytes 540 - 57f + 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, + 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, + 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, + 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, + 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, + 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, + 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, + 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, + // Bytes 580 - 5bf + 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, + 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, + 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, + 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, + 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, + 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, + 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, + 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, + // Bytes 5c0 - 5ff + 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, + 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, + 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, + 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, + 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, + 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, + 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, + 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, + // Bytes 600 - 63f + 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, + 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, + 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, + 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, + 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, + 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, + 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, + 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, + // Bytes 640 - 67f + 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, + 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, + 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, + 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, + 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, + 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, + 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, + 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, + // Bytes 680 - 6bf + 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, + 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, + 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, + 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, + 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, + 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, + 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, + 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, + // Bytes 6c0 - 6ff + 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, + 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, + 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, + 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, + 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, + 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, + 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, + 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, + // Bytes 700 - 73f + 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, + 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, + 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, + 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, + 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, + 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, + 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, + 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, + // Bytes 740 - 77f + 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, + 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, + 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, + 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, + 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, + 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, + 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, + 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, + // Bytes 780 - 7bf + 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, + 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, + 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, + 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, + 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, + 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, + 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, + 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, + // Bytes 7c0 - 7ff + 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, + 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, + 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, + 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, + 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, + 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, + 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, + 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, + // Bytes 800 - 83f + 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, + 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, + 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, + 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, + 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, + 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, + 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, + 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, + // Bytes 840 - 87f + 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, + 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, + 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, + 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, + 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, + 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, + 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, + 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, + // Bytes 880 - 8bf + 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, + 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, + 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, + 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, + 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, + 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, + 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, + 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, + // Bytes 8c0 - 8ff + 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, + 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, + 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, + 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, + 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, + 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, + 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, + 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, + // Bytes 900 - 93f + 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, + 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, + 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, + 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, + 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, + 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, + 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, + 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, + // Bytes 940 - 97f + 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, + 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, + 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, + 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, + 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, + 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, + 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, + 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, + // Bytes 980 - 9bf + 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, + 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, + 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, + 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, + 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, + 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, + 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, + 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, + // Bytes 9c0 - 9ff + 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, + 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, + 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, + 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, + 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, + 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, + 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, + 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, + // Bytes a00 - a3f + 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, + 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, + 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, + 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, + 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, + 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, + 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, + 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, + // Bytes a40 - a7f + 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, + 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, + 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, + 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, + 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, + 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, + 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, + 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, + // Bytes a80 - abf + 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, + 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, + 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, + 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, + 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, + 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, + 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, + 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, + // Bytes ac0 - aff + 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, + 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, + 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, + 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, + 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, + 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, + 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, + 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, + // Bytes b00 - b3f + 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, + 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, + 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, + 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, + 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, + 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, + 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, + 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, + // Bytes b40 - b7f + 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, + 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, + 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, + 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, + 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, + 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, + 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, + 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, + // Bytes b80 - bbf + 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, + 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, + 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, + 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, + 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, + 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, + 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, + 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, + // Bytes bc0 - bff + 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, + 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, + 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, + 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, + 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, + 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, + 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, + 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, + // Bytes c00 - c3f + 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, + 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, + 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, + 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, + 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, + 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, + 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, + 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, + // Bytes c40 - c7f + 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, + 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, + 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, + 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, + 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, + 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, + 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, + 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, + // Bytes c80 - cbf + 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, + 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, + 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, + 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, + 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, + 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, + 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, + 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, + // Bytes cc0 - cff + 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, + 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, + 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, + 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, + 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, + 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, + 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, + 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, + // Bytes d00 - d3f + 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, + 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, + 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, + 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, + 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, + 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, + 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, + 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, + // Bytes d40 - d7f + 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, + 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, + 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, + 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, + 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, + 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, + 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, + 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, + // Bytes d80 - dbf + 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, + 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, + 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, + 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, + 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, + 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, + 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, + 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, + // Bytes dc0 - dff + 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, + 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, + 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, + 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, + 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, + 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, + 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, + 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, + // Bytes e00 - e3f + 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, + 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, + 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, + 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, + 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, + 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, + 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, + 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, + // Bytes e40 - e7f + 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, + 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, + 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, + 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, + 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, + 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, + 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, + 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, + // Bytes e80 - ebf + 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, + 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, + 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, + 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, + 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, + 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, + 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, + 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, + // Bytes ec0 - eff + 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, + 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, + 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, + 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, + 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, + 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, + 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, + 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, + // Bytes f00 - f3f + 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, + 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, + 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, + 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, + 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, + 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, + 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, + 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, + // Bytes f40 - f7f + 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, + 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, + 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, + 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, + 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, + 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, + 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, + 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, + // Bytes f80 - fbf + 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, + 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, + 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, + 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, + 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, + 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, + 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, + 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, + // Bytes fc0 - fff + 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, + 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, + 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, + 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, + 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, + 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, + 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, + 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, + // Bytes 1000 - 103f + 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, + 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, + 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, + 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, + 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, + 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, + 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, + 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, + // Bytes 1040 - 107f + 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, + 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, + 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, + 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, + 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, + 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, + 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, + 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, + // Bytes 1080 - 10bf + 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, + 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, + 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, + 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, + 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, + 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, + 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, + 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, + // Bytes 10c0 - 10ff + 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, + 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, + 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, + 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, + 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, + 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, + 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, + 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, + // Bytes 1100 - 113f + 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, + 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, + 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, + 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, + 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, + 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, + 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, + 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, + // Bytes 1140 - 117f + 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, + 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, + 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, + 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, + 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, + 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, + 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, + 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, + // Bytes 1180 - 11bf + 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, + 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, + 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, + 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, + 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, + 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, + 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, + 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, + // Bytes 11c0 - 11ff + 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, + 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, + 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, + 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, + 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, + 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, + 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, + 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, + // Bytes 1200 - 123f + 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, + 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, + 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, + 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, + 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, + 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, + 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, + 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, + // Bytes 1240 - 127f + 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, + 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, + 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, + 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, + 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, + 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, + 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, + 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, + // Bytes 1280 - 12bf + 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, + 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, + 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, + 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, + 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, + 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, + 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, + 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, + // Bytes 12c0 - 12ff + 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, + 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, + 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, + 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, + 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, + 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, + 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, + 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, + // Bytes 1300 - 133f + 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, + 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, + 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, + 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, + 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, + 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, + 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, + 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, + // Bytes 1340 - 137f + 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, + 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, + 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, + 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, + 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, + 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, + 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, + 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, + // Bytes 1380 - 13bf + 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, + 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, + 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, + 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, + 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, + 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, + 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, + 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, + // Bytes 13c0 - 13ff + 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, + 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, + 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, + 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, + 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, + 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, + 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, + 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, + // Bytes 1400 - 143f + 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, + 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, + 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, + 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, + 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, + 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, + 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, + 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, + // Bytes 1440 - 147f + 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, + 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, + 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, + 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, + 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, + 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, + 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, + 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, + // Bytes 1480 - 14bf + 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, + 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, + 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, + 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, + 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, + 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, + 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, + 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, + // Bytes 14c0 - 14ff + 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, + 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, + 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, + 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, + 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, + 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, + 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, + 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, + // Bytes 1500 - 153f + 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, + 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, + 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, + 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, + 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, + 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, + 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, + 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, + // Bytes 1540 - 157f + 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, + 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, + 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, + 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, + 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, + 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, + 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, + 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, + // Bytes 1580 - 15bf + 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, + 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, + 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, + 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, + 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, + 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, + 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, + 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, + // Bytes 15c0 - 15ff + 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, + 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, + 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, + 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, + 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, + 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, + 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, + 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, + // Bytes 1600 - 163f + 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, + 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, + 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, + 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, + 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, + 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, + 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, + 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, + // Bytes 1640 - 167f + 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, + 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, + 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, + 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, + 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, + 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, + 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, + 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, + // Bytes 1680 - 16bf + 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, + 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, + 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, + 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, + 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, + 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, + 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, + 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, + // Bytes 16c0 - 16ff + 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, + 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, + 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, + 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, + 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, + 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, + 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, + 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, + // Bytes 1700 - 173f + 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, + 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, + 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, + 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, + 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, + 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, + 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, + 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, + // Bytes 1740 - 177f + 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, + 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, + 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, + 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, + 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, + 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, + 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, + 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, + // Bytes 1780 - 17bf + 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, + 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, + 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, + 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, + 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, + 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, + 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, + 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, + // Bytes 17c0 - 17ff + 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, + 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, + 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, + 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, + 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, + 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, + 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, + 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, + // Bytes 1800 - 183f + 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, + 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, + 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, + 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, + 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, + 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, + 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, + 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, + // Bytes 1840 - 187f + 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, + 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, + 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, + 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, + 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, + 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, + 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, + 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, + 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, + 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, + 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, + 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, + 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, + 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, + 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, + 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, + 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, + 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, + 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, + 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, + 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, + 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, + // Bytes 1900 - 193f + 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, + 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, + 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, + 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, + 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, + 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, + 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, + 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, + // Bytes 1940 - 197f + 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, + 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, + 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, + 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, + 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, + 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, + 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, + 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, + 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, + 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, + 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, + 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, + 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, + 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, + 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, + 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, + 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, + 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, + 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, + 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, + 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, + 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, + 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, + 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, + 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, + 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, + 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, + 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, + 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, + 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, + 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, + 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, + 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, + 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, + 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, + 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, + // Bytes 1a80 - 1abf + 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, + 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, + 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, + 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, + 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, + 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, + 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, + 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, + // Bytes 1ac0 - 1aff + 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, + 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, + 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, + 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, + 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, + 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, + 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, + 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, + // Bytes 1b00 - 1b3f + 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, + 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, + 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, + 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, + 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, + 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, + 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, + 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, + // Bytes 1b40 - 1b7f + 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, + 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, + 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, + 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, + 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, + 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, + 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, + 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, + // Bytes 1b80 - 1bbf + 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, + 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, + 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, + 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, + 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, + 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, + 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, + 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, + // Bytes 1bc0 - 1bff + 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, + 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, + 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, + 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, + 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, + 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, + 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, + 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, + // Bytes 1c00 - 1c3f + 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, + 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, + 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, + 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, + 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, + 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, + 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, + 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, + // Bytes 1c40 - 1c7f + 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, + 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, + 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, + 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, + 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, + 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, + 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, + 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, + // Bytes 1c80 - 1cbf + 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, + 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, + 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, + 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, + 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, + 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, + 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, + 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, + // Bytes 1cc0 - 1cff + 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, + 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, + 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, + 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, + 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, + 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, + 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, + 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, + // Bytes 1d00 - 1d3f + 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, + 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, + 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, + 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, + 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, + 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, + 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, + 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, + // Bytes 1d40 - 1d7f + 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, + 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, + 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, + 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, + 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, + 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, + 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, + 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, + // Bytes 1d80 - 1dbf + 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, + 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, + 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, + 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, + 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, + 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, + 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, + 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, + // Bytes 1dc0 - 1dff + 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, + 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, + 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, + 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, + 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, + 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, + 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, + 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, + // Bytes 1e00 - 1e3f + 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, + 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, + 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, + 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, + 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, + 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, + 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, + 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, + // Bytes 1e40 - 1e7f + 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, + 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, + 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, + 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, + 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, + 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, + 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, + 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1e80 - 1ebf + 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, + 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, + 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, + 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, + 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, + 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, + 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, + 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, + // Bytes 1ec0 - 1eff + 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, + 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, + 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, + 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, + 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, + 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, + 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, + 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, + // Bytes 1f00 - 1f3f + 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, + 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, + 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, + 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, + 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, + 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, + 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, + 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, + // Bytes 1f40 - 1f7f + 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, + 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, + 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, + 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, + 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, + 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, + 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, + 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, + // Bytes 1f80 - 1fbf + 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, + 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, + 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, + 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, + 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, + 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, + 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, + 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, + // Bytes 1fc0 - 1fff + 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, + 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, + 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, + 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, + 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, + 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, + 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, + 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, + // Bytes 2000 - 203f + 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, + 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, + 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, + 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, + 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, + 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, + 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, + 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, + // Bytes 2040 - 207f + 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, + 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, + 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, + 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, + // Bytes 2080 - 20bf + 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, + 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, + 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, + 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, + // Bytes 20c0 - 20ff + 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, + 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, + 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, + 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, + 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, + 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, + 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, + 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, + // Bytes 2100 - 213f + 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, + 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, + 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, + 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, + 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, + 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, + 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, + 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, + // Bytes 2140 - 217f + 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, + 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, + 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, + 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, + 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, + 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, + 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, + 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, + // Bytes 2180 - 21bf + 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, + 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, + // Bytes 21c0 - 21ff + 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, + // Bytes 2200 - 223f + 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, + // Bytes 2240 - 227f + 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, + // Bytes 2280 - 22bf + 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, + 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, + 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + // Bytes 22c0 - 22ff + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, + 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, + 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, + 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, + 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, + 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, + 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, + // Bytes 2300 - 233f + 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, + 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, + 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, + // Bytes 2340 - 237f + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, + 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, + 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, + // Bytes 2380 - 23bf + 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, + // Bytes 23c0 - 23ff + 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, + 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, + 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, + 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, + 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, + 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, + // Bytes 2400 - 243f + 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, + 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, + 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, + 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, + 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, + // Bytes 2440 - 247f + 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, + 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, + // Bytes 2480 - 24bf + 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, + 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, + 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, + // Bytes 24c0 - 24ff + 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, + 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, + // Bytes 2500 - 253f + 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, + // Bytes 2540 - 257f + 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, + 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, + 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, + // Bytes 2580 - 25bf + 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, + 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, + // Bytes 25c0 - 25ff + 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, + // Bytes 2600 - 263f + 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, + 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, + 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, + 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, + 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, + // Bytes 2640 - 267f + 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, + 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, + 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, + 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, + // Bytes 2680 - 26bf + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, + 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, + 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, + 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, + 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, + 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, + // Bytes 26c0 - 26ff + 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, + 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, + 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, + 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, + 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, + 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, + 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, + // Bytes 2700 - 273f + 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, + 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, + 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, + 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, + 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, + // Bytes 2740 - 277f + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, + // Bytes 2780 - 27bf + 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, + 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, + 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, + // Bytes 27c0 - 27ff + 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, + 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, + 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, + 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, + 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, + 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, + 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, + // Bytes 2800 - 283f + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, + 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, + 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, + // Bytes 2840 - 287f + 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, + 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, + // Bytes 2880 - 28bf + 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, + 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, + 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, + 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, + // Bytes 28c0 - 28ff + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, + 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, + 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, + 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, + // Bytes 2900 - 293f + 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, + 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, + // Bytes 2940 - 297f + 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, + 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, + 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, + // Bytes 2980 - 29bf + 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, + 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, + // Bytes 29c0 - 29ff + 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, + 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, + 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, + 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2a40 - 2a7f + 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, + // Bytes 2a80 - 2abf + 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, + 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, + 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, + 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, + 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, + 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, + // Bytes 2b00 - 2b3f + 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, + // Bytes 2b40 - 2b7f + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, + 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, + // Bytes 2b80 - 2bbf + 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, + 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, + 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, + // Bytes 2bc0 - 2bff + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2c00 - 2c3f + 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, + 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, + 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, + 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, + 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, + 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, + // Bytes 2c40 - 2c7f + 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, + 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, + // Bytes 2c80 - 2cbf + 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, + 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, + 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2cc0 - 2cff + 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, + 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2d00 - 2d3f + 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, + 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, + 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, + 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + // Bytes 2d40 - 2d7f + 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, + // Bytes 2d80 - 2dbf + 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, + 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, + 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, + 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, + 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, + 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, + 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, + 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, + // Bytes 2dc0 - 2dff + 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, + 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, + 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, + 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, + 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, + 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, + 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, + // Bytes 2e00 - 2e3f + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e40 - 2e7f + 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, + 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e80 - 2ebf + 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, + 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, + 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, + 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, + 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + // Bytes 2ec0 - 2eff + 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, + 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, + 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, + 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, + 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, + 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, + // Bytes 2f00 - 2f3f + 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, + 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, + 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, + 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, + // Bytes 2f40 - 2f7f + 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, + 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, + 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, + 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, + 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, + 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, + // Bytes 2f80 - 2fbf + 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, + 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, + 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, + 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, + 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, + 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, + 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, + 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, + // Bytes 2fc0 - 2fff + 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, + 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, + 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, + 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, + 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, + 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, + 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, + 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, + // Bytes 3000 - 303f + 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, + 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, + 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, + 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, + 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, + 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, + 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, + 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, + // Bytes 3040 - 307f + 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, + 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, + 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, + 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, + 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, + 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, + 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, + 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, + // Bytes 3080 - 30bf + 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, + 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, + 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, + 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, + 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, + 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, + 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, + 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, + // Bytes 30c0 - 30ff + 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, + 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, + 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, + 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, + 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, + 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, + 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, + 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, + // Bytes 3100 - 313f + 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, + 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, + 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, + 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, + 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, + 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, + 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, + 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, + // Bytes 3140 - 317f + 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, + 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, + 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, + 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, + 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, + 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, + 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, + 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, + // Bytes 3180 - 31bf + 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, + 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, + 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, + 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, + 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, + 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, + 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, + 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, + // Bytes 31c0 - 31ff + 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, + 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, + 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, + 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, + 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, + 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, + 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, + 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, + // Bytes 3200 - 323f + 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, + 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, + 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, + 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, + 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, + 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, + 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, + 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, + // Bytes 3240 - 327f + 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, + 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, + 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, + 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, + 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, + 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, + 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, + 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, + // Bytes 3280 - 32bf + 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, + 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, + 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, + 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, + 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, + 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, + 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, + 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, + // Bytes 32c0 - 32ff + 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, + 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, + 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, + 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, + 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, + 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, + 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, + 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, + // Bytes 3300 - 333f + 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, + 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, + 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, + 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, + 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, + 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, + 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, + 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, + // Bytes 3340 - 337f + 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, + 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, + 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, + 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, + 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, + 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, + 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, + 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3380 - 33bf + 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, + 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, + 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, + 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, + 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, + 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, + 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, + 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, + // Bytes 33c0 - 33ff + 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, + 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, + 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, + 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, + 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, + 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, + 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, + 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, + // Bytes 3400 - 343f + 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, + 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, + 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, + 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, + 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, + 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, + 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, + 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, + // Bytes 3440 - 347f + 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, + 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, + 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, + 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, + 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, + 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, + 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, + 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, + // Bytes 3480 - 34bf + 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, + 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, + 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, + 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, + 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, + 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, + 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, + 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, + // Bytes 34c0 - 34ff + 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, + 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, + 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, + 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, + 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, + 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, + 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, + 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, + // Bytes 3500 - 353f + 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, + 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, + 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, + 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, + 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, + 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, + 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, + 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, + // Bytes 3540 - 357f + 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, + 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, + 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, + 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, + 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, + 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, + 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, + 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, + // Bytes 3580 - 35bf + 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, + 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, + 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, + 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, + 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, + 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, + 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, + 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, + // Bytes 35c0 - 35ff + 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, + 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, + 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, + 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, + 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, + // Bytes 3600 - 363f + 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, + 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, + // Bytes 3640 - 367f + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, + // Bytes 3680 - 36bf + 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, + 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, + 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, + // Bytes 36c0 - 36ff + 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, + 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, + 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, + 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, + 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, + 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, + 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, + // Bytes 3700 - 373f + 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, + 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3740 - 377f + 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, + 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, + 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, + 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, + 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, + // Bytes 3780 - 37bf + 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, + // Bytes 37c0 - 37ff + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, + 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, + 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, + 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, + 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3800 - 383f + 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, + 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, + 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, + 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, + 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, + 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, + 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, + 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, + // Bytes 3840 - 387f + 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, + 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, + 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, + 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, + 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, + 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + // Bytes 3880 - 38bf + 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, + 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, + 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, + 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, + 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, + 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, + // Bytes 38c0 - 38ff + 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, + 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, + 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, + 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, + // Bytes 3900 - 393f + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, + 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, + 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, + 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, + // Bytes 3940 - 397f + 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, + 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, + 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, + 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, + 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, + 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, + // Bytes 3980 - 39bf + 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, + 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, + 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, + 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, + 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, + 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, + 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, + 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, + // Bytes 39c0 - 39ff + 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, + 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, + 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, + 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + // Bytes 3a00 - 3a3f + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, + 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, + 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, + 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + // Bytes 3a40 - 3a7f + 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, + 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, + 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, + 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, + 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, + 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, + 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, + // Bytes 3a80 - 3abf + 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, + 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, + 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, + 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, + // Bytes 3ac0 - 3aff + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, + 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, + 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, + 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, + 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, + // Bytes 3b00 - 3b3f + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, + 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, + 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, + 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, + // Bytes 3b40 - 3b7f + 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, + 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, + 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, + 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, + // Bytes 3b80 - 3bbf + 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, + 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, + 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, + 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, + 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, + 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, + 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, + 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, + // Bytes 3bc0 - 3bff + 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, + 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3c00 - 3c3f + 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + // Bytes 3c40 - 3c7f + 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + // Bytes 3c80 - 3cbf + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, + // Bytes 3cc0 - 3cff + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, + 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + // Bytes 3d00 - 3d3f + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3d40 - 3d7f + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + // Bytes 3d80 - 3dbf + 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + // Bytes 3dc0 - 3dff + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + // Bytes 3e00 - 3e3f + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3e40 - 3e7f + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + // Bytes 3e80 - 3ebf + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + // Bytes 3ec0 - 3eff + 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, + 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, + // Bytes 3f00 - 3f3f + 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f40 - 3f7f + 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f80 - 3fbf + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, + // Bytes 3fc0 - 3fff + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4000 - 403f + 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4040 - 407f + 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4080 - 40bf + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 40c0 - 40ff + 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + // Bytes 4100 - 413f + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + // Bytes 4140 - 417f + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, + // Bytes 4180 - 41bf + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + // Bytes 41c0 - 41ff + 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + // Bytes 4200 - 423f + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, + // Bytes 4240 - 427f + 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, + 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, + 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, + 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, + 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, + 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, + 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, + 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, + // Bytes 4280 - 42bf + 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, + 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, + 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, + 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, + 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, + 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, + 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, + 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, + // Bytes 42c0 - 42ff + 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, + 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, + 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, + 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, + 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, + 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, + 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, + // Bytes 4300 - 433f + 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, + 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, + 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, + // Bytes 4340 - 437f + 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, + 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, + 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, + // Bytes 4380 - 43bf + 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, + 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, + // Bytes 43c0 - 43ff + 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, + 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, + 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, + // Bytes 4400 - 443f + 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, + 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, + 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, + 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, + 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, + 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, + 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, + // Bytes 4440 - 447f + 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, + 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, + 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, + 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, + 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, + 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, + 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, + // Bytes 4480 - 44bf + 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, + 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, + 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, + 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, + 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, + // Bytes 44c0 - 44ff + 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, + 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, + 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, + 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, + 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, + 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, + // Bytes 4500 - 453f + 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, + 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, + // Bytes 4540 - 457f + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, + // Bytes 4580 - 45bf + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, + // Bytes 45c0 - 45ff + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, + 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, + 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, + // Bytes 4600 - 463f + 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, + 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, + 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, + 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + // Bytes 4640 - 467f + 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, + 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, + 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, + 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + // Bytes 4680 - 46bf + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, + 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, + 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, + 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, + 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, + 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, + 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, + 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, + // Bytes 46c0 - 46ff + 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, + 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, + 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, + 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, + 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, + 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, + 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, + 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, + // Bytes 4700 - 473f + 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, + 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, + 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, + 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, + 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, + 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, + 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, + 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, + // Bytes 4740 - 477f + 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, + 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, + 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, + 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, + 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, + 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, + 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, + 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, + // Bytes 4780 - 47bf + 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, + 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, + 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, + 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, + 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, + 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, + // Bytes 47c0 - 47ff + 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, + // Bytes 4800 - 483f + 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, + 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, + 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, + 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, + // Bytes 4840 - 487f + 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, + 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, + 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, + 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, + 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, + // Bytes 4880 - 48bf + 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + // Bytes 48c0 - 48ff + 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + // Bytes 4900 - 493f + 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + // Bytes 4940 - 497f + 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + // Bytes 4980 - 49bf + 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, + 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, + 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, + // Bytes 49c0 - 49ff + 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, + // Bytes 4a00 - 4a3f + 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, + // Bytes 4a40 - 4a7f + 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, + 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, + 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, + 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, + // Bytes 4a80 - 4abf + 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, + 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, + 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, + 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10442 bytes (10.20 KiB). Checksum: 4ba400a9d8208e03. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 45: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 45 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 47 blocks, 3008 entries, 6016 bytes +// The third block is the zero block. +var nfcValues = [3008]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, + // Block 0x5, offset 0x140 + 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35a1, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, + 0x2c6: 0xa000, 0x2c7: 0x3709, + 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3733, 0x302: 0x37b7, + 0x310: 0x370f, 0x311: 0x3793, + 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, + 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, + 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, + 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, + 0x338: 0x3787, 0x339: 0x380b, + // Block 0xd, offset 0x340 + 0x351: 0x812d, + 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, + 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, + 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, + 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, + 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, + 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, + 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, + 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, + 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, + 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x812d, + 0x3b0: 0x811e, + // Block 0xf, offset 0x3c0 + 0x3c5: 0xa000, + 0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000, + 0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000, + 0x3d2: 0x2d4e, + 0x3f4: 0x8102, 0x3f5: 0x9900, + 0x3fa: 0xa000, 0x3fb: 0x2d56, + 0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000, + // Block 0x10, offset 0x400 + 0x400: 0x8132, 0x401: 0x8132, 0x402: 0x812d, 0x403: 0x8132, 0x404: 0x8132, 0x405: 0x8132, + 0x406: 0x8132, 0x407: 0x8132, 0x408: 0x8132, 0x409: 0x8132, 0x40a: 0x812d, 0x40b: 0x8132, + 0x40c: 0x8132, 0x40d: 0x8135, 0x40e: 0x812a, 0x40f: 0x812d, 0x410: 0x8129, 0x411: 0x8132, + 0x412: 0x8132, 0x413: 0x8132, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, + 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, + 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x422: 0x8132, 0x423: 0x8132, + 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x8132, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x8132, + 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x8132, 0x42e: 0x8132, 0x42f: 0x8132, + 0x430: 0x8132, 0x431: 0x8132, 0x432: 0x8132, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, + 0x436: 0x8133, 0x437: 0x8131, 0x438: 0x8131, 0x439: 0x812d, 0x43b: 0x8132, + 0x43c: 0x8134, 0x43d: 0x812d, 0x43e: 0x8132, 0x43f: 0x812d, + // Block 0x11, offset 0x440 + 0x440: 0x2f97, 0x441: 0x32a3, 0x442: 0x2fa1, 0x443: 0x32ad, 0x444: 0x2fa6, 0x445: 0x32b2, + 0x446: 0x2fab, 0x447: 0x32b7, 0x448: 0x38cc, 0x449: 0x3a5b, 0x44a: 0x2fc4, 0x44b: 0x32d0, + 0x44c: 0x2fce, 0x44d: 0x32da, 0x44e: 0x2fdd, 0x44f: 0x32e9, 0x450: 0x2fd3, 0x451: 0x32df, + 0x452: 0x2fd8, 0x453: 0x32e4, 0x454: 0x38ef, 0x455: 0x3a7e, 0x456: 0x38f6, 0x457: 0x3a85, + 0x458: 0x3019, 0x459: 0x3325, 0x45a: 0x301e, 0x45b: 0x332a, 0x45c: 0x3904, 0x45d: 0x3a93, + 0x45e: 0x3023, 0x45f: 0x332f, 0x460: 0x3032, 0x461: 0x333e, 0x462: 0x3050, 0x463: 0x335c, + 0x464: 0x305f, 0x465: 0x336b, 0x466: 0x3055, 0x467: 0x3361, 0x468: 0x3064, 0x469: 0x3370, + 0x46a: 0x3069, 0x46b: 0x3375, 0x46c: 0x30af, 0x46d: 0x33bb, 0x46e: 0x390b, 0x46f: 0x3a9a, + 0x470: 0x30b9, 0x471: 0x33ca, 0x472: 0x30c3, 0x473: 0x33d4, 0x474: 0x30cd, 0x475: 0x33de, + 0x476: 0x46c4, 0x477: 0x4755, 0x478: 0x3912, 0x479: 0x3aa1, 0x47a: 0x30e6, 0x47b: 0x33f7, + 0x47c: 0x30e1, 0x47d: 0x33f2, 0x47e: 0x30eb, 0x47f: 0x33fc, + // Block 0x12, offset 0x480 + 0x480: 0x30f0, 0x481: 0x3401, 0x482: 0x30f5, 0x483: 0x3406, 0x484: 0x3109, 0x485: 0x341a, + 0x486: 0x3113, 0x487: 0x3424, 0x488: 0x3122, 0x489: 0x3433, 0x48a: 0x311d, 0x48b: 0x342e, + 0x48c: 0x3935, 0x48d: 0x3ac4, 0x48e: 0x3943, 0x48f: 0x3ad2, 0x490: 0x394a, 0x491: 0x3ad9, + 0x492: 0x3951, 0x493: 0x3ae0, 0x494: 0x314f, 0x495: 0x3460, 0x496: 0x3154, 0x497: 0x3465, + 0x498: 0x315e, 0x499: 0x346f, 0x49a: 0x46f1, 0x49b: 0x4782, 0x49c: 0x3997, 0x49d: 0x3b26, + 0x49e: 0x3177, 0x49f: 0x3488, 0x4a0: 0x3181, 0x4a1: 0x3492, 0x4a2: 0x4700, 0x4a3: 0x4791, + 0x4a4: 0x399e, 0x4a5: 0x3b2d, 0x4a6: 0x39a5, 0x4a7: 0x3b34, 0x4a8: 0x39ac, 0x4a9: 0x3b3b, + 0x4aa: 0x3190, 0x4ab: 0x34a1, 0x4ac: 0x319a, 0x4ad: 0x34b0, 0x4ae: 0x31ae, 0x4af: 0x34c4, + 0x4b0: 0x31a9, 0x4b1: 0x34bf, 0x4b2: 0x31ea, 0x4b3: 0x3500, 0x4b4: 0x31f9, 0x4b5: 0x350f, + 0x4b6: 0x31f4, 0x4b7: 0x350a, 0x4b8: 0x39b3, 0x4b9: 0x3b42, 0x4ba: 0x39ba, 0x4bb: 0x3b49, + 0x4bc: 0x31fe, 0x4bd: 0x3514, 0x4be: 0x3203, 0x4bf: 0x3519, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x3208, 0x4c1: 0x351e, 0x4c2: 0x320d, 0x4c3: 0x3523, 0x4c4: 0x321c, 0x4c5: 0x3532, + 0x4c6: 0x3217, 0x4c7: 0x352d, 0x4c8: 0x3221, 0x4c9: 0x353c, 0x4ca: 0x3226, 0x4cb: 0x3541, + 0x4cc: 0x322b, 0x4cd: 0x3546, 0x4ce: 0x3249, 0x4cf: 0x3564, 0x4d0: 0x3262, 0x4d1: 0x3582, + 0x4d2: 0x3271, 0x4d3: 0x3591, 0x4d4: 0x3276, 0x4d5: 0x3596, 0x4d6: 0x337a, 0x4d7: 0x34a6, + 0x4d8: 0x3537, 0x4d9: 0x3573, 0x4db: 0x35d1, + 0x4e0: 0x46a1, 0x4e1: 0x4732, 0x4e2: 0x2f83, 0x4e3: 0x328f, + 0x4e4: 0x3878, 0x4e5: 0x3a07, 0x4e6: 0x3871, 0x4e7: 0x3a00, 0x4e8: 0x3886, 0x4e9: 0x3a15, + 0x4ea: 0x387f, 0x4eb: 0x3a0e, 0x4ec: 0x38be, 0x4ed: 0x3a4d, 0x4ee: 0x3894, 0x4ef: 0x3a23, + 0x4f0: 0x388d, 0x4f1: 0x3a1c, 0x4f2: 0x38a2, 0x4f3: 0x3a31, 0x4f4: 0x389b, 0x4f5: 0x3a2a, + 0x4f6: 0x38c5, 0x4f7: 0x3a54, 0x4f8: 0x46b5, 0x4f9: 0x4746, 0x4fa: 0x3000, 0x4fb: 0x330c, + 0x4fc: 0x2fec, 0x4fd: 0x32f8, 0x4fe: 0x38da, 0x4ff: 0x3a69, + // Block 0x14, offset 0x500 + 0x500: 0x38d3, 0x501: 0x3a62, 0x502: 0x38e8, 0x503: 0x3a77, 0x504: 0x38e1, 0x505: 0x3a70, + 0x506: 0x38fd, 0x507: 0x3a8c, 0x508: 0x3091, 0x509: 0x339d, 0x50a: 0x30a5, 0x50b: 0x33b1, + 0x50c: 0x46e7, 0x50d: 0x4778, 0x50e: 0x3136, 0x50f: 0x3447, 0x510: 0x3920, 0x511: 0x3aaf, + 0x512: 0x3919, 0x513: 0x3aa8, 0x514: 0x392e, 0x515: 0x3abd, 0x516: 0x3927, 0x517: 0x3ab6, + 0x518: 0x3989, 0x519: 0x3b18, 0x51a: 0x396d, 0x51b: 0x3afc, 0x51c: 0x3966, 0x51d: 0x3af5, + 0x51e: 0x397b, 0x51f: 0x3b0a, 0x520: 0x3974, 0x521: 0x3b03, 0x522: 0x3982, 0x523: 0x3b11, + 0x524: 0x31e5, 0x525: 0x34fb, 0x526: 0x31c7, 0x527: 0x34dd, 0x528: 0x39e4, 0x529: 0x3b73, + 0x52a: 0x39dd, 0x52b: 0x3b6c, 0x52c: 0x39f2, 0x52d: 0x3b81, 0x52e: 0x39eb, 0x52f: 0x3b7a, + 0x530: 0x39f9, 0x531: 0x3b88, 0x532: 0x3230, 0x533: 0x354b, 0x534: 0x3258, 0x535: 0x3578, + 0x536: 0x3253, 0x537: 0x356e, 0x538: 0x323f, 0x539: 0x355a, + // Block 0x15, offset 0x540 + 0x540: 0x4804, 0x541: 0x480a, 0x542: 0x491e, 0x543: 0x4936, 0x544: 0x4926, 0x545: 0x493e, + 0x546: 0x492e, 0x547: 0x4946, 0x548: 0x47aa, 0x549: 0x47b0, 0x54a: 0x488e, 0x54b: 0x48a6, + 0x54c: 0x4896, 0x54d: 0x48ae, 0x54e: 0x489e, 0x54f: 0x48b6, 0x550: 0x4816, 0x551: 0x481c, + 0x552: 0x3db8, 0x553: 0x3dc8, 0x554: 0x3dc0, 0x555: 0x3dd0, + 0x558: 0x47b6, 0x559: 0x47bc, 0x55a: 0x3ce8, 0x55b: 0x3cf8, 0x55c: 0x3cf0, 0x55d: 0x3d00, + 0x560: 0x482e, 0x561: 0x4834, 0x562: 0x494e, 0x563: 0x4966, + 0x564: 0x4956, 0x565: 0x496e, 0x566: 0x495e, 0x567: 0x4976, 0x568: 0x47c2, 0x569: 0x47c8, + 0x56a: 0x48be, 0x56b: 0x48d6, 0x56c: 0x48c6, 0x56d: 0x48de, 0x56e: 0x48ce, 0x56f: 0x48e6, + 0x570: 0x4846, 0x571: 0x484c, 0x572: 0x3e18, 0x573: 0x3e30, 0x574: 0x3e20, 0x575: 0x3e38, + 0x576: 0x3e28, 0x577: 0x3e40, 0x578: 0x47ce, 0x579: 0x47d4, 0x57a: 0x3d18, 0x57b: 0x3d30, + 0x57c: 0x3d20, 0x57d: 0x3d38, 0x57e: 0x3d28, 0x57f: 0x3d40, + // Block 0x16, offset 0x580 + 0x580: 0x4852, 0x581: 0x4858, 0x582: 0x3e48, 0x583: 0x3e58, 0x584: 0x3e50, 0x585: 0x3e60, + 0x588: 0x47da, 0x589: 0x47e0, 0x58a: 0x3d48, 0x58b: 0x3d58, + 0x58c: 0x3d50, 0x58d: 0x3d60, 0x590: 0x4864, 0x591: 0x486a, + 0x592: 0x3e80, 0x593: 0x3e98, 0x594: 0x3e88, 0x595: 0x3ea0, 0x596: 0x3e90, 0x597: 0x3ea8, + 0x599: 0x47e6, 0x59b: 0x3d68, 0x59d: 0x3d70, + 0x59f: 0x3d78, 0x5a0: 0x487c, 0x5a1: 0x4882, 0x5a2: 0x497e, 0x5a3: 0x4996, + 0x5a4: 0x4986, 0x5a5: 0x499e, 0x5a6: 0x498e, 0x5a7: 0x49a6, 0x5a8: 0x47ec, 0x5a9: 0x47f2, + 0x5aa: 0x48ee, 0x5ab: 0x4906, 0x5ac: 0x48f6, 0x5ad: 0x490e, 0x5ae: 0x48fe, 0x5af: 0x4916, + 0x5b0: 0x47f8, 0x5b1: 0x431e, 0x5b2: 0x3691, 0x5b3: 0x4324, 0x5b4: 0x4822, 0x5b5: 0x432a, + 0x5b6: 0x36a3, 0x5b7: 0x4330, 0x5b8: 0x36c1, 0x5b9: 0x4336, 0x5ba: 0x36d9, 0x5bb: 0x433c, + 0x5bc: 0x4870, 0x5bd: 0x4342, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x3da0, 0x5c1: 0x3da8, 0x5c2: 0x4184, 0x5c3: 0x41a2, 0x5c4: 0x418e, 0x5c5: 0x41ac, + 0x5c6: 0x4198, 0x5c7: 0x41b6, 0x5c8: 0x3cd8, 0x5c9: 0x3ce0, 0x5ca: 0x40d0, 0x5cb: 0x40ee, + 0x5cc: 0x40da, 0x5cd: 0x40f8, 0x5ce: 0x40e4, 0x5cf: 0x4102, 0x5d0: 0x3de8, 0x5d1: 0x3df0, + 0x5d2: 0x41c0, 0x5d3: 0x41de, 0x5d4: 0x41ca, 0x5d5: 0x41e8, 0x5d6: 0x41d4, 0x5d7: 0x41f2, + 0x5d8: 0x3d08, 0x5d9: 0x3d10, 0x5da: 0x410c, 0x5db: 0x412a, 0x5dc: 0x4116, 0x5dd: 0x4134, + 0x5de: 0x4120, 0x5df: 0x413e, 0x5e0: 0x3ec0, 0x5e1: 0x3ec8, 0x5e2: 0x41fc, 0x5e3: 0x421a, + 0x5e4: 0x4206, 0x5e5: 0x4224, 0x5e6: 0x4210, 0x5e7: 0x422e, 0x5e8: 0x3d80, 0x5e9: 0x3d88, + 0x5ea: 0x4148, 0x5eb: 0x4166, 0x5ec: 0x4152, 0x5ed: 0x4170, 0x5ee: 0x415c, 0x5ef: 0x417a, + 0x5f0: 0x3685, 0x5f1: 0x367f, 0x5f2: 0x3d90, 0x5f3: 0x368b, 0x5f4: 0x3d98, + 0x5f6: 0x4810, 0x5f7: 0x3db0, 0x5f8: 0x35f5, 0x5f9: 0x35ef, 0x5fa: 0x35e3, 0x5fb: 0x42ee, + 0x5fc: 0x35fb, 0x5fd: 0x8100, 0x5fe: 0x01d3, 0x5ff: 0xa100, + // Block 0x18, offset 0x600 + 0x600: 0x8100, 0x601: 0x35a7, 0x602: 0x3dd8, 0x603: 0x369d, 0x604: 0x3de0, + 0x606: 0x483a, 0x607: 0x3df8, 0x608: 0x3601, 0x609: 0x42f4, 0x60a: 0x360d, 0x60b: 0x42fa, + 0x60c: 0x3619, 0x60d: 0x3b8f, 0x60e: 0x3b96, 0x60f: 0x3b9d, 0x610: 0x36b5, 0x611: 0x36af, + 0x612: 0x3e00, 0x613: 0x44e4, 0x616: 0x36bb, 0x617: 0x3e10, + 0x618: 0x3631, 0x619: 0x362b, 0x61a: 0x361f, 0x61b: 0x4300, 0x61d: 0x3ba4, + 0x61e: 0x3bab, 0x61f: 0x3bb2, 0x620: 0x36eb, 0x621: 0x36e5, 0x622: 0x3e68, 0x623: 0x44ec, + 0x624: 0x36cd, 0x625: 0x36d3, 0x626: 0x36f1, 0x627: 0x3e78, 0x628: 0x3661, 0x629: 0x365b, + 0x62a: 0x364f, 0x62b: 0x430c, 0x62c: 0x3649, 0x62d: 0x359b, 0x62e: 0x42e8, 0x62f: 0x0081, + 0x632: 0x3eb0, 0x633: 0x36f7, 0x634: 0x3eb8, + 0x636: 0x4888, 0x637: 0x3ed0, 0x638: 0x363d, 0x639: 0x4306, 0x63a: 0x366d, 0x63b: 0x4318, + 0x63c: 0x3679, 0x63d: 0x4256, 0x63e: 0xa100, + // Block 0x19, offset 0x640 + 0x641: 0x3c06, 0x643: 0xa000, 0x644: 0x3c0d, 0x645: 0xa000, + 0x647: 0x3c14, 0x648: 0xa000, 0x649: 0x3c1b, + 0x64d: 0xa000, + 0x660: 0x2f65, 0x661: 0xa000, 0x662: 0x3c29, + 0x664: 0xa000, 0x665: 0xa000, + 0x66d: 0x3c22, 0x66e: 0x2f60, 0x66f: 0x2f6a, + 0x670: 0x3c30, 0x671: 0x3c37, 0x672: 0xa000, 0x673: 0xa000, 0x674: 0x3c3e, 0x675: 0x3c45, + 0x676: 0xa000, 0x677: 0xa000, 0x678: 0x3c4c, 0x679: 0x3c53, 0x67a: 0xa000, 0x67b: 0xa000, + 0x67c: 0xa000, 0x67d: 0xa000, + // Block 0x1a, offset 0x680 + 0x680: 0x3c5a, 0x681: 0x3c61, 0x682: 0xa000, 0x683: 0xa000, 0x684: 0x3c76, 0x685: 0x3c7d, + 0x686: 0xa000, 0x687: 0xa000, 0x688: 0x3c84, 0x689: 0x3c8b, + 0x691: 0xa000, + 0x692: 0xa000, + 0x6a2: 0xa000, + 0x6a8: 0xa000, 0x6a9: 0xa000, + 0x6ab: 0xa000, 0x6ac: 0x3ca0, 0x6ad: 0x3ca7, 0x6ae: 0x3cae, 0x6af: 0x3cb5, + 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0xa000, 0x6b5: 0xa000, + // Block 0x1b, offset 0x6c0 + 0x6c6: 0xa000, 0x6cb: 0xa000, + 0x6cc: 0x3f08, 0x6cd: 0xa000, 0x6ce: 0x3f10, 0x6cf: 0xa000, 0x6d0: 0x3f18, 0x6d1: 0xa000, + 0x6d2: 0x3f20, 0x6d3: 0xa000, 0x6d4: 0x3f28, 0x6d5: 0xa000, 0x6d6: 0x3f30, 0x6d7: 0xa000, + 0x6d8: 0x3f38, 0x6d9: 0xa000, 0x6da: 0x3f40, 0x6db: 0xa000, 0x6dc: 0x3f48, 0x6dd: 0xa000, + 0x6de: 0x3f50, 0x6df: 0xa000, 0x6e0: 0x3f58, 0x6e1: 0xa000, 0x6e2: 0x3f60, + 0x6e4: 0xa000, 0x6e5: 0x3f68, 0x6e6: 0xa000, 0x6e7: 0x3f70, 0x6e8: 0xa000, 0x6e9: 0x3f78, + 0x6ef: 0xa000, + 0x6f0: 0x3f80, 0x6f1: 0x3f88, 0x6f2: 0xa000, 0x6f3: 0x3f90, 0x6f4: 0x3f98, 0x6f5: 0xa000, + 0x6f6: 0x3fa0, 0x6f7: 0x3fa8, 0x6f8: 0xa000, 0x6f9: 0x3fb0, 0x6fa: 0x3fb8, 0x6fb: 0xa000, + 0x6fc: 0x3fc0, 0x6fd: 0x3fc8, + // Block 0x1c, offset 0x700 + 0x714: 0x3f00, + 0x719: 0x9903, 0x71a: 0x9903, 0x71b: 0x8100, 0x71c: 0x8100, 0x71d: 0xa000, + 0x71e: 0x3fd0, + 0x726: 0xa000, + 0x72b: 0xa000, 0x72c: 0x3fe0, 0x72d: 0xa000, 0x72e: 0x3fe8, 0x72f: 0xa000, + 0x730: 0x3ff0, 0x731: 0xa000, 0x732: 0x3ff8, 0x733: 0xa000, 0x734: 0x4000, 0x735: 0xa000, + 0x736: 0x4008, 0x737: 0xa000, 0x738: 0x4010, 0x739: 0xa000, 0x73a: 0x4018, 0x73b: 0xa000, + 0x73c: 0x4020, 0x73d: 0xa000, 0x73e: 0x4028, 0x73f: 0xa000, + // Block 0x1d, offset 0x740 + 0x740: 0x4030, 0x741: 0xa000, 0x742: 0x4038, 0x744: 0xa000, 0x745: 0x4040, + 0x746: 0xa000, 0x747: 0x4048, 0x748: 0xa000, 0x749: 0x4050, + 0x74f: 0xa000, 0x750: 0x4058, 0x751: 0x4060, + 0x752: 0xa000, 0x753: 0x4068, 0x754: 0x4070, 0x755: 0xa000, 0x756: 0x4078, 0x757: 0x4080, + 0x758: 0xa000, 0x759: 0x4088, 0x75a: 0x4090, 0x75b: 0xa000, 0x75c: 0x4098, 0x75d: 0x40a0, + 0x76f: 0xa000, + 0x770: 0xa000, 0x771: 0xa000, 0x772: 0xa000, 0x774: 0x3fd8, + 0x777: 0x40a8, 0x778: 0x40b0, 0x779: 0x40b8, 0x77a: 0x40c0, + 0x77d: 0xa000, 0x77e: 0x40c8, + // Block 0x1e, offset 0x780 + 0x780: 0x1377, 0x781: 0x0cfb, 0x782: 0x13d3, 0x783: 0x139f, 0x784: 0x0e57, 0x785: 0x06eb, + 0x786: 0x08df, 0x787: 0x162b, 0x788: 0x162b, 0x789: 0x0a0b, 0x78a: 0x145f, 0x78b: 0x0943, + 0x78c: 0x0a07, 0x78d: 0x0bef, 0x78e: 0x0fcf, 0x78f: 0x115f, 0x790: 0x1297, 0x791: 0x12d3, + 0x792: 0x1307, 0x793: 0x141b, 0x794: 0x0d73, 0x795: 0x0dff, 0x796: 0x0eab, 0x797: 0x0f43, + 0x798: 0x125f, 0x799: 0x1447, 0x79a: 0x1573, 0x79b: 0x070f, 0x79c: 0x08b3, 0x79d: 0x0d87, + 0x79e: 0x0ecf, 0x79f: 0x1293, 0x7a0: 0x15c3, 0x7a1: 0x0ab3, 0x7a2: 0x0e77, 0x7a3: 0x1283, + 0x7a4: 0x1317, 0x7a5: 0x0c23, 0x7a6: 0x11bb, 0x7a7: 0x12df, 0x7a8: 0x0b1f, 0x7a9: 0x0d0f, + 0x7aa: 0x0e17, 0x7ab: 0x0f1b, 0x7ac: 0x1427, 0x7ad: 0x074f, 0x7ae: 0x07e7, 0x7af: 0x0853, + 0x7b0: 0x0c8b, 0x7b1: 0x0d7f, 0x7b2: 0x0ecb, 0x7b3: 0x0fef, 0x7b4: 0x1177, 0x7b5: 0x128b, + 0x7b6: 0x12a3, 0x7b7: 0x13c7, 0x7b8: 0x14ef, 0x7b9: 0x15a3, 0x7ba: 0x15bf, 0x7bb: 0x102b, + 0x7bc: 0x106b, 0x7bd: 0x1123, 0x7be: 0x1243, 0x7bf: 0x147b, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x15cb, 0x7c1: 0x134b, 0x7c2: 0x09c7, 0x7c3: 0x0b3b, 0x7c4: 0x10db, 0x7c5: 0x119b, + 0x7c6: 0x0eff, 0x7c7: 0x1033, 0x7c8: 0x1397, 0x7c9: 0x14e7, 0x7ca: 0x09c3, 0x7cb: 0x0a8f, + 0x7cc: 0x0d77, 0x7cd: 0x0e2b, 0x7ce: 0x0e5f, 0x7cf: 0x1113, 0x7d0: 0x113b, 0x7d1: 0x14a7, + 0x7d2: 0x084f, 0x7d3: 0x11a7, 0x7d4: 0x07f3, 0x7d5: 0x07ef, 0x7d6: 0x1097, 0x7d7: 0x1127, + 0x7d8: 0x125b, 0x7d9: 0x14af, 0x7da: 0x1367, 0x7db: 0x0c27, 0x7dc: 0x0d73, 0x7dd: 0x1357, + 0x7de: 0x06f7, 0x7df: 0x0a63, 0x7e0: 0x0b93, 0x7e1: 0x0f2f, 0x7e2: 0x0faf, 0x7e3: 0x0873, + 0x7e4: 0x103b, 0x7e5: 0x075f, 0x7e6: 0x0b77, 0x7e7: 0x06d7, 0x7e8: 0x0deb, 0x7e9: 0x0ca3, + 0x7ea: 0x110f, 0x7eb: 0x08c7, 0x7ec: 0x09b3, 0x7ed: 0x0ffb, 0x7ee: 0x1263, 0x7ef: 0x133b, + 0x7f0: 0x0db7, 0x7f1: 0x13f7, 0x7f2: 0x0de3, 0x7f3: 0x0c37, 0x7f4: 0x121b, 0x7f5: 0x0c57, + 0x7f6: 0x0fab, 0x7f7: 0x072b, 0x7f8: 0x07a7, 0x7f9: 0x07eb, 0x7fa: 0x0d53, 0x7fb: 0x10fb, + 0x7fc: 0x11f3, 0x7fd: 0x1347, 0x7fe: 0x145b, 0x7ff: 0x085b, + // Block 0x20, offset 0x800 + 0x800: 0x090f, 0x801: 0x0a17, 0x802: 0x0b2f, 0x803: 0x0cbf, 0x804: 0x0e7b, 0x805: 0x103f, + 0x806: 0x1497, 0x807: 0x157b, 0x808: 0x15cf, 0x809: 0x15e7, 0x80a: 0x0837, 0x80b: 0x0cf3, + 0x80c: 0x0da3, 0x80d: 0x13eb, 0x80e: 0x0afb, 0x80f: 0x0bd7, 0x810: 0x0bf3, 0x811: 0x0c83, + 0x812: 0x0e6b, 0x813: 0x0eb7, 0x814: 0x0f67, 0x815: 0x108b, 0x816: 0x112f, 0x817: 0x1193, + 0x818: 0x13db, 0x819: 0x126b, 0x81a: 0x1403, 0x81b: 0x147f, 0x81c: 0x080f, 0x81d: 0x083b, + 0x81e: 0x0923, 0x81f: 0x0ea7, 0x820: 0x12f3, 0x821: 0x133b, 0x822: 0x0b1b, 0x823: 0x0b8b, + 0x824: 0x0c4f, 0x825: 0x0daf, 0x826: 0x10d7, 0x827: 0x0f23, 0x828: 0x073b, 0x829: 0x097f, + 0x82a: 0x0a63, 0x82b: 0x0ac7, 0x82c: 0x0b97, 0x82d: 0x0f3f, 0x82e: 0x0f5b, 0x82f: 0x116b, + 0x830: 0x118b, 0x831: 0x1463, 0x832: 0x14e3, 0x833: 0x14f3, 0x834: 0x152f, 0x835: 0x0753, + 0x836: 0x107f, 0x837: 0x144f, 0x838: 0x14cb, 0x839: 0x0baf, 0x83a: 0x0717, 0x83b: 0x0777, + 0x83c: 0x0a67, 0x83d: 0x0a87, 0x83e: 0x0caf, 0x83f: 0x0d73, + // Block 0x21, offset 0x840 + 0x840: 0x0ec3, 0x841: 0x0fcb, 0x842: 0x1277, 0x843: 0x1417, 0x844: 0x1623, 0x845: 0x0ce3, + 0x846: 0x14a3, 0x847: 0x0833, 0x848: 0x0d2f, 0x849: 0x0d3b, 0x84a: 0x0e0f, 0x84b: 0x0e47, + 0x84c: 0x0f4b, 0x84d: 0x0fa7, 0x84e: 0x1027, 0x84f: 0x110b, 0x850: 0x153b, 0x851: 0x07af, + 0x852: 0x0c03, 0x853: 0x14b3, 0x854: 0x0767, 0x855: 0x0aab, 0x856: 0x0e2f, 0x857: 0x13df, + 0x858: 0x0b67, 0x859: 0x0bb7, 0x85a: 0x0d43, 0x85b: 0x0f2f, 0x85c: 0x14bb, 0x85d: 0x0817, + 0x85e: 0x08ff, 0x85f: 0x0a97, 0x860: 0x0cd3, 0x861: 0x0d1f, 0x862: 0x0d5f, 0x863: 0x0df3, + 0x864: 0x0f47, 0x865: 0x0fbb, 0x866: 0x1157, 0x867: 0x12f7, 0x868: 0x1303, 0x869: 0x1457, + 0x86a: 0x14d7, 0x86b: 0x0883, 0x86c: 0x0e4b, 0x86d: 0x0903, 0x86e: 0x0ec7, 0x86f: 0x0f6b, + 0x870: 0x1287, 0x871: 0x14bf, 0x872: 0x15ab, 0x873: 0x15d3, 0x874: 0x0d37, 0x875: 0x0e27, + 0x876: 0x11c3, 0x877: 0x10b7, 0x878: 0x10c3, 0x879: 0x10e7, 0x87a: 0x0f17, 0x87b: 0x0e9f, + 0x87c: 0x1363, 0x87d: 0x0733, 0x87e: 0x122b, 0x87f: 0x081b, + // Block 0x22, offset 0x880 + 0x880: 0x080b, 0x881: 0x0b0b, 0x882: 0x0c2b, 0x883: 0x10f3, 0x884: 0x0a53, 0x885: 0x0e03, + 0x886: 0x0cef, 0x887: 0x13e7, 0x888: 0x12e7, 0x889: 0x14ab, 0x88a: 0x1323, 0x88b: 0x0b27, + 0x88c: 0x0787, 0x88d: 0x095b, 0x890: 0x09af, + 0x892: 0x0cdf, 0x895: 0x07f7, 0x896: 0x0f1f, 0x897: 0x0fe3, + 0x898: 0x1047, 0x899: 0x1063, 0x89a: 0x1067, 0x89b: 0x107b, 0x89c: 0x14fb, 0x89d: 0x10eb, + 0x89e: 0x116f, 0x8a0: 0x128f, 0x8a2: 0x1353, + 0x8a5: 0x1407, 0x8a6: 0x1433, + 0x8aa: 0x154f, 0x8ab: 0x1553, 0x8ac: 0x1557, 0x8ad: 0x15bb, 0x8ae: 0x142b, 0x8af: 0x14c7, + 0x8b0: 0x0757, 0x8b1: 0x077b, 0x8b2: 0x078f, 0x8b3: 0x084b, 0x8b4: 0x0857, 0x8b5: 0x0897, + 0x8b6: 0x094b, 0x8b7: 0x0967, 0x8b8: 0x096f, 0x8b9: 0x09ab, 0x8ba: 0x09b7, 0x8bb: 0x0a93, + 0x8bc: 0x0a9b, 0x8bd: 0x0ba3, 0x8be: 0x0bcb, 0x8bf: 0x0bd3, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0beb, 0x8c1: 0x0c97, 0x8c2: 0x0cc7, 0x8c3: 0x0ce7, 0x8c4: 0x0d57, 0x8c5: 0x0e1b, + 0x8c6: 0x0e37, 0x8c7: 0x0e67, 0x8c8: 0x0ebb, 0x8c9: 0x0edb, 0x8ca: 0x0f4f, 0x8cb: 0x102f, + 0x8cc: 0x104b, 0x8cd: 0x1053, 0x8ce: 0x104f, 0x8cf: 0x1057, 0x8d0: 0x105b, 0x8d1: 0x105f, + 0x8d2: 0x1073, 0x8d3: 0x1077, 0x8d4: 0x109b, 0x8d5: 0x10af, 0x8d6: 0x10cb, 0x8d7: 0x112f, + 0x8d8: 0x1137, 0x8d9: 0x113f, 0x8da: 0x1153, 0x8db: 0x117b, 0x8dc: 0x11cb, 0x8dd: 0x11ff, + 0x8de: 0x11ff, 0x8df: 0x1267, 0x8e0: 0x130f, 0x8e1: 0x1327, 0x8e2: 0x135b, 0x8e3: 0x135f, + 0x8e4: 0x13a3, 0x8e5: 0x13a7, 0x8e6: 0x13ff, 0x8e7: 0x1407, 0x8e8: 0x14db, 0x8e9: 0x151f, + 0x8ea: 0x1537, 0x8eb: 0x0b9b, 0x8ec: 0x171e, 0x8ed: 0x11e3, + 0x8f0: 0x06df, 0x8f1: 0x07e3, 0x8f2: 0x07a3, 0x8f3: 0x074b, 0x8f4: 0x078b, 0x8f5: 0x07b7, + 0x8f6: 0x0847, 0x8f7: 0x0863, 0x8f8: 0x094b, 0x8f9: 0x0937, 0x8fa: 0x0947, 0x8fb: 0x0963, + 0x8fc: 0x09af, 0x8fd: 0x09bf, 0x8fe: 0x0a03, 0x8ff: 0x0a0f, + // Block 0x24, offset 0x900 + 0x900: 0x0a2b, 0x901: 0x0a3b, 0x902: 0x0b23, 0x903: 0x0b2b, 0x904: 0x0b5b, 0x905: 0x0b7b, + 0x906: 0x0bab, 0x907: 0x0bc3, 0x908: 0x0bb3, 0x909: 0x0bd3, 0x90a: 0x0bc7, 0x90b: 0x0beb, + 0x90c: 0x0c07, 0x90d: 0x0c5f, 0x90e: 0x0c6b, 0x90f: 0x0c73, 0x910: 0x0c9b, 0x911: 0x0cdf, + 0x912: 0x0d0f, 0x913: 0x0d13, 0x914: 0x0d27, 0x915: 0x0da7, 0x916: 0x0db7, 0x917: 0x0e0f, + 0x918: 0x0e5b, 0x919: 0x0e53, 0x91a: 0x0e67, 0x91b: 0x0e83, 0x91c: 0x0ebb, 0x91d: 0x1013, + 0x91e: 0x0edf, 0x91f: 0x0f13, 0x920: 0x0f1f, 0x921: 0x0f5f, 0x922: 0x0f7b, 0x923: 0x0f9f, + 0x924: 0x0fc3, 0x925: 0x0fc7, 0x926: 0x0fe3, 0x927: 0x0fe7, 0x928: 0x0ff7, 0x929: 0x100b, + 0x92a: 0x1007, 0x92b: 0x1037, 0x92c: 0x10b3, 0x92d: 0x10cb, 0x92e: 0x10e3, 0x92f: 0x111b, + 0x930: 0x112f, 0x931: 0x114b, 0x932: 0x117b, 0x933: 0x122f, 0x934: 0x1257, 0x935: 0x12cb, + 0x936: 0x1313, 0x937: 0x131f, 0x938: 0x1327, 0x939: 0x133f, 0x93a: 0x1353, 0x93b: 0x1343, + 0x93c: 0x135b, 0x93d: 0x1357, 0x93e: 0x134f, 0x93f: 0x135f, + // Block 0x25, offset 0x940 + 0x940: 0x136b, 0x941: 0x13a7, 0x942: 0x13e3, 0x943: 0x1413, 0x944: 0x144b, 0x945: 0x146b, + 0x946: 0x14b7, 0x947: 0x14db, 0x948: 0x14fb, 0x949: 0x150f, 0x94a: 0x151f, 0x94b: 0x152b, + 0x94c: 0x1537, 0x94d: 0x158b, 0x94e: 0x162b, 0x94f: 0x16b5, 0x950: 0x16b0, 0x951: 0x16e2, + 0x952: 0x0607, 0x953: 0x062f, 0x954: 0x0633, 0x955: 0x1764, 0x956: 0x1791, 0x957: 0x1809, + 0x958: 0x1617, 0x959: 0x1627, + // Block 0x26, offset 0x980 + 0x980: 0x06fb, 0x981: 0x06f3, 0x982: 0x0703, 0x983: 0x1647, 0x984: 0x0747, 0x985: 0x0757, + 0x986: 0x075b, 0x987: 0x0763, 0x988: 0x076b, 0x989: 0x076f, 0x98a: 0x077b, 0x98b: 0x0773, + 0x98c: 0x05b3, 0x98d: 0x165b, 0x98e: 0x078f, 0x98f: 0x0793, 0x990: 0x0797, 0x991: 0x07b3, + 0x992: 0x164c, 0x993: 0x05b7, 0x994: 0x079f, 0x995: 0x07bf, 0x996: 0x1656, 0x997: 0x07cf, + 0x998: 0x07d7, 0x999: 0x0737, 0x99a: 0x07df, 0x99b: 0x07e3, 0x99c: 0x1831, 0x99d: 0x07ff, + 0x99e: 0x0807, 0x99f: 0x05bf, 0x9a0: 0x081f, 0x9a1: 0x0823, 0x9a2: 0x082b, 0x9a3: 0x082f, + 0x9a4: 0x05c3, 0x9a5: 0x0847, 0x9a6: 0x084b, 0x9a7: 0x0857, 0x9a8: 0x0863, 0x9a9: 0x0867, + 0x9aa: 0x086b, 0x9ab: 0x0873, 0x9ac: 0x0893, 0x9ad: 0x0897, 0x9ae: 0x089f, 0x9af: 0x08af, + 0x9b0: 0x08b7, 0x9b1: 0x08bb, 0x9b2: 0x08bb, 0x9b3: 0x08bb, 0x9b4: 0x166a, 0x9b5: 0x0e93, + 0x9b6: 0x08cf, 0x9b7: 0x08d7, 0x9b8: 0x166f, 0x9b9: 0x08e3, 0x9ba: 0x08eb, 0x9bb: 0x08f3, + 0x9bc: 0x091b, 0x9bd: 0x0907, 0x9be: 0x0913, 0x9bf: 0x0917, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x091f, 0x9c1: 0x0927, 0x9c2: 0x092b, 0x9c3: 0x0933, 0x9c4: 0x093b, 0x9c5: 0x093f, + 0x9c6: 0x093f, 0x9c7: 0x0947, 0x9c8: 0x094f, 0x9c9: 0x0953, 0x9ca: 0x095f, 0x9cb: 0x0983, + 0x9cc: 0x0967, 0x9cd: 0x0987, 0x9ce: 0x096b, 0x9cf: 0x0973, 0x9d0: 0x080b, 0x9d1: 0x09cf, + 0x9d2: 0x0997, 0x9d3: 0x099b, 0x9d4: 0x099f, 0x9d5: 0x0993, 0x9d6: 0x09a7, 0x9d7: 0x09a3, + 0x9d8: 0x09bb, 0x9d9: 0x1674, 0x9da: 0x09d7, 0x9db: 0x09db, 0x9dc: 0x09e3, 0x9dd: 0x09ef, + 0x9de: 0x09f7, 0x9df: 0x0a13, 0x9e0: 0x1679, 0x9e1: 0x167e, 0x9e2: 0x0a1f, 0x9e3: 0x0a23, + 0x9e4: 0x0a27, 0x9e5: 0x0a1b, 0x9e6: 0x0a2f, 0x9e7: 0x05c7, 0x9e8: 0x05cb, 0x9e9: 0x0a37, + 0x9ea: 0x0a3f, 0x9eb: 0x0a3f, 0x9ec: 0x1683, 0x9ed: 0x0a5b, 0x9ee: 0x0a5f, 0x9ef: 0x0a63, + 0x9f0: 0x0a6b, 0x9f1: 0x1688, 0x9f2: 0x0a73, 0x9f3: 0x0a77, 0x9f4: 0x0b4f, 0x9f5: 0x0a7f, + 0x9f6: 0x05cf, 0x9f7: 0x0a8b, 0x9f8: 0x0a9b, 0x9f9: 0x0aa7, 0x9fa: 0x0aa3, 0x9fb: 0x1692, + 0x9fc: 0x0aaf, 0x9fd: 0x1697, 0x9fe: 0x0abb, 0x9ff: 0x0ab7, + // Block 0x28, offset 0xa00 + 0xa00: 0x0abf, 0xa01: 0x0acf, 0xa02: 0x0ad3, 0xa03: 0x05d3, 0xa04: 0x0ae3, 0xa05: 0x0aeb, + 0xa06: 0x0aef, 0xa07: 0x0af3, 0xa08: 0x05d7, 0xa09: 0x169c, 0xa0a: 0x05db, 0xa0b: 0x0b0f, + 0xa0c: 0x0b13, 0xa0d: 0x0b17, 0xa0e: 0x0b1f, 0xa0f: 0x1863, 0xa10: 0x0b37, 0xa11: 0x16a6, + 0xa12: 0x16a6, 0xa13: 0x11d7, 0xa14: 0x0b47, 0xa15: 0x0b47, 0xa16: 0x05df, 0xa17: 0x16c9, + 0xa18: 0x179b, 0xa19: 0x0b57, 0xa1a: 0x0b5f, 0xa1b: 0x05e3, 0xa1c: 0x0b73, 0xa1d: 0x0b83, + 0xa1e: 0x0b87, 0xa1f: 0x0b8f, 0xa20: 0x0b9f, 0xa21: 0x05eb, 0xa22: 0x05e7, 0xa23: 0x0ba3, + 0xa24: 0x16ab, 0xa25: 0x0ba7, 0xa26: 0x0bbb, 0xa27: 0x0bbf, 0xa28: 0x0bc3, 0xa29: 0x0bbf, + 0xa2a: 0x0bcf, 0xa2b: 0x0bd3, 0xa2c: 0x0be3, 0xa2d: 0x0bdb, 0xa2e: 0x0bdf, 0xa2f: 0x0be7, + 0xa30: 0x0beb, 0xa31: 0x0bef, 0xa32: 0x0bfb, 0xa33: 0x0bff, 0xa34: 0x0c17, 0xa35: 0x0c1f, + 0xa36: 0x0c2f, 0xa37: 0x0c43, 0xa38: 0x16ba, 0xa39: 0x0c3f, 0xa3a: 0x0c33, 0xa3b: 0x0c4b, + 0xa3c: 0x0c53, 0xa3d: 0x0c67, 0xa3e: 0x16bf, 0xa3f: 0x0c6f, + // Block 0x29, offset 0xa40 + 0xa40: 0x0c63, 0xa41: 0x0c5b, 0xa42: 0x05ef, 0xa43: 0x0c77, 0xa44: 0x0c7f, 0xa45: 0x0c87, + 0xa46: 0x0c7b, 0xa47: 0x05f3, 0xa48: 0x0c97, 0xa49: 0x0c9f, 0xa4a: 0x16c4, 0xa4b: 0x0ccb, + 0xa4c: 0x0cff, 0xa4d: 0x0cdb, 0xa4e: 0x05ff, 0xa4f: 0x0ce7, 0xa50: 0x05fb, 0xa51: 0x05f7, + 0xa52: 0x07c3, 0xa53: 0x07c7, 0xa54: 0x0d03, 0xa55: 0x0ceb, 0xa56: 0x11ab, 0xa57: 0x0663, + 0xa58: 0x0d0f, 0xa59: 0x0d13, 0xa5a: 0x0d17, 0xa5b: 0x0d2b, 0xa5c: 0x0d23, 0xa5d: 0x16dd, + 0xa5e: 0x0603, 0xa5f: 0x0d3f, 0xa60: 0x0d33, 0xa61: 0x0d4f, 0xa62: 0x0d57, 0xa63: 0x16e7, + 0xa64: 0x0d5b, 0xa65: 0x0d47, 0xa66: 0x0d63, 0xa67: 0x0607, 0xa68: 0x0d67, 0xa69: 0x0d6b, + 0xa6a: 0x0d6f, 0xa6b: 0x0d7b, 0xa6c: 0x16ec, 0xa6d: 0x0d83, 0xa6e: 0x060b, 0xa6f: 0x0d8f, + 0xa70: 0x16f1, 0xa71: 0x0d93, 0xa72: 0x060f, 0xa73: 0x0d9f, 0xa74: 0x0dab, 0xa75: 0x0db7, + 0xa76: 0x0dbb, 0xa77: 0x16f6, 0xa78: 0x168d, 0xa79: 0x16fb, 0xa7a: 0x0ddb, 0xa7b: 0x1700, + 0xa7c: 0x0de7, 0xa7d: 0x0def, 0xa7e: 0x0ddf, 0xa7f: 0x0dfb, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0e0b, 0xa81: 0x0e1b, 0xa82: 0x0e0f, 0xa83: 0x0e13, 0xa84: 0x0e1f, 0xa85: 0x0e23, + 0xa86: 0x1705, 0xa87: 0x0e07, 0xa88: 0x0e3b, 0xa89: 0x0e3f, 0xa8a: 0x0613, 0xa8b: 0x0e53, + 0xa8c: 0x0e4f, 0xa8d: 0x170a, 0xa8e: 0x0e33, 0xa8f: 0x0e6f, 0xa90: 0x170f, 0xa91: 0x1714, + 0xa92: 0x0e73, 0xa93: 0x0e87, 0xa94: 0x0e83, 0xa95: 0x0e7f, 0xa96: 0x0617, 0xa97: 0x0e8b, + 0xa98: 0x0e9b, 0xa99: 0x0e97, 0xa9a: 0x0ea3, 0xa9b: 0x1651, 0xa9c: 0x0eb3, 0xa9d: 0x1719, + 0xa9e: 0x0ebf, 0xa9f: 0x1723, 0xaa0: 0x0ed3, 0xaa1: 0x0edf, 0xaa2: 0x0ef3, 0xaa3: 0x1728, + 0xaa4: 0x0f07, 0xaa5: 0x0f0b, 0xaa6: 0x172d, 0xaa7: 0x1732, 0xaa8: 0x0f27, 0xaa9: 0x0f37, + 0xaaa: 0x061b, 0xaab: 0x0f3b, 0xaac: 0x061f, 0xaad: 0x061f, 0xaae: 0x0f53, 0xaaf: 0x0f57, + 0xab0: 0x0f5f, 0xab1: 0x0f63, 0xab2: 0x0f6f, 0xab3: 0x0623, 0xab4: 0x0f87, 0xab5: 0x1737, + 0xab6: 0x0fa3, 0xab7: 0x173c, 0xab8: 0x0faf, 0xab9: 0x16a1, 0xaba: 0x0fbf, 0xabb: 0x1741, + 0xabc: 0x1746, 0xabd: 0x174b, 0xabe: 0x0627, 0xabf: 0x062b, + // Block 0x2b, offset 0xac0 + 0xac0: 0x0ff7, 0xac1: 0x1755, 0xac2: 0x1750, 0xac3: 0x175a, 0xac4: 0x175f, 0xac5: 0x0fff, + 0xac6: 0x1003, 0xac7: 0x1003, 0xac8: 0x100b, 0xac9: 0x0633, 0xaca: 0x100f, 0xacb: 0x0637, + 0xacc: 0x063b, 0xacd: 0x1769, 0xace: 0x1023, 0xacf: 0x102b, 0xad0: 0x1037, 0xad1: 0x063f, + 0xad2: 0x176e, 0xad3: 0x105b, 0xad4: 0x1773, 0xad5: 0x1778, 0xad6: 0x107b, 0xad7: 0x1093, + 0xad8: 0x0643, 0xad9: 0x109b, 0xada: 0x109f, 0xadb: 0x10a3, 0xadc: 0x177d, 0xadd: 0x1782, + 0xade: 0x1782, 0xadf: 0x10bb, 0xae0: 0x0647, 0xae1: 0x1787, 0xae2: 0x10cf, 0xae3: 0x10d3, + 0xae4: 0x064b, 0xae5: 0x178c, 0xae6: 0x10ef, 0xae7: 0x064f, 0xae8: 0x10ff, 0xae9: 0x10f7, + 0xaea: 0x1107, 0xaeb: 0x1796, 0xaec: 0x111f, 0xaed: 0x0653, 0xaee: 0x112b, 0xaef: 0x1133, + 0xaf0: 0x1143, 0xaf1: 0x0657, 0xaf2: 0x17a0, 0xaf3: 0x17a5, 0xaf4: 0x065b, 0xaf5: 0x17aa, + 0xaf6: 0x115b, 0xaf7: 0x17af, 0xaf8: 0x1167, 0xaf9: 0x1173, 0xafa: 0x117b, 0xafb: 0x17b4, + 0xafc: 0x17b9, 0xafd: 0x118f, 0xafe: 0x17be, 0xaff: 0x1197, + // Block 0x2c, offset 0xb00 + 0xb00: 0x16ce, 0xb01: 0x065f, 0xb02: 0x11af, 0xb03: 0x11b3, 0xb04: 0x0667, 0xb05: 0x11b7, + 0xb06: 0x0a33, 0xb07: 0x17c3, 0xb08: 0x17c8, 0xb09: 0x16d3, 0xb0a: 0x16d8, 0xb0b: 0x11d7, + 0xb0c: 0x11db, 0xb0d: 0x13f3, 0xb0e: 0x066b, 0xb0f: 0x1207, 0xb10: 0x1203, 0xb11: 0x120b, + 0xb12: 0x083f, 0xb13: 0x120f, 0xb14: 0x1213, 0xb15: 0x1217, 0xb16: 0x121f, 0xb17: 0x17cd, + 0xb18: 0x121b, 0xb19: 0x1223, 0xb1a: 0x1237, 0xb1b: 0x123b, 0xb1c: 0x1227, 0xb1d: 0x123f, + 0xb1e: 0x1253, 0xb1f: 0x1267, 0xb20: 0x1233, 0xb21: 0x1247, 0xb22: 0x124b, 0xb23: 0x124f, + 0xb24: 0x17d2, 0xb25: 0x17dc, 0xb26: 0x17d7, 0xb27: 0x066f, 0xb28: 0x126f, 0xb29: 0x1273, + 0xb2a: 0x127b, 0xb2b: 0x17f0, 0xb2c: 0x127f, 0xb2d: 0x17e1, 0xb2e: 0x0673, 0xb2f: 0x0677, + 0xb30: 0x17e6, 0xb31: 0x17eb, 0xb32: 0x067b, 0xb33: 0x129f, 0xb34: 0x12a3, 0xb35: 0x12a7, + 0xb36: 0x12ab, 0xb37: 0x12b7, 0xb38: 0x12b3, 0xb39: 0x12bf, 0xb3a: 0x12bb, 0xb3b: 0x12cb, + 0xb3c: 0x12c3, 0xb3d: 0x12c7, 0xb3e: 0x12cf, 0xb3f: 0x067f, + // Block 0x2d, offset 0xb40 + 0xb40: 0x12d7, 0xb41: 0x12db, 0xb42: 0x0683, 0xb43: 0x12eb, 0xb44: 0x12ef, 0xb45: 0x17f5, + 0xb46: 0x12fb, 0xb47: 0x12ff, 0xb48: 0x0687, 0xb49: 0x130b, 0xb4a: 0x05bb, 0xb4b: 0x17fa, + 0xb4c: 0x17ff, 0xb4d: 0x068b, 0xb4e: 0x068f, 0xb4f: 0x1337, 0xb50: 0x134f, 0xb51: 0x136b, + 0xb52: 0x137b, 0xb53: 0x1804, 0xb54: 0x138f, 0xb55: 0x1393, 0xb56: 0x13ab, 0xb57: 0x13b7, + 0xb58: 0x180e, 0xb59: 0x1660, 0xb5a: 0x13c3, 0xb5b: 0x13bf, 0xb5c: 0x13cb, 0xb5d: 0x1665, + 0xb5e: 0x13d7, 0xb5f: 0x13e3, 0xb60: 0x1813, 0xb61: 0x1818, 0xb62: 0x1423, 0xb63: 0x142f, + 0xb64: 0x1437, 0xb65: 0x181d, 0xb66: 0x143b, 0xb67: 0x1467, 0xb68: 0x1473, 0xb69: 0x1477, + 0xb6a: 0x146f, 0xb6b: 0x1483, 0xb6c: 0x1487, 0xb6d: 0x1822, 0xb6e: 0x1493, 0xb6f: 0x0693, + 0xb70: 0x149b, 0xb71: 0x1827, 0xb72: 0x0697, 0xb73: 0x14d3, 0xb74: 0x0ac3, 0xb75: 0x14eb, + 0xb76: 0x182c, 0xb77: 0x1836, 0xb78: 0x069b, 0xb79: 0x069f, 0xb7a: 0x1513, 0xb7b: 0x183b, + 0xb7c: 0x06a3, 0xb7d: 0x1840, 0xb7e: 0x152b, 0xb7f: 0x152b, + // Block 0x2e, offset 0xb80 + 0xb80: 0x1533, 0xb81: 0x1845, 0xb82: 0x154b, 0xb83: 0x06a7, 0xb84: 0x155b, 0xb85: 0x1567, + 0xb86: 0x156f, 0xb87: 0x1577, 0xb88: 0x06ab, 0xb89: 0x184a, 0xb8a: 0x158b, 0xb8b: 0x15a7, + 0xb8c: 0x15b3, 0xb8d: 0x06af, 0xb8e: 0x06b3, 0xb8f: 0x15b7, 0xb90: 0x184f, 0xb91: 0x06b7, + 0xb92: 0x1854, 0xb93: 0x1859, 0xb94: 0x185e, 0xb95: 0x15db, 0xb96: 0x06bb, 0xb97: 0x15ef, + 0xb98: 0x15f7, 0xb99: 0x15fb, 0xb9a: 0x1603, 0xb9b: 0x160b, 0xb9c: 0x1613, 0xb9d: 0x1868, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2d, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2e, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x2f, 0xcb: 0x30, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x31, + 0xd0: 0x09, 0xd1: 0x32, 0xd2: 0x33, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x34, + 0xd8: 0x35, 0xd9: 0x0c, 0xdb: 0x36, 0xdc: 0x37, 0xdd: 0x38, 0xdf: 0x39, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x3a, 0x121: 0x3b, 0x123: 0x3c, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, + 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, + 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, + 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, + // Block 0x5, offset 0x140 + 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, + 0x14d: 0x5c, + 0x15c: 0x5d, 0x15f: 0x5e, + 0x162: 0x5f, 0x164: 0x60, + 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0d, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, + 0x170: 0x67, 0x173: 0x68, 0x177: 0x0e, + 0x178: 0x0f, 0x179: 0x10, 0x17a: 0x11, 0x17b: 0x12, 0x17c: 0x13, 0x17d: 0x14, 0x17e: 0x15, 0x17f: 0x16, + // Block 0x6, offset 0x180 + 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, + 0x188: 0x6e, 0x189: 0x17, 0x18a: 0x18, 0x18b: 0x6f, 0x18c: 0x70, + 0x1ab: 0x71, + 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x75, 0x1c1: 0x19, 0x1c2: 0x1a, 0x1c3: 0x1b, 0x1c4: 0x76, 0x1c5: 0x77, + 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, + // Block 0x8, offset 0x200 + 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, + 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, + 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, + 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, + 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, + // Block 0x9, offset 0x240 + 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, + 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, + 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, + 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, + 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, + 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, + 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, + // Block 0xa, offset 0x280 + 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, + 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, + 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, + 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, + 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, + 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, + 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, + 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, + 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, + 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, + 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, + // Block 0xc, offset 0x300 + 0x324: 0x1c, 0x325: 0x1d, 0x326: 0x1e, 0x327: 0x1f, + 0x328: 0x20, 0x329: 0x21, 0x32a: 0x22, 0x32b: 0x23, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, + 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, + 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, + // Block 0xd, offset 0x340 + 0x347: 0x9c, + 0x34b: 0x9d, 0x34d: 0x9e, + 0x368: 0x9f, 0x36b: 0xa0, + // Block 0xe, offset 0x380 + 0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4, + 0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3f, 0x38d: 0xa7, + 0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac, + 0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae, + 0x3a8: 0xaf, 0x3a9: 0xb0, 0x3aa: 0xb1, + 0x3b0: 0x73, 0x3b5: 0xb2, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xb3, 0x3ec: 0xb4, + // Block 0x10, offset 0x400 + 0x432: 0xb5, + // Block 0x11, offset 0x440 + 0x445: 0xb6, 0x446: 0xb7, 0x447: 0xb8, + 0x449: 0xb9, + // Block 0x12, offset 0x480 + 0x480: 0xba, + 0x4a3: 0xbb, 0x4a5: 0xbc, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xbd, + // Block 0x14, offset 0x500 + 0x520: 0x24, 0x521: 0x25, 0x522: 0x26, 0x523: 0x27, 0x524: 0x28, 0x525: 0x29, 0x526: 0x2a, 0x527: 0x2b, + 0x528: 0x2c, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 145 entries, 290 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc8, 0xcf, 0xd7, 0xda, 0xdc, 0xde, 0xe0, 0xe5, 0xf6, 0x102, 0x104, 0x10a, 0x10c, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x119, 0x11c, 0x11e, 0x121, 0x124, 0x128, 0x12d, 0x136, 0x138, 0x13b, 0x13d, 0x148, 0x14c, 0x15a, 0x15d, 0x163, 0x169, 0x174, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x182, 0x188, 0x18c, 0x18e, 0x190, 0x198, 0x19c, 0x19f, 0x1a1, 0x1a3, 0x1a5, 0x1a8, 0x1aa, 0x1ac, 0x1ae, 0x1b0, 0x1b6, 0x1b9, 0x1bb, 0x1c2, 0x1c8, 0x1ce, 0x1d6, 0x1dc, 0x1e2, 0x1e8, 0x1ec, 0x1fa, 0x203, 0x206, 0x209, 0x20b, 0x20e, 0x210, 0x214, 0x219, 0x21b, 0x21d, 0x222, 0x228, 0x22a, 0x22c, 0x22e, 0x234, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x259, 0x25c, 0x263, 0x266, 0x26c, 0x26e, 0x271, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x28f, 0x299, 0x29b, 0x29d, 0x2a3, 0x2a5, 0x2a8} + +// nfcSparseValues: 682 entries, 2728 bytes +var nfcSparseValues = [682]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4840, lo: 0x8a, hi: 0x8a}, + {value: 0x485e, lo: 0x8b, hi: 0x8b}, + {value: 0x36c7, lo: 0x8c, hi: 0x8c}, + {value: 0x36df, lo: 0x8d, hi: 0x8d}, + {value: 0x4876, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x36fd, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + // Block 0xd, offset 0x62 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x67 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x69 + {value: 0x0000, lo: 0x10}, + {value: 0x8132, lo: 0x94, hi: 0xa1}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xa9, hi: 0xa9}, + {value: 0x8132, lo: 0xaa, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xaf}, + {value: 0x8116, lo: 0xb0, hi: 0xb0}, + {value: 0x8117, lo: 0xb1, hi: 0xb1}, + {value: 0x8118, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb5}, + {value: 0x812d, lo: 0xb6, hi: 0xb6}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x812d, lo: 0xb9, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbf}, + // Block 0x10, offset 0x7a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x11, offset 0x82 + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x12, offset 0x89 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x8c + {value: 0x0008, lo: 0x06}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + // Block 0x14, offset 0x93 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x97 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x16, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x17, offset 0x9d + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x18, offset 0x9f + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x19, offset 0xa8 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1a, offset 0xac + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1b, offset 0xb3 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xb8 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1d, offset 0xbb + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1e, offset 0xc5 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1f, offset 0xc8 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x20, offset 0xcf + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x21, offset 0xd7 + {value: 0x0000, lo: 0x02}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x22, offset 0xda + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x23, offset 0xdc + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x24, offset 0xde + {value: 0x0000, lo: 0x01}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + // Block 0x25, offset 0xe0 + {value: 0x0000, lo: 0x04}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0xe5 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x27, offset 0xf6 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x28, offset 0x102 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x29, offset 0x104 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x2a, offset 0x10a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2b, offset 0x10c + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x10e + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x110 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x112 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x114 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x116 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x119 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x11c + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x11e + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x121 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x124 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x128 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x37, offset 0x12d + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x136 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x138 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x13b + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x13d + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x148 + {value: 0x0004, lo: 0x03}, + {value: 0x0433, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3d, offset 0x14c + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x3e, offset 0x15a + {value: 0x427b, lo: 0x02}, + {value: 0x01b8, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x3f, offset 0x15d + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x40, offset 0x163 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x41, offset 0x169 + {value: 0x6408, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x42, offset 0x174 + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x43, offset 0x178 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x44, offset 0x17a + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x45, offset 0x17c + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x46, offset 0x17e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x47, offset 0x180 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x48, offset 0x182 + {value: 0x0000, lo: 0x05}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xaf}, + // Block 0x49, offset 0x188 + {value: 0x0000, lo: 0x03}, + {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, + {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, + {value: 0x4a9f, lo: 0xba, hi: 0xbf}, + // Block 0x4a, offset 0x18c + {value: 0x0000, lo: 0x01}, + {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, + // Block 0x4b, offset 0x18e + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4c, offset 0x190 + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4d, offset 0x198 + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4e, offset 0x19c + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x4f, offset 0x19f + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x50, offset 0x1a1 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x51, offset 0x1a3 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x52, offset 0x1a5 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x53, offset 0x1a8 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x54, offset 0x1aa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x55, offset 0x1ac + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x56, offset 0x1ae + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x57, offset 0x1b0 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x58, offset 0x1b6 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x59, offset 0x1b9 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x5a, offset 0x1bb + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5b, offset 0x1c2 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5c, offset 0x1c8 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5d, offset 0x1ce + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5e, offset 0x1d6 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x5f, offset 0x1dc + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x60, offset 0x1e2 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x61, offset 0x1e8 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x62, offset 0x1ec + {value: 0x0006, lo: 0x0d}, + {value: 0x4390, lo: 0x9d, hi: 0x9d}, + {value: 0x8115, lo: 0x9e, hi: 0x9e}, + {value: 0x4402, lo: 0x9f, hi: 0x9f}, + {value: 0x43f0, lo: 0xaa, hi: 0xab}, + {value: 0x44f4, lo: 0xac, hi: 0xac}, + {value: 0x44fc, lo: 0xad, hi: 0xad}, + {value: 0x4348, lo: 0xae, hi: 0xb1}, + {value: 0x4366, lo: 0xb2, hi: 0xb4}, + {value: 0x437e, lo: 0xb5, hi: 0xb6}, + {value: 0x438a, lo: 0xb8, hi: 0xb8}, + {value: 0x4396, lo: 0xb9, hi: 0xbb}, + {value: 0x43ae, lo: 0xbc, hi: 0xbc}, + {value: 0x43b4, lo: 0xbe, hi: 0xbe}, + // Block 0x63, offset 0x1fa + {value: 0x0006, lo: 0x08}, + {value: 0x43ba, lo: 0x80, hi: 0x81}, + {value: 0x43c6, lo: 0x83, hi: 0x84}, + {value: 0x43d8, lo: 0x86, hi: 0x89}, + {value: 0x43fc, lo: 0x8a, hi: 0x8a}, + {value: 0x4378, lo: 0x8b, hi: 0x8b}, + {value: 0x4360, lo: 0x8c, hi: 0x8c}, + {value: 0x43a8, lo: 0x8d, hi: 0x8d}, + {value: 0x43d2, lo: 0x8e, hi: 0x8e}, + // Block 0x64, offset 0x203 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x65, offset 0x206 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x66, offset 0x209 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x67, offset 0x20b + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x68, offset 0x20e + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x69, offset 0x210 + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xa0, hi: 0xa6}, + {value: 0x812d, lo: 0xa7, hi: 0xad}, + {value: 0x8132, lo: 0xae, hi: 0xaf}, + // Block 0x6a, offset 0x214 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6b, offset 0x219 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6c, offset 0x21b + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6d, offset 0x21d + {value: 0x0000, lo: 0x04}, + {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, + {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, + {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, + {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, + // Block 0x6e, offset 0x222 + {value: 0x0000, lo: 0x05}, + {value: 0x4a9f, lo: 0x82, hi: 0x87}, + {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, + {value: 0x4a9f, lo: 0x92, hi: 0x97}, + {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x6f, offset 0x228 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x70, offset 0x22a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x71, offset 0x22c + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x72, offset 0x22e + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x73, offset 0x234 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x74, offset 0x237 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x75, offset 0x23a + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x76, offset 0x242 + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x77, offset 0x249 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x78, offset 0x24c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x79, offset 0x24f + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x7a, offset 0x251 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x7b, offset 0x259 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + // Block 0x7c, offset 0x25c + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7d, offset 0x263 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7e, offset 0x266 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7f, offset 0x26c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x80, offset 0x26e + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x81, offset 0x271 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x82, offset 0x273 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x83, offset 0x275 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x84, offset 0x277 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x85, offset 0x279 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x86, offset 0x27c + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x87, offset 0x27e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x88, offset 0x280 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x89, offset 0x282 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8a, offset 0x28f + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x8b, offset 0x299 + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x8c, offset 0x29b + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8d, offset 0x29d + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x8e, offset 0x2a3 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x8f, offset 0x2a5 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x90, offset 0x2a8 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 17104 bytes (16.70 KiB). Checksum: d985061cf5307b35. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 91: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 91 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 93 blocks, 5952 entries, 11904 bytes +// The third block is the zero block. +var nfkcValues = [5952]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, + // Block 0x5, offset 0x140 + 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2dee, 0x185: 0x2df4, + 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, + 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x42a5, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x425a, 0x285: 0x447b, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, + 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, + 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, + 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, + 0x2f9: 0x01a6, + // Block 0xc, offset 0x300 + 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, + 0x306: 0xa000, 0x307: 0x3709, + 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3733, 0x342: 0x37b7, + 0x350: 0x370f, 0x351: 0x3793, + 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, + 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, + 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, + 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, + 0x378: 0x3787, 0x379: 0x380b, + // Block 0xe, offset 0x380 + 0x387: 0x1d61, + 0x391: 0x812d, + 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, + 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, + 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, + 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, + 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, + 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, + 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, + 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x812d, + 0x3f0: 0x811e, 0x3f5: 0x1d84, + 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, + 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, + 0x412: 0x2d4e, + 0x434: 0x8102, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d56, + 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8, + 0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107, + 0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0, + 0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9, + 0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be, + 0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5, + 0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa, + 0x46a: 0x01fd, + 0x478: 0x020c, + // Block 0x12, offset 0x480 + 0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101, + 0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116, + 0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128, + 0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137, + 0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec, + 0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5, + 0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x8132, 0x4c1: 0x8132, 0x4c2: 0x812d, 0x4c3: 0x8132, 0x4c4: 0x8132, 0x4c5: 0x8132, + 0x4c6: 0x8132, 0x4c7: 0x8132, 0x4c8: 0x8132, 0x4c9: 0x8132, 0x4ca: 0x812d, 0x4cb: 0x8132, + 0x4cc: 0x8132, 0x4cd: 0x8135, 0x4ce: 0x812a, 0x4cf: 0x812d, 0x4d0: 0x8129, 0x4d1: 0x8132, + 0x4d2: 0x8132, 0x4d3: 0x8132, 0x4d4: 0x8132, 0x4d5: 0x8132, 0x4d6: 0x8132, 0x4d7: 0x8132, + 0x4d8: 0x8132, 0x4d9: 0x8132, 0x4da: 0x8132, 0x4db: 0x8132, 0x4dc: 0x8132, 0x4dd: 0x8132, + 0x4de: 0x8132, 0x4df: 0x8132, 0x4e0: 0x8132, 0x4e1: 0x8132, 0x4e2: 0x8132, 0x4e3: 0x8132, + 0x4e4: 0x8132, 0x4e5: 0x8132, 0x4e6: 0x8132, 0x4e7: 0x8132, 0x4e8: 0x8132, 0x4e9: 0x8132, + 0x4ea: 0x8132, 0x4eb: 0x8132, 0x4ec: 0x8132, 0x4ed: 0x8132, 0x4ee: 0x8132, 0x4ef: 0x8132, + 0x4f0: 0x8132, 0x4f1: 0x8132, 0x4f2: 0x8132, 0x4f3: 0x8132, 0x4f4: 0x8132, 0x4f5: 0x8132, + 0x4f6: 0x8133, 0x4f7: 0x8131, 0x4f8: 0x8131, 0x4f9: 0x812d, 0x4fb: 0x8132, + 0x4fc: 0x8134, 0x4fd: 0x812d, 0x4fe: 0x8132, 0x4ff: 0x812d, + // Block 0x14, offset 0x500 + 0x500: 0x2f97, 0x501: 0x32a3, 0x502: 0x2fa1, 0x503: 0x32ad, 0x504: 0x2fa6, 0x505: 0x32b2, + 0x506: 0x2fab, 0x507: 0x32b7, 0x508: 0x38cc, 0x509: 0x3a5b, 0x50a: 0x2fc4, 0x50b: 0x32d0, + 0x50c: 0x2fce, 0x50d: 0x32da, 0x50e: 0x2fdd, 0x50f: 0x32e9, 0x510: 0x2fd3, 0x511: 0x32df, + 0x512: 0x2fd8, 0x513: 0x32e4, 0x514: 0x38ef, 0x515: 0x3a7e, 0x516: 0x38f6, 0x517: 0x3a85, + 0x518: 0x3019, 0x519: 0x3325, 0x51a: 0x301e, 0x51b: 0x332a, 0x51c: 0x3904, 0x51d: 0x3a93, + 0x51e: 0x3023, 0x51f: 0x332f, 0x520: 0x3032, 0x521: 0x333e, 0x522: 0x3050, 0x523: 0x335c, + 0x524: 0x305f, 0x525: 0x336b, 0x526: 0x3055, 0x527: 0x3361, 0x528: 0x3064, 0x529: 0x3370, + 0x52a: 0x3069, 0x52b: 0x3375, 0x52c: 0x30af, 0x52d: 0x33bb, 0x52e: 0x390b, 0x52f: 0x3a9a, + 0x530: 0x30b9, 0x531: 0x33ca, 0x532: 0x30c3, 0x533: 0x33d4, 0x534: 0x30cd, 0x535: 0x33de, + 0x536: 0x46c4, 0x537: 0x4755, 0x538: 0x3912, 0x539: 0x3aa1, 0x53a: 0x30e6, 0x53b: 0x33f7, + 0x53c: 0x30e1, 0x53d: 0x33f2, 0x53e: 0x30eb, 0x53f: 0x33fc, + // Block 0x15, offset 0x540 + 0x540: 0x30f0, 0x541: 0x3401, 0x542: 0x30f5, 0x543: 0x3406, 0x544: 0x3109, 0x545: 0x341a, + 0x546: 0x3113, 0x547: 0x3424, 0x548: 0x3122, 0x549: 0x3433, 0x54a: 0x311d, 0x54b: 0x342e, + 0x54c: 0x3935, 0x54d: 0x3ac4, 0x54e: 0x3943, 0x54f: 0x3ad2, 0x550: 0x394a, 0x551: 0x3ad9, + 0x552: 0x3951, 0x553: 0x3ae0, 0x554: 0x314f, 0x555: 0x3460, 0x556: 0x3154, 0x557: 0x3465, + 0x558: 0x315e, 0x559: 0x346f, 0x55a: 0x46f1, 0x55b: 0x4782, 0x55c: 0x3997, 0x55d: 0x3b26, + 0x55e: 0x3177, 0x55f: 0x3488, 0x560: 0x3181, 0x561: 0x3492, 0x562: 0x4700, 0x563: 0x4791, + 0x564: 0x399e, 0x565: 0x3b2d, 0x566: 0x39a5, 0x567: 0x3b34, 0x568: 0x39ac, 0x569: 0x3b3b, + 0x56a: 0x3190, 0x56b: 0x34a1, 0x56c: 0x319a, 0x56d: 0x34b0, 0x56e: 0x31ae, 0x56f: 0x34c4, + 0x570: 0x31a9, 0x571: 0x34bf, 0x572: 0x31ea, 0x573: 0x3500, 0x574: 0x31f9, 0x575: 0x350f, + 0x576: 0x31f4, 0x577: 0x350a, 0x578: 0x39b3, 0x579: 0x3b42, 0x57a: 0x39ba, 0x57b: 0x3b49, + 0x57c: 0x31fe, 0x57d: 0x3514, 0x57e: 0x3203, 0x57f: 0x3519, + // Block 0x16, offset 0x580 + 0x580: 0x3208, 0x581: 0x351e, 0x582: 0x320d, 0x583: 0x3523, 0x584: 0x321c, 0x585: 0x3532, + 0x586: 0x3217, 0x587: 0x352d, 0x588: 0x3221, 0x589: 0x353c, 0x58a: 0x3226, 0x58b: 0x3541, + 0x58c: 0x322b, 0x58d: 0x3546, 0x58e: 0x3249, 0x58f: 0x3564, 0x590: 0x3262, 0x591: 0x3582, + 0x592: 0x3271, 0x593: 0x3591, 0x594: 0x3276, 0x595: 0x3596, 0x596: 0x337a, 0x597: 0x34a6, + 0x598: 0x3537, 0x599: 0x3573, 0x59a: 0x1be0, 0x59b: 0x42d7, + 0x5a0: 0x46a1, 0x5a1: 0x4732, 0x5a2: 0x2f83, 0x5a3: 0x328f, + 0x5a4: 0x3878, 0x5a5: 0x3a07, 0x5a6: 0x3871, 0x5a7: 0x3a00, 0x5a8: 0x3886, 0x5a9: 0x3a15, + 0x5aa: 0x387f, 0x5ab: 0x3a0e, 0x5ac: 0x38be, 0x5ad: 0x3a4d, 0x5ae: 0x3894, 0x5af: 0x3a23, + 0x5b0: 0x388d, 0x5b1: 0x3a1c, 0x5b2: 0x38a2, 0x5b3: 0x3a31, 0x5b4: 0x389b, 0x5b5: 0x3a2a, + 0x5b6: 0x38c5, 0x5b7: 0x3a54, 0x5b8: 0x46b5, 0x5b9: 0x4746, 0x5ba: 0x3000, 0x5bb: 0x330c, + 0x5bc: 0x2fec, 0x5bd: 0x32f8, 0x5be: 0x38da, 0x5bf: 0x3a69, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x38d3, 0x5c1: 0x3a62, 0x5c2: 0x38e8, 0x5c3: 0x3a77, 0x5c4: 0x38e1, 0x5c5: 0x3a70, + 0x5c6: 0x38fd, 0x5c7: 0x3a8c, 0x5c8: 0x3091, 0x5c9: 0x339d, 0x5ca: 0x30a5, 0x5cb: 0x33b1, + 0x5cc: 0x46e7, 0x5cd: 0x4778, 0x5ce: 0x3136, 0x5cf: 0x3447, 0x5d0: 0x3920, 0x5d1: 0x3aaf, + 0x5d2: 0x3919, 0x5d3: 0x3aa8, 0x5d4: 0x392e, 0x5d5: 0x3abd, 0x5d6: 0x3927, 0x5d7: 0x3ab6, + 0x5d8: 0x3989, 0x5d9: 0x3b18, 0x5da: 0x396d, 0x5db: 0x3afc, 0x5dc: 0x3966, 0x5dd: 0x3af5, + 0x5de: 0x397b, 0x5df: 0x3b0a, 0x5e0: 0x3974, 0x5e1: 0x3b03, 0x5e2: 0x3982, 0x5e3: 0x3b11, + 0x5e4: 0x31e5, 0x5e5: 0x34fb, 0x5e6: 0x31c7, 0x5e7: 0x34dd, 0x5e8: 0x39e4, 0x5e9: 0x3b73, + 0x5ea: 0x39dd, 0x5eb: 0x3b6c, 0x5ec: 0x39f2, 0x5ed: 0x3b81, 0x5ee: 0x39eb, 0x5ef: 0x3b7a, + 0x5f0: 0x39f9, 0x5f1: 0x3b88, 0x5f2: 0x3230, 0x5f3: 0x354b, 0x5f4: 0x3258, 0x5f5: 0x3578, + 0x5f6: 0x3253, 0x5f7: 0x356e, 0x5f8: 0x323f, 0x5f9: 0x355a, + // Block 0x18, offset 0x600 + 0x600: 0x4804, 0x601: 0x480a, 0x602: 0x491e, 0x603: 0x4936, 0x604: 0x4926, 0x605: 0x493e, + 0x606: 0x492e, 0x607: 0x4946, 0x608: 0x47aa, 0x609: 0x47b0, 0x60a: 0x488e, 0x60b: 0x48a6, + 0x60c: 0x4896, 0x60d: 0x48ae, 0x60e: 0x489e, 0x60f: 0x48b6, 0x610: 0x4816, 0x611: 0x481c, + 0x612: 0x3db8, 0x613: 0x3dc8, 0x614: 0x3dc0, 0x615: 0x3dd0, + 0x618: 0x47b6, 0x619: 0x47bc, 0x61a: 0x3ce8, 0x61b: 0x3cf8, 0x61c: 0x3cf0, 0x61d: 0x3d00, + 0x620: 0x482e, 0x621: 0x4834, 0x622: 0x494e, 0x623: 0x4966, + 0x624: 0x4956, 0x625: 0x496e, 0x626: 0x495e, 0x627: 0x4976, 0x628: 0x47c2, 0x629: 0x47c8, + 0x62a: 0x48be, 0x62b: 0x48d6, 0x62c: 0x48c6, 0x62d: 0x48de, 0x62e: 0x48ce, 0x62f: 0x48e6, + 0x630: 0x4846, 0x631: 0x484c, 0x632: 0x3e18, 0x633: 0x3e30, 0x634: 0x3e20, 0x635: 0x3e38, + 0x636: 0x3e28, 0x637: 0x3e40, 0x638: 0x47ce, 0x639: 0x47d4, 0x63a: 0x3d18, 0x63b: 0x3d30, + 0x63c: 0x3d20, 0x63d: 0x3d38, 0x63e: 0x3d28, 0x63f: 0x3d40, + // Block 0x19, offset 0x640 + 0x640: 0x4852, 0x641: 0x4858, 0x642: 0x3e48, 0x643: 0x3e58, 0x644: 0x3e50, 0x645: 0x3e60, + 0x648: 0x47da, 0x649: 0x47e0, 0x64a: 0x3d48, 0x64b: 0x3d58, + 0x64c: 0x3d50, 0x64d: 0x3d60, 0x650: 0x4864, 0x651: 0x486a, + 0x652: 0x3e80, 0x653: 0x3e98, 0x654: 0x3e88, 0x655: 0x3ea0, 0x656: 0x3e90, 0x657: 0x3ea8, + 0x659: 0x47e6, 0x65b: 0x3d68, 0x65d: 0x3d70, + 0x65f: 0x3d78, 0x660: 0x487c, 0x661: 0x4882, 0x662: 0x497e, 0x663: 0x4996, + 0x664: 0x4986, 0x665: 0x499e, 0x666: 0x498e, 0x667: 0x49a6, 0x668: 0x47ec, 0x669: 0x47f2, + 0x66a: 0x48ee, 0x66b: 0x4906, 0x66c: 0x48f6, 0x66d: 0x490e, 0x66e: 0x48fe, 0x66f: 0x4916, + 0x670: 0x47f8, 0x671: 0x431e, 0x672: 0x3691, 0x673: 0x4324, 0x674: 0x4822, 0x675: 0x432a, + 0x676: 0x36a3, 0x677: 0x4330, 0x678: 0x36c1, 0x679: 0x4336, 0x67a: 0x36d9, 0x67b: 0x433c, + 0x67c: 0x4870, 0x67d: 0x4342, + // Block 0x1a, offset 0x680 + 0x680: 0x3da0, 0x681: 0x3da8, 0x682: 0x4184, 0x683: 0x41a2, 0x684: 0x418e, 0x685: 0x41ac, + 0x686: 0x4198, 0x687: 0x41b6, 0x688: 0x3cd8, 0x689: 0x3ce0, 0x68a: 0x40d0, 0x68b: 0x40ee, + 0x68c: 0x40da, 0x68d: 0x40f8, 0x68e: 0x40e4, 0x68f: 0x4102, 0x690: 0x3de8, 0x691: 0x3df0, + 0x692: 0x41c0, 0x693: 0x41de, 0x694: 0x41ca, 0x695: 0x41e8, 0x696: 0x41d4, 0x697: 0x41f2, + 0x698: 0x3d08, 0x699: 0x3d10, 0x69a: 0x410c, 0x69b: 0x412a, 0x69c: 0x4116, 0x69d: 0x4134, + 0x69e: 0x4120, 0x69f: 0x413e, 0x6a0: 0x3ec0, 0x6a1: 0x3ec8, 0x6a2: 0x41fc, 0x6a3: 0x421a, + 0x6a4: 0x4206, 0x6a5: 0x4224, 0x6a6: 0x4210, 0x6a7: 0x422e, 0x6a8: 0x3d80, 0x6a9: 0x3d88, + 0x6aa: 0x4148, 0x6ab: 0x4166, 0x6ac: 0x4152, 0x6ad: 0x4170, 0x6ae: 0x415c, 0x6af: 0x417a, + 0x6b0: 0x3685, 0x6b1: 0x367f, 0x6b2: 0x3d90, 0x6b3: 0x368b, 0x6b4: 0x3d98, + 0x6b6: 0x4810, 0x6b7: 0x3db0, 0x6b8: 0x35f5, 0x6b9: 0x35ef, 0x6ba: 0x35e3, 0x6bb: 0x42ee, + 0x6bc: 0x35fb, 0x6bd: 0x4287, 0x6be: 0x01d3, 0x6bf: 0x4287, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x42a0, 0x6c1: 0x4482, 0x6c2: 0x3dd8, 0x6c3: 0x369d, 0x6c4: 0x3de0, + 0x6c6: 0x483a, 0x6c7: 0x3df8, 0x6c8: 0x3601, 0x6c9: 0x42f4, 0x6ca: 0x360d, 0x6cb: 0x42fa, + 0x6cc: 0x3619, 0x6cd: 0x4489, 0x6ce: 0x4490, 0x6cf: 0x4497, 0x6d0: 0x36b5, 0x6d1: 0x36af, + 0x6d2: 0x3e00, 0x6d3: 0x44e4, 0x6d6: 0x36bb, 0x6d7: 0x3e10, + 0x6d8: 0x3631, 0x6d9: 0x362b, 0x6da: 0x361f, 0x6db: 0x4300, 0x6dd: 0x449e, + 0x6de: 0x44a5, 0x6df: 0x44ac, 0x6e0: 0x36eb, 0x6e1: 0x36e5, 0x6e2: 0x3e68, 0x6e3: 0x44ec, + 0x6e4: 0x36cd, 0x6e5: 0x36d3, 0x6e6: 0x36f1, 0x6e7: 0x3e78, 0x6e8: 0x3661, 0x6e9: 0x365b, + 0x6ea: 0x364f, 0x6eb: 0x430c, 0x6ec: 0x3649, 0x6ed: 0x4474, 0x6ee: 0x447b, 0x6ef: 0x0081, + 0x6f2: 0x3eb0, 0x6f3: 0x36f7, 0x6f4: 0x3eb8, + 0x6f6: 0x4888, 0x6f7: 0x3ed0, 0x6f8: 0x363d, 0x6f9: 0x4306, 0x6fa: 0x366d, 0x6fb: 0x4318, + 0x6fc: 0x3679, 0x6fd: 0x425a, 0x6fe: 0x428c, + // Block 0x1c, offset 0x700 + 0x700: 0x1bd8, 0x701: 0x1bdc, 0x702: 0x0047, 0x703: 0x1c54, 0x705: 0x1be8, + 0x706: 0x1bec, 0x707: 0x00e9, 0x709: 0x1c58, 0x70a: 0x008f, 0x70b: 0x0051, + 0x70c: 0x0051, 0x70d: 0x0051, 0x70e: 0x0091, 0x70f: 0x00da, 0x710: 0x0053, 0x711: 0x0053, + 0x712: 0x0059, 0x713: 0x0099, 0x715: 0x005d, 0x716: 0x198d, + 0x719: 0x0061, 0x71a: 0x0063, 0x71b: 0x0065, 0x71c: 0x0065, 0x71d: 0x0065, + 0x720: 0x199f, 0x721: 0x1bc8, 0x722: 0x19a8, + 0x724: 0x0075, 0x726: 0x01b8, 0x728: 0x0075, + 0x72a: 0x0057, 0x72b: 0x42d2, 0x72c: 0x0045, 0x72d: 0x0047, 0x72f: 0x008b, + 0x730: 0x004b, 0x731: 0x004d, 0x733: 0x005b, 0x734: 0x009f, 0x735: 0x0215, + 0x736: 0x0218, 0x737: 0x021b, 0x738: 0x021e, 0x739: 0x0093, 0x73b: 0x1b98, + 0x73c: 0x01e8, 0x73d: 0x01c1, 0x73e: 0x0179, 0x73f: 0x01a0, + // Block 0x1d, offset 0x740 + 0x740: 0x0463, 0x745: 0x0049, + 0x746: 0x0089, 0x747: 0x008b, 0x748: 0x0093, 0x749: 0x0095, + 0x750: 0x222e, 0x751: 0x223a, + 0x752: 0x22ee, 0x753: 0x2216, 0x754: 0x229a, 0x755: 0x2222, 0x756: 0x22a0, 0x757: 0x22b8, + 0x758: 0x22c4, 0x759: 0x2228, 0x75a: 0x22ca, 0x75b: 0x2234, 0x75c: 0x22be, 0x75d: 0x22d0, + 0x75e: 0x22d6, 0x75f: 0x1cbc, 0x760: 0x0053, 0x761: 0x195a, 0x762: 0x1ba4, 0x763: 0x1963, + 0x764: 0x006d, 0x765: 0x19ab, 0x766: 0x1bd0, 0x767: 0x1d48, 0x768: 0x1966, 0x769: 0x0071, + 0x76a: 0x19b7, 0x76b: 0x1bd4, 0x76c: 0x0059, 0x76d: 0x0047, 0x76e: 0x0049, 0x76f: 0x005b, + 0x770: 0x0093, 0x771: 0x19e4, 0x772: 0x1c18, 0x773: 0x19ed, 0x774: 0x00ad, 0x775: 0x1a62, + 0x776: 0x1c4c, 0x777: 0x1d5c, 0x778: 0x19f0, 0x779: 0x00b1, 0x77a: 0x1a65, 0x77b: 0x1c50, + 0x77c: 0x0099, 0x77d: 0x0087, 0x77e: 0x0089, 0x77f: 0x009b, + // Block 0x1e, offset 0x780 + 0x781: 0x3c06, 0x783: 0xa000, 0x784: 0x3c0d, 0x785: 0xa000, + 0x787: 0x3c14, 0x788: 0xa000, 0x789: 0x3c1b, + 0x78d: 0xa000, + 0x7a0: 0x2f65, 0x7a1: 0xa000, 0x7a2: 0x3c29, + 0x7a4: 0xa000, 0x7a5: 0xa000, + 0x7ad: 0x3c22, 0x7ae: 0x2f60, 0x7af: 0x2f6a, + 0x7b0: 0x3c30, 0x7b1: 0x3c37, 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0x3c3e, 0x7b5: 0x3c45, + 0x7b6: 0xa000, 0x7b7: 0xa000, 0x7b8: 0x3c4c, 0x7b9: 0x3c53, 0x7ba: 0xa000, 0x7bb: 0xa000, + 0x7bc: 0xa000, 0x7bd: 0xa000, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x3c5a, 0x7c1: 0x3c61, 0x7c2: 0xa000, 0x7c3: 0xa000, 0x7c4: 0x3c76, 0x7c5: 0x3c7d, + 0x7c6: 0xa000, 0x7c7: 0xa000, 0x7c8: 0x3c84, 0x7c9: 0x3c8b, + 0x7d1: 0xa000, + 0x7d2: 0xa000, + 0x7e2: 0xa000, + 0x7e8: 0xa000, 0x7e9: 0xa000, + 0x7eb: 0xa000, 0x7ec: 0x3ca0, 0x7ed: 0x3ca7, 0x7ee: 0x3cae, 0x7ef: 0x3cb5, + 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0xa000, 0x7f5: 0xa000, + // Block 0x20, offset 0x800 + 0x820: 0x0023, 0x821: 0x0025, 0x822: 0x0027, 0x823: 0x0029, + 0x824: 0x002b, 0x825: 0x002d, 0x826: 0x002f, 0x827: 0x0031, 0x828: 0x0033, 0x829: 0x1882, + 0x82a: 0x1885, 0x82b: 0x1888, 0x82c: 0x188b, 0x82d: 0x188e, 0x82e: 0x1891, 0x82f: 0x1894, + 0x830: 0x1897, 0x831: 0x189a, 0x832: 0x189d, 0x833: 0x18a6, 0x834: 0x1a68, 0x835: 0x1a6c, + 0x836: 0x1a70, 0x837: 0x1a74, 0x838: 0x1a78, 0x839: 0x1a7c, 0x83a: 0x1a80, 0x83b: 0x1a84, + 0x83c: 0x1a88, 0x83d: 0x1c80, 0x83e: 0x1c85, 0x83f: 0x1c8a, + // Block 0x21, offset 0x840 + 0x840: 0x1c8f, 0x841: 0x1c94, 0x842: 0x1c99, 0x843: 0x1c9e, 0x844: 0x1ca3, 0x845: 0x1ca8, + 0x846: 0x1cad, 0x847: 0x1cb2, 0x848: 0x187f, 0x849: 0x18a3, 0x84a: 0x18c7, 0x84b: 0x18eb, + 0x84c: 0x190f, 0x84d: 0x1918, 0x84e: 0x191e, 0x84f: 0x1924, 0x850: 0x192a, 0x851: 0x1b60, + 0x852: 0x1b64, 0x853: 0x1b68, 0x854: 0x1b6c, 0x855: 0x1b70, 0x856: 0x1b74, 0x857: 0x1b78, + 0x858: 0x1b7c, 0x859: 0x1b80, 0x85a: 0x1b84, 0x85b: 0x1b88, 0x85c: 0x1af4, 0x85d: 0x1af8, + 0x85e: 0x1afc, 0x85f: 0x1b00, 0x860: 0x1b04, 0x861: 0x1b08, 0x862: 0x1b0c, 0x863: 0x1b10, + 0x864: 0x1b14, 0x865: 0x1b18, 0x866: 0x1b1c, 0x867: 0x1b20, 0x868: 0x1b24, 0x869: 0x1b28, + 0x86a: 0x1b2c, 0x86b: 0x1b30, 0x86c: 0x1b34, 0x86d: 0x1b38, 0x86e: 0x1b3c, 0x86f: 0x1b40, + 0x870: 0x1b44, 0x871: 0x1b48, 0x872: 0x1b4c, 0x873: 0x1b50, 0x874: 0x1b54, 0x875: 0x1b58, + 0x876: 0x0043, 0x877: 0x0045, 0x878: 0x0047, 0x879: 0x0049, 0x87a: 0x004b, 0x87b: 0x004d, + 0x87c: 0x004f, 0x87d: 0x0051, 0x87e: 0x0053, 0x87f: 0x0055, + // Block 0x22, offset 0x880 + 0x880: 0x06bf, 0x881: 0x06e3, 0x882: 0x06ef, 0x883: 0x06ff, 0x884: 0x0707, 0x885: 0x0713, + 0x886: 0x071b, 0x887: 0x0723, 0x888: 0x072f, 0x889: 0x0783, 0x88a: 0x079b, 0x88b: 0x07ab, + 0x88c: 0x07bb, 0x88d: 0x07cb, 0x88e: 0x07db, 0x88f: 0x07fb, 0x890: 0x07ff, 0x891: 0x0803, + 0x892: 0x0837, 0x893: 0x085f, 0x894: 0x086f, 0x895: 0x0877, 0x896: 0x087b, 0x897: 0x0887, + 0x898: 0x08a3, 0x899: 0x08a7, 0x89a: 0x08bf, 0x89b: 0x08c3, 0x89c: 0x08cb, 0x89d: 0x08db, + 0x89e: 0x0977, 0x89f: 0x098b, 0x8a0: 0x09cb, 0x8a1: 0x09df, 0x8a2: 0x09e7, 0x8a3: 0x09eb, + 0x8a4: 0x09fb, 0x8a5: 0x0a17, 0x8a6: 0x0a43, 0x8a7: 0x0a4f, 0x8a8: 0x0a6f, 0x8a9: 0x0a7b, + 0x8aa: 0x0a7f, 0x8ab: 0x0a83, 0x8ac: 0x0a9b, 0x8ad: 0x0a9f, 0x8ae: 0x0acb, 0x8af: 0x0ad7, + 0x8b0: 0x0adf, 0x8b1: 0x0ae7, 0x8b2: 0x0af7, 0x8b3: 0x0aff, 0x8b4: 0x0b07, 0x8b5: 0x0b33, + 0x8b6: 0x0b37, 0x8b7: 0x0b3f, 0x8b8: 0x0b43, 0x8b9: 0x0b4b, 0x8ba: 0x0b53, 0x8bb: 0x0b63, + 0x8bc: 0x0b7f, 0x8bd: 0x0bf7, 0x8be: 0x0c0b, 0x8bf: 0x0c0f, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0c8f, 0x8c1: 0x0c93, 0x8c2: 0x0ca7, 0x8c3: 0x0cab, 0x8c4: 0x0cb3, 0x8c5: 0x0cbb, + 0x8c6: 0x0cc3, 0x8c7: 0x0ccf, 0x8c8: 0x0cf7, 0x8c9: 0x0d07, 0x8ca: 0x0d1b, 0x8cb: 0x0d8b, + 0x8cc: 0x0d97, 0x8cd: 0x0da7, 0x8ce: 0x0db3, 0x8cf: 0x0dbf, 0x8d0: 0x0dc7, 0x8d1: 0x0dcb, + 0x8d2: 0x0dcf, 0x8d3: 0x0dd3, 0x8d4: 0x0dd7, 0x8d5: 0x0e8f, 0x8d6: 0x0ed7, 0x8d7: 0x0ee3, + 0x8d8: 0x0ee7, 0x8d9: 0x0eeb, 0x8da: 0x0eef, 0x8db: 0x0ef7, 0x8dc: 0x0efb, 0x8dd: 0x0f0f, + 0x8de: 0x0f2b, 0x8df: 0x0f33, 0x8e0: 0x0f73, 0x8e1: 0x0f77, 0x8e2: 0x0f7f, 0x8e3: 0x0f83, + 0x8e4: 0x0f8b, 0x8e5: 0x0f8f, 0x8e6: 0x0fb3, 0x8e7: 0x0fb7, 0x8e8: 0x0fd3, 0x8e9: 0x0fd7, + 0x8ea: 0x0fdb, 0x8eb: 0x0fdf, 0x8ec: 0x0ff3, 0x8ed: 0x1017, 0x8ee: 0x101b, 0x8ef: 0x101f, + 0x8f0: 0x1043, 0x8f1: 0x1083, 0x8f2: 0x1087, 0x8f3: 0x10a7, 0x8f4: 0x10b7, 0x8f5: 0x10bf, + 0x8f6: 0x10df, 0x8f7: 0x1103, 0x8f8: 0x1147, 0x8f9: 0x114f, 0x8fa: 0x1163, 0x8fb: 0x116f, + 0x8fc: 0x1177, 0x8fd: 0x117f, 0x8fe: 0x1183, 0x8ff: 0x1187, + // Block 0x24, offset 0x900 + 0x900: 0x119f, 0x901: 0x11a3, 0x902: 0x11bf, 0x903: 0x11c7, 0x904: 0x11cf, 0x905: 0x11d3, + 0x906: 0x11df, 0x907: 0x11e7, 0x908: 0x11eb, 0x909: 0x11ef, 0x90a: 0x11f7, 0x90b: 0x11fb, + 0x90c: 0x129b, 0x90d: 0x12af, 0x90e: 0x12e3, 0x90f: 0x12e7, 0x910: 0x12ef, 0x911: 0x131b, + 0x912: 0x1323, 0x913: 0x132b, 0x914: 0x1333, 0x915: 0x136f, 0x916: 0x1373, 0x917: 0x137b, + 0x918: 0x137f, 0x919: 0x1383, 0x91a: 0x13af, 0x91b: 0x13b3, 0x91c: 0x13bb, 0x91d: 0x13cf, + 0x91e: 0x13d3, 0x91f: 0x13ef, 0x920: 0x13f7, 0x921: 0x13fb, 0x922: 0x141f, 0x923: 0x143f, + 0x924: 0x1453, 0x925: 0x1457, 0x926: 0x145f, 0x927: 0x148b, 0x928: 0x148f, 0x929: 0x149f, + 0x92a: 0x14c3, 0x92b: 0x14cf, 0x92c: 0x14df, 0x92d: 0x14f7, 0x92e: 0x14ff, 0x92f: 0x1503, + 0x930: 0x1507, 0x931: 0x150b, 0x932: 0x1517, 0x933: 0x151b, 0x934: 0x1523, 0x935: 0x153f, + 0x936: 0x1543, 0x937: 0x1547, 0x938: 0x155f, 0x939: 0x1563, 0x93a: 0x156b, 0x93b: 0x157f, + 0x93c: 0x1583, 0x93d: 0x1587, 0x93e: 0x158f, 0x93f: 0x1593, + // Block 0x25, offset 0x940 + 0x946: 0xa000, 0x94b: 0xa000, + 0x94c: 0x3f08, 0x94d: 0xa000, 0x94e: 0x3f10, 0x94f: 0xa000, 0x950: 0x3f18, 0x951: 0xa000, + 0x952: 0x3f20, 0x953: 0xa000, 0x954: 0x3f28, 0x955: 0xa000, 0x956: 0x3f30, 0x957: 0xa000, + 0x958: 0x3f38, 0x959: 0xa000, 0x95a: 0x3f40, 0x95b: 0xa000, 0x95c: 0x3f48, 0x95d: 0xa000, + 0x95e: 0x3f50, 0x95f: 0xa000, 0x960: 0x3f58, 0x961: 0xa000, 0x962: 0x3f60, + 0x964: 0xa000, 0x965: 0x3f68, 0x966: 0xa000, 0x967: 0x3f70, 0x968: 0xa000, 0x969: 0x3f78, + 0x96f: 0xa000, + 0x970: 0x3f80, 0x971: 0x3f88, 0x972: 0xa000, 0x973: 0x3f90, 0x974: 0x3f98, 0x975: 0xa000, + 0x976: 0x3fa0, 0x977: 0x3fa8, 0x978: 0xa000, 0x979: 0x3fb0, 0x97a: 0x3fb8, 0x97b: 0xa000, + 0x97c: 0x3fc0, 0x97d: 0x3fc8, + // Block 0x26, offset 0x980 + 0x994: 0x3f00, + 0x999: 0x9903, 0x99a: 0x9903, 0x99b: 0x42dc, 0x99c: 0x42e2, 0x99d: 0xa000, + 0x99e: 0x3fd0, 0x99f: 0x26b4, + 0x9a6: 0xa000, + 0x9ab: 0xa000, 0x9ac: 0x3fe0, 0x9ad: 0xa000, 0x9ae: 0x3fe8, 0x9af: 0xa000, + 0x9b0: 0x3ff0, 0x9b1: 0xa000, 0x9b2: 0x3ff8, 0x9b3: 0xa000, 0x9b4: 0x4000, 0x9b5: 0xa000, + 0x9b6: 0x4008, 0x9b7: 0xa000, 0x9b8: 0x4010, 0x9b9: 0xa000, 0x9ba: 0x4018, 0x9bb: 0xa000, + 0x9bc: 0x4020, 0x9bd: 0xa000, 0x9be: 0x4028, 0x9bf: 0xa000, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x4030, 0x9c1: 0xa000, 0x9c2: 0x4038, 0x9c4: 0xa000, 0x9c5: 0x4040, + 0x9c6: 0xa000, 0x9c7: 0x4048, 0x9c8: 0xa000, 0x9c9: 0x4050, + 0x9cf: 0xa000, 0x9d0: 0x4058, 0x9d1: 0x4060, + 0x9d2: 0xa000, 0x9d3: 0x4068, 0x9d4: 0x4070, 0x9d5: 0xa000, 0x9d6: 0x4078, 0x9d7: 0x4080, + 0x9d8: 0xa000, 0x9d9: 0x4088, 0x9da: 0x4090, 0x9db: 0xa000, 0x9dc: 0x4098, 0x9dd: 0x40a0, + 0x9ef: 0xa000, + 0x9f0: 0xa000, 0x9f1: 0xa000, 0x9f2: 0xa000, 0x9f4: 0x3fd8, + 0x9f7: 0x40a8, 0x9f8: 0x40b0, 0x9f9: 0x40b8, 0x9fa: 0x40c0, + 0x9fd: 0xa000, 0x9fe: 0x40c8, 0x9ff: 0x26c9, + // Block 0x28, offset 0xa00 + 0xa00: 0x0367, 0xa01: 0x032b, 0xa02: 0x032f, 0xa03: 0x0333, 0xa04: 0x037b, 0xa05: 0x0337, + 0xa06: 0x033b, 0xa07: 0x033f, 0xa08: 0x0343, 0xa09: 0x0347, 0xa0a: 0x034b, 0xa0b: 0x034f, + 0xa0c: 0x0353, 0xa0d: 0x0357, 0xa0e: 0x035b, 0xa0f: 0x49bd, 0xa10: 0x49c3, 0xa11: 0x49c9, + 0xa12: 0x49cf, 0xa13: 0x49d5, 0xa14: 0x49db, 0xa15: 0x49e1, 0xa16: 0x49e7, 0xa17: 0x49ed, + 0xa18: 0x49f3, 0xa19: 0x49f9, 0xa1a: 0x49ff, 0xa1b: 0x4a05, 0xa1c: 0x4a0b, 0xa1d: 0x4a11, + 0xa1e: 0x4a17, 0xa1f: 0x4a1d, 0xa20: 0x4a23, 0xa21: 0x4a29, 0xa22: 0x4a2f, 0xa23: 0x4a35, + 0xa24: 0x03c3, 0xa25: 0x035f, 0xa26: 0x0363, 0xa27: 0x03e7, 0xa28: 0x03eb, 0xa29: 0x03ef, + 0xa2a: 0x03f3, 0xa2b: 0x03f7, 0xa2c: 0x03fb, 0xa2d: 0x03ff, 0xa2e: 0x036b, 0xa2f: 0x0403, + 0xa30: 0x0407, 0xa31: 0x036f, 0xa32: 0x0373, 0xa33: 0x0377, 0xa34: 0x037f, 0xa35: 0x0383, + 0xa36: 0x0387, 0xa37: 0x038b, 0xa38: 0x038f, 0xa39: 0x0393, 0xa3a: 0x0397, 0xa3b: 0x039b, + 0xa3c: 0x039f, 0xa3d: 0x03a3, 0xa3e: 0x03a7, 0xa3f: 0x03ab, + // Block 0x29, offset 0xa40 + 0xa40: 0x03af, 0xa41: 0x03b3, 0xa42: 0x040b, 0xa43: 0x040f, 0xa44: 0x03b7, 0xa45: 0x03bb, + 0xa46: 0x03bf, 0xa47: 0x03c7, 0xa48: 0x03cb, 0xa49: 0x03cf, 0xa4a: 0x03d3, 0xa4b: 0x03d7, + 0xa4c: 0x03db, 0xa4d: 0x03df, 0xa4e: 0x03e3, + 0xa52: 0x06bf, 0xa53: 0x071b, 0xa54: 0x06cb, 0xa55: 0x097b, 0xa56: 0x06cf, 0xa57: 0x06e7, + 0xa58: 0x06d3, 0xa59: 0x0f93, 0xa5a: 0x0707, 0xa5b: 0x06db, 0xa5c: 0x06c3, 0xa5d: 0x09ff, + 0xa5e: 0x098f, 0xa5f: 0x072f, + // Block 0x2a, offset 0xa80 + 0xa80: 0x2054, 0xa81: 0x205a, 0xa82: 0x2060, 0xa83: 0x2066, 0xa84: 0x206c, 0xa85: 0x2072, + 0xa86: 0x2078, 0xa87: 0x207e, 0xa88: 0x2084, 0xa89: 0x208a, 0xa8a: 0x2090, 0xa8b: 0x2096, + 0xa8c: 0x209c, 0xa8d: 0x20a2, 0xa8e: 0x2726, 0xa8f: 0x272f, 0xa90: 0x2738, 0xa91: 0x2741, + 0xa92: 0x274a, 0xa93: 0x2753, 0xa94: 0x275c, 0xa95: 0x2765, 0xa96: 0x276e, 0xa97: 0x2780, + 0xa98: 0x2789, 0xa99: 0x2792, 0xa9a: 0x279b, 0xa9b: 0x27a4, 0xa9c: 0x2777, 0xa9d: 0x2bac, + 0xa9e: 0x2aed, 0xaa0: 0x20a8, 0xaa1: 0x20c0, 0xaa2: 0x20b4, 0xaa3: 0x2108, + 0xaa4: 0x20c6, 0xaa5: 0x20e4, 0xaa6: 0x20ae, 0xaa7: 0x20de, 0xaa8: 0x20ba, 0xaa9: 0x20f0, + 0xaaa: 0x2120, 0xaab: 0x213e, 0xaac: 0x2138, 0xaad: 0x212c, 0xaae: 0x217a, 0xaaf: 0x210e, + 0xab0: 0x211a, 0xab1: 0x2132, 0xab2: 0x2126, 0xab3: 0x2150, 0xab4: 0x20fc, 0xab5: 0x2144, + 0xab6: 0x216e, 0xab7: 0x2156, 0xab8: 0x20ea, 0xab9: 0x20cc, 0xaba: 0x2102, 0xabb: 0x2114, + 0xabc: 0x214a, 0xabd: 0x20d2, 0xabe: 0x2174, 0xabf: 0x20f6, + // Block 0x2b, offset 0xac0 + 0xac0: 0x215c, 0xac1: 0x20d8, 0xac2: 0x2162, 0xac3: 0x2168, 0xac4: 0x092f, 0xac5: 0x0b03, + 0xac6: 0x0ca7, 0xac7: 0x10c7, + 0xad0: 0x1bc4, 0xad1: 0x18a9, + 0xad2: 0x18ac, 0xad3: 0x18af, 0xad4: 0x18b2, 0xad5: 0x18b5, 0xad6: 0x18b8, 0xad7: 0x18bb, + 0xad8: 0x18be, 0xad9: 0x18c1, 0xada: 0x18ca, 0xadb: 0x18cd, 0xadc: 0x18d0, 0xadd: 0x18d3, + 0xade: 0x18d6, 0xadf: 0x18d9, 0xae0: 0x0313, 0xae1: 0x031b, 0xae2: 0x031f, 0xae3: 0x0327, + 0xae4: 0x032b, 0xae5: 0x032f, 0xae6: 0x0337, 0xae7: 0x033f, 0xae8: 0x0343, 0xae9: 0x034b, + 0xaea: 0x034f, 0xaeb: 0x0353, 0xaec: 0x0357, 0xaed: 0x035b, 0xaee: 0x2e18, 0xaef: 0x2e20, + 0xaf0: 0x2e28, 0xaf1: 0x2e30, 0xaf2: 0x2e38, 0xaf3: 0x2e40, 0xaf4: 0x2e48, 0xaf5: 0x2e50, + 0xaf6: 0x2e60, 0xaf7: 0x2e68, 0xaf8: 0x2e70, 0xaf9: 0x2e78, 0xafa: 0x2e80, 0xafb: 0x2e88, + 0xafc: 0x2ed3, 0xafd: 0x2e9b, 0xafe: 0x2e58, + // Block 0x2c, offset 0xb00 + 0xb00: 0x06bf, 0xb01: 0x071b, 0xb02: 0x06cb, 0xb03: 0x097b, 0xb04: 0x071f, 0xb05: 0x07af, + 0xb06: 0x06c7, 0xb07: 0x07ab, 0xb08: 0x070b, 0xb09: 0x0887, 0xb0a: 0x0d07, 0xb0b: 0x0e8f, + 0xb0c: 0x0dd7, 0xb0d: 0x0d1b, 0xb0e: 0x145f, 0xb0f: 0x098b, 0xb10: 0x0ccf, 0xb11: 0x0d4b, + 0xb12: 0x0d0b, 0xb13: 0x104b, 0xb14: 0x08fb, 0xb15: 0x0f03, 0xb16: 0x1387, 0xb17: 0x105f, + 0xb18: 0x0843, 0xb19: 0x108f, 0xb1a: 0x0f9b, 0xb1b: 0x0a17, 0xb1c: 0x140f, 0xb1d: 0x077f, + 0xb1e: 0x08ab, 0xb1f: 0x0df7, 0xb20: 0x1527, 0xb21: 0x0743, 0xb22: 0x07d3, 0xb23: 0x0d9b, + 0xb24: 0x06cf, 0xb25: 0x06e7, 0xb26: 0x06d3, 0xb27: 0x0adb, 0xb28: 0x08ef, 0xb29: 0x087f, + 0xb2a: 0x0a57, 0xb2b: 0x0a4b, 0xb2c: 0x0feb, 0xb2d: 0x073f, 0xb2e: 0x139b, 0xb2f: 0x089b, + 0xb30: 0x09f3, 0xb31: 0x18dc, 0xb32: 0x18df, 0xb33: 0x18e2, 0xb34: 0x18e5, 0xb35: 0x18ee, + 0xb36: 0x18f1, 0xb37: 0x18f4, 0xb38: 0x18f7, 0xb39: 0x18fa, 0xb3a: 0x18fd, 0xb3b: 0x1900, + 0xb3c: 0x1903, 0xb3d: 0x1906, 0xb3e: 0x1909, 0xb3f: 0x1912, + // Block 0x2d, offset 0xb40 + 0xb40: 0x1cc6, 0xb41: 0x1cd5, 0xb42: 0x1ce4, 0xb43: 0x1cf3, 0xb44: 0x1d02, 0xb45: 0x1d11, + 0xb46: 0x1d20, 0xb47: 0x1d2f, 0xb48: 0x1d3e, 0xb49: 0x218c, 0xb4a: 0x219e, 0xb4b: 0x21b0, + 0xb4c: 0x1954, 0xb4d: 0x1c04, 0xb4e: 0x19d2, 0xb4f: 0x1ba8, 0xb50: 0x04cb, 0xb51: 0x04d3, + 0xb52: 0x04db, 0xb53: 0x04e3, 0xb54: 0x04eb, 0xb55: 0x04ef, 0xb56: 0x04f3, 0xb57: 0x04f7, + 0xb58: 0x04fb, 0xb59: 0x04ff, 0xb5a: 0x0503, 0xb5b: 0x0507, 0xb5c: 0x050b, 0xb5d: 0x050f, + 0xb5e: 0x0513, 0xb5f: 0x0517, 0xb60: 0x051b, 0xb61: 0x0523, 0xb62: 0x0527, 0xb63: 0x052b, + 0xb64: 0x052f, 0xb65: 0x0533, 0xb66: 0x0537, 0xb67: 0x053b, 0xb68: 0x053f, 0xb69: 0x0543, + 0xb6a: 0x0547, 0xb6b: 0x054b, 0xb6c: 0x054f, 0xb6d: 0x0553, 0xb6e: 0x0557, 0xb6f: 0x055b, + 0xb70: 0x055f, 0xb71: 0x0563, 0xb72: 0x0567, 0xb73: 0x056f, 0xb74: 0x0577, 0xb75: 0x057f, + 0xb76: 0x0583, 0xb77: 0x0587, 0xb78: 0x058b, 0xb79: 0x058f, 0xb7a: 0x0593, 0xb7b: 0x0597, + 0xb7c: 0x059b, 0xb7d: 0x059f, 0xb7e: 0x05a3, + // Block 0x2e, offset 0xb80 + 0xb80: 0x2b0c, 0xb81: 0x29a8, 0xb82: 0x2b1c, 0xb83: 0x2880, 0xb84: 0x2ee4, 0xb85: 0x288a, + 0xb86: 0x2894, 0xb87: 0x2f28, 0xb88: 0x29b5, 0xb89: 0x289e, 0xb8a: 0x28a8, 0xb8b: 0x28b2, + 0xb8c: 0x29dc, 0xb8d: 0x29e9, 0xb8e: 0x29c2, 0xb8f: 0x29cf, 0xb90: 0x2ea9, 0xb91: 0x29f6, + 0xb92: 0x2a03, 0xb93: 0x2bbe, 0xb94: 0x26bb, 0xb95: 0x2bd1, 0xb96: 0x2be4, 0xb97: 0x2b2c, + 0xb98: 0x2a10, 0xb99: 0x2bf7, 0xb9a: 0x2c0a, 0xb9b: 0x2a1d, 0xb9c: 0x28bc, 0xb9d: 0x28c6, + 0xb9e: 0x2eb7, 0xb9f: 0x2a2a, 0xba0: 0x2b3c, 0xba1: 0x2ef5, 0xba2: 0x28d0, 0xba3: 0x28da, + 0xba4: 0x2a37, 0xba5: 0x28e4, 0xba6: 0x28ee, 0xba7: 0x26d0, 0xba8: 0x26d7, 0xba9: 0x28f8, + 0xbaa: 0x2902, 0xbab: 0x2c1d, 0xbac: 0x2a44, 0xbad: 0x2b4c, 0xbae: 0x2c30, 0xbaf: 0x2a51, + 0xbb0: 0x2916, 0xbb1: 0x290c, 0xbb2: 0x2f3c, 0xbb3: 0x2a5e, 0xbb4: 0x2c43, 0xbb5: 0x2920, + 0xbb6: 0x2b5c, 0xbb7: 0x292a, 0xbb8: 0x2a78, 0xbb9: 0x2934, 0xbba: 0x2a85, 0xbbb: 0x2f06, + 0xbbc: 0x2a6b, 0xbbd: 0x2b6c, 0xbbe: 0x2a92, 0xbbf: 0x26de, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x2f17, 0xbc1: 0x293e, 0xbc2: 0x2948, 0xbc3: 0x2a9f, 0xbc4: 0x2952, 0xbc5: 0x295c, + 0xbc6: 0x2966, 0xbc7: 0x2b7c, 0xbc8: 0x2aac, 0xbc9: 0x26e5, 0xbca: 0x2c56, 0xbcb: 0x2e90, + 0xbcc: 0x2b8c, 0xbcd: 0x2ab9, 0xbce: 0x2ec5, 0xbcf: 0x2970, 0xbd0: 0x297a, 0xbd1: 0x2ac6, + 0xbd2: 0x26ec, 0xbd3: 0x2ad3, 0xbd4: 0x2b9c, 0xbd5: 0x26f3, 0xbd6: 0x2c69, 0xbd7: 0x2984, + 0xbd8: 0x1cb7, 0xbd9: 0x1ccb, 0xbda: 0x1cda, 0xbdb: 0x1ce9, 0xbdc: 0x1cf8, 0xbdd: 0x1d07, + 0xbde: 0x1d16, 0xbdf: 0x1d25, 0xbe0: 0x1d34, 0xbe1: 0x1d43, 0xbe2: 0x2192, 0xbe3: 0x21a4, + 0xbe4: 0x21b6, 0xbe5: 0x21c2, 0xbe6: 0x21ce, 0xbe7: 0x21da, 0xbe8: 0x21e6, 0xbe9: 0x21f2, + 0xbea: 0x21fe, 0xbeb: 0x220a, 0xbec: 0x2246, 0xbed: 0x2252, 0xbee: 0x225e, 0xbef: 0x226a, + 0xbf0: 0x2276, 0xbf1: 0x1c14, 0xbf2: 0x19c6, 0xbf3: 0x1936, 0xbf4: 0x1be4, 0xbf5: 0x1a47, + 0xbf6: 0x1a56, 0xbf7: 0x19cc, 0xbf8: 0x1bfc, 0xbf9: 0x1c00, 0xbfa: 0x1960, 0xbfb: 0x2701, + 0xbfc: 0x270f, 0xbfd: 0x26fa, 0xbfe: 0x2708, 0xbff: 0x2ae0, + // Block 0x30, offset 0xc00 + 0xc00: 0x1a4a, 0xc01: 0x1a32, 0xc02: 0x1c60, 0xc03: 0x1a1a, 0xc04: 0x19f3, 0xc05: 0x1969, + 0xc06: 0x1978, 0xc07: 0x1948, 0xc08: 0x1bf0, 0xc09: 0x1d52, 0xc0a: 0x1a4d, 0xc0b: 0x1a35, + 0xc0c: 0x1c64, 0xc0d: 0x1c70, 0xc0e: 0x1a26, 0xc0f: 0x19fc, 0xc10: 0x1957, 0xc11: 0x1c1c, + 0xc12: 0x1bb0, 0xc13: 0x1b9c, 0xc14: 0x1bcc, 0xc15: 0x1c74, 0xc16: 0x1a29, 0xc17: 0x19c9, + 0xc18: 0x19ff, 0xc19: 0x19de, 0xc1a: 0x1a41, 0xc1b: 0x1c78, 0xc1c: 0x1a2c, 0xc1d: 0x19c0, + 0xc1e: 0x1a02, 0xc1f: 0x1c3c, 0xc20: 0x1bf4, 0xc21: 0x1a14, 0xc22: 0x1c24, 0xc23: 0x1c40, + 0xc24: 0x1bf8, 0xc25: 0x1a17, 0xc26: 0x1c28, 0xc27: 0x22e8, 0xc28: 0x22fc, 0xc29: 0x1996, + 0xc2a: 0x1c20, 0xc2b: 0x1bb4, 0xc2c: 0x1ba0, 0xc2d: 0x1c48, 0xc2e: 0x2716, 0xc2f: 0x27ad, + 0xc30: 0x1a59, 0xc31: 0x1a44, 0xc32: 0x1c7c, 0xc33: 0x1a2f, 0xc34: 0x1a50, 0xc35: 0x1a38, + 0xc36: 0x1c68, 0xc37: 0x1a1d, 0xc38: 0x19f6, 0xc39: 0x1981, 0xc3a: 0x1a53, 0xc3b: 0x1a3b, + 0xc3c: 0x1c6c, 0xc3d: 0x1a20, 0xc3e: 0x19f9, 0xc3f: 0x1984, + // Block 0x31, offset 0xc40 + 0xc40: 0x1c2c, 0xc41: 0x1bb8, 0xc42: 0x1d4d, 0xc43: 0x1939, 0xc44: 0x19ba, 0xc45: 0x19bd, + 0xc46: 0x22f5, 0xc47: 0x1b94, 0xc48: 0x19c3, 0xc49: 0x194b, 0xc4a: 0x19e1, 0xc4b: 0x194e, + 0xc4c: 0x19ea, 0xc4d: 0x196c, 0xc4e: 0x196f, 0xc4f: 0x1a05, 0xc50: 0x1a0b, 0xc51: 0x1a0e, + 0xc52: 0x1c30, 0xc53: 0x1a11, 0xc54: 0x1a23, 0xc55: 0x1c38, 0xc56: 0x1c44, 0xc57: 0x1990, + 0xc58: 0x1d57, 0xc59: 0x1bbc, 0xc5a: 0x1993, 0xc5b: 0x1a5c, 0xc5c: 0x19a5, 0xc5d: 0x19b4, + 0xc5e: 0x22e2, 0xc5f: 0x22dc, 0xc60: 0x1cc1, 0xc61: 0x1cd0, 0xc62: 0x1cdf, 0xc63: 0x1cee, + 0xc64: 0x1cfd, 0xc65: 0x1d0c, 0xc66: 0x1d1b, 0xc67: 0x1d2a, 0xc68: 0x1d39, 0xc69: 0x2186, + 0xc6a: 0x2198, 0xc6b: 0x21aa, 0xc6c: 0x21bc, 0xc6d: 0x21c8, 0xc6e: 0x21d4, 0xc6f: 0x21e0, + 0xc70: 0x21ec, 0xc71: 0x21f8, 0xc72: 0x2204, 0xc73: 0x2240, 0xc74: 0x224c, 0xc75: 0x2258, + 0xc76: 0x2264, 0xc77: 0x2270, 0xc78: 0x227c, 0xc79: 0x2282, 0xc7a: 0x2288, 0xc7b: 0x228e, + 0xc7c: 0x2294, 0xc7d: 0x22a6, 0xc7e: 0x22ac, 0xc7f: 0x1c10, + // Block 0x32, offset 0xc80 + 0xc80: 0x1377, 0xc81: 0x0cfb, 0xc82: 0x13d3, 0xc83: 0x139f, 0xc84: 0x0e57, 0xc85: 0x06eb, + 0xc86: 0x08df, 0xc87: 0x162b, 0xc88: 0x162b, 0xc89: 0x0a0b, 0xc8a: 0x145f, 0xc8b: 0x0943, + 0xc8c: 0x0a07, 0xc8d: 0x0bef, 0xc8e: 0x0fcf, 0xc8f: 0x115f, 0xc90: 0x1297, 0xc91: 0x12d3, + 0xc92: 0x1307, 0xc93: 0x141b, 0xc94: 0x0d73, 0xc95: 0x0dff, 0xc96: 0x0eab, 0xc97: 0x0f43, + 0xc98: 0x125f, 0xc99: 0x1447, 0xc9a: 0x1573, 0xc9b: 0x070f, 0xc9c: 0x08b3, 0xc9d: 0x0d87, + 0xc9e: 0x0ecf, 0xc9f: 0x1293, 0xca0: 0x15c3, 0xca1: 0x0ab3, 0xca2: 0x0e77, 0xca3: 0x1283, + 0xca4: 0x1317, 0xca5: 0x0c23, 0xca6: 0x11bb, 0xca7: 0x12df, 0xca8: 0x0b1f, 0xca9: 0x0d0f, + 0xcaa: 0x0e17, 0xcab: 0x0f1b, 0xcac: 0x1427, 0xcad: 0x074f, 0xcae: 0x07e7, 0xcaf: 0x0853, + 0xcb0: 0x0c8b, 0xcb1: 0x0d7f, 0xcb2: 0x0ecb, 0xcb3: 0x0fef, 0xcb4: 0x1177, 0xcb5: 0x128b, + 0xcb6: 0x12a3, 0xcb7: 0x13c7, 0xcb8: 0x14ef, 0xcb9: 0x15a3, 0xcba: 0x15bf, 0xcbb: 0x102b, + 0xcbc: 0x106b, 0xcbd: 0x1123, 0xcbe: 0x1243, 0xcbf: 0x147b, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x15cb, 0xcc1: 0x134b, 0xcc2: 0x09c7, 0xcc3: 0x0b3b, 0xcc4: 0x10db, 0xcc5: 0x119b, + 0xcc6: 0x0eff, 0xcc7: 0x1033, 0xcc8: 0x1397, 0xcc9: 0x14e7, 0xcca: 0x09c3, 0xccb: 0x0a8f, + 0xccc: 0x0d77, 0xccd: 0x0e2b, 0xcce: 0x0e5f, 0xccf: 0x1113, 0xcd0: 0x113b, 0xcd1: 0x14a7, + 0xcd2: 0x084f, 0xcd3: 0x11a7, 0xcd4: 0x07f3, 0xcd5: 0x07ef, 0xcd6: 0x1097, 0xcd7: 0x1127, + 0xcd8: 0x125b, 0xcd9: 0x14af, 0xcda: 0x1367, 0xcdb: 0x0c27, 0xcdc: 0x0d73, 0xcdd: 0x1357, + 0xcde: 0x06f7, 0xcdf: 0x0a63, 0xce0: 0x0b93, 0xce1: 0x0f2f, 0xce2: 0x0faf, 0xce3: 0x0873, + 0xce4: 0x103b, 0xce5: 0x075f, 0xce6: 0x0b77, 0xce7: 0x06d7, 0xce8: 0x0deb, 0xce9: 0x0ca3, + 0xcea: 0x110f, 0xceb: 0x08c7, 0xcec: 0x09b3, 0xced: 0x0ffb, 0xcee: 0x1263, 0xcef: 0x133b, + 0xcf0: 0x0db7, 0xcf1: 0x13f7, 0xcf2: 0x0de3, 0xcf3: 0x0c37, 0xcf4: 0x121b, 0xcf5: 0x0c57, + 0xcf6: 0x0fab, 0xcf7: 0x072b, 0xcf8: 0x07a7, 0xcf9: 0x07eb, 0xcfa: 0x0d53, 0xcfb: 0x10fb, + 0xcfc: 0x11f3, 0xcfd: 0x1347, 0xcfe: 0x145b, 0xcff: 0x085b, + // Block 0x34, offset 0xd00 + 0xd00: 0x090f, 0xd01: 0x0a17, 0xd02: 0x0b2f, 0xd03: 0x0cbf, 0xd04: 0x0e7b, 0xd05: 0x103f, + 0xd06: 0x1497, 0xd07: 0x157b, 0xd08: 0x15cf, 0xd09: 0x15e7, 0xd0a: 0x0837, 0xd0b: 0x0cf3, + 0xd0c: 0x0da3, 0xd0d: 0x13eb, 0xd0e: 0x0afb, 0xd0f: 0x0bd7, 0xd10: 0x0bf3, 0xd11: 0x0c83, + 0xd12: 0x0e6b, 0xd13: 0x0eb7, 0xd14: 0x0f67, 0xd15: 0x108b, 0xd16: 0x112f, 0xd17: 0x1193, + 0xd18: 0x13db, 0xd19: 0x126b, 0xd1a: 0x1403, 0xd1b: 0x147f, 0xd1c: 0x080f, 0xd1d: 0x083b, + 0xd1e: 0x0923, 0xd1f: 0x0ea7, 0xd20: 0x12f3, 0xd21: 0x133b, 0xd22: 0x0b1b, 0xd23: 0x0b8b, + 0xd24: 0x0c4f, 0xd25: 0x0daf, 0xd26: 0x10d7, 0xd27: 0x0f23, 0xd28: 0x073b, 0xd29: 0x097f, + 0xd2a: 0x0a63, 0xd2b: 0x0ac7, 0xd2c: 0x0b97, 0xd2d: 0x0f3f, 0xd2e: 0x0f5b, 0xd2f: 0x116b, + 0xd30: 0x118b, 0xd31: 0x1463, 0xd32: 0x14e3, 0xd33: 0x14f3, 0xd34: 0x152f, 0xd35: 0x0753, + 0xd36: 0x107f, 0xd37: 0x144f, 0xd38: 0x14cb, 0xd39: 0x0baf, 0xd3a: 0x0717, 0xd3b: 0x0777, + 0xd3c: 0x0a67, 0xd3d: 0x0a87, 0xd3e: 0x0caf, 0xd3f: 0x0d73, + // Block 0x35, offset 0xd40 + 0xd40: 0x0ec3, 0xd41: 0x0fcb, 0xd42: 0x1277, 0xd43: 0x1417, 0xd44: 0x1623, 0xd45: 0x0ce3, + 0xd46: 0x14a3, 0xd47: 0x0833, 0xd48: 0x0d2f, 0xd49: 0x0d3b, 0xd4a: 0x0e0f, 0xd4b: 0x0e47, + 0xd4c: 0x0f4b, 0xd4d: 0x0fa7, 0xd4e: 0x1027, 0xd4f: 0x110b, 0xd50: 0x153b, 0xd51: 0x07af, + 0xd52: 0x0c03, 0xd53: 0x14b3, 0xd54: 0x0767, 0xd55: 0x0aab, 0xd56: 0x0e2f, 0xd57: 0x13df, + 0xd58: 0x0b67, 0xd59: 0x0bb7, 0xd5a: 0x0d43, 0xd5b: 0x0f2f, 0xd5c: 0x14bb, 0xd5d: 0x0817, + 0xd5e: 0x08ff, 0xd5f: 0x0a97, 0xd60: 0x0cd3, 0xd61: 0x0d1f, 0xd62: 0x0d5f, 0xd63: 0x0df3, + 0xd64: 0x0f47, 0xd65: 0x0fbb, 0xd66: 0x1157, 0xd67: 0x12f7, 0xd68: 0x1303, 0xd69: 0x1457, + 0xd6a: 0x14d7, 0xd6b: 0x0883, 0xd6c: 0x0e4b, 0xd6d: 0x0903, 0xd6e: 0x0ec7, 0xd6f: 0x0f6b, + 0xd70: 0x1287, 0xd71: 0x14bf, 0xd72: 0x15ab, 0xd73: 0x15d3, 0xd74: 0x0d37, 0xd75: 0x0e27, + 0xd76: 0x11c3, 0xd77: 0x10b7, 0xd78: 0x10c3, 0xd79: 0x10e7, 0xd7a: 0x0f17, 0xd7b: 0x0e9f, + 0xd7c: 0x1363, 0xd7d: 0x0733, 0xd7e: 0x122b, 0xd7f: 0x081b, + // Block 0x36, offset 0xd80 + 0xd80: 0x080b, 0xd81: 0x0b0b, 0xd82: 0x0c2b, 0xd83: 0x10f3, 0xd84: 0x0a53, 0xd85: 0x0e03, + 0xd86: 0x0cef, 0xd87: 0x13e7, 0xd88: 0x12e7, 0xd89: 0x14ab, 0xd8a: 0x1323, 0xd8b: 0x0b27, + 0xd8c: 0x0787, 0xd8d: 0x095b, 0xd90: 0x09af, + 0xd92: 0x0cdf, 0xd95: 0x07f7, 0xd96: 0x0f1f, 0xd97: 0x0fe3, + 0xd98: 0x1047, 0xd99: 0x1063, 0xd9a: 0x1067, 0xd9b: 0x107b, 0xd9c: 0x14fb, 0xd9d: 0x10eb, + 0xd9e: 0x116f, 0xda0: 0x128f, 0xda2: 0x1353, + 0xda5: 0x1407, 0xda6: 0x1433, + 0xdaa: 0x154f, 0xdab: 0x1553, 0xdac: 0x1557, 0xdad: 0x15bb, 0xdae: 0x142b, 0xdaf: 0x14c7, + 0xdb0: 0x0757, 0xdb1: 0x077b, 0xdb2: 0x078f, 0xdb3: 0x084b, 0xdb4: 0x0857, 0xdb5: 0x0897, + 0xdb6: 0x094b, 0xdb7: 0x0967, 0xdb8: 0x096f, 0xdb9: 0x09ab, 0xdba: 0x09b7, 0xdbb: 0x0a93, + 0xdbc: 0x0a9b, 0xdbd: 0x0ba3, 0xdbe: 0x0bcb, 0xdbf: 0x0bd3, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0beb, 0xdc1: 0x0c97, 0xdc2: 0x0cc7, 0xdc3: 0x0ce7, 0xdc4: 0x0d57, 0xdc5: 0x0e1b, + 0xdc6: 0x0e37, 0xdc7: 0x0e67, 0xdc8: 0x0ebb, 0xdc9: 0x0edb, 0xdca: 0x0f4f, 0xdcb: 0x102f, + 0xdcc: 0x104b, 0xdcd: 0x1053, 0xdce: 0x104f, 0xdcf: 0x1057, 0xdd0: 0x105b, 0xdd1: 0x105f, + 0xdd2: 0x1073, 0xdd3: 0x1077, 0xdd4: 0x109b, 0xdd5: 0x10af, 0xdd6: 0x10cb, 0xdd7: 0x112f, + 0xdd8: 0x1137, 0xdd9: 0x113f, 0xdda: 0x1153, 0xddb: 0x117b, 0xddc: 0x11cb, 0xddd: 0x11ff, + 0xdde: 0x11ff, 0xddf: 0x1267, 0xde0: 0x130f, 0xde1: 0x1327, 0xde2: 0x135b, 0xde3: 0x135f, + 0xde4: 0x13a3, 0xde5: 0x13a7, 0xde6: 0x13ff, 0xde7: 0x1407, 0xde8: 0x14db, 0xde9: 0x151f, + 0xdea: 0x1537, 0xdeb: 0x0b9b, 0xdec: 0x171e, 0xded: 0x11e3, + 0xdf0: 0x06df, 0xdf1: 0x07e3, 0xdf2: 0x07a3, 0xdf3: 0x074b, 0xdf4: 0x078b, 0xdf5: 0x07b7, + 0xdf6: 0x0847, 0xdf7: 0x0863, 0xdf8: 0x094b, 0xdf9: 0x0937, 0xdfa: 0x0947, 0xdfb: 0x0963, + 0xdfc: 0x09af, 0xdfd: 0x09bf, 0xdfe: 0x0a03, 0xdff: 0x0a0f, + // Block 0x38, offset 0xe00 + 0xe00: 0x0a2b, 0xe01: 0x0a3b, 0xe02: 0x0b23, 0xe03: 0x0b2b, 0xe04: 0x0b5b, 0xe05: 0x0b7b, + 0xe06: 0x0bab, 0xe07: 0x0bc3, 0xe08: 0x0bb3, 0xe09: 0x0bd3, 0xe0a: 0x0bc7, 0xe0b: 0x0beb, + 0xe0c: 0x0c07, 0xe0d: 0x0c5f, 0xe0e: 0x0c6b, 0xe0f: 0x0c73, 0xe10: 0x0c9b, 0xe11: 0x0cdf, + 0xe12: 0x0d0f, 0xe13: 0x0d13, 0xe14: 0x0d27, 0xe15: 0x0da7, 0xe16: 0x0db7, 0xe17: 0x0e0f, + 0xe18: 0x0e5b, 0xe19: 0x0e53, 0xe1a: 0x0e67, 0xe1b: 0x0e83, 0xe1c: 0x0ebb, 0xe1d: 0x1013, + 0xe1e: 0x0edf, 0xe1f: 0x0f13, 0xe20: 0x0f1f, 0xe21: 0x0f5f, 0xe22: 0x0f7b, 0xe23: 0x0f9f, + 0xe24: 0x0fc3, 0xe25: 0x0fc7, 0xe26: 0x0fe3, 0xe27: 0x0fe7, 0xe28: 0x0ff7, 0xe29: 0x100b, + 0xe2a: 0x1007, 0xe2b: 0x1037, 0xe2c: 0x10b3, 0xe2d: 0x10cb, 0xe2e: 0x10e3, 0xe2f: 0x111b, + 0xe30: 0x112f, 0xe31: 0x114b, 0xe32: 0x117b, 0xe33: 0x122f, 0xe34: 0x1257, 0xe35: 0x12cb, + 0xe36: 0x1313, 0xe37: 0x131f, 0xe38: 0x1327, 0xe39: 0x133f, 0xe3a: 0x1353, 0xe3b: 0x1343, + 0xe3c: 0x135b, 0xe3d: 0x1357, 0xe3e: 0x134f, 0xe3f: 0x135f, + // Block 0x39, offset 0xe40 + 0xe40: 0x136b, 0xe41: 0x13a7, 0xe42: 0x13e3, 0xe43: 0x1413, 0xe44: 0x144b, 0xe45: 0x146b, + 0xe46: 0x14b7, 0xe47: 0x14db, 0xe48: 0x14fb, 0xe49: 0x150f, 0xe4a: 0x151f, 0xe4b: 0x152b, + 0xe4c: 0x1537, 0xe4d: 0x158b, 0xe4e: 0x162b, 0xe4f: 0x16b5, 0xe50: 0x16b0, 0xe51: 0x16e2, + 0xe52: 0x0607, 0xe53: 0x062f, 0xe54: 0x0633, 0xe55: 0x1764, 0xe56: 0x1791, 0xe57: 0x1809, + 0xe58: 0x1617, 0xe59: 0x1627, + // Block 0x3a, offset 0xe80 + 0xe80: 0x19d5, 0xe81: 0x19d8, 0xe82: 0x19db, 0xe83: 0x1c08, 0xe84: 0x1c0c, 0xe85: 0x1a5f, + 0xe86: 0x1a5f, + 0xe93: 0x1d75, 0xe94: 0x1d66, 0xe95: 0x1d6b, 0xe96: 0x1d7a, 0xe97: 0x1d70, + 0xe9d: 0x4390, + 0xe9e: 0x8115, 0xe9f: 0x4402, 0xea0: 0x022d, 0xea1: 0x0215, 0xea2: 0x021e, 0xea3: 0x0221, + 0xea4: 0x0224, 0xea5: 0x0227, 0xea6: 0x022a, 0xea7: 0x0230, 0xea8: 0x0233, 0xea9: 0x0017, + 0xeaa: 0x43f0, 0xeab: 0x43f6, 0xeac: 0x44f4, 0xead: 0x44fc, 0xeae: 0x4348, 0xeaf: 0x434e, + 0xeb0: 0x4354, 0xeb1: 0x435a, 0xeb2: 0x4366, 0xeb3: 0x436c, 0xeb4: 0x4372, 0xeb5: 0x437e, + 0xeb6: 0x4384, 0xeb8: 0x438a, 0xeb9: 0x4396, 0xeba: 0x439c, 0xebb: 0x43a2, + 0xebc: 0x43ae, 0xebe: 0x43b4, + // Block 0x3b, offset 0xec0 + 0xec0: 0x43ba, 0xec1: 0x43c0, 0xec3: 0x43c6, 0xec4: 0x43cc, + 0xec6: 0x43d8, 0xec7: 0x43de, 0xec8: 0x43e4, 0xec9: 0x43ea, 0xeca: 0x43fc, 0xecb: 0x4378, + 0xecc: 0x4360, 0xecd: 0x43a8, 0xece: 0x43d2, 0xecf: 0x1d7f, 0xed0: 0x0299, 0xed1: 0x0299, + 0xed2: 0x02a2, 0xed3: 0x02a2, 0xed4: 0x02a2, 0xed5: 0x02a2, 0xed6: 0x02a5, 0xed7: 0x02a5, + 0xed8: 0x02a5, 0xed9: 0x02a5, 0xeda: 0x02ab, 0xedb: 0x02ab, 0xedc: 0x02ab, 0xedd: 0x02ab, + 0xede: 0x029f, 0xedf: 0x029f, 0xee0: 0x029f, 0xee1: 0x029f, 0xee2: 0x02a8, 0xee3: 0x02a8, + 0xee4: 0x02a8, 0xee5: 0x02a8, 0xee6: 0x029c, 0xee7: 0x029c, 0xee8: 0x029c, 0xee9: 0x029c, + 0xeea: 0x02cf, 0xeeb: 0x02cf, 0xeec: 0x02cf, 0xeed: 0x02cf, 0xeee: 0x02d2, 0xeef: 0x02d2, + 0xef0: 0x02d2, 0xef1: 0x02d2, 0xef2: 0x02b1, 0xef3: 0x02b1, 0xef4: 0x02b1, 0xef5: 0x02b1, + 0xef6: 0x02ae, 0xef7: 0x02ae, 0xef8: 0x02ae, 0xef9: 0x02ae, 0xefa: 0x02b4, 0xefb: 0x02b4, + 0xefc: 0x02b4, 0xefd: 0x02b4, 0xefe: 0x02b7, 0xeff: 0x02b7, + // Block 0x3c, offset 0xf00 + 0xf00: 0x02b7, 0xf01: 0x02b7, 0xf02: 0x02c0, 0xf03: 0x02c0, 0xf04: 0x02bd, 0xf05: 0x02bd, + 0xf06: 0x02c3, 0xf07: 0x02c3, 0xf08: 0x02ba, 0xf09: 0x02ba, 0xf0a: 0x02c9, 0xf0b: 0x02c9, + 0xf0c: 0x02c6, 0xf0d: 0x02c6, 0xf0e: 0x02d5, 0xf0f: 0x02d5, 0xf10: 0x02d5, 0xf11: 0x02d5, + 0xf12: 0x02db, 0xf13: 0x02db, 0xf14: 0x02db, 0xf15: 0x02db, 0xf16: 0x02e1, 0xf17: 0x02e1, + 0xf18: 0x02e1, 0xf19: 0x02e1, 0xf1a: 0x02de, 0xf1b: 0x02de, 0xf1c: 0x02de, 0xf1d: 0x02de, + 0xf1e: 0x02e4, 0xf1f: 0x02e4, 0xf20: 0x02e7, 0xf21: 0x02e7, 0xf22: 0x02e7, 0xf23: 0x02e7, + 0xf24: 0x446e, 0xf25: 0x446e, 0xf26: 0x02ed, 0xf27: 0x02ed, 0xf28: 0x02ed, 0xf29: 0x02ed, + 0xf2a: 0x02ea, 0xf2b: 0x02ea, 0xf2c: 0x02ea, 0xf2d: 0x02ea, 0xf2e: 0x0308, 0xf2f: 0x0308, + 0xf30: 0x4468, 0xf31: 0x4468, + // Block 0x3d, offset 0xf40 + 0xf53: 0x02d8, 0xf54: 0x02d8, 0xf55: 0x02d8, 0xf56: 0x02d8, 0xf57: 0x02f6, + 0xf58: 0x02f6, 0xf59: 0x02f3, 0xf5a: 0x02f3, 0xf5b: 0x02f9, 0xf5c: 0x02f9, 0xf5d: 0x204f, + 0xf5e: 0x02ff, 0xf5f: 0x02ff, 0xf60: 0x02f0, 0xf61: 0x02f0, 0xf62: 0x02fc, 0xf63: 0x02fc, + 0xf64: 0x0305, 0xf65: 0x0305, 0xf66: 0x0305, 0xf67: 0x0305, 0xf68: 0x028d, 0xf69: 0x028d, + 0xf6a: 0x25aa, 0xf6b: 0x25aa, 0xf6c: 0x261a, 0xf6d: 0x261a, 0xf6e: 0x25e9, 0xf6f: 0x25e9, + 0xf70: 0x2605, 0xf71: 0x2605, 0xf72: 0x25fe, 0xf73: 0x25fe, 0xf74: 0x260c, 0xf75: 0x260c, + 0xf76: 0x2613, 0xf77: 0x2613, 0xf78: 0x2613, 0xf79: 0x25f0, 0xf7a: 0x25f0, 0xf7b: 0x25f0, + 0xf7c: 0x0302, 0xf7d: 0x0302, 0xf7e: 0x0302, 0xf7f: 0x0302, + // Block 0x3e, offset 0xf80 + 0xf80: 0x25b1, 0xf81: 0x25b8, 0xf82: 0x25d4, 0xf83: 0x25f0, 0xf84: 0x25f7, 0xf85: 0x1d89, + 0xf86: 0x1d8e, 0xf87: 0x1d93, 0xf88: 0x1da2, 0xf89: 0x1db1, 0xf8a: 0x1db6, 0xf8b: 0x1dbb, + 0xf8c: 0x1dc0, 0xf8d: 0x1dc5, 0xf8e: 0x1dd4, 0xf8f: 0x1de3, 0xf90: 0x1de8, 0xf91: 0x1ded, + 0xf92: 0x1dfc, 0xf93: 0x1e0b, 0xf94: 0x1e10, 0xf95: 0x1e15, 0xf96: 0x1e1a, 0xf97: 0x1e29, + 0xf98: 0x1e2e, 0xf99: 0x1e3d, 0xf9a: 0x1e42, 0xf9b: 0x1e47, 0xf9c: 0x1e56, 0xf9d: 0x1e5b, + 0xf9e: 0x1e60, 0xf9f: 0x1e6a, 0xfa0: 0x1ea6, 0xfa1: 0x1eb5, 0xfa2: 0x1ec4, 0xfa3: 0x1ec9, + 0xfa4: 0x1ece, 0xfa5: 0x1ed8, 0xfa6: 0x1ee7, 0xfa7: 0x1eec, 0xfa8: 0x1efb, 0xfa9: 0x1f00, + 0xfaa: 0x1f05, 0xfab: 0x1f14, 0xfac: 0x1f19, 0xfad: 0x1f28, 0xfae: 0x1f2d, 0xfaf: 0x1f32, + 0xfb0: 0x1f37, 0xfb1: 0x1f3c, 0xfb2: 0x1f41, 0xfb3: 0x1f46, 0xfb4: 0x1f4b, 0xfb5: 0x1f50, + 0xfb6: 0x1f55, 0xfb7: 0x1f5a, 0xfb8: 0x1f5f, 0xfb9: 0x1f64, 0xfba: 0x1f69, 0xfbb: 0x1f6e, + 0xfbc: 0x1f73, 0xfbd: 0x1f78, 0xfbe: 0x1f7d, 0xfbf: 0x1f87, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x1f8c, 0xfc1: 0x1f91, 0xfc2: 0x1f96, 0xfc3: 0x1fa0, 0xfc4: 0x1fa5, 0xfc5: 0x1faf, + 0xfc6: 0x1fb4, 0xfc7: 0x1fb9, 0xfc8: 0x1fbe, 0xfc9: 0x1fc3, 0xfca: 0x1fc8, 0xfcb: 0x1fcd, + 0xfcc: 0x1fd2, 0xfcd: 0x1fd7, 0xfce: 0x1fe6, 0xfcf: 0x1ff5, 0xfd0: 0x1ffa, 0xfd1: 0x1fff, + 0xfd2: 0x2004, 0xfd3: 0x2009, 0xfd4: 0x200e, 0xfd5: 0x2018, 0xfd6: 0x201d, 0xfd7: 0x2022, + 0xfd8: 0x2031, 0xfd9: 0x2040, 0xfda: 0x2045, 0xfdb: 0x4420, 0xfdc: 0x4426, 0xfdd: 0x445c, + 0xfde: 0x44b3, 0xfdf: 0x44ba, 0xfe0: 0x44c1, 0xfe1: 0x44c8, 0xfe2: 0x44cf, 0xfe3: 0x44d6, + 0xfe4: 0x25c6, 0xfe5: 0x25cd, 0xfe6: 0x25d4, 0xfe7: 0x25db, 0xfe8: 0x25f0, 0xfe9: 0x25f7, + 0xfea: 0x1d98, 0xfeb: 0x1d9d, 0xfec: 0x1da2, 0xfed: 0x1da7, 0xfee: 0x1db1, 0xfef: 0x1db6, + 0xff0: 0x1dca, 0xff1: 0x1dcf, 0xff2: 0x1dd4, 0xff3: 0x1dd9, 0xff4: 0x1de3, 0xff5: 0x1de8, + 0xff6: 0x1df2, 0xff7: 0x1df7, 0xff8: 0x1dfc, 0xff9: 0x1e01, 0xffa: 0x1e0b, 0xffb: 0x1e10, + 0xffc: 0x1f3c, 0xffd: 0x1f41, 0xffe: 0x1f50, 0xfff: 0x1f55, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f5a, 0x1001: 0x1f6e, 0x1002: 0x1f73, 0x1003: 0x1f78, 0x1004: 0x1f7d, 0x1005: 0x1f96, + 0x1006: 0x1fa0, 0x1007: 0x1fa5, 0x1008: 0x1faa, 0x1009: 0x1fbe, 0x100a: 0x1fdc, 0x100b: 0x1fe1, + 0x100c: 0x1fe6, 0x100d: 0x1feb, 0x100e: 0x1ff5, 0x100f: 0x1ffa, 0x1010: 0x445c, 0x1011: 0x2027, + 0x1012: 0x202c, 0x1013: 0x2031, 0x1014: 0x2036, 0x1015: 0x2040, 0x1016: 0x2045, 0x1017: 0x25b1, + 0x1018: 0x25b8, 0x1019: 0x25bf, 0x101a: 0x25d4, 0x101b: 0x25e2, 0x101c: 0x1d89, 0x101d: 0x1d8e, + 0x101e: 0x1d93, 0x101f: 0x1da2, 0x1020: 0x1dac, 0x1021: 0x1dbb, 0x1022: 0x1dc0, 0x1023: 0x1dc5, + 0x1024: 0x1dd4, 0x1025: 0x1dde, 0x1026: 0x1dfc, 0x1027: 0x1e15, 0x1028: 0x1e1a, 0x1029: 0x1e29, + 0x102a: 0x1e2e, 0x102b: 0x1e3d, 0x102c: 0x1e47, 0x102d: 0x1e56, 0x102e: 0x1e5b, 0x102f: 0x1e60, + 0x1030: 0x1e6a, 0x1031: 0x1ea6, 0x1032: 0x1eab, 0x1033: 0x1eb5, 0x1034: 0x1ec4, 0x1035: 0x1ec9, + 0x1036: 0x1ece, 0x1037: 0x1ed8, 0x1038: 0x1ee7, 0x1039: 0x1efb, 0x103a: 0x1f00, 0x103b: 0x1f05, + 0x103c: 0x1f14, 0x103d: 0x1f19, 0x103e: 0x1f28, 0x103f: 0x1f2d, + // Block 0x41, offset 0x1040 + 0x1040: 0x1f32, 0x1041: 0x1f37, 0x1042: 0x1f46, 0x1043: 0x1f4b, 0x1044: 0x1f5f, 0x1045: 0x1f64, + 0x1046: 0x1f69, 0x1047: 0x1f6e, 0x1048: 0x1f73, 0x1049: 0x1f87, 0x104a: 0x1f8c, 0x104b: 0x1f91, + 0x104c: 0x1f96, 0x104d: 0x1f9b, 0x104e: 0x1faf, 0x104f: 0x1fb4, 0x1050: 0x1fb9, 0x1051: 0x1fbe, + 0x1052: 0x1fcd, 0x1053: 0x1fd2, 0x1054: 0x1fd7, 0x1055: 0x1fe6, 0x1056: 0x1ff0, 0x1057: 0x1fff, + 0x1058: 0x2004, 0x1059: 0x4450, 0x105a: 0x2018, 0x105b: 0x201d, 0x105c: 0x2022, 0x105d: 0x2031, + 0x105e: 0x203b, 0x105f: 0x25d4, 0x1060: 0x25e2, 0x1061: 0x1da2, 0x1062: 0x1dac, 0x1063: 0x1dd4, + 0x1064: 0x1dde, 0x1065: 0x1dfc, 0x1066: 0x1e06, 0x1067: 0x1e6a, 0x1068: 0x1e6f, 0x1069: 0x1e92, + 0x106a: 0x1e97, 0x106b: 0x1f6e, 0x106c: 0x1f73, 0x106d: 0x1f96, 0x106e: 0x1fe6, 0x106f: 0x1ff0, + 0x1070: 0x2031, 0x1071: 0x203b, 0x1072: 0x4504, 0x1073: 0x450c, 0x1074: 0x4514, 0x1075: 0x1ef1, + 0x1076: 0x1ef6, 0x1077: 0x1f0a, 0x1078: 0x1f0f, 0x1079: 0x1f1e, 0x107a: 0x1f23, 0x107b: 0x1e74, + 0x107c: 0x1e79, 0x107d: 0x1e9c, 0x107e: 0x1ea1, 0x107f: 0x1e33, + // Block 0x42, offset 0x1080 + 0x1080: 0x1e38, 0x1081: 0x1e1f, 0x1082: 0x1e24, 0x1083: 0x1e4c, 0x1084: 0x1e51, 0x1085: 0x1eba, + 0x1086: 0x1ebf, 0x1087: 0x1edd, 0x1088: 0x1ee2, 0x1089: 0x1e7e, 0x108a: 0x1e83, 0x108b: 0x1e88, + 0x108c: 0x1e92, 0x108d: 0x1e8d, 0x108e: 0x1e65, 0x108f: 0x1eb0, 0x1090: 0x1ed3, 0x1091: 0x1ef1, + 0x1092: 0x1ef6, 0x1093: 0x1f0a, 0x1094: 0x1f0f, 0x1095: 0x1f1e, 0x1096: 0x1f23, 0x1097: 0x1e74, + 0x1098: 0x1e79, 0x1099: 0x1e9c, 0x109a: 0x1ea1, 0x109b: 0x1e33, 0x109c: 0x1e38, 0x109d: 0x1e1f, + 0x109e: 0x1e24, 0x109f: 0x1e4c, 0x10a0: 0x1e51, 0x10a1: 0x1eba, 0x10a2: 0x1ebf, 0x10a3: 0x1edd, + 0x10a4: 0x1ee2, 0x10a5: 0x1e7e, 0x10a6: 0x1e83, 0x10a7: 0x1e88, 0x10a8: 0x1e92, 0x10a9: 0x1e8d, + 0x10aa: 0x1e65, 0x10ab: 0x1eb0, 0x10ac: 0x1ed3, 0x10ad: 0x1e7e, 0x10ae: 0x1e83, 0x10af: 0x1e88, + 0x10b0: 0x1e92, 0x10b1: 0x1e6f, 0x10b2: 0x1e97, 0x10b3: 0x1eec, 0x10b4: 0x1e56, 0x10b5: 0x1e5b, + 0x10b6: 0x1e60, 0x10b7: 0x1e7e, 0x10b8: 0x1e83, 0x10b9: 0x1e88, 0x10ba: 0x1eec, 0x10bb: 0x1efb, + 0x10bc: 0x4408, 0x10bd: 0x4408, + // Block 0x43, offset 0x10c0 + 0x10d0: 0x2311, 0x10d1: 0x2326, + 0x10d2: 0x2326, 0x10d3: 0x232d, 0x10d4: 0x2334, 0x10d5: 0x2349, 0x10d6: 0x2350, 0x10d7: 0x2357, + 0x10d8: 0x237a, 0x10d9: 0x237a, 0x10da: 0x239d, 0x10db: 0x2396, 0x10dc: 0x23b2, 0x10dd: 0x23a4, + 0x10de: 0x23ab, 0x10df: 0x23ce, 0x10e0: 0x23ce, 0x10e1: 0x23c7, 0x10e2: 0x23d5, 0x10e3: 0x23d5, + 0x10e4: 0x23ff, 0x10e5: 0x23ff, 0x10e6: 0x241b, 0x10e7: 0x23e3, 0x10e8: 0x23e3, 0x10e9: 0x23dc, + 0x10ea: 0x23f1, 0x10eb: 0x23f1, 0x10ec: 0x23f8, 0x10ed: 0x23f8, 0x10ee: 0x2422, 0x10ef: 0x2430, + 0x10f0: 0x2430, 0x10f1: 0x2437, 0x10f2: 0x2437, 0x10f3: 0x243e, 0x10f4: 0x2445, 0x10f5: 0x244c, + 0x10f6: 0x2453, 0x10f7: 0x2453, 0x10f8: 0x245a, 0x10f9: 0x2468, 0x10fa: 0x2476, 0x10fb: 0x246f, + 0x10fc: 0x247d, 0x10fd: 0x247d, 0x10fe: 0x2492, 0x10ff: 0x2499, + // Block 0x44, offset 0x1100 + 0x1100: 0x24ca, 0x1101: 0x24d8, 0x1102: 0x24d1, 0x1103: 0x24b5, 0x1104: 0x24b5, 0x1105: 0x24df, + 0x1106: 0x24df, 0x1107: 0x24e6, 0x1108: 0x24e6, 0x1109: 0x2510, 0x110a: 0x2517, 0x110b: 0x251e, + 0x110c: 0x24f4, 0x110d: 0x2502, 0x110e: 0x2525, 0x110f: 0x252c, + 0x1112: 0x24fb, 0x1113: 0x2580, 0x1114: 0x2587, 0x1115: 0x255d, 0x1116: 0x2564, 0x1117: 0x2548, + 0x1118: 0x2548, 0x1119: 0x254f, 0x111a: 0x2579, 0x111b: 0x2572, 0x111c: 0x259c, 0x111d: 0x259c, + 0x111e: 0x230a, 0x111f: 0x231f, 0x1120: 0x2318, 0x1121: 0x2342, 0x1122: 0x233b, 0x1123: 0x2365, + 0x1124: 0x235e, 0x1125: 0x2388, 0x1126: 0x236c, 0x1127: 0x2381, 0x1128: 0x23b9, 0x1129: 0x2406, + 0x112a: 0x23ea, 0x112b: 0x2429, 0x112c: 0x24c3, 0x112d: 0x24ed, 0x112e: 0x2595, 0x112f: 0x258e, + 0x1130: 0x25a3, 0x1131: 0x253a, 0x1132: 0x24a0, 0x1133: 0x256b, 0x1134: 0x2492, 0x1135: 0x24ca, + 0x1136: 0x2461, 0x1137: 0x24ae, 0x1138: 0x2541, 0x1139: 0x2533, 0x113a: 0x24bc, 0x113b: 0x24a7, + 0x113c: 0x24bc, 0x113d: 0x2541, 0x113e: 0x2373, 0x113f: 0x238f, + // Block 0x45, offset 0x1140 + 0x1140: 0x2509, 0x1141: 0x2484, 0x1142: 0x2303, 0x1143: 0x24a7, 0x1144: 0x244c, 0x1145: 0x241b, + 0x1146: 0x23c0, 0x1147: 0x2556, + 0x1170: 0x2414, 0x1171: 0x248b, 0x1172: 0x27bf, 0x1173: 0x27b6, 0x1174: 0x27ec, 0x1175: 0x27da, + 0x1176: 0x27c8, 0x1177: 0x27e3, 0x1178: 0x27f5, 0x1179: 0x240d, 0x117a: 0x2c7c, 0x117b: 0x2afc, + 0x117c: 0x27d1, + // Block 0x46, offset 0x1180 + 0x1190: 0x0019, 0x1191: 0x0483, + 0x1192: 0x0487, 0x1193: 0x0035, 0x1194: 0x0037, 0x1195: 0x0003, 0x1196: 0x003f, 0x1197: 0x04bf, + 0x1198: 0x04c3, 0x1199: 0x1b5c, + 0x11a0: 0x8132, 0x11a1: 0x8132, 0x11a2: 0x8132, 0x11a3: 0x8132, + 0x11a4: 0x8132, 0x11a5: 0x8132, 0x11a6: 0x8132, 0x11a7: 0x812d, 0x11a8: 0x812d, 0x11a9: 0x812d, + 0x11aa: 0x812d, 0x11ab: 0x812d, 0x11ac: 0x812d, 0x11ad: 0x812d, 0x11ae: 0x8132, 0x11af: 0x8132, + 0x11b0: 0x1873, 0x11b1: 0x0443, 0x11b2: 0x043f, 0x11b3: 0x007f, 0x11b4: 0x007f, 0x11b5: 0x0011, + 0x11b6: 0x0013, 0x11b7: 0x00b7, 0x11b8: 0x00bb, 0x11b9: 0x04b7, 0x11ba: 0x04bb, 0x11bb: 0x04ab, + 0x11bc: 0x04af, 0x11bd: 0x0493, 0x11be: 0x0497, 0x11bf: 0x048b, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x048f, 0x11c1: 0x049b, 0x11c2: 0x049f, 0x11c3: 0x04a3, 0x11c4: 0x04a7, + 0x11c7: 0x0077, 0x11c8: 0x007b, 0x11c9: 0x4269, 0x11ca: 0x4269, 0x11cb: 0x4269, + 0x11cc: 0x4269, 0x11cd: 0x007f, 0x11ce: 0x007f, 0x11cf: 0x007f, 0x11d0: 0x0019, 0x11d1: 0x0483, + 0x11d2: 0x001d, 0x11d4: 0x0037, 0x11d5: 0x0035, 0x11d6: 0x003f, 0x11d7: 0x0003, + 0x11d8: 0x0443, 0x11d9: 0x0011, 0x11da: 0x0013, 0x11db: 0x00b7, 0x11dc: 0x00bb, 0x11dd: 0x04b7, + 0x11de: 0x04bb, 0x11df: 0x0007, 0x11e0: 0x000d, 0x11e1: 0x0015, 0x11e2: 0x0017, 0x11e3: 0x001b, + 0x11e4: 0x0039, 0x11e5: 0x003d, 0x11e6: 0x003b, 0x11e8: 0x0079, 0x11e9: 0x0009, + 0x11ea: 0x000b, 0x11eb: 0x0041, + 0x11f0: 0x42aa, 0x11f1: 0x442c, 0x11f2: 0x42af, 0x11f4: 0x42b4, + 0x11f6: 0x42b9, 0x11f7: 0x4432, 0x11f8: 0x42be, 0x11f9: 0x4438, 0x11fa: 0x42c3, 0x11fb: 0x443e, + 0x11fc: 0x42c8, 0x11fd: 0x4444, 0x11fe: 0x42cd, 0x11ff: 0x444a, + // Block 0x48, offset 0x1200 + 0x1200: 0x0236, 0x1201: 0x440e, 0x1202: 0x440e, 0x1203: 0x4414, 0x1204: 0x4414, 0x1205: 0x4456, + 0x1206: 0x4456, 0x1207: 0x441a, 0x1208: 0x441a, 0x1209: 0x4462, 0x120a: 0x4462, 0x120b: 0x4462, + 0x120c: 0x4462, 0x120d: 0x0239, 0x120e: 0x0239, 0x120f: 0x023c, 0x1210: 0x023c, 0x1211: 0x023c, + 0x1212: 0x023c, 0x1213: 0x023f, 0x1214: 0x023f, 0x1215: 0x0242, 0x1216: 0x0242, 0x1217: 0x0242, + 0x1218: 0x0242, 0x1219: 0x0245, 0x121a: 0x0245, 0x121b: 0x0245, 0x121c: 0x0245, 0x121d: 0x0248, + 0x121e: 0x0248, 0x121f: 0x0248, 0x1220: 0x0248, 0x1221: 0x024b, 0x1222: 0x024b, 0x1223: 0x024b, + 0x1224: 0x024b, 0x1225: 0x024e, 0x1226: 0x024e, 0x1227: 0x024e, 0x1228: 0x024e, 0x1229: 0x0251, + 0x122a: 0x0251, 0x122b: 0x0254, 0x122c: 0x0254, 0x122d: 0x0257, 0x122e: 0x0257, 0x122f: 0x025a, + 0x1230: 0x025a, 0x1231: 0x025d, 0x1232: 0x025d, 0x1233: 0x025d, 0x1234: 0x025d, 0x1235: 0x0260, + 0x1236: 0x0260, 0x1237: 0x0260, 0x1238: 0x0260, 0x1239: 0x0263, 0x123a: 0x0263, 0x123b: 0x0263, + 0x123c: 0x0263, 0x123d: 0x0266, 0x123e: 0x0266, 0x123f: 0x0266, + // Block 0x49, offset 0x1240 + 0x1240: 0x0266, 0x1241: 0x0269, 0x1242: 0x0269, 0x1243: 0x0269, 0x1244: 0x0269, 0x1245: 0x026c, + 0x1246: 0x026c, 0x1247: 0x026c, 0x1248: 0x026c, 0x1249: 0x026f, 0x124a: 0x026f, 0x124b: 0x026f, + 0x124c: 0x026f, 0x124d: 0x0272, 0x124e: 0x0272, 0x124f: 0x0272, 0x1250: 0x0272, 0x1251: 0x0275, + 0x1252: 0x0275, 0x1253: 0x0275, 0x1254: 0x0275, 0x1255: 0x0278, 0x1256: 0x0278, 0x1257: 0x0278, + 0x1258: 0x0278, 0x1259: 0x027b, 0x125a: 0x027b, 0x125b: 0x027b, 0x125c: 0x027b, 0x125d: 0x027e, + 0x125e: 0x027e, 0x125f: 0x027e, 0x1260: 0x027e, 0x1261: 0x0281, 0x1262: 0x0281, 0x1263: 0x0281, + 0x1264: 0x0281, 0x1265: 0x0284, 0x1266: 0x0284, 0x1267: 0x0284, 0x1268: 0x0284, 0x1269: 0x0287, + 0x126a: 0x0287, 0x126b: 0x0287, 0x126c: 0x0287, 0x126d: 0x028a, 0x126e: 0x028a, 0x126f: 0x028d, + 0x1270: 0x028d, 0x1271: 0x0290, 0x1272: 0x0290, 0x1273: 0x0290, 0x1274: 0x0290, 0x1275: 0x2e00, + 0x1276: 0x2e00, 0x1277: 0x2e08, 0x1278: 0x2e08, 0x1279: 0x2e10, 0x127a: 0x2e10, 0x127b: 0x1f82, + 0x127c: 0x1f82, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0081, 0x1281: 0x0083, 0x1282: 0x0085, 0x1283: 0x0087, 0x1284: 0x0089, 0x1285: 0x008b, + 0x1286: 0x008d, 0x1287: 0x008f, 0x1288: 0x0091, 0x1289: 0x0093, 0x128a: 0x0095, 0x128b: 0x0097, + 0x128c: 0x0099, 0x128d: 0x009b, 0x128e: 0x009d, 0x128f: 0x009f, 0x1290: 0x00a1, 0x1291: 0x00a3, + 0x1292: 0x00a5, 0x1293: 0x00a7, 0x1294: 0x00a9, 0x1295: 0x00ab, 0x1296: 0x00ad, 0x1297: 0x00af, + 0x1298: 0x00b1, 0x1299: 0x00b3, 0x129a: 0x00b5, 0x129b: 0x00b7, 0x129c: 0x00b9, 0x129d: 0x00bb, + 0x129e: 0x00bd, 0x129f: 0x0477, 0x12a0: 0x047b, 0x12a1: 0x0487, 0x12a2: 0x049b, 0x12a3: 0x049f, + 0x12a4: 0x0483, 0x12a5: 0x05ab, 0x12a6: 0x05a3, 0x12a7: 0x04c7, 0x12a8: 0x04cf, 0x12a9: 0x04d7, + 0x12aa: 0x04df, 0x12ab: 0x04e7, 0x12ac: 0x056b, 0x12ad: 0x0573, 0x12ae: 0x057b, 0x12af: 0x051f, + 0x12b0: 0x05af, 0x12b1: 0x04cb, 0x12b2: 0x04d3, 0x12b3: 0x04db, 0x12b4: 0x04e3, 0x12b5: 0x04eb, + 0x12b6: 0x04ef, 0x12b7: 0x04f3, 0x12b8: 0x04f7, 0x12b9: 0x04fb, 0x12ba: 0x04ff, 0x12bb: 0x0503, + 0x12bc: 0x0507, 0x12bd: 0x050b, 0x12be: 0x050f, 0x12bf: 0x0513, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x0517, 0x12c1: 0x051b, 0x12c2: 0x0523, 0x12c3: 0x0527, 0x12c4: 0x052b, 0x12c5: 0x052f, + 0x12c6: 0x0533, 0x12c7: 0x0537, 0x12c8: 0x053b, 0x12c9: 0x053f, 0x12ca: 0x0543, 0x12cb: 0x0547, + 0x12cc: 0x054b, 0x12cd: 0x054f, 0x12ce: 0x0553, 0x12cf: 0x0557, 0x12d0: 0x055b, 0x12d1: 0x055f, + 0x12d2: 0x0563, 0x12d3: 0x0567, 0x12d4: 0x056f, 0x12d5: 0x0577, 0x12d6: 0x057f, 0x12d7: 0x0583, + 0x12d8: 0x0587, 0x12d9: 0x058b, 0x12da: 0x058f, 0x12db: 0x0593, 0x12dc: 0x0597, 0x12dd: 0x05a7, + 0x12de: 0x4a78, 0x12df: 0x4a7e, 0x12e0: 0x03c3, 0x12e1: 0x0313, 0x12e2: 0x0317, 0x12e3: 0x4a3b, + 0x12e4: 0x031b, 0x12e5: 0x4a41, 0x12e6: 0x4a47, 0x12e7: 0x031f, 0x12e8: 0x0323, 0x12e9: 0x0327, + 0x12ea: 0x4a4d, 0x12eb: 0x4a53, 0x12ec: 0x4a59, 0x12ed: 0x4a5f, 0x12ee: 0x4a65, 0x12ef: 0x4a6b, + 0x12f0: 0x0367, 0x12f1: 0x032b, 0x12f2: 0x032f, 0x12f3: 0x0333, 0x12f4: 0x037b, 0x12f5: 0x0337, + 0x12f6: 0x033b, 0x12f7: 0x033f, 0x12f8: 0x0343, 0x12f9: 0x0347, 0x12fa: 0x034b, 0x12fb: 0x034f, + 0x12fc: 0x0353, 0x12fd: 0x0357, 0x12fe: 0x035b, + // Block 0x4c, offset 0x1300 + 0x1302: 0x49bd, 0x1303: 0x49c3, 0x1304: 0x49c9, 0x1305: 0x49cf, + 0x1306: 0x49d5, 0x1307: 0x49db, 0x130a: 0x49e1, 0x130b: 0x49e7, + 0x130c: 0x49ed, 0x130d: 0x49f3, 0x130e: 0x49f9, 0x130f: 0x49ff, + 0x1312: 0x4a05, 0x1313: 0x4a0b, 0x1314: 0x4a11, 0x1315: 0x4a17, 0x1316: 0x4a1d, 0x1317: 0x4a23, + 0x131a: 0x4a29, 0x131b: 0x4a2f, 0x131c: 0x4a35, + 0x1320: 0x00bf, 0x1321: 0x00c2, 0x1322: 0x00cb, 0x1323: 0x4264, + 0x1324: 0x00c8, 0x1325: 0x00c5, 0x1326: 0x0447, 0x1328: 0x046b, 0x1329: 0x044b, + 0x132a: 0x044f, 0x132b: 0x0453, 0x132c: 0x0457, 0x132d: 0x046f, 0x132e: 0x0473, + // Block 0x4d, offset 0x1340 + 0x1340: 0x0063, 0x1341: 0x0065, 0x1342: 0x0067, 0x1343: 0x0069, 0x1344: 0x006b, 0x1345: 0x006d, + 0x1346: 0x006f, 0x1347: 0x0071, 0x1348: 0x0073, 0x1349: 0x0075, 0x134a: 0x0083, 0x134b: 0x0085, + 0x134c: 0x0087, 0x134d: 0x0089, 0x134e: 0x008b, 0x134f: 0x008d, 0x1350: 0x008f, 0x1351: 0x0091, + 0x1352: 0x0093, 0x1353: 0x0095, 0x1354: 0x0097, 0x1355: 0x0099, 0x1356: 0x009b, 0x1357: 0x009d, + 0x1358: 0x009f, 0x1359: 0x00a1, 0x135a: 0x00a3, 0x135b: 0x00a5, 0x135c: 0x00a7, 0x135d: 0x00a9, + 0x135e: 0x00ab, 0x135f: 0x00ad, 0x1360: 0x00af, 0x1361: 0x00b1, 0x1362: 0x00b3, 0x1363: 0x00b5, + 0x1364: 0x00dd, 0x1365: 0x00f2, 0x1368: 0x0173, 0x1369: 0x0176, + 0x136a: 0x0179, 0x136b: 0x017c, 0x136c: 0x017f, 0x136d: 0x0182, 0x136e: 0x0185, 0x136f: 0x0188, + 0x1370: 0x018b, 0x1371: 0x018e, 0x1372: 0x0191, 0x1373: 0x0194, 0x1374: 0x0197, 0x1375: 0x019a, + 0x1376: 0x019d, 0x1377: 0x01a0, 0x1378: 0x01a3, 0x1379: 0x0188, 0x137a: 0x01a6, 0x137b: 0x01a9, + 0x137c: 0x01ac, 0x137d: 0x01af, 0x137e: 0x01b2, 0x137f: 0x01b5, + // Block 0x4e, offset 0x1380 + 0x1380: 0x01fd, 0x1381: 0x0200, 0x1382: 0x0203, 0x1383: 0x045b, 0x1384: 0x01c7, 0x1385: 0x01d0, + 0x1386: 0x01d6, 0x1387: 0x01fa, 0x1388: 0x01eb, 0x1389: 0x01e8, 0x138a: 0x0206, 0x138b: 0x0209, + 0x138e: 0x0021, 0x138f: 0x0023, 0x1390: 0x0025, 0x1391: 0x0027, + 0x1392: 0x0029, 0x1393: 0x002b, 0x1394: 0x002d, 0x1395: 0x002f, 0x1396: 0x0031, 0x1397: 0x0033, + 0x1398: 0x0021, 0x1399: 0x0023, 0x139a: 0x0025, 0x139b: 0x0027, 0x139c: 0x0029, 0x139d: 0x002b, + 0x139e: 0x002d, 0x139f: 0x002f, 0x13a0: 0x0031, 0x13a1: 0x0033, 0x13a2: 0x0021, 0x13a3: 0x0023, + 0x13a4: 0x0025, 0x13a5: 0x0027, 0x13a6: 0x0029, 0x13a7: 0x002b, 0x13a8: 0x002d, 0x13a9: 0x002f, + 0x13aa: 0x0031, 0x13ab: 0x0033, 0x13ac: 0x0021, 0x13ad: 0x0023, 0x13ae: 0x0025, 0x13af: 0x0027, + 0x13b0: 0x0029, 0x13b1: 0x002b, 0x13b2: 0x002d, 0x13b3: 0x002f, 0x13b4: 0x0031, 0x13b5: 0x0033, + 0x13b6: 0x0021, 0x13b7: 0x0023, 0x13b8: 0x0025, 0x13b9: 0x0027, 0x13ba: 0x0029, 0x13bb: 0x002b, + 0x13bc: 0x002d, 0x13bd: 0x002f, 0x13be: 0x0031, 0x13bf: 0x0033, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x0239, 0x13c1: 0x023c, 0x13c2: 0x0248, 0x13c3: 0x0251, 0x13c5: 0x028a, + 0x13c6: 0x025a, 0x13c7: 0x024b, 0x13c8: 0x0269, 0x13c9: 0x0290, 0x13ca: 0x027b, 0x13cb: 0x027e, + 0x13cc: 0x0281, 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d0: 0x0275, 0x13d1: 0x0263, + 0x13d2: 0x0278, 0x13d3: 0x0257, 0x13d4: 0x0260, 0x13d5: 0x0242, 0x13d6: 0x0245, 0x13d7: 0x024e, + 0x13d8: 0x0254, 0x13d9: 0x0266, 0x13da: 0x026c, 0x13db: 0x0272, 0x13dc: 0x0293, 0x13dd: 0x02e4, + 0x13de: 0x02cc, 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248, + 0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e9: 0x0290, + 0x13ea: 0x027b, 0x13eb: 0x027e, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f, + 0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242, + 0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fb: 0x0272, + // Block 0x50, offset 0x1400 + 0x1402: 0x0248, + 0x1407: 0x024b, 0x1409: 0x0290, 0x140b: 0x027e, + 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1411: 0x0263, + 0x1412: 0x0278, 0x1414: 0x0260, 0x1417: 0x024e, + 0x1419: 0x0266, 0x141b: 0x0272, 0x141d: 0x02e4, + 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, + 0x1424: 0x0287, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290, + 0x142a: 0x027b, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, + 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, + 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272, + 0x143c: 0x0293, 0x143e: 0x02cc, + // Block 0x51, offset 0x1440 + 0x1440: 0x0239, 0x1441: 0x023c, 0x1442: 0x0248, 0x1443: 0x0251, 0x1444: 0x0287, 0x1445: 0x028a, + 0x1446: 0x025a, 0x1447: 0x024b, 0x1448: 0x0269, 0x1449: 0x0290, 0x144b: 0x027e, + 0x144c: 0x0281, 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1450: 0x0275, 0x1451: 0x0263, + 0x1452: 0x0278, 0x1453: 0x0257, 0x1454: 0x0260, 0x1455: 0x0242, 0x1456: 0x0245, 0x1457: 0x024e, + 0x1458: 0x0254, 0x1459: 0x0266, 0x145a: 0x026c, 0x145b: 0x0272, + 0x1461: 0x023c, 0x1462: 0x0248, 0x1463: 0x0251, + 0x1465: 0x028a, 0x1466: 0x025a, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, + 0x146b: 0x027e, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, + 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1473: 0x0257, 0x1474: 0x0260, 0x1475: 0x0242, + 0x1476: 0x0245, 0x1477: 0x024e, 0x1478: 0x0254, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, + // Block 0x52, offset 0x1480 + 0x1480: 0x1879, 0x1481: 0x1876, 0x1482: 0x187c, 0x1483: 0x18a0, 0x1484: 0x18c4, 0x1485: 0x18e8, + 0x1486: 0x190c, 0x1487: 0x1915, 0x1488: 0x191b, 0x1489: 0x1921, 0x148a: 0x1927, + 0x1490: 0x1a8c, 0x1491: 0x1a90, + 0x1492: 0x1a94, 0x1493: 0x1a98, 0x1494: 0x1a9c, 0x1495: 0x1aa0, 0x1496: 0x1aa4, 0x1497: 0x1aa8, + 0x1498: 0x1aac, 0x1499: 0x1ab0, 0x149a: 0x1ab4, 0x149b: 0x1ab8, 0x149c: 0x1abc, 0x149d: 0x1ac0, + 0x149e: 0x1ac4, 0x149f: 0x1ac8, 0x14a0: 0x1acc, 0x14a1: 0x1ad0, 0x14a2: 0x1ad4, 0x14a3: 0x1ad8, + 0x14a4: 0x1adc, 0x14a5: 0x1ae0, 0x14a6: 0x1ae4, 0x14a7: 0x1ae8, 0x14a8: 0x1aec, 0x14a9: 0x1af0, + 0x14aa: 0x271e, 0x14ab: 0x0047, 0x14ac: 0x0065, 0x14ad: 0x193c, 0x14ae: 0x19b1, + 0x14b0: 0x0043, 0x14b1: 0x0045, 0x14b2: 0x0047, 0x14b3: 0x0049, 0x14b4: 0x004b, 0x14b5: 0x004d, + 0x14b6: 0x004f, 0x14b7: 0x0051, 0x14b8: 0x0053, 0x14b9: 0x0055, 0x14ba: 0x0057, 0x14bb: 0x0059, + 0x14bc: 0x005b, 0x14bd: 0x005d, 0x14be: 0x005f, 0x14bf: 0x0061, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x26ad, 0x14c1: 0x26c2, 0x14c2: 0x0503, + 0x14d0: 0x0c0f, 0x14d1: 0x0a47, + 0x14d2: 0x08d3, 0x14d3: 0x45c4, 0x14d4: 0x071b, 0x14d5: 0x09ef, 0x14d6: 0x132f, 0x14d7: 0x09ff, + 0x14d8: 0x0727, 0x14d9: 0x0cd7, 0x14da: 0x0eaf, 0x14db: 0x0caf, 0x14dc: 0x0827, 0x14dd: 0x0b6b, + 0x14de: 0x07bf, 0x14df: 0x0cb7, 0x14e0: 0x0813, 0x14e1: 0x1117, 0x14e2: 0x0f83, 0x14e3: 0x138b, + 0x14e4: 0x09d3, 0x14e5: 0x090b, 0x14e6: 0x0e63, 0x14e7: 0x0c1b, 0x14e8: 0x0c47, 0x14e9: 0x06bf, + 0x14ea: 0x06cb, 0x14eb: 0x140b, 0x14ec: 0x0adb, 0x14ed: 0x06e7, 0x14ee: 0x08ef, 0x14ef: 0x0c3b, + 0x14f0: 0x13b3, 0x14f1: 0x0c13, 0x14f2: 0x106f, 0x14f3: 0x10ab, 0x14f4: 0x08f7, 0x14f5: 0x0e43, + 0x14f6: 0x0d0b, 0x14f7: 0x0d07, 0x14f8: 0x0f97, 0x14f9: 0x082b, 0x14fa: 0x0957, 0x14fb: 0x1443, + // Block 0x54, offset 0x1500 + 0x1500: 0x06fb, 0x1501: 0x06f3, 0x1502: 0x0703, 0x1503: 0x1647, 0x1504: 0x0747, 0x1505: 0x0757, + 0x1506: 0x075b, 0x1507: 0x0763, 0x1508: 0x076b, 0x1509: 0x076f, 0x150a: 0x077b, 0x150b: 0x0773, + 0x150c: 0x05b3, 0x150d: 0x165b, 0x150e: 0x078f, 0x150f: 0x0793, 0x1510: 0x0797, 0x1511: 0x07b3, + 0x1512: 0x164c, 0x1513: 0x05b7, 0x1514: 0x079f, 0x1515: 0x07bf, 0x1516: 0x1656, 0x1517: 0x07cf, + 0x1518: 0x07d7, 0x1519: 0x0737, 0x151a: 0x07df, 0x151b: 0x07e3, 0x151c: 0x1831, 0x151d: 0x07ff, + 0x151e: 0x0807, 0x151f: 0x05bf, 0x1520: 0x081f, 0x1521: 0x0823, 0x1522: 0x082b, 0x1523: 0x082f, + 0x1524: 0x05c3, 0x1525: 0x0847, 0x1526: 0x084b, 0x1527: 0x0857, 0x1528: 0x0863, 0x1529: 0x0867, + 0x152a: 0x086b, 0x152b: 0x0873, 0x152c: 0x0893, 0x152d: 0x0897, 0x152e: 0x089f, 0x152f: 0x08af, + 0x1530: 0x08b7, 0x1531: 0x08bb, 0x1532: 0x08bb, 0x1533: 0x08bb, 0x1534: 0x166a, 0x1535: 0x0e93, + 0x1536: 0x08cf, 0x1537: 0x08d7, 0x1538: 0x166f, 0x1539: 0x08e3, 0x153a: 0x08eb, 0x153b: 0x08f3, + 0x153c: 0x091b, 0x153d: 0x0907, 0x153e: 0x0913, 0x153f: 0x0917, + // Block 0x55, offset 0x1540 + 0x1540: 0x091f, 0x1541: 0x0927, 0x1542: 0x092b, 0x1543: 0x0933, 0x1544: 0x093b, 0x1545: 0x093f, + 0x1546: 0x093f, 0x1547: 0x0947, 0x1548: 0x094f, 0x1549: 0x0953, 0x154a: 0x095f, 0x154b: 0x0983, + 0x154c: 0x0967, 0x154d: 0x0987, 0x154e: 0x096b, 0x154f: 0x0973, 0x1550: 0x080b, 0x1551: 0x09cf, + 0x1552: 0x0997, 0x1553: 0x099b, 0x1554: 0x099f, 0x1555: 0x0993, 0x1556: 0x09a7, 0x1557: 0x09a3, + 0x1558: 0x09bb, 0x1559: 0x1674, 0x155a: 0x09d7, 0x155b: 0x09db, 0x155c: 0x09e3, 0x155d: 0x09ef, + 0x155e: 0x09f7, 0x155f: 0x0a13, 0x1560: 0x1679, 0x1561: 0x167e, 0x1562: 0x0a1f, 0x1563: 0x0a23, + 0x1564: 0x0a27, 0x1565: 0x0a1b, 0x1566: 0x0a2f, 0x1567: 0x05c7, 0x1568: 0x05cb, 0x1569: 0x0a37, + 0x156a: 0x0a3f, 0x156b: 0x0a3f, 0x156c: 0x1683, 0x156d: 0x0a5b, 0x156e: 0x0a5f, 0x156f: 0x0a63, + 0x1570: 0x0a6b, 0x1571: 0x1688, 0x1572: 0x0a73, 0x1573: 0x0a77, 0x1574: 0x0b4f, 0x1575: 0x0a7f, + 0x1576: 0x05cf, 0x1577: 0x0a8b, 0x1578: 0x0a9b, 0x1579: 0x0aa7, 0x157a: 0x0aa3, 0x157b: 0x1692, + 0x157c: 0x0aaf, 0x157d: 0x1697, 0x157e: 0x0abb, 0x157f: 0x0ab7, + // Block 0x56, offset 0x1580 + 0x1580: 0x0abf, 0x1581: 0x0acf, 0x1582: 0x0ad3, 0x1583: 0x05d3, 0x1584: 0x0ae3, 0x1585: 0x0aeb, + 0x1586: 0x0aef, 0x1587: 0x0af3, 0x1588: 0x05d7, 0x1589: 0x169c, 0x158a: 0x05db, 0x158b: 0x0b0f, + 0x158c: 0x0b13, 0x158d: 0x0b17, 0x158e: 0x0b1f, 0x158f: 0x1863, 0x1590: 0x0b37, 0x1591: 0x16a6, + 0x1592: 0x16a6, 0x1593: 0x11d7, 0x1594: 0x0b47, 0x1595: 0x0b47, 0x1596: 0x05df, 0x1597: 0x16c9, + 0x1598: 0x179b, 0x1599: 0x0b57, 0x159a: 0x0b5f, 0x159b: 0x05e3, 0x159c: 0x0b73, 0x159d: 0x0b83, + 0x159e: 0x0b87, 0x159f: 0x0b8f, 0x15a0: 0x0b9f, 0x15a1: 0x05eb, 0x15a2: 0x05e7, 0x15a3: 0x0ba3, + 0x15a4: 0x16ab, 0x15a5: 0x0ba7, 0x15a6: 0x0bbb, 0x15a7: 0x0bbf, 0x15a8: 0x0bc3, 0x15a9: 0x0bbf, + 0x15aa: 0x0bcf, 0x15ab: 0x0bd3, 0x15ac: 0x0be3, 0x15ad: 0x0bdb, 0x15ae: 0x0bdf, 0x15af: 0x0be7, + 0x15b0: 0x0beb, 0x15b1: 0x0bef, 0x15b2: 0x0bfb, 0x15b3: 0x0bff, 0x15b4: 0x0c17, 0x15b5: 0x0c1f, + 0x15b6: 0x0c2f, 0x15b7: 0x0c43, 0x15b8: 0x16ba, 0x15b9: 0x0c3f, 0x15ba: 0x0c33, 0x15bb: 0x0c4b, + 0x15bc: 0x0c53, 0x15bd: 0x0c67, 0x15be: 0x16bf, 0x15bf: 0x0c6f, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0c63, 0x15c1: 0x0c5b, 0x15c2: 0x05ef, 0x15c3: 0x0c77, 0x15c4: 0x0c7f, 0x15c5: 0x0c87, + 0x15c6: 0x0c7b, 0x15c7: 0x05f3, 0x15c8: 0x0c97, 0x15c9: 0x0c9f, 0x15ca: 0x16c4, 0x15cb: 0x0ccb, + 0x15cc: 0x0cff, 0x15cd: 0x0cdb, 0x15ce: 0x05ff, 0x15cf: 0x0ce7, 0x15d0: 0x05fb, 0x15d1: 0x05f7, + 0x15d2: 0x07c3, 0x15d3: 0x07c7, 0x15d4: 0x0d03, 0x15d5: 0x0ceb, 0x15d6: 0x11ab, 0x15d7: 0x0663, + 0x15d8: 0x0d0f, 0x15d9: 0x0d13, 0x15da: 0x0d17, 0x15db: 0x0d2b, 0x15dc: 0x0d23, 0x15dd: 0x16dd, + 0x15de: 0x0603, 0x15df: 0x0d3f, 0x15e0: 0x0d33, 0x15e1: 0x0d4f, 0x15e2: 0x0d57, 0x15e3: 0x16e7, + 0x15e4: 0x0d5b, 0x15e5: 0x0d47, 0x15e6: 0x0d63, 0x15e7: 0x0607, 0x15e8: 0x0d67, 0x15e9: 0x0d6b, + 0x15ea: 0x0d6f, 0x15eb: 0x0d7b, 0x15ec: 0x16ec, 0x15ed: 0x0d83, 0x15ee: 0x060b, 0x15ef: 0x0d8f, + 0x15f0: 0x16f1, 0x15f1: 0x0d93, 0x15f2: 0x060f, 0x15f3: 0x0d9f, 0x15f4: 0x0dab, 0x15f5: 0x0db7, + 0x15f6: 0x0dbb, 0x15f7: 0x16f6, 0x15f8: 0x168d, 0x15f9: 0x16fb, 0x15fa: 0x0ddb, 0x15fb: 0x1700, + 0x15fc: 0x0de7, 0x15fd: 0x0def, 0x15fe: 0x0ddf, 0x15ff: 0x0dfb, + // Block 0x58, offset 0x1600 + 0x1600: 0x0e0b, 0x1601: 0x0e1b, 0x1602: 0x0e0f, 0x1603: 0x0e13, 0x1604: 0x0e1f, 0x1605: 0x0e23, + 0x1606: 0x1705, 0x1607: 0x0e07, 0x1608: 0x0e3b, 0x1609: 0x0e3f, 0x160a: 0x0613, 0x160b: 0x0e53, + 0x160c: 0x0e4f, 0x160d: 0x170a, 0x160e: 0x0e33, 0x160f: 0x0e6f, 0x1610: 0x170f, 0x1611: 0x1714, + 0x1612: 0x0e73, 0x1613: 0x0e87, 0x1614: 0x0e83, 0x1615: 0x0e7f, 0x1616: 0x0617, 0x1617: 0x0e8b, + 0x1618: 0x0e9b, 0x1619: 0x0e97, 0x161a: 0x0ea3, 0x161b: 0x1651, 0x161c: 0x0eb3, 0x161d: 0x1719, + 0x161e: 0x0ebf, 0x161f: 0x1723, 0x1620: 0x0ed3, 0x1621: 0x0edf, 0x1622: 0x0ef3, 0x1623: 0x1728, + 0x1624: 0x0f07, 0x1625: 0x0f0b, 0x1626: 0x172d, 0x1627: 0x1732, 0x1628: 0x0f27, 0x1629: 0x0f37, + 0x162a: 0x061b, 0x162b: 0x0f3b, 0x162c: 0x061f, 0x162d: 0x061f, 0x162e: 0x0f53, 0x162f: 0x0f57, + 0x1630: 0x0f5f, 0x1631: 0x0f63, 0x1632: 0x0f6f, 0x1633: 0x0623, 0x1634: 0x0f87, 0x1635: 0x1737, + 0x1636: 0x0fa3, 0x1637: 0x173c, 0x1638: 0x0faf, 0x1639: 0x16a1, 0x163a: 0x0fbf, 0x163b: 0x1741, + 0x163c: 0x1746, 0x163d: 0x174b, 0x163e: 0x0627, 0x163f: 0x062b, + // Block 0x59, offset 0x1640 + 0x1640: 0x0ff7, 0x1641: 0x1755, 0x1642: 0x1750, 0x1643: 0x175a, 0x1644: 0x175f, 0x1645: 0x0fff, + 0x1646: 0x1003, 0x1647: 0x1003, 0x1648: 0x100b, 0x1649: 0x0633, 0x164a: 0x100f, 0x164b: 0x0637, + 0x164c: 0x063b, 0x164d: 0x1769, 0x164e: 0x1023, 0x164f: 0x102b, 0x1650: 0x1037, 0x1651: 0x063f, + 0x1652: 0x176e, 0x1653: 0x105b, 0x1654: 0x1773, 0x1655: 0x1778, 0x1656: 0x107b, 0x1657: 0x1093, + 0x1658: 0x0643, 0x1659: 0x109b, 0x165a: 0x109f, 0x165b: 0x10a3, 0x165c: 0x177d, 0x165d: 0x1782, + 0x165e: 0x1782, 0x165f: 0x10bb, 0x1660: 0x0647, 0x1661: 0x1787, 0x1662: 0x10cf, 0x1663: 0x10d3, + 0x1664: 0x064b, 0x1665: 0x178c, 0x1666: 0x10ef, 0x1667: 0x064f, 0x1668: 0x10ff, 0x1669: 0x10f7, + 0x166a: 0x1107, 0x166b: 0x1796, 0x166c: 0x111f, 0x166d: 0x0653, 0x166e: 0x112b, 0x166f: 0x1133, + 0x1670: 0x1143, 0x1671: 0x0657, 0x1672: 0x17a0, 0x1673: 0x17a5, 0x1674: 0x065b, 0x1675: 0x17aa, + 0x1676: 0x115b, 0x1677: 0x17af, 0x1678: 0x1167, 0x1679: 0x1173, 0x167a: 0x117b, 0x167b: 0x17b4, + 0x167c: 0x17b9, 0x167d: 0x118f, 0x167e: 0x17be, 0x167f: 0x1197, + // Block 0x5a, offset 0x1680 + 0x1680: 0x16ce, 0x1681: 0x065f, 0x1682: 0x11af, 0x1683: 0x11b3, 0x1684: 0x0667, 0x1685: 0x11b7, + 0x1686: 0x0a33, 0x1687: 0x17c3, 0x1688: 0x17c8, 0x1689: 0x16d3, 0x168a: 0x16d8, 0x168b: 0x11d7, + 0x168c: 0x11db, 0x168d: 0x13f3, 0x168e: 0x066b, 0x168f: 0x1207, 0x1690: 0x1203, 0x1691: 0x120b, + 0x1692: 0x083f, 0x1693: 0x120f, 0x1694: 0x1213, 0x1695: 0x1217, 0x1696: 0x121f, 0x1697: 0x17cd, + 0x1698: 0x121b, 0x1699: 0x1223, 0x169a: 0x1237, 0x169b: 0x123b, 0x169c: 0x1227, 0x169d: 0x123f, + 0x169e: 0x1253, 0x169f: 0x1267, 0x16a0: 0x1233, 0x16a1: 0x1247, 0x16a2: 0x124b, 0x16a3: 0x124f, + 0x16a4: 0x17d2, 0x16a5: 0x17dc, 0x16a6: 0x17d7, 0x16a7: 0x066f, 0x16a8: 0x126f, 0x16a9: 0x1273, + 0x16aa: 0x127b, 0x16ab: 0x17f0, 0x16ac: 0x127f, 0x16ad: 0x17e1, 0x16ae: 0x0673, 0x16af: 0x0677, + 0x16b0: 0x17e6, 0x16b1: 0x17eb, 0x16b2: 0x067b, 0x16b3: 0x129f, 0x16b4: 0x12a3, 0x16b5: 0x12a7, + 0x16b6: 0x12ab, 0x16b7: 0x12b7, 0x16b8: 0x12b3, 0x16b9: 0x12bf, 0x16ba: 0x12bb, 0x16bb: 0x12cb, + 0x16bc: 0x12c3, 0x16bd: 0x12c7, 0x16be: 0x12cf, 0x16bf: 0x067f, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x12d7, 0x16c1: 0x12db, 0x16c2: 0x0683, 0x16c3: 0x12eb, 0x16c4: 0x12ef, 0x16c5: 0x17f5, + 0x16c6: 0x12fb, 0x16c7: 0x12ff, 0x16c8: 0x0687, 0x16c9: 0x130b, 0x16ca: 0x05bb, 0x16cb: 0x17fa, + 0x16cc: 0x17ff, 0x16cd: 0x068b, 0x16ce: 0x068f, 0x16cf: 0x1337, 0x16d0: 0x134f, 0x16d1: 0x136b, + 0x16d2: 0x137b, 0x16d3: 0x1804, 0x16d4: 0x138f, 0x16d5: 0x1393, 0x16d6: 0x13ab, 0x16d7: 0x13b7, + 0x16d8: 0x180e, 0x16d9: 0x1660, 0x16da: 0x13c3, 0x16db: 0x13bf, 0x16dc: 0x13cb, 0x16dd: 0x1665, + 0x16de: 0x13d7, 0x16df: 0x13e3, 0x16e0: 0x1813, 0x16e1: 0x1818, 0x16e2: 0x1423, 0x16e3: 0x142f, + 0x16e4: 0x1437, 0x16e5: 0x181d, 0x16e6: 0x143b, 0x16e7: 0x1467, 0x16e8: 0x1473, 0x16e9: 0x1477, + 0x16ea: 0x146f, 0x16eb: 0x1483, 0x16ec: 0x1487, 0x16ed: 0x1822, 0x16ee: 0x1493, 0x16ef: 0x0693, + 0x16f0: 0x149b, 0x16f1: 0x1827, 0x16f2: 0x0697, 0x16f3: 0x14d3, 0x16f4: 0x0ac3, 0x16f5: 0x14eb, + 0x16f6: 0x182c, 0x16f7: 0x1836, 0x16f8: 0x069b, 0x16f9: 0x069f, 0x16fa: 0x1513, 0x16fb: 0x183b, + 0x16fc: 0x06a3, 0x16fd: 0x1840, 0x16fe: 0x152b, 0x16ff: 0x152b, + // Block 0x5c, offset 0x1700 + 0x1700: 0x1533, 0x1701: 0x1845, 0x1702: 0x154b, 0x1703: 0x06a7, 0x1704: 0x155b, 0x1705: 0x1567, + 0x1706: 0x156f, 0x1707: 0x1577, 0x1708: 0x06ab, 0x1709: 0x184a, 0x170a: 0x158b, 0x170b: 0x15a7, + 0x170c: 0x15b3, 0x170d: 0x06af, 0x170e: 0x06b3, 0x170f: 0x15b7, 0x1710: 0x184f, 0x1711: 0x06b7, + 0x1712: 0x1854, 0x1713: 0x1859, 0x1714: 0x185e, 0x1715: 0x15db, 0x1716: 0x06bb, 0x1717: 0x15ef, + 0x1718: 0x15f7, 0x1719: 0x15fb, 0x171a: 0x1603, 0x171b: 0x160b, 0x171c: 0x1613, 0x171d: 0x1868, +} + +// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5b, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5c, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5d, 0xcb: 0x5e, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x5f, 0xd2: 0x60, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x61, + 0xd8: 0x62, 0xd9: 0x0d, 0xdb: 0x63, 0xdc: 0x64, 0xdd: 0x65, 0xdf: 0x66, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x67, 0x121: 0x68, 0x123: 0x69, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, + 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, + 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, + 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, + // Block 0x5, offset 0x140 + 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, + 0x14d: 0x8a, + 0x15c: 0x8b, 0x15f: 0x8c, + 0x162: 0x8d, 0x164: 0x8e, + 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0e, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, + 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x11, + 0x178: 0x12, 0x179: 0x13, 0x17a: 0x14, 0x17b: 0x15, 0x17c: 0x16, 0x17d: 0x17, 0x17e: 0x18, 0x17f: 0x19, + // Block 0x6, offset 0x180 + 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1a, 0x185: 0x1b, 0x186: 0x9c, 0x187: 0x9d, + 0x188: 0x9e, 0x189: 0x1c, 0x18a: 0x1d, 0x18b: 0x9f, 0x18c: 0xa0, + 0x191: 0x1e, 0x192: 0x1f, 0x193: 0xa1, + 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, + 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, + 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x20, 0x1bd: 0x21, 0x1be: 0x22, 0x1bf: 0xab, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xac, 0x1c1: 0x23, 0x1c2: 0x24, 0x1c3: 0x25, 0x1c4: 0xad, 0x1c5: 0x26, 0x1c6: 0x27, + 0x1c8: 0x28, 0x1c9: 0x29, 0x1ca: 0x2a, 0x1cb: 0x2b, 0x1cc: 0x2c, 0x1cd: 0x2d, 0x1ce: 0x2e, 0x1cf: 0x2f, + // Block 0x8, offset 0x200 + 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, + 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, + 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, + 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, + 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, + // Block 0x9, offset 0x240 + 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, + 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, + 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, + 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, + 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, + 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, + 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, + 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, + // Block 0xa, offset 0x280 + 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, + 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, + 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, + 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, + 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, + 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, + 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, + 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, + 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, + 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, + 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, + // Block 0xc, offset 0x300 + 0x324: 0x30, 0x325: 0x31, 0x326: 0x32, 0x327: 0x33, + 0x328: 0x34, 0x329: 0x35, 0x32a: 0x36, 0x32b: 0x37, 0x32c: 0x38, 0x32d: 0x39, 0x32e: 0x3a, 0x32f: 0x3b, + 0x330: 0x3c, 0x331: 0x3d, 0x332: 0x3e, 0x333: 0x3f, 0x334: 0x40, 0x335: 0x41, 0x336: 0x42, 0x337: 0x43, + 0x338: 0x44, 0x339: 0x45, 0x33a: 0x46, 0x33b: 0x47, 0x33c: 0xc5, 0x33d: 0x48, 0x33e: 0x49, 0x33f: 0x4a, + // Block 0xd, offset 0x340 + 0x347: 0xc6, + 0x34b: 0xc7, 0x34d: 0xc8, + 0x368: 0xc9, 0x36b: 0xca, + // Block 0xe, offset 0x380 + 0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce, + 0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6c, 0x38d: 0xd1, + 0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6, + 0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9, + 0x3a8: 0xda, 0x3a9: 0xdb, 0x3aa: 0xdc, + 0x3b0: 0xd7, 0x3b5: 0xdd, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xde, 0x3ec: 0xdf, + // Block 0x10, offset 0x400 + 0x432: 0xe0, + // Block 0x11, offset 0x440 + 0x445: 0xe1, 0x446: 0xe2, 0x447: 0xe3, + 0x449: 0xe4, + 0x450: 0xe5, 0x451: 0xe6, 0x452: 0xe7, 0x453: 0xe8, 0x454: 0xe9, 0x455: 0xea, 0x456: 0xeb, 0x457: 0xec, + 0x458: 0xed, 0x459: 0xee, 0x45a: 0x4b, 0x45b: 0xef, 0x45c: 0xf0, 0x45d: 0xf1, 0x45e: 0xf2, 0x45f: 0x4c, + // Block 0x12, offset 0x480 + 0x480: 0xf3, + 0x4a3: 0xf4, 0x4a5: 0xf5, + 0x4b8: 0x4d, 0x4b9: 0x4e, 0x4ba: 0x4f, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x50, 0x4c5: 0xf6, 0x4c6: 0xf7, + 0x4c8: 0x51, 0x4c9: 0xf8, + // Block 0x14, offset 0x500 + 0x520: 0x52, 0x521: 0x53, 0x522: 0x54, 0x523: 0x55, 0x524: 0x56, 0x525: 0x57, 0x526: 0x58, 0x527: 0x59, + 0x528: 0x5a, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 158 entries, 316 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd5, 0xdc, 0xe4, 0xe8, 0xea, 0xed, 0xf1, 0xf7, 0x108, 0x114, 0x116, 0x11c, 0x11e, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12a, 0x12d, 0x130, 0x132, 0x135, 0x138, 0x13c, 0x141, 0x14a, 0x14c, 0x14f, 0x151, 0x15c, 0x167, 0x175, 0x183, 0x193, 0x1a1, 0x1a8, 0x1ae, 0x1bd, 0x1c1, 0x1c3, 0x1c7, 0x1c9, 0x1cc, 0x1ce, 0x1d1, 0x1d3, 0x1d6, 0x1d8, 0x1da, 0x1dc, 0x1e8, 0x1f2, 0x1fc, 0x1ff, 0x203, 0x205, 0x207, 0x209, 0x20b, 0x20e, 0x210, 0x212, 0x214, 0x216, 0x21c, 0x21f, 0x223, 0x225, 0x22c, 0x232, 0x238, 0x240, 0x246, 0x24c, 0x252, 0x256, 0x258, 0x25a, 0x25c, 0x25e, 0x264, 0x267, 0x26a, 0x272, 0x279, 0x27c, 0x27f, 0x281, 0x289, 0x28c, 0x293, 0x296, 0x29c, 0x29e, 0x2a0, 0x2a3, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2c1, 0x2cb, 0x2cd, 0x2cf, 0x2d3, 0x2d8, 0x2e4, 0x2e9, 0x2f2, 0x2f8, 0x2fd, 0x301, 0x306, 0x30a, 0x31a, 0x328, 0x336, 0x344, 0x34a, 0x34c, 0x34f, 0x359, 0x35b} + +// nfkcSparseValues: 869 entries, 3476 bytes +var nfkcSparseValues = [869]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x4278, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x4264, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x425a, lo: 0xb4, hi: 0xb4}, + {value: 0x01dc, lo: 0xb5, hi: 0xb5}, + {value: 0x4291, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x221c, lo: 0xbc, hi: 0xbc}, + {value: 0x2210, lo: 0xbd, hi: 0xbd}, + {value: 0x22b2, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x426e, lo: 0x98, hi: 0x98}, + {value: 0x4273, lo: 0x99, hi: 0x9a}, + {value: 0x4296, lo: 0x9b, hi: 0x9b}, + {value: 0x425f, lo: 0x9c, hi: 0x9c}, + {value: 0x4282, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x0167, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + // Block 0xc, offset 0x6f + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x74 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x76 + {value: 0x0000, lo: 0x10}, + {value: 0x8132, lo: 0x94, hi: 0xa1}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xa9, hi: 0xa9}, + {value: 0x8132, lo: 0xaa, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xaf}, + {value: 0x8116, lo: 0xb0, hi: 0xb0}, + {value: 0x8117, lo: 0xb1, hi: 0xb1}, + {value: 0x8118, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb5}, + {value: 0x812d, lo: 0xb6, hi: 0xb6}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x812d, lo: 0xb9, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbf}, + // Block 0xf, offset 0x87 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x8f + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x96 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x99 + {value: 0x0008, lo: 0x06}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + // Block 0x13, offset 0xa0 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0xa4 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0xa8 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0xaa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0xac + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0xb5 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xc0 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xc5 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xc8 + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xd2 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xd5 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xdc + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xe4 + {value: 0x0000, lo: 0x03}, + {value: 0x2621, lo: 0xb3, hi: 0xb3}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xe8 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xea + {value: 0x0000, lo: 0x02}, + {value: 0x2636, lo: 0xb3, hi: 0xb3}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x23, offset 0xed + {value: 0x0000, lo: 0x03}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + {value: 0x2628, lo: 0x9c, hi: 0x9c}, + {value: 0x262f, lo: 0x9d, hi: 0x9d}, + // Block 0x24, offset 0xf1 + {value: 0x0000, lo: 0x05}, + {value: 0x030b, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xf7 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x45f4, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x45ff, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0x108 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0x114 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0x116 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0x11c + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0x11e + {value: 0x0000, lo: 0x01}, + {value: 0x030f, lo: 0xbc, hi: 0xbc}, + // Block 0x2b, offset 0x120 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x122 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x124 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x126 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x128 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x12a + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x12d + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x130 + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x132 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x135 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x138 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x13c + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x37, offset 0x141 + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x14a + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x14c + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x14f + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x151 + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x15c + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x167 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043b, lo: 0x91, hi: 0x91}, + {value: 0x429b, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1873, lo: 0xa5, hi: 0xa5}, + {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2691, lo: 0xb3, hi: 0xb3}, + {value: 0x27fe, lo: 0xb4, hi: 0xb4}, + {value: 0x2698, lo: 0xb6, hi: 0xb6}, + {value: 0x2808, lo: 0xb7, hi: 0xb7}, + {value: 0x186d, lo: 0xbc, hi: 0xbc}, + {value: 0x4269, lo: 0xbe, hi: 0xbe}, + // Block 0x3e, offset 0x175 + {value: 0x0002, lo: 0x0d}, + {value: 0x1933, lo: 0x87, hi: 0x87}, + {value: 0x1930, lo: 0x88, hi: 0x88}, + {value: 0x1870, lo: 0x89, hi: 0x89}, + {value: 0x298e, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x0467, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x3f, offset 0x183 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x0467, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x1999, lo: 0xa8, hi: 0xa8}, + // Block 0x40, offset 0x193 + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x41, offset 0x1a1 + {value: 0x0007, lo: 0x06}, + {value: 0x2180, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x42, offset 0x1a8 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x43, offset 0x1ae + {value: 0x0173, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0x269f, lo: 0xac, hi: 0xad}, + {value: 0x26a6, lo: 0xaf, hi: 0xaf}, + {value: 0x281c, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x44, offset 0x1bd + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x45, offset 0x1c1 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x46, offset 0x1c3 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x47, offset 0x1c7 + {value: 0x0000, lo: 0x01}, + {value: 0x299b, lo: 0x8c, hi: 0x8c}, + // Block 0x48, offset 0x1c9 + {value: 0x0263, lo: 0x02}, + {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, + {value: 0x192d, lo: 0xb5, hi: 0xb6}, + // Block 0x49, offset 0x1cc + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x4a, offset 0x1ce + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4b, offset 0x1d1 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x4c, offset 0x1d3 + {value: 0x0000, lo: 0x02}, + {value: 0x047f, lo: 0xaf, hi: 0xaf}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x4d, offset 0x1d6 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x4e, offset 0x1d8 + {value: 0x0000, lo: 0x01}, + {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, + // Block 0x4f, offset 0x1da + {value: 0x0000, lo: 0x01}, + {value: 0x162f, lo: 0xb3, hi: 0xb3}, + // Block 0x50, offset 0x1dc + {value: 0x0004, lo: 0x0b}, + {value: 0x1597, lo: 0x80, hi: 0x82}, + {value: 0x15af, lo: 0x83, hi: 0x83}, + {value: 0x15c7, lo: 0x84, hi: 0x85}, + {value: 0x15d7, lo: 0x86, hi: 0x89}, + {value: 0x15eb, lo: 0x8a, hi: 0x8c}, + {value: 0x15ff, lo: 0x8d, hi: 0x8d}, + {value: 0x1607, lo: 0x8e, hi: 0x8e}, + {value: 0x160f, lo: 0x8f, hi: 0x90}, + {value: 0x161b, lo: 0x91, hi: 0x93}, + {value: 0x162b, lo: 0x94, hi: 0x94}, + {value: 0x1633, lo: 0x95, hi: 0x95}, + // Block 0x51, offset 0x1e8 + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xae}, + {value: 0x812f, lo: 0xaf, hi: 0xaf}, + {value: 0x04b3, lo: 0xb6, hi: 0xb6}, + {value: 0x0887, lo: 0xb8, hi: 0xba}, + // Block 0x52, offset 0x1f2 + {value: 0x0006, lo: 0x09}, + {value: 0x0313, lo: 0xb1, hi: 0xb1}, + {value: 0x0317, lo: 0xb2, hi: 0xb2}, + {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, + {value: 0x031b, lo: 0xb4, hi: 0xb4}, + {value: 0x4a41, lo: 0xb5, hi: 0xb6}, + {value: 0x031f, lo: 0xb7, hi: 0xb7}, + {value: 0x0323, lo: 0xb8, hi: 0xb8}, + {value: 0x0327, lo: 0xb9, hi: 0xb9}, + {value: 0x4a4d, lo: 0xba, hi: 0xbf}, + // Block 0x53, offset 0x1fc + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x54, offset 0x1ff + {value: 0x0000, lo: 0x03}, + {value: 0x020f, lo: 0x9c, hi: 0x9c}, + {value: 0x0212, lo: 0x9d, hi: 0x9d}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x55, offset 0x203 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x56, offset 0x205 + {value: 0x0000, lo: 0x01}, + {value: 0x163b, lo: 0xb0, hi: 0xb0}, + // Block 0x57, offset 0x207 + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x58, offset 0x209 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x59, offset 0x20b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x5a, offset 0x20e + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x5b, offset 0x210 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x5c, offset 0x212 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x5d, offset 0x214 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x5e, offset 0x216 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x5f, offset 0x21c + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x60, offset 0x21f + {value: 0x0008, lo: 0x03}, + {value: 0x1637, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1643, lo: 0x9f, hi: 0x9f}, + // Block 0x61, offset 0x223 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x62, offset 0x225 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x63, offset 0x22c + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x64, offset 0x232 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x65, offset 0x238 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x66, offset 0x240 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x67, offset 0x246 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x68, offset 0x24c + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x69, offset 0x252 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x6a, offset 0x256 + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6b, offset 0x258 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6c, offset 0x25a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x6d, offset 0x25c + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x6e, offset 0x25e + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x6f, offset 0x264 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x70, offset 0x267 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x71, offset 0x26a + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x72, offset 0x272 + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x73, offset 0x279 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x74, offset 0x27c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x75, offset 0x27f + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x76, offset 0x281 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x77, offset 0x289 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + // Block 0x78, offset 0x28c + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x79, offset 0x293 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7a, offset 0x296 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7b, offset 0x29c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x7c, offset 0x29e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7d, offset 0x2a0 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x7e, offset 0x2a3 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x7f, offset 0x2a5 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x80, offset 0x2a7 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x81, offset 0x2a9 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x82, offset 0x2ab + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x83, offset 0x2ae + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x84, offset 0x2b0 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x85, offset 0x2b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x86, offset 0x2b4 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x87, offset 0x2c1 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x88, offset 0x2cb + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x89, offset 0x2cd + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8a, offset 0x2cf + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x8b, offset 0x2d3 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x8c, offset 0x2d8 + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x8d, offset 0x2e4 + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x8e, offset 0x2e9 + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x8f, offset 0x2f2 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x90, offset 0x2f8 + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x91, offset 0x2fd + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x92, offset 0x301 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x93, offset 0x306 + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x94, offset 0x30a + {value: 0x0003, lo: 0x0f}, + {value: 0x01b8, lo: 0x80, hi: 0x80}, + {value: 0x045f, lo: 0x81, hi: 0x81}, + {value: 0x01bb, lo: 0x82, hi: 0x9a}, + {value: 0x045b, lo: 0x9b, hi: 0x9b}, + {value: 0x01c7, lo: 0x9c, hi: 0x9c}, + {value: 0x01d0, lo: 0x9d, hi: 0x9d}, + {value: 0x01d6, lo: 0x9e, hi: 0x9e}, + {value: 0x01fa, lo: 0x9f, hi: 0x9f}, + {value: 0x01eb, lo: 0xa0, hi: 0xa0}, + {value: 0x01e8, lo: 0xa1, hi: 0xa1}, + {value: 0x0173, lo: 0xa2, hi: 0xb2}, + {value: 0x0188, lo: 0xb3, hi: 0xb3}, + {value: 0x01a6, lo: 0xb4, hi: 0xba}, + {value: 0x045f, lo: 0xbb, hi: 0xbb}, + {value: 0x01bb, lo: 0xbc, hi: 0xbf}, + // Block 0x95, offset 0x31a + {value: 0x0003, lo: 0x0d}, + {value: 0x01c7, lo: 0x80, hi: 0x94}, + {value: 0x045b, lo: 0x95, hi: 0x95}, + {value: 0x01c7, lo: 0x96, hi: 0x96}, + {value: 0x01d0, lo: 0x97, hi: 0x97}, + {value: 0x01d6, lo: 0x98, hi: 0x98}, + {value: 0x01fa, lo: 0x99, hi: 0x99}, + {value: 0x01eb, lo: 0x9a, hi: 0x9a}, + {value: 0x01e8, lo: 0x9b, hi: 0x9b}, + {value: 0x0173, lo: 0x9c, hi: 0xac}, + {value: 0x0188, lo: 0xad, hi: 0xad}, + {value: 0x01a6, lo: 0xae, hi: 0xb4}, + {value: 0x045f, lo: 0xb5, hi: 0xb5}, + {value: 0x01bb, lo: 0xb6, hi: 0xbf}, + // Block 0x96, offset 0x328 + {value: 0x0003, lo: 0x0d}, + {value: 0x01d9, lo: 0x80, hi: 0x8e}, + {value: 0x045b, lo: 0x8f, hi: 0x8f}, + {value: 0x01c7, lo: 0x90, hi: 0x90}, + {value: 0x01d0, lo: 0x91, hi: 0x91}, + {value: 0x01d6, lo: 0x92, hi: 0x92}, + {value: 0x01fa, lo: 0x93, hi: 0x93}, + {value: 0x01eb, lo: 0x94, hi: 0x94}, + {value: 0x01e8, lo: 0x95, hi: 0x95}, + {value: 0x0173, lo: 0x96, hi: 0xa6}, + {value: 0x0188, lo: 0xa7, hi: 0xa7}, + {value: 0x01a6, lo: 0xa8, hi: 0xae}, + {value: 0x045f, lo: 0xaf, hi: 0xaf}, + {value: 0x01bb, lo: 0xb0, hi: 0xbf}, + // Block 0x97, offset 0x336 + {value: 0x0003, lo: 0x0d}, + {value: 0x01eb, lo: 0x80, hi: 0x88}, + {value: 0x045b, lo: 0x89, hi: 0x89}, + {value: 0x01c7, lo: 0x8a, hi: 0x8a}, + {value: 0x01d0, lo: 0x8b, hi: 0x8b}, + {value: 0x01d6, lo: 0x8c, hi: 0x8c}, + {value: 0x01fa, lo: 0x8d, hi: 0x8d}, + {value: 0x01eb, lo: 0x8e, hi: 0x8e}, + {value: 0x01e8, lo: 0x8f, hi: 0x8f}, + {value: 0x0173, lo: 0x90, hi: 0xa0}, + {value: 0x0188, lo: 0xa1, hi: 0xa1}, + {value: 0x01a6, lo: 0xa2, hi: 0xa8}, + {value: 0x045f, lo: 0xa9, hi: 0xa9}, + {value: 0x01bb, lo: 0xaa, hi: 0xbf}, + // Block 0x98, offset 0x344 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x99, offset 0x34a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x9a, offset 0x34c + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x9b, offset 0x34f + {value: 0x0002, lo: 0x09}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1951, lo: 0x8a, hi: 0x8a}, + {value: 0x1981, lo: 0x8b, hi: 0x8b}, + {value: 0x199c, lo: 0x8c, hi: 0x8c}, + {value: 0x19a2, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, + {value: 0x19ae, lo: 0x8f, hi: 0x8f}, + {value: 0x197b, lo: 0xaa, hi: 0xaa}, + {value: 0x197e, lo: 0xab, hi: 0xab}, + // Block 0x9c, offset 0x359 + {value: 0x0000, lo: 0x01}, + {value: 0x193f, lo: 0x90, hi: 0x90}, + // Block 0x9d, offset 0x35b + {value: 0x0028, lo: 0x09}, + {value: 0x2862, lo: 0x80, hi: 0x80}, + {value: 0x2826, lo: 0x81, hi: 0x81}, + {value: 0x2830, lo: 0x82, hi: 0x82}, + {value: 0x2844, lo: 0x83, hi: 0x84}, + {value: 0x284e, lo: 0x85, hi: 0x86}, + {value: 0x283a, lo: 0x87, hi: 0x87}, + {value: 0x2858, lo: 0x88, hi: 0x88}, + {value: 0x0b6f, lo: 0x90, hi: 0x90}, + {value: 0x08e7, lo: 0x91, hi: 0x91}, +} + +// recompMap: 7520 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 53KB (54226 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go new file mode 100644 index 0000000..cb7239c --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go @@ -0,0 +1,7694 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.13 && !go1.14 +// +build go1.13,!go1.14 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "11.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [55]uint8{ + 0, 1, 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, + 84, 91, 103, 107, 118, 122, 129, 130, + 132, 202, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x186D + firstCCC = 0x2C9E + endMulti = 0x2F60 + firstLeadingCCC = 0x49AE + firstCCCZeroExcept = 0x4A78 + firstStarterWithNLead = 0x4A9F + lastDecomp = 0x4AA1 + maxDecomp = 0x8000 +) + +// decomps: 19105 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, + 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, + 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, + 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, + 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, + 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, + 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, + 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, + 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, + 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, + 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, + 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, + 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, + 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, + 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, + 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, + 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, + 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, + // Bytes 200 - 23f + 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, + 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, + 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, + 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, + 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, + 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, + 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, + 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, + 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, + 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, + 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, + 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, + 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, + 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, + 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, + 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, + 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, + 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, + 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, + 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, + 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, + 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, + 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, + 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, + 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, + 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, + 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, + 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, + 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, + // Bytes 300 - 33f + 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, + 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, + 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, + 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, + 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, + 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, + 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, + 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, + // Bytes 340 - 37f + 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, + 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, + 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, + 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, + 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, + 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, + 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, + 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, + // Bytes 380 - 3bf + 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, + 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, + 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, + 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, + 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, + 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, + 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, + 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, + // Bytes 3c0 - 3ff + 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, + 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, + 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, + 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, + 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, + 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, + 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, + 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, + // Bytes 400 - 43f + 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, + 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, + 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, + 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, + 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, + 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, + 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, + 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, + // Bytes 440 - 47f + 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, + 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, + 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, + 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, + 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, + 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, + 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, + 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, + // Bytes 480 - 4bf + 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, + 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, + 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, + 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, + 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, + 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, + 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, + 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, + // Bytes 4c0 - 4ff + 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, + 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, + 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, + 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, + 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, + 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, + 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, + 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, + // Bytes 500 - 53f + 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, + 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, + 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, + 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, + 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, + 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, + 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, + 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, + // Bytes 540 - 57f + 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, + 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, + 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, + 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, + 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, + 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, + 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, + 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, + // Bytes 580 - 5bf + 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, + 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, + 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, + 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, + 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, + 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, + 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, + 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, + // Bytes 5c0 - 5ff + 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, + 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, + 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, + 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, + 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, + 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, + 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, + 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, + // Bytes 600 - 63f + 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, + 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, + 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, + 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, + 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, + 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, + 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, + 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, + // Bytes 640 - 67f + 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, + 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, + 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, + 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, + 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, + 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, + 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, + 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, + // Bytes 680 - 6bf + 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, + 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, + 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, + 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, + 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, + 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, + 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, + 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, + // Bytes 6c0 - 6ff + 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, + 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, + 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, + 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, + 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, + 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, + 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, + 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, + // Bytes 700 - 73f + 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, + 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, + 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, + 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, + 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, + 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, + 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, + 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, + // Bytes 740 - 77f + 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, + 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, + 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, + 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, + 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, + 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, + 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, + 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, + // Bytes 780 - 7bf + 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, + 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, + 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, + 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, + 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, + 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, + 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, + 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, + // Bytes 7c0 - 7ff + 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, + 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, + 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, + 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, + 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, + 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, + 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, + 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, + // Bytes 800 - 83f + 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, + 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, + 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, + 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, + 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, + 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, + 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, + 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, + // Bytes 840 - 87f + 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, + 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, + 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, + 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, + 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, + 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, + 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, + 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, + // Bytes 880 - 8bf + 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, + 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, + 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, + 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, + 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, + 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, + 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, + 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, + // Bytes 8c0 - 8ff + 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, + 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, + 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, + 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, + 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, + 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, + 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, + 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, + // Bytes 900 - 93f + 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, + 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, + 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, + 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, + 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, + 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, + 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, + 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, + // Bytes 940 - 97f + 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, + 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, + 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, + 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, + 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, + 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, + 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, + 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, + // Bytes 980 - 9bf + 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, + 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, + 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, + 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, + 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, + 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, + 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, + 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, + // Bytes 9c0 - 9ff + 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, + 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, + 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, + 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, + 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, + 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, + 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, + 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, + // Bytes a00 - a3f + 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, + 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, + 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, + 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, + 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, + 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, + 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, + 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, + // Bytes a40 - a7f + 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, + 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, + 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, + 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, + 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, + 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, + 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, + 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, + // Bytes a80 - abf + 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, + 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, + 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, + 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, + 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, + 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, + 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, + 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, + // Bytes ac0 - aff + 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, + 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, + 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, + 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, + 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, + 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, + 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, + 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, + // Bytes b00 - b3f + 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, + 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, + 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, + 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, + 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, + 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, + 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, + 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, + // Bytes b40 - b7f + 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, + 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, + 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, + 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, + 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, + 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, + 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, + 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, + // Bytes b80 - bbf + 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, + 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, + 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, + 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, + 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, + 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, + 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, + 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, + // Bytes bc0 - bff + 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, + 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, + 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, + 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, + 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, + 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, + 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, + 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, + // Bytes c00 - c3f + 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, + 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, + 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, + 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, + 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, + 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, + 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, + 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, + // Bytes c40 - c7f + 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, + 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, + 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, + 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, + 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, + 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, + 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, + 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, + // Bytes c80 - cbf + 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, + 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, + 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, + 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, + 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, + 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, + 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, + 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, + // Bytes cc0 - cff + 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, + 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, + 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, + 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, + 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, + 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, + 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, + 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, + // Bytes d00 - d3f + 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, + 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, + 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, + 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, + 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, + 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, + 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, + 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, + // Bytes d40 - d7f + 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, + 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, + 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, + 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, + 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, + 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, + 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, + 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, + // Bytes d80 - dbf + 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, + 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, + 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, + 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, + 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, + 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, + 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, + 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, + // Bytes dc0 - dff + 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, + 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, + 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, + 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, + 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, + 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, + 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, + 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, + // Bytes e00 - e3f + 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, + 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, + 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, + 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, + 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, + 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, + 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, + 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, + // Bytes e40 - e7f + 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, + 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, + 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, + 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, + 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, + 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, + 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, + 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, + // Bytes e80 - ebf + 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, + 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, + 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, + 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, + 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, + 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, + 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, + 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, + // Bytes ec0 - eff + 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, + 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, + 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, + 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, + 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, + 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, + 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, + 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, + // Bytes f00 - f3f + 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, + 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, + 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, + 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, + 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, + 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, + 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, + 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, + // Bytes f40 - f7f + 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, + 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, + 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, + 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, + 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, + 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, + 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, + 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, + // Bytes f80 - fbf + 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, + 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, + 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, + 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, + 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, + 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, + 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, + 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, + // Bytes fc0 - fff + 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, + 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, + 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, + 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, + 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, + 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, + 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, + 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, + // Bytes 1000 - 103f + 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, + 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, + 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, + 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, + 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, + 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, + 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, + 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, + // Bytes 1040 - 107f + 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, + 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, + 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, + 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, + 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, + 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, + 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, + 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, + // Bytes 1080 - 10bf + 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, + 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, + 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, + 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, + 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, + 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, + 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, + 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, + // Bytes 10c0 - 10ff + 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, + 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, + 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, + 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, + 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, + 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, + 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, + 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, + // Bytes 1100 - 113f + 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, + 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, + 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, + 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, + 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, + 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, + 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, + 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, + // Bytes 1140 - 117f + 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, + 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, + 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, + 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, + 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, + 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, + 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, + 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, + // Bytes 1180 - 11bf + 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, + 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, + 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, + 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, + 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, + 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, + 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, + 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, + // Bytes 11c0 - 11ff + 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, + 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, + 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, + 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, + 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, + 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, + 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, + 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, + // Bytes 1200 - 123f + 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, + 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, + 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, + 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, + 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, + 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, + 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, + 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, + // Bytes 1240 - 127f + 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, + 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, + 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, + 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, + 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, + 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, + 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, + 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, + // Bytes 1280 - 12bf + 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, + 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, + 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, + 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, + 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, + 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, + 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, + 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, + // Bytes 12c0 - 12ff + 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, + 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, + 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, + 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, + 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, + 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, + 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, + 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, + // Bytes 1300 - 133f + 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, + 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, + 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, + 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, + 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, + 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, + 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, + 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, + // Bytes 1340 - 137f + 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, + 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, + 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, + 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, + 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, + 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, + 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, + 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, + // Bytes 1380 - 13bf + 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, + 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, + 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, + 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, + 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, + 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, + 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, + 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, + // Bytes 13c0 - 13ff + 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, + 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, + 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, + 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, + 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, + 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, + 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, + 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, + // Bytes 1400 - 143f + 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, + 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, + 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, + 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, + 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, + 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, + 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, + 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, + // Bytes 1440 - 147f + 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, + 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, + 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, + 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, + 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, + 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, + 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, + 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, + // Bytes 1480 - 14bf + 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, + 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, + 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, + 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, + 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, + 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, + 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, + 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, + // Bytes 14c0 - 14ff + 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, + 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, + 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, + 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, + 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, + 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, + 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, + 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, + // Bytes 1500 - 153f + 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, + 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, + 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, + 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, + 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, + 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, + 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, + 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, + // Bytes 1540 - 157f + 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, + 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, + 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, + 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, + 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, + 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, + 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, + 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, + // Bytes 1580 - 15bf + 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, + 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, + 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, + 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, + 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, + 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, + 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, + 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, + // Bytes 15c0 - 15ff + 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, + 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, + 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, + 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, + 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, + 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, + 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, + 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, + // Bytes 1600 - 163f + 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, + 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, + 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, + 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, + 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, + 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, + 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, + 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, + // Bytes 1640 - 167f + 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, + 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, + 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, + 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, + 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, + 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, + 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, + 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, + // Bytes 1680 - 16bf + 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, + 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, + 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, + 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, + 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, + 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, + 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, + 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, + // Bytes 16c0 - 16ff + 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, + 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, + 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, + 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, + 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, + 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, + 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, + 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, + // Bytes 1700 - 173f + 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, + 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, + 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, + 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, + 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, + 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, + 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, + 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, + // Bytes 1740 - 177f + 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, + 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, + 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, + 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, + 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, + 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, + 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, + 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, + // Bytes 1780 - 17bf + 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, + 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, + 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, + 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, + 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, + 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, + 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, + 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, + // Bytes 17c0 - 17ff + 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, + 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, + 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, + 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, + 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, + 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, + 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, + 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, + // Bytes 1800 - 183f + 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, + 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, + 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, + 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, + 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, + 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, + 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, + 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, + // Bytes 1840 - 187f + 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, + 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, + 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, + 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, + 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, + 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, + 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, + 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, + 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, + 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, + 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, + 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, + 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, + 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, + 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, + 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, + 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, + 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, + 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, + 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, + 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, + 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, + // Bytes 1900 - 193f + 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, + 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, + 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, + 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, + 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, + 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, + 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, + 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, + // Bytes 1940 - 197f + 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, + 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, + 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, + 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, + 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, + 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, + 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, + 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, + 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, + 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, + 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, + 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, + 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, + 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, + 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, + 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, + 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, + 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, + 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, + 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, + 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, + 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, + 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, + 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, + 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, + 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, + 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, + 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, + 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, + 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, + 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, + 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, + 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, + 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, + 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, + 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, + // Bytes 1a80 - 1abf + 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, + 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, + 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, + 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, + 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, + 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, + 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, + 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, + // Bytes 1ac0 - 1aff + 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, + 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, + 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, + 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, + 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, + 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, + 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, + 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, + // Bytes 1b00 - 1b3f + 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, + 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, + 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, + 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, + 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, + 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, + 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, + 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, + // Bytes 1b40 - 1b7f + 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, + 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, + 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, + 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, + 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, + 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, + 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, + 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, + // Bytes 1b80 - 1bbf + 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, + 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, + 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, + 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, + 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, + 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, + 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, + 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, + // Bytes 1bc0 - 1bff + 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, + 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, + 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, + 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, + 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, + 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, + 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, + 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, + // Bytes 1c00 - 1c3f + 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, + 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, + 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, + 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, + 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, + 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, + 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, + 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, + // Bytes 1c40 - 1c7f + 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, + 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, + 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, + 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, + 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, + 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, + 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, + 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, + // Bytes 1c80 - 1cbf + 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, + 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, + 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, + 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, + 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, + 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, + 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, + 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, + // Bytes 1cc0 - 1cff + 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, + 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, + 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, + 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, + 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, + 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, + 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, + 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, + // Bytes 1d00 - 1d3f + 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, + 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, + 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, + 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, + 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, + 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, + 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, + 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, + // Bytes 1d40 - 1d7f + 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, + 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, + 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, + 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, + 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, + 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, + 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, + 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, + // Bytes 1d80 - 1dbf + 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, + 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, + 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, + 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, + 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, + 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, + 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, + 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, + // Bytes 1dc0 - 1dff + 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, + 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, + 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, + 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, + 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, + 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, + 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, + 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, + // Bytes 1e00 - 1e3f + 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, + 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, + 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, + 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, + 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, + 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, + 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, + 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, + // Bytes 1e40 - 1e7f + 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, + 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, + 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, + 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, + 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, + 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, + 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, + 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1e80 - 1ebf + 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, + 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, + 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, + 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, + 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, + 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, + 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, + 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, + // Bytes 1ec0 - 1eff + 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, + 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, + 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, + 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, + 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, + 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, + 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, + 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, + // Bytes 1f00 - 1f3f + 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, + 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, + 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, + 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, + 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, + 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, + 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, + 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, + // Bytes 1f40 - 1f7f + 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, + 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, + 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, + 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, + 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, + 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, + 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, + 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, + // Bytes 1f80 - 1fbf + 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, + 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, + 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, + 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, + 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, + 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, + 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, + 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, + // Bytes 1fc0 - 1fff + 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, + 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, + 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, + 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, + 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, + 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, + 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, + 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, + // Bytes 2000 - 203f + 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, + 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, + 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, + 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, + 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, + 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, + 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, + 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, + // Bytes 2040 - 207f + 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, + 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, + 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, + 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, + // Bytes 2080 - 20bf + 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, + 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, + 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, + 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, + // Bytes 20c0 - 20ff + 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, + 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, + 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, + 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, + 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, + 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, + 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, + 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, + // Bytes 2100 - 213f + 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, + 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, + 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, + 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, + 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, + 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, + 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, + 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, + // Bytes 2140 - 217f + 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, + 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, + 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, + 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, + 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, + 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, + 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, + 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, + // Bytes 2180 - 21bf + 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, + 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, + // Bytes 21c0 - 21ff + 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, + // Bytes 2200 - 223f + 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, + // Bytes 2240 - 227f + 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, + // Bytes 2280 - 22bf + 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, + 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, + 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + // Bytes 22c0 - 22ff + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, + 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, + 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, + 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, + 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, + 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, + 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, + // Bytes 2300 - 233f + 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, + 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, + 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, + // Bytes 2340 - 237f + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, + 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, + 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, + // Bytes 2380 - 23bf + 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, + // Bytes 23c0 - 23ff + 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, + 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, + 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, + 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, + 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, + 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, + // Bytes 2400 - 243f + 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, + 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, + 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, + 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, + 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, + // Bytes 2440 - 247f + 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, + 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, + // Bytes 2480 - 24bf + 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, + 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, + 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, + // Bytes 24c0 - 24ff + 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, + 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, + // Bytes 2500 - 253f + 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, + // Bytes 2540 - 257f + 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, + 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, + 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, + // Bytes 2580 - 25bf + 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, + 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, + // Bytes 25c0 - 25ff + 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, + // Bytes 2600 - 263f + 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, + 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, + 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, + 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, + 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, + // Bytes 2640 - 267f + 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, + 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, + 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, + 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, + // Bytes 2680 - 26bf + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, + 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, + 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, + 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, + 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, + 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, + // Bytes 26c0 - 26ff + 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, + 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, + 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, + 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, + 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, + 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, + 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, + // Bytes 2700 - 273f + 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, + 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, + 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, + 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, + 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, + // Bytes 2740 - 277f + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, + // Bytes 2780 - 27bf + 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, + 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, + 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, + // Bytes 27c0 - 27ff + 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, + 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, + 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, + 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, + 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, + 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, + 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, + // Bytes 2800 - 283f + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, + 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, + 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, + // Bytes 2840 - 287f + 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, + 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, + // Bytes 2880 - 28bf + 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, + 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, + 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, + 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, + // Bytes 28c0 - 28ff + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, + 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, + 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, + 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, + // Bytes 2900 - 293f + 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, + 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, + // Bytes 2940 - 297f + 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, + 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, + 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, + // Bytes 2980 - 29bf + 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, + 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, + // Bytes 29c0 - 29ff + 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, + 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, + 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, + 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2a40 - 2a7f + 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, + // Bytes 2a80 - 2abf + 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, + 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, + 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, + 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, + 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, + 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, + // Bytes 2b00 - 2b3f + 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, + // Bytes 2b40 - 2b7f + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, + 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, + // Bytes 2b80 - 2bbf + 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, + 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, + 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, + // Bytes 2bc0 - 2bff + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2c00 - 2c3f + 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, + 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, + 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, + 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, + 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, + 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, + // Bytes 2c40 - 2c7f + 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, + 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, + // Bytes 2c80 - 2cbf + 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, + 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, + 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2cc0 - 2cff + 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, + 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2d00 - 2d3f + 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, + 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, + 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, + 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + // Bytes 2d40 - 2d7f + 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, + // Bytes 2d80 - 2dbf + 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, + 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, + 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, + 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, + 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, + 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, + 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, + 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, + // Bytes 2dc0 - 2dff + 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, + 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, + 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, + 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, + 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, + 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, + 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, + // Bytes 2e00 - 2e3f + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e40 - 2e7f + 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, + 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e80 - 2ebf + 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, + 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, + 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, + 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, + 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + // Bytes 2ec0 - 2eff + 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, + 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, + 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, + 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, + 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, + 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, + // Bytes 2f00 - 2f3f + 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, + 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, + 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, + 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, + // Bytes 2f40 - 2f7f + 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, + 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, + 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, + 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, + 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, + 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, + // Bytes 2f80 - 2fbf + 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, + 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, + 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, + 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, + 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, + 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, + 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, + 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, + // Bytes 2fc0 - 2fff + 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, + 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, + 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, + 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, + 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, + 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, + 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, + 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, + // Bytes 3000 - 303f + 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, + 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, + 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, + 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, + 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, + 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, + 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, + 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, + // Bytes 3040 - 307f + 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, + 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, + 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, + 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, + 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, + 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, + 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, + 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, + // Bytes 3080 - 30bf + 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, + 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, + 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, + 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, + 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, + 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, + 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, + 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, + // Bytes 30c0 - 30ff + 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, + 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, + 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, + 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, + 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, + 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, + 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, + 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, + // Bytes 3100 - 313f + 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, + 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, + 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, + 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, + 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, + 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, + 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, + 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, + // Bytes 3140 - 317f + 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, + 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, + 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, + 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, + 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, + 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, + 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, + 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, + // Bytes 3180 - 31bf + 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, + 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, + 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, + 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, + 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, + 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, + 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, + 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, + // Bytes 31c0 - 31ff + 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, + 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, + 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, + 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, + 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, + 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, + 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, + 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, + // Bytes 3200 - 323f + 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, + 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, + 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, + 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, + 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, + 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, + 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, + 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, + // Bytes 3240 - 327f + 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, + 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, + 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, + 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, + 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, + 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, + 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, + 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, + // Bytes 3280 - 32bf + 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, + 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, + 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, + 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, + 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, + 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, + 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, + 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, + // Bytes 32c0 - 32ff + 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, + 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, + 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, + 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, + 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, + 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, + 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, + 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, + // Bytes 3300 - 333f + 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, + 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, + 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, + 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, + 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, + 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, + 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, + 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, + // Bytes 3340 - 337f + 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, + 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, + 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, + 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, + 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, + 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, + 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, + 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3380 - 33bf + 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, + 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, + 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, + 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, + 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, + 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, + 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, + 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, + // Bytes 33c0 - 33ff + 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, + 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, + 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, + 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, + 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, + 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, + 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, + 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, + // Bytes 3400 - 343f + 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, + 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, + 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, + 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, + 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, + 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, + 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, + 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, + // Bytes 3440 - 347f + 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, + 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, + 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, + 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, + 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, + 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, + 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, + 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, + // Bytes 3480 - 34bf + 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, + 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, + 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, + 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, + 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, + 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, + 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, + 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, + // Bytes 34c0 - 34ff + 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, + 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, + 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, + 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, + 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, + 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, + 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, + 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, + // Bytes 3500 - 353f + 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, + 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, + 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, + 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, + 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, + 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, + 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, + 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, + // Bytes 3540 - 357f + 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, + 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, + 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, + 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, + 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, + 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, + 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, + 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, + // Bytes 3580 - 35bf + 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, + 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, + 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, + 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, + 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, + 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, + 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, + 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, + // Bytes 35c0 - 35ff + 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, + 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, + 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, + 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, + 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, + // Bytes 3600 - 363f + 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, + 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, + // Bytes 3640 - 367f + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, + // Bytes 3680 - 36bf + 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, + 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, + 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, + // Bytes 36c0 - 36ff + 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, + 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, + 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, + 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, + 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, + 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, + 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, + // Bytes 3700 - 373f + 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, + 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3740 - 377f + 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, + 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, + 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, + 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, + 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, + // Bytes 3780 - 37bf + 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, + // Bytes 37c0 - 37ff + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, + 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, + 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, + 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, + 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3800 - 383f + 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, + 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, + 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, + 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, + 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, + 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, + 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, + 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, + // Bytes 3840 - 387f + 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, + 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, + 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, + 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, + 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, + 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + // Bytes 3880 - 38bf + 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, + 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, + 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, + 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, + 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, + 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, + // Bytes 38c0 - 38ff + 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, + 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, + 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, + 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, + // Bytes 3900 - 393f + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, + 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, + 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, + 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, + // Bytes 3940 - 397f + 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, + 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, + 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, + 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, + 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, + 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, + // Bytes 3980 - 39bf + 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, + 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, + 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, + 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, + 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, + 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, + 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, + 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, + // Bytes 39c0 - 39ff + 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, + 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, + 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, + 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + // Bytes 3a00 - 3a3f + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, + 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, + 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, + 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + // Bytes 3a40 - 3a7f + 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, + 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, + 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, + 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, + 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, + 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, + 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, + // Bytes 3a80 - 3abf + 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, + 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, + 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, + 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, + // Bytes 3ac0 - 3aff + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, + 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, + 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, + 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, + 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, + // Bytes 3b00 - 3b3f + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, + 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, + 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, + 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, + // Bytes 3b40 - 3b7f + 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, + 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, + 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, + 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, + // Bytes 3b80 - 3bbf + 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, + 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, + 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, + 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, + 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, + 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, + 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, + 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, + // Bytes 3bc0 - 3bff + 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, + 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3c00 - 3c3f + 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + // Bytes 3c40 - 3c7f + 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + // Bytes 3c80 - 3cbf + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, + // Bytes 3cc0 - 3cff + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, + 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + // Bytes 3d00 - 3d3f + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3d40 - 3d7f + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + // Bytes 3d80 - 3dbf + 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + // Bytes 3dc0 - 3dff + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + // Bytes 3e00 - 3e3f + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3e40 - 3e7f + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + // Bytes 3e80 - 3ebf + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + // Bytes 3ec0 - 3eff + 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, + 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, + // Bytes 3f00 - 3f3f + 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f40 - 3f7f + 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f80 - 3fbf + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, + // Bytes 3fc0 - 3fff + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4000 - 403f + 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4040 - 407f + 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4080 - 40bf + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 40c0 - 40ff + 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + // Bytes 4100 - 413f + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + // Bytes 4140 - 417f + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, + // Bytes 4180 - 41bf + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + // Bytes 41c0 - 41ff + 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + // Bytes 4200 - 423f + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, + // Bytes 4240 - 427f + 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, + 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, + 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, + 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, + 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, + 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, + 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, + 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, + // Bytes 4280 - 42bf + 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, + 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, + 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, + 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, + 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, + 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, + 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, + 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, + // Bytes 42c0 - 42ff + 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, + 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, + 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, + 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, + 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, + 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, + 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, + // Bytes 4300 - 433f + 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, + 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, + 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, + // Bytes 4340 - 437f + 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, + 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, + 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, + // Bytes 4380 - 43bf + 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, + 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, + // Bytes 43c0 - 43ff + 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, + 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, + 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, + // Bytes 4400 - 443f + 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, + 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, + 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, + 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, + 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, + 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, + 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, + // Bytes 4440 - 447f + 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, + 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, + 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, + 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, + 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, + 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, + 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, + // Bytes 4480 - 44bf + 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, + 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, + 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, + 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, + 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, + // Bytes 44c0 - 44ff + 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, + 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, + 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, + 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, + 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, + 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, + // Bytes 4500 - 453f + 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, + 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, + // Bytes 4540 - 457f + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, + // Bytes 4580 - 45bf + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, + // Bytes 45c0 - 45ff + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, + 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, + 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, + // Bytes 4600 - 463f + 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, + 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, + 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, + 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + // Bytes 4640 - 467f + 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, + 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, + 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, + 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + // Bytes 4680 - 46bf + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, + 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, + 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, + 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, + 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, + 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, + 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, + 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, + // Bytes 46c0 - 46ff + 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, + 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, + 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, + 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, + 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, + 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, + 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, + 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, + // Bytes 4700 - 473f + 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, + 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, + 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, + 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, + 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, + 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, + 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, + 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, + // Bytes 4740 - 477f + 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, + 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, + 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, + 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, + 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, + 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, + 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, + 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, + // Bytes 4780 - 47bf + 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, + 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, + 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, + 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, + 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, + 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, + // Bytes 47c0 - 47ff + 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, + // Bytes 4800 - 483f + 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, + 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, + 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, + 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, + // Bytes 4840 - 487f + 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, + 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, + 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, + 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, + 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, + // Bytes 4880 - 48bf + 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + // Bytes 48c0 - 48ff + 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + // Bytes 4900 - 493f + 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + // Bytes 4940 - 497f + 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + // Bytes 4980 - 49bf + 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, + 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, + 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, + // Bytes 49c0 - 49ff + 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, + // Bytes 4a00 - 4a3f + 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, + // Bytes 4a40 - 4a7f + 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, + 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, + 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, + 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, + // Bytes 4a80 - 4abf + 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, + 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, + 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, + 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10586 bytes (10.34 KiB). Checksum: dd926e82067bee11. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 46: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 46 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 48 blocks, 3072 entries, 6144 bytes +// The third block is the zero block. +var nfcValues = [3072]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, + // Block 0x5, offset 0x140 + 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35a1, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, + 0x2c6: 0xa000, 0x2c7: 0x3709, + 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3733, 0x302: 0x37b7, + 0x310: 0x370f, 0x311: 0x3793, + 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, + 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, + 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, + 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, + 0x338: 0x3787, 0x339: 0x380b, + // Block 0xd, offset 0x340 + 0x351: 0x812d, + 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, + 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, + 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, + 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, + 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, + 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, + 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, + 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, + 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, + 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x812d, + 0x3b0: 0x811e, + // Block 0xf, offset 0x3c0 + 0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d, + 0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d, + 0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d, + 0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132, + 0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132, + 0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, + 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, + 0x412: 0x2d4e, + 0x434: 0x8102, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d56, + 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132, + 0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132, + 0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132, + 0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132, + 0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132, + 0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132, + 0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132, + 0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132, + 0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132, + 0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132, + 0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d, + // Block 0x12, offset 0x480 + 0x480: 0x2f97, 0x481: 0x32a3, 0x482: 0x2fa1, 0x483: 0x32ad, 0x484: 0x2fa6, 0x485: 0x32b2, + 0x486: 0x2fab, 0x487: 0x32b7, 0x488: 0x38cc, 0x489: 0x3a5b, 0x48a: 0x2fc4, 0x48b: 0x32d0, + 0x48c: 0x2fce, 0x48d: 0x32da, 0x48e: 0x2fdd, 0x48f: 0x32e9, 0x490: 0x2fd3, 0x491: 0x32df, + 0x492: 0x2fd8, 0x493: 0x32e4, 0x494: 0x38ef, 0x495: 0x3a7e, 0x496: 0x38f6, 0x497: 0x3a85, + 0x498: 0x3019, 0x499: 0x3325, 0x49a: 0x301e, 0x49b: 0x332a, 0x49c: 0x3904, 0x49d: 0x3a93, + 0x49e: 0x3023, 0x49f: 0x332f, 0x4a0: 0x3032, 0x4a1: 0x333e, 0x4a2: 0x3050, 0x4a3: 0x335c, + 0x4a4: 0x305f, 0x4a5: 0x336b, 0x4a6: 0x3055, 0x4a7: 0x3361, 0x4a8: 0x3064, 0x4a9: 0x3370, + 0x4aa: 0x3069, 0x4ab: 0x3375, 0x4ac: 0x30af, 0x4ad: 0x33bb, 0x4ae: 0x390b, 0x4af: 0x3a9a, + 0x4b0: 0x30b9, 0x4b1: 0x33ca, 0x4b2: 0x30c3, 0x4b3: 0x33d4, 0x4b4: 0x30cd, 0x4b5: 0x33de, + 0x4b6: 0x46c4, 0x4b7: 0x4755, 0x4b8: 0x3912, 0x4b9: 0x3aa1, 0x4ba: 0x30e6, 0x4bb: 0x33f7, + 0x4bc: 0x30e1, 0x4bd: 0x33f2, 0x4be: 0x30eb, 0x4bf: 0x33fc, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x30f0, 0x4c1: 0x3401, 0x4c2: 0x30f5, 0x4c3: 0x3406, 0x4c4: 0x3109, 0x4c5: 0x341a, + 0x4c6: 0x3113, 0x4c7: 0x3424, 0x4c8: 0x3122, 0x4c9: 0x3433, 0x4ca: 0x311d, 0x4cb: 0x342e, + 0x4cc: 0x3935, 0x4cd: 0x3ac4, 0x4ce: 0x3943, 0x4cf: 0x3ad2, 0x4d0: 0x394a, 0x4d1: 0x3ad9, + 0x4d2: 0x3951, 0x4d3: 0x3ae0, 0x4d4: 0x314f, 0x4d5: 0x3460, 0x4d6: 0x3154, 0x4d7: 0x3465, + 0x4d8: 0x315e, 0x4d9: 0x346f, 0x4da: 0x46f1, 0x4db: 0x4782, 0x4dc: 0x3997, 0x4dd: 0x3b26, + 0x4de: 0x3177, 0x4df: 0x3488, 0x4e0: 0x3181, 0x4e1: 0x3492, 0x4e2: 0x4700, 0x4e3: 0x4791, + 0x4e4: 0x399e, 0x4e5: 0x3b2d, 0x4e6: 0x39a5, 0x4e7: 0x3b34, 0x4e8: 0x39ac, 0x4e9: 0x3b3b, + 0x4ea: 0x3190, 0x4eb: 0x34a1, 0x4ec: 0x319a, 0x4ed: 0x34b0, 0x4ee: 0x31ae, 0x4ef: 0x34c4, + 0x4f0: 0x31a9, 0x4f1: 0x34bf, 0x4f2: 0x31ea, 0x4f3: 0x3500, 0x4f4: 0x31f9, 0x4f5: 0x350f, + 0x4f6: 0x31f4, 0x4f7: 0x350a, 0x4f8: 0x39b3, 0x4f9: 0x3b42, 0x4fa: 0x39ba, 0x4fb: 0x3b49, + 0x4fc: 0x31fe, 0x4fd: 0x3514, 0x4fe: 0x3203, 0x4ff: 0x3519, + // Block 0x14, offset 0x500 + 0x500: 0x3208, 0x501: 0x351e, 0x502: 0x320d, 0x503: 0x3523, 0x504: 0x321c, 0x505: 0x3532, + 0x506: 0x3217, 0x507: 0x352d, 0x508: 0x3221, 0x509: 0x353c, 0x50a: 0x3226, 0x50b: 0x3541, + 0x50c: 0x322b, 0x50d: 0x3546, 0x50e: 0x3249, 0x50f: 0x3564, 0x510: 0x3262, 0x511: 0x3582, + 0x512: 0x3271, 0x513: 0x3591, 0x514: 0x3276, 0x515: 0x3596, 0x516: 0x337a, 0x517: 0x34a6, + 0x518: 0x3537, 0x519: 0x3573, 0x51b: 0x35d1, + 0x520: 0x46a1, 0x521: 0x4732, 0x522: 0x2f83, 0x523: 0x328f, + 0x524: 0x3878, 0x525: 0x3a07, 0x526: 0x3871, 0x527: 0x3a00, 0x528: 0x3886, 0x529: 0x3a15, + 0x52a: 0x387f, 0x52b: 0x3a0e, 0x52c: 0x38be, 0x52d: 0x3a4d, 0x52e: 0x3894, 0x52f: 0x3a23, + 0x530: 0x388d, 0x531: 0x3a1c, 0x532: 0x38a2, 0x533: 0x3a31, 0x534: 0x389b, 0x535: 0x3a2a, + 0x536: 0x38c5, 0x537: 0x3a54, 0x538: 0x46b5, 0x539: 0x4746, 0x53a: 0x3000, 0x53b: 0x330c, + 0x53c: 0x2fec, 0x53d: 0x32f8, 0x53e: 0x38da, 0x53f: 0x3a69, + // Block 0x15, offset 0x540 + 0x540: 0x38d3, 0x541: 0x3a62, 0x542: 0x38e8, 0x543: 0x3a77, 0x544: 0x38e1, 0x545: 0x3a70, + 0x546: 0x38fd, 0x547: 0x3a8c, 0x548: 0x3091, 0x549: 0x339d, 0x54a: 0x30a5, 0x54b: 0x33b1, + 0x54c: 0x46e7, 0x54d: 0x4778, 0x54e: 0x3136, 0x54f: 0x3447, 0x550: 0x3920, 0x551: 0x3aaf, + 0x552: 0x3919, 0x553: 0x3aa8, 0x554: 0x392e, 0x555: 0x3abd, 0x556: 0x3927, 0x557: 0x3ab6, + 0x558: 0x3989, 0x559: 0x3b18, 0x55a: 0x396d, 0x55b: 0x3afc, 0x55c: 0x3966, 0x55d: 0x3af5, + 0x55e: 0x397b, 0x55f: 0x3b0a, 0x560: 0x3974, 0x561: 0x3b03, 0x562: 0x3982, 0x563: 0x3b11, + 0x564: 0x31e5, 0x565: 0x34fb, 0x566: 0x31c7, 0x567: 0x34dd, 0x568: 0x39e4, 0x569: 0x3b73, + 0x56a: 0x39dd, 0x56b: 0x3b6c, 0x56c: 0x39f2, 0x56d: 0x3b81, 0x56e: 0x39eb, 0x56f: 0x3b7a, + 0x570: 0x39f9, 0x571: 0x3b88, 0x572: 0x3230, 0x573: 0x354b, 0x574: 0x3258, 0x575: 0x3578, + 0x576: 0x3253, 0x577: 0x356e, 0x578: 0x323f, 0x579: 0x355a, + // Block 0x16, offset 0x580 + 0x580: 0x4804, 0x581: 0x480a, 0x582: 0x491e, 0x583: 0x4936, 0x584: 0x4926, 0x585: 0x493e, + 0x586: 0x492e, 0x587: 0x4946, 0x588: 0x47aa, 0x589: 0x47b0, 0x58a: 0x488e, 0x58b: 0x48a6, + 0x58c: 0x4896, 0x58d: 0x48ae, 0x58e: 0x489e, 0x58f: 0x48b6, 0x590: 0x4816, 0x591: 0x481c, + 0x592: 0x3db8, 0x593: 0x3dc8, 0x594: 0x3dc0, 0x595: 0x3dd0, + 0x598: 0x47b6, 0x599: 0x47bc, 0x59a: 0x3ce8, 0x59b: 0x3cf8, 0x59c: 0x3cf0, 0x59d: 0x3d00, + 0x5a0: 0x482e, 0x5a1: 0x4834, 0x5a2: 0x494e, 0x5a3: 0x4966, + 0x5a4: 0x4956, 0x5a5: 0x496e, 0x5a6: 0x495e, 0x5a7: 0x4976, 0x5a8: 0x47c2, 0x5a9: 0x47c8, + 0x5aa: 0x48be, 0x5ab: 0x48d6, 0x5ac: 0x48c6, 0x5ad: 0x48de, 0x5ae: 0x48ce, 0x5af: 0x48e6, + 0x5b0: 0x4846, 0x5b1: 0x484c, 0x5b2: 0x3e18, 0x5b3: 0x3e30, 0x5b4: 0x3e20, 0x5b5: 0x3e38, + 0x5b6: 0x3e28, 0x5b7: 0x3e40, 0x5b8: 0x47ce, 0x5b9: 0x47d4, 0x5ba: 0x3d18, 0x5bb: 0x3d30, + 0x5bc: 0x3d20, 0x5bd: 0x3d38, 0x5be: 0x3d28, 0x5bf: 0x3d40, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x4852, 0x5c1: 0x4858, 0x5c2: 0x3e48, 0x5c3: 0x3e58, 0x5c4: 0x3e50, 0x5c5: 0x3e60, + 0x5c8: 0x47da, 0x5c9: 0x47e0, 0x5ca: 0x3d48, 0x5cb: 0x3d58, + 0x5cc: 0x3d50, 0x5cd: 0x3d60, 0x5d0: 0x4864, 0x5d1: 0x486a, + 0x5d2: 0x3e80, 0x5d3: 0x3e98, 0x5d4: 0x3e88, 0x5d5: 0x3ea0, 0x5d6: 0x3e90, 0x5d7: 0x3ea8, + 0x5d9: 0x47e6, 0x5db: 0x3d68, 0x5dd: 0x3d70, + 0x5df: 0x3d78, 0x5e0: 0x487c, 0x5e1: 0x4882, 0x5e2: 0x497e, 0x5e3: 0x4996, + 0x5e4: 0x4986, 0x5e5: 0x499e, 0x5e6: 0x498e, 0x5e7: 0x49a6, 0x5e8: 0x47ec, 0x5e9: 0x47f2, + 0x5ea: 0x48ee, 0x5eb: 0x4906, 0x5ec: 0x48f6, 0x5ed: 0x490e, 0x5ee: 0x48fe, 0x5ef: 0x4916, + 0x5f0: 0x47f8, 0x5f1: 0x431e, 0x5f2: 0x3691, 0x5f3: 0x4324, 0x5f4: 0x4822, 0x5f5: 0x432a, + 0x5f6: 0x36a3, 0x5f7: 0x4330, 0x5f8: 0x36c1, 0x5f9: 0x4336, 0x5fa: 0x36d9, 0x5fb: 0x433c, + 0x5fc: 0x4870, 0x5fd: 0x4342, + // Block 0x18, offset 0x600 + 0x600: 0x3da0, 0x601: 0x3da8, 0x602: 0x4184, 0x603: 0x41a2, 0x604: 0x418e, 0x605: 0x41ac, + 0x606: 0x4198, 0x607: 0x41b6, 0x608: 0x3cd8, 0x609: 0x3ce0, 0x60a: 0x40d0, 0x60b: 0x40ee, + 0x60c: 0x40da, 0x60d: 0x40f8, 0x60e: 0x40e4, 0x60f: 0x4102, 0x610: 0x3de8, 0x611: 0x3df0, + 0x612: 0x41c0, 0x613: 0x41de, 0x614: 0x41ca, 0x615: 0x41e8, 0x616: 0x41d4, 0x617: 0x41f2, + 0x618: 0x3d08, 0x619: 0x3d10, 0x61a: 0x410c, 0x61b: 0x412a, 0x61c: 0x4116, 0x61d: 0x4134, + 0x61e: 0x4120, 0x61f: 0x413e, 0x620: 0x3ec0, 0x621: 0x3ec8, 0x622: 0x41fc, 0x623: 0x421a, + 0x624: 0x4206, 0x625: 0x4224, 0x626: 0x4210, 0x627: 0x422e, 0x628: 0x3d80, 0x629: 0x3d88, + 0x62a: 0x4148, 0x62b: 0x4166, 0x62c: 0x4152, 0x62d: 0x4170, 0x62e: 0x415c, 0x62f: 0x417a, + 0x630: 0x3685, 0x631: 0x367f, 0x632: 0x3d90, 0x633: 0x368b, 0x634: 0x3d98, + 0x636: 0x4810, 0x637: 0x3db0, 0x638: 0x35f5, 0x639: 0x35ef, 0x63a: 0x35e3, 0x63b: 0x42ee, + 0x63c: 0x35fb, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100, + // Block 0x19, offset 0x640 + 0x640: 0x8100, 0x641: 0x35a7, 0x642: 0x3dd8, 0x643: 0x369d, 0x644: 0x3de0, + 0x646: 0x483a, 0x647: 0x3df8, 0x648: 0x3601, 0x649: 0x42f4, 0x64a: 0x360d, 0x64b: 0x42fa, + 0x64c: 0x3619, 0x64d: 0x3b8f, 0x64e: 0x3b96, 0x64f: 0x3b9d, 0x650: 0x36b5, 0x651: 0x36af, + 0x652: 0x3e00, 0x653: 0x44e4, 0x656: 0x36bb, 0x657: 0x3e10, + 0x658: 0x3631, 0x659: 0x362b, 0x65a: 0x361f, 0x65b: 0x4300, 0x65d: 0x3ba4, + 0x65e: 0x3bab, 0x65f: 0x3bb2, 0x660: 0x36eb, 0x661: 0x36e5, 0x662: 0x3e68, 0x663: 0x44ec, + 0x664: 0x36cd, 0x665: 0x36d3, 0x666: 0x36f1, 0x667: 0x3e78, 0x668: 0x3661, 0x669: 0x365b, + 0x66a: 0x364f, 0x66b: 0x430c, 0x66c: 0x3649, 0x66d: 0x359b, 0x66e: 0x42e8, 0x66f: 0x0081, + 0x672: 0x3eb0, 0x673: 0x36f7, 0x674: 0x3eb8, + 0x676: 0x4888, 0x677: 0x3ed0, 0x678: 0x363d, 0x679: 0x4306, 0x67a: 0x366d, 0x67b: 0x4318, + 0x67c: 0x3679, 0x67d: 0x4256, 0x67e: 0xa100, + // Block 0x1a, offset 0x680 + 0x681: 0x3c06, 0x683: 0xa000, 0x684: 0x3c0d, 0x685: 0xa000, + 0x687: 0x3c14, 0x688: 0xa000, 0x689: 0x3c1b, + 0x68d: 0xa000, + 0x6a0: 0x2f65, 0x6a1: 0xa000, 0x6a2: 0x3c29, + 0x6a4: 0xa000, 0x6a5: 0xa000, + 0x6ad: 0x3c22, 0x6ae: 0x2f60, 0x6af: 0x2f6a, + 0x6b0: 0x3c30, 0x6b1: 0x3c37, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c3e, 0x6b5: 0x3c45, + 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4c, 0x6b9: 0x3c53, 0x6ba: 0xa000, 0x6bb: 0xa000, + 0x6bc: 0xa000, 0x6bd: 0xa000, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3c5a, 0x6c1: 0x3c61, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c76, 0x6c5: 0x3c7d, + 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c84, 0x6c9: 0x3c8b, + 0x6d1: 0xa000, + 0x6d2: 0xa000, + 0x6e2: 0xa000, + 0x6e8: 0xa000, 0x6e9: 0xa000, + 0x6eb: 0xa000, 0x6ec: 0x3ca0, 0x6ed: 0x3ca7, 0x6ee: 0x3cae, 0x6ef: 0x3cb5, + 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, + // Block 0x1c, offset 0x700 + 0x706: 0xa000, 0x70b: 0xa000, + 0x70c: 0x3f08, 0x70d: 0xa000, 0x70e: 0x3f10, 0x70f: 0xa000, 0x710: 0x3f18, 0x711: 0xa000, + 0x712: 0x3f20, 0x713: 0xa000, 0x714: 0x3f28, 0x715: 0xa000, 0x716: 0x3f30, 0x717: 0xa000, + 0x718: 0x3f38, 0x719: 0xa000, 0x71a: 0x3f40, 0x71b: 0xa000, 0x71c: 0x3f48, 0x71d: 0xa000, + 0x71e: 0x3f50, 0x71f: 0xa000, 0x720: 0x3f58, 0x721: 0xa000, 0x722: 0x3f60, + 0x724: 0xa000, 0x725: 0x3f68, 0x726: 0xa000, 0x727: 0x3f70, 0x728: 0xa000, 0x729: 0x3f78, + 0x72f: 0xa000, + 0x730: 0x3f80, 0x731: 0x3f88, 0x732: 0xa000, 0x733: 0x3f90, 0x734: 0x3f98, 0x735: 0xa000, + 0x736: 0x3fa0, 0x737: 0x3fa8, 0x738: 0xa000, 0x739: 0x3fb0, 0x73a: 0x3fb8, 0x73b: 0xa000, + 0x73c: 0x3fc0, 0x73d: 0x3fc8, + // Block 0x1d, offset 0x740 + 0x754: 0x3f00, + 0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, + 0x75e: 0x3fd0, + 0x766: 0xa000, + 0x76b: 0xa000, 0x76c: 0x3fe0, 0x76d: 0xa000, 0x76e: 0x3fe8, 0x76f: 0xa000, + 0x770: 0x3ff0, 0x771: 0xa000, 0x772: 0x3ff8, 0x773: 0xa000, 0x774: 0x4000, 0x775: 0xa000, + 0x776: 0x4008, 0x777: 0xa000, 0x778: 0x4010, 0x779: 0xa000, 0x77a: 0x4018, 0x77b: 0xa000, + 0x77c: 0x4020, 0x77d: 0xa000, 0x77e: 0x4028, 0x77f: 0xa000, + // Block 0x1e, offset 0x780 + 0x780: 0x4030, 0x781: 0xa000, 0x782: 0x4038, 0x784: 0xa000, 0x785: 0x4040, + 0x786: 0xa000, 0x787: 0x4048, 0x788: 0xa000, 0x789: 0x4050, + 0x78f: 0xa000, 0x790: 0x4058, 0x791: 0x4060, + 0x792: 0xa000, 0x793: 0x4068, 0x794: 0x4070, 0x795: 0xa000, 0x796: 0x4078, 0x797: 0x4080, + 0x798: 0xa000, 0x799: 0x4088, 0x79a: 0x4090, 0x79b: 0xa000, 0x79c: 0x4098, 0x79d: 0x40a0, + 0x7af: 0xa000, + 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fd8, + 0x7b7: 0x40a8, 0x7b8: 0x40b0, 0x7b9: 0x40b8, 0x7ba: 0x40c0, + 0x7bd: 0xa000, 0x7be: 0x40c8, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb, + 0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943, + 0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3, + 0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43, + 0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87, + 0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283, + 0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f, + 0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853, + 0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b, + 0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b, + 0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b, + // Block 0x20, offset 0x800 + 0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b, + 0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f, + 0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7, + 0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127, + 0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357, + 0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873, + 0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3, + 0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b, + 0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57, + 0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb, + 0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b, + // Block 0x21, offset 0x840 + 0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f, + 0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3, + 0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83, + 0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193, + 0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b, + 0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b, + 0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f, + 0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b, + 0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753, + 0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777, + 0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73, + // Block 0x22, offset 0x880 + 0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3, + 0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47, + 0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af, + 0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df, + 0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817, + 0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3, + 0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457, + 0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b, + 0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27, + 0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f, + 0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03, + 0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27, + 0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af, + 0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3, + 0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb, + 0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353, + 0x8e5: 0x1407, 0x8e6: 0x1433, + 0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7, + 0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897, + 0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93, + 0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3, + // Block 0x24, offset 0x900 + 0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b, + 0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f, + 0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f, + 0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f, + 0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff, + 0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f, + 0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f, + 0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3, + 0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7, + 0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963, + 0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f, + // Block 0x25, offset 0x940 + 0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b, + 0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb, + 0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf, + 0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f, + 0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013, + 0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f, + 0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b, + 0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b, + 0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb, + 0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343, + 0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f, + // Block 0x26, offset 0x980 + 0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b, + 0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b, + 0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2, + 0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809, + 0x998: 0x1617, 0x999: 0x1627, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757, + 0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773, + 0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3, + 0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf, + 0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff, + 0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f, + 0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867, + 0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af, + 0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93, + 0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3, + 0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917, + // Block 0x28, offset 0xa00 + 0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f, + 0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983, + 0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf, + 0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3, + 0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef, + 0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23, + 0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37, + 0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63, + 0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f, + 0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692, + 0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7, + // Block 0x29, offset 0xa40 + 0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb, + 0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f, + 0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6, + 0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9, + 0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83, + 0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3, + 0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf, + 0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7, + 0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f, + 0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b, + 0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87, + 0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb, + 0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7, + 0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663, + 0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd, + 0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7, + 0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b, + 0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f, + 0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7, + 0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700, + 0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb, + // Block 0x2b, offset 0xac0 + 0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23, + 0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53, + 0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714, + 0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b, + 0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719, + 0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728, + 0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37, + 0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57, + 0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737, + 0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741, + 0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff, + 0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637, + 0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f, + 0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093, + 0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782, + 0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3, + 0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7, + 0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133, + 0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa, + 0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4, + 0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197, + // Block 0x2d, offset 0xb40 + 0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7, + 0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7, + 0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b, + 0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd, + 0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f, + 0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f, + 0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273, + 0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677, + 0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7, + 0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb, + 0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f, + // Block 0x2e, offset 0xb80 + 0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5, + 0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa, + 0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b, + 0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7, + 0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665, + 0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f, + 0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477, + 0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693, + 0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb, + 0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b, + 0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567, + 0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7, + 0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7, + 0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef, + 0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, + 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, + 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, + 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, + 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, + 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, + // Block 0x5, offset 0x140 + 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, + 0x14d: 0x5c, + 0x15c: 0x5d, 0x15f: 0x5e, + 0x162: 0x5f, 0x164: 0x60, + 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, + 0x170: 0x67, 0x173: 0x68, 0x177: 0x0f, + 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, + // Block 0x6, offset 0x180 + 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, + 0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70, + 0x1ab: 0x71, + 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77, + 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, + // Block 0x8, offset 0x200 + 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, + 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, + 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, + 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, + 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, + // Block 0x9, offset 0x240 + 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, + 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, + 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, + 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, + 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, + 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, + 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, + // Block 0xa, offset 0x280 + 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, + 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, + 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, + 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, + 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, + 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, + 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, + 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, + 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, + 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, + 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, + // Block 0xc, offset 0x300 + 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, + 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, + 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, + 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, + // Block 0xd, offset 0x340 + 0x347: 0x9c, + 0x34b: 0x9d, 0x34d: 0x9e, + 0x368: 0x9f, 0x36b: 0xa0, + 0x374: 0xa1, + 0x37d: 0xa2, + // Block 0xe, offset 0x380 + 0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6, + 0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa, + 0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf, + 0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1, + 0x3a0: 0xb2, + 0x3a8: 0xb3, 0x3a9: 0xb4, 0x3aa: 0xb5, + 0x3b0: 0x73, 0x3b5: 0xb6, 0x3b6: 0xb7, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xb8, 0x3ec: 0xb9, + // Block 0x10, offset 0x400 + 0x432: 0xba, + // Block 0x11, offset 0x440 + 0x445: 0xbb, 0x446: 0xbc, 0x447: 0xbd, + 0x449: 0xbe, + // Block 0x12, offset 0x480 + 0x480: 0xbf, + 0x4a3: 0xc0, 0x4a5: 0xc1, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xc2, + // Block 0x14, offset 0x500 + 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, + 0x528: 0x2d, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 149 entries, 298 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xcf, 0xd1, 0xd6, 0xe7, 0xf3, 0xf5, 0xfb, 0xfd, 0xff, 0x101, 0x103, 0x105, 0x107, 0x10a, 0x10d, 0x10f, 0x112, 0x115, 0x119, 0x11e, 0x127, 0x129, 0x12c, 0x12e, 0x139, 0x13d, 0x14b, 0x14e, 0x154, 0x15a, 0x165, 0x169, 0x16b, 0x16d, 0x16f, 0x171, 0x173, 0x179, 0x17d, 0x17f, 0x181, 0x189, 0x18d, 0x190, 0x192, 0x194, 0x196, 0x199, 0x19b, 0x19d, 0x19f, 0x1a1, 0x1a7, 0x1aa, 0x1ac, 0x1b3, 0x1b9, 0x1bf, 0x1c7, 0x1cd, 0x1d3, 0x1d9, 0x1dd, 0x1eb, 0x1f4, 0x1f7, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x205, 0x20a, 0x20c, 0x20e, 0x213, 0x219, 0x21b, 0x21d, 0x21f, 0x225, 0x228, 0x22a, 0x230, 0x233, 0x23b, 0x242, 0x245, 0x248, 0x24a, 0x24d, 0x255, 0x259, 0x260, 0x263, 0x269, 0x26b, 0x26e, 0x270, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x284, 0x291, 0x29b, 0x29d, 0x29f, 0x2a5, 0x2a7, 0x2aa} + +// nfcSparseValues: 684 entries, 2736 bytes +var nfcSparseValues = [684]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4840, lo: 0x8a, hi: 0x8a}, + {value: 0x485e, lo: 0x8b, hi: 0x8b}, + {value: 0x36c7, lo: 0x8c, hi: 0x8c}, + {value: 0x36df, lo: 0x8d, hi: 0x8d}, + {value: 0x4876, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x36fd, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xd, offset 0x63 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x68 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x6a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x72 + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x79 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x7c + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x84 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0x88 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0x8c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0x8e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0x90 + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0x99 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0x9d + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xa4 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xa9 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xac + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xc0 + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xc8 + {value: 0x0000, lo: 0x02}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xcb + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xcd + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x23, offset 0xcf + {value: 0x0000, lo: 0x01}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + // Block 0x24, offset 0xd1 + {value: 0x0000, lo: 0x04}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xd6 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0xe7 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0xf3 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0xf5 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0xfb + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0xfd + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0xff + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x101 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x103 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x105 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x107 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x10a + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x10d + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x10f + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x112 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x115 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x119 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x11e + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x127 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x129 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x12c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x12e + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x139 + {value: 0x0004, lo: 0x03}, + {value: 0x0433, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3c, offset 0x13d + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x3d, offset 0x14b + {value: 0x427b, lo: 0x02}, + {value: 0x01b8, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x3e, offset 0x14e + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x3f, offset 0x154 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x40, offset 0x15a + {value: 0x6408, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x41, offset 0x165 + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x42, offset 0x169 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x43, offset 0x16b + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x44, offset 0x16d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x45, offset 0x16f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x46, offset 0x171 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x47, offset 0x173 + {value: 0x0000, lo: 0x05}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xaf}, + // Block 0x48, offset 0x179 + {value: 0x0000, lo: 0x03}, + {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, + {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, + {value: 0x4a9f, lo: 0xba, hi: 0xbf}, + // Block 0x49, offset 0x17d + {value: 0x0000, lo: 0x01}, + {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, + // Block 0x4a, offset 0x17f + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4b, offset 0x181 + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4c, offset 0x189 + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4d, offset 0x18d + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x4e, offset 0x190 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x4f, offset 0x192 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x50, offset 0x194 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x51, offset 0x196 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x52, offset 0x199 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x53, offset 0x19b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x54, offset 0x19d + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x55, offset 0x19f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x56, offset 0x1a1 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x57, offset 0x1a7 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x58, offset 0x1aa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x59, offset 0x1ac + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5a, offset 0x1b3 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5b, offset 0x1b9 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5c, offset 0x1bf + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5d, offset 0x1c7 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x5e, offset 0x1cd + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x5f, offset 0x1d3 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x60, offset 0x1d9 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x61, offset 0x1dd + {value: 0x0006, lo: 0x0d}, + {value: 0x4390, lo: 0x9d, hi: 0x9d}, + {value: 0x8115, lo: 0x9e, hi: 0x9e}, + {value: 0x4402, lo: 0x9f, hi: 0x9f}, + {value: 0x43f0, lo: 0xaa, hi: 0xab}, + {value: 0x44f4, lo: 0xac, hi: 0xac}, + {value: 0x44fc, lo: 0xad, hi: 0xad}, + {value: 0x4348, lo: 0xae, hi: 0xb1}, + {value: 0x4366, lo: 0xb2, hi: 0xb4}, + {value: 0x437e, lo: 0xb5, hi: 0xb6}, + {value: 0x438a, lo: 0xb8, hi: 0xb8}, + {value: 0x4396, lo: 0xb9, hi: 0xbb}, + {value: 0x43ae, lo: 0xbc, hi: 0xbc}, + {value: 0x43b4, lo: 0xbe, hi: 0xbe}, + // Block 0x62, offset 0x1eb + {value: 0x0006, lo: 0x08}, + {value: 0x43ba, lo: 0x80, hi: 0x81}, + {value: 0x43c6, lo: 0x83, hi: 0x84}, + {value: 0x43d8, lo: 0x86, hi: 0x89}, + {value: 0x43fc, lo: 0x8a, hi: 0x8a}, + {value: 0x4378, lo: 0x8b, hi: 0x8b}, + {value: 0x4360, lo: 0x8c, hi: 0x8c}, + {value: 0x43a8, lo: 0x8d, hi: 0x8d}, + {value: 0x43d2, lo: 0x8e, hi: 0x8e}, + // Block 0x63, offset 0x1f4 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x64, offset 0x1f7 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x65, offset 0x1fa + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x66, offset 0x1fc + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x67, offset 0x1ff + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x68, offset 0x201 + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xa0, hi: 0xa6}, + {value: 0x812d, lo: 0xa7, hi: 0xad}, + {value: 0x8132, lo: 0xae, hi: 0xaf}, + // Block 0x69, offset 0x205 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6a, offset 0x20a + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6b, offset 0x20c + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6c, offset 0x20e + {value: 0x0000, lo: 0x04}, + {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, + {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, + {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, + {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, + // Block 0x6d, offset 0x213 + {value: 0x0000, lo: 0x05}, + {value: 0x4a9f, lo: 0x82, hi: 0x87}, + {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, + {value: 0x4a9f, lo: 0x92, hi: 0x97}, + {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x6e, offset 0x219 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6f, offset 0x21b + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x70, offset 0x21d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x71, offset 0x21f + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x225 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x73, offset 0x228 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x74, offset 0x22a + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x75, offset 0x230 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x76, offset 0x233 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x77, offset 0x23b + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x78, offset 0x242 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x79, offset 0x245 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x7a, offset 0x248 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x7b, offset 0x24a + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x7c, offset 0x24d + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x7d, offset 0x255 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7e, offset 0x259 + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7f, offset 0x260 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x80, offset 0x263 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x81, offset 0x269 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x82, offset 0x26b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x83, offset 0x26e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x84, offset 0x270 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x85, offset 0x273 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x86, offset 0x275 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x87, offset 0x277 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x88, offset 0x279 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x89, offset 0x27c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x8a, offset 0x27e + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x8b, offset 0x280 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x8c, offset 0x282 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8d, offset 0x284 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8e, offset 0x291 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x8f, offset 0x29b + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x90, offset 0x29d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x91, offset 0x29f + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x92, offset 0x2a5 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x93, offset 0x2a7 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x94, offset 0x2aa + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 17248 bytes (16.84 KiB). Checksum: 4fb368372b6b1b27. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 92: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 92 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 94 blocks, 6016 entries, 12032 bytes +// The third block is the zero block. +var nfkcValues = [6016]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, + // Block 0x5, offset 0x140 + 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2dee, 0x185: 0x2df4, + 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, + 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x42a5, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x425a, 0x285: 0x447b, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, + 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, + 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, + 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, + 0x2f9: 0x01a6, + // Block 0xc, offset 0x300 + 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, + 0x306: 0xa000, 0x307: 0x3709, + 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3733, 0x342: 0x37b7, + 0x350: 0x370f, 0x351: 0x3793, + 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, + 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, + 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, + 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, + 0x378: 0x3787, 0x379: 0x380b, + // Block 0xe, offset 0x380 + 0x387: 0x1d61, + 0x391: 0x812d, + 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, + 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, + 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, + 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, + 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, + 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, + 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, + 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x812d, + 0x3f0: 0x811e, 0x3f5: 0x1d84, + 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, + // Block 0x10, offset 0x400 + 0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, + 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, + 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d, + 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d, + 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d, + 0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, + 0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132, + 0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132, + // Block 0x11, offset 0x440 + 0x445: 0xa000, + 0x446: 0x2d26, 0x447: 0xa000, 0x448: 0x2d2e, 0x449: 0xa000, 0x44a: 0x2d36, 0x44b: 0xa000, + 0x44c: 0x2d3e, 0x44d: 0xa000, 0x44e: 0x2d46, 0x451: 0xa000, + 0x452: 0x2d4e, + 0x474: 0x8102, 0x475: 0x9900, + 0x47a: 0xa000, 0x47b: 0x2d56, + 0x47c: 0xa000, 0x47d: 0x2d5e, 0x47e: 0xa000, 0x47f: 0xa000, + // Block 0x12, offset 0x480 + 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8, + 0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107, + 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0, + 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9, + 0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be, + 0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5, + 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa, + 0x4aa: 0x01fd, + 0x4b8: 0x020c, + // Block 0x13, offset 0x4c0 + 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101, + 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116, + 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128, + 0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137, + 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec, + 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5, + 0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0, + // Block 0x14, offset 0x500 + 0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132, + 0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132, + 0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132, + 0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132, + 0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132, + 0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132, + 0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132, + 0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132, + 0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132, + 0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132, + 0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d, + // Block 0x15, offset 0x540 + 0x540: 0x2f97, 0x541: 0x32a3, 0x542: 0x2fa1, 0x543: 0x32ad, 0x544: 0x2fa6, 0x545: 0x32b2, + 0x546: 0x2fab, 0x547: 0x32b7, 0x548: 0x38cc, 0x549: 0x3a5b, 0x54a: 0x2fc4, 0x54b: 0x32d0, + 0x54c: 0x2fce, 0x54d: 0x32da, 0x54e: 0x2fdd, 0x54f: 0x32e9, 0x550: 0x2fd3, 0x551: 0x32df, + 0x552: 0x2fd8, 0x553: 0x32e4, 0x554: 0x38ef, 0x555: 0x3a7e, 0x556: 0x38f6, 0x557: 0x3a85, + 0x558: 0x3019, 0x559: 0x3325, 0x55a: 0x301e, 0x55b: 0x332a, 0x55c: 0x3904, 0x55d: 0x3a93, + 0x55e: 0x3023, 0x55f: 0x332f, 0x560: 0x3032, 0x561: 0x333e, 0x562: 0x3050, 0x563: 0x335c, + 0x564: 0x305f, 0x565: 0x336b, 0x566: 0x3055, 0x567: 0x3361, 0x568: 0x3064, 0x569: 0x3370, + 0x56a: 0x3069, 0x56b: 0x3375, 0x56c: 0x30af, 0x56d: 0x33bb, 0x56e: 0x390b, 0x56f: 0x3a9a, + 0x570: 0x30b9, 0x571: 0x33ca, 0x572: 0x30c3, 0x573: 0x33d4, 0x574: 0x30cd, 0x575: 0x33de, + 0x576: 0x46c4, 0x577: 0x4755, 0x578: 0x3912, 0x579: 0x3aa1, 0x57a: 0x30e6, 0x57b: 0x33f7, + 0x57c: 0x30e1, 0x57d: 0x33f2, 0x57e: 0x30eb, 0x57f: 0x33fc, + // Block 0x16, offset 0x580 + 0x580: 0x30f0, 0x581: 0x3401, 0x582: 0x30f5, 0x583: 0x3406, 0x584: 0x3109, 0x585: 0x341a, + 0x586: 0x3113, 0x587: 0x3424, 0x588: 0x3122, 0x589: 0x3433, 0x58a: 0x311d, 0x58b: 0x342e, + 0x58c: 0x3935, 0x58d: 0x3ac4, 0x58e: 0x3943, 0x58f: 0x3ad2, 0x590: 0x394a, 0x591: 0x3ad9, + 0x592: 0x3951, 0x593: 0x3ae0, 0x594: 0x314f, 0x595: 0x3460, 0x596: 0x3154, 0x597: 0x3465, + 0x598: 0x315e, 0x599: 0x346f, 0x59a: 0x46f1, 0x59b: 0x4782, 0x59c: 0x3997, 0x59d: 0x3b26, + 0x59e: 0x3177, 0x59f: 0x3488, 0x5a0: 0x3181, 0x5a1: 0x3492, 0x5a2: 0x4700, 0x5a3: 0x4791, + 0x5a4: 0x399e, 0x5a5: 0x3b2d, 0x5a6: 0x39a5, 0x5a7: 0x3b34, 0x5a8: 0x39ac, 0x5a9: 0x3b3b, + 0x5aa: 0x3190, 0x5ab: 0x34a1, 0x5ac: 0x319a, 0x5ad: 0x34b0, 0x5ae: 0x31ae, 0x5af: 0x34c4, + 0x5b0: 0x31a9, 0x5b1: 0x34bf, 0x5b2: 0x31ea, 0x5b3: 0x3500, 0x5b4: 0x31f9, 0x5b5: 0x350f, + 0x5b6: 0x31f4, 0x5b7: 0x350a, 0x5b8: 0x39b3, 0x5b9: 0x3b42, 0x5ba: 0x39ba, 0x5bb: 0x3b49, + 0x5bc: 0x31fe, 0x5bd: 0x3514, 0x5be: 0x3203, 0x5bf: 0x3519, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x3208, 0x5c1: 0x351e, 0x5c2: 0x320d, 0x5c3: 0x3523, 0x5c4: 0x321c, 0x5c5: 0x3532, + 0x5c6: 0x3217, 0x5c7: 0x352d, 0x5c8: 0x3221, 0x5c9: 0x353c, 0x5ca: 0x3226, 0x5cb: 0x3541, + 0x5cc: 0x322b, 0x5cd: 0x3546, 0x5ce: 0x3249, 0x5cf: 0x3564, 0x5d0: 0x3262, 0x5d1: 0x3582, + 0x5d2: 0x3271, 0x5d3: 0x3591, 0x5d4: 0x3276, 0x5d5: 0x3596, 0x5d6: 0x337a, 0x5d7: 0x34a6, + 0x5d8: 0x3537, 0x5d9: 0x3573, 0x5da: 0x1be0, 0x5db: 0x42d7, + 0x5e0: 0x46a1, 0x5e1: 0x4732, 0x5e2: 0x2f83, 0x5e3: 0x328f, + 0x5e4: 0x3878, 0x5e5: 0x3a07, 0x5e6: 0x3871, 0x5e7: 0x3a00, 0x5e8: 0x3886, 0x5e9: 0x3a15, + 0x5ea: 0x387f, 0x5eb: 0x3a0e, 0x5ec: 0x38be, 0x5ed: 0x3a4d, 0x5ee: 0x3894, 0x5ef: 0x3a23, + 0x5f0: 0x388d, 0x5f1: 0x3a1c, 0x5f2: 0x38a2, 0x5f3: 0x3a31, 0x5f4: 0x389b, 0x5f5: 0x3a2a, + 0x5f6: 0x38c5, 0x5f7: 0x3a54, 0x5f8: 0x46b5, 0x5f9: 0x4746, 0x5fa: 0x3000, 0x5fb: 0x330c, + 0x5fc: 0x2fec, 0x5fd: 0x32f8, 0x5fe: 0x38da, 0x5ff: 0x3a69, + // Block 0x18, offset 0x600 + 0x600: 0x38d3, 0x601: 0x3a62, 0x602: 0x38e8, 0x603: 0x3a77, 0x604: 0x38e1, 0x605: 0x3a70, + 0x606: 0x38fd, 0x607: 0x3a8c, 0x608: 0x3091, 0x609: 0x339d, 0x60a: 0x30a5, 0x60b: 0x33b1, + 0x60c: 0x46e7, 0x60d: 0x4778, 0x60e: 0x3136, 0x60f: 0x3447, 0x610: 0x3920, 0x611: 0x3aaf, + 0x612: 0x3919, 0x613: 0x3aa8, 0x614: 0x392e, 0x615: 0x3abd, 0x616: 0x3927, 0x617: 0x3ab6, + 0x618: 0x3989, 0x619: 0x3b18, 0x61a: 0x396d, 0x61b: 0x3afc, 0x61c: 0x3966, 0x61d: 0x3af5, + 0x61e: 0x397b, 0x61f: 0x3b0a, 0x620: 0x3974, 0x621: 0x3b03, 0x622: 0x3982, 0x623: 0x3b11, + 0x624: 0x31e5, 0x625: 0x34fb, 0x626: 0x31c7, 0x627: 0x34dd, 0x628: 0x39e4, 0x629: 0x3b73, + 0x62a: 0x39dd, 0x62b: 0x3b6c, 0x62c: 0x39f2, 0x62d: 0x3b81, 0x62e: 0x39eb, 0x62f: 0x3b7a, + 0x630: 0x39f9, 0x631: 0x3b88, 0x632: 0x3230, 0x633: 0x354b, 0x634: 0x3258, 0x635: 0x3578, + 0x636: 0x3253, 0x637: 0x356e, 0x638: 0x323f, 0x639: 0x355a, + // Block 0x19, offset 0x640 + 0x640: 0x4804, 0x641: 0x480a, 0x642: 0x491e, 0x643: 0x4936, 0x644: 0x4926, 0x645: 0x493e, + 0x646: 0x492e, 0x647: 0x4946, 0x648: 0x47aa, 0x649: 0x47b0, 0x64a: 0x488e, 0x64b: 0x48a6, + 0x64c: 0x4896, 0x64d: 0x48ae, 0x64e: 0x489e, 0x64f: 0x48b6, 0x650: 0x4816, 0x651: 0x481c, + 0x652: 0x3db8, 0x653: 0x3dc8, 0x654: 0x3dc0, 0x655: 0x3dd0, + 0x658: 0x47b6, 0x659: 0x47bc, 0x65a: 0x3ce8, 0x65b: 0x3cf8, 0x65c: 0x3cf0, 0x65d: 0x3d00, + 0x660: 0x482e, 0x661: 0x4834, 0x662: 0x494e, 0x663: 0x4966, + 0x664: 0x4956, 0x665: 0x496e, 0x666: 0x495e, 0x667: 0x4976, 0x668: 0x47c2, 0x669: 0x47c8, + 0x66a: 0x48be, 0x66b: 0x48d6, 0x66c: 0x48c6, 0x66d: 0x48de, 0x66e: 0x48ce, 0x66f: 0x48e6, + 0x670: 0x4846, 0x671: 0x484c, 0x672: 0x3e18, 0x673: 0x3e30, 0x674: 0x3e20, 0x675: 0x3e38, + 0x676: 0x3e28, 0x677: 0x3e40, 0x678: 0x47ce, 0x679: 0x47d4, 0x67a: 0x3d18, 0x67b: 0x3d30, + 0x67c: 0x3d20, 0x67d: 0x3d38, 0x67e: 0x3d28, 0x67f: 0x3d40, + // Block 0x1a, offset 0x680 + 0x680: 0x4852, 0x681: 0x4858, 0x682: 0x3e48, 0x683: 0x3e58, 0x684: 0x3e50, 0x685: 0x3e60, + 0x688: 0x47da, 0x689: 0x47e0, 0x68a: 0x3d48, 0x68b: 0x3d58, + 0x68c: 0x3d50, 0x68d: 0x3d60, 0x690: 0x4864, 0x691: 0x486a, + 0x692: 0x3e80, 0x693: 0x3e98, 0x694: 0x3e88, 0x695: 0x3ea0, 0x696: 0x3e90, 0x697: 0x3ea8, + 0x699: 0x47e6, 0x69b: 0x3d68, 0x69d: 0x3d70, + 0x69f: 0x3d78, 0x6a0: 0x487c, 0x6a1: 0x4882, 0x6a2: 0x497e, 0x6a3: 0x4996, + 0x6a4: 0x4986, 0x6a5: 0x499e, 0x6a6: 0x498e, 0x6a7: 0x49a6, 0x6a8: 0x47ec, 0x6a9: 0x47f2, + 0x6aa: 0x48ee, 0x6ab: 0x4906, 0x6ac: 0x48f6, 0x6ad: 0x490e, 0x6ae: 0x48fe, 0x6af: 0x4916, + 0x6b0: 0x47f8, 0x6b1: 0x431e, 0x6b2: 0x3691, 0x6b3: 0x4324, 0x6b4: 0x4822, 0x6b5: 0x432a, + 0x6b6: 0x36a3, 0x6b7: 0x4330, 0x6b8: 0x36c1, 0x6b9: 0x4336, 0x6ba: 0x36d9, 0x6bb: 0x433c, + 0x6bc: 0x4870, 0x6bd: 0x4342, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3da0, 0x6c1: 0x3da8, 0x6c2: 0x4184, 0x6c3: 0x41a2, 0x6c4: 0x418e, 0x6c5: 0x41ac, + 0x6c6: 0x4198, 0x6c7: 0x41b6, 0x6c8: 0x3cd8, 0x6c9: 0x3ce0, 0x6ca: 0x40d0, 0x6cb: 0x40ee, + 0x6cc: 0x40da, 0x6cd: 0x40f8, 0x6ce: 0x40e4, 0x6cf: 0x4102, 0x6d0: 0x3de8, 0x6d1: 0x3df0, + 0x6d2: 0x41c0, 0x6d3: 0x41de, 0x6d4: 0x41ca, 0x6d5: 0x41e8, 0x6d6: 0x41d4, 0x6d7: 0x41f2, + 0x6d8: 0x3d08, 0x6d9: 0x3d10, 0x6da: 0x410c, 0x6db: 0x412a, 0x6dc: 0x4116, 0x6dd: 0x4134, + 0x6de: 0x4120, 0x6df: 0x413e, 0x6e0: 0x3ec0, 0x6e1: 0x3ec8, 0x6e2: 0x41fc, 0x6e3: 0x421a, + 0x6e4: 0x4206, 0x6e5: 0x4224, 0x6e6: 0x4210, 0x6e7: 0x422e, 0x6e8: 0x3d80, 0x6e9: 0x3d88, + 0x6ea: 0x4148, 0x6eb: 0x4166, 0x6ec: 0x4152, 0x6ed: 0x4170, 0x6ee: 0x415c, 0x6ef: 0x417a, + 0x6f0: 0x3685, 0x6f1: 0x367f, 0x6f2: 0x3d90, 0x6f3: 0x368b, 0x6f4: 0x3d98, + 0x6f6: 0x4810, 0x6f7: 0x3db0, 0x6f8: 0x35f5, 0x6f9: 0x35ef, 0x6fa: 0x35e3, 0x6fb: 0x42ee, + 0x6fc: 0x35fb, 0x6fd: 0x4287, 0x6fe: 0x01d3, 0x6ff: 0x4287, + // Block 0x1c, offset 0x700 + 0x700: 0x42a0, 0x701: 0x4482, 0x702: 0x3dd8, 0x703: 0x369d, 0x704: 0x3de0, + 0x706: 0x483a, 0x707: 0x3df8, 0x708: 0x3601, 0x709: 0x42f4, 0x70a: 0x360d, 0x70b: 0x42fa, + 0x70c: 0x3619, 0x70d: 0x4489, 0x70e: 0x4490, 0x70f: 0x4497, 0x710: 0x36b5, 0x711: 0x36af, + 0x712: 0x3e00, 0x713: 0x44e4, 0x716: 0x36bb, 0x717: 0x3e10, + 0x718: 0x3631, 0x719: 0x362b, 0x71a: 0x361f, 0x71b: 0x4300, 0x71d: 0x449e, + 0x71e: 0x44a5, 0x71f: 0x44ac, 0x720: 0x36eb, 0x721: 0x36e5, 0x722: 0x3e68, 0x723: 0x44ec, + 0x724: 0x36cd, 0x725: 0x36d3, 0x726: 0x36f1, 0x727: 0x3e78, 0x728: 0x3661, 0x729: 0x365b, + 0x72a: 0x364f, 0x72b: 0x430c, 0x72c: 0x3649, 0x72d: 0x4474, 0x72e: 0x447b, 0x72f: 0x0081, + 0x732: 0x3eb0, 0x733: 0x36f7, 0x734: 0x3eb8, + 0x736: 0x4888, 0x737: 0x3ed0, 0x738: 0x363d, 0x739: 0x4306, 0x73a: 0x366d, 0x73b: 0x4318, + 0x73c: 0x3679, 0x73d: 0x425a, 0x73e: 0x428c, + // Block 0x1d, offset 0x740 + 0x740: 0x1bd8, 0x741: 0x1bdc, 0x742: 0x0047, 0x743: 0x1c54, 0x745: 0x1be8, + 0x746: 0x1bec, 0x747: 0x00e9, 0x749: 0x1c58, 0x74a: 0x008f, 0x74b: 0x0051, + 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053, + 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x198d, + 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, + 0x760: 0x199f, 0x761: 0x1bc8, 0x762: 0x19a8, + 0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075, + 0x76a: 0x0057, 0x76b: 0x42d2, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, + 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215, + 0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b98, + 0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0, + // Block 0x1e, offset 0x780 + 0x780: 0x0463, 0x785: 0x0049, + 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, + 0x790: 0x222e, 0x791: 0x223a, + 0x792: 0x22ee, 0x793: 0x2216, 0x794: 0x229a, 0x795: 0x2222, 0x796: 0x22a0, 0x797: 0x22b8, + 0x798: 0x22c4, 0x799: 0x2228, 0x79a: 0x22ca, 0x79b: 0x2234, 0x79c: 0x22be, 0x79d: 0x22d0, + 0x79e: 0x22d6, 0x79f: 0x1cbc, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba4, 0x7a3: 0x1963, + 0x7a4: 0x006d, 0x7a5: 0x19ab, 0x7a6: 0x1bd0, 0x7a7: 0x1d48, 0x7a8: 0x1966, 0x7a9: 0x0071, + 0x7aa: 0x19b7, 0x7ab: 0x1bd4, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, + 0x7b0: 0x0093, 0x7b1: 0x19e4, 0x7b2: 0x1c18, 0x7b3: 0x19ed, 0x7b4: 0x00ad, 0x7b5: 0x1a62, + 0x7b6: 0x1c4c, 0x7b7: 0x1d5c, 0x7b8: 0x19f0, 0x7b9: 0x00b1, 0x7ba: 0x1a65, 0x7bb: 0x1c50, + 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x3c06, 0x7c3: 0xa000, 0x7c4: 0x3c0d, 0x7c5: 0xa000, + 0x7c7: 0x3c14, 0x7c8: 0xa000, 0x7c9: 0x3c1b, + 0x7cd: 0xa000, + 0x7e0: 0x2f65, 0x7e1: 0xa000, 0x7e2: 0x3c29, + 0x7e4: 0xa000, 0x7e5: 0xa000, + 0x7ed: 0x3c22, 0x7ee: 0x2f60, 0x7ef: 0x2f6a, + 0x7f0: 0x3c30, 0x7f1: 0x3c37, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c3e, 0x7f5: 0x3c45, + 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4c, 0x7f9: 0x3c53, 0x7fa: 0xa000, 0x7fb: 0xa000, + 0x7fc: 0xa000, 0x7fd: 0xa000, + // Block 0x20, offset 0x800 + 0x800: 0x3c5a, 0x801: 0x3c61, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c76, 0x805: 0x3c7d, + 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c84, 0x809: 0x3c8b, + 0x811: 0xa000, + 0x812: 0xa000, + 0x822: 0xa000, + 0x828: 0xa000, 0x829: 0xa000, + 0x82b: 0xa000, 0x82c: 0x3ca0, 0x82d: 0x3ca7, 0x82e: 0x3cae, 0x82f: 0x3cb5, + 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, + // Block 0x21, offset 0x840 + 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, + 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882, + 0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894, + 0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a68, 0x875: 0x1a6c, + 0x876: 0x1a70, 0x877: 0x1a74, 0x878: 0x1a78, 0x879: 0x1a7c, 0x87a: 0x1a80, 0x87b: 0x1a84, + 0x87c: 0x1a88, 0x87d: 0x1c80, 0x87e: 0x1c85, 0x87f: 0x1c8a, + // Block 0x22, offset 0x880 + 0x880: 0x1c8f, 0x881: 0x1c94, 0x882: 0x1c99, 0x883: 0x1c9e, 0x884: 0x1ca3, 0x885: 0x1ca8, + 0x886: 0x1cad, 0x887: 0x1cb2, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb, + 0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b60, + 0x892: 0x1b64, 0x893: 0x1b68, 0x894: 0x1b6c, 0x895: 0x1b70, 0x896: 0x1b74, 0x897: 0x1b78, + 0x898: 0x1b7c, 0x899: 0x1b80, 0x89a: 0x1b84, 0x89b: 0x1b88, 0x89c: 0x1af4, 0x89d: 0x1af8, + 0x89e: 0x1afc, 0x89f: 0x1b00, 0x8a0: 0x1b04, 0x8a1: 0x1b08, 0x8a2: 0x1b0c, 0x8a3: 0x1b10, + 0x8a4: 0x1b14, 0x8a5: 0x1b18, 0x8a6: 0x1b1c, 0x8a7: 0x1b20, 0x8a8: 0x1b24, 0x8a9: 0x1b28, + 0x8aa: 0x1b2c, 0x8ab: 0x1b30, 0x8ac: 0x1b34, 0x8ad: 0x1b38, 0x8ae: 0x1b3c, 0x8af: 0x1b40, + 0x8b0: 0x1b44, 0x8b1: 0x1b48, 0x8b2: 0x1b4c, 0x8b3: 0x1b50, 0x8b4: 0x1b54, 0x8b5: 0x1b58, + 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, + 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713, + 0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab, + 0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803, + 0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887, + 0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db, + 0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb, + 0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b, + 0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7, + 0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33, + 0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63, + 0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f, + // Block 0x24, offset 0x900 + 0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb, + 0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b, + 0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb, + 0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3, + 0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f, + 0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83, + 0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7, + 0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f, + 0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf, + 0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f, + 0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187, + // Block 0x25, offset 0x940 + 0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3, + 0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb, + 0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b, + 0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b, + 0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf, + 0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f, + 0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f, + 0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503, + 0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f, + 0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f, + 0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593, + // Block 0x26, offset 0x980 + 0x986: 0xa000, 0x98b: 0xa000, + 0x98c: 0x3f08, 0x98d: 0xa000, 0x98e: 0x3f10, 0x98f: 0xa000, 0x990: 0x3f18, 0x991: 0xa000, + 0x992: 0x3f20, 0x993: 0xa000, 0x994: 0x3f28, 0x995: 0xa000, 0x996: 0x3f30, 0x997: 0xa000, + 0x998: 0x3f38, 0x999: 0xa000, 0x99a: 0x3f40, 0x99b: 0xa000, 0x99c: 0x3f48, 0x99d: 0xa000, + 0x99e: 0x3f50, 0x99f: 0xa000, 0x9a0: 0x3f58, 0x9a1: 0xa000, 0x9a2: 0x3f60, + 0x9a4: 0xa000, 0x9a5: 0x3f68, 0x9a6: 0xa000, 0x9a7: 0x3f70, 0x9a8: 0xa000, 0x9a9: 0x3f78, + 0x9af: 0xa000, + 0x9b0: 0x3f80, 0x9b1: 0x3f88, 0x9b2: 0xa000, 0x9b3: 0x3f90, 0x9b4: 0x3f98, 0x9b5: 0xa000, + 0x9b6: 0x3fa0, 0x9b7: 0x3fa8, 0x9b8: 0xa000, 0x9b9: 0x3fb0, 0x9ba: 0x3fb8, 0x9bb: 0xa000, + 0x9bc: 0x3fc0, 0x9bd: 0x3fc8, + // Block 0x27, offset 0x9c0 + 0x9d4: 0x3f00, + 0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42dc, 0x9dc: 0x42e2, 0x9dd: 0xa000, + 0x9de: 0x3fd0, 0x9df: 0x26b4, + 0x9e6: 0xa000, + 0x9eb: 0xa000, 0x9ec: 0x3fe0, 0x9ed: 0xa000, 0x9ee: 0x3fe8, 0x9ef: 0xa000, + 0x9f0: 0x3ff0, 0x9f1: 0xa000, 0x9f2: 0x3ff8, 0x9f3: 0xa000, 0x9f4: 0x4000, 0x9f5: 0xa000, + 0x9f6: 0x4008, 0x9f7: 0xa000, 0x9f8: 0x4010, 0x9f9: 0xa000, 0x9fa: 0x4018, 0x9fb: 0xa000, + 0x9fc: 0x4020, 0x9fd: 0xa000, 0x9fe: 0x4028, 0x9ff: 0xa000, + // Block 0x28, offset 0xa00 + 0xa00: 0x4030, 0xa01: 0xa000, 0xa02: 0x4038, 0xa04: 0xa000, 0xa05: 0x4040, + 0xa06: 0xa000, 0xa07: 0x4048, 0xa08: 0xa000, 0xa09: 0x4050, + 0xa0f: 0xa000, 0xa10: 0x4058, 0xa11: 0x4060, + 0xa12: 0xa000, 0xa13: 0x4068, 0xa14: 0x4070, 0xa15: 0xa000, 0xa16: 0x4078, 0xa17: 0x4080, + 0xa18: 0xa000, 0xa19: 0x4088, 0xa1a: 0x4090, 0xa1b: 0xa000, 0xa1c: 0x4098, 0xa1d: 0x40a0, + 0xa2f: 0xa000, + 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fd8, + 0xa37: 0x40a8, 0xa38: 0x40b0, 0xa39: 0x40b8, 0xa3a: 0x40c0, + 0xa3d: 0xa000, 0xa3e: 0x40c8, 0xa3f: 0x26c9, + // Block 0x29, offset 0xa40 + 0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337, + 0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f, + 0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49bd, 0xa50: 0x49c3, 0xa51: 0x49c9, + 0xa52: 0x49cf, 0xa53: 0x49d5, 0xa54: 0x49db, 0xa55: 0x49e1, 0xa56: 0x49e7, 0xa57: 0x49ed, + 0xa58: 0x49f3, 0xa59: 0x49f9, 0xa5a: 0x49ff, 0xa5b: 0x4a05, 0xa5c: 0x4a0b, 0xa5d: 0x4a11, + 0xa5e: 0x4a17, 0xa5f: 0x4a1d, 0xa60: 0x4a23, 0xa61: 0x4a29, 0xa62: 0x4a2f, 0xa63: 0x4a35, + 0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef, + 0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403, + 0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383, + 0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b, + 0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab, + // Block 0x2a, offset 0xa80 + 0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb, + 0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7, + 0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3, + 0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7, + 0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff, + 0xa9e: 0x098f, 0xa9f: 0x072f, + // Block 0x2b, offset 0xac0 + 0xac0: 0x2054, 0xac1: 0x205a, 0xac2: 0x2060, 0xac3: 0x2066, 0xac4: 0x206c, 0xac5: 0x2072, + 0xac6: 0x2078, 0xac7: 0x207e, 0xac8: 0x2084, 0xac9: 0x208a, 0xaca: 0x2090, 0xacb: 0x2096, + 0xacc: 0x209c, 0xacd: 0x20a2, 0xace: 0x2726, 0xacf: 0x272f, 0xad0: 0x2738, 0xad1: 0x2741, + 0xad2: 0x274a, 0xad3: 0x2753, 0xad4: 0x275c, 0xad5: 0x2765, 0xad6: 0x276e, 0xad7: 0x2780, + 0xad8: 0x2789, 0xad9: 0x2792, 0xada: 0x279b, 0xadb: 0x27a4, 0xadc: 0x2777, 0xadd: 0x2bac, + 0xade: 0x2aed, 0xae0: 0x20a8, 0xae1: 0x20c0, 0xae2: 0x20b4, 0xae3: 0x2108, + 0xae4: 0x20c6, 0xae5: 0x20e4, 0xae6: 0x20ae, 0xae7: 0x20de, 0xae8: 0x20ba, 0xae9: 0x20f0, + 0xaea: 0x2120, 0xaeb: 0x213e, 0xaec: 0x2138, 0xaed: 0x212c, 0xaee: 0x217a, 0xaef: 0x210e, + 0xaf0: 0x211a, 0xaf1: 0x2132, 0xaf2: 0x2126, 0xaf3: 0x2150, 0xaf4: 0x20fc, 0xaf5: 0x2144, + 0xaf6: 0x216e, 0xaf7: 0x2156, 0xaf8: 0x20ea, 0xaf9: 0x20cc, 0xafa: 0x2102, 0xafb: 0x2114, + 0xafc: 0x214a, 0xafd: 0x20d2, 0xafe: 0x2174, 0xaff: 0x20f6, + // Block 0x2c, offset 0xb00 + 0xb00: 0x215c, 0xb01: 0x20d8, 0xb02: 0x2162, 0xb03: 0x2168, 0xb04: 0x092f, 0xb05: 0x0b03, + 0xb06: 0x0ca7, 0xb07: 0x10c7, + 0xb10: 0x1bc4, 0xb11: 0x18a9, + 0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb, + 0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3, + 0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327, + 0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b, + 0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e18, 0xb2f: 0x2e20, + 0xb30: 0x2e28, 0xb31: 0x2e30, 0xb32: 0x2e38, 0xb33: 0x2e40, 0xb34: 0x2e48, 0xb35: 0x2e50, + 0xb36: 0x2e60, 0xb37: 0x2e68, 0xb38: 0x2e70, 0xb39: 0x2e78, 0xb3a: 0x2e80, 0xb3b: 0x2e88, + 0xb3c: 0x2ed3, 0xb3d: 0x2e9b, 0xb3e: 0x2e58, + // Block 0x2d, offset 0xb40 + 0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af, + 0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f, + 0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b, + 0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f, + 0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f, + 0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b, + 0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f, + 0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b, + 0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee, + 0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900, + 0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912, + // Block 0x2e, offset 0xb80 + 0xb80: 0x1cc6, 0xb81: 0x1cd5, 0xb82: 0x1ce4, 0xb83: 0x1cf3, 0xb84: 0x1d02, 0xb85: 0x1d11, + 0xb86: 0x1d20, 0xb87: 0x1d2f, 0xb88: 0x1d3e, 0xb89: 0x218c, 0xb8a: 0x219e, 0xb8b: 0x21b0, + 0xb8c: 0x1954, 0xb8d: 0x1c04, 0xb8e: 0x19d2, 0xb8f: 0x1ba8, 0xb90: 0x04cb, 0xb91: 0x04d3, + 0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7, + 0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f, + 0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b, + 0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543, + 0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b, + 0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f, + 0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597, + 0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x2b0c, 0xbc1: 0x29a8, 0xbc2: 0x2b1c, 0xbc3: 0x2880, 0xbc4: 0x2ee4, 0xbc5: 0x288a, + 0xbc6: 0x2894, 0xbc7: 0x2f28, 0xbc8: 0x29b5, 0xbc9: 0x289e, 0xbca: 0x28a8, 0xbcb: 0x28b2, + 0xbcc: 0x29dc, 0xbcd: 0x29e9, 0xbce: 0x29c2, 0xbcf: 0x29cf, 0xbd0: 0x2ea9, 0xbd1: 0x29f6, + 0xbd2: 0x2a03, 0xbd3: 0x2bbe, 0xbd4: 0x26bb, 0xbd5: 0x2bd1, 0xbd6: 0x2be4, 0xbd7: 0x2b2c, + 0xbd8: 0x2a10, 0xbd9: 0x2bf7, 0xbda: 0x2c0a, 0xbdb: 0x2a1d, 0xbdc: 0x28bc, 0xbdd: 0x28c6, + 0xbde: 0x2eb7, 0xbdf: 0x2a2a, 0xbe0: 0x2b3c, 0xbe1: 0x2ef5, 0xbe2: 0x28d0, 0xbe3: 0x28da, + 0xbe4: 0x2a37, 0xbe5: 0x28e4, 0xbe6: 0x28ee, 0xbe7: 0x26d0, 0xbe8: 0x26d7, 0xbe9: 0x28f8, + 0xbea: 0x2902, 0xbeb: 0x2c1d, 0xbec: 0x2a44, 0xbed: 0x2b4c, 0xbee: 0x2c30, 0xbef: 0x2a51, + 0xbf0: 0x2916, 0xbf1: 0x290c, 0xbf2: 0x2f3c, 0xbf3: 0x2a5e, 0xbf4: 0x2c43, 0xbf5: 0x2920, + 0xbf6: 0x2b5c, 0xbf7: 0x292a, 0xbf8: 0x2a78, 0xbf9: 0x2934, 0xbfa: 0x2a85, 0xbfb: 0x2f06, + 0xbfc: 0x2a6b, 0xbfd: 0x2b6c, 0xbfe: 0x2a92, 0xbff: 0x26de, + // Block 0x30, offset 0xc00 + 0xc00: 0x2f17, 0xc01: 0x293e, 0xc02: 0x2948, 0xc03: 0x2a9f, 0xc04: 0x2952, 0xc05: 0x295c, + 0xc06: 0x2966, 0xc07: 0x2b7c, 0xc08: 0x2aac, 0xc09: 0x26e5, 0xc0a: 0x2c56, 0xc0b: 0x2e90, + 0xc0c: 0x2b8c, 0xc0d: 0x2ab9, 0xc0e: 0x2ec5, 0xc0f: 0x2970, 0xc10: 0x297a, 0xc11: 0x2ac6, + 0xc12: 0x26ec, 0xc13: 0x2ad3, 0xc14: 0x2b9c, 0xc15: 0x26f3, 0xc16: 0x2c69, 0xc17: 0x2984, + 0xc18: 0x1cb7, 0xc19: 0x1ccb, 0xc1a: 0x1cda, 0xc1b: 0x1ce9, 0xc1c: 0x1cf8, 0xc1d: 0x1d07, + 0xc1e: 0x1d16, 0xc1f: 0x1d25, 0xc20: 0x1d34, 0xc21: 0x1d43, 0xc22: 0x2192, 0xc23: 0x21a4, + 0xc24: 0x21b6, 0xc25: 0x21c2, 0xc26: 0x21ce, 0xc27: 0x21da, 0xc28: 0x21e6, 0xc29: 0x21f2, + 0xc2a: 0x21fe, 0xc2b: 0x220a, 0xc2c: 0x2246, 0xc2d: 0x2252, 0xc2e: 0x225e, 0xc2f: 0x226a, + 0xc30: 0x2276, 0xc31: 0x1c14, 0xc32: 0x19c6, 0xc33: 0x1936, 0xc34: 0x1be4, 0xc35: 0x1a47, + 0xc36: 0x1a56, 0xc37: 0x19cc, 0xc38: 0x1bfc, 0xc39: 0x1c00, 0xc3a: 0x1960, 0xc3b: 0x2701, + 0xc3c: 0x270f, 0xc3d: 0x26fa, 0xc3e: 0x2708, 0xc3f: 0x2ae0, + // Block 0x31, offset 0xc40 + 0xc40: 0x1a4a, 0xc41: 0x1a32, 0xc42: 0x1c60, 0xc43: 0x1a1a, 0xc44: 0x19f3, 0xc45: 0x1969, + 0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf0, 0xc49: 0x1d52, 0xc4a: 0x1a4d, 0xc4b: 0x1a35, + 0xc4c: 0x1c64, 0xc4d: 0x1c70, 0xc4e: 0x1a26, 0xc4f: 0x19fc, 0xc50: 0x1957, 0xc51: 0x1c1c, + 0xc52: 0x1bb0, 0xc53: 0x1b9c, 0xc54: 0x1bcc, 0xc55: 0x1c74, 0xc56: 0x1a29, 0xc57: 0x19c9, + 0xc58: 0x19ff, 0xc59: 0x19de, 0xc5a: 0x1a41, 0xc5b: 0x1c78, 0xc5c: 0x1a2c, 0xc5d: 0x19c0, + 0xc5e: 0x1a02, 0xc5f: 0x1c3c, 0xc60: 0x1bf4, 0xc61: 0x1a14, 0xc62: 0x1c24, 0xc63: 0x1c40, + 0xc64: 0x1bf8, 0xc65: 0x1a17, 0xc66: 0x1c28, 0xc67: 0x22e8, 0xc68: 0x22fc, 0xc69: 0x1996, + 0xc6a: 0x1c20, 0xc6b: 0x1bb4, 0xc6c: 0x1ba0, 0xc6d: 0x1c48, 0xc6e: 0x2716, 0xc6f: 0x27ad, + 0xc70: 0x1a59, 0xc71: 0x1a44, 0xc72: 0x1c7c, 0xc73: 0x1a2f, 0xc74: 0x1a50, 0xc75: 0x1a38, + 0xc76: 0x1c68, 0xc77: 0x1a1d, 0xc78: 0x19f6, 0xc79: 0x1981, 0xc7a: 0x1a53, 0xc7b: 0x1a3b, + 0xc7c: 0x1c6c, 0xc7d: 0x1a20, 0xc7e: 0x19f9, 0xc7f: 0x1984, + // Block 0x32, offset 0xc80 + 0xc80: 0x1c2c, 0xc81: 0x1bb8, 0xc82: 0x1d4d, 0xc83: 0x1939, 0xc84: 0x19ba, 0xc85: 0x19bd, + 0xc86: 0x22f5, 0xc87: 0x1b94, 0xc88: 0x19c3, 0xc89: 0x194b, 0xc8a: 0x19e1, 0xc8b: 0x194e, + 0xc8c: 0x19ea, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a05, 0xc90: 0x1a0b, 0xc91: 0x1a0e, + 0xc92: 0x1c30, 0xc93: 0x1a11, 0xc94: 0x1a23, 0xc95: 0x1c38, 0xc96: 0x1c44, 0xc97: 0x1990, + 0xc98: 0x1d57, 0xc99: 0x1bbc, 0xc9a: 0x1993, 0xc9b: 0x1a5c, 0xc9c: 0x19a5, 0xc9d: 0x19b4, + 0xc9e: 0x22e2, 0xc9f: 0x22dc, 0xca0: 0x1cc1, 0xca1: 0x1cd0, 0xca2: 0x1cdf, 0xca3: 0x1cee, + 0xca4: 0x1cfd, 0xca5: 0x1d0c, 0xca6: 0x1d1b, 0xca7: 0x1d2a, 0xca8: 0x1d39, 0xca9: 0x2186, + 0xcaa: 0x2198, 0xcab: 0x21aa, 0xcac: 0x21bc, 0xcad: 0x21c8, 0xcae: 0x21d4, 0xcaf: 0x21e0, + 0xcb0: 0x21ec, 0xcb1: 0x21f8, 0xcb2: 0x2204, 0xcb3: 0x2240, 0xcb4: 0x224c, 0xcb5: 0x2258, + 0xcb6: 0x2264, 0xcb7: 0x2270, 0xcb8: 0x227c, 0xcb9: 0x2282, 0xcba: 0x2288, 0xcbb: 0x228e, + 0xcbc: 0x2294, 0xcbd: 0x22a6, 0xcbe: 0x22ac, 0xcbf: 0x1c10, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb, + 0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943, + 0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3, + 0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43, + 0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87, + 0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283, + 0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f, + 0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853, + 0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b, + 0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b, + 0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b, + // Block 0x34, offset 0xd00 + 0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b, + 0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f, + 0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7, + 0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127, + 0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357, + 0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873, + 0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3, + 0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b, + 0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57, + 0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb, + 0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b, + // Block 0x35, offset 0xd40 + 0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f, + 0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3, + 0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83, + 0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193, + 0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b, + 0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b, + 0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f, + 0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b, + 0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753, + 0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777, + 0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73, + // Block 0x36, offset 0xd80 + 0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3, + 0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47, + 0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af, + 0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df, + 0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817, + 0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3, + 0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457, + 0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b, + 0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27, + 0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f, + 0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03, + 0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27, + 0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af, + 0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3, + 0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb, + 0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353, + 0xde5: 0x1407, 0xde6: 0x1433, + 0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7, + 0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897, + 0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93, + 0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3, + // Block 0x38, offset 0xe00 + 0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b, + 0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f, + 0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f, + 0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f, + 0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff, + 0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f, + 0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f, + 0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3, + 0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7, + 0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963, + 0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f, + // Block 0x39, offset 0xe40 + 0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b, + 0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb, + 0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf, + 0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f, + 0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013, + 0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f, + 0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b, + 0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b, + 0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb, + 0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343, + 0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f, + // Block 0x3a, offset 0xe80 + 0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b, + 0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b, + 0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2, + 0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809, + 0xe98: 0x1617, 0xe99: 0x1627, + // Block 0x3b, offset 0xec0 + 0xec0: 0x19d5, 0xec1: 0x19d8, 0xec2: 0x19db, 0xec3: 0x1c08, 0xec4: 0x1c0c, 0xec5: 0x1a5f, + 0xec6: 0x1a5f, + 0xed3: 0x1d75, 0xed4: 0x1d66, 0xed5: 0x1d6b, 0xed6: 0x1d7a, 0xed7: 0x1d70, + 0xedd: 0x4390, + 0xede: 0x8115, 0xedf: 0x4402, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221, + 0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017, + 0xeea: 0x43f0, 0xeeb: 0x43f6, 0xeec: 0x44f4, 0xeed: 0x44fc, 0xeee: 0x4348, 0xeef: 0x434e, + 0xef0: 0x4354, 0xef1: 0x435a, 0xef2: 0x4366, 0xef3: 0x436c, 0xef4: 0x4372, 0xef5: 0x437e, + 0xef6: 0x4384, 0xef8: 0x438a, 0xef9: 0x4396, 0xefa: 0x439c, 0xefb: 0x43a2, + 0xefc: 0x43ae, 0xefe: 0x43b4, + // Block 0x3c, offset 0xf00 + 0xf00: 0x43ba, 0xf01: 0x43c0, 0xf03: 0x43c6, 0xf04: 0x43cc, + 0xf06: 0x43d8, 0xf07: 0x43de, 0xf08: 0x43e4, 0xf09: 0x43ea, 0xf0a: 0x43fc, 0xf0b: 0x4378, + 0xf0c: 0x4360, 0xf0d: 0x43a8, 0xf0e: 0x43d2, 0xf0f: 0x1d7f, 0xf10: 0x0299, 0xf11: 0x0299, + 0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5, + 0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab, + 0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8, + 0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c, + 0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2, + 0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1, + 0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4, + 0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7, + // Block 0x3d, offset 0xf40 + 0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd, + 0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9, + 0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5, + 0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1, + 0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de, + 0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7, + 0xf64: 0x446e, 0xf65: 0x446e, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed, + 0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308, + 0xf70: 0x4468, 0xf71: 0x4468, + // Block 0x3e, offset 0xf80 + 0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6, + 0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x204f, + 0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc, + 0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d, + 0xfaa: 0x25aa, 0xfab: 0x25aa, 0xfac: 0x261a, 0xfad: 0x261a, 0xfae: 0x25e9, 0xfaf: 0x25e9, + 0xfb0: 0x2605, 0xfb1: 0x2605, 0xfb2: 0x25fe, 0xfb3: 0x25fe, 0xfb4: 0x260c, 0xfb5: 0x260c, + 0xfb6: 0x2613, 0xfb7: 0x2613, 0xfb8: 0x2613, 0xfb9: 0x25f0, 0xfba: 0x25f0, 0xfbb: 0x25f0, + 0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x25b1, 0xfc1: 0x25b8, 0xfc2: 0x25d4, 0xfc3: 0x25f0, 0xfc4: 0x25f7, 0xfc5: 0x1d89, + 0xfc6: 0x1d8e, 0xfc7: 0x1d93, 0xfc8: 0x1da2, 0xfc9: 0x1db1, 0xfca: 0x1db6, 0xfcb: 0x1dbb, + 0xfcc: 0x1dc0, 0xfcd: 0x1dc5, 0xfce: 0x1dd4, 0xfcf: 0x1de3, 0xfd0: 0x1de8, 0xfd1: 0x1ded, + 0xfd2: 0x1dfc, 0xfd3: 0x1e0b, 0xfd4: 0x1e10, 0xfd5: 0x1e15, 0xfd6: 0x1e1a, 0xfd7: 0x1e29, + 0xfd8: 0x1e2e, 0xfd9: 0x1e3d, 0xfda: 0x1e42, 0xfdb: 0x1e47, 0xfdc: 0x1e56, 0xfdd: 0x1e5b, + 0xfde: 0x1e60, 0xfdf: 0x1e6a, 0xfe0: 0x1ea6, 0xfe1: 0x1eb5, 0xfe2: 0x1ec4, 0xfe3: 0x1ec9, + 0xfe4: 0x1ece, 0xfe5: 0x1ed8, 0xfe6: 0x1ee7, 0xfe7: 0x1eec, 0xfe8: 0x1efb, 0xfe9: 0x1f00, + 0xfea: 0x1f05, 0xfeb: 0x1f14, 0xfec: 0x1f19, 0xfed: 0x1f28, 0xfee: 0x1f2d, 0xfef: 0x1f32, + 0xff0: 0x1f37, 0xff1: 0x1f3c, 0xff2: 0x1f41, 0xff3: 0x1f46, 0xff4: 0x1f4b, 0xff5: 0x1f50, + 0xff6: 0x1f55, 0xff7: 0x1f5a, 0xff8: 0x1f5f, 0xff9: 0x1f64, 0xffa: 0x1f69, 0xffb: 0x1f6e, + 0xffc: 0x1f73, 0xffd: 0x1f78, 0xffe: 0x1f7d, 0xfff: 0x1f87, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f8c, 0x1001: 0x1f91, 0x1002: 0x1f96, 0x1003: 0x1fa0, 0x1004: 0x1fa5, 0x1005: 0x1faf, + 0x1006: 0x1fb4, 0x1007: 0x1fb9, 0x1008: 0x1fbe, 0x1009: 0x1fc3, 0x100a: 0x1fc8, 0x100b: 0x1fcd, + 0x100c: 0x1fd2, 0x100d: 0x1fd7, 0x100e: 0x1fe6, 0x100f: 0x1ff5, 0x1010: 0x1ffa, 0x1011: 0x1fff, + 0x1012: 0x2004, 0x1013: 0x2009, 0x1014: 0x200e, 0x1015: 0x2018, 0x1016: 0x201d, 0x1017: 0x2022, + 0x1018: 0x2031, 0x1019: 0x2040, 0x101a: 0x2045, 0x101b: 0x4420, 0x101c: 0x4426, 0x101d: 0x445c, + 0x101e: 0x44b3, 0x101f: 0x44ba, 0x1020: 0x44c1, 0x1021: 0x44c8, 0x1022: 0x44cf, 0x1023: 0x44d6, + 0x1024: 0x25c6, 0x1025: 0x25cd, 0x1026: 0x25d4, 0x1027: 0x25db, 0x1028: 0x25f0, 0x1029: 0x25f7, + 0x102a: 0x1d98, 0x102b: 0x1d9d, 0x102c: 0x1da2, 0x102d: 0x1da7, 0x102e: 0x1db1, 0x102f: 0x1db6, + 0x1030: 0x1dca, 0x1031: 0x1dcf, 0x1032: 0x1dd4, 0x1033: 0x1dd9, 0x1034: 0x1de3, 0x1035: 0x1de8, + 0x1036: 0x1df2, 0x1037: 0x1df7, 0x1038: 0x1dfc, 0x1039: 0x1e01, 0x103a: 0x1e0b, 0x103b: 0x1e10, + 0x103c: 0x1f3c, 0x103d: 0x1f41, 0x103e: 0x1f50, 0x103f: 0x1f55, + // Block 0x41, offset 0x1040 + 0x1040: 0x1f5a, 0x1041: 0x1f6e, 0x1042: 0x1f73, 0x1043: 0x1f78, 0x1044: 0x1f7d, 0x1045: 0x1f96, + 0x1046: 0x1fa0, 0x1047: 0x1fa5, 0x1048: 0x1faa, 0x1049: 0x1fbe, 0x104a: 0x1fdc, 0x104b: 0x1fe1, + 0x104c: 0x1fe6, 0x104d: 0x1feb, 0x104e: 0x1ff5, 0x104f: 0x1ffa, 0x1050: 0x445c, 0x1051: 0x2027, + 0x1052: 0x202c, 0x1053: 0x2031, 0x1054: 0x2036, 0x1055: 0x2040, 0x1056: 0x2045, 0x1057: 0x25b1, + 0x1058: 0x25b8, 0x1059: 0x25bf, 0x105a: 0x25d4, 0x105b: 0x25e2, 0x105c: 0x1d89, 0x105d: 0x1d8e, + 0x105e: 0x1d93, 0x105f: 0x1da2, 0x1060: 0x1dac, 0x1061: 0x1dbb, 0x1062: 0x1dc0, 0x1063: 0x1dc5, + 0x1064: 0x1dd4, 0x1065: 0x1dde, 0x1066: 0x1dfc, 0x1067: 0x1e15, 0x1068: 0x1e1a, 0x1069: 0x1e29, + 0x106a: 0x1e2e, 0x106b: 0x1e3d, 0x106c: 0x1e47, 0x106d: 0x1e56, 0x106e: 0x1e5b, 0x106f: 0x1e60, + 0x1070: 0x1e6a, 0x1071: 0x1ea6, 0x1072: 0x1eab, 0x1073: 0x1eb5, 0x1074: 0x1ec4, 0x1075: 0x1ec9, + 0x1076: 0x1ece, 0x1077: 0x1ed8, 0x1078: 0x1ee7, 0x1079: 0x1efb, 0x107a: 0x1f00, 0x107b: 0x1f05, + 0x107c: 0x1f14, 0x107d: 0x1f19, 0x107e: 0x1f28, 0x107f: 0x1f2d, + // Block 0x42, offset 0x1080 + 0x1080: 0x1f32, 0x1081: 0x1f37, 0x1082: 0x1f46, 0x1083: 0x1f4b, 0x1084: 0x1f5f, 0x1085: 0x1f64, + 0x1086: 0x1f69, 0x1087: 0x1f6e, 0x1088: 0x1f73, 0x1089: 0x1f87, 0x108a: 0x1f8c, 0x108b: 0x1f91, + 0x108c: 0x1f96, 0x108d: 0x1f9b, 0x108e: 0x1faf, 0x108f: 0x1fb4, 0x1090: 0x1fb9, 0x1091: 0x1fbe, + 0x1092: 0x1fcd, 0x1093: 0x1fd2, 0x1094: 0x1fd7, 0x1095: 0x1fe6, 0x1096: 0x1ff0, 0x1097: 0x1fff, + 0x1098: 0x2004, 0x1099: 0x4450, 0x109a: 0x2018, 0x109b: 0x201d, 0x109c: 0x2022, 0x109d: 0x2031, + 0x109e: 0x203b, 0x109f: 0x25d4, 0x10a0: 0x25e2, 0x10a1: 0x1da2, 0x10a2: 0x1dac, 0x10a3: 0x1dd4, + 0x10a4: 0x1dde, 0x10a5: 0x1dfc, 0x10a6: 0x1e06, 0x10a7: 0x1e6a, 0x10a8: 0x1e6f, 0x10a9: 0x1e92, + 0x10aa: 0x1e97, 0x10ab: 0x1f6e, 0x10ac: 0x1f73, 0x10ad: 0x1f96, 0x10ae: 0x1fe6, 0x10af: 0x1ff0, + 0x10b0: 0x2031, 0x10b1: 0x203b, 0x10b2: 0x4504, 0x10b3: 0x450c, 0x10b4: 0x4514, 0x10b5: 0x1ef1, + 0x10b6: 0x1ef6, 0x10b7: 0x1f0a, 0x10b8: 0x1f0f, 0x10b9: 0x1f1e, 0x10ba: 0x1f23, 0x10bb: 0x1e74, + 0x10bc: 0x1e79, 0x10bd: 0x1e9c, 0x10be: 0x1ea1, 0x10bf: 0x1e33, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x1e38, 0x10c1: 0x1e1f, 0x10c2: 0x1e24, 0x10c3: 0x1e4c, 0x10c4: 0x1e51, 0x10c5: 0x1eba, + 0x10c6: 0x1ebf, 0x10c7: 0x1edd, 0x10c8: 0x1ee2, 0x10c9: 0x1e7e, 0x10ca: 0x1e83, 0x10cb: 0x1e88, + 0x10cc: 0x1e92, 0x10cd: 0x1e8d, 0x10ce: 0x1e65, 0x10cf: 0x1eb0, 0x10d0: 0x1ed3, 0x10d1: 0x1ef1, + 0x10d2: 0x1ef6, 0x10d3: 0x1f0a, 0x10d4: 0x1f0f, 0x10d5: 0x1f1e, 0x10d6: 0x1f23, 0x10d7: 0x1e74, + 0x10d8: 0x1e79, 0x10d9: 0x1e9c, 0x10da: 0x1ea1, 0x10db: 0x1e33, 0x10dc: 0x1e38, 0x10dd: 0x1e1f, + 0x10de: 0x1e24, 0x10df: 0x1e4c, 0x10e0: 0x1e51, 0x10e1: 0x1eba, 0x10e2: 0x1ebf, 0x10e3: 0x1edd, + 0x10e4: 0x1ee2, 0x10e5: 0x1e7e, 0x10e6: 0x1e83, 0x10e7: 0x1e88, 0x10e8: 0x1e92, 0x10e9: 0x1e8d, + 0x10ea: 0x1e65, 0x10eb: 0x1eb0, 0x10ec: 0x1ed3, 0x10ed: 0x1e7e, 0x10ee: 0x1e83, 0x10ef: 0x1e88, + 0x10f0: 0x1e92, 0x10f1: 0x1e6f, 0x10f2: 0x1e97, 0x10f3: 0x1eec, 0x10f4: 0x1e56, 0x10f5: 0x1e5b, + 0x10f6: 0x1e60, 0x10f7: 0x1e7e, 0x10f8: 0x1e83, 0x10f9: 0x1e88, 0x10fa: 0x1eec, 0x10fb: 0x1efb, + 0x10fc: 0x4408, 0x10fd: 0x4408, + // Block 0x44, offset 0x1100 + 0x1110: 0x2311, 0x1111: 0x2326, + 0x1112: 0x2326, 0x1113: 0x232d, 0x1114: 0x2334, 0x1115: 0x2349, 0x1116: 0x2350, 0x1117: 0x2357, + 0x1118: 0x237a, 0x1119: 0x237a, 0x111a: 0x239d, 0x111b: 0x2396, 0x111c: 0x23b2, 0x111d: 0x23a4, + 0x111e: 0x23ab, 0x111f: 0x23ce, 0x1120: 0x23ce, 0x1121: 0x23c7, 0x1122: 0x23d5, 0x1123: 0x23d5, + 0x1124: 0x23ff, 0x1125: 0x23ff, 0x1126: 0x241b, 0x1127: 0x23e3, 0x1128: 0x23e3, 0x1129: 0x23dc, + 0x112a: 0x23f1, 0x112b: 0x23f1, 0x112c: 0x23f8, 0x112d: 0x23f8, 0x112e: 0x2422, 0x112f: 0x2430, + 0x1130: 0x2430, 0x1131: 0x2437, 0x1132: 0x2437, 0x1133: 0x243e, 0x1134: 0x2445, 0x1135: 0x244c, + 0x1136: 0x2453, 0x1137: 0x2453, 0x1138: 0x245a, 0x1139: 0x2468, 0x113a: 0x2476, 0x113b: 0x246f, + 0x113c: 0x247d, 0x113d: 0x247d, 0x113e: 0x2492, 0x113f: 0x2499, + // Block 0x45, offset 0x1140 + 0x1140: 0x24ca, 0x1141: 0x24d8, 0x1142: 0x24d1, 0x1143: 0x24b5, 0x1144: 0x24b5, 0x1145: 0x24df, + 0x1146: 0x24df, 0x1147: 0x24e6, 0x1148: 0x24e6, 0x1149: 0x2510, 0x114a: 0x2517, 0x114b: 0x251e, + 0x114c: 0x24f4, 0x114d: 0x2502, 0x114e: 0x2525, 0x114f: 0x252c, + 0x1152: 0x24fb, 0x1153: 0x2580, 0x1154: 0x2587, 0x1155: 0x255d, 0x1156: 0x2564, 0x1157: 0x2548, + 0x1158: 0x2548, 0x1159: 0x254f, 0x115a: 0x2579, 0x115b: 0x2572, 0x115c: 0x259c, 0x115d: 0x259c, + 0x115e: 0x230a, 0x115f: 0x231f, 0x1160: 0x2318, 0x1161: 0x2342, 0x1162: 0x233b, 0x1163: 0x2365, + 0x1164: 0x235e, 0x1165: 0x2388, 0x1166: 0x236c, 0x1167: 0x2381, 0x1168: 0x23b9, 0x1169: 0x2406, + 0x116a: 0x23ea, 0x116b: 0x2429, 0x116c: 0x24c3, 0x116d: 0x24ed, 0x116e: 0x2595, 0x116f: 0x258e, + 0x1170: 0x25a3, 0x1171: 0x253a, 0x1172: 0x24a0, 0x1173: 0x256b, 0x1174: 0x2492, 0x1175: 0x24ca, + 0x1176: 0x2461, 0x1177: 0x24ae, 0x1178: 0x2541, 0x1179: 0x2533, 0x117a: 0x24bc, 0x117b: 0x24a7, + 0x117c: 0x24bc, 0x117d: 0x2541, 0x117e: 0x2373, 0x117f: 0x238f, + // Block 0x46, offset 0x1180 + 0x1180: 0x2509, 0x1181: 0x2484, 0x1182: 0x2303, 0x1183: 0x24a7, 0x1184: 0x244c, 0x1185: 0x241b, + 0x1186: 0x23c0, 0x1187: 0x2556, + 0x11b0: 0x2414, 0x11b1: 0x248b, 0x11b2: 0x27bf, 0x11b3: 0x27b6, 0x11b4: 0x27ec, 0x11b5: 0x27da, + 0x11b6: 0x27c8, 0x11b7: 0x27e3, 0x11b8: 0x27f5, 0x11b9: 0x240d, 0x11ba: 0x2c7c, 0x11bb: 0x2afc, + 0x11bc: 0x27d1, + // Block 0x47, offset 0x11c0 + 0x11d0: 0x0019, 0x11d1: 0x0483, + 0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf, + 0x11d8: 0x04c3, 0x11d9: 0x1b5c, + 0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132, + 0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d, + 0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132, + 0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, + 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab, + 0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b, + // Block 0x48, offset 0x1200 + 0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7, + 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4269, 0x120a: 0x4269, 0x120b: 0x4269, + 0x120c: 0x4269, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483, + 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, + 0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7, + 0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, + 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, + 0x122a: 0x000b, 0x122b: 0x0041, + 0x1230: 0x42aa, 0x1231: 0x442c, 0x1232: 0x42af, 0x1234: 0x42b4, + 0x1236: 0x42b9, 0x1237: 0x4432, 0x1238: 0x42be, 0x1239: 0x4438, 0x123a: 0x42c3, 0x123b: 0x443e, + 0x123c: 0x42c8, 0x123d: 0x4444, 0x123e: 0x42cd, 0x123f: 0x444a, + // Block 0x49, offset 0x1240 + 0x1240: 0x0236, 0x1241: 0x440e, 0x1242: 0x440e, 0x1243: 0x4414, 0x1244: 0x4414, 0x1245: 0x4456, + 0x1246: 0x4456, 0x1247: 0x441a, 0x1248: 0x441a, 0x1249: 0x4462, 0x124a: 0x4462, 0x124b: 0x4462, + 0x124c: 0x4462, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c, + 0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242, + 0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248, + 0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b, + 0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251, + 0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a, + 0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260, + 0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263, + 0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c, + 0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f, + 0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275, + 0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278, + 0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e, + 0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281, + 0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287, + 0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d, + 0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e00, + 0x12b6: 0x2e00, 0x12b7: 0x2e08, 0x12b8: 0x2e08, 0x12b9: 0x2e10, 0x12ba: 0x2e10, 0x12bb: 0x1f82, + 0x12bc: 0x1f82, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, + 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, + 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, + 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, + 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, + 0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f, + 0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7, + 0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f, + 0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb, + 0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503, + 0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513, + // Block 0x4c, offset 0x1300 + 0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f, + 0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547, + 0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f, + 0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583, + 0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7, + 0x131e: 0x4a78, 0x131f: 0x4a7e, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3b, + 0x1324: 0x031b, 0x1325: 0x4a41, 0x1326: 0x4a47, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327, + 0x132a: 0x4a4d, 0x132b: 0x4a53, 0x132c: 0x4a59, 0x132d: 0x4a5f, 0x132e: 0x4a65, 0x132f: 0x4a6b, + 0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337, + 0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f, + 0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b, + // Block 0x4d, offset 0x1340 + 0x1342: 0x49bd, 0x1343: 0x49c3, 0x1344: 0x49c9, 0x1345: 0x49cf, + 0x1346: 0x49d5, 0x1347: 0x49db, 0x134a: 0x49e1, 0x134b: 0x49e7, + 0x134c: 0x49ed, 0x134d: 0x49f3, 0x134e: 0x49f9, 0x134f: 0x49ff, + 0x1352: 0x4a05, 0x1353: 0x4a0b, 0x1354: 0x4a11, 0x1355: 0x4a17, 0x1356: 0x4a1d, 0x1357: 0x4a23, + 0x135a: 0x4a29, 0x135b: 0x4a2f, 0x135c: 0x4a35, + 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4264, + 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b, + 0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d, + 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085, + 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091, + 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d, + 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9, + 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5, + 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176, + 0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188, + 0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a, + 0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9, + 0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0, + 0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209, + 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027, + 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033, + 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b, + 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023, + 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f, + 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027, + 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033, + 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b, + 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033, + // Block 0x50, offset 0x1400 + 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a, + 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e, + 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, + 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, + 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4, + 0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, + 0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290, + 0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, + 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, + 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272, + // Block 0x51, offset 0x1440 + 0x1442: 0x0248, + 0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e, + 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263, + 0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e, + 0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4, + 0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248, + 0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, + 0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, + 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242, + 0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, + 0x147c: 0x0293, 0x147e: 0x02cc, + // Block 0x52, offset 0x1480 + 0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a, + 0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e, + 0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263, + 0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e, + 0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272, + 0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251, + 0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290, + 0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f, + 0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242, + 0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8, + 0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927, + 0x14d0: 0x1a8c, 0x14d1: 0x1a90, + 0x14d2: 0x1a94, 0x14d3: 0x1a98, 0x14d4: 0x1a9c, 0x14d5: 0x1aa0, 0x14d6: 0x1aa4, 0x14d7: 0x1aa8, + 0x14d8: 0x1aac, 0x14d9: 0x1ab0, 0x14da: 0x1ab4, 0x14db: 0x1ab8, 0x14dc: 0x1abc, 0x14dd: 0x1ac0, + 0x14de: 0x1ac4, 0x14df: 0x1ac8, 0x14e0: 0x1acc, 0x14e1: 0x1ad0, 0x14e2: 0x1ad4, 0x14e3: 0x1ad8, + 0x14e4: 0x1adc, 0x14e5: 0x1ae0, 0x14e6: 0x1ae4, 0x14e7: 0x1ae8, 0x14e8: 0x1aec, 0x14e9: 0x1af0, + 0x14ea: 0x271e, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b1, + 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d, + 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059, + 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061, + // Block 0x54, offset 0x1500 + 0x1500: 0x26ad, 0x1501: 0x26c2, 0x1502: 0x0503, + 0x1510: 0x0c0f, 0x1511: 0x0a47, + 0x1512: 0x08d3, 0x1513: 0x45c4, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff, + 0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b, + 0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b, + 0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf, + 0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b, + 0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43, + 0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443, + // Block 0x55, offset 0x1540 + 0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757, + 0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773, + 0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3, + 0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf, + 0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff, + 0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f, + 0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867, + 0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af, + 0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93, + 0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3, + 0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917, + // Block 0x56, offset 0x1580 + 0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f, + 0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983, + 0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf, + 0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3, + 0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef, + 0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23, + 0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37, + 0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63, + 0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f, + 0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692, + 0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb, + 0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f, + 0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6, + 0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9, + 0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83, + 0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3, + 0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf, + 0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7, + 0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f, + 0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b, + 0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f, + // Block 0x58, offset 0x1600 + 0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87, + 0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb, + 0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7, + 0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663, + 0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd, + 0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7, + 0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b, + 0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f, + 0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7, + 0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700, + 0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb, + // Block 0x59, offset 0x1640 + 0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23, + 0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53, + 0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714, + 0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b, + 0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719, + 0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728, + 0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37, + 0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57, + 0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737, + 0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741, + 0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b, + // Block 0x5a, offset 0x1680 + 0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff, + 0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637, + 0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f, + 0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093, + 0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782, + 0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3, + 0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7, + 0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133, + 0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa, + 0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4, + 0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7, + 0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7, + 0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b, + 0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd, + 0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f, + 0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f, + 0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273, + 0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677, + 0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7, + 0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb, + 0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f, + // Block 0x5c, offset 0x1700 + 0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5, + 0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa, + 0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b, + 0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7, + 0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665, + 0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f, + 0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477, + 0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693, + 0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb, + 0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b, + 0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b, + // Block 0x5d, offset 0x1740 + 0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567, + 0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7, + 0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7, + 0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef, + 0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868, +} + +// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62, + 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, + 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, + 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, + 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, + // Block 0x5, offset 0x140 + 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, + 0x14d: 0x8a, + 0x15c: 0x8b, 0x15f: 0x8c, + 0x162: 0x8d, 0x164: 0x8e, + 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, + 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, + 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, + // Block 0x6, offset 0x180 + 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d, + 0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0, + 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1, + 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, + 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, + 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28, + 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, + // Block 0x8, offset 0x200 + 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, + 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, + 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, + 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, + 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, + // Block 0x9, offset 0x240 + 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, + 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, + 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, + 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, + 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, + 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, + 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, + 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, + // Block 0xa, offset 0x280 + 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, + 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, + 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, + 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, + 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, + 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, + 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, + 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, + 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, + 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, + 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, + // Block 0xc, offset 0x300 + 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, + 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, + 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, + 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, + // Block 0xd, offset 0x340 + 0x347: 0xc6, + 0x34b: 0xc7, 0x34d: 0xc8, + 0x368: 0xc9, 0x36b: 0xca, + 0x374: 0xcb, + 0x37d: 0xcc, + // Block 0xe, offset 0x380 + 0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0, + 0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4, + 0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9, + 0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc, + 0x3a0: 0xdd, + 0x3a8: 0xde, 0x3a9: 0xdf, 0x3aa: 0xe0, + 0x3b0: 0xda, 0x3b5: 0xe1, 0x3b6: 0xe2, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xe3, 0x3ec: 0xe4, + // Block 0x10, offset 0x400 + 0x432: 0xe5, + // Block 0x11, offset 0x440 + 0x445: 0xe6, 0x446: 0xe7, 0x447: 0xe8, + 0x449: 0xe9, + 0x450: 0xea, 0x451: 0xeb, 0x452: 0xec, 0x453: 0xed, 0x454: 0xee, 0x455: 0xef, 0x456: 0xf0, 0x457: 0xf1, + 0x458: 0xf2, 0x459: 0xf3, 0x45a: 0x4c, 0x45b: 0xf4, 0x45c: 0xf5, 0x45d: 0xf6, 0x45e: 0xf7, 0x45f: 0x4d, + // Block 0x12, offset 0x480 + 0x480: 0xf8, + 0x4a3: 0xf9, 0x4a5: 0xfa, + 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x51, 0x4c5: 0xfb, 0x4c6: 0xfc, + 0x4c8: 0x52, 0x4c9: 0xfd, + // Block 0x14, offset 0x500 + 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a, + 0x528: 0x5b, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 162 entries, 324 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xde, 0xe2, 0xe8, 0xf9, 0x105, 0x107, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11e, 0x121, 0x123, 0x126, 0x129, 0x12d, 0x132, 0x13b, 0x13d, 0x140, 0x142, 0x14d, 0x158, 0x166, 0x174, 0x184, 0x192, 0x199, 0x19f, 0x1ae, 0x1b2, 0x1b4, 0x1b8, 0x1ba, 0x1bd, 0x1bf, 0x1c2, 0x1c4, 0x1c7, 0x1c9, 0x1cb, 0x1cd, 0x1d9, 0x1e3, 0x1ed, 0x1f0, 0x1f4, 0x1f6, 0x1f8, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x203, 0x205, 0x207, 0x20d, 0x210, 0x214, 0x216, 0x21d, 0x223, 0x229, 0x231, 0x237, 0x23d, 0x243, 0x247, 0x249, 0x24b, 0x24d, 0x24f, 0x255, 0x258, 0x25a, 0x260, 0x263, 0x26b, 0x272, 0x275, 0x278, 0x27a, 0x27d, 0x285, 0x289, 0x290, 0x293, 0x299, 0x29b, 0x29d, 0x2a0, 0x2a2, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2b6, 0x2c3, 0x2cd, 0x2cf, 0x2d1, 0x2d5, 0x2da, 0x2e6, 0x2eb, 0x2f4, 0x2fa, 0x2ff, 0x303, 0x308, 0x30c, 0x31c, 0x32a, 0x338, 0x346, 0x34c, 0x34e, 0x351, 0x35b, 0x35d} + +// nfkcSparseValues: 871 entries, 3484 bytes +var nfkcSparseValues = [871]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x4278, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x4264, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x425a, lo: 0xb4, hi: 0xb4}, + {value: 0x01dc, lo: 0xb5, hi: 0xb5}, + {value: 0x4291, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x221c, lo: 0xbc, hi: 0xbc}, + {value: 0x2210, lo: 0xbd, hi: 0xbd}, + {value: 0x22b2, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x426e, lo: 0x98, hi: 0x98}, + {value: 0x4273, lo: 0x99, hi: 0x9a}, + {value: 0x4296, lo: 0x9b, hi: 0x9b}, + {value: 0x425f, lo: 0x9c, hi: 0x9c}, + {value: 0x4282, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x0167, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xc, offset 0x70 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x75 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x77 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0xf, offset 0x7f + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x10, offset 0x86 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x11, offset 0x89 + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x91 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x13, offset 0x95 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x14, offset 0x99 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x16, offset 0x9d + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x17, offset 0xa6 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x18, offset 0xaa + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x19, offset 0xb1 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1a, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0xb9 + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xc3 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1d, offset 0xc6 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1e, offset 0xcd + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x1f, offset 0xd5 + {value: 0x0000, lo: 0x03}, + {value: 0x2621, lo: 0xb3, hi: 0xb3}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x20, offset 0xd9 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x21, offset 0xdb + {value: 0x0000, lo: 0x02}, + {value: 0x2636, lo: 0xb3, hi: 0xb3}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x22, offset 0xde + {value: 0x0000, lo: 0x03}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + {value: 0x2628, lo: 0x9c, hi: 0x9c}, + {value: 0x262f, lo: 0x9d, hi: 0x9d}, + // Block 0x23, offset 0xe2 + {value: 0x0000, lo: 0x05}, + {value: 0x030b, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x24, offset 0xe8 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x45f4, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x45ff, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x25, offset 0xf9 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0x105 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x27, offset 0x107 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x28, offset 0x10d + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x29, offset 0x10f + {value: 0x0000, lo: 0x01}, + {value: 0x030f, lo: 0xbc, hi: 0xbc}, + // Block 0x2a, offset 0x111 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0x113 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x115 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x117 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x119 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x11b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x11e + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x121 + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x123 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x126 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x129 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x12d + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x132 + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x13b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x13d + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x140 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x142 + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x14d + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x158 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043b, lo: 0x91, hi: 0x91}, + {value: 0x429b, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1873, lo: 0xa5, hi: 0xa5}, + {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2691, lo: 0xb3, hi: 0xb3}, + {value: 0x27fe, lo: 0xb4, hi: 0xb4}, + {value: 0x2698, lo: 0xb6, hi: 0xb6}, + {value: 0x2808, lo: 0xb7, hi: 0xb7}, + {value: 0x186d, lo: 0xbc, hi: 0xbc}, + {value: 0x4269, lo: 0xbe, hi: 0xbe}, + // Block 0x3d, offset 0x166 + {value: 0x0002, lo: 0x0d}, + {value: 0x1933, lo: 0x87, hi: 0x87}, + {value: 0x1930, lo: 0x88, hi: 0x88}, + {value: 0x1870, lo: 0x89, hi: 0x89}, + {value: 0x298e, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x0467, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x3e, offset 0x174 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x0467, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x1999, lo: 0xa8, hi: 0xa8}, + // Block 0x3f, offset 0x184 + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x40, offset 0x192 + {value: 0x0007, lo: 0x06}, + {value: 0x2180, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x41, offset 0x199 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x42, offset 0x19f + {value: 0x0173, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0x269f, lo: 0xac, hi: 0xad}, + {value: 0x26a6, lo: 0xaf, hi: 0xaf}, + {value: 0x281c, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x43, offset 0x1ae + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x44, offset 0x1b2 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x45, offset 0x1b4 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x46, offset 0x1b8 + {value: 0x0000, lo: 0x01}, + {value: 0x299b, lo: 0x8c, hi: 0x8c}, + // Block 0x47, offset 0x1ba + {value: 0x0263, lo: 0x02}, + {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, + {value: 0x192d, lo: 0xb5, hi: 0xb6}, + // Block 0x48, offset 0x1bd + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x49, offset 0x1bf + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4a, offset 0x1c2 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x4b, offset 0x1c4 + {value: 0x0000, lo: 0x02}, + {value: 0x047f, lo: 0xaf, hi: 0xaf}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x4c, offset 0x1c7 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x4d, offset 0x1c9 + {value: 0x0000, lo: 0x01}, + {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, + // Block 0x4e, offset 0x1cb + {value: 0x0000, lo: 0x01}, + {value: 0x162f, lo: 0xb3, hi: 0xb3}, + // Block 0x4f, offset 0x1cd + {value: 0x0004, lo: 0x0b}, + {value: 0x1597, lo: 0x80, hi: 0x82}, + {value: 0x15af, lo: 0x83, hi: 0x83}, + {value: 0x15c7, lo: 0x84, hi: 0x85}, + {value: 0x15d7, lo: 0x86, hi: 0x89}, + {value: 0x15eb, lo: 0x8a, hi: 0x8c}, + {value: 0x15ff, lo: 0x8d, hi: 0x8d}, + {value: 0x1607, lo: 0x8e, hi: 0x8e}, + {value: 0x160f, lo: 0x8f, hi: 0x90}, + {value: 0x161b, lo: 0x91, hi: 0x93}, + {value: 0x162b, lo: 0x94, hi: 0x94}, + {value: 0x1633, lo: 0x95, hi: 0x95}, + // Block 0x50, offset 0x1d9 + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xae}, + {value: 0x812f, lo: 0xaf, hi: 0xaf}, + {value: 0x04b3, lo: 0xb6, hi: 0xb6}, + {value: 0x0887, lo: 0xb8, hi: 0xba}, + // Block 0x51, offset 0x1e3 + {value: 0x0006, lo: 0x09}, + {value: 0x0313, lo: 0xb1, hi: 0xb1}, + {value: 0x0317, lo: 0xb2, hi: 0xb2}, + {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, + {value: 0x031b, lo: 0xb4, hi: 0xb4}, + {value: 0x4a41, lo: 0xb5, hi: 0xb6}, + {value: 0x031f, lo: 0xb7, hi: 0xb7}, + {value: 0x0323, lo: 0xb8, hi: 0xb8}, + {value: 0x0327, lo: 0xb9, hi: 0xb9}, + {value: 0x4a4d, lo: 0xba, hi: 0xbf}, + // Block 0x52, offset 0x1ed + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x53, offset 0x1f0 + {value: 0x0000, lo: 0x03}, + {value: 0x020f, lo: 0x9c, hi: 0x9c}, + {value: 0x0212, lo: 0x9d, hi: 0x9d}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x54, offset 0x1f4 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x55, offset 0x1f6 + {value: 0x0000, lo: 0x01}, + {value: 0x163b, lo: 0xb0, hi: 0xb0}, + // Block 0x56, offset 0x1f8 + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x57, offset 0x1fa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x58, offset 0x1fc + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x59, offset 0x1ff + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x5a, offset 0x201 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x5b, offset 0x203 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x5c, offset 0x205 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x5d, offset 0x207 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x5e, offset 0x20d + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x5f, offset 0x210 + {value: 0x0008, lo: 0x03}, + {value: 0x1637, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1643, lo: 0x9f, hi: 0x9f}, + // Block 0x60, offset 0x214 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x61, offset 0x216 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x62, offset 0x21d + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x63, offset 0x223 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x64, offset 0x229 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x65, offset 0x231 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x66, offset 0x237 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x67, offset 0x23d + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x68, offset 0x243 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x69, offset 0x247 + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6a, offset 0x249 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6b, offset 0x24b + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x6c, offset 0x24d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x6d, offset 0x24f + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x6e, offset 0x255 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x6f, offset 0x258 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x70, offset 0x25a + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x71, offset 0x260 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x263 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x73, offset 0x26b + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x74, offset 0x272 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x75, offset 0x275 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x76, offset 0x278 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x77, offset 0x27a + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x78, offset 0x27d + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x79, offset 0x285 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7a, offset 0x289 + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7b, offset 0x290 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7c, offset 0x293 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7d, offset 0x299 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x7e, offset 0x29b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7f, offset 0x29d + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x80, offset 0x2a0 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x81, offset 0x2a2 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x82, offset 0x2a5 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x83, offset 0x2a7 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x84, offset 0x2a9 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x85, offset 0x2ab + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x86, offset 0x2ae + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x87, offset 0x2b0 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x88, offset 0x2b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x89, offset 0x2b4 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8a, offset 0x2b6 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8b, offset 0x2c3 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x8c, offset 0x2cd + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x8d, offset 0x2cf + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8e, offset 0x2d1 + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x8f, offset 0x2d5 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x90, offset 0x2da + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x91, offset 0x2e6 + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x92, offset 0x2eb + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x93, offset 0x2f4 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x94, offset 0x2fa + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x95, offset 0x2ff + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x96, offset 0x303 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x97, offset 0x308 + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x98, offset 0x30c + {value: 0x0003, lo: 0x0f}, + {value: 0x01b8, lo: 0x80, hi: 0x80}, + {value: 0x045f, lo: 0x81, hi: 0x81}, + {value: 0x01bb, lo: 0x82, hi: 0x9a}, + {value: 0x045b, lo: 0x9b, hi: 0x9b}, + {value: 0x01c7, lo: 0x9c, hi: 0x9c}, + {value: 0x01d0, lo: 0x9d, hi: 0x9d}, + {value: 0x01d6, lo: 0x9e, hi: 0x9e}, + {value: 0x01fa, lo: 0x9f, hi: 0x9f}, + {value: 0x01eb, lo: 0xa0, hi: 0xa0}, + {value: 0x01e8, lo: 0xa1, hi: 0xa1}, + {value: 0x0173, lo: 0xa2, hi: 0xb2}, + {value: 0x0188, lo: 0xb3, hi: 0xb3}, + {value: 0x01a6, lo: 0xb4, hi: 0xba}, + {value: 0x045f, lo: 0xbb, hi: 0xbb}, + {value: 0x01bb, lo: 0xbc, hi: 0xbf}, + // Block 0x99, offset 0x31c + {value: 0x0003, lo: 0x0d}, + {value: 0x01c7, lo: 0x80, hi: 0x94}, + {value: 0x045b, lo: 0x95, hi: 0x95}, + {value: 0x01c7, lo: 0x96, hi: 0x96}, + {value: 0x01d0, lo: 0x97, hi: 0x97}, + {value: 0x01d6, lo: 0x98, hi: 0x98}, + {value: 0x01fa, lo: 0x99, hi: 0x99}, + {value: 0x01eb, lo: 0x9a, hi: 0x9a}, + {value: 0x01e8, lo: 0x9b, hi: 0x9b}, + {value: 0x0173, lo: 0x9c, hi: 0xac}, + {value: 0x0188, lo: 0xad, hi: 0xad}, + {value: 0x01a6, lo: 0xae, hi: 0xb4}, + {value: 0x045f, lo: 0xb5, hi: 0xb5}, + {value: 0x01bb, lo: 0xb6, hi: 0xbf}, + // Block 0x9a, offset 0x32a + {value: 0x0003, lo: 0x0d}, + {value: 0x01d9, lo: 0x80, hi: 0x8e}, + {value: 0x045b, lo: 0x8f, hi: 0x8f}, + {value: 0x01c7, lo: 0x90, hi: 0x90}, + {value: 0x01d0, lo: 0x91, hi: 0x91}, + {value: 0x01d6, lo: 0x92, hi: 0x92}, + {value: 0x01fa, lo: 0x93, hi: 0x93}, + {value: 0x01eb, lo: 0x94, hi: 0x94}, + {value: 0x01e8, lo: 0x95, hi: 0x95}, + {value: 0x0173, lo: 0x96, hi: 0xa6}, + {value: 0x0188, lo: 0xa7, hi: 0xa7}, + {value: 0x01a6, lo: 0xa8, hi: 0xae}, + {value: 0x045f, lo: 0xaf, hi: 0xaf}, + {value: 0x01bb, lo: 0xb0, hi: 0xbf}, + // Block 0x9b, offset 0x338 + {value: 0x0003, lo: 0x0d}, + {value: 0x01eb, lo: 0x80, hi: 0x88}, + {value: 0x045b, lo: 0x89, hi: 0x89}, + {value: 0x01c7, lo: 0x8a, hi: 0x8a}, + {value: 0x01d0, lo: 0x8b, hi: 0x8b}, + {value: 0x01d6, lo: 0x8c, hi: 0x8c}, + {value: 0x01fa, lo: 0x8d, hi: 0x8d}, + {value: 0x01eb, lo: 0x8e, hi: 0x8e}, + {value: 0x01e8, lo: 0x8f, hi: 0x8f}, + {value: 0x0173, lo: 0x90, hi: 0xa0}, + {value: 0x0188, lo: 0xa1, hi: 0xa1}, + {value: 0x01a6, lo: 0xa2, hi: 0xa8}, + {value: 0x045f, lo: 0xa9, hi: 0xa9}, + {value: 0x01bb, lo: 0xaa, hi: 0xbf}, + // Block 0x9c, offset 0x346 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x9d, offset 0x34c + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x9e, offset 0x34e + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x9f, offset 0x351 + {value: 0x0002, lo: 0x09}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1951, lo: 0x8a, hi: 0x8a}, + {value: 0x1981, lo: 0x8b, hi: 0x8b}, + {value: 0x199c, lo: 0x8c, hi: 0x8c}, + {value: 0x19a2, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, + {value: 0x19ae, lo: 0x8f, hi: 0x8f}, + {value: 0x197b, lo: 0xaa, hi: 0xaa}, + {value: 0x197e, lo: 0xab, hi: 0xab}, + // Block 0xa0, offset 0x35b + {value: 0x0000, lo: 0x01}, + {value: 0x193f, lo: 0x90, hi: 0x90}, + // Block 0xa1, offset 0x35d + {value: 0x0028, lo: 0x09}, + {value: 0x2862, lo: 0x80, hi: 0x80}, + {value: 0x2826, lo: 0x81, hi: 0x81}, + {value: 0x2830, lo: 0x82, hi: 0x82}, + {value: 0x2844, lo: 0x83, hi: 0x84}, + {value: 0x284e, lo: 0x85, hi: 0x86}, + {value: 0x283a, lo: 0x87, hi: 0x87}, + {value: 0x2858, lo: 0x88, hi: 0x88}, + {value: 0x0b6f, lo: 0x90, hi: 0x90}, + {value: 0x08e7, lo: 0x91, hi: 0x91}, +} + +// recompMap: 7520 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 53KB (54514 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go new file mode 100644 index 0000000..11b2733 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go @@ -0,0 +1,7711 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.14 && !go1.16 +// +build go1.14,!go1.16 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "12.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [55]uint8{ + 0, 1, 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, + 84, 91, 103, 107, 118, 122, 129, 130, + 132, 202, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x186D + firstCCC = 0x2CA1 + endMulti = 0x2F63 + firstLeadingCCC = 0x49B1 + firstCCCZeroExcept = 0x4A7B + firstStarterWithNLead = 0x4AA2 + lastDecomp = 0x4AA4 + maxDecomp = 0x8000 +) + +// decomps: 19108 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, + 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, + 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, + 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, + 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, + 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, + 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, + 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, + 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, + 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, + 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, + 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, + 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, + 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, + 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, + 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, + 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, + 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, + // Bytes 200 - 23f + 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, + 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, + 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, + 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, + 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, + 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, + 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, + 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, + 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, + 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, + 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, + 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, + 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, + 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, + 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, + 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, + 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, + 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, + 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, + 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, + 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, + 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, + 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, + 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, + 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, + 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, + 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, + 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, + 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, + // Bytes 300 - 33f + 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, + 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, + 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, + 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, + 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, + 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, + 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, + 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, + // Bytes 340 - 37f + 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, + 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, + 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, + 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, + 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, + 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, + 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, + 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, + // Bytes 380 - 3bf + 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, + 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, + 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, + 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, + 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, + 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, + 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, + 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, + // Bytes 3c0 - 3ff + 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, + 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, + 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, + 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, + 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, + 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, + 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, + 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, + // Bytes 400 - 43f + 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, + 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, + 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, + 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, + 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, + 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, + 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, + 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, + // Bytes 440 - 47f + 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, + 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, + 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, + 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, + 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, + 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, + 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, + 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, + // Bytes 480 - 4bf + 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, + 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, + 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, + 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, + 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, + 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, + 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, + 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, + // Bytes 4c0 - 4ff + 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, + 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, + 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, + 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, + 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, + 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, + 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, + 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, + // Bytes 500 - 53f + 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, + 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, + 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, + 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, + 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, + 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, + 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, + 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, + // Bytes 540 - 57f + 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, + 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, + 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, + 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, + 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, + 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, + 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, + 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, + // Bytes 580 - 5bf + 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, + 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, + 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, + 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, + 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, + 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, + 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, + 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, + // Bytes 5c0 - 5ff + 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, + 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, + 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, + 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, + 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, + 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, + 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, + 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, + // Bytes 600 - 63f + 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, + 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, + 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, + 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, + 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, + 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, + 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, + 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, + // Bytes 640 - 67f + 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, + 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, + 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, + 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, + 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, + 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, + 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, + 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, + // Bytes 680 - 6bf + 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, + 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, + 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, + 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, + 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, + 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, + 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, + 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, + // Bytes 6c0 - 6ff + 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, + 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, + 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, + 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, + 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, + 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, + 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, + 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, + // Bytes 700 - 73f + 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, + 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, + 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, + 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, + 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, + 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, + 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, + 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, + // Bytes 740 - 77f + 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, + 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, + 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, + 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, + 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, + 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, + 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, + 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, + // Bytes 780 - 7bf + 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, + 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, + 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, + 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, + 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, + 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, + 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, + 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, + // Bytes 7c0 - 7ff + 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, + 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, + 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, + 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, + 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, + 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, + 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, + 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, + // Bytes 800 - 83f + 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, + 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, + 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, + 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, + 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, + 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, + 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, + 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, + // Bytes 840 - 87f + 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, + 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, + 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, + 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, + 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, + 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, + 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, + 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, + // Bytes 880 - 8bf + 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, + 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, + 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, + 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, + 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, + 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, + 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, + 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, + // Bytes 8c0 - 8ff + 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, + 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, + 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, + 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, + 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, + 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, + 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, + 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, + // Bytes 900 - 93f + 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, + 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, + 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, + 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, + 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, + 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, + 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, + 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, + // Bytes 940 - 97f + 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, + 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, + 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, + 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, + 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, + 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, + 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, + 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, + // Bytes 980 - 9bf + 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, + 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, + 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, + 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, + 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, + 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, + 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, + 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, + // Bytes 9c0 - 9ff + 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, + 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, + 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, + 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, + 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, + 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, + 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, + 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, + // Bytes a00 - a3f + 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, + 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, + 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, + 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, + 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, + 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, + 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, + 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, + // Bytes a40 - a7f + 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, + 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, + 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, + 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, + 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, + 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, + 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, + 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, + // Bytes a80 - abf + 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, + 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, + 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, + 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, + 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, + 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, + 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, + 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, + // Bytes ac0 - aff + 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, + 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, + 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, + 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, + 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, + 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, + 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, + 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, + // Bytes b00 - b3f + 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, + 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, + 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, + 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, + 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, + 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, + 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, + 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, + // Bytes b40 - b7f + 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, + 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, + 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, + 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, + 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, + 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, + 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, + 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, + // Bytes b80 - bbf + 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, + 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, + 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, + 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, + 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, + 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, + 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, + 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, + // Bytes bc0 - bff + 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, + 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, + 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, + 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, + 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, + 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, + 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, + 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, + // Bytes c00 - c3f + 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, + 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, + 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, + 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, + 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, + 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, + 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, + 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, + // Bytes c40 - c7f + 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, + 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, + 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, + 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, + 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, + 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, + 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, + 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, + // Bytes c80 - cbf + 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, + 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, + 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, + 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, + 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, + 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, + 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, + 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, + // Bytes cc0 - cff + 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, + 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, + 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, + 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, + 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, + 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, + 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, + 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, + // Bytes d00 - d3f + 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, + 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, + 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, + 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, + 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, + 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, + 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, + 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, + // Bytes d40 - d7f + 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, + 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, + 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, + 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, + 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, + 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, + 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, + 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, + // Bytes d80 - dbf + 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, + 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, + 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, + 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, + 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, + 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, + 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, + 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, + // Bytes dc0 - dff + 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, + 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, + 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, + 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, + 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, + 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, + 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, + 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, + // Bytes e00 - e3f + 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, + 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, + 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, + 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, + 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, + 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, + 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, + 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, + // Bytes e40 - e7f + 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, + 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, + 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, + 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, + 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, + 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, + 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, + 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, + // Bytes e80 - ebf + 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, + 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, + 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, + 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, + 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, + 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, + 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, + 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, + // Bytes ec0 - eff + 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, + 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, + 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, + 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, + 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, + 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, + 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, + 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, + // Bytes f00 - f3f + 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, + 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, + 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, + 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, + 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, + 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, + 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, + 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, + // Bytes f40 - f7f + 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, + 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, + 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, + 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, + 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, + 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, + 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, + 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, + // Bytes f80 - fbf + 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, + 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, + 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, + 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, + 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, + 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, + 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, + 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, + // Bytes fc0 - fff + 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, + 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, + 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, + 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, + 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, + 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, + 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, + 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, + // Bytes 1000 - 103f + 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, + 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, + 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, + 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, + 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, + 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, + 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, + 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, + // Bytes 1040 - 107f + 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, + 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, + 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, + 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, + 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, + 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, + 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, + 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, + // Bytes 1080 - 10bf + 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, + 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, + 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, + 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, + 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, + 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, + 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, + 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, + // Bytes 10c0 - 10ff + 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, + 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, + 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, + 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, + 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, + 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, + 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, + 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, + // Bytes 1100 - 113f + 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, + 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, + 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, + 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, + 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, + 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, + 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, + 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, + // Bytes 1140 - 117f + 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, + 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, + 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, + 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, + 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, + 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, + 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, + 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, + // Bytes 1180 - 11bf + 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, + 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, + 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, + 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, + 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, + 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, + 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, + 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, + // Bytes 11c0 - 11ff + 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, + 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, + 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, + 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, + 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, + 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, + 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, + 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, + // Bytes 1200 - 123f + 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, + 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, + 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, + 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, + 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, + 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, + 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, + 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, + // Bytes 1240 - 127f + 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, + 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, + 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, + 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, + 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, + 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, + 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, + 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, + // Bytes 1280 - 12bf + 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, + 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, + 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, + 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, + 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, + 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, + 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, + 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, + // Bytes 12c0 - 12ff + 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, + 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, + 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, + 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, + 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, + 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, + 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, + 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, + // Bytes 1300 - 133f + 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, + 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, + 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, + 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, + 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, + 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, + 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, + 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, + // Bytes 1340 - 137f + 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, + 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, + 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, + 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, + 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, + 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, + 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, + 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, + // Bytes 1380 - 13bf + 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, + 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, + 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, + 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, + 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, + 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, + 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, + 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, + // Bytes 13c0 - 13ff + 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, + 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, + 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, + 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, + 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, + 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, + 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, + 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, + // Bytes 1400 - 143f + 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, + 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, + 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, + 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, + 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, + 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, + 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, + 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, + // Bytes 1440 - 147f + 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, + 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, + 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, + 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, + 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, + 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, + 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, + 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, + // Bytes 1480 - 14bf + 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, + 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, + 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, + 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, + 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, + 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, + 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, + 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, + // Bytes 14c0 - 14ff + 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, + 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, + 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, + 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, + 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, + 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, + 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, + 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, + // Bytes 1500 - 153f + 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, + 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, + 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, + 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, + 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, + 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, + 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, + 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, + // Bytes 1540 - 157f + 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, + 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, + 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, + 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, + 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, + 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, + 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, + 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, + // Bytes 1580 - 15bf + 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, + 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, + 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, + 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, + 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, + 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, + 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, + 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, + // Bytes 15c0 - 15ff + 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, + 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, + 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, + 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, + 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, + 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, + 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, + 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, + // Bytes 1600 - 163f + 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, + 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, + 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, + 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, + 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, + 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, + 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, + 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, + // Bytes 1640 - 167f + 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, + 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, + 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, + 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, + 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, + 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, + 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, + 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, + // Bytes 1680 - 16bf + 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, + 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, + 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, + 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, + 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, + 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, + 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, + 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, + // Bytes 16c0 - 16ff + 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, + 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, + 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, + 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, + 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, + 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, + 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, + 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, + // Bytes 1700 - 173f + 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, + 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, + 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, + 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, + 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, + 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, + 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, + 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, + // Bytes 1740 - 177f + 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, + 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, + 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, + 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, + 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, + 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, + 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, + 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, + // Bytes 1780 - 17bf + 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, + 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, + 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, + 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, + 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, + 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, + 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, + 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, + // Bytes 17c0 - 17ff + 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, + 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, + 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, + 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, + 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, + 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, + 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, + 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, + // Bytes 1800 - 183f + 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, + 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, + 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, + 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, + 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, + 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, + 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, + 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, + // Bytes 1840 - 187f + 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, + 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, + 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, + 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, + 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, + 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, + 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, + 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, + 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, + 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, + 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, + 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, + 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, + 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, + 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, + 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, + 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, + 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, + 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, + 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, + 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, + 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, + // Bytes 1900 - 193f + 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, + 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, + 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, + 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, + 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, + 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, + 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, + 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, + // Bytes 1940 - 197f + 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, + 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, + 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, + 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, + 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, + 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, + 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, + 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x44, 0x42, 0x4D, 0x52, 0x42, 0x4D, 0x56, 0x42, + 0x4D, 0x57, 0x42, 0x4E, 0x4A, 0x42, 0x4E, 0x6A, + 0x42, 0x4E, 0x6F, 0x42, 0x50, 0x48, 0x42, 0x50, + 0x52, 0x42, 0x50, 0x61, 0x42, 0x52, 0x73, 0x42, + 0x53, 0x44, 0x42, 0x53, 0x4D, 0x42, 0x53, 0x53, + 0x42, 0x53, 0x76, 0x42, 0x54, 0x4D, 0x42, 0x56, + 0x49, 0x42, 0x57, 0x43, 0x42, 0x57, 0x5A, 0x42, + 0x57, 0x62, 0x42, 0x58, 0x49, 0x42, 0x63, 0x63, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x64, 0x42, 0x63, 0x6D, 0x42, 0x64, + 0x42, 0x42, 0x64, 0x61, 0x42, 0x64, 0x6C, 0x42, + 0x64, 0x6D, 0x42, 0x64, 0x7A, 0x42, 0x65, 0x56, + 0x42, 0x66, 0x66, 0x42, 0x66, 0x69, 0x42, 0x66, + 0x6C, 0x42, 0x66, 0x6D, 0x42, 0x68, 0x61, 0x42, + 0x69, 0x69, 0x42, 0x69, 0x6A, 0x42, 0x69, 0x6E, + 0x42, 0x69, 0x76, 0x42, 0x69, 0x78, 0x42, 0x6B, + 0x41, 0x42, 0x6B, 0x56, 0x42, 0x6B, 0x57, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x67, 0x42, 0x6B, 0x6C, 0x42, 0x6B, 0x6D, + 0x42, 0x6B, 0x74, 0x42, 0x6C, 0x6A, 0x42, 0x6C, + 0x6D, 0x42, 0x6C, 0x6E, 0x42, 0x6C, 0x78, 0x42, + 0x6D, 0x32, 0x42, 0x6D, 0x33, 0x42, 0x6D, 0x41, + 0x42, 0x6D, 0x56, 0x42, 0x6D, 0x57, 0x42, 0x6D, + 0x62, 0x42, 0x6D, 0x67, 0x42, 0x6D, 0x6C, 0x42, + 0x6D, 0x6D, 0x42, 0x6D, 0x73, 0x42, 0x6E, 0x41, + 0x42, 0x6E, 0x46, 0x42, 0x6E, 0x56, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x57, 0x42, 0x6E, 0x6A, 0x42, 0x6E, 0x6D, 0x42, + 0x6E, 0x73, 0x42, 0x6F, 0x56, 0x42, 0x70, 0x41, + 0x42, 0x70, 0x46, 0x42, 0x70, 0x56, 0x42, 0x70, + 0x57, 0x42, 0x70, 0x63, 0x42, 0x70, 0x73, 0x42, + 0x73, 0x72, 0x42, 0x73, 0x74, 0x42, 0x76, 0x69, + 0x42, 0x78, 0x69, 0x43, 0x28, 0x31, 0x29, 0x43, + 0x28, 0x32, 0x29, 0x43, 0x28, 0x33, 0x29, 0x43, + 0x28, 0x34, 0x29, 0x43, 0x28, 0x35, 0x29, 0x43, + // Bytes 1a80 - 1abf + 0x28, 0x36, 0x29, 0x43, 0x28, 0x37, 0x29, 0x43, + 0x28, 0x38, 0x29, 0x43, 0x28, 0x39, 0x29, 0x43, + 0x28, 0x41, 0x29, 0x43, 0x28, 0x42, 0x29, 0x43, + 0x28, 0x43, 0x29, 0x43, 0x28, 0x44, 0x29, 0x43, + 0x28, 0x45, 0x29, 0x43, 0x28, 0x46, 0x29, 0x43, + 0x28, 0x47, 0x29, 0x43, 0x28, 0x48, 0x29, 0x43, + 0x28, 0x49, 0x29, 0x43, 0x28, 0x4A, 0x29, 0x43, + 0x28, 0x4B, 0x29, 0x43, 0x28, 0x4C, 0x29, 0x43, + // Bytes 1ac0 - 1aff + 0x28, 0x4D, 0x29, 0x43, 0x28, 0x4E, 0x29, 0x43, + 0x28, 0x4F, 0x29, 0x43, 0x28, 0x50, 0x29, 0x43, + 0x28, 0x51, 0x29, 0x43, 0x28, 0x52, 0x29, 0x43, + 0x28, 0x53, 0x29, 0x43, 0x28, 0x54, 0x29, 0x43, + 0x28, 0x55, 0x29, 0x43, 0x28, 0x56, 0x29, 0x43, + 0x28, 0x57, 0x29, 0x43, 0x28, 0x58, 0x29, 0x43, + 0x28, 0x59, 0x29, 0x43, 0x28, 0x5A, 0x29, 0x43, + 0x28, 0x61, 0x29, 0x43, 0x28, 0x62, 0x29, 0x43, + // Bytes 1b00 - 1b3f + 0x28, 0x63, 0x29, 0x43, 0x28, 0x64, 0x29, 0x43, + 0x28, 0x65, 0x29, 0x43, 0x28, 0x66, 0x29, 0x43, + 0x28, 0x67, 0x29, 0x43, 0x28, 0x68, 0x29, 0x43, + 0x28, 0x69, 0x29, 0x43, 0x28, 0x6A, 0x29, 0x43, + 0x28, 0x6B, 0x29, 0x43, 0x28, 0x6C, 0x29, 0x43, + 0x28, 0x6D, 0x29, 0x43, 0x28, 0x6E, 0x29, 0x43, + 0x28, 0x6F, 0x29, 0x43, 0x28, 0x70, 0x29, 0x43, + 0x28, 0x71, 0x29, 0x43, 0x28, 0x72, 0x29, 0x43, + // Bytes 1b40 - 1b7f + 0x28, 0x73, 0x29, 0x43, 0x28, 0x74, 0x29, 0x43, + 0x28, 0x75, 0x29, 0x43, 0x28, 0x76, 0x29, 0x43, + 0x28, 0x77, 0x29, 0x43, 0x28, 0x78, 0x29, 0x43, + 0x28, 0x79, 0x29, 0x43, 0x28, 0x7A, 0x29, 0x43, + 0x2E, 0x2E, 0x2E, 0x43, 0x31, 0x30, 0x2E, 0x43, + 0x31, 0x31, 0x2E, 0x43, 0x31, 0x32, 0x2E, 0x43, + 0x31, 0x33, 0x2E, 0x43, 0x31, 0x34, 0x2E, 0x43, + 0x31, 0x35, 0x2E, 0x43, 0x31, 0x36, 0x2E, 0x43, + // Bytes 1b80 - 1bbf + 0x31, 0x37, 0x2E, 0x43, 0x31, 0x38, 0x2E, 0x43, + 0x31, 0x39, 0x2E, 0x43, 0x32, 0x30, 0x2E, 0x43, + 0x3A, 0x3A, 0x3D, 0x43, 0x3D, 0x3D, 0x3D, 0x43, + 0x43, 0x6F, 0x2E, 0x43, 0x46, 0x41, 0x58, 0x43, + 0x47, 0x48, 0x7A, 0x43, 0x47, 0x50, 0x61, 0x43, + 0x49, 0x49, 0x49, 0x43, 0x4C, 0x54, 0x44, 0x43, + 0x4C, 0xC2, 0xB7, 0x43, 0x4D, 0x48, 0x7A, 0x43, + 0x4D, 0x50, 0x61, 0x43, 0x4D, 0xCE, 0xA9, 0x43, + // Bytes 1bc0 - 1bff + 0x50, 0x50, 0x4D, 0x43, 0x50, 0x50, 0x56, 0x43, + 0x50, 0x54, 0x45, 0x43, 0x54, 0x45, 0x4C, 0x43, + 0x54, 0x48, 0x7A, 0x43, 0x56, 0x49, 0x49, 0x43, + 0x58, 0x49, 0x49, 0x43, 0x61, 0x2F, 0x63, 0x43, + 0x61, 0x2F, 0x73, 0x43, 0x61, 0xCA, 0xBE, 0x43, + 0x62, 0x61, 0x72, 0x43, 0x63, 0x2F, 0x6F, 0x43, + 0x63, 0x2F, 0x75, 0x43, 0x63, 0x61, 0x6C, 0x43, + 0x63, 0x6D, 0x32, 0x43, 0x63, 0x6D, 0x33, 0x43, + // Bytes 1c00 - 1c3f + 0x64, 0x6D, 0x32, 0x43, 0x64, 0x6D, 0x33, 0x43, + 0x65, 0x72, 0x67, 0x43, 0x66, 0x66, 0x69, 0x43, + 0x66, 0x66, 0x6C, 0x43, 0x67, 0x61, 0x6C, 0x43, + 0x68, 0x50, 0x61, 0x43, 0x69, 0x69, 0x69, 0x43, + 0x6B, 0x48, 0x7A, 0x43, 0x6B, 0x50, 0x61, 0x43, + 0x6B, 0x6D, 0x32, 0x43, 0x6B, 0x6D, 0x33, 0x43, + 0x6B, 0xCE, 0xA9, 0x43, 0x6C, 0x6F, 0x67, 0x43, + 0x6C, 0xC2, 0xB7, 0x43, 0x6D, 0x69, 0x6C, 0x43, + // Bytes 1c40 - 1c7f + 0x6D, 0x6D, 0x32, 0x43, 0x6D, 0x6D, 0x33, 0x43, + 0x6D, 0x6F, 0x6C, 0x43, 0x72, 0x61, 0x64, 0x43, + 0x76, 0x69, 0x69, 0x43, 0x78, 0x69, 0x69, 0x43, + 0xC2, 0xB0, 0x43, 0x43, 0xC2, 0xB0, 0x46, 0x43, + 0xCA, 0xBC, 0x6E, 0x43, 0xCE, 0xBC, 0x41, 0x43, + 0xCE, 0xBC, 0x46, 0x43, 0xCE, 0xBC, 0x56, 0x43, + 0xCE, 0xBC, 0x57, 0x43, 0xCE, 0xBC, 0x67, 0x43, + 0xCE, 0xBC, 0x6C, 0x43, 0xCE, 0xBC, 0x6D, 0x43, + // Bytes 1c80 - 1cbf + 0xCE, 0xBC, 0x73, 0x44, 0x28, 0x31, 0x30, 0x29, + 0x44, 0x28, 0x31, 0x31, 0x29, 0x44, 0x28, 0x31, + 0x32, 0x29, 0x44, 0x28, 0x31, 0x33, 0x29, 0x44, + 0x28, 0x31, 0x34, 0x29, 0x44, 0x28, 0x31, 0x35, + 0x29, 0x44, 0x28, 0x31, 0x36, 0x29, 0x44, 0x28, + 0x31, 0x37, 0x29, 0x44, 0x28, 0x31, 0x38, 0x29, + 0x44, 0x28, 0x31, 0x39, 0x29, 0x44, 0x28, 0x32, + 0x30, 0x29, 0x44, 0x30, 0xE7, 0x82, 0xB9, 0x44, + // Bytes 1cc0 - 1cff + 0x31, 0xE2, 0x81, 0x84, 0x44, 0x31, 0xE6, 0x97, + 0xA5, 0x44, 0x31, 0xE6, 0x9C, 0x88, 0x44, 0x31, + 0xE7, 0x82, 0xB9, 0x44, 0x32, 0xE6, 0x97, 0xA5, + 0x44, 0x32, 0xE6, 0x9C, 0x88, 0x44, 0x32, 0xE7, + 0x82, 0xB9, 0x44, 0x33, 0xE6, 0x97, 0xA5, 0x44, + 0x33, 0xE6, 0x9C, 0x88, 0x44, 0x33, 0xE7, 0x82, + 0xB9, 0x44, 0x34, 0xE6, 0x97, 0xA5, 0x44, 0x34, + 0xE6, 0x9C, 0x88, 0x44, 0x34, 0xE7, 0x82, 0xB9, + // Bytes 1d00 - 1d3f + 0x44, 0x35, 0xE6, 0x97, 0xA5, 0x44, 0x35, 0xE6, + 0x9C, 0x88, 0x44, 0x35, 0xE7, 0x82, 0xB9, 0x44, + 0x36, 0xE6, 0x97, 0xA5, 0x44, 0x36, 0xE6, 0x9C, + 0x88, 0x44, 0x36, 0xE7, 0x82, 0xB9, 0x44, 0x37, + 0xE6, 0x97, 0xA5, 0x44, 0x37, 0xE6, 0x9C, 0x88, + 0x44, 0x37, 0xE7, 0x82, 0xB9, 0x44, 0x38, 0xE6, + 0x97, 0xA5, 0x44, 0x38, 0xE6, 0x9C, 0x88, 0x44, + 0x38, 0xE7, 0x82, 0xB9, 0x44, 0x39, 0xE6, 0x97, + // Bytes 1d40 - 1d7f + 0xA5, 0x44, 0x39, 0xE6, 0x9C, 0x88, 0x44, 0x39, + 0xE7, 0x82, 0xB9, 0x44, 0x56, 0x49, 0x49, 0x49, + 0x44, 0x61, 0x2E, 0x6D, 0x2E, 0x44, 0x6B, 0x63, + 0x61, 0x6C, 0x44, 0x70, 0x2E, 0x6D, 0x2E, 0x44, + 0x76, 0x69, 0x69, 0x69, 0x44, 0xD5, 0xA5, 0xD6, + 0x82, 0x44, 0xD5, 0xB4, 0xD5, 0xA5, 0x44, 0xD5, + 0xB4, 0xD5, 0xAB, 0x44, 0xD5, 0xB4, 0xD5, 0xAD, + 0x44, 0xD5, 0xB4, 0xD5, 0xB6, 0x44, 0xD5, 0xBE, + // Bytes 1d80 - 1dbf + 0xD5, 0xB6, 0x44, 0xD7, 0x90, 0xD7, 0x9C, 0x44, + 0xD8, 0xA7, 0xD9, 0xB4, 0x44, 0xD8, 0xA8, 0xD8, + 0xAC, 0x44, 0xD8, 0xA8, 0xD8, 0xAD, 0x44, 0xD8, + 0xA8, 0xD8, 0xAE, 0x44, 0xD8, 0xA8, 0xD8, 0xB1, + 0x44, 0xD8, 0xA8, 0xD8, 0xB2, 0x44, 0xD8, 0xA8, + 0xD9, 0x85, 0x44, 0xD8, 0xA8, 0xD9, 0x86, 0x44, + 0xD8, 0xA8, 0xD9, 0x87, 0x44, 0xD8, 0xA8, 0xD9, + 0x89, 0x44, 0xD8, 0xA8, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1dc0 - 1dff + 0xAA, 0xD8, 0xAC, 0x44, 0xD8, 0xAA, 0xD8, 0xAD, + 0x44, 0xD8, 0xAA, 0xD8, 0xAE, 0x44, 0xD8, 0xAA, + 0xD8, 0xB1, 0x44, 0xD8, 0xAA, 0xD8, 0xB2, 0x44, + 0xD8, 0xAA, 0xD9, 0x85, 0x44, 0xD8, 0xAA, 0xD9, + 0x86, 0x44, 0xD8, 0xAA, 0xD9, 0x87, 0x44, 0xD8, + 0xAA, 0xD9, 0x89, 0x44, 0xD8, 0xAA, 0xD9, 0x8A, + 0x44, 0xD8, 0xAB, 0xD8, 0xAC, 0x44, 0xD8, 0xAB, + 0xD8, 0xB1, 0x44, 0xD8, 0xAB, 0xD8, 0xB2, 0x44, + // Bytes 1e00 - 1e3f + 0xD8, 0xAB, 0xD9, 0x85, 0x44, 0xD8, 0xAB, 0xD9, + 0x86, 0x44, 0xD8, 0xAB, 0xD9, 0x87, 0x44, 0xD8, + 0xAB, 0xD9, 0x89, 0x44, 0xD8, 0xAB, 0xD9, 0x8A, + 0x44, 0xD8, 0xAC, 0xD8, 0xAD, 0x44, 0xD8, 0xAC, + 0xD9, 0x85, 0x44, 0xD8, 0xAC, 0xD9, 0x89, 0x44, + 0xD8, 0xAC, 0xD9, 0x8A, 0x44, 0xD8, 0xAD, 0xD8, + 0xAC, 0x44, 0xD8, 0xAD, 0xD9, 0x85, 0x44, 0xD8, + 0xAD, 0xD9, 0x89, 0x44, 0xD8, 0xAD, 0xD9, 0x8A, + // Bytes 1e40 - 1e7f + 0x44, 0xD8, 0xAE, 0xD8, 0xAC, 0x44, 0xD8, 0xAE, + 0xD8, 0xAD, 0x44, 0xD8, 0xAE, 0xD9, 0x85, 0x44, + 0xD8, 0xAE, 0xD9, 0x89, 0x44, 0xD8, 0xAE, 0xD9, + 0x8A, 0x44, 0xD8, 0xB3, 0xD8, 0xAC, 0x44, 0xD8, + 0xB3, 0xD8, 0xAD, 0x44, 0xD8, 0xB3, 0xD8, 0xAE, + 0x44, 0xD8, 0xB3, 0xD8, 0xB1, 0x44, 0xD8, 0xB3, + 0xD9, 0x85, 0x44, 0xD8, 0xB3, 0xD9, 0x87, 0x44, + 0xD8, 0xB3, 0xD9, 0x89, 0x44, 0xD8, 0xB3, 0xD9, + // Bytes 1e80 - 1ebf + 0x8A, 0x44, 0xD8, 0xB4, 0xD8, 0xAC, 0x44, 0xD8, + 0xB4, 0xD8, 0xAD, 0x44, 0xD8, 0xB4, 0xD8, 0xAE, + 0x44, 0xD8, 0xB4, 0xD8, 0xB1, 0x44, 0xD8, 0xB4, + 0xD9, 0x85, 0x44, 0xD8, 0xB4, 0xD9, 0x87, 0x44, + 0xD8, 0xB4, 0xD9, 0x89, 0x44, 0xD8, 0xB4, 0xD9, + 0x8A, 0x44, 0xD8, 0xB5, 0xD8, 0xAD, 0x44, 0xD8, + 0xB5, 0xD8, 0xAE, 0x44, 0xD8, 0xB5, 0xD8, 0xB1, + 0x44, 0xD8, 0xB5, 0xD9, 0x85, 0x44, 0xD8, 0xB5, + // Bytes 1ec0 - 1eff + 0xD9, 0x89, 0x44, 0xD8, 0xB5, 0xD9, 0x8A, 0x44, + 0xD8, 0xB6, 0xD8, 0xAC, 0x44, 0xD8, 0xB6, 0xD8, + 0xAD, 0x44, 0xD8, 0xB6, 0xD8, 0xAE, 0x44, 0xD8, + 0xB6, 0xD8, 0xB1, 0x44, 0xD8, 0xB6, 0xD9, 0x85, + 0x44, 0xD8, 0xB6, 0xD9, 0x89, 0x44, 0xD8, 0xB6, + 0xD9, 0x8A, 0x44, 0xD8, 0xB7, 0xD8, 0xAD, 0x44, + 0xD8, 0xB7, 0xD9, 0x85, 0x44, 0xD8, 0xB7, 0xD9, + 0x89, 0x44, 0xD8, 0xB7, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1f00 - 1f3f + 0xB8, 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD8, 0xAC, + 0x44, 0xD8, 0xB9, 0xD9, 0x85, 0x44, 0xD8, 0xB9, + 0xD9, 0x89, 0x44, 0xD8, 0xB9, 0xD9, 0x8A, 0x44, + 0xD8, 0xBA, 0xD8, 0xAC, 0x44, 0xD8, 0xBA, 0xD9, + 0x85, 0x44, 0xD8, 0xBA, 0xD9, 0x89, 0x44, 0xD8, + 0xBA, 0xD9, 0x8A, 0x44, 0xD9, 0x81, 0xD8, 0xAC, + 0x44, 0xD9, 0x81, 0xD8, 0xAD, 0x44, 0xD9, 0x81, + 0xD8, 0xAE, 0x44, 0xD9, 0x81, 0xD9, 0x85, 0x44, + // Bytes 1f40 - 1f7f + 0xD9, 0x81, 0xD9, 0x89, 0x44, 0xD9, 0x81, 0xD9, + 0x8A, 0x44, 0xD9, 0x82, 0xD8, 0xAD, 0x44, 0xD9, + 0x82, 0xD9, 0x85, 0x44, 0xD9, 0x82, 0xD9, 0x89, + 0x44, 0xD9, 0x82, 0xD9, 0x8A, 0x44, 0xD9, 0x83, + 0xD8, 0xA7, 0x44, 0xD9, 0x83, 0xD8, 0xAC, 0x44, + 0xD9, 0x83, 0xD8, 0xAD, 0x44, 0xD9, 0x83, 0xD8, + 0xAE, 0x44, 0xD9, 0x83, 0xD9, 0x84, 0x44, 0xD9, + 0x83, 0xD9, 0x85, 0x44, 0xD9, 0x83, 0xD9, 0x89, + // Bytes 1f80 - 1fbf + 0x44, 0xD9, 0x83, 0xD9, 0x8A, 0x44, 0xD9, 0x84, + 0xD8, 0xA7, 0x44, 0xD9, 0x84, 0xD8, 0xAC, 0x44, + 0xD9, 0x84, 0xD8, 0xAD, 0x44, 0xD9, 0x84, 0xD8, + 0xAE, 0x44, 0xD9, 0x84, 0xD9, 0x85, 0x44, 0xD9, + 0x84, 0xD9, 0x87, 0x44, 0xD9, 0x84, 0xD9, 0x89, + 0x44, 0xD9, 0x84, 0xD9, 0x8A, 0x44, 0xD9, 0x85, + 0xD8, 0xA7, 0x44, 0xD9, 0x85, 0xD8, 0xAC, 0x44, + 0xD9, 0x85, 0xD8, 0xAD, 0x44, 0xD9, 0x85, 0xD8, + // Bytes 1fc0 - 1fff + 0xAE, 0x44, 0xD9, 0x85, 0xD9, 0x85, 0x44, 0xD9, + 0x85, 0xD9, 0x89, 0x44, 0xD9, 0x85, 0xD9, 0x8A, + 0x44, 0xD9, 0x86, 0xD8, 0xAC, 0x44, 0xD9, 0x86, + 0xD8, 0xAD, 0x44, 0xD9, 0x86, 0xD8, 0xAE, 0x44, + 0xD9, 0x86, 0xD8, 0xB1, 0x44, 0xD9, 0x86, 0xD8, + 0xB2, 0x44, 0xD9, 0x86, 0xD9, 0x85, 0x44, 0xD9, + 0x86, 0xD9, 0x86, 0x44, 0xD9, 0x86, 0xD9, 0x87, + 0x44, 0xD9, 0x86, 0xD9, 0x89, 0x44, 0xD9, 0x86, + // Bytes 2000 - 203f + 0xD9, 0x8A, 0x44, 0xD9, 0x87, 0xD8, 0xAC, 0x44, + 0xD9, 0x87, 0xD9, 0x85, 0x44, 0xD9, 0x87, 0xD9, + 0x89, 0x44, 0xD9, 0x87, 0xD9, 0x8A, 0x44, 0xD9, + 0x88, 0xD9, 0xB4, 0x44, 0xD9, 0x8A, 0xD8, 0xAC, + 0x44, 0xD9, 0x8A, 0xD8, 0xAD, 0x44, 0xD9, 0x8A, + 0xD8, 0xAE, 0x44, 0xD9, 0x8A, 0xD8, 0xB1, 0x44, + 0xD9, 0x8A, 0xD8, 0xB2, 0x44, 0xD9, 0x8A, 0xD9, + 0x85, 0x44, 0xD9, 0x8A, 0xD9, 0x86, 0x44, 0xD9, + // Bytes 2040 - 207f + 0x8A, 0xD9, 0x87, 0x44, 0xD9, 0x8A, 0xD9, 0x89, + 0x44, 0xD9, 0x8A, 0xD9, 0x8A, 0x44, 0xD9, 0x8A, + 0xD9, 0xB4, 0x44, 0xDB, 0x87, 0xD9, 0xB4, 0x45, + 0x28, 0xE1, 0x84, 0x80, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x82, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x83, + 0x29, 0x45, 0x28, 0xE1, 0x84, 0x85, 0x29, 0x45, + 0x28, 0xE1, 0x84, 0x86, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x87, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x89, + // Bytes 2080 - 20bf + 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x45, + 0x28, 0xE1, 0x84, 0x8C, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x8E, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8F, + 0x29, 0x45, 0x28, 0xE1, 0x84, 0x90, 0x29, 0x45, + 0x28, 0xE1, 0x84, 0x91, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x92, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x80, + 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x45, + 0x28, 0xE4, 0xB8, 0x89, 0x29, 0x45, 0x28, 0xE4, + // Bytes 20c0 - 20ff + 0xB9, 0x9D, 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x8C, + 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x45, + 0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x45, 0x28, 0xE4, + 0xBC, 0x81, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x91, + 0x29, 0x45, 0x28, 0xE5, 0x85, 0xAB, 0x29, 0x45, + 0x28, 0xE5, 0x85, 0xAD, 0x29, 0x45, 0x28, 0xE5, + 0x8A, 0xB4, 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x81, + 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x94, 0x29, 0x45, + // Bytes 2100 - 213f + 0x28, 0xE5, 0x90, 0x8D, 0x29, 0x45, 0x28, 0xE5, + 0x91, 0xBC, 0x29, 0x45, 0x28, 0xE5, 0x9B, 0x9B, + 0x29, 0x45, 0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x45, + 0x28, 0xE5, 0xAD, 0xA6, 0x29, 0x45, 0x28, 0xE6, + 0x97, 0xA5, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x88, + 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x89, 0x29, 0x45, + 0x28, 0xE6, 0x9C, 0xA8, 0x29, 0x45, 0x28, 0xE6, + 0xA0, 0xAA, 0x29, 0x45, 0x28, 0xE6, 0xB0, 0xB4, + // Bytes 2140 - 217f + 0x29, 0x45, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x45, + 0x28, 0xE7, 0x89, 0xB9, 0x29, 0x45, 0x28, 0xE7, + 0x9B, 0xA3, 0x29, 0x45, 0x28, 0xE7, 0xA4, 0xBE, + 0x29, 0x45, 0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x45, + 0x28, 0xE7, 0xA5, 0xAD, 0x29, 0x45, 0x28, 0xE8, + 0x87, 0xAA, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xB3, + 0x29, 0x45, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x45, + 0x28, 0xE8, 0xB3, 0x87, 0x29, 0x45, 0x28, 0xE9, + // Bytes 2180 - 21bf + 0x87, 0x91, 0x29, 0x45, 0x30, 0xE2, 0x81, 0x84, + 0x33, 0x45, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x45, + 0x31, 0x30, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x30, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x31, 0xE6, 0x97, + 0xA5, 0x45, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x45, + 0x31, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x32, + 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x32, 0xE6, 0x9C, + 0x88, 0x45, 0x31, 0x32, 0xE7, 0x82, 0xB9, 0x45, + // Bytes 21c0 - 21ff + 0x31, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x33, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x34, 0xE6, 0x97, + 0xA5, 0x45, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x45, + 0x31, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x35, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x36, 0xE6, 0x97, + 0xA5, 0x45, 0x31, 0x36, 0xE7, 0x82, 0xB9, 0x45, + 0x31, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x37, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x38, 0xE6, 0x97, + // Bytes 2200 - 223f + 0xA5, 0x45, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x45, + 0x31, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x39, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0xE2, 0x81, 0x84, + 0x32, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x45, + 0x31, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x31, 0xE2, + 0x81, 0x84, 0x35, 0x45, 0x31, 0xE2, 0x81, 0x84, + 0x36, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x37, 0x45, + 0x31, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x31, 0xE2, + // Bytes 2240 - 227f + 0x81, 0x84, 0x39, 0x45, 0x32, 0x30, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x30, 0xE7, 0x82, 0xB9, 0x45, + 0x32, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x31, + 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x32, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x45, + 0x32, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x33, + 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x34, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x34, 0xE7, 0x82, 0xB9, 0x45, + // Bytes 2280 - 22bf + 0x32, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x36, + 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x37, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x38, 0xE6, 0x97, 0xA5, 0x45, + 0x32, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0xE2, + 0x81, 0x84, 0x33, 0x45, 0x32, 0xE2, 0x81, 0x84, + 0x35, 0x45, 0x33, 0x30, 0xE6, 0x97, 0xA5, 0x45, + 0x33, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0xE2, + 0x81, 0x84, 0x34, 0x45, 0x33, 0xE2, 0x81, 0x84, + // Bytes 22c0 - 22ff + 0x35, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x38, 0x45, + 0x34, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x35, 0xE2, + 0x81, 0x84, 0x36, 0x45, 0x35, 0xE2, 0x81, 0x84, + 0x38, 0x45, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x45, + 0x41, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x56, 0xE2, + 0x88, 0x95, 0x6D, 0x45, 0x6D, 0xE2, 0x88, 0x95, + 0x73, 0x46, 0x31, 0xE2, 0x81, 0x84, 0x31, 0x30, + 0x46, 0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x46, + // Bytes 2300 - 233f + 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x46, 0xD8, + 0xA8, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xA8, + 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, + 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0x46, + 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8, + // Bytes 2340 - 237f + 0xAA, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD9, + 0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD9, 0x85, + 0xD8, 0xAD, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, + 0xAE, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, + 0xAC, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, + // Bytes 2380 - 23bf + 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAC, 0xD9, + 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, + 0x8A, 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD8, + 0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xB3, + 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD8, + // Bytes 23c0 - 23ff + 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAD, + 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xB4, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xB4, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xB4, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD9, + 0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xB4, 0xD9, 0x85, + // Bytes 2400 - 243f + 0xD9, 0x85, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, + 0xAD, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x46, + 0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD8, + 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB6, + 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xB6, 0xD8, + 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB6, 0xD8, 0xAE, + 0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, + // Bytes 2440 - 247f + 0xAD, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8, + 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB9, + 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xB9, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xBA, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, + // Bytes 2480 - 24bf + 0x46, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD9, 0x81, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, + 0x82, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD9, 0x82, + 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x82, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x82, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, + 0x85, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0x46, + // Bytes 24c0 - 24ff + 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x84, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAD, + 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9, + // Bytes 2500 - 253f + 0x85, 0xD8, 0xAC, 0xD8, 0xAE, 0x46, 0xD9, 0x85, + 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAD, + 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + // Bytes 2540 - 257f + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x86, 0xD8, 0xAC, + 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x85, 0x46, + 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD9, + // Bytes 2580 - 25bf + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x87, 0xD9, 0x85, + 0xD8, 0xAC, 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD9, + 0x85, 0x46, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xA7, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD8, 0xAC, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + // Bytes 25c0 - 25ff + 0xD8, 0xAD, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xAE, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB1, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD9, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD9, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x89, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + // Bytes 2600 - 263f + 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x88, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x95, 0x46, 0xE0, 0xB9, 0x8D, + 0xE0, 0xB8, 0xB2, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, + 0xBA, 0x99, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, + 0xA1, 0x46, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, + // Bytes 2640 - 267f + 0x46, 0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0x46, + 0xE0, 0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, + 0xBD, 0x8C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, + 0x91, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x96, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x9B, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x90, 0xE0, 0xBE, + 0xB5, 0x46, 0xE0, 0xBE, 0x92, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBE, 0x9C, 0xE0, 0xBE, 0xB7, 0x46, + // Bytes 2680 - 26bf + 0xE0, 0xBE, 0xA1, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, + 0xBE, 0xA6, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0xAB, 0xE0, 0xBE, 0xB7, 0x46, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x46, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0x46, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0x46, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, + 0x46, 0xE3, 0x81, 0xBB, 0xE3, 0x81, 0x8B, 0x46, + 0xE3, 0x82, 0x88, 0xE3, 0x82, 0x8A, 0x46, 0xE3, + // Bytes 26c0 - 26ff + 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0x46, 0xE3, 0x82, + 0xB3, 0xE3, 0x82, 0xB3, 0x46, 0xE3, 0x82, 0xB3, + 0xE3, 0x83, 0x88, 0x46, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xB3, 0x46, 0xE3, 0x83, 0x8A, 0xE3, 0x83, + 0x8E, 0x46, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3, + 0x46, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0x46, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0x46, 0xE3, + 0x83, 0xAC, 0xE3, 0x83, 0xA0, 0x46, 0xE5, 0xA4, + // Bytes 2700 - 273f + 0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5, 0xB9, 0xB3, + 0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98, 0x8E, 0xE6, + 0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD, 0xE5, 0x92, + 0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, + 0x73, 0x47, 0xE3, 0x80, 0x94, 0x53, 0xE3, 0x80, + 0x95, 0x48, 0x28, 0xE1, 0x84, 0x80, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x82, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x83, + // Bytes 2740 - 277f + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, + // Bytes 2780 - 27bf + 0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8E, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, + 0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83, 0xD8, 0xA8, + // Bytes 27c0 - 27ff + 0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, + 0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1, 0xD8, 0xB3, + 0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8, 0xB1, 0xDB, + 0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48, 0xD8, 0xB5, + 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85, 0x48, 0xD8, + 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x48, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAF, + 0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9, + // Bytes 2800 - 283f + 0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x49, + 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88, + 0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xB8, 0x89, + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE4, + 0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, + // Bytes 2840 - 287f + 0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80, 0x95, 0x49, + 0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89, 0xE3, 0x80, + 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x89, 0x93, + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, + 0x95, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, + 0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80, 0x95, 0x49, + 0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9, 0xE3, 0x80, + 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x9B, 0x97, + // Bytes 2880 - 28bf + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82, 0xA2, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, + 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3, 0x83, + 0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3, + 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xAA, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49, 0xE3, 0x82, + 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0x49, + // Bytes 28c0 - 28ff + 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82, + 0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82, 0xBB, 0xE3, + 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, + 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x49, + 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82, + 0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x8E, 0xE3, + // Bytes 2900 - 293f + 0x83, 0x83, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, + 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84, 0x49, + 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83, 0x95, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0x49, + 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83, + // Bytes 2940 - 297f + 0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9B, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, + 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAB, 0x49, + 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83, 0xA4, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, + // Bytes 2980 - 29bf + 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0x49, + 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x4C, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82, 0xA2, 0xE3, + 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, + 0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83, 0xBC, 0xE3, + // Bytes 29c0 - 29ff + 0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, + 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAD, 0xE3, + 0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA, 0xE3, 0x83, + 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, + 0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAF, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, + 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C, 0xE3, 0x82, + 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, + 0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF, 0xE3, 0x82, + // Bytes 2a40 - 2a7f + 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x4C, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3, 0x83, 0x92, + 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA3, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4C, 0xE3, + 0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83, 0x98, 0xE3, + // Bytes 2a80 - 2abf + 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x92, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, + 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, + 0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E, 0xE3, 0x82, + 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0x4C, + 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x83, 0xA1, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, + 0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x83, + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, + 0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, + 0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9, + 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE, 0x29, 0x4F, + // Bytes 2b00 - 2b3f + 0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8, 0xAC, 0xD9, + 0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x87, 0x4F, + 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4F, + 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0x4F, + 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4F, + // Bytes 2b40 - 2b7f + 0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, 0xE3, 0x83, + 0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x4F, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAB, 0x4F, + 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF, 0xE3, 0x82, + 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x4F, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x4F, + // Bytes 2b80 - 2bbf + 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83, 0xB3, 0x4F, + 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x4F, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x51, + 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, + 0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1, 0x86, 0xAB, + // Bytes 2bc0 - 2bff + 0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x52, + 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x82, + // Bytes 2c00 - 2c3f + 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, + 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBB, 0xE3, + 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAD, + 0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, + 0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xB9, + // Bytes 2c40 - 2c7f + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x83, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, 0xE3, 0x83, + 0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0xAC, + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, + 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0x61, + // Bytes 2c80 - 2cbf + 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x20, 0xD8, + 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x20, + 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, + 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9, + 0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE, + 0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA7, 0x97, + 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE, + 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x96, + // Bytes 2cc0 - 2cff + 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97, + 0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97, + 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xBE, + 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAF, 0x97, + 0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xBE, + 0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95, + 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95, + 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96, + // Bytes 2d00 - 2d3f + 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE, + 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB5, 0x97, + 0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE, + 0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x9F, + 0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE, + 0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5, + // Bytes 2d40 - 2d7f + 0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5, + // Bytes 2d80 - 2dbf + 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1, 0xF0, 0x91, + 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB2, + 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, + 0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE, 0x01, 0x08, + 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8D, 0x97, + 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, + 0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, + 0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08, 0xF0, 0x91, + // Bytes 2dc0 - 2dff + 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD, 0x01, 0x08, + 0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91, 0x96, 0xAF, + 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9, 0xF0, 0x91, + 0x96, 0xAF, 0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0, + 0xB3, 0x82, 0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0, + 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, + 0x12, 0x44, 0x44, 0x5A, 0xCC, 0x8C, 0xC9, 0x44, + 0x44, 0x7A, 0xCC, 0x8C, 0xC9, 0x44, 0x64, 0x7A, + // Bytes 2e00 - 2e3f + 0xCC, 0x8C, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x93, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x94, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x46, 0xE1, 0x84, 0x80, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1, + // Bytes 2e40 - 2e7f + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, + 0x85, 0xAE, 0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1, + // Bytes 2e80 - 2ebf + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1, + 0x85, 0xA1, 0x01, 0x49, 0xE3, 0x83, 0xA1, 0xE3, + 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, 0xE1, + 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B, + 0xE1, 0x85, 0xB4, 0x01, 0x4C, 0xE3, 0x82, 0xAD, + 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0x0D, 0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83, + // Bytes 2ec0 - 2eff + 0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, + 0x4C, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE1, + 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA9, 0x01, 0x4F, + 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83, + 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x4F, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, + // Bytes 2f00 - 2f3f + 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, + 0x0D, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82, + 0x99, 0x0D, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, + 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x82, 0xA8, 0xE3, + 0x82, 0xB9, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x52, + // Bytes 2f40 - 2f7f + 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x86, 0xE0, 0xB3, 0x86, 0xE0, + 0xB3, 0x82, 0x01, 0x86, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x8F, 0x01, 0x03, 0x3C, 0xCC, 0xB8, 0x05, + 0x03, 0x3D, 0xCC, 0xB8, 0x05, 0x03, 0x3E, 0xCC, + 0xB8, 0x05, 0x03, 0x41, 0xCC, 0x80, 0xC9, 0x03, + 0x41, 0xCC, 0x81, 0xC9, 0x03, 0x41, 0xCC, 0x83, + // Bytes 2f80 - 2fbf + 0xC9, 0x03, 0x41, 0xCC, 0x84, 0xC9, 0x03, 0x41, + 0xCC, 0x89, 0xC9, 0x03, 0x41, 0xCC, 0x8C, 0xC9, + 0x03, 0x41, 0xCC, 0x8F, 0xC9, 0x03, 0x41, 0xCC, + 0x91, 0xC9, 0x03, 0x41, 0xCC, 0xA5, 0xB5, 0x03, + 0x41, 0xCC, 0xA8, 0xA5, 0x03, 0x42, 0xCC, 0x87, + 0xC9, 0x03, 0x42, 0xCC, 0xA3, 0xB5, 0x03, 0x42, + 0xCC, 0xB1, 0xB5, 0x03, 0x43, 0xCC, 0x81, 0xC9, + 0x03, 0x43, 0xCC, 0x82, 0xC9, 0x03, 0x43, 0xCC, + // Bytes 2fc0 - 2fff + 0x87, 0xC9, 0x03, 0x43, 0xCC, 0x8C, 0xC9, 0x03, + 0x44, 0xCC, 0x87, 0xC9, 0x03, 0x44, 0xCC, 0x8C, + 0xC9, 0x03, 0x44, 0xCC, 0xA3, 0xB5, 0x03, 0x44, + 0xCC, 0xA7, 0xA5, 0x03, 0x44, 0xCC, 0xAD, 0xB5, + 0x03, 0x44, 0xCC, 0xB1, 0xB5, 0x03, 0x45, 0xCC, + 0x80, 0xC9, 0x03, 0x45, 0xCC, 0x81, 0xC9, 0x03, + 0x45, 0xCC, 0x83, 0xC9, 0x03, 0x45, 0xCC, 0x86, + 0xC9, 0x03, 0x45, 0xCC, 0x87, 0xC9, 0x03, 0x45, + // Bytes 3000 - 303f + 0xCC, 0x88, 0xC9, 0x03, 0x45, 0xCC, 0x89, 0xC9, + 0x03, 0x45, 0xCC, 0x8C, 0xC9, 0x03, 0x45, 0xCC, + 0x8F, 0xC9, 0x03, 0x45, 0xCC, 0x91, 0xC9, 0x03, + 0x45, 0xCC, 0xA8, 0xA5, 0x03, 0x45, 0xCC, 0xAD, + 0xB5, 0x03, 0x45, 0xCC, 0xB0, 0xB5, 0x03, 0x46, + 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x81, 0xC9, + 0x03, 0x47, 0xCC, 0x82, 0xC9, 0x03, 0x47, 0xCC, + 0x84, 0xC9, 0x03, 0x47, 0xCC, 0x86, 0xC9, 0x03, + // Bytes 3040 - 307f + 0x47, 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x8C, + 0xC9, 0x03, 0x47, 0xCC, 0xA7, 0xA5, 0x03, 0x48, + 0xCC, 0x82, 0xC9, 0x03, 0x48, 0xCC, 0x87, 0xC9, + 0x03, 0x48, 0xCC, 0x88, 0xC9, 0x03, 0x48, 0xCC, + 0x8C, 0xC9, 0x03, 0x48, 0xCC, 0xA3, 0xB5, 0x03, + 0x48, 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0xAE, + 0xB5, 0x03, 0x49, 0xCC, 0x80, 0xC9, 0x03, 0x49, + 0xCC, 0x81, 0xC9, 0x03, 0x49, 0xCC, 0x82, 0xC9, + // Bytes 3080 - 30bf + 0x03, 0x49, 0xCC, 0x83, 0xC9, 0x03, 0x49, 0xCC, + 0x84, 0xC9, 0x03, 0x49, 0xCC, 0x86, 0xC9, 0x03, + 0x49, 0xCC, 0x87, 0xC9, 0x03, 0x49, 0xCC, 0x89, + 0xC9, 0x03, 0x49, 0xCC, 0x8C, 0xC9, 0x03, 0x49, + 0xCC, 0x8F, 0xC9, 0x03, 0x49, 0xCC, 0x91, 0xC9, + 0x03, 0x49, 0xCC, 0xA3, 0xB5, 0x03, 0x49, 0xCC, + 0xA8, 0xA5, 0x03, 0x49, 0xCC, 0xB0, 0xB5, 0x03, + 0x4A, 0xCC, 0x82, 0xC9, 0x03, 0x4B, 0xCC, 0x81, + // Bytes 30c0 - 30ff + 0xC9, 0x03, 0x4B, 0xCC, 0x8C, 0xC9, 0x03, 0x4B, + 0xCC, 0xA3, 0xB5, 0x03, 0x4B, 0xCC, 0xA7, 0xA5, + 0x03, 0x4B, 0xCC, 0xB1, 0xB5, 0x03, 0x4C, 0xCC, + 0x81, 0xC9, 0x03, 0x4C, 0xCC, 0x8C, 0xC9, 0x03, + 0x4C, 0xCC, 0xA7, 0xA5, 0x03, 0x4C, 0xCC, 0xAD, + 0xB5, 0x03, 0x4C, 0xCC, 0xB1, 0xB5, 0x03, 0x4D, + 0xCC, 0x81, 0xC9, 0x03, 0x4D, 0xCC, 0x87, 0xC9, + 0x03, 0x4D, 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC, + // Bytes 3100 - 313f + 0x80, 0xC9, 0x03, 0x4E, 0xCC, 0x81, 0xC9, 0x03, + 0x4E, 0xCC, 0x83, 0xC9, 0x03, 0x4E, 0xCC, 0x87, + 0xC9, 0x03, 0x4E, 0xCC, 0x8C, 0xC9, 0x03, 0x4E, + 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0xA7, 0xA5, + 0x03, 0x4E, 0xCC, 0xAD, 0xB5, 0x03, 0x4E, 0xCC, + 0xB1, 0xB5, 0x03, 0x4F, 0xCC, 0x80, 0xC9, 0x03, + 0x4F, 0xCC, 0x81, 0xC9, 0x03, 0x4F, 0xCC, 0x86, + 0xC9, 0x03, 0x4F, 0xCC, 0x89, 0xC9, 0x03, 0x4F, + // Bytes 3140 - 317f + 0xCC, 0x8B, 0xC9, 0x03, 0x4F, 0xCC, 0x8C, 0xC9, + 0x03, 0x4F, 0xCC, 0x8F, 0xC9, 0x03, 0x4F, 0xCC, + 0x91, 0xC9, 0x03, 0x50, 0xCC, 0x81, 0xC9, 0x03, + 0x50, 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x81, + 0xC9, 0x03, 0x52, 0xCC, 0x87, 0xC9, 0x03, 0x52, + 0xCC, 0x8C, 0xC9, 0x03, 0x52, 0xCC, 0x8F, 0xC9, + 0x03, 0x52, 0xCC, 0x91, 0xC9, 0x03, 0x52, 0xCC, + 0xA7, 0xA5, 0x03, 0x52, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3180 - 31bf + 0x53, 0xCC, 0x82, 0xC9, 0x03, 0x53, 0xCC, 0x87, + 0xC9, 0x03, 0x53, 0xCC, 0xA6, 0xB5, 0x03, 0x53, + 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0x87, 0xC9, + 0x03, 0x54, 0xCC, 0x8C, 0xC9, 0x03, 0x54, 0xCC, + 0xA3, 0xB5, 0x03, 0x54, 0xCC, 0xA6, 0xB5, 0x03, + 0x54, 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0xAD, + 0xB5, 0x03, 0x54, 0xCC, 0xB1, 0xB5, 0x03, 0x55, + 0xCC, 0x80, 0xC9, 0x03, 0x55, 0xCC, 0x81, 0xC9, + // Bytes 31c0 - 31ff + 0x03, 0x55, 0xCC, 0x82, 0xC9, 0x03, 0x55, 0xCC, + 0x86, 0xC9, 0x03, 0x55, 0xCC, 0x89, 0xC9, 0x03, + 0x55, 0xCC, 0x8A, 0xC9, 0x03, 0x55, 0xCC, 0x8B, + 0xC9, 0x03, 0x55, 0xCC, 0x8C, 0xC9, 0x03, 0x55, + 0xCC, 0x8F, 0xC9, 0x03, 0x55, 0xCC, 0x91, 0xC9, + 0x03, 0x55, 0xCC, 0xA3, 0xB5, 0x03, 0x55, 0xCC, + 0xA4, 0xB5, 0x03, 0x55, 0xCC, 0xA8, 0xA5, 0x03, + 0x55, 0xCC, 0xAD, 0xB5, 0x03, 0x55, 0xCC, 0xB0, + // Bytes 3200 - 323f + 0xB5, 0x03, 0x56, 0xCC, 0x83, 0xC9, 0x03, 0x56, + 0xCC, 0xA3, 0xB5, 0x03, 0x57, 0xCC, 0x80, 0xC9, + 0x03, 0x57, 0xCC, 0x81, 0xC9, 0x03, 0x57, 0xCC, + 0x82, 0xC9, 0x03, 0x57, 0xCC, 0x87, 0xC9, 0x03, + 0x57, 0xCC, 0x88, 0xC9, 0x03, 0x57, 0xCC, 0xA3, + 0xB5, 0x03, 0x58, 0xCC, 0x87, 0xC9, 0x03, 0x58, + 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x80, 0xC9, + 0x03, 0x59, 0xCC, 0x81, 0xC9, 0x03, 0x59, 0xCC, + // Bytes 3240 - 327f + 0x82, 0xC9, 0x03, 0x59, 0xCC, 0x83, 0xC9, 0x03, + 0x59, 0xCC, 0x84, 0xC9, 0x03, 0x59, 0xCC, 0x87, + 0xC9, 0x03, 0x59, 0xCC, 0x88, 0xC9, 0x03, 0x59, + 0xCC, 0x89, 0xC9, 0x03, 0x59, 0xCC, 0xA3, 0xB5, + 0x03, 0x5A, 0xCC, 0x81, 0xC9, 0x03, 0x5A, 0xCC, + 0x82, 0xC9, 0x03, 0x5A, 0xCC, 0x87, 0xC9, 0x03, + 0x5A, 0xCC, 0x8C, 0xC9, 0x03, 0x5A, 0xCC, 0xA3, + 0xB5, 0x03, 0x5A, 0xCC, 0xB1, 0xB5, 0x03, 0x61, + // Bytes 3280 - 32bf + 0xCC, 0x80, 0xC9, 0x03, 0x61, 0xCC, 0x81, 0xC9, + 0x03, 0x61, 0xCC, 0x83, 0xC9, 0x03, 0x61, 0xCC, + 0x84, 0xC9, 0x03, 0x61, 0xCC, 0x89, 0xC9, 0x03, + 0x61, 0xCC, 0x8C, 0xC9, 0x03, 0x61, 0xCC, 0x8F, + 0xC9, 0x03, 0x61, 0xCC, 0x91, 0xC9, 0x03, 0x61, + 0xCC, 0xA5, 0xB5, 0x03, 0x61, 0xCC, 0xA8, 0xA5, + 0x03, 0x62, 0xCC, 0x87, 0xC9, 0x03, 0x62, 0xCC, + 0xA3, 0xB5, 0x03, 0x62, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 32c0 - 32ff + 0x63, 0xCC, 0x81, 0xC9, 0x03, 0x63, 0xCC, 0x82, + 0xC9, 0x03, 0x63, 0xCC, 0x87, 0xC9, 0x03, 0x63, + 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0x87, 0xC9, + 0x03, 0x64, 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC, + 0xA3, 0xB5, 0x03, 0x64, 0xCC, 0xA7, 0xA5, 0x03, + 0x64, 0xCC, 0xAD, 0xB5, 0x03, 0x64, 0xCC, 0xB1, + 0xB5, 0x03, 0x65, 0xCC, 0x80, 0xC9, 0x03, 0x65, + 0xCC, 0x81, 0xC9, 0x03, 0x65, 0xCC, 0x83, 0xC9, + // Bytes 3300 - 333f + 0x03, 0x65, 0xCC, 0x86, 0xC9, 0x03, 0x65, 0xCC, + 0x87, 0xC9, 0x03, 0x65, 0xCC, 0x88, 0xC9, 0x03, + 0x65, 0xCC, 0x89, 0xC9, 0x03, 0x65, 0xCC, 0x8C, + 0xC9, 0x03, 0x65, 0xCC, 0x8F, 0xC9, 0x03, 0x65, + 0xCC, 0x91, 0xC9, 0x03, 0x65, 0xCC, 0xA8, 0xA5, + 0x03, 0x65, 0xCC, 0xAD, 0xB5, 0x03, 0x65, 0xCC, + 0xB0, 0xB5, 0x03, 0x66, 0xCC, 0x87, 0xC9, 0x03, + 0x67, 0xCC, 0x81, 0xC9, 0x03, 0x67, 0xCC, 0x82, + // Bytes 3340 - 337f + 0xC9, 0x03, 0x67, 0xCC, 0x84, 0xC9, 0x03, 0x67, + 0xCC, 0x86, 0xC9, 0x03, 0x67, 0xCC, 0x87, 0xC9, + 0x03, 0x67, 0xCC, 0x8C, 0xC9, 0x03, 0x67, 0xCC, + 0xA7, 0xA5, 0x03, 0x68, 0xCC, 0x82, 0xC9, 0x03, + 0x68, 0xCC, 0x87, 0xC9, 0x03, 0x68, 0xCC, 0x88, + 0xC9, 0x03, 0x68, 0xCC, 0x8C, 0xC9, 0x03, 0x68, + 0xCC, 0xA3, 0xB5, 0x03, 0x68, 0xCC, 0xA7, 0xA5, + 0x03, 0x68, 0xCC, 0xAE, 0xB5, 0x03, 0x68, 0xCC, + // Bytes 3380 - 33bf + 0xB1, 0xB5, 0x03, 0x69, 0xCC, 0x80, 0xC9, 0x03, + 0x69, 0xCC, 0x81, 0xC9, 0x03, 0x69, 0xCC, 0x82, + 0xC9, 0x03, 0x69, 0xCC, 0x83, 0xC9, 0x03, 0x69, + 0xCC, 0x84, 0xC9, 0x03, 0x69, 0xCC, 0x86, 0xC9, + 0x03, 0x69, 0xCC, 0x89, 0xC9, 0x03, 0x69, 0xCC, + 0x8C, 0xC9, 0x03, 0x69, 0xCC, 0x8F, 0xC9, 0x03, + 0x69, 0xCC, 0x91, 0xC9, 0x03, 0x69, 0xCC, 0xA3, + 0xB5, 0x03, 0x69, 0xCC, 0xA8, 0xA5, 0x03, 0x69, + // Bytes 33c0 - 33ff + 0xCC, 0xB0, 0xB5, 0x03, 0x6A, 0xCC, 0x82, 0xC9, + 0x03, 0x6A, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, + 0x81, 0xC9, 0x03, 0x6B, 0xCC, 0x8C, 0xC9, 0x03, + 0x6B, 0xCC, 0xA3, 0xB5, 0x03, 0x6B, 0xCC, 0xA7, + 0xA5, 0x03, 0x6B, 0xCC, 0xB1, 0xB5, 0x03, 0x6C, + 0xCC, 0x81, 0xC9, 0x03, 0x6C, 0xCC, 0x8C, 0xC9, + 0x03, 0x6C, 0xCC, 0xA7, 0xA5, 0x03, 0x6C, 0xCC, + 0xAD, 0xB5, 0x03, 0x6C, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3400 - 343f + 0x6D, 0xCC, 0x81, 0xC9, 0x03, 0x6D, 0xCC, 0x87, + 0xC9, 0x03, 0x6D, 0xCC, 0xA3, 0xB5, 0x03, 0x6E, + 0xCC, 0x80, 0xC9, 0x03, 0x6E, 0xCC, 0x81, 0xC9, + 0x03, 0x6E, 0xCC, 0x83, 0xC9, 0x03, 0x6E, 0xCC, + 0x87, 0xC9, 0x03, 0x6E, 0xCC, 0x8C, 0xC9, 0x03, + 0x6E, 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0xA7, + 0xA5, 0x03, 0x6E, 0xCC, 0xAD, 0xB5, 0x03, 0x6E, + 0xCC, 0xB1, 0xB5, 0x03, 0x6F, 0xCC, 0x80, 0xC9, + // Bytes 3440 - 347f + 0x03, 0x6F, 0xCC, 0x81, 0xC9, 0x03, 0x6F, 0xCC, + 0x86, 0xC9, 0x03, 0x6F, 0xCC, 0x89, 0xC9, 0x03, + 0x6F, 0xCC, 0x8B, 0xC9, 0x03, 0x6F, 0xCC, 0x8C, + 0xC9, 0x03, 0x6F, 0xCC, 0x8F, 0xC9, 0x03, 0x6F, + 0xCC, 0x91, 0xC9, 0x03, 0x70, 0xCC, 0x81, 0xC9, + 0x03, 0x70, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, + 0x81, 0xC9, 0x03, 0x72, 0xCC, 0x87, 0xC9, 0x03, + 0x72, 0xCC, 0x8C, 0xC9, 0x03, 0x72, 0xCC, 0x8F, + // Bytes 3480 - 34bf + 0xC9, 0x03, 0x72, 0xCC, 0x91, 0xC9, 0x03, 0x72, + 0xCC, 0xA7, 0xA5, 0x03, 0x72, 0xCC, 0xB1, 0xB5, + 0x03, 0x73, 0xCC, 0x82, 0xC9, 0x03, 0x73, 0xCC, + 0x87, 0xC9, 0x03, 0x73, 0xCC, 0xA6, 0xB5, 0x03, + 0x73, 0xCC, 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0x87, + 0xC9, 0x03, 0x74, 0xCC, 0x88, 0xC9, 0x03, 0x74, + 0xCC, 0x8C, 0xC9, 0x03, 0x74, 0xCC, 0xA3, 0xB5, + 0x03, 0x74, 0xCC, 0xA6, 0xB5, 0x03, 0x74, 0xCC, + // Bytes 34c0 - 34ff + 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0xAD, 0xB5, 0x03, + 0x74, 0xCC, 0xB1, 0xB5, 0x03, 0x75, 0xCC, 0x80, + 0xC9, 0x03, 0x75, 0xCC, 0x81, 0xC9, 0x03, 0x75, + 0xCC, 0x82, 0xC9, 0x03, 0x75, 0xCC, 0x86, 0xC9, + 0x03, 0x75, 0xCC, 0x89, 0xC9, 0x03, 0x75, 0xCC, + 0x8A, 0xC9, 0x03, 0x75, 0xCC, 0x8B, 0xC9, 0x03, + 0x75, 0xCC, 0x8C, 0xC9, 0x03, 0x75, 0xCC, 0x8F, + 0xC9, 0x03, 0x75, 0xCC, 0x91, 0xC9, 0x03, 0x75, + // Bytes 3500 - 353f + 0xCC, 0xA3, 0xB5, 0x03, 0x75, 0xCC, 0xA4, 0xB5, + 0x03, 0x75, 0xCC, 0xA8, 0xA5, 0x03, 0x75, 0xCC, + 0xAD, 0xB5, 0x03, 0x75, 0xCC, 0xB0, 0xB5, 0x03, + 0x76, 0xCC, 0x83, 0xC9, 0x03, 0x76, 0xCC, 0xA3, + 0xB5, 0x03, 0x77, 0xCC, 0x80, 0xC9, 0x03, 0x77, + 0xCC, 0x81, 0xC9, 0x03, 0x77, 0xCC, 0x82, 0xC9, + 0x03, 0x77, 0xCC, 0x87, 0xC9, 0x03, 0x77, 0xCC, + 0x88, 0xC9, 0x03, 0x77, 0xCC, 0x8A, 0xC9, 0x03, + // Bytes 3540 - 357f + 0x77, 0xCC, 0xA3, 0xB5, 0x03, 0x78, 0xCC, 0x87, + 0xC9, 0x03, 0x78, 0xCC, 0x88, 0xC9, 0x03, 0x79, + 0xCC, 0x80, 0xC9, 0x03, 0x79, 0xCC, 0x81, 0xC9, + 0x03, 0x79, 0xCC, 0x82, 0xC9, 0x03, 0x79, 0xCC, + 0x83, 0xC9, 0x03, 0x79, 0xCC, 0x84, 0xC9, 0x03, + 0x79, 0xCC, 0x87, 0xC9, 0x03, 0x79, 0xCC, 0x88, + 0xC9, 0x03, 0x79, 0xCC, 0x89, 0xC9, 0x03, 0x79, + 0xCC, 0x8A, 0xC9, 0x03, 0x79, 0xCC, 0xA3, 0xB5, + // Bytes 3580 - 35bf + 0x03, 0x7A, 0xCC, 0x81, 0xC9, 0x03, 0x7A, 0xCC, + 0x82, 0xC9, 0x03, 0x7A, 0xCC, 0x87, 0xC9, 0x03, + 0x7A, 0xCC, 0x8C, 0xC9, 0x03, 0x7A, 0xCC, 0xA3, + 0xB5, 0x03, 0x7A, 0xCC, 0xB1, 0xB5, 0x04, 0xC2, + 0xA8, 0xCC, 0x80, 0xCA, 0x04, 0xC2, 0xA8, 0xCC, + 0x81, 0xCA, 0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xCA, + 0x04, 0xC3, 0x86, 0xCC, 0x81, 0xC9, 0x04, 0xC3, + 0x86, 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0x98, 0xCC, + // Bytes 35c0 - 35ff + 0x81, 0xC9, 0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xC9, + 0x04, 0xC3, 0xA6, 0xCC, 0x84, 0xC9, 0x04, 0xC3, + 0xB8, 0xCC, 0x81, 0xC9, 0x04, 0xC5, 0xBF, 0xCC, + 0x87, 0xC9, 0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, + 0x04, 0xCA, 0x92, 0xCC, 0x8C, 0xC9, 0x04, 0xCE, + 0x91, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x91, 0xCC, + 0x81, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x84, 0xC9, + 0x04, 0xCE, 0x91, 0xCC, 0x86, 0xC9, 0x04, 0xCE, + // Bytes 3600 - 363f + 0x91, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0x95, 0xCC, + 0x80, 0xC9, 0x04, 0xCE, 0x95, 0xCC, 0x81, 0xC9, + 0x04, 0xCE, 0x97, 0xCC, 0x80, 0xC9, 0x04, 0xCE, + 0x97, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, 0xCD, + 0x85, 0xD9, 0x04, 0xCE, 0x99, 0xCC, 0x80, 0xC9, + 0x04, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x04, 0xCE, + 0x99, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x99, 0xCC, + 0x86, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x88, 0xC9, + // Bytes 3640 - 367f + 0x04, 0xCE, 0x9F, 0xCC, 0x80, 0xC9, 0x04, 0xCE, + 0x9F, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA1, 0xCC, + 0x94, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xC9, + 0x04, 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, + 0xA5, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, + 0x86, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, + 0x04, 0xCE, 0xA9, 0xCC, 0x80, 0xC9, 0x04, 0xCE, + 0xA9, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA9, 0xCD, + // Bytes 3680 - 36bf + 0x85, 0xD9, 0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xC9, + 0x04, 0xCE, 0xB1, 0xCC, 0x86, 0xC9, 0x04, 0xCE, + 0xB1, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB5, 0xCC, + 0x80, 0xC9, 0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xC9, + 0x04, 0xCE, 0xB7, 0xCD, 0x85, 0xD9, 0x04, 0xCE, + 0xB9, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xB9, 0xCC, + 0x81, 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xC9, + 0x04, 0xCE, 0xB9, 0xCC, 0x86, 0xC9, 0x04, 0xCE, + // Bytes 36c0 - 36ff + 0xB9, 0xCD, 0x82, 0xC9, 0x04, 0xCE, 0xBF, 0xCC, + 0x80, 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, + 0x04, 0xCF, 0x81, 0xCC, 0x93, 0xC9, 0x04, 0xCF, + 0x81, 0xCC, 0x94, 0xC9, 0x04, 0xCF, 0x85, 0xCC, + 0x80, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x81, 0xC9, + 0x04, 0xCF, 0x85, 0xCC, 0x84, 0xC9, 0x04, 0xCF, + 0x85, 0xCC, 0x86, 0xC9, 0x04, 0xCF, 0x85, 0xCD, + 0x82, 0xC9, 0x04, 0xCF, 0x89, 0xCD, 0x85, 0xD9, + // Bytes 3700 - 373f + 0x04, 0xCF, 0x92, 0xCC, 0x81, 0xC9, 0x04, 0xCF, + 0x92, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x86, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0x90, 0xCC, 0x86, 0xC9, + 0x04, 0xD0, 0x90, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0x93, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x95, 0xCC, + 0x80, 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x86, 0xC9, + 0x04, 0xD0, 0x95, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0x96, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x96, 0xCC, + // Bytes 3740 - 377f + 0x88, 0xC9, 0x04, 0xD0, 0x97, 0xCC, 0x88, 0xC9, + 0x04, 0xD0, 0x98, 0xCC, 0x80, 0xC9, 0x04, 0xD0, + 0x98, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0x98, 0xCC, + 0x86, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x88, 0xC9, + 0x04, 0xD0, 0x9A, 0xCC, 0x81, 0xC9, 0x04, 0xD0, + 0x9E, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, + 0x84, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xC9, + 0x04, 0xD0, 0xA3, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + // Bytes 3780 - 37bf + 0xA3, 0xCC, 0x8B, 0xC9, 0x04, 0xD0, 0xA7, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xC9, + 0x04, 0xD0, 0xAD, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0xB0, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xC9, + 0x04, 0xD0, 0xB5, 0xCC, 0x80, 0xC9, 0x04, 0xD0, + 0xB5, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xC9, + // Bytes 37c0 - 37ff + 0x04, 0xD0, 0xB6, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0xB7, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, + 0x80, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xC9, + 0x04, 0xD0, 0xB8, 0xCC, 0x86, 0xC9, 0x04, 0xD0, + 0xB8, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xBA, 0xCC, + 0x81, 0xC9, 0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xC9, + 0x04, 0xD1, 0x83, 0xCC, 0x84, 0xC9, 0x04, 0xD1, + 0x83, 0xCC, 0x86, 0xC9, 0x04, 0xD1, 0x83, 0xCC, + // Bytes 3800 - 383f + 0x88, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xC9, + 0x04, 0xD1, 0x87, 0xCC, 0x88, 0xC9, 0x04, 0xD1, + 0x8B, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8D, 0xCC, + 0x88, 0xC9, 0x04, 0xD1, 0x96, 0xCC, 0x88, 0xC9, + 0x04, 0xD1, 0xB4, 0xCC, 0x8F, 0xC9, 0x04, 0xD1, + 0xB5, 0xCC, 0x8F, 0xC9, 0x04, 0xD3, 0x98, 0xCC, + 0x88, 0xC9, 0x04, 0xD3, 0x99, 0xCC, 0x88, 0xC9, + 0x04, 0xD3, 0xA8, 0xCC, 0x88, 0xC9, 0x04, 0xD3, + // Bytes 3840 - 387f + 0xA9, 0xCC, 0x88, 0xC9, 0x04, 0xD8, 0xA7, 0xD9, + 0x93, 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x04, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, 0x04, 0xD9, + 0x88, 0xD9, 0x94, 0xC9, 0x04, 0xD9, 0x8A, 0xD9, + 0x94, 0xC9, 0x04, 0xDB, 0x81, 0xD9, 0x94, 0xC9, + 0x04, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x04, 0xDB, + 0x95, 0xD9, 0x94, 0xC9, 0x05, 0x41, 0xCC, 0x82, + 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, + // Bytes 3880 - 38bf + 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83, + 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xCA, + 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05, + 0x41, 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x41, + 0xCC, 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, 0x87, + 0xCC, 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x88, 0xCC, + 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81, + // Bytes 38c0 - 38ff + 0xCA, 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, + 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05, + 0x43, 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x45, + 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x45, 0xCC, + 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, + 0xCC, 0x83, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x89, 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80, + 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x81, 0xCA, + // Bytes 3900 - 393f + 0x05, 0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x45, 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x49, + 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x4C, 0xCC, + 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x82, + 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, + 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83, + 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xCA, + 0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, + // Bytes 3940 - 397f + 0x4F, 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x4F, + 0xCC, 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x4F, 0xCC, + 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x84, + 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x87, 0xCC, + 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84, + 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, + 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, + 0x4F, 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x4F, + // Bytes 3980 - 39bf + 0xCC, 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0xA3, 0xB6, 0x05, 0x4F, 0xCC, 0xA3, + 0xCC, 0x82, 0xCA, 0x05, 0x4F, 0xCC, 0xA8, 0xCC, + 0x84, 0xCA, 0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84, + 0xCA, 0x05, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xCA, + 0x05, 0x53, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05, + 0x53, 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x55, + 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, + // Bytes 39c0 - 39ff + 0x84, 0xCC, 0x88, 0xCA, 0x05, 0x55, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84, + 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xCA, + 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, + 0x55, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x55, + 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x55, 0xCC, 0x9B, + // Bytes 3a00 - 3a3f + 0xCC, 0xA3, 0xB6, 0x05, 0x61, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x61, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x61, + 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, + 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x87, 0xCC, + // Bytes 3a40 - 3a7f + 0x84, 0xCA, 0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84, + 0xCA, 0x05, 0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, + 0x05, 0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x61, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x63, + 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, + 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, 0x82, + 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, + 0x83, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89, + // Bytes 3a80 - 3abf + 0xCA, 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xCA, + 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, + 0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x65, + 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x69, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x6C, 0xCC, 0xA3, + 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + // Bytes 3ac0 - 3aff + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x6F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, + 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x6F, 0xCC, 0x84, + 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, + 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84, + 0xCA, 0x05, 0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, + 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, + // Bytes 3b00 - 3b3f + 0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, + 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, + 0xCC, 0xA3, 0xB6, 0x05, 0x6F, 0xCC, 0xA3, 0xCC, + 0x82, 0xCA, 0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84, + 0xCA, 0x05, 0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, + 0x05, 0x73, 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, + 0x73, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x73, + // Bytes 3b40 - 3b7f + 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x75, 0xCC, + 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x84, + 0xCC, 0x88, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, + 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x84, 0xCA, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, + 0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x75, + 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC, + // Bytes 3b80 - 3bbf + 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x89, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0xA3, 0xB6, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, + 0xCA, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xCA, + 0x05, 0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0xCA, 0x05, + 0xE1, 0xBF, 0xBE, 0xCC, 0x80, 0xCA, 0x05, 0xE1, + 0xBF, 0xBE, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBF, + 0xBE, 0xCD, 0x82, 0xCA, 0x05, 0xE2, 0x86, 0x90, + // Bytes 3bc0 - 3bff + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x92, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x87, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x87, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, + 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x8B, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA3, 0xCC, + // Bytes 3c00 - 3c3f + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0x83, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0x85, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x89, 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x8D, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA1, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA4, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, + // Bytes 3c40 - 3c7f + 0x05, 0x05, 0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xB6, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x89, 0xB7, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xBA, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBB, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBC, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x05, + // Bytes 3c80 - 3cbf + 0x05, 0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0x86, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0x87, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0x91, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x92, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA2, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3cc0 - 3cff + 0xE2, 0x8A, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xB4, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB5, + 0xCC, 0xB8, 0x05, 0x06, 0xCE, 0x91, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x91, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x95, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94, + // Bytes 3d00 - 3d3f + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x97, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x97, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x99, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, + // Bytes 3d40 - 3d7f + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, + // Bytes 3d80 - 3dbf + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xA9, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xA9, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x80, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x81, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCD, 0x82, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB5, 0xCC, 0x93, + // Bytes 3dc0 - 3dff + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB7, 0xCC, 0x80, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x81, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCD, 0x82, + // Bytes 3e00 - 3e3f + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, + // Bytes 3e40 - 3e7f + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, + // Bytes 3e80 - 3ebf + 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, + 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x89, 0xCC, 0x80, + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x81, + // Bytes 3ec0 - 3eff + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCD, 0x82, + 0xCD, 0x85, 0xDA, 0x06, 0xE0, 0xA4, 0xA8, 0xE0, + 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB0, 0xE0, + 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB3, 0xE0, + 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xB1, 0x86, 0xE0, + 0xB1, 0x96, 0x85, 0x06, 0xE0, 0xB7, 0x99, 0xE0, + // Bytes 3f00 - 3f3f + 0xB7, 0x8A, 0x11, 0x06, 0xE3, 0x81, 0x86, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8B, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8D, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8F, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x91, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x93, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x95, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x97, 0xE3, + // Bytes 3f40 - 3f7f + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x99, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9B, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9D, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9F, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA1, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA4, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA6, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA8, 0xE3, + // Bytes 3f80 - 3fbf + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3, + // Bytes 3fc0 - 3fff + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x82, 0x9D, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xA6, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAB, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAD, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB1, 0xE3, + // Bytes 4000 - 403f + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB3, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB5, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB7, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB9, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBB, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBD, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x81, 0xE3, + // Bytes 4040 - 407f + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x84, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x86, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3, + // Bytes 4080 - 40bf + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0xAF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB0, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB1, 0xE3, + // Bytes 40c0 - 40ff + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB2, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xBD, 0xE3, + 0x82, 0x99, 0x0D, 0x08, 0xCE, 0x91, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, + // Bytes 4100 - 413f + 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93, + 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + // Bytes 4140 - 417f + 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, + 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, + // Bytes 4180 - 41bf + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93, + 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, + // Bytes 41c0 - 41ff + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, + 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, + // Bytes 4200 - 423f + 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93, + 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, + 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, + 0xCD, 0x85, 0xDB, 0x08, 0xF0, 0x91, 0x82, 0x99, + // Bytes 4240 - 427f + 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, + 0x82, 0x9B, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08, + 0xF0, 0x91, 0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA, + 0x09, 0x42, 0xC2, 0xB4, 0x01, 0x43, 0x20, 0xCC, + 0x81, 0xC9, 0x43, 0x20, 0xCC, 0x83, 0xC9, 0x43, + 0x20, 0xCC, 0x84, 0xC9, 0x43, 0x20, 0xCC, 0x85, + 0xC9, 0x43, 0x20, 0xCC, 0x86, 0xC9, 0x43, 0x20, + 0xCC, 0x87, 0xC9, 0x43, 0x20, 0xCC, 0x88, 0xC9, + // Bytes 4280 - 42bf + 0x43, 0x20, 0xCC, 0x8A, 0xC9, 0x43, 0x20, 0xCC, + 0x8B, 0xC9, 0x43, 0x20, 0xCC, 0x93, 0xC9, 0x43, + 0x20, 0xCC, 0x94, 0xC9, 0x43, 0x20, 0xCC, 0xA7, + 0xA5, 0x43, 0x20, 0xCC, 0xA8, 0xA5, 0x43, 0x20, + 0xCC, 0xB3, 0xB5, 0x43, 0x20, 0xCD, 0x82, 0xC9, + 0x43, 0x20, 0xCD, 0x85, 0xD9, 0x43, 0x20, 0xD9, + 0x8B, 0x59, 0x43, 0x20, 0xD9, 0x8C, 0x5D, 0x43, + 0x20, 0xD9, 0x8D, 0x61, 0x43, 0x20, 0xD9, 0x8E, + // Bytes 42c0 - 42ff + 0x65, 0x43, 0x20, 0xD9, 0x8F, 0x69, 0x43, 0x20, + 0xD9, 0x90, 0x6D, 0x43, 0x20, 0xD9, 0x91, 0x71, + 0x43, 0x20, 0xD9, 0x92, 0x75, 0x43, 0x41, 0xCC, + 0x8A, 0xC9, 0x43, 0x73, 0xCC, 0x87, 0xC9, 0x44, + 0x20, 0xE3, 0x82, 0x99, 0x0D, 0x44, 0x20, 0xE3, + 0x82, 0x9A, 0x0D, 0x44, 0xC2, 0xA8, 0xCC, 0x81, + 0xCA, 0x44, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x44, + 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x97, + // Bytes 4300 - 433f + 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x99, 0xCC, 0x81, + 0xC9, 0x44, 0xCE, 0x9F, 0xCC, 0x81, 0xC9, 0x44, + 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, + 0xCC, 0x88, 0xC9, 0x44, 0xCE, 0xA9, 0xCC, 0x81, + 0xC9, 0x44, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x44, + 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB7, + 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB9, 0xCC, 0x81, + 0xC9, 0x44, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x44, + // Bytes 4340 - 437f + 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x89, + 0xCC, 0x81, 0xC9, 0x44, 0xD7, 0x90, 0xD6, 0xB7, + 0x31, 0x44, 0xD7, 0x90, 0xD6, 0xB8, 0x35, 0x44, + 0xD7, 0x90, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBF, + 0x49, 0x44, 0xD7, 0x92, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x93, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x94, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x95, 0xD6, 0xB9, + // Bytes 4380 - 43bf + 0x39, 0x44, 0xD7, 0x95, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x96, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x98, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x99, 0xD6, 0xB4, + 0x25, 0x44, 0xD7, 0x99, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x9A, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBF, + 0x49, 0x44, 0xD7, 0x9C, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x9E, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA0, + // Bytes 43c0 - 43ff + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA1, 0xD6, 0xBC, + 0x41, 0x44, 0xD7, 0xA3, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0xA4, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, + 0xD6, 0xBF, 0x49, 0x44, 0xD7, 0xA6, 0xD6, 0xBC, + 0x41, 0x44, 0xD7, 0xA7, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0xA8, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD7, 0x81, + 0x4D, 0x44, 0xD7, 0xA9, 0xD7, 0x82, 0x51, 0x44, + // Bytes 4400 - 443f + 0xD7, 0xAA, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xB2, + 0xD6, 0xB7, 0x31, 0x44, 0xD8, 0xA7, 0xD9, 0x8B, + 0x59, 0x44, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x44, + 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x44, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x44, 0xD8, 0xB0, 0xD9, 0xB0, + 0x79, 0x44, 0xD8, 0xB1, 0xD9, 0xB0, 0x79, 0x44, + 0xD9, 0x80, 0xD9, 0x8B, 0x59, 0x44, 0xD9, 0x80, + 0xD9, 0x8E, 0x65, 0x44, 0xD9, 0x80, 0xD9, 0x8F, + // Bytes 4440 - 447f + 0x69, 0x44, 0xD9, 0x80, 0xD9, 0x90, 0x6D, 0x44, + 0xD9, 0x80, 0xD9, 0x91, 0x71, 0x44, 0xD9, 0x80, + 0xD9, 0x92, 0x75, 0x44, 0xD9, 0x87, 0xD9, 0xB0, + 0x79, 0x44, 0xD9, 0x88, 0xD9, 0x94, 0xC9, 0x44, + 0xD9, 0x89, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x8A, + 0xD9, 0x94, 0xC9, 0x44, 0xDB, 0x92, 0xD9, 0x94, + 0xC9, 0x44, 0xDB, 0x95, 0xD9, 0x94, 0xC9, 0x45, + 0x20, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x45, 0x20, + // Bytes 4480 - 44bf + 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, + 0x88, 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, + 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x45, + 0x20, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x45, 0x20, + 0xD9, 0x8C, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, + // Bytes 44c0 - 44ff + 0x8D, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8E, + 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8F, 0xD9, + 0x91, 0x72, 0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91, + 0x72, 0x45, 0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7A, + 0x45, 0xE2, 0xAB, 0x9D, 0xCC, 0xB8, 0x05, 0x46, + 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46, + 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46, + 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0x4E, 0x46, + // Bytes 4500 - 453f + 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x82, 0x52, 0x46, + 0xD9, 0x80, 0xD9, 0x8E, 0xD9, 0x91, 0x72, 0x46, + 0xD9, 0x80, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x46, + 0xD9, 0x80, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x46, + 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0x96, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0x9C, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + // Bytes 4540 - 457f + 0xE0, 0xA4, 0xA1, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0xA2, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA6, 0xA1, 0xE0, 0xA6, 0xBC, 0x09, 0x46, + 0xE0, 0xA6, 0xA2, 0xE0, 0xA6, 0xBC, 0x09, 0x46, + 0xE0, 0xA6, 0xAF, 0xE0, 0xA6, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + // Bytes 4580 - 45bf + 0xE0, 0xA8, 0x97, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0x9C, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0xAB, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0xB2, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, 0x09, 0x46, + 0xE0, 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0x09, 0x46, + 0xE0, 0xBE, 0xB2, 0xE0, 0xBE, 0x80, 0x9D, 0x46, + // Bytes 45c0 - 45ff + 0xE0, 0xBE, 0xB3, 0xE0, 0xBE, 0x80, 0x9D, 0x46, + 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, 0x48, + 0xF0, 0x9D, 0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, + 0xAD, 0x48, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, + 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xB9, + 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, + 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x49, + 0xE0, 0xBE, 0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, + // Bytes 4600 - 463f + 0x80, 0x9E, 0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x4C, 0xF0, 0x9D, + 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, + 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, + 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, + 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xAE, 0x4C, + 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, + // Bytes 4640 - 467f + 0xF0, 0x9D, 0x85, 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, + 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + 0x85, 0xB2, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, + 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, + 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, + 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, + 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, + 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, + // Bytes 4680 - 46bf + 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + 0x85, 0xAF, 0xAE, 0x83, 0x41, 0xCC, 0x82, 0xC9, + 0x83, 0x41, 0xCC, 0x86, 0xC9, 0x83, 0x41, 0xCC, + 0x87, 0xC9, 0x83, 0x41, 0xCC, 0x88, 0xC9, 0x83, + 0x41, 0xCC, 0x8A, 0xC9, 0x83, 0x41, 0xCC, 0xA3, + 0xB5, 0x83, 0x43, 0xCC, 0xA7, 0xA5, 0x83, 0x45, + 0xCC, 0x82, 0xC9, 0x83, 0x45, 0xCC, 0x84, 0xC9, + 0x83, 0x45, 0xCC, 0xA3, 0xB5, 0x83, 0x45, 0xCC, + // Bytes 46c0 - 46ff + 0xA7, 0xA5, 0x83, 0x49, 0xCC, 0x88, 0xC9, 0x83, + 0x4C, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0x82, + 0xC9, 0x83, 0x4F, 0xCC, 0x83, 0xC9, 0x83, 0x4F, + 0xCC, 0x84, 0xC9, 0x83, 0x4F, 0xCC, 0x87, 0xC9, + 0x83, 0x4F, 0xCC, 0x88, 0xC9, 0x83, 0x4F, 0xCC, + 0x9B, 0xAD, 0x83, 0x4F, 0xCC, 0xA3, 0xB5, 0x83, + 0x4F, 0xCC, 0xA8, 0xA5, 0x83, 0x52, 0xCC, 0xA3, + 0xB5, 0x83, 0x53, 0xCC, 0x81, 0xC9, 0x83, 0x53, + // Bytes 4700 - 473f + 0xCC, 0x8C, 0xC9, 0x83, 0x53, 0xCC, 0xA3, 0xB5, + 0x83, 0x55, 0xCC, 0x83, 0xC9, 0x83, 0x55, 0xCC, + 0x84, 0xC9, 0x83, 0x55, 0xCC, 0x88, 0xC9, 0x83, + 0x55, 0xCC, 0x9B, 0xAD, 0x83, 0x61, 0xCC, 0x82, + 0xC9, 0x83, 0x61, 0xCC, 0x86, 0xC9, 0x83, 0x61, + 0xCC, 0x87, 0xC9, 0x83, 0x61, 0xCC, 0x88, 0xC9, + 0x83, 0x61, 0xCC, 0x8A, 0xC9, 0x83, 0x61, 0xCC, + 0xA3, 0xB5, 0x83, 0x63, 0xCC, 0xA7, 0xA5, 0x83, + // Bytes 4740 - 477f + 0x65, 0xCC, 0x82, 0xC9, 0x83, 0x65, 0xCC, 0x84, + 0xC9, 0x83, 0x65, 0xCC, 0xA3, 0xB5, 0x83, 0x65, + 0xCC, 0xA7, 0xA5, 0x83, 0x69, 0xCC, 0x88, 0xC9, + 0x83, 0x6C, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, + 0x82, 0xC9, 0x83, 0x6F, 0xCC, 0x83, 0xC9, 0x83, + 0x6F, 0xCC, 0x84, 0xC9, 0x83, 0x6F, 0xCC, 0x87, + 0xC9, 0x83, 0x6F, 0xCC, 0x88, 0xC9, 0x83, 0x6F, + 0xCC, 0x9B, 0xAD, 0x83, 0x6F, 0xCC, 0xA3, 0xB5, + // Bytes 4780 - 47bf + 0x83, 0x6F, 0xCC, 0xA8, 0xA5, 0x83, 0x72, 0xCC, + 0xA3, 0xB5, 0x83, 0x73, 0xCC, 0x81, 0xC9, 0x83, + 0x73, 0xCC, 0x8C, 0xC9, 0x83, 0x73, 0xCC, 0xA3, + 0xB5, 0x83, 0x75, 0xCC, 0x83, 0xC9, 0x83, 0x75, + 0xCC, 0x84, 0xC9, 0x83, 0x75, 0xCC, 0x88, 0xC9, + 0x83, 0x75, 0xCC, 0x9B, 0xAD, 0x84, 0xCE, 0x91, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x91, 0xCC, 0x94, + 0xC9, 0x84, 0xCE, 0x95, 0xCC, 0x93, 0xC9, 0x84, + // Bytes 47c0 - 47ff + 0xCE, 0x95, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x97, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x94, + 0xC9, 0x84, 0xCE, 0x99, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0x99, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x9F, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x94, + 0xC9, 0x84, 0xCE, 0xA5, 0xCC, 0x94, 0xC9, 0x84, + 0xCE, 0xA9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xA9, + 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x80, + // Bytes 4800 - 483f + 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x84, + 0xCE, 0xB1, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB1, + 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCD, 0x82, + 0xC9, 0x84, 0xCE, 0xB5, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0xB5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7, + 0xCC, 0x80, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x81, + 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0xB7, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7, + // Bytes 4840 - 487f + 0xCD, 0x82, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x88, + 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0xB9, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xBF, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x94, + 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x88, 0xC9, 0x84, + 0xCF, 0x85, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x85, + 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x80, + 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x81, 0xC9, 0x84, + // Bytes 4880 - 48bf + 0xCF, 0x89, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x89, + 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCD, 0x82, + 0xC9, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82, + // Bytes 48c0 - 48ff + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, + // Bytes 4900 - 493f + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80, + // Bytes 4940 - 497f + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, + // Bytes 4980 - 49bf + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x42, 0xCC, 0x80, 0xC9, 0x32, 0x42, 0xCC, + 0x81, 0xC9, 0x32, 0x42, 0xCC, 0x93, 0xC9, 0x32, + // Bytes 49c0 - 49ff + 0x43, 0xE1, 0x85, 0xA1, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xA2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA3, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA4, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xA5, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xA6, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA7, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA8, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xA9, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAB, + // Bytes 4a00 - 4a3f + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAC, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xAD, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xAE, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAF, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB0, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xB1, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xB2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB3, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB4, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xB5, 0x01, 0x00, 0x43, 0xE1, + // Bytes 4a40 - 4a7f + 0x86, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAC, + 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAD, 0x01, 0x00, + 0x43, 0xE1, 0x86, 0xB0, 0x01, 0x00, 0x43, 0xE1, + 0x86, 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB2, + 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB3, 0x01, 0x00, + 0x43, 0xE1, 0x86, 0xB4, 0x01, 0x00, 0x43, 0xE1, + 0x86, 0xB5, 0x01, 0x00, 0x44, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x32, 0x43, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4a80 - 4abf + 0x03, 0x43, 0xE3, 0x82, 0x9A, 0x0D, 0x03, 0x46, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0x9E, 0x26, + 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, + 0x26, 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, + 0x9E, 0x26, 0x00, 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10610 bytes (10.36 KiB). Checksum: 95e8869a9f81e5e6. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 46: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 46 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 48 blocks, 3072 entries, 6144 bytes +// The third block is the zero block. +var nfcValues = [3072]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f, + 0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe, + 0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107, + 0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0, + 0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238, + 0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288, + 0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6, + 0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753, + 0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762, + 0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6, + 0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c, + // Block 0x4, offset 0x100 + 0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab, + 0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9, + 0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8, + 0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305, + 0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c, + 0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355, + 0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391, + 0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9, + 0x130: 0x308f, 0x134: 0x30b7, 0x135: 0x33c3, + 0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df, + 0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb, + // Block 0x5, offset 0x140 + 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b, + 0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422, + 0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f, + 0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486, + 0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490, + 0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd, + 0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799, + 0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5, + 0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b, + 0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a, + 0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143, + 0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb, + 0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53, + 0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8, + 0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2, + 0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0, + 0x1b0: 0x33c8, 0x1b4: 0x302b, 0x1b5: 0x3337, + 0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49, + 0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319, + 0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af, + 0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c, + 0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9, + 0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8, + 0x1de: 0x305d, 0x1df: 0x3369, + 0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e, + 0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c, + 0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35a4, + 0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628, + 0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac, + 0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3724, 0x2c1: 0x3730, 0x2c3: 0x371e, + 0x2c6: 0xa000, 0x2c7: 0x370c, + 0x2cc: 0x3760, 0x2cd: 0x3748, 0x2ce: 0x3772, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3754, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d8, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3736, 0x302: 0x37ba, + 0x310: 0x3712, 0x311: 0x3796, + 0x312: 0x3718, 0x313: 0x379c, 0x316: 0x372a, 0x317: 0x37ae, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x382c, 0x31b: 0x3832, 0x31c: 0x373c, 0x31d: 0x37c0, + 0x31e: 0x3742, 0x31f: 0x37c6, 0x322: 0x374e, 0x323: 0x37d2, + 0x324: 0x375a, 0x325: 0x37de, 0x326: 0x3766, 0x327: 0x37ea, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3838, 0x32b: 0x383e, 0x32c: 0x3790, 0x32d: 0x3814, 0x32e: 0x376c, 0x32f: 0x37f0, + 0x330: 0x3778, 0x331: 0x37fc, 0x332: 0x377e, 0x333: 0x3802, 0x334: 0x3784, 0x335: 0x3808, + 0x338: 0x378a, 0x339: 0x380e, + // Block 0xd, offset 0x340 + 0x351: 0x812d, + 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, + 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, + 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, + 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, + 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, + 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, + 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, + 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, + 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, + 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x812d, + 0x3b0: 0x811e, + // Block 0xf, offset 0x3c0 + 0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d, + 0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d, + 0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d, + 0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132, + 0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132, + 0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d29, 0x407: 0xa000, 0x408: 0x2d31, 0x409: 0xa000, 0x40a: 0x2d39, 0x40b: 0xa000, + 0x40c: 0x2d41, 0x40d: 0xa000, 0x40e: 0x2d49, 0x411: 0xa000, + 0x412: 0x2d51, + 0x434: 0x8102, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d59, + 0x43c: 0xa000, 0x43d: 0x2d61, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132, + 0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132, + 0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132, + 0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132, + 0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132, + 0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132, + 0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132, + 0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132, + 0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132, + 0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132, + 0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d, + // Block 0x12, offset 0x480 + 0x480: 0x2f9a, 0x481: 0x32a6, 0x482: 0x2fa4, 0x483: 0x32b0, 0x484: 0x2fa9, 0x485: 0x32b5, + 0x486: 0x2fae, 0x487: 0x32ba, 0x488: 0x38cf, 0x489: 0x3a5e, 0x48a: 0x2fc7, 0x48b: 0x32d3, + 0x48c: 0x2fd1, 0x48d: 0x32dd, 0x48e: 0x2fe0, 0x48f: 0x32ec, 0x490: 0x2fd6, 0x491: 0x32e2, + 0x492: 0x2fdb, 0x493: 0x32e7, 0x494: 0x38f2, 0x495: 0x3a81, 0x496: 0x38f9, 0x497: 0x3a88, + 0x498: 0x301c, 0x499: 0x3328, 0x49a: 0x3021, 0x49b: 0x332d, 0x49c: 0x3907, 0x49d: 0x3a96, + 0x49e: 0x3026, 0x49f: 0x3332, 0x4a0: 0x3035, 0x4a1: 0x3341, 0x4a2: 0x3053, 0x4a3: 0x335f, + 0x4a4: 0x3062, 0x4a5: 0x336e, 0x4a6: 0x3058, 0x4a7: 0x3364, 0x4a8: 0x3067, 0x4a9: 0x3373, + 0x4aa: 0x306c, 0x4ab: 0x3378, 0x4ac: 0x30b2, 0x4ad: 0x33be, 0x4ae: 0x390e, 0x4af: 0x3a9d, + 0x4b0: 0x30bc, 0x4b1: 0x33cd, 0x4b2: 0x30c6, 0x4b3: 0x33d7, 0x4b4: 0x30d0, 0x4b5: 0x33e1, + 0x4b6: 0x46c7, 0x4b7: 0x4758, 0x4b8: 0x3915, 0x4b9: 0x3aa4, 0x4ba: 0x30e9, 0x4bb: 0x33fa, + 0x4bc: 0x30e4, 0x4bd: 0x33f5, 0x4be: 0x30ee, 0x4bf: 0x33ff, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x30f3, 0x4c1: 0x3404, 0x4c2: 0x30f8, 0x4c3: 0x3409, 0x4c4: 0x310c, 0x4c5: 0x341d, + 0x4c6: 0x3116, 0x4c7: 0x3427, 0x4c8: 0x3125, 0x4c9: 0x3436, 0x4ca: 0x3120, 0x4cb: 0x3431, + 0x4cc: 0x3938, 0x4cd: 0x3ac7, 0x4ce: 0x3946, 0x4cf: 0x3ad5, 0x4d0: 0x394d, 0x4d1: 0x3adc, + 0x4d2: 0x3954, 0x4d3: 0x3ae3, 0x4d4: 0x3152, 0x4d5: 0x3463, 0x4d6: 0x3157, 0x4d7: 0x3468, + 0x4d8: 0x3161, 0x4d9: 0x3472, 0x4da: 0x46f4, 0x4db: 0x4785, 0x4dc: 0x399a, 0x4dd: 0x3b29, + 0x4de: 0x317a, 0x4df: 0x348b, 0x4e0: 0x3184, 0x4e1: 0x3495, 0x4e2: 0x4703, 0x4e3: 0x4794, + 0x4e4: 0x39a1, 0x4e5: 0x3b30, 0x4e6: 0x39a8, 0x4e7: 0x3b37, 0x4e8: 0x39af, 0x4e9: 0x3b3e, + 0x4ea: 0x3193, 0x4eb: 0x34a4, 0x4ec: 0x319d, 0x4ed: 0x34b3, 0x4ee: 0x31b1, 0x4ef: 0x34c7, + 0x4f0: 0x31ac, 0x4f1: 0x34c2, 0x4f2: 0x31ed, 0x4f3: 0x3503, 0x4f4: 0x31fc, 0x4f5: 0x3512, + 0x4f6: 0x31f7, 0x4f7: 0x350d, 0x4f8: 0x39b6, 0x4f9: 0x3b45, 0x4fa: 0x39bd, 0x4fb: 0x3b4c, + 0x4fc: 0x3201, 0x4fd: 0x3517, 0x4fe: 0x3206, 0x4ff: 0x351c, + // Block 0x14, offset 0x500 + 0x500: 0x320b, 0x501: 0x3521, 0x502: 0x3210, 0x503: 0x3526, 0x504: 0x321f, 0x505: 0x3535, + 0x506: 0x321a, 0x507: 0x3530, 0x508: 0x3224, 0x509: 0x353f, 0x50a: 0x3229, 0x50b: 0x3544, + 0x50c: 0x322e, 0x50d: 0x3549, 0x50e: 0x324c, 0x50f: 0x3567, 0x510: 0x3265, 0x511: 0x3585, + 0x512: 0x3274, 0x513: 0x3594, 0x514: 0x3279, 0x515: 0x3599, 0x516: 0x337d, 0x517: 0x34a9, + 0x518: 0x353a, 0x519: 0x3576, 0x51b: 0x35d4, + 0x520: 0x46a4, 0x521: 0x4735, 0x522: 0x2f86, 0x523: 0x3292, + 0x524: 0x387b, 0x525: 0x3a0a, 0x526: 0x3874, 0x527: 0x3a03, 0x528: 0x3889, 0x529: 0x3a18, + 0x52a: 0x3882, 0x52b: 0x3a11, 0x52c: 0x38c1, 0x52d: 0x3a50, 0x52e: 0x3897, 0x52f: 0x3a26, + 0x530: 0x3890, 0x531: 0x3a1f, 0x532: 0x38a5, 0x533: 0x3a34, 0x534: 0x389e, 0x535: 0x3a2d, + 0x536: 0x38c8, 0x537: 0x3a57, 0x538: 0x46b8, 0x539: 0x4749, 0x53a: 0x3003, 0x53b: 0x330f, + 0x53c: 0x2fef, 0x53d: 0x32fb, 0x53e: 0x38dd, 0x53f: 0x3a6c, + // Block 0x15, offset 0x540 + 0x540: 0x38d6, 0x541: 0x3a65, 0x542: 0x38eb, 0x543: 0x3a7a, 0x544: 0x38e4, 0x545: 0x3a73, + 0x546: 0x3900, 0x547: 0x3a8f, 0x548: 0x3094, 0x549: 0x33a0, 0x54a: 0x30a8, 0x54b: 0x33b4, + 0x54c: 0x46ea, 0x54d: 0x477b, 0x54e: 0x3139, 0x54f: 0x344a, 0x550: 0x3923, 0x551: 0x3ab2, + 0x552: 0x391c, 0x553: 0x3aab, 0x554: 0x3931, 0x555: 0x3ac0, 0x556: 0x392a, 0x557: 0x3ab9, + 0x558: 0x398c, 0x559: 0x3b1b, 0x55a: 0x3970, 0x55b: 0x3aff, 0x55c: 0x3969, 0x55d: 0x3af8, + 0x55e: 0x397e, 0x55f: 0x3b0d, 0x560: 0x3977, 0x561: 0x3b06, 0x562: 0x3985, 0x563: 0x3b14, + 0x564: 0x31e8, 0x565: 0x34fe, 0x566: 0x31ca, 0x567: 0x34e0, 0x568: 0x39e7, 0x569: 0x3b76, + 0x56a: 0x39e0, 0x56b: 0x3b6f, 0x56c: 0x39f5, 0x56d: 0x3b84, 0x56e: 0x39ee, 0x56f: 0x3b7d, + 0x570: 0x39fc, 0x571: 0x3b8b, 0x572: 0x3233, 0x573: 0x354e, 0x574: 0x325b, 0x575: 0x357b, + 0x576: 0x3256, 0x577: 0x3571, 0x578: 0x3242, 0x579: 0x355d, + // Block 0x16, offset 0x580 + 0x580: 0x4807, 0x581: 0x480d, 0x582: 0x4921, 0x583: 0x4939, 0x584: 0x4929, 0x585: 0x4941, + 0x586: 0x4931, 0x587: 0x4949, 0x588: 0x47ad, 0x589: 0x47b3, 0x58a: 0x4891, 0x58b: 0x48a9, + 0x58c: 0x4899, 0x58d: 0x48b1, 0x58e: 0x48a1, 0x58f: 0x48b9, 0x590: 0x4819, 0x591: 0x481f, + 0x592: 0x3dbb, 0x593: 0x3dcb, 0x594: 0x3dc3, 0x595: 0x3dd3, + 0x598: 0x47b9, 0x599: 0x47bf, 0x59a: 0x3ceb, 0x59b: 0x3cfb, 0x59c: 0x3cf3, 0x59d: 0x3d03, + 0x5a0: 0x4831, 0x5a1: 0x4837, 0x5a2: 0x4951, 0x5a3: 0x4969, + 0x5a4: 0x4959, 0x5a5: 0x4971, 0x5a6: 0x4961, 0x5a7: 0x4979, 0x5a8: 0x47c5, 0x5a9: 0x47cb, + 0x5aa: 0x48c1, 0x5ab: 0x48d9, 0x5ac: 0x48c9, 0x5ad: 0x48e1, 0x5ae: 0x48d1, 0x5af: 0x48e9, + 0x5b0: 0x4849, 0x5b1: 0x484f, 0x5b2: 0x3e1b, 0x5b3: 0x3e33, 0x5b4: 0x3e23, 0x5b5: 0x3e3b, + 0x5b6: 0x3e2b, 0x5b7: 0x3e43, 0x5b8: 0x47d1, 0x5b9: 0x47d7, 0x5ba: 0x3d1b, 0x5bb: 0x3d33, + 0x5bc: 0x3d23, 0x5bd: 0x3d3b, 0x5be: 0x3d2b, 0x5bf: 0x3d43, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x4855, 0x5c1: 0x485b, 0x5c2: 0x3e4b, 0x5c3: 0x3e5b, 0x5c4: 0x3e53, 0x5c5: 0x3e63, + 0x5c8: 0x47dd, 0x5c9: 0x47e3, 0x5ca: 0x3d4b, 0x5cb: 0x3d5b, + 0x5cc: 0x3d53, 0x5cd: 0x3d63, 0x5d0: 0x4867, 0x5d1: 0x486d, + 0x5d2: 0x3e83, 0x5d3: 0x3e9b, 0x5d4: 0x3e8b, 0x5d5: 0x3ea3, 0x5d6: 0x3e93, 0x5d7: 0x3eab, + 0x5d9: 0x47e9, 0x5db: 0x3d6b, 0x5dd: 0x3d73, + 0x5df: 0x3d7b, 0x5e0: 0x487f, 0x5e1: 0x4885, 0x5e2: 0x4981, 0x5e3: 0x4999, + 0x5e4: 0x4989, 0x5e5: 0x49a1, 0x5e6: 0x4991, 0x5e7: 0x49a9, 0x5e8: 0x47ef, 0x5e9: 0x47f5, + 0x5ea: 0x48f1, 0x5eb: 0x4909, 0x5ec: 0x48f9, 0x5ed: 0x4911, 0x5ee: 0x4901, 0x5ef: 0x4919, + 0x5f0: 0x47fb, 0x5f1: 0x4321, 0x5f2: 0x3694, 0x5f3: 0x4327, 0x5f4: 0x4825, 0x5f5: 0x432d, + 0x5f6: 0x36a6, 0x5f7: 0x4333, 0x5f8: 0x36c4, 0x5f9: 0x4339, 0x5fa: 0x36dc, 0x5fb: 0x433f, + 0x5fc: 0x4873, 0x5fd: 0x4345, + // Block 0x18, offset 0x600 + 0x600: 0x3da3, 0x601: 0x3dab, 0x602: 0x4187, 0x603: 0x41a5, 0x604: 0x4191, 0x605: 0x41af, + 0x606: 0x419b, 0x607: 0x41b9, 0x608: 0x3cdb, 0x609: 0x3ce3, 0x60a: 0x40d3, 0x60b: 0x40f1, + 0x60c: 0x40dd, 0x60d: 0x40fb, 0x60e: 0x40e7, 0x60f: 0x4105, 0x610: 0x3deb, 0x611: 0x3df3, + 0x612: 0x41c3, 0x613: 0x41e1, 0x614: 0x41cd, 0x615: 0x41eb, 0x616: 0x41d7, 0x617: 0x41f5, + 0x618: 0x3d0b, 0x619: 0x3d13, 0x61a: 0x410f, 0x61b: 0x412d, 0x61c: 0x4119, 0x61d: 0x4137, + 0x61e: 0x4123, 0x61f: 0x4141, 0x620: 0x3ec3, 0x621: 0x3ecb, 0x622: 0x41ff, 0x623: 0x421d, + 0x624: 0x4209, 0x625: 0x4227, 0x626: 0x4213, 0x627: 0x4231, 0x628: 0x3d83, 0x629: 0x3d8b, + 0x62a: 0x414b, 0x62b: 0x4169, 0x62c: 0x4155, 0x62d: 0x4173, 0x62e: 0x415f, 0x62f: 0x417d, + 0x630: 0x3688, 0x631: 0x3682, 0x632: 0x3d93, 0x633: 0x368e, 0x634: 0x3d9b, + 0x636: 0x4813, 0x637: 0x3db3, 0x638: 0x35f8, 0x639: 0x35f2, 0x63a: 0x35e6, 0x63b: 0x42f1, + 0x63c: 0x35fe, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100, + // Block 0x19, offset 0x640 + 0x640: 0x8100, 0x641: 0x35aa, 0x642: 0x3ddb, 0x643: 0x36a0, 0x644: 0x3de3, + 0x646: 0x483d, 0x647: 0x3dfb, 0x648: 0x3604, 0x649: 0x42f7, 0x64a: 0x3610, 0x64b: 0x42fd, + 0x64c: 0x361c, 0x64d: 0x3b92, 0x64e: 0x3b99, 0x64f: 0x3ba0, 0x650: 0x36b8, 0x651: 0x36b2, + 0x652: 0x3e03, 0x653: 0x44e7, 0x656: 0x36be, 0x657: 0x3e13, + 0x658: 0x3634, 0x659: 0x362e, 0x65a: 0x3622, 0x65b: 0x4303, 0x65d: 0x3ba7, + 0x65e: 0x3bae, 0x65f: 0x3bb5, 0x660: 0x36ee, 0x661: 0x36e8, 0x662: 0x3e6b, 0x663: 0x44ef, + 0x664: 0x36d0, 0x665: 0x36d6, 0x666: 0x36f4, 0x667: 0x3e7b, 0x668: 0x3664, 0x669: 0x365e, + 0x66a: 0x3652, 0x66b: 0x430f, 0x66c: 0x364c, 0x66d: 0x359e, 0x66e: 0x42eb, 0x66f: 0x0081, + 0x672: 0x3eb3, 0x673: 0x36fa, 0x674: 0x3ebb, + 0x676: 0x488b, 0x677: 0x3ed3, 0x678: 0x3640, 0x679: 0x4309, 0x67a: 0x3670, 0x67b: 0x431b, + 0x67c: 0x367c, 0x67d: 0x4259, 0x67e: 0xa100, + // Block 0x1a, offset 0x680 + 0x681: 0x3c09, 0x683: 0xa000, 0x684: 0x3c10, 0x685: 0xa000, + 0x687: 0x3c17, 0x688: 0xa000, 0x689: 0x3c1e, + 0x68d: 0xa000, + 0x6a0: 0x2f68, 0x6a1: 0xa000, 0x6a2: 0x3c2c, + 0x6a4: 0xa000, 0x6a5: 0xa000, + 0x6ad: 0x3c25, 0x6ae: 0x2f63, 0x6af: 0x2f6d, + 0x6b0: 0x3c33, 0x6b1: 0x3c3a, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c41, 0x6b5: 0x3c48, + 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4f, 0x6b9: 0x3c56, 0x6ba: 0xa000, 0x6bb: 0xa000, + 0x6bc: 0xa000, 0x6bd: 0xa000, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3c5d, 0x6c1: 0x3c64, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c79, 0x6c5: 0x3c80, + 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c87, 0x6c9: 0x3c8e, + 0x6d1: 0xa000, + 0x6d2: 0xa000, + 0x6e2: 0xa000, + 0x6e8: 0xa000, 0x6e9: 0xa000, + 0x6eb: 0xa000, 0x6ec: 0x3ca3, 0x6ed: 0x3caa, 0x6ee: 0x3cb1, 0x6ef: 0x3cb8, + 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, + // Block 0x1c, offset 0x700 + 0x706: 0xa000, 0x70b: 0xa000, + 0x70c: 0x3f0b, 0x70d: 0xa000, 0x70e: 0x3f13, 0x70f: 0xa000, 0x710: 0x3f1b, 0x711: 0xa000, + 0x712: 0x3f23, 0x713: 0xa000, 0x714: 0x3f2b, 0x715: 0xa000, 0x716: 0x3f33, 0x717: 0xa000, + 0x718: 0x3f3b, 0x719: 0xa000, 0x71a: 0x3f43, 0x71b: 0xa000, 0x71c: 0x3f4b, 0x71d: 0xa000, + 0x71e: 0x3f53, 0x71f: 0xa000, 0x720: 0x3f5b, 0x721: 0xa000, 0x722: 0x3f63, + 0x724: 0xa000, 0x725: 0x3f6b, 0x726: 0xa000, 0x727: 0x3f73, 0x728: 0xa000, 0x729: 0x3f7b, + 0x72f: 0xa000, + 0x730: 0x3f83, 0x731: 0x3f8b, 0x732: 0xa000, 0x733: 0x3f93, 0x734: 0x3f9b, 0x735: 0xa000, + 0x736: 0x3fa3, 0x737: 0x3fab, 0x738: 0xa000, 0x739: 0x3fb3, 0x73a: 0x3fbb, 0x73b: 0xa000, + 0x73c: 0x3fc3, 0x73d: 0x3fcb, + // Block 0x1d, offset 0x740 + 0x754: 0x3f03, + 0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, + 0x75e: 0x3fd3, + 0x766: 0xa000, + 0x76b: 0xa000, 0x76c: 0x3fe3, 0x76d: 0xa000, 0x76e: 0x3feb, 0x76f: 0xa000, + 0x770: 0x3ff3, 0x771: 0xa000, 0x772: 0x3ffb, 0x773: 0xa000, 0x774: 0x4003, 0x775: 0xa000, + 0x776: 0x400b, 0x777: 0xa000, 0x778: 0x4013, 0x779: 0xa000, 0x77a: 0x401b, 0x77b: 0xa000, + 0x77c: 0x4023, 0x77d: 0xa000, 0x77e: 0x402b, 0x77f: 0xa000, + // Block 0x1e, offset 0x780 + 0x780: 0x4033, 0x781: 0xa000, 0x782: 0x403b, 0x784: 0xa000, 0x785: 0x4043, + 0x786: 0xa000, 0x787: 0x404b, 0x788: 0xa000, 0x789: 0x4053, + 0x78f: 0xa000, 0x790: 0x405b, 0x791: 0x4063, + 0x792: 0xa000, 0x793: 0x406b, 0x794: 0x4073, 0x795: 0xa000, 0x796: 0x407b, 0x797: 0x4083, + 0x798: 0xa000, 0x799: 0x408b, 0x79a: 0x4093, 0x79b: 0xa000, 0x79c: 0x409b, 0x79d: 0x40a3, + 0x7af: 0xa000, + 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fdb, + 0x7b7: 0x40ab, 0x7b8: 0x40b3, 0x7b9: 0x40bb, 0x7ba: 0x40c3, + 0x7bd: 0xa000, 0x7be: 0x40cb, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb, + 0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943, + 0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3, + 0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43, + 0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87, + 0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283, + 0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f, + 0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853, + 0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b, + 0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b, + 0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b, + // Block 0x20, offset 0x800 + 0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b, + 0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f, + 0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7, + 0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127, + 0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357, + 0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873, + 0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3, + 0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b, + 0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57, + 0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb, + 0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b, + // Block 0x21, offset 0x840 + 0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f, + 0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3, + 0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83, + 0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193, + 0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b, + 0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b, + 0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f, + 0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b, + 0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753, + 0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777, + 0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73, + // Block 0x22, offset 0x880 + 0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3, + 0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47, + 0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af, + 0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df, + 0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817, + 0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3, + 0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457, + 0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b, + 0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27, + 0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f, + 0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03, + 0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27, + 0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af, + 0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3, + 0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb, + 0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353, + 0x8e5: 0x1407, 0x8e6: 0x1433, + 0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7, + 0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897, + 0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93, + 0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3, + // Block 0x24, offset 0x900 + 0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b, + 0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f, + 0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f, + 0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f, + 0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff, + 0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f, + 0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f, + 0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3, + 0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7, + 0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963, + 0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f, + // Block 0x25, offset 0x940 + 0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b, + 0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb, + 0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf, + 0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f, + 0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013, + 0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f, + 0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b, + 0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b, + 0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb, + 0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343, + 0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f, + // Block 0x26, offset 0x980 + 0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b, + 0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b, + 0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2, + 0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809, + 0x998: 0x1617, 0x999: 0x1627, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757, + 0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773, + 0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3, + 0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf, + 0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff, + 0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f, + 0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867, + 0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af, + 0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93, + 0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3, + 0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917, + // Block 0x28, offset 0xa00 + 0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f, + 0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983, + 0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf, + 0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3, + 0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef, + 0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23, + 0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37, + 0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63, + 0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f, + 0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692, + 0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7, + // Block 0x29, offset 0xa40 + 0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb, + 0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f, + 0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6, + 0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9, + 0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83, + 0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3, + 0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf, + 0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7, + 0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f, + 0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b, + 0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87, + 0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb, + 0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7, + 0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663, + 0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd, + 0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7, + 0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b, + 0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f, + 0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7, + 0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700, + 0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb, + // Block 0x2b, offset 0xac0 + 0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23, + 0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53, + 0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714, + 0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b, + 0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719, + 0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728, + 0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37, + 0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57, + 0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737, + 0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741, + 0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff, + 0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637, + 0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f, + 0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093, + 0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782, + 0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3, + 0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7, + 0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133, + 0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa, + 0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4, + 0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197, + // Block 0x2d, offset 0xb40 + 0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7, + 0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7, + 0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b, + 0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd, + 0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f, + 0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f, + 0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273, + 0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677, + 0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7, + 0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb, + 0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f, + // Block 0x2e, offset 0xb80 + 0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5, + 0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa, + 0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b, + 0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7, + 0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665, + 0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f, + 0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477, + 0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693, + 0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb, + 0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b, + 0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567, + 0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7, + 0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7, + 0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef, + 0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, + 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, + 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, + 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, + 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, + 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, + // Block 0x5, offset 0x140 + 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, + 0x14d: 0x5c, + 0x15c: 0x5d, 0x15f: 0x5e, + 0x162: 0x5f, 0x164: 0x60, + 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, + 0x170: 0x67, 0x173: 0x68, 0x177: 0x0f, + 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, + // Block 0x6, offset 0x180 + 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, + 0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70, + 0x1ab: 0x71, + 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77, + 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, + // Block 0x8, offset 0x200 + 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, + 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, + 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, + 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, + 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, + // Block 0x9, offset 0x240 + 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, + 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, + 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, + 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, + 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, + 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, + 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, + // Block 0xa, offset 0x280 + 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, + 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, + 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, + 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, + 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, + 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, + 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, + 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, + 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, + 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, + 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, + // Block 0xc, offset 0x300 + 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, + 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, + 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, + 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, + // Block 0xd, offset 0x340 + 0x347: 0x9c, + 0x34b: 0x9d, 0x34d: 0x9e, + 0x368: 0x9f, 0x36b: 0xa0, + 0x374: 0xa1, + 0x37d: 0xa2, + // Block 0xe, offset 0x380 + 0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6, + 0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa, + 0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf, + 0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1, + 0x3a0: 0xb2, 0x3a7: 0xb3, + 0x3a8: 0xb4, 0x3a9: 0xb5, 0x3aa: 0xb6, + 0x3b0: 0x73, 0x3b5: 0xb7, 0x3b6: 0xb8, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xb9, 0x3ec: 0xba, + // Block 0x10, offset 0x400 + 0x432: 0xbb, + // Block 0x11, offset 0x440 + 0x445: 0xbc, 0x446: 0xbd, 0x447: 0xbe, + 0x449: 0xbf, + // Block 0x12, offset 0x480 + 0x480: 0xc0, 0x484: 0xba, + 0x48b: 0xc1, + 0x4a3: 0xc2, 0x4a5: 0xc3, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xc4, + // Block 0x14, offset 0x500 + 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, + 0x528: 0x2d, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 151 entries, 302 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x11f, 0x128, 0x12a, 0x12d, 0x12f, 0x13a, 0x13e, 0x14c, 0x14f, 0x155, 0x15b, 0x166, 0x16a, 0x16c, 0x16e, 0x170, 0x172, 0x174, 0x17a, 0x17e, 0x180, 0x182, 0x18a, 0x18e, 0x191, 0x193, 0x195, 0x197, 0x19a, 0x19c, 0x19e, 0x1a0, 0x1a2, 0x1a8, 0x1ab, 0x1ad, 0x1b4, 0x1ba, 0x1c0, 0x1c8, 0x1ce, 0x1d4, 0x1da, 0x1de, 0x1ec, 0x1f5, 0x1f8, 0x1fb, 0x1fd, 0x200, 0x202, 0x206, 0x20b, 0x20d, 0x20f, 0x214, 0x21a, 0x21c, 0x21e, 0x220, 0x226, 0x229, 0x22b, 0x231, 0x234, 0x23c, 0x243, 0x246, 0x249, 0x24b, 0x24e, 0x256, 0x25a, 0x261, 0x264, 0x26a, 0x26c, 0x26f, 0x271, 0x274, 0x276, 0x278, 0x27a, 0x27c, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x294, 0x29e, 0x2a0, 0x2a2, 0x2a8, 0x2aa, 0x2ac, 0x2af} + +// nfcSparseValues: 689 entries, 2756 bytes +var nfcSparseValues = [689]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x46e5, lo: 0xa0, hi: 0xa1}, + {value: 0x4717, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4843, lo: 0x8a, hi: 0x8a}, + {value: 0x4861, lo: 0x8b, hi: 0x8b}, + {value: 0x36ca, lo: 0x8c, hi: 0x8c}, + {value: 0x36e2, lo: 0x8d, hi: 0x8d}, + {value: 0x4879, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3700, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a8, lo: 0x90, hi: 0x90}, + {value: 0x37b4, lo: 0x91, hi: 0x91}, + {value: 0x37a2, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x381a, lo: 0x97, hi: 0x97}, + {value: 0x37e4, lo: 0x9c, hi: 0x9c}, + {value: 0x37cc, lo: 0x9d, hi: 0x9d}, + {value: 0x37f6, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x3820, lo: 0xb6, hi: 0xb6}, + {value: 0x3826, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3844, lo: 0xa2, hi: 0xa2}, + {value: 0x384a, lo: 0xa3, hi: 0xa3}, + {value: 0x3856, lo: 0xa4, hi: 0xa4}, + {value: 0x3850, lo: 0xa5, hi: 0xa5}, + {value: 0x385c, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x386e, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x3862, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3868, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xd, offset 0x63 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x68 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x6a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3edb, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee3, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3eeb, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x72 + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451f, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x79 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x7c + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2ca1, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455f, lo: 0x9c, hi: 0x9d}, + {value: 0x456f, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x84 + {value: 0x0000, lo: 0x03}, + {value: 0x4597, lo: 0xb3, hi: 0xb3}, + {value: 0x459f, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0x88 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4577, lo: 0x99, hi: 0x9b}, + {value: 0x458f, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0x8c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0x8e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0x90 + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb9, lo: 0x88, hi: 0x88}, + {value: 0x2cb1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cc1, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a7, lo: 0x9c, hi: 0x9c}, + {value: 0x45af, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0x99 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc9, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0x9d + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cd1, lo: 0x8a, hi: 0x8a}, + {value: 0x2ce1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd9, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xa4 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef3, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xa9 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xac + {value: 0x0000, lo: 0x09}, + {value: 0x2ce9, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cf1, lo: 0x87, hi: 0x87}, + {value: 0x2cf9, lo: 0x88, hi: 0x88}, + {value: 0x2f53, lo: 0x8a, hi: 0x8a}, + {value: 0x2ddb, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2d01, lo: 0x8a, hi: 0x8a}, + {value: 0x2d11, lo: 0x8b, hi: 0x8b}, + {value: 0x2d09, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xc0 + {value: 0x6be7, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3efb, lo: 0x9a, hi: 0x9a}, + {value: 0x2f5b, lo: 0x9c, hi: 0x9c}, + {value: 0x2de6, lo: 0x9d, hi: 0x9d}, + {value: 0x2d19, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xc8 + {value: 0x0000, lo: 0x02}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xcb + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xcd + {value: 0x0000, lo: 0x02}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x23, offset 0xd0 + {value: 0x0000, lo: 0x01}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + // Block 0x24, offset 0xd2 + {value: 0x0000, lo: 0x04}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xd7 + {value: 0x0000, lo: 0x10}, + {value: 0x2647, lo: 0x83, hi: 0x83}, + {value: 0x264e, lo: 0x8d, hi: 0x8d}, + {value: 0x2655, lo: 0x92, hi: 0x92}, + {value: 0x265c, lo: 0x97, hi: 0x97}, + {value: 0x2663, lo: 0x9c, hi: 0x9c}, + {value: 0x2640, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a87, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a90, lo: 0xb5, hi: 0xb5}, + {value: 0x45b7, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x45bf, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0xe8 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a99, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x2671, lo: 0x93, hi: 0x93}, + {value: 0x2678, lo: 0x9d, hi: 0x9d}, + {value: 0x267f, lo: 0xa2, hi: 0xa2}, + {value: 0x2686, lo: 0xa7, hi: 0xa7}, + {value: 0x268d, lo: 0xac, hi: 0xac}, + {value: 0x266a, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0xf4 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0xf6 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d21, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0xfc + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0xfe + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0x100 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x102 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x104 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x106 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x108 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x10b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x10e + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x110 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x113 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x116 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x11a + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x11f + {value: 0x0000, lo: 0x08}, + {value: 0x2d69, lo: 0x80, hi: 0x80}, + {value: 0x2d71, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d79, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x128 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x12a + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x12d + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x12f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x13a + {value: 0x0004, lo: 0x03}, + {value: 0x0433, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3c, offset 0x13e + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x3d, offset 0x14c + {value: 0x427e, lo: 0x02}, + {value: 0x01b8, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x3e, offset 0x14f + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bbc, lo: 0x9a, hi: 0x9b}, + {value: 0x3bca, lo: 0xae, hi: 0xae}, + // Block 0x3f, offset 0x155 + {value: 0x000e, lo: 0x05}, + {value: 0x3bd1, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd8, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x40, offset 0x15b + {value: 0x6405, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be6, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bed, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf4, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bfb, lo: 0xa4, hi: 0xa5}, + {value: 0x3c02, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x41, offset 0x166 + {value: 0x0007, lo: 0x03}, + {value: 0x3c6b, lo: 0xa0, hi: 0xa1}, + {value: 0x3c95, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbf, lo: 0xaa, hi: 0xad}, + // Block 0x42, offset 0x16a + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x43, offset 0x16c + {value: 0x0000, lo: 0x01}, + {value: 0x44e0, lo: 0x9c, hi: 0x9c}, + // Block 0x44, offset 0x16e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x45, offset 0x170 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x46, offset 0x172 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x47, offset 0x174 + {value: 0x0000, lo: 0x05}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xaf}, + // Block 0x48, offset 0x17a + {value: 0x0000, lo: 0x03}, + {value: 0x4aa2, lo: 0xb3, hi: 0xb3}, + {value: 0x4aa2, lo: 0xb5, hi: 0xb6}, + {value: 0x4aa2, lo: 0xba, hi: 0xbf}, + // Block 0x49, offset 0x17e + {value: 0x0000, lo: 0x01}, + {value: 0x4aa2, lo: 0x8f, hi: 0xa3}, + // Block 0x4a, offset 0x180 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4b, offset 0x182 + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4c, offset 0x18a + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4d, offset 0x18e + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x4e, offset 0x191 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x4f, offset 0x193 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x50, offset 0x195 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x51, offset 0x197 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x52, offset 0x19a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x53, offset 0x19c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x54, offset 0x19e + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x55, offset 0x1a0 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x56, offset 0x1a2 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x57, offset 0x1a8 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x58, offset 0x1ab + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x59, offset 0x1ad + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5a, offset 0x1b4 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5b, offset 0x1ba + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5c, offset 0x1c0 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5d, offset 0x1c8 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x5e, offset 0x1ce + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x5f, offset 0x1d4 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x60, offset 0x1da + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x61, offset 0x1de + {value: 0x0006, lo: 0x0d}, + {value: 0x4393, lo: 0x9d, hi: 0x9d}, + {value: 0x8115, lo: 0x9e, hi: 0x9e}, + {value: 0x4405, lo: 0x9f, hi: 0x9f}, + {value: 0x43f3, lo: 0xaa, hi: 0xab}, + {value: 0x44f7, lo: 0xac, hi: 0xac}, + {value: 0x44ff, lo: 0xad, hi: 0xad}, + {value: 0x434b, lo: 0xae, hi: 0xb1}, + {value: 0x4369, lo: 0xb2, hi: 0xb4}, + {value: 0x4381, lo: 0xb5, hi: 0xb6}, + {value: 0x438d, lo: 0xb8, hi: 0xb8}, + {value: 0x4399, lo: 0xb9, hi: 0xbb}, + {value: 0x43b1, lo: 0xbc, hi: 0xbc}, + {value: 0x43b7, lo: 0xbe, hi: 0xbe}, + // Block 0x62, offset 0x1ec + {value: 0x0006, lo: 0x08}, + {value: 0x43bd, lo: 0x80, hi: 0x81}, + {value: 0x43c9, lo: 0x83, hi: 0x84}, + {value: 0x43db, lo: 0x86, hi: 0x89}, + {value: 0x43ff, lo: 0x8a, hi: 0x8a}, + {value: 0x437b, lo: 0x8b, hi: 0x8b}, + {value: 0x4363, lo: 0x8c, hi: 0x8c}, + {value: 0x43ab, lo: 0x8d, hi: 0x8d}, + {value: 0x43d5, lo: 0x8e, hi: 0x8e}, + // Block 0x63, offset 0x1f5 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x64, offset 0x1f8 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x65, offset 0x1fb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x66, offset 0x1fd + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x67, offset 0x200 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x68, offset 0x202 + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xa0, hi: 0xa6}, + {value: 0x812d, lo: 0xa7, hi: 0xad}, + {value: 0x8132, lo: 0xae, hi: 0xaf}, + // Block 0x69, offset 0x206 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6a, offset 0x20b + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6b, offset 0x20d + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6c, offset 0x20f + {value: 0x0000, lo: 0x04}, + {value: 0x4aa2, lo: 0x9e, hi: 0x9f}, + {value: 0x4aa2, lo: 0xa3, hi: 0xa3}, + {value: 0x4aa2, lo: 0xa5, hi: 0xa6}, + {value: 0x4aa2, lo: 0xaa, hi: 0xaf}, + // Block 0x6d, offset 0x214 + {value: 0x0000, lo: 0x05}, + {value: 0x4aa2, lo: 0x82, hi: 0x87}, + {value: 0x4aa2, lo: 0x8a, hi: 0x8f}, + {value: 0x4aa2, lo: 0x92, hi: 0x97}, + {value: 0x4aa2, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x6e, offset 0x21a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6f, offset 0x21c + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x70, offset 0x21e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x71, offset 0x220 + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x226 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x73, offset 0x229 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x74, offset 0x22b + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x75, offset 0x231 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x76, offset 0x234 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x423b, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4245, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424f, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x77, offset 0x23c + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d81, lo: 0xae, hi: 0xae}, + {value: 0x2d8b, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x78, offset 0x243 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x79, offset 0x246 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x7a, offset 0x249 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x7b, offset 0x24b + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x7c, offset 0x24e + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d95, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9f, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x7d, offset 0x256 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7e, offset 0x25a + {value: 0x6b57, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db3, lo: 0xbb, hi: 0xbb}, + {value: 0x2da9, lo: 0xbc, hi: 0xbd}, + {value: 0x2dbd, lo: 0xbe, hi: 0xbe}, + // Block 0x7f, offset 0x261 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x80, offset 0x264 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc7, lo: 0xba, hi: 0xba}, + {value: 0x2dd1, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x81, offset 0x26a + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x82, offset 0x26c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x83, offset 0x26f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x84, offset 0x271 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x85, offset 0x274 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + // Block 0x86, offset 0x276 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x87, offset 0x278 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x88, offset 0x27a + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x89, offset 0x27c + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x8a, offset 0x27f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x8b, offset 0x281 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x8c, offset 0x283 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x8d, offset 0x285 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8e, offset 0x287 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cf, lo: 0x9e, hi: 0x9e}, + {value: 0x45d9, lo: 0x9f, hi: 0x9f}, + {value: 0x460d, lo: 0xa0, hi: 0xa0}, + {value: 0x461b, lo: 0xa1, hi: 0xa1}, + {value: 0x4629, lo: 0xa2, hi: 0xa2}, + {value: 0x4637, lo: 0xa3, hi: 0xa3}, + {value: 0x4645, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8f, offset 0x294 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e3, lo: 0xbb, hi: 0xbb}, + {value: 0x45ed, lo: 0xbc, hi: 0xbc}, + {value: 0x4653, lo: 0xbd, hi: 0xbd}, + {value: 0x466f, lo: 0xbe, hi: 0xbe}, + {value: 0x4661, lo: 0xbf, hi: 0xbf}, + // Block 0x90, offset 0x29e + {value: 0x0000, lo: 0x01}, + {value: 0x467d, lo: 0x80, hi: 0x80}, + // Block 0x91, offset 0x2a0 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x92, offset 0x2a2 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x93, offset 0x2a8 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xac, hi: 0xaf}, + // Block 0x94, offset 0x2aa + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x95, offset 0x2ac + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x96, offset 0x2af + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 18684 bytes (18.25 KiB). Checksum: 113e23c477adfabd. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 92: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 92 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 94 blocks, 6016 entries, 12032 bytes +// The third block is the zero block. +var nfkcValues = [6016]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f, + 0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe, + 0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107, + 0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0, + 0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238, + 0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288, + 0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6, + 0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753, + 0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762, + 0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6, + 0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c, + // Block 0x4, offset 0x100 + 0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab, + 0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9, + 0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8, + 0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305, + 0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c, + 0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355, + 0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391, + 0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9, + 0x130: 0x308f, 0x132: 0x195d, 0x133: 0x19ea, 0x134: 0x30b7, 0x135: 0x33c3, + 0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df, + 0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb, 0x13f: 0x1baf, + // Block 0x5, offset 0x140 + 0x140: 0x1c37, 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b, + 0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422, 0x149: 0x1c5f, + 0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f, + 0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486, + 0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490, + 0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd, + 0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799, + 0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5, + 0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b, + 0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a, + 0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2df1, 0x185: 0x2df7, + 0x186: 0x2dfd, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a0b, 0x18a: 0x198a, 0x18b: 0x198d, + 0x18c: 0x1a41, 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143, + 0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb, + 0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53, + 0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8, + 0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2, + 0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0, + 0x1b0: 0x33c8, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19d2, 0x1b4: 0x302b, 0x1b5: 0x3337, + 0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49, + 0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319, + 0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af, + 0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c, + 0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9, + 0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8, + 0x1de: 0x305d, 0x1df: 0x3369, + 0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e, + 0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c, + 0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x42a8, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x425d, 0x285: 0x447e, + 0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628, + 0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac, + 0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4843, 0x2cb: 0x4861, + 0x2cc: 0x36ca, 0x2cd: 0x36e2, 0x2ce: 0x4879, 0x2d0: 0x01be, 0x2d1: 0x01d0, + 0x2d2: 0x01ac, 0x2d3: 0x430f, 0x2d4: 0x4315, 0x2d5: 0x01fa, 0x2d6: 0x01e8, + 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, + 0x2f9: 0x01a6, + // Block 0xc, offset 0x300 + 0x300: 0x3724, 0x301: 0x3730, 0x303: 0x371e, + 0x306: 0xa000, 0x307: 0x370c, + 0x30c: 0x3760, 0x30d: 0x3748, 0x30e: 0x3772, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3754, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d8, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3736, 0x342: 0x37ba, + 0x350: 0x3712, 0x351: 0x3796, + 0x352: 0x3718, 0x353: 0x379c, 0x356: 0x372a, 0x357: 0x37ae, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x382c, 0x35b: 0x3832, 0x35c: 0x373c, 0x35d: 0x37c0, + 0x35e: 0x3742, 0x35f: 0x37c6, 0x362: 0x374e, 0x363: 0x37d2, + 0x364: 0x375a, 0x365: 0x37de, 0x366: 0x3766, 0x367: 0x37ea, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3838, 0x36b: 0x383e, 0x36c: 0x3790, 0x36d: 0x3814, 0x36e: 0x376c, 0x36f: 0x37f0, + 0x370: 0x3778, 0x371: 0x37fc, 0x372: 0x377e, 0x373: 0x3802, 0x374: 0x3784, 0x375: 0x3808, + 0x378: 0x378a, 0x379: 0x380e, + // Block 0xe, offset 0x380 + 0x387: 0x1d64, + 0x391: 0x812d, + 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, + 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, + 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, + 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, + 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, + 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, + 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, + 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x812d, + 0x3f0: 0x811e, 0x3f5: 0x1d87, + 0x3f6: 0x2016, 0x3f7: 0x2052, 0x3f8: 0x204d, + // Block 0x10, offset 0x400 + 0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, + 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, + 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d, + 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d, + 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d, + 0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, + 0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132, + 0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132, + // Block 0x11, offset 0x440 + 0x445: 0xa000, + 0x446: 0x2d29, 0x447: 0xa000, 0x448: 0x2d31, 0x449: 0xa000, 0x44a: 0x2d39, 0x44b: 0xa000, + 0x44c: 0x2d41, 0x44d: 0xa000, 0x44e: 0x2d49, 0x451: 0xa000, + 0x452: 0x2d51, + 0x474: 0x8102, 0x475: 0x9900, + 0x47a: 0xa000, 0x47b: 0x2d59, + 0x47c: 0xa000, 0x47d: 0x2d61, 0x47e: 0xa000, 0x47f: 0xa000, + // Block 0x12, offset 0x480 + 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8, + 0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107, + 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0, + 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9, + 0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be, + 0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5, + 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa, + 0x4aa: 0x01fd, + 0x4b8: 0x020c, + // Block 0x13, offset 0x4c0 + 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101, + 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116, + 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128, + 0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137, + 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec, + 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5, + 0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0, + // Block 0x14, offset 0x500 + 0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132, + 0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132, + 0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132, + 0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132, + 0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132, + 0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132, + 0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132, + 0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132, + 0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132, + 0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132, + 0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d, + // Block 0x15, offset 0x540 + 0x540: 0x2f9a, 0x541: 0x32a6, 0x542: 0x2fa4, 0x543: 0x32b0, 0x544: 0x2fa9, 0x545: 0x32b5, + 0x546: 0x2fae, 0x547: 0x32ba, 0x548: 0x38cf, 0x549: 0x3a5e, 0x54a: 0x2fc7, 0x54b: 0x32d3, + 0x54c: 0x2fd1, 0x54d: 0x32dd, 0x54e: 0x2fe0, 0x54f: 0x32ec, 0x550: 0x2fd6, 0x551: 0x32e2, + 0x552: 0x2fdb, 0x553: 0x32e7, 0x554: 0x38f2, 0x555: 0x3a81, 0x556: 0x38f9, 0x557: 0x3a88, + 0x558: 0x301c, 0x559: 0x3328, 0x55a: 0x3021, 0x55b: 0x332d, 0x55c: 0x3907, 0x55d: 0x3a96, + 0x55e: 0x3026, 0x55f: 0x3332, 0x560: 0x3035, 0x561: 0x3341, 0x562: 0x3053, 0x563: 0x335f, + 0x564: 0x3062, 0x565: 0x336e, 0x566: 0x3058, 0x567: 0x3364, 0x568: 0x3067, 0x569: 0x3373, + 0x56a: 0x306c, 0x56b: 0x3378, 0x56c: 0x30b2, 0x56d: 0x33be, 0x56e: 0x390e, 0x56f: 0x3a9d, + 0x570: 0x30bc, 0x571: 0x33cd, 0x572: 0x30c6, 0x573: 0x33d7, 0x574: 0x30d0, 0x575: 0x33e1, + 0x576: 0x46c7, 0x577: 0x4758, 0x578: 0x3915, 0x579: 0x3aa4, 0x57a: 0x30e9, 0x57b: 0x33fa, + 0x57c: 0x30e4, 0x57d: 0x33f5, 0x57e: 0x30ee, 0x57f: 0x33ff, + // Block 0x16, offset 0x580 + 0x580: 0x30f3, 0x581: 0x3404, 0x582: 0x30f8, 0x583: 0x3409, 0x584: 0x310c, 0x585: 0x341d, + 0x586: 0x3116, 0x587: 0x3427, 0x588: 0x3125, 0x589: 0x3436, 0x58a: 0x3120, 0x58b: 0x3431, + 0x58c: 0x3938, 0x58d: 0x3ac7, 0x58e: 0x3946, 0x58f: 0x3ad5, 0x590: 0x394d, 0x591: 0x3adc, + 0x592: 0x3954, 0x593: 0x3ae3, 0x594: 0x3152, 0x595: 0x3463, 0x596: 0x3157, 0x597: 0x3468, + 0x598: 0x3161, 0x599: 0x3472, 0x59a: 0x46f4, 0x59b: 0x4785, 0x59c: 0x399a, 0x59d: 0x3b29, + 0x59e: 0x317a, 0x59f: 0x348b, 0x5a0: 0x3184, 0x5a1: 0x3495, 0x5a2: 0x4703, 0x5a3: 0x4794, + 0x5a4: 0x39a1, 0x5a5: 0x3b30, 0x5a6: 0x39a8, 0x5a7: 0x3b37, 0x5a8: 0x39af, 0x5a9: 0x3b3e, + 0x5aa: 0x3193, 0x5ab: 0x34a4, 0x5ac: 0x319d, 0x5ad: 0x34b3, 0x5ae: 0x31b1, 0x5af: 0x34c7, + 0x5b0: 0x31ac, 0x5b1: 0x34c2, 0x5b2: 0x31ed, 0x5b3: 0x3503, 0x5b4: 0x31fc, 0x5b5: 0x3512, + 0x5b6: 0x31f7, 0x5b7: 0x350d, 0x5b8: 0x39b6, 0x5b9: 0x3b45, 0x5ba: 0x39bd, 0x5bb: 0x3b4c, + 0x5bc: 0x3201, 0x5bd: 0x3517, 0x5be: 0x3206, 0x5bf: 0x351c, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x320b, 0x5c1: 0x3521, 0x5c2: 0x3210, 0x5c3: 0x3526, 0x5c4: 0x321f, 0x5c5: 0x3535, + 0x5c6: 0x321a, 0x5c7: 0x3530, 0x5c8: 0x3224, 0x5c9: 0x353f, 0x5ca: 0x3229, 0x5cb: 0x3544, + 0x5cc: 0x322e, 0x5cd: 0x3549, 0x5ce: 0x324c, 0x5cf: 0x3567, 0x5d0: 0x3265, 0x5d1: 0x3585, + 0x5d2: 0x3274, 0x5d3: 0x3594, 0x5d4: 0x3279, 0x5d5: 0x3599, 0x5d6: 0x337d, 0x5d7: 0x34a9, + 0x5d8: 0x353a, 0x5d9: 0x3576, 0x5da: 0x1be3, 0x5db: 0x42da, + 0x5e0: 0x46a4, 0x5e1: 0x4735, 0x5e2: 0x2f86, 0x5e3: 0x3292, + 0x5e4: 0x387b, 0x5e5: 0x3a0a, 0x5e6: 0x3874, 0x5e7: 0x3a03, 0x5e8: 0x3889, 0x5e9: 0x3a18, + 0x5ea: 0x3882, 0x5eb: 0x3a11, 0x5ec: 0x38c1, 0x5ed: 0x3a50, 0x5ee: 0x3897, 0x5ef: 0x3a26, + 0x5f0: 0x3890, 0x5f1: 0x3a1f, 0x5f2: 0x38a5, 0x5f3: 0x3a34, 0x5f4: 0x389e, 0x5f5: 0x3a2d, + 0x5f6: 0x38c8, 0x5f7: 0x3a57, 0x5f8: 0x46b8, 0x5f9: 0x4749, 0x5fa: 0x3003, 0x5fb: 0x330f, + 0x5fc: 0x2fef, 0x5fd: 0x32fb, 0x5fe: 0x38dd, 0x5ff: 0x3a6c, + // Block 0x18, offset 0x600 + 0x600: 0x38d6, 0x601: 0x3a65, 0x602: 0x38eb, 0x603: 0x3a7a, 0x604: 0x38e4, 0x605: 0x3a73, + 0x606: 0x3900, 0x607: 0x3a8f, 0x608: 0x3094, 0x609: 0x33a0, 0x60a: 0x30a8, 0x60b: 0x33b4, + 0x60c: 0x46ea, 0x60d: 0x477b, 0x60e: 0x3139, 0x60f: 0x344a, 0x610: 0x3923, 0x611: 0x3ab2, + 0x612: 0x391c, 0x613: 0x3aab, 0x614: 0x3931, 0x615: 0x3ac0, 0x616: 0x392a, 0x617: 0x3ab9, + 0x618: 0x398c, 0x619: 0x3b1b, 0x61a: 0x3970, 0x61b: 0x3aff, 0x61c: 0x3969, 0x61d: 0x3af8, + 0x61e: 0x397e, 0x61f: 0x3b0d, 0x620: 0x3977, 0x621: 0x3b06, 0x622: 0x3985, 0x623: 0x3b14, + 0x624: 0x31e8, 0x625: 0x34fe, 0x626: 0x31ca, 0x627: 0x34e0, 0x628: 0x39e7, 0x629: 0x3b76, + 0x62a: 0x39e0, 0x62b: 0x3b6f, 0x62c: 0x39f5, 0x62d: 0x3b84, 0x62e: 0x39ee, 0x62f: 0x3b7d, + 0x630: 0x39fc, 0x631: 0x3b8b, 0x632: 0x3233, 0x633: 0x354e, 0x634: 0x325b, 0x635: 0x357b, + 0x636: 0x3256, 0x637: 0x3571, 0x638: 0x3242, 0x639: 0x355d, + // Block 0x19, offset 0x640 + 0x640: 0x4807, 0x641: 0x480d, 0x642: 0x4921, 0x643: 0x4939, 0x644: 0x4929, 0x645: 0x4941, + 0x646: 0x4931, 0x647: 0x4949, 0x648: 0x47ad, 0x649: 0x47b3, 0x64a: 0x4891, 0x64b: 0x48a9, + 0x64c: 0x4899, 0x64d: 0x48b1, 0x64e: 0x48a1, 0x64f: 0x48b9, 0x650: 0x4819, 0x651: 0x481f, + 0x652: 0x3dbb, 0x653: 0x3dcb, 0x654: 0x3dc3, 0x655: 0x3dd3, + 0x658: 0x47b9, 0x659: 0x47bf, 0x65a: 0x3ceb, 0x65b: 0x3cfb, 0x65c: 0x3cf3, 0x65d: 0x3d03, + 0x660: 0x4831, 0x661: 0x4837, 0x662: 0x4951, 0x663: 0x4969, + 0x664: 0x4959, 0x665: 0x4971, 0x666: 0x4961, 0x667: 0x4979, 0x668: 0x47c5, 0x669: 0x47cb, + 0x66a: 0x48c1, 0x66b: 0x48d9, 0x66c: 0x48c9, 0x66d: 0x48e1, 0x66e: 0x48d1, 0x66f: 0x48e9, + 0x670: 0x4849, 0x671: 0x484f, 0x672: 0x3e1b, 0x673: 0x3e33, 0x674: 0x3e23, 0x675: 0x3e3b, + 0x676: 0x3e2b, 0x677: 0x3e43, 0x678: 0x47d1, 0x679: 0x47d7, 0x67a: 0x3d1b, 0x67b: 0x3d33, + 0x67c: 0x3d23, 0x67d: 0x3d3b, 0x67e: 0x3d2b, 0x67f: 0x3d43, + // Block 0x1a, offset 0x680 + 0x680: 0x4855, 0x681: 0x485b, 0x682: 0x3e4b, 0x683: 0x3e5b, 0x684: 0x3e53, 0x685: 0x3e63, + 0x688: 0x47dd, 0x689: 0x47e3, 0x68a: 0x3d4b, 0x68b: 0x3d5b, + 0x68c: 0x3d53, 0x68d: 0x3d63, 0x690: 0x4867, 0x691: 0x486d, + 0x692: 0x3e83, 0x693: 0x3e9b, 0x694: 0x3e8b, 0x695: 0x3ea3, 0x696: 0x3e93, 0x697: 0x3eab, + 0x699: 0x47e9, 0x69b: 0x3d6b, 0x69d: 0x3d73, + 0x69f: 0x3d7b, 0x6a0: 0x487f, 0x6a1: 0x4885, 0x6a2: 0x4981, 0x6a3: 0x4999, + 0x6a4: 0x4989, 0x6a5: 0x49a1, 0x6a6: 0x4991, 0x6a7: 0x49a9, 0x6a8: 0x47ef, 0x6a9: 0x47f5, + 0x6aa: 0x48f1, 0x6ab: 0x4909, 0x6ac: 0x48f9, 0x6ad: 0x4911, 0x6ae: 0x4901, 0x6af: 0x4919, + 0x6b0: 0x47fb, 0x6b1: 0x4321, 0x6b2: 0x3694, 0x6b3: 0x4327, 0x6b4: 0x4825, 0x6b5: 0x432d, + 0x6b6: 0x36a6, 0x6b7: 0x4333, 0x6b8: 0x36c4, 0x6b9: 0x4339, 0x6ba: 0x36dc, 0x6bb: 0x433f, + 0x6bc: 0x4873, 0x6bd: 0x4345, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3da3, 0x6c1: 0x3dab, 0x6c2: 0x4187, 0x6c3: 0x41a5, 0x6c4: 0x4191, 0x6c5: 0x41af, + 0x6c6: 0x419b, 0x6c7: 0x41b9, 0x6c8: 0x3cdb, 0x6c9: 0x3ce3, 0x6ca: 0x40d3, 0x6cb: 0x40f1, + 0x6cc: 0x40dd, 0x6cd: 0x40fb, 0x6ce: 0x40e7, 0x6cf: 0x4105, 0x6d0: 0x3deb, 0x6d1: 0x3df3, + 0x6d2: 0x41c3, 0x6d3: 0x41e1, 0x6d4: 0x41cd, 0x6d5: 0x41eb, 0x6d6: 0x41d7, 0x6d7: 0x41f5, + 0x6d8: 0x3d0b, 0x6d9: 0x3d13, 0x6da: 0x410f, 0x6db: 0x412d, 0x6dc: 0x4119, 0x6dd: 0x4137, + 0x6de: 0x4123, 0x6df: 0x4141, 0x6e0: 0x3ec3, 0x6e1: 0x3ecb, 0x6e2: 0x41ff, 0x6e3: 0x421d, + 0x6e4: 0x4209, 0x6e5: 0x4227, 0x6e6: 0x4213, 0x6e7: 0x4231, 0x6e8: 0x3d83, 0x6e9: 0x3d8b, + 0x6ea: 0x414b, 0x6eb: 0x4169, 0x6ec: 0x4155, 0x6ed: 0x4173, 0x6ee: 0x415f, 0x6ef: 0x417d, + 0x6f0: 0x3688, 0x6f1: 0x3682, 0x6f2: 0x3d93, 0x6f3: 0x368e, 0x6f4: 0x3d9b, + 0x6f6: 0x4813, 0x6f7: 0x3db3, 0x6f8: 0x35f8, 0x6f9: 0x35f2, 0x6fa: 0x35e6, 0x6fb: 0x42f1, + 0x6fc: 0x35fe, 0x6fd: 0x428a, 0x6fe: 0x01d3, 0x6ff: 0x428a, + // Block 0x1c, offset 0x700 + 0x700: 0x42a3, 0x701: 0x4485, 0x702: 0x3ddb, 0x703: 0x36a0, 0x704: 0x3de3, + 0x706: 0x483d, 0x707: 0x3dfb, 0x708: 0x3604, 0x709: 0x42f7, 0x70a: 0x3610, 0x70b: 0x42fd, + 0x70c: 0x361c, 0x70d: 0x448c, 0x70e: 0x4493, 0x70f: 0x449a, 0x710: 0x36b8, 0x711: 0x36b2, + 0x712: 0x3e03, 0x713: 0x44e7, 0x716: 0x36be, 0x717: 0x3e13, + 0x718: 0x3634, 0x719: 0x362e, 0x71a: 0x3622, 0x71b: 0x4303, 0x71d: 0x44a1, + 0x71e: 0x44a8, 0x71f: 0x44af, 0x720: 0x36ee, 0x721: 0x36e8, 0x722: 0x3e6b, 0x723: 0x44ef, + 0x724: 0x36d0, 0x725: 0x36d6, 0x726: 0x36f4, 0x727: 0x3e7b, 0x728: 0x3664, 0x729: 0x365e, + 0x72a: 0x3652, 0x72b: 0x430f, 0x72c: 0x364c, 0x72d: 0x4477, 0x72e: 0x447e, 0x72f: 0x0081, + 0x732: 0x3eb3, 0x733: 0x36fa, 0x734: 0x3ebb, + 0x736: 0x488b, 0x737: 0x3ed3, 0x738: 0x3640, 0x739: 0x4309, 0x73a: 0x3670, 0x73b: 0x431b, + 0x73c: 0x367c, 0x73d: 0x425d, 0x73e: 0x428f, + // Block 0x1d, offset 0x740 + 0x740: 0x1bdb, 0x741: 0x1bdf, 0x742: 0x0047, 0x743: 0x1c57, 0x745: 0x1beb, + 0x746: 0x1bef, 0x747: 0x00e9, 0x749: 0x1c5b, 0x74a: 0x008f, 0x74b: 0x0051, + 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053, + 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1990, + 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, + 0x760: 0x19a2, 0x761: 0x1bcb, 0x762: 0x19ab, + 0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075, + 0x76a: 0x0057, 0x76b: 0x42d5, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, + 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215, + 0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b9b, + 0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0, + // Block 0x1e, offset 0x780 + 0x780: 0x0463, 0x785: 0x0049, + 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, + 0x790: 0x2231, 0x791: 0x223d, + 0x792: 0x22f1, 0x793: 0x2219, 0x794: 0x229d, 0x795: 0x2225, 0x796: 0x22a3, 0x797: 0x22bb, + 0x798: 0x22c7, 0x799: 0x222b, 0x79a: 0x22cd, 0x79b: 0x2237, 0x79c: 0x22c1, 0x79d: 0x22d3, + 0x79e: 0x22d9, 0x79f: 0x1cbf, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba7, 0x7a3: 0x1963, + 0x7a4: 0x006d, 0x7a5: 0x19ae, 0x7a6: 0x1bd3, 0x7a7: 0x1d4b, 0x7a8: 0x1966, 0x7a9: 0x0071, + 0x7aa: 0x19ba, 0x7ab: 0x1bd7, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, + 0x7b0: 0x0093, 0x7b1: 0x19e7, 0x7b2: 0x1c1b, 0x7b3: 0x19f0, 0x7b4: 0x00ad, 0x7b5: 0x1a65, + 0x7b6: 0x1c4f, 0x7b7: 0x1d5f, 0x7b8: 0x19f3, 0x7b9: 0x00b1, 0x7ba: 0x1a68, 0x7bb: 0x1c53, + 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x3c09, 0x7c3: 0xa000, 0x7c4: 0x3c10, 0x7c5: 0xa000, + 0x7c7: 0x3c17, 0x7c8: 0xa000, 0x7c9: 0x3c1e, + 0x7cd: 0xa000, + 0x7e0: 0x2f68, 0x7e1: 0xa000, 0x7e2: 0x3c2c, + 0x7e4: 0xa000, 0x7e5: 0xa000, + 0x7ed: 0x3c25, 0x7ee: 0x2f63, 0x7ef: 0x2f6d, + 0x7f0: 0x3c33, 0x7f1: 0x3c3a, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c41, 0x7f5: 0x3c48, + 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4f, 0x7f9: 0x3c56, 0x7fa: 0xa000, 0x7fb: 0xa000, + 0x7fc: 0xa000, 0x7fd: 0xa000, + // Block 0x20, offset 0x800 + 0x800: 0x3c5d, 0x801: 0x3c64, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c79, 0x805: 0x3c80, + 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c87, 0x809: 0x3c8e, + 0x811: 0xa000, + 0x812: 0xa000, + 0x822: 0xa000, + 0x828: 0xa000, 0x829: 0xa000, + 0x82b: 0xa000, 0x82c: 0x3ca3, 0x82d: 0x3caa, 0x82e: 0x3cb1, 0x82f: 0x3cb8, + 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, + // Block 0x21, offset 0x840 + 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, + 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882, + 0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894, + 0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a6b, 0x875: 0x1a6f, + 0x876: 0x1a73, 0x877: 0x1a77, 0x878: 0x1a7b, 0x879: 0x1a7f, 0x87a: 0x1a83, 0x87b: 0x1a87, + 0x87c: 0x1a8b, 0x87d: 0x1c83, 0x87e: 0x1c88, 0x87f: 0x1c8d, + // Block 0x22, offset 0x880 + 0x880: 0x1c92, 0x881: 0x1c97, 0x882: 0x1c9c, 0x883: 0x1ca1, 0x884: 0x1ca6, 0x885: 0x1cab, + 0x886: 0x1cb0, 0x887: 0x1cb5, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb, + 0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b63, + 0x892: 0x1b67, 0x893: 0x1b6b, 0x894: 0x1b6f, 0x895: 0x1b73, 0x896: 0x1b77, 0x897: 0x1b7b, + 0x898: 0x1b7f, 0x899: 0x1b83, 0x89a: 0x1b87, 0x89b: 0x1b8b, 0x89c: 0x1af7, 0x89d: 0x1afb, + 0x89e: 0x1aff, 0x89f: 0x1b03, 0x8a0: 0x1b07, 0x8a1: 0x1b0b, 0x8a2: 0x1b0f, 0x8a3: 0x1b13, + 0x8a4: 0x1b17, 0x8a5: 0x1b1b, 0x8a6: 0x1b1f, 0x8a7: 0x1b23, 0x8a8: 0x1b27, 0x8a9: 0x1b2b, + 0x8aa: 0x1b2f, 0x8ab: 0x1b33, 0x8ac: 0x1b37, 0x8ad: 0x1b3b, 0x8ae: 0x1b3f, 0x8af: 0x1b43, + 0x8b0: 0x1b47, 0x8b1: 0x1b4b, 0x8b2: 0x1b4f, 0x8b3: 0x1b53, 0x8b4: 0x1b57, 0x8b5: 0x1b5b, + 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, + 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713, + 0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab, + 0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803, + 0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887, + 0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db, + 0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb, + 0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b, + 0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7, + 0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33, + 0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63, + 0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f, + // Block 0x24, offset 0x900 + 0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb, + 0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b, + 0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb, + 0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3, + 0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f, + 0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83, + 0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7, + 0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f, + 0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf, + 0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f, + 0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187, + // Block 0x25, offset 0x940 + 0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3, + 0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb, + 0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b, + 0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b, + 0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf, + 0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f, + 0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f, + 0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503, + 0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f, + 0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f, + 0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593, + // Block 0x26, offset 0x980 + 0x986: 0xa000, 0x98b: 0xa000, + 0x98c: 0x3f0b, 0x98d: 0xa000, 0x98e: 0x3f13, 0x98f: 0xa000, 0x990: 0x3f1b, 0x991: 0xa000, + 0x992: 0x3f23, 0x993: 0xa000, 0x994: 0x3f2b, 0x995: 0xa000, 0x996: 0x3f33, 0x997: 0xa000, + 0x998: 0x3f3b, 0x999: 0xa000, 0x99a: 0x3f43, 0x99b: 0xa000, 0x99c: 0x3f4b, 0x99d: 0xa000, + 0x99e: 0x3f53, 0x99f: 0xa000, 0x9a0: 0x3f5b, 0x9a1: 0xa000, 0x9a2: 0x3f63, + 0x9a4: 0xa000, 0x9a5: 0x3f6b, 0x9a6: 0xa000, 0x9a7: 0x3f73, 0x9a8: 0xa000, 0x9a9: 0x3f7b, + 0x9af: 0xa000, + 0x9b0: 0x3f83, 0x9b1: 0x3f8b, 0x9b2: 0xa000, 0x9b3: 0x3f93, 0x9b4: 0x3f9b, 0x9b5: 0xa000, + 0x9b6: 0x3fa3, 0x9b7: 0x3fab, 0x9b8: 0xa000, 0x9b9: 0x3fb3, 0x9ba: 0x3fbb, 0x9bb: 0xa000, + 0x9bc: 0x3fc3, 0x9bd: 0x3fcb, + // Block 0x27, offset 0x9c0 + 0x9d4: 0x3f03, + 0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42df, 0x9dc: 0x42e5, 0x9dd: 0xa000, + 0x9de: 0x3fd3, 0x9df: 0x26b7, + 0x9e6: 0xa000, + 0x9eb: 0xa000, 0x9ec: 0x3fe3, 0x9ed: 0xa000, 0x9ee: 0x3feb, 0x9ef: 0xa000, + 0x9f0: 0x3ff3, 0x9f1: 0xa000, 0x9f2: 0x3ffb, 0x9f3: 0xa000, 0x9f4: 0x4003, 0x9f5: 0xa000, + 0x9f6: 0x400b, 0x9f7: 0xa000, 0x9f8: 0x4013, 0x9f9: 0xa000, 0x9fa: 0x401b, 0x9fb: 0xa000, + 0x9fc: 0x4023, 0x9fd: 0xa000, 0x9fe: 0x402b, 0x9ff: 0xa000, + // Block 0x28, offset 0xa00 + 0xa00: 0x4033, 0xa01: 0xa000, 0xa02: 0x403b, 0xa04: 0xa000, 0xa05: 0x4043, + 0xa06: 0xa000, 0xa07: 0x404b, 0xa08: 0xa000, 0xa09: 0x4053, + 0xa0f: 0xa000, 0xa10: 0x405b, 0xa11: 0x4063, + 0xa12: 0xa000, 0xa13: 0x406b, 0xa14: 0x4073, 0xa15: 0xa000, 0xa16: 0x407b, 0xa17: 0x4083, + 0xa18: 0xa000, 0xa19: 0x408b, 0xa1a: 0x4093, 0xa1b: 0xa000, 0xa1c: 0x409b, 0xa1d: 0x40a3, + 0xa2f: 0xa000, + 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fdb, + 0xa37: 0x40ab, 0xa38: 0x40b3, 0xa39: 0x40bb, 0xa3a: 0x40c3, + 0xa3d: 0xa000, 0xa3e: 0x40cb, 0xa3f: 0x26cc, + // Block 0x29, offset 0xa40 + 0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337, + 0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f, + 0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49c0, 0xa50: 0x49c6, 0xa51: 0x49cc, + 0xa52: 0x49d2, 0xa53: 0x49d8, 0xa54: 0x49de, 0xa55: 0x49e4, 0xa56: 0x49ea, 0xa57: 0x49f0, + 0xa58: 0x49f6, 0xa59: 0x49fc, 0xa5a: 0x4a02, 0xa5b: 0x4a08, 0xa5c: 0x4a0e, 0xa5d: 0x4a14, + 0xa5e: 0x4a1a, 0xa5f: 0x4a20, 0xa60: 0x4a26, 0xa61: 0x4a2c, 0xa62: 0x4a32, 0xa63: 0x4a38, + 0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef, + 0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403, + 0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383, + 0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b, + 0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab, + // Block 0x2a, offset 0xa80 + 0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb, + 0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7, + 0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3, + 0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7, + 0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff, + 0xa9e: 0x098f, 0xa9f: 0x072f, + // Block 0x2b, offset 0xac0 + 0xac0: 0x2057, 0xac1: 0x205d, 0xac2: 0x2063, 0xac3: 0x2069, 0xac4: 0x206f, 0xac5: 0x2075, + 0xac6: 0x207b, 0xac7: 0x2081, 0xac8: 0x2087, 0xac9: 0x208d, 0xaca: 0x2093, 0xacb: 0x2099, + 0xacc: 0x209f, 0xacd: 0x20a5, 0xace: 0x2729, 0xacf: 0x2732, 0xad0: 0x273b, 0xad1: 0x2744, + 0xad2: 0x274d, 0xad3: 0x2756, 0xad4: 0x275f, 0xad5: 0x2768, 0xad6: 0x2771, 0xad7: 0x2783, + 0xad8: 0x278c, 0xad9: 0x2795, 0xada: 0x279e, 0xadb: 0x27a7, 0xadc: 0x277a, 0xadd: 0x2baf, + 0xade: 0x2af0, 0xae0: 0x20ab, 0xae1: 0x20c3, 0xae2: 0x20b7, 0xae3: 0x210b, + 0xae4: 0x20c9, 0xae5: 0x20e7, 0xae6: 0x20b1, 0xae7: 0x20e1, 0xae8: 0x20bd, 0xae9: 0x20f3, + 0xaea: 0x2123, 0xaeb: 0x2141, 0xaec: 0x213b, 0xaed: 0x212f, 0xaee: 0x217d, 0xaef: 0x2111, + 0xaf0: 0x211d, 0xaf1: 0x2135, 0xaf2: 0x2129, 0xaf3: 0x2153, 0xaf4: 0x20ff, 0xaf5: 0x2147, + 0xaf6: 0x2171, 0xaf7: 0x2159, 0xaf8: 0x20ed, 0xaf9: 0x20cf, 0xafa: 0x2105, 0xafb: 0x2117, + 0xafc: 0x214d, 0xafd: 0x20d5, 0xafe: 0x2177, 0xaff: 0x20f9, + // Block 0x2c, offset 0xb00 + 0xb00: 0x215f, 0xb01: 0x20db, 0xb02: 0x2165, 0xb03: 0x216b, 0xb04: 0x092f, 0xb05: 0x0b03, + 0xb06: 0x0ca7, 0xb07: 0x10c7, + 0xb10: 0x1bc7, 0xb11: 0x18a9, + 0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb, + 0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3, + 0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327, + 0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b, + 0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e1b, 0xb2f: 0x2e23, + 0xb30: 0x2e2b, 0xb31: 0x2e33, 0xb32: 0x2e3b, 0xb33: 0x2e43, 0xb34: 0x2e4b, 0xb35: 0x2e53, + 0xb36: 0x2e63, 0xb37: 0x2e6b, 0xb38: 0x2e73, 0xb39: 0x2e7b, 0xb3a: 0x2e83, 0xb3b: 0x2e8b, + 0xb3c: 0x2ed6, 0xb3d: 0x2e9e, 0xb3e: 0x2e5b, + // Block 0x2d, offset 0xb40 + 0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af, + 0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f, + 0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b, + 0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f, + 0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f, + 0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b, + 0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f, + 0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b, + 0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee, + 0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900, + 0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912, + // Block 0x2e, offset 0xb80 + 0xb80: 0x1cc9, 0xb81: 0x1cd8, 0xb82: 0x1ce7, 0xb83: 0x1cf6, 0xb84: 0x1d05, 0xb85: 0x1d14, + 0xb86: 0x1d23, 0xb87: 0x1d32, 0xb88: 0x1d41, 0xb89: 0x218f, 0xb8a: 0x21a1, 0xb8b: 0x21b3, + 0xb8c: 0x1954, 0xb8d: 0x1c07, 0xb8e: 0x19d5, 0xb8f: 0x1bab, 0xb90: 0x04cb, 0xb91: 0x04d3, + 0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7, + 0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f, + 0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b, + 0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543, + 0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b, + 0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f, + 0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597, + 0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x2b0f, 0xbc1: 0x29ab, 0xbc2: 0x2b1f, 0xbc3: 0x2883, 0xbc4: 0x2ee7, 0xbc5: 0x288d, + 0xbc6: 0x2897, 0xbc7: 0x2f2b, 0xbc8: 0x29b8, 0xbc9: 0x28a1, 0xbca: 0x28ab, 0xbcb: 0x28b5, + 0xbcc: 0x29df, 0xbcd: 0x29ec, 0xbce: 0x29c5, 0xbcf: 0x29d2, 0xbd0: 0x2eac, 0xbd1: 0x29f9, + 0xbd2: 0x2a06, 0xbd3: 0x2bc1, 0xbd4: 0x26be, 0xbd5: 0x2bd4, 0xbd6: 0x2be7, 0xbd7: 0x2b2f, + 0xbd8: 0x2a13, 0xbd9: 0x2bfa, 0xbda: 0x2c0d, 0xbdb: 0x2a20, 0xbdc: 0x28bf, 0xbdd: 0x28c9, + 0xbde: 0x2eba, 0xbdf: 0x2a2d, 0xbe0: 0x2b3f, 0xbe1: 0x2ef8, 0xbe2: 0x28d3, 0xbe3: 0x28dd, + 0xbe4: 0x2a3a, 0xbe5: 0x28e7, 0xbe6: 0x28f1, 0xbe7: 0x26d3, 0xbe8: 0x26da, 0xbe9: 0x28fb, + 0xbea: 0x2905, 0xbeb: 0x2c20, 0xbec: 0x2a47, 0xbed: 0x2b4f, 0xbee: 0x2c33, 0xbef: 0x2a54, + 0xbf0: 0x2919, 0xbf1: 0x290f, 0xbf2: 0x2f3f, 0xbf3: 0x2a61, 0xbf4: 0x2c46, 0xbf5: 0x2923, + 0xbf6: 0x2b5f, 0xbf7: 0x292d, 0xbf8: 0x2a7b, 0xbf9: 0x2937, 0xbfa: 0x2a88, 0xbfb: 0x2f09, + 0xbfc: 0x2a6e, 0xbfd: 0x2b6f, 0xbfe: 0x2a95, 0xbff: 0x26e1, + // Block 0x30, offset 0xc00 + 0xc00: 0x2f1a, 0xc01: 0x2941, 0xc02: 0x294b, 0xc03: 0x2aa2, 0xc04: 0x2955, 0xc05: 0x295f, + 0xc06: 0x2969, 0xc07: 0x2b7f, 0xc08: 0x2aaf, 0xc09: 0x26e8, 0xc0a: 0x2c59, 0xc0b: 0x2e93, + 0xc0c: 0x2b8f, 0xc0d: 0x2abc, 0xc0e: 0x2ec8, 0xc0f: 0x2973, 0xc10: 0x297d, 0xc11: 0x2ac9, + 0xc12: 0x26ef, 0xc13: 0x2ad6, 0xc14: 0x2b9f, 0xc15: 0x26f6, 0xc16: 0x2c6c, 0xc17: 0x2987, + 0xc18: 0x1cba, 0xc19: 0x1cce, 0xc1a: 0x1cdd, 0xc1b: 0x1cec, 0xc1c: 0x1cfb, 0xc1d: 0x1d0a, + 0xc1e: 0x1d19, 0xc1f: 0x1d28, 0xc20: 0x1d37, 0xc21: 0x1d46, 0xc22: 0x2195, 0xc23: 0x21a7, + 0xc24: 0x21b9, 0xc25: 0x21c5, 0xc26: 0x21d1, 0xc27: 0x21dd, 0xc28: 0x21e9, 0xc29: 0x21f5, + 0xc2a: 0x2201, 0xc2b: 0x220d, 0xc2c: 0x2249, 0xc2d: 0x2255, 0xc2e: 0x2261, 0xc2f: 0x226d, + 0xc30: 0x2279, 0xc31: 0x1c17, 0xc32: 0x19c9, 0xc33: 0x1936, 0xc34: 0x1be7, 0xc35: 0x1a4a, + 0xc36: 0x1a59, 0xc37: 0x19cf, 0xc38: 0x1bff, 0xc39: 0x1c03, 0xc3a: 0x1960, 0xc3b: 0x2704, + 0xc3c: 0x2712, 0xc3d: 0x26fd, 0xc3e: 0x270b, 0xc3f: 0x2ae3, + // Block 0x31, offset 0xc40 + 0xc40: 0x1a4d, 0xc41: 0x1a35, 0xc42: 0x1c63, 0xc43: 0x1a1d, 0xc44: 0x19f6, 0xc45: 0x1969, + 0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf3, 0xc49: 0x1d55, 0xc4a: 0x1a50, 0xc4b: 0x1a38, + 0xc4c: 0x1c67, 0xc4d: 0x1c73, 0xc4e: 0x1a29, 0xc4f: 0x19ff, 0xc50: 0x1957, 0xc51: 0x1c1f, + 0xc52: 0x1bb3, 0xc53: 0x1b9f, 0xc54: 0x1bcf, 0xc55: 0x1c77, 0xc56: 0x1a2c, 0xc57: 0x19cc, + 0xc58: 0x1a02, 0xc59: 0x19e1, 0xc5a: 0x1a44, 0xc5b: 0x1c7b, 0xc5c: 0x1a2f, 0xc5d: 0x19c3, + 0xc5e: 0x1a05, 0xc5f: 0x1c3f, 0xc60: 0x1bf7, 0xc61: 0x1a17, 0xc62: 0x1c27, 0xc63: 0x1c43, + 0xc64: 0x1bfb, 0xc65: 0x1a1a, 0xc66: 0x1c2b, 0xc67: 0x22eb, 0xc68: 0x22ff, 0xc69: 0x1999, + 0xc6a: 0x1c23, 0xc6b: 0x1bb7, 0xc6c: 0x1ba3, 0xc6d: 0x1c4b, 0xc6e: 0x2719, 0xc6f: 0x27b0, + 0xc70: 0x1a5c, 0xc71: 0x1a47, 0xc72: 0x1c7f, 0xc73: 0x1a32, 0xc74: 0x1a53, 0xc75: 0x1a3b, + 0xc76: 0x1c6b, 0xc77: 0x1a20, 0xc78: 0x19f9, 0xc79: 0x1984, 0xc7a: 0x1a56, 0xc7b: 0x1a3e, + 0xc7c: 0x1c6f, 0xc7d: 0x1a23, 0xc7e: 0x19fc, 0xc7f: 0x1987, + // Block 0x32, offset 0xc80 + 0xc80: 0x1c2f, 0xc81: 0x1bbb, 0xc82: 0x1d50, 0xc83: 0x1939, 0xc84: 0x19bd, 0xc85: 0x19c0, + 0xc86: 0x22f8, 0xc87: 0x1b97, 0xc88: 0x19c6, 0xc89: 0x194b, 0xc8a: 0x19e4, 0xc8b: 0x194e, + 0xc8c: 0x19ed, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a08, 0xc90: 0x1a0e, 0xc91: 0x1a11, + 0xc92: 0x1c33, 0xc93: 0x1a14, 0xc94: 0x1a26, 0xc95: 0x1c3b, 0xc96: 0x1c47, 0xc97: 0x1993, + 0xc98: 0x1d5a, 0xc99: 0x1bbf, 0xc9a: 0x1996, 0xc9b: 0x1a5f, 0xc9c: 0x19a8, 0xc9d: 0x19b7, + 0xc9e: 0x22e5, 0xc9f: 0x22df, 0xca0: 0x1cc4, 0xca1: 0x1cd3, 0xca2: 0x1ce2, 0xca3: 0x1cf1, + 0xca4: 0x1d00, 0xca5: 0x1d0f, 0xca6: 0x1d1e, 0xca7: 0x1d2d, 0xca8: 0x1d3c, 0xca9: 0x2189, + 0xcaa: 0x219b, 0xcab: 0x21ad, 0xcac: 0x21bf, 0xcad: 0x21cb, 0xcae: 0x21d7, 0xcaf: 0x21e3, + 0xcb0: 0x21ef, 0xcb1: 0x21fb, 0xcb2: 0x2207, 0xcb3: 0x2243, 0xcb4: 0x224f, 0xcb5: 0x225b, + 0xcb6: 0x2267, 0xcb7: 0x2273, 0xcb8: 0x227f, 0xcb9: 0x2285, 0xcba: 0x228b, 0xcbb: 0x2291, + 0xcbc: 0x2297, 0xcbd: 0x22a9, 0xcbe: 0x22af, 0xcbf: 0x1c13, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb, + 0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943, + 0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3, + 0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43, + 0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87, + 0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283, + 0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f, + 0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853, + 0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b, + 0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b, + 0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b, + // Block 0x34, offset 0xd00 + 0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b, + 0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f, + 0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7, + 0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127, + 0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357, + 0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873, + 0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3, + 0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b, + 0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57, + 0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb, + 0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b, + // Block 0x35, offset 0xd40 + 0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f, + 0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3, + 0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83, + 0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193, + 0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b, + 0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b, + 0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f, + 0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b, + 0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753, + 0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777, + 0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73, + // Block 0x36, offset 0xd80 + 0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3, + 0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47, + 0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af, + 0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df, + 0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817, + 0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3, + 0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457, + 0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b, + 0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27, + 0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f, + 0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03, + 0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27, + 0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af, + 0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3, + 0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb, + 0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353, + 0xde5: 0x1407, 0xde6: 0x1433, + 0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7, + 0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897, + 0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93, + 0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3, + // Block 0x38, offset 0xe00 + 0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b, + 0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f, + 0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f, + 0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f, + 0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff, + 0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f, + 0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f, + 0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3, + 0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7, + 0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963, + 0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f, + // Block 0x39, offset 0xe40 + 0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b, + 0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb, + 0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf, + 0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f, + 0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013, + 0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f, + 0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b, + 0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b, + 0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb, + 0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343, + 0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f, + // Block 0x3a, offset 0xe80 + 0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b, + 0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b, + 0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2, + 0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809, + 0xe98: 0x1617, 0xe99: 0x1627, + // Block 0x3b, offset 0xec0 + 0xec0: 0x19d8, 0xec1: 0x19db, 0xec2: 0x19de, 0xec3: 0x1c0b, 0xec4: 0x1c0f, 0xec5: 0x1a62, + 0xec6: 0x1a62, + 0xed3: 0x1d78, 0xed4: 0x1d69, 0xed5: 0x1d6e, 0xed6: 0x1d7d, 0xed7: 0x1d73, + 0xedd: 0x4393, + 0xede: 0x8115, 0xedf: 0x4405, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221, + 0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017, + 0xeea: 0x43f3, 0xeeb: 0x43f9, 0xeec: 0x44f7, 0xeed: 0x44ff, 0xeee: 0x434b, 0xeef: 0x4351, + 0xef0: 0x4357, 0xef1: 0x435d, 0xef2: 0x4369, 0xef3: 0x436f, 0xef4: 0x4375, 0xef5: 0x4381, + 0xef6: 0x4387, 0xef8: 0x438d, 0xef9: 0x4399, 0xefa: 0x439f, 0xefb: 0x43a5, + 0xefc: 0x43b1, 0xefe: 0x43b7, + // Block 0x3c, offset 0xf00 + 0xf00: 0x43bd, 0xf01: 0x43c3, 0xf03: 0x43c9, 0xf04: 0x43cf, + 0xf06: 0x43db, 0xf07: 0x43e1, 0xf08: 0x43e7, 0xf09: 0x43ed, 0xf0a: 0x43ff, 0xf0b: 0x437b, + 0xf0c: 0x4363, 0xf0d: 0x43ab, 0xf0e: 0x43d5, 0xf0f: 0x1d82, 0xf10: 0x0299, 0xf11: 0x0299, + 0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5, + 0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab, + 0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8, + 0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c, + 0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2, + 0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1, + 0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4, + 0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7, + // Block 0x3d, offset 0xf40 + 0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd, + 0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9, + 0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5, + 0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1, + 0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de, + 0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7, + 0xf64: 0x4471, 0xf65: 0x4471, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed, + 0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308, + 0xf70: 0x446b, 0xf71: 0x446b, + // Block 0x3e, offset 0xf80 + 0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6, + 0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x2052, + 0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc, + 0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d, + 0xfaa: 0x25ad, 0xfab: 0x25ad, 0xfac: 0x261d, 0xfad: 0x261d, 0xfae: 0x25ec, 0xfaf: 0x25ec, + 0xfb0: 0x2608, 0xfb1: 0x2608, 0xfb2: 0x2601, 0xfb3: 0x2601, 0xfb4: 0x260f, 0xfb5: 0x260f, + 0xfb6: 0x2616, 0xfb7: 0x2616, 0xfb8: 0x2616, 0xfb9: 0x25f3, 0xfba: 0x25f3, 0xfbb: 0x25f3, + 0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x25b4, 0xfc1: 0x25bb, 0xfc2: 0x25d7, 0xfc3: 0x25f3, 0xfc4: 0x25fa, 0xfc5: 0x1d8c, + 0xfc6: 0x1d91, 0xfc7: 0x1d96, 0xfc8: 0x1da5, 0xfc9: 0x1db4, 0xfca: 0x1db9, 0xfcb: 0x1dbe, + 0xfcc: 0x1dc3, 0xfcd: 0x1dc8, 0xfce: 0x1dd7, 0xfcf: 0x1de6, 0xfd0: 0x1deb, 0xfd1: 0x1df0, + 0xfd2: 0x1dff, 0xfd3: 0x1e0e, 0xfd4: 0x1e13, 0xfd5: 0x1e18, 0xfd6: 0x1e1d, 0xfd7: 0x1e2c, + 0xfd8: 0x1e31, 0xfd9: 0x1e40, 0xfda: 0x1e45, 0xfdb: 0x1e4a, 0xfdc: 0x1e59, 0xfdd: 0x1e5e, + 0xfde: 0x1e63, 0xfdf: 0x1e6d, 0xfe0: 0x1ea9, 0xfe1: 0x1eb8, 0xfe2: 0x1ec7, 0xfe3: 0x1ecc, + 0xfe4: 0x1ed1, 0xfe5: 0x1edb, 0xfe6: 0x1eea, 0xfe7: 0x1eef, 0xfe8: 0x1efe, 0xfe9: 0x1f03, + 0xfea: 0x1f08, 0xfeb: 0x1f17, 0xfec: 0x1f1c, 0xfed: 0x1f2b, 0xfee: 0x1f30, 0xfef: 0x1f35, + 0xff0: 0x1f3a, 0xff1: 0x1f3f, 0xff2: 0x1f44, 0xff3: 0x1f49, 0xff4: 0x1f4e, 0xff5: 0x1f53, + 0xff6: 0x1f58, 0xff7: 0x1f5d, 0xff8: 0x1f62, 0xff9: 0x1f67, 0xffa: 0x1f6c, 0xffb: 0x1f71, + 0xffc: 0x1f76, 0xffd: 0x1f7b, 0xffe: 0x1f80, 0xfff: 0x1f8a, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f8f, 0x1001: 0x1f94, 0x1002: 0x1f99, 0x1003: 0x1fa3, 0x1004: 0x1fa8, 0x1005: 0x1fb2, + 0x1006: 0x1fb7, 0x1007: 0x1fbc, 0x1008: 0x1fc1, 0x1009: 0x1fc6, 0x100a: 0x1fcb, 0x100b: 0x1fd0, + 0x100c: 0x1fd5, 0x100d: 0x1fda, 0x100e: 0x1fe9, 0x100f: 0x1ff8, 0x1010: 0x1ffd, 0x1011: 0x2002, + 0x1012: 0x2007, 0x1013: 0x200c, 0x1014: 0x2011, 0x1015: 0x201b, 0x1016: 0x2020, 0x1017: 0x2025, + 0x1018: 0x2034, 0x1019: 0x2043, 0x101a: 0x2048, 0x101b: 0x4423, 0x101c: 0x4429, 0x101d: 0x445f, + 0x101e: 0x44b6, 0x101f: 0x44bd, 0x1020: 0x44c4, 0x1021: 0x44cb, 0x1022: 0x44d2, 0x1023: 0x44d9, + 0x1024: 0x25c9, 0x1025: 0x25d0, 0x1026: 0x25d7, 0x1027: 0x25de, 0x1028: 0x25f3, 0x1029: 0x25fa, + 0x102a: 0x1d9b, 0x102b: 0x1da0, 0x102c: 0x1da5, 0x102d: 0x1daa, 0x102e: 0x1db4, 0x102f: 0x1db9, + 0x1030: 0x1dcd, 0x1031: 0x1dd2, 0x1032: 0x1dd7, 0x1033: 0x1ddc, 0x1034: 0x1de6, 0x1035: 0x1deb, + 0x1036: 0x1df5, 0x1037: 0x1dfa, 0x1038: 0x1dff, 0x1039: 0x1e04, 0x103a: 0x1e0e, 0x103b: 0x1e13, + 0x103c: 0x1f3f, 0x103d: 0x1f44, 0x103e: 0x1f53, 0x103f: 0x1f58, + // Block 0x41, offset 0x1040 + 0x1040: 0x1f5d, 0x1041: 0x1f71, 0x1042: 0x1f76, 0x1043: 0x1f7b, 0x1044: 0x1f80, 0x1045: 0x1f99, + 0x1046: 0x1fa3, 0x1047: 0x1fa8, 0x1048: 0x1fad, 0x1049: 0x1fc1, 0x104a: 0x1fdf, 0x104b: 0x1fe4, + 0x104c: 0x1fe9, 0x104d: 0x1fee, 0x104e: 0x1ff8, 0x104f: 0x1ffd, 0x1050: 0x445f, 0x1051: 0x202a, + 0x1052: 0x202f, 0x1053: 0x2034, 0x1054: 0x2039, 0x1055: 0x2043, 0x1056: 0x2048, 0x1057: 0x25b4, + 0x1058: 0x25bb, 0x1059: 0x25c2, 0x105a: 0x25d7, 0x105b: 0x25e5, 0x105c: 0x1d8c, 0x105d: 0x1d91, + 0x105e: 0x1d96, 0x105f: 0x1da5, 0x1060: 0x1daf, 0x1061: 0x1dbe, 0x1062: 0x1dc3, 0x1063: 0x1dc8, + 0x1064: 0x1dd7, 0x1065: 0x1de1, 0x1066: 0x1dff, 0x1067: 0x1e18, 0x1068: 0x1e1d, 0x1069: 0x1e2c, + 0x106a: 0x1e31, 0x106b: 0x1e40, 0x106c: 0x1e4a, 0x106d: 0x1e59, 0x106e: 0x1e5e, 0x106f: 0x1e63, + 0x1070: 0x1e6d, 0x1071: 0x1ea9, 0x1072: 0x1eae, 0x1073: 0x1eb8, 0x1074: 0x1ec7, 0x1075: 0x1ecc, + 0x1076: 0x1ed1, 0x1077: 0x1edb, 0x1078: 0x1eea, 0x1079: 0x1efe, 0x107a: 0x1f03, 0x107b: 0x1f08, + 0x107c: 0x1f17, 0x107d: 0x1f1c, 0x107e: 0x1f2b, 0x107f: 0x1f30, + // Block 0x42, offset 0x1080 + 0x1080: 0x1f35, 0x1081: 0x1f3a, 0x1082: 0x1f49, 0x1083: 0x1f4e, 0x1084: 0x1f62, 0x1085: 0x1f67, + 0x1086: 0x1f6c, 0x1087: 0x1f71, 0x1088: 0x1f76, 0x1089: 0x1f8a, 0x108a: 0x1f8f, 0x108b: 0x1f94, + 0x108c: 0x1f99, 0x108d: 0x1f9e, 0x108e: 0x1fb2, 0x108f: 0x1fb7, 0x1090: 0x1fbc, 0x1091: 0x1fc1, + 0x1092: 0x1fd0, 0x1093: 0x1fd5, 0x1094: 0x1fda, 0x1095: 0x1fe9, 0x1096: 0x1ff3, 0x1097: 0x2002, + 0x1098: 0x2007, 0x1099: 0x4453, 0x109a: 0x201b, 0x109b: 0x2020, 0x109c: 0x2025, 0x109d: 0x2034, + 0x109e: 0x203e, 0x109f: 0x25d7, 0x10a0: 0x25e5, 0x10a1: 0x1da5, 0x10a2: 0x1daf, 0x10a3: 0x1dd7, + 0x10a4: 0x1de1, 0x10a5: 0x1dff, 0x10a6: 0x1e09, 0x10a7: 0x1e6d, 0x10a8: 0x1e72, 0x10a9: 0x1e95, + 0x10aa: 0x1e9a, 0x10ab: 0x1f71, 0x10ac: 0x1f76, 0x10ad: 0x1f99, 0x10ae: 0x1fe9, 0x10af: 0x1ff3, + 0x10b0: 0x2034, 0x10b1: 0x203e, 0x10b2: 0x4507, 0x10b3: 0x450f, 0x10b4: 0x4517, 0x10b5: 0x1ef4, + 0x10b6: 0x1ef9, 0x10b7: 0x1f0d, 0x10b8: 0x1f12, 0x10b9: 0x1f21, 0x10ba: 0x1f26, 0x10bb: 0x1e77, + 0x10bc: 0x1e7c, 0x10bd: 0x1e9f, 0x10be: 0x1ea4, 0x10bf: 0x1e36, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x1e3b, 0x10c1: 0x1e22, 0x10c2: 0x1e27, 0x10c3: 0x1e4f, 0x10c4: 0x1e54, 0x10c5: 0x1ebd, + 0x10c6: 0x1ec2, 0x10c7: 0x1ee0, 0x10c8: 0x1ee5, 0x10c9: 0x1e81, 0x10ca: 0x1e86, 0x10cb: 0x1e8b, + 0x10cc: 0x1e95, 0x10cd: 0x1e90, 0x10ce: 0x1e68, 0x10cf: 0x1eb3, 0x10d0: 0x1ed6, 0x10d1: 0x1ef4, + 0x10d2: 0x1ef9, 0x10d3: 0x1f0d, 0x10d4: 0x1f12, 0x10d5: 0x1f21, 0x10d6: 0x1f26, 0x10d7: 0x1e77, + 0x10d8: 0x1e7c, 0x10d9: 0x1e9f, 0x10da: 0x1ea4, 0x10db: 0x1e36, 0x10dc: 0x1e3b, 0x10dd: 0x1e22, + 0x10de: 0x1e27, 0x10df: 0x1e4f, 0x10e0: 0x1e54, 0x10e1: 0x1ebd, 0x10e2: 0x1ec2, 0x10e3: 0x1ee0, + 0x10e4: 0x1ee5, 0x10e5: 0x1e81, 0x10e6: 0x1e86, 0x10e7: 0x1e8b, 0x10e8: 0x1e95, 0x10e9: 0x1e90, + 0x10ea: 0x1e68, 0x10eb: 0x1eb3, 0x10ec: 0x1ed6, 0x10ed: 0x1e81, 0x10ee: 0x1e86, 0x10ef: 0x1e8b, + 0x10f0: 0x1e95, 0x10f1: 0x1e72, 0x10f2: 0x1e9a, 0x10f3: 0x1eef, 0x10f4: 0x1e59, 0x10f5: 0x1e5e, + 0x10f6: 0x1e63, 0x10f7: 0x1e81, 0x10f8: 0x1e86, 0x10f9: 0x1e8b, 0x10fa: 0x1eef, 0x10fb: 0x1efe, + 0x10fc: 0x440b, 0x10fd: 0x440b, + // Block 0x44, offset 0x1100 + 0x1110: 0x2314, 0x1111: 0x2329, + 0x1112: 0x2329, 0x1113: 0x2330, 0x1114: 0x2337, 0x1115: 0x234c, 0x1116: 0x2353, 0x1117: 0x235a, + 0x1118: 0x237d, 0x1119: 0x237d, 0x111a: 0x23a0, 0x111b: 0x2399, 0x111c: 0x23b5, 0x111d: 0x23a7, + 0x111e: 0x23ae, 0x111f: 0x23d1, 0x1120: 0x23d1, 0x1121: 0x23ca, 0x1122: 0x23d8, 0x1123: 0x23d8, + 0x1124: 0x2402, 0x1125: 0x2402, 0x1126: 0x241e, 0x1127: 0x23e6, 0x1128: 0x23e6, 0x1129: 0x23df, + 0x112a: 0x23f4, 0x112b: 0x23f4, 0x112c: 0x23fb, 0x112d: 0x23fb, 0x112e: 0x2425, 0x112f: 0x2433, + 0x1130: 0x2433, 0x1131: 0x243a, 0x1132: 0x243a, 0x1133: 0x2441, 0x1134: 0x2448, 0x1135: 0x244f, + 0x1136: 0x2456, 0x1137: 0x2456, 0x1138: 0x245d, 0x1139: 0x246b, 0x113a: 0x2479, 0x113b: 0x2472, + 0x113c: 0x2480, 0x113d: 0x2480, 0x113e: 0x2495, 0x113f: 0x249c, + // Block 0x45, offset 0x1140 + 0x1140: 0x24cd, 0x1141: 0x24db, 0x1142: 0x24d4, 0x1143: 0x24b8, 0x1144: 0x24b8, 0x1145: 0x24e2, + 0x1146: 0x24e2, 0x1147: 0x24e9, 0x1148: 0x24e9, 0x1149: 0x2513, 0x114a: 0x251a, 0x114b: 0x2521, + 0x114c: 0x24f7, 0x114d: 0x2505, 0x114e: 0x2528, 0x114f: 0x252f, + 0x1152: 0x24fe, 0x1153: 0x2583, 0x1154: 0x258a, 0x1155: 0x2560, 0x1156: 0x2567, 0x1157: 0x254b, + 0x1158: 0x254b, 0x1159: 0x2552, 0x115a: 0x257c, 0x115b: 0x2575, 0x115c: 0x259f, 0x115d: 0x259f, + 0x115e: 0x230d, 0x115f: 0x2322, 0x1160: 0x231b, 0x1161: 0x2345, 0x1162: 0x233e, 0x1163: 0x2368, + 0x1164: 0x2361, 0x1165: 0x238b, 0x1166: 0x236f, 0x1167: 0x2384, 0x1168: 0x23bc, 0x1169: 0x2409, + 0x116a: 0x23ed, 0x116b: 0x242c, 0x116c: 0x24c6, 0x116d: 0x24f0, 0x116e: 0x2598, 0x116f: 0x2591, + 0x1170: 0x25a6, 0x1171: 0x253d, 0x1172: 0x24a3, 0x1173: 0x256e, 0x1174: 0x2495, 0x1175: 0x24cd, + 0x1176: 0x2464, 0x1177: 0x24b1, 0x1178: 0x2544, 0x1179: 0x2536, 0x117a: 0x24bf, 0x117b: 0x24aa, + 0x117c: 0x24bf, 0x117d: 0x2544, 0x117e: 0x2376, 0x117f: 0x2392, + // Block 0x46, offset 0x1180 + 0x1180: 0x250c, 0x1181: 0x2487, 0x1182: 0x2306, 0x1183: 0x24aa, 0x1184: 0x244f, 0x1185: 0x241e, + 0x1186: 0x23c3, 0x1187: 0x2559, + 0x11b0: 0x2417, 0x11b1: 0x248e, 0x11b2: 0x27c2, 0x11b3: 0x27b9, 0x11b4: 0x27ef, 0x11b5: 0x27dd, + 0x11b6: 0x27cb, 0x11b7: 0x27e6, 0x11b8: 0x27f8, 0x11b9: 0x2410, 0x11ba: 0x2c7f, 0x11bb: 0x2aff, + 0x11bc: 0x27d4, + // Block 0x47, offset 0x11c0 + 0x11d0: 0x0019, 0x11d1: 0x0483, + 0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf, + 0x11d8: 0x04c3, 0x11d9: 0x1b5f, + 0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132, + 0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d, + 0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132, + 0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, + 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab, + 0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b, + // Block 0x48, offset 0x1200 + 0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7, + 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x426c, 0x120a: 0x426c, 0x120b: 0x426c, + 0x120c: 0x426c, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483, + 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, + 0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7, + 0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, + 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, + 0x122a: 0x000b, 0x122b: 0x0041, + 0x1230: 0x42ad, 0x1231: 0x442f, 0x1232: 0x42b2, 0x1234: 0x42b7, + 0x1236: 0x42bc, 0x1237: 0x4435, 0x1238: 0x42c1, 0x1239: 0x443b, 0x123a: 0x42c6, 0x123b: 0x4441, + 0x123c: 0x42cb, 0x123d: 0x4447, 0x123e: 0x42d0, 0x123f: 0x444d, + // Block 0x49, offset 0x1240 + 0x1240: 0x0236, 0x1241: 0x4411, 0x1242: 0x4411, 0x1243: 0x4417, 0x1244: 0x4417, 0x1245: 0x4459, + 0x1246: 0x4459, 0x1247: 0x441d, 0x1248: 0x441d, 0x1249: 0x4465, 0x124a: 0x4465, 0x124b: 0x4465, + 0x124c: 0x4465, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c, + 0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242, + 0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248, + 0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b, + 0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251, + 0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a, + 0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260, + 0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263, + 0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c, + 0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f, + 0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275, + 0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278, + 0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e, + 0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281, + 0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287, + 0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d, + 0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e03, + 0x12b6: 0x2e03, 0x12b7: 0x2e0b, 0x12b8: 0x2e0b, 0x12b9: 0x2e13, 0x12ba: 0x2e13, 0x12bb: 0x1f85, + 0x12bc: 0x1f85, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, + 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, + 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, + 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, + 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, + 0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f, + 0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7, + 0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f, + 0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb, + 0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503, + 0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513, + // Block 0x4c, offset 0x1300 + 0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f, + 0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547, + 0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f, + 0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583, + 0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7, + 0x131e: 0x4a7b, 0x131f: 0x4a81, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3e, + 0x1324: 0x031b, 0x1325: 0x4a44, 0x1326: 0x4a4a, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327, + 0x132a: 0x4a50, 0x132b: 0x4a56, 0x132c: 0x4a5c, 0x132d: 0x4a62, 0x132e: 0x4a68, 0x132f: 0x4a6e, + 0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337, + 0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f, + 0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b, + // Block 0x4d, offset 0x1340 + 0x1342: 0x49c0, 0x1343: 0x49c6, 0x1344: 0x49cc, 0x1345: 0x49d2, + 0x1346: 0x49d8, 0x1347: 0x49de, 0x134a: 0x49e4, 0x134b: 0x49ea, + 0x134c: 0x49f0, 0x134d: 0x49f6, 0x134e: 0x49fc, 0x134f: 0x4a02, + 0x1352: 0x4a08, 0x1353: 0x4a0e, 0x1354: 0x4a14, 0x1355: 0x4a1a, 0x1356: 0x4a20, 0x1357: 0x4a26, + 0x135a: 0x4a2c, 0x135b: 0x4a32, 0x135c: 0x4a38, + 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4267, + 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b, + 0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d, + 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085, + 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091, + 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d, + 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9, + 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5, + 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176, + 0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188, + 0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a, + 0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9, + 0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0, + 0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209, + 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027, + 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033, + 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b, + 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023, + 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f, + 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027, + 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033, + 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b, + 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033, + // Block 0x50, offset 0x1400 + 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a, + 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e, + 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, + 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, + 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4, + 0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, + 0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290, + 0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, + 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, + 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272, + // Block 0x51, offset 0x1440 + 0x1442: 0x0248, + 0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e, + 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263, + 0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e, + 0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4, + 0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248, + 0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, + 0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, + 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242, + 0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, + 0x147c: 0x0293, 0x147e: 0x02cc, + // Block 0x52, offset 0x1480 + 0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a, + 0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e, + 0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263, + 0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e, + 0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272, + 0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251, + 0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290, + 0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f, + 0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242, + 0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8, + 0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927, + 0x14d0: 0x1a8f, 0x14d1: 0x1a93, + 0x14d2: 0x1a97, 0x14d3: 0x1a9b, 0x14d4: 0x1a9f, 0x14d5: 0x1aa3, 0x14d6: 0x1aa7, 0x14d7: 0x1aab, + 0x14d8: 0x1aaf, 0x14d9: 0x1ab3, 0x14da: 0x1ab7, 0x14db: 0x1abb, 0x14dc: 0x1abf, 0x14dd: 0x1ac3, + 0x14de: 0x1ac7, 0x14df: 0x1acb, 0x14e0: 0x1acf, 0x14e1: 0x1ad3, 0x14e2: 0x1ad7, 0x14e3: 0x1adb, + 0x14e4: 0x1adf, 0x14e5: 0x1ae3, 0x14e6: 0x1ae7, 0x14e7: 0x1aeb, 0x14e8: 0x1aef, 0x14e9: 0x1af3, + 0x14ea: 0x2721, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b4, + 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d, + 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059, + 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061, + // Block 0x54, offset 0x1500 + 0x1500: 0x26b0, 0x1501: 0x26c5, 0x1502: 0x0503, + 0x1510: 0x0c0f, 0x1511: 0x0a47, + 0x1512: 0x08d3, 0x1513: 0x45c7, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff, + 0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b, + 0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b, + 0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf, + 0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b, + 0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43, + 0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443, + // Block 0x55, offset 0x1540 + 0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757, + 0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773, + 0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3, + 0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf, + 0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff, + 0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f, + 0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867, + 0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af, + 0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93, + 0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3, + 0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917, + // Block 0x56, offset 0x1580 + 0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f, + 0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983, + 0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf, + 0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3, + 0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef, + 0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23, + 0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37, + 0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63, + 0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f, + 0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692, + 0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb, + 0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f, + 0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6, + 0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9, + 0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83, + 0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3, + 0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf, + 0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7, + 0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f, + 0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b, + 0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f, + // Block 0x58, offset 0x1600 + 0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87, + 0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb, + 0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7, + 0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663, + 0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd, + 0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7, + 0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b, + 0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f, + 0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7, + 0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700, + 0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb, + // Block 0x59, offset 0x1640 + 0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23, + 0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53, + 0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714, + 0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b, + 0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719, + 0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728, + 0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37, + 0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57, + 0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737, + 0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741, + 0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b, + // Block 0x5a, offset 0x1680 + 0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff, + 0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637, + 0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f, + 0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093, + 0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782, + 0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3, + 0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7, + 0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133, + 0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa, + 0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4, + 0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7, + 0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7, + 0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b, + 0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd, + 0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f, + 0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f, + 0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273, + 0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677, + 0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7, + 0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb, + 0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f, + // Block 0x5c, offset 0x1700 + 0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5, + 0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa, + 0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b, + 0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7, + 0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665, + 0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f, + 0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477, + 0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693, + 0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb, + 0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b, + 0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b, + // Block 0x5d, offset 0x1740 + 0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567, + 0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7, + 0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7, + 0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef, + 0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868, +} + +// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62, + 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, + 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, + 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, + 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, + // Block 0x5, offset 0x140 + 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, + 0x14d: 0x8a, + 0x15c: 0x8b, 0x15f: 0x8c, + 0x162: 0x8d, 0x164: 0x8e, + 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, + 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, + 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, + // Block 0x6, offset 0x180 + 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d, + 0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0, + 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1, + 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, + 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, + 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28, + 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, + // Block 0x8, offset 0x200 + 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, + 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, + 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, + 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, + 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, + // Block 0x9, offset 0x240 + 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, + 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, + 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, + 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, + 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, + 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, + 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, + 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, + // Block 0xa, offset 0x280 + 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, + 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, + 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, + 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, + 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, + 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, + 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, + 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, + 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, + 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, + 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, + // Block 0xc, offset 0x300 + 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, + 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, + 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, + 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, + // Block 0xd, offset 0x340 + 0x347: 0xc6, + 0x34b: 0xc7, 0x34d: 0xc8, + 0x368: 0xc9, 0x36b: 0xca, + 0x374: 0xcb, + 0x37d: 0xcc, + // Block 0xe, offset 0x380 + 0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0, + 0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4, + 0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9, + 0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc, + 0x3a0: 0xdd, 0x3a7: 0xde, + 0x3a8: 0xdf, 0x3a9: 0xe0, 0x3aa: 0xe1, + 0x3b0: 0xda, 0x3b5: 0xe2, 0x3b6: 0xe3, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xe4, 0x3ec: 0xe5, + // Block 0x10, offset 0x400 + 0x432: 0xe6, + // Block 0x11, offset 0x440 + 0x445: 0xe7, 0x446: 0xe8, 0x447: 0xe9, + 0x449: 0xea, + 0x450: 0xeb, 0x451: 0xec, 0x452: 0xed, 0x453: 0xee, 0x454: 0xef, 0x455: 0xf0, 0x456: 0xf1, 0x457: 0xf2, + 0x458: 0xf3, 0x459: 0xf4, 0x45a: 0x4c, 0x45b: 0xf5, 0x45c: 0xf6, 0x45d: 0xf7, 0x45e: 0xf8, 0x45f: 0x4d, + // Block 0x12, offset 0x480 + 0x480: 0xf9, 0x484: 0xe5, + 0x48b: 0xfa, + 0x4a3: 0xfb, 0x4a5: 0xfc, + 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x51, 0x4c5: 0xfd, 0x4c6: 0xfe, + 0x4c8: 0x52, 0x4c9: 0xff, + // Block 0x14, offset 0x500 + 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a, + 0x528: 0x5b, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 164 entries, 328 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x133, 0x13c, 0x13e, 0x141, 0x143, 0x14e, 0x159, 0x167, 0x175, 0x185, 0x193, 0x19a, 0x1a0, 0x1af, 0x1b3, 0x1b5, 0x1b9, 0x1bb, 0x1be, 0x1c0, 0x1c3, 0x1c5, 0x1c8, 0x1ca, 0x1cc, 0x1ce, 0x1da, 0x1e4, 0x1ee, 0x1f1, 0x1f5, 0x1f7, 0x1f9, 0x1fb, 0x1fd, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20e, 0x211, 0x215, 0x217, 0x21e, 0x224, 0x22a, 0x232, 0x238, 0x23e, 0x244, 0x248, 0x24a, 0x24c, 0x24e, 0x250, 0x256, 0x259, 0x25b, 0x261, 0x264, 0x26c, 0x273, 0x276, 0x279, 0x27b, 0x27e, 0x286, 0x28a, 0x291, 0x294, 0x29a, 0x29c, 0x29e, 0x2a1, 0x2a3, 0x2a6, 0x2a8, 0x2aa, 0x2ac, 0x2ae, 0x2b1, 0x2b3, 0x2b5, 0x2b7, 0x2b9, 0x2c6, 0x2d0, 0x2d2, 0x2d4, 0x2d8, 0x2dd, 0x2e9, 0x2ee, 0x2f7, 0x2fd, 0x302, 0x306, 0x30b, 0x30f, 0x31f, 0x32d, 0x33b, 0x349, 0x34f, 0x351, 0x353, 0x356, 0x361, 0x363} + +// nfkcSparseValues: 877 entries, 3508 bytes +var nfkcSparseValues = [877]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x427b, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x4267, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x425d, lo: 0xb4, hi: 0xb4}, + {value: 0x01dc, lo: 0xb5, hi: 0xb5}, + {value: 0x4294, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x221f, lo: 0xbc, hi: 0xbc}, + {value: 0x2213, lo: 0xbd, hi: 0xbd}, + {value: 0x22b5, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x46e5, lo: 0xa0, hi: 0xa1}, + {value: 0x4717, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x4271, lo: 0x98, hi: 0x98}, + {value: 0x4276, lo: 0x99, hi: 0x9a}, + {value: 0x4299, lo: 0x9b, hi: 0x9b}, + {value: 0x4262, lo: 0x9c, hi: 0x9c}, + {value: 0x4285, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x0167, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a8, lo: 0x90, hi: 0x90}, + {value: 0x37b4, lo: 0x91, hi: 0x91}, + {value: 0x37a2, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x381a, lo: 0x97, hi: 0x97}, + {value: 0x37e4, lo: 0x9c, hi: 0x9c}, + {value: 0x37cc, lo: 0x9d, hi: 0x9d}, + {value: 0x37f6, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x3820, lo: 0xb6, hi: 0xb6}, + {value: 0x3826, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3844, lo: 0xa2, hi: 0xa2}, + {value: 0x384a, lo: 0xa3, hi: 0xa3}, + {value: 0x3856, lo: 0xa4, hi: 0xa4}, + {value: 0x3850, lo: 0xa5, hi: 0xa5}, + {value: 0x385c, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x386e, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x3862, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3868, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xc, offset 0x70 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x75 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x77 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3edb, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee3, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3eeb, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0xf, offset 0x7f + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451f, lo: 0x98, hi: 0x9f}, + // Block 0x10, offset 0x86 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x11, offset 0x89 + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2ca1, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455f, lo: 0x9c, hi: 0x9d}, + {value: 0x456f, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x91 + {value: 0x0000, lo: 0x03}, + {value: 0x4597, lo: 0xb3, hi: 0xb3}, + {value: 0x459f, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x13, offset 0x95 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4577, lo: 0x99, hi: 0x9b}, + {value: 0x458f, lo: 0x9e, hi: 0x9e}, + // Block 0x14, offset 0x99 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x16, offset 0x9d + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb9, lo: 0x88, hi: 0x88}, + {value: 0x2cb1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cc1, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a7, lo: 0x9c, hi: 0x9c}, + {value: 0x45af, lo: 0x9d, hi: 0x9d}, + // Block 0x17, offset 0xa6 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc9, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x18, offset 0xaa + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cd1, lo: 0x8a, hi: 0x8a}, + {value: 0x2ce1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd9, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x19, offset 0xb1 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef3, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1a, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0xb9 + {value: 0x0000, lo: 0x09}, + {value: 0x2ce9, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cf1, lo: 0x87, hi: 0x87}, + {value: 0x2cf9, lo: 0x88, hi: 0x88}, + {value: 0x2f53, lo: 0x8a, hi: 0x8a}, + {value: 0x2ddb, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xc3 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1d, offset 0xc6 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2d01, lo: 0x8a, hi: 0x8a}, + {value: 0x2d11, lo: 0x8b, hi: 0x8b}, + {value: 0x2d09, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1e, offset 0xcd + {value: 0x6be7, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3efb, lo: 0x9a, hi: 0x9a}, + {value: 0x2f5b, lo: 0x9c, hi: 0x9c}, + {value: 0x2de6, lo: 0x9d, hi: 0x9d}, + {value: 0x2d19, lo: 0x9e, hi: 0x9f}, + // Block 0x1f, offset 0xd5 + {value: 0x0000, lo: 0x03}, + {value: 0x2624, lo: 0xb3, hi: 0xb3}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x20, offset 0xd9 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x21, offset 0xdb + {value: 0x0000, lo: 0x03}, + {value: 0x2639, lo: 0xb3, hi: 0xb3}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x22, offset 0xdf + {value: 0x0000, lo: 0x03}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + {value: 0x262b, lo: 0x9c, hi: 0x9c}, + {value: 0x2632, lo: 0x9d, hi: 0x9d}, + // Block 0x23, offset 0xe3 + {value: 0x0000, lo: 0x05}, + {value: 0x030b, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x24, offset 0xe9 + {value: 0x0000, lo: 0x10}, + {value: 0x2647, lo: 0x83, hi: 0x83}, + {value: 0x264e, lo: 0x8d, hi: 0x8d}, + {value: 0x2655, lo: 0x92, hi: 0x92}, + {value: 0x265c, lo: 0x97, hi: 0x97}, + {value: 0x2663, lo: 0x9c, hi: 0x9c}, + {value: 0x2640, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a87, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a90, lo: 0xb5, hi: 0xb5}, + {value: 0x45b7, lo: 0xb6, hi: 0xb6}, + {value: 0x45f7, lo: 0xb7, hi: 0xb7}, + {value: 0x45bf, lo: 0xb8, hi: 0xb8}, + {value: 0x4602, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x25, offset 0xfa + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a99, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x2671, lo: 0x93, hi: 0x93}, + {value: 0x2678, lo: 0x9d, hi: 0x9d}, + {value: 0x267f, lo: 0xa2, hi: 0xa2}, + {value: 0x2686, lo: 0xa7, hi: 0xa7}, + {value: 0x268d, lo: 0xac, hi: 0xac}, + {value: 0x266a, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0x106 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x27, offset 0x108 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d21, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x28, offset 0x10e + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x29, offset 0x110 + {value: 0x0000, lo: 0x01}, + {value: 0x030f, lo: 0xbc, hi: 0xbc}, + // Block 0x2a, offset 0x112 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0x114 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x116 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x118 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x11a + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x11c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x11f + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x122 + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x124 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x127 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x12a + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x12e + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x133 + {value: 0x0000, lo: 0x08}, + {value: 0x2d69, lo: 0x80, hi: 0x80}, + {value: 0x2d71, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d79, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x13c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x13e + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x141 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x143 + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x14e + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x159 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043b, lo: 0x91, hi: 0x91}, + {value: 0x429e, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1873, lo: 0xa5, hi: 0xa5}, + {value: 0x1b5f, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2694, lo: 0xb3, hi: 0xb3}, + {value: 0x2801, lo: 0xb4, hi: 0xb4}, + {value: 0x269b, lo: 0xb6, hi: 0xb6}, + {value: 0x280b, lo: 0xb7, hi: 0xb7}, + {value: 0x186d, lo: 0xbc, hi: 0xbc}, + {value: 0x426c, lo: 0xbe, hi: 0xbe}, + // Block 0x3d, offset 0x167 + {value: 0x0002, lo: 0x0d}, + {value: 0x1933, lo: 0x87, hi: 0x87}, + {value: 0x1930, lo: 0x88, hi: 0x88}, + {value: 0x1870, lo: 0x89, hi: 0x89}, + {value: 0x2991, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x0467, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x3e, offset 0x175 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x0467, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x199c, lo: 0xa8, hi: 0xa8}, + // Block 0x3f, offset 0x185 + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x40, offset 0x193 + {value: 0x0007, lo: 0x06}, + {value: 0x2183, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bbc, lo: 0x9a, hi: 0x9b}, + {value: 0x3bca, lo: 0xae, hi: 0xae}, + // Block 0x41, offset 0x19a + {value: 0x000e, lo: 0x05}, + {value: 0x3bd1, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd8, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x42, offset 0x1a0 + {value: 0x0173, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be6, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bed, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf4, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bfb, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3c02, lo: 0xa6, hi: 0xa6}, + {value: 0x26a2, lo: 0xac, hi: 0xad}, + {value: 0x26a9, lo: 0xaf, hi: 0xaf}, + {value: 0x281f, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x43, offset 0x1af + {value: 0x0007, lo: 0x03}, + {value: 0x3c6b, lo: 0xa0, hi: 0xa1}, + {value: 0x3c95, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbf, lo: 0xaa, hi: 0xad}, + // Block 0x44, offset 0x1b3 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x45, offset 0x1b5 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x46, offset 0x1b9 + {value: 0x0000, lo: 0x01}, + {value: 0x299e, lo: 0x8c, hi: 0x8c}, + // Block 0x47, offset 0x1bb + {value: 0x0266, lo: 0x02}, + {value: 0x1b8f, lo: 0xb4, hi: 0xb4}, + {value: 0x192d, lo: 0xb5, hi: 0xb6}, + // Block 0x48, offset 0x1be + {value: 0x0000, lo: 0x01}, + {value: 0x44e0, lo: 0x9c, hi: 0x9c}, + // Block 0x49, offset 0x1c0 + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4a, offset 0x1c3 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x4b, offset 0x1c5 + {value: 0x0000, lo: 0x02}, + {value: 0x047f, lo: 0xaf, hi: 0xaf}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x4c, offset 0x1c8 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x4d, offset 0x1ca + {value: 0x0000, lo: 0x01}, + {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, + // Block 0x4e, offset 0x1cc + {value: 0x0000, lo: 0x01}, + {value: 0x162f, lo: 0xb3, hi: 0xb3}, + // Block 0x4f, offset 0x1ce + {value: 0x0004, lo: 0x0b}, + {value: 0x1597, lo: 0x80, hi: 0x82}, + {value: 0x15af, lo: 0x83, hi: 0x83}, + {value: 0x15c7, lo: 0x84, hi: 0x85}, + {value: 0x15d7, lo: 0x86, hi: 0x89}, + {value: 0x15eb, lo: 0x8a, hi: 0x8c}, + {value: 0x15ff, lo: 0x8d, hi: 0x8d}, + {value: 0x1607, lo: 0x8e, hi: 0x8e}, + {value: 0x160f, lo: 0x8f, hi: 0x90}, + {value: 0x161b, lo: 0x91, hi: 0x93}, + {value: 0x162b, lo: 0x94, hi: 0x94}, + {value: 0x1633, lo: 0x95, hi: 0x95}, + // Block 0x50, offset 0x1da + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xae}, + {value: 0x812f, lo: 0xaf, hi: 0xaf}, + {value: 0x04b3, lo: 0xb6, hi: 0xb6}, + {value: 0x0887, lo: 0xb8, hi: 0xba}, + // Block 0x51, offset 0x1e4 + {value: 0x0006, lo: 0x09}, + {value: 0x0313, lo: 0xb1, hi: 0xb1}, + {value: 0x0317, lo: 0xb2, hi: 0xb2}, + {value: 0x4a3e, lo: 0xb3, hi: 0xb3}, + {value: 0x031b, lo: 0xb4, hi: 0xb4}, + {value: 0x4a44, lo: 0xb5, hi: 0xb6}, + {value: 0x031f, lo: 0xb7, hi: 0xb7}, + {value: 0x0323, lo: 0xb8, hi: 0xb8}, + {value: 0x0327, lo: 0xb9, hi: 0xb9}, + {value: 0x4a50, lo: 0xba, hi: 0xbf}, + // Block 0x52, offset 0x1ee + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x53, offset 0x1f1 + {value: 0x0000, lo: 0x03}, + {value: 0x020f, lo: 0x9c, hi: 0x9c}, + {value: 0x0212, lo: 0x9d, hi: 0x9d}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x54, offset 0x1f5 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x55, offset 0x1f7 + {value: 0x0000, lo: 0x01}, + {value: 0x163b, lo: 0xb0, hi: 0xb0}, + // Block 0x56, offset 0x1f9 + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x57, offset 0x1fb + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x58, offset 0x1fd + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x59, offset 0x200 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x5a, offset 0x202 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x5b, offset 0x204 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x5c, offset 0x206 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x5d, offset 0x208 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x5e, offset 0x20e + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x5f, offset 0x211 + {value: 0x0008, lo: 0x03}, + {value: 0x1637, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1643, lo: 0x9f, hi: 0x9f}, + // Block 0x60, offset 0x215 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x61, offset 0x217 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x62, offset 0x21e + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x63, offset 0x224 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x64, offset 0x22a + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x65, offset 0x232 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x66, offset 0x238 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x67, offset 0x23e + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x68, offset 0x244 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x69, offset 0x248 + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6a, offset 0x24a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6b, offset 0x24c + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x6c, offset 0x24e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x6d, offset 0x250 + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x6e, offset 0x256 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x6f, offset 0x259 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x70, offset 0x25b + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x71, offset 0x261 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x264 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x423b, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4245, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424f, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x73, offset 0x26c + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d81, lo: 0xae, hi: 0xae}, + {value: 0x2d8b, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x74, offset 0x273 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x75, offset 0x276 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x76, offset 0x279 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x77, offset 0x27b + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x78, offset 0x27e + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d95, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9f, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x79, offset 0x286 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7a, offset 0x28a + {value: 0x6b57, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db3, lo: 0xbb, hi: 0xbb}, + {value: 0x2da9, lo: 0xbc, hi: 0xbd}, + {value: 0x2dbd, lo: 0xbe, hi: 0xbe}, + // Block 0x7b, offset 0x291 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7c, offset 0x294 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc7, lo: 0xba, hi: 0xba}, + {value: 0x2dd1, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7d, offset 0x29a + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x7e, offset 0x29c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7f, offset 0x29e + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x80, offset 0x2a1 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x81, offset 0x2a3 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x82, offset 0x2a6 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + // Block 0x83, offset 0x2a8 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x84, offset 0x2aa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x85, offset 0x2ac + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x86, offset 0x2ae + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x87, offset 0x2b1 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x88, offset 0x2b3 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x89, offset 0x2b5 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x8a, offset 0x2b7 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8b, offset 0x2b9 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cf, lo: 0x9e, hi: 0x9e}, + {value: 0x45d9, lo: 0x9f, hi: 0x9f}, + {value: 0x460d, lo: 0xa0, hi: 0xa0}, + {value: 0x461b, lo: 0xa1, hi: 0xa1}, + {value: 0x4629, lo: 0xa2, hi: 0xa2}, + {value: 0x4637, lo: 0xa3, hi: 0xa3}, + {value: 0x4645, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8c, offset 0x2c6 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e3, lo: 0xbb, hi: 0xbb}, + {value: 0x45ed, lo: 0xbc, hi: 0xbc}, + {value: 0x4653, lo: 0xbd, hi: 0xbd}, + {value: 0x466f, lo: 0xbe, hi: 0xbe}, + {value: 0x4661, lo: 0xbf, hi: 0xbf}, + // Block 0x8d, offset 0x2d0 + {value: 0x0000, lo: 0x01}, + {value: 0x467d, lo: 0x80, hi: 0x80}, + // Block 0x8e, offset 0x2d2 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8f, offset 0x2d4 + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x90, offset 0x2d8 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x91, offset 0x2dd + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x92, offset 0x2e9 + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x93, offset 0x2ee + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x94, offset 0x2f7 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x95, offset 0x2fd + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x96, offset 0x302 + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x97, offset 0x306 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x98, offset 0x30b + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x99, offset 0x30f + {value: 0x0003, lo: 0x0f}, + {value: 0x01b8, lo: 0x80, hi: 0x80}, + {value: 0x045f, lo: 0x81, hi: 0x81}, + {value: 0x01bb, lo: 0x82, hi: 0x9a}, + {value: 0x045b, lo: 0x9b, hi: 0x9b}, + {value: 0x01c7, lo: 0x9c, hi: 0x9c}, + {value: 0x01d0, lo: 0x9d, hi: 0x9d}, + {value: 0x01d6, lo: 0x9e, hi: 0x9e}, + {value: 0x01fa, lo: 0x9f, hi: 0x9f}, + {value: 0x01eb, lo: 0xa0, hi: 0xa0}, + {value: 0x01e8, lo: 0xa1, hi: 0xa1}, + {value: 0x0173, lo: 0xa2, hi: 0xb2}, + {value: 0x0188, lo: 0xb3, hi: 0xb3}, + {value: 0x01a6, lo: 0xb4, hi: 0xba}, + {value: 0x045f, lo: 0xbb, hi: 0xbb}, + {value: 0x01bb, lo: 0xbc, hi: 0xbf}, + // Block 0x9a, offset 0x31f + {value: 0x0003, lo: 0x0d}, + {value: 0x01c7, lo: 0x80, hi: 0x94}, + {value: 0x045b, lo: 0x95, hi: 0x95}, + {value: 0x01c7, lo: 0x96, hi: 0x96}, + {value: 0x01d0, lo: 0x97, hi: 0x97}, + {value: 0x01d6, lo: 0x98, hi: 0x98}, + {value: 0x01fa, lo: 0x99, hi: 0x99}, + {value: 0x01eb, lo: 0x9a, hi: 0x9a}, + {value: 0x01e8, lo: 0x9b, hi: 0x9b}, + {value: 0x0173, lo: 0x9c, hi: 0xac}, + {value: 0x0188, lo: 0xad, hi: 0xad}, + {value: 0x01a6, lo: 0xae, hi: 0xb4}, + {value: 0x045f, lo: 0xb5, hi: 0xb5}, + {value: 0x01bb, lo: 0xb6, hi: 0xbf}, + // Block 0x9b, offset 0x32d + {value: 0x0003, lo: 0x0d}, + {value: 0x01d9, lo: 0x80, hi: 0x8e}, + {value: 0x045b, lo: 0x8f, hi: 0x8f}, + {value: 0x01c7, lo: 0x90, hi: 0x90}, + {value: 0x01d0, lo: 0x91, hi: 0x91}, + {value: 0x01d6, lo: 0x92, hi: 0x92}, + {value: 0x01fa, lo: 0x93, hi: 0x93}, + {value: 0x01eb, lo: 0x94, hi: 0x94}, + {value: 0x01e8, lo: 0x95, hi: 0x95}, + {value: 0x0173, lo: 0x96, hi: 0xa6}, + {value: 0x0188, lo: 0xa7, hi: 0xa7}, + {value: 0x01a6, lo: 0xa8, hi: 0xae}, + {value: 0x045f, lo: 0xaf, hi: 0xaf}, + {value: 0x01bb, lo: 0xb0, hi: 0xbf}, + // Block 0x9c, offset 0x33b + {value: 0x0003, lo: 0x0d}, + {value: 0x01eb, lo: 0x80, hi: 0x88}, + {value: 0x045b, lo: 0x89, hi: 0x89}, + {value: 0x01c7, lo: 0x8a, hi: 0x8a}, + {value: 0x01d0, lo: 0x8b, hi: 0x8b}, + {value: 0x01d6, lo: 0x8c, hi: 0x8c}, + {value: 0x01fa, lo: 0x8d, hi: 0x8d}, + {value: 0x01eb, lo: 0x8e, hi: 0x8e}, + {value: 0x01e8, lo: 0x8f, hi: 0x8f}, + {value: 0x0173, lo: 0x90, hi: 0xa0}, + {value: 0x0188, lo: 0xa1, hi: 0xa1}, + {value: 0x01a6, lo: 0xa2, hi: 0xa8}, + {value: 0x045f, lo: 0xa9, hi: 0xa9}, + {value: 0x01bb, lo: 0xaa, hi: 0xbf}, + // Block 0x9d, offset 0x349 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x9e, offset 0x34f + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xac, hi: 0xaf}, + // Block 0x9f, offset 0x351 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0xa0, offset 0x353 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0xa1, offset 0x356 + {value: 0x0002, lo: 0x0a}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1951, lo: 0x8a, hi: 0x8a}, + {value: 0x1984, lo: 0x8b, hi: 0x8b}, + {value: 0x199f, lo: 0x8c, hi: 0x8c}, + {value: 0x19a5, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc3, lo: 0x8e, hi: 0x8e}, + {value: 0x19b1, lo: 0x8f, hi: 0x8f}, + {value: 0x197b, lo: 0xaa, hi: 0xaa}, + {value: 0x197e, lo: 0xab, hi: 0xab}, + {value: 0x1981, lo: 0xac, hi: 0xac}, + // Block 0xa2, offset 0x361 + {value: 0x0000, lo: 0x01}, + {value: 0x193f, lo: 0x90, hi: 0x90}, + // Block 0xa3, offset 0x363 + {value: 0x0028, lo: 0x09}, + {value: 0x2865, lo: 0x80, hi: 0x80}, + {value: 0x2829, lo: 0x81, hi: 0x81}, + {value: 0x2833, lo: 0x82, hi: 0x82}, + {value: 0x2847, lo: 0x83, hi: 0x84}, + {value: 0x2851, lo: 0x85, hi: 0x86}, + {value: 0x283d, lo: 0x87, hi: 0x87}, + {value: 0x285b, lo: 0x88, hi: 0x88}, + {value: 0x0b6f, lo: 0x90, hi: 0x90}, + {value: 0x08e7, lo: 0x91, hi: 0x91}, +} + +// recompMap: 7520 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 55KB (55977 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go new file mode 100644 index 0000000..96a130d --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go @@ -0,0 +1,7761 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.16 +// +build go1.16 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "13.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [56]uint8{ + 0, 1, 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, 84, 91, 103, 107, 118, 122, 129, + 130, 132, 202, 214, 216, 218, 220, 222, + 224, 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x1870 + firstCCC = 0x2CAB + endMulti = 0x2F77 + firstLeadingCCC = 0x49C5 + firstCCCZeroExcept = 0x4A8F + firstStarterWithNLead = 0x4AB6 + lastDecomp = 0x4AB8 + maxDecomp = 0x8000 +) + +// decomps: 19128 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x8D, 0x42, 0xCA, 0x90, 0x42, 0xCA, 0x91, 0x42, + 0xCA, 0x92, 0x42, 0xCA, 0x95, 0x42, 0xCA, 0x9D, + 0x42, 0xCA, 0x9F, 0x42, 0xCA, 0xB9, 0x42, 0xCE, + 0x91, 0x42, 0xCE, 0x92, 0x42, 0xCE, 0x93, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x94, 0x42, 0xCE, 0x95, 0x42, 0xCE, 0x96, + 0x42, 0xCE, 0x97, 0x42, 0xCE, 0x98, 0x42, 0xCE, + 0x99, 0x42, 0xCE, 0x9A, 0x42, 0xCE, 0x9B, 0x42, + 0xCE, 0x9C, 0x42, 0xCE, 0x9D, 0x42, 0xCE, 0x9E, + 0x42, 0xCE, 0x9F, 0x42, 0xCE, 0xA0, 0x42, 0xCE, + 0xA1, 0x42, 0xCE, 0xA3, 0x42, 0xCE, 0xA4, 0x42, + 0xCE, 0xA5, 0x42, 0xCE, 0xA6, 0x42, 0xCE, 0xA7, + 0x42, 0xCE, 0xA8, 0x42, 0xCE, 0xA9, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB1, 0x42, 0xCE, 0xB2, 0x42, 0xCE, 0xB3, 0x42, + 0xCE, 0xB4, 0x42, 0xCE, 0xB5, 0x42, 0xCE, 0xB6, + 0x42, 0xCE, 0xB7, 0x42, 0xCE, 0xB8, 0x42, 0xCE, + 0xB9, 0x42, 0xCE, 0xBA, 0x42, 0xCE, 0xBB, 0x42, + 0xCE, 0xBC, 0x42, 0xCE, 0xBD, 0x42, 0xCE, 0xBE, + 0x42, 0xCE, 0xBF, 0x42, 0xCF, 0x80, 0x42, 0xCF, + 0x81, 0x42, 0xCF, 0x82, 0x42, 0xCF, 0x83, 0x42, + 0xCF, 0x84, 0x42, 0xCF, 0x85, 0x42, 0xCF, 0x86, + // Bytes 200 - 23f + 0x42, 0xCF, 0x87, 0x42, 0xCF, 0x88, 0x42, 0xCF, + 0x89, 0x42, 0xCF, 0x9C, 0x42, 0xCF, 0x9D, 0x42, + 0xD0, 0xBD, 0x42, 0xD1, 0x8A, 0x42, 0xD1, 0x8C, + 0x42, 0xD7, 0x90, 0x42, 0xD7, 0x91, 0x42, 0xD7, + 0x92, 0x42, 0xD7, 0x93, 0x42, 0xD7, 0x94, 0x42, + 0xD7, 0x9B, 0x42, 0xD7, 0x9C, 0x42, 0xD7, 0x9D, + 0x42, 0xD7, 0xA2, 0x42, 0xD7, 0xA8, 0x42, 0xD7, + 0xAA, 0x42, 0xD8, 0xA1, 0x42, 0xD8, 0xA7, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA8, 0x42, 0xD8, 0xA9, 0x42, 0xD8, 0xAA, + 0x42, 0xD8, 0xAB, 0x42, 0xD8, 0xAC, 0x42, 0xD8, + 0xAD, 0x42, 0xD8, 0xAE, 0x42, 0xD8, 0xAF, 0x42, + 0xD8, 0xB0, 0x42, 0xD8, 0xB1, 0x42, 0xD8, 0xB2, + 0x42, 0xD8, 0xB3, 0x42, 0xD8, 0xB4, 0x42, 0xD8, + 0xB5, 0x42, 0xD8, 0xB6, 0x42, 0xD8, 0xB7, 0x42, + 0xD8, 0xB8, 0x42, 0xD8, 0xB9, 0x42, 0xD8, 0xBA, + 0x42, 0xD9, 0x81, 0x42, 0xD9, 0x82, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x83, 0x42, 0xD9, 0x84, 0x42, 0xD9, 0x85, 0x42, + 0xD9, 0x86, 0x42, 0xD9, 0x87, 0x42, 0xD9, 0x88, + 0x42, 0xD9, 0x89, 0x42, 0xD9, 0x8A, 0x42, 0xD9, + 0xAE, 0x42, 0xD9, 0xAF, 0x42, 0xD9, 0xB1, 0x42, + 0xD9, 0xB9, 0x42, 0xD9, 0xBA, 0x42, 0xD9, 0xBB, + 0x42, 0xD9, 0xBE, 0x42, 0xD9, 0xBF, 0x42, 0xDA, + 0x80, 0x42, 0xDA, 0x83, 0x42, 0xDA, 0x84, 0x42, + 0xDA, 0x86, 0x42, 0xDA, 0x87, 0x42, 0xDA, 0x88, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8C, 0x42, 0xDA, 0x8D, 0x42, 0xDA, + 0x8E, 0x42, 0xDA, 0x91, 0x42, 0xDA, 0x98, 0x42, + 0xDA, 0xA1, 0x42, 0xDA, 0xA4, 0x42, 0xDA, 0xA6, + 0x42, 0xDA, 0xA9, 0x42, 0xDA, 0xAD, 0x42, 0xDA, + 0xAF, 0x42, 0xDA, 0xB1, 0x42, 0xDA, 0xB3, 0x42, + 0xDA, 0xBA, 0x42, 0xDA, 0xBB, 0x42, 0xDA, 0xBE, + 0x42, 0xDB, 0x81, 0x42, 0xDB, 0x85, 0x42, 0xDB, + 0x86, 0x42, 0xDB, 0x87, 0x42, 0xDB, 0x88, 0x42, + // Bytes 300 - 33f + 0xDB, 0x89, 0x42, 0xDB, 0x8B, 0x42, 0xDB, 0x8C, + 0x42, 0xDB, 0x90, 0x42, 0xDB, 0x92, 0x43, 0xE0, + 0xBC, 0x8B, 0x43, 0xE1, 0x83, 0x9C, 0x43, 0xE1, + 0x84, 0x80, 0x43, 0xE1, 0x84, 0x81, 0x43, 0xE1, + 0x84, 0x82, 0x43, 0xE1, 0x84, 0x83, 0x43, 0xE1, + 0x84, 0x84, 0x43, 0xE1, 0x84, 0x85, 0x43, 0xE1, + 0x84, 0x86, 0x43, 0xE1, 0x84, 0x87, 0x43, 0xE1, + 0x84, 0x88, 0x43, 0xE1, 0x84, 0x89, 0x43, 0xE1, + // Bytes 340 - 37f + 0x84, 0x8A, 0x43, 0xE1, 0x84, 0x8B, 0x43, 0xE1, + 0x84, 0x8C, 0x43, 0xE1, 0x84, 0x8D, 0x43, 0xE1, + 0x84, 0x8E, 0x43, 0xE1, 0x84, 0x8F, 0x43, 0xE1, + 0x84, 0x90, 0x43, 0xE1, 0x84, 0x91, 0x43, 0xE1, + 0x84, 0x92, 0x43, 0xE1, 0x84, 0x94, 0x43, 0xE1, + 0x84, 0x95, 0x43, 0xE1, 0x84, 0x9A, 0x43, 0xE1, + 0x84, 0x9C, 0x43, 0xE1, 0x84, 0x9D, 0x43, 0xE1, + 0x84, 0x9E, 0x43, 0xE1, 0x84, 0xA0, 0x43, 0xE1, + // Bytes 380 - 3bf + 0x84, 0xA1, 0x43, 0xE1, 0x84, 0xA2, 0x43, 0xE1, + 0x84, 0xA3, 0x43, 0xE1, 0x84, 0xA7, 0x43, 0xE1, + 0x84, 0xA9, 0x43, 0xE1, 0x84, 0xAB, 0x43, 0xE1, + 0x84, 0xAC, 0x43, 0xE1, 0x84, 0xAD, 0x43, 0xE1, + 0x84, 0xAE, 0x43, 0xE1, 0x84, 0xAF, 0x43, 0xE1, + 0x84, 0xB2, 0x43, 0xE1, 0x84, 0xB6, 0x43, 0xE1, + 0x85, 0x80, 0x43, 0xE1, 0x85, 0x87, 0x43, 0xE1, + 0x85, 0x8C, 0x43, 0xE1, 0x85, 0x97, 0x43, 0xE1, + // Bytes 3c0 - 3ff + 0x85, 0x98, 0x43, 0xE1, 0x85, 0x99, 0x43, 0xE1, + 0x85, 0xA0, 0x43, 0xE1, 0x86, 0x84, 0x43, 0xE1, + 0x86, 0x85, 0x43, 0xE1, 0x86, 0x88, 0x43, 0xE1, + 0x86, 0x91, 0x43, 0xE1, 0x86, 0x92, 0x43, 0xE1, + 0x86, 0x94, 0x43, 0xE1, 0x86, 0x9E, 0x43, 0xE1, + 0x86, 0xA1, 0x43, 0xE1, 0x87, 0x87, 0x43, 0xE1, + 0x87, 0x88, 0x43, 0xE1, 0x87, 0x8C, 0x43, 0xE1, + 0x87, 0x8E, 0x43, 0xE1, 0x87, 0x93, 0x43, 0xE1, + // Bytes 400 - 43f + 0x87, 0x97, 0x43, 0xE1, 0x87, 0x99, 0x43, 0xE1, + 0x87, 0x9D, 0x43, 0xE1, 0x87, 0x9F, 0x43, 0xE1, + 0x87, 0xB1, 0x43, 0xE1, 0x87, 0xB2, 0x43, 0xE1, + 0xB4, 0x82, 0x43, 0xE1, 0xB4, 0x96, 0x43, 0xE1, + 0xB4, 0x97, 0x43, 0xE1, 0xB4, 0x9C, 0x43, 0xE1, + 0xB4, 0x9D, 0x43, 0xE1, 0xB4, 0xA5, 0x43, 0xE1, + 0xB5, 0xBB, 0x43, 0xE1, 0xB6, 0x85, 0x43, 0xE2, + 0x80, 0x82, 0x43, 0xE2, 0x80, 0x83, 0x43, 0xE2, + // Bytes 440 - 47f + 0x80, 0x90, 0x43, 0xE2, 0x80, 0x93, 0x43, 0xE2, + 0x80, 0x94, 0x43, 0xE2, 0x82, 0xA9, 0x43, 0xE2, + 0x86, 0x90, 0x43, 0xE2, 0x86, 0x91, 0x43, 0xE2, + 0x86, 0x92, 0x43, 0xE2, 0x86, 0x93, 0x43, 0xE2, + 0x88, 0x82, 0x43, 0xE2, 0x88, 0x87, 0x43, 0xE2, + 0x88, 0x91, 0x43, 0xE2, 0x88, 0x92, 0x43, 0xE2, + 0x94, 0x82, 0x43, 0xE2, 0x96, 0xA0, 0x43, 0xE2, + 0x97, 0x8B, 0x43, 0xE2, 0xA6, 0x85, 0x43, 0xE2, + // Bytes 480 - 4bf + 0xA6, 0x86, 0x43, 0xE2, 0xB5, 0xA1, 0x43, 0xE3, + 0x80, 0x81, 0x43, 0xE3, 0x80, 0x82, 0x43, 0xE3, + 0x80, 0x88, 0x43, 0xE3, 0x80, 0x89, 0x43, 0xE3, + 0x80, 0x8A, 0x43, 0xE3, 0x80, 0x8B, 0x43, 0xE3, + 0x80, 0x8C, 0x43, 0xE3, 0x80, 0x8D, 0x43, 0xE3, + 0x80, 0x8E, 0x43, 0xE3, 0x80, 0x8F, 0x43, 0xE3, + 0x80, 0x90, 0x43, 0xE3, 0x80, 0x91, 0x43, 0xE3, + 0x80, 0x92, 0x43, 0xE3, 0x80, 0x94, 0x43, 0xE3, + // Bytes 4c0 - 4ff + 0x80, 0x95, 0x43, 0xE3, 0x80, 0x96, 0x43, 0xE3, + 0x80, 0x97, 0x43, 0xE3, 0x82, 0xA1, 0x43, 0xE3, + 0x82, 0xA2, 0x43, 0xE3, 0x82, 0xA3, 0x43, 0xE3, + 0x82, 0xA4, 0x43, 0xE3, 0x82, 0xA5, 0x43, 0xE3, + 0x82, 0xA6, 0x43, 0xE3, 0x82, 0xA7, 0x43, 0xE3, + 0x82, 0xA8, 0x43, 0xE3, 0x82, 0xA9, 0x43, 0xE3, + 0x82, 0xAA, 0x43, 0xE3, 0x82, 0xAB, 0x43, 0xE3, + 0x82, 0xAD, 0x43, 0xE3, 0x82, 0xAF, 0x43, 0xE3, + // Bytes 500 - 53f + 0x82, 0xB1, 0x43, 0xE3, 0x82, 0xB3, 0x43, 0xE3, + 0x82, 0xB5, 0x43, 0xE3, 0x82, 0xB7, 0x43, 0xE3, + 0x82, 0xB9, 0x43, 0xE3, 0x82, 0xBB, 0x43, 0xE3, + 0x82, 0xBD, 0x43, 0xE3, 0x82, 0xBF, 0x43, 0xE3, + 0x83, 0x81, 0x43, 0xE3, 0x83, 0x83, 0x43, 0xE3, + 0x83, 0x84, 0x43, 0xE3, 0x83, 0x86, 0x43, 0xE3, + 0x83, 0x88, 0x43, 0xE3, 0x83, 0x8A, 0x43, 0xE3, + 0x83, 0x8B, 0x43, 0xE3, 0x83, 0x8C, 0x43, 0xE3, + // Bytes 540 - 57f + 0x83, 0x8D, 0x43, 0xE3, 0x83, 0x8E, 0x43, 0xE3, + 0x83, 0x8F, 0x43, 0xE3, 0x83, 0x92, 0x43, 0xE3, + 0x83, 0x95, 0x43, 0xE3, 0x83, 0x98, 0x43, 0xE3, + 0x83, 0x9B, 0x43, 0xE3, 0x83, 0x9E, 0x43, 0xE3, + 0x83, 0x9F, 0x43, 0xE3, 0x83, 0xA0, 0x43, 0xE3, + 0x83, 0xA1, 0x43, 0xE3, 0x83, 0xA2, 0x43, 0xE3, + 0x83, 0xA3, 0x43, 0xE3, 0x83, 0xA4, 0x43, 0xE3, + 0x83, 0xA5, 0x43, 0xE3, 0x83, 0xA6, 0x43, 0xE3, + // Bytes 580 - 5bf + 0x83, 0xA7, 0x43, 0xE3, 0x83, 0xA8, 0x43, 0xE3, + 0x83, 0xA9, 0x43, 0xE3, 0x83, 0xAA, 0x43, 0xE3, + 0x83, 0xAB, 0x43, 0xE3, 0x83, 0xAC, 0x43, 0xE3, + 0x83, 0xAD, 0x43, 0xE3, 0x83, 0xAF, 0x43, 0xE3, + 0x83, 0xB0, 0x43, 0xE3, 0x83, 0xB1, 0x43, 0xE3, + 0x83, 0xB2, 0x43, 0xE3, 0x83, 0xB3, 0x43, 0xE3, + 0x83, 0xBB, 0x43, 0xE3, 0x83, 0xBC, 0x43, 0xE3, + 0x92, 0x9E, 0x43, 0xE3, 0x92, 0xB9, 0x43, 0xE3, + // Bytes 5c0 - 5ff + 0x92, 0xBB, 0x43, 0xE3, 0x93, 0x9F, 0x43, 0xE3, + 0x94, 0x95, 0x43, 0xE3, 0x9B, 0xAE, 0x43, 0xE3, + 0x9B, 0xBC, 0x43, 0xE3, 0x9E, 0x81, 0x43, 0xE3, + 0xA0, 0xAF, 0x43, 0xE3, 0xA1, 0xA2, 0x43, 0xE3, + 0xA1, 0xBC, 0x43, 0xE3, 0xA3, 0x87, 0x43, 0xE3, + 0xA3, 0xA3, 0x43, 0xE3, 0xA4, 0x9C, 0x43, 0xE3, + 0xA4, 0xBA, 0x43, 0xE3, 0xA8, 0xAE, 0x43, 0xE3, + 0xA9, 0xAC, 0x43, 0xE3, 0xAB, 0xA4, 0x43, 0xE3, + // Bytes 600 - 63f + 0xAC, 0x88, 0x43, 0xE3, 0xAC, 0x99, 0x43, 0xE3, + 0xAD, 0x89, 0x43, 0xE3, 0xAE, 0x9D, 0x43, 0xE3, + 0xB0, 0x98, 0x43, 0xE3, 0xB1, 0x8E, 0x43, 0xE3, + 0xB4, 0xB3, 0x43, 0xE3, 0xB6, 0x96, 0x43, 0xE3, + 0xBA, 0xAC, 0x43, 0xE3, 0xBA, 0xB8, 0x43, 0xE3, + 0xBC, 0x9B, 0x43, 0xE3, 0xBF, 0xBC, 0x43, 0xE4, + 0x80, 0x88, 0x43, 0xE4, 0x80, 0x98, 0x43, 0xE4, + 0x80, 0xB9, 0x43, 0xE4, 0x81, 0x86, 0x43, 0xE4, + // Bytes 640 - 67f + 0x82, 0x96, 0x43, 0xE4, 0x83, 0xA3, 0x43, 0xE4, + 0x84, 0xAF, 0x43, 0xE4, 0x88, 0x82, 0x43, 0xE4, + 0x88, 0xA7, 0x43, 0xE4, 0x8A, 0xA0, 0x43, 0xE4, + 0x8C, 0x81, 0x43, 0xE4, 0x8C, 0xB4, 0x43, 0xE4, + 0x8D, 0x99, 0x43, 0xE4, 0x8F, 0x95, 0x43, 0xE4, + 0x8F, 0x99, 0x43, 0xE4, 0x90, 0x8B, 0x43, 0xE4, + 0x91, 0xAB, 0x43, 0xE4, 0x94, 0xAB, 0x43, 0xE4, + 0x95, 0x9D, 0x43, 0xE4, 0x95, 0xA1, 0x43, 0xE4, + // Bytes 680 - 6bf + 0x95, 0xAB, 0x43, 0xE4, 0x97, 0x97, 0x43, 0xE4, + 0x97, 0xB9, 0x43, 0xE4, 0x98, 0xB5, 0x43, 0xE4, + 0x9A, 0xBE, 0x43, 0xE4, 0x9B, 0x87, 0x43, 0xE4, + 0xA6, 0x95, 0x43, 0xE4, 0xA7, 0xA6, 0x43, 0xE4, + 0xA9, 0xAE, 0x43, 0xE4, 0xA9, 0xB6, 0x43, 0xE4, + 0xAA, 0xB2, 0x43, 0xE4, 0xAC, 0xB3, 0x43, 0xE4, + 0xAF, 0x8E, 0x43, 0xE4, 0xB3, 0x8E, 0x43, 0xE4, + 0xB3, 0xAD, 0x43, 0xE4, 0xB3, 0xB8, 0x43, 0xE4, + // Bytes 6c0 - 6ff + 0xB5, 0x96, 0x43, 0xE4, 0xB8, 0x80, 0x43, 0xE4, + 0xB8, 0x81, 0x43, 0xE4, 0xB8, 0x83, 0x43, 0xE4, + 0xB8, 0x89, 0x43, 0xE4, 0xB8, 0x8A, 0x43, 0xE4, + 0xB8, 0x8B, 0x43, 0xE4, 0xB8, 0x8D, 0x43, 0xE4, + 0xB8, 0x99, 0x43, 0xE4, 0xB8, 0xA6, 0x43, 0xE4, + 0xB8, 0xA8, 0x43, 0xE4, 0xB8, 0xAD, 0x43, 0xE4, + 0xB8, 0xB2, 0x43, 0xE4, 0xB8, 0xB6, 0x43, 0xE4, + 0xB8, 0xB8, 0x43, 0xE4, 0xB8, 0xB9, 0x43, 0xE4, + // Bytes 700 - 73f + 0xB8, 0xBD, 0x43, 0xE4, 0xB8, 0xBF, 0x43, 0xE4, + 0xB9, 0x81, 0x43, 0xE4, 0xB9, 0x99, 0x43, 0xE4, + 0xB9, 0x9D, 0x43, 0xE4, 0xBA, 0x82, 0x43, 0xE4, + 0xBA, 0x85, 0x43, 0xE4, 0xBA, 0x86, 0x43, 0xE4, + 0xBA, 0x8C, 0x43, 0xE4, 0xBA, 0x94, 0x43, 0xE4, + 0xBA, 0xA0, 0x43, 0xE4, 0xBA, 0xA4, 0x43, 0xE4, + 0xBA, 0xAE, 0x43, 0xE4, 0xBA, 0xBA, 0x43, 0xE4, + 0xBB, 0x80, 0x43, 0xE4, 0xBB, 0x8C, 0x43, 0xE4, + // Bytes 740 - 77f + 0xBB, 0xA4, 0x43, 0xE4, 0xBC, 0x81, 0x43, 0xE4, + 0xBC, 0x91, 0x43, 0xE4, 0xBD, 0xA0, 0x43, 0xE4, + 0xBE, 0x80, 0x43, 0xE4, 0xBE, 0x86, 0x43, 0xE4, + 0xBE, 0x8B, 0x43, 0xE4, 0xBE, 0xAE, 0x43, 0xE4, + 0xBE, 0xBB, 0x43, 0xE4, 0xBE, 0xBF, 0x43, 0xE5, + 0x80, 0x82, 0x43, 0xE5, 0x80, 0xAB, 0x43, 0xE5, + 0x81, 0xBA, 0x43, 0xE5, 0x82, 0x99, 0x43, 0xE5, + 0x83, 0x8F, 0x43, 0xE5, 0x83, 0x9A, 0x43, 0xE5, + // Bytes 780 - 7bf + 0x83, 0xA7, 0x43, 0xE5, 0x84, 0xAA, 0x43, 0xE5, + 0x84, 0xBF, 0x43, 0xE5, 0x85, 0x80, 0x43, 0xE5, + 0x85, 0x85, 0x43, 0xE5, 0x85, 0x8D, 0x43, 0xE5, + 0x85, 0x94, 0x43, 0xE5, 0x85, 0xA4, 0x43, 0xE5, + 0x85, 0xA5, 0x43, 0xE5, 0x85, 0xA7, 0x43, 0xE5, + 0x85, 0xA8, 0x43, 0xE5, 0x85, 0xA9, 0x43, 0xE5, + 0x85, 0xAB, 0x43, 0xE5, 0x85, 0xAD, 0x43, 0xE5, + 0x85, 0xB7, 0x43, 0xE5, 0x86, 0x80, 0x43, 0xE5, + // Bytes 7c0 - 7ff + 0x86, 0x82, 0x43, 0xE5, 0x86, 0x8D, 0x43, 0xE5, + 0x86, 0x92, 0x43, 0xE5, 0x86, 0x95, 0x43, 0xE5, + 0x86, 0x96, 0x43, 0xE5, 0x86, 0x97, 0x43, 0xE5, + 0x86, 0x99, 0x43, 0xE5, 0x86, 0xA4, 0x43, 0xE5, + 0x86, 0xAB, 0x43, 0xE5, 0x86, 0xAC, 0x43, 0xE5, + 0x86, 0xB5, 0x43, 0xE5, 0x86, 0xB7, 0x43, 0xE5, + 0x87, 0x89, 0x43, 0xE5, 0x87, 0x8C, 0x43, 0xE5, + 0x87, 0x9C, 0x43, 0xE5, 0x87, 0x9E, 0x43, 0xE5, + // Bytes 800 - 83f + 0x87, 0xA0, 0x43, 0xE5, 0x87, 0xB5, 0x43, 0xE5, + 0x88, 0x80, 0x43, 0xE5, 0x88, 0x83, 0x43, 0xE5, + 0x88, 0x87, 0x43, 0xE5, 0x88, 0x97, 0x43, 0xE5, + 0x88, 0x9D, 0x43, 0xE5, 0x88, 0xA9, 0x43, 0xE5, + 0x88, 0xBA, 0x43, 0xE5, 0x88, 0xBB, 0x43, 0xE5, + 0x89, 0x86, 0x43, 0xE5, 0x89, 0x8D, 0x43, 0xE5, + 0x89, 0xB2, 0x43, 0xE5, 0x89, 0xB7, 0x43, 0xE5, + 0x8A, 0x89, 0x43, 0xE5, 0x8A, 0x9B, 0x43, 0xE5, + // Bytes 840 - 87f + 0x8A, 0xA3, 0x43, 0xE5, 0x8A, 0xB3, 0x43, 0xE5, + 0x8A, 0xB4, 0x43, 0xE5, 0x8B, 0x87, 0x43, 0xE5, + 0x8B, 0x89, 0x43, 0xE5, 0x8B, 0x92, 0x43, 0xE5, + 0x8B, 0x9E, 0x43, 0xE5, 0x8B, 0xA4, 0x43, 0xE5, + 0x8B, 0xB5, 0x43, 0xE5, 0x8B, 0xB9, 0x43, 0xE5, + 0x8B, 0xBA, 0x43, 0xE5, 0x8C, 0x85, 0x43, 0xE5, + 0x8C, 0x86, 0x43, 0xE5, 0x8C, 0x95, 0x43, 0xE5, + 0x8C, 0x97, 0x43, 0xE5, 0x8C, 0x9A, 0x43, 0xE5, + // Bytes 880 - 8bf + 0x8C, 0xB8, 0x43, 0xE5, 0x8C, 0xBB, 0x43, 0xE5, + 0x8C, 0xBF, 0x43, 0xE5, 0x8D, 0x81, 0x43, 0xE5, + 0x8D, 0x84, 0x43, 0xE5, 0x8D, 0x85, 0x43, 0xE5, + 0x8D, 0x89, 0x43, 0xE5, 0x8D, 0x91, 0x43, 0xE5, + 0x8D, 0x94, 0x43, 0xE5, 0x8D, 0x9A, 0x43, 0xE5, + 0x8D, 0x9C, 0x43, 0xE5, 0x8D, 0xA9, 0x43, 0xE5, + 0x8D, 0xB0, 0x43, 0xE5, 0x8D, 0xB3, 0x43, 0xE5, + 0x8D, 0xB5, 0x43, 0xE5, 0x8D, 0xBD, 0x43, 0xE5, + // Bytes 8c0 - 8ff + 0x8D, 0xBF, 0x43, 0xE5, 0x8E, 0x82, 0x43, 0xE5, + 0x8E, 0xB6, 0x43, 0xE5, 0x8F, 0x83, 0x43, 0xE5, + 0x8F, 0x88, 0x43, 0xE5, 0x8F, 0x8A, 0x43, 0xE5, + 0x8F, 0x8C, 0x43, 0xE5, 0x8F, 0x9F, 0x43, 0xE5, + 0x8F, 0xA3, 0x43, 0xE5, 0x8F, 0xA5, 0x43, 0xE5, + 0x8F, 0xAB, 0x43, 0xE5, 0x8F, 0xAF, 0x43, 0xE5, + 0x8F, 0xB1, 0x43, 0xE5, 0x8F, 0xB3, 0x43, 0xE5, + 0x90, 0x86, 0x43, 0xE5, 0x90, 0x88, 0x43, 0xE5, + // Bytes 900 - 93f + 0x90, 0x8D, 0x43, 0xE5, 0x90, 0x8F, 0x43, 0xE5, + 0x90, 0x9D, 0x43, 0xE5, 0x90, 0xB8, 0x43, 0xE5, + 0x90, 0xB9, 0x43, 0xE5, 0x91, 0x82, 0x43, 0xE5, + 0x91, 0x88, 0x43, 0xE5, 0x91, 0xA8, 0x43, 0xE5, + 0x92, 0x9E, 0x43, 0xE5, 0x92, 0xA2, 0x43, 0xE5, + 0x92, 0xBD, 0x43, 0xE5, 0x93, 0xB6, 0x43, 0xE5, + 0x94, 0x90, 0x43, 0xE5, 0x95, 0x8F, 0x43, 0xE5, + 0x95, 0x93, 0x43, 0xE5, 0x95, 0x95, 0x43, 0xE5, + // Bytes 940 - 97f + 0x95, 0xA3, 0x43, 0xE5, 0x96, 0x84, 0x43, 0xE5, + 0x96, 0x87, 0x43, 0xE5, 0x96, 0x99, 0x43, 0xE5, + 0x96, 0x9D, 0x43, 0xE5, 0x96, 0xAB, 0x43, 0xE5, + 0x96, 0xB3, 0x43, 0xE5, 0x96, 0xB6, 0x43, 0xE5, + 0x97, 0x80, 0x43, 0xE5, 0x97, 0x82, 0x43, 0xE5, + 0x97, 0xA2, 0x43, 0xE5, 0x98, 0x86, 0x43, 0xE5, + 0x99, 0x91, 0x43, 0xE5, 0x99, 0xA8, 0x43, 0xE5, + 0x99, 0xB4, 0x43, 0xE5, 0x9B, 0x97, 0x43, 0xE5, + // Bytes 980 - 9bf + 0x9B, 0x9B, 0x43, 0xE5, 0x9B, 0xB9, 0x43, 0xE5, + 0x9C, 0x96, 0x43, 0xE5, 0x9C, 0x97, 0x43, 0xE5, + 0x9C, 0x9F, 0x43, 0xE5, 0x9C, 0xB0, 0x43, 0xE5, + 0x9E, 0x8B, 0x43, 0xE5, 0x9F, 0x8E, 0x43, 0xE5, + 0x9F, 0xB4, 0x43, 0xE5, 0xA0, 0x8D, 0x43, 0xE5, + 0xA0, 0xB1, 0x43, 0xE5, 0xA0, 0xB2, 0x43, 0xE5, + 0xA1, 0x80, 0x43, 0xE5, 0xA1, 0x9A, 0x43, 0xE5, + 0xA1, 0x9E, 0x43, 0xE5, 0xA2, 0xA8, 0x43, 0xE5, + // Bytes 9c0 - 9ff + 0xA2, 0xAC, 0x43, 0xE5, 0xA2, 0xB3, 0x43, 0xE5, + 0xA3, 0x98, 0x43, 0xE5, 0xA3, 0x9F, 0x43, 0xE5, + 0xA3, 0xAB, 0x43, 0xE5, 0xA3, 0xAE, 0x43, 0xE5, + 0xA3, 0xB0, 0x43, 0xE5, 0xA3, 0xB2, 0x43, 0xE5, + 0xA3, 0xB7, 0x43, 0xE5, 0xA4, 0x82, 0x43, 0xE5, + 0xA4, 0x86, 0x43, 0xE5, 0xA4, 0x8A, 0x43, 0xE5, + 0xA4, 0x95, 0x43, 0xE5, 0xA4, 0x9A, 0x43, 0xE5, + 0xA4, 0x9C, 0x43, 0xE5, 0xA4, 0xA2, 0x43, 0xE5, + // Bytes a00 - a3f + 0xA4, 0xA7, 0x43, 0xE5, 0xA4, 0xA9, 0x43, 0xE5, + 0xA5, 0x84, 0x43, 0xE5, 0xA5, 0x88, 0x43, 0xE5, + 0xA5, 0x91, 0x43, 0xE5, 0xA5, 0x94, 0x43, 0xE5, + 0xA5, 0xA2, 0x43, 0xE5, 0xA5, 0xB3, 0x43, 0xE5, + 0xA7, 0x98, 0x43, 0xE5, 0xA7, 0xAC, 0x43, 0xE5, + 0xA8, 0x9B, 0x43, 0xE5, 0xA8, 0xA7, 0x43, 0xE5, + 0xA9, 0xA2, 0x43, 0xE5, 0xA9, 0xA6, 0x43, 0xE5, + 0xAA, 0xB5, 0x43, 0xE5, 0xAC, 0x88, 0x43, 0xE5, + // Bytes a40 - a7f + 0xAC, 0xA8, 0x43, 0xE5, 0xAC, 0xBE, 0x43, 0xE5, + 0xAD, 0x90, 0x43, 0xE5, 0xAD, 0x97, 0x43, 0xE5, + 0xAD, 0xA6, 0x43, 0xE5, 0xAE, 0x80, 0x43, 0xE5, + 0xAE, 0x85, 0x43, 0xE5, 0xAE, 0x97, 0x43, 0xE5, + 0xAF, 0x83, 0x43, 0xE5, 0xAF, 0x98, 0x43, 0xE5, + 0xAF, 0xA7, 0x43, 0xE5, 0xAF, 0xAE, 0x43, 0xE5, + 0xAF, 0xB3, 0x43, 0xE5, 0xAF, 0xB8, 0x43, 0xE5, + 0xAF, 0xBF, 0x43, 0xE5, 0xB0, 0x86, 0x43, 0xE5, + // Bytes a80 - abf + 0xB0, 0x8F, 0x43, 0xE5, 0xB0, 0xA2, 0x43, 0xE5, + 0xB0, 0xB8, 0x43, 0xE5, 0xB0, 0xBF, 0x43, 0xE5, + 0xB1, 0xA0, 0x43, 0xE5, 0xB1, 0xA2, 0x43, 0xE5, + 0xB1, 0xA4, 0x43, 0xE5, 0xB1, 0xA5, 0x43, 0xE5, + 0xB1, 0xAE, 0x43, 0xE5, 0xB1, 0xB1, 0x43, 0xE5, + 0xB2, 0x8D, 0x43, 0xE5, 0xB3, 0x80, 0x43, 0xE5, + 0xB4, 0x99, 0x43, 0xE5, 0xB5, 0x83, 0x43, 0xE5, + 0xB5, 0x90, 0x43, 0xE5, 0xB5, 0xAB, 0x43, 0xE5, + // Bytes ac0 - aff + 0xB5, 0xAE, 0x43, 0xE5, 0xB5, 0xBC, 0x43, 0xE5, + 0xB6, 0xB2, 0x43, 0xE5, 0xB6, 0xBA, 0x43, 0xE5, + 0xB7, 0x9B, 0x43, 0xE5, 0xB7, 0xA1, 0x43, 0xE5, + 0xB7, 0xA2, 0x43, 0xE5, 0xB7, 0xA5, 0x43, 0xE5, + 0xB7, 0xA6, 0x43, 0xE5, 0xB7, 0xB1, 0x43, 0xE5, + 0xB7, 0xBD, 0x43, 0xE5, 0xB7, 0xBE, 0x43, 0xE5, + 0xB8, 0xA8, 0x43, 0xE5, 0xB8, 0xBD, 0x43, 0xE5, + 0xB9, 0xA9, 0x43, 0xE5, 0xB9, 0xB2, 0x43, 0xE5, + // Bytes b00 - b3f + 0xB9, 0xB4, 0x43, 0xE5, 0xB9, 0xBA, 0x43, 0xE5, + 0xB9, 0xBC, 0x43, 0xE5, 0xB9, 0xBF, 0x43, 0xE5, + 0xBA, 0xA6, 0x43, 0xE5, 0xBA, 0xB0, 0x43, 0xE5, + 0xBA, 0xB3, 0x43, 0xE5, 0xBA, 0xB6, 0x43, 0xE5, + 0xBB, 0x89, 0x43, 0xE5, 0xBB, 0x8A, 0x43, 0xE5, + 0xBB, 0x92, 0x43, 0xE5, 0xBB, 0x93, 0x43, 0xE5, + 0xBB, 0x99, 0x43, 0xE5, 0xBB, 0xAC, 0x43, 0xE5, + 0xBB, 0xB4, 0x43, 0xE5, 0xBB, 0xBE, 0x43, 0xE5, + // Bytes b40 - b7f + 0xBC, 0x84, 0x43, 0xE5, 0xBC, 0x8B, 0x43, 0xE5, + 0xBC, 0x93, 0x43, 0xE5, 0xBC, 0xA2, 0x43, 0xE5, + 0xBD, 0x90, 0x43, 0xE5, 0xBD, 0x93, 0x43, 0xE5, + 0xBD, 0xA1, 0x43, 0xE5, 0xBD, 0xA2, 0x43, 0xE5, + 0xBD, 0xA9, 0x43, 0xE5, 0xBD, 0xAB, 0x43, 0xE5, + 0xBD, 0xB3, 0x43, 0xE5, 0xBE, 0x8B, 0x43, 0xE5, + 0xBE, 0x8C, 0x43, 0xE5, 0xBE, 0x97, 0x43, 0xE5, + 0xBE, 0x9A, 0x43, 0xE5, 0xBE, 0xA9, 0x43, 0xE5, + // Bytes b80 - bbf + 0xBE, 0xAD, 0x43, 0xE5, 0xBF, 0x83, 0x43, 0xE5, + 0xBF, 0x8D, 0x43, 0xE5, 0xBF, 0x97, 0x43, 0xE5, + 0xBF, 0xB5, 0x43, 0xE5, 0xBF, 0xB9, 0x43, 0xE6, + 0x80, 0x92, 0x43, 0xE6, 0x80, 0x9C, 0x43, 0xE6, + 0x81, 0xB5, 0x43, 0xE6, 0x82, 0x81, 0x43, 0xE6, + 0x82, 0x94, 0x43, 0xE6, 0x83, 0x87, 0x43, 0xE6, + 0x83, 0x98, 0x43, 0xE6, 0x83, 0xA1, 0x43, 0xE6, + 0x84, 0x88, 0x43, 0xE6, 0x85, 0x84, 0x43, 0xE6, + // Bytes bc0 - bff + 0x85, 0x88, 0x43, 0xE6, 0x85, 0x8C, 0x43, 0xE6, + 0x85, 0x8E, 0x43, 0xE6, 0x85, 0xA0, 0x43, 0xE6, + 0x85, 0xA8, 0x43, 0xE6, 0x85, 0xBA, 0x43, 0xE6, + 0x86, 0x8E, 0x43, 0xE6, 0x86, 0x90, 0x43, 0xE6, + 0x86, 0xA4, 0x43, 0xE6, 0x86, 0xAF, 0x43, 0xE6, + 0x86, 0xB2, 0x43, 0xE6, 0x87, 0x9E, 0x43, 0xE6, + 0x87, 0xB2, 0x43, 0xE6, 0x87, 0xB6, 0x43, 0xE6, + 0x88, 0x80, 0x43, 0xE6, 0x88, 0x88, 0x43, 0xE6, + // Bytes c00 - c3f + 0x88, 0x90, 0x43, 0xE6, 0x88, 0x9B, 0x43, 0xE6, + 0x88, 0xAE, 0x43, 0xE6, 0x88, 0xB4, 0x43, 0xE6, + 0x88, 0xB6, 0x43, 0xE6, 0x89, 0x8B, 0x43, 0xE6, + 0x89, 0x93, 0x43, 0xE6, 0x89, 0x9D, 0x43, 0xE6, + 0x8A, 0x95, 0x43, 0xE6, 0x8A, 0xB1, 0x43, 0xE6, + 0x8B, 0x89, 0x43, 0xE6, 0x8B, 0x8F, 0x43, 0xE6, + 0x8B, 0x93, 0x43, 0xE6, 0x8B, 0x94, 0x43, 0xE6, + 0x8B, 0xBC, 0x43, 0xE6, 0x8B, 0xBE, 0x43, 0xE6, + // Bytes c40 - c7f + 0x8C, 0x87, 0x43, 0xE6, 0x8C, 0xBD, 0x43, 0xE6, + 0x8D, 0x90, 0x43, 0xE6, 0x8D, 0x95, 0x43, 0xE6, + 0x8D, 0xA8, 0x43, 0xE6, 0x8D, 0xBB, 0x43, 0xE6, + 0x8E, 0x83, 0x43, 0xE6, 0x8E, 0xA0, 0x43, 0xE6, + 0x8E, 0xA9, 0x43, 0xE6, 0x8F, 0x84, 0x43, 0xE6, + 0x8F, 0x85, 0x43, 0xE6, 0x8F, 0xA4, 0x43, 0xE6, + 0x90, 0x9C, 0x43, 0xE6, 0x90, 0xA2, 0x43, 0xE6, + 0x91, 0x92, 0x43, 0xE6, 0x91, 0xA9, 0x43, 0xE6, + // Bytes c80 - cbf + 0x91, 0xB7, 0x43, 0xE6, 0x91, 0xBE, 0x43, 0xE6, + 0x92, 0x9A, 0x43, 0xE6, 0x92, 0x9D, 0x43, 0xE6, + 0x93, 0x84, 0x43, 0xE6, 0x94, 0xAF, 0x43, 0xE6, + 0x94, 0xB4, 0x43, 0xE6, 0x95, 0x8F, 0x43, 0xE6, + 0x95, 0x96, 0x43, 0xE6, 0x95, 0xAC, 0x43, 0xE6, + 0x95, 0xB8, 0x43, 0xE6, 0x96, 0x87, 0x43, 0xE6, + 0x96, 0x97, 0x43, 0xE6, 0x96, 0x99, 0x43, 0xE6, + 0x96, 0xA4, 0x43, 0xE6, 0x96, 0xB0, 0x43, 0xE6, + // Bytes cc0 - cff + 0x96, 0xB9, 0x43, 0xE6, 0x97, 0x85, 0x43, 0xE6, + 0x97, 0xA0, 0x43, 0xE6, 0x97, 0xA2, 0x43, 0xE6, + 0x97, 0xA3, 0x43, 0xE6, 0x97, 0xA5, 0x43, 0xE6, + 0x98, 0x93, 0x43, 0xE6, 0x98, 0xA0, 0x43, 0xE6, + 0x99, 0x89, 0x43, 0xE6, 0x99, 0xB4, 0x43, 0xE6, + 0x9A, 0x88, 0x43, 0xE6, 0x9A, 0x91, 0x43, 0xE6, + 0x9A, 0x9C, 0x43, 0xE6, 0x9A, 0xB4, 0x43, 0xE6, + 0x9B, 0x86, 0x43, 0xE6, 0x9B, 0xB0, 0x43, 0xE6, + // Bytes d00 - d3f + 0x9B, 0xB4, 0x43, 0xE6, 0x9B, 0xB8, 0x43, 0xE6, + 0x9C, 0x80, 0x43, 0xE6, 0x9C, 0x88, 0x43, 0xE6, + 0x9C, 0x89, 0x43, 0xE6, 0x9C, 0x97, 0x43, 0xE6, + 0x9C, 0x9B, 0x43, 0xE6, 0x9C, 0xA1, 0x43, 0xE6, + 0x9C, 0xA8, 0x43, 0xE6, 0x9D, 0x8E, 0x43, 0xE6, + 0x9D, 0x93, 0x43, 0xE6, 0x9D, 0x96, 0x43, 0xE6, + 0x9D, 0x9E, 0x43, 0xE6, 0x9D, 0xBB, 0x43, 0xE6, + 0x9E, 0x85, 0x43, 0xE6, 0x9E, 0x97, 0x43, 0xE6, + // Bytes d40 - d7f + 0x9F, 0xB3, 0x43, 0xE6, 0x9F, 0xBA, 0x43, 0xE6, + 0xA0, 0x97, 0x43, 0xE6, 0xA0, 0x9F, 0x43, 0xE6, + 0xA0, 0xAA, 0x43, 0xE6, 0xA1, 0x92, 0x43, 0xE6, + 0xA2, 0x81, 0x43, 0xE6, 0xA2, 0x85, 0x43, 0xE6, + 0xA2, 0x8E, 0x43, 0xE6, 0xA2, 0xA8, 0x43, 0xE6, + 0xA4, 0x94, 0x43, 0xE6, 0xA5, 0x82, 0x43, 0xE6, + 0xA6, 0xA3, 0x43, 0xE6, 0xA7, 0xAA, 0x43, 0xE6, + 0xA8, 0x82, 0x43, 0xE6, 0xA8, 0x93, 0x43, 0xE6, + // Bytes d80 - dbf + 0xAA, 0xA8, 0x43, 0xE6, 0xAB, 0x93, 0x43, 0xE6, + 0xAB, 0x9B, 0x43, 0xE6, 0xAC, 0x84, 0x43, 0xE6, + 0xAC, 0xA0, 0x43, 0xE6, 0xAC, 0xA1, 0x43, 0xE6, + 0xAD, 0x94, 0x43, 0xE6, 0xAD, 0xA2, 0x43, 0xE6, + 0xAD, 0xA3, 0x43, 0xE6, 0xAD, 0xB2, 0x43, 0xE6, + 0xAD, 0xB7, 0x43, 0xE6, 0xAD, 0xB9, 0x43, 0xE6, + 0xAE, 0x9F, 0x43, 0xE6, 0xAE, 0xAE, 0x43, 0xE6, + 0xAE, 0xB3, 0x43, 0xE6, 0xAE, 0xBA, 0x43, 0xE6, + // Bytes dc0 - dff + 0xAE, 0xBB, 0x43, 0xE6, 0xAF, 0x8B, 0x43, 0xE6, + 0xAF, 0x8D, 0x43, 0xE6, 0xAF, 0x94, 0x43, 0xE6, + 0xAF, 0x9B, 0x43, 0xE6, 0xB0, 0x8F, 0x43, 0xE6, + 0xB0, 0x94, 0x43, 0xE6, 0xB0, 0xB4, 0x43, 0xE6, + 0xB1, 0x8E, 0x43, 0xE6, 0xB1, 0xA7, 0x43, 0xE6, + 0xB2, 0x88, 0x43, 0xE6, 0xB2, 0xBF, 0x43, 0xE6, + 0xB3, 0x8C, 0x43, 0xE6, 0xB3, 0x8D, 0x43, 0xE6, + 0xB3, 0xA5, 0x43, 0xE6, 0xB3, 0xA8, 0x43, 0xE6, + // Bytes e00 - e3f + 0xB4, 0x96, 0x43, 0xE6, 0xB4, 0x9B, 0x43, 0xE6, + 0xB4, 0x9E, 0x43, 0xE6, 0xB4, 0xB4, 0x43, 0xE6, + 0xB4, 0xBE, 0x43, 0xE6, 0xB5, 0x81, 0x43, 0xE6, + 0xB5, 0xA9, 0x43, 0xE6, 0xB5, 0xAA, 0x43, 0xE6, + 0xB5, 0xB7, 0x43, 0xE6, 0xB5, 0xB8, 0x43, 0xE6, + 0xB6, 0x85, 0x43, 0xE6, 0xB7, 0x8B, 0x43, 0xE6, + 0xB7, 0x9A, 0x43, 0xE6, 0xB7, 0xAA, 0x43, 0xE6, + 0xB7, 0xB9, 0x43, 0xE6, 0xB8, 0x9A, 0x43, 0xE6, + // Bytes e40 - e7f + 0xB8, 0xAF, 0x43, 0xE6, 0xB9, 0xAE, 0x43, 0xE6, + 0xBA, 0x80, 0x43, 0xE6, 0xBA, 0x9C, 0x43, 0xE6, + 0xBA, 0xBA, 0x43, 0xE6, 0xBB, 0x87, 0x43, 0xE6, + 0xBB, 0x8B, 0x43, 0xE6, 0xBB, 0x91, 0x43, 0xE6, + 0xBB, 0x9B, 0x43, 0xE6, 0xBC, 0x8F, 0x43, 0xE6, + 0xBC, 0x94, 0x43, 0xE6, 0xBC, 0xA2, 0x43, 0xE6, + 0xBC, 0xA3, 0x43, 0xE6, 0xBD, 0xAE, 0x43, 0xE6, + 0xBF, 0x86, 0x43, 0xE6, 0xBF, 0xAB, 0x43, 0xE6, + // Bytes e80 - ebf + 0xBF, 0xBE, 0x43, 0xE7, 0x80, 0x9B, 0x43, 0xE7, + 0x80, 0x9E, 0x43, 0xE7, 0x80, 0xB9, 0x43, 0xE7, + 0x81, 0x8A, 0x43, 0xE7, 0x81, 0xAB, 0x43, 0xE7, + 0x81, 0xB0, 0x43, 0xE7, 0x81, 0xB7, 0x43, 0xE7, + 0x81, 0xBD, 0x43, 0xE7, 0x82, 0x99, 0x43, 0xE7, + 0x82, 0xAD, 0x43, 0xE7, 0x83, 0x88, 0x43, 0xE7, + 0x83, 0x99, 0x43, 0xE7, 0x84, 0xA1, 0x43, 0xE7, + 0x85, 0x85, 0x43, 0xE7, 0x85, 0x89, 0x43, 0xE7, + // Bytes ec0 - eff + 0x85, 0xAE, 0x43, 0xE7, 0x86, 0x9C, 0x43, 0xE7, + 0x87, 0x8E, 0x43, 0xE7, 0x87, 0x90, 0x43, 0xE7, + 0x88, 0x90, 0x43, 0xE7, 0x88, 0x9B, 0x43, 0xE7, + 0x88, 0xA8, 0x43, 0xE7, 0x88, 0xAA, 0x43, 0xE7, + 0x88, 0xAB, 0x43, 0xE7, 0x88, 0xB5, 0x43, 0xE7, + 0x88, 0xB6, 0x43, 0xE7, 0x88, 0xBB, 0x43, 0xE7, + 0x88, 0xBF, 0x43, 0xE7, 0x89, 0x87, 0x43, 0xE7, + 0x89, 0x90, 0x43, 0xE7, 0x89, 0x99, 0x43, 0xE7, + // Bytes f00 - f3f + 0x89, 0x9B, 0x43, 0xE7, 0x89, 0xA2, 0x43, 0xE7, + 0x89, 0xB9, 0x43, 0xE7, 0x8A, 0x80, 0x43, 0xE7, + 0x8A, 0x95, 0x43, 0xE7, 0x8A, 0xAC, 0x43, 0xE7, + 0x8A, 0xAF, 0x43, 0xE7, 0x8B, 0x80, 0x43, 0xE7, + 0x8B, 0xBC, 0x43, 0xE7, 0x8C, 0xAA, 0x43, 0xE7, + 0x8D, 0xB5, 0x43, 0xE7, 0x8D, 0xBA, 0x43, 0xE7, + 0x8E, 0x84, 0x43, 0xE7, 0x8E, 0x87, 0x43, 0xE7, + 0x8E, 0x89, 0x43, 0xE7, 0x8E, 0x8B, 0x43, 0xE7, + // Bytes f40 - f7f + 0x8E, 0xA5, 0x43, 0xE7, 0x8E, 0xB2, 0x43, 0xE7, + 0x8F, 0x9E, 0x43, 0xE7, 0x90, 0x86, 0x43, 0xE7, + 0x90, 0x89, 0x43, 0xE7, 0x90, 0xA2, 0x43, 0xE7, + 0x91, 0x87, 0x43, 0xE7, 0x91, 0x9C, 0x43, 0xE7, + 0x91, 0xA9, 0x43, 0xE7, 0x91, 0xB1, 0x43, 0xE7, + 0x92, 0x85, 0x43, 0xE7, 0x92, 0x89, 0x43, 0xE7, + 0x92, 0x98, 0x43, 0xE7, 0x93, 0x8A, 0x43, 0xE7, + 0x93, 0x9C, 0x43, 0xE7, 0x93, 0xA6, 0x43, 0xE7, + // Bytes f80 - fbf + 0x94, 0x86, 0x43, 0xE7, 0x94, 0x98, 0x43, 0xE7, + 0x94, 0x9F, 0x43, 0xE7, 0x94, 0xA4, 0x43, 0xE7, + 0x94, 0xA8, 0x43, 0xE7, 0x94, 0xB0, 0x43, 0xE7, + 0x94, 0xB2, 0x43, 0xE7, 0x94, 0xB3, 0x43, 0xE7, + 0x94, 0xB7, 0x43, 0xE7, 0x94, 0xBB, 0x43, 0xE7, + 0x94, 0xBE, 0x43, 0xE7, 0x95, 0x99, 0x43, 0xE7, + 0x95, 0xA5, 0x43, 0xE7, 0x95, 0xB0, 0x43, 0xE7, + 0x96, 0x8B, 0x43, 0xE7, 0x96, 0x92, 0x43, 0xE7, + // Bytes fc0 - fff + 0x97, 0xA2, 0x43, 0xE7, 0x98, 0x90, 0x43, 0xE7, + 0x98, 0x9D, 0x43, 0xE7, 0x98, 0x9F, 0x43, 0xE7, + 0x99, 0x82, 0x43, 0xE7, 0x99, 0xA9, 0x43, 0xE7, + 0x99, 0xB6, 0x43, 0xE7, 0x99, 0xBD, 0x43, 0xE7, + 0x9A, 0xAE, 0x43, 0xE7, 0x9A, 0xBF, 0x43, 0xE7, + 0x9B, 0x8A, 0x43, 0xE7, 0x9B, 0x9B, 0x43, 0xE7, + 0x9B, 0xA3, 0x43, 0xE7, 0x9B, 0xA7, 0x43, 0xE7, + 0x9B, 0xAE, 0x43, 0xE7, 0x9B, 0xB4, 0x43, 0xE7, + // Bytes 1000 - 103f + 0x9C, 0x81, 0x43, 0xE7, 0x9C, 0x9E, 0x43, 0xE7, + 0x9C, 0x9F, 0x43, 0xE7, 0x9D, 0x80, 0x43, 0xE7, + 0x9D, 0x8A, 0x43, 0xE7, 0x9E, 0x8B, 0x43, 0xE7, + 0x9E, 0xA7, 0x43, 0xE7, 0x9F, 0x9B, 0x43, 0xE7, + 0x9F, 0xA2, 0x43, 0xE7, 0x9F, 0xB3, 0x43, 0xE7, + 0xA1, 0x8E, 0x43, 0xE7, 0xA1, 0xAB, 0x43, 0xE7, + 0xA2, 0x8C, 0x43, 0xE7, 0xA2, 0x91, 0x43, 0xE7, + 0xA3, 0x8A, 0x43, 0xE7, 0xA3, 0x8C, 0x43, 0xE7, + // Bytes 1040 - 107f + 0xA3, 0xBB, 0x43, 0xE7, 0xA4, 0xAA, 0x43, 0xE7, + 0xA4, 0xBA, 0x43, 0xE7, 0xA4, 0xBC, 0x43, 0xE7, + 0xA4, 0xBE, 0x43, 0xE7, 0xA5, 0x88, 0x43, 0xE7, + 0xA5, 0x89, 0x43, 0xE7, 0xA5, 0x90, 0x43, 0xE7, + 0xA5, 0x96, 0x43, 0xE7, 0xA5, 0x9D, 0x43, 0xE7, + 0xA5, 0x9E, 0x43, 0xE7, 0xA5, 0xA5, 0x43, 0xE7, + 0xA5, 0xBF, 0x43, 0xE7, 0xA6, 0x81, 0x43, 0xE7, + 0xA6, 0x8D, 0x43, 0xE7, 0xA6, 0x8E, 0x43, 0xE7, + // Bytes 1080 - 10bf + 0xA6, 0x8F, 0x43, 0xE7, 0xA6, 0xAE, 0x43, 0xE7, + 0xA6, 0xB8, 0x43, 0xE7, 0xA6, 0xBE, 0x43, 0xE7, + 0xA7, 0x8A, 0x43, 0xE7, 0xA7, 0x98, 0x43, 0xE7, + 0xA7, 0xAB, 0x43, 0xE7, 0xA8, 0x9C, 0x43, 0xE7, + 0xA9, 0x80, 0x43, 0xE7, 0xA9, 0x8A, 0x43, 0xE7, + 0xA9, 0x8F, 0x43, 0xE7, 0xA9, 0xB4, 0x43, 0xE7, + 0xA9, 0xBA, 0x43, 0xE7, 0xAA, 0x81, 0x43, 0xE7, + 0xAA, 0xB1, 0x43, 0xE7, 0xAB, 0x8B, 0x43, 0xE7, + // Bytes 10c0 - 10ff + 0xAB, 0xAE, 0x43, 0xE7, 0xAB, 0xB9, 0x43, 0xE7, + 0xAC, 0xA0, 0x43, 0xE7, 0xAE, 0x8F, 0x43, 0xE7, + 0xAF, 0x80, 0x43, 0xE7, 0xAF, 0x86, 0x43, 0xE7, + 0xAF, 0x89, 0x43, 0xE7, 0xB0, 0xBE, 0x43, 0xE7, + 0xB1, 0xA0, 0x43, 0xE7, 0xB1, 0xB3, 0x43, 0xE7, + 0xB1, 0xBB, 0x43, 0xE7, 0xB2, 0x92, 0x43, 0xE7, + 0xB2, 0xBE, 0x43, 0xE7, 0xB3, 0x92, 0x43, 0xE7, + 0xB3, 0x96, 0x43, 0xE7, 0xB3, 0xA3, 0x43, 0xE7, + // Bytes 1100 - 113f + 0xB3, 0xA7, 0x43, 0xE7, 0xB3, 0xA8, 0x43, 0xE7, + 0xB3, 0xB8, 0x43, 0xE7, 0xB4, 0x80, 0x43, 0xE7, + 0xB4, 0x90, 0x43, 0xE7, 0xB4, 0xA2, 0x43, 0xE7, + 0xB4, 0xAF, 0x43, 0xE7, 0xB5, 0x82, 0x43, 0xE7, + 0xB5, 0x9B, 0x43, 0xE7, 0xB5, 0xA3, 0x43, 0xE7, + 0xB6, 0xA0, 0x43, 0xE7, 0xB6, 0xBE, 0x43, 0xE7, + 0xB7, 0x87, 0x43, 0xE7, 0xB7, 0xB4, 0x43, 0xE7, + 0xB8, 0x82, 0x43, 0xE7, 0xB8, 0x89, 0x43, 0xE7, + // Bytes 1140 - 117f + 0xB8, 0xB7, 0x43, 0xE7, 0xB9, 0x81, 0x43, 0xE7, + 0xB9, 0x85, 0x43, 0xE7, 0xBC, 0xB6, 0x43, 0xE7, + 0xBC, 0xBE, 0x43, 0xE7, 0xBD, 0x91, 0x43, 0xE7, + 0xBD, 0xB2, 0x43, 0xE7, 0xBD, 0xB9, 0x43, 0xE7, + 0xBD, 0xBA, 0x43, 0xE7, 0xBE, 0x85, 0x43, 0xE7, + 0xBE, 0x8A, 0x43, 0xE7, 0xBE, 0x95, 0x43, 0xE7, + 0xBE, 0x9A, 0x43, 0xE7, 0xBE, 0xBD, 0x43, 0xE7, + 0xBF, 0xBA, 0x43, 0xE8, 0x80, 0x81, 0x43, 0xE8, + // Bytes 1180 - 11bf + 0x80, 0x85, 0x43, 0xE8, 0x80, 0x8C, 0x43, 0xE8, + 0x80, 0x92, 0x43, 0xE8, 0x80, 0xB3, 0x43, 0xE8, + 0x81, 0x86, 0x43, 0xE8, 0x81, 0xA0, 0x43, 0xE8, + 0x81, 0xAF, 0x43, 0xE8, 0x81, 0xB0, 0x43, 0xE8, + 0x81, 0xBE, 0x43, 0xE8, 0x81, 0xBF, 0x43, 0xE8, + 0x82, 0x89, 0x43, 0xE8, 0x82, 0x8B, 0x43, 0xE8, + 0x82, 0xAD, 0x43, 0xE8, 0x82, 0xB2, 0x43, 0xE8, + 0x84, 0x83, 0x43, 0xE8, 0x84, 0xBE, 0x43, 0xE8, + // Bytes 11c0 - 11ff + 0x87, 0x98, 0x43, 0xE8, 0x87, 0xA3, 0x43, 0xE8, + 0x87, 0xA8, 0x43, 0xE8, 0x87, 0xAA, 0x43, 0xE8, + 0x87, 0xAD, 0x43, 0xE8, 0x87, 0xB3, 0x43, 0xE8, + 0x87, 0xBC, 0x43, 0xE8, 0x88, 0x81, 0x43, 0xE8, + 0x88, 0x84, 0x43, 0xE8, 0x88, 0x8C, 0x43, 0xE8, + 0x88, 0x98, 0x43, 0xE8, 0x88, 0x9B, 0x43, 0xE8, + 0x88, 0x9F, 0x43, 0xE8, 0x89, 0xAE, 0x43, 0xE8, + 0x89, 0xAF, 0x43, 0xE8, 0x89, 0xB2, 0x43, 0xE8, + // Bytes 1200 - 123f + 0x89, 0xB8, 0x43, 0xE8, 0x89, 0xB9, 0x43, 0xE8, + 0x8A, 0x8B, 0x43, 0xE8, 0x8A, 0x91, 0x43, 0xE8, + 0x8A, 0x9D, 0x43, 0xE8, 0x8A, 0xB1, 0x43, 0xE8, + 0x8A, 0xB3, 0x43, 0xE8, 0x8A, 0xBD, 0x43, 0xE8, + 0x8B, 0xA5, 0x43, 0xE8, 0x8B, 0xA6, 0x43, 0xE8, + 0x8C, 0x9D, 0x43, 0xE8, 0x8C, 0xA3, 0x43, 0xE8, + 0x8C, 0xB6, 0x43, 0xE8, 0x8D, 0x92, 0x43, 0xE8, + 0x8D, 0x93, 0x43, 0xE8, 0x8D, 0xA3, 0x43, 0xE8, + // Bytes 1240 - 127f + 0x8E, 0xAD, 0x43, 0xE8, 0x8E, 0xBD, 0x43, 0xE8, + 0x8F, 0x89, 0x43, 0xE8, 0x8F, 0x8A, 0x43, 0xE8, + 0x8F, 0x8C, 0x43, 0xE8, 0x8F, 0x9C, 0x43, 0xE8, + 0x8F, 0xA7, 0x43, 0xE8, 0x8F, 0xAF, 0x43, 0xE8, + 0x8F, 0xB1, 0x43, 0xE8, 0x90, 0xBD, 0x43, 0xE8, + 0x91, 0x89, 0x43, 0xE8, 0x91, 0x97, 0x43, 0xE8, + 0x93, 0xAE, 0x43, 0xE8, 0x93, 0xB1, 0x43, 0xE8, + 0x93, 0xB3, 0x43, 0xE8, 0x93, 0xBC, 0x43, 0xE8, + // Bytes 1280 - 12bf + 0x94, 0x96, 0x43, 0xE8, 0x95, 0xA4, 0x43, 0xE8, + 0x97, 0x8D, 0x43, 0xE8, 0x97, 0xBA, 0x43, 0xE8, + 0x98, 0x86, 0x43, 0xE8, 0x98, 0x92, 0x43, 0xE8, + 0x98, 0xAD, 0x43, 0xE8, 0x98, 0xBF, 0x43, 0xE8, + 0x99, 0x8D, 0x43, 0xE8, 0x99, 0x90, 0x43, 0xE8, + 0x99, 0x9C, 0x43, 0xE8, 0x99, 0xA7, 0x43, 0xE8, + 0x99, 0xA9, 0x43, 0xE8, 0x99, 0xAB, 0x43, 0xE8, + 0x9A, 0x88, 0x43, 0xE8, 0x9A, 0xA9, 0x43, 0xE8, + // Bytes 12c0 - 12ff + 0x9B, 0xA2, 0x43, 0xE8, 0x9C, 0x8E, 0x43, 0xE8, + 0x9C, 0xA8, 0x43, 0xE8, 0x9D, 0xAB, 0x43, 0xE8, + 0x9D, 0xB9, 0x43, 0xE8, 0x9E, 0x86, 0x43, 0xE8, + 0x9E, 0xBA, 0x43, 0xE8, 0x9F, 0xA1, 0x43, 0xE8, + 0xA0, 0x81, 0x43, 0xE8, 0xA0, 0x9F, 0x43, 0xE8, + 0xA1, 0x80, 0x43, 0xE8, 0xA1, 0x8C, 0x43, 0xE8, + 0xA1, 0xA0, 0x43, 0xE8, 0xA1, 0xA3, 0x43, 0xE8, + 0xA3, 0x82, 0x43, 0xE8, 0xA3, 0x8F, 0x43, 0xE8, + // Bytes 1300 - 133f + 0xA3, 0x97, 0x43, 0xE8, 0xA3, 0x9E, 0x43, 0xE8, + 0xA3, 0xA1, 0x43, 0xE8, 0xA3, 0xB8, 0x43, 0xE8, + 0xA3, 0xBA, 0x43, 0xE8, 0xA4, 0x90, 0x43, 0xE8, + 0xA5, 0x81, 0x43, 0xE8, 0xA5, 0xA4, 0x43, 0xE8, + 0xA5, 0xBE, 0x43, 0xE8, 0xA6, 0x86, 0x43, 0xE8, + 0xA6, 0x8B, 0x43, 0xE8, 0xA6, 0x96, 0x43, 0xE8, + 0xA7, 0x92, 0x43, 0xE8, 0xA7, 0xA3, 0x43, 0xE8, + 0xA8, 0x80, 0x43, 0xE8, 0xAA, 0xA0, 0x43, 0xE8, + // Bytes 1340 - 137f + 0xAA, 0xAA, 0x43, 0xE8, 0xAA, 0xBF, 0x43, 0xE8, + 0xAB, 0x8B, 0x43, 0xE8, 0xAB, 0x92, 0x43, 0xE8, + 0xAB, 0x96, 0x43, 0xE8, 0xAB, 0xAD, 0x43, 0xE8, + 0xAB, 0xB8, 0x43, 0xE8, 0xAB, 0xBE, 0x43, 0xE8, + 0xAC, 0x81, 0x43, 0xE8, 0xAC, 0xB9, 0x43, 0xE8, + 0xAD, 0x98, 0x43, 0xE8, 0xAE, 0x80, 0x43, 0xE8, + 0xAE, 0x8A, 0x43, 0xE8, 0xB0, 0xB7, 0x43, 0xE8, + 0xB1, 0x86, 0x43, 0xE8, 0xB1, 0x88, 0x43, 0xE8, + // Bytes 1380 - 13bf + 0xB1, 0x95, 0x43, 0xE8, 0xB1, 0xB8, 0x43, 0xE8, + 0xB2, 0x9D, 0x43, 0xE8, 0xB2, 0xA1, 0x43, 0xE8, + 0xB2, 0xA9, 0x43, 0xE8, 0xB2, 0xAB, 0x43, 0xE8, + 0xB3, 0x81, 0x43, 0xE8, 0xB3, 0x82, 0x43, 0xE8, + 0xB3, 0x87, 0x43, 0xE8, 0xB3, 0x88, 0x43, 0xE8, + 0xB3, 0x93, 0x43, 0xE8, 0xB4, 0x88, 0x43, 0xE8, + 0xB4, 0x9B, 0x43, 0xE8, 0xB5, 0xA4, 0x43, 0xE8, + 0xB5, 0xB0, 0x43, 0xE8, 0xB5, 0xB7, 0x43, 0xE8, + // Bytes 13c0 - 13ff + 0xB6, 0xB3, 0x43, 0xE8, 0xB6, 0xBC, 0x43, 0xE8, + 0xB7, 0x8B, 0x43, 0xE8, 0xB7, 0xAF, 0x43, 0xE8, + 0xB7, 0xB0, 0x43, 0xE8, 0xBA, 0xAB, 0x43, 0xE8, + 0xBB, 0x8A, 0x43, 0xE8, 0xBB, 0x94, 0x43, 0xE8, + 0xBC, 0xA6, 0x43, 0xE8, 0xBC, 0xAA, 0x43, 0xE8, + 0xBC, 0xB8, 0x43, 0xE8, 0xBC, 0xBB, 0x43, 0xE8, + 0xBD, 0xA2, 0x43, 0xE8, 0xBE, 0x9B, 0x43, 0xE8, + 0xBE, 0x9E, 0x43, 0xE8, 0xBE, 0xB0, 0x43, 0xE8, + // Bytes 1400 - 143f + 0xBE, 0xB5, 0x43, 0xE8, 0xBE, 0xB6, 0x43, 0xE9, + 0x80, 0xA3, 0x43, 0xE9, 0x80, 0xB8, 0x43, 0xE9, + 0x81, 0x8A, 0x43, 0xE9, 0x81, 0xA9, 0x43, 0xE9, + 0x81, 0xB2, 0x43, 0xE9, 0x81, 0xBC, 0x43, 0xE9, + 0x82, 0x8F, 0x43, 0xE9, 0x82, 0x91, 0x43, 0xE9, + 0x82, 0x94, 0x43, 0xE9, 0x83, 0x8E, 0x43, 0xE9, + 0x83, 0x9E, 0x43, 0xE9, 0x83, 0xB1, 0x43, 0xE9, + 0x83, 0xBD, 0x43, 0xE9, 0x84, 0x91, 0x43, 0xE9, + // Bytes 1440 - 147f + 0x84, 0x9B, 0x43, 0xE9, 0x85, 0x89, 0x43, 0xE9, + 0x85, 0x8D, 0x43, 0xE9, 0x85, 0xAA, 0x43, 0xE9, + 0x86, 0x99, 0x43, 0xE9, 0x86, 0xB4, 0x43, 0xE9, + 0x87, 0x86, 0x43, 0xE9, 0x87, 0x8C, 0x43, 0xE9, + 0x87, 0x8F, 0x43, 0xE9, 0x87, 0x91, 0x43, 0xE9, + 0x88, 0xB4, 0x43, 0xE9, 0x88, 0xB8, 0x43, 0xE9, + 0x89, 0xB6, 0x43, 0xE9, 0x89, 0xBC, 0x43, 0xE9, + 0x8B, 0x97, 0x43, 0xE9, 0x8B, 0x98, 0x43, 0xE9, + // Bytes 1480 - 14bf + 0x8C, 0x84, 0x43, 0xE9, 0x8D, 0x8A, 0x43, 0xE9, + 0x8F, 0xB9, 0x43, 0xE9, 0x90, 0x95, 0x43, 0xE9, + 0x95, 0xB7, 0x43, 0xE9, 0x96, 0x80, 0x43, 0xE9, + 0x96, 0x8B, 0x43, 0xE9, 0x96, 0xAD, 0x43, 0xE9, + 0x96, 0xB7, 0x43, 0xE9, 0x98, 0x9C, 0x43, 0xE9, + 0x98, 0xAE, 0x43, 0xE9, 0x99, 0x8B, 0x43, 0xE9, + 0x99, 0x8D, 0x43, 0xE9, 0x99, 0xB5, 0x43, 0xE9, + 0x99, 0xB8, 0x43, 0xE9, 0x99, 0xBC, 0x43, 0xE9, + // Bytes 14c0 - 14ff + 0x9A, 0x86, 0x43, 0xE9, 0x9A, 0xA3, 0x43, 0xE9, + 0x9A, 0xB6, 0x43, 0xE9, 0x9A, 0xB7, 0x43, 0xE9, + 0x9A, 0xB8, 0x43, 0xE9, 0x9A, 0xB9, 0x43, 0xE9, + 0x9B, 0x83, 0x43, 0xE9, 0x9B, 0xA2, 0x43, 0xE9, + 0x9B, 0xA3, 0x43, 0xE9, 0x9B, 0xA8, 0x43, 0xE9, + 0x9B, 0xB6, 0x43, 0xE9, 0x9B, 0xB7, 0x43, 0xE9, + 0x9C, 0xA3, 0x43, 0xE9, 0x9C, 0xB2, 0x43, 0xE9, + 0x9D, 0x88, 0x43, 0xE9, 0x9D, 0x91, 0x43, 0xE9, + // Bytes 1500 - 153f + 0x9D, 0x96, 0x43, 0xE9, 0x9D, 0x9E, 0x43, 0xE9, + 0x9D, 0xA2, 0x43, 0xE9, 0x9D, 0xA9, 0x43, 0xE9, + 0x9F, 0x8B, 0x43, 0xE9, 0x9F, 0x9B, 0x43, 0xE9, + 0x9F, 0xA0, 0x43, 0xE9, 0x9F, 0xAD, 0x43, 0xE9, + 0x9F, 0xB3, 0x43, 0xE9, 0x9F, 0xBF, 0x43, 0xE9, + 0xA0, 0x81, 0x43, 0xE9, 0xA0, 0x85, 0x43, 0xE9, + 0xA0, 0x8B, 0x43, 0xE9, 0xA0, 0x98, 0x43, 0xE9, + 0xA0, 0xA9, 0x43, 0xE9, 0xA0, 0xBB, 0x43, 0xE9, + // Bytes 1540 - 157f + 0xA1, 0x9E, 0x43, 0xE9, 0xA2, 0xA8, 0x43, 0xE9, + 0xA3, 0x9B, 0x43, 0xE9, 0xA3, 0x9F, 0x43, 0xE9, + 0xA3, 0xA2, 0x43, 0xE9, 0xA3, 0xAF, 0x43, 0xE9, + 0xA3, 0xBC, 0x43, 0xE9, 0xA4, 0xA8, 0x43, 0xE9, + 0xA4, 0xA9, 0x43, 0xE9, 0xA6, 0x96, 0x43, 0xE9, + 0xA6, 0x99, 0x43, 0xE9, 0xA6, 0xA7, 0x43, 0xE9, + 0xA6, 0xAC, 0x43, 0xE9, 0xA7, 0x82, 0x43, 0xE9, + 0xA7, 0xB1, 0x43, 0xE9, 0xA7, 0xBE, 0x43, 0xE9, + // Bytes 1580 - 15bf + 0xA9, 0xAA, 0x43, 0xE9, 0xAA, 0xA8, 0x43, 0xE9, + 0xAB, 0x98, 0x43, 0xE9, 0xAB, 0x9F, 0x43, 0xE9, + 0xAC, 0x92, 0x43, 0xE9, 0xAC, 0xA5, 0x43, 0xE9, + 0xAC, 0xAF, 0x43, 0xE9, 0xAC, 0xB2, 0x43, 0xE9, + 0xAC, 0xBC, 0x43, 0xE9, 0xAD, 0x9A, 0x43, 0xE9, + 0xAD, 0xAF, 0x43, 0xE9, 0xB1, 0x80, 0x43, 0xE9, + 0xB1, 0x97, 0x43, 0xE9, 0xB3, 0xA5, 0x43, 0xE9, + 0xB3, 0xBD, 0x43, 0xE9, 0xB5, 0xA7, 0x43, 0xE9, + // Bytes 15c0 - 15ff + 0xB6, 0xB4, 0x43, 0xE9, 0xB7, 0xBA, 0x43, 0xE9, + 0xB8, 0x9E, 0x43, 0xE9, 0xB9, 0xB5, 0x43, 0xE9, + 0xB9, 0xBF, 0x43, 0xE9, 0xBA, 0x97, 0x43, 0xE9, + 0xBA, 0x9F, 0x43, 0xE9, 0xBA, 0xA5, 0x43, 0xE9, + 0xBA, 0xBB, 0x43, 0xE9, 0xBB, 0x83, 0x43, 0xE9, + 0xBB, 0x8D, 0x43, 0xE9, 0xBB, 0x8E, 0x43, 0xE9, + 0xBB, 0x91, 0x43, 0xE9, 0xBB, 0xB9, 0x43, 0xE9, + 0xBB, 0xBD, 0x43, 0xE9, 0xBB, 0xBE, 0x43, 0xE9, + // Bytes 1600 - 163f + 0xBC, 0x85, 0x43, 0xE9, 0xBC, 0x8E, 0x43, 0xE9, + 0xBC, 0x8F, 0x43, 0xE9, 0xBC, 0x93, 0x43, 0xE9, + 0xBC, 0x96, 0x43, 0xE9, 0xBC, 0xA0, 0x43, 0xE9, + 0xBC, 0xBB, 0x43, 0xE9, 0xBD, 0x83, 0x43, 0xE9, + 0xBD, 0x8A, 0x43, 0xE9, 0xBD, 0x92, 0x43, 0xE9, + 0xBE, 0x8D, 0x43, 0xE9, 0xBE, 0x8E, 0x43, 0xE9, + 0xBE, 0x9C, 0x43, 0xE9, 0xBE, 0x9F, 0x43, 0xE9, + 0xBE, 0xA0, 0x43, 0xEA, 0x9C, 0xA7, 0x43, 0xEA, + // Bytes 1640 - 167f + 0x9D, 0xAF, 0x43, 0xEA, 0xAC, 0xB7, 0x43, 0xEA, + 0xAD, 0x92, 0x44, 0xF0, 0xA0, 0x84, 0xA2, 0x44, + 0xF0, 0xA0, 0x94, 0x9C, 0x44, 0xF0, 0xA0, 0x94, + 0xA5, 0x44, 0xF0, 0xA0, 0x95, 0x8B, 0x44, 0xF0, + 0xA0, 0x98, 0xBA, 0x44, 0xF0, 0xA0, 0xA0, 0x84, + 0x44, 0xF0, 0xA0, 0xA3, 0x9E, 0x44, 0xF0, 0xA0, + 0xA8, 0xAC, 0x44, 0xF0, 0xA0, 0xAD, 0xA3, 0x44, + 0xF0, 0xA1, 0x93, 0xA4, 0x44, 0xF0, 0xA1, 0x9A, + // Bytes 1680 - 16bf + 0xA8, 0x44, 0xF0, 0xA1, 0x9B, 0xAA, 0x44, 0xF0, + 0xA1, 0xA7, 0x88, 0x44, 0xF0, 0xA1, 0xAC, 0x98, + 0x44, 0xF0, 0xA1, 0xB4, 0x8B, 0x44, 0xF0, 0xA1, + 0xB7, 0xA4, 0x44, 0xF0, 0xA1, 0xB7, 0xA6, 0x44, + 0xF0, 0xA2, 0x86, 0x83, 0x44, 0xF0, 0xA2, 0x86, + 0x9F, 0x44, 0xF0, 0xA2, 0x8C, 0xB1, 0x44, 0xF0, + 0xA2, 0x9B, 0x94, 0x44, 0xF0, 0xA2, 0xA1, 0x84, + 0x44, 0xF0, 0xA2, 0xA1, 0x8A, 0x44, 0xF0, 0xA2, + // Bytes 16c0 - 16ff + 0xAC, 0x8C, 0x44, 0xF0, 0xA2, 0xAF, 0xB1, 0x44, + 0xF0, 0xA3, 0x80, 0x8A, 0x44, 0xF0, 0xA3, 0x8A, + 0xB8, 0x44, 0xF0, 0xA3, 0x8D, 0x9F, 0x44, 0xF0, + 0xA3, 0x8E, 0x93, 0x44, 0xF0, 0xA3, 0x8E, 0x9C, + 0x44, 0xF0, 0xA3, 0x8F, 0x83, 0x44, 0xF0, 0xA3, + 0x8F, 0x95, 0x44, 0xF0, 0xA3, 0x91, 0xAD, 0x44, + 0xF0, 0xA3, 0x9A, 0xA3, 0x44, 0xF0, 0xA3, 0xA2, + 0xA7, 0x44, 0xF0, 0xA3, 0xAA, 0x8D, 0x44, 0xF0, + // Bytes 1700 - 173f + 0xA3, 0xAB, 0xBA, 0x44, 0xF0, 0xA3, 0xB2, 0xBC, + 0x44, 0xF0, 0xA3, 0xB4, 0x9E, 0x44, 0xF0, 0xA3, + 0xBB, 0x91, 0x44, 0xF0, 0xA3, 0xBD, 0x9E, 0x44, + 0xF0, 0xA3, 0xBE, 0x8E, 0x44, 0xF0, 0xA4, 0x89, + 0xA3, 0x44, 0xF0, 0xA4, 0x8B, 0xAE, 0x44, 0xF0, + 0xA4, 0x8E, 0xAB, 0x44, 0xF0, 0xA4, 0x98, 0x88, + 0x44, 0xF0, 0xA4, 0x9C, 0xB5, 0x44, 0xF0, 0xA4, + 0xA0, 0x94, 0x44, 0xF0, 0xA4, 0xB0, 0xB6, 0x44, + // Bytes 1740 - 177f + 0xF0, 0xA4, 0xB2, 0x92, 0x44, 0xF0, 0xA4, 0xBE, + 0xA1, 0x44, 0xF0, 0xA4, 0xBE, 0xB8, 0x44, 0xF0, + 0xA5, 0x81, 0x84, 0x44, 0xF0, 0xA5, 0x83, 0xB2, + 0x44, 0xF0, 0xA5, 0x83, 0xB3, 0x44, 0xF0, 0xA5, + 0x84, 0x99, 0x44, 0xF0, 0xA5, 0x84, 0xB3, 0x44, + 0xF0, 0xA5, 0x89, 0x89, 0x44, 0xF0, 0xA5, 0x90, + 0x9D, 0x44, 0xF0, 0xA5, 0x98, 0xA6, 0x44, 0xF0, + 0xA5, 0x9A, 0x9A, 0x44, 0xF0, 0xA5, 0x9B, 0x85, + // Bytes 1780 - 17bf + 0x44, 0xF0, 0xA5, 0xA5, 0xBC, 0x44, 0xF0, 0xA5, + 0xAA, 0xA7, 0x44, 0xF0, 0xA5, 0xAE, 0xAB, 0x44, + 0xF0, 0xA5, 0xB2, 0x80, 0x44, 0xF0, 0xA5, 0xB3, + 0x90, 0x44, 0xF0, 0xA5, 0xBE, 0x86, 0x44, 0xF0, + 0xA6, 0x87, 0x9A, 0x44, 0xF0, 0xA6, 0x88, 0xA8, + 0x44, 0xF0, 0xA6, 0x89, 0x87, 0x44, 0xF0, 0xA6, + 0x8B, 0x99, 0x44, 0xF0, 0xA6, 0x8C, 0xBE, 0x44, + 0xF0, 0xA6, 0x93, 0x9A, 0x44, 0xF0, 0xA6, 0x94, + // Bytes 17c0 - 17ff + 0xA3, 0x44, 0xF0, 0xA6, 0x96, 0xA8, 0x44, 0xF0, + 0xA6, 0x9E, 0xA7, 0x44, 0xF0, 0xA6, 0x9E, 0xB5, + 0x44, 0xF0, 0xA6, 0xAC, 0xBC, 0x44, 0xF0, 0xA6, + 0xB0, 0xB6, 0x44, 0xF0, 0xA6, 0xB3, 0x95, 0x44, + 0xF0, 0xA6, 0xB5, 0xAB, 0x44, 0xF0, 0xA6, 0xBC, + 0xAC, 0x44, 0xF0, 0xA6, 0xBE, 0xB1, 0x44, 0xF0, + 0xA7, 0x83, 0x92, 0x44, 0xF0, 0xA7, 0x8F, 0x8A, + 0x44, 0xF0, 0xA7, 0x99, 0xA7, 0x44, 0xF0, 0xA7, + // Bytes 1800 - 183f + 0xA2, 0xAE, 0x44, 0xF0, 0xA7, 0xA5, 0xA6, 0x44, + 0xF0, 0xA7, 0xB2, 0xA8, 0x44, 0xF0, 0xA7, 0xBB, + 0x93, 0x44, 0xF0, 0xA7, 0xBC, 0xAF, 0x44, 0xF0, + 0xA8, 0x97, 0x92, 0x44, 0xF0, 0xA8, 0x97, 0xAD, + 0x44, 0xF0, 0xA8, 0x9C, 0xAE, 0x44, 0xF0, 0xA8, + 0xAF, 0xBA, 0x44, 0xF0, 0xA8, 0xB5, 0xB7, 0x44, + 0xF0, 0xA9, 0x85, 0x85, 0x44, 0xF0, 0xA9, 0x87, + 0x9F, 0x44, 0xF0, 0xA9, 0x88, 0x9A, 0x44, 0xF0, + // Bytes 1840 - 187f + 0xA9, 0x90, 0x8A, 0x44, 0xF0, 0xA9, 0x92, 0x96, + 0x44, 0xF0, 0xA9, 0x96, 0xB6, 0x44, 0xF0, 0xA9, + 0xAC, 0xB0, 0x44, 0xF0, 0xAA, 0x83, 0x8E, 0x44, + 0xF0, 0xAA, 0x84, 0x85, 0x44, 0xF0, 0xAA, 0x88, + 0x8E, 0x44, 0xF0, 0xAA, 0x8A, 0x91, 0x44, 0xF0, + 0xAA, 0x8E, 0x92, 0x44, 0xF0, 0xAA, 0x98, 0x80, + 0x42, 0x21, 0x21, 0x42, 0x21, 0x3F, 0x42, 0x2E, + 0x2E, 0x42, 0x30, 0x2C, 0x42, 0x30, 0x2E, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2C, 0x42, 0x31, 0x2E, 0x42, 0x31, 0x30, + 0x42, 0x31, 0x31, 0x42, 0x31, 0x32, 0x42, 0x31, + 0x33, 0x42, 0x31, 0x34, 0x42, 0x31, 0x35, 0x42, + 0x31, 0x36, 0x42, 0x31, 0x37, 0x42, 0x31, 0x38, + 0x42, 0x31, 0x39, 0x42, 0x32, 0x2C, 0x42, 0x32, + 0x2E, 0x42, 0x32, 0x30, 0x42, 0x32, 0x31, 0x42, + 0x32, 0x32, 0x42, 0x32, 0x33, 0x42, 0x32, 0x34, + 0x42, 0x32, 0x35, 0x42, 0x32, 0x36, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x37, 0x42, 0x32, 0x38, 0x42, 0x32, 0x39, 0x42, + 0x33, 0x2C, 0x42, 0x33, 0x2E, 0x42, 0x33, 0x30, + 0x42, 0x33, 0x31, 0x42, 0x33, 0x32, 0x42, 0x33, + 0x33, 0x42, 0x33, 0x34, 0x42, 0x33, 0x35, 0x42, + 0x33, 0x36, 0x42, 0x33, 0x37, 0x42, 0x33, 0x38, + 0x42, 0x33, 0x39, 0x42, 0x34, 0x2C, 0x42, 0x34, + 0x2E, 0x42, 0x34, 0x30, 0x42, 0x34, 0x31, 0x42, + 0x34, 0x32, 0x42, 0x34, 0x33, 0x42, 0x34, 0x34, + // Bytes 1900 - 193f + 0x42, 0x34, 0x35, 0x42, 0x34, 0x36, 0x42, 0x34, + 0x37, 0x42, 0x34, 0x38, 0x42, 0x34, 0x39, 0x42, + 0x35, 0x2C, 0x42, 0x35, 0x2E, 0x42, 0x35, 0x30, + 0x42, 0x36, 0x2C, 0x42, 0x36, 0x2E, 0x42, 0x37, + 0x2C, 0x42, 0x37, 0x2E, 0x42, 0x38, 0x2C, 0x42, + 0x38, 0x2E, 0x42, 0x39, 0x2C, 0x42, 0x39, 0x2E, + 0x42, 0x3D, 0x3D, 0x42, 0x3F, 0x21, 0x42, 0x3F, + 0x3F, 0x42, 0x41, 0x55, 0x42, 0x42, 0x71, 0x42, + // Bytes 1940 - 197f + 0x43, 0x44, 0x42, 0x44, 0x4A, 0x42, 0x44, 0x5A, + 0x42, 0x44, 0x7A, 0x42, 0x47, 0x42, 0x42, 0x47, + 0x79, 0x42, 0x48, 0x50, 0x42, 0x48, 0x56, 0x42, + 0x48, 0x67, 0x42, 0x48, 0x7A, 0x42, 0x49, 0x49, + 0x42, 0x49, 0x4A, 0x42, 0x49, 0x55, 0x42, 0x49, + 0x56, 0x42, 0x49, 0x58, 0x42, 0x4B, 0x42, 0x42, + 0x4B, 0x4B, 0x42, 0x4B, 0x4D, 0x42, 0x4C, 0x4A, + 0x42, 0x4C, 0x6A, 0x42, 0x4D, 0x42, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x43, 0x42, 0x4D, 0x44, 0x42, 0x4D, 0x52, 0x42, + 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, 0x4E, 0x4A, + 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, 0x42, 0x50, + 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, 0x61, 0x42, + 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, 0x53, 0x4D, + 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, 0x42, 0x54, + 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, 0x43, 0x42, + 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, 0x58, 0x49, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, 0x42, 0x63, + 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, 0x61, 0x42, + 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, 0x64, 0x7A, + 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, 0x42, 0x66, + 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, 0x6D, 0x42, + 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, 0x69, 0x6A, + 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, 0x42, 0x69, + 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, 0x56, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, 0x6B, 0x6C, + 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, 0x42, 0x6C, + 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, 0x6E, 0x42, + 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, 0x6D, 0x33, + 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, 0x42, 0x6D, + 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, 0x67, 0x42, + 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, 0x6D, 0x73, + 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, 0x6A, 0x42, + 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, 0x6F, 0x56, + 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, 0x42, 0x70, + 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, 0x63, 0x42, + 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, 0x73, 0x74, + 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, 0x43, 0x28, + 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, 0x43, 0x28, + 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, 0x43, 0x28, + // Bytes 1a80 - 1abf + 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, 0x43, 0x28, + 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, 0x43, 0x28, + 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, 0x43, 0x28, + 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, 0x43, 0x28, + 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, 0x43, 0x28, + 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, 0x43, 0x28, + 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, 0x43, 0x28, + 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, 0x43, 0x28, + // Bytes 1ac0 - 1aff + 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, 0x43, 0x28, + 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, 0x43, 0x28, + 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, 0x43, 0x28, + 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, 0x43, 0x28, + 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, 0x43, 0x28, + 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, 0x43, 0x28, + 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, 0x43, 0x28, + 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, 0x43, 0x28, + // Bytes 1b00 - 1b3f + 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, 0x43, 0x28, + 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, 0x43, 0x28, + 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, 0x43, 0x28, + 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, 0x43, 0x28, + 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, 0x43, 0x28, + 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, 0x43, 0x28, + 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, 0x43, 0x28, + 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, 0x43, 0x28, + // Bytes 1b40 - 1b7f + 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, 0x43, 0x28, + 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, 0x43, 0x28, + 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, 0x43, 0x28, + 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, 0x43, 0x28, + 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, 0x43, 0x31, + 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, 0x43, 0x31, + 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, 0x43, 0x31, + 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, 0x43, 0x31, + // Bytes 1b80 - 1bbf + 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, 0x43, 0x31, + 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, 0x43, 0x32, + 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, 0x43, 0x3D, + 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, 0x43, 0x46, + 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, 0x43, 0x47, + 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, 0x43, 0x4C, + 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, 0x43, 0x4D, + 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, 0x43, 0x4D, + // Bytes 1bc0 - 1bff + 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, 0x43, 0x50, + 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, 0x43, 0x54, + 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, 0x43, 0x56, + 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, 0x43, 0x61, + 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, 0x43, 0x61, + 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, 0x43, 0x63, + 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, 0x43, 0x63, + 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, 0x43, 0x63, + // Bytes 1c00 - 1c3f + 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, 0x43, 0x64, + 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, 0x43, 0x66, + 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, 0x43, 0x67, + 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, 0x43, 0x69, + 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, 0x43, 0x6B, + 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, 0x43, 0x6B, + 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, 0x43, 0x6C, + 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, 0x43, 0x6D, + // Bytes 1c40 - 1c7f + 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, 0x43, 0x6D, + 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, 0x43, 0x72, + 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, 0x43, 0x78, + 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, 0x43, 0xC2, + 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, 0x43, 0xCE, + 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, 0x43, 0xCE, + 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, 0x43, 0xCE, + 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, 0x43, 0xCE, + // Bytes 1c80 - 1cbf + 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, 0x44, 0x28, + 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, 0x31, 0x29, + 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, 0x28, 0x31, + 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, 0x29, 0x44, + 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, 0x31, 0x36, + 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, 0x44, 0x28, + 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, 0x39, 0x29, + 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, 0x30, 0xE7, + // Bytes 1cc0 - 1cff + 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, 0x84, 0x44, + 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, 0xE6, 0x9C, + 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, 0x44, 0x32, + 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, 0x9C, 0x88, + 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, 0x33, 0xE6, + 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, 0x88, 0x44, + 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, 0xE6, 0x97, + 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, 0x44, 0x34, + // Bytes 1d00 - 1d3f + 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, 0x97, 0xA5, + 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, 0x35, 0xE7, + 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, 0xA5, 0x44, + 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, 0xE7, 0x82, + 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, 0x44, 0x37, + 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, 0x82, 0xB9, + 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, 0x38, 0xE6, + 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, 0xB9, 0x44, + // Bytes 1d40 - 1d7f + 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, 0xE6, 0x9C, + 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, 0x44, 0x56, + 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, 0x6D, 0x2E, + 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, 0x70, 0x2E, + 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, 0x69, 0x44, + 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, 0xB4, 0xD5, + 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, 0x44, 0xD5, + 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, 0xD5, 0xB6, + // Bytes 1d80 - 1dbf + 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, 0xD7, 0x90, + 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, 0xB4, 0x44, + 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, 0xA8, 0xD8, + 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, 0x44, 0xD8, + 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, 0xD8, 0xB2, + 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, 0xD8, 0xA8, + 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, 0x87, 0x44, + 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, 0xA8, 0xD9, + // Bytes 1dc0 - 1dff + 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, 0x44, 0xD8, + 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, 0xD8, 0xAE, + 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, 0xD8, 0xAA, + 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, 0x85, 0x44, + 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, 0xAA, 0xD9, + 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, 0x44, 0xD8, + 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, 0xD8, 0xAC, + 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, 0xD8, 0xAB, + // Bytes 1e00 - 1e3f + 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, 0x85, 0x44, + 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, 0xAB, 0xD9, + 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, 0x44, 0xD8, + 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, 0xD8, 0xAD, + 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, 0xD8, 0xAC, + 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, 0x8A, 0x44, + 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, 0xAD, 0xD9, + 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, 0x44, 0xD8, + // Bytes 1e40 - 1e7f + 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, 0xD8, 0xAC, + 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, 0xD8, 0xAE, + 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, 0x89, 0x44, + 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, 0xB3, 0xD8, + 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, 0x44, 0xD8, + 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, 0xD8, 0xB1, + 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, 0xD8, 0xB3, + 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, 0x89, 0x44, + // Bytes 1e80 - 1ebf + 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, 0xB4, 0xD8, + 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, 0x44, 0xD8, + 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, 0xD8, 0xB1, + 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, 0xD8, 0xB4, + 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, 0x89, 0x44, + 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, 0xB5, 0xD8, + 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, 0x44, 0xD8, + 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, 0xD9, 0x85, + // Bytes 1ec0 - 1eff + 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, 0xD8, 0xB5, + 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, 0xAC, 0x44, + 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, 0xB6, 0xD8, + 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, 0x44, 0xD8, + 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, 0xD9, 0x89, + 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, 0xD8, 0xB7, + 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, 0x85, 0x44, + 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, 0xB7, 0xD9, + // Bytes 1f00 - 1f3f + 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, 0x44, 0xD8, + 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, 0xD9, 0x85, + 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, 0xD8, 0xB9, + 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, 0xAC, 0x44, + 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, 0xBA, 0xD9, + 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, 0x44, 0xD9, + 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, 0xD8, 0xAD, + 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, 0xD9, 0x81, + // Bytes 1f40 - 1f7f + 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, 0x89, 0x44, + 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, 0x82, 0xD8, + 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, 0x44, 0xD9, + 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, 0xD9, 0x8A, + 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, 0xD9, 0x83, + 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, 0xAD, 0x44, + 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, 0x83, 0xD9, + 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, 0x44, 0xD9, + // Bytes 1f80 - 1fbf + 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, 0xD9, 0x8A, + 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, 0xD9, 0x84, + 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, 0xAD, 0x44, + 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, 0x84, 0xD9, + 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, 0x44, 0xD9, + 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, 0xD9, 0x8A, + 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, 0xD9, 0x85, + 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, 0xAD, 0x44, + // Bytes 1fc0 - 1fff + 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, 0x85, 0xD9, + 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, 0x44, 0xD9, + 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, 0xD8, 0xAC, + 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, 0xD9, 0x86, + 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, 0xB1, 0x44, + 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, 0x86, 0xD9, + 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, 0x44, 0xD9, + 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, 0xD9, 0x89, + // Bytes 2000 - 203f + 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, 0xD9, 0x87, + 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, 0x85, 0x44, + 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, 0x87, 0xD9, + 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, 0x44, 0xD9, + 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, 0xD8, 0xAD, + 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, 0xD9, 0x8A, + 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, 0xB2, 0x44, + 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, 0x8A, 0xD9, + // Bytes 2040 - 207f + 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, 0x44, 0xD9, + 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, 0xD9, 0x8A, + 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, 0xDB, 0x87, + 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, 0x80, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x86, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, 0x45, 0x28, + // Bytes 2080 - 20bf + 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8C, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x91, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, 0x45, 0x28, + 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, 0xE4, 0xB8, + 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x89, 0x29, + // Bytes 20c0 - 20ff + 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, 0x45, 0x28, + 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, 0xE4, 0xBA, + 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, 0xA3, 0x29, + 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, 0x45, 0x28, + 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, 0xE5, 0x85, + 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, 0xAD, 0x29, + 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, 0x45, 0x28, + 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, 0xE5, 0x8D, + // Bytes 2100 - 213f + 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, 0x8D, 0x29, + 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, 0x45, 0x28, + 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, 0xE5, 0x9C, + 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, 0xA6, 0x29, + 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, 0x45, 0x28, + 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, 0xE6, 0x9C, + 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0xA8, 0x29, + 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, 0x45, 0x28, + // Bytes 2140 - 217f + 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, 0xE7, 0x81, + 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, 0xB9, 0x29, + 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, 0x45, 0x28, + 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, 0xE7, 0xA5, + 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, 0xAD, 0x29, + 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, 0x45, 0x28, + 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, 0xE8, 0xB2, + 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, 0x87, 0x29, + // Bytes 2180 - 21bf + 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, 0x45, 0x30, + 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0x30, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, 0x9C, 0x88, + 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x31, + 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x31, 0xE6, + 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x32, 0xE7, + // Bytes 21c0 - 21ff + 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, 0x45, 0x31, + 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x34, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, 0x45, 0x31, + 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x36, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, 0x45, 0x31, + // Bytes 2200 - 223f + 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x38, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x34, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x38, + // Bytes 2240 - 227f + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, 0x45, 0x32, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x30, 0xE7, + 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x32, + 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x32, 0xE7, + 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, 0x45, 0x32, + 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x34, 0xE7, + // Bytes 2280 - 22bf + 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x38, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x32, + 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, 0x30, 0xE6, + 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, 0x97, 0xA5, + 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x33, + // Bytes 22c0 - 22ff + 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, 0xE2, 0x81, + 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, 0x84, 0x35, + 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x35, + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, 0xE2, 0x81, + 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, 0x95, 0x6D, + 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x6D, + 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, 0xE2, 0x81, + 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, 0x88, 0x95, + // Bytes 2300 - 233f + 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, 0x95, 0x73, + 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, + 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8, + 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8, + 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD8, 0xAD, + 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, + // Bytes 2340 - 237f + 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x89, + 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, + 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, + 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAA, + 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xAA, 0xD9, + 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, + 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x8A, + // Bytes 2380 - 23bf + 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xAD, 0x46, + 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, + 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAD, + 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD9, + 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, 0xD8, + 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, 0xD9, 0x89, + 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, + // Bytes 23c0 - 23ff + 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8, + 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, + 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD9, + 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAC, 0xD9, + 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, 0x85, + 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, + // Bytes 2400 - 243f + 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB5, + 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, 0xB5, 0xD8, + 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, 0xD9, 0x84, + 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xDB, + 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x89, 0x46, + 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, + 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xB7, + // Bytes 2440 - 247f + 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB7, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, + 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x89, 0x46, + 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, + 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xBA, + 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xBA, 0xD9, + // Bytes 2480 - 24bf + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, 0xD8, 0xAE, + 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, 0x85, 0xD9, + 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, 0xDB, 0x92, + 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0x46, + 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x83, + 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x83, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAC, + // Bytes 24c0 - 24ff + 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x85, 0x46, + 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9, + 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD9, + 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD8, + // Bytes 2500 - 253f + 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAE, + 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85, 0x46, + 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, + 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD9, 0x85, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, + 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAE, + 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x8A, + // Bytes 2540 - 257f + 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9, + 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x86, + 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAD, + 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x89, 0x46, + // Bytes 2580 - 25bf + 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, + 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD9, 0x87, + 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, + 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, 0x46, 0xD9, + // Bytes 25c0 - 25ff + 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x86, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x87, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, 0xD9, 0x8A, + // Bytes 2600 - 263f + 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, + 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x90, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x95, 0x46, + 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, 0x46, 0xE0, + 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, 0xE0, 0xBA, + 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, 0xBB, 0x8D, + // Bytes 2640 - 267f + 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, 0x80, 0xE0, + 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, 0xE0, 0xBE, + 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, 0xB7, 0x46, + 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, + 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBE, 0x92, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x9C, 0xE0, + // Bytes 2680 - 26bf + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, 0xE0, 0xBE, + 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, 0xB7, 0x46, + 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x46, 0xE2, + 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, 0x88, 0xAE, + 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, 0xBB, 0xE3, + 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, 0xE3, 0x82, + // Bytes 26c0 - 26ff + 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, + 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB3, 0x46, + 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, 0x46, 0xE3, + 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, + 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, 0x83, 0x9B, + 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, 0x9F, 0xE3, + 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, 0xE3, 0x83, + 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xA0, + // Bytes 2700 - 273f + 0x46, 0xE4, 0xBB, 0xA4, 0xE5, 0x92, 0x8C, 0x46, + 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5, + 0xB9, 0xB3, 0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98, + 0x8E, 0xE6, 0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD, + 0xE5, 0x92, 0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2, + 0x88, 0x95, 0x73, 0x47, 0xE3, 0x80, 0x94, 0x53, + 0xE3, 0x80, 0x95, 0x48, 0x28, 0xE1, 0x84, 0x80, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + // Bytes 2740 - 277f + 0x82, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, + // Bytes 2780 - 27bf + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x72, 0x61, 0x64, 0xE2, 0x88, + // Bytes 27c0 - 27ff + 0x95, 0x73, 0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83, + 0xD8, 0xA8, 0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9, + 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1, + 0xD8, 0xB3, 0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8, + 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48, + 0xD8, 0xB5, 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85, + 0x48, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, + 0x87, 0x48, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, + // Bytes 2800 - 283f + 0xD8, 0xAF, 0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, + 0x84, 0xD9, 0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2, + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80, + 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49, + 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0x49, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, + 0xE2, 0x88, 0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4, + 0xB8, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, + // Bytes 2840 - 287f + 0x94, 0xE4, 0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49, + 0xE3, 0x80, 0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80, + 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89, + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, + 0x89, 0x93, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, + 0x94, 0xE6, 0x95, 0x97, 0xE3, 0x80, 0x95, 0x49, + 0xE3, 0x80, 0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80, + 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9, + // Bytes 2880 - 28bf + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, + 0x9B, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82, + 0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, + 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, + 0x81, 0x49, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, + 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3, + 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, + 0xAA, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49, + // Bytes 28c0 - 28ff + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xAA, 0x49, 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3, + 0x83, 0xAB, 0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82, + 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, + 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, + 0x88, 0x49, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, + 0xE3, 0x82, 0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3, + // Bytes 2900 - 293f + 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, + 0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x49, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0x84, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x9A, 0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83, + 0x95, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49, + 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, + // Bytes 2940 - 297f + 0xBD, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, + 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49, + 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xAB, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, + 0xE3, 0x83, 0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3, + 0x83, 0xAB, 0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83, + // Bytes 2980 - 29bf + 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, + 0xE3, 0x83, 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, + 0xB3, 0x49, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, + 0xE3, 0x83, 0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2, + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x4C, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82, + 0xA2, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, + // Bytes 29c0 - 29ff + 0x82, 0xA1, 0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83, + 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, + 0x9E, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3, + 0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, + 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, + 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, + 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, + 0x83, 0xA0, 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAD, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C, + 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82, + // Bytes 2a40 - 2a7f + 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, + 0xB9, 0x4C, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF, + 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0xA3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3, + // Bytes 2a80 - 2abf + 0x83, 0xBC, 0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3, + 0x83, 0x92, 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xAB, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E, + 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAD, 0x4C, 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, + 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, + 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3, + 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, + 0x4C, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0, + 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7, + 0xA4, 0xBE, 0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1, + // Bytes 2b00 - 2b3f + 0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE, + 0x29, 0x4F, 0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8, + 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, + 0x87, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x88, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, + 0xA2, 0x4F, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, + // Bytes 2b40 - 2b7f + 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4F, 0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xA0, 0x4F, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83, + 0xAB, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF, + 0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAB, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, + // Bytes 2b80 - 2bbf + 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, + 0x88, 0x4F, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3, + 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83, + 0xB3, 0x4F, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83, + 0xB3, 0x4F, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xAB, 0x51, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, + // Bytes 2bc0 - 2bff + 0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1, + 0x86, 0xAB, 0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3, + 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0xA0, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, + 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + // Bytes 2c00 - 2c3f + 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, + 0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3, + 0x83, 0xAD, 0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3, + 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83, + // Bytes 2c40 - 2c7f + 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, + 0x82, 0xB9, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, + 0x52, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, + 0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, + 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3, + 0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, + // Bytes 2c80 - 2cbf + 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xB3, 0x61, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, + 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, + 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, + 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, + 0x84, 0xD9, 0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0, + 0xA6, 0xBE, 0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0, + 0xA7, 0x97, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, + // Bytes 2cc0 - 2cff + 0xAC, 0xBE, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, + 0xAD, 0x96, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, + 0xAD, 0x97, 0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0, + 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, + 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, + 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0, + 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0, + 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, + // Bytes 2d00 - 2d3f + 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, + 0xB3, 0x96, 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, + 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, + 0xB5, 0x97, 0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0, + 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x9F, 0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1, + 0x80, 0xAE, 0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1, + 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1, + // Bytes 2d40 - 2d7f + 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1, + 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1, + 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1, + 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1, + 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1, + 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1, + 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1, + 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1, + // Bytes 2d80 - 2dbf + 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1, + 0xAC, 0xB5, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1, + 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, + 0x84, 0xB2, 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, + 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE, + 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, + 0x8D, 0x97, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, + 0xF0, 0x91, 0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91, + // Bytes 2dc0 - 2dff + 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08, + 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD, + 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91, + 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9, + 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91, + 0xA4, 0xB5, 0xF0, 0x91, 0xA4, 0xB0, 0x01, 0x09, + 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, 0xB3, + 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, + // Bytes 2e00 - 2e3f + 0x8F, 0xE0, 0xB7, 0x8A, 0x16, 0x44, 0x44, 0x5A, + 0xCC, 0x8C, 0xCD, 0x44, 0x44, 0x7A, 0xCC, 0x8C, + 0xCD, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xCD, 0x46, + 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x46, + 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xCD, 0x46, + 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x46, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, 0x46, + 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, 0x46, + // Bytes 2e40 - 2e7f + 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, 0x46, + 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, 0x46, + 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, 0x46, + 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, 0x46, + 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, 0x46, + 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, 0x46, + 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, 0x46, + 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, 0x46, + // Bytes 2e80 - 2ebf + 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, 0x46, + 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, 0x46, + 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, 0x46, + 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, 0x46, + 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, 0x49, + 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0x11, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, 0x85, + 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, 0x01, + // Bytes 2ec0 - 2eff + 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, + 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x4C, 0xE3, + 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x9B, + 0xE3, 0x82, 0x9A, 0x11, 0x4C, 0xE3, 0x83, 0xA4, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82, + 0x99, 0x11, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, 0x85, + 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, 0xE1, + 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, 0xE3, + // Bytes 2f00 - 2f3f + 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF, + 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x82, 0xB7, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, + 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, + 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x52, + // Bytes 2f40 - 2f7f + 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x11, 0x52, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x86, + 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, 0x86, + 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, 0x03, + 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, 0xB8, + // Bytes 2f80 - 2fbf + 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, 0x41, + 0xCC, 0x80, 0xCD, 0x03, 0x41, 0xCC, 0x81, 0xCD, + 0x03, 0x41, 0xCC, 0x83, 0xCD, 0x03, 0x41, 0xCC, + 0x84, 0xCD, 0x03, 0x41, 0xCC, 0x89, 0xCD, 0x03, + 0x41, 0xCC, 0x8C, 0xCD, 0x03, 0x41, 0xCC, 0x8F, + 0xCD, 0x03, 0x41, 0xCC, 0x91, 0xCD, 0x03, 0x41, + 0xCC, 0xA5, 0xB9, 0x03, 0x41, 0xCC, 0xA8, 0xA9, + 0x03, 0x42, 0xCC, 0x87, 0xCD, 0x03, 0x42, 0xCC, + // Bytes 2fc0 - 2fff + 0xA3, 0xB9, 0x03, 0x42, 0xCC, 0xB1, 0xB9, 0x03, + 0x43, 0xCC, 0x81, 0xCD, 0x03, 0x43, 0xCC, 0x82, + 0xCD, 0x03, 0x43, 0xCC, 0x87, 0xCD, 0x03, 0x43, + 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC, 0x87, 0xCD, + 0x03, 0x44, 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC, + 0xA3, 0xB9, 0x03, 0x44, 0xCC, 0xA7, 0xA9, 0x03, + 0x44, 0xCC, 0xAD, 0xB9, 0x03, 0x44, 0xCC, 0xB1, + 0xB9, 0x03, 0x45, 0xCC, 0x80, 0xCD, 0x03, 0x45, + // Bytes 3000 - 303f + 0xCC, 0x81, 0xCD, 0x03, 0x45, 0xCC, 0x83, 0xCD, + 0x03, 0x45, 0xCC, 0x86, 0xCD, 0x03, 0x45, 0xCC, + 0x87, 0xCD, 0x03, 0x45, 0xCC, 0x88, 0xCD, 0x03, + 0x45, 0xCC, 0x89, 0xCD, 0x03, 0x45, 0xCC, 0x8C, + 0xCD, 0x03, 0x45, 0xCC, 0x8F, 0xCD, 0x03, 0x45, + 0xCC, 0x91, 0xCD, 0x03, 0x45, 0xCC, 0xA8, 0xA9, + 0x03, 0x45, 0xCC, 0xAD, 0xB9, 0x03, 0x45, 0xCC, + 0xB0, 0xB9, 0x03, 0x46, 0xCC, 0x87, 0xCD, 0x03, + // Bytes 3040 - 307f + 0x47, 0xCC, 0x81, 0xCD, 0x03, 0x47, 0xCC, 0x82, + 0xCD, 0x03, 0x47, 0xCC, 0x84, 0xCD, 0x03, 0x47, + 0xCC, 0x86, 0xCD, 0x03, 0x47, 0xCC, 0x87, 0xCD, + 0x03, 0x47, 0xCC, 0x8C, 0xCD, 0x03, 0x47, 0xCC, + 0xA7, 0xA9, 0x03, 0x48, 0xCC, 0x82, 0xCD, 0x03, + 0x48, 0xCC, 0x87, 0xCD, 0x03, 0x48, 0xCC, 0x88, + 0xCD, 0x03, 0x48, 0xCC, 0x8C, 0xCD, 0x03, 0x48, + 0xCC, 0xA3, 0xB9, 0x03, 0x48, 0xCC, 0xA7, 0xA9, + // Bytes 3080 - 30bf + 0x03, 0x48, 0xCC, 0xAE, 0xB9, 0x03, 0x49, 0xCC, + 0x80, 0xCD, 0x03, 0x49, 0xCC, 0x81, 0xCD, 0x03, + 0x49, 0xCC, 0x82, 0xCD, 0x03, 0x49, 0xCC, 0x83, + 0xCD, 0x03, 0x49, 0xCC, 0x84, 0xCD, 0x03, 0x49, + 0xCC, 0x86, 0xCD, 0x03, 0x49, 0xCC, 0x87, 0xCD, + 0x03, 0x49, 0xCC, 0x89, 0xCD, 0x03, 0x49, 0xCC, + 0x8C, 0xCD, 0x03, 0x49, 0xCC, 0x8F, 0xCD, 0x03, + 0x49, 0xCC, 0x91, 0xCD, 0x03, 0x49, 0xCC, 0xA3, + // Bytes 30c0 - 30ff + 0xB9, 0x03, 0x49, 0xCC, 0xA8, 0xA9, 0x03, 0x49, + 0xCC, 0xB0, 0xB9, 0x03, 0x4A, 0xCC, 0x82, 0xCD, + 0x03, 0x4B, 0xCC, 0x81, 0xCD, 0x03, 0x4B, 0xCC, + 0x8C, 0xCD, 0x03, 0x4B, 0xCC, 0xA3, 0xB9, 0x03, + 0x4B, 0xCC, 0xA7, 0xA9, 0x03, 0x4B, 0xCC, 0xB1, + 0xB9, 0x03, 0x4C, 0xCC, 0x81, 0xCD, 0x03, 0x4C, + 0xCC, 0x8C, 0xCD, 0x03, 0x4C, 0xCC, 0xA7, 0xA9, + 0x03, 0x4C, 0xCC, 0xAD, 0xB9, 0x03, 0x4C, 0xCC, + // Bytes 3100 - 313f + 0xB1, 0xB9, 0x03, 0x4D, 0xCC, 0x81, 0xCD, 0x03, + 0x4D, 0xCC, 0x87, 0xCD, 0x03, 0x4D, 0xCC, 0xA3, + 0xB9, 0x03, 0x4E, 0xCC, 0x80, 0xCD, 0x03, 0x4E, + 0xCC, 0x81, 0xCD, 0x03, 0x4E, 0xCC, 0x83, 0xCD, + 0x03, 0x4E, 0xCC, 0x87, 0xCD, 0x03, 0x4E, 0xCC, + 0x8C, 0xCD, 0x03, 0x4E, 0xCC, 0xA3, 0xB9, 0x03, + 0x4E, 0xCC, 0xA7, 0xA9, 0x03, 0x4E, 0xCC, 0xAD, + 0xB9, 0x03, 0x4E, 0xCC, 0xB1, 0xB9, 0x03, 0x4F, + // Bytes 3140 - 317f + 0xCC, 0x80, 0xCD, 0x03, 0x4F, 0xCC, 0x81, 0xCD, + 0x03, 0x4F, 0xCC, 0x86, 0xCD, 0x03, 0x4F, 0xCC, + 0x89, 0xCD, 0x03, 0x4F, 0xCC, 0x8B, 0xCD, 0x03, + 0x4F, 0xCC, 0x8C, 0xCD, 0x03, 0x4F, 0xCC, 0x8F, + 0xCD, 0x03, 0x4F, 0xCC, 0x91, 0xCD, 0x03, 0x50, + 0xCC, 0x81, 0xCD, 0x03, 0x50, 0xCC, 0x87, 0xCD, + 0x03, 0x52, 0xCC, 0x81, 0xCD, 0x03, 0x52, 0xCC, + 0x87, 0xCD, 0x03, 0x52, 0xCC, 0x8C, 0xCD, 0x03, + // Bytes 3180 - 31bf + 0x52, 0xCC, 0x8F, 0xCD, 0x03, 0x52, 0xCC, 0x91, + 0xCD, 0x03, 0x52, 0xCC, 0xA7, 0xA9, 0x03, 0x52, + 0xCC, 0xB1, 0xB9, 0x03, 0x53, 0xCC, 0x82, 0xCD, + 0x03, 0x53, 0xCC, 0x87, 0xCD, 0x03, 0x53, 0xCC, + 0xA6, 0xB9, 0x03, 0x53, 0xCC, 0xA7, 0xA9, 0x03, + 0x54, 0xCC, 0x87, 0xCD, 0x03, 0x54, 0xCC, 0x8C, + 0xCD, 0x03, 0x54, 0xCC, 0xA3, 0xB9, 0x03, 0x54, + 0xCC, 0xA6, 0xB9, 0x03, 0x54, 0xCC, 0xA7, 0xA9, + // Bytes 31c0 - 31ff + 0x03, 0x54, 0xCC, 0xAD, 0xB9, 0x03, 0x54, 0xCC, + 0xB1, 0xB9, 0x03, 0x55, 0xCC, 0x80, 0xCD, 0x03, + 0x55, 0xCC, 0x81, 0xCD, 0x03, 0x55, 0xCC, 0x82, + 0xCD, 0x03, 0x55, 0xCC, 0x86, 0xCD, 0x03, 0x55, + 0xCC, 0x89, 0xCD, 0x03, 0x55, 0xCC, 0x8A, 0xCD, + 0x03, 0x55, 0xCC, 0x8B, 0xCD, 0x03, 0x55, 0xCC, + 0x8C, 0xCD, 0x03, 0x55, 0xCC, 0x8F, 0xCD, 0x03, + 0x55, 0xCC, 0x91, 0xCD, 0x03, 0x55, 0xCC, 0xA3, + // Bytes 3200 - 323f + 0xB9, 0x03, 0x55, 0xCC, 0xA4, 0xB9, 0x03, 0x55, + 0xCC, 0xA8, 0xA9, 0x03, 0x55, 0xCC, 0xAD, 0xB9, + 0x03, 0x55, 0xCC, 0xB0, 0xB9, 0x03, 0x56, 0xCC, + 0x83, 0xCD, 0x03, 0x56, 0xCC, 0xA3, 0xB9, 0x03, + 0x57, 0xCC, 0x80, 0xCD, 0x03, 0x57, 0xCC, 0x81, + 0xCD, 0x03, 0x57, 0xCC, 0x82, 0xCD, 0x03, 0x57, + 0xCC, 0x87, 0xCD, 0x03, 0x57, 0xCC, 0x88, 0xCD, + 0x03, 0x57, 0xCC, 0xA3, 0xB9, 0x03, 0x58, 0xCC, + // Bytes 3240 - 327f + 0x87, 0xCD, 0x03, 0x58, 0xCC, 0x88, 0xCD, 0x03, + 0x59, 0xCC, 0x80, 0xCD, 0x03, 0x59, 0xCC, 0x81, + 0xCD, 0x03, 0x59, 0xCC, 0x82, 0xCD, 0x03, 0x59, + 0xCC, 0x83, 0xCD, 0x03, 0x59, 0xCC, 0x84, 0xCD, + 0x03, 0x59, 0xCC, 0x87, 0xCD, 0x03, 0x59, 0xCC, + 0x88, 0xCD, 0x03, 0x59, 0xCC, 0x89, 0xCD, 0x03, + 0x59, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC, 0x81, + 0xCD, 0x03, 0x5A, 0xCC, 0x82, 0xCD, 0x03, 0x5A, + // Bytes 3280 - 32bf + 0xCC, 0x87, 0xCD, 0x03, 0x5A, 0xCC, 0x8C, 0xCD, + 0x03, 0x5A, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC, + 0xB1, 0xB9, 0x03, 0x61, 0xCC, 0x80, 0xCD, 0x03, + 0x61, 0xCC, 0x81, 0xCD, 0x03, 0x61, 0xCC, 0x83, + 0xCD, 0x03, 0x61, 0xCC, 0x84, 0xCD, 0x03, 0x61, + 0xCC, 0x89, 0xCD, 0x03, 0x61, 0xCC, 0x8C, 0xCD, + 0x03, 0x61, 0xCC, 0x8F, 0xCD, 0x03, 0x61, 0xCC, + 0x91, 0xCD, 0x03, 0x61, 0xCC, 0xA5, 0xB9, 0x03, + // Bytes 32c0 - 32ff + 0x61, 0xCC, 0xA8, 0xA9, 0x03, 0x62, 0xCC, 0x87, + 0xCD, 0x03, 0x62, 0xCC, 0xA3, 0xB9, 0x03, 0x62, + 0xCC, 0xB1, 0xB9, 0x03, 0x63, 0xCC, 0x81, 0xCD, + 0x03, 0x63, 0xCC, 0x82, 0xCD, 0x03, 0x63, 0xCC, + 0x87, 0xCD, 0x03, 0x63, 0xCC, 0x8C, 0xCD, 0x03, + 0x64, 0xCC, 0x87, 0xCD, 0x03, 0x64, 0xCC, 0x8C, + 0xCD, 0x03, 0x64, 0xCC, 0xA3, 0xB9, 0x03, 0x64, + 0xCC, 0xA7, 0xA9, 0x03, 0x64, 0xCC, 0xAD, 0xB9, + // Bytes 3300 - 333f + 0x03, 0x64, 0xCC, 0xB1, 0xB9, 0x03, 0x65, 0xCC, + 0x80, 0xCD, 0x03, 0x65, 0xCC, 0x81, 0xCD, 0x03, + 0x65, 0xCC, 0x83, 0xCD, 0x03, 0x65, 0xCC, 0x86, + 0xCD, 0x03, 0x65, 0xCC, 0x87, 0xCD, 0x03, 0x65, + 0xCC, 0x88, 0xCD, 0x03, 0x65, 0xCC, 0x89, 0xCD, + 0x03, 0x65, 0xCC, 0x8C, 0xCD, 0x03, 0x65, 0xCC, + 0x8F, 0xCD, 0x03, 0x65, 0xCC, 0x91, 0xCD, 0x03, + 0x65, 0xCC, 0xA8, 0xA9, 0x03, 0x65, 0xCC, 0xAD, + // Bytes 3340 - 337f + 0xB9, 0x03, 0x65, 0xCC, 0xB0, 0xB9, 0x03, 0x66, + 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x81, 0xCD, + 0x03, 0x67, 0xCC, 0x82, 0xCD, 0x03, 0x67, 0xCC, + 0x84, 0xCD, 0x03, 0x67, 0xCC, 0x86, 0xCD, 0x03, + 0x67, 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x8C, + 0xCD, 0x03, 0x67, 0xCC, 0xA7, 0xA9, 0x03, 0x68, + 0xCC, 0x82, 0xCD, 0x03, 0x68, 0xCC, 0x87, 0xCD, + 0x03, 0x68, 0xCC, 0x88, 0xCD, 0x03, 0x68, 0xCC, + // Bytes 3380 - 33bf + 0x8C, 0xCD, 0x03, 0x68, 0xCC, 0xA3, 0xB9, 0x03, + 0x68, 0xCC, 0xA7, 0xA9, 0x03, 0x68, 0xCC, 0xAE, + 0xB9, 0x03, 0x68, 0xCC, 0xB1, 0xB9, 0x03, 0x69, + 0xCC, 0x80, 0xCD, 0x03, 0x69, 0xCC, 0x81, 0xCD, + 0x03, 0x69, 0xCC, 0x82, 0xCD, 0x03, 0x69, 0xCC, + 0x83, 0xCD, 0x03, 0x69, 0xCC, 0x84, 0xCD, 0x03, + 0x69, 0xCC, 0x86, 0xCD, 0x03, 0x69, 0xCC, 0x89, + 0xCD, 0x03, 0x69, 0xCC, 0x8C, 0xCD, 0x03, 0x69, + // Bytes 33c0 - 33ff + 0xCC, 0x8F, 0xCD, 0x03, 0x69, 0xCC, 0x91, 0xCD, + 0x03, 0x69, 0xCC, 0xA3, 0xB9, 0x03, 0x69, 0xCC, + 0xA8, 0xA9, 0x03, 0x69, 0xCC, 0xB0, 0xB9, 0x03, + 0x6A, 0xCC, 0x82, 0xCD, 0x03, 0x6A, 0xCC, 0x8C, + 0xCD, 0x03, 0x6B, 0xCC, 0x81, 0xCD, 0x03, 0x6B, + 0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC, 0xA3, 0xB9, + 0x03, 0x6B, 0xCC, 0xA7, 0xA9, 0x03, 0x6B, 0xCC, + 0xB1, 0xB9, 0x03, 0x6C, 0xCC, 0x81, 0xCD, 0x03, + // Bytes 3400 - 343f + 0x6C, 0xCC, 0x8C, 0xCD, 0x03, 0x6C, 0xCC, 0xA7, + 0xA9, 0x03, 0x6C, 0xCC, 0xAD, 0xB9, 0x03, 0x6C, + 0xCC, 0xB1, 0xB9, 0x03, 0x6D, 0xCC, 0x81, 0xCD, + 0x03, 0x6D, 0xCC, 0x87, 0xCD, 0x03, 0x6D, 0xCC, + 0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0x80, 0xCD, 0x03, + 0x6E, 0xCC, 0x81, 0xCD, 0x03, 0x6E, 0xCC, 0x83, + 0xCD, 0x03, 0x6E, 0xCC, 0x87, 0xCD, 0x03, 0x6E, + 0xCC, 0x8C, 0xCD, 0x03, 0x6E, 0xCC, 0xA3, 0xB9, + // Bytes 3440 - 347f + 0x03, 0x6E, 0xCC, 0xA7, 0xA9, 0x03, 0x6E, 0xCC, + 0xAD, 0xB9, 0x03, 0x6E, 0xCC, 0xB1, 0xB9, 0x03, + 0x6F, 0xCC, 0x80, 0xCD, 0x03, 0x6F, 0xCC, 0x81, + 0xCD, 0x03, 0x6F, 0xCC, 0x86, 0xCD, 0x03, 0x6F, + 0xCC, 0x89, 0xCD, 0x03, 0x6F, 0xCC, 0x8B, 0xCD, + 0x03, 0x6F, 0xCC, 0x8C, 0xCD, 0x03, 0x6F, 0xCC, + 0x8F, 0xCD, 0x03, 0x6F, 0xCC, 0x91, 0xCD, 0x03, + 0x70, 0xCC, 0x81, 0xCD, 0x03, 0x70, 0xCC, 0x87, + // Bytes 3480 - 34bf + 0xCD, 0x03, 0x72, 0xCC, 0x81, 0xCD, 0x03, 0x72, + 0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC, 0x8C, 0xCD, + 0x03, 0x72, 0xCC, 0x8F, 0xCD, 0x03, 0x72, 0xCC, + 0x91, 0xCD, 0x03, 0x72, 0xCC, 0xA7, 0xA9, 0x03, + 0x72, 0xCC, 0xB1, 0xB9, 0x03, 0x73, 0xCC, 0x82, + 0xCD, 0x03, 0x73, 0xCC, 0x87, 0xCD, 0x03, 0x73, + 0xCC, 0xA6, 0xB9, 0x03, 0x73, 0xCC, 0xA7, 0xA9, + 0x03, 0x74, 0xCC, 0x87, 0xCD, 0x03, 0x74, 0xCC, + // Bytes 34c0 - 34ff + 0x88, 0xCD, 0x03, 0x74, 0xCC, 0x8C, 0xCD, 0x03, + 0x74, 0xCC, 0xA3, 0xB9, 0x03, 0x74, 0xCC, 0xA6, + 0xB9, 0x03, 0x74, 0xCC, 0xA7, 0xA9, 0x03, 0x74, + 0xCC, 0xAD, 0xB9, 0x03, 0x74, 0xCC, 0xB1, 0xB9, + 0x03, 0x75, 0xCC, 0x80, 0xCD, 0x03, 0x75, 0xCC, + 0x81, 0xCD, 0x03, 0x75, 0xCC, 0x82, 0xCD, 0x03, + 0x75, 0xCC, 0x86, 0xCD, 0x03, 0x75, 0xCC, 0x89, + 0xCD, 0x03, 0x75, 0xCC, 0x8A, 0xCD, 0x03, 0x75, + // Bytes 3500 - 353f + 0xCC, 0x8B, 0xCD, 0x03, 0x75, 0xCC, 0x8C, 0xCD, + 0x03, 0x75, 0xCC, 0x8F, 0xCD, 0x03, 0x75, 0xCC, + 0x91, 0xCD, 0x03, 0x75, 0xCC, 0xA3, 0xB9, 0x03, + 0x75, 0xCC, 0xA4, 0xB9, 0x03, 0x75, 0xCC, 0xA8, + 0xA9, 0x03, 0x75, 0xCC, 0xAD, 0xB9, 0x03, 0x75, + 0xCC, 0xB0, 0xB9, 0x03, 0x76, 0xCC, 0x83, 0xCD, + 0x03, 0x76, 0xCC, 0xA3, 0xB9, 0x03, 0x77, 0xCC, + 0x80, 0xCD, 0x03, 0x77, 0xCC, 0x81, 0xCD, 0x03, + // Bytes 3540 - 357f + 0x77, 0xCC, 0x82, 0xCD, 0x03, 0x77, 0xCC, 0x87, + 0xCD, 0x03, 0x77, 0xCC, 0x88, 0xCD, 0x03, 0x77, + 0xCC, 0x8A, 0xCD, 0x03, 0x77, 0xCC, 0xA3, 0xB9, + 0x03, 0x78, 0xCC, 0x87, 0xCD, 0x03, 0x78, 0xCC, + 0x88, 0xCD, 0x03, 0x79, 0xCC, 0x80, 0xCD, 0x03, + 0x79, 0xCC, 0x81, 0xCD, 0x03, 0x79, 0xCC, 0x82, + 0xCD, 0x03, 0x79, 0xCC, 0x83, 0xCD, 0x03, 0x79, + 0xCC, 0x84, 0xCD, 0x03, 0x79, 0xCC, 0x87, 0xCD, + // Bytes 3580 - 35bf + 0x03, 0x79, 0xCC, 0x88, 0xCD, 0x03, 0x79, 0xCC, + 0x89, 0xCD, 0x03, 0x79, 0xCC, 0x8A, 0xCD, 0x03, + 0x79, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC, 0x81, + 0xCD, 0x03, 0x7A, 0xCC, 0x82, 0xCD, 0x03, 0x7A, + 0xCC, 0x87, 0xCD, 0x03, 0x7A, 0xCC, 0x8C, 0xCD, + 0x03, 0x7A, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC, + 0xB1, 0xB9, 0x04, 0xC2, 0xA8, 0xCC, 0x80, 0xCE, + 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x04, 0xC2, + // Bytes 35c0 - 35ff + 0xA8, 0xCD, 0x82, 0xCE, 0x04, 0xC3, 0x86, 0xCC, + 0x81, 0xCD, 0x04, 0xC3, 0x86, 0xCC, 0x84, 0xCD, + 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xCD, 0x04, 0xC3, + 0xA6, 0xCC, 0x81, 0xCD, 0x04, 0xC3, 0xA6, 0xCC, + 0x84, 0xCD, 0x04, 0xC3, 0xB8, 0xCC, 0x81, 0xCD, + 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xCD, 0x04, 0xC6, + 0xB7, 0xCC, 0x8C, 0xCD, 0x04, 0xCA, 0x92, 0xCC, + 0x8C, 0xCD, 0x04, 0xCE, 0x91, 0xCC, 0x80, 0xCD, + // Bytes 3600 - 363f + 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xCD, 0x04, 0xCE, + 0x91, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0x91, 0xCC, + 0x86, 0xCD, 0x04, 0xCE, 0x91, 0xCD, 0x85, 0xDD, + 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xCD, 0x04, 0xCE, + 0x95, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0x97, 0xCC, + 0x80, 0xCD, 0x04, 0xCE, 0x97, 0xCC, 0x81, 0xCD, + 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xDD, 0x04, 0xCE, + 0x99, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x99, 0xCC, + // Bytes 3640 - 367f + 0x81, 0xCD, 0x04, 0xCE, 0x99, 0xCC, 0x84, 0xCD, + 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xCD, 0x04, 0xCE, + 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0x9F, 0xCC, + 0x80, 0xCD, 0x04, 0xCE, 0x9F, 0xCC, 0x81, 0xCD, + 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xCD, 0x04, 0xCE, + 0xA5, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, + 0x81, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, 0x84, 0xCD, + 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xCD, 0x04, 0xCE, + // Bytes 3680 - 36bf + 0xA5, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0xA9, 0xCC, + 0x80, 0xCD, 0x04, 0xCE, 0xA9, 0xCC, 0x81, 0xCD, + 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xDD, 0x04, 0xCE, + 0xB1, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0xB1, 0xCC, + 0x86, 0xCD, 0x04, 0xCE, 0xB1, 0xCD, 0x85, 0xDD, + 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xCD, 0x04, 0xCE, + 0xB5, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0xB7, 0xCD, + 0x85, 0xDD, 0x04, 0xCE, 0xB9, 0xCC, 0x80, 0xCD, + // Bytes 36c0 - 36ff + 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x04, 0xCE, + 0xB9, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0xB9, 0xCC, + 0x86, 0xCD, 0x04, 0xCE, 0xB9, 0xCD, 0x82, 0xCD, + 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xCD, 0x04, 0xCE, + 0xBF, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x81, 0xCC, + 0x93, 0xCD, 0x04, 0xCF, 0x81, 0xCC, 0x94, 0xCD, + 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xCD, 0x04, 0xCF, + 0x85, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x85, 0xCC, + // Bytes 3700 - 373f + 0x84, 0xCD, 0x04, 0xCF, 0x85, 0xCC, 0x86, 0xCD, + 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xCD, 0x04, 0xCF, + 0x89, 0xCD, 0x85, 0xDD, 0x04, 0xCF, 0x92, 0xCC, + 0x81, 0xCD, 0x04, 0xCF, 0x92, 0xCC, 0x88, 0xCD, + 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xCD, 0x04, 0xD0, + 0x90, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x90, 0xCC, + 0x88, 0xCD, 0x04, 0xD0, 0x93, 0xCC, 0x81, 0xCD, + 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xCD, 0x04, 0xD0, + // Bytes 3740 - 377f + 0x95, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x95, 0xCC, + 0x88, 0xCD, 0x04, 0xD0, 0x96, 0xCC, 0x86, 0xCD, + 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD0, + 0x97, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x98, 0xCC, + 0x80, 0xCD, 0x04, 0xD0, 0x98, 0xCC, 0x84, 0xCD, + 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xCD, 0x04, 0xD0, + 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x9A, 0xCC, + 0x81, 0xCD, 0x04, 0xD0, 0x9E, 0xCC, 0x88, 0xCD, + // Bytes 3780 - 37bf + 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xCD, 0x04, 0xD0, + 0xA3, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, + 0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, 0xCD, + 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xCD, 0x04, 0xD0, + 0xAB, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xAD, 0xCC, + 0x88, 0xCD, 0x04, 0xD0, 0xB0, 0xCC, 0x86, 0xCD, + 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xCD, 0x04, 0xD0, + 0xB3, 0xCC, 0x81, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, + // Bytes 37c0 - 37ff + 0x80, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, 0x86, 0xCD, + 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xCD, 0x04, 0xD0, + 0xB6, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xB6, 0xCC, + 0x88, 0xCD, 0x04, 0xD0, 0xB7, 0xCC, 0x88, 0xCD, + 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xCD, 0x04, 0xD0, + 0xB8, 0xCC, 0x84, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, + 0x86, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, 0x88, 0xCD, + 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xCD, 0x04, 0xD0, + // Bytes 3800 - 383f + 0xBE, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0x83, 0xCC, + 0x84, 0xCD, 0x04, 0xD1, 0x83, 0xCC, 0x86, 0xCD, + 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xCD, 0x04, 0xD1, + 0x83, 0xCC, 0x8B, 0xCD, 0x04, 0xD1, 0x87, 0xCC, + 0x88, 0xCD, 0x04, 0xD1, 0x8B, 0xCC, 0x88, 0xCD, + 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xCD, 0x04, 0xD1, + 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0xB4, 0xCC, + 0x8F, 0xCD, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, 0xCD, + // Bytes 3840 - 387f + 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD3, + 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xD3, 0xA8, 0xCC, + 0x88, 0xCD, 0x04, 0xD3, 0xA9, 0xCC, 0x88, 0xCD, + 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x04, 0xD8, + 0xA7, 0xD9, 0x94, 0xCD, 0x04, 0xD8, 0xA7, 0xD9, + 0x95, 0xB9, 0x04, 0xD9, 0x88, 0xD9, 0x94, 0xCD, + 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, 0x04, 0xDB, + 0x81, 0xD9, 0x94, 0xCD, 0x04, 0xDB, 0x92, 0xD9, + // Bytes 3880 - 38bf + 0x94, 0xCD, 0x04, 0xDB, 0x95, 0xD9, 0x94, 0xCD, + 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, + 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x41, + 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x41, 0xCC, + 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x41, 0xCC, 0x86, + 0xCC, 0x80, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, + 0x81, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x83, + 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, 0xCE, + // Bytes 38c0 - 38ff + 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, + 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x41, + 0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x41, 0xCC, + 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x41, 0xCC, 0xA3, + 0xCC, 0x86, 0xCE, 0x05, 0x43, 0xCC, 0xA7, 0xCC, + 0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x80, + 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, 0xCE, + 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, + // Bytes 3900 - 393f + 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x45, + 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x45, 0xCC, + 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x45, 0xCC, 0xA3, + 0xCC, 0x82, 0xCE, 0x05, 0x45, 0xCC, 0xA7, 0xCC, + 0x86, 0xCE, 0x05, 0x49, 0xCC, 0x88, 0xCC, 0x81, + 0xCE, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, + 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, + 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x4F, + // Bytes 3940 - 397f + 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x4F, 0xCC, + 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x4F, 0xCC, 0x83, + 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x83, 0xCC, + 0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x88, + 0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, 0xCE, + 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, + 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x4F, + 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x4F, 0xCC, + // Bytes 3980 - 39bf + 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, + 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, + 0x83, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x89, + 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, + 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, + 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x52, + 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x53, 0xCC, + 0x81, 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0x8C, + // Bytes 39c0 - 39ff + 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0xA3, 0xCC, + 0x87, 0xCE, 0x05, 0x55, 0xCC, 0x83, 0xCC, 0x81, + 0xCE, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, 0xCE, + 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x05, + 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x55, + 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x55, 0xCC, + 0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x55, 0xCC, 0x9B, + 0xCC, 0x80, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, + // Bytes 3a00 - 3a3f + 0x81, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x83, + 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, 0xCE, + 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05, + 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, 0x61, + 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, + 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x61, 0xCC, 0x82, + 0xCC, 0x89, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, + 0x80, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x81, + // Bytes 3a40 - 3a7f + 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, 0xCE, + 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCE, 0x05, + 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x61, + 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x61, 0xCC, + 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, 0xA3, + 0xCC, 0x82, 0xCE, 0x05, 0x61, 0xCC, 0xA3, 0xCC, + 0x86, 0xCE, 0x05, 0x63, 0xCC, 0xA7, 0xCC, 0x81, + 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, 0xCE, + // Bytes 3a80 - 3abf + 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, + 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x65, + 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x65, 0xCC, + 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x65, 0xCC, 0x84, + 0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC, 0xA3, 0xCC, + 0x82, 0xCE, 0x05, 0x65, 0xCC, 0xA7, 0xCC, 0x86, + 0xCE, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, 0xCE, + 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, + // Bytes 3ac0 - 3aff + 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, 0x6F, + 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC, + 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x6F, 0xCC, 0x82, + 0xCC, 0x89, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, + 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x84, + 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xCE, + 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, + 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x6F, + // Bytes 3b00 - 3b3f + 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, + 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, + 0xCC, 0x80, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, + 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x83, + 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xCE, + 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05, + 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x6F, + 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x72, 0xCC, + // Bytes 3b40 - 3b7f + 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x73, 0xCC, 0x81, + 0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC, 0x8C, 0xCC, + 0x87, 0xCE, 0x05, 0x73, 0xCC, 0xA3, 0xCC, 0x87, + 0xCE, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, 0xCE, + 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCE, 0x05, + 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x05, 0x75, + 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x75, 0xCC, + 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x75, 0xCC, 0x88, + // Bytes 3b80 - 3bbf + 0xCC, 0x8C, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0x80, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x81, + 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xCE, + 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCE, 0x05, + 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05, 0xE1, + 0xBE, 0xBF, 0xCC, 0x80, 0xCE, 0x05, 0xE1, 0xBE, + 0xBF, 0xCC, 0x81, 0xCE, 0x05, 0xE1, 0xBE, 0xBF, + 0xCD, 0x82, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, + // Bytes 3bc0 - 3bff + 0x80, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, 0x81, + 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, 0xCE, + 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, + 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x92, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, 0xB8, + // Bytes 3c00 - 3c3f + 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, + 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x83, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, 0x05, + // Bytes 3c40 - 3c7f + 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB3, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3c80 - 3cbf + 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x83, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + // Bytes 3cc0 - 3cff + 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xAB, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, 0x06, + 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, + // Bytes 3d00 - 3d3f + 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, + 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, + 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, + // Bytes 3d40 - 3d7f + 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06, + 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, + 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06, + 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, + 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, + // Bytes 3d80 - 3dbf + 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, + 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06, + 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, + // Bytes 3dc0 - 3dff + 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, + 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, + 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06, + // Bytes 3e00 - 3e3f + 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06, + 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06, + 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06, + 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, + // Bytes 3e40 - 3e7f + 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06, + 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, + 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06, + 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, + 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, + 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, + // Bytes 3e80 - 3ebf + 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x06, + 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06, + 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06, + 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06, + 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06, + 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06, + 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06, + 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06, + // Bytes 3ec0 - 3eff + 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06, + 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06, + 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06, + 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06, + 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06, + 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06, + 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x0D, 0x06, + 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x0D, 0x06, + // Bytes 3f00 - 3f3f + 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x0D, 0x06, + 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x89, 0x06, + 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x15, 0x06, + 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x11, 0x06, + // Bytes 3f40 - 3f7f + 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x11, 0x06, + // Bytes 3f80 - 3fbf + 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x11, 0x06, + 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x11, 0x06, + 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06, + // Bytes 3fc0 - 3fff + 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x11, 0x06, + 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x11, 0x06, + 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x11, 0x06, + 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x06, + // Bytes 4000 - 403f + 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06, + // Bytes 4040 - 407f + 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x11, 0x06, + // Bytes 4080 - 40bf + 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x11, 0x06, + 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x11, 0x06, + 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x11, 0x06, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x11, 0x06, + // Bytes 40c0 - 40ff + 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06, + 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x08, + 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93, + // Bytes 4100 - 413f + 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + // Bytes 4140 - 417f + 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94, + 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, + 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, + // Bytes 4180 - 41bf + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80, + // Bytes 41c0 - 41ff + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94, + 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, + 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, + // Bytes 4200 - 423f + 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, + 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, + 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, + 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94, + // Bytes 4240 - 427f + 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, + 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, 0xBA, + 0x0D, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, 0x91, + 0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91, 0x82, 0xA5, + 0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x42, 0xC2, 0xB4, + 0x01, 0x43, 0x20, 0xCC, 0x81, 0xCD, 0x43, 0x20, + 0xCC, 0x83, 0xCD, 0x43, 0x20, 0xCC, 0x84, 0xCD, + // Bytes 4280 - 42bf + 0x43, 0x20, 0xCC, 0x85, 0xCD, 0x43, 0x20, 0xCC, + 0x86, 0xCD, 0x43, 0x20, 0xCC, 0x87, 0xCD, 0x43, + 0x20, 0xCC, 0x88, 0xCD, 0x43, 0x20, 0xCC, 0x8A, + 0xCD, 0x43, 0x20, 0xCC, 0x8B, 0xCD, 0x43, 0x20, + 0xCC, 0x93, 0xCD, 0x43, 0x20, 0xCC, 0x94, 0xCD, + 0x43, 0x20, 0xCC, 0xA7, 0xA9, 0x43, 0x20, 0xCC, + 0xA8, 0xA9, 0x43, 0x20, 0xCC, 0xB3, 0xB9, 0x43, + 0x20, 0xCD, 0x82, 0xCD, 0x43, 0x20, 0xCD, 0x85, + // Bytes 42c0 - 42ff + 0xDD, 0x43, 0x20, 0xD9, 0x8B, 0x5D, 0x43, 0x20, + 0xD9, 0x8C, 0x61, 0x43, 0x20, 0xD9, 0x8D, 0x65, + 0x43, 0x20, 0xD9, 0x8E, 0x69, 0x43, 0x20, 0xD9, + 0x8F, 0x6D, 0x43, 0x20, 0xD9, 0x90, 0x71, 0x43, + 0x20, 0xD9, 0x91, 0x75, 0x43, 0x20, 0xD9, 0x92, + 0x79, 0x43, 0x41, 0xCC, 0x8A, 0xCD, 0x43, 0x73, + 0xCC, 0x87, 0xCD, 0x44, 0x20, 0xE3, 0x82, 0x99, + 0x11, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x11, 0x44, + // Bytes 4300 - 433f + 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x44, 0xCE, 0x91, + 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x95, 0xCC, 0x81, + 0xCD, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xCD, 0x44, + 0xCE, 0x99, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x9F, + 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x81, + 0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xCD, 0x44, + 0xCE, 0xA9, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB1, + 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB5, 0xCC, 0x81, + // Bytes 4340 - 437f + 0xCD, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x44, + 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xBF, + 0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x85, 0xCC, 0x81, + 0xCD, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x44, + 0xD7, 0x90, 0xD6, 0xB7, 0x35, 0x44, 0xD7, 0x90, + 0xD6, 0xB8, 0x39, 0x44, 0xD7, 0x90, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x45, 0x44, + 0xD7, 0x91, 0xD6, 0xBF, 0x4D, 0x44, 0xD7, 0x92, + // Bytes 4380 - 43bf + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x93, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x45, 0x44, + 0xD7, 0x95, 0xD6, 0xB9, 0x3D, 0x44, 0xD7, 0x95, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x96, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x45, 0x44, + 0xD7, 0x99, 0xD6, 0xB4, 0x29, 0x44, 0xD7, 0x99, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9A, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x45, 0x44, + // Bytes 43c0 - 43ff + 0xD7, 0x9B, 0xD6, 0xBF, 0x4D, 0x44, 0xD7, 0x9C, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9E, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x45, 0x44, + 0xD7, 0xA1, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA3, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x4D, 0x44, + 0xD7, 0xA6, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA7, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA8, 0xD6, 0xBC, + // Bytes 4400 - 443f + 0x45, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x45, 0x44, + 0xD7, 0xA9, 0xD7, 0x81, 0x51, 0x44, 0xD7, 0xA9, + 0xD7, 0x82, 0x55, 0x44, 0xD7, 0xAA, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x35, 0x44, + 0xD8, 0xA7, 0xD9, 0x8B, 0x5D, 0x44, 0xD8, 0xA7, + 0xD9, 0x93, 0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x94, + 0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x44, + 0xD8, 0xB0, 0xD9, 0xB0, 0x7D, 0x44, 0xD8, 0xB1, + // Bytes 4440 - 447f + 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x80, 0xD9, 0x8B, + 0x5D, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x69, 0x44, + 0xD9, 0x80, 0xD9, 0x8F, 0x6D, 0x44, 0xD9, 0x80, + 0xD9, 0x90, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x91, + 0x75, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x79, 0x44, + 0xD9, 0x87, 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x88, + 0xD9, 0x94, 0xCD, 0x44, 0xD9, 0x89, 0xD9, 0xB0, + 0x7D, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, 0x44, + // Bytes 4480 - 44bf + 0xDB, 0x92, 0xD9, 0x94, 0xCD, 0x44, 0xDB, 0x95, + 0xD9, 0x94, 0xCD, 0x45, 0x20, 0xCC, 0x88, 0xCC, + 0x80, 0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x81, + 0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xCE, + 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x45, + 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x45, 0x20, + 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x45, 0x20, 0xCC, + 0x94, 0xCC, 0x80, 0xCE, 0x45, 0x20, 0xCC, 0x94, + // Bytes 44c0 - 44ff + 0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC, 0x94, 0xCD, + 0x82, 0xCE, 0x45, 0x20, 0xD9, 0x8C, 0xD9, 0x91, + 0x76, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, 0x76, + 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x76, 0x45, + 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x76, 0x45, 0x20, + 0xD9, 0x90, 0xD9, 0x91, 0x76, 0x45, 0x20, 0xD9, + 0x91, 0xD9, 0xB0, 0x7E, 0x45, 0xE2, 0xAB, 0x9D, + 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, 0x88, + // Bytes 4500 - 453f + 0xCC, 0x81, 0xCE, 0x46, 0xCF, 0x85, 0xCC, 0x88, + 0xCC, 0x81, 0xCE, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, + 0xD7, 0x81, 0x52, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, + 0xD7, 0x82, 0x56, 0x46, 0xD9, 0x80, 0xD9, 0x8E, + 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, 0xD9, 0x8F, + 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, 0xD9, 0x90, + 0xD9, 0x91, 0x76, 0x46, 0xE0, 0xA4, 0x95, 0xE0, + 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x96, 0xE0, + // Bytes 4540 - 457f + 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x97, 0xE0, + 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x9C, 0xE0, + 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xA1, 0xE0, + 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xA2, 0xE0, + 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xAB, 0xE0, + 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xAF, 0xE0, + 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xA1, 0xE0, + 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xA2, 0xE0, + // Bytes 4580 - 45bf + 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xAF, 0xE0, + 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x96, 0xE0, + 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x97, 0xE0, + 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x9C, 0xE0, + 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xAB, 0xE0, + 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xB2, 0xE0, + 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xB8, 0xE0, + 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, 0xA1, 0xE0, + // Bytes 45c0 - 45ff + 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, 0xA2, 0xE0, + 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xBE, 0xB2, 0xE0, + 0xBE, 0x80, 0xA1, 0x46, 0xE0, 0xBE, 0xB3, 0xE0, + 0xBE, 0x80, 0xA1, 0x46, 0xE3, 0x83, 0x86, 0xE3, + 0x82, 0x99, 0x11, 0x48, 0xF0, 0x9D, 0x85, 0x97, + 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48, 0xF0, 0x9D, + 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48, + 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, + // Bytes 4600 - 463f + 0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, + 0x85, 0xA5, 0xB1, 0x49, 0xE0, 0xBE, 0xB2, 0xE0, + 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x49, 0xE0, + 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, + 0xA2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, + 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C, + 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, + 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D, + // Bytes 4640 - 467f + 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + 0x85, 0xB0, 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, + 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB1, + 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, + 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xB2, 0x4C, + 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, + 0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C, 0xF0, 0x9D, + 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + // Bytes 4680 - 46bf + 0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, + 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, + 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, + 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x83, + 0x41, 0xCC, 0x82, 0xCD, 0x83, 0x41, 0xCC, 0x86, + 0xCD, 0x83, 0x41, 0xCC, 0x87, 0xCD, 0x83, 0x41, + 0xCC, 0x88, 0xCD, 0x83, 0x41, 0xCC, 0x8A, 0xCD, + 0x83, 0x41, 0xCC, 0xA3, 0xB9, 0x83, 0x43, 0xCC, + // Bytes 46c0 - 46ff + 0xA7, 0xA9, 0x83, 0x45, 0xCC, 0x82, 0xCD, 0x83, + 0x45, 0xCC, 0x84, 0xCD, 0x83, 0x45, 0xCC, 0xA3, + 0xB9, 0x83, 0x45, 0xCC, 0xA7, 0xA9, 0x83, 0x49, + 0xCC, 0x88, 0xCD, 0x83, 0x4C, 0xCC, 0xA3, 0xB9, + 0x83, 0x4F, 0xCC, 0x82, 0xCD, 0x83, 0x4F, 0xCC, + 0x83, 0xCD, 0x83, 0x4F, 0xCC, 0x84, 0xCD, 0x83, + 0x4F, 0xCC, 0x87, 0xCD, 0x83, 0x4F, 0xCC, 0x88, + 0xCD, 0x83, 0x4F, 0xCC, 0x9B, 0xB1, 0x83, 0x4F, + // Bytes 4700 - 473f + 0xCC, 0xA3, 0xB9, 0x83, 0x4F, 0xCC, 0xA8, 0xA9, + 0x83, 0x52, 0xCC, 0xA3, 0xB9, 0x83, 0x53, 0xCC, + 0x81, 0xCD, 0x83, 0x53, 0xCC, 0x8C, 0xCD, 0x83, + 0x53, 0xCC, 0xA3, 0xB9, 0x83, 0x55, 0xCC, 0x83, + 0xCD, 0x83, 0x55, 0xCC, 0x84, 0xCD, 0x83, 0x55, + 0xCC, 0x88, 0xCD, 0x83, 0x55, 0xCC, 0x9B, 0xB1, + 0x83, 0x61, 0xCC, 0x82, 0xCD, 0x83, 0x61, 0xCC, + 0x86, 0xCD, 0x83, 0x61, 0xCC, 0x87, 0xCD, 0x83, + // Bytes 4740 - 477f + 0x61, 0xCC, 0x88, 0xCD, 0x83, 0x61, 0xCC, 0x8A, + 0xCD, 0x83, 0x61, 0xCC, 0xA3, 0xB9, 0x83, 0x63, + 0xCC, 0xA7, 0xA9, 0x83, 0x65, 0xCC, 0x82, 0xCD, + 0x83, 0x65, 0xCC, 0x84, 0xCD, 0x83, 0x65, 0xCC, + 0xA3, 0xB9, 0x83, 0x65, 0xCC, 0xA7, 0xA9, 0x83, + 0x69, 0xCC, 0x88, 0xCD, 0x83, 0x6C, 0xCC, 0xA3, + 0xB9, 0x83, 0x6F, 0xCC, 0x82, 0xCD, 0x83, 0x6F, + 0xCC, 0x83, 0xCD, 0x83, 0x6F, 0xCC, 0x84, 0xCD, + // Bytes 4780 - 47bf + 0x83, 0x6F, 0xCC, 0x87, 0xCD, 0x83, 0x6F, 0xCC, + 0x88, 0xCD, 0x83, 0x6F, 0xCC, 0x9B, 0xB1, 0x83, + 0x6F, 0xCC, 0xA3, 0xB9, 0x83, 0x6F, 0xCC, 0xA8, + 0xA9, 0x83, 0x72, 0xCC, 0xA3, 0xB9, 0x83, 0x73, + 0xCC, 0x81, 0xCD, 0x83, 0x73, 0xCC, 0x8C, 0xCD, + 0x83, 0x73, 0xCC, 0xA3, 0xB9, 0x83, 0x75, 0xCC, + 0x83, 0xCD, 0x83, 0x75, 0xCC, 0x84, 0xCD, 0x83, + 0x75, 0xCC, 0x88, 0xCD, 0x83, 0x75, 0xCC, 0x9B, + // Bytes 47c0 - 47ff + 0xB1, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x84, + 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x95, + 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x95, 0xCC, 0x94, + 0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x84, + 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x99, + 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x99, 0xCC, 0x94, + 0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xCD, 0x84, + 0xCE, 0x9F, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA5, + // Bytes 4800 - 483f + 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x93, + 0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x84, + 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x84, 0xCE, 0xB1, + 0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x93, + 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x84, + 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x84, 0xCE, 0xB5, + 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB5, 0xCC, 0x94, + 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x84, + // Bytes 4840 - 487f + 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB7, + 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x94, + 0xCD, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x84, + 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x84, 0xCE, 0xB9, + 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB9, 0xCC, 0x94, + 0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xCD, 0x84, + 0xCE, 0xBF, 0xCC, 0x94, 0xCD, 0x84, 0xCF, 0x85, + 0xCC, 0x88, 0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x93, + // Bytes 4880 - 48bf + 0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x84, + 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x84, 0xCF, 0x89, + 0xCC, 0x81, 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x93, + 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x84, + 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x86, 0xCE, 0x91, + 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x91, + 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x91, + 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x91, + // Bytes 48c0 - 48ff + 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x91, + 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x91, + 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x97, + 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x97, + 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x97, + 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x97, + 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x97, + 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x97, + // Bytes 4900 - 493f + 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xA9, + 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xA9, + 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xA9, + 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xA9, + 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xA9, + 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xA9, + 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB1, + 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB1, + // Bytes 4940 - 497f + 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB1, + 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB1, + 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB1, + 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB1, + 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB7, + 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB7, + 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB7, + 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB7, + // Bytes 4980 - 49bf + 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB7, + 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB7, + 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCF, 0x89, + 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCF, 0x89, + 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCF, 0x89, + 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCF, 0x89, + 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCF, 0x89, + 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCF, 0x89, + // Bytes 49c0 - 49ff + 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x42, 0xCC, 0x80, + 0xCD, 0x33, 0x42, 0xCC, 0x81, 0xCD, 0x33, 0x42, + 0xCC, 0x93, 0xCD, 0x33, 0x43, 0xE1, 0x85, 0xA1, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA5, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, 0xE1, + // Bytes 4a00 - 4a3f + 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA9, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAD, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB1, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, 0x00, + // Bytes 4a40 - 4a7f + 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB5, + 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, 0x00, + 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, 0xE1, + 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB0, + 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, 0x00, + 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, 0xE1, + 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB4, + // Bytes 4a80 - 4abf + 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, 0x00, + 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x33, 0x43, + 0xE3, 0x82, 0x99, 0x11, 0x04, 0x43, 0xE3, 0x82, + 0x9A, 0x11, 0x04, 0x46, 0xE0, 0xBD, 0xB1, 0xE0, + 0xBD, 0xB2, 0xA2, 0x27, 0x46, 0xE0, 0xBD, 0xB1, + 0xE0, 0xBD, 0xB4, 0xA6, 0x27, 0x46, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x27, 0x00, 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10680 bytes (10.43 KiB). Checksum: a555db76d4becdd2. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 46: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 46 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 48 blocks, 3072 entries, 6144 bytes +// The third block is the zero block. +var nfcValues = [3072]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f86, 0xc1: 0x2f8b, 0xc2: 0x469f, 0xc3: 0x2f90, 0xc4: 0x46ae, 0xc5: 0x46b3, + 0xc6: 0xa000, 0xc7: 0x46bd, 0xc8: 0x2ff9, 0xc9: 0x2ffe, 0xca: 0x46c2, 0xcb: 0x3012, + 0xcc: 0x3085, 0xcd: 0x308a, 0xce: 0x308f, 0xcf: 0x46d6, 0xd1: 0x311b, + 0xd2: 0x313e, 0xd3: 0x3143, 0xd4: 0x46e0, 0xd5: 0x46e5, 0xd6: 0x46f4, + 0xd8: 0xa000, 0xd9: 0x31ca, 0xda: 0x31cf, 0xdb: 0x31d4, 0xdc: 0x4726, 0xdd: 0x324c, + 0xe0: 0x3292, 0xe1: 0x3297, 0xe2: 0x4730, 0xe3: 0x329c, + 0xe4: 0x473f, 0xe5: 0x4744, 0xe6: 0xa000, 0xe7: 0x474e, 0xe8: 0x3305, 0xe9: 0x330a, + 0xea: 0x4753, 0xeb: 0x331e, 0xec: 0x3396, 0xed: 0x339b, 0xee: 0x33a0, 0xef: 0x4767, + 0xf1: 0x342c, 0xf2: 0x344f, 0xf3: 0x3454, 0xf4: 0x4771, 0xf5: 0x4776, + 0xf6: 0x4785, 0xf8: 0xa000, 0xf9: 0x34e0, 0xfa: 0x34e5, 0xfb: 0x34ea, + 0xfc: 0x47b7, 0xfd: 0x3567, 0xff: 0x3580, + // Block 0x4, offset 0x100 + 0x100: 0x2f95, 0x101: 0x32a1, 0x102: 0x46a4, 0x103: 0x4735, 0x104: 0x2fb3, 0x105: 0x32bf, + 0x106: 0x2fc7, 0x107: 0x32d3, 0x108: 0x2fcc, 0x109: 0x32d8, 0x10a: 0x2fd1, 0x10b: 0x32dd, + 0x10c: 0x2fd6, 0x10d: 0x32e2, 0x10e: 0x2fe0, 0x10f: 0x32ec, + 0x112: 0x46c7, 0x113: 0x4758, 0x114: 0x3008, 0x115: 0x3314, 0x116: 0x300d, 0x117: 0x3319, + 0x118: 0x302b, 0x119: 0x3337, 0x11a: 0x301c, 0x11b: 0x3328, 0x11c: 0x3044, 0x11d: 0x3350, + 0x11e: 0x304e, 0x11f: 0x335a, 0x120: 0x3053, 0x121: 0x335f, 0x122: 0x305d, 0x123: 0x3369, + 0x124: 0x3062, 0x125: 0x336e, 0x128: 0x3094, 0x129: 0x33a5, + 0x12a: 0x3099, 0x12b: 0x33aa, 0x12c: 0x309e, 0x12d: 0x33af, 0x12e: 0x30c1, 0x12f: 0x33cd, + 0x130: 0x30a3, 0x134: 0x30cb, 0x135: 0x33d7, + 0x136: 0x30df, 0x137: 0x33f0, 0x139: 0x30e9, 0x13a: 0x33fa, 0x13b: 0x30f3, + 0x13c: 0x3404, 0x13d: 0x30ee, 0x13e: 0x33ff, + // Block 0x5, offset 0x140 + 0x143: 0x3116, 0x144: 0x3427, 0x145: 0x312f, + 0x146: 0x3440, 0x147: 0x3125, 0x148: 0x3436, + 0x14c: 0x46ea, 0x14d: 0x477b, 0x14e: 0x3148, 0x14f: 0x3459, 0x150: 0x3152, 0x151: 0x3463, + 0x154: 0x3170, 0x155: 0x3481, 0x156: 0x3189, 0x157: 0x349a, + 0x158: 0x317a, 0x159: 0x348b, 0x15a: 0x470d, 0x15b: 0x479e, 0x15c: 0x3193, 0x15d: 0x34a4, + 0x15e: 0x31a2, 0x15f: 0x34b3, 0x160: 0x4712, 0x161: 0x47a3, 0x162: 0x31bb, 0x163: 0x34d1, + 0x164: 0x31ac, 0x165: 0x34c2, 0x168: 0x471c, 0x169: 0x47ad, + 0x16a: 0x4721, 0x16b: 0x47b2, 0x16c: 0x31d9, 0x16d: 0x34ef, 0x16e: 0x31e3, 0x16f: 0x34f9, + 0x170: 0x31e8, 0x171: 0x34fe, 0x172: 0x3206, 0x173: 0x351c, 0x174: 0x3229, 0x175: 0x353f, + 0x176: 0x3251, 0x177: 0x356c, 0x178: 0x3265, 0x179: 0x3274, 0x17a: 0x3594, 0x17b: 0x327e, + 0x17c: 0x359e, 0x17d: 0x3283, 0x17e: 0x35a3, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f9f, 0x18e: 0x32ab, 0x18f: 0x30ad, 0x190: 0x33b9, 0x191: 0x3157, + 0x192: 0x3468, 0x193: 0x31ed, 0x194: 0x3503, 0x195: 0x39e6, 0x196: 0x3b75, 0x197: 0x39df, + 0x198: 0x3b6e, 0x199: 0x39ed, 0x19a: 0x3b7c, 0x19b: 0x39d8, 0x19c: 0x3b67, + 0x19e: 0x38c7, 0x19f: 0x3a56, 0x1a0: 0x38c0, 0x1a1: 0x3a4f, 0x1a2: 0x35ca, 0x1a3: 0x35dc, + 0x1a6: 0x3058, 0x1a7: 0x3364, 0x1a8: 0x30d5, 0x1a9: 0x33e6, + 0x1aa: 0x4703, 0x1ab: 0x4794, 0x1ac: 0x39a7, 0x1ad: 0x3b36, 0x1ae: 0x35ee, 0x1af: 0x35f4, + 0x1b0: 0x33dc, 0x1b4: 0x303f, 0x1b5: 0x334b, + 0x1b8: 0x3111, 0x1b9: 0x3422, 0x1ba: 0x38ce, 0x1bb: 0x3a5d, + 0x1bc: 0x35c4, 0x1bd: 0x35d6, 0x1be: 0x35d0, 0x1bf: 0x35e2, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2fa4, 0x1c1: 0x32b0, 0x1c2: 0x2fa9, 0x1c3: 0x32b5, 0x1c4: 0x3021, 0x1c5: 0x332d, + 0x1c6: 0x3026, 0x1c7: 0x3332, 0x1c8: 0x30b2, 0x1c9: 0x33be, 0x1ca: 0x30b7, 0x1cb: 0x33c3, + 0x1cc: 0x315c, 0x1cd: 0x346d, 0x1ce: 0x3161, 0x1cf: 0x3472, 0x1d0: 0x317f, 0x1d1: 0x3490, + 0x1d2: 0x3184, 0x1d3: 0x3495, 0x1d4: 0x31f2, 0x1d5: 0x3508, 0x1d6: 0x31f7, 0x1d7: 0x350d, + 0x1d8: 0x319d, 0x1d9: 0x34ae, 0x1da: 0x31b6, 0x1db: 0x34cc, + 0x1de: 0x3071, 0x1df: 0x337d, + 0x1e6: 0x46a9, 0x1e7: 0x473a, 0x1e8: 0x46d1, 0x1e9: 0x4762, + 0x1ea: 0x3976, 0x1eb: 0x3b05, 0x1ec: 0x3953, 0x1ed: 0x3ae2, 0x1ee: 0x46ef, 0x1ef: 0x4780, + 0x1f0: 0x396f, 0x1f1: 0x3afe, 0x1f2: 0x325b, 0x1f3: 0x3576, + // Block 0x8, offset 0x200 + 0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133, + 0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933, + 0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933, + 0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e, + 0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e, + 0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e, + 0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e, + 0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e, + 0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e, + 0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133, + // Block 0x9, offset 0x240 + 0x240: 0x49c5, 0x241: 0x49ca, 0x242: 0x9933, 0x243: 0x49cf, 0x244: 0x4a88, 0x245: 0x9937, + 0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133, + 0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133, + 0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133, + 0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136, + 0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133, + 0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133, + 0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133, + 0x274: 0x0173, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35b8, + 0x286: 0x3600, 0x287: 0x00ce, 0x288: 0x361e, 0x289: 0x362a, 0x28a: 0x363c, + 0x28c: 0x365a, 0x28e: 0x366c, 0x28f: 0x368a, 0x290: 0x3e1f, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x364e, 0x2ab: 0x367e, 0x2ac: 0x4815, 0x2ad: 0x36ae, 0x2ae: 0x483f, 0x2af: 0x36c0, + 0x2b0: 0x3e87, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3738, 0x2c1: 0x3744, 0x2c3: 0x3732, + 0x2c6: 0xa000, 0x2c7: 0x3720, + 0x2cc: 0x3774, 0x2cd: 0x375c, 0x2ce: 0x3786, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3768, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37ec, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x374a, 0x302: 0x37ce, + 0x310: 0x3726, 0x311: 0x37aa, + 0x312: 0x372c, 0x313: 0x37b0, 0x316: 0x373e, 0x317: 0x37c2, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3840, 0x31b: 0x3846, 0x31c: 0x3750, 0x31d: 0x37d4, + 0x31e: 0x3756, 0x31f: 0x37da, 0x322: 0x3762, 0x323: 0x37e6, + 0x324: 0x376e, 0x325: 0x37f2, 0x326: 0x377a, 0x327: 0x37fe, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x384c, 0x32b: 0x3852, 0x32c: 0x37a4, 0x32d: 0x3828, 0x32e: 0x3780, 0x32f: 0x3804, + 0x330: 0x378c, 0x331: 0x3810, 0x332: 0x3792, 0x333: 0x3816, 0x334: 0x3798, 0x335: 0x381c, + 0x338: 0x379e, 0x339: 0x3822, + // Block 0xd, offset 0x340 + 0x351: 0x812e, + 0x352: 0x8133, 0x353: 0x8133, 0x354: 0x8133, 0x355: 0x8133, 0x356: 0x812e, 0x357: 0x8133, + 0x358: 0x8133, 0x359: 0x8133, 0x35a: 0x812f, 0x35b: 0x812e, 0x35c: 0x8133, 0x35d: 0x8133, + 0x35e: 0x8133, 0x35f: 0x8133, 0x360: 0x8133, 0x361: 0x8133, 0x362: 0x812e, 0x363: 0x812e, + 0x364: 0x812e, 0x365: 0x812e, 0x366: 0x812e, 0x367: 0x812e, 0x368: 0x8133, 0x369: 0x8133, + 0x36a: 0x812e, 0x36b: 0x8133, 0x36c: 0x8133, 0x36d: 0x812f, 0x36e: 0x8132, 0x36f: 0x8133, + 0x370: 0x8106, 0x371: 0x8107, 0x372: 0x8108, 0x373: 0x8109, 0x374: 0x810a, 0x375: 0x810b, + 0x376: 0x810c, 0x377: 0x810d, 0x378: 0x810e, 0x379: 0x810f, 0x37a: 0x810f, 0x37b: 0x8110, + 0x37c: 0x8111, 0x37d: 0x8112, 0x37f: 0x8113, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8117, + 0x38c: 0x8118, 0x38d: 0x8119, 0x38e: 0x811a, 0x38f: 0x811b, 0x390: 0x811c, 0x391: 0x811d, + 0x392: 0x811e, 0x393: 0x9933, 0x394: 0x9933, 0x395: 0x992e, 0x396: 0x812e, 0x397: 0x8133, + 0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x8133, 0x39b: 0x8133, 0x39c: 0x812e, 0x39d: 0x8133, + 0x39e: 0x8133, 0x39f: 0x812e, + 0x3b0: 0x811f, + // Block 0xf, offset 0x3c0 + 0x3d3: 0x812e, 0x3d4: 0x8133, 0x3d5: 0x8133, 0x3d6: 0x8133, 0x3d7: 0x8133, + 0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x8133, 0x3dd: 0x8133, + 0x3de: 0x8133, 0x3df: 0x8133, 0x3e0: 0x8133, 0x3e1: 0x8133, 0x3e3: 0x812e, + 0x3e4: 0x8133, 0x3e5: 0x8133, 0x3e6: 0x812e, 0x3e7: 0x8133, 0x3e8: 0x8133, 0x3e9: 0x812e, + 0x3ea: 0x8133, 0x3eb: 0x8133, 0x3ec: 0x8133, 0x3ed: 0x812e, 0x3ee: 0x812e, 0x3ef: 0x812e, + 0x3f0: 0x8117, 0x3f1: 0x8118, 0x3f2: 0x8119, 0x3f3: 0x8133, 0x3f4: 0x8133, 0x3f5: 0x8133, + 0x3f6: 0x812e, 0x3f7: 0x8133, 0x3f8: 0x8133, 0x3f9: 0x812e, 0x3fa: 0x812e, 0x3fb: 0x8133, + 0x3fc: 0x8133, 0x3fd: 0x8133, 0x3fe: 0x8133, 0x3ff: 0x8133, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d33, 0x407: 0xa000, 0x408: 0x2d3b, 0x409: 0xa000, 0x40a: 0x2d43, 0x40b: 0xa000, + 0x40c: 0x2d4b, 0x40d: 0xa000, 0x40e: 0x2d53, 0x411: 0xa000, + 0x412: 0x2d5b, + 0x434: 0x8103, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d63, + 0x43c: 0xa000, 0x43d: 0x2d6b, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x8133, 0x441: 0x8133, 0x442: 0x812e, 0x443: 0x8133, 0x444: 0x8133, 0x445: 0x8133, + 0x446: 0x8133, 0x447: 0x8133, 0x448: 0x8133, 0x449: 0x8133, 0x44a: 0x812e, 0x44b: 0x8133, + 0x44c: 0x8133, 0x44d: 0x8136, 0x44e: 0x812b, 0x44f: 0x812e, 0x450: 0x812a, 0x451: 0x8133, + 0x452: 0x8133, 0x453: 0x8133, 0x454: 0x8133, 0x455: 0x8133, 0x456: 0x8133, 0x457: 0x8133, + 0x458: 0x8133, 0x459: 0x8133, 0x45a: 0x8133, 0x45b: 0x8133, 0x45c: 0x8133, 0x45d: 0x8133, + 0x45e: 0x8133, 0x45f: 0x8133, 0x460: 0x8133, 0x461: 0x8133, 0x462: 0x8133, 0x463: 0x8133, + 0x464: 0x8133, 0x465: 0x8133, 0x466: 0x8133, 0x467: 0x8133, 0x468: 0x8133, 0x469: 0x8133, + 0x46a: 0x8133, 0x46b: 0x8133, 0x46c: 0x8133, 0x46d: 0x8133, 0x46e: 0x8133, 0x46f: 0x8133, + 0x470: 0x8133, 0x471: 0x8133, 0x472: 0x8133, 0x473: 0x8133, 0x474: 0x8133, 0x475: 0x8133, + 0x476: 0x8134, 0x477: 0x8132, 0x478: 0x8132, 0x479: 0x812e, 0x47b: 0x8133, + 0x47c: 0x8135, 0x47d: 0x812e, 0x47e: 0x8133, 0x47f: 0x812e, + // Block 0x12, offset 0x480 + 0x480: 0x2fae, 0x481: 0x32ba, 0x482: 0x2fb8, 0x483: 0x32c4, 0x484: 0x2fbd, 0x485: 0x32c9, + 0x486: 0x2fc2, 0x487: 0x32ce, 0x488: 0x38e3, 0x489: 0x3a72, 0x48a: 0x2fdb, 0x48b: 0x32e7, + 0x48c: 0x2fe5, 0x48d: 0x32f1, 0x48e: 0x2ff4, 0x48f: 0x3300, 0x490: 0x2fea, 0x491: 0x32f6, + 0x492: 0x2fef, 0x493: 0x32fb, 0x494: 0x3906, 0x495: 0x3a95, 0x496: 0x390d, 0x497: 0x3a9c, + 0x498: 0x3030, 0x499: 0x333c, 0x49a: 0x3035, 0x49b: 0x3341, 0x49c: 0x391b, 0x49d: 0x3aaa, + 0x49e: 0x303a, 0x49f: 0x3346, 0x4a0: 0x3049, 0x4a1: 0x3355, 0x4a2: 0x3067, 0x4a3: 0x3373, + 0x4a4: 0x3076, 0x4a5: 0x3382, 0x4a6: 0x306c, 0x4a7: 0x3378, 0x4a8: 0x307b, 0x4a9: 0x3387, + 0x4aa: 0x3080, 0x4ab: 0x338c, 0x4ac: 0x30c6, 0x4ad: 0x33d2, 0x4ae: 0x3922, 0x4af: 0x3ab1, + 0x4b0: 0x30d0, 0x4b1: 0x33e1, 0x4b2: 0x30da, 0x4b3: 0x33eb, 0x4b4: 0x30e4, 0x4b5: 0x33f5, + 0x4b6: 0x46db, 0x4b7: 0x476c, 0x4b8: 0x3929, 0x4b9: 0x3ab8, 0x4ba: 0x30fd, 0x4bb: 0x340e, + 0x4bc: 0x30f8, 0x4bd: 0x3409, 0x4be: 0x3102, 0x4bf: 0x3413, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x3107, 0x4c1: 0x3418, 0x4c2: 0x310c, 0x4c3: 0x341d, 0x4c4: 0x3120, 0x4c5: 0x3431, + 0x4c6: 0x312a, 0x4c7: 0x343b, 0x4c8: 0x3139, 0x4c9: 0x344a, 0x4ca: 0x3134, 0x4cb: 0x3445, + 0x4cc: 0x394c, 0x4cd: 0x3adb, 0x4ce: 0x395a, 0x4cf: 0x3ae9, 0x4d0: 0x3961, 0x4d1: 0x3af0, + 0x4d2: 0x3968, 0x4d3: 0x3af7, 0x4d4: 0x3166, 0x4d5: 0x3477, 0x4d6: 0x316b, 0x4d7: 0x347c, + 0x4d8: 0x3175, 0x4d9: 0x3486, 0x4da: 0x4708, 0x4db: 0x4799, 0x4dc: 0x39ae, 0x4dd: 0x3b3d, + 0x4de: 0x318e, 0x4df: 0x349f, 0x4e0: 0x3198, 0x4e1: 0x34a9, 0x4e2: 0x4717, 0x4e3: 0x47a8, + 0x4e4: 0x39b5, 0x4e5: 0x3b44, 0x4e6: 0x39bc, 0x4e7: 0x3b4b, 0x4e8: 0x39c3, 0x4e9: 0x3b52, + 0x4ea: 0x31a7, 0x4eb: 0x34b8, 0x4ec: 0x31b1, 0x4ed: 0x34c7, 0x4ee: 0x31c5, 0x4ef: 0x34db, + 0x4f0: 0x31c0, 0x4f1: 0x34d6, 0x4f2: 0x3201, 0x4f3: 0x3517, 0x4f4: 0x3210, 0x4f5: 0x3526, + 0x4f6: 0x320b, 0x4f7: 0x3521, 0x4f8: 0x39ca, 0x4f9: 0x3b59, 0x4fa: 0x39d1, 0x4fb: 0x3b60, + 0x4fc: 0x3215, 0x4fd: 0x352b, 0x4fe: 0x321a, 0x4ff: 0x3530, + // Block 0x14, offset 0x500 + 0x500: 0x321f, 0x501: 0x3535, 0x502: 0x3224, 0x503: 0x353a, 0x504: 0x3233, 0x505: 0x3549, + 0x506: 0x322e, 0x507: 0x3544, 0x508: 0x3238, 0x509: 0x3553, 0x50a: 0x323d, 0x50b: 0x3558, + 0x50c: 0x3242, 0x50d: 0x355d, 0x50e: 0x3260, 0x50f: 0x357b, 0x510: 0x3279, 0x511: 0x3599, + 0x512: 0x3288, 0x513: 0x35a8, 0x514: 0x328d, 0x515: 0x35ad, 0x516: 0x3391, 0x517: 0x34bd, + 0x518: 0x354e, 0x519: 0x358a, 0x51b: 0x35e8, + 0x520: 0x46b8, 0x521: 0x4749, 0x522: 0x2f9a, 0x523: 0x32a6, + 0x524: 0x388f, 0x525: 0x3a1e, 0x526: 0x3888, 0x527: 0x3a17, 0x528: 0x389d, 0x529: 0x3a2c, + 0x52a: 0x3896, 0x52b: 0x3a25, 0x52c: 0x38d5, 0x52d: 0x3a64, 0x52e: 0x38ab, 0x52f: 0x3a3a, + 0x530: 0x38a4, 0x531: 0x3a33, 0x532: 0x38b9, 0x533: 0x3a48, 0x534: 0x38b2, 0x535: 0x3a41, + 0x536: 0x38dc, 0x537: 0x3a6b, 0x538: 0x46cc, 0x539: 0x475d, 0x53a: 0x3017, 0x53b: 0x3323, + 0x53c: 0x3003, 0x53d: 0x330f, 0x53e: 0x38f1, 0x53f: 0x3a80, + // Block 0x15, offset 0x540 + 0x540: 0x38ea, 0x541: 0x3a79, 0x542: 0x38ff, 0x543: 0x3a8e, 0x544: 0x38f8, 0x545: 0x3a87, + 0x546: 0x3914, 0x547: 0x3aa3, 0x548: 0x30a8, 0x549: 0x33b4, 0x54a: 0x30bc, 0x54b: 0x33c8, + 0x54c: 0x46fe, 0x54d: 0x478f, 0x54e: 0x314d, 0x54f: 0x345e, 0x550: 0x3937, 0x551: 0x3ac6, + 0x552: 0x3930, 0x553: 0x3abf, 0x554: 0x3945, 0x555: 0x3ad4, 0x556: 0x393e, 0x557: 0x3acd, + 0x558: 0x39a0, 0x559: 0x3b2f, 0x55a: 0x3984, 0x55b: 0x3b13, 0x55c: 0x397d, 0x55d: 0x3b0c, + 0x55e: 0x3992, 0x55f: 0x3b21, 0x560: 0x398b, 0x561: 0x3b1a, 0x562: 0x3999, 0x563: 0x3b28, + 0x564: 0x31fc, 0x565: 0x3512, 0x566: 0x31de, 0x567: 0x34f4, 0x568: 0x39fb, 0x569: 0x3b8a, + 0x56a: 0x39f4, 0x56b: 0x3b83, 0x56c: 0x3a09, 0x56d: 0x3b98, 0x56e: 0x3a02, 0x56f: 0x3b91, + 0x570: 0x3a10, 0x571: 0x3b9f, 0x572: 0x3247, 0x573: 0x3562, 0x574: 0x326f, 0x575: 0x358f, + 0x576: 0x326a, 0x577: 0x3585, 0x578: 0x3256, 0x579: 0x3571, + // Block 0x16, offset 0x580 + 0x580: 0x481b, 0x581: 0x4821, 0x582: 0x4935, 0x583: 0x494d, 0x584: 0x493d, 0x585: 0x4955, + 0x586: 0x4945, 0x587: 0x495d, 0x588: 0x47c1, 0x589: 0x47c7, 0x58a: 0x48a5, 0x58b: 0x48bd, + 0x58c: 0x48ad, 0x58d: 0x48c5, 0x58e: 0x48b5, 0x58f: 0x48cd, 0x590: 0x482d, 0x591: 0x4833, + 0x592: 0x3dcf, 0x593: 0x3ddf, 0x594: 0x3dd7, 0x595: 0x3de7, + 0x598: 0x47cd, 0x599: 0x47d3, 0x59a: 0x3cff, 0x59b: 0x3d0f, 0x59c: 0x3d07, 0x59d: 0x3d17, + 0x5a0: 0x4845, 0x5a1: 0x484b, 0x5a2: 0x4965, 0x5a3: 0x497d, + 0x5a4: 0x496d, 0x5a5: 0x4985, 0x5a6: 0x4975, 0x5a7: 0x498d, 0x5a8: 0x47d9, 0x5a9: 0x47df, + 0x5aa: 0x48d5, 0x5ab: 0x48ed, 0x5ac: 0x48dd, 0x5ad: 0x48f5, 0x5ae: 0x48e5, 0x5af: 0x48fd, + 0x5b0: 0x485d, 0x5b1: 0x4863, 0x5b2: 0x3e2f, 0x5b3: 0x3e47, 0x5b4: 0x3e37, 0x5b5: 0x3e4f, + 0x5b6: 0x3e3f, 0x5b7: 0x3e57, 0x5b8: 0x47e5, 0x5b9: 0x47eb, 0x5ba: 0x3d2f, 0x5bb: 0x3d47, + 0x5bc: 0x3d37, 0x5bd: 0x3d4f, 0x5be: 0x3d3f, 0x5bf: 0x3d57, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x4869, 0x5c1: 0x486f, 0x5c2: 0x3e5f, 0x5c3: 0x3e6f, 0x5c4: 0x3e67, 0x5c5: 0x3e77, + 0x5c8: 0x47f1, 0x5c9: 0x47f7, 0x5ca: 0x3d5f, 0x5cb: 0x3d6f, + 0x5cc: 0x3d67, 0x5cd: 0x3d77, 0x5d0: 0x487b, 0x5d1: 0x4881, + 0x5d2: 0x3e97, 0x5d3: 0x3eaf, 0x5d4: 0x3e9f, 0x5d5: 0x3eb7, 0x5d6: 0x3ea7, 0x5d7: 0x3ebf, + 0x5d9: 0x47fd, 0x5db: 0x3d7f, 0x5dd: 0x3d87, + 0x5df: 0x3d8f, 0x5e0: 0x4893, 0x5e1: 0x4899, 0x5e2: 0x4995, 0x5e3: 0x49ad, + 0x5e4: 0x499d, 0x5e5: 0x49b5, 0x5e6: 0x49a5, 0x5e7: 0x49bd, 0x5e8: 0x4803, 0x5e9: 0x4809, + 0x5ea: 0x4905, 0x5eb: 0x491d, 0x5ec: 0x490d, 0x5ed: 0x4925, 0x5ee: 0x4915, 0x5ef: 0x492d, + 0x5f0: 0x480f, 0x5f1: 0x4335, 0x5f2: 0x36a8, 0x5f3: 0x433b, 0x5f4: 0x4839, 0x5f5: 0x4341, + 0x5f6: 0x36ba, 0x5f7: 0x4347, 0x5f8: 0x36d8, 0x5f9: 0x434d, 0x5fa: 0x36f0, 0x5fb: 0x4353, + 0x5fc: 0x4887, 0x5fd: 0x4359, + // Block 0x18, offset 0x600 + 0x600: 0x3db7, 0x601: 0x3dbf, 0x602: 0x419b, 0x603: 0x41b9, 0x604: 0x41a5, 0x605: 0x41c3, + 0x606: 0x41af, 0x607: 0x41cd, 0x608: 0x3cef, 0x609: 0x3cf7, 0x60a: 0x40e7, 0x60b: 0x4105, + 0x60c: 0x40f1, 0x60d: 0x410f, 0x60e: 0x40fb, 0x60f: 0x4119, 0x610: 0x3dff, 0x611: 0x3e07, + 0x612: 0x41d7, 0x613: 0x41f5, 0x614: 0x41e1, 0x615: 0x41ff, 0x616: 0x41eb, 0x617: 0x4209, + 0x618: 0x3d1f, 0x619: 0x3d27, 0x61a: 0x4123, 0x61b: 0x4141, 0x61c: 0x412d, 0x61d: 0x414b, + 0x61e: 0x4137, 0x61f: 0x4155, 0x620: 0x3ed7, 0x621: 0x3edf, 0x622: 0x4213, 0x623: 0x4231, + 0x624: 0x421d, 0x625: 0x423b, 0x626: 0x4227, 0x627: 0x4245, 0x628: 0x3d97, 0x629: 0x3d9f, + 0x62a: 0x415f, 0x62b: 0x417d, 0x62c: 0x4169, 0x62d: 0x4187, 0x62e: 0x4173, 0x62f: 0x4191, + 0x630: 0x369c, 0x631: 0x3696, 0x632: 0x3da7, 0x633: 0x36a2, 0x634: 0x3daf, + 0x636: 0x4827, 0x637: 0x3dc7, 0x638: 0x360c, 0x639: 0x3606, 0x63a: 0x35fa, 0x63b: 0x4305, + 0x63c: 0x3612, 0x63d: 0x8100, 0x63e: 0x01d6, 0x63f: 0xa100, + // Block 0x19, offset 0x640 + 0x640: 0x8100, 0x641: 0x35be, 0x642: 0x3def, 0x643: 0x36b4, 0x644: 0x3df7, + 0x646: 0x4851, 0x647: 0x3e0f, 0x648: 0x3618, 0x649: 0x430b, 0x64a: 0x3624, 0x64b: 0x4311, + 0x64c: 0x3630, 0x64d: 0x3ba6, 0x64e: 0x3bad, 0x64f: 0x3bb4, 0x650: 0x36cc, 0x651: 0x36c6, + 0x652: 0x3e17, 0x653: 0x44fb, 0x656: 0x36d2, 0x657: 0x3e27, + 0x658: 0x3648, 0x659: 0x3642, 0x65a: 0x3636, 0x65b: 0x4317, 0x65d: 0x3bbb, + 0x65e: 0x3bc2, 0x65f: 0x3bc9, 0x660: 0x3702, 0x661: 0x36fc, 0x662: 0x3e7f, 0x663: 0x4503, + 0x664: 0x36e4, 0x665: 0x36ea, 0x666: 0x3708, 0x667: 0x3e8f, 0x668: 0x3678, 0x669: 0x3672, + 0x66a: 0x3666, 0x66b: 0x4323, 0x66c: 0x3660, 0x66d: 0x35b2, 0x66e: 0x42ff, 0x66f: 0x0081, + 0x672: 0x3ec7, 0x673: 0x370e, 0x674: 0x3ecf, + 0x676: 0x489f, 0x677: 0x3ee7, 0x678: 0x3654, 0x679: 0x431d, 0x67a: 0x3684, 0x67b: 0x432f, + 0x67c: 0x3690, 0x67d: 0x426d, 0x67e: 0xa100, + // Block 0x1a, offset 0x680 + 0x681: 0x3c1d, 0x683: 0xa000, 0x684: 0x3c24, 0x685: 0xa000, + 0x687: 0x3c2b, 0x688: 0xa000, 0x689: 0x3c32, + 0x68d: 0xa000, + 0x6a0: 0x2f7c, 0x6a1: 0xa000, 0x6a2: 0x3c40, + 0x6a4: 0xa000, 0x6a5: 0xa000, + 0x6ad: 0x3c39, 0x6ae: 0x2f77, 0x6af: 0x2f81, + 0x6b0: 0x3c47, 0x6b1: 0x3c4e, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c55, 0x6b5: 0x3c5c, + 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c63, 0x6b9: 0x3c6a, 0x6ba: 0xa000, 0x6bb: 0xa000, + 0x6bc: 0xa000, 0x6bd: 0xa000, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3c71, 0x6c1: 0x3c78, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c8d, 0x6c5: 0x3c94, + 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c9b, 0x6c9: 0x3ca2, + 0x6d1: 0xa000, + 0x6d2: 0xa000, + 0x6e2: 0xa000, + 0x6e8: 0xa000, 0x6e9: 0xa000, + 0x6eb: 0xa000, 0x6ec: 0x3cb7, 0x6ed: 0x3cbe, 0x6ee: 0x3cc5, 0x6ef: 0x3ccc, + 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, + // Block 0x1c, offset 0x700 + 0x706: 0xa000, 0x70b: 0xa000, + 0x70c: 0x3f1f, 0x70d: 0xa000, 0x70e: 0x3f27, 0x70f: 0xa000, 0x710: 0x3f2f, 0x711: 0xa000, + 0x712: 0x3f37, 0x713: 0xa000, 0x714: 0x3f3f, 0x715: 0xa000, 0x716: 0x3f47, 0x717: 0xa000, + 0x718: 0x3f4f, 0x719: 0xa000, 0x71a: 0x3f57, 0x71b: 0xa000, 0x71c: 0x3f5f, 0x71d: 0xa000, + 0x71e: 0x3f67, 0x71f: 0xa000, 0x720: 0x3f6f, 0x721: 0xa000, 0x722: 0x3f77, + 0x724: 0xa000, 0x725: 0x3f7f, 0x726: 0xa000, 0x727: 0x3f87, 0x728: 0xa000, 0x729: 0x3f8f, + 0x72f: 0xa000, + 0x730: 0x3f97, 0x731: 0x3f9f, 0x732: 0xa000, 0x733: 0x3fa7, 0x734: 0x3faf, 0x735: 0xa000, + 0x736: 0x3fb7, 0x737: 0x3fbf, 0x738: 0xa000, 0x739: 0x3fc7, 0x73a: 0x3fcf, 0x73b: 0xa000, + 0x73c: 0x3fd7, 0x73d: 0x3fdf, + // Block 0x1d, offset 0x740 + 0x754: 0x3f17, + 0x759: 0x9904, 0x75a: 0x9904, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, + 0x75e: 0x3fe7, + 0x766: 0xa000, + 0x76b: 0xa000, 0x76c: 0x3ff7, 0x76d: 0xa000, 0x76e: 0x3fff, 0x76f: 0xa000, + 0x770: 0x4007, 0x771: 0xa000, 0x772: 0x400f, 0x773: 0xa000, 0x774: 0x4017, 0x775: 0xa000, + 0x776: 0x401f, 0x777: 0xa000, 0x778: 0x4027, 0x779: 0xa000, 0x77a: 0x402f, 0x77b: 0xa000, + 0x77c: 0x4037, 0x77d: 0xa000, 0x77e: 0x403f, 0x77f: 0xa000, + // Block 0x1e, offset 0x780 + 0x780: 0x4047, 0x781: 0xa000, 0x782: 0x404f, 0x784: 0xa000, 0x785: 0x4057, + 0x786: 0xa000, 0x787: 0x405f, 0x788: 0xa000, 0x789: 0x4067, + 0x78f: 0xa000, 0x790: 0x406f, 0x791: 0x4077, + 0x792: 0xa000, 0x793: 0x407f, 0x794: 0x4087, 0x795: 0xa000, 0x796: 0x408f, 0x797: 0x4097, + 0x798: 0xa000, 0x799: 0x409f, 0x79a: 0x40a7, 0x79b: 0xa000, 0x79c: 0x40af, 0x79d: 0x40b7, + 0x7af: 0xa000, + 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fef, + 0x7b7: 0x40bf, 0x7b8: 0x40c7, 0x7b9: 0x40cf, 0x7ba: 0x40d7, + 0x7bd: 0xa000, 0x7be: 0x40df, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x137a, 0x7c1: 0x0cfe, 0x7c2: 0x13d6, 0x7c3: 0x13a2, 0x7c4: 0x0e5a, 0x7c5: 0x06ee, + 0x7c6: 0x08e2, 0x7c7: 0x162e, 0x7c8: 0x162e, 0x7c9: 0x0a0e, 0x7ca: 0x1462, 0x7cb: 0x0946, + 0x7cc: 0x0a0a, 0x7cd: 0x0bf2, 0x7ce: 0x0fd2, 0x7cf: 0x1162, 0x7d0: 0x129a, 0x7d1: 0x12d6, + 0x7d2: 0x130a, 0x7d3: 0x141e, 0x7d4: 0x0d76, 0x7d5: 0x0e02, 0x7d6: 0x0eae, 0x7d7: 0x0f46, + 0x7d8: 0x1262, 0x7d9: 0x144a, 0x7da: 0x1576, 0x7db: 0x0712, 0x7dc: 0x08b6, 0x7dd: 0x0d8a, + 0x7de: 0x0ed2, 0x7df: 0x1296, 0x7e0: 0x15c6, 0x7e1: 0x0ab6, 0x7e2: 0x0e7a, 0x7e3: 0x1286, + 0x7e4: 0x131a, 0x7e5: 0x0c26, 0x7e6: 0x11be, 0x7e7: 0x12e2, 0x7e8: 0x0b22, 0x7e9: 0x0d12, + 0x7ea: 0x0e1a, 0x7eb: 0x0f1e, 0x7ec: 0x142a, 0x7ed: 0x0752, 0x7ee: 0x07ea, 0x7ef: 0x0856, + 0x7f0: 0x0c8e, 0x7f1: 0x0d82, 0x7f2: 0x0ece, 0x7f3: 0x0ff2, 0x7f4: 0x117a, 0x7f5: 0x128e, + 0x7f6: 0x12a6, 0x7f7: 0x13ca, 0x7f8: 0x14f2, 0x7f9: 0x15a6, 0x7fa: 0x15c2, 0x7fb: 0x102e, + 0x7fc: 0x106e, 0x7fd: 0x1126, 0x7fe: 0x1246, 0x7ff: 0x147e, + // Block 0x20, offset 0x800 + 0x800: 0x15ce, 0x801: 0x134e, 0x802: 0x09ca, 0x803: 0x0b3e, 0x804: 0x10de, 0x805: 0x119e, + 0x806: 0x0f02, 0x807: 0x1036, 0x808: 0x139a, 0x809: 0x14ea, 0x80a: 0x09c6, 0x80b: 0x0a92, + 0x80c: 0x0d7a, 0x80d: 0x0e2e, 0x80e: 0x0e62, 0x80f: 0x1116, 0x810: 0x113e, 0x811: 0x14aa, + 0x812: 0x0852, 0x813: 0x11aa, 0x814: 0x07f6, 0x815: 0x07f2, 0x816: 0x109a, 0x817: 0x112a, + 0x818: 0x125e, 0x819: 0x14b2, 0x81a: 0x136a, 0x81b: 0x0c2a, 0x81c: 0x0d76, 0x81d: 0x135a, + 0x81e: 0x06fa, 0x81f: 0x0a66, 0x820: 0x0b96, 0x821: 0x0f32, 0x822: 0x0fb2, 0x823: 0x0876, + 0x824: 0x103e, 0x825: 0x0762, 0x826: 0x0b7a, 0x827: 0x06da, 0x828: 0x0dee, 0x829: 0x0ca6, + 0x82a: 0x1112, 0x82b: 0x08ca, 0x82c: 0x09b6, 0x82d: 0x0ffe, 0x82e: 0x1266, 0x82f: 0x133e, + 0x830: 0x0dba, 0x831: 0x13fa, 0x832: 0x0de6, 0x833: 0x0c3a, 0x834: 0x121e, 0x835: 0x0c5a, + 0x836: 0x0fae, 0x837: 0x072e, 0x838: 0x07aa, 0x839: 0x07ee, 0x83a: 0x0d56, 0x83b: 0x10fe, + 0x83c: 0x11f6, 0x83d: 0x134a, 0x83e: 0x145e, 0x83f: 0x085e, + // Block 0x21, offset 0x840 + 0x840: 0x0912, 0x841: 0x0a1a, 0x842: 0x0b32, 0x843: 0x0cc2, 0x844: 0x0e7e, 0x845: 0x1042, + 0x846: 0x149a, 0x847: 0x157e, 0x848: 0x15d2, 0x849: 0x15ea, 0x84a: 0x083a, 0x84b: 0x0cf6, + 0x84c: 0x0da6, 0x84d: 0x13ee, 0x84e: 0x0afe, 0x84f: 0x0bda, 0x850: 0x0bf6, 0x851: 0x0c86, + 0x852: 0x0e6e, 0x853: 0x0eba, 0x854: 0x0f6a, 0x855: 0x108e, 0x856: 0x1132, 0x857: 0x1196, + 0x858: 0x13de, 0x859: 0x126e, 0x85a: 0x1406, 0x85b: 0x1482, 0x85c: 0x0812, 0x85d: 0x083e, + 0x85e: 0x0926, 0x85f: 0x0eaa, 0x860: 0x12f6, 0x861: 0x133e, 0x862: 0x0b1e, 0x863: 0x0b8e, + 0x864: 0x0c52, 0x865: 0x0db2, 0x866: 0x10da, 0x867: 0x0f26, 0x868: 0x073e, 0x869: 0x0982, + 0x86a: 0x0a66, 0x86b: 0x0aca, 0x86c: 0x0b9a, 0x86d: 0x0f42, 0x86e: 0x0f5e, 0x86f: 0x116e, + 0x870: 0x118e, 0x871: 0x1466, 0x872: 0x14e6, 0x873: 0x14f6, 0x874: 0x1532, 0x875: 0x0756, + 0x876: 0x1082, 0x877: 0x1452, 0x878: 0x14ce, 0x879: 0x0bb2, 0x87a: 0x071a, 0x87b: 0x077a, + 0x87c: 0x0a6a, 0x87d: 0x0a8a, 0x87e: 0x0cb2, 0x87f: 0x0d76, + // Block 0x22, offset 0x880 + 0x880: 0x0ec6, 0x881: 0x0fce, 0x882: 0x127a, 0x883: 0x141a, 0x884: 0x1626, 0x885: 0x0ce6, + 0x886: 0x14a6, 0x887: 0x0836, 0x888: 0x0d32, 0x889: 0x0d3e, 0x88a: 0x0e12, 0x88b: 0x0e4a, + 0x88c: 0x0f4e, 0x88d: 0x0faa, 0x88e: 0x102a, 0x88f: 0x110e, 0x890: 0x153e, 0x891: 0x07b2, + 0x892: 0x0c06, 0x893: 0x14b6, 0x894: 0x076a, 0x895: 0x0aae, 0x896: 0x0e32, 0x897: 0x13e2, + 0x898: 0x0b6a, 0x899: 0x0bba, 0x89a: 0x0d46, 0x89b: 0x0f32, 0x89c: 0x14be, 0x89d: 0x081a, + 0x89e: 0x0902, 0x89f: 0x0a9a, 0x8a0: 0x0cd6, 0x8a1: 0x0d22, 0x8a2: 0x0d62, 0x8a3: 0x0df6, + 0x8a4: 0x0f4a, 0x8a5: 0x0fbe, 0x8a6: 0x115a, 0x8a7: 0x12fa, 0x8a8: 0x1306, 0x8a9: 0x145a, + 0x8aa: 0x14da, 0x8ab: 0x0886, 0x8ac: 0x0e4e, 0x8ad: 0x0906, 0x8ae: 0x0eca, 0x8af: 0x0f6e, + 0x8b0: 0x128a, 0x8b1: 0x14c2, 0x8b2: 0x15ae, 0x8b3: 0x15d6, 0x8b4: 0x0d3a, 0x8b5: 0x0e2a, + 0x8b6: 0x11c6, 0x8b7: 0x10ba, 0x8b8: 0x10c6, 0x8b9: 0x10ea, 0x8ba: 0x0f1a, 0x8bb: 0x0ea2, + 0x8bc: 0x1366, 0x8bd: 0x0736, 0x8be: 0x122e, 0x8bf: 0x081e, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x080e, 0x8c1: 0x0b0e, 0x8c2: 0x0c2e, 0x8c3: 0x10f6, 0x8c4: 0x0a56, 0x8c5: 0x0e06, + 0x8c6: 0x0cf2, 0x8c7: 0x13ea, 0x8c8: 0x12ea, 0x8c9: 0x14ae, 0x8ca: 0x1326, 0x8cb: 0x0b2a, + 0x8cc: 0x078a, 0x8cd: 0x095e, 0x8d0: 0x09b2, + 0x8d2: 0x0ce2, 0x8d5: 0x07fa, 0x8d6: 0x0f22, 0x8d7: 0x0fe6, + 0x8d8: 0x104a, 0x8d9: 0x1066, 0x8da: 0x106a, 0x8db: 0x107e, 0x8dc: 0x14fe, 0x8dd: 0x10ee, + 0x8de: 0x1172, 0x8e0: 0x1292, 0x8e2: 0x1356, + 0x8e5: 0x140a, 0x8e6: 0x1436, + 0x8ea: 0x1552, 0x8eb: 0x1556, 0x8ec: 0x155a, 0x8ed: 0x15be, 0x8ee: 0x142e, 0x8ef: 0x14ca, + 0x8f0: 0x075a, 0x8f1: 0x077e, 0x8f2: 0x0792, 0x8f3: 0x084e, 0x8f4: 0x085a, 0x8f5: 0x089a, + 0x8f6: 0x094e, 0x8f7: 0x096a, 0x8f8: 0x0972, 0x8f9: 0x09ae, 0x8fa: 0x09ba, 0x8fb: 0x0a96, + 0x8fc: 0x0a9e, 0x8fd: 0x0ba6, 0x8fe: 0x0bce, 0x8ff: 0x0bd6, + // Block 0x24, offset 0x900 + 0x900: 0x0bee, 0x901: 0x0c9a, 0x902: 0x0cca, 0x903: 0x0cea, 0x904: 0x0d5a, 0x905: 0x0e1e, + 0x906: 0x0e3a, 0x907: 0x0e6a, 0x908: 0x0ebe, 0x909: 0x0ede, 0x90a: 0x0f52, 0x90b: 0x1032, + 0x90c: 0x104e, 0x90d: 0x1056, 0x90e: 0x1052, 0x90f: 0x105a, 0x910: 0x105e, 0x911: 0x1062, + 0x912: 0x1076, 0x913: 0x107a, 0x914: 0x109e, 0x915: 0x10b2, 0x916: 0x10ce, 0x917: 0x1132, + 0x918: 0x113a, 0x919: 0x1142, 0x91a: 0x1156, 0x91b: 0x117e, 0x91c: 0x11ce, 0x91d: 0x1202, + 0x91e: 0x1202, 0x91f: 0x126a, 0x920: 0x1312, 0x921: 0x132a, 0x922: 0x135e, 0x923: 0x1362, + 0x924: 0x13a6, 0x925: 0x13aa, 0x926: 0x1402, 0x927: 0x140a, 0x928: 0x14de, 0x929: 0x1522, + 0x92a: 0x153a, 0x92b: 0x0b9e, 0x92c: 0x1721, 0x92d: 0x11e6, + 0x930: 0x06e2, 0x931: 0x07e6, 0x932: 0x07a6, 0x933: 0x074e, 0x934: 0x078e, 0x935: 0x07ba, + 0x936: 0x084a, 0x937: 0x0866, 0x938: 0x094e, 0x939: 0x093a, 0x93a: 0x094a, 0x93b: 0x0966, + 0x93c: 0x09b2, 0x93d: 0x09c2, 0x93e: 0x0a06, 0x93f: 0x0a12, + // Block 0x25, offset 0x940 + 0x940: 0x0a2e, 0x941: 0x0a3e, 0x942: 0x0b26, 0x943: 0x0b2e, 0x944: 0x0b5e, 0x945: 0x0b7e, + 0x946: 0x0bae, 0x947: 0x0bc6, 0x948: 0x0bb6, 0x949: 0x0bd6, 0x94a: 0x0bca, 0x94b: 0x0bee, + 0x94c: 0x0c0a, 0x94d: 0x0c62, 0x94e: 0x0c6e, 0x94f: 0x0c76, 0x950: 0x0c9e, 0x951: 0x0ce2, + 0x952: 0x0d12, 0x953: 0x0d16, 0x954: 0x0d2a, 0x955: 0x0daa, 0x956: 0x0dba, 0x957: 0x0e12, + 0x958: 0x0e5e, 0x959: 0x0e56, 0x95a: 0x0e6a, 0x95b: 0x0e86, 0x95c: 0x0ebe, 0x95d: 0x1016, + 0x95e: 0x0ee2, 0x95f: 0x0f16, 0x960: 0x0f22, 0x961: 0x0f62, 0x962: 0x0f7e, 0x963: 0x0fa2, + 0x964: 0x0fc6, 0x965: 0x0fca, 0x966: 0x0fe6, 0x967: 0x0fea, 0x968: 0x0ffa, 0x969: 0x100e, + 0x96a: 0x100a, 0x96b: 0x103a, 0x96c: 0x10b6, 0x96d: 0x10ce, 0x96e: 0x10e6, 0x96f: 0x111e, + 0x970: 0x1132, 0x971: 0x114e, 0x972: 0x117e, 0x973: 0x1232, 0x974: 0x125a, 0x975: 0x12ce, + 0x976: 0x1316, 0x977: 0x1322, 0x978: 0x132a, 0x979: 0x1342, 0x97a: 0x1356, 0x97b: 0x1346, + 0x97c: 0x135e, 0x97d: 0x135a, 0x97e: 0x1352, 0x97f: 0x1362, + // Block 0x26, offset 0x980 + 0x980: 0x136e, 0x981: 0x13aa, 0x982: 0x13e6, 0x983: 0x1416, 0x984: 0x144e, 0x985: 0x146e, + 0x986: 0x14ba, 0x987: 0x14de, 0x988: 0x14fe, 0x989: 0x1512, 0x98a: 0x1522, 0x98b: 0x152e, + 0x98c: 0x153a, 0x98d: 0x158e, 0x98e: 0x162e, 0x98f: 0x16b8, 0x990: 0x16b3, 0x991: 0x16e5, + 0x992: 0x060a, 0x993: 0x0632, 0x994: 0x0636, 0x995: 0x1767, 0x996: 0x1794, 0x997: 0x180c, + 0x998: 0x161a, 0x999: 0x162a, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x06fe, 0x9c1: 0x06f6, 0x9c2: 0x0706, 0x9c3: 0x164a, 0x9c4: 0x074a, 0x9c5: 0x075a, + 0x9c6: 0x075e, 0x9c7: 0x0766, 0x9c8: 0x076e, 0x9c9: 0x0772, 0x9ca: 0x077e, 0x9cb: 0x0776, + 0x9cc: 0x05b6, 0x9cd: 0x165e, 0x9ce: 0x0792, 0x9cf: 0x0796, 0x9d0: 0x079a, 0x9d1: 0x07b6, + 0x9d2: 0x164f, 0x9d3: 0x05ba, 0x9d4: 0x07a2, 0x9d5: 0x07c2, 0x9d6: 0x1659, 0x9d7: 0x07d2, + 0x9d8: 0x07da, 0x9d9: 0x073a, 0x9da: 0x07e2, 0x9db: 0x07e6, 0x9dc: 0x1834, 0x9dd: 0x0802, + 0x9de: 0x080a, 0x9df: 0x05c2, 0x9e0: 0x0822, 0x9e1: 0x0826, 0x9e2: 0x082e, 0x9e3: 0x0832, + 0x9e4: 0x05c6, 0x9e5: 0x084a, 0x9e6: 0x084e, 0x9e7: 0x085a, 0x9e8: 0x0866, 0x9e9: 0x086a, + 0x9ea: 0x086e, 0x9eb: 0x0876, 0x9ec: 0x0896, 0x9ed: 0x089a, 0x9ee: 0x08a2, 0x9ef: 0x08b2, + 0x9f0: 0x08ba, 0x9f1: 0x08be, 0x9f2: 0x08be, 0x9f3: 0x08be, 0x9f4: 0x166d, 0x9f5: 0x0e96, + 0x9f6: 0x08d2, 0x9f7: 0x08da, 0x9f8: 0x1672, 0x9f9: 0x08e6, 0x9fa: 0x08ee, 0x9fb: 0x08f6, + 0x9fc: 0x091e, 0x9fd: 0x090a, 0x9fe: 0x0916, 0x9ff: 0x091a, + // Block 0x28, offset 0xa00 + 0xa00: 0x0922, 0xa01: 0x092a, 0xa02: 0x092e, 0xa03: 0x0936, 0xa04: 0x093e, 0xa05: 0x0942, + 0xa06: 0x0942, 0xa07: 0x094a, 0xa08: 0x0952, 0xa09: 0x0956, 0xa0a: 0x0962, 0xa0b: 0x0986, + 0xa0c: 0x096a, 0xa0d: 0x098a, 0xa0e: 0x096e, 0xa0f: 0x0976, 0xa10: 0x080e, 0xa11: 0x09d2, + 0xa12: 0x099a, 0xa13: 0x099e, 0xa14: 0x09a2, 0xa15: 0x0996, 0xa16: 0x09aa, 0xa17: 0x09a6, + 0xa18: 0x09be, 0xa19: 0x1677, 0xa1a: 0x09da, 0xa1b: 0x09de, 0xa1c: 0x09e6, 0xa1d: 0x09f2, + 0xa1e: 0x09fa, 0xa1f: 0x0a16, 0xa20: 0x167c, 0xa21: 0x1681, 0xa22: 0x0a22, 0xa23: 0x0a26, + 0xa24: 0x0a2a, 0xa25: 0x0a1e, 0xa26: 0x0a32, 0xa27: 0x05ca, 0xa28: 0x05ce, 0xa29: 0x0a3a, + 0xa2a: 0x0a42, 0xa2b: 0x0a42, 0xa2c: 0x1686, 0xa2d: 0x0a5e, 0xa2e: 0x0a62, 0xa2f: 0x0a66, + 0xa30: 0x0a6e, 0xa31: 0x168b, 0xa32: 0x0a76, 0xa33: 0x0a7a, 0xa34: 0x0b52, 0xa35: 0x0a82, + 0xa36: 0x05d2, 0xa37: 0x0a8e, 0xa38: 0x0a9e, 0xa39: 0x0aaa, 0xa3a: 0x0aa6, 0xa3b: 0x1695, + 0xa3c: 0x0ab2, 0xa3d: 0x169a, 0xa3e: 0x0abe, 0xa3f: 0x0aba, + // Block 0x29, offset 0xa40 + 0xa40: 0x0ac2, 0xa41: 0x0ad2, 0xa42: 0x0ad6, 0xa43: 0x05d6, 0xa44: 0x0ae6, 0xa45: 0x0aee, + 0xa46: 0x0af2, 0xa47: 0x0af6, 0xa48: 0x05da, 0xa49: 0x169f, 0xa4a: 0x05de, 0xa4b: 0x0b12, + 0xa4c: 0x0b16, 0xa4d: 0x0b1a, 0xa4e: 0x0b22, 0xa4f: 0x1866, 0xa50: 0x0b3a, 0xa51: 0x16a9, + 0xa52: 0x16a9, 0xa53: 0x11da, 0xa54: 0x0b4a, 0xa55: 0x0b4a, 0xa56: 0x05e2, 0xa57: 0x16cc, + 0xa58: 0x179e, 0xa59: 0x0b5a, 0xa5a: 0x0b62, 0xa5b: 0x05e6, 0xa5c: 0x0b76, 0xa5d: 0x0b86, + 0xa5e: 0x0b8a, 0xa5f: 0x0b92, 0xa60: 0x0ba2, 0xa61: 0x05ee, 0xa62: 0x05ea, 0xa63: 0x0ba6, + 0xa64: 0x16ae, 0xa65: 0x0baa, 0xa66: 0x0bbe, 0xa67: 0x0bc2, 0xa68: 0x0bc6, 0xa69: 0x0bc2, + 0xa6a: 0x0bd2, 0xa6b: 0x0bd6, 0xa6c: 0x0be6, 0xa6d: 0x0bde, 0xa6e: 0x0be2, 0xa6f: 0x0bea, + 0xa70: 0x0bee, 0xa71: 0x0bf2, 0xa72: 0x0bfe, 0xa73: 0x0c02, 0xa74: 0x0c1a, 0xa75: 0x0c22, + 0xa76: 0x0c32, 0xa77: 0x0c46, 0xa78: 0x16bd, 0xa79: 0x0c42, 0xa7a: 0x0c36, 0xa7b: 0x0c4e, + 0xa7c: 0x0c56, 0xa7d: 0x0c6a, 0xa7e: 0x16c2, 0xa7f: 0x0c72, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0c66, 0xa81: 0x0c5e, 0xa82: 0x05f2, 0xa83: 0x0c7a, 0xa84: 0x0c82, 0xa85: 0x0c8a, + 0xa86: 0x0c7e, 0xa87: 0x05f6, 0xa88: 0x0c9a, 0xa89: 0x0ca2, 0xa8a: 0x16c7, 0xa8b: 0x0cce, + 0xa8c: 0x0d02, 0xa8d: 0x0cde, 0xa8e: 0x0602, 0xa8f: 0x0cea, 0xa90: 0x05fe, 0xa91: 0x05fa, + 0xa92: 0x07c6, 0xa93: 0x07ca, 0xa94: 0x0d06, 0xa95: 0x0cee, 0xa96: 0x11ae, 0xa97: 0x0666, + 0xa98: 0x0d12, 0xa99: 0x0d16, 0xa9a: 0x0d1a, 0xa9b: 0x0d2e, 0xa9c: 0x0d26, 0xa9d: 0x16e0, + 0xa9e: 0x0606, 0xa9f: 0x0d42, 0xaa0: 0x0d36, 0xaa1: 0x0d52, 0xaa2: 0x0d5a, 0xaa3: 0x16ea, + 0xaa4: 0x0d5e, 0xaa5: 0x0d4a, 0xaa6: 0x0d66, 0xaa7: 0x060a, 0xaa8: 0x0d6a, 0xaa9: 0x0d6e, + 0xaaa: 0x0d72, 0xaab: 0x0d7e, 0xaac: 0x16ef, 0xaad: 0x0d86, 0xaae: 0x060e, 0xaaf: 0x0d92, + 0xab0: 0x16f4, 0xab1: 0x0d96, 0xab2: 0x0612, 0xab3: 0x0da2, 0xab4: 0x0dae, 0xab5: 0x0dba, + 0xab6: 0x0dbe, 0xab7: 0x16f9, 0xab8: 0x1690, 0xab9: 0x16fe, 0xaba: 0x0dde, 0xabb: 0x1703, + 0xabc: 0x0dea, 0xabd: 0x0df2, 0xabe: 0x0de2, 0xabf: 0x0dfe, + // Block 0x2b, offset 0xac0 + 0xac0: 0x0e0e, 0xac1: 0x0e1e, 0xac2: 0x0e12, 0xac3: 0x0e16, 0xac4: 0x0e22, 0xac5: 0x0e26, + 0xac6: 0x1708, 0xac7: 0x0e0a, 0xac8: 0x0e3e, 0xac9: 0x0e42, 0xaca: 0x0616, 0xacb: 0x0e56, + 0xacc: 0x0e52, 0xacd: 0x170d, 0xace: 0x0e36, 0xacf: 0x0e72, 0xad0: 0x1712, 0xad1: 0x1717, + 0xad2: 0x0e76, 0xad3: 0x0e8a, 0xad4: 0x0e86, 0xad5: 0x0e82, 0xad6: 0x061a, 0xad7: 0x0e8e, + 0xad8: 0x0e9e, 0xad9: 0x0e9a, 0xada: 0x0ea6, 0xadb: 0x1654, 0xadc: 0x0eb6, 0xadd: 0x171c, + 0xade: 0x0ec2, 0xadf: 0x1726, 0xae0: 0x0ed6, 0xae1: 0x0ee2, 0xae2: 0x0ef6, 0xae3: 0x172b, + 0xae4: 0x0f0a, 0xae5: 0x0f0e, 0xae6: 0x1730, 0xae7: 0x1735, 0xae8: 0x0f2a, 0xae9: 0x0f3a, + 0xaea: 0x061e, 0xaeb: 0x0f3e, 0xaec: 0x0622, 0xaed: 0x0622, 0xaee: 0x0f56, 0xaef: 0x0f5a, + 0xaf0: 0x0f62, 0xaf1: 0x0f66, 0xaf2: 0x0f72, 0xaf3: 0x0626, 0xaf4: 0x0f8a, 0xaf5: 0x173a, + 0xaf6: 0x0fa6, 0xaf7: 0x173f, 0xaf8: 0x0fb2, 0xaf9: 0x16a4, 0xafa: 0x0fc2, 0xafb: 0x1744, + 0xafc: 0x1749, 0xafd: 0x174e, 0xafe: 0x062a, 0xaff: 0x062e, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0ffa, 0xb01: 0x1758, 0xb02: 0x1753, 0xb03: 0x175d, 0xb04: 0x1762, 0xb05: 0x1002, + 0xb06: 0x1006, 0xb07: 0x1006, 0xb08: 0x100e, 0xb09: 0x0636, 0xb0a: 0x1012, 0xb0b: 0x063a, + 0xb0c: 0x063e, 0xb0d: 0x176c, 0xb0e: 0x1026, 0xb0f: 0x102e, 0xb10: 0x103a, 0xb11: 0x0642, + 0xb12: 0x1771, 0xb13: 0x105e, 0xb14: 0x1776, 0xb15: 0x177b, 0xb16: 0x107e, 0xb17: 0x1096, + 0xb18: 0x0646, 0xb19: 0x109e, 0xb1a: 0x10a2, 0xb1b: 0x10a6, 0xb1c: 0x1780, 0xb1d: 0x1785, + 0xb1e: 0x1785, 0xb1f: 0x10be, 0xb20: 0x064a, 0xb21: 0x178a, 0xb22: 0x10d2, 0xb23: 0x10d6, + 0xb24: 0x064e, 0xb25: 0x178f, 0xb26: 0x10f2, 0xb27: 0x0652, 0xb28: 0x1102, 0xb29: 0x10fa, + 0xb2a: 0x110a, 0xb2b: 0x1799, 0xb2c: 0x1122, 0xb2d: 0x0656, 0xb2e: 0x112e, 0xb2f: 0x1136, + 0xb30: 0x1146, 0xb31: 0x065a, 0xb32: 0x17a3, 0xb33: 0x17a8, 0xb34: 0x065e, 0xb35: 0x17ad, + 0xb36: 0x115e, 0xb37: 0x17b2, 0xb38: 0x116a, 0xb39: 0x1176, 0xb3a: 0x117e, 0xb3b: 0x17b7, + 0xb3c: 0x17bc, 0xb3d: 0x1192, 0xb3e: 0x17c1, 0xb3f: 0x119a, + // Block 0x2d, offset 0xb40 + 0xb40: 0x16d1, 0xb41: 0x0662, 0xb42: 0x11b2, 0xb43: 0x11b6, 0xb44: 0x066a, 0xb45: 0x11ba, + 0xb46: 0x0a36, 0xb47: 0x17c6, 0xb48: 0x17cb, 0xb49: 0x16d6, 0xb4a: 0x16db, 0xb4b: 0x11da, + 0xb4c: 0x11de, 0xb4d: 0x13f6, 0xb4e: 0x066e, 0xb4f: 0x120a, 0xb50: 0x1206, 0xb51: 0x120e, + 0xb52: 0x0842, 0xb53: 0x1212, 0xb54: 0x1216, 0xb55: 0x121a, 0xb56: 0x1222, 0xb57: 0x17d0, + 0xb58: 0x121e, 0xb59: 0x1226, 0xb5a: 0x123a, 0xb5b: 0x123e, 0xb5c: 0x122a, 0xb5d: 0x1242, + 0xb5e: 0x1256, 0xb5f: 0x126a, 0xb60: 0x1236, 0xb61: 0x124a, 0xb62: 0x124e, 0xb63: 0x1252, + 0xb64: 0x17d5, 0xb65: 0x17df, 0xb66: 0x17da, 0xb67: 0x0672, 0xb68: 0x1272, 0xb69: 0x1276, + 0xb6a: 0x127e, 0xb6b: 0x17f3, 0xb6c: 0x1282, 0xb6d: 0x17e4, 0xb6e: 0x0676, 0xb6f: 0x067a, + 0xb70: 0x17e9, 0xb71: 0x17ee, 0xb72: 0x067e, 0xb73: 0x12a2, 0xb74: 0x12a6, 0xb75: 0x12aa, + 0xb76: 0x12ae, 0xb77: 0x12ba, 0xb78: 0x12b6, 0xb79: 0x12c2, 0xb7a: 0x12be, 0xb7b: 0x12ce, + 0xb7c: 0x12c6, 0xb7d: 0x12ca, 0xb7e: 0x12d2, 0xb7f: 0x0682, + // Block 0x2e, offset 0xb80 + 0xb80: 0x12da, 0xb81: 0x12de, 0xb82: 0x0686, 0xb83: 0x12ee, 0xb84: 0x12f2, 0xb85: 0x17f8, + 0xb86: 0x12fe, 0xb87: 0x1302, 0xb88: 0x068a, 0xb89: 0x130e, 0xb8a: 0x05be, 0xb8b: 0x17fd, + 0xb8c: 0x1802, 0xb8d: 0x068e, 0xb8e: 0x0692, 0xb8f: 0x133a, 0xb90: 0x1352, 0xb91: 0x136e, + 0xb92: 0x137e, 0xb93: 0x1807, 0xb94: 0x1392, 0xb95: 0x1396, 0xb96: 0x13ae, 0xb97: 0x13ba, + 0xb98: 0x1811, 0xb99: 0x1663, 0xb9a: 0x13c6, 0xb9b: 0x13c2, 0xb9c: 0x13ce, 0xb9d: 0x1668, + 0xb9e: 0x13da, 0xb9f: 0x13e6, 0xba0: 0x1816, 0xba1: 0x181b, 0xba2: 0x1426, 0xba3: 0x1432, + 0xba4: 0x143a, 0xba5: 0x1820, 0xba6: 0x143e, 0xba7: 0x146a, 0xba8: 0x1476, 0xba9: 0x147a, + 0xbaa: 0x1472, 0xbab: 0x1486, 0xbac: 0x148a, 0xbad: 0x1825, 0xbae: 0x1496, 0xbaf: 0x0696, + 0xbb0: 0x149e, 0xbb1: 0x182a, 0xbb2: 0x069a, 0xbb3: 0x14d6, 0xbb4: 0x0ac6, 0xbb5: 0x14ee, + 0xbb6: 0x182f, 0xbb7: 0x1839, 0xbb8: 0x069e, 0xbb9: 0x06a2, 0xbba: 0x1516, 0xbbb: 0x183e, + 0xbbc: 0x06a6, 0xbbd: 0x1843, 0xbbe: 0x152e, 0xbbf: 0x152e, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x1536, 0xbc1: 0x1848, 0xbc2: 0x154e, 0xbc3: 0x06aa, 0xbc4: 0x155e, 0xbc5: 0x156a, + 0xbc6: 0x1572, 0xbc7: 0x157a, 0xbc8: 0x06ae, 0xbc9: 0x184d, 0xbca: 0x158e, 0xbcb: 0x15aa, + 0xbcc: 0x15b6, 0xbcd: 0x06b2, 0xbce: 0x06b6, 0xbcf: 0x15ba, 0xbd0: 0x1852, 0xbd1: 0x06ba, + 0xbd2: 0x1857, 0xbd3: 0x185c, 0xbd4: 0x1861, 0xbd5: 0x15de, 0xbd6: 0x06be, 0xbd7: 0x15f2, + 0xbd8: 0x15fa, 0xbd9: 0x15fe, 0xbda: 0x1606, 0xbdb: 0x160e, 0xbdc: 0x1616, 0xbdd: 0x186b, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, + 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, + 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, + 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, + 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, + 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, + // Block 0x5, offset 0x140 + 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, + 0x14d: 0x5c, + 0x15c: 0x5d, 0x15f: 0x5e, + 0x162: 0x5f, 0x164: 0x60, + 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16b: 0x64, 0x16c: 0x0e, 0x16d: 0x65, 0x16e: 0x66, 0x16f: 0x67, + 0x170: 0x68, 0x173: 0x69, 0x177: 0x0f, + 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, + // Block 0x6, offset 0x180 + 0x180: 0x6a, 0x183: 0x6b, 0x184: 0x6c, 0x186: 0x6d, 0x187: 0x6e, + 0x188: 0x6f, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x70, 0x18c: 0x71, + 0x1ab: 0x72, + 0x1b3: 0x73, 0x1b5: 0x74, 0x1b7: 0x75, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x76, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x77, 0x1c5: 0x78, + 0x1c9: 0x79, 0x1cc: 0x7a, 0x1cd: 0x7b, + // Block 0x8, offset 0x200 + 0x219: 0x7c, 0x21a: 0x7d, 0x21b: 0x7e, + 0x220: 0x7f, 0x223: 0x80, 0x224: 0x81, 0x225: 0x82, 0x226: 0x83, 0x227: 0x84, + 0x22a: 0x85, 0x22b: 0x86, 0x22f: 0x87, + 0x230: 0x88, 0x231: 0x89, 0x232: 0x8a, 0x233: 0x8b, 0x234: 0x8c, 0x235: 0x8d, 0x236: 0x8e, 0x237: 0x88, + 0x238: 0x89, 0x239: 0x8a, 0x23a: 0x8b, 0x23b: 0x8c, 0x23c: 0x8d, 0x23d: 0x8e, 0x23e: 0x88, 0x23f: 0x89, + // Block 0x9, offset 0x240 + 0x240: 0x8a, 0x241: 0x8b, 0x242: 0x8c, 0x243: 0x8d, 0x244: 0x8e, 0x245: 0x88, 0x246: 0x89, 0x247: 0x8a, + 0x248: 0x8b, 0x249: 0x8c, 0x24a: 0x8d, 0x24b: 0x8e, 0x24c: 0x88, 0x24d: 0x89, 0x24e: 0x8a, 0x24f: 0x8b, + 0x250: 0x8c, 0x251: 0x8d, 0x252: 0x8e, 0x253: 0x88, 0x254: 0x89, 0x255: 0x8a, 0x256: 0x8b, 0x257: 0x8c, + 0x258: 0x8d, 0x259: 0x8e, 0x25a: 0x88, 0x25b: 0x89, 0x25c: 0x8a, 0x25d: 0x8b, 0x25e: 0x8c, 0x25f: 0x8d, + 0x260: 0x8e, 0x261: 0x88, 0x262: 0x89, 0x263: 0x8a, 0x264: 0x8b, 0x265: 0x8c, 0x266: 0x8d, 0x267: 0x8e, + 0x268: 0x88, 0x269: 0x89, 0x26a: 0x8a, 0x26b: 0x8b, 0x26c: 0x8c, 0x26d: 0x8d, 0x26e: 0x8e, 0x26f: 0x88, + 0x270: 0x89, 0x271: 0x8a, 0x272: 0x8b, 0x273: 0x8c, 0x274: 0x8d, 0x275: 0x8e, 0x276: 0x88, 0x277: 0x89, + 0x278: 0x8a, 0x279: 0x8b, 0x27a: 0x8c, 0x27b: 0x8d, 0x27c: 0x8e, 0x27d: 0x88, 0x27e: 0x89, 0x27f: 0x8a, + // Block 0xa, offset 0x280 + 0x280: 0x8b, 0x281: 0x8c, 0x282: 0x8d, 0x283: 0x8e, 0x284: 0x88, 0x285: 0x89, 0x286: 0x8a, 0x287: 0x8b, + 0x288: 0x8c, 0x289: 0x8d, 0x28a: 0x8e, 0x28b: 0x88, 0x28c: 0x89, 0x28d: 0x8a, 0x28e: 0x8b, 0x28f: 0x8c, + 0x290: 0x8d, 0x291: 0x8e, 0x292: 0x88, 0x293: 0x89, 0x294: 0x8a, 0x295: 0x8b, 0x296: 0x8c, 0x297: 0x8d, + 0x298: 0x8e, 0x299: 0x88, 0x29a: 0x89, 0x29b: 0x8a, 0x29c: 0x8b, 0x29d: 0x8c, 0x29e: 0x8d, 0x29f: 0x8e, + 0x2a0: 0x88, 0x2a1: 0x89, 0x2a2: 0x8a, 0x2a3: 0x8b, 0x2a4: 0x8c, 0x2a5: 0x8d, 0x2a6: 0x8e, 0x2a7: 0x88, + 0x2a8: 0x89, 0x2a9: 0x8a, 0x2aa: 0x8b, 0x2ab: 0x8c, 0x2ac: 0x8d, 0x2ad: 0x8e, 0x2ae: 0x88, 0x2af: 0x89, + 0x2b0: 0x8a, 0x2b1: 0x8b, 0x2b2: 0x8c, 0x2b3: 0x8d, 0x2b4: 0x8e, 0x2b5: 0x88, 0x2b6: 0x89, 0x2b7: 0x8a, + 0x2b8: 0x8b, 0x2b9: 0x8c, 0x2ba: 0x8d, 0x2bb: 0x8e, 0x2bc: 0x88, 0x2bd: 0x89, 0x2be: 0x8a, 0x2bf: 0x8b, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8c, 0x2c1: 0x8d, 0x2c2: 0x8e, 0x2c3: 0x88, 0x2c4: 0x89, 0x2c5: 0x8a, 0x2c6: 0x8b, 0x2c7: 0x8c, + 0x2c8: 0x8d, 0x2c9: 0x8e, 0x2ca: 0x88, 0x2cb: 0x89, 0x2cc: 0x8a, 0x2cd: 0x8b, 0x2ce: 0x8c, 0x2cf: 0x8d, + 0x2d0: 0x8e, 0x2d1: 0x88, 0x2d2: 0x89, 0x2d3: 0x8a, 0x2d4: 0x8b, 0x2d5: 0x8c, 0x2d6: 0x8d, 0x2d7: 0x8e, + 0x2d8: 0x88, 0x2d9: 0x89, 0x2da: 0x8a, 0x2db: 0x8b, 0x2dc: 0x8c, 0x2dd: 0x8d, 0x2de: 0x8f, + // Block 0xc, offset 0x300 + 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, + 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x90, 0x32d: 0x91, 0x32e: 0x92, + 0x331: 0x93, 0x332: 0x94, 0x333: 0x95, 0x334: 0x96, + 0x338: 0x97, 0x339: 0x98, 0x33a: 0x99, 0x33b: 0x9a, 0x33e: 0x9b, 0x33f: 0x9c, + // Block 0xd, offset 0x340 + 0x347: 0x9d, + 0x34b: 0x9e, 0x34d: 0x9f, + 0x368: 0xa0, 0x36b: 0xa1, + 0x374: 0xa2, + 0x37a: 0xa3, 0x37d: 0xa4, + // Block 0xe, offset 0x380 + 0x381: 0xa5, 0x382: 0xa6, 0x384: 0xa7, 0x385: 0x83, 0x387: 0xa8, + 0x388: 0xa9, 0x38b: 0xaa, 0x38c: 0xab, 0x38d: 0xac, + 0x391: 0xad, 0x392: 0xae, 0x393: 0xaf, 0x396: 0xb0, 0x397: 0xb1, + 0x398: 0x74, 0x39a: 0xb2, 0x39c: 0xb3, + 0x3a0: 0xb4, 0x3a4: 0xb5, 0x3a5: 0xb6, 0x3a7: 0xb7, + 0x3a8: 0xb8, 0x3a9: 0xb9, 0x3aa: 0xba, + 0x3b0: 0x74, 0x3b5: 0xbb, 0x3b6: 0xbc, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xbd, 0x3ec: 0xbe, + 0x3ff: 0xbf, + // Block 0x10, offset 0x400 + 0x432: 0xc0, + // Block 0x11, offset 0x440 + 0x445: 0xc1, 0x446: 0xc2, 0x447: 0xc3, + 0x449: 0xc4, + // Block 0x12, offset 0x480 + 0x480: 0xc5, 0x484: 0xbe, + 0x48b: 0xc6, + 0x4a3: 0xc7, 0x4a5: 0xc8, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xc9, + // Block 0x14, offset 0x500 + 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, + 0x528: 0x2d, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 156 entries, 312 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x120, 0x122, 0x12b, 0x12d, 0x130, 0x132, 0x13d, 0x141, 0x14f, 0x152, 0x158, 0x15e, 0x169, 0x16d, 0x16f, 0x171, 0x173, 0x175, 0x177, 0x17d, 0x181, 0x183, 0x185, 0x18d, 0x191, 0x194, 0x196, 0x198, 0x19b, 0x19e, 0x1a0, 0x1a2, 0x1a4, 0x1a6, 0x1ac, 0x1af, 0x1b1, 0x1b8, 0x1be, 0x1c4, 0x1cc, 0x1d2, 0x1d8, 0x1de, 0x1e2, 0x1f0, 0x1f9, 0x1fc, 0x1ff, 0x201, 0x204, 0x206, 0x20a, 0x20f, 0x211, 0x213, 0x218, 0x21e, 0x220, 0x222, 0x224, 0x22a, 0x22d, 0x22f, 0x231, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x254, 0x25c, 0x260, 0x267, 0x26a, 0x270, 0x272, 0x275, 0x277, 0x27a, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x289, 0x28c, 0x28e, 0x290, 0x292, 0x294, 0x296, 0x2a3, 0x2ad, 0x2af, 0x2b1, 0x2b7, 0x2b9, 0x2bb, 0x2be} + +// nfcSparseValues: 704 entries, 2816 bytes +var nfcSparseValues = [704]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x46f9, lo: 0xa0, hi: 0xa1}, + {value: 0x472b, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4857, lo: 0x8a, hi: 0x8a}, + {value: 0x4875, lo: 0x8b, hi: 0x8b}, + {value: 0x36de, lo: 0x8c, hi: 0x8c}, + {value: 0x36f6, lo: 0x8d, hi: 0x8d}, + {value: 0x488d, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3714, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37bc, lo: 0x90, hi: 0x90}, + {value: 0x37c8, lo: 0x91, hi: 0x91}, + {value: 0x37b6, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x382e, lo: 0x97, hi: 0x97}, + {value: 0x37f8, lo: 0x9c, hi: 0x9c}, + {value: 0x37e0, lo: 0x9d, hi: 0x9d}, + {value: 0x380a, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x3834, lo: 0xb6, hi: 0xb6}, + {value: 0x383a, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8114, lo: 0x81, hi: 0x82}, + {value: 0x8133, lo: 0x84, hi: 0x84}, + {value: 0x812e, lo: 0x85, hi: 0x85}, + {value: 0x810e, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8133, lo: 0x90, hi: 0x97}, + {value: 0x811a, lo: 0x98, hi: 0x98}, + {value: 0x811b, lo: 0x99, hi: 0x99}, + {value: 0x811c, lo: 0x9a, hi: 0x9a}, + {value: 0x3858, lo: 0xa2, hi: 0xa2}, + {value: 0x385e, lo: 0xa3, hi: 0xa3}, + {value: 0x386a, lo: 0xa4, hi: 0xa4}, + {value: 0x3864, lo: 0xa5, hi: 0xa5}, + {value: 0x3870, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x3882, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x3876, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x387c, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8133, lo: 0x96, hi: 0x9c}, + {value: 0x8133, lo: 0x9f, hi: 0xa2}, + {value: 0x812e, lo: 0xa3, hi: 0xa3}, + {value: 0x8133, lo: 0xa4, hi: 0xa4}, + {value: 0x8133, lo: 0xa7, hi: 0xa8}, + {value: 0x812e, lo: 0xaa, hi: 0xaa}, + {value: 0x8133, lo: 0xab, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x8120, lo: 0x91, hi: 0x91}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + {value: 0x812e, lo: 0xb1, hi: 0xb1}, + {value: 0x8133, lo: 0xb2, hi: 0xb3}, + {value: 0x812e, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb5, hi: 0xb6}, + {value: 0x812e, lo: 0xb7, hi: 0xb9}, + {value: 0x8133, lo: 0xba, hi: 0xba}, + {value: 0x812e, lo: 0xbb, hi: 0xbc}, + {value: 0x8133, lo: 0xbd, hi: 0xbd}, + {value: 0x812e, lo: 0xbe, hi: 0xbe}, + {value: 0x8133, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8133, lo: 0x80, hi: 0x80}, + {value: 0x8133, lo: 0x81, hi: 0x81}, + {value: 0x812e, lo: 0x82, hi: 0x83}, + {value: 0x812e, lo: 0x84, hi: 0x85}, + {value: 0x812e, lo: 0x86, hi: 0x87}, + {value: 0x812e, lo: 0x88, hi: 0x89}, + {value: 0x8133, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x04}, + {value: 0x8133, lo: 0xab, hi: 0xb1}, + {value: 0x812e, lo: 0xb2, hi: 0xb2}, + {value: 0x8133, lo: 0xb3, hi: 0xb3}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + // Block 0xd, offset 0x63 + {value: 0x0000, lo: 0x04}, + {value: 0x8133, lo: 0x96, hi: 0x99}, + {value: 0x8133, lo: 0x9b, hi: 0xa3}, + {value: 0x8133, lo: 0xa5, hi: 0xa7}, + {value: 0x8133, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x68 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x6a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3eef, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ef7, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3eff, lo: 0xb4, hi: 0xb4}, + {value: 0x9903, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x72 + {value: 0x0008, lo: 0x06}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x8133, lo: 0x91, hi: 0x91}, + {value: 0x812e, lo: 0x92, hi: 0x92}, + {value: 0x8133, lo: 0x93, hi: 0x93}, + {value: 0x8133, lo: 0x94, hi: 0x94}, + {value: 0x4533, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x79 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x7c + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cab, lo: 0x8b, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x4573, lo: 0x9c, hi: 0x9d}, + {value: 0x4583, lo: 0x9f, hi: 0x9f}, + {value: 0x8133, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x84 + {value: 0x0000, lo: 0x03}, + {value: 0x45ab, lo: 0xb3, hi: 0xb3}, + {value: 0x45b3, lo: 0xb6, hi: 0xb6}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0x88 + {value: 0x0008, lo: 0x03}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x458b, lo: 0x99, hi: 0x9b}, + {value: 0x45a3, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0x8c + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0x8e + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0x90 + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cc3, lo: 0x88, hi: 0x88}, + {value: 0x2cbb, lo: 0x8b, hi: 0x8b}, + {value: 0x2ccb, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45bb, lo: 0x9c, hi: 0x9c}, + {value: 0x45c3, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0x99 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cd3, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0x9d + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cdb, lo: 0x8a, hi: 0x8a}, + {value: 0x2ceb, lo: 0x8b, hi: 0x8b}, + {value: 0x2ce3, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xa4 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3f07, lo: 0x88, hi: 0x88}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x8121, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xa9 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xac + {value: 0x0000, lo: 0x09}, + {value: 0x2cf3, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cfb, lo: 0x87, hi: 0x87}, + {value: 0x2d03, lo: 0x88, hi: 0x88}, + {value: 0x2f67, lo: 0x8a, hi: 0x8a}, + {value: 0x2def, lo: 0x8b, hi: 0x8b}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2d0b, lo: 0x8a, hi: 0x8a}, + {value: 0x2d1b, lo: 0x8b, hi: 0x8b}, + {value: 0x2d13, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xc0 + {value: 0x6bdd, lo: 0x07}, + {value: 0x9905, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3f0f, lo: 0x9a, hi: 0x9a}, + {value: 0x2f6f, lo: 0x9c, hi: 0x9c}, + {value: 0x2dfa, lo: 0x9d, hi: 0x9d}, + {value: 0x2d23, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xc8 + {value: 0x0000, lo: 0x02}, + {value: 0x8123, lo: 0xb8, hi: 0xb9}, + {value: 0x8105, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xcb + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xcd + {value: 0x0000, lo: 0x02}, + {value: 0x8125, lo: 0xb8, hi: 0xb9}, + {value: 0x8105, lo: 0xba, hi: 0xba}, + // Block 0x23, offset 0xd0 + {value: 0x0000, lo: 0x01}, + {value: 0x8126, lo: 0x88, hi: 0x8b}, + // Block 0x24, offset 0xd2 + {value: 0x0000, lo: 0x04}, + {value: 0x812e, lo: 0x98, hi: 0x99}, + {value: 0x812e, lo: 0xb5, hi: 0xb5}, + {value: 0x812e, lo: 0xb7, hi: 0xb7}, + {value: 0x812c, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xd7 + {value: 0x0000, lo: 0x10}, + {value: 0x264a, lo: 0x83, hi: 0x83}, + {value: 0x2651, lo: 0x8d, hi: 0x8d}, + {value: 0x2658, lo: 0x92, hi: 0x92}, + {value: 0x265f, lo: 0x97, hi: 0x97}, + {value: 0x2666, lo: 0x9c, hi: 0x9c}, + {value: 0x2643, lo: 0xa9, hi: 0xa9}, + {value: 0x8127, lo: 0xb1, hi: 0xb1}, + {value: 0x8128, lo: 0xb2, hi: 0xb2}, + {value: 0x4a9b, lo: 0xb3, hi: 0xb3}, + {value: 0x8129, lo: 0xb4, hi: 0xb4}, + {value: 0x4aa4, lo: 0xb5, hi: 0xb5}, + {value: 0x45cb, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x45d3, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8128, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0xe8 + {value: 0x0000, lo: 0x0b}, + {value: 0x8128, lo: 0x80, hi: 0x80}, + {value: 0x4aad, lo: 0x81, hi: 0x81}, + {value: 0x8133, lo: 0x82, hi: 0x83}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0x86, hi: 0x87}, + {value: 0x2674, lo: 0x93, hi: 0x93}, + {value: 0x267b, lo: 0x9d, hi: 0x9d}, + {value: 0x2682, lo: 0xa2, hi: 0xa2}, + {value: 0x2689, lo: 0xa7, hi: 0xa7}, + {value: 0x2690, lo: 0xac, hi: 0xac}, + {value: 0x266d, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0xf4 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0xf6 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d2b, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + {value: 0x8105, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0xfc + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0xfe + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0x100 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x102 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x104 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x106 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x108 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x94, hi: 0x94}, + {value: 0x8105, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x10b + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x92, hi: 0x92}, + {value: 0x8133, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x10e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x110 + {value: 0x0004, lo: 0x02}, + {value: 0x812f, lo: 0xb9, hi: 0xba}, + {value: 0x812e, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x113 + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x97, hi: 0x97}, + {value: 0x812e, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x116 + {value: 0x0000, lo: 0x03}, + {value: 0x8105, lo: 0xa0, hi: 0xa0}, + {value: 0x8133, lo: 0xb5, hi: 0xbc}, + {value: 0x812e, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x11a + {value: 0x0000, lo: 0x05}, + {value: 0x8133, lo: 0xb0, hi: 0xb4}, + {value: 0x812e, lo: 0xb5, hi: 0xba}, + {value: 0x8133, lo: 0xbb, hi: 0xbc}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + {value: 0x812e, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x120 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x80, hi: 0x80}, + // Block 0x37, offset 0x122 + {value: 0x0000, lo: 0x08}, + {value: 0x2d73, lo: 0x80, hi: 0x80}, + {value: 0x2d7b, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d83, lo: 0x83, hi: 0x83}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0xab, hi: 0xab}, + {value: 0x812e, lo: 0xac, hi: 0xac}, + {value: 0x8133, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x12b + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x12d + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xa6, hi: 0xa6}, + {value: 0x8105, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x130 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x132 + {value: 0x0000, lo: 0x0a}, + {value: 0x8133, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812e, lo: 0x95, hi: 0x99}, + {value: 0x8133, lo: 0x9a, hi: 0x9b}, + {value: 0x812e, lo: 0x9c, hi: 0x9f}, + {value: 0x8133, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x8133, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x13d + {value: 0x0004, lo: 0x03}, + {value: 0x0436, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3d, offset 0x141 + {value: 0x0000, lo: 0x0d}, + {value: 0x8133, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8133, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8133, lo: 0x9b, hi: 0x9c}, + {value: 0x8133, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8133, lo: 0xa7, hi: 0xa7}, + {value: 0x812e, lo: 0xa8, hi: 0xa8}, + {value: 0x8133, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812e, lo: 0xac, hi: 0xaf}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + // Block 0x3e, offset 0x14f + {value: 0x4292, lo: 0x02}, + {value: 0x01bb, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x3f, offset 0x152 + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bd0, lo: 0x9a, hi: 0x9b}, + {value: 0x3bde, lo: 0xae, hi: 0xae}, + // Block 0x40, offset 0x158 + {value: 0x000e, lo: 0x05}, + {value: 0x3be5, lo: 0x8d, hi: 0x8e}, + {value: 0x3bec, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x41, offset 0x15e + {value: 0x63f1, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3bfa, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3c01, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3c08, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3c0f, lo: 0xa4, hi: 0xa5}, + {value: 0x3c16, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x42, offset 0x169 + {value: 0x0007, lo: 0x03}, + {value: 0x3c7f, lo: 0xa0, hi: 0xa1}, + {value: 0x3ca9, lo: 0xa2, hi: 0xa3}, + {value: 0x3cd3, lo: 0xaa, hi: 0xad}, + // Block 0x43, offset 0x16d + {value: 0x0004, lo: 0x01}, + {value: 0x048e, lo: 0xa9, hi: 0xaa}, + // Block 0x44, offset 0x16f + {value: 0x0000, lo: 0x01}, + {value: 0x44f4, lo: 0x9c, hi: 0x9c}, + // Block 0x45, offset 0x171 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xaf, hi: 0xb1}, + // Block 0x46, offset 0x173 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x47, offset 0x175 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xa0, hi: 0xbf}, + // Block 0x48, offset 0x177 + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x8134, lo: 0xac, hi: 0xac}, + {value: 0x812f, lo: 0xad, hi: 0xad}, + {value: 0x8130, lo: 0xae, hi: 0xaf}, + // Block 0x49, offset 0x17d + {value: 0x0000, lo: 0x03}, + {value: 0x4ab6, lo: 0xb3, hi: 0xb3}, + {value: 0x4ab6, lo: 0xb5, hi: 0xb6}, + {value: 0x4ab6, lo: 0xba, hi: 0xbf}, + // Block 0x4a, offset 0x181 + {value: 0x0000, lo: 0x01}, + {value: 0x4ab6, lo: 0x8f, hi: 0xa3}, + // Block 0x4b, offset 0x183 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4c, offset 0x185 + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4d, offset 0x18d + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4e, offset 0x191 + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0xaf, hi: 0xaf}, + {value: 0x8133, lo: 0xb4, hi: 0xbd}, + // Block 0x4f, offset 0x194 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x9e, hi: 0x9f}, + // Block 0x50, offset 0x196 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb0, hi: 0xb1}, + // Block 0x51, offset 0x198 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x86, hi: 0x86}, + {value: 0x8105, lo: 0xac, hi: 0xac}, + // Block 0x52, offset 0x19b + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0xa0, hi: 0xb1}, + // Block 0x53, offset 0x19e + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xab, hi: 0xad}, + // Block 0x54, offset 0x1a0 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x93, hi: 0x93}, + // Block 0x55, offset 0x1a2 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xb3, hi: 0xb3}, + // Block 0x56, offset 0x1a4 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x80, hi: 0x80}, + // Block 0x57, offset 0x1a6 + {value: 0x0000, lo: 0x05}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + {value: 0x8133, lo: 0xb2, hi: 0xb3}, + {value: 0x812e, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb7, hi: 0xb8}, + {value: 0x8133, lo: 0xbe, hi: 0xbf}, + // Block 0x58, offset 0x1ac + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x81, hi: 0x81}, + {value: 0x8105, lo: 0xb6, hi: 0xb6}, + // Block 0x59, offset 0x1af + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xad, hi: 0xad}, + // Block 0x5a, offset 0x1b1 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5b, offset 0x1b8 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5c, offset 0x1be + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5d, offset 0x1c4 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5e, offset 0x1cc + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x5f, offset 0x1d2 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x60, offset 0x1d8 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x61, offset 0x1de + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x62, offset 0x1e2 + {value: 0x0006, lo: 0x0d}, + {value: 0x43a7, lo: 0x9d, hi: 0x9d}, + {value: 0x8116, lo: 0x9e, hi: 0x9e}, + {value: 0x4419, lo: 0x9f, hi: 0x9f}, + {value: 0x4407, lo: 0xaa, hi: 0xab}, + {value: 0x450b, lo: 0xac, hi: 0xac}, + {value: 0x4513, lo: 0xad, hi: 0xad}, + {value: 0x435f, lo: 0xae, hi: 0xb1}, + {value: 0x437d, lo: 0xb2, hi: 0xb4}, + {value: 0x4395, lo: 0xb5, hi: 0xb6}, + {value: 0x43a1, lo: 0xb8, hi: 0xb8}, + {value: 0x43ad, lo: 0xb9, hi: 0xbb}, + {value: 0x43c5, lo: 0xbc, hi: 0xbc}, + {value: 0x43cb, lo: 0xbe, hi: 0xbe}, + // Block 0x63, offset 0x1f0 + {value: 0x0006, lo: 0x08}, + {value: 0x43d1, lo: 0x80, hi: 0x81}, + {value: 0x43dd, lo: 0x83, hi: 0x84}, + {value: 0x43ef, lo: 0x86, hi: 0x89}, + {value: 0x4413, lo: 0x8a, hi: 0x8a}, + {value: 0x438f, lo: 0x8b, hi: 0x8b}, + {value: 0x4377, lo: 0x8c, hi: 0x8c}, + {value: 0x43bf, lo: 0x8d, hi: 0x8d}, + {value: 0x43e9, lo: 0x8e, hi: 0x8e}, + // Block 0x64, offset 0x1f9 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x65, offset 0x1fc + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x66, offset 0x1ff + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x67, offset 0x201 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x68, offset 0x204 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x69, offset 0x206 + {value: 0x0000, lo: 0x03}, + {value: 0x8133, lo: 0xa0, hi: 0xa6}, + {value: 0x812e, lo: 0xa7, hi: 0xad}, + {value: 0x8133, lo: 0xae, hi: 0xaf}, + // Block 0x6a, offset 0x20a + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6b, offset 0x20f + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6c, offset 0x211 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6d, offset 0x213 + {value: 0x0000, lo: 0x04}, + {value: 0x4ab6, lo: 0x9e, hi: 0x9f}, + {value: 0x4ab6, lo: 0xa3, hi: 0xa3}, + {value: 0x4ab6, lo: 0xa5, hi: 0xa6}, + {value: 0x4ab6, lo: 0xaa, hi: 0xaf}, + // Block 0x6e, offset 0x218 + {value: 0x0000, lo: 0x05}, + {value: 0x4ab6, lo: 0x82, hi: 0x87}, + {value: 0x4ab6, lo: 0x8a, hi: 0x8f}, + {value: 0x4ab6, lo: 0x92, hi: 0x97}, + {value: 0x4ab6, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x6f, offset 0x21e + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + // Block 0x70, offset 0x220 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xa0, hi: 0xa0}, + // Block 0x71, offset 0x222 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb6, hi: 0xba}, + // Block 0x72, offset 0x224 + {value: 0x002d, lo: 0x05}, + {value: 0x812e, lo: 0x8d, hi: 0x8d}, + {value: 0x8133, lo: 0x8f, hi: 0x8f}, + {value: 0x8133, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x73, offset 0x22a + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0xa5, hi: 0xa5}, + {value: 0x812e, lo: 0xa6, hi: 0xa6}, + // Block 0x74, offset 0x22d + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xa4, hi: 0xa7}, + // Block 0x75, offset 0x22f + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xab, hi: 0xac}, + // Block 0x76, offset 0x231 + {value: 0x0000, lo: 0x05}, + {value: 0x812e, lo: 0x86, hi: 0x87}, + {value: 0x8133, lo: 0x88, hi: 0x8a}, + {value: 0x812e, lo: 0x8b, hi: 0x8b}, + {value: 0x8133, lo: 0x8c, hi: 0x8c}, + {value: 0x812e, lo: 0x8d, hi: 0x90}, + // Block 0x77, offset 0x237 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x86, hi: 0x86}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x78, offset 0x23a + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x424f, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4259, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x4263, lo: 0xab, hi: 0xab}, + {value: 0x8105, lo: 0xb9, hi: 0xba}, + // Block 0x79, offset 0x242 + {value: 0x0000, lo: 0x06}, + {value: 0x8133, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d8b, lo: 0xae, hi: 0xae}, + {value: 0x2d95, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8105, lo: 0xb3, hi: 0xb4}, + // Block 0x7a, offset 0x249 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x80, hi: 0x80}, + {value: 0x8103, lo: 0x8a, hi: 0x8a}, + // Block 0x7b, offset 0x24c + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb5, hi: 0xb5}, + {value: 0x8103, lo: 0xb6, hi: 0xb6}, + // Block 0x7c, offset 0x24f + {value: 0x0002, lo: 0x01}, + {value: 0x8103, lo: 0xa9, hi: 0xaa}, + // Block 0x7d, offset 0x251 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x7e, offset 0x254 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d9f, lo: 0x8b, hi: 0x8b}, + {value: 0x2da9, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8133, lo: 0xa6, hi: 0xac}, + {value: 0x8133, lo: 0xb0, hi: 0xb4}, + // Block 0x7f, offset 0x25c + {value: 0x0000, lo: 0x03}, + {value: 0x8105, lo: 0x82, hi: 0x82}, + {value: 0x8103, lo: 0x86, hi: 0x86}, + {value: 0x8133, lo: 0x9e, hi: 0x9e}, + // Block 0x80, offset 0x260 + {value: 0x6b4d, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2dbd, lo: 0xbb, hi: 0xbb}, + {value: 0x2db3, lo: 0xbc, hi: 0xbd}, + {value: 0x2dc7, lo: 0xbe, hi: 0xbe}, + // Block 0x81, offset 0x267 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x82, hi: 0x82}, + {value: 0x8103, lo: 0x83, hi: 0x83}, + // Block 0x82, offset 0x26a + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dd1, lo: 0xba, hi: 0xba}, + {value: 0x2ddb, lo: 0xbb, hi: 0xbb}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x83, offset 0x270 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0x80, hi: 0x80}, + // Block 0x84, offset 0x272 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb6, hi: 0xb6}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + // Block 0x85, offset 0x275 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xab, hi: 0xab}, + // Block 0x86, offset 0x277 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb9, hi: 0xb9}, + {value: 0x8103, lo: 0xba, hi: 0xba}, + // Block 0x87, offset 0x27a + {value: 0x0000, lo: 0x04}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb5, hi: 0xb5}, + {value: 0x2de5, lo: 0xb8, hi: 0xb8}, + {value: 0x8105, lo: 0xbd, hi: 0xbe}, + // Block 0x88, offset 0x27f + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0x83, hi: 0x83}, + // Block 0x89, offset 0x281 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xa0, hi: 0xa0}, + // Block 0x8a, offset 0x283 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xb4, hi: 0xb4}, + // Block 0x8b, offset 0x285 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x87, hi: 0x87}, + // Block 0x8c, offset 0x287 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x99, hi: 0x99}, + // Block 0x8d, offset 0x289 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0x82, hi: 0x82}, + {value: 0x8105, lo: 0x84, hi: 0x85}, + // Block 0x8e, offset 0x28c + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x97, hi: 0x97}, + // Block 0x8f, offset 0x28e + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x90, offset 0x290 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb0, hi: 0xb6}, + // Block 0x91, offset 0x292 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb0, hi: 0xb1}, + // Block 0x92, offset 0x294 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x93, offset 0x296 + {value: 0x0000, lo: 0x0c}, + {value: 0x45e3, lo: 0x9e, hi: 0x9e}, + {value: 0x45ed, lo: 0x9f, hi: 0x9f}, + {value: 0x4621, lo: 0xa0, hi: 0xa0}, + {value: 0x462f, lo: 0xa1, hi: 0xa1}, + {value: 0x463d, lo: 0xa2, hi: 0xa2}, + {value: 0x464b, lo: 0xa3, hi: 0xa3}, + {value: 0x4659, lo: 0xa4, hi: 0xa4}, + {value: 0x812c, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8131, lo: 0xad, hi: 0xad}, + {value: 0x812c, lo: 0xae, hi: 0xb2}, + {value: 0x812e, lo: 0xbb, hi: 0xbf}, + // Block 0x94, offset 0x2a3 + {value: 0x0000, lo: 0x09}, + {value: 0x812e, lo: 0x80, hi: 0x82}, + {value: 0x8133, lo: 0x85, hi: 0x89}, + {value: 0x812e, lo: 0x8a, hi: 0x8b}, + {value: 0x8133, lo: 0xaa, hi: 0xad}, + {value: 0x45f7, lo: 0xbb, hi: 0xbb}, + {value: 0x4601, lo: 0xbc, hi: 0xbc}, + {value: 0x4667, lo: 0xbd, hi: 0xbd}, + {value: 0x4683, lo: 0xbe, hi: 0xbe}, + {value: 0x4675, lo: 0xbf, hi: 0xbf}, + // Block 0x95, offset 0x2ad + {value: 0x0000, lo: 0x01}, + {value: 0x4691, lo: 0x80, hi: 0x80}, + // Block 0x96, offset 0x2af + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x82, hi: 0x84}, + // Block 0x97, offset 0x2b1 + {value: 0x0000, lo: 0x05}, + {value: 0x8133, lo: 0x80, hi: 0x86}, + {value: 0x8133, lo: 0x88, hi: 0x98}, + {value: 0x8133, lo: 0x9b, hi: 0xa1}, + {value: 0x8133, lo: 0xa3, hi: 0xa4}, + {value: 0x8133, lo: 0xa6, hi: 0xaa}, + // Block 0x98, offset 0x2b7 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xac, hi: 0xaf}, + // Block 0x99, offset 0x2b9 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x90, hi: 0x96}, + // Block 0x9a, offset 0x2bb + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x84, hi: 0x89}, + {value: 0x8103, lo: 0x8a, hi: 0x8a}, + // Block 0x9b, offset 0x2be + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 18768 bytes (18.33 KiB). Checksum: c51186dd2412943d. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 92: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 92 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 94 blocks, 6016 entries, 12032 bytes +// The third block is the zero block. +var nfkcValues = [6016]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f86, 0xc1: 0x2f8b, 0xc2: 0x469f, 0xc3: 0x2f90, 0xc4: 0x46ae, 0xc5: 0x46b3, + 0xc6: 0xa000, 0xc7: 0x46bd, 0xc8: 0x2ff9, 0xc9: 0x2ffe, 0xca: 0x46c2, 0xcb: 0x3012, + 0xcc: 0x3085, 0xcd: 0x308a, 0xce: 0x308f, 0xcf: 0x46d6, 0xd1: 0x311b, + 0xd2: 0x313e, 0xd3: 0x3143, 0xd4: 0x46e0, 0xd5: 0x46e5, 0xd6: 0x46f4, + 0xd8: 0xa000, 0xd9: 0x31ca, 0xda: 0x31cf, 0xdb: 0x31d4, 0xdc: 0x4726, 0xdd: 0x324c, + 0xe0: 0x3292, 0xe1: 0x3297, 0xe2: 0x4730, 0xe3: 0x329c, + 0xe4: 0x473f, 0xe5: 0x4744, 0xe6: 0xa000, 0xe7: 0x474e, 0xe8: 0x3305, 0xe9: 0x330a, + 0xea: 0x4753, 0xeb: 0x331e, 0xec: 0x3396, 0xed: 0x339b, 0xee: 0x33a0, 0xef: 0x4767, + 0xf1: 0x342c, 0xf2: 0x344f, 0xf3: 0x3454, 0xf4: 0x4771, 0xf5: 0x4776, + 0xf6: 0x4785, 0xf8: 0xa000, 0xf9: 0x34e0, 0xfa: 0x34e5, 0xfb: 0x34ea, + 0xfc: 0x47b7, 0xfd: 0x3567, 0xff: 0x3580, + // Block 0x4, offset 0x100 + 0x100: 0x2f95, 0x101: 0x32a1, 0x102: 0x46a4, 0x103: 0x4735, 0x104: 0x2fb3, 0x105: 0x32bf, + 0x106: 0x2fc7, 0x107: 0x32d3, 0x108: 0x2fcc, 0x109: 0x32d8, 0x10a: 0x2fd1, 0x10b: 0x32dd, + 0x10c: 0x2fd6, 0x10d: 0x32e2, 0x10e: 0x2fe0, 0x10f: 0x32ec, + 0x112: 0x46c7, 0x113: 0x4758, 0x114: 0x3008, 0x115: 0x3314, 0x116: 0x300d, 0x117: 0x3319, + 0x118: 0x302b, 0x119: 0x3337, 0x11a: 0x301c, 0x11b: 0x3328, 0x11c: 0x3044, 0x11d: 0x3350, + 0x11e: 0x304e, 0x11f: 0x335a, 0x120: 0x3053, 0x121: 0x335f, 0x122: 0x305d, 0x123: 0x3369, + 0x124: 0x3062, 0x125: 0x336e, 0x128: 0x3094, 0x129: 0x33a5, + 0x12a: 0x3099, 0x12b: 0x33aa, 0x12c: 0x309e, 0x12d: 0x33af, 0x12e: 0x30c1, 0x12f: 0x33cd, + 0x130: 0x30a3, 0x132: 0x1960, 0x133: 0x19ed, 0x134: 0x30cb, 0x135: 0x33d7, + 0x136: 0x30df, 0x137: 0x33f0, 0x139: 0x30e9, 0x13a: 0x33fa, 0x13b: 0x30f3, + 0x13c: 0x3404, 0x13d: 0x30ee, 0x13e: 0x33ff, 0x13f: 0x1bb2, + // Block 0x5, offset 0x140 + 0x140: 0x1c3a, 0x143: 0x3116, 0x144: 0x3427, 0x145: 0x312f, + 0x146: 0x3440, 0x147: 0x3125, 0x148: 0x3436, 0x149: 0x1c62, + 0x14c: 0x46ea, 0x14d: 0x477b, 0x14e: 0x3148, 0x14f: 0x3459, 0x150: 0x3152, 0x151: 0x3463, + 0x154: 0x3170, 0x155: 0x3481, 0x156: 0x3189, 0x157: 0x349a, + 0x158: 0x317a, 0x159: 0x348b, 0x15a: 0x470d, 0x15b: 0x479e, 0x15c: 0x3193, 0x15d: 0x34a4, + 0x15e: 0x31a2, 0x15f: 0x34b3, 0x160: 0x4712, 0x161: 0x47a3, 0x162: 0x31bb, 0x163: 0x34d1, + 0x164: 0x31ac, 0x165: 0x34c2, 0x168: 0x471c, 0x169: 0x47ad, + 0x16a: 0x4721, 0x16b: 0x47b2, 0x16c: 0x31d9, 0x16d: 0x34ef, 0x16e: 0x31e3, 0x16f: 0x34f9, + 0x170: 0x31e8, 0x171: 0x34fe, 0x172: 0x3206, 0x173: 0x351c, 0x174: 0x3229, 0x175: 0x353f, + 0x176: 0x3251, 0x177: 0x356c, 0x178: 0x3265, 0x179: 0x3274, 0x17a: 0x3594, 0x17b: 0x327e, + 0x17c: 0x359e, 0x17d: 0x3283, 0x17e: 0x35a3, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2e05, 0x185: 0x2e0b, + 0x186: 0x2e11, 0x187: 0x1975, 0x188: 0x1978, 0x189: 0x1a0e, 0x18a: 0x198d, 0x18b: 0x1990, + 0x18c: 0x1a44, 0x18d: 0x2f9f, 0x18e: 0x32ab, 0x18f: 0x30ad, 0x190: 0x33b9, 0x191: 0x3157, + 0x192: 0x3468, 0x193: 0x31ed, 0x194: 0x3503, 0x195: 0x39e6, 0x196: 0x3b75, 0x197: 0x39df, + 0x198: 0x3b6e, 0x199: 0x39ed, 0x19a: 0x3b7c, 0x19b: 0x39d8, 0x19c: 0x3b67, + 0x19e: 0x38c7, 0x19f: 0x3a56, 0x1a0: 0x38c0, 0x1a1: 0x3a4f, 0x1a2: 0x35ca, 0x1a3: 0x35dc, + 0x1a6: 0x3058, 0x1a7: 0x3364, 0x1a8: 0x30d5, 0x1a9: 0x33e6, + 0x1aa: 0x4703, 0x1ab: 0x4794, 0x1ac: 0x39a7, 0x1ad: 0x3b36, 0x1ae: 0x35ee, 0x1af: 0x35f4, + 0x1b0: 0x33dc, 0x1b1: 0x1945, 0x1b2: 0x1948, 0x1b3: 0x19d5, 0x1b4: 0x303f, 0x1b5: 0x334b, + 0x1b8: 0x3111, 0x1b9: 0x3422, 0x1ba: 0x38ce, 0x1bb: 0x3a5d, + 0x1bc: 0x35c4, 0x1bd: 0x35d6, 0x1be: 0x35d0, 0x1bf: 0x35e2, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2fa4, 0x1c1: 0x32b0, 0x1c2: 0x2fa9, 0x1c3: 0x32b5, 0x1c4: 0x3021, 0x1c5: 0x332d, + 0x1c6: 0x3026, 0x1c7: 0x3332, 0x1c8: 0x30b2, 0x1c9: 0x33be, 0x1ca: 0x30b7, 0x1cb: 0x33c3, + 0x1cc: 0x315c, 0x1cd: 0x346d, 0x1ce: 0x3161, 0x1cf: 0x3472, 0x1d0: 0x317f, 0x1d1: 0x3490, + 0x1d2: 0x3184, 0x1d3: 0x3495, 0x1d4: 0x31f2, 0x1d5: 0x3508, 0x1d6: 0x31f7, 0x1d7: 0x350d, + 0x1d8: 0x319d, 0x1d9: 0x34ae, 0x1da: 0x31b6, 0x1db: 0x34cc, + 0x1de: 0x3071, 0x1df: 0x337d, + 0x1e6: 0x46a9, 0x1e7: 0x473a, 0x1e8: 0x46d1, 0x1e9: 0x4762, + 0x1ea: 0x3976, 0x1eb: 0x3b05, 0x1ec: 0x3953, 0x1ed: 0x3ae2, 0x1ee: 0x46ef, 0x1ef: 0x4780, + 0x1f0: 0x396f, 0x1f1: 0x3afe, 0x1f2: 0x325b, 0x1f3: 0x3576, + // Block 0x8, offset 0x200 + 0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133, + 0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933, + 0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933, + 0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e, + 0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e, + 0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e, + 0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e, + 0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e, + 0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e, + 0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133, + // Block 0x9, offset 0x240 + 0x240: 0x49c5, 0x241: 0x49ca, 0x242: 0x9933, 0x243: 0x49cf, 0x244: 0x4a88, 0x245: 0x9937, + 0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133, + 0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133, + 0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133, + 0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136, + 0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133, + 0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133, + 0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133, + 0x274: 0x0173, + 0x27a: 0x42bc, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x4271, 0x285: 0x4492, + 0x286: 0x3600, 0x287: 0x00ce, 0x288: 0x361e, 0x289: 0x362a, 0x28a: 0x363c, + 0x28c: 0x365a, 0x28e: 0x366c, 0x28f: 0x368a, 0x290: 0x3e1f, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x364e, 0x2ab: 0x367e, 0x2ac: 0x4815, 0x2ad: 0x36ae, 0x2ae: 0x483f, 0x2af: 0x36c0, + 0x2b0: 0x3e87, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4857, 0x2cb: 0x4875, + 0x2cc: 0x36de, 0x2cd: 0x36f6, 0x2ce: 0x488d, 0x2d0: 0x01c1, 0x2d1: 0x01d3, + 0x2d2: 0x01af, 0x2d3: 0x4323, 0x2d4: 0x4329, 0x2d5: 0x01fd, 0x2d6: 0x01eb, + 0x2f0: 0x01d9, 0x2f1: 0x01ee, 0x2f2: 0x01f1, 0x2f4: 0x018b, 0x2f5: 0x01ca, + 0x2f9: 0x01a9, + // Block 0xc, offset 0x300 + 0x300: 0x3738, 0x301: 0x3744, 0x303: 0x3732, + 0x306: 0xa000, 0x307: 0x3720, + 0x30c: 0x3774, 0x30d: 0x375c, 0x30e: 0x3786, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3768, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37ec, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x374a, 0x342: 0x37ce, + 0x350: 0x3726, 0x351: 0x37aa, + 0x352: 0x372c, 0x353: 0x37b0, 0x356: 0x373e, 0x357: 0x37c2, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3840, 0x35b: 0x3846, 0x35c: 0x3750, 0x35d: 0x37d4, + 0x35e: 0x3756, 0x35f: 0x37da, 0x362: 0x3762, 0x363: 0x37e6, + 0x364: 0x376e, 0x365: 0x37f2, 0x366: 0x377a, 0x367: 0x37fe, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x384c, 0x36b: 0x3852, 0x36c: 0x37a4, 0x36d: 0x3828, 0x36e: 0x3780, 0x36f: 0x3804, + 0x370: 0x378c, 0x371: 0x3810, 0x372: 0x3792, 0x373: 0x3816, 0x374: 0x3798, 0x375: 0x381c, + 0x378: 0x379e, 0x379: 0x3822, + // Block 0xe, offset 0x380 + 0x387: 0x1d67, + 0x391: 0x812e, + 0x392: 0x8133, 0x393: 0x8133, 0x394: 0x8133, 0x395: 0x8133, 0x396: 0x812e, 0x397: 0x8133, + 0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x812f, 0x39b: 0x812e, 0x39c: 0x8133, 0x39d: 0x8133, + 0x39e: 0x8133, 0x39f: 0x8133, 0x3a0: 0x8133, 0x3a1: 0x8133, 0x3a2: 0x812e, 0x3a3: 0x812e, + 0x3a4: 0x812e, 0x3a5: 0x812e, 0x3a6: 0x812e, 0x3a7: 0x812e, 0x3a8: 0x8133, 0x3a9: 0x8133, + 0x3aa: 0x812e, 0x3ab: 0x8133, 0x3ac: 0x8133, 0x3ad: 0x812f, 0x3ae: 0x8132, 0x3af: 0x8133, + 0x3b0: 0x8106, 0x3b1: 0x8107, 0x3b2: 0x8108, 0x3b3: 0x8109, 0x3b4: 0x810a, 0x3b5: 0x810b, + 0x3b6: 0x810c, 0x3b7: 0x810d, 0x3b8: 0x810e, 0x3b9: 0x810f, 0x3ba: 0x810f, 0x3bb: 0x8110, + 0x3bc: 0x8111, 0x3bd: 0x8112, 0x3bf: 0x8113, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8117, + 0x3cc: 0x8118, 0x3cd: 0x8119, 0x3ce: 0x811a, 0x3cf: 0x811b, 0x3d0: 0x811c, 0x3d1: 0x811d, + 0x3d2: 0x811e, 0x3d3: 0x9933, 0x3d4: 0x9933, 0x3d5: 0x992e, 0x3d6: 0x812e, 0x3d7: 0x8133, + 0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x812e, 0x3dd: 0x8133, + 0x3de: 0x8133, 0x3df: 0x812e, + 0x3f0: 0x811f, 0x3f5: 0x1d8a, + 0x3f6: 0x2019, 0x3f7: 0x2055, 0x3f8: 0x2050, + // Block 0x10, offset 0x400 + 0x413: 0x812e, 0x414: 0x8133, 0x415: 0x8133, 0x416: 0x8133, 0x417: 0x8133, + 0x418: 0x8133, 0x419: 0x8133, 0x41a: 0x8133, 0x41b: 0x8133, 0x41c: 0x8133, 0x41d: 0x8133, + 0x41e: 0x8133, 0x41f: 0x8133, 0x420: 0x8133, 0x421: 0x8133, 0x423: 0x812e, + 0x424: 0x8133, 0x425: 0x8133, 0x426: 0x812e, 0x427: 0x8133, 0x428: 0x8133, 0x429: 0x812e, + 0x42a: 0x8133, 0x42b: 0x8133, 0x42c: 0x8133, 0x42d: 0x812e, 0x42e: 0x812e, 0x42f: 0x812e, + 0x430: 0x8117, 0x431: 0x8118, 0x432: 0x8119, 0x433: 0x8133, 0x434: 0x8133, 0x435: 0x8133, + 0x436: 0x812e, 0x437: 0x8133, 0x438: 0x8133, 0x439: 0x812e, 0x43a: 0x812e, 0x43b: 0x8133, + 0x43c: 0x8133, 0x43d: 0x8133, 0x43e: 0x8133, 0x43f: 0x8133, + // Block 0x11, offset 0x440 + 0x445: 0xa000, + 0x446: 0x2d33, 0x447: 0xa000, 0x448: 0x2d3b, 0x449: 0xa000, 0x44a: 0x2d43, 0x44b: 0xa000, + 0x44c: 0x2d4b, 0x44d: 0xa000, 0x44e: 0x2d53, 0x451: 0xa000, + 0x452: 0x2d5b, + 0x474: 0x8103, 0x475: 0x9900, + 0x47a: 0xa000, 0x47b: 0x2d63, + 0x47c: 0xa000, 0x47d: 0x2d6b, 0x47e: 0xa000, 0x47f: 0xa000, + // Block 0x12, offset 0x480 + 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8, + 0x486: 0x0416, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107, + 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0, + 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x041a, 0x495: 0x041e, 0x496: 0x00a1, 0x497: 0x00a9, + 0x498: 0x00ab, 0x499: 0x0426, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x042a, 0x49d: 0x01c1, + 0x49e: 0x01c4, 0x49f: 0x01c7, 0x4a0: 0x01fd, 0x4a1: 0x0200, 0x4a2: 0x0093, 0x4a3: 0x00a5, + 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01c1, 0x4a7: 0x01c4, 0x4a8: 0x01ee, 0x4a9: 0x01fd, + 0x4aa: 0x0200, + 0x4b8: 0x020f, + // Block 0x13, offset 0x4c0 + 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101, + 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116, + 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042e, 0x4e8: 0x016d, 0x4e9: 0x0128, + 0x4ea: 0x0432, 0x4eb: 0x0170, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137, + 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec, + 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x0422, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5, + 0x4fc: 0x0161, 0x4fd: 0x0164, 0x4fe: 0x0167, 0x4ff: 0x01d3, + // Block 0x14, offset 0x500 + 0x500: 0x8133, 0x501: 0x8133, 0x502: 0x812e, 0x503: 0x8133, 0x504: 0x8133, 0x505: 0x8133, + 0x506: 0x8133, 0x507: 0x8133, 0x508: 0x8133, 0x509: 0x8133, 0x50a: 0x812e, 0x50b: 0x8133, + 0x50c: 0x8133, 0x50d: 0x8136, 0x50e: 0x812b, 0x50f: 0x812e, 0x510: 0x812a, 0x511: 0x8133, + 0x512: 0x8133, 0x513: 0x8133, 0x514: 0x8133, 0x515: 0x8133, 0x516: 0x8133, 0x517: 0x8133, + 0x518: 0x8133, 0x519: 0x8133, 0x51a: 0x8133, 0x51b: 0x8133, 0x51c: 0x8133, 0x51d: 0x8133, + 0x51e: 0x8133, 0x51f: 0x8133, 0x520: 0x8133, 0x521: 0x8133, 0x522: 0x8133, 0x523: 0x8133, + 0x524: 0x8133, 0x525: 0x8133, 0x526: 0x8133, 0x527: 0x8133, 0x528: 0x8133, 0x529: 0x8133, + 0x52a: 0x8133, 0x52b: 0x8133, 0x52c: 0x8133, 0x52d: 0x8133, 0x52e: 0x8133, 0x52f: 0x8133, + 0x530: 0x8133, 0x531: 0x8133, 0x532: 0x8133, 0x533: 0x8133, 0x534: 0x8133, 0x535: 0x8133, + 0x536: 0x8134, 0x537: 0x8132, 0x538: 0x8132, 0x539: 0x812e, 0x53b: 0x8133, + 0x53c: 0x8135, 0x53d: 0x812e, 0x53e: 0x8133, 0x53f: 0x812e, + // Block 0x15, offset 0x540 + 0x540: 0x2fae, 0x541: 0x32ba, 0x542: 0x2fb8, 0x543: 0x32c4, 0x544: 0x2fbd, 0x545: 0x32c9, + 0x546: 0x2fc2, 0x547: 0x32ce, 0x548: 0x38e3, 0x549: 0x3a72, 0x54a: 0x2fdb, 0x54b: 0x32e7, + 0x54c: 0x2fe5, 0x54d: 0x32f1, 0x54e: 0x2ff4, 0x54f: 0x3300, 0x550: 0x2fea, 0x551: 0x32f6, + 0x552: 0x2fef, 0x553: 0x32fb, 0x554: 0x3906, 0x555: 0x3a95, 0x556: 0x390d, 0x557: 0x3a9c, + 0x558: 0x3030, 0x559: 0x333c, 0x55a: 0x3035, 0x55b: 0x3341, 0x55c: 0x391b, 0x55d: 0x3aaa, + 0x55e: 0x303a, 0x55f: 0x3346, 0x560: 0x3049, 0x561: 0x3355, 0x562: 0x3067, 0x563: 0x3373, + 0x564: 0x3076, 0x565: 0x3382, 0x566: 0x306c, 0x567: 0x3378, 0x568: 0x307b, 0x569: 0x3387, + 0x56a: 0x3080, 0x56b: 0x338c, 0x56c: 0x30c6, 0x56d: 0x33d2, 0x56e: 0x3922, 0x56f: 0x3ab1, + 0x570: 0x30d0, 0x571: 0x33e1, 0x572: 0x30da, 0x573: 0x33eb, 0x574: 0x30e4, 0x575: 0x33f5, + 0x576: 0x46db, 0x577: 0x476c, 0x578: 0x3929, 0x579: 0x3ab8, 0x57a: 0x30fd, 0x57b: 0x340e, + 0x57c: 0x30f8, 0x57d: 0x3409, 0x57e: 0x3102, 0x57f: 0x3413, + // Block 0x16, offset 0x580 + 0x580: 0x3107, 0x581: 0x3418, 0x582: 0x310c, 0x583: 0x341d, 0x584: 0x3120, 0x585: 0x3431, + 0x586: 0x312a, 0x587: 0x343b, 0x588: 0x3139, 0x589: 0x344a, 0x58a: 0x3134, 0x58b: 0x3445, + 0x58c: 0x394c, 0x58d: 0x3adb, 0x58e: 0x395a, 0x58f: 0x3ae9, 0x590: 0x3961, 0x591: 0x3af0, + 0x592: 0x3968, 0x593: 0x3af7, 0x594: 0x3166, 0x595: 0x3477, 0x596: 0x316b, 0x597: 0x347c, + 0x598: 0x3175, 0x599: 0x3486, 0x59a: 0x4708, 0x59b: 0x4799, 0x59c: 0x39ae, 0x59d: 0x3b3d, + 0x59e: 0x318e, 0x59f: 0x349f, 0x5a0: 0x3198, 0x5a1: 0x34a9, 0x5a2: 0x4717, 0x5a3: 0x47a8, + 0x5a4: 0x39b5, 0x5a5: 0x3b44, 0x5a6: 0x39bc, 0x5a7: 0x3b4b, 0x5a8: 0x39c3, 0x5a9: 0x3b52, + 0x5aa: 0x31a7, 0x5ab: 0x34b8, 0x5ac: 0x31b1, 0x5ad: 0x34c7, 0x5ae: 0x31c5, 0x5af: 0x34db, + 0x5b0: 0x31c0, 0x5b1: 0x34d6, 0x5b2: 0x3201, 0x5b3: 0x3517, 0x5b4: 0x3210, 0x5b5: 0x3526, + 0x5b6: 0x320b, 0x5b7: 0x3521, 0x5b8: 0x39ca, 0x5b9: 0x3b59, 0x5ba: 0x39d1, 0x5bb: 0x3b60, + 0x5bc: 0x3215, 0x5bd: 0x352b, 0x5be: 0x321a, 0x5bf: 0x3530, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x321f, 0x5c1: 0x3535, 0x5c2: 0x3224, 0x5c3: 0x353a, 0x5c4: 0x3233, 0x5c5: 0x3549, + 0x5c6: 0x322e, 0x5c7: 0x3544, 0x5c8: 0x3238, 0x5c9: 0x3553, 0x5ca: 0x323d, 0x5cb: 0x3558, + 0x5cc: 0x3242, 0x5cd: 0x355d, 0x5ce: 0x3260, 0x5cf: 0x357b, 0x5d0: 0x3279, 0x5d1: 0x3599, + 0x5d2: 0x3288, 0x5d3: 0x35a8, 0x5d4: 0x328d, 0x5d5: 0x35ad, 0x5d6: 0x3391, 0x5d7: 0x34bd, + 0x5d8: 0x354e, 0x5d9: 0x358a, 0x5da: 0x1be6, 0x5db: 0x42ee, + 0x5e0: 0x46b8, 0x5e1: 0x4749, 0x5e2: 0x2f9a, 0x5e3: 0x32a6, + 0x5e4: 0x388f, 0x5e5: 0x3a1e, 0x5e6: 0x3888, 0x5e7: 0x3a17, 0x5e8: 0x389d, 0x5e9: 0x3a2c, + 0x5ea: 0x3896, 0x5eb: 0x3a25, 0x5ec: 0x38d5, 0x5ed: 0x3a64, 0x5ee: 0x38ab, 0x5ef: 0x3a3a, + 0x5f0: 0x38a4, 0x5f1: 0x3a33, 0x5f2: 0x38b9, 0x5f3: 0x3a48, 0x5f4: 0x38b2, 0x5f5: 0x3a41, + 0x5f6: 0x38dc, 0x5f7: 0x3a6b, 0x5f8: 0x46cc, 0x5f9: 0x475d, 0x5fa: 0x3017, 0x5fb: 0x3323, + 0x5fc: 0x3003, 0x5fd: 0x330f, 0x5fe: 0x38f1, 0x5ff: 0x3a80, + // Block 0x18, offset 0x600 + 0x600: 0x38ea, 0x601: 0x3a79, 0x602: 0x38ff, 0x603: 0x3a8e, 0x604: 0x38f8, 0x605: 0x3a87, + 0x606: 0x3914, 0x607: 0x3aa3, 0x608: 0x30a8, 0x609: 0x33b4, 0x60a: 0x30bc, 0x60b: 0x33c8, + 0x60c: 0x46fe, 0x60d: 0x478f, 0x60e: 0x314d, 0x60f: 0x345e, 0x610: 0x3937, 0x611: 0x3ac6, + 0x612: 0x3930, 0x613: 0x3abf, 0x614: 0x3945, 0x615: 0x3ad4, 0x616: 0x393e, 0x617: 0x3acd, + 0x618: 0x39a0, 0x619: 0x3b2f, 0x61a: 0x3984, 0x61b: 0x3b13, 0x61c: 0x397d, 0x61d: 0x3b0c, + 0x61e: 0x3992, 0x61f: 0x3b21, 0x620: 0x398b, 0x621: 0x3b1a, 0x622: 0x3999, 0x623: 0x3b28, + 0x624: 0x31fc, 0x625: 0x3512, 0x626: 0x31de, 0x627: 0x34f4, 0x628: 0x39fb, 0x629: 0x3b8a, + 0x62a: 0x39f4, 0x62b: 0x3b83, 0x62c: 0x3a09, 0x62d: 0x3b98, 0x62e: 0x3a02, 0x62f: 0x3b91, + 0x630: 0x3a10, 0x631: 0x3b9f, 0x632: 0x3247, 0x633: 0x3562, 0x634: 0x326f, 0x635: 0x358f, + 0x636: 0x326a, 0x637: 0x3585, 0x638: 0x3256, 0x639: 0x3571, + // Block 0x19, offset 0x640 + 0x640: 0x481b, 0x641: 0x4821, 0x642: 0x4935, 0x643: 0x494d, 0x644: 0x493d, 0x645: 0x4955, + 0x646: 0x4945, 0x647: 0x495d, 0x648: 0x47c1, 0x649: 0x47c7, 0x64a: 0x48a5, 0x64b: 0x48bd, + 0x64c: 0x48ad, 0x64d: 0x48c5, 0x64e: 0x48b5, 0x64f: 0x48cd, 0x650: 0x482d, 0x651: 0x4833, + 0x652: 0x3dcf, 0x653: 0x3ddf, 0x654: 0x3dd7, 0x655: 0x3de7, + 0x658: 0x47cd, 0x659: 0x47d3, 0x65a: 0x3cff, 0x65b: 0x3d0f, 0x65c: 0x3d07, 0x65d: 0x3d17, + 0x660: 0x4845, 0x661: 0x484b, 0x662: 0x4965, 0x663: 0x497d, + 0x664: 0x496d, 0x665: 0x4985, 0x666: 0x4975, 0x667: 0x498d, 0x668: 0x47d9, 0x669: 0x47df, + 0x66a: 0x48d5, 0x66b: 0x48ed, 0x66c: 0x48dd, 0x66d: 0x48f5, 0x66e: 0x48e5, 0x66f: 0x48fd, + 0x670: 0x485d, 0x671: 0x4863, 0x672: 0x3e2f, 0x673: 0x3e47, 0x674: 0x3e37, 0x675: 0x3e4f, + 0x676: 0x3e3f, 0x677: 0x3e57, 0x678: 0x47e5, 0x679: 0x47eb, 0x67a: 0x3d2f, 0x67b: 0x3d47, + 0x67c: 0x3d37, 0x67d: 0x3d4f, 0x67e: 0x3d3f, 0x67f: 0x3d57, + // Block 0x1a, offset 0x680 + 0x680: 0x4869, 0x681: 0x486f, 0x682: 0x3e5f, 0x683: 0x3e6f, 0x684: 0x3e67, 0x685: 0x3e77, + 0x688: 0x47f1, 0x689: 0x47f7, 0x68a: 0x3d5f, 0x68b: 0x3d6f, + 0x68c: 0x3d67, 0x68d: 0x3d77, 0x690: 0x487b, 0x691: 0x4881, + 0x692: 0x3e97, 0x693: 0x3eaf, 0x694: 0x3e9f, 0x695: 0x3eb7, 0x696: 0x3ea7, 0x697: 0x3ebf, + 0x699: 0x47fd, 0x69b: 0x3d7f, 0x69d: 0x3d87, + 0x69f: 0x3d8f, 0x6a0: 0x4893, 0x6a1: 0x4899, 0x6a2: 0x4995, 0x6a3: 0x49ad, + 0x6a4: 0x499d, 0x6a5: 0x49b5, 0x6a6: 0x49a5, 0x6a7: 0x49bd, 0x6a8: 0x4803, 0x6a9: 0x4809, + 0x6aa: 0x4905, 0x6ab: 0x491d, 0x6ac: 0x490d, 0x6ad: 0x4925, 0x6ae: 0x4915, 0x6af: 0x492d, + 0x6b0: 0x480f, 0x6b1: 0x4335, 0x6b2: 0x36a8, 0x6b3: 0x433b, 0x6b4: 0x4839, 0x6b5: 0x4341, + 0x6b6: 0x36ba, 0x6b7: 0x4347, 0x6b8: 0x36d8, 0x6b9: 0x434d, 0x6ba: 0x36f0, 0x6bb: 0x4353, + 0x6bc: 0x4887, 0x6bd: 0x4359, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3db7, 0x6c1: 0x3dbf, 0x6c2: 0x419b, 0x6c3: 0x41b9, 0x6c4: 0x41a5, 0x6c5: 0x41c3, + 0x6c6: 0x41af, 0x6c7: 0x41cd, 0x6c8: 0x3cef, 0x6c9: 0x3cf7, 0x6ca: 0x40e7, 0x6cb: 0x4105, + 0x6cc: 0x40f1, 0x6cd: 0x410f, 0x6ce: 0x40fb, 0x6cf: 0x4119, 0x6d0: 0x3dff, 0x6d1: 0x3e07, + 0x6d2: 0x41d7, 0x6d3: 0x41f5, 0x6d4: 0x41e1, 0x6d5: 0x41ff, 0x6d6: 0x41eb, 0x6d7: 0x4209, + 0x6d8: 0x3d1f, 0x6d9: 0x3d27, 0x6da: 0x4123, 0x6db: 0x4141, 0x6dc: 0x412d, 0x6dd: 0x414b, + 0x6de: 0x4137, 0x6df: 0x4155, 0x6e0: 0x3ed7, 0x6e1: 0x3edf, 0x6e2: 0x4213, 0x6e3: 0x4231, + 0x6e4: 0x421d, 0x6e5: 0x423b, 0x6e6: 0x4227, 0x6e7: 0x4245, 0x6e8: 0x3d97, 0x6e9: 0x3d9f, + 0x6ea: 0x415f, 0x6eb: 0x417d, 0x6ec: 0x4169, 0x6ed: 0x4187, 0x6ee: 0x4173, 0x6ef: 0x4191, + 0x6f0: 0x369c, 0x6f1: 0x3696, 0x6f2: 0x3da7, 0x6f3: 0x36a2, 0x6f4: 0x3daf, + 0x6f6: 0x4827, 0x6f7: 0x3dc7, 0x6f8: 0x360c, 0x6f9: 0x3606, 0x6fa: 0x35fa, 0x6fb: 0x4305, + 0x6fc: 0x3612, 0x6fd: 0x429e, 0x6fe: 0x01d6, 0x6ff: 0x429e, + // Block 0x1c, offset 0x700 + 0x700: 0x42b7, 0x701: 0x4499, 0x702: 0x3def, 0x703: 0x36b4, 0x704: 0x3df7, + 0x706: 0x4851, 0x707: 0x3e0f, 0x708: 0x3618, 0x709: 0x430b, 0x70a: 0x3624, 0x70b: 0x4311, + 0x70c: 0x3630, 0x70d: 0x44a0, 0x70e: 0x44a7, 0x70f: 0x44ae, 0x710: 0x36cc, 0x711: 0x36c6, + 0x712: 0x3e17, 0x713: 0x44fb, 0x716: 0x36d2, 0x717: 0x3e27, + 0x718: 0x3648, 0x719: 0x3642, 0x71a: 0x3636, 0x71b: 0x4317, 0x71d: 0x44b5, + 0x71e: 0x44bc, 0x71f: 0x44c3, 0x720: 0x3702, 0x721: 0x36fc, 0x722: 0x3e7f, 0x723: 0x4503, + 0x724: 0x36e4, 0x725: 0x36ea, 0x726: 0x3708, 0x727: 0x3e8f, 0x728: 0x3678, 0x729: 0x3672, + 0x72a: 0x3666, 0x72b: 0x4323, 0x72c: 0x3660, 0x72d: 0x448b, 0x72e: 0x4492, 0x72f: 0x0081, + 0x732: 0x3ec7, 0x733: 0x370e, 0x734: 0x3ecf, + 0x736: 0x489f, 0x737: 0x3ee7, 0x738: 0x3654, 0x739: 0x431d, 0x73a: 0x3684, 0x73b: 0x432f, + 0x73c: 0x3690, 0x73d: 0x4271, 0x73e: 0x42a3, + // Block 0x1d, offset 0x740 + 0x740: 0x1bde, 0x741: 0x1be2, 0x742: 0x0047, 0x743: 0x1c5a, 0x745: 0x1bee, + 0x746: 0x1bf2, 0x747: 0x00e9, 0x749: 0x1c5e, 0x74a: 0x008f, 0x74b: 0x0051, + 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053, + 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1993, + 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, + 0x760: 0x19a5, 0x761: 0x1bce, 0x762: 0x19ae, + 0x764: 0x0075, 0x766: 0x01bb, 0x768: 0x0075, + 0x76a: 0x0057, 0x76b: 0x42e9, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, + 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0218, + 0x776: 0x021b, 0x777: 0x021e, 0x778: 0x0221, 0x779: 0x0093, 0x77b: 0x1b9e, + 0x77c: 0x01eb, 0x77d: 0x01c4, 0x77e: 0x017c, 0x77f: 0x01a3, + // Block 0x1e, offset 0x780 + 0x780: 0x0466, 0x785: 0x0049, + 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, + 0x790: 0x2234, 0x791: 0x2240, + 0x792: 0x22f4, 0x793: 0x221c, 0x794: 0x22a0, 0x795: 0x2228, 0x796: 0x22a6, 0x797: 0x22be, + 0x798: 0x22ca, 0x799: 0x222e, 0x79a: 0x22d0, 0x79b: 0x223a, 0x79c: 0x22c4, 0x79d: 0x22d6, + 0x79e: 0x22dc, 0x79f: 0x1cc2, 0x7a0: 0x0053, 0x7a1: 0x195d, 0x7a2: 0x1baa, 0x7a3: 0x1966, + 0x7a4: 0x006d, 0x7a5: 0x19b1, 0x7a6: 0x1bd6, 0x7a7: 0x1d4e, 0x7a8: 0x1969, 0x7a9: 0x0071, + 0x7aa: 0x19bd, 0x7ab: 0x1bda, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, + 0x7b0: 0x0093, 0x7b1: 0x19ea, 0x7b2: 0x1c1e, 0x7b3: 0x19f3, 0x7b4: 0x00ad, 0x7b5: 0x1a68, + 0x7b6: 0x1c52, 0x7b7: 0x1d62, 0x7b8: 0x19f6, 0x7b9: 0x00b1, 0x7ba: 0x1a6b, 0x7bb: 0x1c56, + 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x3c1d, 0x7c3: 0xa000, 0x7c4: 0x3c24, 0x7c5: 0xa000, + 0x7c7: 0x3c2b, 0x7c8: 0xa000, 0x7c9: 0x3c32, + 0x7cd: 0xa000, + 0x7e0: 0x2f7c, 0x7e1: 0xa000, 0x7e2: 0x3c40, + 0x7e4: 0xa000, 0x7e5: 0xa000, + 0x7ed: 0x3c39, 0x7ee: 0x2f77, 0x7ef: 0x2f81, + 0x7f0: 0x3c47, 0x7f1: 0x3c4e, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c55, 0x7f5: 0x3c5c, + 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c63, 0x7f9: 0x3c6a, 0x7fa: 0xa000, 0x7fb: 0xa000, + 0x7fc: 0xa000, 0x7fd: 0xa000, + // Block 0x20, offset 0x800 + 0x800: 0x3c71, 0x801: 0x3c78, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c8d, 0x805: 0x3c94, + 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c9b, 0x809: 0x3ca2, + 0x811: 0xa000, + 0x812: 0xa000, + 0x822: 0xa000, + 0x828: 0xa000, 0x829: 0xa000, + 0x82b: 0xa000, 0x82c: 0x3cb7, 0x82d: 0x3cbe, 0x82e: 0x3cc5, 0x82f: 0x3ccc, + 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, + // Block 0x21, offset 0x840 + 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, + 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1885, + 0x86a: 0x1888, 0x86b: 0x188b, 0x86c: 0x188e, 0x86d: 0x1891, 0x86e: 0x1894, 0x86f: 0x1897, + 0x870: 0x189a, 0x871: 0x189d, 0x872: 0x18a0, 0x873: 0x18a9, 0x874: 0x1a6e, 0x875: 0x1a72, + 0x876: 0x1a76, 0x877: 0x1a7a, 0x878: 0x1a7e, 0x879: 0x1a82, 0x87a: 0x1a86, 0x87b: 0x1a8a, + 0x87c: 0x1a8e, 0x87d: 0x1c86, 0x87e: 0x1c8b, 0x87f: 0x1c90, + // Block 0x22, offset 0x880 + 0x880: 0x1c95, 0x881: 0x1c9a, 0x882: 0x1c9f, 0x883: 0x1ca4, 0x884: 0x1ca9, 0x885: 0x1cae, + 0x886: 0x1cb3, 0x887: 0x1cb8, 0x888: 0x1882, 0x889: 0x18a6, 0x88a: 0x18ca, 0x88b: 0x18ee, + 0x88c: 0x1912, 0x88d: 0x191b, 0x88e: 0x1921, 0x88f: 0x1927, 0x890: 0x192d, 0x891: 0x1b66, + 0x892: 0x1b6a, 0x893: 0x1b6e, 0x894: 0x1b72, 0x895: 0x1b76, 0x896: 0x1b7a, 0x897: 0x1b7e, + 0x898: 0x1b82, 0x899: 0x1b86, 0x89a: 0x1b8a, 0x89b: 0x1b8e, 0x89c: 0x1afa, 0x89d: 0x1afe, + 0x89e: 0x1b02, 0x89f: 0x1b06, 0x8a0: 0x1b0a, 0x8a1: 0x1b0e, 0x8a2: 0x1b12, 0x8a3: 0x1b16, + 0x8a4: 0x1b1a, 0x8a5: 0x1b1e, 0x8a6: 0x1b22, 0x8a7: 0x1b26, 0x8a8: 0x1b2a, 0x8a9: 0x1b2e, + 0x8aa: 0x1b32, 0x8ab: 0x1b36, 0x8ac: 0x1b3a, 0x8ad: 0x1b3e, 0x8ae: 0x1b42, 0x8af: 0x1b46, + 0x8b0: 0x1b4a, 0x8b1: 0x1b4e, 0x8b2: 0x1b52, 0x8b3: 0x1b56, 0x8b4: 0x1b5a, 0x8b5: 0x1b5e, + 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, + 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x06c2, 0x8c1: 0x06e6, 0x8c2: 0x06f2, 0x8c3: 0x0702, 0x8c4: 0x070a, 0x8c5: 0x0716, + 0x8c6: 0x071e, 0x8c7: 0x0726, 0x8c8: 0x0732, 0x8c9: 0x0786, 0x8ca: 0x079e, 0x8cb: 0x07ae, + 0x8cc: 0x07be, 0x8cd: 0x07ce, 0x8ce: 0x07de, 0x8cf: 0x07fe, 0x8d0: 0x0802, 0x8d1: 0x0806, + 0x8d2: 0x083a, 0x8d3: 0x0862, 0x8d4: 0x0872, 0x8d5: 0x087a, 0x8d6: 0x087e, 0x8d7: 0x088a, + 0x8d8: 0x08a6, 0x8d9: 0x08aa, 0x8da: 0x08c2, 0x8db: 0x08c6, 0x8dc: 0x08ce, 0x8dd: 0x08de, + 0x8de: 0x097a, 0x8df: 0x098e, 0x8e0: 0x09ce, 0x8e1: 0x09e2, 0x8e2: 0x09ea, 0x8e3: 0x09ee, + 0x8e4: 0x09fe, 0x8e5: 0x0a1a, 0x8e6: 0x0a46, 0x8e7: 0x0a52, 0x8e8: 0x0a72, 0x8e9: 0x0a7e, + 0x8ea: 0x0a82, 0x8eb: 0x0a86, 0x8ec: 0x0a9e, 0x8ed: 0x0aa2, 0x8ee: 0x0ace, 0x8ef: 0x0ada, + 0x8f0: 0x0ae2, 0x8f1: 0x0aea, 0x8f2: 0x0afa, 0x8f3: 0x0b02, 0x8f4: 0x0b0a, 0x8f5: 0x0b36, + 0x8f6: 0x0b3a, 0x8f7: 0x0b42, 0x8f8: 0x0b46, 0x8f9: 0x0b4e, 0x8fa: 0x0b56, 0x8fb: 0x0b66, + 0x8fc: 0x0b82, 0x8fd: 0x0bfa, 0x8fe: 0x0c0e, 0x8ff: 0x0c12, + // Block 0x24, offset 0x900 + 0x900: 0x0c92, 0x901: 0x0c96, 0x902: 0x0caa, 0x903: 0x0cae, 0x904: 0x0cb6, 0x905: 0x0cbe, + 0x906: 0x0cc6, 0x907: 0x0cd2, 0x908: 0x0cfa, 0x909: 0x0d0a, 0x90a: 0x0d1e, 0x90b: 0x0d8e, + 0x90c: 0x0d9a, 0x90d: 0x0daa, 0x90e: 0x0db6, 0x90f: 0x0dc2, 0x910: 0x0dca, 0x911: 0x0dce, + 0x912: 0x0dd2, 0x913: 0x0dd6, 0x914: 0x0dda, 0x915: 0x0e92, 0x916: 0x0eda, 0x917: 0x0ee6, + 0x918: 0x0eea, 0x919: 0x0eee, 0x91a: 0x0ef2, 0x91b: 0x0efa, 0x91c: 0x0efe, 0x91d: 0x0f12, + 0x91e: 0x0f2e, 0x91f: 0x0f36, 0x920: 0x0f76, 0x921: 0x0f7a, 0x922: 0x0f82, 0x923: 0x0f86, + 0x924: 0x0f8e, 0x925: 0x0f92, 0x926: 0x0fb6, 0x927: 0x0fba, 0x928: 0x0fd6, 0x929: 0x0fda, + 0x92a: 0x0fde, 0x92b: 0x0fe2, 0x92c: 0x0ff6, 0x92d: 0x101a, 0x92e: 0x101e, 0x92f: 0x1022, + 0x930: 0x1046, 0x931: 0x1086, 0x932: 0x108a, 0x933: 0x10aa, 0x934: 0x10ba, 0x935: 0x10c2, + 0x936: 0x10e2, 0x937: 0x1106, 0x938: 0x114a, 0x939: 0x1152, 0x93a: 0x1166, 0x93b: 0x1172, + 0x93c: 0x117a, 0x93d: 0x1182, 0x93e: 0x1186, 0x93f: 0x118a, + // Block 0x25, offset 0x940 + 0x940: 0x11a2, 0x941: 0x11a6, 0x942: 0x11c2, 0x943: 0x11ca, 0x944: 0x11d2, 0x945: 0x11d6, + 0x946: 0x11e2, 0x947: 0x11ea, 0x948: 0x11ee, 0x949: 0x11f2, 0x94a: 0x11fa, 0x94b: 0x11fe, + 0x94c: 0x129e, 0x94d: 0x12b2, 0x94e: 0x12e6, 0x94f: 0x12ea, 0x950: 0x12f2, 0x951: 0x131e, + 0x952: 0x1326, 0x953: 0x132e, 0x954: 0x1336, 0x955: 0x1372, 0x956: 0x1376, 0x957: 0x137e, + 0x958: 0x1382, 0x959: 0x1386, 0x95a: 0x13b2, 0x95b: 0x13b6, 0x95c: 0x13be, 0x95d: 0x13d2, + 0x95e: 0x13d6, 0x95f: 0x13f2, 0x960: 0x13fa, 0x961: 0x13fe, 0x962: 0x1422, 0x963: 0x1442, + 0x964: 0x1456, 0x965: 0x145a, 0x966: 0x1462, 0x967: 0x148e, 0x968: 0x1492, 0x969: 0x14a2, + 0x96a: 0x14c6, 0x96b: 0x14d2, 0x96c: 0x14e2, 0x96d: 0x14fa, 0x96e: 0x1502, 0x96f: 0x1506, + 0x970: 0x150a, 0x971: 0x150e, 0x972: 0x151a, 0x973: 0x151e, 0x974: 0x1526, 0x975: 0x1542, + 0x976: 0x1546, 0x977: 0x154a, 0x978: 0x1562, 0x979: 0x1566, 0x97a: 0x156e, 0x97b: 0x1582, + 0x97c: 0x1586, 0x97d: 0x158a, 0x97e: 0x1592, 0x97f: 0x1596, + // Block 0x26, offset 0x980 + 0x986: 0xa000, 0x98b: 0xa000, + 0x98c: 0x3f1f, 0x98d: 0xa000, 0x98e: 0x3f27, 0x98f: 0xa000, 0x990: 0x3f2f, 0x991: 0xa000, + 0x992: 0x3f37, 0x993: 0xa000, 0x994: 0x3f3f, 0x995: 0xa000, 0x996: 0x3f47, 0x997: 0xa000, + 0x998: 0x3f4f, 0x999: 0xa000, 0x99a: 0x3f57, 0x99b: 0xa000, 0x99c: 0x3f5f, 0x99d: 0xa000, + 0x99e: 0x3f67, 0x99f: 0xa000, 0x9a0: 0x3f6f, 0x9a1: 0xa000, 0x9a2: 0x3f77, + 0x9a4: 0xa000, 0x9a5: 0x3f7f, 0x9a6: 0xa000, 0x9a7: 0x3f87, 0x9a8: 0xa000, 0x9a9: 0x3f8f, + 0x9af: 0xa000, + 0x9b0: 0x3f97, 0x9b1: 0x3f9f, 0x9b2: 0xa000, 0x9b3: 0x3fa7, 0x9b4: 0x3faf, 0x9b5: 0xa000, + 0x9b6: 0x3fb7, 0x9b7: 0x3fbf, 0x9b8: 0xa000, 0x9b9: 0x3fc7, 0x9ba: 0x3fcf, 0x9bb: 0xa000, + 0x9bc: 0x3fd7, 0x9bd: 0x3fdf, + // Block 0x27, offset 0x9c0 + 0x9d4: 0x3f17, + 0x9d9: 0x9904, 0x9da: 0x9904, 0x9db: 0x42f3, 0x9dc: 0x42f9, 0x9dd: 0xa000, + 0x9de: 0x3fe7, 0x9df: 0x26ba, + 0x9e6: 0xa000, + 0x9eb: 0xa000, 0x9ec: 0x3ff7, 0x9ed: 0xa000, 0x9ee: 0x3fff, 0x9ef: 0xa000, + 0x9f0: 0x4007, 0x9f1: 0xa000, 0x9f2: 0x400f, 0x9f3: 0xa000, 0x9f4: 0x4017, 0x9f5: 0xa000, + 0x9f6: 0x401f, 0x9f7: 0xa000, 0x9f8: 0x4027, 0x9f9: 0xa000, 0x9fa: 0x402f, 0x9fb: 0xa000, + 0x9fc: 0x4037, 0x9fd: 0xa000, 0x9fe: 0x403f, 0x9ff: 0xa000, + // Block 0x28, offset 0xa00 + 0xa00: 0x4047, 0xa01: 0xa000, 0xa02: 0x404f, 0xa04: 0xa000, 0xa05: 0x4057, + 0xa06: 0xa000, 0xa07: 0x405f, 0xa08: 0xa000, 0xa09: 0x4067, + 0xa0f: 0xa000, 0xa10: 0x406f, 0xa11: 0x4077, + 0xa12: 0xa000, 0xa13: 0x407f, 0xa14: 0x4087, 0xa15: 0xa000, 0xa16: 0x408f, 0xa17: 0x4097, + 0xa18: 0xa000, 0xa19: 0x409f, 0xa1a: 0x40a7, 0xa1b: 0xa000, 0xa1c: 0x40af, 0xa1d: 0x40b7, + 0xa2f: 0xa000, + 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fef, + 0xa37: 0x40bf, 0xa38: 0x40c7, 0xa39: 0x40cf, 0xa3a: 0x40d7, + 0xa3d: 0xa000, 0xa3e: 0x40df, 0xa3f: 0x26cf, + // Block 0x29, offset 0xa40 + 0xa40: 0x036a, 0xa41: 0x032e, 0xa42: 0x0332, 0xa43: 0x0336, 0xa44: 0x037e, 0xa45: 0x033a, + 0xa46: 0x033e, 0xa47: 0x0342, 0xa48: 0x0346, 0xa49: 0x034a, 0xa4a: 0x034e, 0xa4b: 0x0352, + 0xa4c: 0x0356, 0xa4d: 0x035a, 0xa4e: 0x035e, 0xa4f: 0x49d4, 0xa50: 0x49da, 0xa51: 0x49e0, + 0xa52: 0x49e6, 0xa53: 0x49ec, 0xa54: 0x49f2, 0xa55: 0x49f8, 0xa56: 0x49fe, 0xa57: 0x4a04, + 0xa58: 0x4a0a, 0xa59: 0x4a10, 0xa5a: 0x4a16, 0xa5b: 0x4a1c, 0xa5c: 0x4a22, 0xa5d: 0x4a28, + 0xa5e: 0x4a2e, 0xa5f: 0x4a34, 0xa60: 0x4a3a, 0xa61: 0x4a40, 0xa62: 0x4a46, 0xa63: 0x4a4c, + 0xa64: 0x03c6, 0xa65: 0x0362, 0xa66: 0x0366, 0xa67: 0x03ea, 0xa68: 0x03ee, 0xa69: 0x03f2, + 0xa6a: 0x03f6, 0xa6b: 0x03fa, 0xa6c: 0x03fe, 0xa6d: 0x0402, 0xa6e: 0x036e, 0xa6f: 0x0406, + 0xa70: 0x040a, 0xa71: 0x0372, 0xa72: 0x0376, 0xa73: 0x037a, 0xa74: 0x0382, 0xa75: 0x0386, + 0xa76: 0x038a, 0xa77: 0x038e, 0xa78: 0x0392, 0xa79: 0x0396, 0xa7a: 0x039a, 0xa7b: 0x039e, + 0xa7c: 0x03a2, 0xa7d: 0x03a6, 0xa7e: 0x03aa, 0xa7f: 0x03ae, + // Block 0x2a, offset 0xa80 + 0xa80: 0x03b2, 0xa81: 0x03b6, 0xa82: 0x040e, 0xa83: 0x0412, 0xa84: 0x03ba, 0xa85: 0x03be, + 0xa86: 0x03c2, 0xa87: 0x03ca, 0xa88: 0x03ce, 0xa89: 0x03d2, 0xa8a: 0x03d6, 0xa8b: 0x03da, + 0xa8c: 0x03de, 0xa8d: 0x03e2, 0xa8e: 0x03e6, + 0xa92: 0x06c2, 0xa93: 0x071e, 0xa94: 0x06ce, 0xa95: 0x097e, 0xa96: 0x06d2, 0xa97: 0x06ea, + 0xa98: 0x06d6, 0xa99: 0x0f96, 0xa9a: 0x070a, 0xa9b: 0x06de, 0xa9c: 0x06c6, 0xa9d: 0x0a02, + 0xa9e: 0x0992, 0xa9f: 0x0732, + // Block 0x2b, offset 0xac0 + 0xac0: 0x205a, 0xac1: 0x2060, 0xac2: 0x2066, 0xac3: 0x206c, 0xac4: 0x2072, 0xac5: 0x2078, + 0xac6: 0x207e, 0xac7: 0x2084, 0xac8: 0x208a, 0xac9: 0x2090, 0xaca: 0x2096, 0xacb: 0x209c, + 0xacc: 0x20a2, 0xacd: 0x20a8, 0xace: 0x2733, 0xacf: 0x273c, 0xad0: 0x2745, 0xad1: 0x274e, + 0xad2: 0x2757, 0xad3: 0x2760, 0xad4: 0x2769, 0xad5: 0x2772, 0xad6: 0x277b, 0xad7: 0x278d, + 0xad8: 0x2796, 0xad9: 0x279f, 0xada: 0x27a8, 0xadb: 0x27b1, 0xadc: 0x2784, 0xadd: 0x2bb9, + 0xade: 0x2afa, 0xae0: 0x20ae, 0xae1: 0x20c6, 0xae2: 0x20ba, 0xae3: 0x210e, + 0xae4: 0x20cc, 0xae5: 0x20ea, 0xae6: 0x20b4, 0xae7: 0x20e4, 0xae8: 0x20c0, 0xae9: 0x20f6, + 0xaea: 0x2126, 0xaeb: 0x2144, 0xaec: 0x213e, 0xaed: 0x2132, 0xaee: 0x2180, 0xaef: 0x2114, + 0xaf0: 0x2120, 0xaf1: 0x2138, 0xaf2: 0x212c, 0xaf3: 0x2156, 0xaf4: 0x2102, 0xaf5: 0x214a, + 0xaf6: 0x2174, 0xaf7: 0x215c, 0xaf8: 0x20f0, 0xaf9: 0x20d2, 0xafa: 0x2108, 0xafb: 0x211a, + 0xafc: 0x2150, 0xafd: 0x20d8, 0xafe: 0x217a, 0xaff: 0x20fc, + // Block 0x2c, offset 0xb00 + 0xb00: 0x2162, 0xb01: 0x20de, 0xb02: 0x2168, 0xb03: 0x216e, 0xb04: 0x0932, 0xb05: 0x0b06, + 0xb06: 0x0caa, 0xb07: 0x10ca, + 0xb10: 0x1bca, 0xb11: 0x18ac, + 0xb12: 0x18af, 0xb13: 0x18b2, 0xb14: 0x18b5, 0xb15: 0x18b8, 0xb16: 0x18bb, 0xb17: 0x18be, + 0xb18: 0x18c1, 0xb19: 0x18c4, 0xb1a: 0x18cd, 0xb1b: 0x18d0, 0xb1c: 0x18d3, 0xb1d: 0x18d6, + 0xb1e: 0x18d9, 0xb1f: 0x18dc, 0xb20: 0x0316, 0xb21: 0x031e, 0xb22: 0x0322, 0xb23: 0x032a, + 0xb24: 0x032e, 0xb25: 0x0332, 0xb26: 0x033a, 0xb27: 0x0342, 0xb28: 0x0346, 0xb29: 0x034e, + 0xb2a: 0x0352, 0xb2b: 0x0356, 0xb2c: 0x035a, 0xb2d: 0x035e, 0xb2e: 0x2e2f, 0xb2f: 0x2e37, + 0xb30: 0x2e3f, 0xb31: 0x2e47, 0xb32: 0x2e4f, 0xb33: 0x2e57, 0xb34: 0x2e5f, 0xb35: 0x2e67, + 0xb36: 0x2e77, 0xb37: 0x2e7f, 0xb38: 0x2e87, 0xb39: 0x2e8f, 0xb3a: 0x2e97, 0xb3b: 0x2e9f, + 0xb3c: 0x2eea, 0xb3d: 0x2eb2, 0xb3e: 0x2e6f, + // Block 0x2d, offset 0xb40 + 0xb40: 0x06c2, 0xb41: 0x071e, 0xb42: 0x06ce, 0xb43: 0x097e, 0xb44: 0x0722, 0xb45: 0x07b2, + 0xb46: 0x06ca, 0xb47: 0x07ae, 0xb48: 0x070e, 0xb49: 0x088a, 0xb4a: 0x0d0a, 0xb4b: 0x0e92, + 0xb4c: 0x0dda, 0xb4d: 0x0d1e, 0xb4e: 0x1462, 0xb4f: 0x098e, 0xb50: 0x0cd2, 0xb51: 0x0d4e, + 0xb52: 0x0d0e, 0xb53: 0x104e, 0xb54: 0x08fe, 0xb55: 0x0f06, 0xb56: 0x138a, 0xb57: 0x1062, + 0xb58: 0x0846, 0xb59: 0x1092, 0xb5a: 0x0f9e, 0xb5b: 0x0a1a, 0xb5c: 0x1412, 0xb5d: 0x0782, + 0xb5e: 0x08ae, 0xb5f: 0x0dfa, 0xb60: 0x152a, 0xb61: 0x0746, 0xb62: 0x07d6, 0xb63: 0x0d9e, + 0xb64: 0x06d2, 0xb65: 0x06ea, 0xb66: 0x06d6, 0xb67: 0x0ade, 0xb68: 0x08f2, 0xb69: 0x0882, + 0xb6a: 0x0a5a, 0xb6b: 0x0a4e, 0xb6c: 0x0fee, 0xb6d: 0x0742, 0xb6e: 0x139e, 0xb6f: 0x089e, + 0xb70: 0x09f6, 0xb71: 0x18df, 0xb72: 0x18e2, 0xb73: 0x18e5, 0xb74: 0x18e8, 0xb75: 0x18f1, + 0xb76: 0x18f4, 0xb77: 0x18f7, 0xb78: 0x18fa, 0xb79: 0x18fd, 0xb7a: 0x1900, 0xb7b: 0x1903, + 0xb7c: 0x1906, 0xb7d: 0x1909, 0xb7e: 0x190c, 0xb7f: 0x1915, + // Block 0x2e, offset 0xb80 + 0xb80: 0x1ccc, 0xb81: 0x1cdb, 0xb82: 0x1cea, 0xb83: 0x1cf9, 0xb84: 0x1d08, 0xb85: 0x1d17, + 0xb86: 0x1d26, 0xb87: 0x1d35, 0xb88: 0x1d44, 0xb89: 0x2192, 0xb8a: 0x21a4, 0xb8b: 0x21b6, + 0xb8c: 0x1957, 0xb8d: 0x1c0a, 0xb8e: 0x19d8, 0xb8f: 0x1bae, 0xb90: 0x04ce, 0xb91: 0x04d6, + 0xb92: 0x04de, 0xb93: 0x04e6, 0xb94: 0x04ee, 0xb95: 0x04f2, 0xb96: 0x04f6, 0xb97: 0x04fa, + 0xb98: 0x04fe, 0xb99: 0x0502, 0xb9a: 0x0506, 0xb9b: 0x050a, 0xb9c: 0x050e, 0xb9d: 0x0512, + 0xb9e: 0x0516, 0xb9f: 0x051a, 0xba0: 0x051e, 0xba1: 0x0526, 0xba2: 0x052a, 0xba3: 0x052e, + 0xba4: 0x0532, 0xba5: 0x0536, 0xba6: 0x053a, 0xba7: 0x053e, 0xba8: 0x0542, 0xba9: 0x0546, + 0xbaa: 0x054a, 0xbab: 0x054e, 0xbac: 0x0552, 0xbad: 0x0556, 0xbae: 0x055a, 0xbaf: 0x055e, + 0xbb0: 0x0562, 0xbb1: 0x0566, 0xbb2: 0x056a, 0xbb3: 0x0572, 0xbb4: 0x057a, 0xbb5: 0x0582, + 0xbb6: 0x0586, 0xbb7: 0x058a, 0xbb8: 0x058e, 0xbb9: 0x0592, 0xbba: 0x0596, 0xbbb: 0x059a, + 0xbbc: 0x059e, 0xbbd: 0x05a2, 0xbbe: 0x05a6, 0xbbf: 0x2700, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x2b19, 0xbc1: 0x29b5, 0xbc2: 0x2b29, 0xbc3: 0x288d, 0xbc4: 0x2efb, 0xbc5: 0x2897, + 0xbc6: 0x28a1, 0xbc7: 0x2f3f, 0xbc8: 0x29c2, 0xbc9: 0x28ab, 0xbca: 0x28b5, 0xbcb: 0x28bf, + 0xbcc: 0x29e9, 0xbcd: 0x29f6, 0xbce: 0x29cf, 0xbcf: 0x29dc, 0xbd0: 0x2ec0, 0xbd1: 0x2a03, + 0xbd2: 0x2a10, 0xbd3: 0x2bcb, 0xbd4: 0x26c1, 0xbd5: 0x2bde, 0xbd6: 0x2bf1, 0xbd7: 0x2b39, + 0xbd8: 0x2a1d, 0xbd9: 0x2c04, 0xbda: 0x2c17, 0xbdb: 0x2a2a, 0xbdc: 0x28c9, 0xbdd: 0x28d3, + 0xbde: 0x2ece, 0xbdf: 0x2a37, 0xbe0: 0x2b49, 0xbe1: 0x2f0c, 0xbe2: 0x28dd, 0xbe3: 0x28e7, + 0xbe4: 0x2a44, 0xbe5: 0x28f1, 0xbe6: 0x28fb, 0xbe7: 0x26d6, 0xbe8: 0x26dd, 0xbe9: 0x2905, + 0xbea: 0x290f, 0xbeb: 0x2c2a, 0xbec: 0x2a51, 0xbed: 0x2b59, 0xbee: 0x2c3d, 0xbef: 0x2a5e, + 0xbf0: 0x2923, 0xbf1: 0x2919, 0xbf2: 0x2f53, 0xbf3: 0x2a6b, 0xbf4: 0x2c50, 0xbf5: 0x292d, + 0xbf6: 0x2b69, 0xbf7: 0x2937, 0xbf8: 0x2a85, 0xbf9: 0x2941, 0xbfa: 0x2a92, 0xbfb: 0x2f1d, + 0xbfc: 0x2a78, 0xbfd: 0x2b79, 0xbfe: 0x2a9f, 0xbff: 0x26e4, + // Block 0x30, offset 0xc00 + 0xc00: 0x2f2e, 0xc01: 0x294b, 0xc02: 0x2955, 0xc03: 0x2aac, 0xc04: 0x295f, 0xc05: 0x2969, + 0xc06: 0x2973, 0xc07: 0x2b89, 0xc08: 0x2ab9, 0xc09: 0x26eb, 0xc0a: 0x2c63, 0xc0b: 0x2ea7, + 0xc0c: 0x2b99, 0xc0d: 0x2ac6, 0xc0e: 0x2edc, 0xc0f: 0x297d, 0xc10: 0x2987, 0xc11: 0x2ad3, + 0xc12: 0x26f2, 0xc13: 0x2ae0, 0xc14: 0x2ba9, 0xc15: 0x26f9, 0xc16: 0x2c76, 0xc17: 0x2991, + 0xc18: 0x1cbd, 0xc19: 0x1cd1, 0xc1a: 0x1ce0, 0xc1b: 0x1cef, 0xc1c: 0x1cfe, 0xc1d: 0x1d0d, + 0xc1e: 0x1d1c, 0xc1f: 0x1d2b, 0xc20: 0x1d3a, 0xc21: 0x1d49, 0xc22: 0x2198, 0xc23: 0x21aa, + 0xc24: 0x21bc, 0xc25: 0x21c8, 0xc26: 0x21d4, 0xc27: 0x21e0, 0xc28: 0x21ec, 0xc29: 0x21f8, + 0xc2a: 0x2204, 0xc2b: 0x2210, 0xc2c: 0x224c, 0xc2d: 0x2258, 0xc2e: 0x2264, 0xc2f: 0x2270, + 0xc30: 0x227c, 0xc31: 0x1c1a, 0xc32: 0x19cc, 0xc33: 0x1939, 0xc34: 0x1bea, 0xc35: 0x1a4d, + 0xc36: 0x1a5c, 0xc37: 0x19d2, 0xc38: 0x1c02, 0xc39: 0x1c06, 0xc3a: 0x1963, 0xc3b: 0x270e, + 0xc3c: 0x271c, 0xc3d: 0x2707, 0xc3e: 0x2715, 0xc3f: 0x2aed, + // Block 0x31, offset 0xc40 + 0xc40: 0x1a50, 0xc41: 0x1a38, 0xc42: 0x1c66, 0xc43: 0x1a20, 0xc44: 0x19f9, 0xc45: 0x196c, + 0xc46: 0x197b, 0xc47: 0x194b, 0xc48: 0x1bf6, 0xc49: 0x1d58, 0xc4a: 0x1a53, 0xc4b: 0x1a3b, + 0xc4c: 0x1c6a, 0xc4d: 0x1c76, 0xc4e: 0x1a2c, 0xc4f: 0x1a02, 0xc50: 0x195a, 0xc51: 0x1c22, + 0xc52: 0x1bb6, 0xc53: 0x1ba2, 0xc54: 0x1bd2, 0xc55: 0x1c7a, 0xc56: 0x1a2f, 0xc57: 0x19cf, + 0xc58: 0x1a05, 0xc59: 0x19e4, 0xc5a: 0x1a47, 0xc5b: 0x1c7e, 0xc5c: 0x1a32, 0xc5d: 0x19c6, + 0xc5e: 0x1a08, 0xc5f: 0x1c42, 0xc60: 0x1bfa, 0xc61: 0x1a1a, 0xc62: 0x1c2a, 0xc63: 0x1c46, + 0xc64: 0x1bfe, 0xc65: 0x1a1d, 0xc66: 0x1c2e, 0xc67: 0x22ee, 0xc68: 0x2302, 0xc69: 0x199c, + 0xc6a: 0x1c26, 0xc6b: 0x1bba, 0xc6c: 0x1ba6, 0xc6d: 0x1c4e, 0xc6e: 0x2723, 0xc6f: 0x27ba, + 0xc70: 0x1a5f, 0xc71: 0x1a4a, 0xc72: 0x1c82, 0xc73: 0x1a35, 0xc74: 0x1a56, 0xc75: 0x1a3e, + 0xc76: 0x1c6e, 0xc77: 0x1a23, 0xc78: 0x19fc, 0xc79: 0x1987, 0xc7a: 0x1a59, 0xc7b: 0x1a41, + 0xc7c: 0x1c72, 0xc7d: 0x1a26, 0xc7e: 0x19ff, 0xc7f: 0x198a, + // Block 0x32, offset 0xc80 + 0xc80: 0x1c32, 0xc81: 0x1bbe, 0xc82: 0x1d53, 0xc83: 0x193c, 0xc84: 0x19c0, 0xc85: 0x19c3, + 0xc86: 0x22fb, 0xc87: 0x1b9a, 0xc88: 0x19c9, 0xc89: 0x194e, 0xc8a: 0x19e7, 0xc8b: 0x1951, + 0xc8c: 0x19f0, 0xc8d: 0x196f, 0xc8e: 0x1972, 0xc8f: 0x1a0b, 0xc90: 0x1a11, 0xc91: 0x1a14, + 0xc92: 0x1c36, 0xc93: 0x1a17, 0xc94: 0x1a29, 0xc95: 0x1c3e, 0xc96: 0x1c4a, 0xc97: 0x1996, + 0xc98: 0x1d5d, 0xc99: 0x1bc2, 0xc9a: 0x1999, 0xc9b: 0x1a62, 0xc9c: 0x19ab, 0xc9d: 0x19ba, + 0xc9e: 0x22e8, 0xc9f: 0x22e2, 0xca0: 0x1cc7, 0xca1: 0x1cd6, 0xca2: 0x1ce5, 0xca3: 0x1cf4, + 0xca4: 0x1d03, 0xca5: 0x1d12, 0xca6: 0x1d21, 0xca7: 0x1d30, 0xca8: 0x1d3f, 0xca9: 0x218c, + 0xcaa: 0x219e, 0xcab: 0x21b0, 0xcac: 0x21c2, 0xcad: 0x21ce, 0xcae: 0x21da, 0xcaf: 0x21e6, + 0xcb0: 0x21f2, 0xcb1: 0x21fe, 0xcb2: 0x220a, 0xcb3: 0x2246, 0xcb4: 0x2252, 0xcb5: 0x225e, + 0xcb6: 0x226a, 0xcb7: 0x2276, 0xcb8: 0x2282, 0xcb9: 0x2288, 0xcba: 0x228e, 0xcbb: 0x2294, + 0xcbc: 0x229a, 0xcbd: 0x22ac, 0xcbe: 0x22b2, 0xcbf: 0x1c16, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x137a, 0xcc1: 0x0cfe, 0xcc2: 0x13d6, 0xcc3: 0x13a2, 0xcc4: 0x0e5a, 0xcc5: 0x06ee, + 0xcc6: 0x08e2, 0xcc7: 0x162e, 0xcc8: 0x162e, 0xcc9: 0x0a0e, 0xcca: 0x1462, 0xccb: 0x0946, + 0xccc: 0x0a0a, 0xccd: 0x0bf2, 0xcce: 0x0fd2, 0xccf: 0x1162, 0xcd0: 0x129a, 0xcd1: 0x12d6, + 0xcd2: 0x130a, 0xcd3: 0x141e, 0xcd4: 0x0d76, 0xcd5: 0x0e02, 0xcd6: 0x0eae, 0xcd7: 0x0f46, + 0xcd8: 0x1262, 0xcd9: 0x144a, 0xcda: 0x1576, 0xcdb: 0x0712, 0xcdc: 0x08b6, 0xcdd: 0x0d8a, + 0xcde: 0x0ed2, 0xcdf: 0x1296, 0xce0: 0x15c6, 0xce1: 0x0ab6, 0xce2: 0x0e7a, 0xce3: 0x1286, + 0xce4: 0x131a, 0xce5: 0x0c26, 0xce6: 0x11be, 0xce7: 0x12e2, 0xce8: 0x0b22, 0xce9: 0x0d12, + 0xcea: 0x0e1a, 0xceb: 0x0f1e, 0xcec: 0x142a, 0xced: 0x0752, 0xcee: 0x07ea, 0xcef: 0x0856, + 0xcf0: 0x0c8e, 0xcf1: 0x0d82, 0xcf2: 0x0ece, 0xcf3: 0x0ff2, 0xcf4: 0x117a, 0xcf5: 0x128e, + 0xcf6: 0x12a6, 0xcf7: 0x13ca, 0xcf8: 0x14f2, 0xcf9: 0x15a6, 0xcfa: 0x15c2, 0xcfb: 0x102e, + 0xcfc: 0x106e, 0xcfd: 0x1126, 0xcfe: 0x1246, 0xcff: 0x147e, + // Block 0x34, offset 0xd00 + 0xd00: 0x15ce, 0xd01: 0x134e, 0xd02: 0x09ca, 0xd03: 0x0b3e, 0xd04: 0x10de, 0xd05: 0x119e, + 0xd06: 0x0f02, 0xd07: 0x1036, 0xd08: 0x139a, 0xd09: 0x14ea, 0xd0a: 0x09c6, 0xd0b: 0x0a92, + 0xd0c: 0x0d7a, 0xd0d: 0x0e2e, 0xd0e: 0x0e62, 0xd0f: 0x1116, 0xd10: 0x113e, 0xd11: 0x14aa, + 0xd12: 0x0852, 0xd13: 0x11aa, 0xd14: 0x07f6, 0xd15: 0x07f2, 0xd16: 0x109a, 0xd17: 0x112a, + 0xd18: 0x125e, 0xd19: 0x14b2, 0xd1a: 0x136a, 0xd1b: 0x0c2a, 0xd1c: 0x0d76, 0xd1d: 0x135a, + 0xd1e: 0x06fa, 0xd1f: 0x0a66, 0xd20: 0x0b96, 0xd21: 0x0f32, 0xd22: 0x0fb2, 0xd23: 0x0876, + 0xd24: 0x103e, 0xd25: 0x0762, 0xd26: 0x0b7a, 0xd27: 0x06da, 0xd28: 0x0dee, 0xd29: 0x0ca6, + 0xd2a: 0x1112, 0xd2b: 0x08ca, 0xd2c: 0x09b6, 0xd2d: 0x0ffe, 0xd2e: 0x1266, 0xd2f: 0x133e, + 0xd30: 0x0dba, 0xd31: 0x13fa, 0xd32: 0x0de6, 0xd33: 0x0c3a, 0xd34: 0x121e, 0xd35: 0x0c5a, + 0xd36: 0x0fae, 0xd37: 0x072e, 0xd38: 0x07aa, 0xd39: 0x07ee, 0xd3a: 0x0d56, 0xd3b: 0x10fe, + 0xd3c: 0x11f6, 0xd3d: 0x134a, 0xd3e: 0x145e, 0xd3f: 0x085e, + // Block 0x35, offset 0xd40 + 0xd40: 0x0912, 0xd41: 0x0a1a, 0xd42: 0x0b32, 0xd43: 0x0cc2, 0xd44: 0x0e7e, 0xd45: 0x1042, + 0xd46: 0x149a, 0xd47: 0x157e, 0xd48: 0x15d2, 0xd49: 0x15ea, 0xd4a: 0x083a, 0xd4b: 0x0cf6, + 0xd4c: 0x0da6, 0xd4d: 0x13ee, 0xd4e: 0x0afe, 0xd4f: 0x0bda, 0xd50: 0x0bf6, 0xd51: 0x0c86, + 0xd52: 0x0e6e, 0xd53: 0x0eba, 0xd54: 0x0f6a, 0xd55: 0x108e, 0xd56: 0x1132, 0xd57: 0x1196, + 0xd58: 0x13de, 0xd59: 0x126e, 0xd5a: 0x1406, 0xd5b: 0x1482, 0xd5c: 0x0812, 0xd5d: 0x083e, + 0xd5e: 0x0926, 0xd5f: 0x0eaa, 0xd60: 0x12f6, 0xd61: 0x133e, 0xd62: 0x0b1e, 0xd63: 0x0b8e, + 0xd64: 0x0c52, 0xd65: 0x0db2, 0xd66: 0x10da, 0xd67: 0x0f26, 0xd68: 0x073e, 0xd69: 0x0982, + 0xd6a: 0x0a66, 0xd6b: 0x0aca, 0xd6c: 0x0b9a, 0xd6d: 0x0f42, 0xd6e: 0x0f5e, 0xd6f: 0x116e, + 0xd70: 0x118e, 0xd71: 0x1466, 0xd72: 0x14e6, 0xd73: 0x14f6, 0xd74: 0x1532, 0xd75: 0x0756, + 0xd76: 0x1082, 0xd77: 0x1452, 0xd78: 0x14ce, 0xd79: 0x0bb2, 0xd7a: 0x071a, 0xd7b: 0x077a, + 0xd7c: 0x0a6a, 0xd7d: 0x0a8a, 0xd7e: 0x0cb2, 0xd7f: 0x0d76, + // Block 0x36, offset 0xd80 + 0xd80: 0x0ec6, 0xd81: 0x0fce, 0xd82: 0x127a, 0xd83: 0x141a, 0xd84: 0x1626, 0xd85: 0x0ce6, + 0xd86: 0x14a6, 0xd87: 0x0836, 0xd88: 0x0d32, 0xd89: 0x0d3e, 0xd8a: 0x0e12, 0xd8b: 0x0e4a, + 0xd8c: 0x0f4e, 0xd8d: 0x0faa, 0xd8e: 0x102a, 0xd8f: 0x110e, 0xd90: 0x153e, 0xd91: 0x07b2, + 0xd92: 0x0c06, 0xd93: 0x14b6, 0xd94: 0x076a, 0xd95: 0x0aae, 0xd96: 0x0e32, 0xd97: 0x13e2, + 0xd98: 0x0b6a, 0xd99: 0x0bba, 0xd9a: 0x0d46, 0xd9b: 0x0f32, 0xd9c: 0x14be, 0xd9d: 0x081a, + 0xd9e: 0x0902, 0xd9f: 0x0a9a, 0xda0: 0x0cd6, 0xda1: 0x0d22, 0xda2: 0x0d62, 0xda3: 0x0df6, + 0xda4: 0x0f4a, 0xda5: 0x0fbe, 0xda6: 0x115a, 0xda7: 0x12fa, 0xda8: 0x1306, 0xda9: 0x145a, + 0xdaa: 0x14da, 0xdab: 0x0886, 0xdac: 0x0e4e, 0xdad: 0x0906, 0xdae: 0x0eca, 0xdaf: 0x0f6e, + 0xdb0: 0x128a, 0xdb1: 0x14c2, 0xdb2: 0x15ae, 0xdb3: 0x15d6, 0xdb4: 0x0d3a, 0xdb5: 0x0e2a, + 0xdb6: 0x11c6, 0xdb7: 0x10ba, 0xdb8: 0x10c6, 0xdb9: 0x10ea, 0xdba: 0x0f1a, 0xdbb: 0x0ea2, + 0xdbc: 0x1366, 0xdbd: 0x0736, 0xdbe: 0x122e, 0xdbf: 0x081e, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x080e, 0xdc1: 0x0b0e, 0xdc2: 0x0c2e, 0xdc3: 0x10f6, 0xdc4: 0x0a56, 0xdc5: 0x0e06, + 0xdc6: 0x0cf2, 0xdc7: 0x13ea, 0xdc8: 0x12ea, 0xdc9: 0x14ae, 0xdca: 0x1326, 0xdcb: 0x0b2a, + 0xdcc: 0x078a, 0xdcd: 0x095e, 0xdd0: 0x09b2, + 0xdd2: 0x0ce2, 0xdd5: 0x07fa, 0xdd6: 0x0f22, 0xdd7: 0x0fe6, + 0xdd8: 0x104a, 0xdd9: 0x1066, 0xdda: 0x106a, 0xddb: 0x107e, 0xddc: 0x14fe, 0xddd: 0x10ee, + 0xdde: 0x1172, 0xde0: 0x1292, 0xde2: 0x1356, + 0xde5: 0x140a, 0xde6: 0x1436, + 0xdea: 0x1552, 0xdeb: 0x1556, 0xdec: 0x155a, 0xded: 0x15be, 0xdee: 0x142e, 0xdef: 0x14ca, + 0xdf0: 0x075a, 0xdf1: 0x077e, 0xdf2: 0x0792, 0xdf3: 0x084e, 0xdf4: 0x085a, 0xdf5: 0x089a, + 0xdf6: 0x094e, 0xdf7: 0x096a, 0xdf8: 0x0972, 0xdf9: 0x09ae, 0xdfa: 0x09ba, 0xdfb: 0x0a96, + 0xdfc: 0x0a9e, 0xdfd: 0x0ba6, 0xdfe: 0x0bce, 0xdff: 0x0bd6, + // Block 0x38, offset 0xe00 + 0xe00: 0x0bee, 0xe01: 0x0c9a, 0xe02: 0x0cca, 0xe03: 0x0cea, 0xe04: 0x0d5a, 0xe05: 0x0e1e, + 0xe06: 0x0e3a, 0xe07: 0x0e6a, 0xe08: 0x0ebe, 0xe09: 0x0ede, 0xe0a: 0x0f52, 0xe0b: 0x1032, + 0xe0c: 0x104e, 0xe0d: 0x1056, 0xe0e: 0x1052, 0xe0f: 0x105a, 0xe10: 0x105e, 0xe11: 0x1062, + 0xe12: 0x1076, 0xe13: 0x107a, 0xe14: 0x109e, 0xe15: 0x10b2, 0xe16: 0x10ce, 0xe17: 0x1132, + 0xe18: 0x113a, 0xe19: 0x1142, 0xe1a: 0x1156, 0xe1b: 0x117e, 0xe1c: 0x11ce, 0xe1d: 0x1202, + 0xe1e: 0x1202, 0xe1f: 0x126a, 0xe20: 0x1312, 0xe21: 0x132a, 0xe22: 0x135e, 0xe23: 0x1362, + 0xe24: 0x13a6, 0xe25: 0x13aa, 0xe26: 0x1402, 0xe27: 0x140a, 0xe28: 0x14de, 0xe29: 0x1522, + 0xe2a: 0x153a, 0xe2b: 0x0b9e, 0xe2c: 0x1721, 0xe2d: 0x11e6, + 0xe30: 0x06e2, 0xe31: 0x07e6, 0xe32: 0x07a6, 0xe33: 0x074e, 0xe34: 0x078e, 0xe35: 0x07ba, + 0xe36: 0x084a, 0xe37: 0x0866, 0xe38: 0x094e, 0xe39: 0x093a, 0xe3a: 0x094a, 0xe3b: 0x0966, + 0xe3c: 0x09b2, 0xe3d: 0x09c2, 0xe3e: 0x0a06, 0xe3f: 0x0a12, + // Block 0x39, offset 0xe40 + 0xe40: 0x0a2e, 0xe41: 0x0a3e, 0xe42: 0x0b26, 0xe43: 0x0b2e, 0xe44: 0x0b5e, 0xe45: 0x0b7e, + 0xe46: 0x0bae, 0xe47: 0x0bc6, 0xe48: 0x0bb6, 0xe49: 0x0bd6, 0xe4a: 0x0bca, 0xe4b: 0x0bee, + 0xe4c: 0x0c0a, 0xe4d: 0x0c62, 0xe4e: 0x0c6e, 0xe4f: 0x0c76, 0xe50: 0x0c9e, 0xe51: 0x0ce2, + 0xe52: 0x0d12, 0xe53: 0x0d16, 0xe54: 0x0d2a, 0xe55: 0x0daa, 0xe56: 0x0dba, 0xe57: 0x0e12, + 0xe58: 0x0e5e, 0xe59: 0x0e56, 0xe5a: 0x0e6a, 0xe5b: 0x0e86, 0xe5c: 0x0ebe, 0xe5d: 0x1016, + 0xe5e: 0x0ee2, 0xe5f: 0x0f16, 0xe60: 0x0f22, 0xe61: 0x0f62, 0xe62: 0x0f7e, 0xe63: 0x0fa2, + 0xe64: 0x0fc6, 0xe65: 0x0fca, 0xe66: 0x0fe6, 0xe67: 0x0fea, 0xe68: 0x0ffa, 0xe69: 0x100e, + 0xe6a: 0x100a, 0xe6b: 0x103a, 0xe6c: 0x10b6, 0xe6d: 0x10ce, 0xe6e: 0x10e6, 0xe6f: 0x111e, + 0xe70: 0x1132, 0xe71: 0x114e, 0xe72: 0x117e, 0xe73: 0x1232, 0xe74: 0x125a, 0xe75: 0x12ce, + 0xe76: 0x1316, 0xe77: 0x1322, 0xe78: 0x132a, 0xe79: 0x1342, 0xe7a: 0x1356, 0xe7b: 0x1346, + 0xe7c: 0x135e, 0xe7d: 0x135a, 0xe7e: 0x1352, 0xe7f: 0x1362, + // Block 0x3a, offset 0xe80 + 0xe80: 0x136e, 0xe81: 0x13aa, 0xe82: 0x13e6, 0xe83: 0x1416, 0xe84: 0x144e, 0xe85: 0x146e, + 0xe86: 0x14ba, 0xe87: 0x14de, 0xe88: 0x14fe, 0xe89: 0x1512, 0xe8a: 0x1522, 0xe8b: 0x152e, + 0xe8c: 0x153a, 0xe8d: 0x158e, 0xe8e: 0x162e, 0xe8f: 0x16b8, 0xe90: 0x16b3, 0xe91: 0x16e5, + 0xe92: 0x060a, 0xe93: 0x0632, 0xe94: 0x0636, 0xe95: 0x1767, 0xe96: 0x1794, 0xe97: 0x180c, + 0xe98: 0x161a, 0xe99: 0x162a, + // Block 0x3b, offset 0xec0 + 0xec0: 0x19db, 0xec1: 0x19de, 0xec2: 0x19e1, 0xec3: 0x1c0e, 0xec4: 0x1c12, 0xec5: 0x1a65, + 0xec6: 0x1a65, + 0xed3: 0x1d7b, 0xed4: 0x1d6c, 0xed5: 0x1d71, 0xed6: 0x1d80, 0xed7: 0x1d76, + 0xedd: 0x43a7, + 0xede: 0x8116, 0xedf: 0x4419, 0xee0: 0x0230, 0xee1: 0x0218, 0xee2: 0x0221, 0xee3: 0x0224, + 0xee4: 0x0227, 0xee5: 0x022a, 0xee6: 0x022d, 0xee7: 0x0233, 0xee8: 0x0236, 0xee9: 0x0017, + 0xeea: 0x4407, 0xeeb: 0x440d, 0xeec: 0x450b, 0xeed: 0x4513, 0xeee: 0x435f, 0xeef: 0x4365, + 0xef0: 0x436b, 0xef1: 0x4371, 0xef2: 0x437d, 0xef3: 0x4383, 0xef4: 0x4389, 0xef5: 0x4395, + 0xef6: 0x439b, 0xef8: 0x43a1, 0xef9: 0x43ad, 0xefa: 0x43b3, 0xefb: 0x43b9, + 0xefc: 0x43c5, 0xefe: 0x43cb, + // Block 0x3c, offset 0xf00 + 0xf00: 0x43d1, 0xf01: 0x43d7, 0xf03: 0x43dd, 0xf04: 0x43e3, + 0xf06: 0x43ef, 0xf07: 0x43f5, 0xf08: 0x43fb, 0xf09: 0x4401, 0xf0a: 0x4413, 0xf0b: 0x438f, + 0xf0c: 0x4377, 0xf0d: 0x43bf, 0xf0e: 0x43e9, 0xf0f: 0x1d85, 0xf10: 0x029c, 0xf11: 0x029c, + 0xf12: 0x02a5, 0xf13: 0x02a5, 0xf14: 0x02a5, 0xf15: 0x02a5, 0xf16: 0x02a8, 0xf17: 0x02a8, + 0xf18: 0x02a8, 0xf19: 0x02a8, 0xf1a: 0x02ae, 0xf1b: 0x02ae, 0xf1c: 0x02ae, 0xf1d: 0x02ae, + 0xf1e: 0x02a2, 0xf1f: 0x02a2, 0xf20: 0x02a2, 0xf21: 0x02a2, 0xf22: 0x02ab, 0xf23: 0x02ab, + 0xf24: 0x02ab, 0xf25: 0x02ab, 0xf26: 0x029f, 0xf27: 0x029f, 0xf28: 0x029f, 0xf29: 0x029f, + 0xf2a: 0x02d2, 0xf2b: 0x02d2, 0xf2c: 0x02d2, 0xf2d: 0x02d2, 0xf2e: 0x02d5, 0xf2f: 0x02d5, + 0xf30: 0x02d5, 0xf31: 0x02d5, 0xf32: 0x02b4, 0xf33: 0x02b4, 0xf34: 0x02b4, 0xf35: 0x02b4, + 0xf36: 0x02b1, 0xf37: 0x02b1, 0xf38: 0x02b1, 0xf39: 0x02b1, 0xf3a: 0x02b7, 0xf3b: 0x02b7, + 0xf3c: 0x02b7, 0xf3d: 0x02b7, 0xf3e: 0x02ba, 0xf3f: 0x02ba, + // Block 0x3d, offset 0xf40 + 0xf40: 0x02ba, 0xf41: 0x02ba, 0xf42: 0x02c3, 0xf43: 0x02c3, 0xf44: 0x02c0, 0xf45: 0x02c0, + 0xf46: 0x02c6, 0xf47: 0x02c6, 0xf48: 0x02bd, 0xf49: 0x02bd, 0xf4a: 0x02cc, 0xf4b: 0x02cc, + 0xf4c: 0x02c9, 0xf4d: 0x02c9, 0xf4e: 0x02d8, 0xf4f: 0x02d8, 0xf50: 0x02d8, 0xf51: 0x02d8, + 0xf52: 0x02de, 0xf53: 0x02de, 0xf54: 0x02de, 0xf55: 0x02de, 0xf56: 0x02e4, 0xf57: 0x02e4, + 0xf58: 0x02e4, 0xf59: 0x02e4, 0xf5a: 0x02e1, 0xf5b: 0x02e1, 0xf5c: 0x02e1, 0xf5d: 0x02e1, + 0xf5e: 0x02e7, 0xf5f: 0x02e7, 0xf60: 0x02ea, 0xf61: 0x02ea, 0xf62: 0x02ea, 0xf63: 0x02ea, + 0xf64: 0x4485, 0xf65: 0x4485, 0xf66: 0x02f0, 0xf67: 0x02f0, 0xf68: 0x02f0, 0xf69: 0x02f0, + 0xf6a: 0x02ed, 0xf6b: 0x02ed, 0xf6c: 0x02ed, 0xf6d: 0x02ed, 0xf6e: 0x030b, 0xf6f: 0x030b, + 0xf70: 0x447f, 0xf71: 0x447f, + // Block 0x3e, offset 0xf80 + 0xf93: 0x02db, 0xf94: 0x02db, 0xf95: 0x02db, 0xf96: 0x02db, 0xf97: 0x02f9, + 0xf98: 0x02f9, 0xf99: 0x02f6, 0xf9a: 0x02f6, 0xf9b: 0x02fc, 0xf9c: 0x02fc, 0xf9d: 0x2055, + 0xf9e: 0x0302, 0xf9f: 0x0302, 0xfa0: 0x02f3, 0xfa1: 0x02f3, 0xfa2: 0x02ff, 0xfa3: 0x02ff, + 0xfa4: 0x0308, 0xfa5: 0x0308, 0xfa6: 0x0308, 0xfa7: 0x0308, 0xfa8: 0x0290, 0xfa9: 0x0290, + 0xfaa: 0x25b0, 0xfab: 0x25b0, 0xfac: 0x2620, 0xfad: 0x2620, 0xfae: 0x25ef, 0xfaf: 0x25ef, + 0xfb0: 0x260b, 0xfb1: 0x260b, 0xfb2: 0x2604, 0xfb3: 0x2604, 0xfb4: 0x2612, 0xfb5: 0x2612, + 0xfb6: 0x2619, 0xfb7: 0x2619, 0xfb8: 0x2619, 0xfb9: 0x25f6, 0xfba: 0x25f6, 0xfbb: 0x25f6, + 0xfbc: 0x0305, 0xfbd: 0x0305, 0xfbe: 0x0305, 0xfbf: 0x0305, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x25b7, 0xfc1: 0x25be, 0xfc2: 0x25da, 0xfc3: 0x25f6, 0xfc4: 0x25fd, 0xfc5: 0x1d8f, + 0xfc6: 0x1d94, 0xfc7: 0x1d99, 0xfc8: 0x1da8, 0xfc9: 0x1db7, 0xfca: 0x1dbc, 0xfcb: 0x1dc1, + 0xfcc: 0x1dc6, 0xfcd: 0x1dcb, 0xfce: 0x1dda, 0xfcf: 0x1de9, 0xfd0: 0x1dee, 0xfd1: 0x1df3, + 0xfd2: 0x1e02, 0xfd3: 0x1e11, 0xfd4: 0x1e16, 0xfd5: 0x1e1b, 0xfd6: 0x1e20, 0xfd7: 0x1e2f, + 0xfd8: 0x1e34, 0xfd9: 0x1e43, 0xfda: 0x1e48, 0xfdb: 0x1e4d, 0xfdc: 0x1e5c, 0xfdd: 0x1e61, + 0xfde: 0x1e66, 0xfdf: 0x1e70, 0xfe0: 0x1eac, 0xfe1: 0x1ebb, 0xfe2: 0x1eca, 0xfe3: 0x1ecf, + 0xfe4: 0x1ed4, 0xfe5: 0x1ede, 0xfe6: 0x1eed, 0xfe7: 0x1ef2, 0xfe8: 0x1f01, 0xfe9: 0x1f06, + 0xfea: 0x1f0b, 0xfeb: 0x1f1a, 0xfec: 0x1f1f, 0xfed: 0x1f2e, 0xfee: 0x1f33, 0xfef: 0x1f38, + 0xff0: 0x1f3d, 0xff1: 0x1f42, 0xff2: 0x1f47, 0xff3: 0x1f4c, 0xff4: 0x1f51, 0xff5: 0x1f56, + 0xff6: 0x1f5b, 0xff7: 0x1f60, 0xff8: 0x1f65, 0xff9: 0x1f6a, 0xffa: 0x1f6f, 0xffb: 0x1f74, + 0xffc: 0x1f79, 0xffd: 0x1f7e, 0xffe: 0x1f83, 0xfff: 0x1f8d, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f92, 0x1001: 0x1f97, 0x1002: 0x1f9c, 0x1003: 0x1fa6, 0x1004: 0x1fab, 0x1005: 0x1fb5, + 0x1006: 0x1fba, 0x1007: 0x1fbf, 0x1008: 0x1fc4, 0x1009: 0x1fc9, 0x100a: 0x1fce, 0x100b: 0x1fd3, + 0x100c: 0x1fd8, 0x100d: 0x1fdd, 0x100e: 0x1fec, 0x100f: 0x1ffb, 0x1010: 0x2000, 0x1011: 0x2005, + 0x1012: 0x200a, 0x1013: 0x200f, 0x1014: 0x2014, 0x1015: 0x201e, 0x1016: 0x2023, 0x1017: 0x2028, + 0x1018: 0x2037, 0x1019: 0x2046, 0x101a: 0x204b, 0x101b: 0x4437, 0x101c: 0x443d, 0x101d: 0x4473, + 0x101e: 0x44ca, 0x101f: 0x44d1, 0x1020: 0x44d8, 0x1021: 0x44df, 0x1022: 0x44e6, 0x1023: 0x44ed, + 0x1024: 0x25cc, 0x1025: 0x25d3, 0x1026: 0x25da, 0x1027: 0x25e1, 0x1028: 0x25f6, 0x1029: 0x25fd, + 0x102a: 0x1d9e, 0x102b: 0x1da3, 0x102c: 0x1da8, 0x102d: 0x1dad, 0x102e: 0x1db7, 0x102f: 0x1dbc, + 0x1030: 0x1dd0, 0x1031: 0x1dd5, 0x1032: 0x1dda, 0x1033: 0x1ddf, 0x1034: 0x1de9, 0x1035: 0x1dee, + 0x1036: 0x1df8, 0x1037: 0x1dfd, 0x1038: 0x1e02, 0x1039: 0x1e07, 0x103a: 0x1e11, 0x103b: 0x1e16, + 0x103c: 0x1f42, 0x103d: 0x1f47, 0x103e: 0x1f56, 0x103f: 0x1f5b, + // Block 0x41, offset 0x1040 + 0x1040: 0x1f60, 0x1041: 0x1f74, 0x1042: 0x1f79, 0x1043: 0x1f7e, 0x1044: 0x1f83, 0x1045: 0x1f9c, + 0x1046: 0x1fa6, 0x1047: 0x1fab, 0x1048: 0x1fb0, 0x1049: 0x1fc4, 0x104a: 0x1fe2, 0x104b: 0x1fe7, + 0x104c: 0x1fec, 0x104d: 0x1ff1, 0x104e: 0x1ffb, 0x104f: 0x2000, 0x1050: 0x4473, 0x1051: 0x202d, + 0x1052: 0x2032, 0x1053: 0x2037, 0x1054: 0x203c, 0x1055: 0x2046, 0x1056: 0x204b, 0x1057: 0x25b7, + 0x1058: 0x25be, 0x1059: 0x25c5, 0x105a: 0x25da, 0x105b: 0x25e8, 0x105c: 0x1d8f, 0x105d: 0x1d94, + 0x105e: 0x1d99, 0x105f: 0x1da8, 0x1060: 0x1db2, 0x1061: 0x1dc1, 0x1062: 0x1dc6, 0x1063: 0x1dcb, + 0x1064: 0x1dda, 0x1065: 0x1de4, 0x1066: 0x1e02, 0x1067: 0x1e1b, 0x1068: 0x1e20, 0x1069: 0x1e2f, + 0x106a: 0x1e34, 0x106b: 0x1e43, 0x106c: 0x1e4d, 0x106d: 0x1e5c, 0x106e: 0x1e61, 0x106f: 0x1e66, + 0x1070: 0x1e70, 0x1071: 0x1eac, 0x1072: 0x1eb1, 0x1073: 0x1ebb, 0x1074: 0x1eca, 0x1075: 0x1ecf, + 0x1076: 0x1ed4, 0x1077: 0x1ede, 0x1078: 0x1eed, 0x1079: 0x1f01, 0x107a: 0x1f06, 0x107b: 0x1f0b, + 0x107c: 0x1f1a, 0x107d: 0x1f1f, 0x107e: 0x1f2e, 0x107f: 0x1f33, + // Block 0x42, offset 0x1080 + 0x1080: 0x1f38, 0x1081: 0x1f3d, 0x1082: 0x1f4c, 0x1083: 0x1f51, 0x1084: 0x1f65, 0x1085: 0x1f6a, + 0x1086: 0x1f6f, 0x1087: 0x1f74, 0x1088: 0x1f79, 0x1089: 0x1f8d, 0x108a: 0x1f92, 0x108b: 0x1f97, + 0x108c: 0x1f9c, 0x108d: 0x1fa1, 0x108e: 0x1fb5, 0x108f: 0x1fba, 0x1090: 0x1fbf, 0x1091: 0x1fc4, + 0x1092: 0x1fd3, 0x1093: 0x1fd8, 0x1094: 0x1fdd, 0x1095: 0x1fec, 0x1096: 0x1ff6, 0x1097: 0x2005, + 0x1098: 0x200a, 0x1099: 0x4467, 0x109a: 0x201e, 0x109b: 0x2023, 0x109c: 0x2028, 0x109d: 0x2037, + 0x109e: 0x2041, 0x109f: 0x25da, 0x10a0: 0x25e8, 0x10a1: 0x1da8, 0x10a2: 0x1db2, 0x10a3: 0x1dda, + 0x10a4: 0x1de4, 0x10a5: 0x1e02, 0x10a6: 0x1e0c, 0x10a7: 0x1e70, 0x10a8: 0x1e75, 0x10a9: 0x1e98, + 0x10aa: 0x1e9d, 0x10ab: 0x1f74, 0x10ac: 0x1f79, 0x10ad: 0x1f9c, 0x10ae: 0x1fec, 0x10af: 0x1ff6, + 0x10b0: 0x2037, 0x10b1: 0x2041, 0x10b2: 0x451b, 0x10b3: 0x4523, 0x10b4: 0x452b, 0x10b5: 0x1ef7, + 0x10b6: 0x1efc, 0x10b7: 0x1f10, 0x10b8: 0x1f15, 0x10b9: 0x1f24, 0x10ba: 0x1f29, 0x10bb: 0x1e7a, + 0x10bc: 0x1e7f, 0x10bd: 0x1ea2, 0x10be: 0x1ea7, 0x10bf: 0x1e39, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x1e3e, 0x10c1: 0x1e25, 0x10c2: 0x1e2a, 0x10c3: 0x1e52, 0x10c4: 0x1e57, 0x10c5: 0x1ec0, + 0x10c6: 0x1ec5, 0x10c7: 0x1ee3, 0x10c8: 0x1ee8, 0x10c9: 0x1e84, 0x10ca: 0x1e89, 0x10cb: 0x1e8e, + 0x10cc: 0x1e98, 0x10cd: 0x1e93, 0x10ce: 0x1e6b, 0x10cf: 0x1eb6, 0x10d0: 0x1ed9, 0x10d1: 0x1ef7, + 0x10d2: 0x1efc, 0x10d3: 0x1f10, 0x10d4: 0x1f15, 0x10d5: 0x1f24, 0x10d6: 0x1f29, 0x10d7: 0x1e7a, + 0x10d8: 0x1e7f, 0x10d9: 0x1ea2, 0x10da: 0x1ea7, 0x10db: 0x1e39, 0x10dc: 0x1e3e, 0x10dd: 0x1e25, + 0x10de: 0x1e2a, 0x10df: 0x1e52, 0x10e0: 0x1e57, 0x10e1: 0x1ec0, 0x10e2: 0x1ec5, 0x10e3: 0x1ee3, + 0x10e4: 0x1ee8, 0x10e5: 0x1e84, 0x10e6: 0x1e89, 0x10e7: 0x1e8e, 0x10e8: 0x1e98, 0x10e9: 0x1e93, + 0x10ea: 0x1e6b, 0x10eb: 0x1eb6, 0x10ec: 0x1ed9, 0x10ed: 0x1e84, 0x10ee: 0x1e89, 0x10ef: 0x1e8e, + 0x10f0: 0x1e98, 0x10f1: 0x1e75, 0x10f2: 0x1e9d, 0x10f3: 0x1ef2, 0x10f4: 0x1e5c, 0x10f5: 0x1e61, + 0x10f6: 0x1e66, 0x10f7: 0x1e84, 0x10f8: 0x1e89, 0x10f9: 0x1e8e, 0x10fa: 0x1ef2, 0x10fb: 0x1f01, + 0x10fc: 0x441f, 0x10fd: 0x441f, + // Block 0x44, offset 0x1100 + 0x1110: 0x2317, 0x1111: 0x232c, + 0x1112: 0x232c, 0x1113: 0x2333, 0x1114: 0x233a, 0x1115: 0x234f, 0x1116: 0x2356, 0x1117: 0x235d, + 0x1118: 0x2380, 0x1119: 0x2380, 0x111a: 0x23a3, 0x111b: 0x239c, 0x111c: 0x23b8, 0x111d: 0x23aa, + 0x111e: 0x23b1, 0x111f: 0x23d4, 0x1120: 0x23d4, 0x1121: 0x23cd, 0x1122: 0x23db, 0x1123: 0x23db, + 0x1124: 0x2405, 0x1125: 0x2405, 0x1126: 0x2421, 0x1127: 0x23e9, 0x1128: 0x23e9, 0x1129: 0x23e2, + 0x112a: 0x23f7, 0x112b: 0x23f7, 0x112c: 0x23fe, 0x112d: 0x23fe, 0x112e: 0x2428, 0x112f: 0x2436, + 0x1130: 0x2436, 0x1131: 0x243d, 0x1132: 0x243d, 0x1133: 0x2444, 0x1134: 0x244b, 0x1135: 0x2452, + 0x1136: 0x2459, 0x1137: 0x2459, 0x1138: 0x2460, 0x1139: 0x246e, 0x113a: 0x247c, 0x113b: 0x2475, + 0x113c: 0x2483, 0x113d: 0x2483, 0x113e: 0x2498, 0x113f: 0x249f, + // Block 0x45, offset 0x1140 + 0x1140: 0x24d0, 0x1141: 0x24de, 0x1142: 0x24d7, 0x1143: 0x24bb, 0x1144: 0x24bb, 0x1145: 0x24e5, + 0x1146: 0x24e5, 0x1147: 0x24ec, 0x1148: 0x24ec, 0x1149: 0x2516, 0x114a: 0x251d, 0x114b: 0x2524, + 0x114c: 0x24fa, 0x114d: 0x2508, 0x114e: 0x252b, 0x114f: 0x2532, + 0x1152: 0x2501, 0x1153: 0x2586, 0x1154: 0x258d, 0x1155: 0x2563, 0x1156: 0x256a, 0x1157: 0x254e, + 0x1158: 0x254e, 0x1159: 0x2555, 0x115a: 0x257f, 0x115b: 0x2578, 0x115c: 0x25a2, 0x115d: 0x25a2, + 0x115e: 0x2310, 0x115f: 0x2325, 0x1160: 0x231e, 0x1161: 0x2348, 0x1162: 0x2341, 0x1163: 0x236b, + 0x1164: 0x2364, 0x1165: 0x238e, 0x1166: 0x2372, 0x1167: 0x2387, 0x1168: 0x23bf, 0x1169: 0x240c, + 0x116a: 0x23f0, 0x116b: 0x242f, 0x116c: 0x24c9, 0x116d: 0x24f3, 0x116e: 0x259b, 0x116f: 0x2594, + 0x1170: 0x25a9, 0x1171: 0x2540, 0x1172: 0x24a6, 0x1173: 0x2571, 0x1174: 0x2498, 0x1175: 0x24d0, + 0x1176: 0x2467, 0x1177: 0x24b4, 0x1178: 0x2547, 0x1179: 0x2539, 0x117a: 0x24c2, 0x117b: 0x24ad, + 0x117c: 0x24c2, 0x117d: 0x2547, 0x117e: 0x2379, 0x117f: 0x2395, + // Block 0x46, offset 0x1180 + 0x1180: 0x250f, 0x1181: 0x248a, 0x1182: 0x2309, 0x1183: 0x24ad, 0x1184: 0x2452, 0x1185: 0x2421, + 0x1186: 0x23c6, 0x1187: 0x255c, + 0x11b0: 0x241a, 0x11b1: 0x2491, 0x11b2: 0x27cc, 0x11b3: 0x27c3, 0x11b4: 0x27f9, 0x11b5: 0x27e7, + 0x11b6: 0x27d5, 0x11b7: 0x27f0, 0x11b8: 0x2802, 0x11b9: 0x2413, 0x11ba: 0x2c89, 0x11bb: 0x2b09, + 0x11bc: 0x27de, + // Block 0x47, offset 0x11c0 + 0x11d0: 0x0019, 0x11d1: 0x0486, + 0x11d2: 0x048a, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04c2, + 0x11d8: 0x04c6, 0x11d9: 0x1b62, + 0x11e0: 0x8133, 0x11e1: 0x8133, 0x11e2: 0x8133, 0x11e3: 0x8133, + 0x11e4: 0x8133, 0x11e5: 0x8133, 0x11e6: 0x8133, 0x11e7: 0x812e, 0x11e8: 0x812e, 0x11e9: 0x812e, + 0x11ea: 0x812e, 0x11eb: 0x812e, 0x11ec: 0x812e, 0x11ed: 0x812e, 0x11ee: 0x8133, 0x11ef: 0x8133, + 0x11f0: 0x1876, 0x11f1: 0x0446, 0x11f2: 0x0442, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, + 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04ba, 0x11fa: 0x04be, 0x11fb: 0x04ae, + 0x11fc: 0x04b2, 0x11fd: 0x0496, 0x11fe: 0x049a, 0x11ff: 0x048e, + // Block 0x48, offset 0x1200 + 0x1200: 0x0492, 0x1201: 0x049e, 0x1202: 0x04a2, 0x1203: 0x04a6, 0x1204: 0x04aa, + 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4280, 0x120a: 0x4280, 0x120b: 0x4280, + 0x120c: 0x4280, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0486, + 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, + 0x1218: 0x0446, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04ba, + 0x121e: 0x04be, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, + 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, + 0x122a: 0x000b, 0x122b: 0x0041, + 0x1230: 0x42c1, 0x1231: 0x4443, 0x1232: 0x42c6, 0x1234: 0x42cb, + 0x1236: 0x42d0, 0x1237: 0x4449, 0x1238: 0x42d5, 0x1239: 0x444f, 0x123a: 0x42da, 0x123b: 0x4455, + 0x123c: 0x42df, 0x123d: 0x445b, 0x123e: 0x42e4, 0x123f: 0x4461, + // Block 0x49, offset 0x1240 + 0x1240: 0x0239, 0x1241: 0x4425, 0x1242: 0x4425, 0x1243: 0x442b, 0x1244: 0x442b, 0x1245: 0x446d, + 0x1246: 0x446d, 0x1247: 0x4431, 0x1248: 0x4431, 0x1249: 0x4479, 0x124a: 0x4479, 0x124b: 0x4479, + 0x124c: 0x4479, 0x124d: 0x023c, 0x124e: 0x023c, 0x124f: 0x023f, 0x1250: 0x023f, 0x1251: 0x023f, + 0x1252: 0x023f, 0x1253: 0x0242, 0x1254: 0x0242, 0x1255: 0x0245, 0x1256: 0x0245, 0x1257: 0x0245, + 0x1258: 0x0245, 0x1259: 0x0248, 0x125a: 0x0248, 0x125b: 0x0248, 0x125c: 0x0248, 0x125d: 0x024b, + 0x125e: 0x024b, 0x125f: 0x024b, 0x1260: 0x024b, 0x1261: 0x024e, 0x1262: 0x024e, 0x1263: 0x024e, + 0x1264: 0x024e, 0x1265: 0x0251, 0x1266: 0x0251, 0x1267: 0x0251, 0x1268: 0x0251, 0x1269: 0x0254, + 0x126a: 0x0254, 0x126b: 0x0257, 0x126c: 0x0257, 0x126d: 0x025a, 0x126e: 0x025a, 0x126f: 0x025d, + 0x1270: 0x025d, 0x1271: 0x0260, 0x1272: 0x0260, 0x1273: 0x0260, 0x1274: 0x0260, 0x1275: 0x0263, + 0x1276: 0x0263, 0x1277: 0x0263, 0x1278: 0x0263, 0x1279: 0x0266, 0x127a: 0x0266, 0x127b: 0x0266, + 0x127c: 0x0266, 0x127d: 0x0269, 0x127e: 0x0269, 0x127f: 0x0269, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0269, 0x1281: 0x026c, 0x1282: 0x026c, 0x1283: 0x026c, 0x1284: 0x026c, 0x1285: 0x026f, + 0x1286: 0x026f, 0x1287: 0x026f, 0x1288: 0x026f, 0x1289: 0x0272, 0x128a: 0x0272, 0x128b: 0x0272, + 0x128c: 0x0272, 0x128d: 0x0275, 0x128e: 0x0275, 0x128f: 0x0275, 0x1290: 0x0275, 0x1291: 0x0278, + 0x1292: 0x0278, 0x1293: 0x0278, 0x1294: 0x0278, 0x1295: 0x027b, 0x1296: 0x027b, 0x1297: 0x027b, + 0x1298: 0x027b, 0x1299: 0x027e, 0x129a: 0x027e, 0x129b: 0x027e, 0x129c: 0x027e, 0x129d: 0x0281, + 0x129e: 0x0281, 0x129f: 0x0281, 0x12a0: 0x0281, 0x12a1: 0x0284, 0x12a2: 0x0284, 0x12a3: 0x0284, + 0x12a4: 0x0284, 0x12a5: 0x0287, 0x12a6: 0x0287, 0x12a7: 0x0287, 0x12a8: 0x0287, 0x12a9: 0x028a, + 0x12aa: 0x028a, 0x12ab: 0x028a, 0x12ac: 0x028a, 0x12ad: 0x028d, 0x12ae: 0x028d, 0x12af: 0x0290, + 0x12b0: 0x0290, 0x12b1: 0x0293, 0x12b2: 0x0293, 0x12b3: 0x0293, 0x12b4: 0x0293, 0x12b5: 0x2e17, + 0x12b6: 0x2e17, 0x12b7: 0x2e1f, 0x12b8: 0x2e1f, 0x12b9: 0x2e27, 0x12ba: 0x2e27, 0x12bb: 0x1f88, + 0x12bc: 0x1f88, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, + 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, + 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, + 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, + 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, + 0x12de: 0x00bd, 0x12df: 0x047a, 0x12e0: 0x047e, 0x12e1: 0x048a, 0x12e2: 0x049e, 0x12e3: 0x04a2, + 0x12e4: 0x0486, 0x12e5: 0x05ae, 0x12e6: 0x05a6, 0x12e7: 0x04ca, 0x12e8: 0x04d2, 0x12e9: 0x04da, + 0x12ea: 0x04e2, 0x12eb: 0x04ea, 0x12ec: 0x056e, 0x12ed: 0x0576, 0x12ee: 0x057e, 0x12ef: 0x0522, + 0x12f0: 0x05b2, 0x12f1: 0x04ce, 0x12f2: 0x04d6, 0x12f3: 0x04de, 0x12f4: 0x04e6, 0x12f5: 0x04ee, + 0x12f6: 0x04f2, 0x12f7: 0x04f6, 0x12f8: 0x04fa, 0x12f9: 0x04fe, 0x12fa: 0x0502, 0x12fb: 0x0506, + 0x12fc: 0x050a, 0x12fd: 0x050e, 0x12fe: 0x0512, 0x12ff: 0x0516, + // Block 0x4c, offset 0x1300 + 0x1300: 0x051a, 0x1301: 0x051e, 0x1302: 0x0526, 0x1303: 0x052a, 0x1304: 0x052e, 0x1305: 0x0532, + 0x1306: 0x0536, 0x1307: 0x053a, 0x1308: 0x053e, 0x1309: 0x0542, 0x130a: 0x0546, 0x130b: 0x054a, + 0x130c: 0x054e, 0x130d: 0x0552, 0x130e: 0x0556, 0x130f: 0x055a, 0x1310: 0x055e, 0x1311: 0x0562, + 0x1312: 0x0566, 0x1313: 0x056a, 0x1314: 0x0572, 0x1315: 0x057a, 0x1316: 0x0582, 0x1317: 0x0586, + 0x1318: 0x058a, 0x1319: 0x058e, 0x131a: 0x0592, 0x131b: 0x0596, 0x131c: 0x059a, 0x131d: 0x05aa, + 0x131e: 0x4a8f, 0x131f: 0x4a95, 0x1320: 0x03c6, 0x1321: 0x0316, 0x1322: 0x031a, 0x1323: 0x4a52, + 0x1324: 0x031e, 0x1325: 0x4a58, 0x1326: 0x4a5e, 0x1327: 0x0322, 0x1328: 0x0326, 0x1329: 0x032a, + 0x132a: 0x4a64, 0x132b: 0x4a6a, 0x132c: 0x4a70, 0x132d: 0x4a76, 0x132e: 0x4a7c, 0x132f: 0x4a82, + 0x1330: 0x036a, 0x1331: 0x032e, 0x1332: 0x0332, 0x1333: 0x0336, 0x1334: 0x037e, 0x1335: 0x033a, + 0x1336: 0x033e, 0x1337: 0x0342, 0x1338: 0x0346, 0x1339: 0x034a, 0x133a: 0x034e, 0x133b: 0x0352, + 0x133c: 0x0356, 0x133d: 0x035a, 0x133e: 0x035e, + // Block 0x4d, offset 0x1340 + 0x1342: 0x49d4, 0x1343: 0x49da, 0x1344: 0x49e0, 0x1345: 0x49e6, + 0x1346: 0x49ec, 0x1347: 0x49f2, 0x134a: 0x49f8, 0x134b: 0x49fe, + 0x134c: 0x4a04, 0x134d: 0x4a0a, 0x134e: 0x4a10, 0x134f: 0x4a16, + 0x1352: 0x4a1c, 0x1353: 0x4a22, 0x1354: 0x4a28, 0x1355: 0x4a2e, 0x1356: 0x4a34, 0x1357: 0x4a3a, + 0x135a: 0x4a40, 0x135b: 0x4a46, 0x135c: 0x4a4c, + 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x427b, + 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x044a, 0x1368: 0x046e, 0x1369: 0x044e, + 0x136a: 0x0452, 0x136b: 0x0456, 0x136c: 0x045a, 0x136d: 0x0472, 0x136e: 0x0476, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d, + 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085, + 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091, + 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d, + 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9, + 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5, + 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0176, 0x13a9: 0x0179, + 0x13aa: 0x017c, 0x13ab: 0x017f, 0x13ac: 0x0182, 0x13ad: 0x0185, 0x13ae: 0x0188, 0x13af: 0x018b, + 0x13b0: 0x018e, 0x13b1: 0x0191, 0x13b2: 0x0194, 0x13b3: 0x0197, 0x13b4: 0x019a, 0x13b5: 0x019d, + 0x13b6: 0x01a0, 0x13b7: 0x01a3, 0x13b8: 0x01a6, 0x13b9: 0x018b, 0x13ba: 0x01a9, 0x13bb: 0x01ac, + 0x13bc: 0x01af, 0x13bd: 0x01b2, 0x13be: 0x01b5, 0x13bf: 0x01b8, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x0200, 0x13c1: 0x0203, 0x13c2: 0x0206, 0x13c3: 0x045e, 0x13c4: 0x01ca, 0x13c5: 0x01d3, + 0x13c6: 0x01d9, 0x13c7: 0x01fd, 0x13c8: 0x01ee, 0x13c9: 0x01eb, 0x13ca: 0x0209, 0x13cb: 0x020c, + 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027, + 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033, + 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b, + 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023, + 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f, + 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027, + 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033, + 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b, + 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033, + // Block 0x50, offset 0x1400 + 0x1400: 0x023c, 0x1401: 0x023f, 0x1402: 0x024b, 0x1403: 0x0254, 0x1405: 0x028d, + 0x1406: 0x025d, 0x1407: 0x024e, 0x1408: 0x026c, 0x1409: 0x0293, 0x140a: 0x027e, 0x140b: 0x0281, + 0x140c: 0x0284, 0x140d: 0x0287, 0x140e: 0x0260, 0x140f: 0x0272, 0x1410: 0x0278, 0x1411: 0x0266, + 0x1412: 0x027b, 0x1413: 0x025a, 0x1414: 0x0263, 0x1415: 0x0245, 0x1416: 0x0248, 0x1417: 0x0251, + 0x1418: 0x0257, 0x1419: 0x0269, 0x141a: 0x026f, 0x141b: 0x0275, 0x141c: 0x0296, 0x141d: 0x02e7, + 0x141e: 0x02cf, 0x141f: 0x0299, 0x1421: 0x023f, 0x1422: 0x024b, + 0x1424: 0x028a, 0x1427: 0x024e, 0x1429: 0x0293, + 0x142a: 0x027e, 0x142b: 0x0281, 0x142c: 0x0284, 0x142d: 0x0287, 0x142e: 0x0260, 0x142f: 0x0272, + 0x1430: 0x0278, 0x1431: 0x0266, 0x1432: 0x027b, 0x1434: 0x0263, 0x1435: 0x0245, + 0x1436: 0x0248, 0x1437: 0x0251, 0x1439: 0x0269, 0x143b: 0x0275, + // Block 0x51, offset 0x1440 + 0x1442: 0x024b, + 0x1447: 0x024e, 0x1449: 0x0293, 0x144b: 0x0281, + 0x144d: 0x0287, 0x144e: 0x0260, 0x144f: 0x0272, 0x1451: 0x0266, + 0x1452: 0x027b, 0x1454: 0x0263, 0x1457: 0x0251, + 0x1459: 0x0269, 0x145b: 0x0275, 0x145d: 0x02e7, + 0x145f: 0x0299, 0x1461: 0x023f, 0x1462: 0x024b, + 0x1464: 0x028a, 0x1467: 0x024e, 0x1468: 0x026c, 0x1469: 0x0293, + 0x146a: 0x027e, 0x146c: 0x0284, 0x146d: 0x0287, 0x146e: 0x0260, 0x146f: 0x0272, + 0x1470: 0x0278, 0x1471: 0x0266, 0x1472: 0x027b, 0x1474: 0x0263, 0x1475: 0x0245, + 0x1476: 0x0248, 0x1477: 0x0251, 0x1479: 0x0269, 0x147a: 0x026f, 0x147b: 0x0275, + 0x147c: 0x0296, 0x147e: 0x02cf, + // Block 0x52, offset 0x1480 + 0x1480: 0x023c, 0x1481: 0x023f, 0x1482: 0x024b, 0x1483: 0x0254, 0x1484: 0x028a, 0x1485: 0x028d, + 0x1486: 0x025d, 0x1487: 0x024e, 0x1488: 0x026c, 0x1489: 0x0293, 0x148b: 0x0281, + 0x148c: 0x0284, 0x148d: 0x0287, 0x148e: 0x0260, 0x148f: 0x0272, 0x1490: 0x0278, 0x1491: 0x0266, + 0x1492: 0x027b, 0x1493: 0x025a, 0x1494: 0x0263, 0x1495: 0x0245, 0x1496: 0x0248, 0x1497: 0x0251, + 0x1498: 0x0257, 0x1499: 0x0269, 0x149a: 0x026f, 0x149b: 0x0275, + 0x14a1: 0x023f, 0x14a2: 0x024b, 0x14a3: 0x0254, + 0x14a5: 0x028d, 0x14a6: 0x025d, 0x14a7: 0x024e, 0x14a8: 0x026c, 0x14a9: 0x0293, + 0x14ab: 0x0281, 0x14ac: 0x0284, 0x14ad: 0x0287, 0x14ae: 0x0260, 0x14af: 0x0272, + 0x14b0: 0x0278, 0x14b1: 0x0266, 0x14b2: 0x027b, 0x14b3: 0x025a, 0x14b4: 0x0263, 0x14b5: 0x0245, + 0x14b6: 0x0248, 0x14b7: 0x0251, 0x14b8: 0x0257, 0x14b9: 0x0269, 0x14ba: 0x026f, 0x14bb: 0x0275, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x187c, 0x14c1: 0x1879, 0x14c2: 0x187f, 0x14c3: 0x18a3, 0x14c4: 0x18c7, 0x14c5: 0x18eb, + 0x14c6: 0x190f, 0x14c7: 0x1918, 0x14c8: 0x191e, 0x14c9: 0x1924, 0x14ca: 0x192a, + 0x14d0: 0x1a92, 0x14d1: 0x1a96, + 0x14d2: 0x1a9a, 0x14d3: 0x1a9e, 0x14d4: 0x1aa2, 0x14d5: 0x1aa6, 0x14d6: 0x1aaa, 0x14d7: 0x1aae, + 0x14d8: 0x1ab2, 0x14d9: 0x1ab6, 0x14da: 0x1aba, 0x14db: 0x1abe, 0x14dc: 0x1ac2, 0x14dd: 0x1ac6, + 0x14de: 0x1aca, 0x14df: 0x1ace, 0x14e0: 0x1ad2, 0x14e1: 0x1ad6, 0x14e2: 0x1ada, 0x14e3: 0x1ade, + 0x14e4: 0x1ae2, 0x14e5: 0x1ae6, 0x14e6: 0x1aea, 0x14e7: 0x1aee, 0x14e8: 0x1af2, 0x14e9: 0x1af6, + 0x14ea: 0x272b, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193f, 0x14ee: 0x19b7, + 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d, + 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059, + 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061, + // Block 0x54, offset 0x1500 + 0x1500: 0x26b3, 0x1501: 0x26c8, 0x1502: 0x0506, + 0x1510: 0x0c12, 0x1511: 0x0a4a, + 0x1512: 0x08d6, 0x1513: 0x45db, 0x1514: 0x071e, 0x1515: 0x09f2, 0x1516: 0x1332, 0x1517: 0x0a02, + 0x1518: 0x072a, 0x1519: 0x0cda, 0x151a: 0x0eb2, 0x151b: 0x0cb2, 0x151c: 0x082a, 0x151d: 0x0b6e, + 0x151e: 0x07c2, 0x151f: 0x0cba, 0x1520: 0x0816, 0x1521: 0x111a, 0x1522: 0x0f86, 0x1523: 0x138e, + 0x1524: 0x09d6, 0x1525: 0x090e, 0x1526: 0x0e66, 0x1527: 0x0c1e, 0x1528: 0x0c4a, 0x1529: 0x06c2, + 0x152a: 0x06ce, 0x152b: 0x140e, 0x152c: 0x0ade, 0x152d: 0x06ea, 0x152e: 0x08f2, 0x152f: 0x0c3e, + 0x1530: 0x13b6, 0x1531: 0x0c16, 0x1532: 0x1072, 0x1533: 0x10ae, 0x1534: 0x08fa, 0x1535: 0x0e46, + 0x1536: 0x0d0e, 0x1537: 0x0d0a, 0x1538: 0x0f9a, 0x1539: 0x082e, 0x153a: 0x095a, 0x153b: 0x1446, + // Block 0x55, offset 0x1540 + 0x1540: 0x06fe, 0x1541: 0x06f6, 0x1542: 0x0706, 0x1543: 0x164a, 0x1544: 0x074a, 0x1545: 0x075a, + 0x1546: 0x075e, 0x1547: 0x0766, 0x1548: 0x076e, 0x1549: 0x0772, 0x154a: 0x077e, 0x154b: 0x0776, + 0x154c: 0x05b6, 0x154d: 0x165e, 0x154e: 0x0792, 0x154f: 0x0796, 0x1550: 0x079a, 0x1551: 0x07b6, + 0x1552: 0x164f, 0x1553: 0x05ba, 0x1554: 0x07a2, 0x1555: 0x07c2, 0x1556: 0x1659, 0x1557: 0x07d2, + 0x1558: 0x07da, 0x1559: 0x073a, 0x155a: 0x07e2, 0x155b: 0x07e6, 0x155c: 0x1834, 0x155d: 0x0802, + 0x155e: 0x080a, 0x155f: 0x05c2, 0x1560: 0x0822, 0x1561: 0x0826, 0x1562: 0x082e, 0x1563: 0x0832, + 0x1564: 0x05c6, 0x1565: 0x084a, 0x1566: 0x084e, 0x1567: 0x085a, 0x1568: 0x0866, 0x1569: 0x086a, + 0x156a: 0x086e, 0x156b: 0x0876, 0x156c: 0x0896, 0x156d: 0x089a, 0x156e: 0x08a2, 0x156f: 0x08b2, + 0x1570: 0x08ba, 0x1571: 0x08be, 0x1572: 0x08be, 0x1573: 0x08be, 0x1574: 0x166d, 0x1575: 0x0e96, + 0x1576: 0x08d2, 0x1577: 0x08da, 0x1578: 0x1672, 0x1579: 0x08e6, 0x157a: 0x08ee, 0x157b: 0x08f6, + 0x157c: 0x091e, 0x157d: 0x090a, 0x157e: 0x0916, 0x157f: 0x091a, + // Block 0x56, offset 0x1580 + 0x1580: 0x0922, 0x1581: 0x092a, 0x1582: 0x092e, 0x1583: 0x0936, 0x1584: 0x093e, 0x1585: 0x0942, + 0x1586: 0x0942, 0x1587: 0x094a, 0x1588: 0x0952, 0x1589: 0x0956, 0x158a: 0x0962, 0x158b: 0x0986, + 0x158c: 0x096a, 0x158d: 0x098a, 0x158e: 0x096e, 0x158f: 0x0976, 0x1590: 0x080e, 0x1591: 0x09d2, + 0x1592: 0x099a, 0x1593: 0x099e, 0x1594: 0x09a2, 0x1595: 0x0996, 0x1596: 0x09aa, 0x1597: 0x09a6, + 0x1598: 0x09be, 0x1599: 0x1677, 0x159a: 0x09da, 0x159b: 0x09de, 0x159c: 0x09e6, 0x159d: 0x09f2, + 0x159e: 0x09fa, 0x159f: 0x0a16, 0x15a0: 0x167c, 0x15a1: 0x1681, 0x15a2: 0x0a22, 0x15a3: 0x0a26, + 0x15a4: 0x0a2a, 0x15a5: 0x0a1e, 0x15a6: 0x0a32, 0x15a7: 0x05ca, 0x15a8: 0x05ce, 0x15a9: 0x0a3a, + 0x15aa: 0x0a42, 0x15ab: 0x0a42, 0x15ac: 0x1686, 0x15ad: 0x0a5e, 0x15ae: 0x0a62, 0x15af: 0x0a66, + 0x15b0: 0x0a6e, 0x15b1: 0x168b, 0x15b2: 0x0a76, 0x15b3: 0x0a7a, 0x15b4: 0x0b52, 0x15b5: 0x0a82, + 0x15b6: 0x05d2, 0x15b7: 0x0a8e, 0x15b8: 0x0a9e, 0x15b9: 0x0aaa, 0x15ba: 0x0aa6, 0x15bb: 0x1695, + 0x15bc: 0x0ab2, 0x15bd: 0x169a, 0x15be: 0x0abe, 0x15bf: 0x0aba, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0ac2, 0x15c1: 0x0ad2, 0x15c2: 0x0ad6, 0x15c3: 0x05d6, 0x15c4: 0x0ae6, 0x15c5: 0x0aee, + 0x15c6: 0x0af2, 0x15c7: 0x0af6, 0x15c8: 0x05da, 0x15c9: 0x169f, 0x15ca: 0x05de, 0x15cb: 0x0b12, + 0x15cc: 0x0b16, 0x15cd: 0x0b1a, 0x15ce: 0x0b22, 0x15cf: 0x1866, 0x15d0: 0x0b3a, 0x15d1: 0x16a9, + 0x15d2: 0x16a9, 0x15d3: 0x11da, 0x15d4: 0x0b4a, 0x15d5: 0x0b4a, 0x15d6: 0x05e2, 0x15d7: 0x16cc, + 0x15d8: 0x179e, 0x15d9: 0x0b5a, 0x15da: 0x0b62, 0x15db: 0x05e6, 0x15dc: 0x0b76, 0x15dd: 0x0b86, + 0x15de: 0x0b8a, 0x15df: 0x0b92, 0x15e0: 0x0ba2, 0x15e1: 0x05ee, 0x15e2: 0x05ea, 0x15e3: 0x0ba6, + 0x15e4: 0x16ae, 0x15e5: 0x0baa, 0x15e6: 0x0bbe, 0x15e7: 0x0bc2, 0x15e8: 0x0bc6, 0x15e9: 0x0bc2, + 0x15ea: 0x0bd2, 0x15eb: 0x0bd6, 0x15ec: 0x0be6, 0x15ed: 0x0bde, 0x15ee: 0x0be2, 0x15ef: 0x0bea, + 0x15f0: 0x0bee, 0x15f1: 0x0bf2, 0x15f2: 0x0bfe, 0x15f3: 0x0c02, 0x15f4: 0x0c1a, 0x15f5: 0x0c22, + 0x15f6: 0x0c32, 0x15f7: 0x0c46, 0x15f8: 0x16bd, 0x15f9: 0x0c42, 0x15fa: 0x0c36, 0x15fb: 0x0c4e, + 0x15fc: 0x0c56, 0x15fd: 0x0c6a, 0x15fe: 0x16c2, 0x15ff: 0x0c72, + // Block 0x58, offset 0x1600 + 0x1600: 0x0c66, 0x1601: 0x0c5e, 0x1602: 0x05f2, 0x1603: 0x0c7a, 0x1604: 0x0c82, 0x1605: 0x0c8a, + 0x1606: 0x0c7e, 0x1607: 0x05f6, 0x1608: 0x0c9a, 0x1609: 0x0ca2, 0x160a: 0x16c7, 0x160b: 0x0cce, + 0x160c: 0x0d02, 0x160d: 0x0cde, 0x160e: 0x0602, 0x160f: 0x0cea, 0x1610: 0x05fe, 0x1611: 0x05fa, + 0x1612: 0x07c6, 0x1613: 0x07ca, 0x1614: 0x0d06, 0x1615: 0x0cee, 0x1616: 0x11ae, 0x1617: 0x0666, + 0x1618: 0x0d12, 0x1619: 0x0d16, 0x161a: 0x0d1a, 0x161b: 0x0d2e, 0x161c: 0x0d26, 0x161d: 0x16e0, + 0x161e: 0x0606, 0x161f: 0x0d42, 0x1620: 0x0d36, 0x1621: 0x0d52, 0x1622: 0x0d5a, 0x1623: 0x16ea, + 0x1624: 0x0d5e, 0x1625: 0x0d4a, 0x1626: 0x0d66, 0x1627: 0x060a, 0x1628: 0x0d6a, 0x1629: 0x0d6e, + 0x162a: 0x0d72, 0x162b: 0x0d7e, 0x162c: 0x16ef, 0x162d: 0x0d86, 0x162e: 0x060e, 0x162f: 0x0d92, + 0x1630: 0x16f4, 0x1631: 0x0d96, 0x1632: 0x0612, 0x1633: 0x0da2, 0x1634: 0x0dae, 0x1635: 0x0dba, + 0x1636: 0x0dbe, 0x1637: 0x16f9, 0x1638: 0x1690, 0x1639: 0x16fe, 0x163a: 0x0dde, 0x163b: 0x1703, + 0x163c: 0x0dea, 0x163d: 0x0df2, 0x163e: 0x0de2, 0x163f: 0x0dfe, + // Block 0x59, offset 0x1640 + 0x1640: 0x0e0e, 0x1641: 0x0e1e, 0x1642: 0x0e12, 0x1643: 0x0e16, 0x1644: 0x0e22, 0x1645: 0x0e26, + 0x1646: 0x1708, 0x1647: 0x0e0a, 0x1648: 0x0e3e, 0x1649: 0x0e42, 0x164a: 0x0616, 0x164b: 0x0e56, + 0x164c: 0x0e52, 0x164d: 0x170d, 0x164e: 0x0e36, 0x164f: 0x0e72, 0x1650: 0x1712, 0x1651: 0x1717, + 0x1652: 0x0e76, 0x1653: 0x0e8a, 0x1654: 0x0e86, 0x1655: 0x0e82, 0x1656: 0x061a, 0x1657: 0x0e8e, + 0x1658: 0x0e9e, 0x1659: 0x0e9a, 0x165a: 0x0ea6, 0x165b: 0x1654, 0x165c: 0x0eb6, 0x165d: 0x171c, + 0x165e: 0x0ec2, 0x165f: 0x1726, 0x1660: 0x0ed6, 0x1661: 0x0ee2, 0x1662: 0x0ef6, 0x1663: 0x172b, + 0x1664: 0x0f0a, 0x1665: 0x0f0e, 0x1666: 0x1730, 0x1667: 0x1735, 0x1668: 0x0f2a, 0x1669: 0x0f3a, + 0x166a: 0x061e, 0x166b: 0x0f3e, 0x166c: 0x0622, 0x166d: 0x0622, 0x166e: 0x0f56, 0x166f: 0x0f5a, + 0x1670: 0x0f62, 0x1671: 0x0f66, 0x1672: 0x0f72, 0x1673: 0x0626, 0x1674: 0x0f8a, 0x1675: 0x173a, + 0x1676: 0x0fa6, 0x1677: 0x173f, 0x1678: 0x0fb2, 0x1679: 0x16a4, 0x167a: 0x0fc2, 0x167b: 0x1744, + 0x167c: 0x1749, 0x167d: 0x174e, 0x167e: 0x062a, 0x167f: 0x062e, + // Block 0x5a, offset 0x1680 + 0x1680: 0x0ffa, 0x1681: 0x1758, 0x1682: 0x1753, 0x1683: 0x175d, 0x1684: 0x1762, 0x1685: 0x1002, + 0x1686: 0x1006, 0x1687: 0x1006, 0x1688: 0x100e, 0x1689: 0x0636, 0x168a: 0x1012, 0x168b: 0x063a, + 0x168c: 0x063e, 0x168d: 0x176c, 0x168e: 0x1026, 0x168f: 0x102e, 0x1690: 0x103a, 0x1691: 0x0642, + 0x1692: 0x1771, 0x1693: 0x105e, 0x1694: 0x1776, 0x1695: 0x177b, 0x1696: 0x107e, 0x1697: 0x1096, + 0x1698: 0x0646, 0x1699: 0x109e, 0x169a: 0x10a2, 0x169b: 0x10a6, 0x169c: 0x1780, 0x169d: 0x1785, + 0x169e: 0x1785, 0x169f: 0x10be, 0x16a0: 0x064a, 0x16a1: 0x178a, 0x16a2: 0x10d2, 0x16a3: 0x10d6, + 0x16a4: 0x064e, 0x16a5: 0x178f, 0x16a6: 0x10f2, 0x16a7: 0x0652, 0x16a8: 0x1102, 0x16a9: 0x10fa, + 0x16aa: 0x110a, 0x16ab: 0x1799, 0x16ac: 0x1122, 0x16ad: 0x0656, 0x16ae: 0x112e, 0x16af: 0x1136, + 0x16b0: 0x1146, 0x16b1: 0x065a, 0x16b2: 0x17a3, 0x16b3: 0x17a8, 0x16b4: 0x065e, 0x16b5: 0x17ad, + 0x16b6: 0x115e, 0x16b7: 0x17b2, 0x16b8: 0x116a, 0x16b9: 0x1176, 0x16ba: 0x117e, 0x16bb: 0x17b7, + 0x16bc: 0x17bc, 0x16bd: 0x1192, 0x16be: 0x17c1, 0x16bf: 0x119a, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x16d1, 0x16c1: 0x0662, 0x16c2: 0x11b2, 0x16c3: 0x11b6, 0x16c4: 0x066a, 0x16c5: 0x11ba, + 0x16c6: 0x0a36, 0x16c7: 0x17c6, 0x16c8: 0x17cb, 0x16c9: 0x16d6, 0x16ca: 0x16db, 0x16cb: 0x11da, + 0x16cc: 0x11de, 0x16cd: 0x13f6, 0x16ce: 0x066e, 0x16cf: 0x120a, 0x16d0: 0x1206, 0x16d1: 0x120e, + 0x16d2: 0x0842, 0x16d3: 0x1212, 0x16d4: 0x1216, 0x16d5: 0x121a, 0x16d6: 0x1222, 0x16d7: 0x17d0, + 0x16d8: 0x121e, 0x16d9: 0x1226, 0x16da: 0x123a, 0x16db: 0x123e, 0x16dc: 0x122a, 0x16dd: 0x1242, + 0x16de: 0x1256, 0x16df: 0x126a, 0x16e0: 0x1236, 0x16e1: 0x124a, 0x16e2: 0x124e, 0x16e3: 0x1252, + 0x16e4: 0x17d5, 0x16e5: 0x17df, 0x16e6: 0x17da, 0x16e7: 0x0672, 0x16e8: 0x1272, 0x16e9: 0x1276, + 0x16ea: 0x127e, 0x16eb: 0x17f3, 0x16ec: 0x1282, 0x16ed: 0x17e4, 0x16ee: 0x0676, 0x16ef: 0x067a, + 0x16f0: 0x17e9, 0x16f1: 0x17ee, 0x16f2: 0x067e, 0x16f3: 0x12a2, 0x16f4: 0x12a6, 0x16f5: 0x12aa, + 0x16f6: 0x12ae, 0x16f7: 0x12ba, 0x16f8: 0x12b6, 0x16f9: 0x12c2, 0x16fa: 0x12be, 0x16fb: 0x12ce, + 0x16fc: 0x12c6, 0x16fd: 0x12ca, 0x16fe: 0x12d2, 0x16ff: 0x0682, + // Block 0x5c, offset 0x1700 + 0x1700: 0x12da, 0x1701: 0x12de, 0x1702: 0x0686, 0x1703: 0x12ee, 0x1704: 0x12f2, 0x1705: 0x17f8, + 0x1706: 0x12fe, 0x1707: 0x1302, 0x1708: 0x068a, 0x1709: 0x130e, 0x170a: 0x05be, 0x170b: 0x17fd, + 0x170c: 0x1802, 0x170d: 0x068e, 0x170e: 0x0692, 0x170f: 0x133a, 0x1710: 0x1352, 0x1711: 0x136e, + 0x1712: 0x137e, 0x1713: 0x1807, 0x1714: 0x1392, 0x1715: 0x1396, 0x1716: 0x13ae, 0x1717: 0x13ba, + 0x1718: 0x1811, 0x1719: 0x1663, 0x171a: 0x13c6, 0x171b: 0x13c2, 0x171c: 0x13ce, 0x171d: 0x1668, + 0x171e: 0x13da, 0x171f: 0x13e6, 0x1720: 0x1816, 0x1721: 0x181b, 0x1722: 0x1426, 0x1723: 0x1432, + 0x1724: 0x143a, 0x1725: 0x1820, 0x1726: 0x143e, 0x1727: 0x146a, 0x1728: 0x1476, 0x1729: 0x147a, + 0x172a: 0x1472, 0x172b: 0x1486, 0x172c: 0x148a, 0x172d: 0x1825, 0x172e: 0x1496, 0x172f: 0x0696, + 0x1730: 0x149e, 0x1731: 0x182a, 0x1732: 0x069a, 0x1733: 0x14d6, 0x1734: 0x0ac6, 0x1735: 0x14ee, + 0x1736: 0x182f, 0x1737: 0x1839, 0x1738: 0x069e, 0x1739: 0x06a2, 0x173a: 0x1516, 0x173b: 0x183e, + 0x173c: 0x06a6, 0x173d: 0x1843, 0x173e: 0x152e, 0x173f: 0x152e, + // Block 0x5d, offset 0x1740 + 0x1740: 0x1536, 0x1741: 0x1848, 0x1742: 0x154e, 0x1743: 0x06aa, 0x1744: 0x155e, 0x1745: 0x156a, + 0x1746: 0x1572, 0x1747: 0x157a, 0x1748: 0x06ae, 0x1749: 0x184d, 0x174a: 0x158e, 0x174b: 0x15aa, + 0x174c: 0x15b6, 0x174d: 0x06b2, 0x174e: 0x06b6, 0x174f: 0x15ba, 0x1750: 0x1852, 0x1751: 0x06ba, + 0x1752: 0x1857, 0x1753: 0x185c, 0x1754: 0x1861, 0x1755: 0x15de, 0x1756: 0x06be, 0x1757: 0x15f2, + 0x1758: 0x15fa, 0x1759: 0x15fe, 0x175a: 0x1606, 0x175b: 0x160e, 0x175c: 0x1616, 0x175d: 0x186b, +} + +// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62, + 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, + 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, + 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, + 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, + // Block 0x5, offset 0x140 + 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, + 0x14d: 0x8a, + 0x15c: 0x8b, 0x15f: 0x8c, + 0x162: 0x8d, 0x164: 0x8e, + 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16b: 0x92, 0x16c: 0x0f, 0x16d: 0x93, 0x16e: 0x94, 0x16f: 0x95, + 0x170: 0x96, 0x173: 0x97, 0x174: 0x98, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, + 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, + // Block 0x6, offset 0x180 + 0x180: 0x99, 0x181: 0x9a, 0x182: 0x9b, 0x183: 0x9c, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9d, 0x187: 0x9e, + 0x188: 0x9f, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0xa0, 0x18c: 0xa1, + 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa2, + 0x1a8: 0xa3, 0x1a9: 0xa4, 0x1ab: 0xa5, + 0x1b1: 0xa6, 0x1b3: 0xa7, 0x1b5: 0xa8, 0x1b7: 0xa9, + 0x1ba: 0xaa, 0x1bb: 0xab, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xac, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xad, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xae, 0x1c5: 0x27, 0x1c6: 0x28, + 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, + // Block 0x8, offset 0x200 + 0x219: 0xaf, 0x21a: 0xb0, 0x21b: 0xb1, 0x21d: 0xb2, 0x21f: 0xb3, + 0x220: 0xb4, 0x223: 0xb5, 0x224: 0xb6, 0x225: 0xb7, 0x226: 0xb8, 0x227: 0xb9, + 0x22a: 0xba, 0x22b: 0xbb, 0x22d: 0xbc, 0x22f: 0xbd, + 0x230: 0xbe, 0x231: 0xbf, 0x232: 0xc0, 0x233: 0xc1, 0x234: 0xc2, 0x235: 0xc3, 0x236: 0xc4, 0x237: 0xbe, + 0x238: 0xbf, 0x239: 0xc0, 0x23a: 0xc1, 0x23b: 0xc2, 0x23c: 0xc3, 0x23d: 0xc4, 0x23e: 0xbe, 0x23f: 0xbf, + // Block 0x9, offset 0x240 + 0x240: 0xc0, 0x241: 0xc1, 0x242: 0xc2, 0x243: 0xc3, 0x244: 0xc4, 0x245: 0xbe, 0x246: 0xbf, 0x247: 0xc0, + 0x248: 0xc1, 0x249: 0xc2, 0x24a: 0xc3, 0x24b: 0xc4, 0x24c: 0xbe, 0x24d: 0xbf, 0x24e: 0xc0, 0x24f: 0xc1, + 0x250: 0xc2, 0x251: 0xc3, 0x252: 0xc4, 0x253: 0xbe, 0x254: 0xbf, 0x255: 0xc0, 0x256: 0xc1, 0x257: 0xc2, + 0x258: 0xc3, 0x259: 0xc4, 0x25a: 0xbe, 0x25b: 0xbf, 0x25c: 0xc0, 0x25d: 0xc1, 0x25e: 0xc2, 0x25f: 0xc3, + 0x260: 0xc4, 0x261: 0xbe, 0x262: 0xbf, 0x263: 0xc0, 0x264: 0xc1, 0x265: 0xc2, 0x266: 0xc3, 0x267: 0xc4, + 0x268: 0xbe, 0x269: 0xbf, 0x26a: 0xc0, 0x26b: 0xc1, 0x26c: 0xc2, 0x26d: 0xc3, 0x26e: 0xc4, 0x26f: 0xbe, + 0x270: 0xbf, 0x271: 0xc0, 0x272: 0xc1, 0x273: 0xc2, 0x274: 0xc3, 0x275: 0xc4, 0x276: 0xbe, 0x277: 0xbf, + 0x278: 0xc0, 0x279: 0xc1, 0x27a: 0xc2, 0x27b: 0xc3, 0x27c: 0xc4, 0x27d: 0xbe, 0x27e: 0xbf, 0x27f: 0xc0, + // Block 0xa, offset 0x280 + 0x280: 0xc1, 0x281: 0xc2, 0x282: 0xc3, 0x283: 0xc4, 0x284: 0xbe, 0x285: 0xbf, 0x286: 0xc0, 0x287: 0xc1, + 0x288: 0xc2, 0x289: 0xc3, 0x28a: 0xc4, 0x28b: 0xbe, 0x28c: 0xbf, 0x28d: 0xc0, 0x28e: 0xc1, 0x28f: 0xc2, + 0x290: 0xc3, 0x291: 0xc4, 0x292: 0xbe, 0x293: 0xbf, 0x294: 0xc0, 0x295: 0xc1, 0x296: 0xc2, 0x297: 0xc3, + 0x298: 0xc4, 0x299: 0xbe, 0x29a: 0xbf, 0x29b: 0xc0, 0x29c: 0xc1, 0x29d: 0xc2, 0x29e: 0xc3, 0x29f: 0xc4, + 0x2a0: 0xbe, 0x2a1: 0xbf, 0x2a2: 0xc0, 0x2a3: 0xc1, 0x2a4: 0xc2, 0x2a5: 0xc3, 0x2a6: 0xc4, 0x2a7: 0xbe, + 0x2a8: 0xbf, 0x2a9: 0xc0, 0x2aa: 0xc1, 0x2ab: 0xc2, 0x2ac: 0xc3, 0x2ad: 0xc4, 0x2ae: 0xbe, 0x2af: 0xbf, + 0x2b0: 0xc0, 0x2b1: 0xc1, 0x2b2: 0xc2, 0x2b3: 0xc3, 0x2b4: 0xc4, 0x2b5: 0xbe, 0x2b6: 0xbf, 0x2b7: 0xc0, + 0x2b8: 0xc1, 0x2b9: 0xc2, 0x2ba: 0xc3, 0x2bb: 0xc4, 0x2bc: 0xbe, 0x2bd: 0xbf, 0x2be: 0xc0, 0x2bf: 0xc1, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc2, 0x2c1: 0xc3, 0x2c2: 0xc4, 0x2c3: 0xbe, 0x2c4: 0xbf, 0x2c5: 0xc0, 0x2c6: 0xc1, 0x2c7: 0xc2, + 0x2c8: 0xc3, 0x2c9: 0xc4, 0x2ca: 0xbe, 0x2cb: 0xbf, 0x2cc: 0xc0, 0x2cd: 0xc1, 0x2ce: 0xc2, 0x2cf: 0xc3, + 0x2d0: 0xc4, 0x2d1: 0xbe, 0x2d2: 0xbf, 0x2d3: 0xc0, 0x2d4: 0xc1, 0x2d5: 0xc2, 0x2d6: 0xc3, 0x2d7: 0xc4, + 0x2d8: 0xbe, 0x2d9: 0xbf, 0x2da: 0xc0, 0x2db: 0xc1, 0x2dc: 0xc2, 0x2dd: 0xc3, 0x2de: 0xc5, + // Block 0xc, offset 0x300 + 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, + 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, + 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, + 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc6, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, + // Block 0xd, offset 0x340 + 0x347: 0xc7, + 0x34b: 0xc8, 0x34d: 0xc9, + 0x368: 0xca, 0x36b: 0xcb, + 0x374: 0xcc, + 0x37a: 0xcd, 0x37d: 0xce, + // Block 0xe, offset 0x380 + 0x381: 0xcf, 0x382: 0xd0, 0x384: 0xd1, 0x385: 0xb8, 0x387: 0xd2, + 0x388: 0xd3, 0x38b: 0xd4, 0x38c: 0xd5, 0x38d: 0xd6, + 0x391: 0xd7, 0x392: 0xd8, 0x393: 0xd9, 0x396: 0xda, 0x397: 0xdb, + 0x398: 0xdc, 0x39a: 0xdd, 0x39c: 0xde, + 0x3a0: 0xdf, 0x3a4: 0xe0, 0x3a5: 0xe1, 0x3a7: 0xe2, + 0x3a8: 0xe3, 0x3a9: 0xe4, 0x3aa: 0xe5, + 0x3b0: 0xdc, 0x3b5: 0xe6, 0x3b6: 0xe7, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xe8, 0x3ec: 0xe9, + 0x3ff: 0xea, + // Block 0x10, offset 0x400 + 0x432: 0xeb, + // Block 0x11, offset 0x440 + 0x445: 0xec, 0x446: 0xed, 0x447: 0xee, + 0x449: 0xef, + 0x450: 0xf0, 0x451: 0xf1, 0x452: 0xf2, 0x453: 0xf3, 0x454: 0xf4, 0x455: 0xf5, 0x456: 0xf6, 0x457: 0xf7, + 0x458: 0xf8, 0x459: 0xf9, 0x45a: 0x4c, 0x45b: 0xfa, 0x45c: 0xfb, 0x45d: 0xfc, 0x45e: 0xfd, 0x45f: 0x4d, + // Block 0x12, offset 0x480 + 0x480: 0xfe, 0x484: 0xe9, + 0x48b: 0xff, + 0x4a3: 0x100, 0x4a5: 0x101, + 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x51, 0x4c5: 0x102, 0x4c6: 0x103, + 0x4c8: 0x52, 0x4c9: 0x104, + 0x4ef: 0x105, + // Block 0x14, offset 0x500 + 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a, + 0x528: 0x5b, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 170 entries, 340 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x134, 0x136, 0x13f, 0x141, 0x144, 0x146, 0x151, 0x15c, 0x16a, 0x178, 0x188, 0x196, 0x19d, 0x1a3, 0x1b2, 0x1b6, 0x1b8, 0x1bc, 0x1be, 0x1c1, 0x1c3, 0x1c6, 0x1c8, 0x1cb, 0x1cd, 0x1cf, 0x1d1, 0x1dd, 0x1e7, 0x1f1, 0x1f4, 0x1f8, 0x1fa, 0x1fc, 0x1fe, 0x201, 0x204, 0x206, 0x208, 0x20a, 0x20c, 0x212, 0x215, 0x21a, 0x21c, 0x223, 0x229, 0x22f, 0x237, 0x23d, 0x243, 0x249, 0x24d, 0x24f, 0x251, 0x253, 0x255, 0x25b, 0x25e, 0x260, 0x262, 0x268, 0x26b, 0x273, 0x27a, 0x27d, 0x280, 0x282, 0x285, 0x28d, 0x291, 0x298, 0x29b, 0x2a1, 0x2a3, 0x2a5, 0x2a8, 0x2aa, 0x2ad, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2bc, 0x2bf, 0x2c1, 0x2c3, 0x2c5, 0x2c7, 0x2c9, 0x2d6, 0x2e0, 0x2e2, 0x2e4, 0x2e8, 0x2ed, 0x2f9, 0x2fe, 0x307, 0x30d, 0x312, 0x316, 0x31b, 0x31f, 0x32f, 0x33d, 0x34b, 0x359, 0x35f, 0x361, 0x363, 0x366, 0x371, 0x373, 0x37d} + +// nfkcSparseValues: 895 entries, 3580 bytes +var nfkcSparseValues = [895]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x428f, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x427b, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x4271, lo: 0xb4, hi: 0xb4}, + {value: 0x01df, lo: 0xb5, hi: 0xb5}, + {value: 0x42a8, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x2222, lo: 0xbc, hi: 0xbc}, + {value: 0x2216, lo: 0xbd, hi: 0xbd}, + {value: 0x22b8, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x46f9, lo: 0xa0, hi: 0xa1}, + {value: 0x472b, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x4285, lo: 0x98, hi: 0x98}, + {value: 0x428a, lo: 0x99, hi: 0x9a}, + {value: 0x42ad, lo: 0x9b, hi: 0x9b}, + {value: 0x4276, lo: 0x9c, hi: 0x9c}, + {value: 0x4299, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x016a, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37bc, lo: 0x90, hi: 0x90}, + {value: 0x37c8, lo: 0x91, hi: 0x91}, + {value: 0x37b6, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x382e, lo: 0x97, hi: 0x97}, + {value: 0x37f8, lo: 0x9c, hi: 0x9c}, + {value: 0x37e0, lo: 0x9d, hi: 0x9d}, + {value: 0x380a, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x3834, lo: 0xb6, hi: 0xb6}, + {value: 0x383a, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8114, lo: 0x81, hi: 0x82}, + {value: 0x8133, lo: 0x84, hi: 0x84}, + {value: 0x812e, lo: 0x85, hi: 0x85}, + {value: 0x810e, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8133, lo: 0x90, hi: 0x97}, + {value: 0x811a, lo: 0x98, hi: 0x98}, + {value: 0x811b, lo: 0x99, hi: 0x99}, + {value: 0x811c, lo: 0x9a, hi: 0x9a}, + {value: 0x3858, lo: 0xa2, hi: 0xa2}, + {value: 0x385e, lo: 0xa3, hi: 0xa3}, + {value: 0x386a, lo: 0xa4, hi: 0xa4}, + {value: 0x3864, lo: 0xa5, hi: 0xa5}, + {value: 0x3870, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x3882, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x3876, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x387c, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8133, lo: 0x96, hi: 0x9c}, + {value: 0x8133, lo: 0x9f, hi: 0xa2}, + {value: 0x812e, lo: 0xa3, hi: 0xa3}, + {value: 0x8133, lo: 0xa4, hi: 0xa4}, + {value: 0x8133, lo: 0xa7, hi: 0xa8}, + {value: 0x812e, lo: 0xaa, hi: 0xaa}, + {value: 0x8133, lo: 0xab, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x8120, lo: 0x91, hi: 0x91}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + {value: 0x812e, lo: 0xb1, hi: 0xb1}, + {value: 0x8133, lo: 0xb2, hi: 0xb3}, + {value: 0x812e, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb5, hi: 0xb6}, + {value: 0x812e, lo: 0xb7, hi: 0xb9}, + {value: 0x8133, lo: 0xba, hi: 0xba}, + {value: 0x812e, lo: 0xbb, hi: 0xbc}, + {value: 0x8133, lo: 0xbd, hi: 0xbd}, + {value: 0x812e, lo: 0xbe, hi: 0xbe}, + {value: 0x8133, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8133, lo: 0x80, hi: 0x80}, + {value: 0x8133, lo: 0x81, hi: 0x81}, + {value: 0x812e, lo: 0x82, hi: 0x83}, + {value: 0x812e, lo: 0x84, hi: 0x85}, + {value: 0x812e, lo: 0x86, hi: 0x87}, + {value: 0x812e, lo: 0x88, hi: 0x89}, + {value: 0x8133, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x04}, + {value: 0x8133, lo: 0xab, hi: 0xb1}, + {value: 0x812e, lo: 0xb2, hi: 0xb2}, + {value: 0x8133, lo: 0xb3, hi: 0xb3}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + // Block 0xc, offset 0x70 + {value: 0x0000, lo: 0x04}, + {value: 0x8133, lo: 0x96, hi: 0x99}, + {value: 0x8133, lo: 0x9b, hi: 0xa3}, + {value: 0x8133, lo: 0xa5, hi: 0xa7}, + {value: 0x8133, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x75 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x77 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3eef, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ef7, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3eff, lo: 0xb4, hi: 0xb4}, + {value: 0x9903, lo: 0xbc, hi: 0xbc}, + // Block 0xf, offset 0x7f + {value: 0x0008, lo: 0x06}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x8133, lo: 0x91, hi: 0x91}, + {value: 0x812e, lo: 0x92, hi: 0x92}, + {value: 0x8133, lo: 0x93, hi: 0x93}, + {value: 0x8133, lo: 0x94, hi: 0x94}, + {value: 0x4533, lo: 0x98, hi: 0x9f}, + // Block 0x10, offset 0x86 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x11, offset 0x89 + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cab, lo: 0x8b, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x4573, lo: 0x9c, hi: 0x9d}, + {value: 0x4583, lo: 0x9f, hi: 0x9f}, + {value: 0x8133, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x91 + {value: 0x0000, lo: 0x03}, + {value: 0x45ab, lo: 0xb3, hi: 0xb3}, + {value: 0x45b3, lo: 0xb6, hi: 0xb6}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + // Block 0x13, offset 0x95 + {value: 0x0008, lo: 0x03}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x458b, lo: 0x99, hi: 0x9b}, + {value: 0x45a3, lo: 0x9e, hi: 0x9e}, + // Block 0x14, offset 0x99 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + // Block 0x16, offset 0x9d + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cc3, lo: 0x88, hi: 0x88}, + {value: 0x2cbb, lo: 0x8b, hi: 0x8b}, + {value: 0x2ccb, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45bb, lo: 0x9c, hi: 0x9c}, + {value: 0x45c3, lo: 0x9d, hi: 0x9d}, + // Block 0x17, offset 0xa6 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cd3, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x18, offset 0xaa + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cdb, lo: 0x8a, hi: 0x8a}, + {value: 0x2ceb, lo: 0x8b, hi: 0x8b}, + {value: 0x2ce3, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x19, offset 0xb1 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3f07, lo: 0x88, hi: 0x88}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x8121, lo: 0x95, hi: 0x96}, + // Block 0x1a, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0xb9 + {value: 0x0000, lo: 0x09}, + {value: 0x2cf3, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cfb, lo: 0x87, hi: 0x87}, + {value: 0x2d03, lo: 0x88, hi: 0x88}, + {value: 0x2f67, lo: 0x8a, hi: 0x8a}, + {value: 0x2def, lo: 0x8b, hi: 0x8b}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xc3 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1d, offset 0xc6 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2d0b, lo: 0x8a, hi: 0x8a}, + {value: 0x2d1b, lo: 0x8b, hi: 0x8b}, + {value: 0x2d13, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1e, offset 0xcd + {value: 0x6bdd, lo: 0x07}, + {value: 0x9905, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3f0f, lo: 0x9a, hi: 0x9a}, + {value: 0x2f6f, lo: 0x9c, hi: 0x9c}, + {value: 0x2dfa, lo: 0x9d, hi: 0x9d}, + {value: 0x2d23, lo: 0x9e, hi: 0x9f}, + // Block 0x1f, offset 0xd5 + {value: 0x0000, lo: 0x03}, + {value: 0x2627, lo: 0xb3, hi: 0xb3}, + {value: 0x8123, lo: 0xb8, hi: 0xb9}, + {value: 0x8105, lo: 0xba, hi: 0xba}, + // Block 0x20, offset 0xd9 + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0x88, hi: 0x8b}, + // Block 0x21, offset 0xdb + {value: 0x0000, lo: 0x03}, + {value: 0x263c, lo: 0xb3, hi: 0xb3}, + {value: 0x8125, lo: 0xb8, hi: 0xb9}, + {value: 0x8105, lo: 0xba, hi: 0xba}, + // Block 0x22, offset 0xdf + {value: 0x0000, lo: 0x03}, + {value: 0x8126, lo: 0x88, hi: 0x8b}, + {value: 0x262e, lo: 0x9c, hi: 0x9c}, + {value: 0x2635, lo: 0x9d, hi: 0x9d}, + // Block 0x23, offset 0xe3 + {value: 0x0000, lo: 0x05}, + {value: 0x030e, lo: 0x8c, hi: 0x8c}, + {value: 0x812e, lo: 0x98, hi: 0x99}, + {value: 0x812e, lo: 0xb5, hi: 0xb5}, + {value: 0x812e, lo: 0xb7, hi: 0xb7}, + {value: 0x812c, lo: 0xb9, hi: 0xb9}, + // Block 0x24, offset 0xe9 + {value: 0x0000, lo: 0x10}, + {value: 0x264a, lo: 0x83, hi: 0x83}, + {value: 0x2651, lo: 0x8d, hi: 0x8d}, + {value: 0x2658, lo: 0x92, hi: 0x92}, + {value: 0x265f, lo: 0x97, hi: 0x97}, + {value: 0x2666, lo: 0x9c, hi: 0x9c}, + {value: 0x2643, lo: 0xa9, hi: 0xa9}, + {value: 0x8127, lo: 0xb1, hi: 0xb1}, + {value: 0x8128, lo: 0xb2, hi: 0xb2}, + {value: 0x4a9b, lo: 0xb3, hi: 0xb3}, + {value: 0x8129, lo: 0xb4, hi: 0xb4}, + {value: 0x4aa4, lo: 0xb5, hi: 0xb5}, + {value: 0x45cb, lo: 0xb6, hi: 0xb6}, + {value: 0x460b, lo: 0xb7, hi: 0xb7}, + {value: 0x45d3, lo: 0xb8, hi: 0xb8}, + {value: 0x4616, lo: 0xb9, hi: 0xb9}, + {value: 0x8128, lo: 0xba, hi: 0xbd}, + // Block 0x25, offset 0xfa + {value: 0x0000, lo: 0x0b}, + {value: 0x8128, lo: 0x80, hi: 0x80}, + {value: 0x4aad, lo: 0x81, hi: 0x81}, + {value: 0x8133, lo: 0x82, hi: 0x83}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0x86, hi: 0x87}, + {value: 0x2674, lo: 0x93, hi: 0x93}, + {value: 0x267b, lo: 0x9d, hi: 0x9d}, + {value: 0x2682, lo: 0xa2, hi: 0xa2}, + {value: 0x2689, lo: 0xa7, hi: 0xa7}, + {value: 0x2690, lo: 0xac, hi: 0xac}, + {value: 0x266d, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0x106 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x86, hi: 0x86}, + // Block 0x27, offset 0x108 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d2b, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + {value: 0x8105, lo: 0xb9, hi: 0xba}, + // Block 0x28, offset 0x10e + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x8d, hi: 0x8d}, + // Block 0x29, offset 0x110 + {value: 0x0000, lo: 0x01}, + {value: 0x0312, lo: 0xbc, hi: 0xbc}, + // Block 0x2a, offset 0x112 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0x114 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x116 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x118 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x11a + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x11c + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x94, hi: 0x94}, + {value: 0x8105, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x11f + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x92, hi: 0x92}, + {value: 0x8133, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x122 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x124 + {value: 0x0004, lo: 0x02}, + {value: 0x812f, lo: 0xb9, hi: 0xba}, + {value: 0x812e, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x127 + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x97, hi: 0x97}, + {value: 0x812e, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x12a + {value: 0x0000, lo: 0x03}, + {value: 0x8105, lo: 0xa0, hi: 0xa0}, + {value: 0x8133, lo: 0xb5, hi: 0xbc}, + {value: 0x812e, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x12e + {value: 0x0000, lo: 0x05}, + {value: 0x8133, lo: 0xb0, hi: 0xb4}, + {value: 0x812e, lo: 0xb5, hi: 0xba}, + {value: 0x8133, lo: 0xbb, hi: 0xbc}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + {value: 0x812e, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x134 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x80, hi: 0x80}, + // Block 0x37, offset 0x136 + {value: 0x0000, lo: 0x08}, + {value: 0x2d73, lo: 0x80, hi: 0x80}, + {value: 0x2d7b, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d83, lo: 0x83, hi: 0x83}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0xab, hi: 0xab}, + {value: 0x812e, lo: 0xac, hi: 0xac}, + {value: 0x8133, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x13f + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x141 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xa6, hi: 0xa6}, + {value: 0x8105, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x144 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x146 + {value: 0x0000, lo: 0x0a}, + {value: 0x8133, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812e, lo: 0x95, hi: 0x99}, + {value: 0x8133, lo: 0x9a, hi: 0x9b}, + {value: 0x812e, lo: 0x9c, hi: 0x9f}, + {value: 0x8133, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x8133, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x151 + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x15c + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043e, lo: 0x91, hi: 0x91}, + {value: 0x42b2, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1876, lo: 0xa5, hi: 0xa5}, + {value: 0x1b62, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2697, lo: 0xb3, hi: 0xb3}, + {value: 0x280b, lo: 0xb4, hi: 0xb4}, + {value: 0x269e, lo: 0xb6, hi: 0xb6}, + {value: 0x2815, lo: 0xb7, hi: 0xb7}, + {value: 0x1870, lo: 0xbc, hi: 0xbc}, + {value: 0x4280, lo: 0xbe, hi: 0xbe}, + // Block 0x3e, offset 0x16a + {value: 0x0002, lo: 0x0d}, + {value: 0x1936, lo: 0x87, hi: 0x87}, + {value: 0x1933, lo: 0x88, hi: 0x88}, + {value: 0x1873, lo: 0x89, hi: 0x89}, + {value: 0x299b, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x046a, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x3f, offset 0x178 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x046a, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x199f, lo: 0xa8, hi: 0xa8}, + // Block 0x40, offset 0x188 + {value: 0x0000, lo: 0x0d}, + {value: 0x8133, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8133, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8133, lo: 0x9b, hi: 0x9c}, + {value: 0x8133, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8133, lo: 0xa7, hi: 0xa7}, + {value: 0x812e, lo: 0xa8, hi: 0xa8}, + {value: 0x8133, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812e, lo: 0xac, hi: 0xaf}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + // Block 0x41, offset 0x196 + {value: 0x0007, lo: 0x06}, + {value: 0x2186, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bd0, lo: 0x9a, hi: 0x9b}, + {value: 0x3bde, lo: 0xae, hi: 0xae}, + // Block 0x42, offset 0x19d + {value: 0x000e, lo: 0x05}, + {value: 0x3be5, lo: 0x8d, hi: 0x8e}, + {value: 0x3bec, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x43, offset 0x1a3 + {value: 0x017a, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3bfa, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3c01, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3c08, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3c0f, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3c16, lo: 0xa6, hi: 0xa6}, + {value: 0x26a5, lo: 0xac, hi: 0xad}, + {value: 0x26ac, lo: 0xaf, hi: 0xaf}, + {value: 0x2829, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x44, offset 0x1b2 + {value: 0x0007, lo: 0x03}, + {value: 0x3c7f, lo: 0xa0, hi: 0xa1}, + {value: 0x3ca9, lo: 0xa2, hi: 0xa3}, + {value: 0x3cd3, lo: 0xaa, hi: 0xad}, + // Block 0x45, offset 0x1b6 + {value: 0x0004, lo: 0x01}, + {value: 0x048e, lo: 0xa9, hi: 0xaa}, + // Block 0x46, offset 0x1b8 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x47, offset 0x1bc + {value: 0x0000, lo: 0x01}, + {value: 0x29a8, lo: 0x8c, hi: 0x8c}, + // Block 0x48, offset 0x1be + {value: 0x0266, lo: 0x02}, + {value: 0x1b92, lo: 0xb4, hi: 0xb4}, + {value: 0x1930, lo: 0xb5, hi: 0xb6}, + // Block 0x49, offset 0x1c1 + {value: 0x0000, lo: 0x01}, + {value: 0x44f4, lo: 0x9c, hi: 0x9c}, + // Block 0x4a, offset 0x1c3 + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4b, offset 0x1c6 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xaf, hi: 0xb1}, + // Block 0x4c, offset 0x1c8 + {value: 0x0000, lo: 0x02}, + {value: 0x0482, lo: 0xaf, hi: 0xaf}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x4d, offset 0x1cb + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xa0, hi: 0xbf}, + // Block 0x4e, offset 0x1cd + {value: 0x0000, lo: 0x01}, + {value: 0x0dc6, lo: 0x9f, hi: 0x9f}, + // Block 0x4f, offset 0x1cf + {value: 0x0000, lo: 0x01}, + {value: 0x1632, lo: 0xb3, hi: 0xb3}, + // Block 0x50, offset 0x1d1 + {value: 0x0004, lo: 0x0b}, + {value: 0x159a, lo: 0x80, hi: 0x82}, + {value: 0x15b2, lo: 0x83, hi: 0x83}, + {value: 0x15ca, lo: 0x84, hi: 0x85}, + {value: 0x15da, lo: 0x86, hi: 0x89}, + {value: 0x15ee, lo: 0x8a, hi: 0x8c}, + {value: 0x1602, lo: 0x8d, hi: 0x8d}, + {value: 0x160a, lo: 0x8e, hi: 0x8e}, + {value: 0x1612, lo: 0x8f, hi: 0x90}, + {value: 0x161e, lo: 0x91, hi: 0x93}, + {value: 0x162e, lo: 0x94, hi: 0x94}, + {value: 0x1636, lo: 0x95, hi: 0x95}, + // Block 0x51, offset 0x1dd + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x8134, lo: 0xac, hi: 0xac}, + {value: 0x812f, lo: 0xad, hi: 0xad}, + {value: 0x8130, lo: 0xae, hi: 0xae}, + {value: 0x8130, lo: 0xaf, hi: 0xaf}, + {value: 0x04b6, lo: 0xb6, hi: 0xb6}, + {value: 0x088a, lo: 0xb8, hi: 0xba}, + // Block 0x52, offset 0x1e7 + {value: 0x0006, lo: 0x09}, + {value: 0x0316, lo: 0xb1, hi: 0xb1}, + {value: 0x031a, lo: 0xb2, hi: 0xb2}, + {value: 0x4a52, lo: 0xb3, hi: 0xb3}, + {value: 0x031e, lo: 0xb4, hi: 0xb4}, + {value: 0x4a58, lo: 0xb5, hi: 0xb6}, + {value: 0x0322, lo: 0xb7, hi: 0xb7}, + {value: 0x0326, lo: 0xb8, hi: 0xb8}, + {value: 0x032a, lo: 0xb9, hi: 0xb9}, + {value: 0x4a64, lo: 0xba, hi: 0xbf}, + // Block 0x53, offset 0x1f1 + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0xaf, hi: 0xaf}, + {value: 0x8133, lo: 0xb4, hi: 0xbd}, + // Block 0x54, offset 0x1f4 + {value: 0x0000, lo: 0x03}, + {value: 0x0212, lo: 0x9c, hi: 0x9c}, + {value: 0x0215, lo: 0x9d, hi: 0x9d}, + {value: 0x8133, lo: 0x9e, hi: 0x9f}, + // Block 0x55, offset 0x1f8 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb0, hi: 0xb1}, + // Block 0x56, offset 0x1fa + {value: 0x0000, lo: 0x01}, + {value: 0x163e, lo: 0xb0, hi: 0xb0}, + // Block 0x57, offset 0x1fc + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x58, offset 0x1fe + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x86, hi: 0x86}, + {value: 0x8105, lo: 0xac, hi: 0xac}, + // Block 0x59, offset 0x201 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0xa0, hi: 0xb1}, + // Block 0x5a, offset 0x204 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xab, hi: 0xad}, + // Block 0x5b, offset 0x206 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x93, hi: 0x93}, + // Block 0x5c, offset 0x208 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xb3, hi: 0xb3}, + // Block 0x5d, offset 0x20a + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x80, hi: 0x80}, + // Block 0x5e, offset 0x20c + {value: 0x0000, lo: 0x05}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + {value: 0x8133, lo: 0xb2, hi: 0xb3}, + {value: 0x812e, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb7, hi: 0xb8}, + {value: 0x8133, lo: 0xbe, hi: 0xbf}, + // Block 0x5f, offset 0x212 + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x81, hi: 0x81}, + {value: 0x8105, lo: 0xb6, hi: 0xb6}, + // Block 0x60, offset 0x215 + {value: 0x0008, lo: 0x04}, + {value: 0x163a, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1646, lo: 0x9f, hi: 0x9f}, + {value: 0x015e, lo: 0xa9, hi: 0xa9}, + // Block 0x61, offset 0x21a + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xad, hi: 0xad}, + // Block 0x62, offset 0x21c + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x63, offset 0x223 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x64, offset 0x229 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x65, offset 0x22f + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x66, offset 0x237 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x67, offset 0x23d + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x68, offset 0x243 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x69, offset 0x249 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x6a, offset 0x24d + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6b, offset 0x24f + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + // Block 0x6c, offset 0x251 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xa0, hi: 0xa0}, + // Block 0x6d, offset 0x253 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb6, hi: 0xba}, + // Block 0x6e, offset 0x255 + {value: 0x002d, lo: 0x05}, + {value: 0x812e, lo: 0x8d, hi: 0x8d}, + {value: 0x8133, lo: 0x8f, hi: 0x8f}, + {value: 0x8133, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x6f, offset 0x25b + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0xa5, hi: 0xa5}, + {value: 0x812e, lo: 0xa6, hi: 0xa6}, + // Block 0x70, offset 0x25e + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xa4, hi: 0xa7}, + // Block 0x71, offset 0x260 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xab, hi: 0xac}, + // Block 0x72, offset 0x262 + {value: 0x0000, lo: 0x05}, + {value: 0x812e, lo: 0x86, hi: 0x87}, + {value: 0x8133, lo: 0x88, hi: 0x8a}, + {value: 0x812e, lo: 0x8b, hi: 0x8b}, + {value: 0x8133, lo: 0x8c, hi: 0x8c}, + {value: 0x812e, lo: 0x8d, hi: 0x90}, + // Block 0x73, offset 0x268 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x86, hi: 0x86}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x74, offset 0x26b + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x424f, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4259, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x4263, lo: 0xab, hi: 0xab}, + {value: 0x8105, lo: 0xb9, hi: 0xba}, + // Block 0x75, offset 0x273 + {value: 0x0000, lo: 0x06}, + {value: 0x8133, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d8b, lo: 0xae, hi: 0xae}, + {value: 0x2d95, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8105, lo: 0xb3, hi: 0xb4}, + // Block 0x76, offset 0x27a + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x80, hi: 0x80}, + {value: 0x8103, lo: 0x8a, hi: 0x8a}, + // Block 0x77, offset 0x27d + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb5, hi: 0xb5}, + {value: 0x8103, lo: 0xb6, hi: 0xb6}, + // Block 0x78, offset 0x280 + {value: 0x0002, lo: 0x01}, + {value: 0x8103, lo: 0xa9, hi: 0xaa}, + // Block 0x79, offset 0x282 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x7a, offset 0x285 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d9f, lo: 0x8b, hi: 0x8b}, + {value: 0x2da9, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8133, lo: 0xa6, hi: 0xac}, + {value: 0x8133, lo: 0xb0, hi: 0xb4}, + // Block 0x7b, offset 0x28d + {value: 0x0000, lo: 0x03}, + {value: 0x8105, lo: 0x82, hi: 0x82}, + {value: 0x8103, lo: 0x86, hi: 0x86}, + {value: 0x8133, lo: 0x9e, hi: 0x9e}, + // Block 0x7c, offset 0x291 + {value: 0x6b4d, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2dbd, lo: 0xbb, hi: 0xbb}, + {value: 0x2db3, lo: 0xbc, hi: 0xbd}, + {value: 0x2dc7, lo: 0xbe, hi: 0xbe}, + // Block 0x7d, offset 0x298 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x82, hi: 0x82}, + {value: 0x8103, lo: 0x83, hi: 0x83}, + // Block 0x7e, offset 0x29b + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dd1, lo: 0xba, hi: 0xba}, + {value: 0x2ddb, lo: 0xbb, hi: 0xbb}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x7f, offset 0x2a1 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0x80, hi: 0x80}, + // Block 0x80, offset 0x2a3 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x81, offset 0x2a5 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb6, hi: 0xb6}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + // Block 0x82, offset 0x2a8 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xab, hi: 0xab}, + // Block 0x83, offset 0x2aa + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb9, hi: 0xb9}, + {value: 0x8103, lo: 0xba, hi: 0xba}, + // Block 0x84, offset 0x2ad + {value: 0x0000, lo: 0x04}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb5, hi: 0xb5}, + {value: 0x2de5, lo: 0xb8, hi: 0xb8}, + {value: 0x8105, lo: 0xbd, hi: 0xbe}, + // Block 0x85, offset 0x2b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0x83, hi: 0x83}, + // Block 0x86, offset 0x2b4 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xa0, hi: 0xa0}, + // Block 0x87, offset 0x2b6 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xb4, hi: 0xb4}, + // Block 0x88, offset 0x2b8 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x87, hi: 0x87}, + // Block 0x89, offset 0x2ba + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x99, hi: 0x99}, + // Block 0x8a, offset 0x2bc + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0x82, hi: 0x82}, + {value: 0x8105, lo: 0x84, hi: 0x85}, + // Block 0x8b, offset 0x2bf + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x97, hi: 0x97}, + // Block 0x8c, offset 0x2c1 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x8d, offset 0x2c3 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb0, hi: 0xb6}, + // Block 0x8e, offset 0x2c5 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb0, hi: 0xb1}, + // Block 0x8f, offset 0x2c7 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x90, offset 0x2c9 + {value: 0x0000, lo: 0x0c}, + {value: 0x45e3, lo: 0x9e, hi: 0x9e}, + {value: 0x45ed, lo: 0x9f, hi: 0x9f}, + {value: 0x4621, lo: 0xa0, hi: 0xa0}, + {value: 0x462f, lo: 0xa1, hi: 0xa1}, + {value: 0x463d, lo: 0xa2, hi: 0xa2}, + {value: 0x464b, lo: 0xa3, hi: 0xa3}, + {value: 0x4659, lo: 0xa4, hi: 0xa4}, + {value: 0x812c, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8131, lo: 0xad, hi: 0xad}, + {value: 0x812c, lo: 0xae, hi: 0xb2}, + {value: 0x812e, lo: 0xbb, hi: 0xbf}, + // Block 0x91, offset 0x2d6 + {value: 0x0000, lo: 0x09}, + {value: 0x812e, lo: 0x80, hi: 0x82}, + {value: 0x8133, lo: 0x85, hi: 0x89}, + {value: 0x812e, lo: 0x8a, hi: 0x8b}, + {value: 0x8133, lo: 0xaa, hi: 0xad}, + {value: 0x45f7, lo: 0xbb, hi: 0xbb}, + {value: 0x4601, lo: 0xbc, hi: 0xbc}, + {value: 0x4667, lo: 0xbd, hi: 0xbd}, + {value: 0x4683, lo: 0xbe, hi: 0xbe}, + {value: 0x4675, lo: 0xbf, hi: 0xbf}, + // Block 0x92, offset 0x2e0 + {value: 0x0000, lo: 0x01}, + {value: 0x4691, lo: 0x80, hi: 0x80}, + // Block 0x93, offset 0x2e2 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x82, hi: 0x84}, + // Block 0x94, offset 0x2e4 + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x95, offset 0x2e8 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x96, offset 0x2ed + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x97, offset 0x2f9 + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x98, offset 0x2fe + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x99, offset 0x307 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x9a, offset 0x30d + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x9b, offset 0x312 + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x9c, offset 0x316 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x9d, offset 0x31b + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x9e, offset 0x31f + {value: 0x0003, lo: 0x0f}, + {value: 0x01bb, lo: 0x80, hi: 0x80}, + {value: 0x0462, lo: 0x81, hi: 0x81}, + {value: 0x01be, lo: 0x82, hi: 0x9a}, + {value: 0x045e, lo: 0x9b, hi: 0x9b}, + {value: 0x01ca, lo: 0x9c, hi: 0x9c}, + {value: 0x01d3, lo: 0x9d, hi: 0x9d}, + {value: 0x01d9, lo: 0x9e, hi: 0x9e}, + {value: 0x01fd, lo: 0x9f, hi: 0x9f}, + {value: 0x01ee, lo: 0xa0, hi: 0xa0}, + {value: 0x01eb, lo: 0xa1, hi: 0xa1}, + {value: 0x0176, lo: 0xa2, hi: 0xb2}, + {value: 0x018b, lo: 0xb3, hi: 0xb3}, + {value: 0x01a9, lo: 0xb4, hi: 0xba}, + {value: 0x0462, lo: 0xbb, hi: 0xbb}, + {value: 0x01be, lo: 0xbc, hi: 0xbf}, + // Block 0x9f, offset 0x32f + {value: 0x0003, lo: 0x0d}, + {value: 0x01ca, lo: 0x80, hi: 0x94}, + {value: 0x045e, lo: 0x95, hi: 0x95}, + {value: 0x01ca, lo: 0x96, hi: 0x96}, + {value: 0x01d3, lo: 0x97, hi: 0x97}, + {value: 0x01d9, lo: 0x98, hi: 0x98}, + {value: 0x01fd, lo: 0x99, hi: 0x99}, + {value: 0x01ee, lo: 0x9a, hi: 0x9a}, + {value: 0x01eb, lo: 0x9b, hi: 0x9b}, + {value: 0x0176, lo: 0x9c, hi: 0xac}, + {value: 0x018b, lo: 0xad, hi: 0xad}, + {value: 0x01a9, lo: 0xae, hi: 0xb4}, + {value: 0x0462, lo: 0xb5, hi: 0xb5}, + {value: 0x01be, lo: 0xb6, hi: 0xbf}, + // Block 0xa0, offset 0x33d + {value: 0x0003, lo: 0x0d}, + {value: 0x01dc, lo: 0x80, hi: 0x8e}, + {value: 0x045e, lo: 0x8f, hi: 0x8f}, + {value: 0x01ca, lo: 0x90, hi: 0x90}, + {value: 0x01d3, lo: 0x91, hi: 0x91}, + {value: 0x01d9, lo: 0x92, hi: 0x92}, + {value: 0x01fd, lo: 0x93, hi: 0x93}, + {value: 0x01ee, lo: 0x94, hi: 0x94}, + {value: 0x01eb, lo: 0x95, hi: 0x95}, + {value: 0x0176, lo: 0x96, hi: 0xa6}, + {value: 0x018b, lo: 0xa7, hi: 0xa7}, + {value: 0x01a9, lo: 0xa8, hi: 0xae}, + {value: 0x0462, lo: 0xaf, hi: 0xaf}, + {value: 0x01be, lo: 0xb0, hi: 0xbf}, + // Block 0xa1, offset 0x34b + {value: 0x0003, lo: 0x0d}, + {value: 0x01ee, lo: 0x80, hi: 0x88}, + {value: 0x045e, lo: 0x89, hi: 0x89}, + {value: 0x01ca, lo: 0x8a, hi: 0x8a}, + {value: 0x01d3, lo: 0x8b, hi: 0x8b}, + {value: 0x01d9, lo: 0x8c, hi: 0x8c}, + {value: 0x01fd, lo: 0x8d, hi: 0x8d}, + {value: 0x01ee, lo: 0x8e, hi: 0x8e}, + {value: 0x01eb, lo: 0x8f, hi: 0x8f}, + {value: 0x0176, lo: 0x90, hi: 0xa0}, + {value: 0x018b, lo: 0xa1, hi: 0xa1}, + {value: 0x01a9, lo: 0xa2, hi: 0xa8}, + {value: 0x0462, lo: 0xa9, hi: 0xa9}, + {value: 0x01be, lo: 0xaa, hi: 0xbf}, + // Block 0xa2, offset 0x359 + {value: 0x0000, lo: 0x05}, + {value: 0x8133, lo: 0x80, hi: 0x86}, + {value: 0x8133, lo: 0x88, hi: 0x98}, + {value: 0x8133, lo: 0x9b, hi: 0xa1}, + {value: 0x8133, lo: 0xa3, hi: 0xa4}, + {value: 0x8133, lo: 0xa6, hi: 0xaa}, + // Block 0xa3, offset 0x35f + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xac, hi: 0xaf}, + // Block 0xa4, offset 0x361 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x90, hi: 0x96}, + // Block 0xa5, offset 0x363 + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x84, hi: 0x89}, + {value: 0x8103, lo: 0x8a, hi: 0x8a}, + // Block 0xa6, offset 0x366 + {value: 0x0002, lo: 0x0a}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1954, lo: 0x8a, hi: 0x8a}, + {value: 0x1987, lo: 0x8b, hi: 0x8b}, + {value: 0x19a2, lo: 0x8c, hi: 0x8c}, + {value: 0x19a8, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc6, lo: 0x8e, hi: 0x8e}, + {value: 0x19b4, lo: 0x8f, hi: 0x8f}, + {value: 0x197e, lo: 0xaa, hi: 0xaa}, + {value: 0x1981, lo: 0xab, hi: 0xab}, + {value: 0x1984, lo: 0xac, hi: 0xac}, + // Block 0xa7, offset 0x371 + {value: 0x0000, lo: 0x01}, + {value: 0x1942, lo: 0x90, hi: 0x90}, + // Block 0xa8, offset 0x373 + {value: 0x0028, lo: 0x09}, + {value: 0x286f, lo: 0x80, hi: 0x80}, + {value: 0x2833, lo: 0x81, hi: 0x81}, + {value: 0x283d, lo: 0x82, hi: 0x82}, + {value: 0x2851, lo: 0x83, hi: 0x84}, + {value: 0x285b, lo: 0x85, hi: 0x86}, + {value: 0x2847, lo: 0x87, hi: 0x87}, + {value: 0x2865, lo: 0x88, hi: 0x88}, + {value: 0x0b72, lo: 0x90, hi: 0x90}, + {value: 0x08ea, lo: 0x91, hi: 0x91}, + // Block 0xa9, offset 0x37d + {value: 0x0002, lo: 0x01}, + {value: 0x0021, lo: 0xb0, hi: 0xb9}, +} + +// recompMap: 7528 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "\x195\x190\x00\x01\x198" + // 0x19351930: 0x00011938 + "" + // Total size of tables: 55KB (56160 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go new file mode 100644 index 0000000..0175eae --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go @@ -0,0 +1,7638 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build !go1.10 +// +build !go1.10 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "9.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [55]uint8{ + 0, 1, 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, + 84, 91, 103, 107, 118, 122, 129, 130, + 132, 202, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x186D + firstCCC = 0x2C9E + endMulti = 0x2F60 + firstLeadingCCC = 0x49AE + firstCCCZeroExcept = 0x4A78 + firstStarterWithNLead = 0x4A9F + lastDecomp = 0x4AA1 + maxDecomp = 0x8000 +) + +// decomps: 19105 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, + 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, + 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, + 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, + 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, + 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, + 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, + 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, + 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, + 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, + 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, + 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, + 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, + 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, + 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, + 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, + 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, + 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, + // Bytes 200 - 23f + 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, + 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, + 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, + 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, + 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, + 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, + 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, + 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, + 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, + 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, + 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, + 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, + 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, + 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, + 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, + 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, + 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, + 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, + 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, + 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, + 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, + 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, + 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, + 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, + 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, + 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, + 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, + 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, + 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, + // Bytes 300 - 33f + 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, + 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, + 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, + 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, + 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, + 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, + 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, + 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, + // Bytes 340 - 37f + 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, + 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, + 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, + 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, + 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, + 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, + 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, + 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, + // Bytes 380 - 3bf + 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, + 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, + 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, + 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, + 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, + 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, + 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, + 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, + // Bytes 3c0 - 3ff + 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, + 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, + 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, + 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, + 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, + 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, + 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, + 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, + // Bytes 400 - 43f + 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, + 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, + 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, + 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, + 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, + 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, + 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, + 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, + // Bytes 440 - 47f + 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, + 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, + 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, + 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, + 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, + 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, + 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, + 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, + // Bytes 480 - 4bf + 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, + 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, + 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, + 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, + 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, + 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, + 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, + 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, + // Bytes 4c0 - 4ff + 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, + 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, + 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, + 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, + 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, + 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, + 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, + 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, + // Bytes 500 - 53f + 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, + 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, + 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, + 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, + 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, + 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, + 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, + 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, + // Bytes 540 - 57f + 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, + 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, + 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, + 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, + 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, + 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, + 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, + 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, + // Bytes 580 - 5bf + 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, + 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, + 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, + 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, + 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, + 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, + 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, + 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, + // Bytes 5c0 - 5ff + 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, + 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, + 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, + 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, + 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, + 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, + 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, + 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, + // Bytes 600 - 63f + 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, + 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, + 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, + 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, + 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, + 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, + 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, + 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, + // Bytes 640 - 67f + 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, + 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, + 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, + 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, + 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, + 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, + 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, + 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, + // Bytes 680 - 6bf + 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, + 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, + 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, + 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, + 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, + 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, + 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, + 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, + // Bytes 6c0 - 6ff + 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, + 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, + 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, + 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, + 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, + 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, + 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, + 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, + // Bytes 700 - 73f + 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, + 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, + 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, + 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, + 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, + 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, + 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, + 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, + // Bytes 740 - 77f + 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, + 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, + 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, + 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, + 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, + 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, + 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, + 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, + // Bytes 780 - 7bf + 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, + 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, + 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, + 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, + 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, + 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, + 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, + 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, + // Bytes 7c0 - 7ff + 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, + 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, + 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, + 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, + 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, + 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, + 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, + 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, + // Bytes 800 - 83f + 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, + 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, + 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, + 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, + 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, + 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, + 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, + 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, + // Bytes 840 - 87f + 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, + 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, + 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, + 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, + 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, + 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, + 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, + 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, + // Bytes 880 - 8bf + 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, + 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, + 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, + 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, + 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, + 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, + 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, + 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, + // Bytes 8c0 - 8ff + 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, + 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, + 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, + 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, + 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, + 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, + 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, + 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, + // Bytes 900 - 93f + 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, + 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, + 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, + 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, + 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, + 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, + 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, + 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, + // Bytes 940 - 97f + 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, + 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, + 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, + 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, + 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, + 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, + 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, + 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, + // Bytes 980 - 9bf + 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, + 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, + 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, + 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, + 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, + 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, + 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, + 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, + // Bytes 9c0 - 9ff + 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, + 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, + 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, + 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, + 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, + 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, + 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, + 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, + // Bytes a00 - a3f + 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, + 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, + 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, + 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, + 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, + 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, + 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, + 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, + // Bytes a40 - a7f + 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, + 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, + 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, + 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, + 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, + 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, + 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, + 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, + // Bytes a80 - abf + 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, + 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, + 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, + 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, + 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, + 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, + 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, + 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, + // Bytes ac0 - aff + 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, + 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, + 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, + 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, + 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, + 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, + 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, + 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, + // Bytes b00 - b3f + 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, + 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, + 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, + 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, + 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, + 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, + 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, + 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, + // Bytes b40 - b7f + 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, + 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, + 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, + 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, + 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, + 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, + 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, + 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, + // Bytes b80 - bbf + 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, + 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, + 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, + 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, + 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, + 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, + 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, + 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, + // Bytes bc0 - bff + 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, + 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, + 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, + 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, + 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, + 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, + 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, + 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, + // Bytes c00 - c3f + 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, + 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, + 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, + 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, + 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, + 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, + 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, + 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, + // Bytes c40 - c7f + 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, + 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, + 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, + 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, + 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, + 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, + 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, + 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, + // Bytes c80 - cbf + 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, + 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, + 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, + 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, + 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, + 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, + 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, + 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, + // Bytes cc0 - cff + 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, + 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, + 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, + 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, + 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, + 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, + 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, + 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, + // Bytes d00 - d3f + 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, + 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, + 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, + 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, + 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, + 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, + 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, + 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, + // Bytes d40 - d7f + 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, + 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, + 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, + 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, + 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, + 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, + 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, + 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, + // Bytes d80 - dbf + 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, + 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, + 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, + 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, + 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, + 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, + 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, + 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, + // Bytes dc0 - dff + 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, + 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, + 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, + 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, + 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, + 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, + 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, + 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, + // Bytes e00 - e3f + 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, + 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, + 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, + 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, + 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, + 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, + 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, + 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, + // Bytes e40 - e7f + 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, + 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, + 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, + 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, + 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, + 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, + 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, + 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, + // Bytes e80 - ebf + 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, + 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, + 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, + 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, + 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, + 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, + 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, + 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, + // Bytes ec0 - eff + 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, + 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, + 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, + 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, + 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, + 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, + 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, + 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, + // Bytes f00 - f3f + 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, + 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, + 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, + 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, + 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, + 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, + 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, + 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, + // Bytes f40 - f7f + 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, + 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, + 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, + 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, + 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, + 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, + 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, + 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, + // Bytes f80 - fbf + 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, + 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, + 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, + 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, + 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, + 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, + 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, + 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, + // Bytes fc0 - fff + 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, + 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, + 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, + 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, + 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, + 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, + 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, + 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, + // Bytes 1000 - 103f + 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, + 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, + 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, + 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, + 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, + 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, + 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, + 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, + // Bytes 1040 - 107f + 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, + 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, + 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, + 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, + 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, + 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, + 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, + 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, + // Bytes 1080 - 10bf + 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, + 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, + 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, + 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, + 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, + 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, + 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, + 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, + // Bytes 10c0 - 10ff + 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, + 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, + 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, + 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, + 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, + 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, + 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, + 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, + // Bytes 1100 - 113f + 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, + 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, + 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, + 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, + 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, + 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, + 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, + 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, + // Bytes 1140 - 117f + 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, + 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, + 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, + 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, + 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, + 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, + 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, + 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, + // Bytes 1180 - 11bf + 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, + 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, + 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, + 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, + 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, + 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, + 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, + 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, + // Bytes 11c0 - 11ff + 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, + 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, + 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, + 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, + 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, + 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, + 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, + 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, + // Bytes 1200 - 123f + 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, + 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, + 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, + 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, + 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, + 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, + 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, + 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, + // Bytes 1240 - 127f + 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, + 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, + 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, + 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, + 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, + 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, + 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, + 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, + // Bytes 1280 - 12bf + 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, + 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, + 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, + 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, + 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, + 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, + 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, + 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, + // Bytes 12c0 - 12ff + 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, + 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, + 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, + 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, + 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, + 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, + 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, + 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, + // Bytes 1300 - 133f + 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, + 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, + 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, + 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, + 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, + 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, + 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, + 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, + // Bytes 1340 - 137f + 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, + 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, + 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, + 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, + 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, + 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, + 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, + 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, + // Bytes 1380 - 13bf + 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, + 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, + 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, + 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, + 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, + 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, + 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, + 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, + // Bytes 13c0 - 13ff + 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, + 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, + 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, + 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, + 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, + 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, + 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, + 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, + // Bytes 1400 - 143f + 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, + 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, + 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, + 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, + 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, + 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, + 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, + 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, + // Bytes 1440 - 147f + 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, + 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, + 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, + 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, + 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, + 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, + 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, + 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, + // Bytes 1480 - 14bf + 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, + 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, + 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, + 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, + 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, + 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, + 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, + 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, + // Bytes 14c0 - 14ff + 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, + 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, + 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, + 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, + 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, + 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, + 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, + 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, + // Bytes 1500 - 153f + 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, + 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, + 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, + 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, + 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, + 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, + 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, + 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, + // Bytes 1540 - 157f + 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, + 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, + 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, + 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, + 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, + 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, + 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, + 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, + // Bytes 1580 - 15bf + 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, + 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, + 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, + 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, + 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, + 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, + 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, + 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, + // Bytes 15c0 - 15ff + 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, + 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, + 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, + 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, + 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, + 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, + 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, + 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, + // Bytes 1600 - 163f + 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, + 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, + 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, + 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, + 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, + 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, + 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, + 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, + // Bytes 1640 - 167f + 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, + 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, + 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, + 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, + 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, + 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, + 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, + 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, + // Bytes 1680 - 16bf + 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, + 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, + 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, + 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, + 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, + 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, + 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, + 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, + // Bytes 16c0 - 16ff + 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, + 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, + 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, + 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, + 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, + 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, + 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, + 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, + // Bytes 1700 - 173f + 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, + 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, + 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, + 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, + 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, + 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, + 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, + 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, + // Bytes 1740 - 177f + 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, + 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, + 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, + 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, + 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, + 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, + 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, + 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, + // Bytes 1780 - 17bf + 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, + 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, + 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, + 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, + 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, + 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, + 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, + 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, + // Bytes 17c0 - 17ff + 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, + 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, + 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, + 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, + 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, + 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, + 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, + 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, + // Bytes 1800 - 183f + 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, + 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, + 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, + 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, + 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, + 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, + 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, + 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, + // Bytes 1840 - 187f + 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, + 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, + 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, + 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, + 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, + 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, + 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, + 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, + 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, + 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, + 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, + 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, + 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, + 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, + 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, + 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, + 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, + 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, + 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, + 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, + 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, + 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, + // Bytes 1900 - 193f + 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, + 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, + 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, + 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, + 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, + 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, + 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, + 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, + // Bytes 1940 - 197f + 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, + 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, + 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, + 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, + 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, + 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, + 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, + 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, + 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, + 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, + 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, + 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, + 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, + 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, + 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, + 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, + 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, + 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, + 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, + 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, + 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, + 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, + 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, + 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, + 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, + 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, + 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, + 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, + 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, + 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, + 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, + 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, + 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, + 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, + 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, + 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, + // Bytes 1a80 - 1abf + 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, + 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, + 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, + 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, + 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, + 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, + 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, + 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, + // Bytes 1ac0 - 1aff + 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, + 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, + 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, + 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, + 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, + 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, + 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, + 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, + // Bytes 1b00 - 1b3f + 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, + 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, + 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, + 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, + 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, + 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, + 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, + 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, + // Bytes 1b40 - 1b7f + 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, + 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, + 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, + 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, + 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, + 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, + 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, + 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, + // Bytes 1b80 - 1bbf + 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, + 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, + 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, + 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, + 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, + 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, + 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, + 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, + // Bytes 1bc0 - 1bff + 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, + 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, + 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, + 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, + 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, + 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, + 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, + 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, + // Bytes 1c00 - 1c3f + 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, + 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, + 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, + 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, + 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, + 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, + 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, + 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, + // Bytes 1c40 - 1c7f + 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, + 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, + 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, + 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, + 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, + 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, + 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, + 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, + // Bytes 1c80 - 1cbf + 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, + 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, + 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, + 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, + 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, + 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, + 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, + 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, + // Bytes 1cc0 - 1cff + 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, + 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, + 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, + 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, + 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, + 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, + 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, + 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, + // Bytes 1d00 - 1d3f + 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, + 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, + 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, + 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, + 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, + 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, + 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, + 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, + // Bytes 1d40 - 1d7f + 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, + 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, + 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, + 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, + 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, + 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, + 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, + 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, + // Bytes 1d80 - 1dbf + 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, + 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, + 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, + 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, + 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, + 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, + 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, + 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, + // Bytes 1dc0 - 1dff + 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, + 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, + 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, + 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, + 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, + 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, + 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, + 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, + // Bytes 1e00 - 1e3f + 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, + 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, + 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, + 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, + 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, + 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, + 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, + 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, + // Bytes 1e40 - 1e7f + 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, + 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, + 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, + 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, + 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, + 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, + 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, + 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1e80 - 1ebf + 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, + 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, + 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, + 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, + 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, + 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, + 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, + 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, + // Bytes 1ec0 - 1eff + 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, + 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, + 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, + 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, + 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, + 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, + 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, + 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, + // Bytes 1f00 - 1f3f + 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, + 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, + 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, + 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, + 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, + 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, + 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, + 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, + // Bytes 1f40 - 1f7f + 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, + 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, + 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, + 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, + 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, + 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, + 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, + 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, + // Bytes 1f80 - 1fbf + 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, + 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, + 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, + 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, + 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, + 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, + 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, + 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, + // Bytes 1fc0 - 1fff + 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, + 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, + 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, + 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, + 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, + 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, + 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, + 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, + // Bytes 2000 - 203f + 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, + 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, + 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, + 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, + 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, + 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, + 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, + 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, + // Bytes 2040 - 207f + 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, + 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, + 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, + 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, + // Bytes 2080 - 20bf + 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, + 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, + 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, + 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, + // Bytes 20c0 - 20ff + 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, + 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, + 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, + 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, + 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, + 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, + 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, + 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, + // Bytes 2100 - 213f + 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, + 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, + 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, + 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, + 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, + 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, + 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, + 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, + // Bytes 2140 - 217f + 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, + 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, + 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, + 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, + 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, + 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, + 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, + 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, + // Bytes 2180 - 21bf + 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, + 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, + // Bytes 21c0 - 21ff + 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, + // Bytes 2200 - 223f + 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, + // Bytes 2240 - 227f + 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, + // Bytes 2280 - 22bf + 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, + 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, + 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + // Bytes 22c0 - 22ff + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, + 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, + 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, + 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, + 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, + 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, + 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, + // Bytes 2300 - 233f + 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, + 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, + 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, + // Bytes 2340 - 237f + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, + 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, + 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, + // Bytes 2380 - 23bf + 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, + // Bytes 23c0 - 23ff + 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, + 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, + 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, + 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, + 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, + 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, + // Bytes 2400 - 243f + 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, + 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, + 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, + 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, + 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, + // Bytes 2440 - 247f + 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, + 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, + // Bytes 2480 - 24bf + 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, + 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, + 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, + // Bytes 24c0 - 24ff + 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, + 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, + // Bytes 2500 - 253f + 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, + // Bytes 2540 - 257f + 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, + 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, + 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, + // Bytes 2580 - 25bf + 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, + 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, + // Bytes 25c0 - 25ff + 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, + // Bytes 2600 - 263f + 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, + 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, + 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, + 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, + 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, + // Bytes 2640 - 267f + 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, + 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, + 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, + 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, + // Bytes 2680 - 26bf + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, + 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, + 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, + 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, + 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, + 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, + // Bytes 26c0 - 26ff + 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, + 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, + 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, + 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, + 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, + 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, + 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, + // Bytes 2700 - 273f + 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, + 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, + 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, + 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, + 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, + // Bytes 2740 - 277f + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, + // Bytes 2780 - 27bf + 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, + 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, + 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, + // Bytes 27c0 - 27ff + 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, + 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, + 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, + 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, + 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, + 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, + 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, + // Bytes 2800 - 283f + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, + 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, + 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, + // Bytes 2840 - 287f + 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, + 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, + // Bytes 2880 - 28bf + 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, + 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, + 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, + 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, + // Bytes 28c0 - 28ff + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, + 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, + 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, + 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, + // Bytes 2900 - 293f + 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, + 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, + // Bytes 2940 - 297f + 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, + 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, + 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, + // Bytes 2980 - 29bf + 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, + 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, + // Bytes 29c0 - 29ff + 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, + 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, + 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, + 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2a40 - 2a7f + 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, + // Bytes 2a80 - 2abf + 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, + 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, + 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, + 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, + 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, + 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, + // Bytes 2b00 - 2b3f + 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, + // Bytes 2b40 - 2b7f + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, + 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, + // Bytes 2b80 - 2bbf + 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, + 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, + 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, + // Bytes 2bc0 - 2bff + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2c00 - 2c3f + 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, + 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, + 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, + 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, + 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, + 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, + // Bytes 2c40 - 2c7f + 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, + 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, + // Bytes 2c80 - 2cbf + 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, + 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, + 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2cc0 - 2cff + 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, + 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2d00 - 2d3f + 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, + 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, + 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, + 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + // Bytes 2d40 - 2d7f + 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, + // Bytes 2d80 - 2dbf + 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, + 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, + 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, + 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, + 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, + 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, + 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, + 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, + // Bytes 2dc0 - 2dff + 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, + 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, + 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, + 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, + 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, + 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, + 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, + // Bytes 2e00 - 2e3f + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e40 - 2e7f + 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, + 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e80 - 2ebf + 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, + 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, + 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, + 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, + 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + // Bytes 2ec0 - 2eff + 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, + 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, + 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, + 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, + 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, + 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, + // Bytes 2f00 - 2f3f + 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, + 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, + 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, + 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, + // Bytes 2f40 - 2f7f + 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, + 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, + 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, + 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, + 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, + 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, + // Bytes 2f80 - 2fbf + 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, + 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, + 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, + 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, + 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, + 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, + 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, + 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, + // Bytes 2fc0 - 2fff + 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, + 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, + 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, + 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, + 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, + 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, + 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, + 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, + // Bytes 3000 - 303f + 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, + 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, + 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, + 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, + 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, + 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, + 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, + 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, + // Bytes 3040 - 307f + 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, + 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, + 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, + 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, + 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, + 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, + 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, + 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, + // Bytes 3080 - 30bf + 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, + 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, + 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, + 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, + 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, + 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, + 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, + 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, + // Bytes 30c0 - 30ff + 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, + 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, + 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, + 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, + 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, + 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, + 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, + 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, + // Bytes 3100 - 313f + 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, + 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, + 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, + 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, + 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, + 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, + 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, + 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, + // Bytes 3140 - 317f + 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, + 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, + 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, + 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, + 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, + 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, + 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, + 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, + // Bytes 3180 - 31bf + 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, + 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, + 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, + 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, + 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, + 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, + 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, + 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, + // Bytes 31c0 - 31ff + 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, + 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, + 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, + 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, + 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, + 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, + 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, + 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, + // Bytes 3200 - 323f + 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, + 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, + 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, + 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, + 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, + 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, + 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, + 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, + // Bytes 3240 - 327f + 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, + 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, + 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, + 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, + 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, + 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, + 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, + 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, + // Bytes 3280 - 32bf + 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, + 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, + 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, + 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, + 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, + 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, + 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, + 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, + // Bytes 32c0 - 32ff + 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, + 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, + 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, + 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, + 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, + 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, + 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, + 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, + // Bytes 3300 - 333f + 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, + 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, + 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, + 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, + 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, + 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, + 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, + 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, + // Bytes 3340 - 337f + 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, + 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, + 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, + 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, + 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, + 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, + 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, + 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3380 - 33bf + 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, + 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, + 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, + 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, + 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, + 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, + 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, + 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, + // Bytes 33c0 - 33ff + 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, + 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, + 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, + 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, + 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, + 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, + 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, + 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, + // Bytes 3400 - 343f + 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, + 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, + 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, + 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, + 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, + 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, + 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, + 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, + // Bytes 3440 - 347f + 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, + 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, + 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, + 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, + 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, + 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, + 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, + 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, + // Bytes 3480 - 34bf + 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, + 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, + 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, + 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, + 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, + 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, + 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, + 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, + // Bytes 34c0 - 34ff + 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, + 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, + 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, + 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, + 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, + 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, + 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, + 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, + // Bytes 3500 - 353f + 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, + 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, + 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, + 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, + 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, + 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, + 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, + 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, + // Bytes 3540 - 357f + 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, + 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, + 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, + 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, + 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, + 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, + 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, + 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, + // Bytes 3580 - 35bf + 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, + 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, + 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, + 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, + 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, + 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, + 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, + 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, + // Bytes 35c0 - 35ff + 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, + 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, + 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, + 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, + 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, + // Bytes 3600 - 363f + 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, + 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, + // Bytes 3640 - 367f + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, + // Bytes 3680 - 36bf + 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, + 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, + 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, + // Bytes 36c0 - 36ff + 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, + 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, + 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, + 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, + 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, + 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, + 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, + // Bytes 3700 - 373f + 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, + 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3740 - 377f + 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, + 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, + 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, + 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, + 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, + // Bytes 3780 - 37bf + 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, + // Bytes 37c0 - 37ff + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, + 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, + 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, + 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, + 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3800 - 383f + 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, + 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, + 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, + 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, + 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, + 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, + 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, + 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, + // Bytes 3840 - 387f + 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, + 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, + 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, + 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, + 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, + 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + // Bytes 3880 - 38bf + 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, + 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, + 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, + 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, + 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, + 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, + // Bytes 38c0 - 38ff + 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, + 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, + 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, + 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, + // Bytes 3900 - 393f + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, + 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, + 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, + 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, + // Bytes 3940 - 397f + 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, + 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, + 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, + 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, + 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, + 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, + // Bytes 3980 - 39bf + 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, + 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, + 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, + 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, + 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, + 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, + 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, + 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, + // Bytes 39c0 - 39ff + 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, + 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, + 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, + 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + // Bytes 3a00 - 3a3f + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, + 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, + 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, + 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + // Bytes 3a40 - 3a7f + 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, + 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, + 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, + 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, + 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, + 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, + 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, + // Bytes 3a80 - 3abf + 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, + 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, + 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, + 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, + // Bytes 3ac0 - 3aff + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, + 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, + 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, + 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, + 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, + // Bytes 3b00 - 3b3f + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, + 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, + 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, + 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, + // Bytes 3b40 - 3b7f + 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, + 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, + 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, + 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, + // Bytes 3b80 - 3bbf + 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, + 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, + 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, + 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, + 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, + 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, + 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, + 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, + // Bytes 3bc0 - 3bff + 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, + 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3c00 - 3c3f + 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + // Bytes 3c40 - 3c7f + 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + // Bytes 3c80 - 3cbf + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, + // Bytes 3cc0 - 3cff + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, + 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + // Bytes 3d00 - 3d3f + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3d40 - 3d7f + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + // Bytes 3d80 - 3dbf + 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + // Bytes 3dc0 - 3dff + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + // Bytes 3e00 - 3e3f + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3e40 - 3e7f + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + // Bytes 3e80 - 3ebf + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + // Bytes 3ec0 - 3eff + 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, + 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, + // Bytes 3f00 - 3f3f + 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f40 - 3f7f + 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f80 - 3fbf + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, + // Bytes 3fc0 - 3fff + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4000 - 403f + 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4040 - 407f + 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4080 - 40bf + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 40c0 - 40ff + 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + // Bytes 4100 - 413f + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + // Bytes 4140 - 417f + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, + // Bytes 4180 - 41bf + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + // Bytes 41c0 - 41ff + 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + // Bytes 4200 - 423f + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, + // Bytes 4240 - 427f + 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, + 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, + 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, + 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, + 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, + 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, + 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, + 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, + // Bytes 4280 - 42bf + 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, + 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, + 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, + 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, + 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, + 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, + 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, + 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, + // Bytes 42c0 - 42ff + 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, + 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, + 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, + 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, + 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, + 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, + 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, + // Bytes 4300 - 433f + 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, + 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, + 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, + // Bytes 4340 - 437f + 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, + 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, + 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, + // Bytes 4380 - 43bf + 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, + 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, + // Bytes 43c0 - 43ff + 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, + 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, + 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, + // Bytes 4400 - 443f + 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, + 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, + 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, + 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, + 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, + 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, + 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, + // Bytes 4440 - 447f + 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, + 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, + 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, + 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, + 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, + 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, + 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, + // Bytes 4480 - 44bf + 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, + 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, + 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, + 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, + 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, + // Bytes 44c0 - 44ff + 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, + 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, + 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, + 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, + 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, + 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, + // Bytes 4500 - 453f + 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, + 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, + // Bytes 4540 - 457f + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, + // Bytes 4580 - 45bf + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, + // Bytes 45c0 - 45ff + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, + 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, + 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, + // Bytes 4600 - 463f + 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, + 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, + 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, + 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + // Bytes 4640 - 467f + 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, + 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, + 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, + 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + // Bytes 4680 - 46bf + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, + 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, + 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, + 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, + 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, + 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, + 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, + 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, + // Bytes 46c0 - 46ff + 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, + 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, + 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, + 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, + 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, + 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, + 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, + 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, + // Bytes 4700 - 473f + 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, + 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, + 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, + 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, + 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, + 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, + 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, + 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, + // Bytes 4740 - 477f + 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, + 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, + 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, + 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, + 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, + 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, + 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, + 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, + // Bytes 4780 - 47bf + 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, + 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, + 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, + 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, + 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, + 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, + // Bytes 47c0 - 47ff + 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, + // Bytes 4800 - 483f + 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, + 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, + 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, + 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, + // Bytes 4840 - 487f + 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, + 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, + 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, + 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, + 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, + // Bytes 4880 - 48bf + 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + // Bytes 48c0 - 48ff + 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + // Bytes 4900 - 493f + 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + // Bytes 4940 - 497f + 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + // Bytes 4980 - 49bf + 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, + 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, + 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, + // Bytes 49c0 - 49ff + 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, + // Bytes 4a00 - 4a3f + 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, + // Bytes 4a40 - 4a7f + 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, + 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, + 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, + 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, + // Bytes 4a80 - 4abf + 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, + 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, + 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, + 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10332 bytes (10.09 KiB). Checksum: 51cc525b297fc970. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 44: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 44 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 46 blocks, 2944 entries, 5888 bytes +// The third block is the zero block. +var nfcValues = [2944]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, + // Block 0x5, offset 0x140 + 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35a1, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, + 0x2c6: 0xa000, 0x2c7: 0x3709, + 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3733, 0x302: 0x37b7, + 0x310: 0x370f, 0x311: 0x3793, + 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, + 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, + 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, + 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, + 0x338: 0x3787, 0x339: 0x380b, + // Block 0xd, offset 0x340 + 0x351: 0x812d, + 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, + 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, + 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, + 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, + 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, + 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, + 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, + 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, + 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, + 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x812d, + 0x3b0: 0x811e, + // Block 0xf, offset 0x3c0 + 0x3c5: 0xa000, + 0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000, + 0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000, + 0x3d2: 0x2d4e, + 0x3f4: 0x8102, 0x3f5: 0x9900, + 0x3fa: 0xa000, 0x3fb: 0x2d56, + 0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000, + // Block 0x10, offset 0x400 + 0x400: 0x2f97, 0x401: 0x32a3, 0x402: 0x2fa1, 0x403: 0x32ad, 0x404: 0x2fa6, 0x405: 0x32b2, + 0x406: 0x2fab, 0x407: 0x32b7, 0x408: 0x38cc, 0x409: 0x3a5b, 0x40a: 0x2fc4, 0x40b: 0x32d0, + 0x40c: 0x2fce, 0x40d: 0x32da, 0x40e: 0x2fdd, 0x40f: 0x32e9, 0x410: 0x2fd3, 0x411: 0x32df, + 0x412: 0x2fd8, 0x413: 0x32e4, 0x414: 0x38ef, 0x415: 0x3a7e, 0x416: 0x38f6, 0x417: 0x3a85, + 0x418: 0x3019, 0x419: 0x3325, 0x41a: 0x301e, 0x41b: 0x332a, 0x41c: 0x3904, 0x41d: 0x3a93, + 0x41e: 0x3023, 0x41f: 0x332f, 0x420: 0x3032, 0x421: 0x333e, 0x422: 0x3050, 0x423: 0x335c, + 0x424: 0x305f, 0x425: 0x336b, 0x426: 0x3055, 0x427: 0x3361, 0x428: 0x3064, 0x429: 0x3370, + 0x42a: 0x3069, 0x42b: 0x3375, 0x42c: 0x30af, 0x42d: 0x33bb, 0x42e: 0x390b, 0x42f: 0x3a9a, + 0x430: 0x30b9, 0x431: 0x33ca, 0x432: 0x30c3, 0x433: 0x33d4, 0x434: 0x30cd, 0x435: 0x33de, + 0x436: 0x46c4, 0x437: 0x4755, 0x438: 0x3912, 0x439: 0x3aa1, 0x43a: 0x30e6, 0x43b: 0x33f7, + 0x43c: 0x30e1, 0x43d: 0x33f2, 0x43e: 0x30eb, 0x43f: 0x33fc, + // Block 0x11, offset 0x440 + 0x440: 0x30f0, 0x441: 0x3401, 0x442: 0x30f5, 0x443: 0x3406, 0x444: 0x3109, 0x445: 0x341a, + 0x446: 0x3113, 0x447: 0x3424, 0x448: 0x3122, 0x449: 0x3433, 0x44a: 0x311d, 0x44b: 0x342e, + 0x44c: 0x3935, 0x44d: 0x3ac4, 0x44e: 0x3943, 0x44f: 0x3ad2, 0x450: 0x394a, 0x451: 0x3ad9, + 0x452: 0x3951, 0x453: 0x3ae0, 0x454: 0x314f, 0x455: 0x3460, 0x456: 0x3154, 0x457: 0x3465, + 0x458: 0x315e, 0x459: 0x346f, 0x45a: 0x46f1, 0x45b: 0x4782, 0x45c: 0x3997, 0x45d: 0x3b26, + 0x45e: 0x3177, 0x45f: 0x3488, 0x460: 0x3181, 0x461: 0x3492, 0x462: 0x4700, 0x463: 0x4791, + 0x464: 0x399e, 0x465: 0x3b2d, 0x466: 0x39a5, 0x467: 0x3b34, 0x468: 0x39ac, 0x469: 0x3b3b, + 0x46a: 0x3190, 0x46b: 0x34a1, 0x46c: 0x319a, 0x46d: 0x34b0, 0x46e: 0x31ae, 0x46f: 0x34c4, + 0x470: 0x31a9, 0x471: 0x34bf, 0x472: 0x31ea, 0x473: 0x3500, 0x474: 0x31f9, 0x475: 0x350f, + 0x476: 0x31f4, 0x477: 0x350a, 0x478: 0x39b3, 0x479: 0x3b42, 0x47a: 0x39ba, 0x47b: 0x3b49, + 0x47c: 0x31fe, 0x47d: 0x3514, 0x47e: 0x3203, 0x47f: 0x3519, + // Block 0x12, offset 0x480 + 0x480: 0x3208, 0x481: 0x351e, 0x482: 0x320d, 0x483: 0x3523, 0x484: 0x321c, 0x485: 0x3532, + 0x486: 0x3217, 0x487: 0x352d, 0x488: 0x3221, 0x489: 0x353c, 0x48a: 0x3226, 0x48b: 0x3541, + 0x48c: 0x322b, 0x48d: 0x3546, 0x48e: 0x3249, 0x48f: 0x3564, 0x490: 0x3262, 0x491: 0x3582, + 0x492: 0x3271, 0x493: 0x3591, 0x494: 0x3276, 0x495: 0x3596, 0x496: 0x337a, 0x497: 0x34a6, + 0x498: 0x3537, 0x499: 0x3573, 0x49b: 0x35d1, + 0x4a0: 0x46a1, 0x4a1: 0x4732, 0x4a2: 0x2f83, 0x4a3: 0x328f, + 0x4a4: 0x3878, 0x4a5: 0x3a07, 0x4a6: 0x3871, 0x4a7: 0x3a00, 0x4a8: 0x3886, 0x4a9: 0x3a15, + 0x4aa: 0x387f, 0x4ab: 0x3a0e, 0x4ac: 0x38be, 0x4ad: 0x3a4d, 0x4ae: 0x3894, 0x4af: 0x3a23, + 0x4b0: 0x388d, 0x4b1: 0x3a1c, 0x4b2: 0x38a2, 0x4b3: 0x3a31, 0x4b4: 0x389b, 0x4b5: 0x3a2a, + 0x4b6: 0x38c5, 0x4b7: 0x3a54, 0x4b8: 0x46b5, 0x4b9: 0x4746, 0x4ba: 0x3000, 0x4bb: 0x330c, + 0x4bc: 0x2fec, 0x4bd: 0x32f8, 0x4be: 0x38da, 0x4bf: 0x3a69, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x38d3, 0x4c1: 0x3a62, 0x4c2: 0x38e8, 0x4c3: 0x3a77, 0x4c4: 0x38e1, 0x4c5: 0x3a70, + 0x4c6: 0x38fd, 0x4c7: 0x3a8c, 0x4c8: 0x3091, 0x4c9: 0x339d, 0x4ca: 0x30a5, 0x4cb: 0x33b1, + 0x4cc: 0x46e7, 0x4cd: 0x4778, 0x4ce: 0x3136, 0x4cf: 0x3447, 0x4d0: 0x3920, 0x4d1: 0x3aaf, + 0x4d2: 0x3919, 0x4d3: 0x3aa8, 0x4d4: 0x392e, 0x4d5: 0x3abd, 0x4d6: 0x3927, 0x4d7: 0x3ab6, + 0x4d8: 0x3989, 0x4d9: 0x3b18, 0x4da: 0x396d, 0x4db: 0x3afc, 0x4dc: 0x3966, 0x4dd: 0x3af5, + 0x4de: 0x397b, 0x4df: 0x3b0a, 0x4e0: 0x3974, 0x4e1: 0x3b03, 0x4e2: 0x3982, 0x4e3: 0x3b11, + 0x4e4: 0x31e5, 0x4e5: 0x34fb, 0x4e6: 0x31c7, 0x4e7: 0x34dd, 0x4e8: 0x39e4, 0x4e9: 0x3b73, + 0x4ea: 0x39dd, 0x4eb: 0x3b6c, 0x4ec: 0x39f2, 0x4ed: 0x3b81, 0x4ee: 0x39eb, 0x4ef: 0x3b7a, + 0x4f0: 0x39f9, 0x4f1: 0x3b88, 0x4f2: 0x3230, 0x4f3: 0x354b, 0x4f4: 0x3258, 0x4f5: 0x3578, + 0x4f6: 0x3253, 0x4f7: 0x356e, 0x4f8: 0x323f, 0x4f9: 0x355a, + // Block 0x14, offset 0x500 + 0x500: 0x4804, 0x501: 0x480a, 0x502: 0x491e, 0x503: 0x4936, 0x504: 0x4926, 0x505: 0x493e, + 0x506: 0x492e, 0x507: 0x4946, 0x508: 0x47aa, 0x509: 0x47b0, 0x50a: 0x488e, 0x50b: 0x48a6, + 0x50c: 0x4896, 0x50d: 0x48ae, 0x50e: 0x489e, 0x50f: 0x48b6, 0x510: 0x4816, 0x511: 0x481c, + 0x512: 0x3db8, 0x513: 0x3dc8, 0x514: 0x3dc0, 0x515: 0x3dd0, + 0x518: 0x47b6, 0x519: 0x47bc, 0x51a: 0x3ce8, 0x51b: 0x3cf8, 0x51c: 0x3cf0, 0x51d: 0x3d00, + 0x520: 0x482e, 0x521: 0x4834, 0x522: 0x494e, 0x523: 0x4966, + 0x524: 0x4956, 0x525: 0x496e, 0x526: 0x495e, 0x527: 0x4976, 0x528: 0x47c2, 0x529: 0x47c8, + 0x52a: 0x48be, 0x52b: 0x48d6, 0x52c: 0x48c6, 0x52d: 0x48de, 0x52e: 0x48ce, 0x52f: 0x48e6, + 0x530: 0x4846, 0x531: 0x484c, 0x532: 0x3e18, 0x533: 0x3e30, 0x534: 0x3e20, 0x535: 0x3e38, + 0x536: 0x3e28, 0x537: 0x3e40, 0x538: 0x47ce, 0x539: 0x47d4, 0x53a: 0x3d18, 0x53b: 0x3d30, + 0x53c: 0x3d20, 0x53d: 0x3d38, 0x53e: 0x3d28, 0x53f: 0x3d40, + // Block 0x15, offset 0x540 + 0x540: 0x4852, 0x541: 0x4858, 0x542: 0x3e48, 0x543: 0x3e58, 0x544: 0x3e50, 0x545: 0x3e60, + 0x548: 0x47da, 0x549: 0x47e0, 0x54a: 0x3d48, 0x54b: 0x3d58, + 0x54c: 0x3d50, 0x54d: 0x3d60, 0x550: 0x4864, 0x551: 0x486a, + 0x552: 0x3e80, 0x553: 0x3e98, 0x554: 0x3e88, 0x555: 0x3ea0, 0x556: 0x3e90, 0x557: 0x3ea8, + 0x559: 0x47e6, 0x55b: 0x3d68, 0x55d: 0x3d70, + 0x55f: 0x3d78, 0x560: 0x487c, 0x561: 0x4882, 0x562: 0x497e, 0x563: 0x4996, + 0x564: 0x4986, 0x565: 0x499e, 0x566: 0x498e, 0x567: 0x49a6, 0x568: 0x47ec, 0x569: 0x47f2, + 0x56a: 0x48ee, 0x56b: 0x4906, 0x56c: 0x48f6, 0x56d: 0x490e, 0x56e: 0x48fe, 0x56f: 0x4916, + 0x570: 0x47f8, 0x571: 0x431e, 0x572: 0x3691, 0x573: 0x4324, 0x574: 0x4822, 0x575: 0x432a, + 0x576: 0x36a3, 0x577: 0x4330, 0x578: 0x36c1, 0x579: 0x4336, 0x57a: 0x36d9, 0x57b: 0x433c, + 0x57c: 0x4870, 0x57d: 0x4342, + // Block 0x16, offset 0x580 + 0x580: 0x3da0, 0x581: 0x3da8, 0x582: 0x4184, 0x583: 0x41a2, 0x584: 0x418e, 0x585: 0x41ac, + 0x586: 0x4198, 0x587: 0x41b6, 0x588: 0x3cd8, 0x589: 0x3ce0, 0x58a: 0x40d0, 0x58b: 0x40ee, + 0x58c: 0x40da, 0x58d: 0x40f8, 0x58e: 0x40e4, 0x58f: 0x4102, 0x590: 0x3de8, 0x591: 0x3df0, + 0x592: 0x41c0, 0x593: 0x41de, 0x594: 0x41ca, 0x595: 0x41e8, 0x596: 0x41d4, 0x597: 0x41f2, + 0x598: 0x3d08, 0x599: 0x3d10, 0x59a: 0x410c, 0x59b: 0x412a, 0x59c: 0x4116, 0x59d: 0x4134, + 0x59e: 0x4120, 0x59f: 0x413e, 0x5a0: 0x3ec0, 0x5a1: 0x3ec8, 0x5a2: 0x41fc, 0x5a3: 0x421a, + 0x5a4: 0x4206, 0x5a5: 0x4224, 0x5a6: 0x4210, 0x5a7: 0x422e, 0x5a8: 0x3d80, 0x5a9: 0x3d88, + 0x5aa: 0x4148, 0x5ab: 0x4166, 0x5ac: 0x4152, 0x5ad: 0x4170, 0x5ae: 0x415c, 0x5af: 0x417a, + 0x5b0: 0x3685, 0x5b1: 0x367f, 0x5b2: 0x3d90, 0x5b3: 0x368b, 0x5b4: 0x3d98, + 0x5b6: 0x4810, 0x5b7: 0x3db0, 0x5b8: 0x35f5, 0x5b9: 0x35ef, 0x5ba: 0x35e3, 0x5bb: 0x42ee, + 0x5bc: 0x35fb, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x8100, 0x5c1: 0x35a7, 0x5c2: 0x3dd8, 0x5c3: 0x369d, 0x5c4: 0x3de0, + 0x5c6: 0x483a, 0x5c7: 0x3df8, 0x5c8: 0x3601, 0x5c9: 0x42f4, 0x5ca: 0x360d, 0x5cb: 0x42fa, + 0x5cc: 0x3619, 0x5cd: 0x3b8f, 0x5ce: 0x3b96, 0x5cf: 0x3b9d, 0x5d0: 0x36b5, 0x5d1: 0x36af, + 0x5d2: 0x3e00, 0x5d3: 0x44e4, 0x5d6: 0x36bb, 0x5d7: 0x3e10, + 0x5d8: 0x3631, 0x5d9: 0x362b, 0x5da: 0x361f, 0x5db: 0x4300, 0x5dd: 0x3ba4, + 0x5de: 0x3bab, 0x5df: 0x3bb2, 0x5e0: 0x36eb, 0x5e1: 0x36e5, 0x5e2: 0x3e68, 0x5e3: 0x44ec, + 0x5e4: 0x36cd, 0x5e5: 0x36d3, 0x5e6: 0x36f1, 0x5e7: 0x3e78, 0x5e8: 0x3661, 0x5e9: 0x365b, + 0x5ea: 0x364f, 0x5eb: 0x430c, 0x5ec: 0x3649, 0x5ed: 0x359b, 0x5ee: 0x42e8, 0x5ef: 0x0081, + 0x5f2: 0x3eb0, 0x5f3: 0x36f7, 0x5f4: 0x3eb8, + 0x5f6: 0x4888, 0x5f7: 0x3ed0, 0x5f8: 0x363d, 0x5f9: 0x4306, 0x5fa: 0x366d, 0x5fb: 0x4318, + 0x5fc: 0x3679, 0x5fd: 0x4256, 0x5fe: 0xa100, + // Block 0x18, offset 0x600 + 0x601: 0x3c06, 0x603: 0xa000, 0x604: 0x3c0d, 0x605: 0xa000, + 0x607: 0x3c14, 0x608: 0xa000, 0x609: 0x3c1b, + 0x60d: 0xa000, + 0x620: 0x2f65, 0x621: 0xa000, 0x622: 0x3c29, + 0x624: 0xa000, 0x625: 0xa000, + 0x62d: 0x3c22, 0x62e: 0x2f60, 0x62f: 0x2f6a, + 0x630: 0x3c30, 0x631: 0x3c37, 0x632: 0xa000, 0x633: 0xa000, 0x634: 0x3c3e, 0x635: 0x3c45, + 0x636: 0xa000, 0x637: 0xa000, 0x638: 0x3c4c, 0x639: 0x3c53, 0x63a: 0xa000, 0x63b: 0xa000, + 0x63c: 0xa000, 0x63d: 0xa000, + // Block 0x19, offset 0x640 + 0x640: 0x3c5a, 0x641: 0x3c61, 0x642: 0xa000, 0x643: 0xa000, 0x644: 0x3c76, 0x645: 0x3c7d, + 0x646: 0xa000, 0x647: 0xa000, 0x648: 0x3c84, 0x649: 0x3c8b, + 0x651: 0xa000, + 0x652: 0xa000, + 0x662: 0xa000, + 0x668: 0xa000, 0x669: 0xa000, + 0x66b: 0xa000, 0x66c: 0x3ca0, 0x66d: 0x3ca7, 0x66e: 0x3cae, 0x66f: 0x3cb5, + 0x672: 0xa000, 0x673: 0xa000, 0x674: 0xa000, 0x675: 0xa000, + // Block 0x1a, offset 0x680 + 0x686: 0xa000, 0x68b: 0xa000, + 0x68c: 0x3f08, 0x68d: 0xa000, 0x68e: 0x3f10, 0x68f: 0xa000, 0x690: 0x3f18, 0x691: 0xa000, + 0x692: 0x3f20, 0x693: 0xa000, 0x694: 0x3f28, 0x695: 0xa000, 0x696: 0x3f30, 0x697: 0xa000, + 0x698: 0x3f38, 0x699: 0xa000, 0x69a: 0x3f40, 0x69b: 0xa000, 0x69c: 0x3f48, 0x69d: 0xa000, + 0x69e: 0x3f50, 0x69f: 0xa000, 0x6a0: 0x3f58, 0x6a1: 0xa000, 0x6a2: 0x3f60, + 0x6a4: 0xa000, 0x6a5: 0x3f68, 0x6a6: 0xa000, 0x6a7: 0x3f70, 0x6a8: 0xa000, 0x6a9: 0x3f78, + 0x6af: 0xa000, + 0x6b0: 0x3f80, 0x6b1: 0x3f88, 0x6b2: 0xa000, 0x6b3: 0x3f90, 0x6b4: 0x3f98, 0x6b5: 0xa000, + 0x6b6: 0x3fa0, 0x6b7: 0x3fa8, 0x6b8: 0xa000, 0x6b9: 0x3fb0, 0x6ba: 0x3fb8, 0x6bb: 0xa000, + 0x6bc: 0x3fc0, 0x6bd: 0x3fc8, + // Block 0x1b, offset 0x6c0 + 0x6d4: 0x3f00, + 0x6d9: 0x9903, 0x6da: 0x9903, 0x6db: 0x8100, 0x6dc: 0x8100, 0x6dd: 0xa000, + 0x6de: 0x3fd0, + 0x6e6: 0xa000, + 0x6eb: 0xa000, 0x6ec: 0x3fe0, 0x6ed: 0xa000, 0x6ee: 0x3fe8, 0x6ef: 0xa000, + 0x6f0: 0x3ff0, 0x6f1: 0xa000, 0x6f2: 0x3ff8, 0x6f3: 0xa000, 0x6f4: 0x4000, 0x6f5: 0xa000, + 0x6f6: 0x4008, 0x6f7: 0xa000, 0x6f8: 0x4010, 0x6f9: 0xa000, 0x6fa: 0x4018, 0x6fb: 0xa000, + 0x6fc: 0x4020, 0x6fd: 0xa000, 0x6fe: 0x4028, 0x6ff: 0xa000, + // Block 0x1c, offset 0x700 + 0x700: 0x4030, 0x701: 0xa000, 0x702: 0x4038, 0x704: 0xa000, 0x705: 0x4040, + 0x706: 0xa000, 0x707: 0x4048, 0x708: 0xa000, 0x709: 0x4050, + 0x70f: 0xa000, 0x710: 0x4058, 0x711: 0x4060, + 0x712: 0xa000, 0x713: 0x4068, 0x714: 0x4070, 0x715: 0xa000, 0x716: 0x4078, 0x717: 0x4080, + 0x718: 0xa000, 0x719: 0x4088, 0x71a: 0x4090, 0x71b: 0xa000, 0x71c: 0x4098, 0x71d: 0x40a0, + 0x72f: 0xa000, + 0x730: 0xa000, 0x731: 0xa000, 0x732: 0xa000, 0x734: 0x3fd8, + 0x737: 0x40a8, 0x738: 0x40b0, 0x739: 0x40b8, 0x73a: 0x40c0, + 0x73d: 0xa000, 0x73e: 0x40c8, + // Block 0x1d, offset 0x740 + 0x740: 0x1377, 0x741: 0x0cfb, 0x742: 0x13d3, 0x743: 0x139f, 0x744: 0x0e57, 0x745: 0x06eb, + 0x746: 0x08df, 0x747: 0x162b, 0x748: 0x162b, 0x749: 0x0a0b, 0x74a: 0x145f, 0x74b: 0x0943, + 0x74c: 0x0a07, 0x74d: 0x0bef, 0x74e: 0x0fcf, 0x74f: 0x115f, 0x750: 0x1297, 0x751: 0x12d3, + 0x752: 0x1307, 0x753: 0x141b, 0x754: 0x0d73, 0x755: 0x0dff, 0x756: 0x0eab, 0x757: 0x0f43, + 0x758: 0x125f, 0x759: 0x1447, 0x75a: 0x1573, 0x75b: 0x070f, 0x75c: 0x08b3, 0x75d: 0x0d87, + 0x75e: 0x0ecf, 0x75f: 0x1293, 0x760: 0x15c3, 0x761: 0x0ab3, 0x762: 0x0e77, 0x763: 0x1283, + 0x764: 0x1317, 0x765: 0x0c23, 0x766: 0x11bb, 0x767: 0x12df, 0x768: 0x0b1f, 0x769: 0x0d0f, + 0x76a: 0x0e17, 0x76b: 0x0f1b, 0x76c: 0x1427, 0x76d: 0x074f, 0x76e: 0x07e7, 0x76f: 0x0853, + 0x770: 0x0c8b, 0x771: 0x0d7f, 0x772: 0x0ecb, 0x773: 0x0fef, 0x774: 0x1177, 0x775: 0x128b, + 0x776: 0x12a3, 0x777: 0x13c7, 0x778: 0x14ef, 0x779: 0x15a3, 0x77a: 0x15bf, 0x77b: 0x102b, + 0x77c: 0x106b, 0x77d: 0x1123, 0x77e: 0x1243, 0x77f: 0x147b, + // Block 0x1e, offset 0x780 + 0x780: 0x15cb, 0x781: 0x134b, 0x782: 0x09c7, 0x783: 0x0b3b, 0x784: 0x10db, 0x785: 0x119b, + 0x786: 0x0eff, 0x787: 0x1033, 0x788: 0x1397, 0x789: 0x14e7, 0x78a: 0x09c3, 0x78b: 0x0a8f, + 0x78c: 0x0d77, 0x78d: 0x0e2b, 0x78e: 0x0e5f, 0x78f: 0x1113, 0x790: 0x113b, 0x791: 0x14a7, + 0x792: 0x084f, 0x793: 0x11a7, 0x794: 0x07f3, 0x795: 0x07ef, 0x796: 0x1097, 0x797: 0x1127, + 0x798: 0x125b, 0x799: 0x14af, 0x79a: 0x1367, 0x79b: 0x0c27, 0x79c: 0x0d73, 0x79d: 0x1357, + 0x79e: 0x06f7, 0x79f: 0x0a63, 0x7a0: 0x0b93, 0x7a1: 0x0f2f, 0x7a2: 0x0faf, 0x7a3: 0x0873, + 0x7a4: 0x103b, 0x7a5: 0x075f, 0x7a6: 0x0b77, 0x7a7: 0x06d7, 0x7a8: 0x0deb, 0x7a9: 0x0ca3, + 0x7aa: 0x110f, 0x7ab: 0x08c7, 0x7ac: 0x09b3, 0x7ad: 0x0ffb, 0x7ae: 0x1263, 0x7af: 0x133b, + 0x7b0: 0x0db7, 0x7b1: 0x13f7, 0x7b2: 0x0de3, 0x7b3: 0x0c37, 0x7b4: 0x121b, 0x7b5: 0x0c57, + 0x7b6: 0x0fab, 0x7b7: 0x072b, 0x7b8: 0x07a7, 0x7b9: 0x07eb, 0x7ba: 0x0d53, 0x7bb: 0x10fb, + 0x7bc: 0x11f3, 0x7bd: 0x1347, 0x7be: 0x145b, 0x7bf: 0x085b, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x090f, 0x7c1: 0x0a17, 0x7c2: 0x0b2f, 0x7c3: 0x0cbf, 0x7c4: 0x0e7b, 0x7c5: 0x103f, + 0x7c6: 0x1497, 0x7c7: 0x157b, 0x7c8: 0x15cf, 0x7c9: 0x15e7, 0x7ca: 0x0837, 0x7cb: 0x0cf3, + 0x7cc: 0x0da3, 0x7cd: 0x13eb, 0x7ce: 0x0afb, 0x7cf: 0x0bd7, 0x7d0: 0x0bf3, 0x7d1: 0x0c83, + 0x7d2: 0x0e6b, 0x7d3: 0x0eb7, 0x7d4: 0x0f67, 0x7d5: 0x108b, 0x7d6: 0x112f, 0x7d7: 0x1193, + 0x7d8: 0x13db, 0x7d9: 0x126b, 0x7da: 0x1403, 0x7db: 0x147f, 0x7dc: 0x080f, 0x7dd: 0x083b, + 0x7de: 0x0923, 0x7df: 0x0ea7, 0x7e0: 0x12f3, 0x7e1: 0x133b, 0x7e2: 0x0b1b, 0x7e3: 0x0b8b, + 0x7e4: 0x0c4f, 0x7e5: 0x0daf, 0x7e6: 0x10d7, 0x7e7: 0x0f23, 0x7e8: 0x073b, 0x7e9: 0x097f, + 0x7ea: 0x0a63, 0x7eb: 0x0ac7, 0x7ec: 0x0b97, 0x7ed: 0x0f3f, 0x7ee: 0x0f5b, 0x7ef: 0x116b, + 0x7f0: 0x118b, 0x7f1: 0x1463, 0x7f2: 0x14e3, 0x7f3: 0x14f3, 0x7f4: 0x152f, 0x7f5: 0x0753, + 0x7f6: 0x107f, 0x7f7: 0x144f, 0x7f8: 0x14cb, 0x7f9: 0x0baf, 0x7fa: 0x0717, 0x7fb: 0x0777, + 0x7fc: 0x0a67, 0x7fd: 0x0a87, 0x7fe: 0x0caf, 0x7ff: 0x0d73, + // Block 0x20, offset 0x800 + 0x800: 0x0ec3, 0x801: 0x0fcb, 0x802: 0x1277, 0x803: 0x1417, 0x804: 0x1623, 0x805: 0x0ce3, + 0x806: 0x14a3, 0x807: 0x0833, 0x808: 0x0d2f, 0x809: 0x0d3b, 0x80a: 0x0e0f, 0x80b: 0x0e47, + 0x80c: 0x0f4b, 0x80d: 0x0fa7, 0x80e: 0x1027, 0x80f: 0x110b, 0x810: 0x153b, 0x811: 0x07af, + 0x812: 0x0c03, 0x813: 0x14b3, 0x814: 0x0767, 0x815: 0x0aab, 0x816: 0x0e2f, 0x817: 0x13df, + 0x818: 0x0b67, 0x819: 0x0bb7, 0x81a: 0x0d43, 0x81b: 0x0f2f, 0x81c: 0x14bb, 0x81d: 0x0817, + 0x81e: 0x08ff, 0x81f: 0x0a97, 0x820: 0x0cd3, 0x821: 0x0d1f, 0x822: 0x0d5f, 0x823: 0x0df3, + 0x824: 0x0f47, 0x825: 0x0fbb, 0x826: 0x1157, 0x827: 0x12f7, 0x828: 0x1303, 0x829: 0x1457, + 0x82a: 0x14d7, 0x82b: 0x0883, 0x82c: 0x0e4b, 0x82d: 0x0903, 0x82e: 0x0ec7, 0x82f: 0x0f6b, + 0x830: 0x1287, 0x831: 0x14bf, 0x832: 0x15ab, 0x833: 0x15d3, 0x834: 0x0d37, 0x835: 0x0e27, + 0x836: 0x11c3, 0x837: 0x10b7, 0x838: 0x10c3, 0x839: 0x10e7, 0x83a: 0x0f17, 0x83b: 0x0e9f, + 0x83c: 0x1363, 0x83d: 0x0733, 0x83e: 0x122b, 0x83f: 0x081b, + // Block 0x21, offset 0x840 + 0x840: 0x080b, 0x841: 0x0b0b, 0x842: 0x0c2b, 0x843: 0x10f3, 0x844: 0x0a53, 0x845: 0x0e03, + 0x846: 0x0cef, 0x847: 0x13e7, 0x848: 0x12e7, 0x849: 0x14ab, 0x84a: 0x1323, 0x84b: 0x0b27, + 0x84c: 0x0787, 0x84d: 0x095b, 0x850: 0x09af, + 0x852: 0x0cdf, 0x855: 0x07f7, 0x856: 0x0f1f, 0x857: 0x0fe3, + 0x858: 0x1047, 0x859: 0x1063, 0x85a: 0x1067, 0x85b: 0x107b, 0x85c: 0x14fb, 0x85d: 0x10eb, + 0x85e: 0x116f, 0x860: 0x128f, 0x862: 0x1353, + 0x865: 0x1407, 0x866: 0x1433, + 0x86a: 0x154f, 0x86b: 0x1553, 0x86c: 0x1557, 0x86d: 0x15bb, 0x86e: 0x142b, 0x86f: 0x14c7, + 0x870: 0x0757, 0x871: 0x077b, 0x872: 0x078f, 0x873: 0x084b, 0x874: 0x0857, 0x875: 0x0897, + 0x876: 0x094b, 0x877: 0x0967, 0x878: 0x096f, 0x879: 0x09ab, 0x87a: 0x09b7, 0x87b: 0x0a93, + 0x87c: 0x0a9b, 0x87d: 0x0ba3, 0x87e: 0x0bcb, 0x87f: 0x0bd3, + // Block 0x22, offset 0x880 + 0x880: 0x0beb, 0x881: 0x0c97, 0x882: 0x0cc7, 0x883: 0x0ce7, 0x884: 0x0d57, 0x885: 0x0e1b, + 0x886: 0x0e37, 0x887: 0x0e67, 0x888: 0x0ebb, 0x889: 0x0edb, 0x88a: 0x0f4f, 0x88b: 0x102f, + 0x88c: 0x104b, 0x88d: 0x1053, 0x88e: 0x104f, 0x88f: 0x1057, 0x890: 0x105b, 0x891: 0x105f, + 0x892: 0x1073, 0x893: 0x1077, 0x894: 0x109b, 0x895: 0x10af, 0x896: 0x10cb, 0x897: 0x112f, + 0x898: 0x1137, 0x899: 0x113f, 0x89a: 0x1153, 0x89b: 0x117b, 0x89c: 0x11cb, 0x89d: 0x11ff, + 0x89e: 0x11ff, 0x89f: 0x1267, 0x8a0: 0x130f, 0x8a1: 0x1327, 0x8a2: 0x135b, 0x8a3: 0x135f, + 0x8a4: 0x13a3, 0x8a5: 0x13a7, 0x8a6: 0x13ff, 0x8a7: 0x1407, 0x8a8: 0x14db, 0x8a9: 0x151f, + 0x8aa: 0x1537, 0x8ab: 0x0b9b, 0x8ac: 0x171e, 0x8ad: 0x11e3, + 0x8b0: 0x06df, 0x8b1: 0x07e3, 0x8b2: 0x07a3, 0x8b3: 0x074b, 0x8b4: 0x078b, 0x8b5: 0x07b7, + 0x8b6: 0x0847, 0x8b7: 0x0863, 0x8b8: 0x094b, 0x8b9: 0x0937, 0x8ba: 0x0947, 0x8bb: 0x0963, + 0x8bc: 0x09af, 0x8bd: 0x09bf, 0x8be: 0x0a03, 0x8bf: 0x0a0f, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0a2b, 0x8c1: 0x0a3b, 0x8c2: 0x0b23, 0x8c3: 0x0b2b, 0x8c4: 0x0b5b, 0x8c5: 0x0b7b, + 0x8c6: 0x0bab, 0x8c7: 0x0bc3, 0x8c8: 0x0bb3, 0x8c9: 0x0bd3, 0x8ca: 0x0bc7, 0x8cb: 0x0beb, + 0x8cc: 0x0c07, 0x8cd: 0x0c5f, 0x8ce: 0x0c6b, 0x8cf: 0x0c73, 0x8d0: 0x0c9b, 0x8d1: 0x0cdf, + 0x8d2: 0x0d0f, 0x8d3: 0x0d13, 0x8d4: 0x0d27, 0x8d5: 0x0da7, 0x8d6: 0x0db7, 0x8d7: 0x0e0f, + 0x8d8: 0x0e5b, 0x8d9: 0x0e53, 0x8da: 0x0e67, 0x8db: 0x0e83, 0x8dc: 0x0ebb, 0x8dd: 0x1013, + 0x8de: 0x0edf, 0x8df: 0x0f13, 0x8e0: 0x0f1f, 0x8e1: 0x0f5f, 0x8e2: 0x0f7b, 0x8e3: 0x0f9f, + 0x8e4: 0x0fc3, 0x8e5: 0x0fc7, 0x8e6: 0x0fe3, 0x8e7: 0x0fe7, 0x8e8: 0x0ff7, 0x8e9: 0x100b, + 0x8ea: 0x1007, 0x8eb: 0x1037, 0x8ec: 0x10b3, 0x8ed: 0x10cb, 0x8ee: 0x10e3, 0x8ef: 0x111b, + 0x8f0: 0x112f, 0x8f1: 0x114b, 0x8f2: 0x117b, 0x8f3: 0x122f, 0x8f4: 0x1257, 0x8f5: 0x12cb, + 0x8f6: 0x1313, 0x8f7: 0x131f, 0x8f8: 0x1327, 0x8f9: 0x133f, 0x8fa: 0x1353, 0x8fb: 0x1343, + 0x8fc: 0x135b, 0x8fd: 0x1357, 0x8fe: 0x134f, 0x8ff: 0x135f, + // Block 0x24, offset 0x900 + 0x900: 0x136b, 0x901: 0x13a7, 0x902: 0x13e3, 0x903: 0x1413, 0x904: 0x144b, 0x905: 0x146b, + 0x906: 0x14b7, 0x907: 0x14db, 0x908: 0x14fb, 0x909: 0x150f, 0x90a: 0x151f, 0x90b: 0x152b, + 0x90c: 0x1537, 0x90d: 0x158b, 0x90e: 0x162b, 0x90f: 0x16b5, 0x910: 0x16b0, 0x911: 0x16e2, + 0x912: 0x0607, 0x913: 0x062f, 0x914: 0x0633, 0x915: 0x1764, 0x916: 0x1791, 0x917: 0x1809, + 0x918: 0x1617, 0x919: 0x1627, + // Block 0x25, offset 0x940 + 0x940: 0x06fb, 0x941: 0x06f3, 0x942: 0x0703, 0x943: 0x1647, 0x944: 0x0747, 0x945: 0x0757, + 0x946: 0x075b, 0x947: 0x0763, 0x948: 0x076b, 0x949: 0x076f, 0x94a: 0x077b, 0x94b: 0x0773, + 0x94c: 0x05b3, 0x94d: 0x165b, 0x94e: 0x078f, 0x94f: 0x0793, 0x950: 0x0797, 0x951: 0x07b3, + 0x952: 0x164c, 0x953: 0x05b7, 0x954: 0x079f, 0x955: 0x07bf, 0x956: 0x1656, 0x957: 0x07cf, + 0x958: 0x07d7, 0x959: 0x0737, 0x95a: 0x07df, 0x95b: 0x07e3, 0x95c: 0x1831, 0x95d: 0x07ff, + 0x95e: 0x0807, 0x95f: 0x05bf, 0x960: 0x081f, 0x961: 0x0823, 0x962: 0x082b, 0x963: 0x082f, + 0x964: 0x05c3, 0x965: 0x0847, 0x966: 0x084b, 0x967: 0x0857, 0x968: 0x0863, 0x969: 0x0867, + 0x96a: 0x086b, 0x96b: 0x0873, 0x96c: 0x0893, 0x96d: 0x0897, 0x96e: 0x089f, 0x96f: 0x08af, + 0x970: 0x08b7, 0x971: 0x08bb, 0x972: 0x08bb, 0x973: 0x08bb, 0x974: 0x166a, 0x975: 0x0e93, + 0x976: 0x08cf, 0x977: 0x08d7, 0x978: 0x166f, 0x979: 0x08e3, 0x97a: 0x08eb, 0x97b: 0x08f3, + 0x97c: 0x091b, 0x97d: 0x0907, 0x97e: 0x0913, 0x97f: 0x0917, + // Block 0x26, offset 0x980 + 0x980: 0x091f, 0x981: 0x0927, 0x982: 0x092b, 0x983: 0x0933, 0x984: 0x093b, 0x985: 0x093f, + 0x986: 0x093f, 0x987: 0x0947, 0x988: 0x094f, 0x989: 0x0953, 0x98a: 0x095f, 0x98b: 0x0983, + 0x98c: 0x0967, 0x98d: 0x0987, 0x98e: 0x096b, 0x98f: 0x0973, 0x990: 0x080b, 0x991: 0x09cf, + 0x992: 0x0997, 0x993: 0x099b, 0x994: 0x099f, 0x995: 0x0993, 0x996: 0x09a7, 0x997: 0x09a3, + 0x998: 0x09bb, 0x999: 0x1674, 0x99a: 0x09d7, 0x99b: 0x09db, 0x99c: 0x09e3, 0x99d: 0x09ef, + 0x99e: 0x09f7, 0x99f: 0x0a13, 0x9a0: 0x1679, 0x9a1: 0x167e, 0x9a2: 0x0a1f, 0x9a3: 0x0a23, + 0x9a4: 0x0a27, 0x9a5: 0x0a1b, 0x9a6: 0x0a2f, 0x9a7: 0x05c7, 0x9a8: 0x05cb, 0x9a9: 0x0a37, + 0x9aa: 0x0a3f, 0x9ab: 0x0a3f, 0x9ac: 0x1683, 0x9ad: 0x0a5b, 0x9ae: 0x0a5f, 0x9af: 0x0a63, + 0x9b0: 0x0a6b, 0x9b1: 0x1688, 0x9b2: 0x0a73, 0x9b3: 0x0a77, 0x9b4: 0x0b4f, 0x9b5: 0x0a7f, + 0x9b6: 0x05cf, 0x9b7: 0x0a8b, 0x9b8: 0x0a9b, 0x9b9: 0x0aa7, 0x9ba: 0x0aa3, 0x9bb: 0x1692, + 0x9bc: 0x0aaf, 0x9bd: 0x1697, 0x9be: 0x0abb, 0x9bf: 0x0ab7, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0abf, 0x9c1: 0x0acf, 0x9c2: 0x0ad3, 0x9c3: 0x05d3, 0x9c4: 0x0ae3, 0x9c5: 0x0aeb, + 0x9c6: 0x0aef, 0x9c7: 0x0af3, 0x9c8: 0x05d7, 0x9c9: 0x169c, 0x9ca: 0x05db, 0x9cb: 0x0b0f, + 0x9cc: 0x0b13, 0x9cd: 0x0b17, 0x9ce: 0x0b1f, 0x9cf: 0x1863, 0x9d0: 0x0b37, 0x9d1: 0x16a6, + 0x9d2: 0x16a6, 0x9d3: 0x11d7, 0x9d4: 0x0b47, 0x9d5: 0x0b47, 0x9d6: 0x05df, 0x9d7: 0x16c9, + 0x9d8: 0x179b, 0x9d9: 0x0b57, 0x9da: 0x0b5f, 0x9db: 0x05e3, 0x9dc: 0x0b73, 0x9dd: 0x0b83, + 0x9de: 0x0b87, 0x9df: 0x0b8f, 0x9e0: 0x0b9f, 0x9e1: 0x05eb, 0x9e2: 0x05e7, 0x9e3: 0x0ba3, + 0x9e4: 0x16ab, 0x9e5: 0x0ba7, 0x9e6: 0x0bbb, 0x9e7: 0x0bbf, 0x9e8: 0x0bc3, 0x9e9: 0x0bbf, + 0x9ea: 0x0bcf, 0x9eb: 0x0bd3, 0x9ec: 0x0be3, 0x9ed: 0x0bdb, 0x9ee: 0x0bdf, 0x9ef: 0x0be7, + 0x9f0: 0x0beb, 0x9f1: 0x0bef, 0x9f2: 0x0bfb, 0x9f3: 0x0bff, 0x9f4: 0x0c17, 0x9f5: 0x0c1f, + 0x9f6: 0x0c2f, 0x9f7: 0x0c43, 0x9f8: 0x16ba, 0x9f9: 0x0c3f, 0x9fa: 0x0c33, 0x9fb: 0x0c4b, + 0x9fc: 0x0c53, 0x9fd: 0x0c67, 0x9fe: 0x16bf, 0x9ff: 0x0c6f, + // Block 0x28, offset 0xa00 + 0xa00: 0x0c63, 0xa01: 0x0c5b, 0xa02: 0x05ef, 0xa03: 0x0c77, 0xa04: 0x0c7f, 0xa05: 0x0c87, + 0xa06: 0x0c7b, 0xa07: 0x05f3, 0xa08: 0x0c97, 0xa09: 0x0c9f, 0xa0a: 0x16c4, 0xa0b: 0x0ccb, + 0xa0c: 0x0cff, 0xa0d: 0x0cdb, 0xa0e: 0x05ff, 0xa0f: 0x0ce7, 0xa10: 0x05fb, 0xa11: 0x05f7, + 0xa12: 0x07c3, 0xa13: 0x07c7, 0xa14: 0x0d03, 0xa15: 0x0ceb, 0xa16: 0x11ab, 0xa17: 0x0663, + 0xa18: 0x0d0f, 0xa19: 0x0d13, 0xa1a: 0x0d17, 0xa1b: 0x0d2b, 0xa1c: 0x0d23, 0xa1d: 0x16dd, + 0xa1e: 0x0603, 0xa1f: 0x0d3f, 0xa20: 0x0d33, 0xa21: 0x0d4f, 0xa22: 0x0d57, 0xa23: 0x16e7, + 0xa24: 0x0d5b, 0xa25: 0x0d47, 0xa26: 0x0d63, 0xa27: 0x0607, 0xa28: 0x0d67, 0xa29: 0x0d6b, + 0xa2a: 0x0d6f, 0xa2b: 0x0d7b, 0xa2c: 0x16ec, 0xa2d: 0x0d83, 0xa2e: 0x060b, 0xa2f: 0x0d8f, + 0xa30: 0x16f1, 0xa31: 0x0d93, 0xa32: 0x060f, 0xa33: 0x0d9f, 0xa34: 0x0dab, 0xa35: 0x0db7, + 0xa36: 0x0dbb, 0xa37: 0x16f6, 0xa38: 0x168d, 0xa39: 0x16fb, 0xa3a: 0x0ddb, 0xa3b: 0x1700, + 0xa3c: 0x0de7, 0xa3d: 0x0def, 0xa3e: 0x0ddf, 0xa3f: 0x0dfb, + // Block 0x29, offset 0xa40 + 0xa40: 0x0e0b, 0xa41: 0x0e1b, 0xa42: 0x0e0f, 0xa43: 0x0e13, 0xa44: 0x0e1f, 0xa45: 0x0e23, + 0xa46: 0x1705, 0xa47: 0x0e07, 0xa48: 0x0e3b, 0xa49: 0x0e3f, 0xa4a: 0x0613, 0xa4b: 0x0e53, + 0xa4c: 0x0e4f, 0xa4d: 0x170a, 0xa4e: 0x0e33, 0xa4f: 0x0e6f, 0xa50: 0x170f, 0xa51: 0x1714, + 0xa52: 0x0e73, 0xa53: 0x0e87, 0xa54: 0x0e83, 0xa55: 0x0e7f, 0xa56: 0x0617, 0xa57: 0x0e8b, + 0xa58: 0x0e9b, 0xa59: 0x0e97, 0xa5a: 0x0ea3, 0xa5b: 0x1651, 0xa5c: 0x0eb3, 0xa5d: 0x1719, + 0xa5e: 0x0ebf, 0xa5f: 0x1723, 0xa60: 0x0ed3, 0xa61: 0x0edf, 0xa62: 0x0ef3, 0xa63: 0x1728, + 0xa64: 0x0f07, 0xa65: 0x0f0b, 0xa66: 0x172d, 0xa67: 0x1732, 0xa68: 0x0f27, 0xa69: 0x0f37, + 0xa6a: 0x061b, 0xa6b: 0x0f3b, 0xa6c: 0x061f, 0xa6d: 0x061f, 0xa6e: 0x0f53, 0xa6f: 0x0f57, + 0xa70: 0x0f5f, 0xa71: 0x0f63, 0xa72: 0x0f6f, 0xa73: 0x0623, 0xa74: 0x0f87, 0xa75: 0x1737, + 0xa76: 0x0fa3, 0xa77: 0x173c, 0xa78: 0x0faf, 0xa79: 0x16a1, 0xa7a: 0x0fbf, 0xa7b: 0x1741, + 0xa7c: 0x1746, 0xa7d: 0x174b, 0xa7e: 0x0627, 0xa7f: 0x062b, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0ff7, 0xa81: 0x1755, 0xa82: 0x1750, 0xa83: 0x175a, 0xa84: 0x175f, 0xa85: 0x0fff, + 0xa86: 0x1003, 0xa87: 0x1003, 0xa88: 0x100b, 0xa89: 0x0633, 0xa8a: 0x100f, 0xa8b: 0x0637, + 0xa8c: 0x063b, 0xa8d: 0x1769, 0xa8e: 0x1023, 0xa8f: 0x102b, 0xa90: 0x1037, 0xa91: 0x063f, + 0xa92: 0x176e, 0xa93: 0x105b, 0xa94: 0x1773, 0xa95: 0x1778, 0xa96: 0x107b, 0xa97: 0x1093, + 0xa98: 0x0643, 0xa99: 0x109b, 0xa9a: 0x109f, 0xa9b: 0x10a3, 0xa9c: 0x177d, 0xa9d: 0x1782, + 0xa9e: 0x1782, 0xa9f: 0x10bb, 0xaa0: 0x0647, 0xaa1: 0x1787, 0xaa2: 0x10cf, 0xaa3: 0x10d3, + 0xaa4: 0x064b, 0xaa5: 0x178c, 0xaa6: 0x10ef, 0xaa7: 0x064f, 0xaa8: 0x10ff, 0xaa9: 0x10f7, + 0xaaa: 0x1107, 0xaab: 0x1796, 0xaac: 0x111f, 0xaad: 0x0653, 0xaae: 0x112b, 0xaaf: 0x1133, + 0xab0: 0x1143, 0xab1: 0x0657, 0xab2: 0x17a0, 0xab3: 0x17a5, 0xab4: 0x065b, 0xab5: 0x17aa, + 0xab6: 0x115b, 0xab7: 0x17af, 0xab8: 0x1167, 0xab9: 0x1173, 0xaba: 0x117b, 0xabb: 0x17b4, + 0xabc: 0x17b9, 0xabd: 0x118f, 0xabe: 0x17be, 0xabf: 0x1197, + // Block 0x2b, offset 0xac0 + 0xac0: 0x16ce, 0xac1: 0x065f, 0xac2: 0x11af, 0xac3: 0x11b3, 0xac4: 0x0667, 0xac5: 0x11b7, + 0xac6: 0x0a33, 0xac7: 0x17c3, 0xac8: 0x17c8, 0xac9: 0x16d3, 0xaca: 0x16d8, 0xacb: 0x11d7, + 0xacc: 0x11db, 0xacd: 0x13f3, 0xace: 0x066b, 0xacf: 0x1207, 0xad0: 0x1203, 0xad1: 0x120b, + 0xad2: 0x083f, 0xad3: 0x120f, 0xad4: 0x1213, 0xad5: 0x1217, 0xad6: 0x121f, 0xad7: 0x17cd, + 0xad8: 0x121b, 0xad9: 0x1223, 0xada: 0x1237, 0xadb: 0x123b, 0xadc: 0x1227, 0xadd: 0x123f, + 0xade: 0x1253, 0xadf: 0x1267, 0xae0: 0x1233, 0xae1: 0x1247, 0xae2: 0x124b, 0xae3: 0x124f, + 0xae4: 0x17d2, 0xae5: 0x17dc, 0xae6: 0x17d7, 0xae7: 0x066f, 0xae8: 0x126f, 0xae9: 0x1273, + 0xaea: 0x127b, 0xaeb: 0x17f0, 0xaec: 0x127f, 0xaed: 0x17e1, 0xaee: 0x0673, 0xaef: 0x0677, + 0xaf0: 0x17e6, 0xaf1: 0x17eb, 0xaf2: 0x067b, 0xaf3: 0x129f, 0xaf4: 0x12a3, 0xaf5: 0x12a7, + 0xaf6: 0x12ab, 0xaf7: 0x12b7, 0xaf8: 0x12b3, 0xaf9: 0x12bf, 0xafa: 0x12bb, 0xafb: 0x12cb, + 0xafc: 0x12c3, 0xafd: 0x12c7, 0xafe: 0x12cf, 0xaff: 0x067f, + // Block 0x2c, offset 0xb00 + 0xb00: 0x12d7, 0xb01: 0x12db, 0xb02: 0x0683, 0xb03: 0x12eb, 0xb04: 0x12ef, 0xb05: 0x17f5, + 0xb06: 0x12fb, 0xb07: 0x12ff, 0xb08: 0x0687, 0xb09: 0x130b, 0xb0a: 0x05bb, 0xb0b: 0x17fa, + 0xb0c: 0x17ff, 0xb0d: 0x068b, 0xb0e: 0x068f, 0xb0f: 0x1337, 0xb10: 0x134f, 0xb11: 0x136b, + 0xb12: 0x137b, 0xb13: 0x1804, 0xb14: 0x138f, 0xb15: 0x1393, 0xb16: 0x13ab, 0xb17: 0x13b7, + 0xb18: 0x180e, 0xb19: 0x1660, 0xb1a: 0x13c3, 0xb1b: 0x13bf, 0xb1c: 0x13cb, 0xb1d: 0x1665, + 0xb1e: 0x13d7, 0xb1f: 0x13e3, 0xb20: 0x1813, 0xb21: 0x1818, 0xb22: 0x1423, 0xb23: 0x142f, + 0xb24: 0x1437, 0xb25: 0x181d, 0xb26: 0x143b, 0xb27: 0x1467, 0xb28: 0x1473, 0xb29: 0x1477, + 0xb2a: 0x146f, 0xb2b: 0x1483, 0xb2c: 0x1487, 0xb2d: 0x1822, 0xb2e: 0x1493, 0xb2f: 0x0693, + 0xb30: 0x149b, 0xb31: 0x1827, 0xb32: 0x0697, 0xb33: 0x14d3, 0xb34: 0x0ac3, 0xb35: 0x14eb, + 0xb36: 0x182c, 0xb37: 0x1836, 0xb38: 0x069b, 0xb39: 0x069f, 0xb3a: 0x1513, 0xb3b: 0x183b, + 0xb3c: 0x06a3, 0xb3d: 0x1840, 0xb3e: 0x152b, 0xb3f: 0x152b, + // Block 0x2d, offset 0xb40 + 0xb40: 0x1533, 0xb41: 0x1845, 0xb42: 0x154b, 0xb43: 0x06a7, 0xb44: 0x155b, 0xb45: 0x1567, + 0xb46: 0x156f, 0xb47: 0x1577, 0xb48: 0x06ab, 0xb49: 0x184a, 0xb4a: 0x158b, 0xb4b: 0x15a7, + 0xb4c: 0x15b3, 0xb4d: 0x06af, 0xb4e: 0x06b3, 0xb4f: 0x15b7, 0xb50: 0x184f, 0xb51: 0x06b7, + 0xb52: 0x1854, 0xb53: 0x1859, 0xb54: 0x185e, 0xb55: 0x15db, 0xb56: 0x06bb, 0xb57: 0x15ef, + 0xb58: 0x15f7, 0xb59: 0x15fb, 0xb5a: 0x1603, 0xb5b: 0x160b, 0xb5c: 0x1613, 0xb5d: 0x1868, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2d, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x2e, 0xcb: 0x2f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x30, + 0xd0: 0x09, 0xd1: 0x31, 0xd2: 0x32, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x33, + 0xd8: 0x34, 0xd9: 0x0c, 0xdb: 0x35, 0xdc: 0x36, 0xdd: 0x37, 0xdf: 0x38, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x39, 0x121: 0x3a, 0x123: 0x3b, 0x124: 0x3c, 0x125: 0x3d, 0x126: 0x3e, 0x127: 0x3f, + 0x128: 0x40, 0x129: 0x41, 0x12a: 0x42, 0x12b: 0x43, 0x12c: 0x3e, 0x12d: 0x44, 0x12e: 0x45, 0x12f: 0x46, + 0x131: 0x47, 0x132: 0x48, 0x133: 0x49, 0x134: 0x4a, 0x135: 0x4b, 0x137: 0x4c, + 0x138: 0x4d, 0x139: 0x4e, 0x13a: 0x4f, 0x13b: 0x50, 0x13c: 0x51, 0x13d: 0x52, 0x13e: 0x53, 0x13f: 0x54, + // Block 0x5, offset 0x140 + 0x140: 0x55, 0x142: 0x56, 0x144: 0x57, 0x145: 0x58, 0x146: 0x59, 0x147: 0x5a, + 0x14d: 0x5b, + 0x15c: 0x5c, 0x15f: 0x5d, + 0x162: 0x5e, 0x164: 0x5f, + 0x168: 0x60, 0x169: 0x61, 0x16a: 0x62, 0x16c: 0x0d, 0x16d: 0x63, 0x16e: 0x64, 0x16f: 0x65, + 0x170: 0x66, 0x173: 0x67, 0x177: 0x68, + 0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15, + // Block 0x6, offset 0x180 + 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, + 0x188: 0x6e, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6f, 0x18c: 0x70, + 0x1ab: 0x71, + 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x75, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a, 0x1c4: 0x76, 0x1c5: 0x77, + 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, + // Block 0x8, offset 0x200 + 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, + 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, + 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, + 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, + 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, + // Block 0x9, offset 0x240 + 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, + 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, + 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, + 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, + 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, + 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, + 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, + // Block 0xa, offset 0x280 + 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, + 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, + 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, + 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, + 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, + 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, + 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, + 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, + 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, + 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, + 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, + // Block 0xc, offset 0x300 + 0x324: 0x1b, 0x325: 0x1c, 0x326: 0x1d, 0x327: 0x1e, + 0x328: 0x1f, 0x329: 0x20, 0x32a: 0x21, 0x32b: 0x22, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, + 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, + 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, + // Block 0xd, offset 0x340 + 0x347: 0x9c, + 0x34b: 0x9d, 0x34d: 0x9e, + 0x368: 0x9f, 0x36b: 0xa0, + // Block 0xe, offset 0x380 + 0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4, + 0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3e, 0x38d: 0xa7, + 0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac, + 0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae, + 0x3b0: 0x73, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xaf, 0x3ec: 0xb0, + // Block 0x10, offset 0x400 + 0x432: 0xb1, + // Block 0x11, offset 0x440 + 0x445: 0xb2, 0x446: 0xb3, 0x447: 0xb4, + 0x449: 0xb5, + // Block 0x12, offset 0x480 + 0x480: 0xb6, + 0x4a3: 0xb7, 0x4a5: 0xb8, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xb9, + // Block 0x14, offset 0x500 + 0x520: 0x23, 0x521: 0x24, 0x522: 0x25, 0x523: 0x26, 0x524: 0x27, 0x525: 0x28, 0x526: 0x29, 0x527: 0x2a, + 0x528: 0x2b, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 142 entries, 284 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc7, 0xce, 0xd6, 0xd9, 0xdb, 0xdd, 0xdf, 0xe4, 0xf5, 0x101, 0x103, 0x109, 0x10b, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x118, 0x11b, 0x11d, 0x120, 0x123, 0x127, 0x12c, 0x135, 0x137, 0x13a, 0x13c, 0x147, 0x157, 0x15b, 0x169, 0x16c, 0x172, 0x178, 0x183, 0x187, 0x189, 0x18b, 0x18d, 0x18f, 0x191, 0x197, 0x19b, 0x19d, 0x19f, 0x1a7, 0x1ab, 0x1ae, 0x1b0, 0x1b2, 0x1b4, 0x1b7, 0x1b9, 0x1bb, 0x1bd, 0x1bf, 0x1c5, 0x1c8, 0x1ca, 0x1d1, 0x1d7, 0x1dd, 0x1e5, 0x1eb, 0x1f1, 0x1f7, 0x1fb, 0x209, 0x212, 0x215, 0x218, 0x21a, 0x21d, 0x21f, 0x223, 0x228, 0x22a, 0x22c, 0x231, 0x237, 0x239, 0x23b, 0x23d, 0x243, 0x246, 0x249, 0x251, 0x258, 0x25b, 0x25e, 0x260, 0x268, 0x26b, 0x272, 0x275, 0x27b, 0x27d, 0x280, 0x282, 0x284, 0x286, 0x288, 0x295, 0x29f, 0x2a1, 0x2a3, 0x2a9, 0x2ab, 0x2ae} + +// nfcSparseValues: 688 entries, 2752 bytes +var nfcSparseValues = [688]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4840, lo: 0x8a, hi: 0x8a}, + {value: 0x485e, lo: 0x8b, hi: 0x8b}, + {value: 0x36c7, lo: 0x8c, hi: 0x8c}, + {value: 0x36df, lo: 0x8d, hi: 0x8d}, + {value: 0x4876, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x36fd, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + // Block 0xd, offset 0x62 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x67 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x69 + {value: 0x0000, lo: 0x10}, + {value: 0x8132, lo: 0x94, hi: 0xa1}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xa9, hi: 0xa9}, + {value: 0x8132, lo: 0xaa, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xaf}, + {value: 0x8116, lo: 0xb0, hi: 0xb0}, + {value: 0x8117, lo: 0xb1, hi: 0xb1}, + {value: 0x8118, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb5}, + {value: 0x812d, lo: 0xb6, hi: 0xb6}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x812d, lo: 0xb9, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbf}, + // Block 0x10, offset 0x7a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x11, offset 0x82 + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x12, offset 0x89 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x8c + {value: 0x0008, lo: 0x06}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + // Block 0x14, offset 0x93 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x97 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x16, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x17, offset 0x9d + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x18, offset 0x9f + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x19, offset 0xa8 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1a, offset 0xac + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1b, offset 0xb3 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xb8 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1d, offset 0xbb + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1e, offset 0xc5 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1f, offset 0xc7 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x20, offset 0xce + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x21, offset 0xd6 + {value: 0x0000, lo: 0x02}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x22, offset 0xd9 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x23, offset 0xdb + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x24, offset 0xdd + {value: 0x0000, lo: 0x01}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + // Block 0x25, offset 0xdf + {value: 0x0000, lo: 0x04}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0xe4 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x27, offset 0xf5 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x28, offset 0x101 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x29, offset 0x103 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x2a, offset 0x109 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2b, offset 0x10b + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x10d + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x10f + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x111 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x113 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x115 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x118 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x11b + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x11d + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x120 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x123 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x127 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x37, offset 0x12c + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x135 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x137 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x13a + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x13c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x147 + {value: 0x0000, lo: 0x0f}, + {value: 0x8132, lo: 0x80, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x82}, + {value: 0x8132, lo: 0x83, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8a}, + {value: 0x8132, lo: 0x8b, hi: 0x8c}, + {value: 0x8135, lo: 0x8d, hi: 0x8d}, + {value: 0x812a, lo: 0x8e, hi: 0x8e}, + {value: 0x812d, lo: 0x8f, hi: 0x8f}, + {value: 0x8129, lo: 0x90, hi: 0x90}, + {value: 0x8132, lo: 0x91, hi: 0xb5}, + {value: 0x8132, lo: 0xbb, hi: 0xbb}, + {value: 0x8134, lo: 0xbc, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x157 + {value: 0x0004, lo: 0x03}, + {value: 0x0433, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3e, offset 0x15b + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x3f, offset 0x169 + {value: 0x427b, lo: 0x02}, + {value: 0x01b8, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x40, offset 0x16c + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x41, offset 0x172 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x42, offset 0x178 + {value: 0x6408, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x43, offset 0x183 + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x44, offset 0x187 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x45, offset 0x189 + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x46, offset 0x18b + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x47, offset 0x18d + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x48, offset 0x18f + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x49, offset 0x191 + {value: 0x0000, lo: 0x05}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xaf}, + // Block 0x4a, offset 0x197 + {value: 0x0000, lo: 0x03}, + {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, + {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, + {value: 0x4a9f, lo: 0xba, hi: 0xbf}, + // Block 0x4b, offset 0x19b + {value: 0x0000, lo: 0x01}, + {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, + // Block 0x4c, offset 0x19d + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4d, offset 0x19f + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4e, offset 0x1a7 + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4f, offset 0x1ab + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x50, offset 0x1ae + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x51, offset 0x1b0 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x52, offset 0x1b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x53, offset 0x1b4 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x54, offset 0x1b7 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x55, offset 0x1b9 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x56, offset 0x1bb + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x57, offset 0x1bd + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x58, offset 0x1bf + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x59, offset 0x1c5 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x5a, offset 0x1c8 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x5b, offset 0x1ca + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5c, offset 0x1d1 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5d, offset 0x1d7 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5e, offset 0x1dd + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5f, offset 0x1e5 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x60, offset 0x1eb + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x61, offset 0x1f1 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x62, offset 0x1f7 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x63, offset 0x1fb + {value: 0x0006, lo: 0x0d}, + {value: 0x4390, lo: 0x9d, hi: 0x9d}, + {value: 0x8115, lo: 0x9e, hi: 0x9e}, + {value: 0x4402, lo: 0x9f, hi: 0x9f}, + {value: 0x43f0, lo: 0xaa, hi: 0xab}, + {value: 0x44f4, lo: 0xac, hi: 0xac}, + {value: 0x44fc, lo: 0xad, hi: 0xad}, + {value: 0x4348, lo: 0xae, hi: 0xb1}, + {value: 0x4366, lo: 0xb2, hi: 0xb4}, + {value: 0x437e, lo: 0xb5, hi: 0xb6}, + {value: 0x438a, lo: 0xb8, hi: 0xb8}, + {value: 0x4396, lo: 0xb9, hi: 0xbb}, + {value: 0x43ae, lo: 0xbc, hi: 0xbc}, + {value: 0x43b4, lo: 0xbe, hi: 0xbe}, + // Block 0x64, offset 0x209 + {value: 0x0006, lo: 0x08}, + {value: 0x43ba, lo: 0x80, hi: 0x81}, + {value: 0x43c6, lo: 0x83, hi: 0x84}, + {value: 0x43d8, lo: 0x86, hi: 0x89}, + {value: 0x43fc, lo: 0x8a, hi: 0x8a}, + {value: 0x4378, lo: 0x8b, hi: 0x8b}, + {value: 0x4360, lo: 0x8c, hi: 0x8c}, + {value: 0x43a8, lo: 0x8d, hi: 0x8d}, + {value: 0x43d2, lo: 0x8e, hi: 0x8e}, + // Block 0x65, offset 0x212 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x66, offset 0x215 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x67, offset 0x218 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x68, offset 0x21a + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x69, offset 0x21d + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x6a, offset 0x21f + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xa0, hi: 0xa6}, + {value: 0x812d, lo: 0xa7, hi: 0xad}, + {value: 0x8132, lo: 0xae, hi: 0xaf}, + // Block 0x6b, offset 0x223 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6c, offset 0x228 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6d, offset 0x22a + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6e, offset 0x22c + {value: 0x0000, lo: 0x04}, + {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, + {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, + {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, + {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, + // Block 0x6f, offset 0x231 + {value: 0x0000, lo: 0x05}, + {value: 0x4a9f, lo: 0x82, hi: 0x87}, + {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, + {value: 0x4a9f, lo: 0x92, hi: 0x97}, + {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x70, offset 0x237 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x71, offset 0x239 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x72, offset 0x23b + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x73, offset 0x23d + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x74, offset 0x243 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x75, offset 0x246 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x76, offset 0x249 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x77, offset 0x251 + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x78, offset 0x258 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x79, offset 0x25b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x7a, offset 0x25e + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x7b, offset 0x260 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x7c, offset 0x268 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + // Block 0x7d, offset 0x26b + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7e, offset 0x272 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7f, offset 0x275 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x80, offset 0x27b + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x81, offset 0x27d + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x82, offset 0x280 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x83, offset 0x282 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x84, offset 0x284 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x85, offset 0x286 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x86, offset 0x288 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x87, offset 0x295 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x88, offset 0x29f + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x89, offset 0x2a1 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8a, offset 0x2a3 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x8b, offset 0x2a9 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x8c, offset 0x2ab + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x8d, offset 0x2ae + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 16994 bytes (16.60 KiB). Checksum: c3ed54ee046f3c46. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 90: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 90 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 92 blocks, 5888 entries, 11776 bytes +// The third block is the zero block. +var nfkcValues = [5888]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, + // Block 0x5, offset 0x140 + 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2dee, 0x185: 0x2df4, + 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, + 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x42a5, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x425a, 0x285: 0x447b, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, + 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, + 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, + 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, + 0x2f9: 0x01a6, + // Block 0xc, offset 0x300 + 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, + 0x306: 0xa000, 0x307: 0x3709, + 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3733, 0x342: 0x37b7, + 0x350: 0x370f, 0x351: 0x3793, + 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, + 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, + 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, + 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, + 0x378: 0x3787, 0x379: 0x380b, + // Block 0xe, offset 0x380 + 0x387: 0x1d61, + 0x391: 0x812d, + 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, + 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, + 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, + 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, + 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, + 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, + 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, + 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x812d, + 0x3f0: 0x811e, 0x3f5: 0x1d84, + 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, + 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, + 0x412: 0x2d4e, + 0x434: 0x8102, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d56, + 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8, + 0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107, + 0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0, + 0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9, + 0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be, + 0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5, + 0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa, + 0x46a: 0x01fd, + 0x478: 0x020c, + // Block 0x12, offset 0x480 + 0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101, + 0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116, + 0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128, + 0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137, + 0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec, + 0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5, + 0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x2f97, 0x4c1: 0x32a3, 0x4c2: 0x2fa1, 0x4c3: 0x32ad, 0x4c4: 0x2fa6, 0x4c5: 0x32b2, + 0x4c6: 0x2fab, 0x4c7: 0x32b7, 0x4c8: 0x38cc, 0x4c9: 0x3a5b, 0x4ca: 0x2fc4, 0x4cb: 0x32d0, + 0x4cc: 0x2fce, 0x4cd: 0x32da, 0x4ce: 0x2fdd, 0x4cf: 0x32e9, 0x4d0: 0x2fd3, 0x4d1: 0x32df, + 0x4d2: 0x2fd8, 0x4d3: 0x32e4, 0x4d4: 0x38ef, 0x4d5: 0x3a7e, 0x4d6: 0x38f6, 0x4d7: 0x3a85, + 0x4d8: 0x3019, 0x4d9: 0x3325, 0x4da: 0x301e, 0x4db: 0x332a, 0x4dc: 0x3904, 0x4dd: 0x3a93, + 0x4de: 0x3023, 0x4df: 0x332f, 0x4e0: 0x3032, 0x4e1: 0x333e, 0x4e2: 0x3050, 0x4e3: 0x335c, + 0x4e4: 0x305f, 0x4e5: 0x336b, 0x4e6: 0x3055, 0x4e7: 0x3361, 0x4e8: 0x3064, 0x4e9: 0x3370, + 0x4ea: 0x3069, 0x4eb: 0x3375, 0x4ec: 0x30af, 0x4ed: 0x33bb, 0x4ee: 0x390b, 0x4ef: 0x3a9a, + 0x4f0: 0x30b9, 0x4f1: 0x33ca, 0x4f2: 0x30c3, 0x4f3: 0x33d4, 0x4f4: 0x30cd, 0x4f5: 0x33de, + 0x4f6: 0x46c4, 0x4f7: 0x4755, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x30e6, 0x4fb: 0x33f7, + 0x4fc: 0x30e1, 0x4fd: 0x33f2, 0x4fe: 0x30eb, 0x4ff: 0x33fc, + // Block 0x14, offset 0x500 + 0x500: 0x30f0, 0x501: 0x3401, 0x502: 0x30f5, 0x503: 0x3406, 0x504: 0x3109, 0x505: 0x341a, + 0x506: 0x3113, 0x507: 0x3424, 0x508: 0x3122, 0x509: 0x3433, 0x50a: 0x311d, 0x50b: 0x342e, + 0x50c: 0x3935, 0x50d: 0x3ac4, 0x50e: 0x3943, 0x50f: 0x3ad2, 0x510: 0x394a, 0x511: 0x3ad9, + 0x512: 0x3951, 0x513: 0x3ae0, 0x514: 0x314f, 0x515: 0x3460, 0x516: 0x3154, 0x517: 0x3465, + 0x518: 0x315e, 0x519: 0x346f, 0x51a: 0x46f1, 0x51b: 0x4782, 0x51c: 0x3997, 0x51d: 0x3b26, + 0x51e: 0x3177, 0x51f: 0x3488, 0x520: 0x3181, 0x521: 0x3492, 0x522: 0x4700, 0x523: 0x4791, + 0x524: 0x399e, 0x525: 0x3b2d, 0x526: 0x39a5, 0x527: 0x3b34, 0x528: 0x39ac, 0x529: 0x3b3b, + 0x52a: 0x3190, 0x52b: 0x34a1, 0x52c: 0x319a, 0x52d: 0x34b0, 0x52e: 0x31ae, 0x52f: 0x34c4, + 0x530: 0x31a9, 0x531: 0x34bf, 0x532: 0x31ea, 0x533: 0x3500, 0x534: 0x31f9, 0x535: 0x350f, + 0x536: 0x31f4, 0x537: 0x350a, 0x538: 0x39b3, 0x539: 0x3b42, 0x53a: 0x39ba, 0x53b: 0x3b49, + 0x53c: 0x31fe, 0x53d: 0x3514, 0x53e: 0x3203, 0x53f: 0x3519, + // Block 0x15, offset 0x540 + 0x540: 0x3208, 0x541: 0x351e, 0x542: 0x320d, 0x543: 0x3523, 0x544: 0x321c, 0x545: 0x3532, + 0x546: 0x3217, 0x547: 0x352d, 0x548: 0x3221, 0x549: 0x353c, 0x54a: 0x3226, 0x54b: 0x3541, + 0x54c: 0x322b, 0x54d: 0x3546, 0x54e: 0x3249, 0x54f: 0x3564, 0x550: 0x3262, 0x551: 0x3582, + 0x552: 0x3271, 0x553: 0x3591, 0x554: 0x3276, 0x555: 0x3596, 0x556: 0x337a, 0x557: 0x34a6, + 0x558: 0x3537, 0x559: 0x3573, 0x55a: 0x1be0, 0x55b: 0x42d7, + 0x560: 0x46a1, 0x561: 0x4732, 0x562: 0x2f83, 0x563: 0x328f, + 0x564: 0x3878, 0x565: 0x3a07, 0x566: 0x3871, 0x567: 0x3a00, 0x568: 0x3886, 0x569: 0x3a15, + 0x56a: 0x387f, 0x56b: 0x3a0e, 0x56c: 0x38be, 0x56d: 0x3a4d, 0x56e: 0x3894, 0x56f: 0x3a23, + 0x570: 0x388d, 0x571: 0x3a1c, 0x572: 0x38a2, 0x573: 0x3a31, 0x574: 0x389b, 0x575: 0x3a2a, + 0x576: 0x38c5, 0x577: 0x3a54, 0x578: 0x46b5, 0x579: 0x4746, 0x57a: 0x3000, 0x57b: 0x330c, + 0x57c: 0x2fec, 0x57d: 0x32f8, 0x57e: 0x38da, 0x57f: 0x3a69, + // Block 0x16, offset 0x580 + 0x580: 0x38d3, 0x581: 0x3a62, 0x582: 0x38e8, 0x583: 0x3a77, 0x584: 0x38e1, 0x585: 0x3a70, + 0x586: 0x38fd, 0x587: 0x3a8c, 0x588: 0x3091, 0x589: 0x339d, 0x58a: 0x30a5, 0x58b: 0x33b1, + 0x58c: 0x46e7, 0x58d: 0x4778, 0x58e: 0x3136, 0x58f: 0x3447, 0x590: 0x3920, 0x591: 0x3aaf, + 0x592: 0x3919, 0x593: 0x3aa8, 0x594: 0x392e, 0x595: 0x3abd, 0x596: 0x3927, 0x597: 0x3ab6, + 0x598: 0x3989, 0x599: 0x3b18, 0x59a: 0x396d, 0x59b: 0x3afc, 0x59c: 0x3966, 0x59d: 0x3af5, + 0x59e: 0x397b, 0x59f: 0x3b0a, 0x5a0: 0x3974, 0x5a1: 0x3b03, 0x5a2: 0x3982, 0x5a3: 0x3b11, + 0x5a4: 0x31e5, 0x5a5: 0x34fb, 0x5a6: 0x31c7, 0x5a7: 0x34dd, 0x5a8: 0x39e4, 0x5a9: 0x3b73, + 0x5aa: 0x39dd, 0x5ab: 0x3b6c, 0x5ac: 0x39f2, 0x5ad: 0x3b81, 0x5ae: 0x39eb, 0x5af: 0x3b7a, + 0x5b0: 0x39f9, 0x5b1: 0x3b88, 0x5b2: 0x3230, 0x5b3: 0x354b, 0x5b4: 0x3258, 0x5b5: 0x3578, + 0x5b6: 0x3253, 0x5b7: 0x356e, 0x5b8: 0x323f, 0x5b9: 0x355a, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x4804, 0x5c1: 0x480a, 0x5c2: 0x491e, 0x5c3: 0x4936, 0x5c4: 0x4926, 0x5c5: 0x493e, + 0x5c6: 0x492e, 0x5c7: 0x4946, 0x5c8: 0x47aa, 0x5c9: 0x47b0, 0x5ca: 0x488e, 0x5cb: 0x48a6, + 0x5cc: 0x4896, 0x5cd: 0x48ae, 0x5ce: 0x489e, 0x5cf: 0x48b6, 0x5d0: 0x4816, 0x5d1: 0x481c, + 0x5d2: 0x3db8, 0x5d3: 0x3dc8, 0x5d4: 0x3dc0, 0x5d5: 0x3dd0, + 0x5d8: 0x47b6, 0x5d9: 0x47bc, 0x5da: 0x3ce8, 0x5db: 0x3cf8, 0x5dc: 0x3cf0, 0x5dd: 0x3d00, + 0x5e0: 0x482e, 0x5e1: 0x4834, 0x5e2: 0x494e, 0x5e3: 0x4966, + 0x5e4: 0x4956, 0x5e5: 0x496e, 0x5e6: 0x495e, 0x5e7: 0x4976, 0x5e8: 0x47c2, 0x5e9: 0x47c8, + 0x5ea: 0x48be, 0x5eb: 0x48d6, 0x5ec: 0x48c6, 0x5ed: 0x48de, 0x5ee: 0x48ce, 0x5ef: 0x48e6, + 0x5f0: 0x4846, 0x5f1: 0x484c, 0x5f2: 0x3e18, 0x5f3: 0x3e30, 0x5f4: 0x3e20, 0x5f5: 0x3e38, + 0x5f6: 0x3e28, 0x5f7: 0x3e40, 0x5f8: 0x47ce, 0x5f9: 0x47d4, 0x5fa: 0x3d18, 0x5fb: 0x3d30, + 0x5fc: 0x3d20, 0x5fd: 0x3d38, 0x5fe: 0x3d28, 0x5ff: 0x3d40, + // Block 0x18, offset 0x600 + 0x600: 0x4852, 0x601: 0x4858, 0x602: 0x3e48, 0x603: 0x3e58, 0x604: 0x3e50, 0x605: 0x3e60, + 0x608: 0x47da, 0x609: 0x47e0, 0x60a: 0x3d48, 0x60b: 0x3d58, + 0x60c: 0x3d50, 0x60d: 0x3d60, 0x610: 0x4864, 0x611: 0x486a, + 0x612: 0x3e80, 0x613: 0x3e98, 0x614: 0x3e88, 0x615: 0x3ea0, 0x616: 0x3e90, 0x617: 0x3ea8, + 0x619: 0x47e6, 0x61b: 0x3d68, 0x61d: 0x3d70, + 0x61f: 0x3d78, 0x620: 0x487c, 0x621: 0x4882, 0x622: 0x497e, 0x623: 0x4996, + 0x624: 0x4986, 0x625: 0x499e, 0x626: 0x498e, 0x627: 0x49a6, 0x628: 0x47ec, 0x629: 0x47f2, + 0x62a: 0x48ee, 0x62b: 0x4906, 0x62c: 0x48f6, 0x62d: 0x490e, 0x62e: 0x48fe, 0x62f: 0x4916, + 0x630: 0x47f8, 0x631: 0x431e, 0x632: 0x3691, 0x633: 0x4324, 0x634: 0x4822, 0x635: 0x432a, + 0x636: 0x36a3, 0x637: 0x4330, 0x638: 0x36c1, 0x639: 0x4336, 0x63a: 0x36d9, 0x63b: 0x433c, + 0x63c: 0x4870, 0x63d: 0x4342, + // Block 0x19, offset 0x640 + 0x640: 0x3da0, 0x641: 0x3da8, 0x642: 0x4184, 0x643: 0x41a2, 0x644: 0x418e, 0x645: 0x41ac, + 0x646: 0x4198, 0x647: 0x41b6, 0x648: 0x3cd8, 0x649: 0x3ce0, 0x64a: 0x40d0, 0x64b: 0x40ee, + 0x64c: 0x40da, 0x64d: 0x40f8, 0x64e: 0x40e4, 0x64f: 0x4102, 0x650: 0x3de8, 0x651: 0x3df0, + 0x652: 0x41c0, 0x653: 0x41de, 0x654: 0x41ca, 0x655: 0x41e8, 0x656: 0x41d4, 0x657: 0x41f2, + 0x658: 0x3d08, 0x659: 0x3d10, 0x65a: 0x410c, 0x65b: 0x412a, 0x65c: 0x4116, 0x65d: 0x4134, + 0x65e: 0x4120, 0x65f: 0x413e, 0x660: 0x3ec0, 0x661: 0x3ec8, 0x662: 0x41fc, 0x663: 0x421a, + 0x664: 0x4206, 0x665: 0x4224, 0x666: 0x4210, 0x667: 0x422e, 0x668: 0x3d80, 0x669: 0x3d88, + 0x66a: 0x4148, 0x66b: 0x4166, 0x66c: 0x4152, 0x66d: 0x4170, 0x66e: 0x415c, 0x66f: 0x417a, + 0x670: 0x3685, 0x671: 0x367f, 0x672: 0x3d90, 0x673: 0x368b, 0x674: 0x3d98, + 0x676: 0x4810, 0x677: 0x3db0, 0x678: 0x35f5, 0x679: 0x35ef, 0x67a: 0x35e3, 0x67b: 0x42ee, + 0x67c: 0x35fb, 0x67d: 0x4287, 0x67e: 0x01d3, 0x67f: 0x4287, + // Block 0x1a, offset 0x680 + 0x680: 0x42a0, 0x681: 0x4482, 0x682: 0x3dd8, 0x683: 0x369d, 0x684: 0x3de0, + 0x686: 0x483a, 0x687: 0x3df8, 0x688: 0x3601, 0x689: 0x42f4, 0x68a: 0x360d, 0x68b: 0x42fa, + 0x68c: 0x3619, 0x68d: 0x4489, 0x68e: 0x4490, 0x68f: 0x4497, 0x690: 0x36b5, 0x691: 0x36af, + 0x692: 0x3e00, 0x693: 0x44e4, 0x696: 0x36bb, 0x697: 0x3e10, + 0x698: 0x3631, 0x699: 0x362b, 0x69a: 0x361f, 0x69b: 0x4300, 0x69d: 0x449e, + 0x69e: 0x44a5, 0x69f: 0x44ac, 0x6a0: 0x36eb, 0x6a1: 0x36e5, 0x6a2: 0x3e68, 0x6a3: 0x44ec, + 0x6a4: 0x36cd, 0x6a5: 0x36d3, 0x6a6: 0x36f1, 0x6a7: 0x3e78, 0x6a8: 0x3661, 0x6a9: 0x365b, + 0x6aa: 0x364f, 0x6ab: 0x430c, 0x6ac: 0x3649, 0x6ad: 0x4474, 0x6ae: 0x447b, 0x6af: 0x0081, + 0x6b2: 0x3eb0, 0x6b3: 0x36f7, 0x6b4: 0x3eb8, + 0x6b6: 0x4888, 0x6b7: 0x3ed0, 0x6b8: 0x363d, 0x6b9: 0x4306, 0x6ba: 0x366d, 0x6bb: 0x4318, + 0x6bc: 0x3679, 0x6bd: 0x425a, 0x6be: 0x428c, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x1bd8, 0x6c1: 0x1bdc, 0x6c2: 0x0047, 0x6c3: 0x1c54, 0x6c5: 0x1be8, + 0x6c6: 0x1bec, 0x6c7: 0x00e9, 0x6c9: 0x1c58, 0x6ca: 0x008f, 0x6cb: 0x0051, + 0x6cc: 0x0051, 0x6cd: 0x0051, 0x6ce: 0x0091, 0x6cf: 0x00da, 0x6d0: 0x0053, 0x6d1: 0x0053, + 0x6d2: 0x0059, 0x6d3: 0x0099, 0x6d5: 0x005d, 0x6d6: 0x198d, + 0x6d9: 0x0061, 0x6da: 0x0063, 0x6db: 0x0065, 0x6dc: 0x0065, 0x6dd: 0x0065, + 0x6e0: 0x199f, 0x6e1: 0x1bc8, 0x6e2: 0x19a8, + 0x6e4: 0x0075, 0x6e6: 0x01b8, 0x6e8: 0x0075, + 0x6ea: 0x0057, 0x6eb: 0x42d2, 0x6ec: 0x0045, 0x6ed: 0x0047, 0x6ef: 0x008b, + 0x6f0: 0x004b, 0x6f1: 0x004d, 0x6f3: 0x005b, 0x6f4: 0x009f, 0x6f5: 0x0215, + 0x6f6: 0x0218, 0x6f7: 0x021b, 0x6f8: 0x021e, 0x6f9: 0x0093, 0x6fb: 0x1b98, + 0x6fc: 0x01e8, 0x6fd: 0x01c1, 0x6fe: 0x0179, 0x6ff: 0x01a0, + // Block 0x1c, offset 0x700 + 0x700: 0x0463, 0x705: 0x0049, + 0x706: 0x0089, 0x707: 0x008b, 0x708: 0x0093, 0x709: 0x0095, + 0x710: 0x222e, 0x711: 0x223a, + 0x712: 0x22ee, 0x713: 0x2216, 0x714: 0x229a, 0x715: 0x2222, 0x716: 0x22a0, 0x717: 0x22b8, + 0x718: 0x22c4, 0x719: 0x2228, 0x71a: 0x22ca, 0x71b: 0x2234, 0x71c: 0x22be, 0x71d: 0x22d0, + 0x71e: 0x22d6, 0x71f: 0x1cbc, 0x720: 0x0053, 0x721: 0x195a, 0x722: 0x1ba4, 0x723: 0x1963, + 0x724: 0x006d, 0x725: 0x19ab, 0x726: 0x1bd0, 0x727: 0x1d48, 0x728: 0x1966, 0x729: 0x0071, + 0x72a: 0x19b7, 0x72b: 0x1bd4, 0x72c: 0x0059, 0x72d: 0x0047, 0x72e: 0x0049, 0x72f: 0x005b, + 0x730: 0x0093, 0x731: 0x19e4, 0x732: 0x1c18, 0x733: 0x19ed, 0x734: 0x00ad, 0x735: 0x1a62, + 0x736: 0x1c4c, 0x737: 0x1d5c, 0x738: 0x19f0, 0x739: 0x00b1, 0x73a: 0x1a65, 0x73b: 0x1c50, + 0x73c: 0x0099, 0x73d: 0x0087, 0x73e: 0x0089, 0x73f: 0x009b, + // Block 0x1d, offset 0x740 + 0x741: 0x3c06, 0x743: 0xa000, 0x744: 0x3c0d, 0x745: 0xa000, + 0x747: 0x3c14, 0x748: 0xa000, 0x749: 0x3c1b, + 0x74d: 0xa000, + 0x760: 0x2f65, 0x761: 0xa000, 0x762: 0x3c29, + 0x764: 0xa000, 0x765: 0xa000, + 0x76d: 0x3c22, 0x76e: 0x2f60, 0x76f: 0x2f6a, + 0x770: 0x3c30, 0x771: 0x3c37, 0x772: 0xa000, 0x773: 0xa000, 0x774: 0x3c3e, 0x775: 0x3c45, + 0x776: 0xa000, 0x777: 0xa000, 0x778: 0x3c4c, 0x779: 0x3c53, 0x77a: 0xa000, 0x77b: 0xa000, + 0x77c: 0xa000, 0x77d: 0xa000, + // Block 0x1e, offset 0x780 + 0x780: 0x3c5a, 0x781: 0x3c61, 0x782: 0xa000, 0x783: 0xa000, 0x784: 0x3c76, 0x785: 0x3c7d, + 0x786: 0xa000, 0x787: 0xa000, 0x788: 0x3c84, 0x789: 0x3c8b, + 0x791: 0xa000, + 0x792: 0xa000, + 0x7a2: 0xa000, + 0x7a8: 0xa000, 0x7a9: 0xa000, + 0x7ab: 0xa000, 0x7ac: 0x3ca0, 0x7ad: 0x3ca7, 0x7ae: 0x3cae, 0x7af: 0x3cb5, + 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0xa000, 0x7b5: 0xa000, + // Block 0x1f, offset 0x7c0 + 0x7e0: 0x0023, 0x7e1: 0x0025, 0x7e2: 0x0027, 0x7e3: 0x0029, + 0x7e4: 0x002b, 0x7e5: 0x002d, 0x7e6: 0x002f, 0x7e7: 0x0031, 0x7e8: 0x0033, 0x7e9: 0x1882, + 0x7ea: 0x1885, 0x7eb: 0x1888, 0x7ec: 0x188b, 0x7ed: 0x188e, 0x7ee: 0x1891, 0x7ef: 0x1894, + 0x7f0: 0x1897, 0x7f1: 0x189a, 0x7f2: 0x189d, 0x7f3: 0x18a6, 0x7f4: 0x1a68, 0x7f5: 0x1a6c, + 0x7f6: 0x1a70, 0x7f7: 0x1a74, 0x7f8: 0x1a78, 0x7f9: 0x1a7c, 0x7fa: 0x1a80, 0x7fb: 0x1a84, + 0x7fc: 0x1a88, 0x7fd: 0x1c80, 0x7fe: 0x1c85, 0x7ff: 0x1c8a, + // Block 0x20, offset 0x800 + 0x800: 0x1c8f, 0x801: 0x1c94, 0x802: 0x1c99, 0x803: 0x1c9e, 0x804: 0x1ca3, 0x805: 0x1ca8, + 0x806: 0x1cad, 0x807: 0x1cb2, 0x808: 0x187f, 0x809: 0x18a3, 0x80a: 0x18c7, 0x80b: 0x18eb, + 0x80c: 0x190f, 0x80d: 0x1918, 0x80e: 0x191e, 0x80f: 0x1924, 0x810: 0x192a, 0x811: 0x1b60, + 0x812: 0x1b64, 0x813: 0x1b68, 0x814: 0x1b6c, 0x815: 0x1b70, 0x816: 0x1b74, 0x817: 0x1b78, + 0x818: 0x1b7c, 0x819: 0x1b80, 0x81a: 0x1b84, 0x81b: 0x1b88, 0x81c: 0x1af4, 0x81d: 0x1af8, + 0x81e: 0x1afc, 0x81f: 0x1b00, 0x820: 0x1b04, 0x821: 0x1b08, 0x822: 0x1b0c, 0x823: 0x1b10, + 0x824: 0x1b14, 0x825: 0x1b18, 0x826: 0x1b1c, 0x827: 0x1b20, 0x828: 0x1b24, 0x829: 0x1b28, + 0x82a: 0x1b2c, 0x82b: 0x1b30, 0x82c: 0x1b34, 0x82d: 0x1b38, 0x82e: 0x1b3c, 0x82f: 0x1b40, + 0x830: 0x1b44, 0x831: 0x1b48, 0x832: 0x1b4c, 0x833: 0x1b50, 0x834: 0x1b54, 0x835: 0x1b58, + 0x836: 0x0043, 0x837: 0x0045, 0x838: 0x0047, 0x839: 0x0049, 0x83a: 0x004b, 0x83b: 0x004d, + 0x83c: 0x004f, 0x83d: 0x0051, 0x83e: 0x0053, 0x83f: 0x0055, + // Block 0x21, offset 0x840 + 0x840: 0x06bf, 0x841: 0x06e3, 0x842: 0x06ef, 0x843: 0x06ff, 0x844: 0x0707, 0x845: 0x0713, + 0x846: 0x071b, 0x847: 0x0723, 0x848: 0x072f, 0x849: 0x0783, 0x84a: 0x079b, 0x84b: 0x07ab, + 0x84c: 0x07bb, 0x84d: 0x07cb, 0x84e: 0x07db, 0x84f: 0x07fb, 0x850: 0x07ff, 0x851: 0x0803, + 0x852: 0x0837, 0x853: 0x085f, 0x854: 0x086f, 0x855: 0x0877, 0x856: 0x087b, 0x857: 0x0887, + 0x858: 0x08a3, 0x859: 0x08a7, 0x85a: 0x08bf, 0x85b: 0x08c3, 0x85c: 0x08cb, 0x85d: 0x08db, + 0x85e: 0x0977, 0x85f: 0x098b, 0x860: 0x09cb, 0x861: 0x09df, 0x862: 0x09e7, 0x863: 0x09eb, + 0x864: 0x09fb, 0x865: 0x0a17, 0x866: 0x0a43, 0x867: 0x0a4f, 0x868: 0x0a6f, 0x869: 0x0a7b, + 0x86a: 0x0a7f, 0x86b: 0x0a83, 0x86c: 0x0a9b, 0x86d: 0x0a9f, 0x86e: 0x0acb, 0x86f: 0x0ad7, + 0x870: 0x0adf, 0x871: 0x0ae7, 0x872: 0x0af7, 0x873: 0x0aff, 0x874: 0x0b07, 0x875: 0x0b33, + 0x876: 0x0b37, 0x877: 0x0b3f, 0x878: 0x0b43, 0x879: 0x0b4b, 0x87a: 0x0b53, 0x87b: 0x0b63, + 0x87c: 0x0b7f, 0x87d: 0x0bf7, 0x87e: 0x0c0b, 0x87f: 0x0c0f, + // Block 0x22, offset 0x880 + 0x880: 0x0c8f, 0x881: 0x0c93, 0x882: 0x0ca7, 0x883: 0x0cab, 0x884: 0x0cb3, 0x885: 0x0cbb, + 0x886: 0x0cc3, 0x887: 0x0ccf, 0x888: 0x0cf7, 0x889: 0x0d07, 0x88a: 0x0d1b, 0x88b: 0x0d8b, + 0x88c: 0x0d97, 0x88d: 0x0da7, 0x88e: 0x0db3, 0x88f: 0x0dbf, 0x890: 0x0dc7, 0x891: 0x0dcb, + 0x892: 0x0dcf, 0x893: 0x0dd3, 0x894: 0x0dd7, 0x895: 0x0e8f, 0x896: 0x0ed7, 0x897: 0x0ee3, + 0x898: 0x0ee7, 0x899: 0x0eeb, 0x89a: 0x0eef, 0x89b: 0x0ef7, 0x89c: 0x0efb, 0x89d: 0x0f0f, + 0x89e: 0x0f2b, 0x89f: 0x0f33, 0x8a0: 0x0f73, 0x8a1: 0x0f77, 0x8a2: 0x0f7f, 0x8a3: 0x0f83, + 0x8a4: 0x0f8b, 0x8a5: 0x0f8f, 0x8a6: 0x0fb3, 0x8a7: 0x0fb7, 0x8a8: 0x0fd3, 0x8a9: 0x0fd7, + 0x8aa: 0x0fdb, 0x8ab: 0x0fdf, 0x8ac: 0x0ff3, 0x8ad: 0x1017, 0x8ae: 0x101b, 0x8af: 0x101f, + 0x8b0: 0x1043, 0x8b1: 0x1083, 0x8b2: 0x1087, 0x8b3: 0x10a7, 0x8b4: 0x10b7, 0x8b5: 0x10bf, + 0x8b6: 0x10df, 0x8b7: 0x1103, 0x8b8: 0x1147, 0x8b9: 0x114f, 0x8ba: 0x1163, 0x8bb: 0x116f, + 0x8bc: 0x1177, 0x8bd: 0x117f, 0x8be: 0x1183, 0x8bf: 0x1187, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x119f, 0x8c1: 0x11a3, 0x8c2: 0x11bf, 0x8c3: 0x11c7, 0x8c4: 0x11cf, 0x8c5: 0x11d3, + 0x8c6: 0x11df, 0x8c7: 0x11e7, 0x8c8: 0x11eb, 0x8c9: 0x11ef, 0x8ca: 0x11f7, 0x8cb: 0x11fb, + 0x8cc: 0x129b, 0x8cd: 0x12af, 0x8ce: 0x12e3, 0x8cf: 0x12e7, 0x8d0: 0x12ef, 0x8d1: 0x131b, + 0x8d2: 0x1323, 0x8d3: 0x132b, 0x8d4: 0x1333, 0x8d5: 0x136f, 0x8d6: 0x1373, 0x8d7: 0x137b, + 0x8d8: 0x137f, 0x8d9: 0x1383, 0x8da: 0x13af, 0x8db: 0x13b3, 0x8dc: 0x13bb, 0x8dd: 0x13cf, + 0x8de: 0x13d3, 0x8df: 0x13ef, 0x8e0: 0x13f7, 0x8e1: 0x13fb, 0x8e2: 0x141f, 0x8e3: 0x143f, + 0x8e4: 0x1453, 0x8e5: 0x1457, 0x8e6: 0x145f, 0x8e7: 0x148b, 0x8e8: 0x148f, 0x8e9: 0x149f, + 0x8ea: 0x14c3, 0x8eb: 0x14cf, 0x8ec: 0x14df, 0x8ed: 0x14f7, 0x8ee: 0x14ff, 0x8ef: 0x1503, + 0x8f0: 0x1507, 0x8f1: 0x150b, 0x8f2: 0x1517, 0x8f3: 0x151b, 0x8f4: 0x1523, 0x8f5: 0x153f, + 0x8f6: 0x1543, 0x8f7: 0x1547, 0x8f8: 0x155f, 0x8f9: 0x1563, 0x8fa: 0x156b, 0x8fb: 0x157f, + 0x8fc: 0x1583, 0x8fd: 0x1587, 0x8fe: 0x158f, 0x8ff: 0x1593, + // Block 0x24, offset 0x900 + 0x906: 0xa000, 0x90b: 0xa000, + 0x90c: 0x3f08, 0x90d: 0xa000, 0x90e: 0x3f10, 0x90f: 0xa000, 0x910: 0x3f18, 0x911: 0xa000, + 0x912: 0x3f20, 0x913: 0xa000, 0x914: 0x3f28, 0x915: 0xa000, 0x916: 0x3f30, 0x917: 0xa000, + 0x918: 0x3f38, 0x919: 0xa000, 0x91a: 0x3f40, 0x91b: 0xa000, 0x91c: 0x3f48, 0x91d: 0xa000, + 0x91e: 0x3f50, 0x91f: 0xa000, 0x920: 0x3f58, 0x921: 0xa000, 0x922: 0x3f60, + 0x924: 0xa000, 0x925: 0x3f68, 0x926: 0xa000, 0x927: 0x3f70, 0x928: 0xa000, 0x929: 0x3f78, + 0x92f: 0xa000, + 0x930: 0x3f80, 0x931: 0x3f88, 0x932: 0xa000, 0x933: 0x3f90, 0x934: 0x3f98, 0x935: 0xa000, + 0x936: 0x3fa0, 0x937: 0x3fa8, 0x938: 0xa000, 0x939: 0x3fb0, 0x93a: 0x3fb8, 0x93b: 0xa000, + 0x93c: 0x3fc0, 0x93d: 0x3fc8, + // Block 0x25, offset 0x940 + 0x954: 0x3f00, + 0x959: 0x9903, 0x95a: 0x9903, 0x95b: 0x42dc, 0x95c: 0x42e2, 0x95d: 0xa000, + 0x95e: 0x3fd0, 0x95f: 0x26b4, + 0x966: 0xa000, + 0x96b: 0xa000, 0x96c: 0x3fe0, 0x96d: 0xa000, 0x96e: 0x3fe8, 0x96f: 0xa000, + 0x970: 0x3ff0, 0x971: 0xa000, 0x972: 0x3ff8, 0x973: 0xa000, 0x974: 0x4000, 0x975: 0xa000, + 0x976: 0x4008, 0x977: 0xa000, 0x978: 0x4010, 0x979: 0xa000, 0x97a: 0x4018, 0x97b: 0xa000, + 0x97c: 0x4020, 0x97d: 0xa000, 0x97e: 0x4028, 0x97f: 0xa000, + // Block 0x26, offset 0x980 + 0x980: 0x4030, 0x981: 0xa000, 0x982: 0x4038, 0x984: 0xa000, 0x985: 0x4040, + 0x986: 0xa000, 0x987: 0x4048, 0x988: 0xa000, 0x989: 0x4050, + 0x98f: 0xa000, 0x990: 0x4058, 0x991: 0x4060, + 0x992: 0xa000, 0x993: 0x4068, 0x994: 0x4070, 0x995: 0xa000, 0x996: 0x4078, 0x997: 0x4080, + 0x998: 0xa000, 0x999: 0x4088, 0x99a: 0x4090, 0x99b: 0xa000, 0x99c: 0x4098, 0x99d: 0x40a0, + 0x9af: 0xa000, + 0x9b0: 0xa000, 0x9b1: 0xa000, 0x9b2: 0xa000, 0x9b4: 0x3fd8, + 0x9b7: 0x40a8, 0x9b8: 0x40b0, 0x9b9: 0x40b8, 0x9ba: 0x40c0, + 0x9bd: 0xa000, 0x9be: 0x40c8, 0x9bf: 0x26c9, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0367, 0x9c1: 0x032b, 0x9c2: 0x032f, 0x9c3: 0x0333, 0x9c4: 0x037b, 0x9c5: 0x0337, + 0x9c6: 0x033b, 0x9c7: 0x033f, 0x9c8: 0x0343, 0x9c9: 0x0347, 0x9ca: 0x034b, 0x9cb: 0x034f, + 0x9cc: 0x0353, 0x9cd: 0x0357, 0x9ce: 0x035b, 0x9cf: 0x49bd, 0x9d0: 0x49c3, 0x9d1: 0x49c9, + 0x9d2: 0x49cf, 0x9d3: 0x49d5, 0x9d4: 0x49db, 0x9d5: 0x49e1, 0x9d6: 0x49e7, 0x9d7: 0x49ed, + 0x9d8: 0x49f3, 0x9d9: 0x49f9, 0x9da: 0x49ff, 0x9db: 0x4a05, 0x9dc: 0x4a0b, 0x9dd: 0x4a11, + 0x9de: 0x4a17, 0x9df: 0x4a1d, 0x9e0: 0x4a23, 0x9e1: 0x4a29, 0x9e2: 0x4a2f, 0x9e3: 0x4a35, + 0x9e4: 0x03c3, 0x9e5: 0x035f, 0x9e6: 0x0363, 0x9e7: 0x03e7, 0x9e8: 0x03eb, 0x9e9: 0x03ef, + 0x9ea: 0x03f3, 0x9eb: 0x03f7, 0x9ec: 0x03fb, 0x9ed: 0x03ff, 0x9ee: 0x036b, 0x9ef: 0x0403, + 0x9f0: 0x0407, 0x9f1: 0x036f, 0x9f2: 0x0373, 0x9f3: 0x0377, 0x9f4: 0x037f, 0x9f5: 0x0383, + 0x9f6: 0x0387, 0x9f7: 0x038b, 0x9f8: 0x038f, 0x9f9: 0x0393, 0x9fa: 0x0397, 0x9fb: 0x039b, + 0x9fc: 0x039f, 0x9fd: 0x03a3, 0x9fe: 0x03a7, 0x9ff: 0x03ab, + // Block 0x28, offset 0xa00 + 0xa00: 0x03af, 0xa01: 0x03b3, 0xa02: 0x040b, 0xa03: 0x040f, 0xa04: 0x03b7, 0xa05: 0x03bb, + 0xa06: 0x03bf, 0xa07: 0x03c7, 0xa08: 0x03cb, 0xa09: 0x03cf, 0xa0a: 0x03d3, 0xa0b: 0x03d7, + 0xa0c: 0x03db, 0xa0d: 0x03df, 0xa0e: 0x03e3, + 0xa12: 0x06bf, 0xa13: 0x071b, 0xa14: 0x06cb, 0xa15: 0x097b, 0xa16: 0x06cf, 0xa17: 0x06e7, + 0xa18: 0x06d3, 0xa19: 0x0f93, 0xa1a: 0x0707, 0xa1b: 0x06db, 0xa1c: 0x06c3, 0xa1d: 0x09ff, + 0xa1e: 0x098f, 0xa1f: 0x072f, + // Block 0x29, offset 0xa40 + 0xa40: 0x2054, 0xa41: 0x205a, 0xa42: 0x2060, 0xa43: 0x2066, 0xa44: 0x206c, 0xa45: 0x2072, + 0xa46: 0x2078, 0xa47: 0x207e, 0xa48: 0x2084, 0xa49: 0x208a, 0xa4a: 0x2090, 0xa4b: 0x2096, + 0xa4c: 0x209c, 0xa4d: 0x20a2, 0xa4e: 0x2726, 0xa4f: 0x272f, 0xa50: 0x2738, 0xa51: 0x2741, + 0xa52: 0x274a, 0xa53: 0x2753, 0xa54: 0x275c, 0xa55: 0x2765, 0xa56: 0x276e, 0xa57: 0x2780, + 0xa58: 0x2789, 0xa59: 0x2792, 0xa5a: 0x279b, 0xa5b: 0x27a4, 0xa5c: 0x2777, 0xa5d: 0x2bac, + 0xa5e: 0x2aed, 0xa60: 0x20a8, 0xa61: 0x20c0, 0xa62: 0x20b4, 0xa63: 0x2108, + 0xa64: 0x20c6, 0xa65: 0x20e4, 0xa66: 0x20ae, 0xa67: 0x20de, 0xa68: 0x20ba, 0xa69: 0x20f0, + 0xa6a: 0x2120, 0xa6b: 0x213e, 0xa6c: 0x2138, 0xa6d: 0x212c, 0xa6e: 0x217a, 0xa6f: 0x210e, + 0xa70: 0x211a, 0xa71: 0x2132, 0xa72: 0x2126, 0xa73: 0x2150, 0xa74: 0x20fc, 0xa75: 0x2144, + 0xa76: 0x216e, 0xa77: 0x2156, 0xa78: 0x20ea, 0xa79: 0x20cc, 0xa7a: 0x2102, 0xa7b: 0x2114, + 0xa7c: 0x214a, 0xa7d: 0x20d2, 0xa7e: 0x2174, 0xa7f: 0x20f6, + // Block 0x2a, offset 0xa80 + 0xa80: 0x215c, 0xa81: 0x20d8, 0xa82: 0x2162, 0xa83: 0x2168, 0xa84: 0x092f, 0xa85: 0x0b03, + 0xa86: 0x0ca7, 0xa87: 0x10c7, + 0xa90: 0x1bc4, 0xa91: 0x18a9, + 0xa92: 0x18ac, 0xa93: 0x18af, 0xa94: 0x18b2, 0xa95: 0x18b5, 0xa96: 0x18b8, 0xa97: 0x18bb, + 0xa98: 0x18be, 0xa99: 0x18c1, 0xa9a: 0x18ca, 0xa9b: 0x18cd, 0xa9c: 0x18d0, 0xa9d: 0x18d3, + 0xa9e: 0x18d6, 0xa9f: 0x18d9, 0xaa0: 0x0313, 0xaa1: 0x031b, 0xaa2: 0x031f, 0xaa3: 0x0327, + 0xaa4: 0x032b, 0xaa5: 0x032f, 0xaa6: 0x0337, 0xaa7: 0x033f, 0xaa8: 0x0343, 0xaa9: 0x034b, + 0xaaa: 0x034f, 0xaab: 0x0353, 0xaac: 0x0357, 0xaad: 0x035b, 0xaae: 0x2e18, 0xaaf: 0x2e20, + 0xab0: 0x2e28, 0xab1: 0x2e30, 0xab2: 0x2e38, 0xab3: 0x2e40, 0xab4: 0x2e48, 0xab5: 0x2e50, + 0xab6: 0x2e60, 0xab7: 0x2e68, 0xab8: 0x2e70, 0xab9: 0x2e78, 0xaba: 0x2e80, 0xabb: 0x2e88, + 0xabc: 0x2ed3, 0xabd: 0x2e9b, 0xabe: 0x2e58, + // Block 0x2b, offset 0xac0 + 0xac0: 0x06bf, 0xac1: 0x071b, 0xac2: 0x06cb, 0xac3: 0x097b, 0xac4: 0x071f, 0xac5: 0x07af, + 0xac6: 0x06c7, 0xac7: 0x07ab, 0xac8: 0x070b, 0xac9: 0x0887, 0xaca: 0x0d07, 0xacb: 0x0e8f, + 0xacc: 0x0dd7, 0xacd: 0x0d1b, 0xace: 0x145f, 0xacf: 0x098b, 0xad0: 0x0ccf, 0xad1: 0x0d4b, + 0xad2: 0x0d0b, 0xad3: 0x104b, 0xad4: 0x08fb, 0xad5: 0x0f03, 0xad6: 0x1387, 0xad7: 0x105f, + 0xad8: 0x0843, 0xad9: 0x108f, 0xada: 0x0f9b, 0xadb: 0x0a17, 0xadc: 0x140f, 0xadd: 0x077f, + 0xade: 0x08ab, 0xadf: 0x0df7, 0xae0: 0x1527, 0xae1: 0x0743, 0xae2: 0x07d3, 0xae3: 0x0d9b, + 0xae4: 0x06cf, 0xae5: 0x06e7, 0xae6: 0x06d3, 0xae7: 0x0adb, 0xae8: 0x08ef, 0xae9: 0x087f, + 0xaea: 0x0a57, 0xaeb: 0x0a4b, 0xaec: 0x0feb, 0xaed: 0x073f, 0xaee: 0x139b, 0xaef: 0x089b, + 0xaf0: 0x09f3, 0xaf1: 0x18dc, 0xaf2: 0x18df, 0xaf3: 0x18e2, 0xaf4: 0x18e5, 0xaf5: 0x18ee, + 0xaf6: 0x18f1, 0xaf7: 0x18f4, 0xaf8: 0x18f7, 0xaf9: 0x18fa, 0xafa: 0x18fd, 0xafb: 0x1900, + 0xafc: 0x1903, 0xafd: 0x1906, 0xafe: 0x1909, 0xaff: 0x1912, + // Block 0x2c, offset 0xb00 + 0xb00: 0x1cc6, 0xb01: 0x1cd5, 0xb02: 0x1ce4, 0xb03: 0x1cf3, 0xb04: 0x1d02, 0xb05: 0x1d11, + 0xb06: 0x1d20, 0xb07: 0x1d2f, 0xb08: 0x1d3e, 0xb09: 0x218c, 0xb0a: 0x219e, 0xb0b: 0x21b0, + 0xb0c: 0x1954, 0xb0d: 0x1c04, 0xb0e: 0x19d2, 0xb0f: 0x1ba8, 0xb10: 0x04cb, 0xb11: 0x04d3, + 0xb12: 0x04db, 0xb13: 0x04e3, 0xb14: 0x04eb, 0xb15: 0x04ef, 0xb16: 0x04f3, 0xb17: 0x04f7, + 0xb18: 0x04fb, 0xb19: 0x04ff, 0xb1a: 0x0503, 0xb1b: 0x0507, 0xb1c: 0x050b, 0xb1d: 0x050f, + 0xb1e: 0x0513, 0xb1f: 0x0517, 0xb20: 0x051b, 0xb21: 0x0523, 0xb22: 0x0527, 0xb23: 0x052b, + 0xb24: 0x052f, 0xb25: 0x0533, 0xb26: 0x0537, 0xb27: 0x053b, 0xb28: 0x053f, 0xb29: 0x0543, + 0xb2a: 0x0547, 0xb2b: 0x054b, 0xb2c: 0x054f, 0xb2d: 0x0553, 0xb2e: 0x0557, 0xb2f: 0x055b, + 0xb30: 0x055f, 0xb31: 0x0563, 0xb32: 0x0567, 0xb33: 0x056f, 0xb34: 0x0577, 0xb35: 0x057f, + 0xb36: 0x0583, 0xb37: 0x0587, 0xb38: 0x058b, 0xb39: 0x058f, 0xb3a: 0x0593, 0xb3b: 0x0597, + 0xb3c: 0x059b, 0xb3d: 0x059f, 0xb3e: 0x05a3, + // Block 0x2d, offset 0xb40 + 0xb40: 0x2b0c, 0xb41: 0x29a8, 0xb42: 0x2b1c, 0xb43: 0x2880, 0xb44: 0x2ee4, 0xb45: 0x288a, + 0xb46: 0x2894, 0xb47: 0x2f28, 0xb48: 0x29b5, 0xb49: 0x289e, 0xb4a: 0x28a8, 0xb4b: 0x28b2, + 0xb4c: 0x29dc, 0xb4d: 0x29e9, 0xb4e: 0x29c2, 0xb4f: 0x29cf, 0xb50: 0x2ea9, 0xb51: 0x29f6, + 0xb52: 0x2a03, 0xb53: 0x2bbe, 0xb54: 0x26bb, 0xb55: 0x2bd1, 0xb56: 0x2be4, 0xb57: 0x2b2c, + 0xb58: 0x2a10, 0xb59: 0x2bf7, 0xb5a: 0x2c0a, 0xb5b: 0x2a1d, 0xb5c: 0x28bc, 0xb5d: 0x28c6, + 0xb5e: 0x2eb7, 0xb5f: 0x2a2a, 0xb60: 0x2b3c, 0xb61: 0x2ef5, 0xb62: 0x28d0, 0xb63: 0x28da, + 0xb64: 0x2a37, 0xb65: 0x28e4, 0xb66: 0x28ee, 0xb67: 0x26d0, 0xb68: 0x26d7, 0xb69: 0x28f8, + 0xb6a: 0x2902, 0xb6b: 0x2c1d, 0xb6c: 0x2a44, 0xb6d: 0x2b4c, 0xb6e: 0x2c30, 0xb6f: 0x2a51, + 0xb70: 0x2916, 0xb71: 0x290c, 0xb72: 0x2f3c, 0xb73: 0x2a5e, 0xb74: 0x2c43, 0xb75: 0x2920, + 0xb76: 0x2b5c, 0xb77: 0x292a, 0xb78: 0x2a78, 0xb79: 0x2934, 0xb7a: 0x2a85, 0xb7b: 0x2f06, + 0xb7c: 0x2a6b, 0xb7d: 0x2b6c, 0xb7e: 0x2a92, 0xb7f: 0x26de, + // Block 0x2e, offset 0xb80 + 0xb80: 0x2f17, 0xb81: 0x293e, 0xb82: 0x2948, 0xb83: 0x2a9f, 0xb84: 0x2952, 0xb85: 0x295c, + 0xb86: 0x2966, 0xb87: 0x2b7c, 0xb88: 0x2aac, 0xb89: 0x26e5, 0xb8a: 0x2c56, 0xb8b: 0x2e90, + 0xb8c: 0x2b8c, 0xb8d: 0x2ab9, 0xb8e: 0x2ec5, 0xb8f: 0x2970, 0xb90: 0x297a, 0xb91: 0x2ac6, + 0xb92: 0x26ec, 0xb93: 0x2ad3, 0xb94: 0x2b9c, 0xb95: 0x26f3, 0xb96: 0x2c69, 0xb97: 0x2984, + 0xb98: 0x1cb7, 0xb99: 0x1ccb, 0xb9a: 0x1cda, 0xb9b: 0x1ce9, 0xb9c: 0x1cf8, 0xb9d: 0x1d07, + 0xb9e: 0x1d16, 0xb9f: 0x1d25, 0xba0: 0x1d34, 0xba1: 0x1d43, 0xba2: 0x2192, 0xba3: 0x21a4, + 0xba4: 0x21b6, 0xba5: 0x21c2, 0xba6: 0x21ce, 0xba7: 0x21da, 0xba8: 0x21e6, 0xba9: 0x21f2, + 0xbaa: 0x21fe, 0xbab: 0x220a, 0xbac: 0x2246, 0xbad: 0x2252, 0xbae: 0x225e, 0xbaf: 0x226a, + 0xbb0: 0x2276, 0xbb1: 0x1c14, 0xbb2: 0x19c6, 0xbb3: 0x1936, 0xbb4: 0x1be4, 0xbb5: 0x1a47, + 0xbb6: 0x1a56, 0xbb7: 0x19cc, 0xbb8: 0x1bfc, 0xbb9: 0x1c00, 0xbba: 0x1960, 0xbbb: 0x2701, + 0xbbc: 0x270f, 0xbbd: 0x26fa, 0xbbe: 0x2708, 0xbbf: 0x2ae0, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x1a4a, 0xbc1: 0x1a32, 0xbc2: 0x1c60, 0xbc3: 0x1a1a, 0xbc4: 0x19f3, 0xbc5: 0x1969, + 0xbc6: 0x1978, 0xbc7: 0x1948, 0xbc8: 0x1bf0, 0xbc9: 0x1d52, 0xbca: 0x1a4d, 0xbcb: 0x1a35, + 0xbcc: 0x1c64, 0xbcd: 0x1c70, 0xbce: 0x1a26, 0xbcf: 0x19fc, 0xbd0: 0x1957, 0xbd1: 0x1c1c, + 0xbd2: 0x1bb0, 0xbd3: 0x1b9c, 0xbd4: 0x1bcc, 0xbd5: 0x1c74, 0xbd6: 0x1a29, 0xbd7: 0x19c9, + 0xbd8: 0x19ff, 0xbd9: 0x19de, 0xbda: 0x1a41, 0xbdb: 0x1c78, 0xbdc: 0x1a2c, 0xbdd: 0x19c0, + 0xbde: 0x1a02, 0xbdf: 0x1c3c, 0xbe0: 0x1bf4, 0xbe1: 0x1a14, 0xbe2: 0x1c24, 0xbe3: 0x1c40, + 0xbe4: 0x1bf8, 0xbe5: 0x1a17, 0xbe6: 0x1c28, 0xbe7: 0x22e8, 0xbe8: 0x22fc, 0xbe9: 0x1996, + 0xbea: 0x1c20, 0xbeb: 0x1bb4, 0xbec: 0x1ba0, 0xbed: 0x1c48, 0xbee: 0x2716, 0xbef: 0x27ad, + 0xbf0: 0x1a59, 0xbf1: 0x1a44, 0xbf2: 0x1c7c, 0xbf3: 0x1a2f, 0xbf4: 0x1a50, 0xbf5: 0x1a38, + 0xbf6: 0x1c68, 0xbf7: 0x1a1d, 0xbf8: 0x19f6, 0xbf9: 0x1981, 0xbfa: 0x1a53, 0xbfb: 0x1a3b, + 0xbfc: 0x1c6c, 0xbfd: 0x1a20, 0xbfe: 0x19f9, 0xbff: 0x1984, + // Block 0x30, offset 0xc00 + 0xc00: 0x1c2c, 0xc01: 0x1bb8, 0xc02: 0x1d4d, 0xc03: 0x1939, 0xc04: 0x19ba, 0xc05: 0x19bd, + 0xc06: 0x22f5, 0xc07: 0x1b94, 0xc08: 0x19c3, 0xc09: 0x194b, 0xc0a: 0x19e1, 0xc0b: 0x194e, + 0xc0c: 0x19ea, 0xc0d: 0x196c, 0xc0e: 0x196f, 0xc0f: 0x1a05, 0xc10: 0x1a0b, 0xc11: 0x1a0e, + 0xc12: 0x1c30, 0xc13: 0x1a11, 0xc14: 0x1a23, 0xc15: 0x1c38, 0xc16: 0x1c44, 0xc17: 0x1990, + 0xc18: 0x1d57, 0xc19: 0x1bbc, 0xc1a: 0x1993, 0xc1b: 0x1a5c, 0xc1c: 0x19a5, 0xc1d: 0x19b4, + 0xc1e: 0x22e2, 0xc1f: 0x22dc, 0xc20: 0x1cc1, 0xc21: 0x1cd0, 0xc22: 0x1cdf, 0xc23: 0x1cee, + 0xc24: 0x1cfd, 0xc25: 0x1d0c, 0xc26: 0x1d1b, 0xc27: 0x1d2a, 0xc28: 0x1d39, 0xc29: 0x2186, + 0xc2a: 0x2198, 0xc2b: 0x21aa, 0xc2c: 0x21bc, 0xc2d: 0x21c8, 0xc2e: 0x21d4, 0xc2f: 0x21e0, + 0xc30: 0x21ec, 0xc31: 0x21f8, 0xc32: 0x2204, 0xc33: 0x2240, 0xc34: 0x224c, 0xc35: 0x2258, + 0xc36: 0x2264, 0xc37: 0x2270, 0xc38: 0x227c, 0xc39: 0x2282, 0xc3a: 0x2288, 0xc3b: 0x228e, + 0xc3c: 0x2294, 0xc3d: 0x22a6, 0xc3e: 0x22ac, 0xc3f: 0x1c10, + // Block 0x31, offset 0xc40 + 0xc40: 0x1377, 0xc41: 0x0cfb, 0xc42: 0x13d3, 0xc43: 0x139f, 0xc44: 0x0e57, 0xc45: 0x06eb, + 0xc46: 0x08df, 0xc47: 0x162b, 0xc48: 0x162b, 0xc49: 0x0a0b, 0xc4a: 0x145f, 0xc4b: 0x0943, + 0xc4c: 0x0a07, 0xc4d: 0x0bef, 0xc4e: 0x0fcf, 0xc4f: 0x115f, 0xc50: 0x1297, 0xc51: 0x12d3, + 0xc52: 0x1307, 0xc53: 0x141b, 0xc54: 0x0d73, 0xc55: 0x0dff, 0xc56: 0x0eab, 0xc57: 0x0f43, + 0xc58: 0x125f, 0xc59: 0x1447, 0xc5a: 0x1573, 0xc5b: 0x070f, 0xc5c: 0x08b3, 0xc5d: 0x0d87, + 0xc5e: 0x0ecf, 0xc5f: 0x1293, 0xc60: 0x15c3, 0xc61: 0x0ab3, 0xc62: 0x0e77, 0xc63: 0x1283, + 0xc64: 0x1317, 0xc65: 0x0c23, 0xc66: 0x11bb, 0xc67: 0x12df, 0xc68: 0x0b1f, 0xc69: 0x0d0f, + 0xc6a: 0x0e17, 0xc6b: 0x0f1b, 0xc6c: 0x1427, 0xc6d: 0x074f, 0xc6e: 0x07e7, 0xc6f: 0x0853, + 0xc70: 0x0c8b, 0xc71: 0x0d7f, 0xc72: 0x0ecb, 0xc73: 0x0fef, 0xc74: 0x1177, 0xc75: 0x128b, + 0xc76: 0x12a3, 0xc77: 0x13c7, 0xc78: 0x14ef, 0xc79: 0x15a3, 0xc7a: 0x15bf, 0xc7b: 0x102b, + 0xc7c: 0x106b, 0xc7d: 0x1123, 0xc7e: 0x1243, 0xc7f: 0x147b, + // Block 0x32, offset 0xc80 + 0xc80: 0x15cb, 0xc81: 0x134b, 0xc82: 0x09c7, 0xc83: 0x0b3b, 0xc84: 0x10db, 0xc85: 0x119b, + 0xc86: 0x0eff, 0xc87: 0x1033, 0xc88: 0x1397, 0xc89: 0x14e7, 0xc8a: 0x09c3, 0xc8b: 0x0a8f, + 0xc8c: 0x0d77, 0xc8d: 0x0e2b, 0xc8e: 0x0e5f, 0xc8f: 0x1113, 0xc90: 0x113b, 0xc91: 0x14a7, + 0xc92: 0x084f, 0xc93: 0x11a7, 0xc94: 0x07f3, 0xc95: 0x07ef, 0xc96: 0x1097, 0xc97: 0x1127, + 0xc98: 0x125b, 0xc99: 0x14af, 0xc9a: 0x1367, 0xc9b: 0x0c27, 0xc9c: 0x0d73, 0xc9d: 0x1357, + 0xc9e: 0x06f7, 0xc9f: 0x0a63, 0xca0: 0x0b93, 0xca1: 0x0f2f, 0xca2: 0x0faf, 0xca3: 0x0873, + 0xca4: 0x103b, 0xca5: 0x075f, 0xca6: 0x0b77, 0xca7: 0x06d7, 0xca8: 0x0deb, 0xca9: 0x0ca3, + 0xcaa: 0x110f, 0xcab: 0x08c7, 0xcac: 0x09b3, 0xcad: 0x0ffb, 0xcae: 0x1263, 0xcaf: 0x133b, + 0xcb0: 0x0db7, 0xcb1: 0x13f7, 0xcb2: 0x0de3, 0xcb3: 0x0c37, 0xcb4: 0x121b, 0xcb5: 0x0c57, + 0xcb6: 0x0fab, 0xcb7: 0x072b, 0xcb8: 0x07a7, 0xcb9: 0x07eb, 0xcba: 0x0d53, 0xcbb: 0x10fb, + 0xcbc: 0x11f3, 0xcbd: 0x1347, 0xcbe: 0x145b, 0xcbf: 0x085b, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x090f, 0xcc1: 0x0a17, 0xcc2: 0x0b2f, 0xcc3: 0x0cbf, 0xcc4: 0x0e7b, 0xcc5: 0x103f, + 0xcc6: 0x1497, 0xcc7: 0x157b, 0xcc8: 0x15cf, 0xcc9: 0x15e7, 0xcca: 0x0837, 0xccb: 0x0cf3, + 0xccc: 0x0da3, 0xccd: 0x13eb, 0xcce: 0x0afb, 0xccf: 0x0bd7, 0xcd0: 0x0bf3, 0xcd1: 0x0c83, + 0xcd2: 0x0e6b, 0xcd3: 0x0eb7, 0xcd4: 0x0f67, 0xcd5: 0x108b, 0xcd6: 0x112f, 0xcd7: 0x1193, + 0xcd8: 0x13db, 0xcd9: 0x126b, 0xcda: 0x1403, 0xcdb: 0x147f, 0xcdc: 0x080f, 0xcdd: 0x083b, + 0xcde: 0x0923, 0xcdf: 0x0ea7, 0xce0: 0x12f3, 0xce1: 0x133b, 0xce2: 0x0b1b, 0xce3: 0x0b8b, + 0xce4: 0x0c4f, 0xce5: 0x0daf, 0xce6: 0x10d7, 0xce7: 0x0f23, 0xce8: 0x073b, 0xce9: 0x097f, + 0xcea: 0x0a63, 0xceb: 0x0ac7, 0xcec: 0x0b97, 0xced: 0x0f3f, 0xcee: 0x0f5b, 0xcef: 0x116b, + 0xcf0: 0x118b, 0xcf1: 0x1463, 0xcf2: 0x14e3, 0xcf3: 0x14f3, 0xcf4: 0x152f, 0xcf5: 0x0753, + 0xcf6: 0x107f, 0xcf7: 0x144f, 0xcf8: 0x14cb, 0xcf9: 0x0baf, 0xcfa: 0x0717, 0xcfb: 0x0777, + 0xcfc: 0x0a67, 0xcfd: 0x0a87, 0xcfe: 0x0caf, 0xcff: 0x0d73, + // Block 0x34, offset 0xd00 + 0xd00: 0x0ec3, 0xd01: 0x0fcb, 0xd02: 0x1277, 0xd03: 0x1417, 0xd04: 0x1623, 0xd05: 0x0ce3, + 0xd06: 0x14a3, 0xd07: 0x0833, 0xd08: 0x0d2f, 0xd09: 0x0d3b, 0xd0a: 0x0e0f, 0xd0b: 0x0e47, + 0xd0c: 0x0f4b, 0xd0d: 0x0fa7, 0xd0e: 0x1027, 0xd0f: 0x110b, 0xd10: 0x153b, 0xd11: 0x07af, + 0xd12: 0x0c03, 0xd13: 0x14b3, 0xd14: 0x0767, 0xd15: 0x0aab, 0xd16: 0x0e2f, 0xd17: 0x13df, + 0xd18: 0x0b67, 0xd19: 0x0bb7, 0xd1a: 0x0d43, 0xd1b: 0x0f2f, 0xd1c: 0x14bb, 0xd1d: 0x0817, + 0xd1e: 0x08ff, 0xd1f: 0x0a97, 0xd20: 0x0cd3, 0xd21: 0x0d1f, 0xd22: 0x0d5f, 0xd23: 0x0df3, + 0xd24: 0x0f47, 0xd25: 0x0fbb, 0xd26: 0x1157, 0xd27: 0x12f7, 0xd28: 0x1303, 0xd29: 0x1457, + 0xd2a: 0x14d7, 0xd2b: 0x0883, 0xd2c: 0x0e4b, 0xd2d: 0x0903, 0xd2e: 0x0ec7, 0xd2f: 0x0f6b, + 0xd30: 0x1287, 0xd31: 0x14bf, 0xd32: 0x15ab, 0xd33: 0x15d3, 0xd34: 0x0d37, 0xd35: 0x0e27, + 0xd36: 0x11c3, 0xd37: 0x10b7, 0xd38: 0x10c3, 0xd39: 0x10e7, 0xd3a: 0x0f17, 0xd3b: 0x0e9f, + 0xd3c: 0x1363, 0xd3d: 0x0733, 0xd3e: 0x122b, 0xd3f: 0x081b, + // Block 0x35, offset 0xd40 + 0xd40: 0x080b, 0xd41: 0x0b0b, 0xd42: 0x0c2b, 0xd43: 0x10f3, 0xd44: 0x0a53, 0xd45: 0x0e03, + 0xd46: 0x0cef, 0xd47: 0x13e7, 0xd48: 0x12e7, 0xd49: 0x14ab, 0xd4a: 0x1323, 0xd4b: 0x0b27, + 0xd4c: 0x0787, 0xd4d: 0x095b, 0xd50: 0x09af, + 0xd52: 0x0cdf, 0xd55: 0x07f7, 0xd56: 0x0f1f, 0xd57: 0x0fe3, + 0xd58: 0x1047, 0xd59: 0x1063, 0xd5a: 0x1067, 0xd5b: 0x107b, 0xd5c: 0x14fb, 0xd5d: 0x10eb, + 0xd5e: 0x116f, 0xd60: 0x128f, 0xd62: 0x1353, + 0xd65: 0x1407, 0xd66: 0x1433, + 0xd6a: 0x154f, 0xd6b: 0x1553, 0xd6c: 0x1557, 0xd6d: 0x15bb, 0xd6e: 0x142b, 0xd6f: 0x14c7, + 0xd70: 0x0757, 0xd71: 0x077b, 0xd72: 0x078f, 0xd73: 0x084b, 0xd74: 0x0857, 0xd75: 0x0897, + 0xd76: 0x094b, 0xd77: 0x0967, 0xd78: 0x096f, 0xd79: 0x09ab, 0xd7a: 0x09b7, 0xd7b: 0x0a93, + 0xd7c: 0x0a9b, 0xd7d: 0x0ba3, 0xd7e: 0x0bcb, 0xd7f: 0x0bd3, + // Block 0x36, offset 0xd80 + 0xd80: 0x0beb, 0xd81: 0x0c97, 0xd82: 0x0cc7, 0xd83: 0x0ce7, 0xd84: 0x0d57, 0xd85: 0x0e1b, + 0xd86: 0x0e37, 0xd87: 0x0e67, 0xd88: 0x0ebb, 0xd89: 0x0edb, 0xd8a: 0x0f4f, 0xd8b: 0x102f, + 0xd8c: 0x104b, 0xd8d: 0x1053, 0xd8e: 0x104f, 0xd8f: 0x1057, 0xd90: 0x105b, 0xd91: 0x105f, + 0xd92: 0x1073, 0xd93: 0x1077, 0xd94: 0x109b, 0xd95: 0x10af, 0xd96: 0x10cb, 0xd97: 0x112f, + 0xd98: 0x1137, 0xd99: 0x113f, 0xd9a: 0x1153, 0xd9b: 0x117b, 0xd9c: 0x11cb, 0xd9d: 0x11ff, + 0xd9e: 0x11ff, 0xd9f: 0x1267, 0xda0: 0x130f, 0xda1: 0x1327, 0xda2: 0x135b, 0xda3: 0x135f, + 0xda4: 0x13a3, 0xda5: 0x13a7, 0xda6: 0x13ff, 0xda7: 0x1407, 0xda8: 0x14db, 0xda9: 0x151f, + 0xdaa: 0x1537, 0xdab: 0x0b9b, 0xdac: 0x171e, 0xdad: 0x11e3, + 0xdb0: 0x06df, 0xdb1: 0x07e3, 0xdb2: 0x07a3, 0xdb3: 0x074b, 0xdb4: 0x078b, 0xdb5: 0x07b7, + 0xdb6: 0x0847, 0xdb7: 0x0863, 0xdb8: 0x094b, 0xdb9: 0x0937, 0xdba: 0x0947, 0xdbb: 0x0963, + 0xdbc: 0x09af, 0xdbd: 0x09bf, 0xdbe: 0x0a03, 0xdbf: 0x0a0f, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0a2b, 0xdc1: 0x0a3b, 0xdc2: 0x0b23, 0xdc3: 0x0b2b, 0xdc4: 0x0b5b, 0xdc5: 0x0b7b, + 0xdc6: 0x0bab, 0xdc7: 0x0bc3, 0xdc8: 0x0bb3, 0xdc9: 0x0bd3, 0xdca: 0x0bc7, 0xdcb: 0x0beb, + 0xdcc: 0x0c07, 0xdcd: 0x0c5f, 0xdce: 0x0c6b, 0xdcf: 0x0c73, 0xdd0: 0x0c9b, 0xdd1: 0x0cdf, + 0xdd2: 0x0d0f, 0xdd3: 0x0d13, 0xdd4: 0x0d27, 0xdd5: 0x0da7, 0xdd6: 0x0db7, 0xdd7: 0x0e0f, + 0xdd8: 0x0e5b, 0xdd9: 0x0e53, 0xdda: 0x0e67, 0xddb: 0x0e83, 0xddc: 0x0ebb, 0xddd: 0x1013, + 0xdde: 0x0edf, 0xddf: 0x0f13, 0xde0: 0x0f1f, 0xde1: 0x0f5f, 0xde2: 0x0f7b, 0xde3: 0x0f9f, + 0xde4: 0x0fc3, 0xde5: 0x0fc7, 0xde6: 0x0fe3, 0xde7: 0x0fe7, 0xde8: 0x0ff7, 0xde9: 0x100b, + 0xdea: 0x1007, 0xdeb: 0x1037, 0xdec: 0x10b3, 0xded: 0x10cb, 0xdee: 0x10e3, 0xdef: 0x111b, + 0xdf0: 0x112f, 0xdf1: 0x114b, 0xdf2: 0x117b, 0xdf3: 0x122f, 0xdf4: 0x1257, 0xdf5: 0x12cb, + 0xdf6: 0x1313, 0xdf7: 0x131f, 0xdf8: 0x1327, 0xdf9: 0x133f, 0xdfa: 0x1353, 0xdfb: 0x1343, + 0xdfc: 0x135b, 0xdfd: 0x1357, 0xdfe: 0x134f, 0xdff: 0x135f, + // Block 0x38, offset 0xe00 + 0xe00: 0x136b, 0xe01: 0x13a7, 0xe02: 0x13e3, 0xe03: 0x1413, 0xe04: 0x144b, 0xe05: 0x146b, + 0xe06: 0x14b7, 0xe07: 0x14db, 0xe08: 0x14fb, 0xe09: 0x150f, 0xe0a: 0x151f, 0xe0b: 0x152b, + 0xe0c: 0x1537, 0xe0d: 0x158b, 0xe0e: 0x162b, 0xe0f: 0x16b5, 0xe10: 0x16b0, 0xe11: 0x16e2, + 0xe12: 0x0607, 0xe13: 0x062f, 0xe14: 0x0633, 0xe15: 0x1764, 0xe16: 0x1791, 0xe17: 0x1809, + 0xe18: 0x1617, 0xe19: 0x1627, + // Block 0x39, offset 0xe40 + 0xe40: 0x19d5, 0xe41: 0x19d8, 0xe42: 0x19db, 0xe43: 0x1c08, 0xe44: 0x1c0c, 0xe45: 0x1a5f, + 0xe46: 0x1a5f, + 0xe53: 0x1d75, 0xe54: 0x1d66, 0xe55: 0x1d6b, 0xe56: 0x1d7a, 0xe57: 0x1d70, + 0xe5d: 0x4390, + 0xe5e: 0x8115, 0xe5f: 0x4402, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221, + 0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017, + 0xe6a: 0x43f0, 0xe6b: 0x43f6, 0xe6c: 0x44f4, 0xe6d: 0x44fc, 0xe6e: 0x4348, 0xe6f: 0x434e, + 0xe70: 0x4354, 0xe71: 0x435a, 0xe72: 0x4366, 0xe73: 0x436c, 0xe74: 0x4372, 0xe75: 0x437e, + 0xe76: 0x4384, 0xe78: 0x438a, 0xe79: 0x4396, 0xe7a: 0x439c, 0xe7b: 0x43a2, + 0xe7c: 0x43ae, 0xe7e: 0x43b4, + // Block 0x3a, offset 0xe80 + 0xe80: 0x43ba, 0xe81: 0x43c0, 0xe83: 0x43c6, 0xe84: 0x43cc, + 0xe86: 0x43d8, 0xe87: 0x43de, 0xe88: 0x43e4, 0xe89: 0x43ea, 0xe8a: 0x43fc, 0xe8b: 0x4378, + 0xe8c: 0x4360, 0xe8d: 0x43a8, 0xe8e: 0x43d2, 0xe8f: 0x1d7f, 0xe90: 0x0299, 0xe91: 0x0299, + 0xe92: 0x02a2, 0xe93: 0x02a2, 0xe94: 0x02a2, 0xe95: 0x02a2, 0xe96: 0x02a5, 0xe97: 0x02a5, + 0xe98: 0x02a5, 0xe99: 0x02a5, 0xe9a: 0x02ab, 0xe9b: 0x02ab, 0xe9c: 0x02ab, 0xe9d: 0x02ab, + 0xe9e: 0x029f, 0xe9f: 0x029f, 0xea0: 0x029f, 0xea1: 0x029f, 0xea2: 0x02a8, 0xea3: 0x02a8, + 0xea4: 0x02a8, 0xea5: 0x02a8, 0xea6: 0x029c, 0xea7: 0x029c, 0xea8: 0x029c, 0xea9: 0x029c, + 0xeaa: 0x02cf, 0xeab: 0x02cf, 0xeac: 0x02cf, 0xead: 0x02cf, 0xeae: 0x02d2, 0xeaf: 0x02d2, + 0xeb0: 0x02d2, 0xeb1: 0x02d2, 0xeb2: 0x02b1, 0xeb3: 0x02b1, 0xeb4: 0x02b1, 0xeb5: 0x02b1, + 0xeb6: 0x02ae, 0xeb7: 0x02ae, 0xeb8: 0x02ae, 0xeb9: 0x02ae, 0xeba: 0x02b4, 0xebb: 0x02b4, + 0xebc: 0x02b4, 0xebd: 0x02b4, 0xebe: 0x02b7, 0xebf: 0x02b7, + // Block 0x3b, offset 0xec0 + 0xec0: 0x02b7, 0xec1: 0x02b7, 0xec2: 0x02c0, 0xec3: 0x02c0, 0xec4: 0x02bd, 0xec5: 0x02bd, + 0xec6: 0x02c3, 0xec7: 0x02c3, 0xec8: 0x02ba, 0xec9: 0x02ba, 0xeca: 0x02c9, 0xecb: 0x02c9, + 0xecc: 0x02c6, 0xecd: 0x02c6, 0xece: 0x02d5, 0xecf: 0x02d5, 0xed0: 0x02d5, 0xed1: 0x02d5, + 0xed2: 0x02db, 0xed3: 0x02db, 0xed4: 0x02db, 0xed5: 0x02db, 0xed6: 0x02e1, 0xed7: 0x02e1, + 0xed8: 0x02e1, 0xed9: 0x02e1, 0xeda: 0x02de, 0xedb: 0x02de, 0xedc: 0x02de, 0xedd: 0x02de, + 0xede: 0x02e4, 0xedf: 0x02e4, 0xee0: 0x02e7, 0xee1: 0x02e7, 0xee2: 0x02e7, 0xee3: 0x02e7, + 0xee4: 0x446e, 0xee5: 0x446e, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed, + 0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308, + 0xef0: 0x4468, 0xef1: 0x4468, + // Block 0x3c, offset 0xf00 + 0xf13: 0x02d8, 0xf14: 0x02d8, 0xf15: 0x02d8, 0xf16: 0x02d8, 0xf17: 0x02f6, + 0xf18: 0x02f6, 0xf19: 0x02f3, 0xf1a: 0x02f3, 0xf1b: 0x02f9, 0xf1c: 0x02f9, 0xf1d: 0x204f, + 0xf1e: 0x02ff, 0xf1f: 0x02ff, 0xf20: 0x02f0, 0xf21: 0x02f0, 0xf22: 0x02fc, 0xf23: 0x02fc, + 0xf24: 0x0305, 0xf25: 0x0305, 0xf26: 0x0305, 0xf27: 0x0305, 0xf28: 0x028d, 0xf29: 0x028d, + 0xf2a: 0x25aa, 0xf2b: 0x25aa, 0xf2c: 0x261a, 0xf2d: 0x261a, 0xf2e: 0x25e9, 0xf2f: 0x25e9, + 0xf30: 0x2605, 0xf31: 0x2605, 0xf32: 0x25fe, 0xf33: 0x25fe, 0xf34: 0x260c, 0xf35: 0x260c, + 0xf36: 0x2613, 0xf37: 0x2613, 0xf38: 0x2613, 0xf39: 0x25f0, 0xf3a: 0x25f0, 0xf3b: 0x25f0, + 0xf3c: 0x0302, 0xf3d: 0x0302, 0xf3e: 0x0302, 0xf3f: 0x0302, + // Block 0x3d, offset 0xf40 + 0xf40: 0x25b1, 0xf41: 0x25b8, 0xf42: 0x25d4, 0xf43: 0x25f0, 0xf44: 0x25f7, 0xf45: 0x1d89, + 0xf46: 0x1d8e, 0xf47: 0x1d93, 0xf48: 0x1da2, 0xf49: 0x1db1, 0xf4a: 0x1db6, 0xf4b: 0x1dbb, + 0xf4c: 0x1dc0, 0xf4d: 0x1dc5, 0xf4e: 0x1dd4, 0xf4f: 0x1de3, 0xf50: 0x1de8, 0xf51: 0x1ded, + 0xf52: 0x1dfc, 0xf53: 0x1e0b, 0xf54: 0x1e10, 0xf55: 0x1e15, 0xf56: 0x1e1a, 0xf57: 0x1e29, + 0xf58: 0x1e2e, 0xf59: 0x1e3d, 0xf5a: 0x1e42, 0xf5b: 0x1e47, 0xf5c: 0x1e56, 0xf5d: 0x1e5b, + 0xf5e: 0x1e60, 0xf5f: 0x1e6a, 0xf60: 0x1ea6, 0xf61: 0x1eb5, 0xf62: 0x1ec4, 0xf63: 0x1ec9, + 0xf64: 0x1ece, 0xf65: 0x1ed8, 0xf66: 0x1ee7, 0xf67: 0x1eec, 0xf68: 0x1efb, 0xf69: 0x1f00, + 0xf6a: 0x1f05, 0xf6b: 0x1f14, 0xf6c: 0x1f19, 0xf6d: 0x1f28, 0xf6e: 0x1f2d, 0xf6f: 0x1f32, + 0xf70: 0x1f37, 0xf71: 0x1f3c, 0xf72: 0x1f41, 0xf73: 0x1f46, 0xf74: 0x1f4b, 0xf75: 0x1f50, + 0xf76: 0x1f55, 0xf77: 0x1f5a, 0xf78: 0x1f5f, 0xf79: 0x1f64, 0xf7a: 0x1f69, 0xf7b: 0x1f6e, + 0xf7c: 0x1f73, 0xf7d: 0x1f78, 0xf7e: 0x1f7d, 0xf7f: 0x1f87, + // Block 0x3e, offset 0xf80 + 0xf80: 0x1f8c, 0xf81: 0x1f91, 0xf82: 0x1f96, 0xf83: 0x1fa0, 0xf84: 0x1fa5, 0xf85: 0x1faf, + 0xf86: 0x1fb4, 0xf87: 0x1fb9, 0xf88: 0x1fbe, 0xf89: 0x1fc3, 0xf8a: 0x1fc8, 0xf8b: 0x1fcd, + 0xf8c: 0x1fd2, 0xf8d: 0x1fd7, 0xf8e: 0x1fe6, 0xf8f: 0x1ff5, 0xf90: 0x1ffa, 0xf91: 0x1fff, + 0xf92: 0x2004, 0xf93: 0x2009, 0xf94: 0x200e, 0xf95: 0x2018, 0xf96: 0x201d, 0xf97: 0x2022, + 0xf98: 0x2031, 0xf99: 0x2040, 0xf9a: 0x2045, 0xf9b: 0x4420, 0xf9c: 0x4426, 0xf9d: 0x445c, + 0xf9e: 0x44b3, 0xf9f: 0x44ba, 0xfa0: 0x44c1, 0xfa1: 0x44c8, 0xfa2: 0x44cf, 0xfa3: 0x44d6, + 0xfa4: 0x25c6, 0xfa5: 0x25cd, 0xfa6: 0x25d4, 0xfa7: 0x25db, 0xfa8: 0x25f0, 0xfa9: 0x25f7, + 0xfaa: 0x1d98, 0xfab: 0x1d9d, 0xfac: 0x1da2, 0xfad: 0x1da7, 0xfae: 0x1db1, 0xfaf: 0x1db6, + 0xfb0: 0x1dca, 0xfb1: 0x1dcf, 0xfb2: 0x1dd4, 0xfb3: 0x1dd9, 0xfb4: 0x1de3, 0xfb5: 0x1de8, + 0xfb6: 0x1df2, 0xfb7: 0x1df7, 0xfb8: 0x1dfc, 0xfb9: 0x1e01, 0xfba: 0x1e0b, 0xfbb: 0x1e10, + 0xfbc: 0x1f3c, 0xfbd: 0x1f41, 0xfbe: 0x1f50, 0xfbf: 0x1f55, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x1f5a, 0xfc1: 0x1f6e, 0xfc2: 0x1f73, 0xfc3: 0x1f78, 0xfc4: 0x1f7d, 0xfc5: 0x1f96, + 0xfc6: 0x1fa0, 0xfc7: 0x1fa5, 0xfc8: 0x1faa, 0xfc9: 0x1fbe, 0xfca: 0x1fdc, 0xfcb: 0x1fe1, + 0xfcc: 0x1fe6, 0xfcd: 0x1feb, 0xfce: 0x1ff5, 0xfcf: 0x1ffa, 0xfd0: 0x445c, 0xfd1: 0x2027, + 0xfd2: 0x202c, 0xfd3: 0x2031, 0xfd4: 0x2036, 0xfd5: 0x2040, 0xfd6: 0x2045, 0xfd7: 0x25b1, + 0xfd8: 0x25b8, 0xfd9: 0x25bf, 0xfda: 0x25d4, 0xfdb: 0x25e2, 0xfdc: 0x1d89, 0xfdd: 0x1d8e, + 0xfde: 0x1d93, 0xfdf: 0x1da2, 0xfe0: 0x1dac, 0xfe1: 0x1dbb, 0xfe2: 0x1dc0, 0xfe3: 0x1dc5, + 0xfe4: 0x1dd4, 0xfe5: 0x1dde, 0xfe6: 0x1dfc, 0xfe7: 0x1e15, 0xfe8: 0x1e1a, 0xfe9: 0x1e29, + 0xfea: 0x1e2e, 0xfeb: 0x1e3d, 0xfec: 0x1e47, 0xfed: 0x1e56, 0xfee: 0x1e5b, 0xfef: 0x1e60, + 0xff0: 0x1e6a, 0xff1: 0x1ea6, 0xff2: 0x1eab, 0xff3: 0x1eb5, 0xff4: 0x1ec4, 0xff5: 0x1ec9, + 0xff6: 0x1ece, 0xff7: 0x1ed8, 0xff8: 0x1ee7, 0xff9: 0x1efb, 0xffa: 0x1f00, 0xffb: 0x1f05, + 0xffc: 0x1f14, 0xffd: 0x1f19, 0xffe: 0x1f28, 0xfff: 0x1f2d, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f32, 0x1001: 0x1f37, 0x1002: 0x1f46, 0x1003: 0x1f4b, 0x1004: 0x1f5f, 0x1005: 0x1f64, + 0x1006: 0x1f69, 0x1007: 0x1f6e, 0x1008: 0x1f73, 0x1009: 0x1f87, 0x100a: 0x1f8c, 0x100b: 0x1f91, + 0x100c: 0x1f96, 0x100d: 0x1f9b, 0x100e: 0x1faf, 0x100f: 0x1fb4, 0x1010: 0x1fb9, 0x1011: 0x1fbe, + 0x1012: 0x1fcd, 0x1013: 0x1fd2, 0x1014: 0x1fd7, 0x1015: 0x1fe6, 0x1016: 0x1ff0, 0x1017: 0x1fff, + 0x1018: 0x2004, 0x1019: 0x4450, 0x101a: 0x2018, 0x101b: 0x201d, 0x101c: 0x2022, 0x101d: 0x2031, + 0x101e: 0x203b, 0x101f: 0x25d4, 0x1020: 0x25e2, 0x1021: 0x1da2, 0x1022: 0x1dac, 0x1023: 0x1dd4, + 0x1024: 0x1dde, 0x1025: 0x1dfc, 0x1026: 0x1e06, 0x1027: 0x1e6a, 0x1028: 0x1e6f, 0x1029: 0x1e92, + 0x102a: 0x1e97, 0x102b: 0x1f6e, 0x102c: 0x1f73, 0x102d: 0x1f96, 0x102e: 0x1fe6, 0x102f: 0x1ff0, + 0x1030: 0x2031, 0x1031: 0x203b, 0x1032: 0x4504, 0x1033: 0x450c, 0x1034: 0x4514, 0x1035: 0x1ef1, + 0x1036: 0x1ef6, 0x1037: 0x1f0a, 0x1038: 0x1f0f, 0x1039: 0x1f1e, 0x103a: 0x1f23, 0x103b: 0x1e74, + 0x103c: 0x1e79, 0x103d: 0x1e9c, 0x103e: 0x1ea1, 0x103f: 0x1e33, + // Block 0x41, offset 0x1040 + 0x1040: 0x1e38, 0x1041: 0x1e1f, 0x1042: 0x1e24, 0x1043: 0x1e4c, 0x1044: 0x1e51, 0x1045: 0x1eba, + 0x1046: 0x1ebf, 0x1047: 0x1edd, 0x1048: 0x1ee2, 0x1049: 0x1e7e, 0x104a: 0x1e83, 0x104b: 0x1e88, + 0x104c: 0x1e92, 0x104d: 0x1e8d, 0x104e: 0x1e65, 0x104f: 0x1eb0, 0x1050: 0x1ed3, 0x1051: 0x1ef1, + 0x1052: 0x1ef6, 0x1053: 0x1f0a, 0x1054: 0x1f0f, 0x1055: 0x1f1e, 0x1056: 0x1f23, 0x1057: 0x1e74, + 0x1058: 0x1e79, 0x1059: 0x1e9c, 0x105a: 0x1ea1, 0x105b: 0x1e33, 0x105c: 0x1e38, 0x105d: 0x1e1f, + 0x105e: 0x1e24, 0x105f: 0x1e4c, 0x1060: 0x1e51, 0x1061: 0x1eba, 0x1062: 0x1ebf, 0x1063: 0x1edd, + 0x1064: 0x1ee2, 0x1065: 0x1e7e, 0x1066: 0x1e83, 0x1067: 0x1e88, 0x1068: 0x1e92, 0x1069: 0x1e8d, + 0x106a: 0x1e65, 0x106b: 0x1eb0, 0x106c: 0x1ed3, 0x106d: 0x1e7e, 0x106e: 0x1e83, 0x106f: 0x1e88, + 0x1070: 0x1e92, 0x1071: 0x1e6f, 0x1072: 0x1e97, 0x1073: 0x1eec, 0x1074: 0x1e56, 0x1075: 0x1e5b, + 0x1076: 0x1e60, 0x1077: 0x1e7e, 0x1078: 0x1e83, 0x1079: 0x1e88, 0x107a: 0x1eec, 0x107b: 0x1efb, + 0x107c: 0x4408, 0x107d: 0x4408, + // Block 0x42, offset 0x1080 + 0x1090: 0x2311, 0x1091: 0x2326, + 0x1092: 0x2326, 0x1093: 0x232d, 0x1094: 0x2334, 0x1095: 0x2349, 0x1096: 0x2350, 0x1097: 0x2357, + 0x1098: 0x237a, 0x1099: 0x237a, 0x109a: 0x239d, 0x109b: 0x2396, 0x109c: 0x23b2, 0x109d: 0x23a4, + 0x109e: 0x23ab, 0x109f: 0x23ce, 0x10a0: 0x23ce, 0x10a1: 0x23c7, 0x10a2: 0x23d5, 0x10a3: 0x23d5, + 0x10a4: 0x23ff, 0x10a5: 0x23ff, 0x10a6: 0x241b, 0x10a7: 0x23e3, 0x10a8: 0x23e3, 0x10a9: 0x23dc, + 0x10aa: 0x23f1, 0x10ab: 0x23f1, 0x10ac: 0x23f8, 0x10ad: 0x23f8, 0x10ae: 0x2422, 0x10af: 0x2430, + 0x10b0: 0x2430, 0x10b1: 0x2437, 0x10b2: 0x2437, 0x10b3: 0x243e, 0x10b4: 0x2445, 0x10b5: 0x244c, + 0x10b6: 0x2453, 0x10b7: 0x2453, 0x10b8: 0x245a, 0x10b9: 0x2468, 0x10ba: 0x2476, 0x10bb: 0x246f, + 0x10bc: 0x247d, 0x10bd: 0x247d, 0x10be: 0x2492, 0x10bf: 0x2499, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x24ca, 0x10c1: 0x24d8, 0x10c2: 0x24d1, 0x10c3: 0x24b5, 0x10c4: 0x24b5, 0x10c5: 0x24df, + 0x10c6: 0x24df, 0x10c7: 0x24e6, 0x10c8: 0x24e6, 0x10c9: 0x2510, 0x10ca: 0x2517, 0x10cb: 0x251e, + 0x10cc: 0x24f4, 0x10cd: 0x2502, 0x10ce: 0x2525, 0x10cf: 0x252c, + 0x10d2: 0x24fb, 0x10d3: 0x2580, 0x10d4: 0x2587, 0x10d5: 0x255d, 0x10d6: 0x2564, 0x10d7: 0x2548, + 0x10d8: 0x2548, 0x10d9: 0x254f, 0x10da: 0x2579, 0x10db: 0x2572, 0x10dc: 0x259c, 0x10dd: 0x259c, + 0x10de: 0x230a, 0x10df: 0x231f, 0x10e0: 0x2318, 0x10e1: 0x2342, 0x10e2: 0x233b, 0x10e3: 0x2365, + 0x10e4: 0x235e, 0x10e5: 0x2388, 0x10e6: 0x236c, 0x10e7: 0x2381, 0x10e8: 0x23b9, 0x10e9: 0x2406, + 0x10ea: 0x23ea, 0x10eb: 0x2429, 0x10ec: 0x24c3, 0x10ed: 0x24ed, 0x10ee: 0x2595, 0x10ef: 0x258e, + 0x10f0: 0x25a3, 0x10f1: 0x253a, 0x10f2: 0x24a0, 0x10f3: 0x256b, 0x10f4: 0x2492, 0x10f5: 0x24ca, + 0x10f6: 0x2461, 0x10f7: 0x24ae, 0x10f8: 0x2541, 0x10f9: 0x2533, 0x10fa: 0x24bc, 0x10fb: 0x24a7, + 0x10fc: 0x24bc, 0x10fd: 0x2541, 0x10fe: 0x2373, 0x10ff: 0x238f, + // Block 0x44, offset 0x1100 + 0x1100: 0x2509, 0x1101: 0x2484, 0x1102: 0x2303, 0x1103: 0x24a7, 0x1104: 0x244c, 0x1105: 0x241b, + 0x1106: 0x23c0, 0x1107: 0x2556, + 0x1130: 0x2414, 0x1131: 0x248b, 0x1132: 0x27bf, 0x1133: 0x27b6, 0x1134: 0x27ec, 0x1135: 0x27da, + 0x1136: 0x27c8, 0x1137: 0x27e3, 0x1138: 0x27f5, 0x1139: 0x240d, 0x113a: 0x2c7c, 0x113b: 0x2afc, + 0x113c: 0x27d1, + // Block 0x45, offset 0x1140 + 0x1150: 0x0019, 0x1151: 0x0483, + 0x1152: 0x0487, 0x1153: 0x0035, 0x1154: 0x0037, 0x1155: 0x0003, 0x1156: 0x003f, 0x1157: 0x04bf, + 0x1158: 0x04c3, 0x1159: 0x1b5c, + 0x1160: 0x8132, 0x1161: 0x8132, 0x1162: 0x8132, 0x1163: 0x8132, + 0x1164: 0x8132, 0x1165: 0x8132, 0x1166: 0x8132, 0x1167: 0x812d, 0x1168: 0x812d, 0x1169: 0x812d, + 0x116a: 0x812d, 0x116b: 0x812d, 0x116c: 0x812d, 0x116d: 0x812d, 0x116e: 0x8132, 0x116f: 0x8132, + 0x1170: 0x1873, 0x1171: 0x0443, 0x1172: 0x043f, 0x1173: 0x007f, 0x1174: 0x007f, 0x1175: 0x0011, + 0x1176: 0x0013, 0x1177: 0x00b7, 0x1178: 0x00bb, 0x1179: 0x04b7, 0x117a: 0x04bb, 0x117b: 0x04ab, + 0x117c: 0x04af, 0x117d: 0x0493, 0x117e: 0x0497, 0x117f: 0x048b, + // Block 0x46, offset 0x1180 + 0x1180: 0x048f, 0x1181: 0x049b, 0x1182: 0x049f, 0x1183: 0x04a3, 0x1184: 0x04a7, + 0x1187: 0x0077, 0x1188: 0x007b, 0x1189: 0x4269, 0x118a: 0x4269, 0x118b: 0x4269, + 0x118c: 0x4269, 0x118d: 0x007f, 0x118e: 0x007f, 0x118f: 0x007f, 0x1190: 0x0019, 0x1191: 0x0483, + 0x1192: 0x001d, 0x1194: 0x0037, 0x1195: 0x0035, 0x1196: 0x003f, 0x1197: 0x0003, + 0x1198: 0x0443, 0x1199: 0x0011, 0x119a: 0x0013, 0x119b: 0x00b7, 0x119c: 0x00bb, 0x119d: 0x04b7, + 0x119e: 0x04bb, 0x119f: 0x0007, 0x11a0: 0x000d, 0x11a1: 0x0015, 0x11a2: 0x0017, 0x11a3: 0x001b, + 0x11a4: 0x0039, 0x11a5: 0x003d, 0x11a6: 0x003b, 0x11a8: 0x0079, 0x11a9: 0x0009, + 0x11aa: 0x000b, 0x11ab: 0x0041, + 0x11b0: 0x42aa, 0x11b1: 0x442c, 0x11b2: 0x42af, 0x11b4: 0x42b4, + 0x11b6: 0x42b9, 0x11b7: 0x4432, 0x11b8: 0x42be, 0x11b9: 0x4438, 0x11ba: 0x42c3, 0x11bb: 0x443e, + 0x11bc: 0x42c8, 0x11bd: 0x4444, 0x11be: 0x42cd, 0x11bf: 0x444a, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x0236, 0x11c1: 0x440e, 0x11c2: 0x440e, 0x11c3: 0x4414, 0x11c4: 0x4414, 0x11c5: 0x4456, + 0x11c6: 0x4456, 0x11c7: 0x441a, 0x11c8: 0x441a, 0x11c9: 0x4462, 0x11ca: 0x4462, 0x11cb: 0x4462, + 0x11cc: 0x4462, 0x11cd: 0x0239, 0x11ce: 0x0239, 0x11cf: 0x023c, 0x11d0: 0x023c, 0x11d1: 0x023c, + 0x11d2: 0x023c, 0x11d3: 0x023f, 0x11d4: 0x023f, 0x11d5: 0x0242, 0x11d6: 0x0242, 0x11d7: 0x0242, + 0x11d8: 0x0242, 0x11d9: 0x0245, 0x11da: 0x0245, 0x11db: 0x0245, 0x11dc: 0x0245, 0x11dd: 0x0248, + 0x11de: 0x0248, 0x11df: 0x0248, 0x11e0: 0x0248, 0x11e1: 0x024b, 0x11e2: 0x024b, 0x11e3: 0x024b, + 0x11e4: 0x024b, 0x11e5: 0x024e, 0x11e6: 0x024e, 0x11e7: 0x024e, 0x11e8: 0x024e, 0x11e9: 0x0251, + 0x11ea: 0x0251, 0x11eb: 0x0254, 0x11ec: 0x0254, 0x11ed: 0x0257, 0x11ee: 0x0257, 0x11ef: 0x025a, + 0x11f0: 0x025a, 0x11f1: 0x025d, 0x11f2: 0x025d, 0x11f3: 0x025d, 0x11f4: 0x025d, 0x11f5: 0x0260, + 0x11f6: 0x0260, 0x11f7: 0x0260, 0x11f8: 0x0260, 0x11f9: 0x0263, 0x11fa: 0x0263, 0x11fb: 0x0263, + 0x11fc: 0x0263, 0x11fd: 0x0266, 0x11fe: 0x0266, 0x11ff: 0x0266, + // Block 0x48, offset 0x1200 + 0x1200: 0x0266, 0x1201: 0x0269, 0x1202: 0x0269, 0x1203: 0x0269, 0x1204: 0x0269, 0x1205: 0x026c, + 0x1206: 0x026c, 0x1207: 0x026c, 0x1208: 0x026c, 0x1209: 0x026f, 0x120a: 0x026f, 0x120b: 0x026f, + 0x120c: 0x026f, 0x120d: 0x0272, 0x120e: 0x0272, 0x120f: 0x0272, 0x1210: 0x0272, 0x1211: 0x0275, + 0x1212: 0x0275, 0x1213: 0x0275, 0x1214: 0x0275, 0x1215: 0x0278, 0x1216: 0x0278, 0x1217: 0x0278, + 0x1218: 0x0278, 0x1219: 0x027b, 0x121a: 0x027b, 0x121b: 0x027b, 0x121c: 0x027b, 0x121d: 0x027e, + 0x121e: 0x027e, 0x121f: 0x027e, 0x1220: 0x027e, 0x1221: 0x0281, 0x1222: 0x0281, 0x1223: 0x0281, + 0x1224: 0x0281, 0x1225: 0x0284, 0x1226: 0x0284, 0x1227: 0x0284, 0x1228: 0x0284, 0x1229: 0x0287, + 0x122a: 0x0287, 0x122b: 0x0287, 0x122c: 0x0287, 0x122d: 0x028a, 0x122e: 0x028a, 0x122f: 0x028d, + 0x1230: 0x028d, 0x1231: 0x0290, 0x1232: 0x0290, 0x1233: 0x0290, 0x1234: 0x0290, 0x1235: 0x2e00, + 0x1236: 0x2e00, 0x1237: 0x2e08, 0x1238: 0x2e08, 0x1239: 0x2e10, 0x123a: 0x2e10, 0x123b: 0x1f82, + 0x123c: 0x1f82, + // Block 0x49, offset 0x1240 + 0x1240: 0x0081, 0x1241: 0x0083, 0x1242: 0x0085, 0x1243: 0x0087, 0x1244: 0x0089, 0x1245: 0x008b, + 0x1246: 0x008d, 0x1247: 0x008f, 0x1248: 0x0091, 0x1249: 0x0093, 0x124a: 0x0095, 0x124b: 0x0097, + 0x124c: 0x0099, 0x124d: 0x009b, 0x124e: 0x009d, 0x124f: 0x009f, 0x1250: 0x00a1, 0x1251: 0x00a3, + 0x1252: 0x00a5, 0x1253: 0x00a7, 0x1254: 0x00a9, 0x1255: 0x00ab, 0x1256: 0x00ad, 0x1257: 0x00af, + 0x1258: 0x00b1, 0x1259: 0x00b3, 0x125a: 0x00b5, 0x125b: 0x00b7, 0x125c: 0x00b9, 0x125d: 0x00bb, + 0x125e: 0x00bd, 0x125f: 0x0477, 0x1260: 0x047b, 0x1261: 0x0487, 0x1262: 0x049b, 0x1263: 0x049f, + 0x1264: 0x0483, 0x1265: 0x05ab, 0x1266: 0x05a3, 0x1267: 0x04c7, 0x1268: 0x04cf, 0x1269: 0x04d7, + 0x126a: 0x04df, 0x126b: 0x04e7, 0x126c: 0x056b, 0x126d: 0x0573, 0x126e: 0x057b, 0x126f: 0x051f, + 0x1270: 0x05af, 0x1271: 0x04cb, 0x1272: 0x04d3, 0x1273: 0x04db, 0x1274: 0x04e3, 0x1275: 0x04eb, + 0x1276: 0x04ef, 0x1277: 0x04f3, 0x1278: 0x04f7, 0x1279: 0x04fb, 0x127a: 0x04ff, 0x127b: 0x0503, + 0x127c: 0x0507, 0x127d: 0x050b, 0x127e: 0x050f, 0x127f: 0x0513, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0517, 0x1281: 0x051b, 0x1282: 0x0523, 0x1283: 0x0527, 0x1284: 0x052b, 0x1285: 0x052f, + 0x1286: 0x0533, 0x1287: 0x0537, 0x1288: 0x053b, 0x1289: 0x053f, 0x128a: 0x0543, 0x128b: 0x0547, + 0x128c: 0x054b, 0x128d: 0x054f, 0x128e: 0x0553, 0x128f: 0x0557, 0x1290: 0x055b, 0x1291: 0x055f, + 0x1292: 0x0563, 0x1293: 0x0567, 0x1294: 0x056f, 0x1295: 0x0577, 0x1296: 0x057f, 0x1297: 0x0583, + 0x1298: 0x0587, 0x1299: 0x058b, 0x129a: 0x058f, 0x129b: 0x0593, 0x129c: 0x0597, 0x129d: 0x05a7, + 0x129e: 0x4a78, 0x129f: 0x4a7e, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4a3b, + 0x12a4: 0x031b, 0x12a5: 0x4a41, 0x12a6: 0x4a47, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327, + 0x12aa: 0x4a4d, 0x12ab: 0x4a53, 0x12ac: 0x4a59, 0x12ad: 0x4a5f, 0x12ae: 0x4a65, 0x12af: 0x4a6b, + 0x12b0: 0x0367, 0x12b1: 0x032b, 0x12b2: 0x032f, 0x12b3: 0x0333, 0x12b4: 0x037b, 0x12b5: 0x0337, + 0x12b6: 0x033b, 0x12b7: 0x033f, 0x12b8: 0x0343, 0x12b9: 0x0347, 0x12ba: 0x034b, 0x12bb: 0x034f, + 0x12bc: 0x0353, 0x12bd: 0x0357, 0x12be: 0x035b, + // Block 0x4b, offset 0x12c0 + 0x12c2: 0x49bd, 0x12c3: 0x49c3, 0x12c4: 0x49c9, 0x12c5: 0x49cf, + 0x12c6: 0x49d5, 0x12c7: 0x49db, 0x12ca: 0x49e1, 0x12cb: 0x49e7, + 0x12cc: 0x49ed, 0x12cd: 0x49f3, 0x12ce: 0x49f9, 0x12cf: 0x49ff, + 0x12d2: 0x4a05, 0x12d3: 0x4a0b, 0x12d4: 0x4a11, 0x12d5: 0x4a17, 0x12d6: 0x4a1d, 0x12d7: 0x4a23, + 0x12da: 0x4a29, 0x12db: 0x4a2f, 0x12dc: 0x4a35, + 0x12e0: 0x00bf, 0x12e1: 0x00c2, 0x12e2: 0x00cb, 0x12e3: 0x4264, + 0x12e4: 0x00c8, 0x12e5: 0x00c5, 0x12e6: 0x0447, 0x12e8: 0x046b, 0x12e9: 0x044b, + 0x12ea: 0x044f, 0x12eb: 0x0453, 0x12ec: 0x0457, 0x12ed: 0x046f, 0x12ee: 0x0473, + // Block 0x4c, offset 0x1300 + 0x1300: 0x0063, 0x1301: 0x0065, 0x1302: 0x0067, 0x1303: 0x0069, 0x1304: 0x006b, 0x1305: 0x006d, + 0x1306: 0x006f, 0x1307: 0x0071, 0x1308: 0x0073, 0x1309: 0x0075, 0x130a: 0x0083, 0x130b: 0x0085, + 0x130c: 0x0087, 0x130d: 0x0089, 0x130e: 0x008b, 0x130f: 0x008d, 0x1310: 0x008f, 0x1311: 0x0091, + 0x1312: 0x0093, 0x1313: 0x0095, 0x1314: 0x0097, 0x1315: 0x0099, 0x1316: 0x009b, 0x1317: 0x009d, + 0x1318: 0x009f, 0x1319: 0x00a1, 0x131a: 0x00a3, 0x131b: 0x00a5, 0x131c: 0x00a7, 0x131d: 0x00a9, + 0x131e: 0x00ab, 0x131f: 0x00ad, 0x1320: 0x00af, 0x1321: 0x00b1, 0x1322: 0x00b3, 0x1323: 0x00b5, + 0x1324: 0x00dd, 0x1325: 0x00f2, 0x1328: 0x0173, 0x1329: 0x0176, + 0x132a: 0x0179, 0x132b: 0x017c, 0x132c: 0x017f, 0x132d: 0x0182, 0x132e: 0x0185, 0x132f: 0x0188, + 0x1330: 0x018b, 0x1331: 0x018e, 0x1332: 0x0191, 0x1333: 0x0194, 0x1334: 0x0197, 0x1335: 0x019a, + 0x1336: 0x019d, 0x1337: 0x01a0, 0x1338: 0x01a3, 0x1339: 0x0188, 0x133a: 0x01a6, 0x133b: 0x01a9, + 0x133c: 0x01ac, 0x133d: 0x01af, 0x133e: 0x01b2, 0x133f: 0x01b5, + // Block 0x4d, offset 0x1340 + 0x1340: 0x01fd, 0x1341: 0x0200, 0x1342: 0x0203, 0x1343: 0x045b, 0x1344: 0x01c7, 0x1345: 0x01d0, + 0x1346: 0x01d6, 0x1347: 0x01fa, 0x1348: 0x01eb, 0x1349: 0x01e8, 0x134a: 0x0206, 0x134b: 0x0209, + 0x134e: 0x0021, 0x134f: 0x0023, 0x1350: 0x0025, 0x1351: 0x0027, + 0x1352: 0x0029, 0x1353: 0x002b, 0x1354: 0x002d, 0x1355: 0x002f, 0x1356: 0x0031, 0x1357: 0x0033, + 0x1358: 0x0021, 0x1359: 0x0023, 0x135a: 0x0025, 0x135b: 0x0027, 0x135c: 0x0029, 0x135d: 0x002b, + 0x135e: 0x002d, 0x135f: 0x002f, 0x1360: 0x0031, 0x1361: 0x0033, 0x1362: 0x0021, 0x1363: 0x0023, + 0x1364: 0x0025, 0x1365: 0x0027, 0x1366: 0x0029, 0x1367: 0x002b, 0x1368: 0x002d, 0x1369: 0x002f, + 0x136a: 0x0031, 0x136b: 0x0033, 0x136c: 0x0021, 0x136d: 0x0023, 0x136e: 0x0025, 0x136f: 0x0027, + 0x1370: 0x0029, 0x1371: 0x002b, 0x1372: 0x002d, 0x1373: 0x002f, 0x1374: 0x0031, 0x1375: 0x0033, + 0x1376: 0x0021, 0x1377: 0x0023, 0x1378: 0x0025, 0x1379: 0x0027, 0x137a: 0x0029, 0x137b: 0x002b, + 0x137c: 0x002d, 0x137d: 0x002f, 0x137e: 0x0031, 0x137f: 0x0033, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0239, 0x1381: 0x023c, 0x1382: 0x0248, 0x1383: 0x0251, 0x1385: 0x028a, + 0x1386: 0x025a, 0x1387: 0x024b, 0x1388: 0x0269, 0x1389: 0x0290, 0x138a: 0x027b, 0x138b: 0x027e, + 0x138c: 0x0281, 0x138d: 0x0284, 0x138e: 0x025d, 0x138f: 0x026f, 0x1390: 0x0275, 0x1391: 0x0263, + 0x1392: 0x0278, 0x1393: 0x0257, 0x1394: 0x0260, 0x1395: 0x0242, 0x1396: 0x0245, 0x1397: 0x024e, + 0x1398: 0x0254, 0x1399: 0x0266, 0x139a: 0x026c, 0x139b: 0x0272, 0x139c: 0x0293, 0x139d: 0x02e4, + 0x139e: 0x02cc, 0x139f: 0x0296, 0x13a1: 0x023c, 0x13a2: 0x0248, + 0x13a4: 0x0287, 0x13a7: 0x024b, 0x13a9: 0x0290, + 0x13aa: 0x027b, 0x13ab: 0x027e, 0x13ac: 0x0281, 0x13ad: 0x0284, 0x13ae: 0x025d, 0x13af: 0x026f, + 0x13b0: 0x0275, 0x13b1: 0x0263, 0x13b2: 0x0278, 0x13b4: 0x0260, 0x13b5: 0x0242, + 0x13b6: 0x0245, 0x13b7: 0x024e, 0x13b9: 0x0266, 0x13bb: 0x0272, + // Block 0x4f, offset 0x13c0 + 0x13c2: 0x0248, + 0x13c7: 0x024b, 0x13c9: 0x0290, 0x13cb: 0x027e, + 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d1: 0x0263, + 0x13d2: 0x0278, 0x13d4: 0x0260, 0x13d7: 0x024e, + 0x13d9: 0x0266, 0x13db: 0x0272, 0x13dd: 0x02e4, + 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248, + 0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e8: 0x0269, 0x13e9: 0x0290, + 0x13ea: 0x027b, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f, + 0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242, + 0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fa: 0x026c, 0x13fb: 0x0272, + 0x13fc: 0x0293, 0x13fe: 0x02cc, + // Block 0x50, offset 0x1400 + 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1404: 0x0287, 0x1405: 0x028a, + 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140b: 0x027e, + 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, + 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, + 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, + 0x1421: 0x023c, 0x1422: 0x0248, 0x1423: 0x0251, + 0x1425: 0x028a, 0x1426: 0x025a, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290, + 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, + 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1433: 0x0257, 0x1434: 0x0260, 0x1435: 0x0242, + 0x1436: 0x0245, 0x1437: 0x024e, 0x1438: 0x0254, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272, + // Block 0x51, offset 0x1440 + 0x1440: 0x1879, 0x1441: 0x1876, 0x1442: 0x187c, 0x1443: 0x18a0, 0x1444: 0x18c4, 0x1445: 0x18e8, + 0x1446: 0x190c, 0x1447: 0x1915, 0x1448: 0x191b, 0x1449: 0x1921, 0x144a: 0x1927, + 0x1450: 0x1a8c, 0x1451: 0x1a90, + 0x1452: 0x1a94, 0x1453: 0x1a98, 0x1454: 0x1a9c, 0x1455: 0x1aa0, 0x1456: 0x1aa4, 0x1457: 0x1aa8, + 0x1458: 0x1aac, 0x1459: 0x1ab0, 0x145a: 0x1ab4, 0x145b: 0x1ab8, 0x145c: 0x1abc, 0x145d: 0x1ac0, + 0x145e: 0x1ac4, 0x145f: 0x1ac8, 0x1460: 0x1acc, 0x1461: 0x1ad0, 0x1462: 0x1ad4, 0x1463: 0x1ad8, + 0x1464: 0x1adc, 0x1465: 0x1ae0, 0x1466: 0x1ae4, 0x1467: 0x1ae8, 0x1468: 0x1aec, 0x1469: 0x1af0, + 0x146a: 0x271e, 0x146b: 0x0047, 0x146c: 0x0065, 0x146d: 0x193c, 0x146e: 0x19b1, + 0x1470: 0x0043, 0x1471: 0x0045, 0x1472: 0x0047, 0x1473: 0x0049, 0x1474: 0x004b, 0x1475: 0x004d, + 0x1476: 0x004f, 0x1477: 0x0051, 0x1478: 0x0053, 0x1479: 0x0055, 0x147a: 0x0057, 0x147b: 0x0059, + 0x147c: 0x005b, 0x147d: 0x005d, 0x147e: 0x005f, 0x147f: 0x0061, + // Block 0x52, offset 0x1480 + 0x1480: 0x26ad, 0x1481: 0x26c2, 0x1482: 0x0503, + 0x1490: 0x0c0f, 0x1491: 0x0a47, + 0x1492: 0x08d3, 0x1493: 0x45c4, 0x1494: 0x071b, 0x1495: 0x09ef, 0x1496: 0x132f, 0x1497: 0x09ff, + 0x1498: 0x0727, 0x1499: 0x0cd7, 0x149a: 0x0eaf, 0x149b: 0x0caf, 0x149c: 0x0827, 0x149d: 0x0b6b, + 0x149e: 0x07bf, 0x149f: 0x0cb7, 0x14a0: 0x0813, 0x14a1: 0x1117, 0x14a2: 0x0f83, 0x14a3: 0x138b, + 0x14a4: 0x09d3, 0x14a5: 0x090b, 0x14a6: 0x0e63, 0x14a7: 0x0c1b, 0x14a8: 0x0c47, 0x14a9: 0x06bf, + 0x14aa: 0x06cb, 0x14ab: 0x140b, 0x14ac: 0x0adb, 0x14ad: 0x06e7, 0x14ae: 0x08ef, 0x14af: 0x0c3b, + 0x14b0: 0x13b3, 0x14b1: 0x0c13, 0x14b2: 0x106f, 0x14b3: 0x10ab, 0x14b4: 0x08f7, 0x14b5: 0x0e43, + 0x14b6: 0x0d0b, 0x14b7: 0x0d07, 0x14b8: 0x0f97, 0x14b9: 0x082b, 0x14ba: 0x0957, 0x14bb: 0x1443, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x06fb, 0x14c1: 0x06f3, 0x14c2: 0x0703, 0x14c3: 0x1647, 0x14c4: 0x0747, 0x14c5: 0x0757, + 0x14c6: 0x075b, 0x14c7: 0x0763, 0x14c8: 0x076b, 0x14c9: 0x076f, 0x14ca: 0x077b, 0x14cb: 0x0773, + 0x14cc: 0x05b3, 0x14cd: 0x165b, 0x14ce: 0x078f, 0x14cf: 0x0793, 0x14d0: 0x0797, 0x14d1: 0x07b3, + 0x14d2: 0x164c, 0x14d3: 0x05b7, 0x14d4: 0x079f, 0x14d5: 0x07bf, 0x14d6: 0x1656, 0x14d7: 0x07cf, + 0x14d8: 0x07d7, 0x14d9: 0x0737, 0x14da: 0x07df, 0x14db: 0x07e3, 0x14dc: 0x1831, 0x14dd: 0x07ff, + 0x14de: 0x0807, 0x14df: 0x05bf, 0x14e0: 0x081f, 0x14e1: 0x0823, 0x14e2: 0x082b, 0x14e3: 0x082f, + 0x14e4: 0x05c3, 0x14e5: 0x0847, 0x14e6: 0x084b, 0x14e7: 0x0857, 0x14e8: 0x0863, 0x14e9: 0x0867, + 0x14ea: 0x086b, 0x14eb: 0x0873, 0x14ec: 0x0893, 0x14ed: 0x0897, 0x14ee: 0x089f, 0x14ef: 0x08af, + 0x14f0: 0x08b7, 0x14f1: 0x08bb, 0x14f2: 0x08bb, 0x14f3: 0x08bb, 0x14f4: 0x166a, 0x14f5: 0x0e93, + 0x14f6: 0x08cf, 0x14f7: 0x08d7, 0x14f8: 0x166f, 0x14f9: 0x08e3, 0x14fa: 0x08eb, 0x14fb: 0x08f3, + 0x14fc: 0x091b, 0x14fd: 0x0907, 0x14fe: 0x0913, 0x14ff: 0x0917, + // Block 0x54, offset 0x1500 + 0x1500: 0x091f, 0x1501: 0x0927, 0x1502: 0x092b, 0x1503: 0x0933, 0x1504: 0x093b, 0x1505: 0x093f, + 0x1506: 0x093f, 0x1507: 0x0947, 0x1508: 0x094f, 0x1509: 0x0953, 0x150a: 0x095f, 0x150b: 0x0983, + 0x150c: 0x0967, 0x150d: 0x0987, 0x150e: 0x096b, 0x150f: 0x0973, 0x1510: 0x080b, 0x1511: 0x09cf, + 0x1512: 0x0997, 0x1513: 0x099b, 0x1514: 0x099f, 0x1515: 0x0993, 0x1516: 0x09a7, 0x1517: 0x09a3, + 0x1518: 0x09bb, 0x1519: 0x1674, 0x151a: 0x09d7, 0x151b: 0x09db, 0x151c: 0x09e3, 0x151d: 0x09ef, + 0x151e: 0x09f7, 0x151f: 0x0a13, 0x1520: 0x1679, 0x1521: 0x167e, 0x1522: 0x0a1f, 0x1523: 0x0a23, + 0x1524: 0x0a27, 0x1525: 0x0a1b, 0x1526: 0x0a2f, 0x1527: 0x05c7, 0x1528: 0x05cb, 0x1529: 0x0a37, + 0x152a: 0x0a3f, 0x152b: 0x0a3f, 0x152c: 0x1683, 0x152d: 0x0a5b, 0x152e: 0x0a5f, 0x152f: 0x0a63, + 0x1530: 0x0a6b, 0x1531: 0x1688, 0x1532: 0x0a73, 0x1533: 0x0a77, 0x1534: 0x0b4f, 0x1535: 0x0a7f, + 0x1536: 0x05cf, 0x1537: 0x0a8b, 0x1538: 0x0a9b, 0x1539: 0x0aa7, 0x153a: 0x0aa3, 0x153b: 0x1692, + 0x153c: 0x0aaf, 0x153d: 0x1697, 0x153e: 0x0abb, 0x153f: 0x0ab7, + // Block 0x55, offset 0x1540 + 0x1540: 0x0abf, 0x1541: 0x0acf, 0x1542: 0x0ad3, 0x1543: 0x05d3, 0x1544: 0x0ae3, 0x1545: 0x0aeb, + 0x1546: 0x0aef, 0x1547: 0x0af3, 0x1548: 0x05d7, 0x1549: 0x169c, 0x154a: 0x05db, 0x154b: 0x0b0f, + 0x154c: 0x0b13, 0x154d: 0x0b17, 0x154e: 0x0b1f, 0x154f: 0x1863, 0x1550: 0x0b37, 0x1551: 0x16a6, + 0x1552: 0x16a6, 0x1553: 0x11d7, 0x1554: 0x0b47, 0x1555: 0x0b47, 0x1556: 0x05df, 0x1557: 0x16c9, + 0x1558: 0x179b, 0x1559: 0x0b57, 0x155a: 0x0b5f, 0x155b: 0x05e3, 0x155c: 0x0b73, 0x155d: 0x0b83, + 0x155e: 0x0b87, 0x155f: 0x0b8f, 0x1560: 0x0b9f, 0x1561: 0x05eb, 0x1562: 0x05e7, 0x1563: 0x0ba3, + 0x1564: 0x16ab, 0x1565: 0x0ba7, 0x1566: 0x0bbb, 0x1567: 0x0bbf, 0x1568: 0x0bc3, 0x1569: 0x0bbf, + 0x156a: 0x0bcf, 0x156b: 0x0bd3, 0x156c: 0x0be3, 0x156d: 0x0bdb, 0x156e: 0x0bdf, 0x156f: 0x0be7, + 0x1570: 0x0beb, 0x1571: 0x0bef, 0x1572: 0x0bfb, 0x1573: 0x0bff, 0x1574: 0x0c17, 0x1575: 0x0c1f, + 0x1576: 0x0c2f, 0x1577: 0x0c43, 0x1578: 0x16ba, 0x1579: 0x0c3f, 0x157a: 0x0c33, 0x157b: 0x0c4b, + 0x157c: 0x0c53, 0x157d: 0x0c67, 0x157e: 0x16bf, 0x157f: 0x0c6f, + // Block 0x56, offset 0x1580 + 0x1580: 0x0c63, 0x1581: 0x0c5b, 0x1582: 0x05ef, 0x1583: 0x0c77, 0x1584: 0x0c7f, 0x1585: 0x0c87, + 0x1586: 0x0c7b, 0x1587: 0x05f3, 0x1588: 0x0c97, 0x1589: 0x0c9f, 0x158a: 0x16c4, 0x158b: 0x0ccb, + 0x158c: 0x0cff, 0x158d: 0x0cdb, 0x158e: 0x05ff, 0x158f: 0x0ce7, 0x1590: 0x05fb, 0x1591: 0x05f7, + 0x1592: 0x07c3, 0x1593: 0x07c7, 0x1594: 0x0d03, 0x1595: 0x0ceb, 0x1596: 0x11ab, 0x1597: 0x0663, + 0x1598: 0x0d0f, 0x1599: 0x0d13, 0x159a: 0x0d17, 0x159b: 0x0d2b, 0x159c: 0x0d23, 0x159d: 0x16dd, + 0x159e: 0x0603, 0x159f: 0x0d3f, 0x15a0: 0x0d33, 0x15a1: 0x0d4f, 0x15a2: 0x0d57, 0x15a3: 0x16e7, + 0x15a4: 0x0d5b, 0x15a5: 0x0d47, 0x15a6: 0x0d63, 0x15a7: 0x0607, 0x15a8: 0x0d67, 0x15a9: 0x0d6b, + 0x15aa: 0x0d6f, 0x15ab: 0x0d7b, 0x15ac: 0x16ec, 0x15ad: 0x0d83, 0x15ae: 0x060b, 0x15af: 0x0d8f, + 0x15b0: 0x16f1, 0x15b1: 0x0d93, 0x15b2: 0x060f, 0x15b3: 0x0d9f, 0x15b4: 0x0dab, 0x15b5: 0x0db7, + 0x15b6: 0x0dbb, 0x15b7: 0x16f6, 0x15b8: 0x168d, 0x15b9: 0x16fb, 0x15ba: 0x0ddb, 0x15bb: 0x1700, + 0x15bc: 0x0de7, 0x15bd: 0x0def, 0x15be: 0x0ddf, 0x15bf: 0x0dfb, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0e0b, 0x15c1: 0x0e1b, 0x15c2: 0x0e0f, 0x15c3: 0x0e13, 0x15c4: 0x0e1f, 0x15c5: 0x0e23, + 0x15c6: 0x1705, 0x15c7: 0x0e07, 0x15c8: 0x0e3b, 0x15c9: 0x0e3f, 0x15ca: 0x0613, 0x15cb: 0x0e53, + 0x15cc: 0x0e4f, 0x15cd: 0x170a, 0x15ce: 0x0e33, 0x15cf: 0x0e6f, 0x15d0: 0x170f, 0x15d1: 0x1714, + 0x15d2: 0x0e73, 0x15d3: 0x0e87, 0x15d4: 0x0e83, 0x15d5: 0x0e7f, 0x15d6: 0x0617, 0x15d7: 0x0e8b, + 0x15d8: 0x0e9b, 0x15d9: 0x0e97, 0x15da: 0x0ea3, 0x15db: 0x1651, 0x15dc: 0x0eb3, 0x15dd: 0x1719, + 0x15de: 0x0ebf, 0x15df: 0x1723, 0x15e0: 0x0ed3, 0x15e1: 0x0edf, 0x15e2: 0x0ef3, 0x15e3: 0x1728, + 0x15e4: 0x0f07, 0x15e5: 0x0f0b, 0x15e6: 0x172d, 0x15e7: 0x1732, 0x15e8: 0x0f27, 0x15e9: 0x0f37, + 0x15ea: 0x061b, 0x15eb: 0x0f3b, 0x15ec: 0x061f, 0x15ed: 0x061f, 0x15ee: 0x0f53, 0x15ef: 0x0f57, + 0x15f0: 0x0f5f, 0x15f1: 0x0f63, 0x15f2: 0x0f6f, 0x15f3: 0x0623, 0x15f4: 0x0f87, 0x15f5: 0x1737, + 0x15f6: 0x0fa3, 0x15f7: 0x173c, 0x15f8: 0x0faf, 0x15f9: 0x16a1, 0x15fa: 0x0fbf, 0x15fb: 0x1741, + 0x15fc: 0x1746, 0x15fd: 0x174b, 0x15fe: 0x0627, 0x15ff: 0x062b, + // Block 0x58, offset 0x1600 + 0x1600: 0x0ff7, 0x1601: 0x1755, 0x1602: 0x1750, 0x1603: 0x175a, 0x1604: 0x175f, 0x1605: 0x0fff, + 0x1606: 0x1003, 0x1607: 0x1003, 0x1608: 0x100b, 0x1609: 0x0633, 0x160a: 0x100f, 0x160b: 0x0637, + 0x160c: 0x063b, 0x160d: 0x1769, 0x160e: 0x1023, 0x160f: 0x102b, 0x1610: 0x1037, 0x1611: 0x063f, + 0x1612: 0x176e, 0x1613: 0x105b, 0x1614: 0x1773, 0x1615: 0x1778, 0x1616: 0x107b, 0x1617: 0x1093, + 0x1618: 0x0643, 0x1619: 0x109b, 0x161a: 0x109f, 0x161b: 0x10a3, 0x161c: 0x177d, 0x161d: 0x1782, + 0x161e: 0x1782, 0x161f: 0x10bb, 0x1620: 0x0647, 0x1621: 0x1787, 0x1622: 0x10cf, 0x1623: 0x10d3, + 0x1624: 0x064b, 0x1625: 0x178c, 0x1626: 0x10ef, 0x1627: 0x064f, 0x1628: 0x10ff, 0x1629: 0x10f7, + 0x162a: 0x1107, 0x162b: 0x1796, 0x162c: 0x111f, 0x162d: 0x0653, 0x162e: 0x112b, 0x162f: 0x1133, + 0x1630: 0x1143, 0x1631: 0x0657, 0x1632: 0x17a0, 0x1633: 0x17a5, 0x1634: 0x065b, 0x1635: 0x17aa, + 0x1636: 0x115b, 0x1637: 0x17af, 0x1638: 0x1167, 0x1639: 0x1173, 0x163a: 0x117b, 0x163b: 0x17b4, + 0x163c: 0x17b9, 0x163d: 0x118f, 0x163e: 0x17be, 0x163f: 0x1197, + // Block 0x59, offset 0x1640 + 0x1640: 0x16ce, 0x1641: 0x065f, 0x1642: 0x11af, 0x1643: 0x11b3, 0x1644: 0x0667, 0x1645: 0x11b7, + 0x1646: 0x0a33, 0x1647: 0x17c3, 0x1648: 0x17c8, 0x1649: 0x16d3, 0x164a: 0x16d8, 0x164b: 0x11d7, + 0x164c: 0x11db, 0x164d: 0x13f3, 0x164e: 0x066b, 0x164f: 0x1207, 0x1650: 0x1203, 0x1651: 0x120b, + 0x1652: 0x083f, 0x1653: 0x120f, 0x1654: 0x1213, 0x1655: 0x1217, 0x1656: 0x121f, 0x1657: 0x17cd, + 0x1658: 0x121b, 0x1659: 0x1223, 0x165a: 0x1237, 0x165b: 0x123b, 0x165c: 0x1227, 0x165d: 0x123f, + 0x165e: 0x1253, 0x165f: 0x1267, 0x1660: 0x1233, 0x1661: 0x1247, 0x1662: 0x124b, 0x1663: 0x124f, + 0x1664: 0x17d2, 0x1665: 0x17dc, 0x1666: 0x17d7, 0x1667: 0x066f, 0x1668: 0x126f, 0x1669: 0x1273, + 0x166a: 0x127b, 0x166b: 0x17f0, 0x166c: 0x127f, 0x166d: 0x17e1, 0x166e: 0x0673, 0x166f: 0x0677, + 0x1670: 0x17e6, 0x1671: 0x17eb, 0x1672: 0x067b, 0x1673: 0x129f, 0x1674: 0x12a3, 0x1675: 0x12a7, + 0x1676: 0x12ab, 0x1677: 0x12b7, 0x1678: 0x12b3, 0x1679: 0x12bf, 0x167a: 0x12bb, 0x167b: 0x12cb, + 0x167c: 0x12c3, 0x167d: 0x12c7, 0x167e: 0x12cf, 0x167f: 0x067f, + // Block 0x5a, offset 0x1680 + 0x1680: 0x12d7, 0x1681: 0x12db, 0x1682: 0x0683, 0x1683: 0x12eb, 0x1684: 0x12ef, 0x1685: 0x17f5, + 0x1686: 0x12fb, 0x1687: 0x12ff, 0x1688: 0x0687, 0x1689: 0x130b, 0x168a: 0x05bb, 0x168b: 0x17fa, + 0x168c: 0x17ff, 0x168d: 0x068b, 0x168e: 0x068f, 0x168f: 0x1337, 0x1690: 0x134f, 0x1691: 0x136b, + 0x1692: 0x137b, 0x1693: 0x1804, 0x1694: 0x138f, 0x1695: 0x1393, 0x1696: 0x13ab, 0x1697: 0x13b7, + 0x1698: 0x180e, 0x1699: 0x1660, 0x169a: 0x13c3, 0x169b: 0x13bf, 0x169c: 0x13cb, 0x169d: 0x1665, + 0x169e: 0x13d7, 0x169f: 0x13e3, 0x16a0: 0x1813, 0x16a1: 0x1818, 0x16a2: 0x1423, 0x16a3: 0x142f, + 0x16a4: 0x1437, 0x16a5: 0x181d, 0x16a6: 0x143b, 0x16a7: 0x1467, 0x16a8: 0x1473, 0x16a9: 0x1477, + 0x16aa: 0x146f, 0x16ab: 0x1483, 0x16ac: 0x1487, 0x16ad: 0x1822, 0x16ae: 0x1493, 0x16af: 0x0693, + 0x16b0: 0x149b, 0x16b1: 0x1827, 0x16b2: 0x0697, 0x16b3: 0x14d3, 0x16b4: 0x0ac3, 0x16b5: 0x14eb, + 0x16b6: 0x182c, 0x16b7: 0x1836, 0x16b8: 0x069b, 0x16b9: 0x069f, 0x16ba: 0x1513, 0x16bb: 0x183b, + 0x16bc: 0x06a3, 0x16bd: 0x1840, 0x16be: 0x152b, 0x16bf: 0x152b, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x1533, 0x16c1: 0x1845, 0x16c2: 0x154b, 0x16c3: 0x06a7, 0x16c4: 0x155b, 0x16c5: 0x1567, + 0x16c6: 0x156f, 0x16c7: 0x1577, 0x16c8: 0x06ab, 0x16c9: 0x184a, 0x16ca: 0x158b, 0x16cb: 0x15a7, + 0x16cc: 0x15b3, 0x16cd: 0x06af, 0x16ce: 0x06b3, 0x16cf: 0x15b7, 0x16d0: 0x184f, 0x16d1: 0x06b7, + 0x16d2: 0x1854, 0x16d3: 0x1859, 0x16d4: 0x185e, 0x16d5: 0x15db, 0x16d6: 0x06bb, 0x16d7: 0x15ef, + 0x16d8: 0x15f7, 0x16d9: 0x15fb, 0x16da: 0x1603, 0x16db: 0x160b, 0x16dc: 0x1613, 0x16dd: 0x1868, +} + +// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5a, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5b, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5c, 0xcb: 0x5d, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x5e, 0xd2: 0x5f, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x60, + 0xd8: 0x61, 0xd9: 0x0d, 0xdb: 0x62, 0xdc: 0x63, 0xdd: 0x64, 0xdf: 0x65, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x66, 0x121: 0x67, 0x123: 0x68, 0x124: 0x69, 0x125: 0x6a, 0x126: 0x6b, 0x127: 0x6c, + 0x128: 0x6d, 0x129: 0x6e, 0x12a: 0x6f, 0x12b: 0x70, 0x12c: 0x6b, 0x12d: 0x71, 0x12e: 0x72, 0x12f: 0x73, + 0x131: 0x74, 0x132: 0x75, 0x133: 0x76, 0x134: 0x77, 0x135: 0x78, 0x137: 0x79, + 0x138: 0x7a, 0x139: 0x7b, 0x13a: 0x7c, 0x13b: 0x7d, 0x13c: 0x7e, 0x13d: 0x7f, 0x13e: 0x80, 0x13f: 0x81, + // Block 0x5, offset 0x140 + 0x140: 0x82, 0x142: 0x83, 0x143: 0x84, 0x144: 0x85, 0x145: 0x86, 0x146: 0x87, 0x147: 0x88, + 0x14d: 0x89, + 0x15c: 0x8a, 0x15f: 0x8b, + 0x162: 0x8c, 0x164: 0x8d, + 0x168: 0x8e, 0x169: 0x8f, 0x16a: 0x90, 0x16c: 0x0e, 0x16d: 0x91, 0x16e: 0x92, 0x16f: 0x93, + 0x170: 0x94, 0x173: 0x95, 0x174: 0x96, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x97, + 0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18, + // Block 0x6, offset 0x180 + 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x9c, 0x187: 0x9d, + 0x188: 0x9e, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9f, 0x18c: 0xa0, + 0x191: 0x1d, 0x192: 0x1e, 0x193: 0xa1, + 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, + 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, + 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xab, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xac, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xad, 0x1c5: 0x25, 0x1c6: 0x26, + 0x1c8: 0x27, 0x1c9: 0x28, 0x1ca: 0x29, 0x1cb: 0x2a, 0x1cc: 0x2b, 0x1cd: 0x2c, 0x1ce: 0x2d, 0x1cf: 0x2e, + // Block 0x8, offset 0x200 + 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, + 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, + 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, + 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, + 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, + // Block 0x9, offset 0x240 + 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, + 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, + 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, + 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, + 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, + 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, + 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, + 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, + // Block 0xa, offset 0x280 + 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, + 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, + 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, + 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, + 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, + 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, + 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, + 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, + 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, + 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, + 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, + // Block 0xc, offset 0x300 + 0x324: 0x2f, 0x325: 0x30, 0x326: 0x31, 0x327: 0x32, + 0x328: 0x33, 0x329: 0x34, 0x32a: 0x35, 0x32b: 0x36, 0x32c: 0x37, 0x32d: 0x38, 0x32e: 0x39, 0x32f: 0x3a, + 0x330: 0x3b, 0x331: 0x3c, 0x332: 0x3d, 0x333: 0x3e, 0x334: 0x3f, 0x335: 0x40, 0x336: 0x41, 0x337: 0x42, + 0x338: 0x43, 0x339: 0x44, 0x33a: 0x45, 0x33b: 0x46, 0x33c: 0xc5, 0x33d: 0x47, 0x33e: 0x48, 0x33f: 0x49, + // Block 0xd, offset 0x340 + 0x347: 0xc6, + 0x34b: 0xc7, 0x34d: 0xc8, + 0x368: 0xc9, 0x36b: 0xca, + // Block 0xe, offset 0x380 + 0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce, + 0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6b, 0x38d: 0xd1, + 0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6, + 0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9, + 0x3b0: 0xd7, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xda, 0x3ec: 0xdb, + // Block 0x10, offset 0x400 + 0x432: 0xdc, + // Block 0x11, offset 0x440 + 0x445: 0xdd, 0x446: 0xde, 0x447: 0xdf, + 0x449: 0xe0, + 0x450: 0xe1, 0x451: 0xe2, 0x452: 0xe3, 0x453: 0xe4, 0x454: 0xe5, 0x455: 0xe6, 0x456: 0xe7, 0x457: 0xe8, + 0x458: 0xe9, 0x459: 0xea, 0x45a: 0x4a, 0x45b: 0xeb, 0x45c: 0xec, 0x45d: 0xed, 0x45e: 0xee, 0x45f: 0x4b, + // Block 0x12, offset 0x480 + 0x480: 0xef, + 0x4a3: 0xf0, 0x4a5: 0xf1, + 0x4b8: 0x4c, 0x4b9: 0x4d, 0x4ba: 0x4e, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x4f, 0x4c5: 0xf2, 0x4c6: 0xf3, + 0x4c8: 0x50, 0x4c9: 0xf4, + // Block 0x14, offset 0x500 + 0x520: 0x51, 0x521: 0x52, 0x522: 0x53, 0x523: 0x54, 0x524: 0x55, 0x525: 0x56, 0x526: 0x57, 0x527: 0x58, + 0x528: 0x59, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 155 entries, 310 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd4, 0xdb, 0xe3, 0xe7, 0xe9, 0xec, 0xf0, 0xf6, 0x107, 0x113, 0x115, 0x11b, 0x11d, 0x11f, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12c, 0x12f, 0x131, 0x134, 0x137, 0x13b, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x176, 0x184, 0x192, 0x1a2, 0x1b0, 0x1b7, 0x1bd, 0x1cc, 0x1d0, 0x1d2, 0x1d6, 0x1d8, 0x1db, 0x1dd, 0x1e0, 0x1e2, 0x1e5, 0x1e7, 0x1e9, 0x1eb, 0x1f7, 0x201, 0x20b, 0x20e, 0x212, 0x214, 0x216, 0x218, 0x21a, 0x21d, 0x21f, 0x221, 0x223, 0x225, 0x22b, 0x22e, 0x232, 0x234, 0x23b, 0x241, 0x247, 0x24f, 0x255, 0x25b, 0x261, 0x265, 0x267, 0x269, 0x26b, 0x26d, 0x273, 0x276, 0x279, 0x281, 0x288, 0x28b, 0x28e, 0x290, 0x298, 0x29b, 0x2a2, 0x2a5, 0x2ab, 0x2ad, 0x2af, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2c7, 0x2d1, 0x2d3, 0x2d5, 0x2d9, 0x2de, 0x2ea, 0x2ef, 0x2f8, 0x2fe, 0x303, 0x307, 0x30c, 0x310, 0x320, 0x32e, 0x33c, 0x34a, 0x350, 0x352, 0x355, 0x35f, 0x361} + +// nfkcSparseValues: 875 entries, 3500 bytes +var nfkcSparseValues = [875]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x4278, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x4264, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x425a, lo: 0xb4, hi: 0xb4}, + {value: 0x01dc, lo: 0xb5, hi: 0xb5}, + {value: 0x4291, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x221c, lo: 0xbc, hi: 0xbc}, + {value: 0x2210, lo: 0xbd, hi: 0xbd}, + {value: 0x22b2, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x426e, lo: 0x98, hi: 0x98}, + {value: 0x4273, lo: 0x99, hi: 0x9a}, + {value: 0x4296, lo: 0x9b, hi: 0x9b}, + {value: 0x425f, lo: 0x9c, hi: 0x9c}, + {value: 0x4282, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x0167, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + // Block 0xc, offset 0x6f + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x74 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x76 + {value: 0x0000, lo: 0x10}, + {value: 0x8132, lo: 0x94, hi: 0xa1}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xa9, hi: 0xa9}, + {value: 0x8132, lo: 0xaa, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xaf}, + {value: 0x8116, lo: 0xb0, hi: 0xb0}, + {value: 0x8117, lo: 0xb1, hi: 0xb1}, + {value: 0x8118, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb5}, + {value: 0x812d, lo: 0xb6, hi: 0xb6}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x812d, lo: 0xb9, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbf}, + // Block 0xf, offset 0x87 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x8f + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x96 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x99 + {value: 0x0008, lo: 0x06}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + // Block 0x13, offset 0xa0 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0xa4 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0xa8 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0xaa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0xac + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0xb5 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xc0 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xc5 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xc8 + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xd2 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xd4 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xdb + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xe3 + {value: 0x0000, lo: 0x03}, + {value: 0x2621, lo: 0xb3, hi: 0xb3}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xe7 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xe9 + {value: 0x0000, lo: 0x02}, + {value: 0x2636, lo: 0xb3, hi: 0xb3}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x23, offset 0xec + {value: 0x0000, lo: 0x03}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + {value: 0x2628, lo: 0x9c, hi: 0x9c}, + {value: 0x262f, lo: 0x9d, hi: 0x9d}, + // Block 0x24, offset 0xf0 + {value: 0x0000, lo: 0x05}, + {value: 0x030b, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xf6 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x45f4, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x45ff, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0x107 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0x113 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0x115 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0x11b + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0x11d + {value: 0x0000, lo: 0x01}, + {value: 0x030f, lo: 0xbc, hi: 0xbc}, + // Block 0x2b, offset 0x11f + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x121 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x123 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x125 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x127 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x129 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x12c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x12f + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x131 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x134 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x137 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x13b + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x37, offset 0x140 + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x149 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x14b + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x14e + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x150 + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x15b + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x166 + {value: 0x0000, lo: 0x0f}, + {value: 0x8132, lo: 0x80, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x82}, + {value: 0x8132, lo: 0x83, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8a}, + {value: 0x8132, lo: 0x8b, hi: 0x8c}, + {value: 0x8135, lo: 0x8d, hi: 0x8d}, + {value: 0x812a, lo: 0x8e, hi: 0x8e}, + {value: 0x812d, lo: 0x8f, hi: 0x8f}, + {value: 0x8129, lo: 0x90, hi: 0x90}, + {value: 0x8132, lo: 0x91, hi: 0xb5}, + {value: 0x8132, lo: 0xbb, hi: 0xbb}, + {value: 0x8134, lo: 0xbc, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x3e, offset 0x176 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043b, lo: 0x91, hi: 0x91}, + {value: 0x429b, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1873, lo: 0xa5, hi: 0xa5}, + {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2691, lo: 0xb3, hi: 0xb3}, + {value: 0x27fe, lo: 0xb4, hi: 0xb4}, + {value: 0x2698, lo: 0xb6, hi: 0xb6}, + {value: 0x2808, lo: 0xb7, hi: 0xb7}, + {value: 0x186d, lo: 0xbc, hi: 0xbc}, + {value: 0x4269, lo: 0xbe, hi: 0xbe}, + // Block 0x3f, offset 0x184 + {value: 0x0002, lo: 0x0d}, + {value: 0x1933, lo: 0x87, hi: 0x87}, + {value: 0x1930, lo: 0x88, hi: 0x88}, + {value: 0x1870, lo: 0x89, hi: 0x89}, + {value: 0x298e, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x0467, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x40, offset 0x192 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x0467, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x1999, lo: 0xa8, hi: 0xa8}, + // Block 0x41, offset 0x1a2 + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x42, offset 0x1b0 + {value: 0x0007, lo: 0x06}, + {value: 0x2180, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x43, offset 0x1b7 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x44, offset 0x1bd + {value: 0x0173, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0x269f, lo: 0xac, hi: 0xad}, + {value: 0x26a6, lo: 0xaf, hi: 0xaf}, + {value: 0x281c, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x45, offset 0x1cc + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x46, offset 0x1d0 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x47, offset 0x1d2 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x48, offset 0x1d6 + {value: 0x0000, lo: 0x01}, + {value: 0x299b, lo: 0x8c, hi: 0x8c}, + // Block 0x49, offset 0x1d8 + {value: 0x0263, lo: 0x02}, + {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, + {value: 0x192d, lo: 0xb5, hi: 0xb6}, + // Block 0x4a, offset 0x1db + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x4b, offset 0x1dd + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4c, offset 0x1e0 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x4d, offset 0x1e2 + {value: 0x0000, lo: 0x02}, + {value: 0x047f, lo: 0xaf, hi: 0xaf}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x4e, offset 0x1e5 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x4f, offset 0x1e7 + {value: 0x0000, lo: 0x01}, + {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, + // Block 0x50, offset 0x1e9 + {value: 0x0000, lo: 0x01}, + {value: 0x162f, lo: 0xb3, hi: 0xb3}, + // Block 0x51, offset 0x1eb + {value: 0x0004, lo: 0x0b}, + {value: 0x1597, lo: 0x80, hi: 0x82}, + {value: 0x15af, lo: 0x83, hi: 0x83}, + {value: 0x15c7, lo: 0x84, hi: 0x85}, + {value: 0x15d7, lo: 0x86, hi: 0x89}, + {value: 0x15eb, lo: 0x8a, hi: 0x8c}, + {value: 0x15ff, lo: 0x8d, hi: 0x8d}, + {value: 0x1607, lo: 0x8e, hi: 0x8e}, + {value: 0x160f, lo: 0x8f, hi: 0x90}, + {value: 0x161b, lo: 0x91, hi: 0x93}, + {value: 0x162b, lo: 0x94, hi: 0x94}, + {value: 0x1633, lo: 0x95, hi: 0x95}, + // Block 0x52, offset 0x1f7 + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xae}, + {value: 0x812f, lo: 0xaf, hi: 0xaf}, + {value: 0x04b3, lo: 0xb6, hi: 0xb6}, + {value: 0x0887, lo: 0xb8, hi: 0xba}, + // Block 0x53, offset 0x201 + {value: 0x0006, lo: 0x09}, + {value: 0x0313, lo: 0xb1, hi: 0xb1}, + {value: 0x0317, lo: 0xb2, hi: 0xb2}, + {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, + {value: 0x031b, lo: 0xb4, hi: 0xb4}, + {value: 0x4a41, lo: 0xb5, hi: 0xb6}, + {value: 0x031f, lo: 0xb7, hi: 0xb7}, + {value: 0x0323, lo: 0xb8, hi: 0xb8}, + {value: 0x0327, lo: 0xb9, hi: 0xb9}, + {value: 0x4a4d, lo: 0xba, hi: 0xbf}, + // Block 0x54, offset 0x20b + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x55, offset 0x20e + {value: 0x0000, lo: 0x03}, + {value: 0x020f, lo: 0x9c, hi: 0x9c}, + {value: 0x0212, lo: 0x9d, hi: 0x9d}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x56, offset 0x212 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x57, offset 0x214 + {value: 0x0000, lo: 0x01}, + {value: 0x163b, lo: 0xb0, hi: 0xb0}, + // Block 0x58, offset 0x216 + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x59, offset 0x218 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x5a, offset 0x21a + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x5b, offset 0x21d + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x5c, offset 0x21f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x5d, offset 0x221 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x5e, offset 0x223 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x5f, offset 0x225 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x60, offset 0x22b + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x61, offset 0x22e + {value: 0x0008, lo: 0x03}, + {value: 0x1637, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1643, lo: 0x9f, hi: 0x9f}, + // Block 0x62, offset 0x232 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x63, offset 0x234 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x64, offset 0x23b + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x65, offset 0x241 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x66, offset 0x247 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x67, offset 0x24f + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x68, offset 0x255 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x69, offset 0x25b + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x6a, offset 0x261 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x6b, offset 0x265 + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6c, offset 0x267 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6d, offset 0x269 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x6e, offset 0x26b + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x6f, offset 0x26d + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x70, offset 0x273 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x71, offset 0x276 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x279 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x73, offset 0x281 + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x74, offset 0x288 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x75, offset 0x28b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x76, offset 0x28e + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x77, offset 0x290 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x78, offset 0x298 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + // Block 0x79, offset 0x29b + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7a, offset 0x2a2 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7b, offset 0x2a5 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7c, offset 0x2ab + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x7d, offset 0x2ad + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7e, offset 0x2af + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x7f, offset 0x2b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x80, offset 0x2b4 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x81, offset 0x2b6 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x82, offset 0x2b8 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x83, offset 0x2ba + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x84, offset 0x2c7 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x85, offset 0x2d1 + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x86, offset 0x2d3 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x87, offset 0x2d5 + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x88, offset 0x2d9 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x89, offset 0x2de + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x8a, offset 0x2ea + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x8b, offset 0x2ef + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x8c, offset 0x2f8 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x8d, offset 0x2fe + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x8e, offset 0x303 + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x8f, offset 0x307 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x90, offset 0x30c + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x91, offset 0x310 + {value: 0x0003, lo: 0x0f}, + {value: 0x01b8, lo: 0x80, hi: 0x80}, + {value: 0x045f, lo: 0x81, hi: 0x81}, + {value: 0x01bb, lo: 0x82, hi: 0x9a}, + {value: 0x045b, lo: 0x9b, hi: 0x9b}, + {value: 0x01c7, lo: 0x9c, hi: 0x9c}, + {value: 0x01d0, lo: 0x9d, hi: 0x9d}, + {value: 0x01d6, lo: 0x9e, hi: 0x9e}, + {value: 0x01fa, lo: 0x9f, hi: 0x9f}, + {value: 0x01eb, lo: 0xa0, hi: 0xa0}, + {value: 0x01e8, lo: 0xa1, hi: 0xa1}, + {value: 0x0173, lo: 0xa2, hi: 0xb2}, + {value: 0x0188, lo: 0xb3, hi: 0xb3}, + {value: 0x01a6, lo: 0xb4, hi: 0xba}, + {value: 0x045f, lo: 0xbb, hi: 0xbb}, + {value: 0x01bb, lo: 0xbc, hi: 0xbf}, + // Block 0x92, offset 0x320 + {value: 0x0003, lo: 0x0d}, + {value: 0x01c7, lo: 0x80, hi: 0x94}, + {value: 0x045b, lo: 0x95, hi: 0x95}, + {value: 0x01c7, lo: 0x96, hi: 0x96}, + {value: 0x01d0, lo: 0x97, hi: 0x97}, + {value: 0x01d6, lo: 0x98, hi: 0x98}, + {value: 0x01fa, lo: 0x99, hi: 0x99}, + {value: 0x01eb, lo: 0x9a, hi: 0x9a}, + {value: 0x01e8, lo: 0x9b, hi: 0x9b}, + {value: 0x0173, lo: 0x9c, hi: 0xac}, + {value: 0x0188, lo: 0xad, hi: 0xad}, + {value: 0x01a6, lo: 0xae, hi: 0xb4}, + {value: 0x045f, lo: 0xb5, hi: 0xb5}, + {value: 0x01bb, lo: 0xb6, hi: 0xbf}, + // Block 0x93, offset 0x32e + {value: 0x0003, lo: 0x0d}, + {value: 0x01d9, lo: 0x80, hi: 0x8e}, + {value: 0x045b, lo: 0x8f, hi: 0x8f}, + {value: 0x01c7, lo: 0x90, hi: 0x90}, + {value: 0x01d0, lo: 0x91, hi: 0x91}, + {value: 0x01d6, lo: 0x92, hi: 0x92}, + {value: 0x01fa, lo: 0x93, hi: 0x93}, + {value: 0x01eb, lo: 0x94, hi: 0x94}, + {value: 0x01e8, lo: 0x95, hi: 0x95}, + {value: 0x0173, lo: 0x96, hi: 0xa6}, + {value: 0x0188, lo: 0xa7, hi: 0xa7}, + {value: 0x01a6, lo: 0xa8, hi: 0xae}, + {value: 0x045f, lo: 0xaf, hi: 0xaf}, + {value: 0x01bb, lo: 0xb0, hi: 0xbf}, + // Block 0x94, offset 0x33c + {value: 0x0003, lo: 0x0d}, + {value: 0x01eb, lo: 0x80, hi: 0x88}, + {value: 0x045b, lo: 0x89, hi: 0x89}, + {value: 0x01c7, lo: 0x8a, hi: 0x8a}, + {value: 0x01d0, lo: 0x8b, hi: 0x8b}, + {value: 0x01d6, lo: 0x8c, hi: 0x8c}, + {value: 0x01fa, lo: 0x8d, hi: 0x8d}, + {value: 0x01eb, lo: 0x8e, hi: 0x8e}, + {value: 0x01e8, lo: 0x8f, hi: 0x8f}, + {value: 0x0173, lo: 0x90, hi: 0xa0}, + {value: 0x0188, lo: 0xa1, hi: 0xa1}, + {value: 0x01a6, lo: 0xa2, hi: 0xa8}, + {value: 0x045f, lo: 0xa9, hi: 0xa9}, + {value: 0x01bb, lo: 0xaa, hi: 0xbf}, + // Block 0x95, offset 0x34a + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x96, offset 0x350 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x97, offset 0x352 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x98, offset 0x355 + {value: 0x0002, lo: 0x09}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1951, lo: 0x8a, hi: 0x8a}, + {value: 0x1981, lo: 0x8b, hi: 0x8b}, + {value: 0x199c, lo: 0x8c, hi: 0x8c}, + {value: 0x19a2, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, + {value: 0x19ae, lo: 0x8f, hi: 0x8f}, + {value: 0x197b, lo: 0xaa, hi: 0xaa}, + {value: 0x197e, lo: 0xab, hi: 0xab}, + // Block 0x99, offset 0x35f + {value: 0x0000, lo: 0x01}, + {value: 0x193f, lo: 0x90, hi: 0x90}, + // Block 0x9a, offset 0x361 + {value: 0x0028, lo: 0x09}, + {value: 0x2862, lo: 0x80, hi: 0x80}, + {value: 0x2826, lo: 0x81, hi: 0x81}, + {value: 0x2830, lo: 0x82, hi: 0x82}, + {value: 0x2844, lo: 0x83, hi: 0x84}, + {value: 0x284e, lo: 0x85, hi: 0x86}, + {value: 0x283a, lo: 0x87, hi: 0x87}, + {value: 0x2858, lo: 0x88, hi: 0x88}, + {value: 0x0b6f, lo: 0x90, hi: 0x90}, + {value: 0x08e7, lo: 0x91, hi: 0x91}, +} + +// recompMap: 7520 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 53KB (54006 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/transform.go b/vendor/golang.org/x/text/unicode/norm/transform.go new file mode 100644 index 0000000..a1d366a --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/transform.go @@ -0,0 +1,88 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import ( + "unicode/utf8" + + "golang.org/x/text/transform" +) + +// Reset implements the Reset method of the transform.Transformer interface. +func (Form) Reset() {} + +// Transform implements the Transform method of the transform.Transformer +// interface. It may need to write segments of up to MaxSegmentSize at once. +// Users should either catch ErrShortDst and allow dst to grow or have dst be at +// least of size MaxTransformChunkSize to be guaranteed of progress. +func (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + // Cap the maximum number of src bytes to check. + b := src + eof := atEOF + if ns := len(dst); ns < len(b) { + err = transform.ErrShortDst + eof = false + b = b[:ns] + } + i, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), eof) + n := copy(dst, b[:i]) + if !ok { + nDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF) + return nDst + n, nSrc + n, err + } + + if err == nil && n < len(src) && !atEOF { + err = transform.ErrShortSrc + } + return n, n, err +} + +func flushTransform(rb *reorderBuffer) bool { + // Write out (must fully fit in dst, or else it is an ErrShortDst). + if len(rb.out) < rb.nrune*utf8.UTFMax { + return false + } + rb.out = rb.out[rb.flushCopy(rb.out):] + return true +} + +var errs = []error{nil, transform.ErrShortDst, transform.ErrShortSrc} + +// transform implements the transform.Transformer interface. It is only called +// when quickSpan does not pass for a given string. +func (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + // TODO: get rid of reorderBuffer. See CL 23460044. + rb := reorderBuffer{} + rb.init(f, src) + for { + // Load segment into reorder buffer. + rb.setFlusher(dst[nDst:], flushTransform) + end := decomposeSegment(&rb, nSrc, atEOF) + if end < 0 { + return nDst, nSrc, errs[-end] + } + nDst = len(dst) - len(rb.out) + nSrc = end + + // Next quickSpan. + end = rb.nsrc + eof := atEOF + if n := nSrc + len(dst) - nDst; n < end { + err = transform.ErrShortDst + end = n + eof = false + } + end, ok := rb.f.quickSpan(rb.src, nSrc, end, eof) + n := copy(dst[nDst:], rb.src.bytes[nSrc:end]) + nSrc += n + nDst += n + if ok { + if err == nil && n < rb.nsrc && !atEOF { + err = transform.ErrShortSrc + } + return nDst, nSrc, err + } + } +} diff --git a/vendor/golang.org/x/text/unicode/norm/trie.go b/vendor/golang.org/x/text/unicode/norm/trie.go new file mode 100644 index 0000000..423386b --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/trie.go @@ -0,0 +1,54 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +type valueRange struct { + value uint16 // header: value:stride + lo, hi byte // header: lo:n +} + +type sparseBlocks struct { + values []valueRange + offset []uint16 +} + +var nfcSparse = sparseBlocks{ + values: nfcSparseValues[:], + offset: nfcSparseOffset[:], +} + +var nfkcSparse = sparseBlocks{ + values: nfkcSparseValues[:], + offset: nfkcSparseOffset[:], +} + +var ( + nfcData = newNfcTrie(0) + nfkcData = newNfkcTrie(0) +) + +// lookupValue determines the type of block n and looks up the value for b. +// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block +// is a list of ranges with an accompanying value. Given a matching range r, +// the value for b is by r.value + (b - r.lo) * stride. +func (t *sparseBlocks) lookup(n uint32, b byte) uint16 { + offset := t.offset[n] + header := t.values[offset] + lo := offset + 1 + hi := lo + uint16(header.lo) + for lo < hi { + m := lo + (hi-lo)/2 + r := t.values[m] + if r.lo <= b && b <= r.hi { + return r.value + uint16(b-r.lo)*header.value + } + if b < r.lo { + hi = m + } else { + lo = m + 1 + } + } + return 0 +} diff --git a/vendor/google.golang.org/genproto/LICENSE b/vendor/google.golang.org/genproto/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/vendor/google.golang.org/genproto/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go new file mode 100644 index 0000000..8867ae7 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go @@ -0,0 +1,143 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/rpc/status.proto + +/* +Package status is a generated protocol buffer package. + +It is generated from these files: + google/rpc/status.proto + +It has these top-level messages: + Status +*/ +package status + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import google_protobuf "github.com/golang/protobuf/ptypes/any" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The `Status` type defines a logical error model that is suitable for different +// programming environments, including REST APIs and RPC APIs. It is used by +// [gRPC](https://github.com/grpc). The error model is designed to be: +// +// - Simple to use and understand for most users +// - Flexible enough to meet unexpected needs +// +// # Overview +// +// The `Status` message contains three pieces of data: error code, error message, +// and error details. The error code should be an enum value of +// [google.rpc.Code][google.rpc.Code], but it may accept additional error codes if needed. The +// error message should be a developer-facing English message that helps +// developers *understand* and *resolve* the error. If a localized user-facing +// error message is needed, put the localized message in the error details or +// localize it in the client. The optional error details may contain arbitrary +// information about the error. There is a predefined set of error detail types +// in the package `google.rpc` that can be used for common error conditions. +// +// # Language mapping +// +// The `Status` message is the logical representation of the error model, but it +// is not necessarily the actual wire format. When the `Status` message is +// exposed in different client libraries and different wire protocols, it can be +// mapped differently. For example, it will likely be mapped to some exceptions +// in Java, but more likely mapped to some error codes in C. +// +// # Other uses +// +// The error model and the `Status` message can be used in a variety of +// environments, either with or without APIs, to provide a +// consistent developer experience across different environments. +// +// Example uses of this error model include: +// +// - Partial errors. If a service needs to return partial errors to the client, +// it may embed the `Status` in the normal response to indicate the partial +// errors. +// +// - Workflow errors. A typical workflow has multiple steps. Each step may +// have a `Status` message for error reporting. +// +// - Batch operations. If a client uses batch request and batch response, the +// `Status` message should be used directly inside batch response, one for +// each error sub-response. +// +// - Asynchronous operations. If an API call embeds asynchronous operation +// results in its response, the status of those operations should be +// represented directly using the `Status` message. +// +// - Logging. If some API errors are stored in logs, the message `Status` could +// be used directly after any stripping needed for security/privacy reasons. +type Status struct { + // The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + Code int32 `protobuf:"varint,1,opt,name=code" json:"code,omitempty"` + // A developer-facing error message, which should be in English. Any + // user-facing error message should be localized and sent in the + // [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` + // A list of messages that carry the error details. There is a common set of + // message types for APIs to use. + Details []*google_protobuf.Any `protobuf:"bytes,3,rep,name=details" json:"details,omitempty"` +} + +func (m *Status) Reset() { *m = Status{} } +func (m *Status) String() string { return proto.CompactTextString(m) } +func (*Status) ProtoMessage() {} +func (*Status) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *Status) GetCode() int32 { + if m != nil { + return m.Code + } + return 0 +} + +func (m *Status) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +func (m *Status) GetDetails() []*google_protobuf.Any { + if m != nil { + return m.Details + } + return nil +} + +func init() { + proto.RegisterType((*Status)(nil), "google.rpc.Status") +} + +func init() { proto.RegisterFile("google/rpc/status.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 209 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x2f, 0x2a, 0x48, 0xd6, 0x2f, 0x2e, 0x49, 0x2c, 0x29, 0x2d, 0xd6, 0x2b, 0x28, + 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x82, 0x48, 0xe8, 0x15, 0x15, 0x24, 0x4b, 0x49, 0x42, 0x15, 0x81, + 0x65, 0x92, 0x4a, 0xd3, 0xf4, 0x13, 0xf3, 0x2a, 0x21, 0xca, 0x94, 0xd2, 0xb8, 0xd8, 0x82, 0xc1, + 0xda, 0x84, 0x84, 0xb8, 0x58, 0x92, 0xf3, 0x53, 0x52, 0x25, 0x18, 0x15, 0x18, 0x35, 0x58, 0x83, + 0xc0, 0x6c, 0x21, 0x09, 0x2e, 0xf6, 0xdc, 0xd4, 0xe2, 0xe2, 0xc4, 0xf4, 0x54, 0x09, 0x26, 0x05, + 0x46, 0x0d, 0xce, 0x20, 0x18, 0x57, 0x48, 0x8f, 0x8b, 0x3d, 0x25, 0xb5, 0x24, 0x31, 0x33, 0xa7, + 0x58, 0x82, 0x59, 0x81, 0x59, 0x83, 0xdb, 0x48, 0x44, 0x0f, 0x6a, 0x21, 0xcc, 0x12, 0x3d, 0xc7, + 0xbc, 0xca, 0x20, 0x98, 0x22, 0xa7, 0x38, 0x2e, 0xbe, 0xe4, 0xfc, 0x5c, 0x3d, 0x84, 0xa3, 0x9c, + 0xb8, 0x21, 0xf6, 0x06, 0x80, 0x94, 0x07, 0x30, 0x46, 0x99, 0x43, 0xa5, 0xd2, 0xf3, 0x73, 0x12, + 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, 0xf5, 0xd3, 0x53, 0xf3, 0xc0, 0x86, 0xe9, 0x43, 0xa4, 0x12, + 0x0b, 0x32, 0x8b, 0x91, 0xfc, 0x69, 0x0d, 0xa1, 0x16, 0x31, 0x31, 0x07, 0x05, 0x38, 0x27, 0xb1, + 0x81, 0x55, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa4, 0x53, 0xf0, 0x7c, 0x10, 0x01, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/grpc/.travis.yml b/vendor/google.golang.org/grpc/.travis.yml new file mode 100644 index 0000000..65ae29e --- /dev/null +++ b/vendor/google.golang.org/grpc/.travis.yml @@ -0,0 +1,24 @@ +language: go + +go: + - 1.6.x + - 1.7.x + - 1.8.x + - 1.9.x + - 1.10.x + +matrix: + include: + - go: 1.10.x + env: RUN386=1 + +go_import_path: google.golang.org/grpc + +before_install: + - if [[ "$TRAVIS_GO_VERSION" = 1.10* && "$GOARCH" != "386" ]]; then ./vet.sh -install || exit 1; fi + +script: + - if [[ -n "$RUN386" ]]; then export GOARCH=386; fi + - if [[ "$TRAVIS_GO_VERSION" = 1.10* && "$GOARCH" != "386" ]]; then ./vet.sh || exit 1; fi + - make test || exit 1 + - if [[ "$GOARCH" != "386" ]]; then make testrace; fi diff --git a/vendor/google.golang.org/grpc/AUTHORS b/vendor/google.golang.org/grpc/AUTHORS new file mode 100644 index 0000000..e491a9e --- /dev/null +++ b/vendor/google.golang.org/grpc/AUTHORS @@ -0,0 +1 @@ +Google Inc. diff --git a/vendor/google.golang.org/grpc/CONTRIBUTING.md b/vendor/google.golang.org/grpc/CONTRIBUTING.md new file mode 100644 index 0000000..8ec6c95 --- /dev/null +++ b/vendor/google.golang.org/grpc/CONTRIBUTING.md @@ -0,0 +1,32 @@ +# How to contribute + +We definitely welcome your patches and contributions to gRPC! + +If you are new to github, please start by reading [Pull Request howto](https://help.github.com/articles/about-pull-requests/) + +## Legal requirements + +In order to protect both you and ourselves, you will need to sign the +[Contributor License Agreement](https://identity.linuxfoundation.org/projects/cncf). + +## Guidelines for Pull Requests +How to get your contributions merged smoothly and quickly. + +- Create **small PRs** that are narrowly focused on **addressing a single concern**. We often times receive PRs that are trying to fix several things at a time, but only one fix is considered acceptable, nothing gets merged and both author's & review's time is wasted. Create more PRs to address different concerns and everyone will be happy. + +- For speculative changes, consider opening an issue and discussing it first. If you are suggesting a behavioral or API change, consider starting with a [gRFC proposal](https://github.com/grpc/proposal). + +- Provide a good **PR description** as a record of **what** change is being made and **why** it was made. Link to a github issue if it exists. + +- Don't fix code style and formatting unless you are already changing that line to address an issue. PRs with irrelevant changes won't be merged. If you do want to fix formatting or style, do that in a separate PR. + +- Unless your PR is trivial, you should expect there will be reviewer comments that you'll need to address before merging. We expect you to be reasonably responsive to those comments, otherwise the PR will be closed after 2-3 weeks of inactivity. + +- Maintain **clean commit history** and use **meaningful commit messages**. PRs with messy commit history are difficult to review and won't be merged. Use `rebase -i upstream/master` to curate your commit history and/or to bring in latest changes from master (but avoid rebasing in the middle of a code review). + +- Keep your PR up to date with upstream/master (if there are merge conflicts, we can't really merge your change). + +- **All tests need to be passing** before your change can be merged. We recommend you **run tests locally** before creating your PR to catch breakages early on. + +- Exceptions to the rules can be made if there's a compelling reason for doing so. + diff --git a/vendor/google.golang.org/grpc/LICENSE b/vendor/google.golang.org/grpc/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/vendor/google.golang.org/grpc/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/google.golang.org/grpc/Makefile b/vendor/google.golang.org/grpc/Makefile new file mode 100644 index 0000000..c445343 --- /dev/null +++ b/vendor/google.golang.org/grpc/Makefile @@ -0,0 +1,45 @@ +all: test testrace + +deps: + go get -d -v google.golang.org/grpc/... + +updatedeps: + go get -d -v -u -f google.golang.org/grpc/... + +testdeps: + go get -d -v -t google.golang.org/grpc/... + +updatetestdeps: + go get -d -v -t -u -f google.golang.org/grpc/... + +build: deps + go build google.golang.org/grpc/... + +proto: + @ if ! which protoc > /dev/null; then \ + echo "error: protoc not installed" >&2; \ + exit 1; \ + fi + go generate google.golang.org/grpc/... + +test: testdeps + go test -cpu 1,4 -timeout 5m google.golang.org/grpc/... + +testrace: testdeps + go test -race -cpu 1,4 -timeout 7m google.golang.org/grpc/... + +clean: + go clean -i google.golang.org/grpc/... + +.PHONY: \ + all \ + deps \ + updatedeps \ + testdeps \ + updatetestdeps \ + build \ + proto \ + test \ + testrace \ + clean \ + coverage diff --git a/vendor/google.golang.org/grpc/README.md b/vendor/google.golang.org/grpc/README.md new file mode 100644 index 0000000..789adfd --- /dev/null +++ b/vendor/google.golang.org/grpc/README.md @@ -0,0 +1,45 @@ +# gRPC-Go + +[![Build Status](https://travis-ci.org/grpc/grpc-go.svg)](https://travis-ci.org/grpc/grpc-go) [![GoDoc](https://godoc.org/google.golang.org/grpc?status.svg)](https://godoc.org/google.golang.org/grpc) [![GoReportCard](https://goreportcard.com/badge/grpc/grpc-go)](https://goreportcard.com/report/github.com/grpc/grpc-go) + +The Go implementation of [gRPC](https://grpc.io/): A high performance, open source, general RPC framework that puts mobile and HTTP/2 first. For more information see the [gRPC Quick Start: Go](https://grpc.io/docs/quickstart/go.html) guide. + +Installation +------------ + +To install this package, you need to install Go and setup your Go workspace on your computer. The simplest way to install the library is to run: + +``` +$ go get -u google.golang.org/grpc +``` + +Prerequisites +------------- + +This requires Go 1.6 or later. Go 1.7 will be required soon. + +Constraints +----------- +The grpc package should only depend on standard Go packages and a small number of exceptions. If your contribution introduces new dependencies which are NOT in the [list](http://godoc.org/google.golang.org/grpc?imports), you need a discussion with gRPC-Go authors and consultants. + +Documentation +------------- +See [API documentation](https://godoc.org/google.golang.org/grpc) for package and API descriptions and find examples in the [examples directory](examples/). + +Performance +----------- +See the current benchmarks for some of the languages supported in [this dashboard](https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5652536396611584&widget=490377658&container=1286539696). + +Status +------ +General Availability [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). + +FAQ +--- + +#### Compiling error, undefined: grpc.SupportPackageIsVersion + +Please update proto package, gRPC package and rebuild the proto files: + - `go get -u github.com/golang/protobuf/{proto,protoc-gen-go}` + - `go get -u google.golang.org/grpc` + - `protoc --go_out=plugins=grpc:. *.proto` diff --git a/vendor/google.golang.org/grpc/backoff.go b/vendor/google.golang.org/grpc/backoff.go new file mode 100644 index 0000000..c40facc --- /dev/null +++ b/vendor/google.golang.org/grpc/backoff.go @@ -0,0 +1,96 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "math/rand" + "time" +) + +// DefaultBackoffConfig uses values specified for backoff in +// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md. +var DefaultBackoffConfig = BackoffConfig{ + MaxDelay: 120 * time.Second, + baseDelay: 1.0 * time.Second, + factor: 1.6, + jitter: 0.2, +} + +// backoffStrategy defines the methodology for backing off after a grpc +// connection failure. +// +// This is unexported until the gRPC project decides whether or not to allow +// alternative backoff strategies. Once a decision is made, this type and its +// method may be exported. +type backoffStrategy interface { + // backoff returns the amount of time to wait before the next retry given + // the number of consecutive failures. + backoff(retries int) time.Duration +} + +// BackoffConfig defines the parameters for the default gRPC backoff strategy. +type BackoffConfig struct { + // MaxDelay is the upper bound of backoff delay. + MaxDelay time.Duration + + // TODO(stevvooe): The following fields are not exported, as allowing + // changes would violate the current gRPC specification for backoff. If + // gRPC decides to allow more interesting backoff strategies, these fields + // may be opened up in the future. + + // baseDelay is the amount of time to wait before retrying after the first + // failure. + baseDelay time.Duration + + // factor is applied to the backoff after each retry. + factor float64 + + // jitter provides a range to randomize backoff delays. + jitter float64 +} + +func setDefaults(bc *BackoffConfig) { + md := bc.MaxDelay + *bc = DefaultBackoffConfig + + if md > 0 { + bc.MaxDelay = md + } +} + +func (bc BackoffConfig) backoff(retries int) time.Duration { + if retries == 0 { + return bc.baseDelay + } + backoff, max := float64(bc.baseDelay), float64(bc.MaxDelay) + for backoff < max && retries > 0 { + backoff *= bc.factor + retries-- + } + if backoff > max { + backoff = max + } + // Randomize backoff delays so that if a cluster of requests start at + // the same time, they won't operate in lockstep. + backoff *= 1 + bc.jitter*(rand.Float64()*2-1) + if backoff < 0 { + return 0 + } + return time.Duration(backoff) +} diff --git a/vendor/google.golang.org/grpc/balancer.go b/vendor/google.golang.org/grpc/balancer.go new file mode 100644 index 0000000..300da6c --- /dev/null +++ b/vendor/google.golang.org/grpc/balancer.go @@ -0,0 +1,409 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "fmt" + "net" + "sync" + + "golang.org/x/net/context" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/naming" + "google.golang.org/grpc/status" +) + +// Address represents a server the client connects to. +// This is the EXPERIMENTAL API and may be changed or extended in the future. +type Address struct { + // Addr is the server address on which a connection will be established. + Addr string + // Metadata is the information associated with Addr, which may be used + // to make load balancing decision. + Metadata interface{} +} + +// BalancerConfig specifies the configurations for Balancer. +type BalancerConfig struct { + // DialCreds is the transport credential the Balancer implementation can + // use to dial to a remote load balancer server. The Balancer implementations + // can ignore this if it does not need to talk to another party securely. + DialCreds credentials.TransportCredentials + // Dialer is the custom dialer the Balancer implementation can use to dial + // to a remote load balancer server. The Balancer implementations + // can ignore this if it doesn't need to talk to remote balancer. + Dialer func(context.Context, string) (net.Conn, error) +} + +// BalancerGetOptions configures a Get call. +// This is the EXPERIMENTAL API and may be changed or extended in the future. +type BalancerGetOptions struct { + // BlockingWait specifies whether Get should block when there is no + // connected address. + BlockingWait bool +} + +// Balancer chooses network addresses for RPCs. +// This is the EXPERIMENTAL API and may be changed or extended in the future. +type Balancer interface { + // Start does the initialization work to bootstrap a Balancer. For example, + // this function may start the name resolution and watch the updates. It will + // be called when dialing. + Start(target string, config BalancerConfig) error + // Up informs the Balancer that gRPC has a connection to the server at + // addr. It returns down which is called once the connection to addr gets + // lost or closed. + // TODO: It is not clear how to construct and take advantage of the meaningful error + // parameter for down. Need realistic demands to guide. + Up(addr Address) (down func(error)) + // Get gets the address of a server for the RPC corresponding to ctx. + // i) If it returns a connected address, gRPC internals issues the RPC on the + // connection to this address; + // ii) If it returns an address on which the connection is under construction + // (initiated by Notify(...)) but not connected, gRPC internals + // * fails RPC if the RPC is fail-fast and connection is in the TransientFailure or + // Shutdown state; + // or + // * issues RPC on the connection otherwise. + // iii) If it returns an address on which the connection does not exist, gRPC + // internals treats it as an error and will fail the corresponding RPC. + // + // Therefore, the following is the recommended rule when writing a custom Balancer. + // If opts.BlockingWait is true, it should return a connected address or + // block if there is no connected address. It should respect the timeout or + // cancellation of ctx when blocking. If opts.BlockingWait is false (for fail-fast + // RPCs), it should return an address it has notified via Notify(...) immediately + // instead of blocking. + // + // The function returns put which is called once the rpc has completed or failed. + // put can collect and report RPC stats to a remote load balancer. + // + // This function should only return the errors Balancer cannot recover by itself. + // gRPC internals will fail the RPC if an error is returned. + Get(ctx context.Context, opts BalancerGetOptions) (addr Address, put func(), err error) + // Notify returns a channel that is used by gRPC internals to watch the addresses + // gRPC needs to connect. The addresses might be from a name resolver or remote + // load balancer. gRPC internals will compare it with the existing connected + // addresses. If the address Balancer notified is not in the existing connected + // addresses, gRPC starts to connect the address. If an address in the existing + // connected addresses is not in the notification list, the corresponding connection + // is shutdown gracefully. Otherwise, there are no operations to take. Note that + // the Address slice must be the full list of the Addresses which should be connected. + // It is NOT delta. + Notify() <-chan []Address + // Close shuts down the balancer. + Close() error +} + +// downErr implements net.Error. It is constructed by gRPC internals and passed to the down +// call of Balancer. +type downErr struct { + timeout bool + temporary bool + desc string +} + +func (e downErr) Error() string { return e.desc } +func (e downErr) Timeout() bool { return e.timeout } +func (e downErr) Temporary() bool { return e.temporary } + +func downErrorf(timeout, temporary bool, format string, a ...interface{}) downErr { + return downErr{ + timeout: timeout, + temporary: temporary, + desc: fmt.Sprintf(format, a...), + } +} + +// RoundRobin returns a Balancer that selects addresses round-robin. It uses r to watch +// the name resolution updates and updates the addresses available correspondingly. +func RoundRobin(r naming.Resolver) Balancer { + return &roundRobin{r: r} +} + +type addrInfo struct { + addr Address + connected bool +} + +type roundRobin struct { + r naming.Resolver + w naming.Watcher + addrs []*addrInfo // all the addresses the client should potentially connect + mu sync.Mutex + addrCh chan []Address // the channel to notify gRPC internals the list of addresses the client should connect to. + next int // index of the next address to return for Get() + waitCh chan struct{} // the channel to block when there is no connected address available + done bool // The Balancer is closed. +} + +func (rr *roundRobin) watchAddrUpdates() error { + updates, err := rr.w.Next() + if err != nil { + grpclog.Warningf("grpc: the naming watcher stops working due to %v.", err) + return err + } + rr.mu.Lock() + defer rr.mu.Unlock() + for _, update := range updates { + addr := Address{ + Addr: update.Addr, + Metadata: update.Metadata, + } + switch update.Op { + case naming.Add: + var exist bool + for _, v := range rr.addrs { + if addr == v.addr { + exist = true + grpclog.Infoln("grpc: The name resolver wanted to add an existing address: ", addr) + break + } + } + if exist { + continue + } + rr.addrs = append(rr.addrs, &addrInfo{addr: addr}) + case naming.Delete: + for i, v := range rr.addrs { + if addr == v.addr { + copy(rr.addrs[i:], rr.addrs[i+1:]) + rr.addrs = rr.addrs[:len(rr.addrs)-1] + break + } + } + default: + grpclog.Errorln("Unknown update.Op ", update.Op) + } + } + // Make a copy of rr.addrs and write it onto rr.addrCh so that gRPC internals gets notified. + open := make([]Address, len(rr.addrs)) + for i, v := range rr.addrs { + open[i] = v.addr + } + if rr.done { + return ErrClientConnClosing + } + select { + case <-rr.addrCh: + default: + } + rr.addrCh <- open + return nil +} + +func (rr *roundRobin) Start(target string, config BalancerConfig) error { + rr.mu.Lock() + defer rr.mu.Unlock() + if rr.done { + return ErrClientConnClosing + } + if rr.r == nil { + // If there is no name resolver installed, it is not needed to + // do name resolution. In this case, target is added into rr.addrs + // as the only address available and rr.addrCh stays nil. + rr.addrs = append(rr.addrs, &addrInfo{addr: Address{Addr: target}}) + return nil + } + w, err := rr.r.Resolve(target) + if err != nil { + return err + } + rr.w = w + rr.addrCh = make(chan []Address, 1) + go func() { + for { + if err := rr.watchAddrUpdates(); err != nil { + return + } + } + }() + return nil +} + +// Up sets the connected state of addr and sends notification if there are pending +// Get() calls. +func (rr *roundRobin) Up(addr Address) func(error) { + rr.mu.Lock() + defer rr.mu.Unlock() + var cnt int + for _, a := range rr.addrs { + if a.addr == addr { + if a.connected { + return nil + } + a.connected = true + } + if a.connected { + cnt++ + } + } + // addr is only one which is connected. Notify the Get() callers who are blocking. + if cnt == 1 && rr.waitCh != nil { + close(rr.waitCh) + rr.waitCh = nil + } + return func(err error) { + rr.down(addr, err) + } +} + +// down unsets the connected state of addr. +func (rr *roundRobin) down(addr Address, err error) { + rr.mu.Lock() + defer rr.mu.Unlock() + for _, a := range rr.addrs { + if addr == a.addr { + a.connected = false + break + } + } +} + +// Get returns the next addr in the rotation. +func (rr *roundRobin) Get(ctx context.Context, opts BalancerGetOptions) (addr Address, put func(), err error) { + var ch chan struct{} + rr.mu.Lock() + if rr.done { + rr.mu.Unlock() + err = ErrClientConnClosing + return + } + + if len(rr.addrs) > 0 { + if rr.next >= len(rr.addrs) { + rr.next = 0 + } + next := rr.next + for { + a := rr.addrs[next] + next = (next + 1) % len(rr.addrs) + if a.connected { + addr = a.addr + rr.next = next + rr.mu.Unlock() + return + } + if next == rr.next { + // Has iterated all the possible address but none is connected. + break + } + } + } + if !opts.BlockingWait { + if len(rr.addrs) == 0 { + rr.mu.Unlock() + err = status.Errorf(codes.Unavailable, "there is no address available") + return + } + // Returns the next addr on rr.addrs for failfast RPCs. + addr = rr.addrs[rr.next].addr + rr.next++ + rr.mu.Unlock() + return + } + // Wait on rr.waitCh for non-failfast RPCs. + if rr.waitCh == nil { + ch = make(chan struct{}) + rr.waitCh = ch + } else { + ch = rr.waitCh + } + rr.mu.Unlock() + for { + select { + case <-ctx.Done(): + err = ctx.Err() + return + case <-ch: + rr.mu.Lock() + if rr.done { + rr.mu.Unlock() + err = ErrClientConnClosing + return + } + + if len(rr.addrs) > 0 { + if rr.next >= len(rr.addrs) { + rr.next = 0 + } + next := rr.next + for { + a := rr.addrs[next] + next = (next + 1) % len(rr.addrs) + if a.connected { + addr = a.addr + rr.next = next + rr.mu.Unlock() + return + } + if next == rr.next { + // Has iterated all the possible address but none is connected. + break + } + } + } + // The newly added addr got removed by Down() again. + if rr.waitCh == nil { + ch = make(chan struct{}) + rr.waitCh = ch + } else { + ch = rr.waitCh + } + rr.mu.Unlock() + } + } +} + +func (rr *roundRobin) Notify() <-chan []Address { + return rr.addrCh +} + +func (rr *roundRobin) Close() error { + rr.mu.Lock() + defer rr.mu.Unlock() + if rr.done { + return errBalancerClosed + } + rr.done = true + if rr.w != nil { + rr.w.Close() + } + if rr.waitCh != nil { + close(rr.waitCh) + rr.waitCh = nil + } + if rr.addrCh != nil { + close(rr.addrCh) + } + return nil +} + +// pickFirst is used to test multi-addresses in one addrConn in which all addresses share the same addrConn. +// It is a wrapper around roundRobin balancer. The logic of all methods works fine because balancer.Get() +// returns the only address Up by resetTransport(). +type pickFirst struct { + *roundRobin +} + +func pickFirstBalancerV1(r naming.Resolver) Balancer { + return &pickFirst{&roundRobin{r: r}} +} diff --git a/vendor/google.golang.org/grpc/balancer/balancer.go b/vendor/google.golang.org/grpc/balancer/balancer.go new file mode 100644 index 0000000..219a294 --- /dev/null +++ b/vendor/google.golang.org/grpc/balancer/balancer.go @@ -0,0 +1,223 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package balancer defines APIs for load balancing in gRPC. +// All APIs in this package are experimental. +package balancer + +import ( + "errors" + "net" + "strings" + + "golang.org/x/net/context" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/resolver" +) + +var ( + // m is a map from name to balancer builder. + m = make(map[string]Builder) +) + +// Register registers the balancer builder to the balancer map. +// b.Name (lowercased) will be used as the name registered with +// this builder. +func Register(b Builder) { + m[strings.ToLower(b.Name())] = b +} + +// Get returns the resolver builder registered with the given name. +// Note that the compare is done in a case-insenstive fashion. +// If no builder is register with the name, nil will be returned. +func Get(name string) Builder { + if b, ok := m[strings.ToLower(name)]; ok { + return b + } + return nil +} + +// SubConn represents a gRPC sub connection. +// Each sub connection contains a list of addresses. gRPC will +// try to connect to them (in sequence), and stop trying the +// remainder once one connection is successful. +// +// The reconnect backoff will be applied on the list, not a single address. +// For example, try_on_all_addresses -> backoff -> try_on_all_addresses. +// +// All SubConns start in IDLE, and will not try to connect. To trigger +// the connecting, Balancers must call Connect. +// When the connection encounters an error, it will reconnect immediately. +// When the connection becomes IDLE, it will not reconnect unless Connect is +// called. +// +// This interface is to be implemented by gRPC. Users should not need a +// brand new implementation of this interface. For the situations like +// testing, the new implementation should embed this interface. This allows +// gRPC to add new methods to this interface. +type SubConn interface { + // UpdateAddresses updates the addresses used in this SubConn. + // gRPC checks if currently-connected address is still in the new list. + // If it's in the list, the connection will be kept. + // If it's not in the list, the connection will gracefully closed, and + // a new connection will be created. + // + // This will trigger a state transition for the SubConn. + UpdateAddresses([]resolver.Address) + // Connect starts the connecting for this SubConn. + Connect() +} + +// NewSubConnOptions contains options to create new SubConn. +type NewSubConnOptions struct{} + +// ClientConn represents a gRPC ClientConn. +// +// This interface is to be implemented by gRPC. Users should not need a +// brand new implementation of this interface. For the situations like +// testing, the new implementation should embed this interface. This allows +// gRPC to add new methods to this interface. +type ClientConn interface { + // NewSubConn is called by balancer to create a new SubConn. + // It doesn't block and wait for the connections to be established. + // Behaviors of the SubConn can be controlled by options. + NewSubConn([]resolver.Address, NewSubConnOptions) (SubConn, error) + // RemoveSubConn removes the SubConn from ClientConn. + // The SubConn will be shutdown. + RemoveSubConn(SubConn) + + // UpdateBalancerState is called by balancer to nofity gRPC that some internal + // state in balancer has changed. + // + // gRPC will update the connectivity state of the ClientConn, and will call pick + // on the new picker to pick new SubConn. + UpdateBalancerState(s connectivity.State, p Picker) + + // ResolveNow is called by balancer to notify gRPC to do a name resolving. + ResolveNow(resolver.ResolveNowOption) + + // Target returns the dial target for this ClientConn. + Target() string +} + +// BuildOptions contains additional information for Build. +type BuildOptions struct { + // DialCreds is the transport credential the Balancer implementation can + // use to dial to a remote load balancer server. The Balancer implementations + // can ignore this if it does not need to talk to another party securely. + DialCreds credentials.TransportCredentials + // Dialer is the custom dialer the Balancer implementation can use to dial + // to a remote load balancer server. The Balancer implementations + // can ignore this if it doesn't need to talk to remote balancer. + Dialer func(context.Context, string) (net.Conn, error) +} + +// Builder creates a balancer. +type Builder interface { + // Build creates a new balancer with the ClientConn. + Build(cc ClientConn, opts BuildOptions) Balancer + // Name returns the name of balancers built by this builder. + // It will be used to pick balancers (for example in service config). + Name() string +} + +// PickOptions contains addition information for the Pick operation. +type PickOptions struct{} + +// DoneInfo contains additional information for done. +type DoneInfo struct { + // Err is the rpc error the RPC finished with. It could be nil. + Err error + // BytesSent indicates if any bytes have been sent to the server. + BytesSent bool + // BytesReceived indicates if any byte has been received from the server. + BytesReceived bool +} + +var ( + // ErrNoSubConnAvailable indicates no SubConn is available for pick(). + // gRPC will block the RPC until a new picker is available via UpdateBalancerState(). + ErrNoSubConnAvailable = errors.New("no SubConn is available") + // ErrTransientFailure indicates all SubConns are in TransientFailure. + // WaitForReady RPCs will block, non-WaitForReady RPCs will fail. + ErrTransientFailure = errors.New("all SubConns are in TransientFailure") +) + +// Picker is used by gRPC to pick a SubConn to send an RPC. +// Balancer is expected to generate a new picker from its snapshot everytime its +// internal state has changed. +// +// The pickers used by gRPC can be updated by ClientConn.UpdateBalancerState(). +type Picker interface { + // Pick returns the SubConn to be used to send the RPC. + // The returned SubConn must be one returned by NewSubConn(). + // + // This functions is expected to return: + // - a SubConn that is known to be READY; + // - ErrNoSubConnAvailable if no SubConn is available, but progress is being + // made (for example, some SubConn is in CONNECTING mode); + // - other errors if no active connecting is happening (for example, all SubConn + // are in TRANSIENT_FAILURE mode). + // + // If a SubConn is returned: + // - If it is READY, gRPC will send the RPC on it; + // - If it is not ready, or becomes not ready after it's returned, gRPC will block + // until UpdateBalancerState() is called and will call pick on the new picker. + // + // If the returned error is not nil: + // - If the error is ErrNoSubConnAvailable, gRPC will block until UpdateBalancerState() + // - If the error is ErrTransientFailure: + // - If the RPC is wait-for-ready, gRPC will block until UpdateBalancerState() + // is called to pick again; + // - Otherwise, RPC will fail with unavailable error. + // - Else (error is other non-nil error): + // - The RPC will fail with unavailable error. + // + // The returned done() function will be called once the rpc has finished, with the + // final status of that RPC. + // done may be nil if balancer doesn't care about the RPC status. + Pick(ctx context.Context, opts PickOptions) (conn SubConn, done func(DoneInfo), err error) +} + +// Balancer takes input from gRPC, manages SubConns, and collects and aggregates +// the connectivity states. +// +// It also generates and updates the Picker used by gRPC to pick SubConns for RPCs. +// +// HandleSubConnectionStateChange, HandleResolvedAddrs and Close are guaranteed +// to be called synchronously from the same goroutine. +// There's no guarantee on picker.Pick, it may be called anytime. +type Balancer interface { + // HandleSubConnStateChange is called by gRPC when the connectivity state + // of sc has changed. + // Balancer is expected to aggregate all the state of SubConn and report + // that back to gRPC. + // Balancer should also generate and update Pickers when its internal state has + // been changed by the new state. + HandleSubConnStateChange(sc SubConn, state connectivity.State) + // HandleResolvedAddrs is called by gRPC to send updated resolved addresses to + // balancers. + // Balancer can create new SubConn or remove SubConn with the addresses. + // An empty address slice and a non-nil error will be passed if the resolver returns + // non-nil error to gRPC. + HandleResolvedAddrs([]resolver.Address, error) + // Close closes the balancer. The balancer is not required to call + // ClientConn.RemoveSubConn for its existing SubConns. + Close() +} diff --git a/vendor/google.golang.org/grpc/balancer/base/balancer.go b/vendor/google.golang.org/grpc/balancer/base/balancer.go new file mode 100644 index 0000000..1e962b7 --- /dev/null +++ b/vendor/google.golang.org/grpc/balancer/base/balancer.go @@ -0,0 +1,209 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package base + +import ( + "golang.org/x/net/context" + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/resolver" +) + +type baseBuilder struct { + name string + pickerBuilder PickerBuilder +} + +func (bb *baseBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions) balancer.Balancer { + return &baseBalancer{ + cc: cc, + pickerBuilder: bb.pickerBuilder, + + subConns: make(map[resolver.Address]balancer.SubConn), + scStates: make(map[balancer.SubConn]connectivity.State), + csEvltr: &connectivityStateEvaluator{}, + // Initialize picker to a picker that always return + // ErrNoSubConnAvailable, because when state of a SubConn changes, we + // may call UpdateBalancerState with this picker. + picker: NewErrPicker(balancer.ErrNoSubConnAvailable), + } +} + +func (bb *baseBuilder) Name() string { + return bb.name +} + +type baseBalancer struct { + cc balancer.ClientConn + pickerBuilder PickerBuilder + + csEvltr *connectivityStateEvaluator + state connectivity.State + + subConns map[resolver.Address]balancer.SubConn + scStates map[balancer.SubConn]connectivity.State + picker balancer.Picker +} + +func (b *baseBalancer) HandleResolvedAddrs(addrs []resolver.Address, err error) { + if err != nil { + grpclog.Infof("base.baseBalancer: HandleResolvedAddrs called with error %v", err) + return + } + grpclog.Infoln("base.baseBalancer: got new resolved addresses: ", addrs) + // addrsSet is the set converted from addrs, it's used for quick lookup of an address. + addrsSet := make(map[resolver.Address]struct{}) + for _, a := range addrs { + addrsSet[a] = struct{}{} + if _, ok := b.subConns[a]; !ok { + // a is a new address (not existing in b.subConns). + sc, err := b.cc.NewSubConn([]resolver.Address{a}, balancer.NewSubConnOptions{}) + if err != nil { + grpclog.Warningf("base.baseBalancer: failed to create new SubConn: %v", err) + continue + } + b.subConns[a] = sc + b.scStates[sc] = connectivity.Idle + sc.Connect() + } + } + for a, sc := range b.subConns { + // a was removed by resolver. + if _, ok := addrsSet[a]; !ok { + b.cc.RemoveSubConn(sc) + delete(b.subConns, a) + // Keep the state of this sc in b.scStates until sc's state becomes Shutdown. + // The entry will be deleted in HandleSubConnStateChange. + } + } +} + +// regeneratePicker takes a snapshot of the balancer, and generates a picker +// from it. The picker is +// - errPicker with ErrTransientFailure if the balancer is in TransientFailure, +// - built by the pickerBuilder with all READY SubConns otherwise. +func (b *baseBalancer) regeneratePicker() { + if b.state == connectivity.TransientFailure { + b.picker = NewErrPicker(balancer.ErrTransientFailure) + return + } + readySCs := make(map[resolver.Address]balancer.SubConn) + + // Filter out all ready SCs from full subConn map. + for addr, sc := range b.subConns { + if st, ok := b.scStates[sc]; ok && st == connectivity.Ready { + readySCs[addr] = sc + } + } + b.picker = b.pickerBuilder.Build(readySCs) +} + +func (b *baseBalancer) HandleSubConnStateChange(sc balancer.SubConn, s connectivity.State) { + grpclog.Infof("base.baseBalancer: handle SubConn state change: %p, %v", sc, s) + oldS, ok := b.scStates[sc] + if !ok { + grpclog.Infof("base.baseBalancer: got state changes for an unknown SubConn: %p, %v", sc, s) + return + } + b.scStates[sc] = s + switch s { + case connectivity.Idle: + sc.Connect() + case connectivity.Shutdown: + // When an address was removed by resolver, b called RemoveSubConn but + // kept the sc's state in scStates. Remove state for this sc here. + delete(b.scStates, sc) + } + + oldAggrState := b.state + b.state = b.csEvltr.recordTransition(oldS, s) + + // Regenerate picker when one of the following happens: + // - this sc became ready from not-ready + // - this sc became not-ready from ready + // - the aggregated state of balancer became TransientFailure from non-TransientFailure + // - the aggregated state of balancer became non-TransientFailure from TransientFailure + if (s == connectivity.Ready) != (oldS == connectivity.Ready) || + (b.state == connectivity.TransientFailure) != (oldAggrState == connectivity.TransientFailure) { + b.regeneratePicker() + } + + b.cc.UpdateBalancerState(b.state, b.picker) + return +} + +// Close is a nop because base balancer doesn't have internal state to clean up, +// and it doesn't need to call RemoveSubConn for the SubConns. +func (b *baseBalancer) Close() { +} + +// NewErrPicker returns a picker that always returns err on Pick(). +func NewErrPicker(err error) balancer.Picker { + return &errPicker{err: err} +} + +type errPicker struct { + err error // Pick() always returns this err. +} + +func (p *errPicker) Pick(ctx context.Context, opts balancer.PickOptions) (balancer.SubConn, func(balancer.DoneInfo), error) { + return nil, nil, p.err +} + +// connectivityStateEvaluator gets updated by addrConns when their +// states transition, based on which it evaluates the state of +// ClientConn. +type connectivityStateEvaluator struct { + numReady uint64 // Number of addrConns in ready state. + numConnecting uint64 // Number of addrConns in connecting state. + numTransientFailure uint64 // Number of addrConns in transientFailure. +} + +// recordTransition records state change happening in every subConn and based on +// that it evaluates what aggregated state should be. +// It can only transition between Ready, Connecting and TransientFailure. Other states, +// Idle and Shutdown are transitioned into by ClientConn; in the beginning of the connection +// before any subConn is created ClientConn is in idle state. In the end when ClientConn +// closes it is in Shutdown state. +// +// recordTransition should only be called synchronously from the same goroutine. +func (cse *connectivityStateEvaluator) recordTransition(oldState, newState connectivity.State) connectivity.State { + // Update counters. + for idx, state := range []connectivity.State{oldState, newState} { + updateVal := 2*uint64(idx) - 1 // -1 for oldState and +1 for new. + switch state { + case connectivity.Ready: + cse.numReady += updateVal + case connectivity.Connecting: + cse.numConnecting += updateVal + case connectivity.TransientFailure: + cse.numTransientFailure += updateVal + } + } + + // Evaluate. + if cse.numReady > 0 { + return connectivity.Ready + } + if cse.numConnecting > 0 { + return connectivity.Connecting + } + return connectivity.TransientFailure +} diff --git a/vendor/google.golang.org/grpc/balancer/base/base.go b/vendor/google.golang.org/grpc/balancer/base/base.go new file mode 100644 index 0000000..012ace2 --- /dev/null +++ b/vendor/google.golang.org/grpc/balancer/base/base.go @@ -0,0 +1,52 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package base defines a balancer base that can be used to build balancers with +// different picking algorithms. +// +// The base balancer creates a new SubConn for each resolved address. The +// provided picker will only be notified about READY SubConns. +// +// This package is the base of round_robin balancer, its purpose is to be used +// to build round_robin like balancers with complex picking algorithms. +// Balancers with more complicated logic should try to implement a balancer +// builder from scratch. +// +// All APIs in this package are experimental. +package base + +import ( + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/resolver" +) + +// PickerBuilder creates balancer.Picker. +type PickerBuilder interface { + // Build takes a slice of ready SubConns, and returns a picker that will be + // used by gRPC to pick a SubConn. + Build(readySCs map[resolver.Address]balancer.SubConn) balancer.Picker +} + +// NewBalancerBuilder returns a balancer builder. The balancers +// built by this builder will use the picker builder to build pickers. +func NewBalancerBuilder(name string, pb PickerBuilder) balancer.Builder { + return &baseBuilder{ + name: name, + pickerBuilder: pb, + } +} diff --git a/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go b/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go new file mode 100644 index 0000000..2eda0a1 --- /dev/null +++ b/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go @@ -0,0 +1,79 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package roundrobin defines a roundrobin balancer. Roundrobin balancer is +// installed as one of the default balancers in gRPC, users don't need to +// explicitly install this balancer. +package roundrobin + +import ( + "sync" + + "golang.org/x/net/context" + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/balancer/base" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/resolver" +) + +// Name is the name of round_robin balancer. +const Name = "round_robin" + +// newBuilder creates a new roundrobin balancer builder. +func newBuilder() balancer.Builder { + return base.NewBalancerBuilder(Name, &rrPickerBuilder{}) +} + +func init() { + balancer.Register(newBuilder()) +} + +type rrPickerBuilder struct{} + +func (*rrPickerBuilder) Build(readySCs map[resolver.Address]balancer.SubConn) balancer.Picker { + grpclog.Infof("roundrobinPicker: newPicker called with readySCs: %v", readySCs) + var scs []balancer.SubConn + for _, sc := range readySCs { + scs = append(scs, sc) + } + return &rrPicker{ + subConns: scs, + } +} + +type rrPicker struct { + // subConns is the snapshot of the roundrobin balancer when this picker was + // created. The slice is immutable. Each Get() will do a round robin + // selection from it and return the selected SubConn. + subConns []balancer.SubConn + + mu sync.Mutex + next int +} + +func (p *rrPicker) Pick(ctx context.Context, opts balancer.PickOptions) (balancer.SubConn, func(balancer.DoneInfo), error) { + if len(p.subConns) <= 0 { + return nil, nil, balancer.ErrNoSubConnAvailable + } + + p.mu.Lock() + sc := p.subConns[p.next] + p.next = (p.next + 1) % len(p.subConns) + p.mu.Unlock() + return sc, nil, nil +} diff --git a/vendor/google.golang.org/grpc/balancer_conn_wrappers.go b/vendor/google.golang.org/grpc/balancer_conn_wrappers.go new file mode 100644 index 0000000..db6f0ae --- /dev/null +++ b/vendor/google.golang.org/grpc/balancer_conn_wrappers.go @@ -0,0 +1,300 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "fmt" + "sync" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/resolver" +) + +// scStateUpdate contains the subConn and the new state it changed to. +type scStateUpdate struct { + sc balancer.SubConn + state connectivity.State +} + +// scStateUpdateBuffer is an unbounded channel for scStateChangeTuple. +// TODO make a general purpose buffer that uses interface{}. +type scStateUpdateBuffer struct { + c chan *scStateUpdate + mu sync.Mutex + backlog []*scStateUpdate +} + +func newSCStateUpdateBuffer() *scStateUpdateBuffer { + return &scStateUpdateBuffer{ + c: make(chan *scStateUpdate, 1), + } +} + +func (b *scStateUpdateBuffer) put(t *scStateUpdate) { + b.mu.Lock() + defer b.mu.Unlock() + if len(b.backlog) == 0 { + select { + case b.c <- t: + return + default: + } + } + b.backlog = append(b.backlog, t) +} + +func (b *scStateUpdateBuffer) load() { + b.mu.Lock() + defer b.mu.Unlock() + if len(b.backlog) > 0 { + select { + case b.c <- b.backlog[0]: + b.backlog[0] = nil + b.backlog = b.backlog[1:] + default: + } + } +} + +// get returns the channel that the scStateUpdate will be sent to. +// +// Upon receiving, the caller should call load to send another +// scStateChangeTuple onto the channel if there is any. +func (b *scStateUpdateBuffer) get() <-chan *scStateUpdate { + return b.c +} + +// resolverUpdate contains the new resolved addresses or error if there's +// any. +type resolverUpdate struct { + addrs []resolver.Address + err error +} + +// ccBalancerWrapper is a wrapper on top of cc for balancers. +// It implements balancer.ClientConn interface. +type ccBalancerWrapper struct { + cc *ClientConn + balancer balancer.Balancer + stateChangeQueue *scStateUpdateBuffer + resolverUpdateCh chan *resolverUpdate + done chan struct{} + + mu sync.Mutex + subConns map[*acBalancerWrapper]struct{} +} + +func newCCBalancerWrapper(cc *ClientConn, b balancer.Builder, bopts balancer.BuildOptions) *ccBalancerWrapper { + ccb := &ccBalancerWrapper{ + cc: cc, + stateChangeQueue: newSCStateUpdateBuffer(), + resolverUpdateCh: make(chan *resolverUpdate, 1), + done: make(chan struct{}), + subConns: make(map[*acBalancerWrapper]struct{}), + } + go ccb.watcher() + ccb.balancer = b.Build(ccb, bopts) + return ccb +} + +// watcher balancer functions sequencially, so the balancer can be implemeneted +// lock-free. +func (ccb *ccBalancerWrapper) watcher() { + for { + select { + case t := <-ccb.stateChangeQueue.get(): + ccb.stateChangeQueue.load() + select { + case <-ccb.done: + ccb.balancer.Close() + return + default: + } + ccb.balancer.HandleSubConnStateChange(t.sc, t.state) + case t := <-ccb.resolverUpdateCh: + select { + case <-ccb.done: + ccb.balancer.Close() + return + default: + } + ccb.balancer.HandleResolvedAddrs(t.addrs, t.err) + case <-ccb.done: + } + + select { + case <-ccb.done: + ccb.balancer.Close() + ccb.mu.Lock() + scs := ccb.subConns + ccb.subConns = nil + ccb.mu.Unlock() + for acbw := range scs { + ccb.cc.removeAddrConn(acbw.getAddrConn(), errConnDrain) + } + return + default: + } + } +} + +func (ccb *ccBalancerWrapper) close() { + close(ccb.done) +} + +func (ccb *ccBalancerWrapper) handleSubConnStateChange(sc balancer.SubConn, s connectivity.State) { + // When updating addresses for a SubConn, if the address in use is not in + // the new addresses, the old ac will be tearDown() and a new ac will be + // created. tearDown() generates a state change with Shutdown state, we + // don't want the balancer to receive this state change. So before + // tearDown() on the old ac, ac.acbw (acWrapper) will be set to nil, and + // this function will be called with (nil, Shutdown). We don't need to call + // balancer method in this case. + if sc == nil { + return + } + ccb.stateChangeQueue.put(&scStateUpdate{ + sc: sc, + state: s, + }) +} + +func (ccb *ccBalancerWrapper) handleResolvedAddrs(addrs []resolver.Address, err error) { + select { + case <-ccb.resolverUpdateCh: + default: + } + ccb.resolverUpdateCh <- &resolverUpdate{ + addrs: addrs, + err: err, + } +} + +func (ccb *ccBalancerWrapper) NewSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (balancer.SubConn, error) { + if len(addrs) <= 0 { + return nil, fmt.Errorf("grpc: cannot create SubConn with empty address list") + } + ccb.mu.Lock() + defer ccb.mu.Unlock() + if ccb.subConns == nil { + return nil, fmt.Errorf("grpc: ClientConn balancer wrapper was closed") + } + ac, err := ccb.cc.newAddrConn(addrs) + if err != nil { + return nil, err + } + acbw := &acBalancerWrapper{ac: ac} + acbw.ac.mu.Lock() + ac.acbw = acbw + acbw.ac.mu.Unlock() + ccb.subConns[acbw] = struct{}{} + return acbw, nil +} + +func (ccb *ccBalancerWrapper) RemoveSubConn(sc balancer.SubConn) { + acbw, ok := sc.(*acBalancerWrapper) + if !ok { + return + } + ccb.mu.Lock() + defer ccb.mu.Unlock() + if ccb.subConns == nil { + return + } + delete(ccb.subConns, acbw) + ccb.cc.removeAddrConn(acbw.getAddrConn(), errConnDrain) +} + +func (ccb *ccBalancerWrapper) UpdateBalancerState(s connectivity.State, p balancer.Picker) { + ccb.mu.Lock() + defer ccb.mu.Unlock() + if ccb.subConns == nil { + return + } + ccb.cc.csMgr.updateState(s) + ccb.cc.blockingpicker.updatePicker(p) +} + +func (ccb *ccBalancerWrapper) ResolveNow(o resolver.ResolveNowOption) { + ccb.cc.resolveNow(o) +} + +func (ccb *ccBalancerWrapper) Target() string { + return ccb.cc.target +} + +// acBalancerWrapper is a wrapper on top of ac for balancers. +// It implements balancer.SubConn interface. +type acBalancerWrapper struct { + mu sync.Mutex + ac *addrConn +} + +func (acbw *acBalancerWrapper) UpdateAddresses(addrs []resolver.Address) { + acbw.mu.Lock() + defer acbw.mu.Unlock() + if len(addrs) <= 0 { + acbw.ac.tearDown(errConnDrain) + return + } + if !acbw.ac.tryUpdateAddrs(addrs) { + cc := acbw.ac.cc + acbw.ac.mu.Lock() + // Set old ac.acbw to nil so the Shutdown state update will be ignored + // by balancer. + // + // TODO(bar) the state transition could be wrong when tearDown() old ac + // and creating new ac, fix the transition. + acbw.ac.acbw = nil + acbw.ac.mu.Unlock() + acState := acbw.ac.getState() + acbw.ac.tearDown(errConnDrain) + + if acState == connectivity.Shutdown { + return + } + + ac, err := cc.newAddrConn(addrs) + if err != nil { + grpclog.Warningf("acBalancerWrapper: UpdateAddresses: failed to newAddrConn: %v", err) + return + } + acbw.ac = ac + ac.mu.Lock() + ac.acbw = acbw + ac.mu.Unlock() + if acState != connectivity.Idle { + ac.connect() + } + } +} + +func (acbw *acBalancerWrapper) Connect() { + acbw.mu.Lock() + defer acbw.mu.Unlock() + acbw.ac.connect() +} + +func (acbw *acBalancerWrapper) getAddrConn() *addrConn { + acbw.mu.Lock() + defer acbw.mu.Unlock() + return acbw.ac +} diff --git a/vendor/google.golang.org/grpc/balancer_v1_wrapper.go b/vendor/google.golang.org/grpc/balancer_v1_wrapper.go new file mode 100644 index 0000000..faabf87 --- /dev/null +++ b/vendor/google.golang.org/grpc/balancer_v1_wrapper.go @@ -0,0 +1,375 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "strings" + "sync" + + "golang.org/x/net/context" + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/status" +) + +type balancerWrapperBuilder struct { + b Balancer // The v1 balancer. +} + +func (bwb *balancerWrapperBuilder) Build(cc balancer.ClientConn, opts balancer.BuildOptions) balancer.Balancer { + targetAddr := cc.Target() + targetSplitted := strings.Split(targetAddr, ":///") + if len(targetSplitted) >= 2 { + targetAddr = targetSplitted[1] + } + + bwb.b.Start(targetAddr, BalancerConfig{ + DialCreds: opts.DialCreds, + Dialer: opts.Dialer, + }) + _, pickfirst := bwb.b.(*pickFirst) + bw := &balancerWrapper{ + balancer: bwb.b, + pickfirst: pickfirst, + cc: cc, + targetAddr: targetAddr, + startCh: make(chan struct{}), + conns: make(map[resolver.Address]balancer.SubConn), + connSt: make(map[balancer.SubConn]*scState), + csEvltr: &connectivityStateEvaluator{}, + state: connectivity.Idle, + } + cc.UpdateBalancerState(connectivity.Idle, bw) + go bw.lbWatcher() + return bw +} + +func (bwb *balancerWrapperBuilder) Name() string { + return "wrapper" +} + +type scState struct { + addr Address // The v1 address type. + s connectivity.State + down func(error) +} + +type balancerWrapper struct { + balancer Balancer // The v1 balancer. + pickfirst bool + + cc balancer.ClientConn + targetAddr string // Target without the scheme. + + // To aggregate the connectivity state. + csEvltr *connectivityStateEvaluator + state connectivity.State + + mu sync.Mutex + conns map[resolver.Address]balancer.SubConn + connSt map[balancer.SubConn]*scState + // This channel is closed when handling the first resolver result. + // lbWatcher blocks until this is closed, to avoid race between + // - NewSubConn is created, cc wants to notify balancer of state changes; + // - Build hasn't return, cc doesn't have access to balancer. + startCh chan struct{} +} + +// lbWatcher watches the Notify channel of the balancer and manages +// connections accordingly. +func (bw *balancerWrapper) lbWatcher() { + <-bw.startCh + notifyCh := bw.balancer.Notify() + if notifyCh == nil { + // There's no resolver in the balancer. Connect directly. + a := resolver.Address{ + Addr: bw.targetAddr, + Type: resolver.Backend, + } + sc, err := bw.cc.NewSubConn([]resolver.Address{a}, balancer.NewSubConnOptions{}) + if err != nil { + grpclog.Warningf("Error creating connection to %v. Err: %v", a, err) + } else { + bw.mu.Lock() + bw.conns[a] = sc + bw.connSt[sc] = &scState{ + addr: Address{Addr: bw.targetAddr}, + s: connectivity.Idle, + } + bw.mu.Unlock() + sc.Connect() + } + return + } + + for addrs := range notifyCh { + grpclog.Infof("balancerWrapper: got update addr from Notify: %v\n", addrs) + if bw.pickfirst { + var ( + oldA resolver.Address + oldSC balancer.SubConn + ) + bw.mu.Lock() + for oldA, oldSC = range bw.conns { + break + } + bw.mu.Unlock() + if len(addrs) <= 0 { + if oldSC != nil { + // Teardown old sc. + bw.mu.Lock() + delete(bw.conns, oldA) + delete(bw.connSt, oldSC) + bw.mu.Unlock() + bw.cc.RemoveSubConn(oldSC) + } + continue + } + + var newAddrs []resolver.Address + for _, a := range addrs { + newAddr := resolver.Address{ + Addr: a.Addr, + Type: resolver.Backend, // All addresses from balancer are all backends. + ServerName: "", + Metadata: a.Metadata, + } + newAddrs = append(newAddrs, newAddr) + } + if oldSC == nil { + // Create new sc. + sc, err := bw.cc.NewSubConn(newAddrs, balancer.NewSubConnOptions{}) + if err != nil { + grpclog.Warningf("Error creating connection to %v. Err: %v", newAddrs, err) + } else { + bw.mu.Lock() + // For pickfirst, there should be only one SubConn, so the + // address doesn't matter. All states updating (up and down) + // and picking should all happen on that only SubConn. + bw.conns[resolver.Address{}] = sc + bw.connSt[sc] = &scState{ + addr: addrs[0], // Use the first address. + s: connectivity.Idle, + } + bw.mu.Unlock() + sc.Connect() + } + } else { + bw.mu.Lock() + bw.connSt[oldSC].addr = addrs[0] + bw.mu.Unlock() + oldSC.UpdateAddresses(newAddrs) + } + } else { + var ( + add []resolver.Address // Addresses need to setup connections. + del []balancer.SubConn // Connections need to tear down. + ) + resAddrs := make(map[resolver.Address]Address) + for _, a := range addrs { + resAddrs[resolver.Address{ + Addr: a.Addr, + Type: resolver.Backend, // All addresses from balancer are all backends. + ServerName: "", + Metadata: a.Metadata, + }] = a + } + bw.mu.Lock() + for a := range resAddrs { + if _, ok := bw.conns[a]; !ok { + add = append(add, a) + } + } + for a, c := range bw.conns { + if _, ok := resAddrs[a]; !ok { + del = append(del, c) + delete(bw.conns, a) + // Keep the state of this sc in bw.connSt until its state becomes Shutdown. + } + } + bw.mu.Unlock() + for _, a := range add { + sc, err := bw.cc.NewSubConn([]resolver.Address{a}, balancer.NewSubConnOptions{}) + if err != nil { + grpclog.Warningf("Error creating connection to %v. Err: %v", a, err) + } else { + bw.mu.Lock() + bw.conns[a] = sc + bw.connSt[sc] = &scState{ + addr: resAddrs[a], + s: connectivity.Idle, + } + bw.mu.Unlock() + sc.Connect() + } + } + for _, c := range del { + bw.cc.RemoveSubConn(c) + } + } + } +} + +func (bw *balancerWrapper) HandleSubConnStateChange(sc balancer.SubConn, s connectivity.State) { + bw.mu.Lock() + defer bw.mu.Unlock() + scSt, ok := bw.connSt[sc] + if !ok { + return + } + if s == connectivity.Idle { + sc.Connect() + } + oldS := scSt.s + scSt.s = s + if oldS != connectivity.Ready && s == connectivity.Ready { + scSt.down = bw.balancer.Up(scSt.addr) + } else if oldS == connectivity.Ready && s != connectivity.Ready { + if scSt.down != nil { + scSt.down(errConnClosing) + } + } + sa := bw.csEvltr.recordTransition(oldS, s) + if bw.state != sa { + bw.state = sa + } + bw.cc.UpdateBalancerState(bw.state, bw) + if s == connectivity.Shutdown { + // Remove state for this sc. + delete(bw.connSt, sc) + } + return +} + +func (bw *balancerWrapper) HandleResolvedAddrs([]resolver.Address, error) { + bw.mu.Lock() + defer bw.mu.Unlock() + select { + case <-bw.startCh: + default: + close(bw.startCh) + } + // There should be a resolver inside the balancer. + // All updates here, if any, are ignored. + return +} + +func (bw *balancerWrapper) Close() { + bw.mu.Lock() + defer bw.mu.Unlock() + select { + case <-bw.startCh: + default: + close(bw.startCh) + } + bw.balancer.Close() + return +} + +// The picker is the balancerWrapper itself. +// Pick should never return ErrNoSubConnAvailable. +// It either blocks or returns error, consistent with v1 balancer Get(). +func (bw *balancerWrapper) Pick(ctx context.Context, opts balancer.PickOptions) (balancer.SubConn, func(balancer.DoneInfo), error) { + failfast := true // Default failfast is true. + if ss, ok := rpcInfoFromContext(ctx); ok { + failfast = ss.failfast + } + a, p, err := bw.balancer.Get(ctx, BalancerGetOptions{BlockingWait: !failfast}) + if err != nil { + return nil, nil, err + } + var done func(balancer.DoneInfo) + if p != nil { + done = func(i balancer.DoneInfo) { p() } + } + var sc balancer.SubConn + bw.mu.Lock() + defer bw.mu.Unlock() + if bw.pickfirst { + // Get the first sc in conns. + for _, sc = range bw.conns { + break + } + } else { + var ok bool + sc, ok = bw.conns[resolver.Address{ + Addr: a.Addr, + Type: resolver.Backend, + ServerName: "", + Metadata: a.Metadata, + }] + if !ok && failfast { + return nil, nil, status.Errorf(codes.Unavailable, "there is no connection available") + } + if s, ok := bw.connSt[sc]; failfast && (!ok || s.s != connectivity.Ready) { + // If the returned sc is not ready and RPC is failfast, + // return error, and this RPC will fail. + return nil, nil, status.Errorf(codes.Unavailable, "there is no connection available") + } + } + + return sc, done, nil +} + +// connectivityStateEvaluator gets updated by addrConns when their +// states transition, based on which it evaluates the state of +// ClientConn. +type connectivityStateEvaluator struct { + mu sync.Mutex + numReady uint64 // Number of addrConns in ready state. + numConnecting uint64 // Number of addrConns in connecting state. + numTransientFailure uint64 // Number of addrConns in transientFailure. +} + +// recordTransition records state change happening in every subConn and based on +// that it evaluates what aggregated state should be. +// It can only transition between Ready, Connecting and TransientFailure. Other states, +// Idle and Shutdown are transitioned into by ClientConn; in the beginning of the connection +// before any subConn is created ClientConn is in idle state. In the end when ClientConn +// closes it is in Shutdown state. +// TODO Note that in later releases, a ClientConn with no activity will be put into an Idle state. +func (cse *connectivityStateEvaluator) recordTransition(oldState, newState connectivity.State) connectivity.State { + cse.mu.Lock() + defer cse.mu.Unlock() + + // Update counters. + for idx, state := range []connectivity.State{oldState, newState} { + updateVal := 2*uint64(idx) - 1 // -1 for oldState and +1 for new. + switch state { + case connectivity.Ready: + cse.numReady += updateVal + case connectivity.Connecting: + cse.numConnecting += updateVal + case connectivity.TransientFailure: + cse.numTransientFailure += updateVal + } + } + + // Evaluate. + if cse.numReady > 0 { + return connectivity.Ready + } + if cse.numConnecting > 0 { + return connectivity.Connecting + } + return connectivity.TransientFailure +} diff --git a/vendor/google.golang.org/grpc/call.go b/vendor/google.golang.org/grpc/call.go new file mode 100644 index 0000000..f73b7d5 --- /dev/null +++ b/vendor/google.golang.org/grpc/call.go @@ -0,0 +1,93 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "golang.org/x/net/context" +) + +// Invoke sends the RPC request on the wire and returns after response is +// received. This is typically called by generated code. +// +// All errors returned by Invoke are compatible with the status package. +func (cc *ClientConn) Invoke(ctx context.Context, method string, args, reply interface{}, opts ...CallOption) error { + // allow interceptor to see all applicable call options, which means those + // configured as defaults from dial option as well as per-call options + opts = combine(cc.dopts.callOptions, opts) + + if cc.dopts.unaryInt != nil { + return cc.dopts.unaryInt(ctx, method, args, reply, cc, invoke, opts...) + } + return invoke(ctx, method, args, reply, cc, opts...) +} + +func combine(o1 []CallOption, o2 []CallOption) []CallOption { + // we don't use append because o1 could have extra capacity whose + // elements would be overwritten, which could cause inadvertent + // sharing (and race connditions) between concurrent calls + if len(o1) == 0 { + return o2 + } else if len(o2) == 0 { + return o1 + } + ret := make([]CallOption, len(o1)+len(o2)) + copy(ret, o1) + copy(ret[len(o1):], o2) + return ret +} + +// Invoke sends the RPC request on the wire and returns after response is +// received. This is typically called by generated code. +// +// DEPRECATED: Use ClientConn.Invoke instead. +func Invoke(ctx context.Context, method string, args, reply interface{}, cc *ClientConn, opts ...CallOption) error { + return cc.Invoke(ctx, method, args, reply, opts...) +} + +var unaryStreamDesc = &StreamDesc{ServerStreams: false, ClientStreams: false} + +func invoke(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, opts ...CallOption) error { + // TODO: implement retries in clientStream and make this simply + // newClientStream, SendMsg, RecvMsg. + firstAttempt := true + for { + csInt, err := newClientStream(ctx, unaryStreamDesc, cc, method, opts...) + if err != nil { + return err + } + cs := csInt.(*clientStream) + if err := cs.SendMsg(req); err != nil { + if !cs.c.failFast && cs.attempt.s.Unprocessed() && firstAttempt { + // TODO: Add a field to header for grpc-transparent-retry-attempts + firstAttempt = false + continue + } + return err + } + if err := cs.RecvMsg(reply); err != nil { + if !cs.c.failFast && cs.attempt.s.Unprocessed() && firstAttempt { + // TODO: Add a field to header for grpc-transparent-retry-attempts + firstAttempt = false + continue + } + return err + } + return nil + } +} diff --git a/vendor/google.golang.org/grpc/clientconn.go b/vendor/google.golang.org/grpc/clientconn.go new file mode 100644 index 0000000..6385407 --- /dev/null +++ b/vendor/google.golang.org/grpc/clientconn.go @@ -0,0 +1,1403 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "errors" + "fmt" + "math" + "net" + "reflect" + "strings" + "sync" + "time" + + "golang.org/x/net/context" + "golang.org/x/net/trace" + "google.golang.org/grpc/balancer" + _ "google.golang.org/grpc/balancer/roundrobin" // To register roundrobin. + "google.golang.org/grpc/codes" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/resolver" + _ "google.golang.org/grpc/resolver/dns" // To register dns resolver. + _ "google.golang.org/grpc/resolver/passthrough" // To register passthrough resolver. + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" + "google.golang.org/grpc/transport" +) + +const ( + // minimum time to give a connection to complete + minConnectTimeout = 20 * time.Second +) + +var ( + // ErrClientConnClosing indicates that the operation is illegal because + // the ClientConn is closing. + // + // Deprecated: this error should not be relied upon by users; use the status + // code of Canceled instead. + ErrClientConnClosing = status.Error(codes.Canceled, "grpc: the client connection is closing") + // errConnDrain indicates that the connection starts to be drained and does not accept any new RPCs. + errConnDrain = errors.New("grpc: the connection is drained") + // errConnClosing indicates that the connection is closing. + errConnClosing = errors.New("grpc: the connection is closing") + // errConnUnavailable indicates that the connection is unavailable. + errConnUnavailable = errors.New("grpc: the connection is unavailable") + // errBalancerClosed indicates that the balancer is closed. + errBalancerClosed = errors.New("grpc: balancer is closed") + // We use an accessor so that minConnectTimeout can be + // atomically read and updated while testing. + getMinConnectTimeout = func() time.Duration { + return minConnectTimeout + } +) + +// The following errors are returned from Dial and DialContext +var ( + // errNoTransportSecurity indicates that there is no transport security + // being set for ClientConn. Users should either set one or explicitly + // call WithInsecure DialOption to disable security. + errNoTransportSecurity = errors.New("grpc: no transport security set (use grpc.WithInsecure() explicitly or set credentials)") + // errTransportCredentialsMissing indicates that users want to transmit security + // information (e.g., oauth2 token) which requires secure connection on an insecure + // connection. + errTransportCredentialsMissing = errors.New("grpc: the credentials require transport level security (use grpc.WithTransportCredentials() to set)") + // errCredentialsConflict indicates that grpc.WithTransportCredentials() + // and grpc.WithInsecure() are both called for a connection. + errCredentialsConflict = errors.New("grpc: transport credentials are set for an insecure connection (grpc.WithTransportCredentials() and grpc.WithInsecure() are both called)") + // errNetworkIO indicates that the connection is down due to some network I/O error. + errNetworkIO = errors.New("grpc: failed with network I/O error") +) + +// dialOptions configure a Dial call. dialOptions are set by the DialOption +// values passed to Dial. +type dialOptions struct { + unaryInt UnaryClientInterceptor + streamInt StreamClientInterceptor + cp Compressor + dc Decompressor + bs backoffStrategy + block bool + insecure bool + timeout time.Duration + scChan <-chan ServiceConfig + copts transport.ConnectOptions + callOptions []CallOption + // This is used by v1 balancer dial option WithBalancer to support v1 + // balancer, and also by WithBalancerName dial option. + balancerBuilder balancer.Builder + // This is to support grpclb. + resolverBuilder resolver.Builder + waitForHandshake bool +} + +const ( + defaultClientMaxReceiveMessageSize = 1024 * 1024 * 4 + defaultClientMaxSendMessageSize = math.MaxInt32 +) + +// DialOption configures how we set up the connection. +type DialOption func(*dialOptions) + +// WithWaitForHandshake blocks until the initial settings frame is received from the +// server before assigning RPCs to the connection. +// Experimental API. +func WithWaitForHandshake() DialOption { + return func(o *dialOptions) { + o.waitForHandshake = true + } +} + +// WithWriteBufferSize lets you set the size of write buffer, this determines how much data can be batched +// before doing a write on the wire. +func WithWriteBufferSize(s int) DialOption { + return func(o *dialOptions) { + o.copts.WriteBufferSize = s + } +} + +// WithReadBufferSize lets you set the size of read buffer, this determines how much data can be read at most +// for each read syscall. +func WithReadBufferSize(s int) DialOption { + return func(o *dialOptions) { + o.copts.ReadBufferSize = s + } +} + +// WithInitialWindowSize returns a DialOption which sets the value for initial window size on a stream. +// The lower bound for window size is 64K and any value smaller than that will be ignored. +func WithInitialWindowSize(s int32) DialOption { + return func(o *dialOptions) { + o.copts.InitialWindowSize = s + } +} + +// WithInitialConnWindowSize returns a DialOption which sets the value for initial window size on a connection. +// The lower bound for window size is 64K and any value smaller than that will be ignored. +func WithInitialConnWindowSize(s int32) DialOption { + return func(o *dialOptions) { + o.copts.InitialConnWindowSize = s + } +} + +// WithMaxMsgSize returns a DialOption which sets the maximum message size the client can receive. Deprecated: use WithDefaultCallOptions(MaxCallRecvMsgSize(s)) instead. +func WithMaxMsgSize(s int) DialOption { + return WithDefaultCallOptions(MaxCallRecvMsgSize(s)) +} + +// WithDefaultCallOptions returns a DialOption which sets the default CallOptions for calls over the connection. +func WithDefaultCallOptions(cos ...CallOption) DialOption { + return func(o *dialOptions) { + o.callOptions = append(o.callOptions, cos...) + } +} + +// WithCodec returns a DialOption which sets a codec for message marshaling and unmarshaling. +// +// Deprecated: use WithDefaultCallOptions(CallCustomCodec(c)) instead. +func WithCodec(c Codec) DialOption { + return WithDefaultCallOptions(CallCustomCodec(c)) +} + +// WithCompressor returns a DialOption which sets a Compressor to use for +// message compression. It has lower priority than the compressor set by +// the UseCompressor CallOption. +// +// Deprecated: use UseCompressor instead. +func WithCompressor(cp Compressor) DialOption { + return func(o *dialOptions) { + o.cp = cp + } +} + +// WithDecompressor returns a DialOption which sets a Decompressor to use for +// incoming message decompression. If incoming response messages are encoded +// using the decompressor's Type(), it will be used. Otherwise, the message +// encoding will be used to look up the compressor registered via +// encoding.RegisterCompressor, which will then be used to decompress the +// message. If no compressor is registered for the encoding, an Unimplemented +// status error will be returned. +// +// Deprecated: use encoding.RegisterCompressor instead. +func WithDecompressor(dc Decompressor) DialOption { + return func(o *dialOptions) { + o.dc = dc + } +} + +// WithBalancer returns a DialOption which sets a load balancer with the v1 API. +// Name resolver will be ignored if this DialOption is specified. +// +// Deprecated: use the new balancer APIs in balancer package and WithBalancerName. +func WithBalancer(b Balancer) DialOption { + return func(o *dialOptions) { + o.balancerBuilder = &balancerWrapperBuilder{ + b: b, + } + } +} + +// WithBalancerName sets the balancer that the ClientConn will be initialized +// with. Balancer registered with balancerName will be used. This function +// panics if no balancer was registered by balancerName. +// +// The balancer cannot be overridden by balancer option specified by service +// config. +// +// This is an EXPERIMENTAL API. +func WithBalancerName(balancerName string) DialOption { + builder := balancer.Get(balancerName) + if builder == nil { + panic(fmt.Sprintf("grpc.WithBalancerName: no balancer is registered for name %v", balancerName)) + } + return func(o *dialOptions) { + o.balancerBuilder = builder + } +} + +// withResolverBuilder is only for grpclb. +func withResolverBuilder(b resolver.Builder) DialOption { + return func(o *dialOptions) { + o.resolverBuilder = b + } +} + +// WithServiceConfig returns a DialOption which has a channel to read the service configuration. +// DEPRECATED: service config should be received through name resolver, as specified here. +// https://github.com/grpc/grpc/blob/master/doc/service_config.md +func WithServiceConfig(c <-chan ServiceConfig) DialOption { + return func(o *dialOptions) { + o.scChan = c + } +} + +// WithBackoffMaxDelay configures the dialer to use the provided maximum delay +// when backing off after failed connection attempts. +func WithBackoffMaxDelay(md time.Duration) DialOption { + return WithBackoffConfig(BackoffConfig{MaxDelay: md}) +} + +// WithBackoffConfig configures the dialer to use the provided backoff +// parameters after connection failures. +// +// Use WithBackoffMaxDelay until more parameters on BackoffConfig are opened up +// for use. +func WithBackoffConfig(b BackoffConfig) DialOption { + // Set defaults to ensure that provided BackoffConfig is valid and + // unexported fields get default values. + setDefaults(&b) + return withBackoff(b) +} + +// withBackoff sets the backoff strategy used for connectRetryNum after a +// failed connection attempt. +// +// This can be exported if arbitrary backoff strategies are allowed by gRPC. +func withBackoff(bs backoffStrategy) DialOption { + return func(o *dialOptions) { + o.bs = bs + } +} + +// WithBlock returns a DialOption which makes caller of Dial blocks until the underlying +// connection is up. Without this, Dial returns immediately and connecting the server +// happens in background. +func WithBlock() DialOption { + return func(o *dialOptions) { + o.block = true + } +} + +// WithInsecure returns a DialOption which disables transport security for this ClientConn. +// Note that transport security is required unless WithInsecure is set. +func WithInsecure() DialOption { + return func(o *dialOptions) { + o.insecure = true + } +} + +// WithTransportCredentials returns a DialOption which configures a +// connection level security credentials (e.g., TLS/SSL). +func WithTransportCredentials(creds credentials.TransportCredentials) DialOption { + return func(o *dialOptions) { + o.copts.TransportCredentials = creds + } +} + +// WithPerRPCCredentials returns a DialOption which sets +// credentials and places auth state on each outbound RPC. +func WithPerRPCCredentials(creds credentials.PerRPCCredentials) DialOption { + return func(o *dialOptions) { + o.copts.PerRPCCredentials = append(o.copts.PerRPCCredentials, creds) + } +} + +// WithTimeout returns a DialOption that configures a timeout for dialing a ClientConn +// initially. This is valid if and only if WithBlock() is present. +// Deprecated: use DialContext and context.WithTimeout instead. +func WithTimeout(d time.Duration) DialOption { + return func(o *dialOptions) { + o.timeout = d + } +} + +func withContextDialer(f func(context.Context, string) (net.Conn, error)) DialOption { + return func(o *dialOptions) { + o.copts.Dialer = f + } +} + +// WithDialer returns a DialOption that specifies a function to use for dialing network addresses. +// If FailOnNonTempDialError() is set to true, and an error is returned by f, gRPC checks the error's +// Temporary() method to decide if it should try to reconnect to the network address. +func WithDialer(f func(string, time.Duration) (net.Conn, error)) DialOption { + return withContextDialer( + func(ctx context.Context, addr string) (net.Conn, error) { + if deadline, ok := ctx.Deadline(); ok { + return f(addr, deadline.Sub(time.Now())) + } + return f(addr, 0) + }) +} + +// WithStatsHandler returns a DialOption that specifies the stats handler +// for all the RPCs and underlying network connections in this ClientConn. +func WithStatsHandler(h stats.Handler) DialOption { + return func(o *dialOptions) { + o.copts.StatsHandler = h + } +} + +// FailOnNonTempDialError returns a DialOption that specifies if gRPC fails on non-temporary dial errors. +// If f is true, and dialer returns a non-temporary error, gRPC will fail the connection to the network +// address and won't try to reconnect. +// The default value of FailOnNonTempDialError is false. +// This is an EXPERIMENTAL API. +func FailOnNonTempDialError(f bool) DialOption { + return func(o *dialOptions) { + o.copts.FailOnNonTempDialError = f + } +} + +// WithUserAgent returns a DialOption that specifies a user agent string for all the RPCs. +func WithUserAgent(s string) DialOption { + return func(o *dialOptions) { + o.copts.UserAgent = s + } +} + +// WithKeepaliveParams returns a DialOption that specifies keepalive parameters for the client transport. +func WithKeepaliveParams(kp keepalive.ClientParameters) DialOption { + return func(o *dialOptions) { + o.copts.KeepaliveParams = kp + } +} + +// WithUnaryInterceptor returns a DialOption that specifies the interceptor for unary RPCs. +func WithUnaryInterceptor(f UnaryClientInterceptor) DialOption { + return func(o *dialOptions) { + o.unaryInt = f + } +} + +// WithStreamInterceptor returns a DialOption that specifies the interceptor for streaming RPCs. +func WithStreamInterceptor(f StreamClientInterceptor) DialOption { + return func(o *dialOptions) { + o.streamInt = f + } +} + +// WithAuthority returns a DialOption that specifies the value to be used as +// the :authority pseudo-header. This value only works with WithInsecure and +// has no effect if TransportCredentials are present. +func WithAuthority(a string) DialOption { + return func(o *dialOptions) { + o.copts.Authority = a + } +} + +// Dial creates a client connection to the given target. +func Dial(target string, opts ...DialOption) (*ClientConn, error) { + return DialContext(context.Background(), target, opts...) +} + +// DialContext creates a client connection to the given target. ctx can be used to +// cancel or expire the pending connection. Once this function returns, the +// cancellation and expiration of ctx will be noop. Users should call ClientConn.Close +// to terminate all the pending operations after this function returns. +// +// The target name syntax is defined in +// https://github.com/grpc/grpc/blob/master/doc/naming.md. +// e.g. to use dns resolver, a "dns:///" prefix should be applied to the target. +func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *ClientConn, err error) { + cc := &ClientConn{ + target: target, + csMgr: &connectivityStateManager{}, + conns: make(map[*addrConn]struct{}), + + blockingpicker: newPickerWrapper(), + } + cc.ctx, cc.cancel = context.WithCancel(context.Background()) + + for _, opt := range opts { + opt(&cc.dopts) + } + + if !cc.dopts.insecure { + if cc.dopts.copts.TransportCredentials == nil { + return nil, errNoTransportSecurity + } + } else { + if cc.dopts.copts.TransportCredentials != nil { + return nil, errCredentialsConflict + } + for _, cd := range cc.dopts.copts.PerRPCCredentials { + if cd.RequireTransportSecurity() { + return nil, errTransportCredentialsMissing + } + } + } + + cc.mkp = cc.dopts.copts.KeepaliveParams + + if cc.dopts.copts.Dialer == nil { + cc.dopts.copts.Dialer = newProxyDialer( + func(ctx context.Context, addr string) (net.Conn, error) { + network, addr := parseDialTarget(addr) + return dialContext(ctx, network, addr) + }, + ) + } + + if cc.dopts.copts.UserAgent != "" { + cc.dopts.copts.UserAgent += " " + grpcUA + } else { + cc.dopts.copts.UserAgent = grpcUA + } + + if cc.dopts.timeout > 0 { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, cc.dopts.timeout) + defer cancel() + } + + defer func() { + select { + case <-ctx.Done(): + conn, err = nil, ctx.Err() + default: + } + + if err != nil { + cc.Close() + } + }() + + scSet := false + if cc.dopts.scChan != nil { + // Try to get an initial service config. + select { + case sc, ok := <-cc.dopts.scChan: + if ok { + cc.sc = sc + scSet = true + } + default: + } + } + if cc.dopts.bs == nil { + cc.dopts.bs = DefaultBackoffConfig + } + if cc.dopts.resolverBuilder == nil { + // Only try to parse target when resolver builder is not already set. + cc.parsedTarget = parseTarget(cc.target) + grpclog.Infof("parsed scheme: %q", cc.parsedTarget.Scheme) + cc.dopts.resolverBuilder = resolver.Get(cc.parsedTarget.Scheme) + if cc.dopts.resolverBuilder == nil { + // If resolver builder is still nil, the parse target's scheme is + // not registered. Fallback to default resolver and set Endpoint to + // the original unparsed target. + grpclog.Infof("scheme %q not registered, fallback to default scheme", cc.parsedTarget.Scheme) + cc.parsedTarget = resolver.Target{ + Scheme: resolver.GetDefaultScheme(), + Endpoint: target, + } + cc.dopts.resolverBuilder = resolver.Get(cc.parsedTarget.Scheme) + } + } else { + cc.parsedTarget = resolver.Target{Endpoint: target} + } + creds := cc.dopts.copts.TransportCredentials + if creds != nil && creds.Info().ServerName != "" { + cc.authority = creds.Info().ServerName + } else if cc.dopts.insecure && cc.dopts.copts.Authority != "" { + cc.authority = cc.dopts.copts.Authority + } else { + // Use endpoint from "scheme://authority/endpoint" as the default + // authority for ClientConn. + cc.authority = cc.parsedTarget.Endpoint + } + + if cc.dopts.scChan != nil && !scSet { + // Blocking wait for the initial service config. + select { + case sc, ok := <-cc.dopts.scChan: + if ok { + cc.sc = sc + } + case <-ctx.Done(): + return nil, ctx.Err() + } + } + if cc.dopts.scChan != nil { + go cc.scWatcher() + } + + var credsClone credentials.TransportCredentials + if creds := cc.dopts.copts.TransportCredentials; creds != nil { + credsClone = creds.Clone() + } + cc.balancerBuildOpts = balancer.BuildOptions{ + DialCreds: credsClone, + Dialer: cc.dopts.copts.Dialer, + } + + // Build the resolver. + cc.resolverWrapper, err = newCCResolverWrapper(cc) + if err != nil { + return nil, fmt.Errorf("failed to build resolver: %v", err) + } + // Start the resolver wrapper goroutine after resolverWrapper is created. + // + // If the goroutine is started before resolverWrapper is ready, the + // following may happen: The goroutine sends updates to cc. cc forwards + // those to balancer. Balancer creates new addrConn. addrConn fails to + // connect, and calls resolveNow(). resolveNow() tries to use the non-ready + // resolverWrapper. + cc.resolverWrapper.start() + + // A blocking dial blocks until the clientConn is ready. + if cc.dopts.block { + for { + s := cc.GetState() + if s == connectivity.Ready { + break + } + if !cc.WaitForStateChange(ctx, s) { + // ctx got timeout or canceled. + return nil, ctx.Err() + } + } + } + + return cc, nil +} + +// connectivityStateManager keeps the connectivity.State of ClientConn. +// This struct will eventually be exported so the balancers can access it. +type connectivityStateManager struct { + mu sync.Mutex + state connectivity.State + notifyChan chan struct{} +} + +// updateState updates the connectivity.State of ClientConn. +// If there's a change it notifies goroutines waiting on state change to +// happen. +func (csm *connectivityStateManager) updateState(state connectivity.State) { + csm.mu.Lock() + defer csm.mu.Unlock() + if csm.state == connectivity.Shutdown { + return + } + if csm.state == state { + return + } + csm.state = state + if csm.notifyChan != nil { + // There are other goroutines waiting on this channel. + close(csm.notifyChan) + csm.notifyChan = nil + } +} + +func (csm *connectivityStateManager) getState() connectivity.State { + csm.mu.Lock() + defer csm.mu.Unlock() + return csm.state +} + +func (csm *connectivityStateManager) getNotifyChan() <-chan struct{} { + csm.mu.Lock() + defer csm.mu.Unlock() + if csm.notifyChan == nil { + csm.notifyChan = make(chan struct{}) + } + return csm.notifyChan +} + +// ClientConn represents a client connection to an RPC server. +type ClientConn struct { + ctx context.Context + cancel context.CancelFunc + + target string + parsedTarget resolver.Target + authority string + dopts dialOptions + csMgr *connectivityStateManager + + balancerBuildOpts balancer.BuildOptions + resolverWrapper *ccResolverWrapper + blockingpicker *pickerWrapper + + mu sync.RWMutex + sc ServiceConfig + scRaw string + conns map[*addrConn]struct{} + // Keepalive parameter can be updated if a GoAway is received. + mkp keepalive.ClientParameters + curBalancerName string + preBalancerName string // previous balancer name. + curAddresses []resolver.Address + balancerWrapper *ccBalancerWrapper +} + +// WaitForStateChange waits until the connectivity.State of ClientConn changes from sourceState or +// ctx expires. A true value is returned in former case and false in latter. +// This is an EXPERIMENTAL API. +func (cc *ClientConn) WaitForStateChange(ctx context.Context, sourceState connectivity.State) bool { + ch := cc.csMgr.getNotifyChan() + if cc.csMgr.getState() != sourceState { + return true + } + select { + case <-ctx.Done(): + return false + case <-ch: + return true + } +} + +// GetState returns the connectivity.State of ClientConn. +// This is an EXPERIMENTAL API. +func (cc *ClientConn) GetState() connectivity.State { + return cc.csMgr.getState() +} + +func (cc *ClientConn) scWatcher() { + for { + select { + case sc, ok := <-cc.dopts.scChan: + if !ok { + return + } + cc.mu.Lock() + // TODO: load balance policy runtime change is ignored. + // We may revist this decision in the future. + cc.sc = sc + cc.scRaw = "" + cc.mu.Unlock() + case <-cc.ctx.Done(): + return + } + } +} + +func (cc *ClientConn) handleResolvedAddrs(addrs []resolver.Address, err error) { + cc.mu.Lock() + defer cc.mu.Unlock() + if cc.conns == nil { + // cc was closed. + return + } + + if reflect.DeepEqual(cc.curAddresses, addrs) { + return + } + + cc.curAddresses = addrs + + if cc.dopts.balancerBuilder == nil { + // Only look at balancer types and switch balancer if balancer dial + // option is not set. + var isGRPCLB bool + for _, a := range addrs { + if a.Type == resolver.GRPCLB { + isGRPCLB = true + break + } + } + var newBalancerName string + if isGRPCLB { + newBalancerName = grpclbName + } else { + // Address list doesn't contain grpclb address. Try to pick a + // non-grpclb balancer. + newBalancerName = cc.curBalancerName + // If current balancer is grpclb, switch to the previous one. + if newBalancerName == grpclbName { + newBalancerName = cc.preBalancerName + } + // The following could be true in two cases: + // - the first time handling resolved addresses + // (curBalancerName="") + // - the first time handling non-grpclb addresses + // (curBalancerName="grpclb", preBalancerName="") + if newBalancerName == "" { + newBalancerName = PickFirstBalancerName + } + } + cc.switchBalancer(newBalancerName) + } else if cc.balancerWrapper == nil { + // Balancer dial option was set, and this is the first time handling + // resolved addresses. Build a balancer with dopts.balancerBuilder. + cc.balancerWrapper = newCCBalancerWrapper(cc, cc.dopts.balancerBuilder, cc.balancerBuildOpts) + } + + cc.balancerWrapper.handleResolvedAddrs(addrs, nil) +} + +// switchBalancer starts the switching from current balancer to the balancer +// with the given name. +// +// It will NOT send the current address list to the new balancer. If needed, +// caller of this function should send address list to the new balancer after +// this function returns. +// +// Caller must hold cc.mu. +func (cc *ClientConn) switchBalancer(name string) { + if cc.conns == nil { + return + } + + if strings.ToLower(cc.curBalancerName) == strings.ToLower(name) { + return + } + + grpclog.Infof("ClientConn switching balancer to %q", name) + if cc.dopts.balancerBuilder != nil { + grpclog.Infoln("ignoring balancer switching: Balancer DialOption used instead") + return + } + // TODO(bar switching) change this to two steps: drain and close. + // Keep track of sc in wrapper. + if cc.balancerWrapper != nil { + cc.balancerWrapper.close() + } + + builder := balancer.Get(name) + if builder == nil { + grpclog.Infof("failed to get balancer builder for: %v, using pick_first instead", name) + builder = newPickfirstBuilder() + } + cc.preBalancerName = cc.curBalancerName + cc.curBalancerName = builder.Name() + cc.balancerWrapper = newCCBalancerWrapper(cc, builder, cc.balancerBuildOpts) +} + +func (cc *ClientConn) handleSubConnStateChange(sc balancer.SubConn, s connectivity.State) { + cc.mu.Lock() + if cc.conns == nil { + cc.mu.Unlock() + return + } + // TODO(bar switching) send updates to all balancer wrappers when balancer + // gracefully switching is supported. + cc.balancerWrapper.handleSubConnStateChange(sc, s) + cc.mu.Unlock() +} + +// newAddrConn creates an addrConn for addrs and adds it to cc.conns. +// +// Caller needs to make sure len(addrs) > 0. +func (cc *ClientConn) newAddrConn(addrs []resolver.Address) (*addrConn, error) { + ac := &addrConn{ + cc: cc, + addrs: addrs, + dopts: cc.dopts, + } + ac.ctx, ac.cancel = context.WithCancel(cc.ctx) + // Track ac in cc. This needs to be done before any getTransport(...) is called. + cc.mu.Lock() + if cc.conns == nil { + cc.mu.Unlock() + return nil, ErrClientConnClosing + } + cc.conns[ac] = struct{}{} + cc.mu.Unlock() + return ac, nil +} + +// removeAddrConn removes the addrConn in the subConn from clientConn. +// It also tears down the ac with the given error. +func (cc *ClientConn) removeAddrConn(ac *addrConn, err error) { + cc.mu.Lock() + if cc.conns == nil { + cc.mu.Unlock() + return + } + delete(cc.conns, ac) + cc.mu.Unlock() + ac.tearDown(err) +} + +// connect starts to creating transport and also starts the transport monitor +// goroutine for this ac. +// It does nothing if the ac is not IDLE. +// TODO(bar) Move this to the addrConn section. +// This was part of resetAddrConn, keep it here to make the diff look clean. +func (ac *addrConn) connect() error { + ac.mu.Lock() + if ac.state == connectivity.Shutdown { + ac.mu.Unlock() + return errConnClosing + } + if ac.state != connectivity.Idle { + ac.mu.Unlock() + return nil + } + ac.state = connectivity.Connecting + ac.cc.handleSubConnStateChange(ac.acbw, ac.state) + ac.mu.Unlock() + + // Start a goroutine connecting to the server asynchronously. + go func() { + if err := ac.resetTransport(); err != nil { + grpclog.Warningf("Failed to dial %s: %v; please retry.", ac.addrs[0].Addr, err) + if err != errConnClosing { + // Keep this ac in cc.conns, to get the reason it's torn down. + ac.tearDown(err) + } + return + } + ac.transportMonitor() + }() + return nil +} + +// tryUpdateAddrs tries to update ac.addrs with the new addresses list. +// +// It checks whether current connected address of ac is in the new addrs list. +// - If true, it updates ac.addrs and returns true. The ac will keep using +// the existing connection. +// - If false, it does nothing and returns false. +func (ac *addrConn) tryUpdateAddrs(addrs []resolver.Address) bool { + ac.mu.Lock() + defer ac.mu.Unlock() + grpclog.Infof("addrConn: tryUpdateAddrs curAddr: %v, addrs: %v", ac.curAddr, addrs) + if ac.state == connectivity.Shutdown { + ac.addrs = addrs + return true + } + + var curAddrFound bool + for _, a := range addrs { + if reflect.DeepEqual(ac.curAddr, a) { + curAddrFound = true + break + } + } + grpclog.Infof("addrConn: tryUpdateAddrs curAddrFound: %v", curAddrFound) + if curAddrFound { + ac.addrs = addrs + ac.reconnectIdx = 0 // Start reconnecting from beginning in the new list. + } + + return curAddrFound +} + +// GetMethodConfig gets the method config of the input method. +// If there's an exact match for input method (i.e. /service/method), we return +// the corresponding MethodConfig. +// If there isn't an exact match for the input method, we look for the default config +// under the service (i.e /service/). If there is a default MethodConfig for +// the service, we return it. +// Otherwise, we return an empty MethodConfig. +func (cc *ClientConn) GetMethodConfig(method string) MethodConfig { + // TODO: Avoid the locking here. + cc.mu.RLock() + defer cc.mu.RUnlock() + m, ok := cc.sc.Methods[method] + if !ok { + i := strings.LastIndex(method, "/") + m, _ = cc.sc.Methods[method[:i+1]] + } + return m +} + +func (cc *ClientConn) getTransport(ctx context.Context, failfast bool) (transport.ClientTransport, func(balancer.DoneInfo), error) { + t, done, err := cc.blockingpicker.pick(ctx, failfast, balancer.PickOptions{}) + if err != nil { + return nil, nil, toRPCErr(err) + } + return t, done, nil +} + +// handleServiceConfig parses the service config string in JSON format to Go native +// struct ServiceConfig, and store both the struct and the JSON string in ClientConn. +func (cc *ClientConn) handleServiceConfig(js string) error { + sc, err := parseServiceConfig(js) + if err != nil { + return err + } + cc.mu.Lock() + cc.scRaw = js + cc.sc = sc + if sc.LB != nil && *sc.LB != grpclbName { // "grpclb" is not a valid balancer option in service config. + if cc.curBalancerName == grpclbName { + // If current balancer is grpclb, there's at least one grpclb + // balancer address in the resolved list. Don't switch the balancer, + // but change the previous balancer name, so if a new resolved + // address list doesn't contain grpclb address, balancer will be + // switched to *sc.LB. + cc.preBalancerName = *sc.LB + } else { + cc.switchBalancer(*sc.LB) + cc.balancerWrapper.handleResolvedAddrs(cc.curAddresses, nil) + } + } + cc.mu.Unlock() + return nil +} + +func (cc *ClientConn) resolveNow(o resolver.ResolveNowOption) { + cc.mu.Lock() + r := cc.resolverWrapper + cc.mu.Unlock() + if r == nil { + return + } + go r.resolveNow(o) +} + +// Close tears down the ClientConn and all underlying connections. +func (cc *ClientConn) Close() error { + defer cc.cancel() + + cc.mu.Lock() + if cc.conns == nil { + cc.mu.Unlock() + return ErrClientConnClosing + } + conns := cc.conns + cc.conns = nil + cc.csMgr.updateState(connectivity.Shutdown) + + rWrapper := cc.resolverWrapper + cc.resolverWrapper = nil + bWrapper := cc.balancerWrapper + cc.balancerWrapper = nil + cc.mu.Unlock() + cc.blockingpicker.close() + if rWrapper != nil { + rWrapper.close() + } + if bWrapper != nil { + bWrapper.close() + } + for ac := range conns { + ac.tearDown(ErrClientConnClosing) + } + return nil +} + +// addrConn is a network connection to a given address. +type addrConn struct { + ctx context.Context + cancel context.CancelFunc + + cc *ClientConn + addrs []resolver.Address + dopts dialOptions + events trace.EventLog + acbw balancer.SubConn + + mu sync.Mutex + curAddr resolver.Address + reconnectIdx int // The index in addrs list to start reconnecting from. + state connectivity.State + // ready is closed and becomes nil when a new transport is up or failed + // due to timeout. + ready chan struct{} + transport transport.ClientTransport + + // The reason this addrConn is torn down. + tearDownErr error + + connectRetryNum int + // backoffDeadline is the time until which resetTransport needs to + // wait before increasing connectRetryNum count. + backoffDeadline time.Time + // connectDeadline is the time by which all connection + // negotiations must complete. + connectDeadline time.Time +} + +// adjustParams updates parameters used to create transports upon +// receiving a GoAway. +func (ac *addrConn) adjustParams(r transport.GoAwayReason) { + switch r { + case transport.GoAwayTooManyPings: + v := 2 * ac.dopts.copts.KeepaliveParams.Time + ac.cc.mu.Lock() + if v > ac.cc.mkp.Time { + ac.cc.mkp.Time = v + } + ac.cc.mu.Unlock() + } +} + +// printf records an event in ac's event log, unless ac has been closed. +// REQUIRES ac.mu is held. +func (ac *addrConn) printf(format string, a ...interface{}) { + if ac.events != nil { + ac.events.Printf(format, a...) + } +} + +// errorf records an error in ac's event log, unless ac has been closed. +// REQUIRES ac.mu is held. +func (ac *addrConn) errorf(format string, a ...interface{}) { + if ac.events != nil { + ac.events.Errorf(format, a...) + } +} + +// resetTransport recreates a transport to the address for ac. The old +// transport will close itself on error or when the clientconn is closed. +// The created transport must receive initial settings frame from the server. +// In case that doesnt happen, transportMonitor will kill the newly created +// transport after connectDeadline has expired. +// In case there was an error on the transport before the settings frame was +// received, resetTransport resumes connecting to backends after the one that +// was previously connected to. In case end of the list is reached, resetTransport +// backs off until the original deadline. +// If the DialOption WithWaitForHandshake was set, resetTrasport returns +// successfully only after server settings are received. +// +// TODO(bar) make sure all state transitions are valid. +func (ac *addrConn) resetTransport() error { + ac.mu.Lock() + if ac.state == connectivity.Shutdown { + ac.mu.Unlock() + return errConnClosing + } + if ac.ready != nil { + close(ac.ready) + ac.ready = nil + } + ac.transport = nil + ridx := ac.reconnectIdx + ac.mu.Unlock() + ac.cc.mu.RLock() + ac.dopts.copts.KeepaliveParams = ac.cc.mkp + ac.cc.mu.RUnlock() + var backoffDeadline, connectDeadline time.Time + for connectRetryNum := 0; ; connectRetryNum++ { + ac.mu.Lock() + if ac.backoffDeadline.IsZero() { + // This means either a successful HTTP2 connection was established + // or this is the first time this addrConn is trying to establish a + // connection. + backoffFor := ac.dopts.bs.backoff(connectRetryNum) // time.Duration. + // This will be the duration that dial gets to finish. + dialDuration := getMinConnectTimeout() + if backoffFor > dialDuration { + // Give dial more time as we keep failing to connect. + dialDuration = backoffFor + } + start := time.Now() + backoffDeadline = start.Add(backoffFor) + connectDeadline = start.Add(dialDuration) + ridx = 0 // Start connecting from the beginning. + } else { + // Continue trying to conect with the same deadlines. + connectRetryNum = ac.connectRetryNum + backoffDeadline = ac.backoffDeadline + connectDeadline = ac.connectDeadline + ac.backoffDeadline = time.Time{} + ac.connectDeadline = time.Time{} + ac.connectRetryNum = 0 + } + if ac.state == connectivity.Shutdown { + ac.mu.Unlock() + return errConnClosing + } + ac.printf("connecting") + if ac.state != connectivity.Connecting { + ac.state = connectivity.Connecting + ac.cc.handleSubConnStateChange(ac.acbw, ac.state) + } + // copy ac.addrs in case of race + addrsIter := make([]resolver.Address, len(ac.addrs)) + copy(addrsIter, ac.addrs) + copts := ac.dopts.copts + ac.mu.Unlock() + connected, err := ac.createTransport(connectRetryNum, ridx, backoffDeadline, connectDeadline, addrsIter, copts) + if err != nil { + return err + } + if connected { + return nil + } + } +} + +// createTransport creates a connection to one of the backends in addrs. +// It returns true if a connection was established. +func (ac *addrConn) createTransport(connectRetryNum, ridx int, backoffDeadline, connectDeadline time.Time, addrs []resolver.Address, copts transport.ConnectOptions) (bool, error) { + for i := ridx; i < len(addrs); i++ { + addr := addrs[i] + target := transport.TargetInfo{ + Addr: addr.Addr, + Metadata: addr.Metadata, + Authority: ac.cc.authority, + } + done := make(chan struct{}) + onPrefaceReceipt := func() { + ac.mu.Lock() + close(done) + if !ac.backoffDeadline.IsZero() { + // If we haven't already started reconnecting to + // other backends. + // Note, this can happen when writer notices an error + // and triggers resetTransport while at the same time + // reader receives the preface and invokes this closure. + ac.backoffDeadline = time.Time{} + ac.connectDeadline = time.Time{} + ac.connectRetryNum = 0 + } + ac.mu.Unlock() + } + // Do not cancel in the success path because of + // this issue in Go1.6: https://github.com/golang/go/issues/15078. + connectCtx, cancel := context.WithDeadline(ac.ctx, connectDeadline) + newTr, err := transport.NewClientTransport(connectCtx, ac.cc.ctx, target, copts, onPrefaceReceipt) + if err != nil { + cancel() + ac.cc.blockingpicker.updateConnectionError(err) + ac.mu.Lock() + if ac.state == connectivity.Shutdown { + // ac.tearDown(...) has been invoked. + ac.mu.Unlock() + return false, errConnClosing + } + ac.mu.Unlock() + grpclog.Warningf("grpc: addrConn.createTransport failed to connect to %v. Err :%v. Reconnecting...", addr, err) + continue + } + if ac.dopts.waitForHandshake { + select { + case <-done: + case <-connectCtx.Done(): + // Didn't receive server preface, must kill this new transport now. + grpclog.Warningf("grpc: addrConn.createTransport failed to receive server preface before deadline.") + newTr.Close() + break + case <-ac.ctx.Done(): + } + } + ac.mu.Lock() + if ac.state == connectivity.Shutdown { + ac.mu.Unlock() + // ac.tearDonn(...) has been invoked. + newTr.Close() + return false, errConnClosing + } + ac.printf("ready") + ac.state = connectivity.Ready + ac.cc.handleSubConnStateChange(ac.acbw, ac.state) + ac.transport = newTr + ac.curAddr = addr + if ac.ready != nil { + close(ac.ready) + ac.ready = nil + } + select { + case <-done: + // If the server has responded back with preface already, + // don't set the reconnect parameters. + default: + ac.connectRetryNum = connectRetryNum + ac.backoffDeadline = backoffDeadline + ac.connectDeadline = connectDeadline + ac.reconnectIdx = i + 1 // Start reconnecting from the next backend in the list. + } + ac.mu.Unlock() + return true, nil + } + ac.mu.Lock() + ac.state = connectivity.TransientFailure + ac.cc.handleSubConnStateChange(ac.acbw, ac.state) + ac.cc.resolveNow(resolver.ResolveNowOption{}) + if ac.ready != nil { + close(ac.ready) + ac.ready = nil + } + ac.mu.Unlock() + timer := time.NewTimer(backoffDeadline.Sub(time.Now())) + select { + case <-timer.C: + case <-ac.ctx.Done(): + timer.Stop() + return false, ac.ctx.Err() + } + return false, nil +} + +// Run in a goroutine to track the error in transport and create the +// new transport if an error happens. It returns when the channel is closing. +func (ac *addrConn) transportMonitor() { + for { + var timer *time.Timer + var cdeadline <-chan time.Time + ac.mu.Lock() + t := ac.transport + if !ac.connectDeadline.IsZero() { + timer = time.NewTimer(ac.connectDeadline.Sub(time.Now())) + cdeadline = timer.C + } + ac.mu.Unlock() + // Block until we receive a goaway or an error occurs. + select { + case <-t.GoAway(): + case <-t.Error(): + case <-cdeadline: + ac.mu.Lock() + // This implies that client received server preface. + if ac.backoffDeadline.IsZero() { + ac.mu.Unlock() + continue + } + ac.mu.Unlock() + timer = nil + // No server preface received until deadline. + // Kill the connection. + grpclog.Warningf("grpc: addrConn.transportMonitor didn't get server preface after waiting. Closing the new transport now.") + t.Close() + } + if timer != nil { + timer.Stop() + } + // If a GoAway happened, regardless of error, adjust our keepalive + // parameters as appropriate. + select { + case <-t.GoAway(): + ac.adjustParams(t.GetGoAwayReason()) + default: + } + ac.mu.Lock() + if ac.state == connectivity.Shutdown { + ac.mu.Unlock() + return + } + // Set connectivity state to TransientFailure before calling + // resetTransport. Transition READY->CONNECTING is not valid. + ac.state = connectivity.TransientFailure + ac.cc.handleSubConnStateChange(ac.acbw, ac.state) + ac.cc.resolveNow(resolver.ResolveNowOption{}) + ac.curAddr = resolver.Address{} + ac.mu.Unlock() + if err := ac.resetTransport(); err != nil { + ac.mu.Lock() + ac.printf("transport exiting: %v", err) + ac.mu.Unlock() + grpclog.Warningf("grpc: addrConn.transportMonitor exits due to: %v", err) + if err != errConnClosing { + // Keep this ac in cc.conns, to get the reason it's torn down. + ac.tearDown(err) + } + return + } + } +} + +// wait blocks until i) the new transport is up or ii) ctx is done or iii) ac is closed or +// iv) transport is in connectivity.TransientFailure and there is a balancer/failfast is true. +func (ac *addrConn) wait(ctx context.Context, hasBalancer, failfast bool) (transport.ClientTransport, error) { + for { + ac.mu.Lock() + switch { + case ac.state == connectivity.Shutdown: + if failfast || !hasBalancer { + // RPC is failfast or balancer is nil. This RPC should fail with ac.tearDownErr. + err := ac.tearDownErr + ac.mu.Unlock() + return nil, err + } + ac.mu.Unlock() + return nil, errConnClosing + case ac.state == connectivity.Ready: + ct := ac.transport + ac.mu.Unlock() + return ct, nil + case ac.state == connectivity.TransientFailure: + if failfast || hasBalancer { + ac.mu.Unlock() + return nil, errConnUnavailable + } + } + ready := ac.ready + if ready == nil { + ready = make(chan struct{}) + ac.ready = ready + } + ac.mu.Unlock() + select { + case <-ctx.Done(): + return nil, toRPCErr(ctx.Err()) + // Wait until the new transport is ready or failed. + case <-ready: + } + } +} + +// getReadyTransport returns the transport if ac's state is READY. +// Otherwise it returns nil, false. +// If ac's state is IDLE, it will trigger ac to connect. +func (ac *addrConn) getReadyTransport() (transport.ClientTransport, bool) { + ac.mu.Lock() + if ac.state == connectivity.Ready { + t := ac.transport + ac.mu.Unlock() + return t, true + } + var idle bool + if ac.state == connectivity.Idle { + idle = true + } + ac.mu.Unlock() + // Trigger idle ac to connect. + if idle { + ac.connect() + } + return nil, false +} + +// tearDown starts to tear down the addrConn. +// TODO(zhaoq): Make this synchronous to avoid unbounded memory consumption in +// some edge cases (e.g., the caller opens and closes many addrConn's in a +// tight loop. +// tearDown doesn't remove ac from ac.cc.conns. +func (ac *addrConn) tearDown(err error) { + ac.cancel() + ac.mu.Lock() + defer ac.mu.Unlock() + if ac.state == connectivity.Shutdown { + return + } + ac.curAddr = resolver.Address{} + if err == errConnDrain && ac.transport != nil { + // GracefulClose(...) may be executed multiple times when + // i) receiving multiple GoAway frames from the server; or + // ii) there are concurrent name resolver/Balancer triggered + // address removal and GoAway. + ac.transport.GracefulClose() + } + ac.state = connectivity.Shutdown + ac.tearDownErr = err + ac.cc.handleSubConnStateChange(ac.acbw, ac.state) + if ac.events != nil { + ac.events.Finish() + ac.events = nil + } + if ac.ready != nil { + close(ac.ready) + ac.ready = nil + } + return +} + +func (ac *addrConn) getState() connectivity.State { + ac.mu.Lock() + defer ac.mu.Unlock() + return ac.state +} + +// ErrClientConnTimeout indicates that the ClientConn cannot establish the +// underlying connections within the specified timeout. +// +// Deprecated: This error is never returned by grpc and should not be +// referenced by users. +var ErrClientConnTimeout = errors.New("grpc: timed out when dialing") diff --git a/vendor/google.golang.org/grpc/codec.go b/vendor/google.golang.org/grpc/codec.go new file mode 100644 index 0000000..1297765 --- /dev/null +++ b/vendor/google.golang.org/grpc/codec.go @@ -0,0 +1,50 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "google.golang.org/grpc/encoding" + _ "google.golang.org/grpc/encoding/proto" // to register the Codec for "proto" +) + +// baseCodec contains the functionality of both Codec and encoding.Codec, but +// omits the name/string, which vary between the two and are not needed for +// anything besides the registry in the encoding package. +type baseCodec interface { + Marshal(v interface{}) ([]byte, error) + Unmarshal(data []byte, v interface{}) error +} + +var _ baseCodec = Codec(nil) +var _ baseCodec = encoding.Codec(nil) + +// Codec defines the interface gRPC uses to encode and decode messages. +// Note that implementations of this interface must be thread safe; +// a Codec's methods can be called from concurrent goroutines. +// +// Deprecated: use encoding.Codec instead. +type Codec interface { + // Marshal returns the wire format of v. + Marshal(v interface{}) ([]byte, error) + // Unmarshal parses the wire format into v. + Unmarshal(data []byte, v interface{}) error + // String returns the name of the Codec implementation. This is unused by + // gRPC. + String() string +} diff --git a/vendor/google.golang.org/grpc/codegen.sh b/vendor/google.golang.org/grpc/codegen.sh new file mode 100644 index 0000000..4cdc6ba --- /dev/null +++ b/vendor/google.golang.org/grpc/codegen.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# This script serves as an example to demonstrate how to generate the gRPC-Go +# interface and the related messages from .proto file. +# +# It assumes the installation of i) Google proto buffer compiler at +# https://github.com/google/protobuf (after v2.6.1) and ii) the Go codegen +# plugin at https://github.com/golang/protobuf (after 2015-02-20). If you have +# not, please install them first. +# +# We recommend running this script at $GOPATH/src. +# +# If this is not what you need, feel free to make your own scripts. Again, this +# script is for demonstration purpose. +# +proto=$1 +protoc --go_out=plugins=grpc:. $proto diff --git a/vendor/google.golang.org/grpc/codes/code_string.go b/vendor/google.golang.org/grpc/codes/code_string.go new file mode 100644 index 0000000..0b206a5 --- /dev/null +++ b/vendor/google.golang.org/grpc/codes/code_string.go @@ -0,0 +1,62 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package codes + +import "strconv" + +func (c Code) String() string { + switch c { + case OK: + return "OK" + case Canceled: + return "Canceled" + case Unknown: + return "Unknown" + case InvalidArgument: + return "InvalidArgument" + case DeadlineExceeded: + return "DeadlineExceeded" + case NotFound: + return "NotFound" + case AlreadyExists: + return "AlreadyExists" + case PermissionDenied: + return "PermissionDenied" + case ResourceExhausted: + return "ResourceExhausted" + case FailedPrecondition: + return "FailedPrecondition" + case Aborted: + return "Aborted" + case OutOfRange: + return "OutOfRange" + case Unimplemented: + return "Unimplemented" + case Internal: + return "Internal" + case Unavailable: + return "Unavailable" + case DataLoss: + return "DataLoss" + case Unauthenticated: + return "Unauthenticated" + default: + return "Code(" + strconv.FormatInt(int64(c), 10) + ")" + } +} diff --git a/vendor/google.golang.org/grpc/codes/codes.go b/vendor/google.golang.org/grpc/codes/codes.go new file mode 100644 index 0000000..a8280ae --- /dev/null +++ b/vendor/google.golang.org/grpc/codes/codes.go @@ -0,0 +1,184 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package codes defines the canonical error codes used by gRPC. It is +// consistent across various languages. +package codes // import "google.golang.org/grpc/codes" + +import ( + "fmt" +) + +// A Code is an unsigned 32-bit error code as defined in the gRPC spec. +type Code uint32 + +const ( + // OK is returned on success. + OK Code = 0 + + // Canceled indicates the operation was canceled (typically by the caller). + Canceled Code = 1 + + // Unknown error. An example of where this error may be returned is + // if a Status value received from another address space belongs to + // an error-space that is not known in this address space. Also + // errors raised by APIs that do not return enough error information + // may be converted to this error. + Unknown Code = 2 + + // InvalidArgument indicates client specified an invalid argument. + // Note that this differs from FailedPrecondition. It indicates arguments + // that are problematic regardless of the state of the system + // (e.g., a malformed file name). + InvalidArgument Code = 3 + + // DeadlineExceeded means operation expired before completion. + // For operations that change the state of the system, this error may be + // returned even if the operation has completed successfully. For + // example, a successful response from a server could have been delayed + // long enough for the deadline to expire. + DeadlineExceeded Code = 4 + + // NotFound means some requested entity (e.g., file or directory) was + // not found. + NotFound Code = 5 + + // AlreadyExists means an attempt to create an entity failed because one + // already exists. + AlreadyExists Code = 6 + + // PermissionDenied indicates the caller does not have permission to + // execute the specified operation. It must not be used for rejections + // caused by exhausting some resource (use ResourceExhausted + // instead for those errors). It must not be + // used if the caller cannot be identified (use Unauthenticated + // instead for those errors). + PermissionDenied Code = 7 + + // ResourceExhausted indicates some resource has been exhausted, perhaps + // a per-user quota, or perhaps the entire file system is out of space. + ResourceExhausted Code = 8 + + // FailedPrecondition indicates operation was rejected because the + // system is not in a state required for the operation's execution. + // For example, directory to be deleted may be non-empty, an rmdir + // operation is applied to a non-directory, etc. + // + // A litmus test that may help a service implementor in deciding + // between FailedPrecondition, Aborted, and Unavailable: + // (a) Use Unavailable if the client can retry just the failing call. + // (b) Use Aborted if the client should retry at a higher-level + // (e.g., restarting a read-modify-write sequence). + // (c) Use FailedPrecondition if the client should not retry until + // the system state has been explicitly fixed. E.g., if an "rmdir" + // fails because the directory is non-empty, FailedPrecondition + // should be returned since the client should not retry unless + // they have first fixed up the directory by deleting files from it. + // (d) Use FailedPrecondition if the client performs conditional + // REST Get/Update/Delete on a resource and the resource on the + // server does not match the condition. E.g., conflicting + // read-modify-write on the same resource. + FailedPrecondition Code = 9 + + // Aborted indicates the operation was aborted, typically due to a + // concurrency issue like sequencer check failures, transaction aborts, + // etc. + // + // See litmus test above for deciding between FailedPrecondition, + // Aborted, and Unavailable. + Aborted Code = 10 + + // OutOfRange means operation was attempted past the valid range. + // E.g., seeking or reading past end of file. + // + // Unlike InvalidArgument, this error indicates a problem that may + // be fixed if the system state changes. For example, a 32-bit file + // system will generate InvalidArgument if asked to read at an + // offset that is not in the range [0,2^32-1], but it will generate + // OutOfRange if asked to read from an offset past the current + // file size. + // + // There is a fair bit of overlap between FailedPrecondition and + // OutOfRange. We recommend using OutOfRange (the more specific + // error) when it applies so that callers who are iterating through + // a space can easily look for an OutOfRange error to detect when + // they are done. + OutOfRange Code = 11 + + // Unimplemented indicates operation is not implemented or not + // supported/enabled in this service. + Unimplemented Code = 12 + + // Internal errors. Means some invariants expected by underlying + // system has been broken. If you see one of these errors, + // something is very broken. + Internal Code = 13 + + // Unavailable indicates the service is currently unavailable. + // This is a most likely a transient condition and may be corrected + // by retrying with a backoff. + // + // See litmus test above for deciding between FailedPrecondition, + // Aborted, and Unavailable. + Unavailable Code = 14 + + // DataLoss indicates unrecoverable data loss or corruption. + DataLoss Code = 15 + + // Unauthenticated indicates the request does not have valid + // authentication credentials for the operation. + Unauthenticated Code = 16 +) + +var strToCode = map[string]Code{ + `"OK"`: OK, + `"CANCELLED"`:/* [sic] */ Canceled, + `"UNKNOWN"`: Unknown, + `"INVALID_ARGUMENT"`: InvalidArgument, + `"DEADLINE_EXCEEDED"`: DeadlineExceeded, + `"NOT_FOUND"`: NotFound, + `"ALREADY_EXISTS"`: AlreadyExists, + `"PERMISSION_DENIED"`: PermissionDenied, + `"RESOURCE_EXHAUSTED"`: ResourceExhausted, + `"FAILED_PRECONDITION"`: FailedPrecondition, + `"ABORTED"`: Aborted, + `"OUT_OF_RANGE"`: OutOfRange, + `"UNIMPLEMENTED"`: Unimplemented, + `"INTERNAL"`: Internal, + `"UNAVAILABLE"`: Unavailable, + `"DATA_LOSS"`: DataLoss, + `"UNAUTHENTICATED"`: Unauthenticated, +} + +// UnmarshalJSON unmarshals b into the Code. +func (c *Code) UnmarshalJSON(b []byte) error { + // From json.Unmarshaler: By convention, to approximate the behavior of + // Unmarshal itself, Unmarshalers implement UnmarshalJSON([]byte("null")) as + // a no-op. + if string(b) == "null" { + return nil + } + if c == nil { + return fmt.Errorf("nil receiver passed to UnmarshalJSON") + } + if jc, ok := strToCode[string(b)]; ok { + *c = jc + return nil + } + return fmt.Errorf("invalid code: %q", string(b)) +} diff --git a/vendor/google.golang.org/grpc/connectivity/connectivity.go b/vendor/google.golang.org/grpc/connectivity/connectivity.go new file mode 100644 index 0000000..568ef5d --- /dev/null +++ b/vendor/google.golang.org/grpc/connectivity/connectivity.go @@ -0,0 +1,72 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package connectivity defines connectivity semantics. +// For details, see https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md. +// All APIs in this package are experimental. +package connectivity + +import ( + "golang.org/x/net/context" + "google.golang.org/grpc/grpclog" +) + +// State indicates the state of connectivity. +// It can be the state of a ClientConn or SubConn. +type State int + +func (s State) String() string { + switch s { + case Idle: + return "IDLE" + case Connecting: + return "CONNECTING" + case Ready: + return "READY" + case TransientFailure: + return "TRANSIENT_FAILURE" + case Shutdown: + return "SHUTDOWN" + default: + grpclog.Errorf("unknown connectivity state: %d", s) + return "Invalid-State" + } +} + +const ( + // Idle indicates the ClientConn is idle. + Idle State = iota + // Connecting indicates the ClienConn is connecting. + Connecting + // Ready indicates the ClientConn is ready for work. + Ready + // TransientFailure indicates the ClientConn has seen a failure but expects to recover. + TransientFailure + // Shutdown indicates the ClientConn has started shutting down. + Shutdown +) + +// Reporter reports the connectivity states. +type Reporter interface { + // CurrentState returns the current state of the reporter. + CurrentState() State + // WaitForStateChange blocks until the reporter's state is different from the given state, + // and returns true. + // It returns false if <-ctx.Done() can proceed (ctx got timeout or got canceled). + WaitForStateChange(context.Context, State) bool +} diff --git a/vendor/google.golang.org/grpc/credentials/credentials.go b/vendor/google.golang.org/grpc/credentials/credentials.go new file mode 100644 index 0000000..3351bf0 --- /dev/null +++ b/vendor/google.golang.org/grpc/credentials/credentials.go @@ -0,0 +1,220 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package credentials implements various credentials supported by gRPC library, +// which encapsulate all the state needed by a client to authenticate with a +// server and make various assertions, e.g., about the client's identity, role, +// or whether it is authorized to make a particular call. +package credentials // import "google.golang.org/grpc/credentials" + +import ( + "crypto/tls" + "crypto/x509" + "errors" + "fmt" + "io/ioutil" + "net" + "strings" + + "golang.org/x/net/context" +) + +// alpnProtoStr are the specified application level protocols for gRPC. +var alpnProtoStr = []string{"h2"} + +// PerRPCCredentials defines the common interface for the credentials which need to +// attach security information to every RPC (e.g., oauth2). +type PerRPCCredentials interface { + // GetRequestMetadata gets the current request metadata, refreshing + // tokens if required. This should be called by the transport layer on + // each request, and the data should be populated in headers or other + // context. If a status code is returned, it will be used as the status + // for the RPC. uri is the URI of the entry point for the request. + // When supported by the underlying implementation, ctx can be used for + // timeout and cancellation. + // TODO(zhaoq): Define the set of the qualified keys instead of leaving + // it as an arbitrary string. + GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) + // RequireTransportSecurity indicates whether the credentials requires + // transport security. + RequireTransportSecurity() bool +} + +// ProtocolInfo provides information regarding the gRPC wire protocol version, +// security protocol, security protocol version in use, server name, etc. +type ProtocolInfo struct { + // ProtocolVersion is the gRPC wire protocol version. + ProtocolVersion string + // SecurityProtocol is the security protocol in use. + SecurityProtocol string + // SecurityVersion is the security protocol version. + SecurityVersion string + // ServerName is the user-configured server name. + ServerName string +} + +// AuthInfo defines the common interface for the auth information the users are interested in. +type AuthInfo interface { + AuthType() string +} + +// ErrConnDispatched indicates that rawConn has been dispatched out of gRPC +// and the caller should not close rawConn. +var ErrConnDispatched = errors.New("credentials: rawConn is dispatched out of gRPC") + +// TransportCredentials defines the common interface for all the live gRPC wire +// protocols and supported transport security protocols (e.g., TLS, SSL). +type TransportCredentials interface { + // ClientHandshake does the authentication handshake specified by the corresponding + // authentication protocol on rawConn for clients. It returns the authenticated + // connection and the corresponding auth information about the connection. + // Implementations must use the provided context to implement timely cancellation. + // gRPC will try to reconnect if the error returned is a temporary error + // (io.EOF, context.DeadlineExceeded or err.Temporary() == true). + // If the returned error is a wrapper error, implementations should make sure that + // the error implements Temporary() to have the correct retry behaviors. + // + // If the returned net.Conn is closed, it MUST close the net.Conn provided. + ClientHandshake(context.Context, string, net.Conn) (net.Conn, AuthInfo, error) + // ServerHandshake does the authentication handshake for servers. It returns + // the authenticated connection and the corresponding auth information about + // the connection. + // + // If the returned net.Conn is closed, it MUST close the net.Conn provided. + ServerHandshake(net.Conn) (net.Conn, AuthInfo, error) + // Info provides the ProtocolInfo of this TransportCredentials. + Info() ProtocolInfo + // Clone makes a copy of this TransportCredentials. + Clone() TransportCredentials + // OverrideServerName overrides the server name used to verify the hostname on the returned certificates from the server. + // gRPC internals also use it to override the virtual hosting name if it is set. + // It must be called before dialing. Currently, this is only used by grpclb. + OverrideServerName(string) error +} + +// TLSInfo contains the auth information for a TLS authenticated connection. +// It implements the AuthInfo interface. +type TLSInfo struct { + State tls.ConnectionState +} + +// AuthType returns the type of TLSInfo as a string. +func (t TLSInfo) AuthType() string { + return "tls" +} + +// tlsCreds is the credentials required for authenticating a connection using TLS. +type tlsCreds struct { + // TLS configuration + config *tls.Config +} + +func (c tlsCreds) Info() ProtocolInfo { + return ProtocolInfo{ + SecurityProtocol: "tls", + SecurityVersion: "1.2", + ServerName: c.config.ServerName, + } +} + +func (c *tlsCreds) ClientHandshake(ctx context.Context, authority string, rawConn net.Conn) (_ net.Conn, _ AuthInfo, err error) { + // use local cfg to avoid clobbering ServerName if using multiple endpoints + cfg := cloneTLSConfig(c.config) + if cfg.ServerName == "" { + colonPos := strings.LastIndex(authority, ":") + if colonPos == -1 { + colonPos = len(authority) + } + cfg.ServerName = authority[:colonPos] + } + conn := tls.Client(rawConn, cfg) + errChannel := make(chan error, 1) + go func() { + errChannel <- conn.Handshake() + }() + select { + case err := <-errChannel: + if err != nil { + return nil, nil, err + } + case <-ctx.Done(): + return nil, nil, ctx.Err() + } + return conn, TLSInfo{conn.ConnectionState()}, nil +} + +func (c *tlsCreds) ServerHandshake(rawConn net.Conn) (net.Conn, AuthInfo, error) { + conn := tls.Server(rawConn, c.config) + if err := conn.Handshake(); err != nil { + return nil, nil, err + } + return conn, TLSInfo{conn.ConnectionState()}, nil +} + +func (c *tlsCreds) Clone() TransportCredentials { + return NewTLS(c.config) +} + +func (c *tlsCreds) OverrideServerName(serverNameOverride string) error { + c.config.ServerName = serverNameOverride + return nil +} + +// NewTLS uses c to construct a TransportCredentials based on TLS. +func NewTLS(c *tls.Config) TransportCredentials { + tc := &tlsCreds{cloneTLSConfig(c)} + tc.config.NextProtos = alpnProtoStr + return tc +} + +// NewClientTLSFromCert constructs TLS credentials from the input certificate for client. +// serverNameOverride is for testing only. If set to a non empty string, +// it will override the virtual host name of authority (e.g. :authority header field) in requests. +func NewClientTLSFromCert(cp *x509.CertPool, serverNameOverride string) TransportCredentials { + return NewTLS(&tls.Config{ServerName: serverNameOverride, RootCAs: cp}) +} + +// NewClientTLSFromFile constructs TLS credentials from the input certificate file for client. +// serverNameOverride is for testing only. If set to a non empty string, +// it will override the virtual host name of authority (e.g. :authority header field) in requests. +func NewClientTLSFromFile(certFile, serverNameOverride string) (TransportCredentials, error) { + b, err := ioutil.ReadFile(certFile) + if err != nil { + return nil, err + } + cp := x509.NewCertPool() + if !cp.AppendCertsFromPEM(b) { + return nil, fmt.Errorf("credentials: failed to append certificates") + } + return NewTLS(&tls.Config{ServerName: serverNameOverride, RootCAs: cp}), nil +} + +// NewServerTLSFromCert constructs TLS credentials from the input certificate for server. +func NewServerTLSFromCert(cert *tls.Certificate) TransportCredentials { + return NewTLS(&tls.Config{Certificates: []tls.Certificate{*cert}}) +} + +// NewServerTLSFromFile constructs TLS credentials from the input certificate file and key +// file for server. +func NewServerTLSFromFile(certFile, keyFile string) (TransportCredentials, error) { + cert, err := tls.LoadX509KeyPair(certFile, keyFile) + if err != nil { + return nil, err + } + return NewTLS(&tls.Config{Certificates: []tls.Certificate{cert}}), nil +} diff --git a/vendor/google.golang.org/grpc/credentials/credentials_util_go17.go b/vendor/google.golang.org/grpc/credentials/credentials_util_go17.go new file mode 100644 index 0000000..60409aa --- /dev/null +++ b/vendor/google.golang.org/grpc/credentials/credentials_util_go17.go @@ -0,0 +1,60 @@ +// +build go1.7 +// +build !go1.8 + +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package credentials + +import ( + "crypto/tls" +) + +// cloneTLSConfig returns a shallow clone of the exported +// fields of cfg, ignoring the unexported sync.Once, which +// contains a mutex and must not be copied. +// +// If cfg is nil, a new zero tls.Config is returned. +func cloneTLSConfig(cfg *tls.Config) *tls.Config { + if cfg == nil { + return &tls.Config{} + } + return &tls.Config{ + Rand: cfg.Rand, + Time: cfg.Time, + Certificates: cfg.Certificates, + NameToCertificate: cfg.NameToCertificate, + GetCertificate: cfg.GetCertificate, + RootCAs: cfg.RootCAs, + NextProtos: cfg.NextProtos, + ServerName: cfg.ServerName, + ClientAuth: cfg.ClientAuth, + ClientCAs: cfg.ClientCAs, + InsecureSkipVerify: cfg.InsecureSkipVerify, + CipherSuites: cfg.CipherSuites, + PreferServerCipherSuites: cfg.PreferServerCipherSuites, + SessionTicketsDisabled: cfg.SessionTicketsDisabled, + SessionTicketKey: cfg.SessionTicketKey, + ClientSessionCache: cfg.ClientSessionCache, + MinVersion: cfg.MinVersion, + MaxVersion: cfg.MaxVersion, + CurvePreferences: cfg.CurvePreferences, + DynamicRecordSizingDisabled: cfg.DynamicRecordSizingDisabled, + Renegotiation: cfg.Renegotiation, + } +} diff --git a/vendor/google.golang.org/grpc/credentials/credentials_util_go18.go b/vendor/google.golang.org/grpc/credentials/credentials_util_go18.go new file mode 100644 index 0000000..93f0e1d --- /dev/null +++ b/vendor/google.golang.org/grpc/credentials/credentials_util_go18.go @@ -0,0 +1,38 @@ +// +build go1.8 + +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package credentials + +import ( + "crypto/tls" +) + +// cloneTLSConfig returns a shallow clone of the exported +// fields of cfg, ignoring the unexported sync.Once, which +// contains a mutex and must not be copied. +// +// If cfg is nil, a new zero tls.Config is returned. +func cloneTLSConfig(cfg *tls.Config) *tls.Config { + if cfg == nil { + return &tls.Config{} + } + + return cfg.Clone() +} diff --git a/vendor/google.golang.org/grpc/credentials/credentials_util_pre_go17.go b/vendor/google.golang.org/grpc/credentials/credentials_util_pre_go17.go new file mode 100644 index 0000000..d6bbcc9 --- /dev/null +++ b/vendor/google.golang.org/grpc/credentials/credentials_util_pre_go17.go @@ -0,0 +1,57 @@ +// +build !go1.7 + +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package credentials + +import ( + "crypto/tls" +) + +// cloneTLSConfig returns a shallow clone of the exported +// fields of cfg, ignoring the unexported sync.Once, which +// contains a mutex and must not be copied. +// +// If cfg is nil, a new zero tls.Config is returned. +func cloneTLSConfig(cfg *tls.Config) *tls.Config { + if cfg == nil { + return &tls.Config{} + } + return &tls.Config{ + Rand: cfg.Rand, + Time: cfg.Time, + Certificates: cfg.Certificates, + NameToCertificate: cfg.NameToCertificate, + GetCertificate: cfg.GetCertificate, + RootCAs: cfg.RootCAs, + NextProtos: cfg.NextProtos, + ServerName: cfg.ServerName, + ClientAuth: cfg.ClientAuth, + ClientCAs: cfg.ClientCAs, + InsecureSkipVerify: cfg.InsecureSkipVerify, + CipherSuites: cfg.CipherSuites, + PreferServerCipherSuites: cfg.PreferServerCipherSuites, + SessionTicketsDisabled: cfg.SessionTicketsDisabled, + SessionTicketKey: cfg.SessionTicketKey, + ClientSessionCache: cfg.ClientSessionCache, + MinVersion: cfg.MinVersion, + MaxVersion: cfg.MaxVersion, + CurvePreferences: cfg.CurvePreferences, + } +} diff --git a/vendor/google.golang.org/grpc/doc.go b/vendor/google.golang.org/grpc/doc.go new file mode 100644 index 0000000..187adbb --- /dev/null +++ b/vendor/google.golang.org/grpc/doc.go @@ -0,0 +1,24 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +/* +Package grpc implements an RPC system called gRPC. + +See grpc.io for more information about gRPC. +*/ +package grpc // import "google.golang.org/grpc" diff --git a/vendor/google.golang.org/grpc/encoding/encoding.go b/vendor/google.golang.org/grpc/encoding/encoding.go new file mode 100644 index 0000000..8e26c19 --- /dev/null +++ b/vendor/google.golang.org/grpc/encoding/encoding.go @@ -0,0 +1,118 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package encoding defines the interface for the compressor and codec, and +// functions to register and retrieve compressors and codecs. +// +// This package is EXPERIMENTAL. +package encoding + +import ( + "io" + "strings" +) + +// Identity specifies the optional encoding for uncompressed streams. +// It is intended for grpc internal use only. +const Identity = "identity" + +// Compressor is used for compressing and decompressing when sending or +// receiving messages. +type Compressor interface { + // Compress writes the data written to wc to w after compressing it. If an + // error occurs while initializing the compressor, that error is returned + // instead. + Compress(w io.Writer) (io.WriteCloser, error) + // Decompress reads data from r, decompresses it, and provides the + // uncompressed data via the returned io.Reader. If an error occurs while + // initializing the decompressor, that error is returned instead. + Decompress(r io.Reader) (io.Reader, error) + // Name is the name of the compression codec and is used to set the content + // coding header. The result must be static; the result cannot change + // between calls. + Name() string +} + +var registeredCompressor = make(map[string]Compressor) + +// RegisterCompressor registers the compressor with gRPC by its name. It can +// be activated when sending an RPC via grpc.UseCompressor(). It will be +// automatically accessed when receiving a message based on the content coding +// header. Servers also use it to send a response with the same encoding as +// the request. +// +// NOTE: this function must only be called during initialization time (i.e. in +// an init() function), and is not thread-safe. If multiple Compressors are +// registered with the same name, the one registered last will take effect. +func RegisterCompressor(c Compressor) { + registeredCompressor[c.Name()] = c +} + +// GetCompressor returns Compressor for the given compressor name. +func GetCompressor(name string) Compressor { + return registeredCompressor[name] +} + +// Codec defines the interface gRPC uses to encode and decode messages. Note +// that implementations of this interface must be thread safe; a Codec's +// methods can be called from concurrent goroutines. +type Codec interface { + // Marshal returns the wire format of v. + Marshal(v interface{}) ([]byte, error) + // Unmarshal parses the wire format into v. + Unmarshal(data []byte, v interface{}) error + // Name returns the name of the Codec implementation. The returned string + // will be used as part of content type in transmission. The result must be + // static; the result cannot change between calls. + Name() string +} + +var registeredCodecs = make(map[string]Codec, 0) + +// RegisterCodec registers the provided Codec for use with all gRPC clients and +// servers. +// +// The Codec will be stored and looked up by result of its Name() method, which +// should match the content-subtype of the encoding handled by the Codec. This +// is case-insensitive, and is stored and looked up as lowercase. If the +// result of calling Name() is an empty string, RegisterCodec will panic. See +// Content-Type on +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for +// more details. +// +// NOTE: this function must only be called during initialization time (i.e. in +// an init() function), and is not thread-safe. If multiple Compressors are +// registered with the same name, the one registered last will take effect. +func RegisterCodec(codec Codec) { + if codec == nil { + panic("cannot register a nil Codec") + } + contentSubtype := strings.ToLower(codec.Name()) + if contentSubtype == "" { + panic("cannot register Codec with empty string result for String()") + } + registeredCodecs[contentSubtype] = codec +} + +// GetCodec gets a registered Codec by content-subtype, or nil if no Codec is +// registered for the content-subtype. +// +// The content-subtype is expected to be lowercase. +func GetCodec(contentSubtype string) Codec { + return registeredCodecs[contentSubtype] +} diff --git a/vendor/google.golang.org/grpc/encoding/gzip/gzip.go b/vendor/google.golang.org/grpc/encoding/gzip/gzip.go new file mode 100644 index 0000000..09564db --- /dev/null +++ b/vendor/google.golang.org/grpc/encoding/gzip/gzip.go @@ -0,0 +1,117 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package gzip implements and registers the gzip compressor +// during the initialization. +// This package is EXPERIMENTAL. +package gzip + +import ( + "compress/gzip" + "fmt" + "io" + "io/ioutil" + "sync" + + "google.golang.org/grpc/encoding" +) + +// Name is the name registered for the gzip compressor. +const Name = "gzip" + +func init() { + c := &compressor{} + c.poolCompressor.New = func() interface{} { + return &writer{Writer: gzip.NewWriter(ioutil.Discard), pool: &c.poolCompressor} + } + encoding.RegisterCompressor(c) +} + +type writer struct { + *gzip.Writer + pool *sync.Pool +} + +// SetLevel updates the registered gzip compressor to use the compression level specified (gzip.HuffmanOnly is not supported). +// NOTE: this function must only be called during initialization time (i.e. in an init() function), +// and is not thread-safe. +// +// The error returned will be nil if the specified level is valid. +func SetLevel(level int) error { + if level < gzip.DefaultCompression || level > gzip.BestCompression { + return fmt.Errorf("grpc: invalid gzip compression level: %d", level) + } + c := encoding.GetCompressor(Name).(*compressor) + c.poolCompressor.New = func() interface{} { + w, err := gzip.NewWriterLevel(ioutil.Discard, level) + if err != nil { + panic(err) + } + return &writer{Writer: w, pool: &c.poolCompressor} + } + return nil +} + +func (c *compressor) Compress(w io.Writer) (io.WriteCloser, error) { + z := c.poolCompressor.Get().(*writer) + z.Writer.Reset(w) + return z, nil +} + +func (z *writer) Close() error { + defer z.pool.Put(z) + return z.Writer.Close() +} + +type reader struct { + *gzip.Reader + pool *sync.Pool +} + +func (c *compressor) Decompress(r io.Reader) (io.Reader, error) { + z, inPool := c.poolDecompressor.Get().(*reader) + if !inPool { + newZ, err := gzip.NewReader(r) + if err != nil { + return nil, err + } + return &reader{Reader: newZ, pool: &c.poolDecompressor}, nil + } + if err := z.Reset(r); err != nil { + c.poolDecompressor.Put(z) + return nil, err + } + return z, nil +} + +func (z *reader) Read(p []byte) (n int, err error) { + n, err = z.Reader.Read(p) + if err == io.EOF { + z.pool.Put(z) + } + return n, err +} + +func (c *compressor) Name() string { + return Name +} + +type compressor struct { + poolCompressor sync.Pool + poolDecompressor sync.Pool +} diff --git a/vendor/google.golang.org/grpc/encoding/proto/proto.go b/vendor/google.golang.org/grpc/encoding/proto/proto.go new file mode 100644 index 0000000..66b97a6 --- /dev/null +++ b/vendor/google.golang.org/grpc/encoding/proto/proto.go @@ -0,0 +1,110 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package proto defines the protobuf codec. Importing this package will +// register the codec. +package proto + +import ( + "math" + "sync" + + "github.com/golang/protobuf/proto" + "google.golang.org/grpc/encoding" +) + +// Name is the name registered for the proto compressor. +const Name = "proto" + +func init() { + encoding.RegisterCodec(codec{}) +} + +// codec is a Codec implementation with protobuf. It is the default codec for gRPC. +type codec struct{} + +type cachedProtoBuffer struct { + lastMarshaledSize uint32 + proto.Buffer +} + +func capToMaxInt32(val int) uint32 { + if val > math.MaxInt32 { + return uint32(math.MaxInt32) + } + return uint32(val) +} + +func marshal(v interface{}, cb *cachedProtoBuffer) ([]byte, error) { + protoMsg := v.(proto.Message) + newSlice := make([]byte, 0, cb.lastMarshaledSize) + + cb.SetBuf(newSlice) + cb.Reset() + if err := cb.Marshal(protoMsg); err != nil { + return nil, err + } + out := cb.Bytes() + cb.lastMarshaledSize = capToMaxInt32(len(out)) + return out, nil +} + +func (codec) Marshal(v interface{}) ([]byte, error) { + if pm, ok := v.(proto.Marshaler); ok { + // object can marshal itself, no need for buffer + return pm.Marshal() + } + + cb := protoBufferPool.Get().(*cachedProtoBuffer) + out, err := marshal(v, cb) + + // put back buffer and lose the ref to the slice + cb.SetBuf(nil) + protoBufferPool.Put(cb) + return out, err +} + +func (codec) Unmarshal(data []byte, v interface{}) error { + protoMsg := v.(proto.Message) + protoMsg.Reset() + + if pu, ok := protoMsg.(proto.Unmarshaler); ok { + // object can unmarshal itself, no need for buffer + return pu.Unmarshal(data) + } + + cb := protoBufferPool.Get().(*cachedProtoBuffer) + cb.SetBuf(data) + err := cb.Unmarshal(protoMsg) + cb.SetBuf(nil) + protoBufferPool.Put(cb) + return err +} + +func (codec) Name() string { + return Name +} + +var protoBufferPool = &sync.Pool{ + New: func() interface{} { + return &cachedProtoBuffer{ + Buffer: proto.Buffer{}, + lastMarshaledSize: 16, + } + }, +} diff --git a/vendor/google.golang.org/grpc/go16.go b/vendor/google.golang.org/grpc/go16.go new file mode 100644 index 0000000..535ee93 --- /dev/null +++ b/vendor/google.golang.org/grpc/go16.go @@ -0,0 +1,70 @@ +// +build go1.6,!go1.7 + +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "fmt" + "io" + "net" + "net/http" + + "golang.org/x/net/context" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/grpc/transport" +) + +// dialContext connects to the address on the named network. +func dialContext(ctx context.Context, network, address string) (net.Conn, error) { + return (&net.Dialer{Cancel: ctx.Done()}).Dial(network, address) +} + +func sendHTTPRequest(ctx context.Context, req *http.Request, conn net.Conn) error { + req.Cancel = ctx.Done() + if err := req.Write(conn); err != nil { + return fmt.Errorf("failed to write the HTTP request: %v", err) + } + return nil +} + +// toRPCErr converts an error into an error from the status package. +func toRPCErr(err error) error { + if err == nil || err == io.EOF { + return err + } + if _, ok := status.FromError(err); ok { + return err + } + switch e := err.(type) { + case transport.StreamError: + return status.Error(e.Code, e.Desc) + case transport.ConnectionError: + return status.Error(codes.Unavailable, e.Desc) + default: + switch err { + case context.DeadlineExceeded: + return status.Error(codes.DeadlineExceeded, err.Error()) + case context.Canceled: + return status.Error(codes.Canceled, err.Error()) + } + } + return status.Error(codes.Unknown, err.Error()) +} diff --git a/vendor/google.golang.org/grpc/go17.go b/vendor/google.golang.org/grpc/go17.go new file mode 100644 index 0000000..ec676a9 --- /dev/null +++ b/vendor/google.golang.org/grpc/go17.go @@ -0,0 +1,71 @@ +// +build go1.7 + +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "context" + "fmt" + "io" + "net" + "net/http" + + netctx "golang.org/x/net/context" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/grpc/transport" +) + +// dialContext connects to the address on the named network. +func dialContext(ctx context.Context, network, address string) (net.Conn, error) { + return (&net.Dialer{}).DialContext(ctx, network, address) +} + +func sendHTTPRequest(ctx context.Context, req *http.Request, conn net.Conn) error { + req = req.WithContext(ctx) + if err := req.Write(conn); err != nil { + return fmt.Errorf("failed to write the HTTP request: %v", err) + } + return nil +} + +// toRPCErr converts an error into an error from the status package. +func toRPCErr(err error) error { + if err == nil || err == io.EOF { + return err + } + if _, ok := status.FromError(err); ok { + return err + } + switch e := err.(type) { + case transport.StreamError: + return status.Error(e.Code, e.Desc) + case transport.ConnectionError: + return status.Error(codes.Unavailable, e.Desc) + default: + switch err { + case context.DeadlineExceeded, netctx.DeadlineExceeded: + return status.Error(codes.DeadlineExceeded, err.Error()) + case context.Canceled, netctx.Canceled: + return status.Error(codes.Canceled, err.Error()) + } + } + return status.Error(codes.Unknown, err.Error()) +} diff --git a/vendor/google.golang.org/grpc/grpclb.go b/vendor/google.golang.org/grpc/grpclb.go new file mode 100644 index 0000000..d14a5d4 --- /dev/null +++ b/vendor/google.golang.org/grpc/grpclb.go @@ -0,0 +1,342 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "strconv" + "strings" + "sync" + "time" + + "golang.org/x/net/context" + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/connectivity" + lbpb "google.golang.org/grpc/grpclb/grpc_lb_v1/messages" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/resolver" +) + +const ( + lbTokeyKey = "lb-token" + defaultFallbackTimeout = 10 * time.Second + grpclbName = "grpclb" +) + +func convertDuration(d *lbpb.Duration) time.Duration { + if d == nil { + return 0 + } + return time.Duration(d.Seconds)*time.Second + time.Duration(d.Nanos)*time.Nanosecond +} + +// Client API for LoadBalancer service. +// Mostly copied from generated pb.go file. +// To avoid circular dependency. +type loadBalancerClient struct { + cc *ClientConn +} + +func (c *loadBalancerClient) BalanceLoad(ctx context.Context, opts ...CallOption) (*balanceLoadClientStream, error) { + desc := &StreamDesc{ + StreamName: "BalanceLoad", + ServerStreams: true, + ClientStreams: true, + } + stream, err := NewClientStream(ctx, desc, c.cc, "/grpc.lb.v1.LoadBalancer/BalanceLoad", opts...) + if err != nil { + return nil, err + } + x := &balanceLoadClientStream{stream} + return x, nil +} + +type balanceLoadClientStream struct { + ClientStream +} + +func (x *balanceLoadClientStream) Send(m *lbpb.LoadBalanceRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *balanceLoadClientStream) Recv() (*lbpb.LoadBalanceResponse, error) { + m := new(lbpb.LoadBalanceResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func init() { + balancer.Register(newLBBuilder()) +} + +// newLBBuilder creates a builder for grpclb. +func newLBBuilder() balancer.Builder { + return NewLBBuilderWithFallbackTimeout(defaultFallbackTimeout) +} + +// NewLBBuilderWithFallbackTimeout creates a grpclb builder with the given +// fallbackTimeout. If no response is received from the remote balancer within +// fallbackTimeout, the backend addresses from the resolved address list will be +// used. +// +// Only call this function when a non-default fallback timeout is needed. +func NewLBBuilderWithFallbackTimeout(fallbackTimeout time.Duration) balancer.Builder { + return &lbBuilder{ + fallbackTimeout: fallbackTimeout, + } +} + +type lbBuilder struct { + fallbackTimeout time.Duration +} + +func (b *lbBuilder) Name() string { + return grpclbName +} + +func (b *lbBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions) balancer.Balancer { + // This generates a manual resolver builder with a random scheme. This + // scheme will be used to dial to remote LB, so we can send filtered address + // updates to remote LB ClientConn using this manual resolver. + scheme := "grpclb_internal_" + strconv.FormatInt(time.Now().UnixNano(), 36) + r := &lbManualResolver{scheme: scheme, ccb: cc} + + var target string + targetSplitted := strings.Split(cc.Target(), ":///") + if len(targetSplitted) < 2 { + target = cc.Target() + } else { + target = targetSplitted[1] + } + + lb := &lbBalancer{ + cc: cc, + target: target, + opt: opt, + fallbackTimeout: b.fallbackTimeout, + doneCh: make(chan struct{}), + + manualResolver: r, + csEvltr: &connectivityStateEvaluator{}, + subConns: make(map[resolver.Address]balancer.SubConn), + scStates: make(map[balancer.SubConn]connectivity.State), + picker: &errPicker{err: balancer.ErrNoSubConnAvailable}, + clientStats: &rpcStats{}, + } + + return lb +} + +type lbBalancer struct { + cc balancer.ClientConn + target string + opt balancer.BuildOptions + fallbackTimeout time.Duration + doneCh chan struct{} + + // manualResolver is used in the remote LB ClientConn inside grpclb. When + // resolved address updates are received by grpclb, filtered updates will be + // send to remote LB ClientConn through this resolver. + manualResolver *lbManualResolver + // The ClientConn to talk to the remote balancer. + ccRemoteLB *ClientConn + + // Support client side load reporting. Each picker gets a reference to this, + // and will update its content. + clientStats *rpcStats + + mu sync.Mutex // guards everything following. + // The full server list including drops, used to check if the newly received + // serverList contains anything new. Each generate picker will also have + // reference to this list to do the first layer pick. + fullServerList []*lbpb.Server + // All backends addresses, with metadata set to nil. This list contains all + // backend addresses in the same order and with the same duplicates as in + // serverlist. When generating picker, a SubConn slice with the same order + // but with only READY SCs will be gerenated. + backendAddrs []resolver.Address + // Roundrobin functionalities. + csEvltr *connectivityStateEvaluator + state connectivity.State + subConns map[resolver.Address]balancer.SubConn // Used to new/remove SubConn. + scStates map[balancer.SubConn]connectivity.State // Used to filter READY SubConns. + picker balancer.Picker + // Support fallback to resolved backend addresses if there's no response + // from remote balancer within fallbackTimeout. + fallbackTimerExpired bool + serverListReceived bool + // resolvedBackendAddrs is resolvedAddrs minus remote balancers. It's set + // when resolved address updates are received, and read in the goroutine + // handling fallback. + resolvedBackendAddrs []resolver.Address +} + +// regeneratePicker takes a snapshot of the balancer, and generates a picker from +// it. The picker +// - always returns ErrTransientFailure if the balancer is in TransientFailure, +// - does two layer roundrobin pick otherwise. +// Caller must hold lb.mu. +func (lb *lbBalancer) regeneratePicker() { + if lb.state == connectivity.TransientFailure { + lb.picker = &errPicker{err: balancer.ErrTransientFailure} + return + } + var readySCs []balancer.SubConn + for _, a := range lb.backendAddrs { + if sc, ok := lb.subConns[a]; ok { + if st, ok := lb.scStates[sc]; ok && st == connectivity.Ready { + readySCs = append(readySCs, sc) + } + } + } + + if len(lb.fullServerList) <= 0 { + if len(readySCs) <= 0 { + lb.picker = &errPicker{err: balancer.ErrNoSubConnAvailable} + return + } + lb.picker = &rrPicker{subConns: readySCs} + return + } + lb.picker = &lbPicker{ + serverList: lb.fullServerList, + subConns: readySCs, + stats: lb.clientStats, + } + return +} + +func (lb *lbBalancer) HandleSubConnStateChange(sc balancer.SubConn, s connectivity.State) { + grpclog.Infof("lbBalancer: handle SubConn state change: %p, %v", sc, s) + lb.mu.Lock() + defer lb.mu.Unlock() + + oldS, ok := lb.scStates[sc] + if !ok { + grpclog.Infof("lbBalancer: got state changes for an unknown SubConn: %p, %v", sc, s) + return + } + lb.scStates[sc] = s + switch s { + case connectivity.Idle: + sc.Connect() + case connectivity.Shutdown: + // When an address was removed by resolver, b called RemoveSubConn but + // kept the sc's state in scStates. Remove state for this sc here. + delete(lb.scStates, sc) + } + + oldAggrState := lb.state + lb.state = lb.csEvltr.recordTransition(oldS, s) + + // Regenerate picker when one of the following happens: + // - this sc became ready from not-ready + // - this sc became not-ready from ready + // - the aggregated state of balancer became TransientFailure from non-TransientFailure + // - the aggregated state of balancer became non-TransientFailure from TransientFailure + if (oldS == connectivity.Ready) != (s == connectivity.Ready) || + (lb.state == connectivity.TransientFailure) != (oldAggrState == connectivity.TransientFailure) { + lb.regeneratePicker() + } + + lb.cc.UpdateBalancerState(lb.state, lb.picker) + return +} + +// fallbackToBackendsAfter blocks for fallbackTimeout and falls back to use +// resolved backends (backends received from resolver, not from remote balancer) +// if no connection to remote balancers was successful. +func (lb *lbBalancer) fallbackToBackendsAfter(fallbackTimeout time.Duration) { + timer := time.NewTimer(fallbackTimeout) + defer timer.Stop() + select { + case <-timer.C: + case <-lb.doneCh: + return + } + lb.mu.Lock() + if lb.serverListReceived { + lb.mu.Unlock() + return + } + lb.fallbackTimerExpired = true + lb.refreshSubConns(lb.resolvedBackendAddrs) + lb.mu.Unlock() +} + +// HandleResolvedAddrs sends the updated remoteLB addresses to remoteLB +// clientConn. The remoteLB clientConn will handle creating/removing remoteLB +// connections. +func (lb *lbBalancer) HandleResolvedAddrs(addrs []resolver.Address, err error) { + grpclog.Infof("lbBalancer: handleResolvedResult: %+v", addrs) + if len(addrs) <= 0 { + return + } + + var remoteBalancerAddrs, backendAddrs []resolver.Address + for _, a := range addrs { + if a.Type == resolver.GRPCLB { + remoteBalancerAddrs = append(remoteBalancerAddrs, a) + } else { + backendAddrs = append(backendAddrs, a) + } + } + + if lb.ccRemoteLB == nil { + if len(remoteBalancerAddrs) <= 0 { + grpclog.Errorf("grpclb: no remote balancer address is available, should never happen") + return + } + // First time receiving resolved addresses, create a cc to remote + // balancers. + lb.dialRemoteLB(remoteBalancerAddrs[0].ServerName) + // Start the fallback goroutine. + go lb.fallbackToBackendsAfter(lb.fallbackTimeout) + } + + // cc to remote balancers uses lb.manualResolver. Send the updated remote + // balancer addresses to it through manualResolver. + lb.manualResolver.NewAddress(remoteBalancerAddrs) + + lb.mu.Lock() + lb.resolvedBackendAddrs = backendAddrs + // If serverListReceived is true, connection to remote balancer was + // successful and there's no need to do fallback anymore. + // If fallbackTimerExpired is false, fallback hasn't happened yet. + if !lb.serverListReceived && lb.fallbackTimerExpired { + // This means we received a new list of resolved backends, and we are + // still in fallback mode. Need to update the list of backends we are + // using to the new list of backends. + lb.refreshSubConns(lb.resolvedBackendAddrs) + } + lb.mu.Unlock() +} + +func (lb *lbBalancer) Close() { + select { + case <-lb.doneCh: + return + default: + } + close(lb.doneCh) + if lb.ccRemoteLB != nil { + lb.ccRemoteLB.Close() + } +} diff --git a/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages/messages.pb.go b/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages/messages.pb.go new file mode 100644 index 0000000..f4a2712 --- /dev/null +++ b/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages/messages.pb.go @@ -0,0 +1,615 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: grpc_lb_v1/messages/messages.proto + +/* +Package messages is a generated protocol buffer package. + +It is generated from these files: + grpc_lb_v1/messages/messages.proto + +It has these top-level messages: + Duration + Timestamp + LoadBalanceRequest + InitialLoadBalanceRequest + ClientStats + LoadBalanceResponse + InitialLoadBalanceResponse + ServerList + Server +*/ +package messages + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type Duration struct { + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. + Seconds int64 `protobuf:"varint,1,opt,name=seconds" json:"seconds,omitempty"` + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + Nanos int32 `protobuf:"varint,2,opt,name=nanos" json:"nanos,omitempty"` +} + +func (m *Duration) Reset() { *m = Duration{} } +func (m *Duration) String() string { return proto.CompactTextString(m) } +func (*Duration) ProtoMessage() {} +func (*Duration) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *Duration) GetSeconds() int64 { + if m != nil { + return m.Seconds + } + return 0 +} + +func (m *Duration) GetNanos() int32 { + if m != nil { + return m.Nanos + } + return 0 +} + +type Timestamp struct { + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + Seconds int64 `protobuf:"varint,1,opt,name=seconds" json:"seconds,omitempty"` + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + Nanos int32 `protobuf:"varint,2,opt,name=nanos" json:"nanos,omitempty"` +} + +func (m *Timestamp) Reset() { *m = Timestamp{} } +func (m *Timestamp) String() string { return proto.CompactTextString(m) } +func (*Timestamp) ProtoMessage() {} +func (*Timestamp) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +func (m *Timestamp) GetSeconds() int64 { + if m != nil { + return m.Seconds + } + return 0 +} + +func (m *Timestamp) GetNanos() int32 { + if m != nil { + return m.Nanos + } + return 0 +} + +type LoadBalanceRequest struct { + // Types that are valid to be assigned to LoadBalanceRequestType: + // *LoadBalanceRequest_InitialRequest + // *LoadBalanceRequest_ClientStats + LoadBalanceRequestType isLoadBalanceRequest_LoadBalanceRequestType `protobuf_oneof:"load_balance_request_type"` +} + +func (m *LoadBalanceRequest) Reset() { *m = LoadBalanceRequest{} } +func (m *LoadBalanceRequest) String() string { return proto.CompactTextString(m) } +func (*LoadBalanceRequest) ProtoMessage() {} +func (*LoadBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } + +type isLoadBalanceRequest_LoadBalanceRequestType interface { + isLoadBalanceRequest_LoadBalanceRequestType() +} + +type LoadBalanceRequest_InitialRequest struct { + InitialRequest *InitialLoadBalanceRequest `protobuf:"bytes,1,opt,name=initial_request,json=initialRequest,oneof"` +} +type LoadBalanceRequest_ClientStats struct { + ClientStats *ClientStats `protobuf:"bytes,2,opt,name=client_stats,json=clientStats,oneof"` +} + +func (*LoadBalanceRequest_InitialRequest) isLoadBalanceRequest_LoadBalanceRequestType() {} +func (*LoadBalanceRequest_ClientStats) isLoadBalanceRequest_LoadBalanceRequestType() {} + +func (m *LoadBalanceRequest) GetLoadBalanceRequestType() isLoadBalanceRequest_LoadBalanceRequestType { + if m != nil { + return m.LoadBalanceRequestType + } + return nil +} + +func (m *LoadBalanceRequest) GetInitialRequest() *InitialLoadBalanceRequest { + if x, ok := m.GetLoadBalanceRequestType().(*LoadBalanceRequest_InitialRequest); ok { + return x.InitialRequest + } + return nil +} + +func (m *LoadBalanceRequest) GetClientStats() *ClientStats { + if x, ok := m.GetLoadBalanceRequestType().(*LoadBalanceRequest_ClientStats); ok { + return x.ClientStats + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*LoadBalanceRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _LoadBalanceRequest_OneofMarshaler, _LoadBalanceRequest_OneofUnmarshaler, _LoadBalanceRequest_OneofSizer, []interface{}{ + (*LoadBalanceRequest_InitialRequest)(nil), + (*LoadBalanceRequest_ClientStats)(nil), + } +} + +func _LoadBalanceRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*LoadBalanceRequest) + // load_balance_request_type + switch x := m.LoadBalanceRequestType.(type) { + case *LoadBalanceRequest_InitialRequest: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.InitialRequest); err != nil { + return err + } + case *LoadBalanceRequest_ClientStats: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ClientStats); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("LoadBalanceRequest.LoadBalanceRequestType has unexpected type %T", x) + } + return nil +} + +func _LoadBalanceRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*LoadBalanceRequest) + switch tag { + case 1: // load_balance_request_type.initial_request + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(InitialLoadBalanceRequest) + err := b.DecodeMessage(msg) + m.LoadBalanceRequestType = &LoadBalanceRequest_InitialRequest{msg} + return true, err + case 2: // load_balance_request_type.client_stats + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ClientStats) + err := b.DecodeMessage(msg) + m.LoadBalanceRequestType = &LoadBalanceRequest_ClientStats{msg} + return true, err + default: + return false, nil + } +} + +func _LoadBalanceRequest_OneofSizer(msg proto.Message) (n int) { + m := msg.(*LoadBalanceRequest) + // load_balance_request_type + switch x := m.LoadBalanceRequestType.(type) { + case *LoadBalanceRequest_InitialRequest: + s := proto.Size(x.InitialRequest) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *LoadBalanceRequest_ClientStats: + s := proto.Size(x.ClientStats) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type InitialLoadBalanceRequest struct { + // Name of load balanced service (IE, balancer.service.com) + // length should be less than 256 bytes. + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` +} + +func (m *InitialLoadBalanceRequest) Reset() { *m = InitialLoadBalanceRequest{} } +func (m *InitialLoadBalanceRequest) String() string { return proto.CompactTextString(m) } +func (*InitialLoadBalanceRequest) ProtoMessage() {} +func (*InitialLoadBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } + +func (m *InitialLoadBalanceRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// Contains client level statistics that are useful to load balancing. Each +// count except the timestamp should be reset to zero after reporting the stats. +type ClientStats struct { + // The timestamp of generating the report. + Timestamp *Timestamp `protobuf:"bytes,1,opt,name=timestamp" json:"timestamp,omitempty"` + // The total number of RPCs that started. + NumCallsStarted int64 `protobuf:"varint,2,opt,name=num_calls_started,json=numCallsStarted" json:"num_calls_started,omitempty"` + // The total number of RPCs that finished. + NumCallsFinished int64 `protobuf:"varint,3,opt,name=num_calls_finished,json=numCallsFinished" json:"num_calls_finished,omitempty"` + // The total number of RPCs that were dropped by the client because of rate + // limiting. + NumCallsFinishedWithDropForRateLimiting int64 `protobuf:"varint,4,opt,name=num_calls_finished_with_drop_for_rate_limiting,json=numCallsFinishedWithDropForRateLimiting" json:"num_calls_finished_with_drop_for_rate_limiting,omitempty"` + // The total number of RPCs that were dropped by the client because of load + // balancing. + NumCallsFinishedWithDropForLoadBalancing int64 `protobuf:"varint,5,opt,name=num_calls_finished_with_drop_for_load_balancing,json=numCallsFinishedWithDropForLoadBalancing" json:"num_calls_finished_with_drop_for_load_balancing,omitempty"` + // The total number of RPCs that failed to reach a server except dropped RPCs. + NumCallsFinishedWithClientFailedToSend int64 `protobuf:"varint,6,opt,name=num_calls_finished_with_client_failed_to_send,json=numCallsFinishedWithClientFailedToSend" json:"num_calls_finished_with_client_failed_to_send,omitempty"` + // The total number of RPCs that finished and are known to have been received + // by a server. + NumCallsFinishedKnownReceived int64 `protobuf:"varint,7,opt,name=num_calls_finished_known_received,json=numCallsFinishedKnownReceived" json:"num_calls_finished_known_received,omitempty"` +} + +func (m *ClientStats) Reset() { *m = ClientStats{} } +func (m *ClientStats) String() string { return proto.CompactTextString(m) } +func (*ClientStats) ProtoMessage() {} +func (*ClientStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } + +func (m *ClientStats) GetTimestamp() *Timestamp { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *ClientStats) GetNumCallsStarted() int64 { + if m != nil { + return m.NumCallsStarted + } + return 0 +} + +func (m *ClientStats) GetNumCallsFinished() int64 { + if m != nil { + return m.NumCallsFinished + } + return 0 +} + +func (m *ClientStats) GetNumCallsFinishedWithDropForRateLimiting() int64 { + if m != nil { + return m.NumCallsFinishedWithDropForRateLimiting + } + return 0 +} + +func (m *ClientStats) GetNumCallsFinishedWithDropForLoadBalancing() int64 { + if m != nil { + return m.NumCallsFinishedWithDropForLoadBalancing + } + return 0 +} + +func (m *ClientStats) GetNumCallsFinishedWithClientFailedToSend() int64 { + if m != nil { + return m.NumCallsFinishedWithClientFailedToSend + } + return 0 +} + +func (m *ClientStats) GetNumCallsFinishedKnownReceived() int64 { + if m != nil { + return m.NumCallsFinishedKnownReceived + } + return 0 +} + +type LoadBalanceResponse struct { + // Types that are valid to be assigned to LoadBalanceResponseType: + // *LoadBalanceResponse_InitialResponse + // *LoadBalanceResponse_ServerList + LoadBalanceResponseType isLoadBalanceResponse_LoadBalanceResponseType `protobuf_oneof:"load_balance_response_type"` +} + +func (m *LoadBalanceResponse) Reset() { *m = LoadBalanceResponse{} } +func (m *LoadBalanceResponse) String() string { return proto.CompactTextString(m) } +func (*LoadBalanceResponse) ProtoMessage() {} +func (*LoadBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } + +type isLoadBalanceResponse_LoadBalanceResponseType interface { + isLoadBalanceResponse_LoadBalanceResponseType() +} + +type LoadBalanceResponse_InitialResponse struct { + InitialResponse *InitialLoadBalanceResponse `protobuf:"bytes,1,opt,name=initial_response,json=initialResponse,oneof"` +} +type LoadBalanceResponse_ServerList struct { + ServerList *ServerList `protobuf:"bytes,2,opt,name=server_list,json=serverList,oneof"` +} + +func (*LoadBalanceResponse_InitialResponse) isLoadBalanceResponse_LoadBalanceResponseType() {} +func (*LoadBalanceResponse_ServerList) isLoadBalanceResponse_LoadBalanceResponseType() {} + +func (m *LoadBalanceResponse) GetLoadBalanceResponseType() isLoadBalanceResponse_LoadBalanceResponseType { + if m != nil { + return m.LoadBalanceResponseType + } + return nil +} + +func (m *LoadBalanceResponse) GetInitialResponse() *InitialLoadBalanceResponse { + if x, ok := m.GetLoadBalanceResponseType().(*LoadBalanceResponse_InitialResponse); ok { + return x.InitialResponse + } + return nil +} + +func (m *LoadBalanceResponse) GetServerList() *ServerList { + if x, ok := m.GetLoadBalanceResponseType().(*LoadBalanceResponse_ServerList); ok { + return x.ServerList + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*LoadBalanceResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _LoadBalanceResponse_OneofMarshaler, _LoadBalanceResponse_OneofUnmarshaler, _LoadBalanceResponse_OneofSizer, []interface{}{ + (*LoadBalanceResponse_InitialResponse)(nil), + (*LoadBalanceResponse_ServerList)(nil), + } +} + +func _LoadBalanceResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*LoadBalanceResponse) + // load_balance_response_type + switch x := m.LoadBalanceResponseType.(type) { + case *LoadBalanceResponse_InitialResponse: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.InitialResponse); err != nil { + return err + } + case *LoadBalanceResponse_ServerList: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ServerList); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("LoadBalanceResponse.LoadBalanceResponseType has unexpected type %T", x) + } + return nil +} + +func _LoadBalanceResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*LoadBalanceResponse) + switch tag { + case 1: // load_balance_response_type.initial_response + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(InitialLoadBalanceResponse) + err := b.DecodeMessage(msg) + m.LoadBalanceResponseType = &LoadBalanceResponse_InitialResponse{msg} + return true, err + case 2: // load_balance_response_type.server_list + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ServerList) + err := b.DecodeMessage(msg) + m.LoadBalanceResponseType = &LoadBalanceResponse_ServerList{msg} + return true, err + default: + return false, nil + } +} + +func _LoadBalanceResponse_OneofSizer(msg proto.Message) (n int) { + m := msg.(*LoadBalanceResponse) + // load_balance_response_type + switch x := m.LoadBalanceResponseType.(type) { + case *LoadBalanceResponse_InitialResponse: + s := proto.Size(x.InitialResponse) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *LoadBalanceResponse_ServerList: + s := proto.Size(x.ServerList) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type InitialLoadBalanceResponse struct { + // This is an application layer redirect that indicates the client should use + // the specified server for load balancing. When this field is non-empty in + // the response, the client should open a separate connection to the + // load_balancer_delegate and call the BalanceLoad method. Its length should + // be less than 64 bytes. + LoadBalancerDelegate string `protobuf:"bytes,1,opt,name=load_balancer_delegate,json=loadBalancerDelegate" json:"load_balancer_delegate,omitempty"` + // This interval defines how often the client should send the client stats + // to the load balancer. Stats should only be reported when the duration is + // positive. + ClientStatsReportInterval *Duration `protobuf:"bytes,2,opt,name=client_stats_report_interval,json=clientStatsReportInterval" json:"client_stats_report_interval,omitempty"` +} + +func (m *InitialLoadBalanceResponse) Reset() { *m = InitialLoadBalanceResponse{} } +func (m *InitialLoadBalanceResponse) String() string { return proto.CompactTextString(m) } +func (*InitialLoadBalanceResponse) ProtoMessage() {} +func (*InitialLoadBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } + +func (m *InitialLoadBalanceResponse) GetLoadBalancerDelegate() string { + if m != nil { + return m.LoadBalancerDelegate + } + return "" +} + +func (m *InitialLoadBalanceResponse) GetClientStatsReportInterval() *Duration { + if m != nil { + return m.ClientStatsReportInterval + } + return nil +} + +type ServerList struct { + // Contains a list of servers selected by the load balancer. The list will + // be updated when server resolutions change or as needed to balance load + // across more servers. The client should consume the server list in order + // unless instructed otherwise via the client_config. + Servers []*Server `protobuf:"bytes,1,rep,name=servers" json:"servers,omitempty"` +} + +func (m *ServerList) Reset() { *m = ServerList{} } +func (m *ServerList) String() string { return proto.CompactTextString(m) } +func (*ServerList) ProtoMessage() {} +func (*ServerList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } + +func (m *ServerList) GetServers() []*Server { + if m != nil { + return m.Servers + } + return nil +} + +// Contains server information. When none of the [drop_for_*] fields are true, +// use the other fields. When drop_for_rate_limiting is true, ignore all other +// fields. Use drop_for_load_balancing only when it is true and +// drop_for_rate_limiting is false. +type Server struct { + // A resolved address for the server, serialized in network-byte-order. It may + // either be an IPv4 or IPv6 address. + IpAddress []byte `protobuf:"bytes,1,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` + // A resolved port number for the server. + Port int32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` + // An opaque but printable token given to the frontend for each pick. All + // frontend requests for that pick must include the token in its initial + // metadata. The token is used by the backend to verify the request and to + // allow the backend to report load to the gRPC LB system. + // + // Its length is variable but less than 50 bytes. + LoadBalanceToken string `protobuf:"bytes,3,opt,name=load_balance_token,json=loadBalanceToken" json:"load_balance_token,omitempty"` + // Indicates whether this particular request should be dropped by the client + // for rate limiting. + DropForRateLimiting bool `protobuf:"varint,4,opt,name=drop_for_rate_limiting,json=dropForRateLimiting" json:"drop_for_rate_limiting,omitempty"` + // Indicates whether this particular request should be dropped by the client + // for load balancing. + DropForLoadBalancing bool `protobuf:"varint,5,opt,name=drop_for_load_balancing,json=dropForLoadBalancing" json:"drop_for_load_balancing,omitempty"` +} + +func (m *Server) Reset() { *m = Server{} } +func (m *Server) String() string { return proto.CompactTextString(m) } +func (*Server) ProtoMessage() {} +func (*Server) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } + +func (m *Server) GetIpAddress() []byte { + if m != nil { + return m.IpAddress + } + return nil +} + +func (m *Server) GetPort() int32 { + if m != nil { + return m.Port + } + return 0 +} + +func (m *Server) GetLoadBalanceToken() string { + if m != nil { + return m.LoadBalanceToken + } + return "" +} + +func (m *Server) GetDropForRateLimiting() bool { + if m != nil { + return m.DropForRateLimiting + } + return false +} + +func (m *Server) GetDropForLoadBalancing() bool { + if m != nil { + return m.DropForLoadBalancing + } + return false +} + +func init() { + proto.RegisterType((*Duration)(nil), "grpc.lb.v1.Duration") + proto.RegisterType((*Timestamp)(nil), "grpc.lb.v1.Timestamp") + proto.RegisterType((*LoadBalanceRequest)(nil), "grpc.lb.v1.LoadBalanceRequest") + proto.RegisterType((*InitialLoadBalanceRequest)(nil), "grpc.lb.v1.InitialLoadBalanceRequest") + proto.RegisterType((*ClientStats)(nil), "grpc.lb.v1.ClientStats") + proto.RegisterType((*LoadBalanceResponse)(nil), "grpc.lb.v1.LoadBalanceResponse") + proto.RegisterType((*InitialLoadBalanceResponse)(nil), "grpc.lb.v1.InitialLoadBalanceResponse") + proto.RegisterType((*ServerList)(nil), "grpc.lb.v1.ServerList") + proto.RegisterType((*Server)(nil), "grpc.lb.v1.Server") +} + +func init() { proto.RegisterFile("grpc_lb_v1/messages/messages.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 709 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0xdd, 0x4e, 0x1b, 0x3b, + 0x10, 0x26, 0x27, 0x01, 0x92, 0x09, 0x3a, 0xe4, 0x98, 0x1c, 0x08, 0x14, 0x24, 0xba, 0x52, 0x69, + 0x54, 0xd1, 0x20, 0xa0, 0xbd, 0xe8, 0xcf, 0x45, 0x1b, 0x10, 0x0a, 0x2d, 0x17, 0x95, 0x43, 0x55, + 0xa9, 0x52, 0x65, 0x39, 0xd9, 0x21, 0x58, 0x6c, 0xec, 0xad, 0xed, 0x04, 0xf5, 0x11, 0xfa, 0x28, + 0x7d, 0x8c, 0xaa, 0xcf, 0xd0, 0xf7, 0xa9, 0xd6, 0xbb, 0x9b, 0x5d, 0x20, 0x80, 0x7a, 0x67, 0x8f, + 0xbf, 0xf9, 0xbe, 0xf1, 0xac, 0xbf, 0x59, 0xf0, 0x06, 0x3a, 0xec, 0xb3, 0xa0, 0xc7, 0xc6, 0xbb, + 0x3b, 0x43, 0x34, 0x86, 0x0f, 0xd0, 0x4c, 0x16, 0xad, 0x50, 0x2b, 0xab, 0x08, 0x44, 0x98, 0x56, + 0xd0, 0x6b, 0x8d, 0x77, 0xbd, 0x97, 0x50, 0x3e, 0x1c, 0x69, 0x6e, 0x85, 0x92, 0xa4, 0x01, 0xf3, + 0x06, 0xfb, 0x4a, 0xfa, 0xa6, 0x51, 0xd8, 0x2c, 0x34, 0x8b, 0x34, 0xdd, 0x92, 0x3a, 0xcc, 0x4a, + 0x2e, 0x95, 0x69, 0xfc, 0xb3, 0x59, 0x68, 0xce, 0xd2, 0x78, 0xe3, 0xbd, 0x82, 0xca, 0xa9, 0x18, + 0xa2, 0xb1, 0x7c, 0x18, 0xfe, 0x75, 0xf2, 0xcf, 0x02, 0x90, 0x13, 0xc5, 0xfd, 0x36, 0x0f, 0xb8, + 0xec, 0x23, 0xc5, 0xaf, 0x23, 0x34, 0x96, 0x7c, 0x80, 0x45, 0x21, 0x85, 0x15, 0x3c, 0x60, 0x3a, + 0x0e, 0x39, 0xba, 0xea, 0xde, 0xa3, 0x56, 0x56, 0x75, 0xeb, 0x38, 0x86, 0xdc, 0xcc, 0xef, 0xcc, + 0xd0, 0x7f, 0x93, 0xfc, 0x94, 0xf1, 0x35, 0x2c, 0xf4, 0x03, 0x81, 0xd2, 0x32, 0x63, 0xb9, 0x8d, + 0xab, 0xa8, 0xee, 0xad, 0xe4, 0xe9, 0x0e, 0xdc, 0x79, 0x37, 0x3a, 0xee, 0xcc, 0xd0, 0x6a, 0x3f, + 0xdb, 0xb6, 0x1f, 0xc0, 0x6a, 0xa0, 0xb8, 0xcf, 0x7a, 0xb1, 0x4c, 0x5a, 0x14, 0xb3, 0xdf, 0x42, + 0xf4, 0x76, 0x60, 0xf5, 0xd6, 0x4a, 0x08, 0x81, 0x92, 0xe4, 0x43, 0x74, 0xe5, 0x57, 0xa8, 0x5b, + 0x7b, 0xdf, 0x4b, 0x50, 0xcd, 0x89, 0x91, 0x7d, 0xa8, 0xd8, 0xb4, 0x83, 0xc9, 0x3d, 0xff, 0xcf, + 0x17, 0x36, 0x69, 0x2f, 0xcd, 0x70, 0xe4, 0x09, 0xfc, 0x27, 0x47, 0x43, 0xd6, 0xe7, 0x41, 0x60, + 0xa2, 0x3b, 0x69, 0x8b, 0xbe, 0xbb, 0x55, 0x91, 0x2e, 0xca, 0xd1, 0xf0, 0x20, 0x8a, 0x77, 0xe3, + 0x30, 0xd9, 0x06, 0x92, 0x61, 0xcf, 0x84, 0x14, 0xe6, 0x1c, 0xfd, 0x46, 0xd1, 0x81, 0x6b, 0x29, + 0xf8, 0x28, 0x89, 0x13, 0x06, 0xad, 0x9b, 0x68, 0x76, 0x29, 0xec, 0x39, 0xf3, 0xb5, 0x0a, 0xd9, + 0x99, 0xd2, 0x4c, 0x73, 0x8b, 0x2c, 0x10, 0x43, 0x61, 0x85, 0x1c, 0x34, 0x4a, 0x8e, 0xe9, 0xf1, + 0x75, 0xa6, 0x4f, 0xc2, 0x9e, 0x1f, 0x6a, 0x15, 0x1e, 0x29, 0x4d, 0xb9, 0xc5, 0x93, 0x04, 0x4e, + 0x38, 0xec, 0xdc, 0x2b, 0x90, 0x6b, 0x77, 0xa4, 0x30, 0xeb, 0x14, 0x9a, 0x77, 0x28, 0x64, 0xbd, + 0x8f, 0x24, 0xbe, 0xc0, 0xd3, 0xdb, 0x24, 0x92, 0x67, 0x70, 0xc6, 0x45, 0x80, 0x3e, 0xb3, 0x8a, + 0x19, 0x94, 0x7e, 0x63, 0xce, 0x09, 0x6c, 0x4d, 0x13, 0x88, 0x3f, 0xd5, 0x91, 0xc3, 0x9f, 0xaa, + 0x2e, 0x4a, 0x9f, 0x74, 0xe0, 0xe1, 0x14, 0xfa, 0x0b, 0xa9, 0x2e, 0x25, 0xd3, 0xd8, 0x47, 0x31, + 0x46, 0xbf, 0x31, 0xef, 0x28, 0x37, 0xae, 0x53, 0xbe, 0x8f, 0x50, 0x34, 0x01, 0x79, 0xbf, 0x0a, + 0xb0, 0x74, 0xe5, 0xd9, 0x98, 0x50, 0x49, 0x83, 0xa4, 0x0b, 0xb5, 0xcc, 0x01, 0x71, 0x2c, 0x79, + 0x1a, 0x5b, 0xf7, 0x59, 0x20, 0x46, 0x77, 0x66, 0xe8, 0xe2, 0xc4, 0x03, 0x09, 0xe9, 0x0b, 0xa8, + 0x1a, 0xd4, 0x63, 0xd4, 0x2c, 0x10, 0xc6, 0x26, 0x1e, 0x58, 0xce, 0xf3, 0x75, 0xdd, 0xf1, 0x89, + 0x70, 0x1e, 0x02, 0x33, 0xd9, 0xb5, 0xd7, 0x61, 0xed, 0x9a, 0x03, 0x62, 0xce, 0xd8, 0x02, 0x3f, + 0x0a, 0xb0, 0x76, 0x7b, 0x29, 0xe4, 0x19, 0x2c, 0xe7, 0x93, 0x35, 0xf3, 0x31, 0xc0, 0x01, 0xb7, + 0xa9, 0x2d, 0xea, 0x41, 0x96, 0xa4, 0x0f, 0x93, 0x33, 0xf2, 0x11, 0xd6, 0xf3, 0x96, 0x65, 0x1a, + 0x43, 0xa5, 0x2d, 0x13, 0xd2, 0xa2, 0x1e, 0xf3, 0x20, 0x29, 0xbf, 0x9e, 0x2f, 0x3f, 0x1d, 0x62, + 0x74, 0x35, 0xe7, 0x5e, 0xea, 0xf2, 0x8e, 0x93, 0x34, 0xef, 0x0d, 0x40, 0x76, 0x4b, 0xb2, 0x1d, + 0x0d, 0xac, 0x68, 0x17, 0x0d, 0xac, 0x62, 0xb3, 0xba, 0x47, 0x6e, 0xb6, 0x83, 0xa6, 0x90, 0x77, + 0xa5, 0x72, 0xb1, 0x56, 0xf2, 0x7e, 0x17, 0x60, 0x2e, 0x3e, 0x21, 0x1b, 0x00, 0x22, 0x64, 0xdc, + 0xf7, 0x35, 0x9a, 0x78, 0xe4, 0x2d, 0xd0, 0x8a, 0x08, 0xdf, 0xc6, 0x81, 0xc8, 0xfd, 0x91, 0x76, + 0x32, 0xf3, 0xdc, 0x3a, 0x32, 0xe3, 0x95, 0x4e, 0x5a, 0x75, 0x81, 0xd2, 0x99, 0xb1, 0x42, 0x6b, + 0xb9, 0x46, 0x9c, 0x46, 0x71, 0xb2, 0x0f, 0xcb, 0x77, 0x98, 0xae, 0x4c, 0x97, 0xfc, 0x29, 0x06, + 0x7b, 0x0e, 0x2b, 0x77, 0x19, 0xa9, 0x4c, 0xeb, 0xfe, 0x14, 0xd3, 0xb4, 0xe1, 0x73, 0x39, 0xfd, + 0x47, 0xf4, 0xe6, 0xdc, 0x4f, 0x62, 0xff, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3, 0x36, 0x86, + 0xa6, 0x4a, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages/messages.proto b/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages/messages.proto new file mode 100644 index 0000000..42d99c1 --- /dev/null +++ b/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages/messages.proto @@ -0,0 +1,155 @@ +// Copyright 2016 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package grpc.lb.v1; +option go_package = "google.golang.org/grpc/grpclb/grpc_lb_v1/messages"; + +message Duration { + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. + int64 seconds = 1; + + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + int32 nanos = 2; +} + +message Timestamp { + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + int64 seconds = 1; + + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + int32 nanos = 2; +} + +message LoadBalanceRequest { + oneof load_balance_request_type { + // This message should be sent on the first request to the load balancer. + InitialLoadBalanceRequest initial_request = 1; + + // The client stats should be periodically reported to the load balancer + // based on the duration defined in the InitialLoadBalanceResponse. + ClientStats client_stats = 2; + } +} + +message InitialLoadBalanceRequest { + // Name of load balanced service (IE, balancer.service.com) + // length should be less than 256 bytes. + string name = 1; +} + +// Contains client level statistics that are useful to load balancing. Each +// count except the timestamp should be reset to zero after reporting the stats. +message ClientStats { + // The timestamp of generating the report. + Timestamp timestamp = 1; + + // The total number of RPCs that started. + int64 num_calls_started = 2; + + // The total number of RPCs that finished. + int64 num_calls_finished = 3; + + // The total number of RPCs that were dropped by the client because of rate + // limiting. + int64 num_calls_finished_with_drop_for_rate_limiting = 4; + + // The total number of RPCs that were dropped by the client because of load + // balancing. + int64 num_calls_finished_with_drop_for_load_balancing = 5; + + // The total number of RPCs that failed to reach a server except dropped RPCs. + int64 num_calls_finished_with_client_failed_to_send = 6; + + // The total number of RPCs that finished and are known to have been received + // by a server. + int64 num_calls_finished_known_received = 7; +} + +message LoadBalanceResponse { + oneof load_balance_response_type { + // This message should be sent on the first response to the client. + InitialLoadBalanceResponse initial_response = 1; + + // Contains the list of servers selected by the load balancer. The client + // should send requests to these servers in the specified order. + ServerList server_list = 2; + } +} + +message InitialLoadBalanceResponse { + // This is an application layer redirect that indicates the client should use + // the specified server for load balancing. When this field is non-empty in + // the response, the client should open a separate connection to the + // load_balancer_delegate and call the BalanceLoad method. Its length should + // be less than 64 bytes. + string load_balancer_delegate = 1; + + // This interval defines how often the client should send the client stats + // to the load balancer. Stats should only be reported when the duration is + // positive. + Duration client_stats_report_interval = 2; +} + +message ServerList { + // Contains a list of servers selected by the load balancer. The list will + // be updated when server resolutions change or as needed to balance load + // across more servers. The client should consume the server list in order + // unless instructed otherwise via the client_config. + repeated Server servers = 1; + + // Was google.protobuf.Duration expiration_interval. + reserved 3; +} + +// Contains server information. When none of the [drop_for_*] fields are true, +// use the other fields. When drop_for_rate_limiting is true, ignore all other +// fields. Use drop_for_load_balancing only when it is true and +// drop_for_rate_limiting is false. +message Server { + // A resolved address for the server, serialized in network-byte-order. It may + // either be an IPv4 or IPv6 address. + bytes ip_address = 1; + + // A resolved port number for the server. + int32 port = 2; + + // An opaque but printable token given to the frontend for each pick. All + // frontend requests for that pick must include the token in its initial + // metadata. The token is used by the backend to verify the request and to + // allow the backend to report load to the gRPC LB system. + // + // Its length is variable but less than 50 bytes. + string load_balance_token = 3; + + // Indicates whether this particular request should be dropped by the client + // for rate limiting. + bool drop_for_rate_limiting = 4; + + // Indicates whether this particular request should be dropped by the client + // for load balancing. + bool drop_for_load_balancing = 5; +} diff --git a/vendor/google.golang.org/grpc/grpclb_picker.go b/vendor/google.golang.org/grpc/grpclb_picker.go new file mode 100644 index 0000000..872c7cc --- /dev/null +++ b/vendor/google.golang.org/grpc/grpclb_picker.go @@ -0,0 +1,159 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "sync" + "sync/atomic" + + "golang.org/x/net/context" + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/codes" + lbpb "google.golang.org/grpc/grpclb/grpc_lb_v1/messages" + "google.golang.org/grpc/status" +) + +type rpcStats struct { + NumCallsStarted int64 + NumCallsFinished int64 + NumCallsFinishedWithDropForRateLimiting int64 + NumCallsFinishedWithDropForLoadBalancing int64 + NumCallsFinishedWithClientFailedToSend int64 + NumCallsFinishedKnownReceived int64 +} + +// toClientStats converts rpcStats to lbpb.ClientStats, and clears rpcStats. +func (s *rpcStats) toClientStats() *lbpb.ClientStats { + stats := &lbpb.ClientStats{ + NumCallsStarted: atomic.SwapInt64(&s.NumCallsStarted, 0), + NumCallsFinished: atomic.SwapInt64(&s.NumCallsFinished, 0), + NumCallsFinishedWithDropForRateLimiting: atomic.SwapInt64(&s.NumCallsFinishedWithDropForRateLimiting, 0), + NumCallsFinishedWithDropForLoadBalancing: atomic.SwapInt64(&s.NumCallsFinishedWithDropForLoadBalancing, 0), + NumCallsFinishedWithClientFailedToSend: atomic.SwapInt64(&s.NumCallsFinishedWithClientFailedToSend, 0), + NumCallsFinishedKnownReceived: atomic.SwapInt64(&s.NumCallsFinishedKnownReceived, 0), + } + return stats +} + +func (s *rpcStats) dropForRateLimiting() { + atomic.AddInt64(&s.NumCallsStarted, 1) + atomic.AddInt64(&s.NumCallsFinishedWithDropForRateLimiting, 1) + atomic.AddInt64(&s.NumCallsFinished, 1) +} + +func (s *rpcStats) dropForLoadBalancing() { + atomic.AddInt64(&s.NumCallsStarted, 1) + atomic.AddInt64(&s.NumCallsFinishedWithDropForLoadBalancing, 1) + atomic.AddInt64(&s.NumCallsFinished, 1) +} + +func (s *rpcStats) failedToSend() { + atomic.AddInt64(&s.NumCallsStarted, 1) + atomic.AddInt64(&s.NumCallsFinishedWithClientFailedToSend, 1) + atomic.AddInt64(&s.NumCallsFinished, 1) +} + +func (s *rpcStats) knownReceived() { + atomic.AddInt64(&s.NumCallsStarted, 1) + atomic.AddInt64(&s.NumCallsFinishedKnownReceived, 1) + atomic.AddInt64(&s.NumCallsFinished, 1) +} + +type errPicker struct { + // Pick always returns this err. + err error +} + +func (p *errPicker) Pick(ctx context.Context, opts balancer.PickOptions) (balancer.SubConn, func(balancer.DoneInfo), error) { + return nil, nil, p.err +} + +// rrPicker does roundrobin on subConns. It's typically used when there's no +// response from remote balancer, and grpclb falls back to the resolved +// backends. +// +// It guaranteed that len(subConns) > 0. +type rrPicker struct { + mu sync.Mutex + subConns []balancer.SubConn // The subConns that were READY when taking the snapshot. + subConnsNext int +} + +func (p *rrPicker) Pick(ctx context.Context, opts balancer.PickOptions) (balancer.SubConn, func(balancer.DoneInfo), error) { + p.mu.Lock() + defer p.mu.Unlock() + sc := p.subConns[p.subConnsNext] + p.subConnsNext = (p.subConnsNext + 1) % len(p.subConns) + return sc, nil, nil +} + +// lbPicker does two layers of picks: +// +// First layer: roundrobin on all servers in serverList, including drops and backends. +// - If it picks a drop, the RPC will fail as being dropped. +// - If it picks a backend, do a second layer pick to pick the real backend. +// +// Second layer: roundrobin on all READY backends. +// +// It's guaranteed that len(serverList) > 0. +type lbPicker struct { + mu sync.Mutex + serverList []*lbpb.Server + serverListNext int + subConns []balancer.SubConn // The subConns that were READY when taking the snapshot. + subConnsNext int + + stats *rpcStats +} + +func (p *lbPicker) Pick(ctx context.Context, opts balancer.PickOptions) (balancer.SubConn, func(balancer.DoneInfo), error) { + p.mu.Lock() + defer p.mu.Unlock() + + // Layer one roundrobin on serverList. + s := p.serverList[p.serverListNext] + p.serverListNext = (p.serverListNext + 1) % len(p.serverList) + + // If it's a drop, return an error and fail the RPC. + if s.DropForRateLimiting { + p.stats.dropForRateLimiting() + return nil, nil, status.Errorf(codes.Unavailable, "request dropped by grpclb") + } + if s.DropForLoadBalancing { + p.stats.dropForLoadBalancing() + return nil, nil, status.Errorf(codes.Unavailable, "request dropped by grpclb") + } + + // If not a drop but there's no ready subConns. + if len(p.subConns) <= 0 { + return nil, nil, balancer.ErrNoSubConnAvailable + } + + // Return the next ready subConn in the list, also collect rpc stats. + sc := p.subConns[p.subConnsNext] + p.subConnsNext = (p.subConnsNext + 1) % len(p.subConns) + done := func(info balancer.DoneInfo) { + if !info.BytesSent { + p.stats.failedToSend() + } else if info.BytesReceived { + p.stats.knownReceived() + } + } + return sc, done, nil +} diff --git a/vendor/google.golang.org/grpc/grpclb_remote_balancer.go b/vendor/google.golang.org/grpc/grpclb_remote_balancer.go new file mode 100644 index 0000000..1b580df --- /dev/null +++ b/vendor/google.golang.org/grpc/grpclb_remote_balancer.go @@ -0,0 +1,254 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "fmt" + "net" + "reflect" + "time" + + "golang.org/x/net/context" + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/connectivity" + lbpb "google.golang.org/grpc/grpclb/grpc_lb_v1/messages" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/resolver" +) + +// processServerList updates balaner's internal state, create/remove SubConns +// and regenerates picker using the received serverList. +func (lb *lbBalancer) processServerList(l *lbpb.ServerList) { + grpclog.Infof("lbBalancer: processing server list: %+v", l) + lb.mu.Lock() + defer lb.mu.Unlock() + + // Set serverListReceived to true so fallback will not take effect if it has + // not hit timeout. + lb.serverListReceived = true + + // If the new server list == old server list, do nothing. + if reflect.DeepEqual(lb.fullServerList, l.Servers) { + grpclog.Infof("lbBalancer: new serverlist same as the previous one, ignoring") + return + } + lb.fullServerList = l.Servers + + var backendAddrs []resolver.Address + for _, s := range l.Servers { + if s.DropForLoadBalancing || s.DropForRateLimiting { + continue + } + + md := metadata.Pairs(lbTokeyKey, s.LoadBalanceToken) + ip := net.IP(s.IpAddress) + ipStr := ip.String() + if ip.To4() == nil { + // Add square brackets to ipv6 addresses, otherwise net.Dial() and + // net.SplitHostPort() will return too many colons error. + ipStr = fmt.Sprintf("[%s]", ipStr) + } + addr := resolver.Address{ + Addr: fmt.Sprintf("%s:%d", ipStr, s.Port), + Metadata: &md, + } + + backendAddrs = append(backendAddrs, addr) + } + + // Call refreshSubConns to create/remove SubConns. + backendsUpdated := lb.refreshSubConns(backendAddrs) + // If no backend was updated, no SubConn will be newed/removed. But since + // the full serverList was different, there might be updates in drops or + // pick weights(different number of duplicates). We need to update picker + // with the fulllist. + if !backendsUpdated { + lb.regeneratePicker() + lb.cc.UpdateBalancerState(lb.state, lb.picker) + } +} + +// refreshSubConns creates/removes SubConns with backendAddrs. It returns a bool +// indicating whether the backendAddrs are different from the cached +// backendAddrs (whether any SubConn was newed/removed). +// Caller must hold lb.mu. +func (lb *lbBalancer) refreshSubConns(backendAddrs []resolver.Address) bool { + lb.backendAddrs = nil + var backendsUpdated bool + // addrsSet is the set converted from backendAddrs, it's used to quick + // lookup for an address. + addrsSet := make(map[resolver.Address]struct{}) + // Create new SubConns. + for _, addr := range backendAddrs { + addrWithoutMD := addr + addrWithoutMD.Metadata = nil + addrsSet[addrWithoutMD] = struct{}{} + lb.backendAddrs = append(lb.backendAddrs, addrWithoutMD) + + if _, ok := lb.subConns[addrWithoutMD]; !ok { + backendsUpdated = true + + // Use addrWithMD to create the SubConn. + sc, err := lb.cc.NewSubConn([]resolver.Address{addr}, balancer.NewSubConnOptions{}) + if err != nil { + grpclog.Warningf("roundrobinBalancer: failed to create new SubConn: %v", err) + continue + } + lb.subConns[addrWithoutMD] = sc // Use the addr without MD as key for the map. + lb.scStates[sc] = connectivity.Idle + sc.Connect() + } + } + + for a, sc := range lb.subConns { + // a was removed by resolver. + if _, ok := addrsSet[a]; !ok { + backendsUpdated = true + + lb.cc.RemoveSubConn(sc) + delete(lb.subConns, a) + // Keep the state of this sc in b.scStates until sc's state becomes Shutdown. + // The entry will be deleted in HandleSubConnStateChange. + } + } + + return backendsUpdated +} + +func (lb *lbBalancer) readServerList(s *balanceLoadClientStream) error { + for { + reply, err := s.Recv() + if err != nil { + return fmt.Errorf("grpclb: failed to recv server list: %v", err) + } + if serverList := reply.GetServerList(); serverList != nil { + lb.processServerList(serverList) + } + } +} + +func (lb *lbBalancer) sendLoadReport(s *balanceLoadClientStream, interval time.Duration) { + ticker := time.NewTicker(interval) + defer ticker.Stop() + for { + select { + case <-ticker.C: + case <-s.Context().Done(): + return + } + stats := lb.clientStats.toClientStats() + t := time.Now() + stats.Timestamp = &lbpb.Timestamp{ + Seconds: t.Unix(), + Nanos: int32(t.Nanosecond()), + } + if err := s.Send(&lbpb.LoadBalanceRequest{ + LoadBalanceRequestType: &lbpb.LoadBalanceRequest_ClientStats{ + ClientStats: stats, + }, + }); err != nil { + return + } + } +} +func (lb *lbBalancer) callRemoteBalancer() error { + lbClient := &loadBalancerClient{cc: lb.ccRemoteLB} + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + stream, err := lbClient.BalanceLoad(ctx, FailFast(false)) + if err != nil { + return fmt.Errorf("grpclb: failed to perform RPC to the remote balancer %v", err) + } + + // grpclb handshake on the stream. + initReq := &lbpb.LoadBalanceRequest{ + LoadBalanceRequestType: &lbpb.LoadBalanceRequest_InitialRequest{ + InitialRequest: &lbpb.InitialLoadBalanceRequest{ + Name: lb.target, + }, + }, + } + if err := stream.Send(initReq); err != nil { + return fmt.Errorf("grpclb: failed to send init request: %v", err) + } + reply, err := stream.Recv() + if err != nil { + return fmt.Errorf("grpclb: failed to recv init response: %v", err) + } + initResp := reply.GetInitialResponse() + if initResp == nil { + return fmt.Errorf("grpclb: reply from remote balancer did not include initial response") + } + if initResp.LoadBalancerDelegate != "" { + return fmt.Errorf("grpclb: Delegation is not supported") + } + + go func() { + if d := convertDuration(initResp.ClientStatsReportInterval); d > 0 { + lb.sendLoadReport(stream, d) + } + }() + return lb.readServerList(stream) +} + +func (lb *lbBalancer) watchRemoteBalancer() { + for { + err := lb.callRemoteBalancer() + select { + case <-lb.doneCh: + return + default: + if err != nil { + grpclog.Error(err) + } + } + + } +} + +func (lb *lbBalancer) dialRemoteLB(remoteLBName string) { + var dopts []DialOption + if creds := lb.opt.DialCreds; creds != nil { + if err := creds.OverrideServerName(remoteLBName); err == nil { + dopts = append(dopts, WithTransportCredentials(creds)) + } else { + grpclog.Warningf("grpclb: failed to override the server name in the credentials: %v, using Insecure", err) + dopts = append(dopts, WithInsecure()) + } + } else { + dopts = append(dopts, WithInsecure()) + } + if lb.opt.Dialer != nil { + // WithDialer takes a different type of function, so we instead use a + // special DialOption here. + dopts = append(dopts, withContextDialer(lb.opt.Dialer)) + } + // Explicitly set pickfirst as the balancer. + dopts = append(dopts, WithBalancerName(PickFirstBalancerName)) + dopts = append(dopts, withResolverBuilder(lb.manualResolver)) + // Dial using manualResolver.Scheme, which is a random scheme generated + // when init grpclb. The target name is not important. + cc, err := Dial("grpclb:///grpclb.server", dopts...) + if err != nil { + grpclog.Fatalf("failed to dial: %v", err) + } + lb.ccRemoteLB = cc + go lb.watchRemoteBalancer() +} diff --git a/vendor/google.golang.org/grpc/grpclb_util.go b/vendor/google.golang.org/grpc/grpclb_util.go new file mode 100644 index 0000000..93ab2db --- /dev/null +++ b/vendor/google.golang.org/grpc/grpclb_util.go @@ -0,0 +1,90 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/resolver" +) + +// The parent ClientConn should re-resolve when grpclb loses connection to the +// remote balancer. When the ClientConn inside grpclb gets a TransientFailure, +// it calls lbManualResolver.ResolveNow(), which calls parent ClientConn's +// ResolveNow, and eventually results in re-resolve happening in parent +// ClientConn's resolver (DNS for example). +// +// parent +// ClientConn +// +-----------------------------------------------------------------+ +// | parent +---------------------------------+ | +// | DNS ClientConn | grpclb | | +// | resolver balancerWrapper | | | +// | + + | grpclb grpclb | | +// | | | | ManualResolver ClientConn | | +// | | | | + + | | +// | | | | | | Transient | | +// | | | | | | Failure | | +// | | | | | <--------- | | | +// | | | <--------------- | ResolveNow | | | +// | | <--------- | ResolveNow | | | | | +// | | ResolveNow | | | | | | +// | | | | | | | | +// | + + | + + | | +// | +---------------------------------+ | +// +-----------------------------------------------------------------+ + +// lbManualResolver is used by the ClientConn inside grpclb. It's a manual +// resolver with a special ResolveNow() function. +// +// When ResolveNow() is called, it calls ResolveNow() on the parent ClientConn, +// so when grpclb client lose contact with remote balancers, the parent +// ClientConn's resolver will re-resolve. +type lbManualResolver struct { + scheme string + ccr resolver.ClientConn + + ccb balancer.ClientConn +} + +func (r *lbManualResolver) Build(_ resolver.Target, cc resolver.ClientConn, _ resolver.BuildOption) (resolver.Resolver, error) { + r.ccr = cc + return r, nil +} + +func (r *lbManualResolver) Scheme() string { + return r.scheme +} + +// ResolveNow calls resolveNow on the parent ClientConn. +func (r *lbManualResolver) ResolveNow(o resolver.ResolveNowOption) { + r.ccb.ResolveNow(o) +} + +// Close is a noop for Resolver. +func (*lbManualResolver) Close() {} + +// NewAddress calls cc.NewAddress. +func (r *lbManualResolver) NewAddress(addrs []resolver.Address) { + r.ccr.NewAddress(addrs) +} + +// NewServiceConfig calls cc.NewServiceConfig. +func (r *lbManualResolver) NewServiceConfig(sc string) { + r.ccr.NewServiceConfig(sc) +} diff --git a/vendor/google.golang.org/grpc/grpclog/grpclog.go b/vendor/google.golang.org/grpc/grpclog/grpclog.go new file mode 100644 index 0000000..16a7d88 --- /dev/null +++ b/vendor/google.golang.org/grpc/grpclog/grpclog.go @@ -0,0 +1,123 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package grpclog defines logging for grpc. +// +// All logs in transport package only go to verbose level 2. +// All logs in other packages in grpc are logged in spite of the verbosity level. +// +// In the default logger, +// severity level can be set by environment variable GRPC_GO_LOG_SEVERITY_LEVEL, +// verbosity level can be set by GRPC_GO_LOG_VERBOSITY_LEVEL. +package grpclog // import "google.golang.org/grpc/grpclog" + +import "os" + +var logger = newLoggerV2() + +// V reports whether verbosity level l is at least the requested verbose level. +func V(l int) bool { + return logger.V(l) +} + +// Info logs to the INFO log. +func Info(args ...interface{}) { + logger.Info(args...) +} + +// Infof logs to the INFO log. Arguments are handled in the manner of fmt.Printf. +func Infof(format string, args ...interface{}) { + logger.Infof(format, args...) +} + +// Infoln logs to the INFO log. Arguments are handled in the manner of fmt.Println. +func Infoln(args ...interface{}) { + logger.Infoln(args...) +} + +// Warning logs to the WARNING log. +func Warning(args ...interface{}) { + logger.Warning(args...) +} + +// Warningf logs to the WARNING log. Arguments are handled in the manner of fmt.Printf. +func Warningf(format string, args ...interface{}) { + logger.Warningf(format, args...) +} + +// Warningln logs to the WARNING log. Arguments are handled in the manner of fmt.Println. +func Warningln(args ...interface{}) { + logger.Warningln(args...) +} + +// Error logs to the ERROR log. +func Error(args ...interface{}) { + logger.Error(args...) +} + +// Errorf logs to the ERROR log. Arguments are handled in the manner of fmt.Printf. +func Errorf(format string, args ...interface{}) { + logger.Errorf(format, args...) +} + +// Errorln logs to the ERROR log. Arguments are handled in the manner of fmt.Println. +func Errorln(args ...interface{}) { + logger.Errorln(args...) +} + +// Fatal logs to the FATAL log. Arguments are handled in the manner of fmt.Print. +// It calls os.Exit() with exit code 1. +func Fatal(args ...interface{}) { + logger.Fatal(args...) + // Make sure fatal logs will exit. + os.Exit(1) +} + +// Fatalf logs to the FATAL log. Arguments are handled in the manner of fmt.Printf. +// It calles os.Exit() with exit code 1. +func Fatalf(format string, args ...interface{}) { + logger.Fatalf(format, args...) + // Make sure fatal logs will exit. + os.Exit(1) +} + +// Fatalln logs to the FATAL log. Arguments are handled in the manner of fmt.Println. +// It calle os.Exit()) with exit code 1. +func Fatalln(args ...interface{}) { + logger.Fatalln(args...) + // Make sure fatal logs will exit. + os.Exit(1) +} + +// Print prints to the logger. Arguments are handled in the manner of fmt.Print. +// Deprecated: use Info. +func Print(args ...interface{}) { + logger.Info(args...) +} + +// Printf prints to the logger. Arguments are handled in the manner of fmt.Printf. +// Deprecated: use Infof. +func Printf(format string, args ...interface{}) { + logger.Infof(format, args...) +} + +// Println prints to the logger. Arguments are handled in the manner of fmt.Println. +// Deprecated: use Infoln. +func Println(args ...interface{}) { + logger.Infoln(args...) +} diff --git a/vendor/google.golang.org/grpc/grpclog/logger.go b/vendor/google.golang.org/grpc/grpclog/logger.go new file mode 100644 index 0000000..d03b239 --- /dev/null +++ b/vendor/google.golang.org/grpc/grpclog/logger.go @@ -0,0 +1,83 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpclog + +// Logger mimics golang's standard Logger as an interface. +// Deprecated: use LoggerV2. +type Logger interface { + Fatal(args ...interface{}) + Fatalf(format string, args ...interface{}) + Fatalln(args ...interface{}) + Print(args ...interface{}) + Printf(format string, args ...interface{}) + Println(args ...interface{}) +} + +// SetLogger sets the logger that is used in grpc. Call only from +// init() functions. +// Deprecated: use SetLoggerV2. +func SetLogger(l Logger) { + logger = &loggerWrapper{Logger: l} +} + +// loggerWrapper wraps Logger into a LoggerV2. +type loggerWrapper struct { + Logger +} + +func (g *loggerWrapper) Info(args ...interface{}) { + g.Logger.Print(args...) +} + +func (g *loggerWrapper) Infoln(args ...interface{}) { + g.Logger.Println(args...) +} + +func (g *loggerWrapper) Infof(format string, args ...interface{}) { + g.Logger.Printf(format, args...) +} + +func (g *loggerWrapper) Warning(args ...interface{}) { + g.Logger.Print(args...) +} + +func (g *loggerWrapper) Warningln(args ...interface{}) { + g.Logger.Println(args...) +} + +func (g *loggerWrapper) Warningf(format string, args ...interface{}) { + g.Logger.Printf(format, args...) +} + +func (g *loggerWrapper) Error(args ...interface{}) { + g.Logger.Print(args...) +} + +func (g *loggerWrapper) Errorln(args ...interface{}) { + g.Logger.Println(args...) +} + +func (g *loggerWrapper) Errorf(format string, args ...interface{}) { + g.Logger.Printf(format, args...) +} + +func (g *loggerWrapper) V(l int) bool { + // Returns true for all verbose level. + return true +} diff --git a/vendor/google.golang.org/grpc/grpclog/loggerv2.go b/vendor/google.golang.org/grpc/grpclog/loggerv2.go new file mode 100644 index 0000000..d493257 --- /dev/null +++ b/vendor/google.golang.org/grpc/grpclog/loggerv2.go @@ -0,0 +1,195 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpclog + +import ( + "io" + "io/ioutil" + "log" + "os" + "strconv" +) + +// LoggerV2 does underlying logging work for grpclog. +type LoggerV2 interface { + // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. + Info(args ...interface{}) + // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. + Infoln(args ...interface{}) + // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. + Infof(format string, args ...interface{}) + // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. + Warning(args ...interface{}) + // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. + Warningln(args ...interface{}) + // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. + Warningf(format string, args ...interface{}) + // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. + Error(args ...interface{}) + // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. + Errorln(args ...interface{}) + // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. + Errorf(format string, args ...interface{}) + // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. + // gRPC ensures that all Fatal logs will exit with os.Exit(1). + // Implementations may also call os.Exit() with a non-zero exit code. + Fatal(args ...interface{}) + // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. + // gRPC ensures that all Fatal logs will exit with os.Exit(1). + // Implementations may also call os.Exit() with a non-zero exit code. + Fatalln(args ...interface{}) + // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. + // gRPC ensures that all Fatal logs will exit with os.Exit(1). + // Implementations may also call os.Exit() with a non-zero exit code. + Fatalf(format string, args ...interface{}) + // V reports whether verbosity level l is at least the requested verbose level. + V(l int) bool +} + +// SetLoggerV2 sets logger that is used in grpc to a V2 logger. +// Not mutex-protected, should be called before any gRPC functions. +func SetLoggerV2(l LoggerV2) { + logger = l +} + +const ( + // infoLog indicates Info severity. + infoLog int = iota + // warningLog indicates Warning severity. + warningLog + // errorLog indicates Error severity. + errorLog + // fatalLog indicates Fatal severity. + fatalLog +) + +// severityName contains the string representation of each severity. +var severityName = []string{ + infoLog: "INFO", + warningLog: "WARNING", + errorLog: "ERROR", + fatalLog: "FATAL", +} + +// loggerT is the default logger used by grpclog. +type loggerT struct { + m []*log.Logger + v int +} + +// NewLoggerV2 creates a loggerV2 with the provided writers. +// Fatal logs will be written to errorW, warningW, infoW, followed by exit(1). +// Error logs will be written to errorW, warningW and infoW. +// Warning logs will be written to warningW and infoW. +// Info logs will be written to infoW. +func NewLoggerV2(infoW, warningW, errorW io.Writer) LoggerV2 { + return NewLoggerV2WithVerbosity(infoW, warningW, errorW, 0) +} + +// NewLoggerV2WithVerbosity creates a loggerV2 with the provided writers and +// verbosity level. +func NewLoggerV2WithVerbosity(infoW, warningW, errorW io.Writer, v int) LoggerV2 { + var m []*log.Logger + m = append(m, log.New(infoW, severityName[infoLog]+": ", log.LstdFlags)) + m = append(m, log.New(io.MultiWriter(infoW, warningW), severityName[warningLog]+": ", log.LstdFlags)) + ew := io.MultiWriter(infoW, warningW, errorW) // ew will be used for error and fatal. + m = append(m, log.New(ew, severityName[errorLog]+": ", log.LstdFlags)) + m = append(m, log.New(ew, severityName[fatalLog]+": ", log.LstdFlags)) + return &loggerT{m: m, v: v} +} + +// newLoggerV2 creates a loggerV2 to be used as default logger. +// All logs are written to stderr. +func newLoggerV2() LoggerV2 { + errorW := ioutil.Discard + warningW := ioutil.Discard + infoW := ioutil.Discard + + logLevel := os.Getenv("GRPC_GO_LOG_SEVERITY_LEVEL") + switch logLevel { + case "", "ERROR", "error": // If env is unset, set level to ERROR. + errorW = os.Stderr + case "WARNING", "warning": + warningW = os.Stderr + case "INFO", "info": + infoW = os.Stderr + } + + var v int + vLevel := os.Getenv("GRPC_GO_LOG_VERBOSITY_LEVEL") + if vl, err := strconv.Atoi(vLevel); err == nil { + v = vl + } + return NewLoggerV2WithVerbosity(infoW, warningW, errorW, v) +} + +func (g *loggerT) Info(args ...interface{}) { + g.m[infoLog].Print(args...) +} + +func (g *loggerT) Infoln(args ...interface{}) { + g.m[infoLog].Println(args...) +} + +func (g *loggerT) Infof(format string, args ...interface{}) { + g.m[infoLog].Printf(format, args...) +} + +func (g *loggerT) Warning(args ...interface{}) { + g.m[warningLog].Print(args...) +} + +func (g *loggerT) Warningln(args ...interface{}) { + g.m[warningLog].Println(args...) +} + +func (g *loggerT) Warningf(format string, args ...interface{}) { + g.m[warningLog].Printf(format, args...) +} + +func (g *loggerT) Error(args ...interface{}) { + g.m[errorLog].Print(args...) +} + +func (g *loggerT) Errorln(args ...interface{}) { + g.m[errorLog].Println(args...) +} + +func (g *loggerT) Errorf(format string, args ...interface{}) { + g.m[errorLog].Printf(format, args...) +} + +func (g *loggerT) Fatal(args ...interface{}) { + g.m[fatalLog].Fatal(args...) + // No need to call os.Exit() again because log.Logger.Fatal() calls os.Exit(). +} + +func (g *loggerT) Fatalln(args ...interface{}) { + g.m[fatalLog].Fatalln(args...) + // No need to call os.Exit() again because log.Logger.Fatal() calls os.Exit(). +} + +func (g *loggerT) Fatalf(format string, args ...interface{}) { + g.m[fatalLog].Fatalf(format, args...) + // No need to call os.Exit() again because log.Logger.Fatal() calls os.Exit(). +} + +func (g *loggerT) V(l int) bool { + return l <= g.v +} diff --git a/vendor/google.golang.org/grpc/interceptor.go b/vendor/google.golang.org/grpc/interceptor.go new file mode 100644 index 0000000..1f6ef67 --- /dev/null +++ b/vendor/google.golang.org/grpc/interceptor.go @@ -0,0 +1,77 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "golang.org/x/net/context" +) + +// UnaryInvoker is called by UnaryClientInterceptor to complete RPCs. +type UnaryInvoker func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, opts ...CallOption) error + +// UnaryClientInterceptor intercepts the execution of a unary RPC on the client. invoker is the handler to complete the RPC +// and it is the responsibility of the interceptor to call it. +// This is an EXPERIMENTAL API. +type UnaryClientInterceptor func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error + +// Streamer is called by StreamClientInterceptor to create a ClientStream. +type Streamer func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error) + +// StreamClientInterceptor intercepts the creation of ClientStream. It may return a custom ClientStream to intercept all I/O +// operations. streamer is the handler to create a ClientStream and it is the responsibility of the interceptor to call it. +// This is an EXPERIMENTAL API. +type StreamClientInterceptor func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, streamer Streamer, opts ...CallOption) (ClientStream, error) + +// UnaryServerInfo consists of various information about a unary RPC on +// server side. All per-rpc information may be mutated by the interceptor. +type UnaryServerInfo struct { + // Server is the service implementation the user provides. This is read-only. + Server interface{} + // FullMethod is the full RPC method string, i.e., /package.service/method. + FullMethod string +} + +// UnaryHandler defines the handler invoked by UnaryServerInterceptor to complete the normal +// execution of a unary RPC. If a UnaryHandler returns an error, it should be produced by the +// status package, or else gRPC will use codes.Unknown as the status code and err.Error() as +// the status message of the RPC. +type UnaryHandler func(ctx context.Context, req interface{}) (interface{}, error) + +// UnaryServerInterceptor provides a hook to intercept the execution of a unary RPC on the server. info +// contains all the information of this RPC the interceptor can operate on. And handler is the wrapper +// of the service method implementation. It is the responsibility of the interceptor to invoke handler +// to complete the RPC. +type UnaryServerInterceptor func(ctx context.Context, req interface{}, info *UnaryServerInfo, handler UnaryHandler) (resp interface{}, err error) + +// StreamServerInfo consists of various information about a streaming RPC on +// server side. All per-rpc information may be mutated by the interceptor. +type StreamServerInfo struct { + // FullMethod is the full RPC method string, i.e., /package.service/method. + FullMethod string + // IsClientStream indicates whether the RPC is a client streaming RPC. + IsClientStream bool + // IsServerStream indicates whether the RPC is a server streaming RPC. + IsServerStream bool +} + +// StreamServerInterceptor provides a hook to intercept the execution of a streaming RPC on the server. +// info contains all the information of this RPC the interceptor can operate on. And handler is the +// service method implementation. It is the responsibility of the interceptor to invoke handler to +// complete the RPC. +type StreamServerInterceptor func(srv interface{}, ss ServerStream, info *StreamServerInfo, handler StreamHandler) error diff --git a/vendor/google.golang.org/grpc/internal/internal.go b/vendor/google.golang.org/grpc/internal/internal.go new file mode 100644 index 0000000..53f1775 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/internal.go @@ -0,0 +1,27 @@ +/* + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package internal contains gRPC-internal code for testing, to avoid polluting +// the godoc of the top-level grpc package. +package internal + +// TestingUseHandlerImpl enables the http.Handler-based server implementation. +// It must be called before Serve and requires TLS credentials. +// +// The provided grpcServer must be of type *grpc.Server. It is untyped +// for circular dependency reasons. +var TestingUseHandlerImpl func(grpcServer interface{}) diff --git a/vendor/google.golang.org/grpc/keepalive/keepalive.go b/vendor/google.golang.org/grpc/keepalive/keepalive.go new file mode 100644 index 0000000..f8adc7e --- /dev/null +++ b/vendor/google.golang.org/grpc/keepalive/keepalive.go @@ -0,0 +1,65 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package keepalive defines configurable parameters for point-to-point healthcheck. +package keepalive + +import ( + "time" +) + +// ClientParameters is used to set keepalive parameters on the client-side. +// These configure how the client will actively probe to notice when a connection is broken +// and send pings so intermediaries will be aware of the liveness of the connection. +// Make sure these parameters are set in coordination with the keepalive policy on the server, +// as incompatible settings can result in closing of connection. +type ClientParameters struct { + // After a duration of this time if the client doesn't see any activity it pings the server to see if the transport is still alive. + Time time.Duration // The current default value is infinity. + // After having pinged for keepalive check, the client waits for a duration of Timeout and if no activity is seen even after that + // the connection is closed. + Timeout time.Duration // The current default value is 20 seconds. + // If true, client runs keepalive checks even with no active RPCs. + PermitWithoutStream bool // false by default. +} + +// ServerParameters is used to set keepalive and max-age parameters on the server-side. +type ServerParameters struct { + // MaxConnectionIdle is a duration for the amount of time after which an idle connection would be closed by sending a GoAway. + // Idleness duration is defined since the most recent time the number of outstanding RPCs became zero or the connection establishment. + MaxConnectionIdle time.Duration // The current default value is infinity. + // MaxConnectionAge is a duration for the maximum amount of time a connection may exist before it will be closed by sending a GoAway. + // A random jitter of +/-10% will be added to MaxConnectionAge to spread out connection storms. + MaxConnectionAge time.Duration // The current default value is infinity. + // MaxConnectinoAgeGrace is an additive period after MaxConnectionAge after which the connection will be forcibly closed. + MaxConnectionAgeGrace time.Duration // The current default value is infinity. + // After a duration of this time if the server doesn't see any activity it pings the client to see if the transport is still alive. + Time time.Duration // The current default value is 2 hours. + // After having pinged for keepalive check, the server waits for a duration of Timeout and if no activity is seen even after that + // the connection is closed. + Timeout time.Duration // The current default value is 20 seconds. +} + +// EnforcementPolicy is used to set keepalive enforcement policy on the server-side. +// Server will close connection with a client that violates this policy. +type EnforcementPolicy struct { + // MinTime is the minimum amount of time a client should wait before sending a keepalive ping. + MinTime time.Duration // The current default value is 5 minutes. + // If true, server expects keepalive pings even when there are no active streams(RPCs). + PermitWithoutStream bool // false by default. +} diff --git a/vendor/google.golang.org/grpc/metadata/metadata.go b/vendor/google.golang.org/grpc/metadata/metadata.go new file mode 100644 index 0000000..e7c9946 --- /dev/null +++ b/vendor/google.golang.org/grpc/metadata/metadata.go @@ -0,0 +1,184 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package metadata define the structure of the metadata supported by gRPC library. +// Please refer to https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md +// for more information about custom-metadata. +package metadata // import "google.golang.org/grpc/metadata" + +import ( + "fmt" + "strings" + + "golang.org/x/net/context" +) + +// DecodeKeyValue returns k, v, nil. It is deprecated and should not be used. +func DecodeKeyValue(k, v string) (string, string, error) { + return k, v, nil +} + +// MD is a mapping from metadata keys to values. Users should use the following +// two convenience functions New and Pairs to generate MD. +type MD map[string][]string + +// New creates an MD from a given key-value map. +// +// Only the following ASCII characters are allowed in keys: +// - digits: 0-9 +// - uppercase letters: A-Z (normalized to lower) +// - lowercase letters: a-z +// - special characters: -_. +// Uppercase letters are automatically converted to lowercase. +// +// Keys beginning with "grpc-" are reserved for grpc-internal use only and may +// result in errors if set in metadata. +func New(m map[string]string) MD { + md := MD{} + for k, val := range m { + key := strings.ToLower(k) + md[key] = append(md[key], val) + } + return md +} + +// Pairs returns an MD formed by the mapping of key, value ... +// Pairs panics if len(kv) is odd. +// +// Only the following ASCII characters are allowed in keys: +// - digits: 0-9 +// - uppercase letters: A-Z (normalized to lower) +// - lowercase letters: a-z +// - special characters: -_. +// Uppercase letters are automatically converted to lowercase. +// +// Keys beginning with "grpc-" are reserved for grpc-internal use only and may +// result in errors if set in metadata. +func Pairs(kv ...string) MD { + if len(kv)%2 == 1 { + panic(fmt.Sprintf("metadata: Pairs got the odd number of input pairs for metadata: %d", len(kv))) + } + md := MD{} + var key string + for i, s := range kv { + if i%2 == 0 { + key = strings.ToLower(s) + continue + } + md[key] = append(md[key], s) + } + return md +} + +// Len returns the number of items in md. +func (md MD) Len() int { + return len(md) +} + +// Copy returns a copy of md. +func (md MD) Copy() MD { + return Join(md) +} + +// Join joins any number of mds into a single MD. +// The order of values for each key is determined by the order in which +// the mds containing those values are presented to Join. +func Join(mds ...MD) MD { + out := MD{} + for _, md := range mds { + for k, v := range md { + out[k] = append(out[k], v...) + } + } + return out +} + +type mdIncomingKey struct{} +type mdOutgoingKey struct{} + +// NewIncomingContext creates a new context with incoming md attached. +func NewIncomingContext(ctx context.Context, md MD) context.Context { + return context.WithValue(ctx, mdIncomingKey{}, md) +} + +// NewOutgoingContext creates a new context with outgoing md attached. If used +// in conjunction with AppendToOutgoingContext, NewOutgoingContext will +// overwrite any previously-appended metadata. +func NewOutgoingContext(ctx context.Context, md MD) context.Context { + return context.WithValue(ctx, mdOutgoingKey{}, rawMD{md: md}) +} + +// AppendToOutgoingContext returns a new context with the provided kv merged +// with any existing metadata in the context. Please refer to the +// documentation of Pairs for a description of kv. +func AppendToOutgoingContext(ctx context.Context, kv ...string) context.Context { + if len(kv)%2 == 1 { + panic(fmt.Sprintf("metadata: AppendToOutgoingContext got an odd number of input pairs for metadata: %d", len(kv))) + } + md, _ := ctx.Value(mdOutgoingKey{}).(rawMD) + added := make([][]string, len(md.added)+1) + copy(added, md.added) + added[len(added)-1] = make([]string, len(kv)) + copy(added[len(added)-1], kv) + return context.WithValue(ctx, mdOutgoingKey{}, rawMD{md: md.md, added: added}) +} + +// FromIncomingContext returns the incoming metadata in ctx if it exists. The +// returned MD should not be modified. Writing to it may cause races. +// Modification should be made to copies of the returned MD. +func FromIncomingContext(ctx context.Context) (md MD, ok bool) { + md, ok = ctx.Value(mdIncomingKey{}).(MD) + return +} + +// FromOutgoingContextRaw returns the un-merged, intermediary contents +// of rawMD. Remember to perform strings.ToLower on the keys. The returned +// MD should not be modified. Writing to it may cause races. Modification +// should be made to copies of the returned MD. +// +// This is intended for gRPC-internal use ONLY. +func FromOutgoingContextRaw(ctx context.Context) (MD, [][]string, bool) { + raw, ok := ctx.Value(mdOutgoingKey{}).(rawMD) + if !ok { + return nil, nil, false + } + + return raw.md, raw.added, true +} + +// FromOutgoingContext returns the outgoing metadata in ctx if it exists. The +// returned MD should not be modified. Writing to it may cause races. +// Modification should be made to copies of the returned MD. +func FromOutgoingContext(ctx context.Context) (MD, bool) { + raw, ok := ctx.Value(mdOutgoingKey{}).(rawMD) + if !ok { + return nil, false + } + + mds := make([]MD, 0, len(raw.added)+1) + mds = append(mds, raw.md) + for _, vv := range raw.added { + mds = append(mds, Pairs(vv...)) + } + return Join(mds...), ok +} + +type rawMD struct { + md MD + added [][]string +} diff --git a/vendor/google.golang.org/grpc/naming/dns_resolver.go b/vendor/google.golang.org/grpc/naming/dns_resolver.go new file mode 100644 index 0000000..7e69a2c --- /dev/null +++ b/vendor/google.golang.org/grpc/naming/dns_resolver.go @@ -0,0 +1,290 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package naming + +import ( + "errors" + "fmt" + "net" + "strconv" + "time" + + "golang.org/x/net/context" + "google.golang.org/grpc/grpclog" +) + +const ( + defaultPort = "443" + defaultFreq = time.Minute * 30 +) + +var ( + errMissingAddr = errors.New("missing address") + errWatcherClose = errors.New("watcher has been closed") +) + +// NewDNSResolverWithFreq creates a DNS Resolver that can resolve DNS names, and +// create watchers that poll the DNS server using the frequency set by freq. +func NewDNSResolverWithFreq(freq time.Duration) (Resolver, error) { + return &dnsResolver{freq: freq}, nil +} + +// NewDNSResolver creates a DNS Resolver that can resolve DNS names, and create +// watchers that poll the DNS server using the default frequency defined by defaultFreq. +func NewDNSResolver() (Resolver, error) { + return NewDNSResolverWithFreq(defaultFreq) +} + +// dnsResolver handles name resolution for names following the DNS scheme +type dnsResolver struct { + // frequency of polling the DNS server that the watchers created by this resolver will use. + freq time.Duration +} + +// formatIP returns ok = false if addr is not a valid textual representation of an IP address. +// If addr is an IPv4 address, return the addr and ok = true. +// If addr is an IPv6 address, return the addr enclosed in square brackets and ok = true. +func formatIP(addr string) (addrIP string, ok bool) { + ip := net.ParseIP(addr) + if ip == nil { + return "", false + } + if ip.To4() != nil { + return addr, true + } + return "[" + addr + "]", true +} + +// parseTarget takes the user input target string, returns formatted host and port info. +// If target doesn't specify a port, set the port to be the defaultPort. +// If target is in IPv6 format and host-name is enclosed in sqarue brackets, brackets +// are strippd when setting the host. +// examples: +// target: "www.google.com" returns host: "www.google.com", port: "443" +// target: "ipv4-host:80" returns host: "ipv4-host", port: "80" +// target: "[ipv6-host]" returns host: "ipv6-host", port: "443" +// target: ":80" returns host: "localhost", port: "80" +// target: ":" returns host: "localhost", port: "443" +func parseTarget(target string) (host, port string, err error) { + if target == "" { + return "", "", errMissingAddr + } + + if ip := net.ParseIP(target); ip != nil { + // target is an IPv4 or IPv6(without brackets) address + return target, defaultPort, nil + } + if host, port, err := net.SplitHostPort(target); err == nil { + // target has port, i.e ipv4-host:port, [ipv6-host]:port, host-name:port + if host == "" { + // Keep consistent with net.Dial(): If the host is empty, as in ":80", the local system is assumed. + host = "localhost" + } + if port == "" { + // If the port field is empty(target ends with colon), e.g. "[::1]:", defaultPort is used. + port = defaultPort + } + return host, port, nil + } + if host, port, err := net.SplitHostPort(target + ":" + defaultPort); err == nil { + // target doesn't have port + return host, port, nil + } + return "", "", fmt.Errorf("invalid target address %v", target) +} + +// Resolve creates a watcher that watches the name resolution of the target. +func (r *dnsResolver) Resolve(target string) (Watcher, error) { + host, port, err := parseTarget(target) + if err != nil { + return nil, err + } + + if net.ParseIP(host) != nil { + ipWatcher := &ipWatcher{ + updateChan: make(chan *Update, 1), + } + host, _ = formatIP(host) + ipWatcher.updateChan <- &Update{Op: Add, Addr: host + ":" + port} + return ipWatcher, nil + } + + ctx, cancel := context.WithCancel(context.Background()) + return &dnsWatcher{ + r: r, + host: host, + port: port, + ctx: ctx, + cancel: cancel, + t: time.NewTimer(0), + }, nil +} + +// dnsWatcher watches for the name resolution update for a specific target +type dnsWatcher struct { + r *dnsResolver + host string + port string + // The latest resolved address set + curAddrs map[string]*Update + ctx context.Context + cancel context.CancelFunc + t *time.Timer +} + +// ipWatcher watches for the name resolution update for an IP address. +type ipWatcher struct { + updateChan chan *Update +} + +// Next returns the adrress resolution Update for the target. For IP address, +// the resolution is itself, thus polling name server is unncessary. Therefore, +// Next() will return an Update the first time it is called, and will be blocked +// for all following calls as no Update exisits until watcher is closed. +func (i *ipWatcher) Next() ([]*Update, error) { + u, ok := <-i.updateChan + if !ok { + return nil, errWatcherClose + } + return []*Update{u}, nil +} + +// Close closes the ipWatcher. +func (i *ipWatcher) Close() { + close(i.updateChan) +} + +// AddressType indicates the address type returned by name resolution. +type AddressType uint8 + +const ( + // Backend indicates the server is a backend server. + Backend AddressType = iota + // GRPCLB indicates the server is a grpclb load balancer. + GRPCLB +) + +// AddrMetadataGRPCLB contains the information the name resolver for grpclb should provide. The +// name resolver used by the grpclb balancer is required to provide this type of metadata in +// its address updates. +type AddrMetadataGRPCLB struct { + // AddrType is the type of server (grpc load balancer or backend). + AddrType AddressType + // ServerName is the name of the grpc load balancer. Used for authentication. + ServerName string +} + +// compileUpdate compares the old resolved addresses and newly resolved addresses, +// and generates an update list +func (w *dnsWatcher) compileUpdate(newAddrs map[string]*Update) []*Update { + var res []*Update + for a, u := range w.curAddrs { + if _, ok := newAddrs[a]; !ok { + u.Op = Delete + res = append(res, u) + } + } + for a, u := range newAddrs { + if _, ok := w.curAddrs[a]; !ok { + res = append(res, u) + } + } + return res +} + +func (w *dnsWatcher) lookupSRV() map[string]*Update { + newAddrs := make(map[string]*Update) + _, srvs, err := lookupSRV(w.ctx, "grpclb", "tcp", w.host) + if err != nil { + grpclog.Infof("grpc: failed dns SRV record lookup due to %v.\n", err) + return nil + } + for _, s := range srvs { + lbAddrs, err := lookupHost(w.ctx, s.Target) + if err != nil { + grpclog.Warningf("grpc: failed load banlacer address dns lookup due to %v.\n", err) + continue + } + for _, a := range lbAddrs { + a, ok := formatIP(a) + if !ok { + grpclog.Errorf("grpc: failed IP parsing due to %v.\n", err) + continue + } + addr := a + ":" + strconv.Itoa(int(s.Port)) + newAddrs[addr] = &Update{Addr: addr, + Metadata: AddrMetadataGRPCLB{AddrType: GRPCLB, ServerName: s.Target}} + } + } + return newAddrs +} + +func (w *dnsWatcher) lookupHost() map[string]*Update { + newAddrs := make(map[string]*Update) + addrs, err := lookupHost(w.ctx, w.host) + if err != nil { + grpclog.Warningf("grpc: failed dns A record lookup due to %v.\n", err) + return nil + } + for _, a := range addrs { + a, ok := formatIP(a) + if !ok { + grpclog.Errorf("grpc: failed IP parsing due to %v.\n", err) + continue + } + addr := a + ":" + w.port + newAddrs[addr] = &Update{Addr: addr} + } + return newAddrs +} + +func (w *dnsWatcher) lookup() []*Update { + newAddrs := w.lookupSRV() + if newAddrs == nil { + // If failed to get any balancer address (either no corresponding SRV for the + // target, or caused by failure during resolution/parsing of the balancer target), + // return any A record info available. + newAddrs = w.lookupHost() + } + result := w.compileUpdate(newAddrs) + w.curAddrs = newAddrs + return result +} + +// Next returns the resolved address update(delta) for the target. If there's no +// change, it will sleep for 30 mins and try to resolve again after that. +func (w *dnsWatcher) Next() ([]*Update, error) { + for { + select { + case <-w.ctx.Done(): + return nil, errWatcherClose + case <-w.t.C: + } + result := w.lookup() + // Next lookup should happen after an interval defined by w.r.freq. + w.t.Reset(w.r.freq) + if len(result) > 0 { + return result, nil + } + } +} + +func (w *dnsWatcher) Close() { + w.cancel() +} diff --git a/vendor/google.golang.org/grpc/naming/go17.go b/vendor/google.golang.org/grpc/naming/go17.go new file mode 100644 index 0000000..57b65d7 --- /dev/null +++ b/vendor/google.golang.org/grpc/naming/go17.go @@ -0,0 +1,34 @@ +// +build go1.6,!go1.8 + +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package naming + +import ( + "net" + + "golang.org/x/net/context" +) + +var ( + lookupHost = func(ctx context.Context, host string) ([]string, error) { return net.LookupHost(host) } + lookupSRV = func(ctx context.Context, service, proto, name string) (string, []*net.SRV, error) { + return net.LookupSRV(service, proto, name) + } +) diff --git a/vendor/google.golang.org/grpc/naming/go18.go b/vendor/google.golang.org/grpc/naming/go18.go new file mode 100644 index 0000000..b5a0f84 --- /dev/null +++ b/vendor/google.golang.org/grpc/naming/go18.go @@ -0,0 +1,28 @@ +// +build go1.8 + +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package naming + +import "net" + +var ( + lookupHost = net.DefaultResolver.LookupHost + lookupSRV = net.DefaultResolver.LookupSRV +) diff --git a/vendor/google.golang.org/grpc/naming/naming.go b/vendor/google.golang.org/grpc/naming/naming.go new file mode 100644 index 0000000..1af7e32 --- /dev/null +++ b/vendor/google.golang.org/grpc/naming/naming.go @@ -0,0 +1,59 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package naming defines the naming API and related data structures for gRPC. +// The interface is EXPERIMENTAL and may be suject to change. +package naming + +// Operation defines the corresponding operations for a name resolution change. +type Operation uint8 + +const ( + // Add indicates a new address is added. + Add Operation = iota + // Delete indicates an exisiting address is deleted. + Delete +) + +// Update defines a name resolution update. Notice that it is not valid having both +// empty string Addr and nil Metadata in an Update. +type Update struct { + // Op indicates the operation of the update. + Op Operation + // Addr is the updated address. It is empty string if there is no address update. + Addr string + // Metadata is the updated metadata. It is nil if there is no metadata update. + // Metadata is not required for a custom naming implementation. + Metadata interface{} +} + +// Resolver creates a Watcher for a target to track its resolution changes. +type Resolver interface { + // Resolve creates a Watcher for target. + Resolve(target string) (Watcher, error) +} + +// Watcher watches for the updates on the specified target. +type Watcher interface { + // Next blocks until an update or error happens. It may return one or more + // updates. The first call should get the full set of the results. It should + // return an error if and only if Watcher cannot recover. + Next() ([]*Update, error) + // Close closes the Watcher. + Close() +} diff --git a/vendor/google.golang.org/grpc/peer/peer.go b/vendor/google.golang.org/grpc/peer/peer.go new file mode 100644 index 0000000..317b8b9 --- /dev/null +++ b/vendor/google.golang.org/grpc/peer/peer.go @@ -0,0 +1,51 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package peer defines various peer information associated with RPCs and +// corresponding utils. +package peer + +import ( + "net" + + "golang.org/x/net/context" + "google.golang.org/grpc/credentials" +) + +// Peer contains the information of the peer for an RPC, such as the address +// and authentication information. +type Peer struct { + // Addr is the peer address. + Addr net.Addr + // AuthInfo is the authentication information of the transport. + // It is nil if there is no transport security being used. + AuthInfo credentials.AuthInfo +} + +type peerKey struct{} + +// NewContext creates a new context with peer information attached. +func NewContext(ctx context.Context, p *Peer) context.Context { + return context.WithValue(ctx, peerKey{}, p) +} + +// FromContext returns the peer information in ctx if it exists. +func FromContext(ctx context.Context) (p *Peer, ok bool) { + p, ok = ctx.Value(peerKey{}).(*Peer) + return +} diff --git a/vendor/google.golang.org/grpc/picker_wrapper.go b/vendor/google.golang.org/grpc/picker_wrapper.go new file mode 100644 index 0000000..4d00825 --- /dev/null +++ b/vendor/google.golang.org/grpc/picker_wrapper.go @@ -0,0 +1,158 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "sync" + + "golang.org/x/net/context" + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/status" + "google.golang.org/grpc/transport" +) + +// pickerWrapper is a wrapper of balancer.Picker. It blocks on certain pick +// actions and unblock when there's a picker update. +type pickerWrapper struct { + mu sync.Mutex + done bool + blockingCh chan struct{} + picker balancer.Picker + + // The latest connection happened. + connErrMu sync.Mutex + connErr error +} + +func newPickerWrapper() *pickerWrapper { + bp := &pickerWrapper{blockingCh: make(chan struct{})} + return bp +} + +func (bp *pickerWrapper) updateConnectionError(err error) { + bp.connErrMu.Lock() + bp.connErr = err + bp.connErrMu.Unlock() +} + +func (bp *pickerWrapper) connectionError() error { + bp.connErrMu.Lock() + err := bp.connErr + bp.connErrMu.Unlock() + return err +} + +// updatePicker is called by UpdateBalancerState. It unblocks all blocked pick. +func (bp *pickerWrapper) updatePicker(p balancer.Picker) { + bp.mu.Lock() + if bp.done { + bp.mu.Unlock() + return + } + bp.picker = p + // bp.blockingCh should never be nil. + close(bp.blockingCh) + bp.blockingCh = make(chan struct{}) + bp.mu.Unlock() +} + +// pick returns the transport that will be used for the RPC. +// It may block in the following cases: +// - there's no picker +// - the current picker returns ErrNoSubConnAvailable +// - the current picker returns other errors and failfast is false. +// - the subConn returned by the current picker is not READY +// When one of these situations happens, pick blocks until the picker gets updated. +func (bp *pickerWrapper) pick(ctx context.Context, failfast bool, opts balancer.PickOptions) (transport.ClientTransport, func(balancer.DoneInfo), error) { + var ( + p balancer.Picker + ch chan struct{} + ) + + for { + bp.mu.Lock() + if bp.done { + bp.mu.Unlock() + return nil, nil, ErrClientConnClosing + } + + if bp.picker == nil { + ch = bp.blockingCh + } + if ch == bp.blockingCh { + // This could happen when either: + // - bp.picker is nil (the previous if condition), or + // - has called pick on the current picker. + bp.mu.Unlock() + select { + case <-ctx.Done(): + return nil, nil, ctx.Err() + case <-ch: + } + continue + } + + ch = bp.blockingCh + p = bp.picker + bp.mu.Unlock() + + subConn, done, err := p.Pick(ctx, opts) + + if err != nil { + switch err { + case balancer.ErrNoSubConnAvailable: + continue + case balancer.ErrTransientFailure: + if !failfast { + continue + } + return nil, nil, status.Errorf(codes.Unavailable, "%v, latest connection error: %v", err, bp.connectionError()) + default: + // err is some other error. + return nil, nil, toRPCErr(err) + } + } + + acw, ok := subConn.(*acBalancerWrapper) + if !ok { + grpclog.Infof("subconn returned from pick is not *acBalancerWrapper") + continue + } + if t, ok := acw.getAddrConn().getReadyTransport(); ok { + return t, done, nil + } + grpclog.Infof("blockingPicker: the picked transport is not ready, loop back to repick") + // If ok == false, ac.state is not READY. + // A valid picker always returns READY subConn. This means the state of ac + // just changed, and picker will be updated shortly. + // continue back to the beginning of the for loop to repick. + } +} + +func (bp *pickerWrapper) close() { + bp.mu.Lock() + defer bp.mu.Unlock() + if bp.done { + return + } + bp.done = true + close(bp.blockingCh) +} diff --git a/vendor/google.golang.org/grpc/pickfirst.go b/vendor/google.golang.org/grpc/pickfirst.go new file mode 100644 index 0000000..bf659d4 --- /dev/null +++ b/vendor/google.golang.org/grpc/pickfirst.go @@ -0,0 +1,108 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "golang.org/x/net/context" + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/resolver" +) + +// PickFirstBalancerName is the name of the pick_first balancer. +const PickFirstBalancerName = "pick_first" + +func newPickfirstBuilder() balancer.Builder { + return &pickfirstBuilder{} +} + +type pickfirstBuilder struct{} + +func (*pickfirstBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions) balancer.Balancer { + return &pickfirstBalancer{cc: cc} +} + +func (*pickfirstBuilder) Name() string { + return PickFirstBalancerName +} + +type pickfirstBalancer struct { + cc balancer.ClientConn + sc balancer.SubConn +} + +func (b *pickfirstBalancer) HandleResolvedAddrs(addrs []resolver.Address, err error) { + if err != nil { + grpclog.Infof("pickfirstBalancer: HandleResolvedAddrs called with error %v", err) + return + } + if b.sc == nil { + b.sc, err = b.cc.NewSubConn(addrs, balancer.NewSubConnOptions{}) + if err != nil { + grpclog.Errorf("pickfirstBalancer: failed to NewSubConn: %v", err) + return + } + b.cc.UpdateBalancerState(connectivity.Idle, &picker{sc: b.sc}) + b.sc.Connect() + } else { + b.sc.UpdateAddresses(addrs) + b.sc.Connect() + } +} + +func (b *pickfirstBalancer) HandleSubConnStateChange(sc balancer.SubConn, s connectivity.State) { + grpclog.Infof("pickfirstBalancer: HandleSubConnStateChange: %p, %v", sc, s) + if b.sc != sc { + grpclog.Infof("pickfirstBalancer: ignored state change because sc is not recognized") + return + } + if s == connectivity.Shutdown { + b.sc = nil + return + } + + switch s { + case connectivity.Ready, connectivity.Idle: + b.cc.UpdateBalancerState(s, &picker{sc: sc}) + case connectivity.Connecting: + b.cc.UpdateBalancerState(s, &picker{err: balancer.ErrNoSubConnAvailable}) + case connectivity.TransientFailure: + b.cc.UpdateBalancerState(s, &picker{err: balancer.ErrTransientFailure}) + } +} + +func (b *pickfirstBalancer) Close() { +} + +type picker struct { + err error + sc balancer.SubConn +} + +func (p *picker) Pick(ctx context.Context, opts balancer.PickOptions) (balancer.SubConn, func(balancer.DoneInfo), error) { + if p.err != nil { + return nil, nil, p.err + } + return p.sc, nil, nil +} + +func init() { + balancer.Register(newPickfirstBuilder()) +} diff --git a/vendor/google.golang.org/grpc/proxy.go b/vendor/google.golang.org/grpc/proxy.go new file mode 100644 index 0000000..2d40236 --- /dev/null +++ b/vendor/google.golang.org/grpc/proxy.go @@ -0,0 +1,130 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "bufio" + "errors" + "fmt" + "io" + "net" + "net/http" + "net/http/httputil" + "net/url" + + "golang.org/x/net/context" +) + +var ( + // errDisabled indicates that proxy is disabled for the address. + errDisabled = errors.New("proxy is disabled for the address") + // The following variable will be overwritten in the tests. + httpProxyFromEnvironment = http.ProxyFromEnvironment +) + +func mapAddress(ctx context.Context, address string) (string, error) { + req := &http.Request{ + URL: &url.URL{ + Scheme: "https", + Host: address, + }, + } + url, err := httpProxyFromEnvironment(req) + if err != nil { + return "", err + } + if url == nil { + return "", errDisabled + } + return url.Host, nil +} + +// To read a response from a net.Conn, http.ReadResponse() takes a bufio.Reader. +// It's possible that this reader reads more than what's need for the response and stores +// those bytes in the buffer. +// bufConn wraps the original net.Conn and the bufio.Reader to make sure we don't lose the +// bytes in the buffer. +type bufConn struct { + net.Conn + r io.Reader +} + +func (c *bufConn) Read(b []byte) (int, error) { + return c.r.Read(b) +} + +func doHTTPConnectHandshake(ctx context.Context, conn net.Conn, addr string) (_ net.Conn, err error) { + defer func() { + if err != nil { + conn.Close() + } + }() + + req := (&http.Request{ + Method: http.MethodConnect, + URL: &url.URL{Host: addr}, + Header: map[string][]string{"User-Agent": {grpcUA}}, + }) + + if err := sendHTTPRequest(ctx, req, conn); err != nil { + return nil, fmt.Errorf("failed to write the HTTP request: %v", err) + } + + r := bufio.NewReader(conn) + resp, err := http.ReadResponse(r, req) + if err != nil { + return nil, fmt.Errorf("reading server HTTP response: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + dump, err := httputil.DumpResponse(resp, true) + if err != nil { + return nil, fmt.Errorf("failed to do connect handshake, status code: %s", resp.Status) + } + return nil, fmt.Errorf("failed to do connect handshake, response: %q", dump) + } + + return &bufConn{Conn: conn, r: r}, nil +} + +// newProxyDialer returns a dialer that connects to proxy first if necessary. +// The returned dialer checks if a proxy is necessary, dial to the proxy with the +// provided dialer, does HTTP CONNECT handshake and returns the connection. +func newProxyDialer(dialer func(context.Context, string) (net.Conn, error)) func(context.Context, string) (net.Conn, error) { + return func(ctx context.Context, addr string) (conn net.Conn, err error) { + var skipHandshake bool + newAddr, err := mapAddress(ctx, addr) + if err != nil { + if err != errDisabled { + return nil, err + } + skipHandshake = true + newAddr = addr + } + + conn, err = dialer(ctx, newAddr) + if err != nil { + return + } + if !skipHandshake { + conn, err = doHTTPConnectHandshake(ctx, conn, addr) + } + return + } +} diff --git a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go new file mode 100644 index 0000000..a543a70 --- /dev/null +++ b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go @@ -0,0 +1,377 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package dns implements a dns resolver to be installed as the default resolver +// in grpc. +package dns + +import ( + "encoding/json" + "errors" + "fmt" + "math/rand" + "net" + "os" + "strconv" + "strings" + "sync" + "time" + + "golang.org/x/net/context" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/resolver" +) + +func init() { + resolver.Register(NewBuilder()) +} + +const ( + defaultPort = "443" + defaultFreq = time.Minute * 30 + golang = "GO" + // In DNS, service config is encoded in a TXT record via the mechanism + // described in RFC-1464 using the attribute name grpc_config. + txtAttribute = "grpc_config=" +) + +var errMissingAddr = errors.New("missing address") + +// NewBuilder creates a dnsBuilder which is used to factory DNS resolvers. +func NewBuilder() resolver.Builder { + return &dnsBuilder{freq: defaultFreq} +} + +type dnsBuilder struct { + // frequency of polling the DNS server. + freq time.Duration +} + +// Build creates and starts a DNS resolver that watches the name resolution of the target. +func (b *dnsBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOption) (resolver.Resolver, error) { + host, port, err := parseTarget(target.Endpoint) + if err != nil { + return nil, err + } + + // IP address. + if net.ParseIP(host) != nil { + host, _ = formatIP(host) + addr := []resolver.Address{{Addr: host + ":" + port}} + i := &ipResolver{ + cc: cc, + ip: addr, + rn: make(chan struct{}, 1), + q: make(chan struct{}), + } + cc.NewAddress(addr) + go i.watcher() + return i, nil + } + + // DNS address (non-IP). + ctx, cancel := context.WithCancel(context.Background()) + d := &dnsResolver{ + freq: b.freq, + host: host, + port: port, + ctx: ctx, + cancel: cancel, + cc: cc, + t: time.NewTimer(0), + rn: make(chan struct{}, 1), + } + + d.wg.Add(1) + go d.watcher() + return d, nil +} + +// Scheme returns the naming scheme of this resolver builder, which is "dns". +func (b *dnsBuilder) Scheme() string { + return "dns" +} + +// ipResolver watches for the name resolution update for an IP address. +type ipResolver struct { + cc resolver.ClientConn + ip []resolver.Address + // rn channel is used by ResolveNow() to force an immediate resolution of the target. + rn chan struct{} + q chan struct{} +} + +// ResolveNow resend the address it stores, no resolution is needed. +func (i *ipResolver) ResolveNow(opt resolver.ResolveNowOption) { + select { + case i.rn <- struct{}{}: + default: + } +} + +// Close closes the ipResolver. +func (i *ipResolver) Close() { + close(i.q) +} + +func (i *ipResolver) watcher() { + for { + select { + case <-i.rn: + i.cc.NewAddress(i.ip) + case <-i.q: + return + } + } +} + +// dnsResolver watches for the name resolution update for a non-IP target. +type dnsResolver struct { + freq time.Duration + host string + port string + ctx context.Context + cancel context.CancelFunc + cc resolver.ClientConn + // rn channel is used by ResolveNow() to force an immediate resolution of the target. + rn chan struct{} + t *time.Timer + // wg is used to enforce Close() to return after the watcher() goroutine has finished. + // Otherwise, data race will be possible. [Race Example] in dns_resolver_test we + // replace the real lookup functions with mocked ones to facilitate testing. + // If Close() doesn't wait for watcher() goroutine finishes, race detector sometimes + // will warns lookup (READ the lookup function pointers) inside watcher() goroutine + // has data race with replaceNetFunc (WRITE the lookup function pointers). + wg sync.WaitGroup +} + +// ResolveNow invoke an immediate resolution of the target that this dnsResolver watches. +func (d *dnsResolver) ResolveNow(opt resolver.ResolveNowOption) { + select { + case d.rn <- struct{}{}: + default: + } +} + +// Close closes the dnsResolver. +func (d *dnsResolver) Close() { + d.cancel() + d.wg.Wait() + d.t.Stop() +} + +func (d *dnsResolver) watcher() { + defer d.wg.Done() + for { + select { + case <-d.ctx.Done(): + return + case <-d.t.C: + case <-d.rn: + } + result, sc := d.lookup() + // Next lookup should happen after an interval defined by d.freq. + d.t.Reset(d.freq) + d.cc.NewServiceConfig(string(sc)) + d.cc.NewAddress(result) + } +} + +func (d *dnsResolver) lookupSRV() []resolver.Address { + var newAddrs []resolver.Address + _, srvs, err := lookupSRV(d.ctx, "grpclb", "tcp", d.host) + if err != nil { + grpclog.Infof("grpc: failed dns SRV record lookup due to %v.\n", err) + return nil + } + for _, s := range srvs { + lbAddrs, err := lookupHost(d.ctx, s.Target) + if err != nil { + grpclog.Warningf("grpc: failed load banlacer address dns lookup due to %v.\n", err) + continue + } + for _, a := range lbAddrs { + a, ok := formatIP(a) + if !ok { + grpclog.Errorf("grpc: failed IP parsing due to %v.\n", err) + continue + } + addr := a + ":" + strconv.Itoa(int(s.Port)) + newAddrs = append(newAddrs, resolver.Address{Addr: addr, Type: resolver.GRPCLB, ServerName: s.Target}) + } + } + return newAddrs +} + +func (d *dnsResolver) lookupTXT() string { + ss, err := lookupTXT(d.ctx, d.host) + if err != nil { + grpclog.Warningf("grpc: failed dns TXT record lookup due to %v.\n", err) + return "" + } + var res string + for _, s := range ss { + res += s + } + + // TXT record must have "grpc_config=" attribute in order to be used as service config. + if !strings.HasPrefix(res, txtAttribute) { + grpclog.Warningf("grpc: TXT record %v missing %v attribute", res, txtAttribute) + return "" + } + return strings.TrimPrefix(res, txtAttribute) +} + +func (d *dnsResolver) lookupHost() []resolver.Address { + var newAddrs []resolver.Address + addrs, err := lookupHost(d.ctx, d.host) + if err != nil { + grpclog.Warningf("grpc: failed dns A record lookup due to %v.\n", err) + return nil + } + for _, a := range addrs { + a, ok := formatIP(a) + if !ok { + grpclog.Errorf("grpc: failed IP parsing due to %v.\n", err) + continue + } + addr := a + ":" + d.port + newAddrs = append(newAddrs, resolver.Address{Addr: addr}) + } + return newAddrs +} + +func (d *dnsResolver) lookup() ([]resolver.Address, string) { + var newAddrs []resolver.Address + newAddrs = d.lookupSRV() + // Support fallback to non-balancer address. + newAddrs = append(newAddrs, d.lookupHost()...) + sc := d.lookupTXT() + return newAddrs, canaryingSC(sc) +} + +// formatIP returns ok = false if addr is not a valid textual representation of an IP address. +// If addr is an IPv4 address, return the addr and ok = true. +// If addr is an IPv6 address, return the addr enclosed in square brackets and ok = true. +func formatIP(addr string) (addrIP string, ok bool) { + ip := net.ParseIP(addr) + if ip == nil { + return "", false + } + if ip.To4() != nil { + return addr, true + } + return "[" + addr + "]", true +} + +// parseTarget takes the user input target string, returns formatted host and port info. +// If target doesn't specify a port, set the port to be the defaultPort. +// If target is in IPv6 format and host-name is enclosed in sqarue brackets, brackets +// are strippd when setting the host. +// examples: +// target: "www.google.com" returns host: "www.google.com", port: "443" +// target: "ipv4-host:80" returns host: "ipv4-host", port: "80" +// target: "[ipv6-host]" returns host: "ipv6-host", port: "443" +// target: ":80" returns host: "localhost", port: "80" +// target: ":" returns host: "localhost", port: "443" +func parseTarget(target string) (host, port string, err error) { + if target == "" { + return "", "", errMissingAddr + } + if ip := net.ParseIP(target); ip != nil { + // target is an IPv4 or IPv6(without brackets) address + return target, defaultPort, nil + } + if host, port, err = net.SplitHostPort(target); err == nil { + // target has port, i.e ipv4-host:port, [ipv6-host]:port, host-name:port + if host == "" { + // Keep consistent with net.Dial(): If the host is empty, as in ":80", the local system is assumed. + host = "localhost" + } + if port == "" { + // If the port field is empty(target ends with colon), e.g. "[::1]:", defaultPort is used. + port = defaultPort + } + return host, port, nil + } + if host, port, err = net.SplitHostPort(target + ":" + defaultPort); err == nil { + // target doesn't have port + return host, port, nil + } + return "", "", fmt.Errorf("invalid target address %v, error info: %v", target, err) +} + +type rawChoice struct { + ClientLanguage *[]string `json:"clientLanguage,omitempty"` + Percentage *int `json:"percentage,omitempty"` + ClientHostName *[]string `json:"clientHostName,omitempty"` + ServiceConfig *json.RawMessage `json:"serviceConfig,omitempty"` +} + +func containsString(a *[]string, b string) bool { + if a == nil { + return true + } + for _, c := range *a { + if c == b { + return true + } + } + return false +} + +func chosenByPercentage(a *int) bool { + if a == nil { + return true + } + s := rand.NewSource(time.Now().UnixNano()) + r := rand.New(s) + if r.Intn(100)+1 > *a { + return false + } + return true +} + +func canaryingSC(js string) string { + if js == "" { + return "" + } + var rcs []rawChoice + err := json.Unmarshal([]byte(js), &rcs) + if err != nil { + grpclog.Warningf("grpc: failed to parse service config json string due to %v.\n", err) + return "" + } + cliHostname, err := os.Hostname() + if err != nil { + grpclog.Warningf("grpc: failed to get client hostname due to %v.\n", err) + return "" + } + var sc string + for _, c := range rcs { + if !containsString(c.ClientLanguage, golang) || + !chosenByPercentage(c.Percentage) || + !containsString(c.ClientHostName, cliHostname) || + c.ServiceConfig == nil { + continue + } + sc = string(*c.ServiceConfig) + break + } + return sc +} diff --git a/vendor/google.golang.org/grpc/resolver/dns/go17.go b/vendor/google.golang.org/grpc/resolver/dns/go17.go new file mode 100644 index 0000000..b466bc8 --- /dev/null +++ b/vendor/google.golang.org/grpc/resolver/dns/go17.go @@ -0,0 +1,35 @@ +// +build go1.6, !go1.8 + +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package dns + +import ( + "net" + + "golang.org/x/net/context" +) + +var ( + lookupHost = func(ctx context.Context, host string) ([]string, error) { return net.LookupHost(host) } + lookupSRV = func(ctx context.Context, service, proto, name string) (string, []*net.SRV, error) { + return net.LookupSRV(service, proto, name) + } + lookupTXT = func(ctx context.Context, name string) ([]string, error) { return net.LookupTXT(name) } +) diff --git a/vendor/google.golang.org/grpc/resolver/dns/go18.go b/vendor/google.golang.org/grpc/resolver/dns/go18.go new file mode 100644 index 0000000..fa34f14 --- /dev/null +++ b/vendor/google.golang.org/grpc/resolver/dns/go18.go @@ -0,0 +1,29 @@ +// +build go1.8 + +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package dns + +import "net" + +var ( + lookupHost = net.DefaultResolver.LookupHost + lookupSRV = net.DefaultResolver.LookupSRV + lookupTXT = net.DefaultResolver.LookupTXT +) diff --git a/vendor/google.golang.org/grpc/resolver/passthrough/passthrough.go b/vendor/google.golang.org/grpc/resolver/passthrough/passthrough.go new file mode 100644 index 0000000..b76010d --- /dev/null +++ b/vendor/google.golang.org/grpc/resolver/passthrough/passthrough.go @@ -0,0 +1,57 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package passthrough implements a pass-through resolver. It sends the target +// name without scheme back to gRPC as resolved address. +package passthrough + +import "google.golang.org/grpc/resolver" + +const scheme = "passthrough" + +type passthroughBuilder struct{} + +func (*passthroughBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOption) (resolver.Resolver, error) { + r := &passthroughResolver{ + target: target, + cc: cc, + } + r.start() + return r, nil +} + +func (*passthroughBuilder) Scheme() string { + return scheme +} + +type passthroughResolver struct { + target resolver.Target + cc resolver.ClientConn +} + +func (r *passthroughResolver) start() { + r.cc.NewAddress([]resolver.Address{{Addr: r.target.Endpoint}}) +} + +func (*passthroughResolver) ResolveNow(o resolver.ResolveNowOption) {} + +func (*passthroughResolver) Close() {} + +func init() { + resolver.Register(&passthroughBuilder{}) +} diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go new file mode 100644 index 0000000..775ee4d --- /dev/null +++ b/vendor/google.golang.org/grpc/resolver/resolver.go @@ -0,0 +1,148 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package resolver defines APIs for name resolution in gRPC. +// All APIs in this package are experimental. +package resolver + +var ( + // m is a map from scheme to resolver builder. + m = make(map[string]Builder) + // defaultScheme is the default scheme to use. + defaultScheme = "passthrough" +) + +// TODO(bar) install dns resolver in init(){}. + +// Register registers the resolver builder to the resolver map. +// b.Scheme will be used as the scheme registered with this builder. +func Register(b Builder) { + m[b.Scheme()] = b +} + +// Get returns the resolver builder registered with the given scheme. +// +// If no builder is register with the scheme, nil will be returned. +func Get(scheme string) Builder { + if b, ok := m[scheme]; ok { + return b + } + return nil +} + +// SetDefaultScheme sets the default scheme that will be used. +// The default default scheme is "passthrough". +func SetDefaultScheme(scheme string) { + defaultScheme = scheme +} + +// GetDefaultScheme gets the default scheme that will be used. +func GetDefaultScheme() string { + return defaultScheme +} + +// AddressType indicates the address type returned by name resolution. +type AddressType uint8 + +const ( + // Backend indicates the address is for a backend server. + Backend AddressType = iota + // GRPCLB indicates the address is for a grpclb load balancer. + GRPCLB +) + +// Address represents a server the client connects to. +// This is the EXPERIMENTAL API and may be changed or extended in the future. +type Address struct { + // Addr is the server address on which a connection will be established. + Addr string + // Type is the type of this address. + Type AddressType + // ServerName is the name of this address. + // + // e.g. if Type is GRPCLB, ServerName should be the name of the remote load + // balancer, not the name of the backend. + ServerName string + // Metadata is the information associated with Addr, which may be used + // to make load balancing decision. + Metadata interface{} +} + +// BuildOption includes additional information for the builder to create +// the resolver. +type BuildOption struct { +} + +// ClientConn contains the callbacks for resolver to notify any updates +// to the gRPC ClientConn. +// +// This interface is to be implemented by gRPC. Users should not need a +// brand new implementation of this interface. For the situations like +// testing, the new implementation should embed this interface. This allows +// gRPC to add new methods to this interface. +type ClientConn interface { + // NewAddress is called by resolver to notify ClientConn a new list + // of resolved addresses. + // The address list should be the complete list of resolved addresses. + NewAddress(addresses []Address) + // NewServiceConfig is called by resolver to notify ClientConn a new + // service config. The service config should be provided as a json string. + NewServiceConfig(serviceConfig string) +} + +// Target represents a target for gRPC, as specified in: +// https://github.com/grpc/grpc/blob/master/doc/naming.md. +type Target struct { + Scheme string + Authority string + Endpoint string +} + +// Builder creates a resolver that will be used to watch name resolution updates. +type Builder interface { + // Build creates a new resolver for the given target. + // + // gRPC dial calls Build synchronously, and fails if the returned error is + // not nil. + Build(target Target, cc ClientConn, opts BuildOption) (Resolver, error) + // Scheme returns the scheme supported by this resolver. + // Scheme is defined at https://github.com/grpc/grpc/blob/master/doc/naming.md. + Scheme() string +} + +// ResolveNowOption includes additional information for ResolveNow. +type ResolveNowOption struct{} + +// Resolver watches for the updates on the specified target. +// Updates include address updates and service config updates. +type Resolver interface { + // ResolveNow will be called by gRPC to try to resolve the target name + // again. It's just a hint, resolver can ignore this if it's not necessary. + // + // It could be called multiple times concurrently. + ResolveNow(ResolveNowOption) + // Close closes the resolver. + Close() +} + +// UnregisterForTesting removes the resolver builder with the given scheme from the +// resolver map. +// This function is for testing only. +func UnregisterForTesting(scheme string) { + delete(m, scheme) +} diff --git a/vendor/google.golang.org/grpc/resolver_conn_wrapper.go b/vendor/google.golang.org/grpc/resolver_conn_wrapper.go new file mode 100644 index 0000000..75b8ce1 --- /dev/null +++ b/vendor/google.golang.org/grpc/resolver_conn_wrapper.go @@ -0,0 +1,158 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "fmt" + "strings" + + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/resolver" +) + +// ccResolverWrapper is a wrapper on top of cc for resolvers. +// It implements resolver.ClientConnection interface. +type ccResolverWrapper struct { + cc *ClientConn + resolver resolver.Resolver + addrCh chan []resolver.Address + scCh chan string + done chan struct{} +} + +// split2 returns the values from strings.SplitN(s, sep, 2). +// If sep is not found, it returns ("", s, false) instead. +func split2(s, sep string) (string, string, bool) { + spl := strings.SplitN(s, sep, 2) + if len(spl) < 2 { + return "", "", false + } + return spl[0], spl[1], true +} + +// parseTarget splits target into a struct containing scheme, authority and +// endpoint. +// +// If target is not a valid scheme://authority/endpoint, it returns {Endpoint: +// target}. +func parseTarget(target string) (ret resolver.Target) { + var ok bool + ret.Scheme, ret.Endpoint, ok = split2(target, "://") + if !ok { + return resolver.Target{Endpoint: target} + } + ret.Authority, ret.Endpoint, ok = split2(ret.Endpoint, "/") + if !ok { + return resolver.Target{Endpoint: target} + } + return ret +} + +// newCCResolverWrapper parses cc.target for scheme and gets the resolver +// builder for this scheme. It then builds the resolver and starts the +// monitoring goroutine for it. +// +// If withResolverBuilder dial option is set, the specified resolver will be +// used instead. +func newCCResolverWrapper(cc *ClientConn) (*ccResolverWrapper, error) { + rb := cc.dopts.resolverBuilder + if rb == nil { + return nil, fmt.Errorf("could not get resolver for scheme: %q", cc.parsedTarget.Scheme) + } + + ccr := &ccResolverWrapper{ + cc: cc, + addrCh: make(chan []resolver.Address, 1), + scCh: make(chan string, 1), + done: make(chan struct{}), + } + + var err error + ccr.resolver, err = rb.Build(cc.parsedTarget, ccr, resolver.BuildOption{}) + if err != nil { + return nil, err + } + return ccr, nil +} + +func (ccr *ccResolverWrapper) start() { + go ccr.watcher() +} + +// watcher processes address updates and service config updates sequencially. +// Otherwise, we need to resolve possible races between address and service +// config (e.g. they specify different balancer types). +func (ccr *ccResolverWrapper) watcher() { + for { + select { + case <-ccr.done: + return + default: + } + + select { + case addrs := <-ccr.addrCh: + select { + case <-ccr.done: + return + default: + } + grpclog.Infof("ccResolverWrapper: sending new addresses to cc: %v", addrs) + ccr.cc.handleResolvedAddrs(addrs, nil) + case sc := <-ccr.scCh: + select { + case <-ccr.done: + return + default: + } + grpclog.Infof("ccResolverWrapper: got new service config: %v", sc) + ccr.cc.handleServiceConfig(sc) + case <-ccr.done: + return + } + } +} + +func (ccr *ccResolverWrapper) resolveNow(o resolver.ResolveNowOption) { + ccr.resolver.ResolveNow(o) +} + +func (ccr *ccResolverWrapper) close() { + ccr.resolver.Close() + close(ccr.done) +} + +// NewAddress is called by the resolver implemenetion to send addresses to gRPC. +func (ccr *ccResolverWrapper) NewAddress(addrs []resolver.Address) { + select { + case <-ccr.addrCh: + default: + } + ccr.addrCh <- addrs +} + +// NewServiceConfig is called by the resolver implemenetion to send service +// configs to gPRC. +func (ccr *ccResolverWrapper) NewServiceConfig(sc string) { + select { + case <-ccr.scCh: + default: + } + ccr.scCh <- sc +} diff --git a/vendor/google.golang.org/grpc/rpc_util.go b/vendor/google.golang.org/grpc/rpc_util.go new file mode 100644 index 0000000..00a9976 --- /dev/null +++ b/vendor/google.golang.org/grpc/rpc_util.go @@ -0,0 +1,717 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "bytes" + "compress/gzip" + "encoding/binary" + "fmt" + "io" + "io/ioutil" + "math" + "net/url" + "strings" + "sync" + "time" + + "golang.org/x/net/context" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/encoding" + "google.golang.org/grpc/encoding/proto" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" + "google.golang.org/grpc/transport" +) + +// Compressor defines the interface gRPC uses to compress a message. +type Compressor interface { + // Do compresses p into w. + Do(w io.Writer, p []byte) error + // Type returns the compression algorithm the Compressor uses. + Type() string +} + +type gzipCompressor struct { + pool sync.Pool +} + +// NewGZIPCompressor creates a Compressor based on GZIP. +func NewGZIPCompressor() Compressor { + c, _ := NewGZIPCompressorWithLevel(gzip.DefaultCompression) + return c +} + +// NewGZIPCompressorWithLevel is like NewGZIPCompressor but specifies the gzip compression level instead +// of assuming DefaultCompression. +// +// The error returned will be nil if the level is valid. +func NewGZIPCompressorWithLevel(level int) (Compressor, error) { + if level < gzip.DefaultCompression || level > gzip.BestCompression { + return nil, fmt.Errorf("grpc: invalid compression level: %d", level) + } + return &gzipCompressor{ + pool: sync.Pool{ + New: func() interface{} { + w, err := gzip.NewWriterLevel(ioutil.Discard, level) + if err != nil { + panic(err) + } + return w + }, + }, + }, nil +} + +func (c *gzipCompressor) Do(w io.Writer, p []byte) error { + z := c.pool.Get().(*gzip.Writer) + defer c.pool.Put(z) + z.Reset(w) + if _, err := z.Write(p); err != nil { + return err + } + return z.Close() +} + +func (c *gzipCompressor) Type() string { + return "gzip" +} + +// Decompressor defines the interface gRPC uses to decompress a message. +type Decompressor interface { + // Do reads the data from r and uncompress them. + Do(r io.Reader) ([]byte, error) + // Type returns the compression algorithm the Decompressor uses. + Type() string +} + +type gzipDecompressor struct { + pool sync.Pool +} + +// NewGZIPDecompressor creates a Decompressor based on GZIP. +func NewGZIPDecompressor() Decompressor { + return &gzipDecompressor{} +} + +func (d *gzipDecompressor) Do(r io.Reader) ([]byte, error) { + var z *gzip.Reader + switch maybeZ := d.pool.Get().(type) { + case nil: + newZ, err := gzip.NewReader(r) + if err != nil { + return nil, err + } + z = newZ + case *gzip.Reader: + z = maybeZ + if err := z.Reset(r); err != nil { + d.pool.Put(z) + return nil, err + } + } + + defer func() { + z.Close() + d.pool.Put(z) + }() + return ioutil.ReadAll(z) +} + +func (d *gzipDecompressor) Type() string { + return "gzip" +} + +// callInfo contains all related configuration and information about an RPC. +type callInfo struct { + compressorType string + failFast bool + stream *clientStream + traceInfo traceInfo // in trace.go + maxReceiveMessageSize *int + maxSendMessageSize *int + creds credentials.PerRPCCredentials + contentSubtype string + codec baseCodec +} + +func defaultCallInfo() *callInfo { + return &callInfo{failFast: true} +} + +// CallOption configures a Call before it starts or extracts information from +// a Call after it completes. +type CallOption interface { + // before is called before the call is sent to any server. If before + // returns a non-nil error, the RPC fails with that error. + before(*callInfo) error + + // after is called after the call has completed. after cannot return an + // error, so any failures should be reported via output parameters. + after(*callInfo) +} + +// EmptyCallOption does not alter the Call configuration. +// It can be embedded in another structure to carry satellite data for use +// by interceptors. +type EmptyCallOption struct{} + +func (EmptyCallOption) before(*callInfo) error { return nil } +func (EmptyCallOption) after(*callInfo) {} + +// Header returns a CallOptions that retrieves the header metadata +// for a unary RPC. +func Header(md *metadata.MD) CallOption { + return HeaderCallOption{HeaderAddr: md} +} + +// HeaderCallOption is a CallOption for collecting response header metadata. +// The metadata field will be populated *after* the RPC completes. +// This is an EXPERIMENTAL API. +type HeaderCallOption struct { + HeaderAddr *metadata.MD +} + +func (o HeaderCallOption) before(c *callInfo) error { return nil } +func (o HeaderCallOption) after(c *callInfo) { + if c.stream != nil { + *o.HeaderAddr, _ = c.stream.Header() + } +} + +// Trailer returns a CallOptions that retrieves the trailer metadata +// for a unary RPC. +func Trailer(md *metadata.MD) CallOption { + return TrailerCallOption{TrailerAddr: md} +} + +// TrailerCallOption is a CallOption for collecting response trailer metadata. +// The metadata field will be populated *after* the RPC completes. +// This is an EXPERIMENTAL API. +type TrailerCallOption struct { + TrailerAddr *metadata.MD +} + +func (o TrailerCallOption) before(c *callInfo) error { return nil } +func (o TrailerCallOption) after(c *callInfo) { + if c.stream != nil { + *o.TrailerAddr = c.stream.Trailer() + } +} + +// Peer returns a CallOption that retrieves peer information for a +// unary RPC. +func Peer(p *peer.Peer) CallOption { + return PeerCallOption{PeerAddr: p} +} + +// PeerCallOption is a CallOption for collecting the identity of the remote +// peer. The peer field will be populated *after* the RPC completes. +// This is an EXPERIMENTAL API. +type PeerCallOption struct { + PeerAddr *peer.Peer +} + +func (o PeerCallOption) before(c *callInfo) error { return nil } +func (o PeerCallOption) after(c *callInfo) { + if c.stream != nil { + if x, ok := peer.FromContext(c.stream.Context()); ok { + *o.PeerAddr = *x + } + } +} + +// FailFast configures the action to take when an RPC is attempted on broken +// connections or unreachable servers. If failFast is true, the RPC will fail +// immediately. Otherwise, the RPC client will block the call until a +// connection is available (or the call is canceled or times out) and will +// retry the call if it fails due to a transient error. gRPC will not retry if +// data was written to the wire unless the server indicates it did not process +// the data. Please refer to +// https://github.com/grpc/grpc/blob/master/doc/wait-for-ready.md. +// +// By default, RPCs are "Fail Fast". +func FailFast(failFast bool) CallOption { + return FailFastCallOption{FailFast: failFast} +} + +// FailFastCallOption is a CallOption for indicating whether an RPC should fail +// fast or not. +// This is an EXPERIMENTAL API. +type FailFastCallOption struct { + FailFast bool +} + +func (o FailFastCallOption) before(c *callInfo) error { + c.failFast = o.FailFast + return nil +} +func (o FailFastCallOption) after(c *callInfo) { return } + +// MaxCallRecvMsgSize returns a CallOption which sets the maximum message size the client can receive. +func MaxCallRecvMsgSize(s int) CallOption { + return MaxRecvMsgSizeCallOption{MaxRecvMsgSize: s} +} + +// MaxRecvMsgSizeCallOption is a CallOption that indicates the maximum message +// size the client can receive. +// This is an EXPERIMENTAL API. +type MaxRecvMsgSizeCallOption struct { + MaxRecvMsgSize int +} + +func (o MaxRecvMsgSizeCallOption) before(c *callInfo) error { + c.maxReceiveMessageSize = &o.MaxRecvMsgSize + return nil +} +func (o MaxRecvMsgSizeCallOption) after(c *callInfo) { return } + +// MaxCallSendMsgSize returns a CallOption which sets the maximum message size the client can send. +func MaxCallSendMsgSize(s int) CallOption { + return MaxSendMsgSizeCallOption{MaxSendMsgSize: s} +} + +// MaxSendMsgSizeCallOption is a CallOption that indicates the maximum message +// size the client can send. +// This is an EXPERIMENTAL API. +type MaxSendMsgSizeCallOption struct { + MaxSendMsgSize int +} + +func (o MaxSendMsgSizeCallOption) before(c *callInfo) error { + c.maxSendMessageSize = &o.MaxSendMsgSize + return nil +} +func (o MaxSendMsgSizeCallOption) after(c *callInfo) { return } + +// PerRPCCredentials returns a CallOption that sets credentials.PerRPCCredentials +// for a call. +func PerRPCCredentials(creds credentials.PerRPCCredentials) CallOption { + return PerRPCCredsCallOption{Creds: creds} +} + +// PerRPCCredsCallOption is a CallOption that indicates the per-RPC +// credentials to use for the call. +// This is an EXPERIMENTAL API. +type PerRPCCredsCallOption struct { + Creds credentials.PerRPCCredentials +} + +func (o PerRPCCredsCallOption) before(c *callInfo) error { + c.creds = o.Creds + return nil +} +func (o PerRPCCredsCallOption) after(c *callInfo) { return } + +// UseCompressor returns a CallOption which sets the compressor used when +// sending the request. If WithCompressor is also set, UseCompressor has +// higher priority. +// +// This API is EXPERIMENTAL. +func UseCompressor(name string) CallOption { + return CompressorCallOption{CompressorType: name} +} + +// CompressorCallOption is a CallOption that indicates the compressor to use. +// This is an EXPERIMENTAL API. +type CompressorCallOption struct { + CompressorType string +} + +func (o CompressorCallOption) before(c *callInfo) error { + c.compressorType = o.CompressorType + return nil +} +func (o CompressorCallOption) after(c *callInfo) { return } + +// CallContentSubtype returns a CallOption that will set the content-subtype +// for a call. For example, if content-subtype is "json", the Content-Type over +// the wire will be "application/grpc+json". The content-subtype is converted +// to lowercase before being included in Content-Type. See Content-Type on +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for +// more details. +// +// If CallCustomCodec is not also used, the content-subtype will be used to +// look up the Codec to use in the registry controlled by RegisterCodec. See +// the documention on RegisterCodec for details on registration. The lookup +// of content-subtype is case-insensitive. If no such Codec is found, the call +// will result in an error with code codes.Internal. +// +// If CallCustomCodec is also used, that Codec will be used for all request and +// response messages, with the content-subtype set to the given contentSubtype +// here for requests. +func CallContentSubtype(contentSubtype string) CallOption { + return ContentSubtypeCallOption{ContentSubtype: strings.ToLower(contentSubtype)} +} + +// ContentSubtypeCallOption is a CallOption that indicates the content-subtype +// used for marshaling messages. +// This is an EXPERIMENTAL API. +type ContentSubtypeCallOption struct { + ContentSubtype string +} + +func (o ContentSubtypeCallOption) before(c *callInfo) error { + c.contentSubtype = o.ContentSubtype + return nil +} +func (o ContentSubtypeCallOption) after(c *callInfo) { return } + +// CallCustomCodec returns a CallOption that will set the given Codec to be +// used for all request and response messages for a call. The result of calling +// String() will be used as the content-subtype in a case-insensitive manner. +// +// See Content-Type on +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for +// more details. Also see the documentation on RegisterCodec and +// CallContentSubtype for more details on the interaction between Codec and +// content-subtype. +// +// This function is provided for advanced users; prefer to use only +// CallContentSubtype to select a registered codec instead. +func CallCustomCodec(codec Codec) CallOption { + return CustomCodecCallOption{Codec: codec} +} + +// CustomCodecCallOption is a CallOption that indicates the codec used for +// marshaling messages. +// This is an EXPERIMENTAL API. +type CustomCodecCallOption struct { + Codec Codec +} + +func (o CustomCodecCallOption) before(c *callInfo) error { + c.codec = o.Codec + return nil +} +func (o CustomCodecCallOption) after(c *callInfo) { return } + +// The format of the payload: compressed or not? +type payloadFormat uint8 + +const ( + compressionNone payloadFormat = iota // no compression + compressionMade +) + +// parser reads complete gRPC messages from the underlying reader. +type parser struct { + // r is the underlying reader. + // See the comment on recvMsg for the permissible + // error types. + r io.Reader + + // The header of a gRPC message. Find more detail at + // https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md + header [5]byte +} + +// recvMsg reads a complete gRPC message from the stream. +// +// It returns the message and its payload (compression/encoding) +// format. The caller owns the returned msg memory. +// +// If there is an error, possible values are: +// * io.EOF, when no messages remain +// * io.ErrUnexpectedEOF +// * of type transport.ConnectionError +// * of type transport.StreamError +// No other error values or types must be returned, which also means +// that the underlying io.Reader must not return an incompatible +// error. +func (p *parser) recvMsg(maxReceiveMessageSize int) (pf payloadFormat, msg []byte, err error) { + if _, err := p.r.Read(p.header[:]); err != nil { + return 0, nil, err + } + + pf = payloadFormat(p.header[0]) + length := binary.BigEndian.Uint32(p.header[1:]) + + if length == 0 { + return pf, nil, nil + } + if int64(length) > int64(maxInt) { + return 0, nil, status.Errorf(codes.ResourceExhausted, "grpc: received message larger than max length allowed on current machine (%d vs. %d)", length, maxInt) + } + if int(length) > maxReceiveMessageSize { + return 0, nil, status.Errorf(codes.ResourceExhausted, "grpc: received message larger than max (%d vs. %d)", length, maxReceiveMessageSize) + } + // TODO(bradfitz,zhaoq): garbage. reuse buffer after proto decoding instead + // of making it for each message: + msg = make([]byte, int(length)) + if _, err := p.r.Read(msg); err != nil { + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + return 0, nil, err + } + return pf, msg, nil +} + +// encode serializes msg and returns a buffer of message header and a buffer of msg. +// If msg is nil, it generates the message header and an empty msg buffer. +// TODO(ddyihai): eliminate extra Compressor parameter. +func encode(c baseCodec, msg interface{}, cp Compressor, outPayload *stats.OutPayload, compressor encoding.Compressor) ([]byte, []byte, error) { + var ( + b []byte + cbuf *bytes.Buffer + ) + const ( + payloadLen = 1 + sizeLen = 4 + ) + if msg != nil { + var err error + b, err = c.Marshal(msg) + if err != nil { + return nil, nil, status.Errorf(codes.Internal, "grpc: error while marshaling: %v", err.Error()) + } + if outPayload != nil { + outPayload.Payload = msg + // TODO truncate large payload. + outPayload.Data = b + outPayload.Length = len(b) + } + if compressor != nil || cp != nil { + cbuf = new(bytes.Buffer) + // Has compressor, check Compressor is set by UseCompressor first. + if compressor != nil { + z, _ := compressor.Compress(cbuf) + if _, err := z.Write(b); err != nil { + return nil, nil, status.Errorf(codes.Internal, "grpc: error while compressing: %v", err.Error()) + } + z.Close() + } else { + // If Compressor is not set by UseCompressor, use default Compressor + if err := cp.Do(cbuf, b); err != nil { + return nil, nil, status.Errorf(codes.Internal, "grpc: error while compressing: %v", err.Error()) + } + } + b = cbuf.Bytes() + } + } + if uint(len(b)) > math.MaxUint32 { + return nil, nil, status.Errorf(codes.ResourceExhausted, "grpc: message too large (%d bytes)", len(b)) + } + + bufHeader := make([]byte, payloadLen+sizeLen) + if compressor != nil || cp != nil { + bufHeader[0] = byte(compressionMade) + } else { + bufHeader[0] = byte(compressionNone) + } + + // Write length of b into buf + binary.BigEndian.PutUint32(bufHeader[payloadLen:], uint32(len(b))) + if outPayload != nil { + outPayload.WireLength = payloadLen + sizeLen + len(b) + } + return bufHeader, b, nil +} + +func checkRecvPayload(pf payloadFormat, recvCompress string, haveCompressor bool) *status.Status { + switch pf { + case compressionNone: + case compressionMade: + if recvCompress == "" || recvCompress == encoding.Identity { + return status.New(codes.Internal, "grpc: compressed flag set with identity or empty encoding") + } + if !haveCompressor { + return status.Newf(codes.Unimplemented, "grpc: Decompressor is not installed for grpc-encoding %q", recvCompress) + } + default: + return status.Newf(codes.Internal, "grpc: received unexpected payload format %d", pf) + } + return nil +} + +// For the two compressor parameters, both should not be set, but if they are, +// dc takes precedence over compressor. +// TODO(dfawley): wrap the old compressor/decompressor using the new API? +func recv(p *parser, c baseCodec, s *transport.Stream, dc Decompressor, m interface{}, maxReceiveMessageSize int, inPayload *stats.InPayload, compressor encoding.Compressor) error { + pf, d, err := p.recvMsg(maxReceiveMessageSize) + if err != nil { + return err + } + if inPayload != nil { + inPayload.WireLength = len(d) + } + + if st := checkRecvPayload(pf, s.RecvCompress(), compressor != nil || dc != nil); st != nil { + return st.Err() + } + + if pf == compressionMade { + // To match legacy behavior, if the decompressor is set by WithDecompressor or RPCDecompressor, + // use this decompressor as the default. + if dc != nil { + d, err = dc.Do(bytes.NewReader(d)) + if err != nil { + return status.Errorf(codes.Internal, "grpc: failed to decompress the received message %v", err) + } + } else { + dcReader, err := compressor.Decompress(bytes.NewReader(d)) + if err != nil { + return status.Errorf(codes.Internal, "grpc: failed to decompress the received message %v", err) + } + d, err = ioutil.ReadAll(dcReader) + if err != nil { + return status.Errorf(codes.Internal, "grpc: failed to decompress the received message %v", err) + } + } + } + if len(d) > maxReceiveMessageSize { + // TODO: Revisit the error code. Currently keep it consistent with java + // implementation. + return status.Errorf(codes.ResourceExhausted, "grpc: received message larger than max (%d vs. %d)", len(d), maxReceiveMessageSize) + } + if err := c.Unmarshal(d, m); err != nil { + return status.Errorf(codes.Internal, "grpc: failed to unmarshal the received message %v", err) + } + if inPayload != nil { + inPayload.RecvTime = time.Now() + inPayload.Payload = m + // TODO truncate large payload. + inPayload.Data = d + inPayload.Length = len(d) + } + return nil +} + +type rpcInfo struct { + failfast bool +} + +type rpcInfoContextKey struct{} + +func newContextWithRPCInfo(ctx context.Context, failfast bool) context.Context { + return context.WithValue(ctx, rpcInfoContextKey{}, &rpcInfo{failfast: failfast}) +} + +func rpcInfoFromContext(ctx context.Context) (s *rpcInfo, ok bool) { + s, ok = ctx.Value(rpcInfoContextKey{}).(*rpcInfo) + return +} + +// Code returns the error code for err if it was produced by the rpc system. +// Otherwise, it returns codes.Unknown. +// +// Deprecated: use status.FromError and Code method instead. +func Code(err error) codes.Code { + if s, ok := status.FromError(err); ok { + return s.Code() + } + return codes.Unknown +} + +// ErrorDesc returns the error description of err if it was produced by the rpc system. +// Otherwise, it returns err.Error() or empty string when err is nil. +// +// Deprecated: use status.FromError and Message method instead. +func ErrorDesc(err error) string { + if s, ok := status.FromError(err); ok { + return s.Message() + } + return err.Error() +} + +// Errorf returns an error containing an error code and a description; +// Errorf returns nil if c is OK. +// +// Deprecated: use status.Errorf instead. +func Errorf(c codes.Code, format string, a ...interface{}) error { + return status.Errorf(c, format, a...) +} + +// setCallInfoCodec should only be called after CallOptions have been applied. +func setCallInfoCodec(c *callInfo) error { + if c.codec != nil { + // codec was already set by a CallOption; use it. + return nil + } + + if c.contentSubtype == "" { + // No codec specified in CallOptions; use proto by default. + c.codec = encoding.GetCodec(proto.Name) + return nil + } + + // c.contentSubtype is already lowercased in CallContentSubtype + c.codec = encoding.GetCodec(c.contentSubtype) + if c.codec == nil { + return status.Errorf(codes.Internal, "no codec registered for content-subtype %s", c.contentSubtype) + } + return nil +} + +// parseDialTarget returns the network and address to pass to dialer +func parseDialTarget(target string) (net string, addr string) { + net = "tcp" + + m1 := strings.Index(target, ":") + m2 := strings.Index(target, ":/") + + // handle unix:addr which will fail with url.Parse + if m1 >= 0 && m2 < 0 { + if n := target[0:m1]; n == "unix" { + net = n + addr = target[m1+1:] + return net, addr + } + } + if m2 >= 0 { + t, err := url.Parse(target) + if err != nil { + return net, target + } + scheme := t.Scheme + addr = t.Path + if scheme == "unix" { + net = scheme + if addr == "" { + addr = t.Host + } + return net, addr + } + } + + return net, target +} + +// The SupportPackageIsVersion variables are referenced from generated protocol +// buffer files to ensure compatibility with the gRPC version used. The latest +// support package version is 5. +// +// Older versions are kept for compatibility. They may be removed if +// compatibility cannot be maintained. +// +// These constants should not be referenced from any other code. +const ( + SupportPackageIsVersion3 = true + SupportPackageIsVersion4 = true + SupportPackageIsVersion5 = true +) + +// Version is the current grpc version. +const Version = "1.11.3" + +const grpcUA = "grpc-go/" + Version diff --git a/vendor/google.golang.org/grpc/server.go b/vendor/google.golang.org/grpc/server.go new file mode 100644 index 0000000..c6b413b --- /dev/null +++ b/vendor/google.golang.org/grpc/server.go @@ -0,0 +1,1371 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "bytes" + "errors" + "fmt" + "io" + "math" + "net" + "net/http" + "reflect" + "runtime" + "strings" + "sync" + "time" + + "io/ioutil" + + "golang.org/x/net/context" + "golang.org/x/net/http2" + "golang.org/x/net/trace" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/encoding" + "google.golang.org/grpc/encoding/proto" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/internal" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" + "google.golang.org/grpc/tap" + "google.golang.org/grpc/transport" +) + +const ( + defaultServerMaxReceiveMessageSize = 1024 * 1024 * 4 + defaultServerMaxSendMessageSize = math.MaxInt32 +) + +type methodHandler func(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor UnaryServerInterceptor) (interface{}, error) + +// MethodDesc represents an RPC service's method specification. +type MethodDesc struct { + MethodName string + Handler methodHandler +} + +// ServiceDesc represents an RPC service's specification. +type ServiceDesc struct { + ServiceName string + // The pointer to the service interface. Used to check whether the user + // provided implementation satisfies the interface requirements. + HandlerType interface{} + Methods []MethodDesc + Streams []StreamDesc + Metadata interface{} +} + +// service consists of the information of the server serving this service and +// the methods in this service. +type service struct { + server interface{} // the server for service methods + md map[string]*MethodDesc + sd map[string]*StreamDesc + mdata interface{} +} + +// Server is a gRPC server to serve RPC requests. +type Server struct { + opts options + + mu sync.Mutex // guards following + lis map[net.Listener]bool + conns map[io.Closer]bool + serve bool + drain bool + cv *sync.Cond // signaled when connections close for GracefulStop + m map[string]*service // service name -> service info + events trace.EventLog + + quit chan struct{} + done chan struct{} + quitOnce sync.Once + doneOnce sync.Once + serveWG sync.WaitGroup // counts active Serve goroutines for GracefulStop +} + +type options struct { + creds credentials.TransportCredentials + codec baseCodec + cp Compressor + dc Decompressor + unaryInt UnaryServerInterceptor + streamInt StreamServerInterceptor + inTapHandle tap.ServerInHandle + statsHandler stats.Handler + maxConcurrentStreams uint32 + maxReceiveMessageSize int + maxSendMessageSize int + useHandlerImpl bool // use http.Handler-based server + unknownStreamDesc *StreamDesc + keepaliveParams keepalive.ServerParameters + keepalivePolicy keepalive.EnforcementPolicy + initialWindowSize int32 + initialConnWindowSize int32 + writeBufferSize int + readBufferSize int + connectionTimeout time.Duration +} + +var defaultServerOptions = options{ + maxReceiveMessageSize: defaultServerMaxReceiveMessageSize, + maxSendMessageSize: defaultServerMaxSendMessageSize, + connectionTimeout: 120 * time.Second, +} + +// A ServerOption sets options such as credentials, codec and keepalive parameters, etc. +type ServerOption func(*options) + +// WriteBufferSize lets you set the size of write buffer, this determines how much data can be batched +// before doing a write on the wire. +func WriteBufferSize(s int) ServerOption { + return func(o *options) { + o.writeBufferSize = s + } +} + +// ReadBufferSize lets you set the size of read buffer, this determines how much data can be read at most +// for one read syscall. +func ReadBufferSize(s int) ServerOption { + return func(o *options) { + o.readBufferSize = s + } +} + +// InitialWindowSize returns a ServerOption that sets window size for stream. +// The lower bound for window size is 64K and any value smaller than that will be ignored. +func InitialWindowSize(s int32) ServerOption { + return func(o *options) { + o.initialWindowSize = s + } +} + +// InitialConnWindowSize returns a ServerOption that sets window size for a connection. +// The lower bound for window size is 64K and any value smaller than that will be ignored. +func InitialConnWindowSize(s int32) ServerOption { + return func(o *options) { + o.initialConnWindowSize = s + } +} + +// KeepaliveParams returns a ServerOption that sets keepalive and max-age parameters for the server. +func KeepaliveParams(kp keepalive.ServerParameters) ServerOption { + return func(o *options) { + o.keepaliveParams = kp + } +} + +// KeepaliveEnforcementPolicy returns a ServerOption that sets keepalive enforcement policy for the server. +func KeepaliveEnforcementPolicy(kep keepalive.EnforcementPolicy) ServerOption { + return func(o *options) { + o.keepalivePolicy = kep + } +} + +// CustomCodec returns a ServerOption that sets a codec for message marshaling and unmarshaling. +// +// This will override any lookups by content-subtype for Codecs registered with RegisterCodec. +func CustomCodec(codec Codec) ServerOption { + return func(o *options) { + o.codec = codec + } +} + +// RPCCompressor returns a ServerOption that sets a compressor for outbound +// messages. For backward compatibility, all outbound messages will be sent +// using this compressor, regardless of incoming message compression. By +// default, server messages will be sent using the same compressor with which +// request messages were sent. +// +// Deprecated: use encoding.RegisterCompressor instead. +func RPCCompressor(cp Compressor) ServerOption { + return func(o *options) { + o.cp = cp + } +} + +// RPCDecompressor returns a ServerOption that sets a decompressor for inbound +// messages. It has higher priority than decompressors registered via +// encoding.RegisterCompressor. +// +// Deprecated: use encoding.RegisterCompressor instead. +func RPCDecompressor(dc Decompressor) ServerOption { + return func(o *options) { + o.dc = dc + } +} + +// MaxMsgSize returns a ServerOption to set the max message size in bytes the server can receive. +// If this is not set, gRPC uses the default limit. Deprecated: use MaxRecvMsgSize instead. +func MaxMsgSize(m int) ServerOption { + return MaxRecvMsgSize(m) +} + +// MaxRecvMsgSize returns a ServerOption to set the max message size in bytes the server can receive. +// If this is not set, gRPC uses the default 4MB. +func MaxRecvMsgSize(m int) ServerOption { + return func(o *options) { + o.maxReceiveMessageSize = m + } +} + +// MaxSendMsgSize returns a ServerOption to set the max message size in bytes the server can send. +// If this is not set, gRPC uses the default 4MB. +func MaxSendMsgSize(m int) ServerOption { + return func(o *options) { + o.maxSendMessageSize = m + } +} + +// MaxConcurrentStreams returns a ServerOption that will apply a limit on the number +// of concurrent streams to each ServerTransport. +func MaxConcurrentStreams(n uint32) ServerOption { + return func(o *options) { + o.maxConcurrentStreams = n + } +} + +// Creds returns a ServerOption that sets credentials for server connections. +func Creds(c credentials.TransportCredentials) ServerOption { + return func(o *options) { + o.creds = c + } +} + +// UnaryInterceptor returns a ServerOption that sets the UnaryServerInterceptor for the +// server. Only one unary interceptor can be installed. The construction of multiple +// interceptors (e.g., chaining) can be implemented at the caller. +func UnaryInterceptor(i UnaryServerInterceptor) ServerOption { + return func(o *options) { + if o.unaryInt != nil { + panic("The unary server interceptor was already set and may not be reset.") + } + o.unaryInt = i + } +} + +// StreamInterceptor returns a ServerOption that sets the StreamServerInterceptor for the +// server. Only one stream interceptor can be installed. +func StreamInterceptor(i StreamServerInterceptor) ServerOption { + return func(o *options) { + if o.streamInt != nil { + panic("The stream server interceptor was already set and may not be reset.") + } + o.streamInt = i + } +} + +// InTapHandle returns a ServerOption that sets the tap handle for all the server +// transport to be created. Only one can be installed. +func InTapHandle(h tap.ServerInHandle) ServerOption { + return func(o *options) { + if o.inTapHandle != nil { + panic("The tap handle was already set and may not be reset.") + } + o.inTapHandle = h + } +} + +// StatsHandler returns a ServerOption that sets the stats handler for the server. +func StatsHandler(h stats.Handler) ServerOption { + return func(o *options) { + o.statsHandler = h + } +} + +// UnknownServiceHandler returns a ServerOption that allows for adding a custom +// unknown service handler. The provided method is a bidi-streaming RPC service +// handler that will be invoked instead of returning the "unimplemented" gRPC +// error whenever a request is received for an unregistered service or method. +// The handling function has full access to the Context of the request and the +// stream, and the invocation bypasses interceptors. +func UnknownServiceHandler(streamHandler StreamHandler) ServerOption { + return func(o *options) { + o.unknownStreamDesc = &StreamDesc{ + StreamName: "unknown_service_handler", + Handler: streamHandler, + // We need to assume that the users of the streamHandler will want to use both. + ClientStreams: true, + ServerStreams: true, + } + } +} + +// ConnectionTimeout returns a ServerOption that sets the timeout for +// connection establishment (up to and including HTTP/2 handshaking) for all +// new connections. If this is not set, the default is 120 seconds. A zero or +// negative value will result in an immediate timeout. +// +// This API is EXPERIMENTAL. +func ConnectionTimeout(d time.Duration) ServerOption { + return func(o *options) { + o.connectionTimeout = d + } +} + +// NewServer creates a gRPC server which has no service registered and has not +// started to accept requests yet. +func NewServer(opt ...ServerOption) *Server { + opts := defaultServerOptions + for _, o := range opt { + o(&opts) + } + s := &Server{ + lis: make(map[net.Listener]bool), + opts: opts, + conns: make(map[io.Closer]bool), + m: make(map[string]*service), + quit: make(chan struct{}), + done: make(chan struct{}), + } + s.cv = sync.NewCond(&s.mu) + if EnableTracing { + _, file, line, _ := runtime.Caller(1) + s.events = trace.NewEventLog("grpc.Server", fmt.Sprintf("%s:%d", file, line)) + } + return s +} + +// printf records an event in s's event log, unless s has been stopped. +// REQUIRES s.mu is held. +func (s *Server) printf(format string, a ...interface{}) { + if s.events != nil { + s.events.Printf(format, a...) + } +} + +// errorf records an error in s's event log, unless s has been stopped. +// REQUIRES s.mu is held. +func (s *Server) errorf(format string, a ...interface{}) { + if s.events != nil { + s.events.Errorf(format, a...) + } +} + +// RegisterService registers a service and its implementation to the gRPC +// server. It is called from the IDL generated code. This must be called before +// invoking Serve. +func (s *Server) RegisterService(sd *ServiceDesc, ss interface{}) { + ht := reflect.TypeOf(sd.HandlerType).Elem() + st := reflect.TypeOf(ss) + if !st.Implements(ht) { + grpclog.Fatalf("grpc: Server.RegisterService found the handler of type %v that does not satisfy %v", st, ht) + } + s.register(sd, ss) +} + +func (s *Server) register(sd *ServiceDesc, ss interface{}) { + s.mu.Lock() + defer s.mu.Unlock() + s.printf("RegisterService(%q)", sd.ServiceName) + if s.serve { + grpclog.Fatalf("grpc: Server.RegisterService after Server.Serve for %q", sd.ServiceName) + } + if _, ok := s.m[sd.ServiceName]; ok { + grpclog.Fatalf("grpc: Server.RegisterService found duplicate service registration for %q", sd.ServiceName) + } + srv := &service{ + server: ss, + md: make(map[string]*MethodDesc), + sd: make(map[string]*StreamDesc), + mdata: sd.Metadata, + } + for i := range sd.Methods { + d := &sd.Methods[i] + srv.md[d.MethodName] = d + } + for i := range sd.Streams { + d := &sd.Streams[i] + srv.sd[d.StreamName] = d + } + s.m[sd.ServiceName] = srv +} + +// MethodInfo contains the information of an RPC including its method name and type. +type MethodInfo struct { + // Name is the method name only, without the service name or package name. + Name string + // IsClientStream indicates whether the RPC is a client streaming RPC. + IsClientStream bool + // IsServerStream indicates whether the RPC is a server streaming RPC. + IsServerStream bool +} + +// ServiceInfo contains unary RPC method info, streaming RPC method info and metadata for a service. +type ServiceInfo struct { + Methods []MethodInfo + // Metadata is the metadata specified in ServiceDesc when registering service. + Metadata interface{} +} + +// GetServiceInfo returns a map from service names to ServiceInfo. +// Service names include the package names, in the form of .. +func (s *Server) GetServiceInfo() map[string]ServiceInfo { + ret := make(map[string]ServiceInfo) + for n, srv := range s.m { + methods := make([]MethodInfo, 0, len(srv.md)+len(srv.sd)) + for m := range srv.md { + methods = append(methods, MethodInfo{ + Name: m, + IsClientStream: false, + IsServerStream: false, + }) + } + for m, d := range srv.sd { + methods = append(methods, MethodInfo{ + Name: m, + IsClientStream: d.ClientStreams, + IsServerStream: d.ServerStreams, + }) + } + + ret[n] = ServiceInfo{ + Methods: methods, + Metadata: srv.mdata, + } + } + return ret +} + +// ErrServerStopped indicates that the operation is now illegal because of +// the server being stopped. +var ErrServerStopped = errors.New("grpc: the server has been stopped") + +func (s *Server) useTransportAuthenticator(rawConn net.Conn) (net.Conn, credentials.AuthInfo, error) { + if s.opts.creds == nil { + return rawConn, nil, nil + } + return s.opts.creds.ServerHandshake(rawConn) +} + +// Serve accepts incoming connections on the listener lis, creating a new +// ServerTransport and service goroutine for each. The service goroutines +// read gRPC requests and then call the registered handlers to reply to them. +// Serve returns when lis.Accept fails with fatal errors. lis will be closed when +// this method returns. +// Serve will return a non-nil error unless Stop or GracefulStop is called. +func (s *Server) Serve(lis net.Listener) error { + s.mu.Lock() + s.printf("serving") + s.serve = true + if s.lis == nil { + // Serve called after Stop or GracefulStop. + s.mu.Unlock() + lis.Close() + return ErrServerStopped + } + + s.serveWG.Add(1) + defer func() { + s.serveWG.Done() + select { + // Stop or GracefulStop called; block until done and return nil. + case <-s.quit: + <-s.done + default: + } + }() + + s.lis[lis] = true + s.mu.Unlock() + defer func() { + s.mu.Lock() + if s.lis != nil && s.lis[lis] { + lis.Close() + delete(s.lis, lis) + } + s.mu.Unlock() + }() + + var tempDelay time.Duration // how long to sleep on accept failure + + for { + rawConn, err := lis.Accept() + if err != nil { + if ne, ok := err.(interface { + Temporary() bool + }); ok && ne.Temporary() { + if tempDelay == 0 { + tempDelay = 5 * time.Millisecond + } else { + tempDelay *= 2 + } + if max := 1 * time.Second; tempDelay > max { + tempDelay = max + } + s.mu.Lock() + s.printf("Accept error: %v; retrying in %v", err, tempDelay) + s.mu.Unlock() + timer := time.NewTimer(tempDelay) + select { + case <-timer.C: + case <-s.quit: + timer.Stop() + return nil + } + continue + } + s.mu.Lock() + s.printf("done serving; Accept = %v", err) + s.mu.Unlock() + + select { + case <-s.quit: + return nil + default: + } + return err + } + tempDelay = 0 + // Start a new goroutine to deal with rawConn so we don't stall this Accept + // loop goroutine. + // + // Make sure we account for the goroutine so GracefulStop doesn't nil out + // s.conns before this conn can be added. + s.serveWG.Add(1) + go func() { + s.handleRawConn(rawConn) + s.serveWG.Done() + }() + } +} + +// handleRawConn forks a goroutine to handle a just-accepted connection that +// has not had any I/O performed on it yet. +func (s *Server) handleRawConn(rawConn net.Conn) { + rawConn.SetDeadline(time.Now().Add(s.opts.connectionTimeout)) + conn, authInfo, err := s.useTransportAuthenticator(rawConn) + if err != nil { + s.mu.Lock() + s.errorf("ServerHandshake(%q) failed: %v", rawConn.RemoteAddr(), err) + s.mu.Unlock() + grpclog.Warningf("grpc: Server.Serve failed to complete security handshake from %q: %v", rawConn.RemoteAddr(), err) + // If serverHandshake returns ErrConnDispatched, keep rawConn open. + if err != credentials.ErrConnDispatched { + rawConn.Close() + } + rawConn.SetDeadline(time.Time{}) + return + } + + s.mu.Lock() + if s.conns == nil { + s.mu.Unlock() + conn.Close() + return + } + s.mu.Unlock() + + var serve func() + c := conn.(io.Closer) + if s.opts.useHandlerImpl { + serve = func() { s.serveUsingHandler(conn) } + } else { + // Finish handshaking (HTTP2) + st := s.newHTTP2Transport(conn, authInfo) + if st == nil { + return + } + c = st + serve = func() { s.serveStreams(st) } + } + + rawConn.SetDeadline(time.Time{}) + if !s.addConn(c) { + return + } + go func() { + serve() + s.removeConn(c) + }() +} + +// newHTTP2Transport sets up a http/2 transport (using the +// gRPC http2 server transport in transport/http2_server.go). +func (s *Server) newHTTP2Transport(c net.Conn, authInfo credentials.AuthInfo) transport.ServerTransport { + config := &transport.ServerConfig{ + MaxStreams: s.opts.maxConcurrentStreams, + AuthInfo: authInfo, + InTapHandle: s.opts.inTapHandle, + StatsHandler: s.opts.statsHandler, + KeepaliveParams: s.opts.keepaliveParams, + KeepalivePolicy: s.opts.keepalivePolicy, + InitialWindowSize: s.opts.initialWindowSize, + InitialConnWindowSize: s.opts.initialConnWindowSize, + WriteBufferSize: s.opts.writeBufferSize, + ReadBufferSize: s.opts.readBufferSize, + } + st, err := transport.NewServerTransport("http2", c, config) + if err != nil { + s.mu.Lock() + s.errorf("NewServerTransport(%q) failed: %v", c.RemoteAddr(), err) + s.mu.Unlock() + c.Close() + grpclog.Warningln("grpc: Server.Serve failed to create ServerTransport: ", err) + return nil + } + return st +} + +func (s *Server) serveStreams(st transport.ServerTransport) { + defer st.Close() + var wg sync.WaitGroup + st.HandleStreams(func(stream *transport.Stream) { + wg.Add(1) + go func() { + defer wg.Done() + s.handleStream(st, stream, s.traceInfo(st, stream)) + }() + }, func(ctx context.Context, method string) context.Context { + if !EnableTracing { + return ctx + } + tr := trace.New("grpc.Recv."+methodFamily(method), method) + return trace.NewContext(ctx, tr) + }) + wg.Wait() +} + +var _ http.Handler = (*Server)(nil) + +// serveUsingHandler is called from handleRawConn when s is configured +// to handle requests via the http.Handler interface. It sets up a +// net/http.Server to handle the just-accepted conn. The http.Server +// is configured to route all incoming requests (all HTTP/2 streams) +// to ServeHTTP, which creates a new ServerTransport for each stream. +// serveUsingHandler blocks until conn closes. +// +// This codepath is only used when Server.TestingUseHandlerImpl has +// been configured. This lets the end2end tests exercise the ServeHTTP +// method as one of the environment types. +// +// conn is the *tls.Conn that's already been authenticated. +func (s *Server) serveUsingHandler(conn net.Conn) { + h2s := &http2.Server{ + MaxConcurrentStreams: s.opts.maxConcurrentStreams, + } + h2s.ServeConn(conn, &http2.ServeConnOpts{ + Handler: s, + }) +} + +// ServeHTTP implements the Go standard library's http.Handler +// interface by responding to the gRPC request r, by looking up +// the requested gRPC method in the gRPC server s. +// +// The provided HTTP request must have arrived on an HTTP/2 +// connection. When using the Go standard library's server, +// practically this means that the Request must also have arrived +// over TLS. +// +// To share one port (such as 443 for https) between gRPC and an +// existing http.Handler, use a root http.Handler such as: +// +// if r.ProtoMajor == 2 && strings.HasPrefix( +// r.Header.Get("Content-Type"), "application/grpc") { +// grpcServer.ServeHTTP(w, r) +// } else { +// yourMux.ServeHTTP(w, r) +// } +// +// Note that ServeHTTP uses Go's HTTP/2 server implementation which is totally +// separate from grpc-go's HTTP/2 server. Performance and features may vary +// between the two paths. ServeHTTP does not support some gRPC features +// available through grpc-go's HTTP/2 server, and it is currently EXPERIMENTAL +// and subject to change. +func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { + st, err := transport.NewServerHandlerTransport(w, r, s.opts.statsHandler) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + if !s.addConn(st) { + return + } + defer s.removeConn(st) + s.serveStreams(st) +} + +// traceInfo returns a traceInfo and associates it with stream, if tracing is enabled. +// If tracing is not enabled, it returns nil. +func (s *Server) traceInfo(st transport.ServerTransport, stream *transport.Stream) (trInfo *traceInfo) { + tr, ok := trace.FromContext(stream.Context()) + if !ok { + return nil + } + + trInfo = &traceInfo{ + tr: tr, + } + trInfo.firstLine.client = false + trInfo.firstLine.remoteAddr = st.RemoteAddr() + + if dl, ok := stream.Context().Deadline(); ok { + trInfo.firstLine.deadline = dl.Sub(time.Now()) + } + return trInfo +} + +func (s *Server) addConn(c io.Closer) bool { + s.mu.Lock() + defer s.mu.Unlock() + if s.conns == nil { + c.Close() + return false + } + if s.drain { + // Transport added after we drained our existing conns: drain it + // immediately. + c.(transport.ServerTransport).Drain() + } + s.conns[c] = true + return true +} + +func (s *Server) removeConn(c io.Closer) { + s.mu.Lock() + defer s.mu.Unlock() + if s.conns != nil { + delete(s.conns, c) + s.cv.Broadcast() + } +} + +func (s *Server) sendResponse(t transport.ServerTransport, stream *transport.Stream, msg interface{}, cp Compressor, opts *transport.Options, comp encoding.Compressor) error { + var ( + outPayload *stats.OutPayload + ) + if s.opts.statsHandler != nil { + outPayload = &stats.OutPayload{} + } + hdr, data, err := encode(s.getCodec(stream.ContentSubtype()), msg, cp, outPayload, comp) + if err != nil { + grpclog.Errorln("grpc: server failed to encode response: ", err) + return err + } + if len(data) > s.opts.maxSendMessageSize { + return status.Errorf(codes.ResourceExhausted, "grpc: trying to send message larger than max (%d vs. %d)", len(data), s.opts.maxSendMessageSize) + } + err = t.Write(stream, hdr, data, opts) + if err == nil && outPayload != nil { + outPayload.SentTime = time.Now() + s.opts.statsHandler.HandleRPC(stream.Context(), outPayload) + } + return err +} + +func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport.Stream, srv *service, md *MethodDesc, trInfo *traceInfo) (err error) { + sh := s.opts.statsHandler + if sh != nil { + beginTime := time.Now() + begin := &stats.Begin{ + BeginTime: beginTime, + } + sh.HandleRPC(stream.Context(), begin) + defer func() { + end := &stats.End{ + BeginTime: beginTime, + EndTime: time.Now(), + } + if err != nil && err != io.EOF { + end.Error = toRPCErr(err) + } + sh.HandleRPC(stream.Context(), end) + }() + } + if trInfo != nil { + defer trInfo.tr.Finish() + trInfo.firstLine.client = false + trInfo.tr.LazyLog(&trInfo.firstLine, false) + defer func() { + if err != nil && err != io.EOF { + trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + trInfo.tr.SetError() + } + }() + } + + // comp and cp are used for compression. decomp and dc are used for + // decompression. If comp and decomp are both set, they are the same; + // however they are kept separate to ensure that at most one of the + // compressor/decompressor variable pairs are set for use later. + var comp, decomp encoding.Compressor + var cp Compressor + var dc Decompressor + + // If dc is set and matches the stream's compression, use it. Otherwise, try + // to find a matching registered compressor for decomp. + if rc := stream.RecvCompress(); s.opts.dc != nil && s.opts.dc.Type() == rc { + dc = s.opts.dc + } else if rc != "" && rc != encoding.Identity { + decomp = encoding.GetCompressor(rc) + if decomp == nil { + st := status.Newf(codes.Unimplemented, "grpc: Decompressor is not installed for grpc-encoding %q", rc) + t.WriteStatus(stream, st) + return st.Err() + } + } + + // If cp is set, use it. Otherwise, attempt to compress the response using + // the incoming message compression method. + // + // NOTE: this needs to be ahead of all handling, https://github.com/grpc/grpc-go/issues/686. + if s.opts.cp != nil { + cp = s.opts.cp + stream.SetSendCompress(cp.Type()) + } else if rc := stream.RecvCompress(); rc != "" && rc != encoding.Identity { + // Legacy compressor not specified; attempt to respond with same encoding. + comp = encoding.GetCompressor(rc) + if comp != nil { + stream.SetSendCompress(rc) + } + } + + p := &parser{r: stream} + pf, req, err := p.recvMsg(s.opts.maxReceiveMessageSize) + if err == io.EOF { + // The entire stream is done (for unary RPC only). + return err + } + if err == io.ErrUnexpectedEOF { + err = status.Errorf(codes.Internal, io.ErrUnexpectedEOF.Error()) + } + if err != nil { + if st, ok := status.FromError(err); ok { + if e := t.WriteStatus(stream, st); e != nil { + grpclog.Warningf("grpc: Server.processUnaryRPC failed to write status %v", e) + } + } else { + switch st := err.(type) { + case transport.ConnectionError: + // Nothing to do here. + case transport.StreamError: + if e := t.WriteStatus(stream, status.New(st.Code, st.Desc)); e != nil { + grpclog.Warningf("grpc: Server.processUnaryRPC failed to write status %v", e) + } + default: + panic(fmt.Sprintf("grpc: Unexpected error (%T) from recvMsg: %v", st, st)) + } + } + return err + } + if st := checkRecvPayload(pf, stream.RecvCompress(), dc != nil || decomp != nil); st != nil { + if e := t.WriteStatus(stream, st); e != nil { + grpclog.Warningf("grpc: Server.processUnaryRPC failed to write status %v", e) + } + return st.Err() + } + var inPayload *stats.InPayload + if sh != nil { + inPayload = &stats.InPayload{ + RecvTime: time.Now(), + } + } + df := func(v interface{}) error { + if inPayload != nil { + inPayload.WireLength = len(req) + } + if pf == compressionMade { + var err error + if dc != nil { + req, err = dc.Do(bytes.NewReader(req)) + if err != nil { + return status.Errorf(codes.Internal, err.Error()) + } + } else { + tmp, _ := decomp.Decompress(bytes.NewReader(req)) + req, err = ioutil.ReadAll(tmp) + if err != nil { + return status.Errorf(codes.Internal, "grpc: failed to decompress the received message %v", err) + } + } + } + if len(req) > s.opts.maxReceiveMessageSize { + // TODO: Revisit the error code. Currently keep it consistent with + // java implementation. + return status.Errorf(codes.ResourceExhausted, "grpc: received message larger than max (%d vs. %d)", len(req), s.opts.maxReceiveMessageSize) + } + if err := s.getCodec(stream.ContentSubtype()).Unmarshal(req, v); err != nil { + return status.Errorf(codes.Internal, "grpc: error unmarshalling request: %v", err) + } + if inPayload != nil { + inPayload.Payload = v + inPayload.Data = req + inPayload.Length = len(req) + sh.HandleRPC(stream.Context(), inPayload) + } + if trInfo != nil { + trInfo.tr.LazyLog(&payload{sent: false, msg: v}, true) + } + return nil + } + ctx := NewContextWithServerTransportStream(stream.Context(), stream) + reply, appErr := md.Handler(srv.server, ctx, df, s.opts.unaryInt) + if appErr != nil { + appStatus, ok := status.FromError(appErr) + if !ok { + // Convert appErr if it is not a grpc status error. + appErr = status.Error(codes.Unknown, appErr.Error()) + appStatus, _ = status.FromError(appErr) + } + if trInfo != nil { + trInfo.tr.LazyLog(stringer(appStatus.Message()), true) + trInfo.tr.SetError() + } + if e := t.WriteStatus(stream, appStatus); e != nil { + grpclog.Warningf("grpc: Server.processUnaryRPC failed to write status: %v", e) + } + return appErr + } + if trInfo != nil { + trInfo.tr.LazyLog(stringer("OK"), false) + } + opts := &transport.Options{ + Last: true, + Delay: false, + } + + if err := s.sendResponse(t, stream, reply, cp, opts, comp); err != nil { + if err == io.EOF { + // The entire stream is done (for unary RPC only). + return err + } + if s, ok := status.FromError(err); ok { + if e := t.WriteStatus(stream, s); e != nil { + grpclog.Warningf("grpc: Server.processUnaryRPC failed to write status: %v", e) + } + } else { + switch st := err.(type) { + case transport.ConnectionError: + // Nothing to do here. + case transport.StreamError: + if e := t.WriteStatus(stream, status.New(st.Code, st.Desc)); e != nil { + grpclog.Warningf("grpc: Server.processUnaryRPC failed to write status %v", e) + } + default: + panic(fmt.Sprintf("grpc: Unexpected error (%T) from sendResponse: %v", st, st)) + } + } + return err + } + if trInfo != nil { + trInfo.tr.LazyLog(&payload{sent: true, msg: reply}, true) + } + // TODO: Should we be logging if writing status failed here, like above? + // Should the logging be in WriteStatus? Should we ignore the WriteStatus + // error or allow the stats handler to see it? + return t.WriteStatus(stream, status.New(codes.OK, "")) +} + +func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transport.Stream, srv *service, sd *StreamDesc, trInfo *traceInfo) (err error) { + sh := s.opts.statsHandler + if sh != nil { + beginTime := time.Now() + begin := &stats.Begin{ + BeginTime: beginTime, + } + sh.HandleRPC(stream.Context(), begin) + defer func() { + end := &stats.End{ + BeginTime: beginTime, + EndTime: time.Now(), + } + if err != nil && err != io.EOF { + end.Error = toRPCErr(err) + } + sh.HandleRPC(stream.Context(), end) + }() + } + ctx := NewContextWithServerTransportStream(stream.Context(), stream) + ss := &serverStream{ + ctx: ctx, + t: t, + s: stream, + p: &parser{r: stream}, + codec: s.getCodec(stream.ContentSubtype()), + maxReceiveMessageSize: s.opts.maxReceiveMessageSize, + maxSendMessageSize: s.opts.maxSendMessageSize, + trInfo: trInfo, + statsHandler: sh, + } + + // If dc is set and matches the stream's compression, use it. Otherwise, try + // to find a matching registered compressor for decomp. + if rc := stream.RecvCompress(); s.opts.dc != nil && s.opts.dc.Type() == rc { + ss.dc = s.opts.dc + } else if rc != "" && rc != encoding.Identity { + ss.decomp = encoding.GetCompressor(rc) + if ss.decomp == nil { + st := status.Newf(codes.Unimplemented, "grpc: Decompressor is not installed for grpc-encoding %q", rc) + t.WriteStatus(ss.s, st) + return st.Err() + } + } + + // If cp is set, use it. Otherwise, attempt to compress the response using + // the incoming message compression method. + // + // NOTE: this needs to be ahead of all handling, https://github.com/grpc/grpc-go/issues/686. + if s.opts.cp != nil { + ss.cp = s.opts.cp + stream.SetSendCompress(s.opts.cp.Type()) + } else if rc := stream.RecvCompress(); rc != "" && rc != encoding.Identity { + // Legacy compressor not specified; attempt to respond with same encoding. + ss.comp = encoding.GetCompressor(rc) + if ss.comp != nil { + stream.SetSendCompress(rc) + } + } + + if trInfo != nil { + trInfo.tr.LazyLog(&trInfo.firstLine, false) + defer func() { + ss.mu.Lock() + if err != nil && err != io.EOF { + ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + ss.trInfo.tr.SetError() + } + ss.trInfo.tr.Finish() + ss.trInfo.tr = nil + ss.mu.Unlock() + }() + } + var appErr error + var server interface{} + if srv != nil { + server = srv.server + } + if s.opts.streamInt == nil { + appErr = sd.Handler(server, ss) + } else { + info := &StreamServerInfo{ + FullMethod: stream.Method(), + IsClientStream: sd.ClientStreams, + IsServerStream: sd.ServerStreams, + } + appErr = s.opts.streamInt(server, ss, info, sd.Handler) + } + if appErr != nil { + appStatus, ok := status.FromError(appErr) + if !ok { + switch err := appErr.(type) { + case transport.StreamError: + appStatus = status.New(err.Code, err.Desc) + default: + appStatus = status.New(codes.Unknown, appErr.Error()) + } + appErr = appStatus.Err() + } + if trInfo != nil { + ss.mu.Lock() + ss.trInfo.tr.LazyLog(stringer(appStatus.Message()), true) + ss.trInfo.tr.SetError() + ss.mu.Unlock() + } + t.WriteStatus(ss.s, appStatus) + // TODO: Should we log an error from WriteStatus here and below? + return appErr + } + if trInfo != nil { + ss.mu.Lock() + ss.trInfo.tr.LazyLog(stringer("OK"), false) + ss.mu.Unlock() + } + return t.WriteStatus(ss.s, status.New(codes.OK, "")) +} + +func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Stream, trInfo *traceInfo) { + sm := stream.Method() + if sm != "" && sm[0] == '/' { + sm = sm[1:] + } + pos := strings.LastIndex(sm, "/") + if pos == -1 { + if trInfo != nil { + trInfo.tr.LazyLog(&fmtStringer{"Malformed method name %q", []interface{}{sm}}, true) + trInfo.tr.SetError() + } + errDesc := fmt.Sprintf("malformed method name: %q", stream.Method()) + if err := t.WriteStatus(stream, status.New(codes.ResourceExhausted, errDesc)); err != nil { + if trInfo != nil { + trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + trInfo.tr.SetError() + } + grpclog.Warningf("grpc: Server.handleStream failed to write status: %v", err) + } + if trInfo != nil { + trInfo.tr.Finish() + } + return + } + service := sm[:pos] + method := sm[pos+1:] + srv, ok := s.m[service] + if !ok { + if unknownDesc := s.opts.unknownStreamDesc; unknownDesc != nil { + s.processStreamingRPC(t, stream, nil, unknownDesc, trInfo) + return + } + if trInfo != nil { + trInfo.tr.LazyLog(&fmtStringer{"Unknown service %v", []interface{}{service}}, true) + trInfo.tr.SetError() + } + errDesc := fmt.Sprintf("unknown service %v", service) + if err := t.WriteStatus(stream, status.New(codes.Unimplemented, errDesc)); err != nil { + if trInfo != nil { + trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + trInfo.tr.SetError() + } + grpclog.Warningf("grpc: Server.handleStream failed to write status: %v", err) + } + if trInfo != nil { + trInfo.tr.Finish() + } + return + } + // Unary RPC or Streaming RPC? + if md, ok := srv.md[method]; ok { + s.processUnaryRPC(t, stream, srv, md, trInfo) + return + } + if sd, ok := srv.sd[method]; ok { + s.processStreamingRPC(t, stream, srv, sd, trInfo) + return + } + if trInfo != nil { + trInfo.tr.LazyLog(&fmtStringer{"Unknown method %v", []interface{}{method}}, true) + trInfo.tr.SetError() + } + if unknownDesc := s.opts.unknownStreamDesc; unknownDesc != nil { + s.processStreamingRPC(t, stream, nil, unknownDesc, trInfo) + return + } + errDesc := fmt.Sprintf("unknown method %v", method) + if err := t.WriteStatus(stream, status.New(codes.Unimplemented, errDesc)); err != nil { + if trInfo != nil { + trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + trInfo.tr.SetError() + } + grpclog.Warningf("grpc: Server.handleStream failed to write status: %v", err) + } + if trInfo != nil { + trInfo.tr.Finish() + } +} + +// The key to save ServerTransportStream in the context. +type streamKey struct{} + +// NewContextWithServerTransportStream creates a new context from ctx and +// attaches stream to it. +// +// This API is EXPERIMENTAL. +func NewContextWithServerTransportStream(ctx context.Context, stream ServerTransportStream) context.Context { + return context.WithValue(ctx, streamKey{}, stream) +} + +// ServerTransportStream is a minimal interface that a transport stream must +// implement. This can be used to mock an actual transport stream for tests of +// handler code that use, for example, grpc.SetHeader (which requires some +// stream to be in context). +// +// See also NewContextWithServerTransportStream. +// +// This API is EXPERIMENTAL. +type ServerTransportStream interface { + Method() string + SetHeader(md metadata.MD) error + SendHeader(md metadata.MD) error + SetTrailer(md metadata.MD) error +} + +// serverStreamFromContext returns the server stream saved in ctx. Returns +// nil if the given context has no stream associated with it (which implies +// it is not an RPC invocation context). +func serverTransportStreamFromContext(ctx context.Context) ServerTransportStream { + s, _ := ctx.Value(streamKey{}).(ServerTransportStream) + return s +} + +// Stop stops the gRPC server. It immediately closes all open +// connections and listeners. +// It cancels all active RPCs on the server side and the corresponding +// pending RPCs on the client side will get notified by connection +// errors. +func (s *Server) Stop() { + s.quitOnce.Do(func() { + close(s.quit) + }) + + defer func() { + s.serveWG.Wait() + s.doneOnce.Do(func() { + close(s.done) + }) + }() + + s.mu.Lock() + listeners := s.lis + s.lis = nil + st := s.conns + s.conns = nil + // interrupt GracefulStop if Stop and GracefulStop are called concurrently. + s.cv.Broadcast() + s.mu.Unlock() + + for lis := range listeners { + lis.Close() + } + for c := range st { + c.Close() + } + + s.mu.Lock() + if s.events != nil { + s.events.Finish() + s.events = nil + } + s.mu.Unlock() +} + +// GracefulStop stops the gRPC server gracefully. It stops the server from +// accepting new connections and RPCs and blocks until all the pending RPCs are +// finished. +func (s *Server) GracefulStop() { + s.quitOnce.Do(func() { + close(s.quit) + }) + + defer func() { + s.doneOnce.Do(func() { + close(s.done) + }) + }() + + s.mu.Lock() + if s.conns == nil { + s.mu.Unlock() + return + } + for lis := range s.lis { + lis.Close() + } + s.lis = nil + if !s.drain { + for c := range s.conns { + c.(transport.ServerTransport).Drain() + } + s.drain = true + } + + // Wait for serving threads to be ready to exit. Only then can we be sure no + // new conns will be created. + s.mu.Unlock() + s.serveWG.Wait() + s.mu.Lock() + + for len(s.conns) != 0 { + s.cv.Wait() + } + s.conns = nil + if s.events != nil { + s.events.Finish() + s.events = nil + } + s.mu.Unlock() +} + +func init() { + internal.TestingUseHandlerImpl = func(arg interface{}) { + arg.(*Server).opts.useHandlerImpl = true + } +} + +// contentSubtype must be lowercase +// cannot return nil +func (s *Server) getCodec(contentSubtype string) baseCodec { + if s.opts.codec != nil { + return s.opts.codec + } + if contentSubtype == "" { + return encoding.GetCodec(proto.Name) + } + codec := encoding.GetCodec(contentSubtype) + if codec == nil { + return encoding.GetCodec(proto.Name) + } + return codec +} + +// SetHeader sets the header metadata. +// When called multiple times, all the provided metadata will be merged. +// All the metadata will be sent out when one of the following happens: +// - grpc.SendHeader() is called; +// - The first response is sent out; +// - An RPC status is sent out (error or success). +func SetHeader(ctx context.Context, md metadata.MD) error { + if md.Len() == 0 { + return nil + } + stream := serverTransportStreamFromContext(ctx) + if stream == nil { + return status.Errorf(codes.Internal, "grpc: failed to fetch the stream from the context %v", ctx) + } + return stream.SetHeader(md) +} + +// SendHeader sends header metadata. It may be called at most once. +// The provided md and headers set by SetHeader() will be sent. +func SendHeader(ctx context.Context, md metadata.MD) error { + stream := serverTransportStreamFromContext(ctx) + if stream == nil { + return status.Errorf(codes.Internal, "grpc: failed to fetch the stream from the context %v", ctx) + } + if err := stream.SendHeader(md); err != nil { + return toRPCErr(err) + } + return nil +} + +// SetTrailer sets the trailer metadata that will be sent when an RPC returns. +// When called more than once, all the provided metadata will be merged. +func SetTrailer(ctx context.Context, md metadata.MD) error { + if md.Len() == 0 { + return nil + } + stream := serverTransportStreamFromContext(ctx) + if stream == nil { + return status.Errorf(codes.Internal, "grpc: failed to fetch the stream from the context %v", ctx) + } + return stream.SetTrailer(md) +} + +// Method returns the method string for the server context. The returned +// string is in the format of "/service/method". +func Method(ctx context.Context) (string, bool) { + s := serverTransportStreamFromContext(ctx) + if s == nil { + return "", false + } + return s.Method(), true +} diff --git a/vendor/google.golang.org/grpc/service_config.go b/vendor/google.golang.org/grpc/service_config.go new file mode 100644 index 0000000..53fa88f --- /dev/null +++ b/vendor/google.golang.org/grpc/service_config.go @@ -0,0 +1,226 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "encoding/json" + "fmt" + "strconv" + "strings" + "time" + + "google.golang.org/grpc/grpclog" +) + +const maxInt = int(^uint(0) >> 1) + +// MethodConfig defines the configuration recommended by the service providers for a +// particular method. +// DEPRECATED: Users should not use this struct. Service config should be received +// through name resolver, as specified here +// https://github.com/grpc/grpc/blob/master/doc/service_config.md +type MethodConfig struct { + // WaitForReady indicates whether RPCs sent to this method should wait until + // the connection is ready by default (!failfast). The value specified via the + // gRPC client API will override the value set here. + WaitForReady *bool + // Timeout is the default timeout for RPCs sent to this method. The actual + // deadline used will be the minimum of the value specified here and the value + // set by the application via the gRPC client API. If either one is not set, + // then the other will be used. If neither is set, then the RPC has no deadline. + Timeout *time.Duration + // MaxReqSize is the maximum allowed payload size for an individual request in a + // stream (client->server) in bytes. The size which is measured is the serialized + // payload after per-message compression (but before stream compression) in bytes. + // The actual value used is the minimum of the value specified here and the value set + // by the application via the gRPC client API. If either one is not set, then the other + // will be used. If neither is set, then the built-in default is used. + MaxReqSize *int + // MaxRespSize is the maximum allowed payload size for an individual response in a + // stream (server->client) in bytes. + MaxRespSize *int +} + +// ServiceConfig is provided by the service provider and contains parameters for how +// clients that connect to the service should behave. +// DEPRECATED: Users should not use this struct. Service config should be received +// through name resolver, as specified here +// https://github.com/grpc/grpc/blob/master/doc/service_config.md +type ServiceConfig struct { + // LB is the load balancer the service providers recommends. The balancer specified + // via grpc.WithBalancer will override this. + LB *string + // Methods contains a map for the methods in this service. + // If there is an exact match for a method (i.e. /service/method) in the map, use the corresponding MethodConfig. + // If there's no exact match, look for the default config for the service (/service/) and use the corresponding MethodConfig if it exists. + // Otherwise, the method has no MethodConfig to use. + Methods map[string]MethodConfig +} + +func parseDuration(s *string) (*time.Duration, error) { + if s == nil { + return nil, nil + } + if !strings.HasSuffix(*s, "s") { + return nil, fmt.Errorf("malformed duration %q", *s) + } + ss := strings.SplitN((*s)[:len(*s)-1], ".", 3) + if len(ss) > 2 { + return nil, fmt.Errorf("malformed duration %q", *s) + } + // hasDigits is set if either the whole or fractional part of the number is + // present, since both are optional but one is required. + hasDigits := false + var d time.Duration + if len(ss[0]) > 0 { + i, err := strconv.ParseInt(ss[0], 10, 32) + if err != nil { + return nil, fmt.Errorf("malformed duration %q: %v", *s, err) + } + d = time.Duration(i) * time.Second + hasDigits = true + } + if len(ss) == 2 && len(ss[1]) > 0 { + if len(ss[1]) > 9 { + return nil, fmt.Errorf("malformed duration %q", *s) + } + f, err := strconv.ParseInt(ss[1], 10, 64) + if err != nil { + return nil, fmt.Errorf("malformed duration %q: %v", *s, err) + } + for i := 9; i > len(ss[1]); i-- { + f *= 10 + } + d += time.Duration(f) + hasDigits = true + } + if !hasDigits { + return nil, fmt.Errorf("malformed duration %q", *s) + } + + return &d, nil +} + +type jsonName struct { + Service *string + Method *string +} + +func (j jsonName) generatePath() (string, bool) { + if j.Service == nil { + return "", false + } + res := "/" + *j.Service + "/" + if j.Method != nil { + res += *j.Method + } + return res, true +} + +// TODO(lyuxuan): delete this struct after cleaning up old service config implementation. +type jsonMC struct { + Name *[]jsonName + WaitForReady *bool + Timeout *string + MaxRequestMessageBytes *int64 + MaxResponseMessageBytes *int64 +} + +// TODO(lyuxuan): delete this struct after cleaning up old service config implementation. +type jsonSC struct { + LoadBalancingPolicy *string + MethodConfig *[]jsonMC +} + +func parseServiceConfig(js string) (ServiceConfig, error) { + var rsc jsonSC + err := json.Unmarshal([]byte(js), &rsc) + if err != nil { + grpclog.Warningf("grpc: parseServiceConfig error unmarshaling %s due to %v", js, err) + return ServiceConfig{}, err + } + sc := ServiceConfig{ + LB: rsc.LoadBalancingPolicy, + Methods: make(map[string]MethodConfig), + } + if rsc.MethodConfig == nil { + return sc, nil + } + + for _, m := range *rsc.MethodConfig { + if m.Name == nil { + continue + } + d, err := parseDuration(m.Timeout) + if err != nil { + grpclog.Warningf("grpc: parseServiceConfig error unmarshaling %s due to %v", js, err) + return ServiceConfig{}, err + } + + mc := MethodConfig{ + WaitForReady: m.WaitForReady, + Timeout: d, + } + if m.MaxRequestMessageBytes != nil { + if *m.MaxRequestMessageBytes > int64(maxInt) { + mc.MaxReqSize = newInt(maxInt) + } else { + mc.MaxReqSize = newInt(int(*m.MaxRequestMessageBytes)) + } + } + if m.MaxResponseMessageBytes != nil { + if *m.MaxResponseMessageBytes > int64(maxInt) { + mc.MaxRespSize = newInt(maxInt) + } else { + mc.MaxRespSize = newInt(int(*m.MaxResponseMessageBytes)) + } + } + for _, n := range *m.Name { + if path, valid := n.generatePath(); valid { + sc.Methods[path] = mc + } + } + } + + return sc, nil +} + +func min(a, b *int) *int { + if *a < *b { + return a + } + return b +} + +func getMaxSize(mcMax, doptMax *int, defaultVal int) *int { + if mcMax == nil && doptMax == nil { + return &defaultVal + } + if mcMax != nil && doptMax != nil { + return min(mcMax, doptMax) + } + if mcMax != nil { + return mcMax + } + return doptMax +} + +func newInt(b int) *int { + return &b +} diff --git a/vendor/google.golang.org/grpc/stats/handlers.go b/vendor/google.golang.org/grpc/stats/handlers.go new file mode 100644 index 0000000..05b384c --- /dev/null +++ b/vendor/google.golang.org/grpc/stats/handlers.go @@ -0,0 +1,64 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package stats + +import ( + "net" + + "golang.org/x/net/context" +) + +// ConnTagInfo defines the relevant information needed by connection context tagger. +type ConnTagInfo struct { + // RemoteAddr is the remote address of the corresponding connection. + RemoteAddr net.Addr + // LocalAddr is the local address of the corresponding connection. + LocalAddr net.Addr +} + +// RPCTagInfo defines the relevant information needed by RPC context tagger. +type RPCTagInfo struct { + // FullMethodName is the RPC method in the format of /package.service/method. + FullMethodName string + // FailFast indicates if this RPC is failfast. + // This field is only valid on client side, it's always false on server side. + FailFast bool +} + +// Handler defines the interface for the related stats handling (e.g., RPCs, connections). +type Handler interface { + // TagRPC can attach some information to the given context. + // The context used for the rest lifetime of the RPC will be derived from + // the returned context. + TagRPC(context.Context, *RPCTagInfo) context.Context + // HandleRPC processes the RPC stats. + HandleRPC(context.Context, RPCStats) + + // TagConn can attach some information to the given context. + // The returned context will be used for stats handling. + // For conn stats handling, the context used in HandleConn for this + // connection will be derived from the context returned. + // For RPC stats handling, + // - On server side, the context used in HandleRPC for all RPCs on this + // connection will be derived from the context returned. + // - On client side, the context is not derived from the context returned. + TagConn(context.Context, *ConnTagInfo) context.Context + // HandleConn processes the Conn stats. + HandleConn(context.Context, ConnStats) +} diff --git a/vendor/google.golang.org/grpc/stats/stats.go b/vendor/google.golang.org/grpc/stats/stats.go new file mode 100644 index 0000000..3f13190 --- /dev/null +++ b/vendor/google.golang.org/grpc/stats/stats.go @@ -0,0 +1,296 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +//go:generate protoc --go_out=plugins=grpc:. grpc_testing/test.proto + +// Package stats is for collecting and reporting various network and RPC stats. +// This package is for monitoring purpose only. All fields are read-only. +// All APIs are experimental. +package stats // import "google.golang.org/grpc/stats" + +import ( + "net" + "time" + + "golang.org/x/net/context" +) + +// RPCStats contains stats information about RPCs. +type RPCStats interface { + isRPCStats() + // IsClient returns true if this RPCStats is from client side. + IsClient() bool +} + +// Begin contains stats when an RPC begins. +// FailFast is only valid if this Begin is from client side. +type Begin struct { + // Client is true if this Begin is from client side. + Client bool + // BeginTime is the time when the RPC begins. + BeginTime time.Time + // FailFast indicates if this RPC is failfast. + FailFast bool +} + +// IsClient indicates if the stats information is from client side. +func (s *Begin) IsClient() bool { return s.Client } + +func (s *Begin) isRPCStats() {} + +// InPayload contains the information for an incoming payload. +type InPayload struct { + // Client is true if this InPayload is from client side. + Client bool + // Payload is the payload with original type. + Payload interface{} + // Data is the serialized message payload. + Data []byte + // Length is the length of uncompressed data. + Length int + // WireLength is the length of data on wire (compressed, signed, encrypted). + WireLength int + // RecvTime is the time when the payload is received. + RecvTime time.Time +} + +// IsClient indicates if the stats information is from client side. +func (s *InPayload) IsClient() bool { return s.Client } + +func (s *InPayload) isRPCStats() {} + +// InHeader contains stats when a header is received. +type InHeader struct { + // Client is true if this InHeader is from client side. + Client bool + // WireLength is the wire length of header. + WireLength int + + // The following fields are valid only if Client is false. + // FullMethod is the full RPC method string, i.e., /package.service/method. + FullMethod string + // RemoteAddr is the remote address of the corresponding connection. + RemoteAddr net.Addr + // LocalAddr is the local address of the corresponding connection. + LocalAddr net.Addr + // Compression is the compression algorithm used for the RPC. + Compression string +} + +// IsClient indicates if the stats information is from client side. +func (s *InHeader) IsClient() bool { return s.Client } + +func (s *InHeader) isRPCStats() {} + +// InTrailer contains stats when a trailer is received. +type InTrailer struct { + // Client is true if this InTrailer is from client side. + Client bool + // WireLength is the wire length of trailer. + WireLength int +} + +// IsClient indicates if the stats information is from client side. +func (s *InTrailer) IsClient() bool { return s.Client } + +func (s *InTrailer) isRPCStats() {} + +// OutPayload contains the information for an outgoing payload. +type OutPayload struct { + // Client is true if this OutPayload is from client side. + Client bool + // Payload is the payload with original type. + Payload interface{} + // Data is the serialized message payload. + Data []byte + // Length is the length of uncompressed data. + Length int + // WireLength is the length of data on wire (compressed, signed, encrypted). + WireLength int + // SentTime is the time when the payload is sent. + SentTime time.Time +} + +// IsClient indicates if this stats information is from client side. +func (s *OutPayload) IsClient() bool { return s.Client } + +func (s *OutPayload) isRPCStats() {} + +// OutHeader contains stats when a header is sent. +type OutHeader struct { + // Client is true if this OutHeader is from client side. + Client bool + + // The following fields are valid only if Client is true. + // FullMethod is the full RPC method string, i.e., /package.service/method. + FullMethod string + // RemoteAddr is the remote address of the corresponding connection. + RemoteAddr net.Addr + // LocalAddr is the local address of the corresponding connection. + LocalAddr net.Addr + // Compression is the compression algorithm used for the RPC. + Compression string +} + +// IsClient indicates if this stats information is from client side. +func (s *OutHeader) IsClient() bool { return s.Client } + +func (s *OutHeader) isRPCStats() {} + +// OutTrailer contains stats when a trailer is sent. +type OutTrailer struct { + // Client is true if this OutTrailer is from client side. + Client bool + // WireLength is the wire length of trailer. + WireLength int +} + +// IsClient indicates if this stats information is from client side. +func (s *OutTrailer) IsClient() bool { return s.Client } + +func (s *OutTrailer) isRPCStats() {} + +// End contains stats when an RPC ends. +type End struct { + // Client is true if this End is from client side. + Client bool + // BeginTime is the time when the RPC began. + BeginTime time.Time + // EndTime is the time when the RPC ends. + EndTime time.Time + // Error is the error the RPC ended with. It is an error generated from + // status.Status and can be converted back to status.Status using + // status.FromError if non-nil. + Error error +} + +// IsClient indicates if this is from client side. +func (s *End) IsClient() bool { return s.Client } + +func (s *End) isRPCStats() {} + +// ConnStats contains stats information about connections. +type ConnStats interface { + isConnStats() + // IsClient returns true if this ConnStats is from client side. + IsClient() bool +} + +// ConnBegin contains the stats of a connection when it is established. +type ConnBegin struct { + // Client is true if this ConnBegin is from client side. + Client bool +} + +// IsClient indicates if this is from client side. +func (s *ConnBegin) IsClient() bool { return s.Client } + +func (s *ConnBegin) isConnStats() {} + +// ConnEnd contains the stats of a connection when it ends. +type ConnEnd struct { + // Client is true if this ConnEnd is from client side. + Client bool +} + +// IsClient indicates if this is from client side. +func (s *ConnEnd) IsClient() bool { return s.Client } + +func (s *ConnEnd) isConnStats() {} + +type incomingTagsKey struct{} +type outgoingTagsKey struct{} + +// SetTags attaches stats tagging data to the context, which will be sent in +// the outgoing RPC with the header grpc-tags-bin. Subsequent calls to +// SetTags will overwrite the values from earlier calls. +// +// NOTE: this is provided only for backward compatibility with existing clients +// and will likely be removed in an upcoming release. New uses should transmit +// this type of data using metadata with a different, non-reserved (i.e. does +// not begin with "grpc-") header name. +func SetTags(ctx context.Context, b []byte) context.Context { + return context.WithValue(ctx, outgoingTagsKey{}, b) +} + +// Tags returns the tags from the context for the inbound RPC. +// +// NOTE: this is provided only for backward compatibility with existing clients +// and will likely be removed in an upcoming release. New uses should transmit +// this type of data using metadata with a different, non-reserved (i.e. does +// not begin with "grpc-") header name. +func Tags(ctx context.Context) []byte { + b, _ := ctx.Value(incomingTagsKey{}).([]byte) + return b +} + +// SetIncomingTags attaches stats tagging data to the context, to be read by +// the application (not sent in outgoing RPCs). +// +// This is intended for gRPC-internal use ONLY. +func SetIncomingTags(ctx context.Context, b []byte) context.Context { + return context.WithValue(ctx, incomingTagsKey{}, b) +} + +// OutgoingTags returns the tags from the context for the outbound RPC. +// +// This is intended for gRPC-internal use ONLY. +func OutgoingTags(ctx context.Context) []byte { + b, _ := ctx.Value(outgoingTagsKey{}).([]byte) + return b +} + +type incomingTraceKey struct{} +type outgoingTraceKey struct{} + +// SetTrace attaches stats tagging data to the context, which will be sent in +// the outgoing RPC with the header grpc-trace-bin. Subsequent calls to +// SetTrace will overwrite the values from earlier calls. +// +// NOTE: this is provided only for backward compatibility with existing clients +// and will likely be removed in an upcoming release. New uses should transmit +// this type of data using metadata with a different, non-reserved (i.e. does +// not begin with "grpc-") header name. +func SetTrace(ctx context.Context, b []byte) context.Context { + return context.WithValue(ctx, outgoingTraceKey{}, b) +} + +// Trace returns the trace from the context for the inbound RPC. +// +// NOTE: this is provided only for backward compatibility with existing clients +// and will likely be removed in an upcoming release. New uses should transmit +// this type of data using metadata with a different, non-reserved (i.e. does +// not begin with "grpc-") header name. +func Trace(ctx context.Context) []byte { + b, _ := ctx.Value(incomingTraceKey{}).([]byte) + return b +} + +// SetIncomingTrace attaches stats tagging data to the context, to be read by +// the application (not sent in outgoing RPCs). It is intended for +// gRPC-internal use. +func SetIncomingTrace(ctx context.Context, b []byte) context.Context { + return context.WithValue(ctx, incomingTraceKey{}, b) +} + +// OutgoingTrace returns the trace from the context for the outbound RPC. It is +// intended for gRPC-internal use. +func OutgoingTrace(ctx context.Context) []byte { + b, _ := ctx.Value(outgoingTraceKey{}).([]byte) + return b +} diff --git a/vendor/google.golang.org/grpc/status/status.go b/vendor/google.golang.org/grpc/status/status.go new file mode 100644 index 0000000..9c61b09 --- /dev/null +++ b/vendor/google.golang.org/grpc/status/status.go @@ -0,0 +1,189 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package status implements errors returned by gRPC. These errors are +// serialized and transmitted on the wire between server and client, and allow +// for additional data to be transmitted via the Details field in the status +// proto. gRPC service handlers should return an error created by this +// package, and gRPC clients should expect a corresponding error to be +// returned from the RPC call. +// +// This package upholds the invariants that a non-nil error may not +// contain an OK code, and an OK code must result in a nil error. +package status + +import ( + "errors" + "fmt" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes" + spb "google.golang.org/genproto/googleapis/rpc/status" + "google.golang.org/grpc/codes" +) + +// statusError is an alias of a status proto. It implements error and Status, +// and a nil statusError should never be returned by this package. +type statusError spb.Status + +func (se *statusError) Error() string { + p := (*spb.Status)(se) + return fmt.Sprintf("rpc error: code = %s desc = %s", codes.Code(p.GetCode()), p.GetMessage()) +} + +func (se *statusError) GRPCStatus() *Status { + return &Status{s: (*spb.Status)(se)} +} + +// Status represents an RPC status code, message, and details. It is immutable +// and should be created with New, Newf, or FromProto. +type Status struct { + s *spb.Status +} + +// Code returns the status code contained in s. +func (s *Status) Code() codes.Code { + if s == nil || s.s == nil { + return codes.OK + } + return codes.Code(s.s.Code) +} + +// Message returns the message contained in s. +func (s *Status) Message() string { + if s == nil || s.s == nil { + return "" + } + return s.s.Message +} + +// Proto returns s's status as an spb.Status proto message. +func (s *Status) Proto() *spb.Status { + if s == nil { + return nil + } + return proto.Clone(s.s).(*spb.Status) +} + +// Err returns an immutable error representing s; returns nil if s.Code() is +// OK. +func (s *Status) Err() error { + if s.Code() == codes.OK { + return nil + } + return (*statusError)(s.s) +} + +// New returns a Status representing c and msg. +func New(c codes.Code, msg string) *Status { + return &Status{s: &spb.Status{Code: int32(c), Message: msg}} +} + +// Newf returns New(c, fmt.Sprintf(format, a...)). +func Newf(c codes.Code, format string, a ...interface{}) *Status { + return New(c, fmt.Sprintf(format, a...)) +} + +// Error returns an error representing c and msg. If c is OK, returns nil. +func Error(c codes.Code, msg string) error { + return New(c, msg).Err() +} + +// Errorf returns Error(c, fmt.Sprintf(format, a...)). +func Errorf(c codes.Code, format string, a ...interface{}) error { + return Error(c, fmt.Sprintf(format, a...)) +} + +// ErrorProto returns an error representing s. If s.Code is OK, returns nil. +func ErrorProto(s *spb.Status) error { + return FromProto(s).Err() +} + +// FromProto returns a Status representing s. +func FromProto(s *spb.Status) *Status { + return &Status{s: proto.Clone(s).(*spb.Status)} +} + +// FromError returns a Status representing err if it was produced from this +// package or has a method `GRPCStatus() *Status`. Otherwise, ok is false and a +// Status is returned with codes.Unknown and the original error message. +func FromError(err error) (s *Status, ok bool) { + if err == nil { + return &Status{s: &spb.Status{Code: int32(codes.OK)}}, true + } + if se, ok := err.(interface{ GRPCStatus() *Status }); ok { + return se.GRPCStatus(), true + } + return New(codes.Unknown, err.Error()), false +} + +// Convert is a convenience function which removes the need to handle the +// boolean return value from FromError. +func Convert(err error) *Status { + s, _ := FromError(err) + return s +} + +// WithDetails returns a new status with the provided details messages appended to the status. +// If any errors are encountered, it returns nil and the first error encountered. +func (s *Status) WithDetails(details ...proto.Message) (*Status, error) { + if s.Code() == codes.OK { + return nil, errors.New("no error details for status with code OK") + } + // s.Code() != OK implies that s.Proto() != nil. + p := s.Proto() + for _, detail := range details { + any, err := ptypes.MarshalAny(detail) + if err != nil { + return nil, err + } + p.Details = append(p.Details, any) + } + return &Status{s: p}, nil +} + +// Details returns a slice of details messages attached to the status. +// If a detail cannot be decoded, the error is returned in place of the detail. +func (s *Status) Details() []interface{} { + if s == nil || s.s == nil { + return nil + } + details := make([]interface{}, 0, len(s.s.Details)) + for _, any := range s.s.Details { + detail := &ptypes.DynamicAny{} + if err := ptypes.UnmarshalAny(any, detail); err != nil { + details = append(details, err) + continue + } + details = append(details, detail.Message) + } + return details +} + +// Code returns the Code of the error if it is a Status error, codes.OK if err +// is nil, or codes.Unknown otherwise. +func Code(err error) codes.Code { + // Don't use FromError to avoid allocation of OK status. + if err == nil { + return codes.OK + } + if se, ok := err.(interface{ GRPCStatus() *Status }); ok { + return se.GRPCStatus().Code() + } + return codes.Unknown +} diff --git a/vendor/google.golang.org/grpc/stream.go b/vendor/google.golang.org/grpc/stream.go new file mode 100644 index 0000000..75a4e8d --- /dev/null +++ b/vendor/google.golang.org/grpc/stream.go @@ -0,0 +1,736 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "errors" + "io" + "sync" + "time" + + "golang.org/x/net/context" + "golang.org/x/net/trace" + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/encoding" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" + "google.golang.org/grpc/transport" +) + +// StreamHandler defines the handler called by gRPC server to complete the +// execution of a streaming RPC. If a StreamHandler returns an error, it +// should be produced by the status package, or else gRPC will use +// codes.Unknown as the status code and err.Error() as the status message +// of the RPC. +type StreamHandler func(srv interface{}, stream ServerStream) error + +// StreamDesc represents a streaming RPC service's method specification. +type StreamDesc struct { + StreamName string + Handler StreamHandler + + // At least one of these is true. + ServerStreams bool + ClientStreams bool +} + +// Stream defines the common interface a client or server stream has to satisfy. +// +// All errors returned from Stream are compatible with the status package. +type Stream interface { + // Context returns the context for this stream. + Context() context.Context + // SendMsg blocks until it sends m, the stream is done or the stream + // breaks. + // On error, it aborts the stream and returns an RPC status on client + // side. On server side, it simply returns the error to the caller. + // SendMsg is called by generated code. Also Users can call SendMsg + // directly when it is really needed in their use cases. + // It's safe to have a goroutine calling SendMsg and another goroutine calling + // recvMsg on the same stream at the same time. + // But it is not safe to call SendMsg on the same stream in different goroutines. + SendMsg(m interface{}) error + // RecvMsg blocks until it receives a message or the stream is + // done. On client side, it returns io.EOF when the stream is done. On + // any other error, it aborts the stream and returns an RPC status. On + // server side, it simply returns the error to the caller. + // It's safe to have a goroutine calling SendMsg and another goroutine calling + // recvMsg on the same stream at the same time. + // But it is not safe to call RecvMsg on the same stream in different goroutines. + RecvMsg(m interface{}) error +} + +// ClientStream defines the interface a client stream has to satisfy. +type ClientStream interface { + // Header returns the header metadata received from the server if there + // is any. It blocks if the metadata is not ready to read. + Header() (metadata.MD, error) + // Trailer returns the trailer metadata from the server, if there is any. + // It must only be called after stream.CloseAndRecv has returned, or + // stream.Recv has returned a non-nil error (including io.EOF). + Trailer() metadata.MD + // CloseSend closes the send direction of the stream. It closes the stream + // when non-nil error is met. + CloseSend() error + // Stream.SendMsg() may return a non-nil error when something wrong happens sending + // the request. The returned error indicates the status of this sending, not the final + // status of the RPC. + // + // Always call Stream.RecvMsg() to drain the stream and get the final + // status, otherwise there could be leaked resources. + Stream +} + +// NewStream creates a new Stream for the client side. This is typically +// called by generated code. +func (cc *ClientConn) NewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error) { + // allow interceptor to see all applicable call options, which means those + // configured as defaults from dial option as well as per-call options + opts = combine(cc.dopts.callOptions, opts) + + if cc.dopts.streamInt != nil { + return cc.dopts.streamInt(ctx, desc, cc, method, newClientStream, opts...) + } + return newClientStream(ctx, desc, cc, method, opts...) +} + +// NewClientStream creates a new Stream for the client side. This is typically +// called by generated code. +// +// DEPRECATED: Use ClientConn.NewStream instead. +func NewClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error) { + return cc.NewStream(ctx, desc, method, opts...) +} + +func newClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (_ ClientStream, err error) { + c := defaultCallInfo() + mc := cc.GetMethodConfig(method) + if mc.WaitForReady != nil { + c.failFast = !*mc.WaitForReady + } + + // Possible context leak: + // The cancel function for the child context we create will only be called + // when RecvMsg returns a non-nil error, if the ClientConn is closed, or if + // an error is generated by SendMsg. + // https://github.com/grpc/grpc-go/issues/1818. + var cancel context.CancelFunc + if mc.Timeout != nil && *mc.Timeout >= 0 { + ctx, cancel = context.WithTimeout(ctx, *mc.Timeout) + } else { + ctx, cancel = context.WithCancel(ctx) + } + defer func() { + if err != nil { + cancel() + } + }() + + for _, o := range opts { + if err := o.before(c); err != nil { + return nil, toRPCErr(err) + } + } + c.maxSendMessageSize = getMaxSize(mc.MaxReqSize, c.maxSendMessageSize, defaultClientMaxSendMessageSize) + c.maxReceiveMessageSize = getMaxSize(mc.MaxRespSize, c.maxReceiveMessageSize, defaultClientMaxReceiveMessageSize) + if err := setCallInfoCodec(c); err != nil { + return nil, err + } + + callHdr := &transport.CallHdr{ + Host: cc.authority, + Method: method, + // If it's not client streaming, we should already have the request to be sent, + // so we don't flush the header. + // If it's client streaming, the user may never send a request or send it any + // time soon, so we ask the transport to flush the header. + Flush: desc.ClientStreams, + ContentSubtype: c.contentSubtype, + } + + // Set our outgoing compression according to the UseCompressor CallOption, if + // set. In that case, also find the compressor from the encoding package. + // Otherwise, use the compressor configured by the WithCompressor DialOption, + // if set. + var cp Compressor + var comp encoding.Compressor + if ct := c.compressorType; ct != "" { + callHdr.SendCompress = ct + if ct != encoding.Identity { + comp = encoding.GetCompressor(ct) + if comp == nil { + return nil, status.Errorf(codes.Internal, "grpc: Compressor is not installed for requested grpc-encoding %q", ct) + } + } + } else if cc.dopts.cp != nil { + callHdr.SendCompress = cc.dopts.cp.Type() + cp = cc.dopts.cp + } + if c.creds != nil { + callHdr.Creds = c.creds + } + var trInfo traceInfo + if EnableTracing { + trInfo.tr = trace.New("grpc.Sent."+methodFamily(method), method) + trInfo.firstLine.client = true + if deadline, ok := ctx.Deadline(); ok { + trInfo.firstLine.deadline = deadline.Sub(time.Now()) + } + trInfo.tr.LazyLog(&trInfo.firstLine, false) + ctx = trace.NewContext(ctx, trInfo.tr) + defer func() { + if err != nil { + // Need to call tr.finish() if error is returned. + // Because tr will not be returned to caller. + trInfo.tr.LazyPrintf("RPC: [%v]", err) + trInfo.tr.SetError() + trInfo.tr.Finish() + } + }() + } + ctx = newContextWithRPCInfo(ctx, c.failFast) + sh := cc.dopts.copts.StatsHandler + var beginTime time.Time + if sh != nil { + ctx = sh.TagRPC(ctx, &stats.RPCTagInfo{FullMethodName: method, FailFast: c.failFast}) + beginTime = time.Now() + begin := &stats.Begin{ + Client: true, + BeginTime: beginTime, + FailFast: c.failFast, + } + sh.HandleRPC(ctx, begin) + defer func() { + if err != nil { + // Only handle end stats if err != nil. + end := &stats.End{ + Client: true, + Error: err, + BeginTime: beginTime, + EndTime: time.Now(), + } + sh.HandleRPC(ctx, end) + } + }() + } + + var ( + t transport.ClientTransport + s *transport.Stream + done func(balancer.DoneInfo) + ) + for { + // Check to make sure the context has expired. This will prevent us from + // looping forever if an error occurs for wait-for-ready RPCs where no data + // is sent on the wire. + select { + case <-ctx.Done(): + return nil, toRPCErr(ctx.Err()) + default: + } + + t, done, err = cc.getTransport(ctx, c.failFast) + if err != nil { + return nil, err + } + + s, err = t.NewStream(ctx, callHdr) + if err != nil { + if done != nil { + done(balancer.DoneInfo{Err: err}) + done = nil + } + // In the event of any error from NewStream, we never attempted to write + // anything to the wire, so we can retry indefinitely for non-fail-fast + // RPCs. + if !c.failFast { + continue + } + return nil, toRPCErr(err) + } + break + } + + cs := &clientStream{ + opts: opts, + c: c, + desc: desc, + codec: c.codec, + cp: cp, + comp: comp, + cancel: cancel, + attempt: &csAttempt{ + t: t, + s: s, + p: &parser{r: s}, + done: done, + dc: cc.dopts.dc, + ctx: ctx, + trInfo: trInfo, + statsHandler: sh, + beginTime: beginTime, + }, + } + cs.c.stream = cs + cs.attempt.cs = cs + if desc != unaryStreamDesc { + // Listen on cc and stream contexts to cleanup when the user closes the + // ClientConn or cancels the stream context. In all other cases, an error + // should already be injected into the recv buffer by the transport, which + // the client will eventually receive, and then we will cancel the stream's + // context in clientStream.finish. + go func() { + select { + case <-cc.ctx.Done(): + cs.finish(ErrClientConnClosing) + case <-ctx.Done(): + cs.finish(toRPCErr(ctx.Err())) + } + }() + } + return cs, nil +} + +// clientStream implements a client side Stream. +type clientStream struct { + opts []CallOption + c *callInfo + desc *StreamDesc + + codec baseCodec + cp Compressor + comp encoding.Compressor + + cancel context.CancelFunc // cancels all attempts + + sentLast bool // sent an end stream + + mu sync.Mutex // guards finished + finished bool // TODO: replace with atomic cmpxchg or sync.Once? + + attempt *csAttempt // the active client stream attempt + // TODO(hedging): hedging will have multiple attempts simultaneously. +} + +// csAttempt implements a single transport stream attempt within a +// clientStream. +type csAttempt struct { + cs *clientStream + t transport.ClientTransport + s *transport.Stream + p *parser + done func(balancer.DoneInfo) + + dc Decompressor + decomp encoding.Compressor + decompSet bool + + ctx context.Context // the application's context, wrapped by stats/tracing + + mu sync.Mutex // guards trInfo.tr + // trInfo.tr is set when created (if EnableTracing is true), + // and cleared when the finish method is called. + trInfo traceInfo + + statsHandler stats.Handler + beginTime time.Time +} + +func (cs *clientStream) Context() context.Context { + // TODO(retry): commit the current attempt (the context has peer-aware data). + return cs.attempt.context() +} + +func (cs *clientStream) Header() (metadata.MD, error) { + m, err := cs.attempt.header() + if err != nil { + // TODO(retry): maybe retry on error or commit attempt on success. + err = toRPCErr(err) + cs.finish(err) + } + return m, err +} + +func (cs *clientStream) Trailer() metadata.MD { + // TODO(retry): on error, maybe retry (trailers-only). + return cs.attempt.trailer() +} + +func (cs *clientStream) SendMsg(m interface{}) (err error) { + // TODO(retry): buffer message for replaying if not committed. + return cs.attempt.sendMsg(m) +} + +func (cs *clientStream) RecvMsg(m interface{}) (err error) { + // TODO(retry): maybe retry on error or commit attempt on success. + return cs.attempt.recvMsg(m) +} + +func (cs *clientStream) CloseSend() error { + cs.attempt.closeSend() + return nil +} + +func (cs *clientStream) finish(err error) { + if err == io.EOF { + // Ending a stream with EOF indicates a success. + err = nil + } + cs.mu.Lock() + if cs.finished { + cs.mu.Unlock() + return + } + cs.finished = true + cs.mu.Unlock() + // TODO(retry): commit current attempt if necessary. + cs.attempt.finish(err) + for _, o := range cs.opts { + o.after(cs.c) + } + cs.cancel() +} + +func (a *csAttempt) context() context.Context { + return a.s.Context() +} + +func (a *csAttempt) header() (metadata.MD, error) { + return a.s.Header() +} + +func (a *csAttempt) trailer() metadata.MD { + return a.s.Trailer() +} + +func (a *csAttempt) sendMsg(m interface{}) (err error) { + // TODO Investigate how to signal the stats handling party. + // generate error stats if err != nil && err != io.EOF? + cs := a.cs + defer func() { + // For non-client-streaming RPCs, we return nil instead of EOF on success + // because the generated code requires it. finish is not called; RecvMsg() + // will call it with the stream's status independently. + if err == io.EOF && !cs.desc.ClientStreams { + err = nil + } + if err != nil && err != io.EOF { + // Call finish on the client stream for errors generated by this SendMsg + // call, as these indicate problems created by this client. (Transport + // errors are converted to an io.EOF error below; the real error will be + // returned from RecvMsg eventually in that case, or be retried.) + cs.finish(err) + } + }() + // TODO: Check cs.sentLast and error if we already ended the stream. + if EnableTracing { + a.mu.Lock() + if a.trInfo.tr != nil { + a.trInfo.tr.LazyLog(&payload{sent: true, msg: m}, true) + } + a.mu.Unlock() + } + var outPayload *stats.OutPayload + if a.statsHandler != nil { + outPayload = &stats.OutPayload{ + Client: true, + } + } + hdr, data, err := encode(cs.codec, m, cs.cp, outPayload, cs.comp) + if err != nil { + return err + } + if len(data) > *cs.c.maxSendMessageSize { + return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(data), *cs.c.maxSendMessageSize) + } + if !cs.desc.ClientStreams { + cs.sentLast = true + } + err = a.t.Write(a.s, hdr, data, &transport.Options{Last: !cs.desc.ClientStreams}) + if err == nil { + if outPayload != nil { + outPayload.SentTime = time.Now() + a.statsHandler.HandleRPC(a.ctx, outPayload) + } + return nil + } + return io.EOF +} + +func (a *csAttempt) recvMsg(m interface{}) (err error) { + cs := a.cs + defer func() { + if err != nil || !cs.desc.ServerStreams { + // err != nil or non-server-streaming indicates end of stream. + cs.finish(err) + } + }() + var inPayload *stats.InPayload + if a.statsHandler != nil { + inPayload = &stats.InPayload{ + Client: true, + } + } + if !a.decompSet { + // Block until we receive headers containing received message encoding. + if ct := a.s.RecvCompress(); ct != "" && ct != encoding.Identity { + if a.dc == nil || a.dc.Type() != ct { + // No configured decompressor, or it does not match the incoming + // message encoding; attempt to find a registered compressor that does. + a.dc = nil + a.decomp = encoding.GetCompressor(ct) + } + } else { + // No compression is used; disable our decompressor. + a.dc = nil + } + // Only initialize this state once per stream. + a.decompSet = true + } + err = recv(a.p, cs.codec, a.s, a.dc, m, *cs.c.maxReceiveMessageSize, inPayload, a.decomp) + if err != nil { + if err == io.EOF { + if statusErr := a.s.Status().Err(); statusErr != nil { + return statusErr + } + return io.EOF // indicates successful end of stream. + } + return toRPCErr(err) + } + if EnableTracing { + a.mu.Lock() + if a.trInfo.tr != nil { + a.trInfo.tr.LazyLog(&payload{sent: false, msg: m}, true) + } + a.mu.Unlock() + } + if inPayload != nil { + a.statsHandler.HandleRPC(a.ctx, inPayload) + } + if cs.desc.ServerStreams { + // Subsequent messages should be received by subsequent RecvMsg calls. + return nil + } + + // Special handling for non-server-stream rpcs. + // This recv expects EOF or errors, so we don't collect inPayload. + err = recv(a.p, cs.codec, a.s, a.dc, m, *cs.c.maxReceiveMessageSize, nil, a.decomp) + if err == nil { + return toRPCErr(errors.New("grpc: client streaming protocol violation: get , want ")) + } + if err == io.EOF { + return a.s.Status().Err() // non-server streaming Recv returns nil on success + } + return toRPCErr(err) +} + +func (a *csAttempt) closeSend() { + cs := a.cs + if cs.sentLast { + return + } + cs.sentLast = true + cs.attempt.t.Write(cs.attempt.s, nil, nil, &transport.Options{Last: true}) + // We ignore errors from Write. Any error it would return would also be + // returned by a subsequent RecvMsg call, and the user is supposed to always + // finish the stream by calling RecvMsg until it returns err != nil. +} + +func (a *csAttempt) finish(err error) { + a.mu.Lock() + a.t.CloseStream(a.s, err) + + if a.done != nil { + a.done(balancer.DoneInfo{ + Err: err, + BytesSent: true, + BytesReceived: a.s.BytesReceived(), + }) + } + if a.statsHandler != nil { + end := &stats.End{ + Client: true, + BeginTime: a.beginTime, + EndTime: time.Now(), + Error: err, + } + a.statsHandler.HandleRPC(a.ctx, end) + } + if a.trInfo.tr != nil { + if err == nil { + a.trInfo.tr.LazyPrintf("RPC: [OK]") + } else { + a.trInfo.tr.LazyPrintf("RPC: [%v]", err) + a.trInfo.tr.SetError() + } + a.trInfo.tr.Finish() + a.trInfo.tr = nil + } + a.mu.Unlock() +} + +// ServerStream defines the interface a server stream has to satisfy. +type ServerStream interface { + // SetHeader sets the header metadata. It may be called multiple times. + // When call multiple times, all the provided metadata will be merged. + // All the metadata will be sent out when one of the following happens: + // - ServerStream.SendHeader() is called; + // - The first response is sent out; + // - An RPC status is sent out (error or success). + SetHeader(metadata.MD) error + // SendHeader sends the header metadata. + // The provided md and headers set by SetHeader() will be sent. + // It fails if called multiple times. + SendHeader(metadata.MD) error + // SetTrailer sets the trailer metadata which will be sent with the RPC status. + // When called more than once, all the provided metadata will be merged. + SetTrailer(metadata.MD) + Stream +} + +// serverStream implements a server side Stream. +type serverStream struct { + ctx context.Context + t transport.ServerTransport + s *transport.Stream + p *parser + codec baseCodec + + cp Compressor + dc Decompressor + comp encoding.Compressor + decomp encoding.Compressor + + maxReceiveMessageSize int + maxSendMessageSize int + trInfo *traceInfo + + statsHandler stats.Handler + + mu sync.Mutex // protects trInfo.tr after the service handler runs. +} + +func (ss *serverStream) Context() context.Context { + return ss.ctx +} + +func (ss *serverStream) SetHeader(md metadata.MD) error { + if md.Len() == 0 { + return nil + } + return ss.s.SetHeader(md) +} + +func (ss *serverStream) SendHeader(md metadata.MD) error { + return ss.t.WriteHeader(ss.s, md) +} + +func (ss *serverStream) SetTrailer(md metadata.MD) { + if md.Len() == 0 { + return + } + ss.s.SetTrailer(md) + return +} + +func (ss *serverStream) SendMsg(m interface{}) (err error) { + defer func() { + if ss.trInfo != nil { + ss.mu.Lock() + if ss.trInfo.tr != nil { + if err == nil { + ss.trInfo.tr.LazyLog(&payload{sent: true, msg: m}, true) + } else { + ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + ss.trInfo.tr.SetError() + } + } + ss.mu.Unlock() + } + if err != nil && err != io.EOF { + st, _ := status.FromError(toRPCErr(err)) + ss.t.WriteStatus(ss.s, st) + } + }() + var outPayload *stats.OutPayload + if ss.statsHandler != nil { + outPayload = &stats.OutPayload{} + } + hdr, data, err := encode(ss.codec, m, ss.cp, outPayload, ss.comp) + if err != nil { + return err + } + if len(data) > ss.maxSendMessageSize { + return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(data), ss.maxSendMessageSize) + } + if err := ss.t.Write(ss.s, hdr, data, &transport.Options{Last: false}); err != nil { + return toRPCErr(err) + } + if outPayload != nil { + outPayload.SentTime = time.Now() + ss.statsHandler.HandleRPC(ss.s.Context(), outPayload) + } + return nil +} + +func (ss *serverStream) RecvMsg(m interface{}) (err error) { + defer func() { + if ss.trInfo != nil { + ss.mu.Lock() + if ss.trInfo.tr != nil { + if err == nil { + ss.trInfo.tr.LazyLog(&payload{sent: false, msg: m}, true) + } else if err != io.EOF { + ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + ss.trInfo.tr.SetError() + } + } + ss.mu.Unlock() + } + if err != nil && err != io.EOF { + st, _ := status.FromError(toRPCErr(err)) + ss.t.WriteStatus(ss.s, st) + } + }() + var inPayload *stats.InPayload + if ss.statsHandler != nil { + inPayload = &stats.InPayload{} + } + if err := recv(ss.p, ss.codec, ss.s, ss.dc, m, ss.maxReceiveMessageSize, inPayload, ss.decomp); err != nil { + if err == io.EOF { + return err + } + if err == io.ErrUnexpectedEOF { + err = status.Errorf(codes.Internal, io.ErrUnexpectedEOF.Error()) + } + return toRPCErr(err) + } + if inPayload != nil { + ss.statsHandler.HandleRPC(ss.s.Context(), inPayload) + } + return nil +} + +// MethodFromServerStream returns the method string for the input stream. +// The returned string is in the format of "/service/method". +func MethodFromServerStream(stream ServerStream) (string, bool) { + return Method(stream.Context()) +} diff --git a/vendor/google.golang.org/grpc/tap/tap.go b/vendor/google.golang.org/grpc/tap/tap.go new file mode 100644 index 0000000..22b8fb5 --- /dev/null +++ b/vendor/google.golang.org/grpc/tap/tap.go @@ -0,0 +1,51 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package tap defines the function handles which are executed on the transport +// layer of gRPC-Go and related information. Everything here is EXPERIMENTAL. +package tap + +import ( + "golang.org/x/net/context" +) + +// Info defines the relevant information needed by the handles. +type Info struct { + // FullMethodName is the string of grpc method (in the format of + // /package.service/method). + FullMethodName string + // TODO: More to be added. +} + +// ServerInHandle defines the function which runs before a new stream is created +// on the server side. If it returns a non-nil error, the stream will not be +// created and a RST_STREAM will be sent back to the client with REFUSED_STREAM. +// The client will receive an RPC error "code = Unavailable, desc = stream +// terminated by RST_STREAM with error code: REFUSED_STREAM". +// +// It's intended to be used in situations where you don't want to waste the +// resources to accept the new stream (e.g. rate-limiting). And the content of +// the error will be ignored and won't be sent back to the client. For other +// general usages, please use interceptors. +// +// Note that it is executed in the per-connection I/O goroutine(s) instead of +// per-RPC goroutine. Therefore, users should NOT have any +// blocking/time-consuming work in this handle. Otherwise all the RPCs would +// slow down. Also, for the same reason, this handle won't be called +// concurrently by gRPC. +type ServerInHandle func(ctx context.Context, info *Info) (context.Context, error) diff --git a/vendor/google.golang.org/grpc/trace.go b/vendor/google.golang.org/grpc/trace.go new file mode 100644 index 0000000..c1c96de --- /dev/null +++ b/vendor/google.golang.org/grpc/trace.go @@ -0,0 +1,113 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "bytes" + "fmt" + "io" + "net" + "strings" + "time" + + "golang.org/x/net/trace" +) + +// EnableTracing controls whether to trace RPCs using the golang.org/x/net/trace package. +// This should only be set before any RPCs are sent or received by this program. +var EnableTracing bool + +// methodFamily returns the trace family for the given method. +// It turns "/pkg.Service/GetFoo" into "pkg.Service". +func methodFamily(m string) string { + m = strings.TrimPrefix(m, "/") // remove leading slash + if i := strings.Index(m, "/"); i >= 0 { + m = m[:i] // remove everything from second slash + } + if i := strings.LastIndex(m, "."); i >= 0 { + m = m[i+1:] // cut down to last dotted component + } + return m +} + +// traceInfo contains tracing information for an RPC. +type traceInfo struct { + tr trace.Trace + firstLine firstLine +} + +// firstLine is the first line of an RPC trace. +type firstLine struct { + client bool // whether this is a client (outgoing) RPC + remoteAddr net.Addr + deadline time.Duration // may be zero +} + +func (f *firstLine) String() string { + var line bytes.Buffer + io.WriteString(&line, "RPC: ") + if f.client { + io.WriteString(&line, "to") + } else { + io.WriteString(&line, "from") + } + fmt.Fprintf(&line, " %v deadline:", f.remoteAddr) + if f.deadline != 0 { + fmt.Fprint(&line, f.deadline) + } else { + io.WriteString(&line, "none") + } + return line.String() +} + +const truncateSize = 100 + +func truncate(x string, l int) string { + if l > len(x) { + return x + } + return x[:l] +} + +// payload represents an RPC request or response payload. +type payload struct { + sent bool // whether this is an outgoing payload + msg interface{} // e.g. a proto.Message + // TODO(dsymonds): add stringifying info to codec, and limit how much we hold here? +} + +func (p payload) String() string { + if p.sent { + return truncate(fmt.Sprintf("sent: %v", p.msg), truncateSize) + } + return truncate(fmt.Sprintf("recv: %v", p.msg), truncateSize) +} + +type fmtStringer struct { + format string + a []interface{} +} + +func (f *fmtStringer) String() string { + return fmt.Sprintf(f.format, f.a...) +} + +type stringer string + +func (s stringer) String() string { return string(s) } diff --git a/vendor/google.golang.org/grpc/transport/bdp_estimator.go b/vendor/google.golang.org/grpc/transport/bdp_estimator.go new file mode 100644 index 0000000..63cd262 --- /dev/null +++ b/vendor/google.golang.org/grpc/transport/bdp_estimator.go @@ -0,0 +1,140 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "sync" + "time" +) + +const ( + // bdpLimit is the maximum value the flow control windows + // will be increased to. + bdpLimit = (1 << 20) * 4 + // alpha is a constant factor used to keep a moving average + // of RTTs. + alpha = 0.9 + // If the current bdp sample is greater than or equal to + // our beta * our estimated bdp and the current bandwidth + // sample is the maximum bandwidth observed so far, we + // increase our bbp estimate by a factor of gamma. + beta = 0.66 + // To put our bdp to be smaller than or equal to twice the real BDP, + // we should multiply our current sample with 4/3, however to round things out + // we use 2 as the multiplication factor. + gamma = 2 +) + +// Adding arbitrary data to ping so that its ack can be identified. +// Easter-egg: what does the ping message say? +var bdpPing = &ping{data: [8]byte{2, 4, 16, 16, 9, 14, 7, 7}} + +type bdpEstimator struct { + // sentAt is the time when the ping was sent. + sentAt time.Time + + mu sync.Mutex + // bdp is the current bdp estimate. + bdp uint32 + // sample is the number of bytes received in one measurement cycle. + sample uint32 + // bwMax is the maximum bandwidth noted so far (bytes/sec). + bwMax float64 + // bool to keep track of the beginning of a new measurement cycle. + isSent bool + // Callback to update the window sizes. + updateFlowControl func(n uint32) + // sampleCount is the number of samples taken so far. + sampleCount uint64 + // round trip time (seconds) + rtt float64 +} + +// timesnap registers the time bdp ping was sent out so that +// network rtt can be calculated when its ack is received. +// It is called (by controller) when the bdpPing is +// being written on the wire. +func (b *bdpEstimator) timesnap(d [8]byte) { + if bdpPing.data != d { + return + } + b.sentAt = time.Now() +} + +// add adds bytes to the current sample for calculating bdp. +// It returns true only if a ping must be sent. This can be used +// by the caller (handleData) to make decision about batching +// a window update with it. +func (b *bdpEstimator) add(n uint32) bool { + b.mu.Lock() + defer b.mu.Unlock() + if b.bdp == bdpLimit { + return false + } + if !b.isSent { + b.isSent = true + b.sample = n + b.sentAt = time.Time{} + b.sampleCount++ + return true + } + b.sample += n + return false +} + +// calculate is called when an ack for a bdp ping is received. +// Here we calculate the current bdp and bandwidth sample and +// decide if the flow control windows should go up. +func (b *bdpEstimator) calculate(d [8]byte) { + // Check if the ping acked for was the bdp ping. + if bdpPing.data != d { + return + } + b.mu.Lock() + rttSample := time.Since(b.sentAt).Seconds() + if b.sampleCount < 10 { + // Bootstrap rtt with an average of first 10 rtt samples. + b.rtt += (rttSample - b.rtt) / float64(b.sampleCount) + } else { + // Heed to the recent past more. + b.rtt += (rttSample - b.rtt) * float64(alpha) + } + b.isSent = false + // The number of bytes accumulated so far in the sample is smaller + // than or equal to 1.5 times the real BDP on a saturated connection. + bwCurrent := float64(b.sample) / (b.rtt * float64(1.5)) + if bwCurrent > b.bwMax { + b.bwMax = bwCurrent + } + // If the current sample (which is smaller than or equal to the 1.5 times the real BDP) is + // greater than or equal to 2/3rd our perceived bdp AND this is the maximum bandwidth seen so far, we + // should update our perception of the network BDP. + if float64(b.sample) >= beta*float64(b.bdp) && bwCurrent == b.bwMax && b.bdp != bdpLimit { + sampleFloat := float64(b.sample) + b.bdp = uint32(gamma * sampleFloat) + if b.bdp > bdpLimit { + b.bdp = bdpLimit + } + bdp := b.bdp + b.mu.Unlock() + b.updateFlowControl(bdp) + return + } + b.mu.Unlock() +} diff --git a/vendor/google.golang.org/grpc/transport/control.go b/vendor/google.golang.org/grpc/transport/control.go new file mode 100644 index 0000000..0474b09 --- /dev/null +++ b/vendor/google.golang.org/grpc/transport/control.go @@ -0,0 +1,334 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "fmt" + "io" + "math" + "sync" + "time" + + "golang.org/x/net/http2" + "golang.org/x/net/http2/hpack" +) + +const ( + // The default value of flow control window size in HTTP2 spec. + defaultWindowSize = 65535 + // The initial window size for flow control. + initialWindowSize = defaultWindowSize // for an RPC + infinity = time.Duration(math.MaxInt64) + defaultClientKeepaliveTime = infinity + defaultClientKeepaliveTimeout = time.Duration(20 * time.Second) + defaultMaxStreamsClient = 100 + defaultMaxConnectionIdle = infinity + defaultMaxConnectionAge = infinity + defaultMaxConnectionAgeGrace = infinity + defaultServerKeepaliveTime = time.Duration(2 * time.Hour) + defaultServerKeepaliveTimeout = time.Duration(20 * time.Second) + defaultKeepalivePolicyMinTime = time.Duration(5 * time.Minute) + // max window limit set by HTTP2 Specs. + maxWindowSize = math.MaxInt32 + // defaultLocalSendQuota sets is default value for number of data + // bytes that each stream can schedule before some of it being + // flushed out. + defaultLocalSendQuota = 128 * 1024 +) + +// The following defines various control items which could flow through +// the control buffer of transport. They represent different aspects of +// control tasks, e.g., flow control, settings, streaming resetting, etc. + +type headerFrame struct { + streamID uint32 + hf []hpack.HeaderField + endStream bool +} + +func (*headerFrame) item() {} + +type continuationFrame struct { + streamID uint32 + endHeaders bool + headerBlockFragment []byte +} + +type dataFrame struct { + streamID uint32 + endStream bool + d []byte + f func() +} + +func (*dataFrame) item() {} + +func (*continuationFrame) item() {} + +type windowUpdate struct { + streamID uint32 + increment uint32 +} + +func (*windowUpdate) item() {} + +type settings struct { + ss []http2.Setting +} + +func (*settings) item() {} + +type settingsAck struct { +} + +func (*settingsAck) item() {} + +type resetStream struct { + streamID uint32 + code http2.ErrCode +} + +func (*resetStream) item() {} + +type goAway struct { + code http2.ErrCode + debugData []byte + headsUp bool + closeConn bool +} + +func (*goAway) item() {} + +type flushIO struct { + closeTr bool +} + +func (*flushIO) item() {} + +type ping struct { + ack bool + data [8]byte +} + +func (*ping) item() {} + +// quotaPool is a pool which accumulates the quota and sends it to acquire() +// when it is available. +type quotaPool struct { + mu sync.Mutex + c chan struct{} + version uint32 + quota int +} + +// newQuotaPool creates a quotaPool which has quota q available to consume. +func newQuotaPool(q int) *quotaPool { + qb := "aPool{ + quota: q, + c: make(chan struct{}, 1), + } + return qb +} + +// add cancels the pending quota sent on acquired, incremented by v and sends +// it back on acquire. +func (qb *quotaPool) add(v int) { + qb.mu.Lock() + defer qb.mu.Unlock() + qb.lockedAdd(v) +} + +func (qb *quotaPool) lockedAdd(v int) { + var wakeUp bool + if qb.quota <= 0 { + wakeUp = true // Wake up potential waiters. + } + qb.quota += v + if wakeUp && qb.quota > 0 { + select { + case qb.c <- struct{}{}: + default: + } + } +} + +func (qb *quotaPool) addAndUpdate(v int) { + qb.mu.Lock() + qb.lockedAdd(v) + qb.version++ + qb.mu.Unlock() +} + +func (qb *quotaPool) get(v int, wc waiters) (int, uint32, error) { + qb.mu.Lock() + if qb.quota > 0 { + if v > qb.quota { + v = qb.quota + } + qb.quota -= v + ver := qb.version + qb.mu.Unlock() + return v, ver, nil + } + qb.mu.Unlock() + for { + select { + case <-wc.ctx.Done(): + return 0, 0, ContextErr(wc.ctx.Err()) + case <-wc.tctx.Done(): + return 0, 0, ErrConnClosing + case <-wc.done: + return 0, 0, io.EOF + case <-wc.goAway: + return 0, 0, errStreamDrain + case <-qb.c: + qb.mu.Lock() + if qb.quota > 0 { + if v > qb.quota { + v = qb.quota + } + qb.quota -= v + ver := qb.version + if qb.quota > 0 { + select { + case qb.c <- struct{}{}: + default: + } + } + qb.mu.Unlock() + return v, ver, nil + + } + qb.mu.Unlock() + } + } +} + +func (qb *quotaPool) compareAndExecute(version uint32, success, failure func()) bool { + qb.mu.Lock() + if version == qb.version { + success() + qb.mu.Unlock() + return true + } + failure() + qb.mu.Unlock() + return false +} + +// inFlow deals with inbound flow control +type inFlow struct { + mu sync.Mutex + // The inbound flow control limit for pending data. + limit uint32 + // pendingData is the overall data which have been received but not been + // consumed by applications. + pendingData uint32 + // The amount of data the application has consumed but grpc has not sent + // window update for them. Used to reduce window update frequency. + pendingUpdate uint32 + // delta is the extra window update given by receiver when an application + // is reading data bigger in size than the inFlow limit. + delta uint32 +} + +// newLimit updates the inflow window to a new value n. +// It assumes that n is always greater than the old limit. +func (f *inFlow) newLimit(n uint32) uint32 { + f.mu.Lock() + defer f.mu.Unlock() + d := n - f.limit + f.limit = n + return d +} + +func (f *inFlow) maybeAdjust(n uint32) uint32 { + if n > uint32(math.MaxInt32) { + n = uint32(math.MaxInt32) + } + f.mu.Lock() + defer f.mu.Unlock() + // estSenderQuota is the receiver's view of the maximum number of bytes the sender + // can send without a window update. + estSenderQuota := int32(f.limit - (f.pendingData + f.pendingUpdate)) + // estUntransmittedData is the maximum number of bytes the sends might not have put + // on the wire yet. A value of 0 or less means that we have already received all or + // more bytes than the application is requesting to read. + estUntransmittedData := int32(n - f.pendingData) // Casting into int32 since it could be negative. + // This implies that unless we send a window update, the sender won't be able to send all the bytes + // for this message. Therefore we must send an update over the limit since there's an active read + // request from the application. + if estUntransmittedData > estSenderQuota { + // Sender's window shouldn't go more than 2^31 - 1 as speecified in the HTTP spec. + if f.limit+n > maxWindowSize { + f.delta = maxWindowSize - f.limit + } else { + // Send a window update for the whole message and not just the difference between + // estUntransmittedData and estSenderQuota. This will be helpful in case the message + // is padded; We will fallback on the current available window(at least a 1/4th of the limit). + f.delta = n + } + return f.delta + } + return 0 +} + +// onData is invoked when some data frame is received. It updates pendingData. +func (f *inFlow) onData(n uint32) error { + f.mu.Lock() + defer f.mu.Unlock() + f.pendingData += n + if f.pendingData+f.pendingUpdate > f.limit+f.delta { + return fmt.Errorf("received %d-bytes data exceeding the limit %d bytes", f.pendingData+f.pendingUpdate, f.limit) + } + return nil +} + +// onRead is invoked when the application reads the data. It returns the window size +// to be sent to the peer. +func (f *inFlow) onRead(n uint32) uint32 { + f.mu.Lock() + defer f.mu.Unlock() + if f.pendingData == 0 { + return 0 + } + f.pendingData -= n + if n > f.delta { + n -= f.delta + f.delta = 0 + } else { + f.delta -= n + n = 0 + } + f.pendingUpdate += n + if f.pendingUpdate >= f.limit/4 { + wu := f.pendingUpdate + f.pendingUpdate = 0 + return wu + } + return 0 +} + +func (f *inFlow) resetPendingUpdate() uint32 { + f.mu.Lock() + defer f.mu.Unlock() + n := f.pendingUpdate + f.pendingUpdate = 0 + return n +} diff --git a/vendor/google.golang.org/grpc/transport/go16.go b/vendor/google.golang.org/grpc/transport/go16.go new file mode 100644 index 0000000..5babcf9 --- /dev/null +++ b/vendor/google.golang.org/grpc/transport/go16.go @@ -0,0 +1,51 @@ +// +build go1.6,!go1.7 + +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "net" + "net/http" + + "google.golang.org/grpc/codes" + + "golang.org/x/net/context" +) + +// dialContext connects to the address on the named network. +func dialContext(ctx context.Context, network, address string) (net.Conn, error) { + return (&net.Dialer{Cancel: ctx.Done()}).Dial(network, address) +} + +// ContextErr converts the error from context package into a StreamError. +func ContextErr(err error) StreamError { + switch err { + case context.DeadlineExceeded: + return streamErrorf(codes.DeadlineExceeded, "%v", err) + case context.Canceled: + return streamErrorf(codes.Canceled, "%v", err) + } + return streamErrorf(codes.Internal, "Unexpected error from context packet: %v", err) +} + +// contextFromRequest returns a background context. +func contextFromRequest(r *http.Request) context.Context { + return context.Background() +} diff --git a/vendor/google.golang.org/grpc/transport/go17.go b/vendor/google.golang.org/grpc/transport/go17.go new file mode 100644 index 0000000..b7fa6bd --- /dev/null +++ b/vendor/google.golang.org/grpc/transport/go17.go @@ -0,0 +1,52 @@ +// +build go1.7 + +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "context" + "net" + "net/http" + + "google.golang.org/grpc/codes" + + netctx "golang.org/x/net/context" +) + +// dialContext connects to the address on the named network. +func dialContext(ctx context.Context, network, address string) (net.Conn, error) { + return (&net.Dialer{}).DialContext(ctx, network, address) +} + +// ContextErr converts the error from context package into a StreamError. +func ContextErr(err error) StreamError { + switch err { + case context.DeadlineExceeded, netctx.DeadlineExceeded: + return streamErrorf(codes.DeadlineExceeded, "%v", err) + case context.Canceled, netctx.Canceled: + return streamErrorf(codes.Canceled, "%v", err) + } + return streamErrorf(codes.Internal, "Unexpected error from context packet: %v", err) +} + +// contextFromRequest returns a context from the HTTP Request. +func contextFromRequest(r *http.Request) context.Context { + return r.Context() +} diff --git a/vendor/google.golang.org/grpc/transport/handler_server.go b/vendor/google.golang.org/grpc/transport/handler_server.go new file mode 100644 index 0000000..1a5e96c --- /dev/null +++ b/vendor/google.golang.org/grpc/transport/handler_server.go @@ -0,0 +1,447 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// This file is the implementation of a gRPC server using HTTP/2 which +// uses the standard Go http2 Server implementation (via the +// http.Handler interface), rather than speaking low-level HTTP/2 +// frames itself. It is the implementation of *grpc.Server.ServeHTTP. + +package transport + +import ( + "errors" + "fmt" + "io" + "net" + "net/http" + "strings" + "sync" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + "golang.org/x/net/http2" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" +) + +// NewServerHandlerTransport returns a ServerTransport handling gRPC +// from inside an http.Handler. It requires that the http Server +// supports HTTP/2. +func NewServerHandlerTransport(w http.ResponseWriter, r *http.Request, stats stats.Handler) (ServerTransport, error) { + if r.ProtoMajor != 2 { + return nil, errors.New("gRPC requires HTTP/2") + } + if r.Method != "POST" { + return nil, errors.New("invalid gRPC request method") + } + contentType := r.Header.Get("Content-Type") + // TODO: do we assume contentType is lowercase? we did before + contentSubtype, validContentType := contentSubtype(contentType) + if !validContentType { + return nil, errors.New("invalid gRPC request content-type") + } + if _, ok := w.(http.Flusher); !ok { + return nil, errors.New("gRPC requires a ResponseWriter supporting http.Flusher") + } + if _, ok := w.(http.CloseNotifier); !ok { + return nil, errors.New("gRPC requires a ResponseWriter supporting http.CloseNotifier") + } + + st := &serverHandlerTransport{ + rw: w, + req: r, + closedCh: make(chan struct{}), + writes: make(chan func()), + contentType: contentType, + contentSubtype: contentSubtype, + stats: stats, + } + + if v := r.Header.Get("grpc-timeout"); v != "" { + to, err := decodeTimeout(v) + if err != nil { + return nil, streamErrorf(codes.Internal, "malformed time-out: %v", err) + } + st.timeoutSet = true + st.timeout = to + } + + metakv := []string{"content-type", contentType} + if r.Host != "" { + metakv = append(metakv, ":authority", r.Host) + } + for k, vv := range r.Header { + k = strings.ToLower(k) + if isReservedHeader(k) && !isWhitelistedPseudoHeader(k) { + continue + } + for _, v := range vv { + v, err := decodeMetadataHeader(k, v) + if err != nil { + return nil, streamErrorf(codes.Internal, "malformed binary metadata: %v", err) + } + metakv = append(metakv, k, v) + } + } + st.headerMD = metadata.Pairs(metakv...) + + return st, nil +} + +// serverHandlerTransport is an implementation of ServerTransport +// which replies to exactly one gRPC request (exactly one HTTP request), +// using the net/http.Handler interface. This http.Handler is guaranteed +// at this point to be speaking over HTTP/2, so it's able to speak valid +// gRPC. +type serverHandlerTransport struct { + rw http.ResponseWriter + req *http.Request + timeoutSet bool + timeout time.Duration + didCommonHeaders bool + + headerMD metadata.MD + + closeOnce sync.Once + closedCh chan struct{} // closed on Close + + // writes is a channel of code to run serialized in the + // ServeHTTP (HandleStreams) goroutine. The channel is closed + // when WriteStatus is called. + writes chan func() + + // block concurrent WriteStatus calls + // e.g. grpc/(*serverStream).SendMsg/RecvMsg + writeStatusMu sync.Mutex + + // we just mirror the request content-type + contentType string + // we store both contentType and contentSubtype so we don't keep recreating them + // TODO make sure this is consistent across handler_server and http2_server + contentSubtype string + + stats stats.Handler +} + +func (ht *serverHandlerTransport) Close() error { + ht.closeOnce.Do(ht.closeCloseChanOnce) + return nil +} + +func (ht *serverHandlerTransport) closeCloseChanOnce() { close(ht.closedCh) } + +func (ht *serverHandlerTransport) RemoteAddr() net.Addr { return strAddr(ht.req.RemoteAddr) } + +// strAddr is a net.Addr backed by either a TCP "ip:port" string, or +// the empty string if unknown. +type strAddr string + +func (a strAddr) Network() string { + if a != "" { + // Per the documentation on net/http.Request.RemoteAddr, if this is + // set, it's set to the IP:port of the peer (hence, TCP): + // https://golang.org/pkg/net/http/#Request + // + // If we want to support Unix sockets later, we can + // add our own grpc-specific convention within the + // grpc codebase to set RemoteAddr to a different + // format, or probably better: we can attach it to the + // context and use that from serverHandlerTransport.RemoteAddr. + return "tcp" + } + return "" +} + +func (a strAddr) String() string { return string(a) } + +// do runs fn in the ServeHTTP goroutine. +func (ht *serverHandlerTransport) do(fn func()) error { + // Avoid a panic writing to closed channel. Imperfect but maybe good enough. + select { + case <-ht.closedCh: + return ErrConnClosing + default: + select { + case ht.writes <- fn: + return nil + case <-ht.closedCh: + return ErrConnClosing + } + } +} + +func (ht *serverHandlerTransport) WriteStatus(s *Stream, st *status.Status) error { + ht.writeStatusMu.Lock() + defer ht.writeStatusMu.Unlock() + + err := ht.do(func() { + ht.writeCommonHeaders(s) + + // And flush, in case no header or body has been sent yet. + // This forces a separation of headers and trailers if this is the + // first call (for example, in end2end tests's TestNoService). + ht.rw.(http.Flusher).Flush() + + h := ht.rw.Header() + h.Set("Grpc-Status", fmt.Sprintf("%d", st.Code())) + if m := st.Message(); m != "" { + h.Set("Grpc-Message", encodeGrpcMessage(m)) + } + + if p := st.Proto(); p != nil && len(p.Details) > 0 { + stBytes, err := proto.Marshal(p) + if err != nil { + // TODO: return error instead, when callers are able to handle it. + panic(err) + } + + h.Set("Grpc-Status-Details-Bin", encodeBinHeader(stBytes)) + } + + if md := s.Trailer(); len(md) > 0 { + for k, vv := range md { + // Clients don't tolerate reading restricted headers after some non restricted ones were sent. + if isReservedHeader(k) { + continue + } + for _, v := range vv { + // http2 ResponseWriter mechanism to send undeclared Trailers after + // the headers have possibly been written. + h.Add(http2.TrailerPrefix+k, encodeMetadataHeader(k, v)) + } + } + } + }) + + if err == nil { // transport has not been closed + if ht.stats != nil { + ht.stats.HandleRPC(s.Context(), &stats.OutTrailer{}) + } + ht.Close() + close(ht.writes) + } + return err +} + +// writeCommonHeaders sets common headers on the first write +// call (Write, WriteHeader, or WriteStatus). +func (ht *serverHandlerTransport) writeCommonHeaders(s *Stream) { + if ht.didCommonHeaders { + return + } + ht.didCommonHeaders = true + + h := ht.rw.Header() + h["Date"] = nil // suppress Date to make tests happy; TODO: restore + h.Set("Content-Type", ht.contentType) + + // Predeclare trailers we'll set later in WriteStatus (after the body). + // This is a SHOULD in the HTTP RFC, and the way you add (known) + // Trailers per the net/http.ResponseWriter contract. + // See https://golang.org/pkg/net/http/#ResponseWriter + // and https://golang.org/pkg/net/http/#example_ResponseWriter_trailers + h.Add("Trailer", "Grpc-Status") + h.Add("Trailer", "Grpc-Message") + h.Add("Trailer", "Grpc-Status-Details-Bin") + + if s.sendCompress != "" { + h.Set("Grpc-Encoding", s.sendCompress) + } +} + +func (ht *serverHandlerTransport) Write(s *Stream, hdr []byte, data []byte, opts *Options) error { + return ht.do(func() { + ht.writeCommonHeaders(s) + ht.rw.Write(hdr) + ht.rw.Write(data) + if !opts.Delay { + ht.rw.(http.Flusher).Flush() + } + }) +} + +func (ht *serverHandlerTransport) WriteHeader(s *Stream, md metadata.MD) error { + err := ht.do(func() { + ht.writeCommonHeaders(s) + h := ht.rw.Header() + for k, vv := range md { + // Clients don't tolerate reading restricted headers after some non restricted ones were sent. + if isReservedHeader(k) { + continue + } + for _, v := range vv { + v = encodeMetadataHeader(k, v) + h.Add(k, v) + } + } + ht.rw.WriteHeader(200) + ht.rw.(http.Flusher).Flush() + }) + + if err == nil { + if ht.stats != nil { + ht.stats.HandleRPC(s.Context(), &stats.OutHeader{}) + } + } + return err +} + +func (ht *serverHandlerTransport) HandleStreams(startStream func(*Stream), traceCtx func(context.Context, string) context.Context) { + // With this transport type there will be exactly 1 stream: this HTTP request. + + ctx := contextFromRequest(ht.req) + var cancel context.CancelFunc + if ht.timeoutSet { + ctx, cancel = context.WithTimeout(ctx, ht.timeout) + } else { + ctx, cancel = context.WithCancel(ctx) + } + + // requestOver is closed when either the request's context is done + // or the status has been written via WriteStatus. + requestOver := make(chan struct{}) + + // clientGone receives a single value if peer is gone, either + // because the underlying connection is dead or because the + // peer sends an http2 RST_STREAM. + clientGone := ht.rw.(http.CloseNotifier).CloseNotify() + go func() { + select { + case <-requestOver: + return + case <-ht.closedCh: + case <-clientGone: + } + cancel() + }() + + req := ht.req + + s := &Stream{ + id: 0, // irrelevant + requestRead: func(int) {}, + cancel: cancel, + buf: newRecvBuffer(), + st: ht, + method: req.URL.Path, + recvCompress: req.Header.Get("grpc-encoding"), + contentSubtype: ht.contentSubtype, + } + pr := &peer.Peer{ + Addr: ht.RemoteAddr(), + } + if req.TLS != nil { + pr.AuthInfo = credentials.TLSInfo{State: *req.TLS} + } + ctx = metadata.NewIncomingContext(ctx, ht.headerMD) + s.ctx = peer.NewContext(ctx, pr) + if ht.stats != nil { + s.ctx = ht.stats.TagRPC(s.ctx, &stats.RPCTagInfo{FullMethodName: s.method}) + inHeader := &stats.InHeader{ + FullMethod: s.method, + RemoteAddr: ht.RemoteAddr(), + Compression: s.recvCompress, + } + ht.stats.HandleRPC(s.ctx, inHeader) + } + s.trReader = &transportReader{ + reader: &recvBufferReader{ctx: s.ctx, recv: s.buf}, + windowHandler: func(int) {}, + } + + // readerDone is closed when the Body.Read-ing goroutine exits. + readerDone := make(chan struct{}) + go func() { + defer close(readerDone) + + // TODO: minimize garbage, optimize recvBuffer code/ownership + const readSize = 8196 + for buf := make([]byte, readSize); ; { + n, err := req.Body.Read(buf) + if n > 0 { + s.buf.put(recvMsg{data: buf[:n:n]}) + buf = buf[n:] + } + if err != nil { + s.buf.put(recvMsg{err: mapRecvMsgError(err)}) + return + } + if len(buf) == 0 { + buf = make([]byte, readSize) + } + } + }() + + // startStream is provided by the *grpc.Server's serveStreams. + // It starts a goroutine serving s and exits immediately. + // The goroutine that is started is the one that then calls + // into ht, calling WriteHeader, Write, WriteStatus, Close, etc. + startStream(s) + + ht.runStream() + close(requestOver) + + // Wait for reading goroutine to finish. + req.Body.Close() + <-readerDone +} + +func (ht *serverHandlerTransport) runStream() { + for { + select { + case fn, ok := <-ht.writes: + if !ok { + return + } + fn() + case <-ht.closedCh: + return + } + } +} + +func (ht *serverHandlerTransport) Drain() { + panic("Drain() is not implemented") +} + +// mapRecvMsgError returns the non-nil err into the appropriate +// error value as expected by callers of *grpc.parser.recvMsg. +// In particular, in can only be: +// * io.EOF +// * io.ErrUnexpectedEOF +// * of type transport.ConnectionError +// * of type transport.StreamError +func mapRecvMsgError(err error) error { + if err == io.EOF || err == io.ErrUnexpectedEOF { + return err + } + if se, ok := err.(http2.StreamError); ok { + if code, ok := http2ErrConvTab[se.Code]; ok { + return StreamError{ + Code: code, + Desc: se.Error(), + } + } + } + return connectionErrorf(true, err, err.Error()) +} diff --git a/vendor/google.golang.org/grpc/transport/http2_client.go b/vendor/google.golang.org/grpc/transport/http2_client.go new file mode 100644 index 0000000..8b5be0d --- /dev/null +++ b/vendor/google.golang.org/grpc/transport/http2_client.go @@ -0,0 +1,1386 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "bytes" + "fmt" + "io" + "math" + "net" + "strings" + "sync" + "sync/atomic" + "time" + + "golang.org/x/net/context" + "golang.org/x/net/http2" + "golang.org/x/net/http2/hpack" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" +) + +// http2Client implements the ClientTransport interface with HTTP2. +type http2Client struct { + ctx context.Context + cancel context.CancelFunc + userAgent string + md interface{} + conn net.Conn // underlying communication channel + remoteAddr net.Addr + localAddr net.Addr + authInfo credentials.AuthInfo // auth info about the connection + nextID uint32 // the next stream ID to be used + + // goAway is closed to notify the upper layer (i.e., addrConn.transportMonitor) + // that the server sent GoAway on this transport. + goAway chan struct{} + // awakenKeepalive is used to wake up keepalive when after it has gone dormant. + awakenKeepalive chan struct{} + + framer *framer + hBuf *bytes.Buffer // the buffer for HPACK encoding + hEnc *hpack.Encoder // HPACK encoder + + // controlBuf delivers all the control related tasks (e.g., window + // updates, reset streams, and various settings) to the controller. + controlBuf *controlBuffer + fc *inFlow + // sendQuotaPool provides flow control to outbound message. + sendQuotaPool *quotaPool + // localSendQuota limits the amount of data that can be scheduled + // for writing before it is actually written out. + localSendQuota *quotaPool + // streamsQuota limits the max number of concurrent streams. + streamsQuota *quotaPool + + // The scheme used: https if TLS is on, http otherwise. + scheme string + + isSecure bool + + creds []credentials.PerRPCCredentials + + // Boolean to keep track of reading activity on transport. + // 1 is true and 0 is false. + activity uint32 // Accessed atomically. + kp keepalive.ClientParameters + + statsHandler stats.Handler + + initialWindowSize int32 + + bdpEst *bdpEstimator + outQuotaVersion uint32 + + // onSuccess is a callback that client transport calls upon + // receiving server preface to signal that a succefull HTTP2 + // connection was established. + onSuccess func() + + mu sync.Mutex // guard the following variables + state transportState // the state of underlying connection + activeStreams map[uint32]*Stream + // The max number of concurrent streams + maxStreams int + // the per-stream outbound flow control window size set by the peer. + streamSendQuota uint32 + // prevGoAway ID records the Last-Stream-ID in the previous GOAway frame. + prevGoAwayID uint32 + // goAwayReason records the http2.ErrCode and debug data received with the + // GoAway frame. + goAwayReason GoAwayReason +} + +func dial(ctx context.Context, fn func(context.Context, string) (net.Conn, error), addr string) (net.Conn, error) { + if fn != nil { + return fn(ctx, addr) + } + return dialContext(ctx, "tcp", addr) +} + +func isTemporary(err error) bool { + switch err := err.(type) { + case interface { + Temporary() bool + }: + return err.Temporary() + case interface { + Timeout() bool + }: + // Timeouts may be resolved upon retry, and are thus treated as + // temporary. + return err.Timeout() + } + return true +} + +// newHTTP2Client constructs a connected ClientTransport to addr based on HTTP2 +// and starts to receive messages on it. Non-nil error returns if construction +// fails. +func newHTTP2Client(connectCtx, ctx context.Context, addr TargetInfo, opts ConnectOptions, onSuccess func()) (_ ClientTransport, err error) { + scheme := "http" + ctx, cancel := context.WithCancel(ctx) + defer func() { + if err != nil { + cancel() + } + }() + + conn, err := dial(connectCtx, opts.Dialer, addr.Addr) + if err != nil { + if opts.FailOnNonTempDialError { + return nil, connectionErrorf(isTemporary(err), err, "transport: error while dialing: %v", err) + } + return nil, connectionErrorf(true, err, "transport: Error while dialing %v", err) + } + // Any further errors will close the underlying connection + defer func(conn net.Conn) { + if err != nil { + conn.Close() + } + }(conn) + var ( + isSecure bool + authInfo credentials.AuthInfo + ) + if creds := opts.TransportCredentials; creds != nil { + scheme = "https" + conn, authInfo, err = creds.ClientHandshake(connectCtx, addr.Authority, conn) + if err != nil { + return nil, connectionErrorf(isTemporary(err), err, "transport: authentication handshake failed: %v", err) + } + isSecure = true + } + kp := opts.KeepaliveParams + // Validate keepalive parameters. + if kp.Time == 0 { + kp.Time = defaultClientKeepaliveTime + } + if kp.Timeout == 0 { + kp.Timeout = defaultClientKeepaliveTimeout + } + dynamicWindow := true + icwz := int32(initialWindowSize) + if opts.InitialConnWindowSize >= defaultWindowSize { + icwz = opts.InitialConnWindowSize + dynamicWindow = false + } + var buf bytes.Buffer + writeBufSize := defaultWriteBufSize + if opts.WriteBufferSize > 0 { + writeBufSize = opts.WriteBufferSize + } + readBufSize := defaultReadBufSize + if opts.ReadBufferSize > 0 { + readBufSize = opts.ReadBufferSize + } + t := &http2Client{ + ctx: ctx, + cancel: cancel, + userAgent: opts.UserAgent, + md: addr.Metadata, + conn: conn, + remoteAddr: conn.RemoteAddr(), + localAddr: conn.LocalAddr(), + authInfo: authInfo, + // The client initiated stream id is odd starting from 1. + nextID: 1, + goAway: make(chan struct{}), + awakenKeepalive: make(chan struct{}, 1), + hBuf: &buf, + hEnc: hpack.NewEncoder(&buf), + framer: newFramer(conn, writeBufSize, readBufSize), + controlBuf: newControlBuffer(), + fc: &inFlow{limit: uint32(icwz)}, + sendQuotaPool: newQuotaPool(defaultWindowSize), + localSendQuota: newQuotaPool(defaultLocalSendQuota), + scheme: scheme, + state: reachable, + activeStreams: make(map[uint32]*Stream), + isSecure: isSecure, + creds: opts.PerRPCCredentials, + maxStreams: defaultMaxStreamsClient, + streamsQuota: newQuotaPool(defaultMaxStreamsClient), + streamSendQuota: defaultWindowSize, + kp: kp, + statsHandler: opts.StatsHandler, + initialWindowSize: initialWindowSize, + onSuccess: onSuccess, + } + if opts.InitialWindowSize >= defaultWindowSize { + t.initialWindowSize = opts.InitialWindowSize + dynamicWindow = false + } + if dynamicWindow { + t.bdpEst = &bdpEstimator{ + bdp: initialWindowSize, + updateFlowControl: t.updateFlowControl, + } + } + // Make sure awakenKeepalive can't be written upon. + // keepalive routine will make it writable, if need be. + t.awakenKeepalive <- struct{}{} + if t.statsHandler != nil { + t.ctx = t.statsHandler.TagConn(t.ctx, &stats.ConnTagInfo{ + RemoteAddr: t.remoteAddr, + LocalAddr: t.localAddr, + }) + connBegin := &stats.ConnBegin{ + Client: true, + } + t.statsHandler.HandleConn(t.ctx, connBegin) + } + // Start the reader goroutine for incoming message. Each transport has + // a dedicated goroutine which reads HTTP2 frame from network. Then it + // dispatches the frame to the corresponding stream entity. + go t.reader() + // Send connection preface to server. + n, err := t.conn.Write(clientPreface) + if err != nil { + t.Close() + return nil, connectionErrorf(true, err, "transport: failed to write client preface: %v", err) + } + if n != len(clientPreface) { + t.Close() + return nil, connectionErrorf(true, err, "transport: preface mismatch, wrote %d bytes; want %d", n, len(clientPreface)) + } + if t.initialWindowSize != defaultWindowSize { + err = t.framer.fr.WriteSettings(http2.Setting{ + ID: http2.SettingInitialWindowSize, + Val: uint32(t.initialWindowSize), + }) + } else { + err = t.framer.fr.WriteSettings() + } + if err != nil { + t.Close() + return nil, connectionErrorf(true, err, "transport: failed to write initial settings frame: %v", err) + } + // Adjust the connection flow control window if needed. + if delta := uint32(icwz - defaultWindowSize); delta > 0 { + if err := t.framer.fr.WriteWindowUpdate(0, delta); err != nil { + t.Close() + return nil, connectionErrorf(true, err, "transport: failed to write window update: %v", err) + } + } + t.framer.writer.Flush() + go func() { + loopyWriter(t.ctx, t.controlBuf, t.itemHandler) + t.conn.Close() + }() + if t.kp.Time != infinity { + go t.keepalive() + } + return t, nil +} + +func (t *http2Client) newStream(ctx context.Context, callHdr *CallHdr) *Stream { + // TODO(zhaoq): Handle uint32 overflow of Stream.id. + s := &Stream{ + id: t.nextID, + done: make(chan struct{}), + goAway: make(chan struct{}), + method: callHdr.Method, + sendCompress: callHdr.SendCompress, + buf: newRecvBuffer(), + fc: &inFlow{limit: uint32(t.initialWindowSize)}, + sendQuotaPool: newQuotaPool(int(t.streamSendQuota)), + headerChan: make(chan struct{}), + contentSubtype: callHdr.ContentSubtype, + } + t.nextID += 2 + s.requestRead = func(n int) { + t.adjustWindow(s, uint32(n)) + } + // The client side stream context should have exactly the same life cycle with the user provided context. + // That means, s.ctx should be read-only. And s.ctx is done iff ctx is done. + // So we use the original context here instead of creating a copy. + s.ctx = ctx + s.trReader = &transportReader{ + reader: &recvBufferReader{ + ctx: s.ctx, + goAway: s.goAway, + recv: s.buf, + }, + windowHandler: func(n int) { + t.updateWindow(s, uint32(n)) + }, + } + s.waiters = waiters{ + ctx: s.ctx, + tctx: t.ctx, + done: s.done, + goAway: s.goAway, + } + return s +} + +// NewStream creates a stream and registers it into the transport as "active" +// streams. +func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (_ *Stream, err error) { + pr := &peer.Peer{ + Addr: t.remoteAddr, + } + // Attach Auth info if there is any. + if t.authInfo != nil { + pr.AuthInfo = t.authInfo + } + ctx = peer.NewContext(ctx, pr) + var ( + authData = make(map[string]string) + audience string + ) + // Create an audience string only if needed. + if len(t.creds) > 0 || callHdr.Creds != nil { + // Construct URI required to get auth request metadata. + // Omit port if it is the default one. + host := strings.TrimSuffix(callHdr.Host, ":443") + pos := strings.LastIndex(callHdr.Method, "/") + if pos == -1 { + pos = len(callHdr.Method) + } + audience = "https://" + host + callHdr.Method[:pos] + } + for _, c := range t.creds { + data, err := c.GetRequestMetadata(ctx, audience) + if err != nil { + if _, ok := status.FromError(err); ok { + return nil, err + } + + return nil, streamErrorf(codes.Unauthenticated, "transport: %v", err) + } + for k, v := range data { + // Capital header names are illegal in HTTP/2. + k = strings.ToLower(k) + authData[k] = v + } + } + callAuthData := map[string]string{} + // Check if credentials.PerRPCCredentials were provided via call options. + // Note: if these credentials are provided both via dial options and call + // options, then both sets of credentials will be applied. + if callCreds := callHdr.Creds; callCreds != nil { + if !t.isSecure && callCreds.RequireTransportSecurity() { + return nil, streamErrorf(codes.Unauthenticated, "transport: cannot send secure credentials on an insecure connection") + } + data, err := callCreds.GetRequestMetadata(ctx, audience) + if err != nil { + return nil, streamErrorf(codes.Internal, "transport: %v", err) + } + for k, v := range data { + // Capital header names are illegal in HTTP/2 + k = strings.ToLower(k) + callAuthData[k] = v + } + } + t.mu.Lock() + if t.activeStreams == nil { + t.mu.Unlock() + return nil, ErrConnClosing + } + if t.state == draining { + t.mu.Unlock() + return nil, errStreamDrain + } + if t.state != reachable { + t.mu.Unlock() + return nil, ErrConnClosing + } + t.mu.Unlock() + // Get a quota of 1 from streamsQuota. + if _, _, err := t.streamsQuota.get(1, waiters{ctx: ctx, tctx: t.ctx}); err != nil { + return nil, err + } + // TODO(mmukhi): Benchmark if the performance gets better if count the metadata and other header fields + // first and create a slice of that exact size. + // Make the slice of certain predictable size to reduce allocations made by append. + hfLen := 7 // :method, :scheme, :path, :authority, content-type, user-agent, te + hfLen += len(authData) + len(callAuthData) + headerFields := make([]hpack.HeaderField, 0, hfLen) + headerFields = append(headerFields, hpack.HeaderField{Name: ":method", Value: "POST"}) + headerFields = append(headerFields, hpack.HeaderField{Name: ":scheme", Value: t.scheme}) + headerFields = append(headerFields, hpack.HeaderField{Name: ":path", Value: callHdr.Method}) + headerFields = append(headerFields, hpack.HeaderField{Name: ":authority", Value: callHdr.Host}) + headerFields = append(headerFields, hpack.HeaderField{Name: "content-type", Value: contentType(callHdr.ContentSubtype)}) + headerFields = append(headerFields, hpack.HeaderField{Name: "user-agent", Value: t.userAgent}) + headerFields = append(headerFields, hpack.HeaderField{Name: "te", Value: "trailers"}) + + if callHdr.SendCompress != "" { + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-encoding", Value: callHdr.SendCompress}) + } + if dl, ok := ctx.Deadline(); ok { + // Send out timeout regardless its value. The server can detect timeout context by itself. + // TODO(mmukhi): Perhaps this field should be updated when actually writing out to the wire. + timeout := dl.Sub(time.Now()) + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-timeout", Value: encodeTimeout(timeout)}) + } + for k, v := range authData { + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + for k, v := range callAuthData { + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + if b := stats.OutgoingTags(ctx); b != nil { + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-tags-bin", Value: encodeBinHeader(b)}) + } + if b := stats.OutgoingTrace(ctx); b != nil { + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-trace-bin", Value: encodeBinHeader(b)}) + } + + if md, added, ok := metadata.FromOutgoingContextRaw(ctx); ok { + var k string + for _, vv := range added { + for i, v := range vv { + if i%2 == 0 { + k = v + continue + } + // HTTP doesn't allow you to set pseudoheaders after non pseudoheaders were set. + if isReservedHeader(k) { + continue + } + headerFields = append(headerFields, hpack.HeaderField{Name: strings.ToLower(k), Value: encodeMetadataHeader(k, v)}) + } + } + for k, vv := range md { + // HTTP doesn't allow you to set pseudoheaders after non pseudoheaders were set. + if isReservedHeader(k) { + continue + } + for _, v := range vv { + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + } + } + if md, ok := t.md.(*metadata.MD); ok { + for k, vv := range *md { + if isReservedHeader(k) { + continue + } + for _, v := range vv { + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + } + } + t.mu.Lock() + if t.state == draining { + t.mu.Unlock() + t.streamsQuota.add(1) + return nil, errStreamDrain + } + if t.state != reachable { + t.mu.Unlock() + return nil, ErrConnClosing + } + s := t.newStream(ctx, callHdr) + t.activeStreams[s.id] = s + // If the number of active streams change from 0 to 1, then check if keepalive + // has gone dormant. If so, wake it up. + if len(t.activeStreams) == 1 { + select { + case t.awakenKeepalive <- struct{}{}: + t.controlBuf.put(&ping{data: [8]byte{}}) + // Fill the awakenKeepalive channel again as this channel must be + // kept non-writable except at the point that the keepalive() + // goroutine is waiting either to be awaken or shutdown. + t.awakenKeepalive <- struct{}{} + default: + } + } + t.controlBuf.put(&headerFrame{ + streamID: s.id, + hf: headerFields, + endStream: false, + }) + t.mu.Unlock() + + if t.statsHandler != nil { + outHeader := &stats.OutHeader{ + Client: true, + FullMethod: callHdr.Method, + RemoteAddr: t.remoteAddr, + LocalAddr: t.localAddr, + Compression: callHdr.SendCompress, + } + t.statsHandler.HandleRPC(s.ctx, outHeader) + } + return s, nil +} + +// CloseStream clears the footprint of a stream when the stream is not needed any more. +// This must not be executed in reader's goroutine. +func (t *http2Client) CloseStream(s *Stream, err error) { + t.mu.Lock() + if t.activeStreams == nil { + t.mu.Unlock() + return + } + if err != nil { + // notify in-flight streams, before the deletion + s.write(recvMsg{err: err}) + } + delete(t.activeStreams, s.id) + if t.state == draining && len(t.activeStreams) == 0 { + // The transport is draining and s is the last live stream on t. + t.mu.Unlock() + t.Close() + return + } + t.mu.Unlock() + // rstStream is true in case the stream is being closed at the client-side + // and the server needs to be intimated about it by sending a RST_STREAM + // frame. + // To make sure this frame is written to the wire before the headers of the + // next stream waiting for streamsQuota, we add to streamsQuota pool only + // after having acquired the writableChan to send RST_STREAM out (look at + // the controller() routine). + var rstStream bool + var rstError http2.ErrCode + defer func() { + // In case, the client doesn't have to send RST_STREAM to server + // we can safely add back to streamsQuota pool now. + if !rstStream { + t.streamsQuota.add(1) + return + } + t.controlBuf.put(&resetStream{s.id, rstError}) + }() + s.mu.Lock() + rstStream = s.rstStream + rstError = s.rstError + if s.state == streamDone { + s.mu.Unlock() + return + } + if !s.headerDone { + close(s.headerChan) + s.headerDone = true + } + s.state = streamDone + s.mu.Unlock() + if err != nil && !rstStream { + rstStream = true + rstError = http2.ErrCodeCancel + } +} + +// Close kicks off the shutdown process of the transport. This should be called +// only once on a transport. Once it is called, the transport should not be +// accessed any more. +func (t *http2Client) Close() error { + t.mu.Lock() + if t.state == closing { + t.mu.Unlock() + return nil + } + t.state = closing + t.mu.Unlock() + t.cancel() + err := t.conn.Close() + t.mu.Lock() + streams := t.activeStreams + t.activeStreams = nil + t.mu.Unlock() + // Notify all active streams. + for _, s := range streams { + s.mu.Lock() + if !s.headerDone { + close(s.headerChan) + s.headerDone = true + } + s.mu.Unlock() + s.write(recvMsg{err: ErrConnClosing}) + } + if t.statsHandler != nil { + connEnd := &stats.ConnEnd{ + Client: true, + } + t.statsHandler.HandleConn(t.ctx, connEnd) + } + return err +} + +// GracefulClose sets the state to draining, which prevents new streams from +// being created and causes the transport to be closed when the last active +// stream is closed. If there are no active streams, the transport is closed +// immediately. This does nothing if the transport is already draining or +// closing. +func (t *http2Client) GracefulClose() error { + t.mu.Lock() + switch t.state { + case closing, draining: + t.mu.Unlock() + return nil + } + t.state = draining + active := len(t.activeStreams) + t.mu.Unlock() + if active == 0 { + return t.Close() + } + return nil +} + +// Write formats the data into HTTP2 data frame(s) and sends it out. The caller +// should proceed only if Write returns nil. +func (t *http2Client) Write(s *Stream, hdr []byte, data []byte, opts *Options) error { + select { + case <-s.ctx.Done(): + return ContextErr(s.ctx.Err()) + case <-s.done: + return io.EOF + case <-t.ctx.Done(): + return ErrConnClosing + default: + } + + if hdr == nil && data == nil && opts.Last { + // stream.CloseSend uses this to send an empty frame with endStream=True + t.controlBuf.put(&dataFrame{streamID: s.id, endStream: true, f: func() {}}) + return nil + } + // Add data to header frame so that we can equally distribute data across frames. + emptyLen := http2MaxFrameLen - len(hdr) + if emptyLen > len(data) { + emptyLen = len(data) + } + hdr = append(hdr, data[:emptyLen]...) + data = data[emptyLen:] + var ( + streamQuota int + streamQuotaVer uint32 + err error + ) + for idx, r := range [][]byte{hdr, data} { + for len(r) > 0 { + size := http2MaxFrameLen + if size > len(r) { + size = len(r) + } + if streamQuota == 0 { // Used up all the locally cached stream quota. + // Get all the stream quota there is. + streamQuota, streamQuotaVer, err = s.sendQuotaPool.get(math.MaxInt32, s.waiters) + if err != nil { + return err + } + } + if size > streamQuota { + size = streamQuota + } + + // Get size worth quota from transport. + tq, _, err := t.sendQuotaPool.get(size, s.waiters) + if err != nil { + return err + } + if tq < size { + size = tq + } + ltq, _, err := t.localSendQuota.get(size, s.waiters) + if err != nil { + // Add the acquired quota back to transport. + t.sendQuotaPool.add(tq) + return err + } + // even if ltq is smaller than size we don't adjust size since + // ltq is only a soft limit. + streamQuota -= size + p := r[:size] + var endStream bool + // See if this is the last frame to be written. + if opts.Last { + if len(r)-size == 0 { // No more data in r after this iteration. + if idx == 0 { // We're writing data header. + if len(data) == 0 { // There's no data to follow. + endStream = true + } + } else { // We're writing data. + endStream = true + } + } + } + success := func() { + ltq := ltq + t.controlBuf.put(&dataFrame{streamID: s.id, endStream: endStream, d: p, f: func() { t.localSendQuota.add(ltq) }}) + r = r[size:] + } + failure := func() { // The stream quota version must have changed. + // Our streamQuota cache is invalidated now, so give it back. + s.sendQuotaPool.lockedAdd(streamQuota + size) + } + if !s.sendQuotaPool.compareAndExecute(streamQuotaVer, success, failure) { + // Couldn't send this chunk out. + t.sendQuotaPool.add(size) + t.localSendQuota.add(ltq) + streamQuota = 0 + } + } + } + if streamQuota > 0 { // Add the left over quota back to stream. + s.sendQuotaPool.add(streamQuota) + } + if !opts.Last { + return nil + } + s.mu.Lock() + if s.state != streamDone { + s.state = streamWriteDone + } + s.mu.Unlock() + return nil +} + +func (t *http2Client) getStream(f http2.Frame) (*Stream, bool) { + t.mu.Lock() + defer t.mu.Unlock() + s, ok := t.activeStreams[f.Header().StreamID] + return s, ok +} + +// adjustWindow sends out extra window update over the initial window size +// of stream if the application is requesting data larger in size than +// the window. +func (t *http2Client) adjustWindow(s *Stream, n uint32) { + s.mu.Lock() + defer s.mu.Unlock() + if s.state == streamDone { + return + } + if w := s.fc.maybeAdjust(n); w > 0 { + // Piggyback connection's window update along. + if cw := t.fc.resetPendingUpdate(); cw > 0 { + t.controlBuf.put(&windowUpdate{0, cw}) + } + t.controlBuf.put(&windowUpdate{s.id, w}) + } +} + +// updateWindow adjusts the inbound quota for the stream and the transport. +// Window updates will deliver to the controller for sending when +// the cumulative quota exceeds the corresponding threshold. +func (t *http2Client) updateWindow(s *Stream, n uint32) { + s.mu.Lock() + defer s.mu.Unlock() + if s.state == streamDone { + return + } + if w := s.fc.onRead(n); w > 0 { + if cw := t.fc.resetPendingUpdate(); cw > 0 { + t.controlBuf.put(&windowUpdate{0, cw}) + } + t.controlBuf.put(&windowUpdate{s.id, w}) + } +} + +// updateFlowControl updates the incoming flow control windows +// for the transport and the stream based on the current bdp +// estimation. +func (t *http2Client) updateFlowControl(n uint32) { + t.mu.Lock() + for _, s := range t.activeStreams { + s.fc.newLimit(n) + } + t.initialWindowSize = int32(n) + t.mu.Unlock() + t.controlBuf.put(&windowUpdate{0, t.fc.newLimit(n)}) + t.controlBuf.put(&settings{ + ss: []http2.Setting{ + { + ID: http2.SettingInitialWindowSize, + Val: uint32(n), + }, + }, + }) +} + +func (t *http2Client) handleData(f *http2.DataFrame) { + size := f.Header().Length + var sendBDPPing bool + if t.bdpEst != nil { + sendBDPPing = t.bdpEst.add(uint32(size)) + } + // Decouple connection's flow control from application's read. + // An update on connection's flow control should not depend on + // whether user application has read the data or not. Such a + // restriction is already imposed on the stream's flow control, + // and therefore the sender will be blocked anyways. + // Decoupling the connection flow control will prevent other + // active(fast) streams from starving in presence of slow or + // inactive streams. + // + // Furthermore, if a bdpPing is being sent out we can piggyback + // connection's window update for the bytes we just received. + if sendBDPPing { + if size != 0 { // Could've been an empty data frame. + t.controlBuf.put(&windowUpdate{0, uint32(size)}) + } + t.controlBuf.put(bdpPing) + } else { + if err := t.fc.onData(uint32(size)); err != nil { + t.Close() + return + } + if w := t.fc.onRead(uint32(size)); w > 0 { + t.controlBuf.put(&windowUpdate{0, w}) + } + } + // Select the right stream to dispatch. + s, ok := t.getStream(f) + if !ok { + return + } + if size > 0 { + s.mu.Lock() + if s.state == streamDone { + s.mu.Unlock() + return + } + if err := s.fc.onData(uint32(size)); err != nil { + s.rstStream = true + s.rstError = http2.ErrCodeFlowControl + s.finish(status.New(codes.Internal, err.Error())) + s.mu.Unlock() + s.write(recvMsg{err: io.EOF}) + return + } + if f.Header().Flags.Has(http2.FlagDataPadded) { + if w := s.fc.onRead(uint32(size) - uint32(len(f.Data()))); w > 0 { + t.controlBuf.put(&windowUpdate{s.id, w}) + } + } + s.mu.Unlock() + // TODO(bradfitz, zhaoq): A copy is required here because there is no + // guarantee f.Data() is consumed before the arrival of next frame. + // Can this copy be eliminated? + if len(f.Data()) > 0 { + data := make([]byte, len(f.Data())) + copy(data, f.Data()) + s.write(recvMsg{data: data}) + } + } + // The server has closed the stream without sending trailers. Record that + // the read direction is closed, and set the status appropriately. + if f.FrameHeader.Flags.Has(http2.FlagDataEndStream) { + s.mu.Lock() + if s.state == streamDone { + s.mu.Unlock() + return + } + s.finish(status.New(codes.Internal, "server closed the stream without sending trailers")) + s.mu.Unlock() + s.write(recvMsg{err: io.EOF}) + } +} + +func (t *http2Client) handleRSTStream(f *http2.RSTStreamFrame) { + s, ok := t.getStream(f) + if !ok { + return + } + s.mu.Lock() + if s.state == streamDone { + s.mu.Unlock() + return + } + if !s.headerDone { + close(s.headerChan) + s.headerDone = true + } + + code := http2.ErrCode(f.ErrCode) + if code == http2.ErrCodeRefusedStream { + // The stream was unprocessed by the server. + s.unprocessed = true + } + statusCode, ok := http2ErrConvTab[code] + if !ok { + warningf("transport: http2Client.handleRSTStream found no mapped gRPC status for the received http2 error %v", f.ErrCode) + statusCode = codes.Unknown + } + s.finish(status.Newf(statusCode, "stream terminated by RST_STREAM with error code: %v", f.ErrCode)) + s.mu.Unlock() + s.write(recvMsg{err: io.EOF}) +} + +func (t *http2Client) handleSettings(f *http2.SettingsFrame, isFirst bool) { + if f.IsAck() { + return + } + var rs []http2.Setting + var ps []http2.Setting + isMaxConcurrentStreamsMissing := true + f.ForeachSetting(func(s http2.Setting) error { + if s.ID == http2.SettingMaxConcurrentStreams { + isMaxConcurrentStreamsMissing = false + } + if t.isRestrictive(s) { + rs = append(rs, s) + } else { + ps = append(ps, s) + } + return nil + }) + if isFirst && isMaxConcurrentStreamsMissing { + // This means server is imposing no limits on + // maximum number of concurrent streams initiated by client. + // So we must remove our self-imposed limit. + ps = append(ps, http2.Setting{ + ID: http2.SettingMaxConcurrentStreams, + Val: math.MaxUint32, + }) + } + t.applySettings(rs) + t.controlBuf.put(&settingsAck{}) + t.applySettings(ps) +} + +func (t *http2Client) isRestrictive(s http2.Setting) bool { + switch s.ID { + case http2.SettingMaxConcurrentStreams: + return int(s.Val) < t.maxStreams + case http2.SettingInitialWindowSize: + // Note: we don't acquire a lock here to read streamSendQuota + // because the same goroutine updates it later. + return s.Val < t.streamSendQuota + } + return false +} + +func (t *http2Client) handlePing(f *http2.PingFrame) { + if f.IsAck() { + // Maybe it's a BDP ping. + if t.bdpEst != nil { + t.bdpEst.calculate(f.Data) + } + return + } + pingAck := &ping{ack: true} + copy(pingAck.data[:], f.Data[:]) + t.controlBuf.put(pingAck) +} + +func (t *http2Client) handleGoAway(f *http2.GoAwayFrame) { + t.mu.Lock() + if t.state != reachable && t.state != draining { + t.mu.Unlock() + return + } + if f.ErrCode == http2.ErrCodeEnhanceYourCalm { + infof("Client received GoAway with http2.ErrCodeEnhanceYourCalm.") + } + id := f.LastStreamID + if id > 0 && id%2 != 1 { + t.mu.Unlock() + t.Close() + return + } + // A client can receive multiple GoAways from the server (see + // https://github.com/grpc/grpc-go/issues/1387). The idea is that the first + // GoAway will be sent with an ID of MaxInt32 and the second GoAway will be + // sent after an RTT delay with the ID of the last stream the server will + // process. + // + // Therefore, when we get the first GoAway we don't necessarily close any + // streams. While in case of second GoAway we close all streams created after + // the GoAwayId. This way streams that were in-flight while the GoAway from + // server was being sent don't get killed. + select { + case <-t.goAway: // t.goAway has been closed (i.e.,multiple GoAways). + // If there are multiple GoAways the first one should always have an ID greater than the following ones. + if id > t.prevGoAwayID { + t.mu.Unlock() + t.Close() + return + } + default: + t.setGoAwayReason(f) + close(t.goAway) + t.state = draining + } + // All streams with IDs greater than the GoAwayId + // and smaller than the previous GoAway ID should be killed. + upperLimit := t.prevGoAwayID + if upperLimit == 0 { // This is the first GoAway Frame. + upperLimit = math.MaxUint32 // Kill all streams after the GoAway ID. + } + for streamID, stream := range t.activeStreams { + if streamID > id && streamID <= upperLimit { + // The stream was unprocessed by the server. + stream.mu.Lock() + stream.unprocessed = true + stream.finish(statusGoAway) + stream.mu.Unlock() + close(stream.goAway) + } + } + t.prevGoAwayID = id + active := len(t.activeStreams) + t.mu.Unlock() + if active == 0 { + t.Close() + } +} + +// setGoAwayReason sets the value of t.goAwayReason based +// on the GoAway frame received. +// It expects a lock on transport's mutext to be held by +// the caller. +func (t *http2Client) setGoAwayReason(f *http2.GoAwayFrame) { + t.goAwayReason = GoAwayNoReason + switch f.ErrCode { + case http2.ErrCodeEnhanceYourCalm: + if string(f.DebugData()) == "too_many_pings" { + t.goAwayReason = GoAwayTooManyPings + } + } +} + +func (t *http2Client) GetGoAwayReason() GoAwayReason { + t.mu.Lock() + defer t.mu.Unlock() + return t.goAwayReason +} + +func (t *http2Client) handleWindowUpdate(f *http2.WindowUpdateFrame) { + id := f.Header().StreamID + incr := f.Increment + if id == 0 { + t.sendQuotaPool.add(int(incr)) + return + } + if s, ok := t.getStream(f); ok { + s.sendQuotaPool.add(int(incr)) + } +} + +// operateHeaders takes action on the decoded headers. +func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { + s, ok := t.getStream(frame) + if !ok { + return + } + s.mu.Lock() + s.bytesReceived = true + s.mu.Unlock() + var state decodeState + if err := state.decodeResponseHeader(frame); err != nil { + s.mu.Lock() + if !s.headerDone { + close(s.headerChan) + s.headerDone = true + } + s.mu.Unlock() + s.write(recvMsg{err: err}) + // Something wrong. Stops reading even when there is remaining. + return + } + + endStream := frame.StreamEnded() + var isHeader bool + defer func() { + if t.statsHandler != nil { + if isHeader { + inHeader := &stats.InHeader{ + Client: true, + WireLength: int(frame.Header().Length), + } + t.statsHandler.HandleRPC(s.ctx, inHeader) + } else { + inTrailer := &stats.InTrailer{ + Client: true, + WireLength: int(frame.Header().Length), + } + t.statsHandler.HandleRPC(s.ctx, inTrailer) + } + } + }() + + s.mu.Lock() + if !s.headerDone { + if !endStream { + // Headers frame is not actually a trailers-only frame. + isHeader = true + s.recvCompress = state.encoding + if len(state.mdata) > 0 { + s.header = state.mdata + } + } + close(s.headerChan) + s.headerDone = true + } + if !endStream || s.state == streamDone { + s.mu.Unlock() + return + } + if len(state.mdata) > 0 { + s.trailer = state.mdata + } + s.finish(state.status()) + s.mu.Unlock() + s.write(recvMsg{err: io.EOF}) +} + +func handleMalformedHTTP2(s *Stream, err error) { + s.mu.Lock() + if !s.headerDone { + close(s.headerChan) + s.headerDone = true + } + s.mu.Unlock() + s.write(recvMsg{err: err}) +} + +// reader runs as a separate goroutine in charge of reading data from network +// connection. +// +// TODO(zhaoq): currently one reader per transport. Investigate whether this is +// optimal. +// TODO(zhaoq): Check the validity of the incoming frame sequence. +func (t *http2Client) reader() { + // Check the validity of server preface. + frame, err := t.framer.fr.ReadFrame() + if err != nil { + t.Close() + return + } + atomic.CompareAndSwapUint32(&t.activity, 0, 1) + sf, ok := frame.(*http2.SettingsFrame) + if !ok { + t.Close() + return + } + t.onSuccess() + t.handleSettings(sf, true) + + // loop to keep reading incoming messages on this transport. + for { + frame, err := t.framer.fr.ReadFrame() + atomic.CompareAndSwapUint32(&t.activity, 0, 1) + if err != nil { + // Abort an active stream if the http2.Framer returns a + // http2.StreamError. This can happen only if the server's response + // is malformed http2. + if se, ok := err.(http2.StreamError); ok { + t.mu.Lock() + s := t.activeStreams[se.StreamID] + t.mu.Unlock() + if s != nil { + // use error detail to provide better err message + handleMalformedHTTP2(s, streamErrorf(http2ErrConvTab[se.Code], "%v", t.framer.fr.ErrorDetail())) + } + continue + } else { + // Transport error. + t.Close() + return + } + } + switch frame := frame.(type) { + case *http2.MetaHeadersFrame: + t.operateHeaders(frame) + case *http2.DataFrame: + t.handleData(frame) + case *http2.RSTStreamFrame: + t.handleRSTStream(frame) + case *http2.SettingsFrame: + t.handleSettings(frame, false) + case *http2.PingFrame: + t.handlePing(frame) + case *http2.GoAwayFrame: + t.handleGoAway(frame) + case *http2.WindowUpdateFrame: + t.handleWindowUpdate(frame) + default: + errorf("transport: http2Client.reader got unhandled frame type %v.", frame) + } + } +} + +func (t *http2Client) applySettings(ss []http2.Setting) { + for _, s := range ss { + switch s.ID { + case http2.SettingMaxConcurrentStreams: + // TODO(zhaoq): This is a hack to avoid significant refactoring of the + // code to deal with the unrealistic int32 overflow. Probably will try + // to find a better way to handle this later. + if s.Val > math.MaxInt32 { + s.Val = math.MaxInt32 + } + ms := t.maxStreams + t.maxStreams = int(s.Val) + t.streamsQuota.add(int(s.Val) - ms) + case http2.SettingInitialWindowSize: + t.mu.Lock() + for _, stream := range t.activeStreams { + // Adjust the sending quota for each stream. + stream.sendQuotaPool.addAndUpdate(int(s.Val) - int(t.streamSendQuota)) + } + t.streamSendQuota = s.Val + t.mu.Unlock() + } + } +} + +// TODO(mmukhi): A lot of this code(and code in other places in the tranpsort layer) +// is duplicated between the client and the server. +// The transport layer needs to be refactored to take care of this. +func (t *http2Client) itemHandler(i item) (err error) { + defer func() { + if err != nil { + errorf(" error in itemHandler: %v", err) + } + }() + switch i := i.(type) { + case *dataFrame: + if err := t.framer.fr.WriteData(i.streamID, i.endStream, i.d); err != nil { + return err + } + i.f() + return nil + case *headerFrame: + t.hBuf.Reset() + for _, f := range i.hf { + t.hEnc.WriteField(f) + } + endHeaders := false + first := true + for !endHeaders { + size := t.hBuf.Len() + if size > http2MaxFrameLen { + size = http2MaxFrameLen + } else { + endHeaders = true + } + if first { + first = false + err = t.framer.fr.WriteHeaders(http2.HeadersFrameParam{ + StreamID: i.streamID, + BlockFragment: t.hBuf.Next(size), + EndStream: i.endStream, + EndHeaders: endHeaders, + }) + } else { + err = t.framer.fr.WriteContinuation( + i.streamID, + endHeaders, + t.hBuf.Next(size), + ) + } + if err != nil { + return err + } + } + return nil + case *windowUpdate: + return t.framer.fr.WriteWindowUpdate(i.streamID, i.increment) + case *settings: + return t.framer.fr.WriteSettings(i.ss...) + case *settingsAck: + return t.framer.fr.WriteSettingsAck() + case *resetStream: + // If the server needs to be to intimated about stream closing, + // then we need to make sure the RST_STREAM frame is written to + // the wire before the headers of the next stream waiting on + // streamQuota. We ensure this by adding to the streamsQuota pool + // only after having acquired the writableChan to send RST_STREAM. + err := t.framer.fr.WriteRSTStream(i.streamID, i.code) + t.streamsQuota.add(1) + return err + case *flushIO: + return t.framer.writer.Flush() + case *ping: + if !i.ack { + t.bdpEst.timesnap(i.data) + } + return t.framer.fr.WritePing(i.ack, i.data) + default: + errorf("transport: http2Client.controller got unexpected item type %v", i) + return fmt.Errorf("transport: http2Client.controller got unexpected item type %v", i) + } +} + +// keepalive running in a separate goroutune makes sure the connection is alive by sending pings. +func (t *http2Client) keepalive() { + p := &ping{data: [8]byte{}} + timer := time.NewTimer(t.kp.Time) + for { + select { + case <-timer.C: + if atomic.CompareAndSwapUint32(&t.activity, 1, 0) { + timer.Reset(t.kp.Time) + continue + } + // Check if keepalive should go dormant. + t.mu.Lock() + if len(t.activeStreams) < 1 && !t.kp.PermitWithoutStream { + // Make awakenKeepalive writable. + <-t.awakenKeepalive + t.mu.Unlock() + select { + case <-t.awakenKeepalive: + // If the control gets here a ping has been sent + // need to reset the timer with keepalive.Timeout. + case <-t.ctx.Done(): + return + } + } else { + t.mu.Unlock() + // Send ping. + t.controlBuf.put(p) + } + + // By the time control gets here a ping has been sent one way or the other. + timer.Reset(t.kp.Timeout) + select { + case <-timer.C: + if atomic.CompareAndSwapUint32(&t.activity, 1, 0) { + timer.Reset(t.kp.Time) + continue + } + t.Close() + return + case <-t.ctx.Done(): + if !timer.Stop() { + <-timer.C + } + return + } + case <-t.ctx.Done(): + if !timer.Stop() { + <-timer.C + } + return + } + } +} + +func (t *http2Client) Error() <-chan struct{} { + return t.ctx.Done() +} + +func (t *http2Client) GoAway() <-chan struct{} { + return t.goAway +} diff --git a/vendor/google.golang.org/grpc/transport/http2_server.go b/vendor/google.golang.org/grpc/transport/http2_server.go new file mode 100644 index 0000000..97b214c --- /dev/null +++ b/vendor/google.golang.org/grpc/transport/http2_server.go @@ -0,0 +1,1210 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "bytes" + "errors" + "fmt" + "io" + "math" + "math/rand" + "net" + "strconv" + "sync" + "sync/atomic" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + "golang.org/x/net/http2" + "golang.org/x/net/http2/hpack" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" + "google.golang.org/grpc/tap" +) + +// ErrIllegalHeaderWrite indicates that setting header is illegal because of +// the stream's state. +var ErrIllegalHeaderWrite = errors.New("transport: the stream is done or WriteHeader was already called") + +// http2Server implements the ServerTransport interface with HTTP2. +type http2Server struct { + ctx context.Context + cancel context.CancelFunc + conn net.Conn + remoteAddr net.Addr + localAddr net.Addr + maxStreamID uint32 // max stream ID ever seen + authInfo credentials.AuthInfo // auth info about the connection + inTapHandle tap.ServerInHandle + framer *framer + hBuf *bytes.Buffer // the buffer for HPACK encoding + hEnc *hpack.Encoder // HPACK encoder + // The max number of concurrent streams. + maxStreams uint32 + // controlBuf delivers all the control related tasks (e.g., window + // updates, reset streams, and various settings) to the controller. + controlBuf *controlBuffer + fc *inFlow + // sendQuotaPool provides flow control to outbound message. + sendQuotaPool *quotaPool + // localSendQuota limits the amount of data that can be scheduled + // for writing before it is actually written out. + localSendQuota *quotaPool + stats stats.Handler + // Flag to keep track of reading activity on transport. + // 1 is true and 0 is false. + activity uint32 // Accessed atomically. + // Keepalive and max-age parameters for the server. + kp keepalive.ServerParameters + + // Keepalive enforcement policy. + kep keepalive.EnforcementPolicy + // The time instance last ping was received. + lastPingAt time.Time + // Number of times the client has violated keepalive ping policy so far. + pingStrikes uint8 + // Flag to signify that number of ping strikes should be reset to 0. + // This is set whenever data or header frames are sent. + // 1 means yes. + resetPingStrikes uint32 // Accessed atomically. + initialWindowSize int32 + bdpEst *bdpEstimator + + mu sync.Mutex // guard the following + + // drainChan is initialized when drain(...) is called the first time. + // After which the server writes out the first GoAway(with ID 2^31-1) frame. + // Then an independent goroutine will be launched to later send the second GoAway. + // During this time we don't want to write another first GoAway(with ID 2^31 -1) frame. + // Thus call to drain(...) will be a no-op if drainChan is already initialized since draining is + // already underway. + drainChan chan struct{} + state transportState + activeStreams map[uint32]*Stream + // the per-stream outbound flow control window size set by the peer. + streamSendQuota uint32 + // idle is the time instant when the connection went idle. + // This is either the beginning of the connection or when the number of + // RPCs go down to 0. + // When the connection is busy, this value is set to 0. + idle time.Time +} + +// newHTTP2Server constructs a ServerTransport based on HTTP2. ConnectionError is +// returned if something goes wrong. +func newHTTP2Server(conn net.Conn, config *ServerConfig) (_ ServerTransport, err error) { + writeBufSize := defaultWriteBufSize + if config.WriteBufferSize > 0 { + writeBufSize = config.WriteBufferSize + } + readBufSize := defaultReadBufSize + if config.ReadBufferSize > 0 { + readBufSize = config.ReadBufferSize + } + framer := newFramer(conn, writeBufSize, readBufSize) + // Send initial settings as connection preface to client. + var isettings []http2.Setting + // TODO(zhaoq): Have a better way to signal "no limit" because 0 is + // permitted in the HTTP2 spec. + maxStreams := config.MaxStreams + if maxStreams == 0 { + maxStreams = math.MaxUint32 + } else { + isettings = append(isettings, http2.Setting{ + ID: http2.SettingMaxConcurrentStreams, + Val: maxStreams, + }) + } + dynamicWindow := true + iwz := int32(initialWindowSize) + if config.InitialWindowSize >= defaultWindowSize { + iwz = config.InitialWindowSize + dynamicWindow = false + } + icwz := int32(initialWindowSize) + if config.InitialConnWindowSize >= defaultWindowSize { + icwz = config.InitialConnWindowSize + dynamicWindow = false + } + if iwz != defaultWindowSize { + isettings = append(isettings, http2.Setting{ + ID: http2.SettingInitialWindowSize, + Val: uint32(iwz)}) + } + if err := framer.fr.WriteSettings(isettings...); err != nil { + return nil, connectionErrorf(false, err, "transport: %v", err) + } + // Adjust the connection flow control window if needed. + if delta := uint32(icwz - defaultWindowSize); delta > 0 { + if err := framer.fr.WriteWindowUpdate(0, delta); err != nil { + return nil, connectionErrorf(false, err, "transport: %v", err) + } + } + kp := config.KeepaliveParams + if kp.MaxConnectionIdle == 0 { + kp.MaxConnectionIdle = defaultMaxConnectionIdle + } + if kp.MaxConnectionAge == 0 { + kp.MaxConnectionAge = defaultMaxConnectionAge + } + // Add a jitter to MaxConnectionAge. + kp.MaxConnectionAge += getJitter(kp.MaxConnectionAge) + if kp.MaxConnectionAgeGrace == 0 { + kp.MaxConnectionAgeGrace = defaultMaxConnectionAgeGrace + } + if kp.Time == 0 { + kp.Time = defaultServerKeepaliveTime + } + if kp.Timeout == 0 { + kp.Timeout = defaultServerKeepaliveTimeout + } + kep := config.KeepalivePolicy + if kep.MinTime == 0 { + kep.MinTime = defaultKeepalivePolicyMinTime + } + var buf bytes.Buffer + ctx, cancel := context.WithCancel(context.Background()) + t := &http2Server{ + ctx: ctx, + cancel: cancel, + conn: conn, + remoteAddr: conn.RemoteAddr(), + localAddr: conn.LocalAddr(), + authInfo: config.AuthInfo, + framer: framer, + hBuf: &buf, + hEnc: hpack.NewEncoder(&buf), + maxStreams: maxStreams, + inTapHandle: config.InTapHandle, + controlBuf: newControlBuffer(), + fc: &inFlow{limit: uint32(icwz)}, + sendQuotaPool: newQuotaPool(defaultWindowSize), + localSendQuota: newQuotaPool(defaultLocalSendQuota), + state: reachable, + activeStreams: make(map[uint32]*Stream), + streamSendQuota: defaultWindowSize, + stats: config.StatsHandler, + kp: kp, + idle: time.Now(), + kep: kep, + initialWindowSize: iwz, + } + if dynamicWindow { + t.bdpEst = &bdpEstimator{ + bdp: initialWindowSize, + updateFlowControl: t.updateFlowControl, + } + } + if t.stats != nil { + t.ctx = t.stats.TagConn(t.ctx, &stats.ConnTagInfo{ + RemoteAddr: t.remoteAddr, + LocalAddr: t.localAddr, + }) + connBegin := &stats.ConnBegin{} + t.stats.HandleConn(t.ctx, connBegin) + } + t.framer.writer.Flush() + + defer func() { + if err != nil { + t.Close() + } + }() + + // Check the validity of client preface. + preface := make([]byte, len(clientPreface)) + if _, err := io.ReadFull(t.conn, preface); err != nil { + return nil, connectionErrorf(false, err, "transport: http2Server.HandleStreams failed to receive the preface from client: %v", err) + } + if !bytes.Equal(preface, clientPreface) { + return nil, connectionErrorf(false, nil, "transport: http2Server.HandleStreams received bogus greeting from client: %q", preface) + } + + frame, err := t.framer.fr.ReadFrame() + if err == io.EOF || err == io.ErrUnexpectedEOF { + return nil, err + } + if err != nil { + return nil, connectionErrorf(false, err, "transport: http2Server.HandleStreams failed to read initial settings frame: %v", err) + } + atomic.StoreUint32(&t.activity, 1) + sf, ok := frame.(*http2.SettingsFrame) + if !ok { + return nil, connectionErrorf(false, nil, "transport: http2Server.HandleStreams saw invalid preface type %T from client", frame) + } + t.handleSettings(sf) + + go func() { + loopyWriter(t.ctx, t.controlBuf, t.itemHandler) + t.conn.Close() + }() + go t.keepalive() + return t, nil +} + +// operateHeader takes action on the decoded headers. +func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func(*Stream), traceCtx func(context.Context, string) context.Context) (close bool) { + streamID := frame.Header().StreamID + + var state decodeState + for _, hf := range frame.Fields { + if err := state.processHeaderField(hf); err != nil { + if se, ok := err.(StreamError); ok { + t.controlBuf.put(&resetStream{streamID, statusCodeConvTab[se.Code]}) + } + return + } + } + + buf := newRecvBuffer() + s := &Stream{ + id: streamID, + st: t, + buf: buf, + fc: &inFlow{limit: uint32(t.initialWindowSize)}, + recvCompress: state.encoding, + method: state.method, + contentSubtype: state.contentSubtype, + } + + if frame.StreamEnded() { + // s is just created by the caller. No lock needed. + s.state = streamReadDone + } + if state.timeoutSet { + s.ctx, s.cancel = context.WithTimeout(t.ctx, state.timeout) + } else { + s.ctx, s.cancel = context.WithCancel(t.ctx) + } + pr := &peer.Peer{ + Addr: t.remoteAddr, + } + // Attach Auth info if there is any. + if t.authInfo != nil { + pr.AuthInfo = t.authInfo + } + s.ctx = peer.NewContext(s.ctx, pr) + // Attach the received metadata to the context. + if len(state.mdata) > 0 { + s.ctx = metadata.NewIncomingContext(s.ctx, state.mdata) + } + if state.statsTags != nil { + s.ctx = stats.SetIncomingTags(s.ctx, state.statsTags) + } + if state.statsTrace != nil { + s.ctx = stats.SetIncomingTrace(s.ctx, state.statsTrace) + } + if t.inTapHandle != nil { + var err error + info := &tap.Info{ + FullMethodName: state.method, + } + s.ctx, err = t.inTapHandle(s.ctx, info) + if err != nil { + warningf("transport: http2Server.operateHeaders got an error from InTapHandle: %v", err) + t.controlBuf.put(&resetStream{s.id, http2.ErrCodeRefusedStream}) + return + } + } + t.mu.Lock() + if t.state != reachable { + t.mu.Unlock() + return + } + if uint32(len(t.activeStreams)) >= t.maxStreams { + t.mu.Unlock() + t.controlBuf.put(&resetStream{streamID, http2.ErrCodeRefusedStream}) + return + } + if streamID%2 != 1 || streamID <= t.maxStreamID { + t.mu.Unlock() + // illegal gRPC stream id. + errorf("transport: http2Server.HandleStreams received an illegal stream id: %v", streamID) + return true + } + t.maxStreamID = streamID + s.sendQuotaPool = newQuotaPool(int(t.streamSendQuota)) + t.activeStreams[streamID] = s + if len(t.activeStreams) == 1 { + t.idle = time.Time{} + } + t.mu.Unlock() + s.requestRead = func(n int) { + t.adjustWindow(s, uint32(n)) + } + s.ctx = traceCtx(s.ctx, s.method) + if t.stats != nil { + s.ctx = t.stats.TagRPC(s.ctx, &stats.RPCTagInfo{FullMethodName: s.method}) + inHeader := &stats.InHeader{ + FullMethod: s.method, + RemoteAddr: t.remoteAddr, + LocalAddr: t.localAddr, + Compression: s.recvCompress, + WireLength: int(frame.Header().Length), + } + t.stats.HandleRPC(s.ctx, inHeader) + } + s.trReader = &transportReader{ + reader: &recvBufferReader{ + ctx: s.ctx, + recv: s.buf, + }, + windowHandler: func(n int) { + t.updateWindow(s, uint32(n)) + }, + } + s.waiters = waiters{ + ctx: s.ctx, + tctx: t.ctx, + } + handle(s) + return +} + +// HandleStreams receives incoming streams using the given handler. This is +// typically run in a separate goroutine. +// traceCtx attaches trace to ctx and returns the new context. +func (t *http2Server) HandleStreams(handle func(*Stream), traceCtx func(context.Context, string) context.Context) { + for { + frame, err := t.framer.fr.ReadFrame() + atomic.StoreUint32(&t.activity, 1) + if err != nil { + if se, ok := err.(http2.StreamError); ok { + t.mu.Lock() + s := t.activeStreams[se.StreamID] + t.mu.Unlock() + if s != nil { + t.closeStream(s) + } + t.controlBuf.put(&resetStream{se.StreamID, se.Code}) + continue + } + if err == io.EOF || err == io.ErrUnexpectedEOF { + t.Close() + return + } + warningf("transport: http2Server.HandleStreams failed to read frame: %v", err) + t.Close() + return + } + switch frame := frame.(type) { + case *http2.MetaHeadersFrame: + if t.operateHeaders(frame, handle, traceCtx) { + t.Close() + break + } + case *http2.DataFrame: + t.handleData(frame) + case *http2.RSTStreamFrame: + t.handleRSTStream(frame) + case *http2.SettingsFrame: + t.handleSettings(frame) + case *http2.PingFrame: + t.handlePing(frame) + case *http2.WindowUpdateFrame: + t.handleWindowUpdate(frame) + case *http2.GoAwayFrame: + // TODO: Handle GoAway from the client appropriately. + default: + errorf("transport: http2Server.HandleStreams found unhandled frame type %v.", frame) + } + } +} + +func (t *http2Server) getStream(f http2.Frame) (*Stream, bool) { + t.mu.Lock() + defer t.mu.Unlock() + if t.activeStreams == nil { + // The transport is closing. + return nil, false + } + s, ok := t.activeStreams[f.Header().StreamID] + if !ok { + // The stream is already done. + return nil, false + } + return s, true +} + +// adjustWindow sends out extra window update over the initial window size +// of stream if the application is requesting data larger in size than +// the window. +func (t *http2Server) adjustWindow(s *Stream, n uint32) { + s.mu.Lock() + defer s.mu.Unlock() + if s.state == streamDone { + return + } + if w := s.fc.maybeAdjust(n); w > 0 { + if cw := t.fc.resetPendingUpdate(); cw > 0 { + t.controlBuf.put(&windowUpdate{0, cw}) + } + t.controlBuf.put(&windowUpdate{s.id, w}) + } +} + +// updateWindow adjusts the inbound quota for the stream and the transport. +// Window updates will deliver to the controller for sending when +// the cumulative quota exceeds the corresponding threshold. +func (t *http2Server) updateWindow(s *Stream, n uint32) { + s.mu.Lock() + defer s.mu.Unlock() + if s.state == streamDone { + return + } + if w := s.fc.onRead(n); w > 0 { + if cw := t.fc.resetPendingUpdate(); cw > 0 { + t.controlBuf.put(&windowUpdate{0, cw}) + } + t.controlBuf.put(&windowUpdate{s.id, w}) + } +} + +// updateFlowControl updates the incoming flow control windows +// for the transport and the stream based on the current bdp +// estimation. +func (t *http2Server) updateFlowControl(n uint32) { + t.mu.Lock() + for _, s := range t.activeStreams { + s.fc.newLimit(n) + } + t.initialWindowSize = int32(n) + t.mu.Unlock() + t.controlBuf.put(&windowUpdate{0, t.fc.newLimit(n)}) + t.controlBuf.put(&settings{ + ss: []http2.Setting{ + { + ID: http2.SettingInitialWindowSize, + Val: uint32(n), + }, + }, + }) + +} + +func (t *http2Server) handleData(f *http2.DataFrame) { + size := f.Header().Length + var sendBDPPing bool + if t.bdpEst != nil { + sendBDPPing = t.bdpEst.add(uint32(size)) + } + // Decouple connection's flow control from application's read. + // An update on connection's flow control should not depend on + // whether user application has read the data or not. Such a + // restriction is already imposed on the stream's flow control, + // and therefore the sender will be blocked anyways. + // Decoupling the connection flow control will prevent other + // active(fast) streams from starving in presence of slow or + // inactive streams. + // + // Furthermore, if a bdpPing is being sent out we can piggyback + // connection's window update for the bytes we just received. + if sendBDPPing { + if size != 0 { // Could be an empty frame. + t.controlBuf.put(&windowUpdate{0, uint32(size)}) + } + t.controlBuf.put(bdpPing) + } else { + if err := t.fc.onData(uint32(size)); err != nil { + errorf("transport: http2Server %v", err) + t.Close() + return + } + if w := t.fc.onRead(uint32(size)); w > 0 { + t.controlBuf.put(&windowUpdate{0, w}) + } + } + // Select the right stream to dispatch. + s, ok := t.getStream(f) + if !ok { + return + } + if size > 0 { + s.mu.Lock() + if s.state == streamDone { + s.mu.Unlock() + return + } + if err := s.fc.onData(uint32(size)); err != nil { + s.mu.Unlock() + t.closeStream(s) + t.controlBuf.put(&resetStream{s.id, http2.ErrCodeFlowControl}) + return + } + if f.Header().Flags.Has(http2.FlagDataPadded) { + if w := s.fc.onRead(uint32(size) - uint32(len(f.Data()))); w > 0 { + t.controlBuf.put(&windowUpdate{s.id, w}) + } + } + s.mu.Unlock() + // TODO(bradfitz, zhaoq): A copy is required here because there is no + // guarantee f.Data() is consumed before the arrival of next frame. + // Can this copy be eliminated? + if len(f.Data()) > 0 { + data := make([]byte, len(f.Data())) + copy(data, f.Data()) + s.write(recvMsg{data: data}) + } + } + if f.Header().Flags.Has(http2.FlagDataEndStream) { + // Received the end of stream from the client. + s.mu.Lock() + if s.state != streamDone { + s.state = streamReadDone + } + s.mu.Unlock() + s.write(recvMsg{err: io.EOF}) + } +} + +func (t *http2Server) handleRSTStream(f *http2.RSTStreamFrame) { + s, ok := t.getStream(f) + if !ok { + return + } + t.closeStream(s) +} + +func (t *http2Server) handleSettings(f *http2.SettingsFrame) { + if f.IsAck() { + return + } + var rs []http2.Setting + var ps []http2.Setting + f.ForeachSetting(func(s http2.Setting) error { + if t.isRestrictive(s) { + rs = append(rs, s) + } else { + ps = append(ps, s) + } + return nil + }) + t.applySettings(rs) + t.controlBuf.put(&settingsAck{}) + t.applySettings(ps) +} + +func (t *http2Server) isRestrictive(s http2.Setting) bool { + switch s.ID { + case http2.SettingInitialWindowSize: + // Note: we don't acquire a lock here to read streamSendQuota + // because the same goroutine updates it later. + return s.Val < t.streamSendQuota + } + return false +} + +func (t *http2Server) applySettings(ss []http2.Setting) { + for _, s := range ss { + if s.ID == http2.SettingInitialWindowSize { + t.mu.Lock() + for _, stream := range t.activeStreams { + stream.sendQuotaPool.addAndUpdate(int(s.Val) - int(t.streamSendQuota)) + } + t.streamSendQuota = s.Val + t.mu.Unlock() + } + + } +} + +const ( + maxPingStrikes = 2 + defaultPingTimeout = 2 * time.Hour +) + +func (t *http2Server) handlePing(f *http2.PingFrame) { + if f.IsAck() { + if f.Data == goAwayPing.data && t.drainChan != nil { + close(t.drainChan) + return + } + // Maybe it's a BDP ping. + if t.bdpEst != nil { + t.bdpEst.calculate(f.Data) + } + return + } + pingAck := &ping{ack: true} + copy(pingAck.data[:], f.Data[:]) + t.controlBuf.put(pingAck) + + now := time.Now() + defer func() { + t.lastPingAt = now + }() + // A reset ping strikes means that we don't need to check for policy + // violation for this ping and the pingStrikes counter should be set + // to 0. + if atomic.CompareAndSwapUint32(&t.resetPingStrikes, 1, 0) { + t.pingStrikes = 0 + return + } + t.mu.Lock() + ns := len(t.activeStreams) + t.mu.Unlock() + if ns < 1 && !t.kep.PermitWithoutStream { + // Keepalive shouldn't be active thus, this new ping should + // have come after at least defaultPingTimeout. + if t.lastPingAt.Add(defaultPingTimeout).After(now) { + t.pingStrikes++ + } + } else { + // Check if keepalive policy is respected. + if t.lastPingAt.Add(t.kep.MinTime).After(now) { + t.pingStrikes++ + } + } + + if t.pingStrikes > maxPingStrikes { + // Send goaway and close the connection. + errorf("transport: Got too many pings from the client, closing the connection.") + t.controlBuf.put(&goAway{code: http2.ErrCodeEnhanceYourCalm, debugData: []byte("too_many_pings"), closeConn: true}) + } +} + +func (t *http2Server) handleWindowUpdate(f *http2.WindowUpdateFrame) { + id := f.Header().StreamID + incr := f.Increment + if id == 0 { + t.sendQuotaPool.add(int(incr)) + return + } + if s, ok := t.getStream(f); ok { + s.sendQuotaPool.add(int(incr)) + } +} + +// WriteHeader sends the header metedata md back to the client. +func (t *http2Server) WriteHeader(s *Stream, md metadata.MD) error { + select { + case <-s.ctx.Done(): + return ContextErr(s.ctx.Err()) + case <-t.ctx.Done(): + return ErrConnClosing + default: + } + + s.mu.Lock() + if s.headerOk || s.state == streamDone { + s.mu.Unlock() + return ErrIllegalHeaderWrite + } + s.headerOk = true + if md.Len() > 0 { + if s.header.Len() > 0 { + s.header = metadata.Join(s.header, md) + } else { + s.header = md + } + } + md = s.header + s.mu.Unlock() + // TODO(mmukhi): Benchmark if the performance gets better if count the metadata and other header fields + // first and create a slice of that exact size. + headerFields := make([]hpack.HeaderField, 0, 2) // at least :status, content-type will be there if none else. + headerFields = append(headerFields, hpack.HeaderField{Name: ":status", Value: "200"}) + headerFields = append(headerFields, hpack.HeaderField{Name: "content-type", Value: contentType(s.contentSubtype)}) + if s.sendCompress != "" { + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-encoding", Value: s.sendCompress}) + } + for k, vv := range md { + if isReservedHeader(k) { + // Clients don't tolerate reading restricted headers after some non restricted ones were sent. + continue + } + for _, v := range vv { + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + } + t.controlBuf.put(&headerFrame{ + streamID: s.id, + hf: headerFields, + endStream: false, + }) + if t.stats != nil { + // Note: WireLength is not set in outHeader. + // TODO(mmukhi): Revisit this later, if needed. + outHeader := &stats.OutHeader{} + t.stats.HandleRPC(s.Context(), outHeader) + } + return nil +} + +// WriteStatus sends stream status to the client and terminates the stream. +// There is no further I/O operations being able to perform on this stream. +// TODO(zhaoq): Now it indicates the end of entire stream. Revisit if early +// OK is adopted. +func (t *http2Server) WriteStatus(s *Stream, st *status.Status) error { + select { + case <-t.ctx.Done(): + return ErrConnClosing + default: + } + + var headersSent, hasHeader bool + s.mu.Lock() + if s.state == streamDone { + s.mu.Unlock() + return nil + } + if s.headerOk { + headersSent = true + } + if s.header.Len() > 0 { + hasHeader = true + } + s.mu.Unlock() + + if !headersSent && hasHeader { + t.WriteHeader(s, nil) + headersSent = true + } + + // TODO(mmukhi): Benchmark if the performance gets better if count the metadata and other header fields + // first and create a slice of that exact size. + headerFields := make([]hpack.HeaderField, 0, 2) // grpc-status and grpc-message will be there if none else. + if !headersSent { + headerFields = append(headerFields, hpack.HeaderField{Name: ":status", Value: "200"}) + headerFields = append(headerFields, hpack.HeaderField{Name: "content-type", Value: contentType(s.contentSubtype)}) + } + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-status", Value: strconv.Itoa(int(st.Code()))}) + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-message", Value: encodeGrpcMessage(st.Message())}) + + if p := st.Proto(); p != nil && len(p.Details) > 0 { + stBytes, err := proto.Marshal(p) + if err != nil { + // TODO: return error instead, when callers are able to handle it. + panic(err) + } + + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-status-details-bin", Value: encodeBinHeader(stBytes)}) + } + + // Attach the trailer metadata. + for k, vv := range s.trailer { + // Clients don't tolerate reading restricted headers after some non restricted ones were sent. + if isReservedHeader(k) { + continue + } + for _, v := range vv { + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + } + t.controlBuf.put(&headerFrame{ + streamID: s.id, + hf: headerFields, + endStream: true, + }) + if t.stats != nil { + t.stats.HandleRPC(s.Context(), &stats.OutTrailer{}) + } + t.closeStream(s) + return nil +} + +// Write converts the data into HTTP2 data frame and sends it out. Non-nil error +// is returns if it fails (e.g., framing error, transport error). +func (t *http2Server) Write(s *Stream, hdr []byte, data []byte, opts *Options) error { + select { + case <-s.ctx.Done(): + return ContextErr(s.ctx.Err()) + case <-t.ctx.Done(): + return ErrConnClosing + default: + } + + var writeHeaderFrame bool + s.mu.Lock() + if !s.headerOk { + writeHeaderFrame = true + } + s.mu.Unlock() + if writeHeaderFrame { + t.WriteHeader(s, nil) + } + // Add data to header frame so that we can equally distribute data across frames. + emptyLen := http2MaxFrameLen - len(hdr) + if emptyLen > len(data) { + emptyLen = len(data) + } + hdr = append(hdr, data[:emptyLen]...) + data = data[emptyLen:] + var ( + streamQuota int + streamQuotaVer uint32 + err error + ) + for _, r := range [][]byte{hdr, data} { + for len(r) > 0 { + size := http2MaxFrameLen + if size > len(r) { + size = len(r) + } + if streamQuota == 0 { // Used up all the locally cached stream quota. + // Get all the stream quota there is. + streamQuota, streamQuotaVer, err = s.sendQuotaPool.get(math.MaxInt32, s.waiters) + if err != nil { + return err + } + } + if size > streamQuota { + size = streamQuota + } + // Get size worth quota from transport. + tq, _, err := t.sendQuotaPool.get(size, s.waiters) + if err != nil { + return err + } + if tq < size { + size = tq + } + ltq, _, err := t.localSendQuota.get(size, s.waiters) + if err != nil { + // Add the acquired quota back to transport. + t.sendQuotaPool.add(tq) + return err + } + // even if ltq is smaller than size we don't adjust size since, + // ltq is only a soft limit. + streamQuota -= size + p := r[:size] + success := func() { + ltq := ltq + t.controlBuf.put(&dataFrame{streamID: s.id, endStream: false, d: p, f: func() { + t.localSendQuota.add(ltq) + }}) + r = r[size:] + } + failure := func() { // The stream quota version must have changed. + // Our streamQuota cache is invalidated now, so give it back. + s.sendQuotaPool.lockedAdd(streamQuota + size) + } + if !s.sendQuotaPool.compareAndExecute(streamQuotaVer, success, failure) { + // Couldn't send this chunk out. + t.sendQuotaPool.add(size) + t.localSendQuota.add(ltq) + streamQuota = 0 + } + } + } + if streamQuota > 0 { + // ADd the left over quota back to stream. + s.sendQuotaPool.add(streamQuota) + } + return nil +} + +// keepalive running in a separate goroutine does the following: +// 1. Gracefully closes an idle connection after a duration of keepalive.MaxConnectionIdle. +// 2. Gracefully closes any connection after a duration of keepalive.MaxConnectionAge. +// 3. Forcibly closes a connection after an additive period of keepalive.MaxConnectionAgeGrace over keepalive.MaxConnectionAge. +// 4. Makes sure a connection is alive by sending pings with a frequency of keepalive.Time and closes a non-responsive connection +// after an additional duration of keepalive.Timeout. +func (t *http2Server) keepalive() { + p := &ping{} + var pingSent bool + maxIdle := time.NewTimer(t.kp.MaxConnectionIdle) + maxAge := time.NewTimer(t.kp.MaxConnectionAge) + keepalive := time.NewTimer(t.kp.Time) + // NOTE: All exit paths of this function should reset their + // respective timers. A failure to do so will cause the + // following clean-up to deadlock and eventually leak. + defer func() { + if !maxIdle.Stop() { + <-maxIdle.C + } + if !maxAge.Stop() { + <-maxAge.C + } + if !keepalive.Stop() { + <-keepalive.C + } + }() + for { + select { + case <-maxIdle.C: + t.mu.Lock() + idle := t.idle + if idle.IsZero() { // The connection is non-idle. + t.mu.Unlock() + maxIdle.Reset(t.kp.MaxConnectionIdle) + continue + } + val := t.kp.MaxConnectionIdle - time.Since(idle) + t.mu.Unlock() + if val <= 0 { + // The connection has been idle for a duration of keepalive.MaxConnectionIdle or more. + // Gracefully close the connection. + t.drain(http2.ErrCodeNo, []byte{}) + // Reseting the timer so that the clean-up doesn't deadlock. + maxIdle.Reset(infinity) + return + } + maxIdle.Reset(val) + case <-maxAge.C: + t.drain(http2.ErrCodeNo, []byte{}) + maxAge.Reset(t.kp.MaxConnectionAgeGrace) + select { + case <-maxAge.C: + // Close the connection after grace period. + t.Close() + // Reseting the timer so that the clean-up doesn't deadlock. + maxAge.Reset(infinity) + case <-t.ctx.Done(): + } + return + case <-keepalive.C: + if atomic.CompareAndSwapUint32(&t.activity, 1, 0) { + pingSent = false + keepalive.Reset(t.kp.Time) + continue + } + if pingSent { + t.Close() + // Reseting the timer so that the clean-up doesn't deadlock. + keepalive.Reset(infinity) + return + } + pingSent = true + t.controlBuf.put(p) + keepalive.Reset(t.kp.Timeout) + case <-t.ctx.Done(): + return + } + } +} + +var goAwayPing = &ping{data: [8]byte{1, 6, 1, 8, 0, 3, 3, 9}} + +// TODO(mmukhi): A lot of this code(and code in other places in the tranpsort layer) +// is duplicated between the client and the server. +// The transport layer needs to be refactored to take care of this. +func (t *http2Server) itemHandler(i item) error { + switch i := i.(type) { + case *dataFrame: + // Reset ping strikes when sending data since this might cause + // the peer to send ping. + atomic.StoreUint32(&t.resetPingStrikes, 1) + if err := t.framer.fr.WriteData(i.streamID, i.endStream, i.d); err != nil { + return err + } + i.f() + return nil + case *headerFrame: + t.hBuf.Reset() + for _, f := range i.hf { + t.hEnc.WriteField(f) + } + first := true + endHeaders := false + for !endHeaders { + size := t.hBuf.Len() + if size > http2MaxFrameLen { + size = http2MaxFrameLen + } else { + endHeaders = true + } + var err error + if first { + first = false + err = t.framer.fr.WriteHeaders(http2.HeadersFrameParam{ + StreamID: i.streamID, + BlockFragment: t.hBuf.Next(size), + EndStream: i.endStream, + EndHeaders: endHeaders, + }) + } else { + err = t.framer.fr.WriteContinuation( + i.streamID, + endHeaders, + t.hBuf.Next(size), + ) + } + if err != nil { + return err + } + } + atomic.StoreUint32(&t.resetPingStrikes, 1) + return nil + case *windowUpdate: + return t.framer.fr.WriteWindowUpdate(i.streamID, i.increment) + case *settings: + return t.framer.fr.WriteSettings(i.ss...) + case *settingsAck: + return t.framer.fr.WriteSettingsAck() + case *resetStream: + return t.framer.fr.WriteRSTStream(i.streamID, i.code) + case *goAway: + t.mu.Lock() + if t.state == closing { + t.mu.Unlock() + // The transport is closing. + return fmt.Errorf("transport: Connection closing") + } + sid := t.maxStreamID + if !i.headsUp { + // Stop accepting more streams now. + t.state = draining + if len(t.activeStreams) == 0 { + i.closeConn = true + } + t.mu.Unlock() + if err := t.framer.fr.WriteGoAway(sid, i.code, i.debugData); err != nil { + return err + } + if i.closeConn { + // Abruptly close the connection following the GoAway (via + // loopywriter). But flush out what's inside the buffer first. + t.controlBuf.put(&flushIO{closeTr: true}) + } + return nil + } + t.mu.Unlock() + // For a graceful close, send out a GoAway with stream ID of MaxUInt32, + // Follow that with a ping and wait for the ack to come back or a timer + // to expire. During this time accept new streams since they might have + // originated before the GoAway reaches the client. + // After getting the ack or timer expiration send out another GoAway this + // time with an ID of the max stream server intends to process. + if err := t.framer.fr.WriteGoAway(math.MaxUint32, http2.ErrCodeNo, []byte{}); err != nil { + return err + } + if err := t.framer.fr.WritePing(false, goAwayPing.data); err != nil { + return err + } + go func() { + timer := time.NewTimer(time.Minute) + defer timer.Stop() + select { + case <-t.drainChan: + case <-timer.C: + case <-t.ctx.Done(): + return + } + t.controlBuf.put(&goAway{code: i.code, debugData: i.debugData}) + }() + return nil + case *flushIO: + if err := t.framer.writer.Flush(); err != nil { + return err + } + if i.closeTr { + return ErrConnClosing + } + return nil + case *ping: + if !i.ack { + t.bdpEst.timesnap(i.data) + } + return t.framer.fr.WritePing(i.ack, i.data) + default: + err := status.Errorf(codes.Internal, "transport: http2Server.controller got unexpected item type %t", i) + errorf("%v", err) + return err + } +} + +// Close starts shutting down the http2Server transport. +// TODO(zhaoq): Now the destruction is not blocked on any pending streams. This +// could cause some resource issue. Revisit this later. +func (t *http2Server) Close() error { + t.mu.Lock() + if t.state == closing { + t.mu.Unlock() + return errors.New("transport: Close() was already called") + } + t.state = closing + streams := t.activeStreams + t.activeStreams = nil + t.mu.Unlock() + t.cancel() + err := t.conn.Close() + // Cancel all active streams. + for _, s := range streams { + s.cancel() + } + if t.stats != nil { + connEnd := &stats.ConnEnd{} + t.stats.HandleConn(t.ctx, connEnd) + } + return err +} + +// closeStream clears the footprint of a stream when the stream is not needed +// any more. +func (t *http2Server) closeStream(s *Stream) { + t.mu.Lock() + delete(t.activeStreams, s.id) + if len(t.activeStreams) == 0 { + t.idle = time.Now() + } + if t.state == draining && len(t.activeStreams) == 0 { + defer t.controlBuf.put(&flushIO{closeTr: true}) + } + t.mu.Unlock() + // In case stream sending and receiving are invoked in separate + // goroutines (e.g., bi-directional streaming), cancel needs to be + // called to interrupt the potential blocking on other goroutines. + s.cancel() + s.mu.Lock() + if s.state == streamDone { + s.mu.Unlock() + return + } + s.state = streamDone + s.mu.Unlock() +} + +func (t *http2Server) RemoteAddr() net.Addr { + return t.remoteAddr +} + +func (t *http2Server) Drain() { + t.drain(http2.ErrCodeNo, []byte{}) +} + +func (t *http2Server) drain(code http2.ErrCode, debugData []byte) { + t.mu.Lock() + defer t.mu.Unlock() + if t.drainChan != nil { + return + } + t.drainChan = make(chan struct{}) + t.controlBuf.put(&goAway{code: code, debugData: debugData, headsUp: true}) +} + +var rgen = rand.New(rand.NewSource(time.Now().UnixNano())) + +func getJitter(v time.Duration) time.Duration { + if v == infinity { + return 0 + } + // Generate a jitter between +/- 10% of the value. + r := int64(v / 10) + j := rgen.Int63n(2*r) - r + return time.Duration(j) +} diff --git a/vendor/google.golang.org/grpc/transport/http_util.go b/vendor/google.golang.org/grpc/transport/http_util.go new file mode 100644 index 0000000..de37e38 --- /dev/null +++ b/vendor/google.golang.org/grpc/transport/http_util.go @@ -0,0 +1,530 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "bufio" + "bytes" + "encoding/base64" + "fmt" + "io" + "net" + "net/http" + "strconv" + "strings" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/http2" + "golang.org/x/net/http2/hpack" + spb "google.golang.org/genproto/googleapis/rpc/status" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +const ( + // http2MaxFrameLen specifies the max length of a HTTP2 frame. + http2MaxFrameLen = 16384 // 16KB frame + // http://http2.github.io/http2-spec/#SettingValues + http2InitHeaderTableSize = 4096 + // http2IOBufSize specifies the buffer size for sending frames. + defaultWriteBufSize = 32 * 1024 + defaultReadBufSize = 32 * 1024 + // baseContentType is the base content-type for gRPC. This is a valid + // content-type on it's own, but can also include a content-subtype such as + // "proto" as a suffix after "+" or ";". See + // https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests + // for more details. + baseContentType = "application/grpc" +) + +var ( + clientPreface = []byte(http2.ClientPreface) + http2ErrConvTab = map[http2.ErrCode]codes.Code{ + http2.ErrCodeNo: codes.Internal, + http2.ErrCodeProtocol: codes.Internal, + http2.ErrCodeInternal: codes.Internal, + http2.ErrCodeFlowControl: codes.ResourceExhausted, + http2.ErrCodeSettingsTimeout: codes.Internal, + http2.ErrCodeStreamClosed: codes.Internal, + http2.ErrCodeFrameSize: codes.Internal, + http2.ErrCodeRefusedStream: codes.Unavailable, + http2.ErrCodeCancel: codes.Canceled, + http2.ErrCodeCompression: codes.Internal, + http2.ErrCodeConnect: codes.Internal, + http2.ErrCodeEnhanceYourCalm: codes.ResourceExhausted, + http2.ErrCodeInadequateSecurity: codes.PermissionDenied, + http2.ErrCodeHTTP11Required: codes.Internal, + } + statusCodeConvTab = map[codes.Code]http2.ErrCode{ + codes.Internal: http2.ErrCodeInternal, + codes.Canceled: http2.ErrCodeCancel, + codes.Unavailable: http2.ErrCodeRefusedStream, + codes.ResourceExhausted: http2.ErrCodeEnhanceYourCalm, + codes.PermissionDenied: http2.ErrCodeInadequateSecurity, + } + httpStatusConvTab = map[int]codes.Code{ + // 400 Bad Request - INTERNAL. + http.StatusBadRequest: codes.Internal, + // 401 Unauthorized - UNAUTHENTICATED. + http.StatusUnauthorized: codes.Unauthenticated, + // 403 Forbidden - PERMISSION_DENIED. + http.StatusForbidden: codes.PermissionDenied, + // 404 Not Found - UNIMPLEMENTED. + http.StatusNotFound: codes.Unimplemented, + // 429 Too Many Requests - UNAVAILABLE. + http.StatusTooManyRequests: codes.Unavailable, + // 502 Bad Gateway - UNAVAILABLE. + http.StatusBadGateway: codes.Unavailable, + // 503 Service Unavailable - UNAVAILABLE. + http.StatusServiceUnavailable: codes.Unavailable, + // 504 Gateway timeout - UNAVAILABLE. + http.StatusGatewayTimeout: codes.Unavailable, + } +) + +// Records the states during HPACK decoding. Must be reset once the +// decoding of the entire headers are finished. +type decodeState struct { + encoding string + // statusGen caches the stream status received from the trailer the server + // sent. Client side only. Do not access directly. After all trailers are + // parsed, use the status method to retrieve the status. + statusGen *status.Status + // rawStatusCode and rawStatusMsg are set from the raw trailer fields and are not + // intended for direct access outside of parsing. + rawStatusCode *int + rawStatusMsg string + httpStatus *int + // Server side only fields. + timeoutSet bool + timeout time.Duration + method string + // key-value metadata map from the peer. + mdata map[string][]string + statsTags []byte + statsTrace []byte + contentSubtype string +} + +// isReservedHeader checks whether hdr belongs to HTTP2 headers +// reserved by gRPC protocol. Any other headers are classified as the +// user-specified metadata. +func isReservedHeader(hdr string) bool { + if hdr != "" && hdr[0] == ':' { + return true + } + switch hdr { + case "content-type", + "grpc-message-type", + "grpc-encoding", + "grpc-message", + "grpc-status", + "grpc-timeout", + "grpc-status-details-bin", + "te": + return true + default: + return false + } +} + +// isWhitelistedPseudoHeader checks whether hdr belongs to HTTP2 pseudoheaders +// that should be propagated into metadata visible to users. +func isWhitelistedPseudoHeader(hdr string) bool { + switch hdr { + case ":authority": + return true + default: + return false + } +} + +// contentSubtype returns the content-subtype for the given content-type. The +// given content-type must be a valid content-type that starts with +// "application/grpc". A content-subtype will follow "application/grpc" after a +// "+" or ";". See +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for +// more details. +// +// If contentType is not a valid content-type for gRPC, the boolean +// will be false, otherwise true. If content-type == "application/grpc", +// "application/grpc+", or "application/grpc;", the boolean will be true, +// but no content-subtype will be returned. +// +// contentType is assumed to be lowercase already. +func contentSubtype(contentType string) (string, bool) { + if contentType == baseContentType { + return "", true + } + if !strings.HasPrefix(contentType, baseContentType) { + return "", false + } + // guaranteed since != baseContentType and has baseContentType prefix + switch contentType[len(baseContentType)] { + case '+', ';': + // this will return true for "application/grpc+" or "application/grpc;" + // which the previous validContentType function tested to be valid, so we + // just say that no content-subtype is specified in this case + return contentType[len(baseContentType)+1:], true + default: + return "", false + } +} + +// contentSubtype is assumed to be lowercase +func contentType(contentSubtype string) string { + if contentSubtype == "" { + return baseContentType + } + return baseContentType + "+" + contentSubtype +} + +func (d *decodeState) status() *status.Status { + if d.statusGen == nil { + // No status-details were provided; generate status using code/msg. + d.statusGen = status.New(codes.Code(int32(*(d.rawStatusCode))), d.rawStatusMsg) + } + return d.statusGen +} + +const binHdrSuffix = "-bin" + +func encodeBinHeader(v []byte) string { + return base64.RawStdEncoding.EncodeToString(v) +} + +func decodeBinHeader(v string) ([]byte, error) { + if len(v)%4 == 0 { + // Input was padded, or padding was not necessary. + return base64.StdEncoding.DecodeString(v) + } + return base64.RawStdEncoding.DecodeString(v) +} + +func encodeMetadataHeader(k, v string) string { + if strings.HasSuffix(k, binHdrSuffix) { + return encodeBinHeader(([]byte)(v)) + } + return v +} + +func decodeMetadataHeader(k, v string) (string, error) { + if strings.HasSuffix(k, binHdrSuffix) { + b, err := decodeBinHeader(v) + return string(b), err + } + return v, nil +} + +func (d *decodeState) decodeResponseHeader(frame *http2.MetaHeadersFrame) error { + for _, hf := range frame.Fields { + if err := d.processHeaderField(hf); err != nil { + return err + } + } + + // If grpc status exists, no need to check further. + if d.rawStatusCode != nil || d.statusGen != nil { + return nil + } + + // If grpc status doesn't exist and http status doesn't exist, + // then it's a malformed header. + if d.httpStatus == nil { + return streamErrorf(codes.Internal, "malformed header: doesn't contain status(gRPC or HTTP)") + } + + if *(d.httpStatus) != http.StatusOK { + code, ok := httpStatusConvTab[*(d.httpStatus)] + if !ok { + code = codes.Unknown + } + return streamErrorf(code, http.StatusText(*(d.httpStatus))) + } + + // gRPC status doesn't exist and http status is OK. + // Set rawStatusCode to be unknown and return nil error. + // So that, if the stream has ended this Unknown status + // will be propogated to the user. + // Otherwise, it will be ignored. In which case, status from + // a later trailer, that has StreamEnded flag set, is propogated. + code := int(codes.Unknown) + d.rawStatusCode = &code + return nil + +} + +func (d *decodeState) addMetadata(k, v string) { + if d.mdata == nil { + d.mdata = make(map[string][]string) + } + d.mdata[k] = append(d.mdata[k], v) +} + +func (d *decodeState) processHeaderField(f hpack.HeaderField) error { + switch f.Name { + case "content-type": + contentSubtype, validContentType := contentSubtype(f.Value) + if !validContentType { + return streamErrorf(codes.Internal, "transport: received the unexpected content-type %q", f.Value) + } + d.contentSubtype = contentSubtype + // TODO: do we want to propagate the whole content-type in the metadata, + // or come up with a way to just propagate the content-subtype if it was set? + // ie {"content-type": "application/grpc+proto"} or {"content-subtype": "proto"} + // in the metadata? + d.addMetadata(f.Name, f.Value) + case "grpc-encoding": + d.encoding = f.Value + case "grpc-status": + code, err := strconv.Atoi(f.Value) + if err != nil { + return streamErrorf(codes.Internal, "transport: malformed grpc-status: %v", err) + } + d.rawStatusCode = &code + case "grpc-message": + d.rawStatusMsg = decodeGrpcMessage(f.Value) + case "grpc-status-details-bin": + v, err := decodeBinHeader(f.Value) + if err != nil { + return streamErrorf(codes.Internal, "transport: malformed grpc-status-details-bin: %v", err) + } + s := &spb.Status{} + if err := proto.Unmarshal(v, s); err != nil { + return streamErrorf(codes.Internal, "transport: malformed grpc-status-details-bin: %v", err) + } + d.statusGen = status.FromProto(s) + case "grpc-timeout": + d.timeoutSet = true + var err error + if d.timeout, err = decodeTimeout(f.Value); err != nil { + return streamErrorf(codes.Internal, "transport: malformed time-out: %v", err) + } + case ":path": + d.method = f.Value + case ":status": + code, err := strconv.Atoi(f.Value) + if err != nil { + return streamErrorf(codes.Internal, "transport: malformed http-status: %v", err) + } + d.httpStatus = &code + case "grpc-tags-bin": + v, err := decodeBinHeader(f.Value) + if err != nil { + return streamErrorf(codes.Internal, "transport: malformed grpc-tags-bin: %v", err) + } + d.statsTags = v + d.addMetadata(f.Name, string(v)) + case "grpc-trace-bin": + v, err := decodeBinHeader(f.Value) + if err != nil { + return streamErrorf(codes.Internal, "transport: malformed grpc-trace-bin: %v", err) + } + d.statsTrace = v + d.addMetadata(f.Name, string(v)) + default: + if isReservedHeader(f.Name) && !isWhitelistedPseudoHeader(f.Name) { + break + } + v, err := decodeMetadataHeader(f.Name, f.Value) + if err != nil { + errorf("Failed to decode metadata header (%q, %q): %v", f.Name, f.Value, err) + return nil + } + d.addMetadata(f.Name, string(v)) + } + return nil +} + +type timeoutUnit uint8 + +const ( + hour timeoutUnit = 'H' + minute timeoutUnit = 'M' + second timeoutUnit = 'S' + millisecond timeoutUnit = 'm' + microsecond timeoutUnit = 'u' + nanosecond timeoutUnit = 'n' +) + +func timeoutUnitToDuration(u timeoutUnit) (d time.Duration, ok bool) { + switch u { + case hour: + return time.Hour, true + case minute: + return time.Minute, true + case second: + return time.Second, true + case millisecond: + return time.Millisecond, true + case microsecond: + return time.Microsecond, true + case nanosecond: + return time.Nanosecond, true + default: + } + return +} + +const maxTimeoutValue int64 = 100000000 - 1 + +// div does integer division and round-up the result. Note that this is +// equivalent to (d+r-1)/r but has less chance to overflow. +func div(d, r time.Duration) int64 { + if m := d % r; m > 0 { + return int64(d/r + 1) + } + return int64(d / r) +} + +// TODO(zhaoq): It is the simplistic and not bandwidth efficient. Improve it. +func encodeTimeout(t time.Duration) string { + if t <= 0 { + return "0n" + } + if d := div(t, time.Nanosecond); d <= maxTimeoutValue { + return strconv.FormatInt(d, 10) + "n" + } + if d := div(t, time.Microsecond); d <= maxTimeoutValue { + return strconv.FormatInt(d, 10) + "u" + } + if d := div(t, time.Millisecond); d <= maxTimeoutValue { + return strconv.FormatInt(d, 10) + "m" + } + if d := div(t, time.Second); d <= maxTimeoutValue { + return strconv.FormatInt(d, 10) + "S" + } + if d := div(t, time.Minute); d <= maxTimeoutValue { + return strconv.FormatInt(d, 10) + "M" + } + // Note that maxTimeoutValue * time.Hour > MaxInt64. + return strconv.FormatInt(div(t, time.Hour), 10) + "H" +} + +func decodeTimeout(s string) (time.Duration, error) { + size := len(s) + if size < 2 { + return 0, fmt.Errorf("transport: timeout string is too short: %q", s) + } + unit := timeoutUnit(s[size-1]) + d, ok := timeoutUnitToDuration(unit) + if !ok { + return 0, fmt.Errorf("transport: timeout unit is not recognized: %q", s) + } + t, err := strconv.ParseInt(s[:size-1], 10, 64) + if err != nil { + return 0, err + } + return d * time.Duration(t), nil +} + +const ( + spaceByte = ' ' + tildaByte = '~' + percentByte = '%' +) + +// encodeGrpcMessage is used to encode status code in header field +// "grpc-message". +// It checks to see if each individual byte in msg is an +// allowable byte, and then either percent encoding or passing it through. +// When percent encoding, the byte is converted into hexadecimal notation +// with a '%' prepended. +func encodeGrpcMessage(msg string) string { + if msg == "" { + return "" + } + lenMsg := len(msg) + for i := 0; i < lenMsg; i++ { + c := msg[i] + if !(c >= spaceByte && c < tildaByte && c != percentByte) { + return encodeGrpcMessageUnchecked(msg) + } + } + return msg +} + +func encodeGrpcMessageUnchecked(msg string) string { + var buf bytes.Buffer + lenMsg := len(msg) + for i := 0; i < lenMsg; i++ { + c := msg[i] + if c >= spaceByte && c < tildaByte && c != percentByte { + buf.WriteByte(c) + } else { + buf.WriteString(fmt.Sprintf("%%%02X", c)) + } + } + return buf.String() +} + +// decodeGrpcMessage decodes the msg encoded by encodeGrpcMessage. +func decodeGrpcMessage(msg string) string { + if msg == "" { + return "" + } + lenMsg := len(msg) + for i := 0; i < lenMsg; i++ { + if msg[i] == percentByte && i+2 < lenMsg { + return decodeGrpcMessageUnchecked(msg) + } + } + return msg +} + +func decodeGrpcMessageUnchecked(msg string) string { + var buf bytes.Buffer + lenMsg := len(msg) + for i := 0; i < lenMsg; i++ { + c := msg[i] + if c == percentByte && i+2 < lenMsg { + parsed, err := strconv.ParseUint(msg[i+1:i+3], 16, 8) + if err != nil { + buf.WriteByte(c) + } else { + buf.WriteByte(byte(parsed)) + i += 2 + } + } else { + buf.WriteByte(c) + } + } + return buf.String() +} + +type framer struct { + numWriters int32 + reader io.Reader + writer *bufio.Writer + fr *http2.Framer +} + +func newFramer(conn net.Conn, writeBufferSize, readBufferSize int) *framer { + f := &framer{ + reader: bufio.NewReaderSize(conn, readBufferSize), + writer: bufio.NewWriterSize(conn, writeBufferSize), + } + f.fr = http2.NewFramer(f.writer, f.reader) + // Opt-in to Frame reuse API on framer to reduce garbage. + // Frames aren't safe to read from after a subsequent call to ReadFrame. + f.fr.SetReuseFrames() + f.fr.ReadMetaHeaders = hpack.NewDecoder(http2InitHeaderTableSize, nil) + return f +} diff --git a/vendor/google.golang.org/grpc/transport/log.go b/vendor/google.golang.org/grpc/transport/log.go new file mode 100644 index 0000000..ac8e358 --- /dev/null +++ b/vendor/google.golang.org/grpc/transport/log.go @@ -0,0 +1,50 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// This file contains wrappers for grpclog functions. +// The transport package only logs to verbose level 2 by default. + +package transport + +import "google.golang.org/grpc/grpclog" + +const logLevel = 2 + +func infof(format string, args ...interface{}) { + if grpclog.V(logLevel) { + grpclog.Infof(format, args...) + } +} + +func warningf(format string, args ...interface{}) { + if grpclog.V(logLevel) { + grpclog.Warningf(format, args...) + } +} + +func errorf(format string, args ...interface{}) { + if grpclog.V(logLevel) { + grpclog.Errorf(format, args...) + } +} + +func fatalf(format string, args ...interface{}) { + if grpclog.V(logLevel) { + grpclog.Fatalf(format, args...) + } +} diff --git a/vendor/google.golang.org/grpc/transport/transport.go b/vendor/google.golang.org/grpc/transport/transport.go new file mode 100644 index 0000000..e0c1e34 --- /dev/null +++ b/vendor/google.golang.org/grpc/transport/transport.go @@ -0,0 +1,771 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package transport defines and implements message oriented communication +// channel to complete various transactions (e.g., an RPC). It is meant for +// grpc-internal usage and is not intended to be imported directly by users. +package transport // import "google.golang.org/grpc/transport" + +import ( + "fmt" + "io" + "net" + "sync" + + "golang.org/x/net/context" + "golang.org/x/net/http2" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" + "google.golang.org/grpc/tap" +) + +// recvMsg represents the received msg from the transport. All transport +// protocol specific info has been removed. +type recvMsg struct { + data []byte + // nil: received some data + // io.EOF: stream is completed. data is nil. + // other non-nil error: transport failure. data is nil. + err error +} + +// recvBuffer is an unbounded channel of recvMsg structs. +// Note recvBuffer differs from controlBuffer only in that recvBuffer +// holds a channel of only recvMsg structs instead of objects implementing "item" interface. +// recvBuffer is written to much more often than +// controlBuffer and using strict recvMsg structs helps avoid allocation in "recvBuffer.put" +type recvBuffer struct { + c chan recvMsg + mu sync.Mutex + backlog []recvMsg +} + +func newRecvBuffer() *recvBuffer { + b := &recvBuffer{ + c: make(chan recvMsg, 1), + } + return b +} + +func (b *recvBuffer) put(r recvMsg) { + b.mu.Lock() + if len(b.backlog) == 0 { + select { + case b.c <- r: + b.mu.Unlock() + return + default: + } + } + b.backlog = append(b.backlog, r) + b.mu.Unlock() +} + +func (b *recvBuffer) load() { + b.mu.Lock() + if len(b.backlog) > 0 { + select { + case b.c <- b.backlog[0]: + b.backlog[0] = recvMsg{} + b.backlog = b.backlog[1:] + default: + } + } + b.mu.Unlock() +} + +// get returns the channel that receives a recvMsg in the buffer. +// +// Upon receipt of a recvMsg, the caller should call load to send another +// recvMsg onto the channel if there is any. +func (b *recvBuffer) get() <-chan recvMsg { + return b.c +} + +// recvBufferReader implements io.Reader interface to read the data from +// recvBuffer. +type recvBufferReader struct { + ctx context.Context + goAway chan struct{} + recv *recvBuffer + last []byte // Stores the remaining data in the previous calls. + err error +} + +// Read reads the next len(p) bytes from last. If last is drained, it tries to +// read additional data from recv. It blocks if there no additional data available +// in recv. If Read returns any non-nil error, it will continue to return that error. +func (r *recvBufferReader) Read(p []byte) (n int, err error) { + if r.err != nil { + return 0, r.err + } + n, r.err = r.read(p) + return n, r.err +} + +func (r *recvBufferReader) read(p []byte) (n int, err error) { + if r.last != nil && len(r.last) > 0 { + // Read remaining data left in last call. + copied := copy(p, r.last) + r.last = r.last[copied:] + return copied, nil + } + select { + case <-r.ctx.Done(): + return 0, ContextErr(r.ctx.Err()) + case <-r.goAway: + return 0, errStreamDrain + case m := <-r.recv.get(): + r.recv.load() + if m.err != nil { + return 0, m.err + } + copied := copy(p, m.data) + r.last = m.data[copied:] + return copied, nil + } +} + +// All items in an out of a controlBuffer should be the same type. +type item interface { + item() +} + +// controlBuffer is an unbounded channel of item. +type controlBuffer struct { + c chan item + mu sync.Mutex + backlog []item +} + +func newControlBuffer() *controlBuffer { + b := &controlBuffer{ + c: make(chan item, 1), + } + return b +} + +func (b *controlBuffer) put(r item) { + b.mu.Lock() + if len(b.backlog) == 0 { + select { + case b.c <- r: + b.mu.Unlock() + return + default: + } + } + b.backlog = append(b.backlog, r) + b.mu.Unlock() +} + +func (b *controlBuffer) load() { + b.mu.Lock() + if len(b.backlog) > 0 { + select { + case b.c <- b.backlog[0]: + b.backlog[0] = nil + b.backlog = b.backlog[1:] + default: + } + } + b.mu.Unlock() +} + +// get returns the channel that receives an item in the buffer. +// +// Upon receipt of an item, the caller should call load to send another +// item onto the channel if there is any. +func (b *controlBuffer) get() <-chan item { + return b.c +} + +type streamState uint8 + +const ( + streamActive streamState = iota + streamWriteDone // EndStream sent + streamReadDone // EndStream received + streamDone // the entire stream is finished. +) + +// Stream represents an RPC in the transport layer. +type Stream struct { + id uint32 + st ServerTransport // nil for client side Stream + ctx context.Context // the associated context of the stream + cancel context.CancelFunc // always nil for client side Stream + done chan struct{} // closed when the final status arrives + goAway chan struct{} // closed when a GOAWAY control message is received + method string // the associated RPC method of the stream + recvCompress string + sendCompress string + buf *recvBuffer + trReader io.Reader + fc *inFlow + recvQuota uint32 + waiters waiters + + // Callback to state application's intentions to read data. This + // is used to adjust flow control, if needed. + requestRead func(int) + + sendQuotaPool *quotaPool + headerChan chan struct{} // closed to indicate the end of header metadata. + headerDone bool // set when headerChan is closed. Used to avoid closing headerChan multiple times. + header metadata.MD // the received header metadata. + trailer metadata.MD // the key-value map of trailer metadata. + + mu sync.RWMutex // guard the following + headerOk bool // becomes true from the first header is about to send + state streamState + + status *status.Status // the status error received from the server + + rstStream bool // indicates whether a RST_STREAM frame needs to be sent + rstError http2.ErrCode // the error that needs to be sent along with the RST_STREAM frame + + bytesReceived bool // indicates whether any bytes have been received on this stream + unprocessed bool // set if the server sends a refused stream or GOAWAY including this stream + + // contentSubtype is the content-subtype for requests. + // this must be lowercase or the behavior is undefined. + contentSubtype string +} + +func (s *Stream) waitOnHeader() error { + if s.headerChan == nil { + // On the server headerChan is always nil since a stream originates + // only after having received headers. + return nil + } + wc := s.waiters + select { + case <-wc.ctx.Done(): + return ContextErr(wc.ctx.Err()) + case <-wc.goAway: + return errStreamDrain + case <-s.headerChan: + return nil + } +} + +// RecvCompress returns the compression algorithm applied to the inbound +// message. It is empty string if there is no compression applied. +func (s *Stream) RecvCompress() string { + if err := s.waitOnHeader(); err != nil { + return "" + } + return s.recvCompress +} + +// SetSendCompress sets the compression algorithm to the stream. +func (s *Stream) SetSendCompress(str string) { + s.sendCompress = str +} + +// Done returns a chanel which is closed when it receives the final status +// from the server. +func (s *Stream) Done() <-chan struct{} { + return s.done +} + +// GoAway returns a channel which is closed when the server sent GoAways signal +// before this stream was initiated. +func (s *Stream) GoAway() <-chan struct{} { + return s.goAway +} + +// Header acquires the key-value pairs of header metadata once it +// is available. It blocks until i) the metadata is ready or ii) there is no +// header metadata or iii) the stream is canceled/expired. +func (s *Stream) Header() (metadata.MD, error) { + err := s.waitOnHeader() + // Even if the stream is closed, header is returned if available. + select { + case <-s.headerChan: + return s.header.Copy(), nil + default: + } + return nil, err +} + +// Trailer returns the cached trailer metedata. Note that if it is not called +// after the entire stream is done, it could return an empty MD. Client +// side only. +func (s *Stream) Trailer() metadata.MD { + s.mu.RLock() + c := s.trailer.Copy() + s.mu.RUnlock() + return c +} + +// ServerTransport returns the underlying ServerTransport for the stream. +// The client side stream always returns nil. +func (s *Stream) ServerTransport() ServerTransport { + return s.st +} + +// ContentSubtype returns the content-subtype for a request. For example, a +// content-subtype of "proto" will result in a content-type of +// "application/grpc+proto". This will always be lowercase. See +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for +// more details. +func (s *Stream) ContentSubtype() string { + return s.contentSubtype +} + +// Context returns the context of the stream. +func (s *Stream) Context() context.Context { + return s.ctx +} + +// Method returns the method for the stream. +func (s *Stream) Method() string { + return s.method +} + +// Status returns the status received from the server. +func (s *Stream) Status() *status.Status { + return s.status +} + +// SetHeader sets the header metadata. This can be called multiple times. +// Server side only. +func (s *Stream) SetHeader(md metadata.MD) error { + s.mu.Lock() + if s.headerOk || s.state == streamDone { + s.mu.Unlock() + return ErrIllegalHeaderWrite + } + if md.Len() == 0 { + s.mu.Unlock() + return nil + } + s.header = metadata.Join(s.header, md) + s.mu.Unlock() + return nil +} + +// SendHeader sends the given header metadata. The given metadata is +// combined with any metadata set by previous calls to SetHeader and +// then written to the transport stream. +func (s *Stream) SendHeader(md metadata.MD) error { + t := s.ServerTransport() + return t.WriteHeader(s, md) +} + +// SetTrailer sets the trailer metadata which will be sent with the RPC status +// by the server. This can be called multiple times. Server side only. +func (s *Stream) SetTrailer(md metadata.MD) error { + if md.Len() == 0 { + return nil + } + s.mu.Lock() + s.trailer = metadata.Join(s.trailer, md) + s.mu.Unlock() + return nil +} + +func (s *Stream) write(m recvMsg) { + s.buf.put(m) +} + +// Read reads all p bytes from the wire for this stream. +func (s *Stream) Read(p []byte) (n int, err error) { + // Don't request a read if there was an error earlier + if er := s.trReader.(*transportReader).er; er != nil { + return 0, er + } + s.requestRead(len(p)) + return io.ReadFull(s.trReader, p) +} + +// tranportReader reads all the data available for this Stream from the transport and +// passes them into the decoder, which converts them into a gRPC message stream. +// The error is io.EOF when the stream is done or another non-nil error if +// the stream broke. +type transportReader struct { + reader io.Reader + // The handler to control the window update procedure for both this + // particular stream and the associated transport. + windowHandler func(int) + er error +} + +func (t *transportReader) Read(p []byte) (n int, err error) { + n, err = t.reader.Read(p) + if err != nil { + t.er = err + return + } + t.windowHandler(n) + return +} + +// finish sets the stream's state and status, and closes the done channel. +// s.mu must be held by the caller. st must always be non-nil. +func (s *Stream) finish(st *status.Status) { + s.status = st + s.state = streamDone + close(s.done) +} + +// BytesReceived indicates whether any bytes have been received on this stream. +func (s *Stream) BytesReceived() bool { + s.mu.Lock() + br := s.bytesReceived + s.mu.Unlock() + return br +} + +// Unprocessed indicates whether the server did not process this stream -- +// i.e. it sent a refused stream or GOAWAY including this stream ID. +func (s *Stream) Unprocessed() bool { + s.mu.Lock() + br := s.unprocessed + s.mu.Unlock() + return br +} + +// GoString is implemented by Stream so context.String() won't +// race when printing %#v. +func (s *Stream) GoString() string { + return fmt.Sprintf("", s, s.method) +} + +// state of transport +type transportState int + +const ( + reachable transportState = iota + closing + draining +) + +// ServerConfig consists of all the configurations to establish a server transport. +type ServerConfig struct { + MaxStreams uint32 + AuthInfo credentials.AuthInfo + InTapHandle tap.ServerInHandle + StatsHandler stats.Handler + KeepaliveParams keepalive.ServerParameters + KeepalivePolicy keepalive.EnforcementPolicy + InitialWindowSize int32 + InitialConnWindowSize int32 + WriteBufferSize int + ReadBufferSize int +} + +// NewServerTransport creates a ServerTransport with conn or non-nil error +// if it fails. +func NewServerTransport(protocol string, conn net.Conn, config *ServerConfig) (ServerTransport, error) { + return newHTTP2Server(conn, config) +} + +// ConnectOptions covers all relevant options for communicating with the server. +type ConnectOptions struct { + // UserAgent is the application user agent. + UserAgent string + // Authority is the :authority pseudo-header to use. This field has no effect if + // TransportCredentials is set. + Authority string + // Dialer specifies how to dial a network address. + Dialer func(context.Context, string) (net.Conn, error) + // FailOnNonTempDialError specifies if gRPC fails on non-temporary dial errors. + FailOnNonTempDialError bool + // PerRPCCredentials stores the PerRPCCredentials required to issue RPCs. + PerRPCCredentials []credentials.PerRPCCredentials + // TransportCredentials stores the Authenticator required to setup a client connection. + TransportCredentials credentials.TransportCredentials + // KeepaliveParams stores the keepalive parameters. + KeepaliveParams keepalive.ClientParameters + // StatsHandler stores the handler for stats. + StatsHandler stats.Handler + // InitialWindowSize sets the initial window size for a stream. + InitialWindowSize int32 + // InitialConnWindowSize sets the initial window size for a connection. + InitialConnWindowSize int32 + // WriteBufferSize sets the size of write buffer which in turn determines how much data can be batched before it's written on the wire. + WriteBufferSize int + // ReadBufferSize sets the size of read buffer, which in turn determines how much data can be read at most for one read syscall. + ReadBufferSize int +} + +// TargetInfo contains the information of the target such as network address and metadata. +type TargetInfo struct { + Addr string + Metadata interface{} + Authority string +} + +// NewClientTransport establishes the transport with the required ConnectOptions +// and returns it to the caller. +func NewClientTransport(connectCtx, ctx context.Context, target TargetInfo, opts ConnectOptions, onSuccess func()) (ClientTransport, error) { + return newHTTP2Client(connectCtx, ctx, target, opts, onSuccess) +} + +// Options provides additional hints and information for message +// transmission. +type Options struct { + // Last indicates whether this write is the last piece for + // this stream. + Last bool + + // Delay is a hint to the transport implementation for whether + // the data could be buffered for a batching write. The + // transport implementation may ignore the hint. + Delay bool +} + +// CallHdr carries the information of a particular RPC. +type CallHdr struct { + // Host specifies the peer's host. + Host string + + // Method specifies the operation to perform. + Method string + + // SendCompress specifies the compression algorithm applied on + // outbound message. + SendCompress string + + // Creds specifies credentials.PerRPCCredentials for a call. + Creds credentials.PerRPCCredentials + + // Flush indicates whether a new stream command should be sent + // to the peer without waiting for the first data. This is + // only a hint. + // If it's true, the transport may modify the flush decision + // for performance purposes. + // If it's false, new stream will never be flushed. + Flush bool + + // ContentSubtype specifies the content-subtype for a request. For example, a + // content-subtype of "proto" will result in a content-type of + // "application/grpc+proto". The value of ContentSubtype must be all + // lowercase, otherwise the behavior is undefined. See + // https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests + // for more details. + ContentSubtype string +} + +// ClientTransport is the common interface for all gRPC client-side transport +// implementations. +type ClientTransport interface { + // Close tears down this transport. Once it returns, the transport + // should not be accessed any more. The caller must make sure this + // is called only once. + Close() error + + // GracefulClose starts to tear down the transport. It stops accepting + // new RPCs and wait the completion of the pending RPCs. + GracefulClose() error + + // Write sends the data for the given stream. A nil stream indicates + // the write is to be performed on the transport as a whole. + Write(s *Stream, hdr []byte, data []byte, opts *Options) error + + // NewStream creates a Stream for an RPC. + NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, error) + + // CloseStream clears the footprint of a stream when the stream is + // not needed any more. The err indicates the error incurred when + // CloseStream is called. Must be called when a stream is finished + // unless the associated transport is closing. + CloseStream(stream *Stream, err error) + + // Error returns a channel that is closed when some I/O error + // happens. Typically the caller should have a goroutine to monitor + // this in order to take action (e.g., close the current transport + // and create a new one) in error case. It should not return nil + // once the transport is initiated. + Error() <-chan struct{} + + // GoAway returns a channel that is closed when ClientTransport + // receives the draining signal from the server (e.g., GOAWAY frame in + // HTTP/2). + GoAway() <-chan struct{} + + // GetGoAwayReason returns the reason why GoAway frame was received. + GetGoAwayReason() GoAwayReason +} + +// ServerTransport is the common interface for all gRPC server-side transport +// implementations. +// +// Methods may be called concurrently from multiple goroutines, but +// Write methods for a given Stream will be called serially. +type ServerTransport interface { + // HandleStreams receives incoming streams using the given handler. + HandleStreams(func(*Stream), func(context.Context, string) context.Context) + + // WriteHeader sends the header metadata for the given stream. + // WriteHeader may not be called on all streams. + WriteHeader(s *Stream, md metadata.MD) error + + // Write sends the data for the given stream. + // Write may not be called on all streams. + Write(s *Stream, hdr []byte, data []byte, opts *Options) error + + // WriteStatus sends the status of a stream to the client. WriteStatus is + // the final call made on a stream and always occurs. + WriteStatus(s *Stream, st *status.Status) error + + // Close tears down the transport. Once it is called, the transport + // should not be accessed any more. All the pending streams and their + // handlers will be terminated asynchronously. + Close() error + + // RemoteAddr returns the remote network address. + RemoteAddr() net.Addr + + // Drain notifies the client this ServerTransport stops accepting new RPCs. + Drain() +} + +// streamErrorf creates an StreamError with the specified error code and description. +func streamErrorf(c codes.Code, format string, a ...interface{}) StreamError { + return StreamError{ + Code: c, + Desc: fmt.Sprintf(format, a...), + } +} + +// connectionErrorf creates an ConnectionError with the specified error description. +func connectionErrorf(temp bool, e error, format string, a ...interface{}) ConnectionError { + return ConnectionError{ + Desc: fmt.Sprintf(format, a...), + temp: temp, + err: e, + } +} + +// ConnectionError is an error that results in the termination of the +// entire connection and the retry of all the active streams. +type ConnectionError struct { + Desc string + temp bool + err error +} + +func (e ConnectionError) Error() string { + return fmt.Sprintf("connection error: desc = %q", e.Desc) +} + +// Temporary indicates if this connection error is temporary or fatal. +func (e ConnectionError) Temporary() bool { + return e.temp +} + +// Origin returns the original error of this connection error. +func (e ConnectionError) Origin() error { + // Never return nil error here. + // If the original error is nil, return itself. + if e.err == nil { + return e + } + return e.err +} + +var ( + // ErrConnClosing indicates that the transport is closing. + ErrConnClosing = connectionErrorf(true, nil, "transport is closing") + // errStreamDrain indicates that the stream is rejected because the + // connection is draining. This could be caused by goaway or balancer + // removing the address. + errStreamDrain = streamErrorf(codes.Unavailable, "the connection is draining") + // StatusGoAway indicates that the server sent a GOAWAY that included this + // stream's ID in unprocessed RPCs. + statusGoAway = status.New(codes.Unavailable, "the stream is rejected because server is draining the connection") +) + +// TODO: See if we can replace StreamError with status package errors. + +// StreamError is an error that only affects one stream within a connection. +type StreamError struct { + Code codes.Code + Desc string +} + +func (e StreamError) Error() string { + return fmt.Sprintf("stream error: code = %s desc = %q", e.Code, e.Desc) +} + +// waiters are passed to quotaPool get methods to +// wait on in addition to waiting on quota. +type waiters struct { + ctx context.Context + tctx context.Context + done chan struct{} + goAway chan struct{} +} + +// GoAwayReason contains the reason for the GoAway frame received. +type GoAwayReason uint8 + +const ( + // GoAwayInvalid indicates that no GoAway frame is received. + GoAwayInvalid GoAwayReason = 0 + // GoAwayNoReason is the default value when GoAway frame is received. + GoAwayNoReason GoAwayReason = 1 + // GoAwayTooManyPings indicates that a GoAway frame with + // ErrCodeEnhanceYourCalm was received and that the debug data said + // "too_many_pings". + GoAwayTooManyPings GoAwayReason = 2 +) + +// loopyWriter is run in a separate go routine. It is the single code path that will +// write data on wire. +func loopyWriter(ctx context.Context, cbuf *controlBuffer, handler func(item) error) { + for { + select { + case i := <-cbuf.get(): + cbuf.load() + if err := handler(i); err != nil { + errorf("transport: Error while handling item. Err: %v", err) + return + } + case <-ctx.Done(): + return + } + hasData: + for { + select { + case i := <-cbuf.get(): + cbuf.load() + if err := handler(i); err != nil { + errorf("transport: Error while handling item. Err: %v", err) + return + } + case <-ctx.Done(): + return + default: + if err := handler(&flushIO{}); err != nil { + errorf("transport: Error while flushing. Err: %v", err) + return + } + break hasData + } + } + } +} diff --git a/vendor/google.golang.org/grpc/vet.sh b/vendor/google.golang.org/grpc/vet.sh new file mode 100644 index 0000000..2ad94fe --- /dev/null +++ b/vendor/google.golang.org/grpc/vet.sh @@ -0,0 +1,84 @@ +#!/bin/bash + +set -ex # Exit on error; debugging enabled. +set -o pipefail # Fail a pipe if any sub-command fails. + +die() { + echo "$@" >&2 + exit 1 +} + +PATH="$GOPATH/bin:$GOROOT/bin:$PATH" + +# Check proto in manual runs or cron runs. +if [[ "$TRAVIS" != "true" || "$TRAVIS_EVENT_TYPE" = "cron" ]]; then + check_proto="true" +fi + +if [ "$1" = "-install" ]; then + go get -d \ + google.golang.org/grpc/... + go get -u \ + github.com/golang/lint/golint \ + golang.org/x/tools/cmd/goimports \ + honnef.co/go/tools/cmd/staticcheck \ + github.com/client9/misspell/cmd/misspell \ + github.com/golang/protobuf/protoc-gen-go + if [[ "$check_proto" = "true" ]]; then + if [[ "$TRAVIS" = "true" ]]; then + PROTOBUF_VERSION=3.3.0 + PROTOC_FILENAME=protoc-${PROTOBUF_VERSION}-linux-x86_64.zip + pushd /home/travis + wget https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/${PROTOC_FILENAME} + unzip ${PROTOC_FILENAME} + bin/protoc --version + popd + elif ! which protoc > /dev/null; then + die "Please install protoc into your path" + fi + fi + exit 0 +elif [[ "$#" -ne 0 ]]; then + die "Unknown argument(s): $*" +fi + +# TODO: Remove this check and the mangling below once "context" is imported +# directly. +if git status --porcelain | read; then + die "Uncommitted or untracked files found; commit changes first" +fi + +git ls-files "*.go" | xargs grep -L "\(Copyright [0-9]\{4,\} gRPC authors\)\|DO NOT EDIT" 2>&1 | tee /dev/stderr | (! read) +gofmt -s -d -l . 2>&1 | tee /dev/stderr | (! read) +goimports -l . 2>&1 | tee /dev/stderr | (! read) +golint ./... 2>&1 | (grep -vE "(_mock|\.pb)\.go:" || true) | tee /dev/stderr | (! read) + +# Undo any edits made by this script. +cleanup() { + git reset --hard HEAD +} +trap cleanup EXIT + +# Rewrite golang.org/x/net/context -> context imports (see grpc/grpc-go#1484). +# TODO: Remove this mangling once "context" is imported directly (grpc/grpc-go#711). +git ls-files "*.go" | xargs sed -i 's:"golang.org/x/net/context":"context":' +set +o pipefail +# TODO: Stop filtering pb.go files once golang/protobuf#214 is fixed. +go tool vet -all . 2>&1 | grep -vE '(clientconn|transport\/transport_test).go:.*cancel (function|var)' | grep -vF '.pb.go:' | tee /dev/stderr | (! read) +set -o pipefail +git reset --hard HEAD + +if [[ "$check_proto" = "true" ]]; then + PATH="/home/travis/bin:$PATH" make proto && \ + git status --porcelain 2>&1 | (! read) || \ + (git status; git --no-pager diff; exit 1) +fi + +# TODO(menghanl): fix errors in transport_test. +staticcheck -ignore ' +google.golang.org/grpc/transport/transport_test.go:SA2002 +google.golang.org/grpc/benchmark/benchmain/main.go:SA1019 +google.golang.org/grpc/stats/stats_test.go:SA1019 +google.golang.org/grpc/test/end2end_test.go:SA1019 +' ./... +misspell -error . diff --git a/vendor/gopkg.in/jcmturner/aescts.v1/.gitignore b/vendor/gopkg.in/jcmturner/aescts.v1/.gitignore new file mode 100644 index 0000000..a1338d6 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/aescts.v1/.gitignore @@ -0,0 +1,14 @@ +# Binaries for programs and plugins +*.exe +*.dll +*.so +*.dylib + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 +.glide/ diff --git a/vendor/gopkg.in/jcmturner/aescts.v1/LICENSE b/vendor/gopkg.in/jcmturner/aescts.v1/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/vendor/gopkg.in/jcmturner/aescts.v1/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/gopkg.in/jcmturner/aescts.v1/README.md b/vendor/gopkg.in/jcmturner/aescts.v1/README.md new file mode 100644 index 0000000..d1fddf3 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/aescts.v1/README.md @@ -0,0 +1,16 @@ +# AES CBC Ciphertext Stealing +[![GoDoc](https://godoc.org/gopkg.in/jcmturner/aescts.v1?status.svg)](https://godoc.org/gopkg.in/jcmturner/aescts.v1) [![Go Report Card](https://goreportcard.com/badge/gopkg.in/jcmturner/aescts.v1)](https://goreportcard.com/report/gopkg.in/jcmturner/aescts.v1) + +Encrypt and decrypt data using AES CBC Ciphertext stealing mode. + +Reference: https://en.wikipedia.org/wiki/Ciphertext_stealing#CBC_ciphertext_stealing + +To get the package, execute: +``` +go get gopkg.in/jcmturner/aescts.v1 +``` +To import this package, add the following line to your code: +```go +import "gopkg.in/jcmturner/aescts.v1" + +``` \ No newline at end of file diff --git a/vendor/gopkg.in/jcmturner/aescts.v1/aescts.go b/vendor/gopkg.in/jcmturner/aescts.v1/aescts.go new file mode 100644 index 0000000..278713e --- /dev/null +++ b/vendor/gopkg.in/jcmturner/aescts.v1/aescts.go @@ -0,0 +1,186 @@ +// Package aescts provides AES CBC CipherText Stealing encryption and decryption methods +package aescts + +import ( + "crypto/aes" + "crypto/cipher" + "errors" + "fmt" +) + +// Encrypt the message with the key and the initial vector. +// Returns: next iv, ciphertext bytes, error +func Encrypt(key, iv, plaintext []byte) ([]byte, []byte, error) { + l := len(plaintext) + + block, err := aes.NewCipher(key) + if err != nil { + return []byte{}, []byte{}, fmt.Errorf("Error creating cipher: %v", err) + } + mode := cipher.NewCBCEncrypter(block, iv) + + m := make([]byte, len(plaintext)) + copy(m, plaintext) + + /*For consistency, ciphertext stealing is always used for the last two + blocks of the data to be encrypted, as in [RC5]. If the data length + is a multiple of the block size, this is equivalent to plain CBC mode + with the last two ciphertext blocks swapped.*/ + /*The initial vector carried out from one encryption for use in a + subsequent encryption is the next-to-last block of the encryption + output; this is the encrypted form of the last plaintext block.*/ + if l <= aes.BlockSize { + m, _ = zeroPad(m, aes.BlockSize) + mode.CryptBlocks(m, m) + return m, m, nil + } + if l%aes.BlockSize == 0 { + mode.CryptBlocks(m, m) + iv = m[len(m)-aes.BlockSize:] + rb, _ := swapLastTwoBlocks(m, aes.BlockSize) + return iv, rb, nil + } + m, _ = zeroPad(m, aes.BlockSize) + rb, pb, lb, err := tailBlocks(m, aes.BlockSize) + if err != nil { + return []byte{}, []byte{}, fmt.Errorf("Error tailing blocks: %v", err) + } + var ct []byte + if rb != nil { + // Encrpt all but the lats 2 blocks and update the rolling iv + mode.CryptBlocks(rb, rb) + iv = rb[len(rb)-aes.BlockSize:] + mode = cipher.NewCBCEncrypter(block, iv) + ct = append(ct, rb...) + } + mode.CryptBlocks(pb, pb) + mode = cipher.NewCBCEncrypter(block, pb) + mode.CryptBlocks(lb, lb) + // Cipher Text Stealing (CTS) - Ref: https://en.wikipedia.org/wiki/Ciphertext_stealing#CBC_ciphertext_stealing + // Swap the last two cipher blocks + // Truncate the ciphertext to the length of the original plaintext + ct = append(ct, lb...) + ct = append(ct, pb...) + return lb, ct[:l], nil +} + +// Decrypt the ciphertext with the key and the initial vector. +func Decrypt(key, iv, ciphertext []byte) ([]byte, error) { + // Copy the cipher text as golang slices even when passed by value to this method can result in the backing arrays of the calling code value being updated. + ct := make([]byte, len(ciphertext)) + copy(ct, ciphertext) + if len(ct) < aes.BlockSize { + return []byte{}, fmt.Errorf("Ciphertext is not large enough. It is less that one block size. Blocksize:%v; Ciphertext:%v", aes.BlockSize, len(ct)) + } + // Configure the CBC + block, err := aes.NewCipher(key) + if err != nil { + return nil, fmt.Errorf("Error creating cipher: %v", err) + } + var mode cipher.BlockMode + + //If ciphertext is multiple of blocksize we just need to swap back the last two blocks and then do CBC + //If the ciphertext is just one block we can't swap so we just decrypt + if len(ct)%aes.BlockSize == 0 { + if len(ct) > aes.BlockSize { + ct, _ = swapLastTwoBlocks(ct, aes.BlockSize) + } + mode = cipher.NewCBCDecrypter(block, iv) + message := make([]byte, len(ct)) + mode.CryptBlocks(message, ct) + return message[:len(ct)], nil + } + + // Cipher Text Stealing (CTS) using CBC interface. Ref: https://en.wikipedia.org/wiki/Ciphertext_stealing#CBC_ciphertext_stealing + // Get ciphertext of the 2nd to last (penultimate) block (cpb), the last block (clb) and the rest (crb) + crb, cpb, clb, _ := tailBlocks(ct, aes.BlockSize) + v := make([]byte, len(iv), len(iv)) + copy(v, iv) + var message []byte + if crb != nil { + //If there is more than just the last and the penultimate block we decrypt it and the last bloc of this becomes the iv for later + rb := make([]byte, len(crb)) + mode = cipher.NewCBCDecrypter(block, v) + v = crb[len(crb)-aes.BlockSize:] + mode.CryptBlocks(rb, crb) + message = append(message, rb...) + } + + // We need to modify the cipher text + // Decryt the 2nd to last (penultimate) block with a the original iv + pb := make([]byte, aes.BlockSize) + mode = cipher.NewCBCDecrypter(block, iv) + mode.CryptBlocks(pb, cpb) + // number of byte needed to pad + npb := aes.BlockSize - len(ct)%aes.BlockSize + //pad last block using the number of bytes needed from the tail of the plaintext 2nd to last (penultimate) block + clb = append(clb, pb[len(pb)-npb:]...) + + // Now decrypt the last block in the penultimate position (iv will be from the crb, if the is no crb it's zeros) + // iv for the penultimate block decrypted in the last position becomes the modified last block + lb := make([]byte, aes.BlockSize) + mode = cipher.NewCBCDecrypter(block, v) + v = clb + mode.CryptBlocks(lb, clb) + message = append(message, lb...) + + // Now decrypt the penultimate block in the last position (iv will be from the modified last block) + mode = cipher.NewCBCDecrypter(block, v) + mode.CryptBlocks(cpb, cpb) + message = append(message, cpb...) + + // Truncate to the size of the original cipher text + return message[:len(ct)], nil +} + +func tailBlocks(b []byte, c int) ([]byte, []byte, []byte, error) { + if len(b) <= c { + return []byte{}, []byte{}, []byte{}, errors.New("bytes slice is not larger than one block so cannot tail") + } + // Get size of last block + var lbs int + if l := len(b) % aes.BlockSize; l == 0 { + lbs = aes.BlockSize + } else { + lbs = l + } + // Get last block + lb := b[len(b)-lbs:] + // Get 2nd to last (penultimate) block + pb := b[len(b)-lbs-c : len(b)-lbs] + if len(b) > 2*c { + rb := b[:len(b)-lbs-c] + return rb, pb, lb, nil + } + return nil, pb, lb, nil +} + +func swapLastTwoBlocks(b []byte, c int) ([]byte, error) { + rb, pb, lb, err := tailBlocks(b, c) + if err != nil { + return nil, err + } + var out []byte + if rb != nil { + out = append(out, rb...) + } + out = append(out, lb...) + out = append(out, pb...) + return out, nil +} + +// zeroPad pads bytes with zeros to nearest multiple of message size m. +func zeroPad(b []byte, m int) ([]byte, error) { + if m <= 0 { + return nil, errors.New("Invalid message block size when padding") + } + if b == nil || len(b) == 0 { + return nil, errors.New("Data not valid to pad: Zero size") + } + if l := len(b) % m; l != 0 { + n := m - l + z := make([]byte, n) + b = append(b, z...) + } + return b, nil +} diff --git a/vendor/gopkg.in/jcmturner/dnsutils.v1/.gitignore b/vendor/gopkg.in/jcmturner/dnsutils.v1/.gitignore new file mode 100644 index 0000000..a1338d6 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/dnsutils.v1/.gitignore @@ -0,0 +1,14 @@ +# Binaries for programs and plugins +*.exe +*.dll +*.so +*.dylib + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 +.glide/ diff --git a/vendor/gopkg.in/jcmturner/dnsutils.v1/.travis.yml b/vendor/gopkg.in/jcmturner/dnsutils.v1/.travis.yml new file mode 100644 index 0000000..cab4f7b --- /dev/null +++ b/vendor/gopkg.in/jcmturner/dnsutils.v1/.travis.yml @@ -0,0 +1,24 @@ +language: go + +go: + - 1.7.x + - 1.8.x + - 1.9.x + - master + +gobuild_args: -tags=integration -race + +sudo: required + +services: + - docker + +before_install: + - docker pull jcmturner/gokrb5:dns + - docker run -d -h kdc.test.gokrb5 -v /etc/localtime:/etc/localtime:ro -e "TEST_KDC_ADDR=127.0.0.1" -p 53:53 -p 53:53/udp --name dns jcmturner/gokrb5:dns + +before_script: + - sudo sed -i 's/nameserver .*/nameserver 127.0.0.1/g' /etc/resolv.conf + +env: + - DNSUTILS_OVERRIDE_NS="127.0.0.1:53" \ No newline at end of file diff --git a/vendor/gopkg.in/jcmturner/dnsutils.v1/LICENSE b/vendor/gopkg.in/jcmturner/dnsutils.v1/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/dnsutils.v1/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/gopkg.in/jcmturner/dnsutils.v1/srv.go b/vendor/gopkg.in/jcmturner/dnsutils.v1/srv.go new file mode 100644 index 0000000..15ea912 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/dnsutils.v1/srv.go @@ -0,0 +1,95 @@ +package dnsutils + +import ( + "math/rand" + "net" + "sort" +) + +// OrderedSRV returns a count of the results and a map keyed on the order they should be used. +// This based on the records' priority and randomised selection based on their relative weighting. +// The function's inputs are the same as those for net.LookupSRV +// To use in the correct order: +// +// count, orderedSRV, err := OrderedSRV(service, proto, name) +// i := 1 +// for i <= count { +// srv := orderedSRV[i] +// // Do something such as dial this SRV. If fails move on the the next or break if it succeeds. +// i += 1 +// } +func OrderedSRV(service, proto, name string) (int, map[int]*net.SRV, error) { + _, addrs, err := net.LookupSRV(service, proto, name) + if err != nil { + return 0, make(map[int]*net.SRV), err + } + index, osrv := orderSRV(addrs) + return index, osrv, nil +} + +func orderSRV(addrs []*net.SRV) (int, map[int]*net.SRV) { + // Initialise the ordered map + var o int + osrv := make(map[int]*net.SRV) + + prioMap := make(map[int][]*net.SRV, 0) + for _, srv := range addrs { + prioMap[int(srv.Priority)] = append(prioMap[int(srv.Priority)], srv) + } + + priorities := make([]int, 0) + for p := range prioMap { + priorities = append(priorities, p) + } + + var count int + sort.Ints(priorities) + for _, p := range priorities { + tos := weightedOrder(prioMap[p]) + for i, s := range tos { + count += 1 + osrv[o+i] = s + } + o += len(tos) + } + return count, osrv +} + +func weightedOrder(srvs []*net.SRV) map[int]*net.SRV { + // Get the total weight + var tw int + for _, s := range srvs { + tw += int(s.Weight) + } + + // Initialise the ordered map + o := 1 + osrv := make(map[int]*net.SRV) + + // Whilst there are still entries to be ordered + l := len(srvs) + for l > 0 { + i := rand.Intn(l) + s := srvs[i] + var rw int + if tw > 0 { + // Greater the weight the more likely this will be zero or less + rw = rand.Intn(tw) - int(s.Weight) + } + if rw <= 0 { + // Put entry in position + osrv[o] = s + if len(srvs) > 1 { + // Remove the entry from the source slice by swapping with the last entry and truncating + srvs[len(srvs)-1], srvs[i] = srvs[i], srvs[len(srvs)-1] + srvs = srvs[:len(srvs)-1] + l = len(srvs) + } else { + l = 0 + } + o += 1 + tw = tw - int(s.Weight) + } + } + return osrv +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/LICENSE b/vendor/gopkg.in/jcmturner/gokrb5.v7/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/asn1tools/tools.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/asn1tools/tools.go new file mode 100644 index 0000000..f27740b --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/asn1tools/tools.go @@ -0,0 +1,86 @@ +// Package asn1tools provides tools for managing ASN1 marshaled data. +package asn1tools + +import ( + "github.com/jcmturner/gofork/encoding/asn1" +) + +// MarshalLengthBytes returns the ASN1 encoded bytes for the length 'l' +// +// There are two forms: short (for lengths between 0 and 127), and long definite (for lengths between 0 and 2^1008 -1). +// +// Short form: One octet. Bit 8 has value "0" and bits 7-1 give the length. +// +// Long form: Two to 127 octets. Bit 8 of first octet has value "1" and bits 7-1 give the number of additional length octets. Second and following octets give the length, base 256, most significant digit first. +func MarshalLengthBytes(l int) []byte { + if l <= 127 { + return []byte{byte(l)} + } + var b []byte + p := 1 + for i := 1; i < 127; { + b = append([]byte{byte((l % (p * 256)) / p)}, b...) + p = p * 256 + l = l - l%p + if l <= 0 { + break + } + } + return append([]byte{byte(128 + len(b))}, b...) +} + +// GetLengthFromASN returns the length of a slice of ASN1 encoded bytes from the ASN1 length header it contains. +func GetLengthFromASN(b []byte) int { + if int(b[1]) <= 127 { + return int(b[1]) + } + // The bytes that indicate the length + lb := b[2 : 2+int(b[1])-128] + base := 1 + l := 0 + for i := len(lb) - 1; i >= 0; i-- { + l += int(lb[i]) * base + base = base * 256 + } + return l +} + +// GetNumberBytesInLengthHeader returns the number of bytes in the ASn1 header that indicate the length. +func GetNumberBytesInLengthHeader(b []byte) int { + if int(b[1]) <= 127 { + return 1 + } + // The bytes that indicate the length + return 1 + int(b[1]) - 128 +} + +// AddASNAppTag adds an ASN1 encoding application tag value to the raw bytes provided. +func AddASNAppTag(b []byte, tag int) []byte { + r := asn1.RawValue{ + Class: asn1.ClassApplication, + IsCompound: true, + Tag: tag, + Bytes: b, + } + ab, _ := asn1.Marshal(r) + return ab +} + +/* +// The Marshal method of golang's asn1 package does not enable you to define wrapping the output in an application tag. +// This method adds that wrapping tag. +func AddASNAppTag(b []byte, tag int) []byte { + // The ASN1 wrapping consists of 2 bytes: + // 1st byte -> Identifier Octet - Application Tag + // 2nd byte -> The length (this will be the size indicated in the input bytes + 2 for the additional bytes we add here. + // Application Tag: + //| Bit: | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | + //| Value: | 0 | 1 | 1 | From the RFC spec 4120 | + //| Explanation | Defined by the ASN1 encoding rules for an application tag | A value of 1 indicates a constructed type | The ASN Application tag value | + // Therefore the value of the byte is an integer = ( Application tag value + 96 ) + //b = append(MarshalLengthBytes(int(b[1])+2), b...) + b = append(MarshalLengthBytes(len(b)), b...) + b = append([]byte{byte(96 + tag)}, b...) + return b +} +*/ diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/client/ASExchange.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/ASExchange.go new file mode 100644 index 0000000..9d1a2f3 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/ASExchange.go @@ -0,0 +1,189 @@ +package client + +import ( + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/crypto/etype" + "gopkg.in/jcmturner/gokrb5.v7/iana/errorcode" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/iana/patype" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/messages" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +// ASExchange performs an AS exchange for the client to retrieve a TGT. +func (cl *Client) ASExchange(realm string, ASReq messages.ASReq, referral int) (messages.ASRep, error) { + if ok, err := cl.IsConfigured(); !ok { + return messages.ASRep{}, krberror.Errorf(err, krberror.ConfigError, "AS Exchange cannot be performed") + } + + // Set PAData if required + err := setPAData(cl, nil, &ASReq) + if err != nil { + return messages.ASRep{}, krberror.Errorf(err, krberror.KRBMsgError, "AS Exchange Error: issue with setting PAData on AS_REQ") + } + + b, err := ASReq.Marshal() + if err != nil { + return messages.ASRep{}, krberror.Errorf(err, krberror.EncodingError, "AS Exchange Error: failed marshaling AS_REQ") + } + var ASRep messages.ASRep + + rb, err := cl.sendToKDC(b, realm) + if err != nil { + if e, ok := err.(messages.KRBError); ok { + switch e.ErrorCode { + case errorcode.KDC_ERR_PREAUTH_REQUIRED, errorcode.KDC_ERR_PREAUTH_FAILED: + // From now on assume this client will need to do this pre-auth and set the PAData + cl.settings.assumePreAuthentication = true + err = setPAData(cl, &e, &ASReq) + if err != nil { + return messages.ASRep{}, krberror.Errorf(err, krberror.KRBMsgError, "AS Exchange Error: failed setting AS_REQ PAData for pre-authentication required") + } + b, err := ASReq.Marshal() + if err != nil { + return messages.ASRep{}, krberror.Errorf(err, krberror.EncodingError, "AS Exchange Error: failed marshaling AS_REQ with PAData") + } + rb, err = cl.sendToKDC(b, realm) + if err != nil { + if _, ok := err.(messages.KRBError); ok { + return messages.ASRep{}, krberror.Errorf(err, krberror.KDCError, "AS Exchange Error: kerberos error response from KDC") + } + return messages.ASRep{}, krberror.Errorf(err, krberror.NetworkingError, "AS Exchange Error: failed sending AS_REQ to KDC") + } + case errorcode.KDC_ERR_WRONG_REALM: + // Client referral https://tools.ietf.org/html/rfc6806.html#section-7 + if referral > 5 { + return messages.ASRep{}, krberror.Errorf(err, krberror.KRBMsgError, "maximum number of client referrals exceeded") + } + referral++ + return cl.ASExchange(e.CRealm, ASReq, referral) + default: + return messages.ASRep{}, krberror.Errorf(err, krberror.KDCError, "AS Exchange Error: kerberos error response from KDC") + } + } else { + return messages.ASRep{}, krberror.Errorf(err, krberror.NetworkingError, "AS Exchange Error: failed sending AS_REQ to KDC") + } + } + err = ASRep.Unmarshal(rb) + if err != nil { + return messages.ASRep{}, krberror.Errorf(err, krberror.EncodingError, "AS Exchange Error: failed to process the AS_REP") + } + if ok, err := ASRep.Verify(cl.Config, cl.Credentials, ASReq); !ok { + return messages.ASRep{}, krberror.Errorf(err, krberror.KRBMsgError, "AS Exchange Error: AS_REP is not valid or client password/keytab incorrect") + } + return ASRep, nil +} + +// setPAData adds pre-authentication data to the AS_REQ. +func setPAData(cl *Client, krberr *messages.KRBError, ASReq *messages.ASReq) error { + if !cl.settings.DisablePAFXFAST() { + pa := types.PAData{PADataType: patype.PA_REQ_ENC_PA_REP} + ASReq.PAData = append(ASReq.PAData, pa) + } + if cl.settings.AssumePreAuthentication() { + // Identify the etype to use to encrypt the PA Data + var et etype.EType + var err error + var key types.EncryptionKey + if krberr == nil { + // This is not in response to an error from the KDC. It is preemptive or renewal + // There is no KRB Error that tells us the etype to use + etn := cl.settings.preAuthEType // Use the etype that may have previously been negotiated + if etn == 0 { + etn = int32(cl.Config.LibDefaults.PreferredPreauthTypes[0]) // Resort to config + } + et, err = crypto.GetEtype(etn) + if err != nil { + return krberror.Errorf(err, krberror.EncryptingError, "error getting etype for pre-auth encryption") + } + key, err = cl.Key(et, nil) + if err != nil { + return krberror.Errorf(err, krberror.EncryptingError, "error getting key from credentials") + } + } else { + // Get the etype to use from the PA data in the KRBError e-data + et, err = preAuthEType(krberr) + if err != nil { + return krberror.Errorf(err, krberror.EncryptingError, "error getting etype for pre-auth encryption") + } + cl.settings.preAuthEType = et.GetETypeID() // Set the etype that has been defined for potential future use + key, err = cl.Key(et, krberr) + if err != nil { + return krberror.Errorf(err, krberror.EncryptingError, "error getting key from credentials") + } + } + // Generate the PA data + paTSb, err := types.GetPAEncTSEncAsnMarshalled() + if err != nil { + return krberror.Errorf(err, krberror.KRBMsgError, "error creating PAEncTSEnc for Pre-Authentication") + } + //TODO (theme: KVNO from keytab) the kvno should not be hard coded to 1 as this hampers troubleshooting. + paEncTS, err := crypto.GetEncryptedData(paTSb, key, keyusage.AS_REQ_PA_ENC_TIMESTAMP, 1) + if err != nil { + return krberror.Errorf(err, krberror.EncryptingError, "error encrypting pre-authentication timestamp") + } + pb, err := paEncTS.Marshal() + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error marshaling the PAEncTSEnc encrypted data") + } + pa := types.PAData{ + PADataType: patype.PA_ENC_TIMESTAMP, + PADataValue: pb, + } + // Look for and delete any exiting patype.PA_ENC_TIMESTAMP + for i, pa := range ASReq.PAData { + if pa.PADataType == patype.PA_ENC_TIMESTAMP { + ASReq.PAData[i] = ASReq.PAData[len(ASReq.PAData)-1] + ASReq.PAData = ASReq.PAData[:len(ASReq.PAData)-1] + } + } + ASReq.PAData = append(ASReq.PAData, pa) + } + return nil +} + +// preAuthEType establishes what encryption type to use for pre-authentication from the KRBError returned from the KDC. +func preAuthEType(krberr *messages.KRBError) (etype etype.EType, err error) { + //The preferred ordering of the "hint" pre-authentication data that + //affect client key selection is: ETYPE-INFO2, followed by ETYPE-INFO, + //followed by PW-SALT. + //A KDC SHOULD NOT send PA-PW-SALT when issuing a KRB-ERROR message + //that requests additional pre-authentication. Implementation note: + //Some KDC implementations issue an erroneous PA-PW-SALT when issuing a + //KRB-ERROR message that requests additional pre-authentication. + //Therefore, clients SHOULD ignore a PA-PW-SALT accompanying a + //KRB-ERROR message that requests additional pre-authentication. + var etypeID int32 + var pas types.PADataSequence + e := pas.Unmarshal(krberr.EData) + if e != nil { + err = krberror.Errorf(e, krberror.EncodingError, "error unmashalling KRBError data") + return + } + for _, pa := range pas { + switch pa.PADataType { + case patype.PA_ETYPE_INFO2: + info, e := pa.GetETypeInfo2() + if e != nil { + err = krberror.Errorf(e, krberror.EncodingError, "error unmashalling ETYPE-INFO2 data") + return + } + etypeID = info[0].EType + break + case patype.PA_ETYPE_INFO: + info, e := pa.GetETypeInfo() + if e != nil { + err = krberror.Errorf(e, krberror.EncodingError, "error unmashalling ETYPE-INFO data") + return + } + etypeID = info[0].EType + } + } + etype, e = crypto.GetEtype(etypeID) + if e != nil { + err = krberror.Errorf(e, krberror.EncryptingError, "error creating etype") + return + } + return etype, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/client/TGSExchange.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/TGSExchange.go new file mode 100644 index 0000000..93ff1db --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/TGSExchange.go @@ -0,0 +1,103 @@ +package client + +import ( + "gopkg.in/jcmturner/gokrb5.v7/iana/flags" + "gopkg.in/jcmturner/gokrb5.v7/iana/nametype" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/messages" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +// TGSREQGenerateAndExchange generates the TGS_REQ and performs a TGS exchange to retrieve a ticket to the specified SPN. +func (cl *Client) TGSREQGenerateAndExchange(spn types.PrincipalName, kdcRealm string, tgt messages.Ticket, sessionKey types.EncryptionKey, renewal bool) (tgsReq messages.TGSReq, tgsRep messages.TGSRep, err error) { + tgsReq, err = messages.NewTGSReq(cl.Credentials.CName(), kdcRealm, cl.Config, tgt, sessionKey, spn, renewal) + if err != nil { + return tgsReq, tgsRep, krberror.Errorf(err, krberror.KRBMsgError, "TGS Exchange Error: failed to generate a new TGS_REQ") + } + return cl.TGSExchange(tgsReq, kdcRealm, tgsRep.Ticket, sessionKey, 0) +} + +// TGSExchange exchanges the provided TGS_REQ with the KDC to retrieve a TGS_REP. +// Referrals are automatically handled. +// The client's cache is updated with the ticket received. +func (cl *Client) TGSExchange(tgsReq messages.TGSReq, kdcRealm string, tgt messages.Ticket, sessionKey types.EncryptionKey, referral int) (messages.TGSReq, messages.TGSRep, error) { + var tgsRep messages.TGSRep + b, err := tgsReq.Marshal() + if err != nil { + return tgsReq, tgsRep, krberror.Errorf(err, krberror.EncodingError, "TGS Exchange Error: failed to marshal TGS_REQ") + } + r, err := cl.sendToKDC(b, kdcRealm) + if err != nil { + if _, ok := err.(messages.KRBError); ok { + return tgsReq, tgsRep, krberror.Errorf(err, krberror.KDCError, "TGS Exchange Error: kerberos error response from KDC when requesting for %s", tgsReq.ReqBody.SName.PrincipalNameString()) + } + return tgsReq, tgsRep, krberror.Errorf(err, krberror.NetworkingError, "TGS Exchange Error: issue sending TGS_REQ to KDC") + } + err = tgsRep.Unmarshal(r) + if err != nil { + return tgsReq, tgsRep, krberror.Errorf(err, krberror.EncodingError, "TGS Exchange Error: failed to process the TGS_REP") + } + err = tgsRep.DecryptEncPart(sessionKey) + if err != nil { + return tgsReq, tgsRep, krberror.Errorf(err, krberror.EncodingError, "TGS Exchange Error: failed to process the TGS_REP") + } + if ok, err := tgsRep.Verify(cl.Config, tgsReq); !ok { + return tgsReq, tgsRep, krberror.Errorf(err, krberror.EncodingError, "TGS Exchange Error: TGS_REP is not valid") + } + + if tgsRep.Ticket.SName.NameString[0] == "krbtgt" && !tgsRep.Ticket.SName.Equal(tgsReq.ReqBody.SName) { + if referral > 5 { + return tgsReq, tgsRep, krberror.Errorf(err, krberror.KRBMsgError, "TGS Exchange Error: maximum number of referrals exceeded") + } + // Server referral https://tools.ietf.org/html/rfc6806.html#section-8 + // The TGS Rep contains a TGT for another domain as the service resides in that domain. + cl.addSession(tgsRep.Ticket, tgsRep.DecryptedEncPart) + realm := tgsRep.Ticket.SName.NameString[len(tgsRep.Ticket.SName.NameString)-1] + referral++ + if types.IsFlagSet(&tgsReq.ReqBody.KDCOptions, flags.EncTktInSkey) && len(tgsReq.ReqBody.AdditionalTickets) > 0 { + tgsReq, err = messages.NewUser2UserTGSReq(cl.Credentials.CName(), kdcRealm, cl.Config, tgt, sessionKey, tgsReq.ReqBody.SName, tgsReq.Renewal, tgsReq.ReqBody.AdditionalTickets[0]) + if err != nil { + return tgsReq, tgsRep, err + } + } + tgsReq, err = messages.NewTGSReq(cl.Credentials.CName(), realm, cl.Config, tgsRep.Ticket, tgsRep.DecryptedEncPart.Key, tgsReq.ReqBody.SName, tgsReq.Renewal) + if err != nil { + return tgsReq, tgsRep, err + } + return cl.TGSExchange(tgsReq, realm, tgsRep.Ticket, tgsRep.DecryptedEncPart.Key, referral) + } + cl.cache.addEntry( + tgsRep.Ticket, + tgsRep.DecryptedEncPart.AuthTime, + tgsRep.DecryptedEncPart.StartTime, + tgsRep.DecryptedEncPart.EndTime, + tgsRep.DecryptedEncPart.RenewTill, + tgsRep.DecryptedEncPart.Key, + ) + cl.Log("ticket added to cache for %s (EndTime: %v)", tgsRep.Ticket.SName.PrincipalNameString(), tgsRep.DecryptedEncPart.EndTime) + return tgsReq, tgsRep, err +} + +// GetServiceTicket makes a request to get a service ticket for the SPN specified +// SPN format: / Eg. HTTP/www.example.com +// The ticket will be added to the client's ticket cache +func (cl *Client) GetServiceTicket(spn string) (messages.Ticket, types.EncryptionKey, error) { + var tkt messages.Ticket + var skey types.EncryptionKey + if tkt, skey, ok := cl.GetCachedTicket(spn); ok { + // Already a valid ticket in the cache + return tkt, skey, nil + } + princ := types.NewPrincipalName(nametype.KRB_NT_PRINCIPAL, spn) + realm := cl.Config.ResolveRealm(princ.NameString[len(princ.NameString)-1]) + + tgt, skey, err := cl.sessionTGT(realm) + if err != nil { + return tkt, skey, err + } + _, tgsRep, err := cl.TGSREQGenerateAndExchange(princ, realm, tgt, skey, false) + if err != nil { + return tkt, skey, err + } + return tgsRep.Ticket, tgsRep.DecryptedEncPart.Key, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/client/cache.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/cache.go new file mode 100644 index 0000000..07b4a01 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/cache.go @@ -0,0 +1,110 @@ +package client + +import ( + "errors" + "sync" + "time" + + "gopkg.in/jcmturner/gokrb5.v7/messages" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +// Cache for service tickets held by the client. +type Cache struct { + Entries map[string]CacheEntry + mux sync.RWMutex +} + +// CacheEntry holds details for a cache entry. +type CacheEntry struct { + Ticket messages.Ticket + AuthTime time.Time + StartTime time.Time + EndTime time.Time + RenewTill time.Time + SessionKey types.EncryptionKey +} + +// NewCache creates a new client ticket cache instance. +func NewCache() *Cache { + return &Cache{ + Entries: map[string]CacheEntry{}, + } +} + +// getEntry returns a cache entry that matches the SPN. +func (c *Cache) getEntry(spn string) (CacheEntry, bool) { + c.mux.RLock() + defer c.mux.RUnlock() + e, ok := (*c).Entries[spn] + return e, ok +} + +// addEntry adds a ticket to the cache. +func (c *Cache) addEntry(tkt messages.Ticket, authTime, startTime, endTime, renewTill time.Time, sessionKey types.EncryptionKey) CacheEntry { + spn := tkt.SName.PrincipalNameString() + c.mux.Lock() + defer c.mux.Unlock() + (*c).Entries[spn] = CacheEntry{ + Ticket: tkt, + AuthTime: authTime, + StartTime: startTime, + EndTime: endTime, + RenewTill: renewTill, + SessionKey: sessionKey, + } + return c.Entries[spn] +} + +// clear deletes all the cache entries +func (c *Cache) clear() { + c.mux.Lock() + defer c.mux.Unlock() + for k := range c.Entries { + delete(c.Entries, k) + } +} + +// RemoveEntry removes the cache entry for the defined SPN. +func (c *Cache) RemoveEntry(spn string) { + c.mux.Lock() + defer c.mux.Unlock() + delete(c.Entries, spn) +} + +// GetCachedTicket returns a ticket from the cache for the SPN. +// Only a ticket that is currently valid will be returned. +func (cl *Client) GetCachedTicket(spn string) (messages.Ticket, types.EncryptionKey, bool) { + if e, ok := cl.cache.getEntry(spn); ok { + //If within time window of ticket return it + if time.Now().UTC().After(e.StartTime) && time.Now().UTC().Before(e.EndTime) { + cl.Log("ticket received from cache for %s", spn) + return e.Ticket, e.SessionKey, true + } else if time.Now().UTC().Before(e.RenewTill) { + e, err := cl.renewTicket(e) + if err != nil { + return e.Ticket, e.SessionKey, false + } + return e.Ticket, e.SessionKey, true + } + } + var tkt messages.Ticket + var key types.EncryptionKey + return tkt, key, false +} + +// renewTicket renews a cache entry ticket. +// To renew from outside the client package use GetCachedTicket +func (cl *Client) renewTicket(e CacheEntry) (CacheEntry, error) { + spn := e.Ticket.SName + _, _, err := cl.TGSREQGenerateAndExchange(spn, e.Ticket.Realm, e.Ticket, e.SessionKey, true) + if err != nil { + return e, err + } + e, ok := cl.cache.getEntry(e.Ticket.SName.PrincipalNameString()) + if !ok { + return e, errors.New("ticket was not added to cache") + } + cl.Log("ticket renewed for %s (EndTime: %v)", spn.PrincipalNameString(), e.EndTime) + return e, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/client/client.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/client.go new file mode 100644 index 0000000..cc93174 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/client.go @@ -0,0 +1,241 @@ +// Package client provides a client library and methods for Kerberos 5 authentication. +package client + +import ( + "errors" + "fmt" + "time" + + "gopkg.in/jcmturner/gokrb5.v7/config" + "gopkg.in/jcmturner/gokrb5.v7/credentials" + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/crypto/etype" + "gopkg.in/jcmturner/gokrb5.v7/iana/errorcode" + "gopkg.in/jcmturner/gokrb5.v7/iana/nametype" + "gopkg.in/jcmturner/gokrb5.v7/keytab" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/messages" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +// Client side configuration and state. +type Client struct { + Credentials *credentials.Credentials + Config *config.Config + settings *Settings + sessions *sessions + cache *Cache +} + +// NewClientWithPassword creates a new client from a password credential. +// Set the realm to empty string to use the default realm from config. +func NewClientWithPassword(username, realm, password string, krb5conf *config.Config, settings ...func(*Settings)) *Client { + creds := credentials.New(username, realm) + return &Client{ + Credentials: creds.WithPassword(password), + Config: krb5conf, + settings: NewSettings(settings...), + sessions: &sessions{ + Entries: make(map[string]*session), + }, + cache: NewCache(), + } +} + +// NewClientWithKeytab creates a new client from a keytab credential. +func NewClientWithKeytab(username, realm string, kt *keytab.Keytab, krb5conf *config.Config, settings ...func(*Settings)) *Client { + creds := credentials.New(username, realm) + return &Client{ + Credentials: creds.WithKeytab(kt), + Config: krb5conf, + settings: NewSettings(settings...), + sessions: &sessions{ + Entries: make(map[string]*session), + }, + cache: NewCache(), + } +} + +// NewClientFromCCache create a client from a populated client cache. +// +// WARNING: A client created from CCache does not automatically renew TGTs and a failure will occur after the TGT expires. +func NewClientFromCCache(c *credentials.CCache, krb5conf *config.Config, settings ...func(*Settings)) (*Client, error) { + cl := &Client{ + Credentials: c.GetClientCredentials(), + Config: krb5conf, + settings: NewSettings(settings...), + sessions: &sessions{ + Entries: make(map[string]*session), + }, + cache: NewCache(), + } + spn := types.PrincipalName{ + NameType: nametype.KRB_NT_SRV_INST, + NameString: []string{"krbtgt", c.DefaultPrincipal.Realm}, + } + cred, ok := c.GetEntry(spn) + if !ok { + return cl, errors.New("TGT not found in CCache") + } + var tgt messages.Ticket + err := tgt.Unmarshal(cred.Ticket) + if err != nil { + return cl, fmt.Errorf("TGT bytes in cache are not valid: %v", err) + } + cl.sessions.Entries[c.DefaultPrincipal.Realm] = &session{ + realm: c.DefaultPrincipal.Realm, + authTime: cred.AuthTime, + endTime: cred.EndTime, + renewTill: cred.RenewTill, + tgt: tgt, + sessionKey: cred.Key, + } + for _, cred := range c.GetEntries() { + var tkt messages.Ticket + err = tkt.Unmarshal(cred.Ticket) + if err != nil { + return cl, fmt.Errorf("cache entry ticket bytes are not valid: %v", err) + } + cl.cache.addEntry( + tkt, + cred.AuthTime, + cred.StartTime, + cred.EndTime, + cred.RenewTill, + cred.Key, + ) + } + return cl, nil +} + +// Key returns the client's encryption key for the specified encryption type. +// The key can be retrieved either from the keytab or generated from the client's password. +// If the client has both a keytab and a password defined the keytab is favoured as the source for the key +// A KRBError can be passed in the event the KDC returns one of type KDC_ERR_PREAUTH_REQUIRED and is required to derive +// the key for pre-authentication from the client's password. If a KRBError is not available, pass nil to this argument. +func (cl *Client) Key(etype etype.EType, krberr *messages.KRBError) (types.EncryptionKey, error) { + if cl.Credentials.HasKeytab() && etype != nil { + return cl.Credentials.Keytab().GetEncryptionKey(cl.Credentials.CName(), cl.Credentials.Domain(), 0, etype.GetETypeID()) + } else if cl.Credentials.HasPassword() { + if krberr != nil && krberr.ErrorCode == errorcode.KDC_ERR_PREAUTH_REQUIRED { + var pas types.PADataSequence + err := pas.Unmarshal(krberr.EData) + if err != nil { + return types.EncryptionKey{}, fmt.Errorf("could not get PAData from KRBError to generate key from password: %v", err) + } + key, _, err := crypto.GetKeyFromPassword(cl.Credentials.Password(), krberr.CName, krberr.CRealm, etype.GetETypeID(), pas) + return key, err + } + key, _, err := crypto.GetKeyFromPassword(cl.Credentials.Password(), cl.Credentials.CName(), cl.Credentials.Domain(), etype.GetETypeID(), types.PADataSequence{}) + return key, err + } + return types.EncryptionKey{}, errors.New("credential has neither keytab or password to generate key") +} + +// IsConfigured indicates if the client has the values required set. +func (cl *Client) IsConfigured() (bool, error) { + if cl.Credentials.UserName() == "" { + return false, errors.New("client does not have a username") + } + if cl.Credentials.Domain() == "" { + return false, errors.New("client does not have a define realm") + } + // Client needs to have either a password, keytab or a session already (later when loading from CCache) + if !cl.Credentials.HasPassword() && !cl.Credentials.HasKeytab() { + authTime, _, _, _, err := cl.sessionTimes(cl.Credentials.Domain()) + if err != nil || authTime.IsZero() { + return false, errors.New("client has neither a keytab nor a password set and no session") + } + } + if !cl.Config.LibDefaults.DNSLookupKDC { + for _, r := range cl.Config.Realms { + if r.Realm == cl.Credentials.Domain() { + if len(r.KDC) > 0 { + return true, nil + } + return false, errors.New("client krb5 config does not have any defined KDCs for the default realm") + } + } + } + return true, nil +} + +// Login the client with the KDC via an AS exchange. +func (cl *Client) Login() error { + if ok, err := cl.IsConfigured(); !ok { + return err + } + if !cl.Credentials.HasPassword() && !cl.Credentials.HasKeytab() { + _, endTime, _, _, err := cl.sessionTimes(cl.Credentials.Domain()) + if err != nil { + return krberror.Errorf(err, krberror.KRBMsgError, "no user credentials available and error getting any existing session") + } + if time.Now().UTC().After(endTime) { + return krberror.NewKrberror(krberror.KRBMsgError, "cannot login, no user credentials available and no valid existing session") + } + // no credentials but there is a session with tgt already + return nil + } + ASReq, err := messages.NewASReqForTGT(cl.Credentials.Domain(), cl.Config, cl.Credentials.CName()) + if err != nil { + return krberror.Errorf(err, krberror.KRBMsgError, "error generating new AS_REQ") + } + ASRep, err := cl.ASExchange(cl.Credentials.Domain(), ASReq, 0) + if err != nil { + return err + } + cl.addSession(ASRep.Ticket, ASRep.DecryptedEncPart) + return nil +} + +// AffirmLogin will only perform an AS exchange with the KDC if the client does not already have a TGT. +func (cl *Client) AffirmLogin() error { + _, endTime, _, _, err := cl.sessionTimes(cl.Credentials.Domain()) + if err != nil || time.Now().UTC().After(endTime) { + err := cl.Login() + if err != nil { + return fmt.Errorf("could not get valid TGT for client's realm: %v", err) + } + } + return nil +} + +// realmLogin obtains or renews a TGT and establishes a session for the realm specified. +func (cl *Client) realmLogin(realm string) error { + if realm == cl.Credentials.Domain() { + return cl.Login() + } + _, endTime, _, _, err := cl.sessionTimes(cl.Credentials.Domain()) + if err != nil || time.Now().UTC().After(endTime) { + err := cl.Login() + if err != nil { + return fmt.Errorf("could not get valid TGT for client's realm: %v", err) + } + } + tgt, skey, err := cl.sessionTGT(cl.Credentials.Domain()) + if err != nil { + return err + } + + spn := types.PrincipalName{ + NameType: nametype.KRB_NT_SRV_INST, + NameString: []string{"krbtgt", realm}, + } + + _, tgsRep, err := cl.TGSREQGenerateAndExchange(spn, cl.Credentials.Domain(), tgt, skey, false) + if err != nil { + return err + } + cl.addSession(tgsRep.Ticket, tgsRep.DecryptedEncPart) + + return nil +} + +// Destroy stops the auto-renewal of all sessions and removes the sessions and cache entries from the client. +func (cl *Client) Destroy() { + creds := credentials.New("", "") + cl.sessions.destroy() + cl.cache.clear() + cl.Credentials = creds + cl.Log("client destroyed") +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/client/network.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/network.go new file mode 100644 index 0000000..493fb2f --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/network.go @@ -0,0 +1,224 @@ +package client + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + "net" + "time" + + "gopkg.in/jcmturner/gokrb5.v7/iana/errorcode" + "gopkg.in/jcmturner/gokrb5.v7/messages" +) + +// SendToKDC performs network actions to send data to the KDC. +func (cl *Client) sendToKDC(b []byte, realm string) ([]byte, error) { + var rb []byte + if cl.Config.LibDefaults.UDPPreferenceLimit == 1 { + //1 means we should always use TCP + rb, errtcp := cl.sendKDCTCP(realm, b) + if errtcp != nil { + if e, ok := errtcp.(messages.KRBError); ok { + return rb, e + } + return rb, fmt.Errorf("communication error with KDC via TCP: %v", errtcp) + } + return rb, nil + } + if len(b) <= cl.Config.LibDefaults.UDPPreferenceLimit { + //Try UDP first, TCP second + rb, errudp := cl.sendKDCUDP(realm, b) + if errudp != nil { + if e, ok := errudp.(messages.KRBError); ok && e.ErrorCode != errorcode.KRB_ERR_RESPONSE_TOO_BIG { + // Got a KRBError from KDC + // If this is not a KRB_ERR_RESPONSE_TOO_BIG we will return immediately otherwise will try TCP. + return rb, e + } + // Try TCP + r, errtcp := cl.sendKDCTCP(realm, b) + if errtcp != nil { + if e, ok := errtcp.(messages.KRBError); ok { + // Got a KRBError + return r, e + } + return r, fmt.Errorf("failed to communicate with KDC. Attempts made with UDP (%v) and then TCP (%v)", errudp, errtcp) + } + rb = r + } + return rb, nil + } + //Try TCP first, UDP second + rb, errtcp := cl.sendKDCTCP(realm, b) + if errtcp != nil { + if e, ok := errtcp.(messages.KRBError); ok { + // Got a KRBError from KDC so returning and not trying UDP. + return rb, e + } + rb, errudp := cl.sendKDCUDP(realm, b) + if errudp != nil { + if e, ok := errudp.(messages.KRBError); ok { + // Got a KRBError + return rb, e + } + return rb, fmt.Errorf("failed to communicate with KDC. Attempts made with TCP (%v) and then UDP (%v)", errtcp, errudp) + } + } + return rb, nil +} + +// dialKDCTCP establishes a UDP connection to a KDC. +func dialKDCUDP(count int, kdcs map[int]string) (*net.UDPConn, error) { + i := 1 + for i <= count { + udpAddr, err := net.ResolveUDPAddr("udp", kdcs[i]) + if err != nil { + return nil, fmt.Errorf("error resolving KDC address: %v", err) + } + + conn, err := net.DialTimeout("udp", udpAddr.String(), 5*time.Second) + if err == nil { + if err := conn.SetDeadline(time.Now().Add(5 * time.Second)); err != nil { + return nil, err + } + // conn is guaranteed to be a UDPConn + return conn.(*net.UDPConn), nil + } + i++ + } + return nil, errors.New("error in getting a UDP connection to any of the KDCs") +} + +// dialKDCTCP establishes a TCP connection to a KDC. +func dialKDCTCP(count int, kdcs map[int]string) (*net.TCPConn, error) { + i := 1 + for i <= count { + tcpAddr, err := net.ResolveTCPAddr("tcp", kdcs[i]) + if err != nil { + return nil, fmt.Errorf("error resolving KDC address: %v", err) + } + + conn, err := net.DialTimeout("tcp", tcpAddr.String(), 5*time.Second) + if err == nil { + if err := conn.SetDeadline(time.Now().Add(5 * time.Second)); err != nil { + return nil, err + } + // conn is guaranteed to be a TCPConn + return conn.(*net.TCPConn), nil + } + i++ + } + return nil, errors.New("error in getting a TCP connection to any of the KDCs") +} + +// sendKDCUDP sends bytes to the KDC via UDP. +func (cl *Client) sendKDCUDP(realm string, b []byte) ([]byte, error) { + var r []byte + count, kdcs, err := cl.Config.GetKDCs(realm, false) + if err != nil { + return r, err + } + conn, err := dialKDCUDP(count, kdcs) + if err != nil { + return r, err + } + r, err = cl.sendUDP(conn, b) + if err != nil { + return r, err + } + return checkForKRBError(r) +} + +// sendKDCTCP sends bytes to the KDC via TCP. +func (cl *Client) sendKDCTCP(realm string, b []byte) ([]byte, error) { + var r []byte + count, kdcs, err := cl.Config.GetKDCs(realm, true) + if err != nil { + return r, err + } + conn, err := dialKDCTCP(count, kdcs) + if err != nil { + return r, err + } + rb, err := cl.sendTCP(conn, b) + if err != nil { + return r, err + } + return checkForKRBError(rb) +} + +// sendUDP sends bytes to connection over UDP. +func (cl *Client) sendUDP(conn *net.UDPConn, b []byte) ([]byte, error) { + var r []byte + defer conn.Close() + _, err := conn.Write(b) + if err != nil { + return r, fmt.Errorf("error sending to (%s): %v", conn.RemoteAddr().String(), err) + } + udpbuf := make([]byte, 4096) + n, _, err := conn.ReadFrom(udpbuf) + r = udpbuf[:n] + if err != nil { + return r, fmt.Errorf("sending over UDP failed to %s: %v", conn.RemoteAddr().String(), err) + } + if len(r) < 1 { + return r, fmt.Errorf("no response data from %s", conn.RemoteAddr().String()) + } + return r, nil +} + +// sendTCP sends bytes to connection over TCP. +func (cl *Client) sendTCP(conn *net.TCPConn, b []byte) ([]byte, error) { + defer conn.Close() + var r []byte + /* + RFC https://tools.ietf.org/html/rfc4120#section-7.2.2 + Each request (KRB_KDC_REQ) and response (KRB_KDC_REP or KRB_ERROR) + sent over the TCP stream is preceded by the length of the request as + 4 octets in network byte order. The high bit of the length is + reserved for future expansion and MUST currently be set to zero. If + a KDC that does not understand how to interpret a set high bit of the + length encoding receives a request with the high order bit of the + length set, it MUST return a KRB-ERROR message with the error + KRB_ERR_FIELD_TOOLONG and MUST close the TCP stream. + NB: network byte order == big endian + */ + var buf bytes.Buffer + err := binary.Write(&buf, binary.BigEndian, uint32(len(b))) + if err != nil { + return r, err + } + b = append(buf.Bytes(), b...) + + _, err = conn.Write(b) + if err != nil { + return r, fmt.Errorf("error sending to KDC (%s): %v", conn.RemoteAddr().String(), err) + } + + sh := make([]byte, 4, 4) + _, err = conn.Read(sh) + if err != nil { + return r, fmt.Errorf("error reading response size header: %v", err) + } + s := binary.BigEndian.Uint32(sh) + + rb := make([]byte, s, s) + _, err = io.ReadFull(conn, rb) + if err != nil { + return r, fmt.Errorf("error reading response: %v", err) + } + if len(rb) < 1 { + return r, fmt.Errorf("no response data from KDC %s", conn.RemoteAddr().String()) + } + return rb, nil +} + +// checkForKRBError checks if the response bytes from the KDC are a KRBError. +func checkForKRBError(b []byte) ([]byte, error) { + var KRBErr messages.KRBError + if err := KRBErr.Unmarshal(b); err == nil { + return b, KRBErr + } + return b, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/client/passwd.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/passwd.go new file mode 100644 index 0000000..da838ed --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/passwd.go @@ -0,0 +1,95 @@ +package client + +import ( + "fmt" + "net" + + "gopkg.in/jcmturner/gokrb5.v7/kadmin" + "gopkg.in/jcmturner/gokrb5.v7/messages" +) + +// Kpasswd server response codes. +const ( + KRB5_KPASSWD_SUCCESS = 0 + KRB5_KPASSWD_MALFORMED = 1 + KRB5_KPASSWD_HARDERROR = 2 + KRB5_KPASSWD_AUTHERROR = 3 + KRB5_KPASSWD_SOFTERROR = 4 + KRB5_KPASSWD_ACCESSDENIED = 5 + KRB5_KPASSWD_BAD_VERSION = 6 + KRB5_KPASSWD_INITIAL_FLAG_NEEDED = 7 +) + +// ChangePasswd changes the password of the client to the value provided. +func (cl *Client) ChangePasswd(newPasswd string) (bool, error) { + ASReq, err := messages.NewASReqForChgPasswd(cl.Credentials.Domain(), cl.Config, cl.Credentials.CName()) + if err != nil { + return false, err + } + ASRep, err := cl.ASExchange(cl.Credentials.Domain(), ASReq, 0) + if err != nil { + return false, err + } + + msg, key, err := kadmin.ChangePasswdMsg(cl.Credentials.CName(), cl.Credentials.Domain(), newPasswd, ASRep.Ticket, ASRep.DecryptedEncPart.Key) + if err != nil { + return false, err + } + r, err := cl.sendToKPasswd(msg) + if err != nil { + return false, err + } + err = r.Decrypt(key) + if err != nil { + return false, err + } + if r.ResultCode != KRB5_KPASSWD_SUCCESS { + return false, fmt.Errorf("error response from kadmin: code: %d; result: %s; krberror: %v", r.ResultCode, r.Result, r.KRBError) + } + cl.Credentials.WithPassword(newPasswd) + return true, nil +} + +func (cl *Client) sendToKPasswd(msg kadmin.Request) (r kadmin.Reply, err error) { + _, kps, err := cl.Config.GetKpasswdServers(cl.Credentials.Domain(), true) + if err != nil { + return + } + addr := kps[1] + b, err := msg.Marshal() + if err != nil { + return + } + if len(b) <= cl.Config.LibDefaults.UDPPreferenceLimit { + return cl.sendKPasswdUDP(b, addr) + } + return cl.sendKPasswdTCP(b, addr) +} + +func (cl *Client) sendKPasswdTCP(b []byte, kadmindAddr string) (r kadmin.Reply, err error) { + tcpAddr, err := net.ResolveTCPAddr("tcp", kadmindAddr) + if err != nil { + return + } + conn, err := net.DialTCP("tcp", nil, tcpAddr) + if err != nil { + return + } + rb, err := cl.sendTCP(conn, b) + err = r.Unmarshal(rb) + return +} + +func (cl *Client) sendKPasswdUDP(b []byte, kadmindAddr string) (r kadmin.Reply, err error) { + udpAddr, err := net.ResolveUDPAddr("udp", kadmindAddr) + if err != nil { + return + } + conn, err := net.DialUDP("udp", nil, udpAddr) + if err != nil { + return + } + rb, err := cl.sendUDP(conn, b) + err = r.Unmarshal(rb) + return +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/client/session.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/session.go new file mode 100644 index 0000000..ec6c513 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/session.go @@ -0,0 +1,255 @@ +package client + +import ( + "fmt" + "strings" + "sync" + "time" + + "gopkg.in/jcmturner/gokrb5.v7/iana/nametype" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/messages" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +// sessions hold TGTs and are keyed on the realm name +type sessions struct { + Entries map[string]*session + mux sync.RWMutex +} + +// destroy erases all sessions +func (s *sessions) destroy() { + s.mux.Lock() + defer s.mux.Unlock() + for k, e := range s.Entries { + e.destroy() + delete(s.Entries, k) + } +} + +// update replaces a session with the one provided or adds it as a new one +func (s *sessions) update(sess *session) { + s.mux.Lock() + defer s.mux.Unlock() + // if a session already exists for this, cancel its auto renew. + if i, ok := s.Entries[sess.realm]; ok { + if i != sess { + // Session in the sessions cache is not the same as one provided. + // Cancel the one in the cache and add this one. + i.mux.Lock() + defer i.mux.Unlock() + i.cancel <- true + s.Entries[sess.realm] = sess + return + } + } + // No session for this realm was found so just add it + s.Entries[sess.realm] = sess +} + +// get returns the session for the realm specified +func (s *sessions) get(realm string) (*session, bool) { + s.mux.RLock() + defer s.mux.RUnlock() + sess, ok := s.Entries[realm] + return sess, ok +} + +// session holds the TGT details for a realm +type session struct { + realm string + authTime time.Time + endTime time.Time + renewTill time.Time + tgt messages.Ticket + sessionKey types.EncryptionKey + sessionKeyExpiration time.Time + cancel chan bool + mux sync.RWMutex +} + +// AddSession adds a session for a realm with a TGT to the client's session cache. +// A goroutine is started to automatically renew the TGT before expiry. +func (cl *Client) addSession(tgt messages.Ticket, dep messages.EncKDCRepPart) { + if strings.ToLower(tgt.SName.NameString[0]) != "krbtgt" { + // Not a TGT + return + } + realm := tgt.SName.NameString[len(tgt.SName.NameString)-1] + s := &session{ + realm: realm, + authTime: dep.AuthTime, + endTime: dep.EndTime, + renewTill: dep.RenewTill, + tgt: tgt, + sessionKey: dep.Key, + sessionKeyExpiration: dep.KeyExpiration, + } + cl.sessions.update(s) + cl.enableAutoSessionRenewal(s) + cl.Log("TGT session added for %s (EndTime: %v)", realm, dep.EndTime) +} + +// update overwrites the session details with those from the TGT and decrypted encPart +func (s *session) update(tgt messages.Ticket, dep messages.EncKDCRepPart) { + s.mux.Lock() + defer s.mux.Unlock() + s.authTime = dep.AuthTime + s.endTime = dep.EndTime + s.renewTill = dep.RenewTill + s.tgt = tgt + s.sessionKey = dep.Key + s.sessionKeyExpiration = dep.KeyExpiration +} + +// destroy will cancel any auto renewal of the session and set the expiration times to the current time +func (s *session) destroy() { + s.mux.Lock() + defer s.mux.Unlock() + if s.cancel != nil { + s.cancel <- true + } + s.endTime = time.Now().UTC() + s.renewTill = s.endTime + s.sessionKeyExpiration = s.endTime +} + +// valid informs if the TGT is still within the valid time window +func (s *session) valid() bool { + s.mux.RLock() + defer s.mux.RUnlock() + t := time.Now().UTC() + if t.Before(s.endTime) && s.authTime.Before(t) { + return true + } + return false +} + +// tgtDetails is a thread safe way to get the session's realm, TGT and session key values +func (s *session) tgtDetails() (string, messages.Ticket, types.EncryptionKey) { + s.mux.RLock() + defer s.mux.RUnlock() + return s.realm, s.tgt, s.sessionKey +} + +// timeDetails is a thread safe way to get the session's validity time values +func (s *session) timeDetails() (string, time.Time, time.Time, time.Time, time.Time) { + s.mux.RLock() + defer s.mux.RUnlock() + return s.realm, s.authTime, s.endTime, s.renewTill, s.sessionKeyExpiration +} + +// enableAutoSessionRenewal turns on the automatic renewal for the client's TGT session. +func (cl *Client) enableAutoSessionRenewal(s *session) { + var timer *time.Timer + s.mux.Lock() + s.cancel = make(chan bool, 1) + s.mux.Unlock() + go func(s *session) { + for { + s.mux.RLock() + w := (s.endTime.Sub(time.Now().UTC()) * 5) / 6 + s.mux.RUnlock() + if w < 0 { + return + } + timer = time.NewTimer(w) + select { + case <-timer.C: + renewal, err := cl.refreshSession(s) + if err != nil { + cl.Log("error refreshing session: %v", err) + } + if !renewal && err == nil { + // end this goroutine as there will have been a new login and new auto renewal goroutine created. + return + } + case <-s.cancel: + // cancel has been called. Stop the timer and exit. + timer.Stop() + return + } + } + }(s) +} + +// renewTGT renews the client's TGT session. +func (cl *Client) renewTGT(s *session) error { + realm, tgt, skey := s.tgtDetails() + spn := types.PrincipalName{ + NameType: nametype.KRB_NT_SRV_INST, + NameString: []string{"krbtgt", realm}, + } + _, tgsRep, err := cl.TGSREQGenerateAndExchange(spn, cl.Credentials.Domain(), tgt, skey, true) + if err != nil { + return krberror.Errorf(err, krberror.KRBMsgError, "error renewing TGT for %s", realm) + } + s.update(tgsRep.Ticket, tgsRep.DecryptedEncPart) + cl.sessions.update(s) + cl.Log("TGT session renewed for %s (EndTime: %v)", realm, tgsRep.DecryptedEncPart.EndTime) + return nil +} + +// refreshSession updates either through renewal or creating a new login. +// The boolean indicates if the update was a renewal. +func (cl *Client) refreshSession(s *session) (bool, error) { + s.mux.RLock() + realm := s.realm + renewTill := s.renewTill + s.mux.RUnlock() + cl.Log("refreshing TGT session for %s", realm) + if time.Now().UTC().Before(renewTill) { + err := cl.renewTGT(s) + return true, err + } + err := cl.realmLogin(realm) + return false, err +} + +// ensureValidSession makes sure there is a valid session for the realm +func (cl *Client) ensureValidSession(realm string) error { + s, ok := cl.sessions.get(realm) + if ok { + s.mux.RLock() + d := s.endTime.Sub(s.authTime) / 6 + if s.endTime.Sub(time.Now().UTC()) > d { + s.mux.RUnlock() + return nil + } + s.mux.RUnlock() + _, err := cl.refreshSession(s) + return err + } + return cl.realmLogin(realm) +} + +// sessionTGTDetails is a thread safe way to get the TGT and session key values for a realm +func (cl *Client) sessionTGT(realm string) (tgt messages.Ticket, sessionKey types.EncryptionKey, err error) { + err = cl.ensureValidSession(realm) + if err != nil { + return + } + s, ok := cl.sessions.get(realm) + if !ok { + err = fmt.Errorf("could not find TGT session for %s", realm) + return + } + _, tgt, sessionKey = s.tgtDetails() + return +} + +func (cl *Client) sessionTimes(realm string) (authTime, endTime, renewTime, sessionExp time.Time, err error) { + s, ok := cl.sessions.get(realm) + if !ok { + err = fmt.Errorf("could not find TGT session for %s", realm) + return + } + _, authTime, endTime, renewTime, sessionExp = s.timeDetails() + return +} + +// spnRealm resolves the realm name of a service principal name +func (cl *Client) spnRealm(spn types.PrincipalName) string { + return cl.Config.ResolveRealm(spn.NameString[len(spn.NameString)-1]) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/client/settings.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/settings.go new file mode 100644 index 0000000..12c04c4 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/client/settings.go @@ -0,0 +1,69 @@ +package client + +import "log" + +// Settings holds optional client settings. +type Settings struct { + disablePAFXFast bool + assumePreAuthentication bool + preAuthEType int32 + logger *log.Logger +} + +// NewSettings creates a new client settings struct. +func NewSettings(settings ...func(*Settings)) *Settings { + s := new(Settings) + for _, set := range settings { + set(s) + } + return s +} + +// DisablePAFXFAST used to configure the client to not use PA_FX_FAST. +// +// s := NewSettings(DisablePAFXFAST(true)) +func DisablePAFXFAST(b bool) func(*Settings) { + return func(s *Settings) { + s.disablePAFXFast = b + } +} + +// DisablePAFXFAST indicates is the client should disable the use of PA_FX_FAST. +func (s *Settings) DisablePAFXFAST() bool { + return s.disablePAFXFast +} + +// AssumePreAuthentication used to configure the client to assume pre-authentication is required. +// +// s := NewSettings(AssumePreAuthentication(true)) +func AssumePreAuthentication(b bool) func(*Settings) { + return func(s *Settings) { + s.assumePreAuthentication = b + } +} + +// AssumePreAuthentication indicates if the client should proactively assume using pre-authentication. +func (s *Settings) AssumePreAuthentication() bool { + return s.assumePreAuthentication +} + +// Logger used to configure client with a logger. +// +// s := NewSettings(kt, Logger(l)) +func Logger(l *log.Logger) func(*Settings) { + return func(s *Settings) { + s.logger = l + } +} + +// Logger returns the client logger instance. +func (s *Settings) Logger() *log.Logger { + return s.logger +} + +// Log will write to the service's logger if it is configured. +func (cl *Client) Log(format string, v ...interface{}) { + if cl.settings.Logger() != nil { + cl.settings.Logger().Printf(format, v...) + } +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/config/error.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/config/error.go new file mode 100644 index 0000000..1fbda51 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/config/error.go @@ -0,0 +1,30 @@ +package config + +import "fmt" + +// UnsupportedDirective error. +type UnsupportedDirective struct { + text string +} + +// Error implements the error interface for unsupported directives. +func (e UnsupportedDirective) Error() string { + return e.text +} + +// Invalid config error. +type Invalid struct { + text string +} + +// Error implements the error interface for invalid config error. +func (e Invalid) Error() string { + return e.text +} + +// InvalidErrorf creates a new Invalid error. +func InvalidErrorf(format string, a ...interface{}) Invalid { + return Invalid{ + text: fmt.Sprintf("invalid krb5 config "+format, a...), + } +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/config/hosts.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/config/hosts.go new file mode 100644 index 0000000..a67989f --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/config/hosts.go @@ -0,0 +1,141 @@ +package config + +import ( + "fmt" + "math/rand" + "net" + "strconv" + "strings" + + "gopkg.in/jcmturner/dnsutils.v1" +) + +// GetKDCs returns the count of KDCs available and a map of KDC host names keyed on preference order. +func (c *Config) GetKDCs(realm string, tcp bool) (int, map[int]string, error) { + if realm == "" { + realm = c.LibDefaults.DefaultRealm + } + kdcs := make(map[int]string) + var count int + + // Get the KDCs from the krb5.conf. + var ks []string + for _, r := range c.Realms { + if r.Realm != realm { + continue + } + ks = r.KDC + } + count = len(ks) + + if count > 0 { + // Order the kdcs randomly for preference. + kdcs = randServOrder(ks) + return count, kdcs, nil + } + + if !c.LibDefaults.DNSLookupKDC { + return count, kdcs, fmt.Errorf("no KDCs defined in configuration for realm %s", realm) + } + + // Use DNS to resolve kerberos SRV records. + proto := "udp" + if tcp { + proto = "tcp" + } + index, addrs, err := dnsutils.OrderedSRV("kerberos", proto, realm) + if err != nil { + return count, kdcs, err + } + if len(addrs) < 1 { + return count, kdcs, fmt.Errorf("no KDC SRV records found for realm %s", realm) + } + count = index + for k, v := range addrs { + kdcs[k] = strings.TrimRight(v.Target, ".") + ":" + strconv.Itoa(int(v.Port)) + } + return count, kdcs, nil +} + +// GetKpasswdServers returns the count of kpasswd servers available and a map of kpasswd host names keyed on preference order. +// https://web.mit.edu/kerberos/krb5-latest/doc/admin/conf_files/krb5_conf.html#realms - see kpasswd_server section +func (c *Config) GetKpasswdServers(realm string, tcp bool) (int, map[int]string, error) { + kdcs := make(map[int]string) + var count int + + // Use DNS to resolve kerberos SRV records if configured to do so in krb5.conf. + if c.LibDefaults.DNSLookupKDC { + proto := "udp" + if tcp { + proto = "tcp" + } + c, addrs, err := dnsutils.OrderedSRV("kpasswd", proto, realm) + if err != nil { + return count, kdcs, err + } + if c < 1 { + c, addrs, err = dnsutils.OrderedSRV("kerberos-adm", proto, realm) + if err != nil { + return count, kdcs, err + } + } + if len(addrs) < 1 { + return count, kdcs, fmt.Errorf("no kpasswd or kadmin SRV records found for realm %s", realm) + } + count = c + for k, v := range addrs { + kdcs[k] = strings.TrimRight(v.Target, ".") + ":" + strconv.Itoa(int(v.Port)) + } + } else { + // Get the KDCs from the krb5.conf an order them randomly for preference. + var ks []string + var ka []string + for _, r := range c.Realms { + if r.Realm == realm { + ks = r.KPasswdServer + ka = r.AdminServer + break + } + } + if len(ks) < 1 { + for _, k := range ka { + h, _, err := net.SplitHostPort(k) + if err != nil { + continue + } + ks = append(ks, h+":464") + } + } + count = len(ks) + if count < 1 { + return count, kdcs, fmt.Errorf("no kpasswd or kadmin defined in configuration for realm %s", realm) + } + kdcs = randServOrder(ks) + } + return count, kdcs, nil +} + +func randServOrder(ks []string) map[int]string { + kdcs := make(map[int]string) + count := len(ks) + i := 1 + if count > 1 { + l := len(ks) + for l > 0 { + ri := rand.Intn(l) + kdcs[i] = ks[ri] + if l > 1 { + // Remove the entry from the source slice by swapping with the last entry and truncating + ks[len(ks)-1], ks[ri] = ks[ri], ks[len(ks)-1] + ks = ks[:len(ks)-1] + l = len(ks) + } else { + l = 0 + } + i++ + } + } else { + kdcs[i] = ks[0] + } + return kdcs +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/config/krb5conf.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/config/krb5conf.go new file mode 100644 index 0000000..8efe92d --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/config/krb5conf.go @@ -0,0 +1,726 @@ +// Package config implements KRB5 client and service configuration as described at https://web.mit.edu/kerberos/krb5-latest/doc/admin/conf_files/krb5_conf.html +package config + +import ( + "bufio" + "encoding/hex" + "errors" + "fmt" + "io" + "net" + "os" + "os/user" + "regexp" + "strconv" + "strings" + "time" + + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/iana/etypeID" +) + +// Config represents the KRB5 configuration. +type Config struct { + LibDefaults LibDefaults + Realms []Realm + DomainRealm DomainRealm + //CaPaths + //AppDefaults + //Plugins +} + +// WeakETypeList is a list of encryption types that have been deemed weak. +const WeakETypeList = "des-cbc-crc des-cbc-md4 des-cbc-md5 des-cbc-raw des3-cbc-raw des-hmac-sha1 arcfour-hmac-exp rc4-hmac-exp arcfour-hmac-md5-exp des" + +// NewConfig creates a new config struct instance. +func NewConfig() *Config { + d := make(DomainRealm) + return &Config{ + LibDefaults: newLibDefaults(), + DomainRealm: d, + } +} + +// LibDefaults represents the [libdefaults] section of the configuration. +type LibDefaults struct { + AllowWeakCrypto bool //default false + // ap_req_checksum_type int //unlikely to support this + Canonicalize bool //default false + CCacheType int //default is 4. unlikely to implement older + Clockskew time.Duration //max allowed skew in seconds, default 300 + //Default_ccache_name string // default /tmp/krb5cc_%{uid} //Not implementing as will hold in memory + DefaultClientKeytabName string //default /usr/local/var/krb5/user/%{euid}/client.keytab + DefaultKeytabName string //default /etc/krb5.keytab + DefaultRealm string + DefaultTGSEnctypes []string //default aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4 + DefaultTktEnctypes []string //default aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4 + DefaultTGSEnctypeIDs []int32 //default aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4 + DefaultTktEnctypeIDs []int32 //default aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4 + DNSCanonicalizeHostname bool //default true + DNSLookupKDC bool //default false + DNSLookupRealm bool + ExtraAddresses []net.IP //Not implementing yet + Forwardable bool //default false + IgnoreAcceptorHostname bool //default false + K5LoginAuthoritative bool //default false + K5LoginDirectory string //default user's home directory. Must be owned by the user or root + KDCDefaultOptions asn1.BitString //default 0x00000010 (KDC_OPT_RENEWABLE_OK) + KDCTimeSync int //default 1 + //kdc_req_checksum_type int //unlikely to implement as for very old KDCs + NoAddresses bool //default true + PermittedEnctypes []string //default aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4 + PermittedEnctypeIDs []int32 + //plugin_base_dir string //not supporting plugins + PreferredPreauthTypes []int //default “17, 16, 15, 14â€, which forces libkrb5 to attempt to use PKINIT if it is supported + Proxiable bool //default false + RDNS bool //default true + RealmTryDomains int //default -1 + RenewLifetime time.Duration //default 0 + SafeChecksumType int //default 8 + TicketLifetime time.Duration //default 1 day + UDPPreferenceLimit int // 1 means to always use tcp. MIT krb5 has a default value of 1465, and it prevents user setting more than 32700. + VerifyAPReqNofail bool //default false +} + +// Create a new LibDefaults struct. +func newLibDefaults() LibDefaults { + uid := "0" + var hdir string + usr, _ := user.Current() + if usr != nil { + uid = usr.Uid + hdir = usr.HomeDir + } + opts := asn1.BitString{} + opts.Bytes, _ = hex.DecodeString("00000010") + opts.BitLength = len(opts.Bytes) * 8 + return LibDefaults{ + CCacheType: 4, + Clockskew: time.Duration(300) * time.Second, + DefaultClientKeytabName: fmt.Sprintf("/usr/local/var/krb5/user/%s/client.keytab", uid), + DefaultKeytabName: "/etc/krb5.keytab", + DefaultTGSEnctypes: []string{"aes256-cts-hmac-sha1-96", "aes128-cts-hmac-sha1-96", "des3-cbc-sha1", "arcfour-hmac-md5", "camellia256-cts-cmac", "camellia128-cts-cmac", "des-cbc-crc", "des-cbc-md5", "des-cbc-md4"}, + DefaultTktEnctypes: []string{"aes256-cts-hmac-sha1-96", "aes128-cts-hmac-sha1-96", "des3-cbc-sha1", "arcfour-hmac-md5", "camellia256-cts-cmac", "camellia128-cts-cmac", "des-cbc-crc", "des-cbc-md5", "des-cbc-md4"}, + DNSCanonicalizeHostname: true, + K5LoginDirectory: hdir, + KDCDefaultOptions: opts, + KDCTimeSync: 1, + NoAddresses: true, + PermittedEnctypes: []string{"aes256-cts-hmac-sha1-96", "aes128-cts-hmac-sha1-96", "des3-cbc-sha1", "arcfour-hmac-md5", "camellia256-cts-cmac", "camellia128-cts-cmac", "des-cbc-crc", "des-cbc-md5", "des-cbc-md4"}, + RDNS: true, + RealmTryDomains: -1, + SafeChecksumType: 8, + TicketLifetime: time.Duration(24) * time.Hour, + UDPPreferenceLimit: 1465, + PreferredPreauthTypes: []int{17, 16, 15, 14}, + } +} + +// Parse the lines of the [libdefaults] section of the configuration into the LibDefaults struct. +func (l *LibDefaults) parseLines(lines []string) error { + for _, line := range lines { + //Remove comments after the values + if idx := strings.IndexAny(line, "#;"); idx != -1 { + line = line[:idx] + } + line = strings.TrimSpace(line) + if line == "" { + continue + } + if !strings.Contains(line, "=") { + return InvalidErrorf("libdefaults section line (%s)", line) + } + + p := strings.Split(line, "=") + key := strings.TrimSpace(strings.ToLower(p[0])) + switch key { + case "allow_weak_crypto": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.AllowWeakCrypto = v + case "canonicalize": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.Canonicalize = v + case "ccache_type": + p[1] = strings.TrimSpace(p[1]) + v, err := strconv.ParseUint(p[1], 10, 32) + if err != nil || v < 0 || v > 4 { + return InvalidErrorf("libdefaults section line (%s)", line) + } + l.CCacheType = int(v) + case "clockskew": + d, err := parseDuration(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.Clockskew = d + case "default_client_keytab_name": + l.DefaultClientKeytabName = strings.TrimSpace(p[1]) + case "default_keytab_name": + l.DefaultKeytabName = strings.TrimSpace(p[1]) + case "default_realm": + l.DefaultRealm = strings.TrimSpace(p[1]) + case "default_tgs_enctypes": + l.DefaultTGSEnctypes = strings.Fields(p[1]) + case "default_tkt_enctypes": + l.DefaultTktEnctypes = strings.Fields(p[1]) + case "dns_canonicalize_hostname": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.DNSCanonicalizeHostname = v + case "dns_lookup_kdc": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.DNSLookupKDC = v + case "dns_lookup_realm": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.DNSLookupRealm = v + case "extra_addresses": + ipStr := strings.TrimSpace(p[1]) + for _, ip := range strings.Split(ipStr, ",") { + if eip := net.ParseIP(ip); eip != nil { + l.ExtraAddresses = append(l.ExtraAddresses, eip) + } + } + case "forwardable": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.Forwardable = v + case "ignore_acceptor_hostname": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.IgnoreAcceptorHostname = v + case "k5login_authoritative": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.K5LoginAuthoritative = v + case "k5login_directory": + l.K5LoginDirectory = strings.TrimSpace(p[1]) + case "kdc_default_options": + v := strings.TrimSpace(p[1]) + v = strings.Replace(v, "0x", "", -1) + b, err := hex.DecodeString(v) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.KDCDefaultOptions.Bytes = b + l.KDCDefaultOptions.BitLength = len(b) * 8 + case "kdc_timesync": + p[1] = strings.TrimSpace(p[1]) + v, err := strconv.ParseInt(p[1], 10, 32) + if err != nil || v < 0 { + return InvalidErrorf("libdefaults section line (%s)", line) + } + l.KDCTimeSync = int(v) + case "noaddresses": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.NoAddresses = v + case "permitted_enctypes": + l.PermittedEnctypes = strings.Fields(p[1]) + case "preferred_preauth_types": + p[1] = strings.TrimSpace(p[1]) + t := strings.Split(p[1], ",") + var v []int + for _, s := range t { + i, err := strconv.ParseInt(s, 10, 32) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + v = append(v, int(i)) + } + l.PreferredPreauthTypes = v + case "proxiable": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.Proxiable = v + case "rdns": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.RDNS = v + case "realm_try_domains": + p[1] = strings.TrimSpace(p[1]) + v, err := strconv.ParseInt(p[1], 10, 32) + if err != nil || v < -1 { + return InvalidErrorf("libdefaults section line (%s)", line) + } + l.RealmTryDomains = int(v) + case "renew_lifetime": + d, err := parseDuration(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.RenewLifetime = d + case "safe_checksum_type": + p[1] = strings.TrimSpace(p[1]) + v, err := strconv.ParseInt(p[1], 10, 32) + if err != nil || v < 0 { + return InvalidErrorf("libdefaults section line (%s)", line) + } + l.SafeChecksumType = int(v) + case "ticket_lifetime": + d, err := parseDuration(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.TicketLifetime = d + case "udp_preference_limit": + p[1] = strings.TrimSpace(p[1]) + v, err := strconv.ParseUint(p[1], 10, 32) + if err != nil || v > 32700 { + return InvalidErrorf("libdefaults section line (%s)", line) + } + l.UDPPreferenceLimit = int(v) + case "verify_ap_req_nofail": + v, err := parseBoolean(p[1]) + if err != nil { + return InvalidErrorf("libdefaults section line (%s): %v", line, err) + } + l.VerifyAPReqNofail = v + default: + //Ignore the line + continue + } + } + l.DefaultTGSEnctypeIDs = parseETypes(l.DefaultTGSEnctypes, l.AllowWeakCrypto) + l.DefaultTktEnctypeIDs = parseETypes(l.DefaultTktEnctypes, l.AllowWeakCrypto) + l.PermittedEnctypeIDs = parseETypes(l.PermittedEnctypes, l.AllowWeakCrypto) + return nil +} + +// Realm represents an entry in the [realms] section of the configuration. +type Realm struct { + Realm string + AdminServer []string + //auth_to_local //Not implementing for now + //auth_to_local_names //Not implementing for now + DefaultDomain string + KDC []string + KPasswdServer []string //default admin_server:464 + MasterKDC []string +} + +// Parse the lines of a [realms] entry into the Realm struct. +func (r *Realm) parseLines(name string, lines []string) (err error) { + r.Realm = name + var adminServerFinal bool + var KDCFinal bool + var kpasswdServerFinal bool + var masterKDCFinal bool + var ignore bool + var c int // counts the depth of blocks within brackets { } + for _, line := range lines { + if ignore && c > 0 && !strings.Contains(line, "{") && !strings.Contains(line, "}") { + continue + } + //Remove comments after the values + if idx := strings.IndexAny(line, "#;"); idx != -1 { + line = line[:idx] + } + line = strings.TrimSpace(line) + if line == "" { + continue + } + if !strings.Contains(line, "=") && !strings.Contains(line, "}") { + return InvalidErrorf("realms section line (%s)", line) + } + if strings.Contains(line, "v4_") { + ignore = true + err = UnsupportedDirective{"v4 configurations are not supported"} + } + if strings.Contains(line, "{") { + c++ + if ignore { + continue + } + } + if strings.Contains(line, "}") { + c-- + if c < 0 { + return InvalidErrorf("unpaired curly brackets") + } + if ignore { + if c < 1 { + c = 0 + ignore = false + } + continue + } + } + + p := strings.Split(line, "=") + key := strings.TrimSpace(strings.ToLower(p[0])) + v := strings.TrimSpace(p[1]) + switch key { + case "admin_server": + appendUntilFinal(&r.AdminServer, v, &adminServerFinal) + case "default_domain": + r.DefaultDomain = v + case "kdc": + if !strings.Contains(v, ":") { + // No port number specified default to 88 + if strings.HasSuffix(v, `*`) { + v = strings.TrimSpace(strings.TrimSuffix(v, `*`)) + ":88*" + } else { + v = strings.TrimSpace(v) + ":88" + } + } + appendUntilFinal(&r.KDC, v, &KDCFinal) + case "kpasswd_server": + appendUntilFinal(&r.KPasswdServer, v, &kpasswdServerFinal) + case "master_kdc": + appendUntilFinal(&r.MasterKDC, v, &masterKDCFinal) + default: + //Ignore the line + continue + } + } + //default for Kpasswd_server = admin_server:464 + if len(r.KPasswdServer) < 1 { + for _, a := range r.AdminServer { + s := strings.Split(a, ":") + r.KPasswdServer = append(r.KPasswdServer, s[0]+":464") + } + } + return +} + +// Parse the lines of the [realms] section of the configuration into an slice of Realm structs. +func parseRealms(lines []string) (realms []Realm, err error) { + var name string + var start int + var c int + for i, l := range lines { + //Remove comments after the values + if idx := strings.IndexAny(l, "#;"); idx != -1 { + l = l[:idx] + } + l = strings.TrimSpace(l) + if l == "" { + continue + } + //if strings.Contains(l, "v4_") { + // return nil, errors.New("v4 configurations are not supported in Realms section") + //} + if strings.Contains(l, "{") { + c++ + if !strings.Contains(l, "=") { + return nil, fmt.Errorf("realm configuration line invalid: %s", l) + } + if c == 1 { + start = i + p := strings.Split(l, "=") + name = strings.TrimSpace(p[0]) + } + } + if strings.Contains(l, "}") { + if c < 1 { + // but not started a block!!! + return nil, errors.New("invalid Realms section in configuration") + } + c-- + if c == 0 { + var r Realm + e := r.parseLines(name, lines[start+1:i]) + if e != nil { + if _, ok := e.(UnsupportedDirective); !ok { + err = e + return + } + err = e + } + realms = append(realms, r) + } + } + } + return +} + +// DomainRealm maps the domains to realms representing the [domain_realm] section of the configuration. +type DomainRealm map[string]string + +// Parse the lines of the [domain_realm] section of the configuration and add to the mapping. +func (d *DomainRealm) parseLines(lines []string) error { + for _, line := range lines { + //Remove comments after the values + if idx := strings.IndexAny(line, "#;"); idx != -1 { + line = line[:idx] + } + if strings.TrimSpace(line) == "" { + continue + } + if !strings.Contains(line, "=") { + return InvalidErrorf("realm line (%s)", line) + } + p := strings.Split(line, "=") + domain := strings.TrimSpace(strings.ToLower(p[0])) + realm := strings.TrimSpace(p[1]) + d.addMapping(domain, realm) + } + return nil +} + +// Add a domain to realm mapping. +func (d *DomainRealm) addMapping(domain, realm string) { + (*d)[domain] = realm +} + +// Delete a domain to realm mapping. +func (d *DomainRealm) deleteMapping(domain, realm string) { + delete(*d, domain) +} + +// ResolveRealm resolves the kerberos realm for the specified domain name from the domain to realm mapping. +// The most specific mapping is returned. +func (c *Config) ResolveRealm(domainName string) string { + domainName = strings.TrimSuffix(domainName, ".") + + // Try to match the entire hostname first + if r, ok := c.DomainRealm[domainName]; ok { + return r + } + + // Try to match all DNS domain parts + periods := strings.Count(domainName, ".") + 1 + for i := 2; i <= periods; i++ { + z := strings.SplitN(domainName, ".", i) + if r, ok := c.DomainRealm["."+z[len(z)-1]]; ok { + return r + } + } + return c.LibDefaults.DefaultRealm +} + +// Load the KRB5 configuration from the specified file path. +func Load(cfgPath string) (*Config, error) { + fh, err := os.Open(cfgPath) + if err != nil { + return nil, errors.New("configuration file could not be opened: " + cfgPath + " " + err.Error()) + } + defer fh.Close() + scanner := bufio.NewScanner(fh) + return NewConfigFromScanner(scanner) +} + +// NewConfigFromString creates a new Config struct from a string. +func NewConfigFromString(s string) (*Config, error) { + reader := strings.NewReader(s) + return NewConfigFromReader(reader) +} + +// NewConfigFromReader creates a new Config struct from an io.Reader. +func NewConfigFromReader(r io.Reader) (*Config, error) { + scanner := bufio.NewScanner(r) + return NewConfigFromScanner(scanner) +} + +// NewConfigFromScanner creates a new Config struct from a bufio.Scanner. +func NewConfigFromScanner(scanner *bufio.Scanner) (*Config, error) { + c := NewConfig() + var e error + sections := make(map[int]string) + var sectionLineNum []int + var lines []string + for scanner.Scan() { + // Skip comments and blank lines + if matched, _ := regexp.MatchString(`^\s*(#|;|\n)`, scanner.Text()); matched { + continue + } + if matched, _ := regexp.MatchString(`^\s*\[libdefaults\]\s*`, scanner.Text()); matched { + sections[len(lines)] = "libdefaults" + sectionLineNum = append(sectionLineNum, len(lines)) + continue + } + if matched, _ := regexp.MatchString(`^\s*\[realms\]\s*`, scanner.Text()); matched { + sections[len(lines)] = "realms" + sectionLineNum = append(sectionLineNum, len(lines)) + continue + } + if matched, _ := regexp.MatchString(`^\s*\[domain_realm\]\s*`, scanner.Text()); matched { + sections[len(lines)] = "domain_realm" + sectionLineNum = append(sectionLineNum, len(lines)) + continue + } + if matched, _ := regexp.MatchString(`^\s*\[.*\]\s*`, scanner.Text()); matched { + sections[len(lines)] = "unknown_section" + sectionLineNum = append(sectionLineNum, len(lines)) + continue + } + lines = append(lines, scanner.Text()) + } + for i, start := range sectionLineNum { + var end int + if i+1 >= len(sectionLineNum) { + end = len(lines) + } else { + end = sectionLineNum[i+1] + } + switch section := sections[start]; section { + case "libdefaults": + err := c.LibDefaults.parseLines(lines[start:end]) + if err != nil { + if _, ok := err.(UnsupportedDirective); !ok { + return nil, fmt.Errorf("error processing libdefaults section: %v", err) + } + e = err + } + case "realms": + realms, err := parseRealms(lines[start:end]) + if err != nil { + if _, ok := err.(UnsupportedDirective); !ok { + return nil, fmt.Errorf("error processing realms section: %v", err) + } + e = err + } + c.Realms = realms + case "domain_realm": + err := c.DomainRealm.parseLines(lines[start:end]) + if err != nil { + if _, ok := err.(UnsupportedDirective); !ok { + return nil, fmt.Errorf("error processing domaain_realm section: %v", err) + } + e = err + } + default: + continue + } + } + return c, e +} + +// Parse a space delimited list of ETypes into a list of EType numbers optionally filtering out weak ETypes. +func parseETypes(s []string, w bool) []int32 { + var eti []int32 + for _, et := range s { + if !w { + var weak bool + for _, wet := range strings.Fields(WeakETypeList) { + if et == wet { + weak = true + break + } + } + if weak { + continue + } + } + i := etypeID.EtypeSupported(et) + if i != 0 { + eti = append(eti, i) + } + } + return eti +} + +// Parse a time duration string in the configuration to a golang time.Duration. +func parseDuration(s string) (time.Duration, error) { + s = strings.Replace(strings.TrimSpace(s), " ", "", -1) + + // handle Nd[NmNs] + if strings.Contains(s, "d") { + ds := strings.SplitN(s, "d", 2) + dn, err := strconv.ParseUint(ds[0], 10, 32) + if err != nil { + return time.Duration(0), errors.New("invalid time duration") + } + d := time.Duration(dn*24) * time.Hour + if ds[1] != "" { + dp, err := time.ParseDuration(ds[1]) + if err != nil { + return time.Duration(0), errors.New("invalid time duration") + } + d = d + dp + } + return d, nil + } + + // handle Nm[Ns] + d, err := time.ParseDuration(s) + if err == nil { + return d, nil + } + + // handle N + v, err := strconv.ParseUint(s, 10, 32) + if err == nil && v > 0 { + return time.Duration(v) * time.Second, nil + } + + // handle h:m[:s] + if strings.Contains(s, ":") { + t := strings.Split(s, ":") + if 2 > len(t) || len(t) > 3 { + return time.Duration(0), errors.New("invalid time duration value") + } + var i []int + for _, n := range t { + j, err := strconv.ParseInt(n, 10, 16) + if err != nil { + return time.Duration(0), errors.New("invalid time duration value") + } + i = append(i, int(j)) + } + d := time.Duration(i[0])*time.Hour + time.Duration(i[1])*time.Minute + if len(i) == 3 { + d = d + time.Duration(i[2])*time.Second + } + return d, nil + } + return time.Duration(0), errors.New("invalid time duration value") +} + +// Parse possible boolean values to golang bool. +func parseBoolean(s string) (bool, error) { + s = strings.TrimSpace(s) + v, err := strconv.ParseBool(s) + if err == nil { + return v, nil + } + switch strings.ToLower(s) { + case "yes": + return true, nil + case "y": + return true, nil + case "no": + return false, nil + case "n": + return false, nil + } + return false, errors.New("invalid boolean value") +} + +// Parse array of strings but stop if an asterisk is placed at the end of a line. +func appendUntilFinal(s *[]string, value string, final *bool) { + if *final { + return + } + if last := len(value) - 1; last >= 0 && value[last] == '*' { + *final = true + value = value[:len(value)-1] + } + *s = append(*s, value) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/credentials/ccache.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/credentials/ccache.go new file mode 100644 index 0000000..98ec29b --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/credentials/ccache.go @@ -0,0 +1,348 @@ +package credentials + +import ( + "bytes" + "encoding/binary" + "errors" + "io/ioutil" + "strings" + "time" + "unsafe" + + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +const ( + headerFieldTagKDCOffset = 1 +) + +// The first byte of the file always has the value 5. +// The value of the second byte contains the version number (1 through 4) +// Versions 1 and 2 of the file format use native byte order for integer representations. +// Versions 3 and 4 always use big-endian byte order +// After the two-byte version indicator, the file has three parts: +// 1) the header (in version 4 only) +// 2) the default principal name +// 3) a sequence of credentials + +// CCache is the file credentials cache as define here: https://web.mit.edu/kerberos/krb5-latest/doc/formats/ccache_file_format.html +type CCache struct { + Version uint8 + Header header + DefaultPrincipal principal + Credentials []*Credential + Path string +} + +type header struct { + length uint16 + fields []headerField +} + +type headerField struct { + tag uint16 + length uint16 + value []byte +} + +// Credential cache entry principal struct. +type principal struct { + Realm string + PrincipalName types.PrincipalName +} + +// Credential holds a Kerberos client's ccache credential information. +type Credential struct { + Client principal + Server principal + Key types.EncryptionKey + AuthTime time.Time + StartTime time.Time + EndTime time.Time + RenewTill time.Time + IsSKey bool + TicketFlags asn1.BitString + Addresses []types.HostAddress + AuthData []types.AuthorizationDataEntry + Ticket []byte + SecondTicket []byte +} + +// LoadCCache loads a credential cache file into a CCache type. +func LoadCCache(cpath string) (*CCache, error) { + c := new(CCache) + b, err := ioutil.ReadFile(cpath) + if err != nil { + return c, err + } + err = c.Unmarshal(b) + return c, err +} + +// Unmarshal a byte slice of credential cache data into CCache type. +func (c *CCache) Unmarshal(b []byte) error { + p := 0 + //The first byte of the file always has the value 5 + if int8(b[p]) != 5 { + return errors.New("Invalid credential cache data. First byte does not equal 5") + } + p++ + //Get credential cache version + //The second byte contains the version number (1 to 4) + c.Version = b[p] + if c.Version < 1 || c.Version > 4 { + return errors.New("Invalid credential cache data. Keytab version is not within 1 to 4") + } + p++ + //Version 1 or 2 of the file format uses native byte order for integer representations. Versions 3 & 4 always uses big-endian byte order + var endian binary.ByteOrder + endian = binary.BigEndian + if (c.Version == 1 || c.Version == 2) && isNativeEndianLittle() { + endian = binary.LittleEndian + } + if c.Version == 4 { + err := parseHeader(b, &p, c, &endian) + if err != nil { + return err + } + } + c.DefaultPrincipal = parsePrincipal(b, &p, c, &endian) + for p < len(b) { + cred, err := parseCredential(b, &p, c, &endian) + if err != nil { + return err + } + c.Credentials = append(c.Credentials, cred) + } + return nil +} + +func parseHeader(b []byte, p *int, c *CCache, e *binary.ByteOrder) error { + if c.Version != 4 { + return errors.New("Credentials cache version is not 4 so there is no header to parse.") + } + h := header{} + h.length = uint16(readInt16(b, p, e)) + for *p <= int(h.length) { + f := headerField{} + f.tag = uint16(readInt16(b, p, e)) + f.length = uint16(readInt16(b, p, e)) + f.value = b[*p : *p+int(f.length)] + *p += int(f.length) + if !f.valid() { + return errors.New("Invalid credential cache header found") + } + h.fields = append(h.fields, f) + } + c.Header = h + return nil +} + +// Parse the Keytab bytes of a principal into a Keytab entry's principal. +func parsePrincipal(b []byte, p *int, c *CCache, e *binary.ByteOrder) (princ principal) { + if c.Version != 1 { + //Name Type is omitted in version 1 + princ.PrincipalName.NameType = readInt32(b, p, e) + } + nc := int(readInt32(b, p, e)) + if c.Version == 1 { + //In version 1 the number of components includes the realm. Minus 1 to make consistent with version 2 + nc-- + } + lenRealm := readInt32(b, p, e) + princ.Realm = string(readBytes(b, p, int(lenRealm), e)) + for i := 0; i < nc; i++ { + l := readInt32(b, p, e) + princ.PrincipalName.NameString = append(princ.PrincipalName.NameString, string(readBytes(b, p, int(l), e))) + } + return princ +} + +func parseCredential(b []byte, p *int, c *CCache, e *binary.ByteOrder) (cred *Credential, err error) { + cred = new(Credential) + cred.Client = parsePrincipal(b, p, c, e) + cred.Server = parsePrincipal(b, p, c, e) + key := types.EncryptionKey{} + key.KeyType = int32(readInt16(b, p, e)) + if c.Version == 3 { + //repeated twice in version 3 + key.KeyType = int32(readInt16(b, p, e)) + } + key.KeyValue = readData(b, p, e) + cred.Key = key + cred.AuthTime = readTimestamp(b, p, e) + cred.StartTime = readTimestamp(b, p, e) + cred.EndTime = readTimestamp(b, p, e) + cred.RenewTill = readTimestamp(b, p, e) + if ik := readInt8(b, p, e); ik == 0 { + cred.IsSKey = false + } else { + cred.IsSKey = true + } + cred.TicketFlags = types.NewKrbFlags() + cred.TicketFlags.Bytes = readBytes(b, p, 4, e) + l := int(readInt32(b, p, e)) + cred.Addresses = make([]types.HostAddress, l, l) + for i := range cred.Addresses { + cred.Addresses[i] = readAddress(b, p, e) + } + l = int(readInt32(b, p, e)) + cred.AuthData = make([]types.AuthorizationDataEntry, l, l) + for i := range cred.AuthData { + cred.AuthData[i] = readAuthDataEntry(b, p, e) + } + cred.Ticket = readData(b, p, e) + cred.SecondTicket = readData(b, p, e) + return +} + +// GetClientPrincipalName returns a PrincipalName type for the client the credentials cache is for. +func (c *CCache) GetClientPrincipalName() types.PrincipalName { + return c.DefaultPrincipal.PrincipalName +} + +// GetClientRealm returns the reals of the client the credentials cache is for. +func (c *CCache) GetClientRealm() string { + return c.DefaultPrincipal.Realm +} + +// GetClientCredentials returns a Credentials object representing the client of the credentials cache. +func (c *CCache) GetClientCredentials() *Credentials { + return &Credentials{ + username: c.DefaultPrincipal.PrincipalName.PrincipalNameString(), + realm: c.GetClientRealm(), + cname: c.DefaultPrincipal.PrincipalName, + } +} + +// Contains tests if the cache contains a credential for the provided server PrincipalName +func (c *CCache) Contains(p types.PrincipalName) bool { + for _, cred := range c.Credentials { + if cred.Server.PrincipalName.Equal(p) { + return true + } + } + return false +} + +// GetEntry returns a specific credential for the PrincipalName provided. +func (c *CCache) GetEntry(p types.PrincipalName) (*Credential, bool) { + cred := new(Credential) + var found bool + for i := range c.Credentials { + if c.Credentials[i].Server.PrincipalName.Equal(p) { + cred = c.Credentials[i] + found = true + break + } + } + if !found { + return cred, false + } + return cred, true +} + +// GetEntries filters out configuration entries an returns a slice of credentials. +func (c *CCache) GetEntries() []*Credential { + creds := make([]*Credential, 0) + for _, cred := range c.Credentials { + // Filter out configuration entries + if strings.HasPrefix(cred.Server.Realm, "X-CACHECONF") { + continue + } + creds = append(creds, cred) + } + return creds +} + +func (h *headerField) valid() bool { + // At this time there is only one defined header field. + // Its tag value is 1, its length is always 8. + // Its contents are two 32-bit integers giving the seconds and microseconds + // of the time offset of the KDC relative to the client. + // Adding this offset to the current time on the client should give the current time on the KDC, if that offset has not changed since the initial authentication. + + // Done as a switch in case other tag values are added in the future. + switch h.tag { + case headerFieldTagKDCOffset: + if h.length != 8 || len(h.value) != 8 { + return false + } + return true + } + return false +} + +func readData(b []byte, p *int, e *binary.ByteOrder) []byte { + l := readInt32(b, p, e) + return readBytes(b, p, int(l), e) +} + +func readAddress(b []byte, p *int, e *binary.ByteOrder) types.HostAddress { + a := types.HostAddress{} + a.AddrType = int32(readInt16(b, p, e)) + a.Address = readData(b, p, e) + return a +} + +func readAuthDataEntry(b []byte, p *int, e *binary.ByteOrder) types.AuthorizationDataEntry { + a := types.AuthorizationDataEntry{} + a.ADType = int32(readInt16(b, p, e)) + a.ADData = readData(b, p, e) + return a +} + +// Read bytes representing a timestamp. +func readTimestamp(b []byte, p *int, e *binary.ByteOrder) time.Time { + return time.Unix(int64(readInt32(b, p, e)), 0) +} + +// Read bytes representing an eight bit integer. +func readInt8(b []byte, p *int, e *binary.ByteOrder) (i int8) { + buf := bytes.NewBuffer(b[*p : *p+1]) + binary.Read(buf, *e, &i) + *p++ + return +} + +// Read bytes representing a sixteen bit integer. +func readInt16(b []byte, p *int, e *binary.ByteOrder) (i int16) { + buf := bytes.NewBuffer(b[*p : *p+2]) + binary.Read(buf, *e, &i) + *p += 2 + return +} + +// Read bytes representing a thirty two bit integer. +func readInt32(b []byte, p *int, e *binary.ByteOrder) (i int32) { + buf := bytes.NewBuffer(b[*p : *p+4]) + binary.Read(buf, *e, &i) + *p += 4 + return +} + +func readBytes(b []byte, p *int, s int, e *binary.ByteOrder) []byte { + buf := bytes.NewBuffer(b[*p : *p+s]) + r := make([]byte, s) + binary.Read(buf, *e, &r) + *p += s + return r +} + +func isNativeEndianLittle() bool { + var x = 0x012345678 + var p = unsafe.Pointer(&x) + var bp = (*[4]byte)(p) + + var endian bool + if 0x01 == bp[0] { + endian = false + } else if (0x78 & 0xff) == (bp[0] & 0xff) { + endian = true + } else { + // Default to big endian + endian = false + } + return endian +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/credentials/credentials.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/credentials/credentials.go new file mode 100644 index 0000000..beec066 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/credentials/credentials.go @@ -0,0 +1,314 @@ +// Package credentials provides credentials management for Kerberos 5 authentication. +package credentials + +import ( + "time" + + "github.com/hashicorp/go-uuid" + "gopkg.in/jcmturner/gokrb5.v7/iana/nametype" + "gopkg.in/jcmturner/gokrb5.v7/keytab" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +const ( + // AttributeKeyADCredentials assigned number for AD credentials. + AttributeKeyADCredentials = "gokrb5AttributeKeyADCredentials" +) + +// Credentials struct for a user. +// Contains either a keytab, password or both. +// Keytabs are used over passwords if both are defined. +type Credentials struct { + username string + displayName string + realm string + cname types.PrincipalName + keytab *keytab.Keytab + password string + attributes map[string]interface{} + validUntil time.Time + + authenticated bool + human bool + authTime time.Time + groupMembership map[string]bool + sessionID string +} + +// ADCredentials contains information obtained from the PAC. +type ADCredentials struct { + EffectiveName string + FullName string + UserID int + PrimaryGroupID int + LogOnTime time.Time + LogOffTime time.Time + PasswordLastSet time.Time + GroupMembershipSIDs []string + LogonDomainName string + LogonDomainID string + LogonServer string +} + +// New creates a new Credentials instance. +func New(username string, realm string) *Credentials { + uid, err := uuid.GenerateUUID() + if err != nil { + uid = "00unique-sess-ions-uuid-unavailable0" + } + return &Credentials{ + username: username, + displayName: username, + realm: realm, + cname: types.NewPrincipalName(nametype.KRB_NT_PRINCIPAL, username), + keytab: keytab.New(), + attributes: make(map[string]interface{}), + groupMembership: make(map[string]bool), + sessionID: uid, + human: true, + } +} + +// NewFromPrincipalName creates a new Credentials instance with the user details provides as a PrincipalName type. +func NewFromPrincipalName(cname types.PrincipalName, realm string) *Credentials { + uid, err := uuid.GenerateUUID() + if err != nil { + uid = "00unique-sess-ions-uuid-unavailable0" + } + return &Credentials{ + username: cname.PrincipalNameString(), + displayName: cname.PrincipalNameString(), + realm: realm, + cname: cname, + keytab: keytab.New(), + attributes: make(map[string]interface{}), + groupMembership: make(map[string]bool), + sessionID: uid, + human: true, + } +} + +// WithKeytab sets the Keytab in the Credentials struct. +func (c *Credentials) WithKeytab(kt *keytab.Keytab) *Credentials { + c.keytab = kt + c.password = "" + return c +} + +// Keytab returns the credential's Keytab. +func (c *Credentials) Keytab() *keytab.Keytab { + return c.keytab +} + +// HasKeytab queries if the Credentials has a keytab defined. +func (c *Credentials) HasKeytab() bool { + if c.keytab != nil && len(c.keytab.Entries) > 0 { + return true + } + return false +} + +// WithPassword sets the password in the Credentials struct. +func (c *Credentials) WithPassword(password string) *Credentials { + c.password = password + c.keytab = keytab.New() // clear any keytab + return c +} + +// Password returns the credential's password. +func (c *Credentials) Password() string { + return c.password +} + +// HasPassword queries if the Credentials has a password defined. +func (c *Credentials) HasPassword() bool { + if c.password != "" { + return true + } + return false +} + +// SetValidUntil sets the expiry time of the credentials +func (c *Credentials) SetValidUntil(t time.Time) { + c.validUntil = t +} + +// SetADCredentials adds ADCredentials attributes to the credentials +func (c *Credentials) SetADCredentials(a ADCredentials) { + c.SetAttribute(AttributeKeyADCredentials, a) + if a.FullName != "" { + c.SetDisplayName(a.FullName) + } + if a.EffectiveName != "" { + c.SetUserName(a.EffectiveName) + } + for i := range a.GroupMembershipSIDs { + c.AddAuthzAttribute(a.GroupMembershipSIDs[i]) + } +} + +// Methods to implement goidentity.Identity interface + +// UserName returns the credential's username. +func (c *Credentials) UserName() string { + return c.username +} + +// SetUserName sets the username value on the credential. +func (c *Credentials) SetUserName(s string) { + c.username = s +} + +// CName returns the credential's client principal name. +func (c *Credentials) CName() types.PrincipalName { + return c.cname +} + +// SetCName sets the client principal name on the credential. +func (c *Credentials) SetCName(pn types.PrincipalName) { + c.cname = pn +} + +// Domain returns the credential's domain. +func (c *Credentials) Domain() string { + return c.realm +} + +// SetDomain sets the domain value on the credential. +func (c *Credentials) SetDomain(s string) { + c.realm = s +} + +// Realm returns the credential's realm. Same as the domain. +func (c *Credentials) Realm() string { + return c.Domain() +} + +// SetRealm sets the realm value on the credential. Same as the domain +func (c *Credentials) SetRealm(s string) { + c.SetDomain(s) +} + +// DisplayName returns the credential's display name. +func (c *Credentials) DisplayName() string { + return c.displayName +} + +// SetDisplayName sets the display name value on the credential. +func (c *Credentials) SetDisplayName(s string) { + c.displayName = s +} + +// Human returns if the credential represents a human or not. +func (c *Credentials) Human() bool { + return c.human +} + +// SetHuman sets the credential as human. +func (c *Credentials) SetHuman(b bool) { + c.human = b +} + +// AuthTime returns the time the credential was authenticated. +func (c *Credentials) AuthTime() time.Time { + return c.authTime +} + +// SetAuthTime sets the time the credential was authenticated. +func (c *Credentials) SetAuthTime(t time.Time) { + c.authTime = t +} + +// AuthzAttributes returns the credentials authorizing attributes. +func (c *Credentials) AuthzAttributes() []string { + s := make([]string, len(c.groupMembership)) + i := 0 + for a := range c.groupMembership { + s[i] = a + i++ + } + return s +} + +// Authenticated indicates if the credential has been successfully authenticated or not. +func (c *Credentials) Authenticated() bool { + return c.authenticated +} + +// SetAuthenticated sets the credential as having been successfully authenticated. +func (c *Credentials) SetAuthenticated(b bool) { + c.authenticated = b +} + +// AddAuthzAttribute adds an authorization attribute to the credential. +func (c *Credentials) AddAuthzAttribute(a string) { + c.groupMembership[a] = true +} + +// RemoveAuthzAttribute removes an authorization attribute from the credential. +func (c *Credentials) RemoveAuthzAttribute(a string) { + if _, ok := c.groupMembership[a]; !ok { + return + } + delete(c.groupMembership, a) +} + +// EnableAuthzAttribute toggles an authorization attribute to an enabled state on the credential. +func (c *Credentials) EnableAuthzAttribute(a string) { + if enabled, ok := c.groupMembership[a]; ok && !enabled { + c.groupMembership[a] = true + } +} + +// DisableAuthzAttribute toggles an authorization attribute to a disabled state on the credential. +func (c *Credentials) DisableAuthzAttribute(a string) { + if enabled, ok := c.groupMembership[a]; ok && enabled { + c.groupMembership[a] = false + } +} + +// Authorized indicates if the credential has the specified authorizing attribute. +func (c *Credentials) Authorized(a string) bool { + if enabled, ok := c.groupMembership[a]; ok && enabled { + return true + } + return false +} + +// SessionID returns the credential's session ID. +func (c *Credentials) SessionID() string { + return c.sessionID +} + +// Expired indicates if the credential has expired. +func (c *Credentials) Expired() bool { + if !c.validUntil.IsZero() && time.Now().UTC().After(c.validUntil) { + return true + } + return false +} + +// ValidUntil returns the credential's valid until date +func (c *Credentials) ValidUntil() time.Time { + return c.validUntil +} + +// Attributes returns the Credentials' attributes map. +func (c *Credentials) Attributes() map[string]interface{} { + return c.attributes +} + +// SetAttribute sets the value of an attribute. +func (c *Credentials) SetAttribute(k string, v interface{}) { + c.attributes[k] = v +} + +// SetAttributes replaces the attributes map with the one provided. +func (c *Credentials) SetAttributes(a map[string]interface{}) { + c.attributes = a +} + +// RemoveAttribute deletes an attribute from the attribute map that has the key provided. +func (c *Credentials) RemoveAttribute(k string) { + delete(c.attributes, k) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes128-cts-hmac-sha1-96.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes128-cts-hmac-sha1-96.go new file mode 100644 index 0000000..90b5df0 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes128-cts-hmac-sha1-96.go @@ -0,0 +1,173 @@ +package crypto + +import ( + "crypto/aes" + "crypto/hmac" + "crypto/sha1" + "hash" + + "gopkg.in/jcmturner/gokrb5.v7/crypto/common" + "gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961" + "gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3962" + "gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype" + "gopkg.in/jcmturner/gokrb5.v7/iana/etypeID" +) + +// RFC 3962 +//+--------------------------------------------------------------------+ +//| protocol key format 128- or 256-bit string | +//| | +//| string-to-key function PBKDF2+DK with variable | +//| iteration count (see | +//| above) | +//| | +//| default string-to-key parameters 00 00 10 00 | +//| | +//| key-generation seed length key size | +//| | +//| random-to-key function identity function | +//| | +//| hash function, H SHA-1 | +//| | +//| HMAC output size, h 12 octets (96 bits) | +//| | +//| message block size, m 1 octet | +//| | +//| encryption/decryption functions, AES in CBC-CTS mode | +//| E and D (cipher block size 16 | +//| octets), with next-to- | +//| last block (last block | +//| if only one) as CBC-style | +//| ivec | +//+--------------------------------------------------------------------+ +// +//+--------------------------------------------------------------------+ +//| encryption types | +//+--------------------------------------------------------------------+ +//| type name etype value key size | +//+--------------------------------------------------------------------+ +//| aes128-cts-hmac-sha1-96 17 128 | +//| aes256-cts-hmac-sha1-96 18 256 | +//+--------------------------------------------------------------------+ +// +//+--------------------------------------------------------------------+ +//| checksum types | +//+--------------------------------------------------------------------+ +//| type name sumtype value length | +//+--------------------------------------------------------------------+ +//| hmac-sha1-96-aes128 15 96 | +//| hmac-sha1-96-aes256 16 96 | +//+--------------------------------------------------------------------+ + +// Aes128CtsHmacSha96 implements Kerberos encryption type aes128-cts-hmac-sha1-96 +type Aes128CtsHmacSha96 struct { +} + +// GetETypeID returns the EType ID number. +func (e Aes128CtsHmacSha96) GetETypeID() int32 { + return etypeID.AES128_CTS_HMAC_SHA1_96 +} + +// GetHashID returns the checksum type ID number. +func (e Aes128CtsHmacSha96) GetHashID() int32 { + return chksumtype.HMAC_SHA1_96_AES128 +} + +// GetKeyByteSize returns the number of bytes for key of this etype. +func (e Aes128CtsHmacSha96) GetKeyByteSize() int { + return 128 / 8 +} + +// GetKeySeedBitLength returns the number of bits for the seed for key generation. +func (e Aes128CtsHmacSha96) GetKeySeedBitLength() int { + return e.GetKeyByteSize() * 8 +} + +// GetHashFunc returns the hash function for this etype. +func (e Aes128CtsHmacSha96) GetHashFunc() func() hash.Hash { + return sha1.New +} + +// GetMessageBlockByteSize returns the block size for the etype's messages. +func (e Aes128CtsHmacSha96) GetMessageBlockByteSize() int { + return 1 +} + +// GetDefaultStringToKeyParams returns the default key derivation parameters in string form. +func (e Aes128CtsHmacSha96) GetDefaultStringToKeyParams() string { + return "00001000" +} + +// GetConfounderByteSize returns the byte count for confounder to be used during cryptographic operations. +func (e Aes128CtsHmacSha96) GetConfounderByteSize() int { + return aes.BlockSize +} + +// GetHMACBitLength returns the bit count size of the integrity hash. +func (e Aes128CtsHmacSha96) GetHMACBitLength() int { + return 96 +} + +// GetCypherBlockBitLength returns the bit count size of the cypher block. +func (e Aes128CtsHmacSha96) GetCypherBlockBitLength() int { + return aes.BlockSize * 8 +} + +// StringToKey returns a key derived from the string provided. +func (e Aes128CtsHmacSha96) StringToKey(secret string, salt string, s2kparams string) ([]byte, error) { + return rfc3962.StringToKey(secret, salt, s2kparams, e) +} + +// RandomToKey returns a key from the bytes provided. +func (e Aes128CtsHmacSha96) RandomToKey(b []byte) []byte { + return rfc3961.RandomToKey(b) +} + +// EncryptData encrypts the data provided. +func (e Aes128CtsHmacSha96) EncryptData(key, data []byte) ([]byte, []byte, error) { + return rfc3962.EncryptData(key, data, e) +} + +// EncryptMessage encrypts the message provided and concatenates it with the integrity hash to create an encrypted message. +func (e Aes128CtsHmacSha96) EncryptMessage(key, message []byte, usage uint32) ([]byte, []byte, error) { + return rfc3962.EncryptMessage(key, message, usage, e) +} + +// DecryptData decrypts the data provided. +func (e Aes128CtsHmacSha96) DecryptData(key, data []byte) ([]byte, error) { + return rfc3962.DecryptData(key, data, e) +} + +// DecryptMessage decrypts the message provided and verifies the integrity of the message. +func (e Aes128CtsHmacSha96) DecryptMessage(key, ciphertext []byte, usage uint32) ([]byte, error) { + return rfc3962.DecryptMessage(key, ciphertext, usage, e) +} + +// DeriveKey derives a key from the protocol key based on the usage value. +func (e Aes128CtsHmacSha96) DeriveKey(protocolKey, usage []byte) ([]byte, error) { + return rfc3961.DeriveKey(protocolKey, usage, e) +} + +// DeriveRandom generates data needed for key generation. +func (e Aes128CtsHmacSha96) DeriveRandom(protocolKey, usage []byte) ([]byte, error) { + return rfc3961.DeriveRandom(protocolKey, usage, e) +} + +// VerifyIntegrity checks the integrity of the plaintext message. +func (e Aes128CtsHmacSha96) VerifyIntegrity(protocolKey, ct, pt []byte, usage uint32) bool { + return rfc3961.VerifyIntegrity(protocolKey, ct, pt, usage, e) +} + +// GetChecksumHash returns a keyed checksum hash of the bytes provided. +func (e Aes128CtsHmacSha96) GetChecksumHash(protocolKey, data []byte, usage uint32) ([]byte, error) { + return common.GetHash(data, protocolKey, common.GetUsageKc(usage), e) +} + +// VerifyChecksum compares the checksum of the message bytes is the same as the checksum provided. +func (e Aes128CtsHmacSha96) VerifyChecksum(protocolKey, data, chksum []byte, usage uint32) bool { + c, err := e.GetChecksumHash(protocolKey, data, usage) + if err != nil { + return false + } + return hmac.Equal(chksum, c) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes128-cts-hmac-sha256-128.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes128-cts-hmac-sha256-128.go new file mode 100644 index 0000000..49a1b07 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes128-cts-hmac-sha256-128.go @@ -0,0 +1,135 @@ +package crypto + +import ( + "crypto/aes" + "crypto/hmac" + "crypto/sha256" + "hash" + + "gopkg.in/jcmturner/gokrb5.v7/crypto/common" + "gopkg.in/jcmturner/gokrb5.v7/crypto/rfc8009" + "gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype" + "gopkg.in/jcmturner/gokrb5.v7/iana/etypeID" +) + +// RFC https://tools.ietf.org/html/rfc8009 + +// Aes128CtsHmacSha256128 implements Kerberos encryption type aes128-cts-hmac-sha256-128 +type Aes128CtsHmacSha256128 struct { +} + +// GetETypeID returns the EType ID number. +func (e Aes128CtsHmacSha256128) GetETypeID() int32 { + return etypeID.AES128_CTS_HMAC_SHA256_128 +} + +// GetHashID returns the checksum type ID number. +func (e Aes128CtsHmacSha256128) GetHashID() int32 { + return chksumtype.HMAC_SHA256_128_AES128 +} + +// GetKeyByteSize returns the number of bytes for key of this etype. +func (e Aes128CtsHmacSha256128) GetKeyByteSize() int { + return 128 / 8 +} + +// GetKeySeedBitLength returns the number of bits for the seed for key generation. +func (e Aes128CtsHmacSha256128) GetKeySeedBitLength() int { + return e.GetKeyByteSize() * 8 +} + +// GetHashFunc returns the hash function for this etype. +func (e Aes128CtsHmacSha256128) GetHashFunc() func() hash.Hash { + return sha256.New +} + +// GetMessageBlockByteSize returns the block size for the etype's messages. +func (e Aes128CtsHmacSha256128) GetMessageBlockByteSize() int { + return 1 +} + +// GetDefaultStringToKeyParams returns the default key derivation parameters in string form. +func (e Aes128CtsHmacSha256128) GetDefaultStringToKeyParams() string { + return "00008000" +} + +// GetConfounderByteSize returns the byte count for confounder to be used during cryptographic operations. +func (e Aes128CtsHmacSha256128) GetConfounderByteSize() int { + return aes.BlockSize +} + +// GetHMACBitLength returns the bit count size of the integrity hash. +func (e Aes128CtsHmacSha256128) GetHMACBitLength() int { + return 128 +} + +// GetCypherBlockBitLength returns the bit count size of the cypher block. +func (e Aes128CtsHmacSha256128) GetCypherBlockBitLength() int { + return aes.BlockSize * 8 +} + +// StringToKey returns a key derived from the string provided. +func (e Aes128CtsHmacSha256128) StringToKey(secret string, salt string, s2kparams string) ([]byte, error) { + saltp := rfc8009.GetSaltP(salt, "aes128-cts-hmac-sha256-128") + return rfc8009.StringToKey(secret, saltp, s2kparams, e) +} + +// RandomToKey returns a key from the bytes provided. +func (e Aes128CtsHmacSha256128) RandomToKey(b []byte) []byte { + return rfc8009.RandomToKey(b) +} + +// EncryptData encrypts the data provided. +func (e Aes128CtsHmacSha256128) EncryptData(key, data []byte) ([]byte, []byte, error) { + return rfc8009.EncryptData(key, data, e) +} + +// EncryptMessage encrypts the message provided and concatenates it with the integrity hash to create an encrypted message. +func (e Aes128CtsHmacSha256128) EncryptMessage(key, message []byte, usage uint32) ([]byte, []byte, error) { + return rfc8009.EncryptMessage(key, message, usage, e) +} + +// DecryptData decrypts the data provided. +func (e Aes128CtsHmacSha256128) DecryptData(key, data []byte) ([]byte, error) { + return rfc8009.DecryptData(key, data, e) +} + +// DecryptMessage decrypts the message provided and verifies the integrity of the message. +func (e Aes128CtsHmacSha256128) DecryptMessage(key, ciphertext []byte, usage uint32) ([]byte, error) { + return rfc8009.DecryptMessage(key, ciphertext, usage, e) +} + +// DeriveKey derives a key from the protocol key based on the usage value. +func (e Aes128CtsHmacSha256128) DeriveKey(protocolKey, usage []byte) ([]byte, error) { + return rfc8009.DeriveKey(protocolKey, usage, e), nil +} + +// DeriveRandom generates data needed for key generation. +func (e Aes128CtsHmacSha256128) DeriveRandom(protocolKey, usage []byte) ([]byte, error) { + return rfc8009.DeriveRandom(protocolKey, usage, e) +} + +// VerifyIntegrity checks the integrity of the ciphertext message. +// The HMAC is calculated over the cipher state concatenated with the +// AES output, instead of being calculated over the confounder and +// plaintext. This allows the message receiver to verify the +// integrity of the message before decrypting the message. +// Therefore the pt value to this interface method is not use. Pass any []byte. +func (e Aes128CtsHmacSha256128) VerifyIntegrity(protocolKey, ct, pt []byte, usage uint32) bool { + // We don't need ib just there for the interface + return rfc8009.VerifyIntegrity(protocolKey, ct, usage, e) +} + +// GetChecksumHash returns a keyed checksum hash of the bytes provided. +func (e Aes128CtsHmacSha256128) GetChecksumHash(protocolKey, data []byte, usage uint32) ([]byte, error) { + return common.GetHash(data, protocolKey, common.GetUsageKc(usage), e) +} + +// VerifyChecksum compares the checksum of the message bytes is the same as the checksum provided. +func (e Aes128CtsHmacSha256128) VerifyChecksum(protocolKey, data, chksum []byte, usage uint32) bool { + c, err := e.GetChecksumHash(protocolKey, data, usage) + if err != nil { + return false + } + return hmac.Equal(chksum, c) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes256-cts-hmac-sha1-96.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes256-cts-hmac-sha1-96.go new file mode 100644 index 0000000..0cdbb7e --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes256-cts-hmac-sha1-96.go @@ -0,0 +1,173 @@ +package crypto + +import ( + "crypto/aes" + "crypto/hmac" + "crypto/sha1" + "hash" + + "gopkg.in/jcmturner/gokrb5.v7/crypto/common" + "gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961" + "gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3962" + "gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype" + "gopkg.in/jcmturner/gokrb5.v7/iana/etypeID" +) + +// RFC 3962 +//+--------------------------------------------------------------------+ +//| protocol key format 128- or 256-bit string | +//| | +//| string-to-key function PBKDF2+DK with variable | +//| iteration count (see | +//| above) | +//| | +//| default string-to-key parameters 00 00 10 00 | +//| | +//| key-generation seed length key size | +//| | +//| random-to-key function identity function | +//| | +//| hash function, H SHA-1 | +//| | +//| HMAC output size, h 12 octets (96 bits) | +//| | +//| message block size, m 1 octet | +//| | +//| encryption/decryption functions, AES in CBC-CTS mode | +//| E and D (cipher block size 16 | +//| octets), with next-to- | +//| last block (last block | +//| if only one) as CBC-style | +//| ivec | +//+--------------------------------------------------------------------+ +// +//+--------------------------------------------------------------------+ +//| encryption types | +//+--------------------------------------------------------------------+ +//| type name etype value key size | +//+--------------------------------------------------------------------+ +//| aes128-cts-hmac-sha1-96 17 128 | +//| aes256-cts-hmac-sha1-96 18 256 | +//+--------------------------------------------------------------------+ +// +//+--------------------------------------------------------------------+ +//| checksum types | +//+--------------------------------------------------------------------+ +//| type name sumtype value length | +//+--------------------------------------------------------------------+ +//| hmac-sha1-96-aes128 15 96 | +//| hmac-sha1-96-aes256 16 96 | +//+--------------------------------------------------------------------+ + +// Aes256CtsHmacSha96 implements Kerberos encryption type aes256-cts-hmac-sha1-96 +type Aes256CtsHmacSha96 struct { +} + +// GetETypeID returns the EType ID number. +func (e Aes256CtsHmacSha96) GetETypeID() int32 { + return etypeID.AES256_CTS_HMAC_SHA1_96 +} + +// GetHashID returns the checksum type ID number. +func (e Aes256CtsHmacSha96) GetHashID() int32 { + return chksumtype.HMAC_SHA1_96_AES256 +} + +// GetKeyByteSize returns the number of bytes for key of this etype. +func (e Aes256CtsHmacSha96) GetKeyByteSize() int { + return 256 / 8 +} + +// GetKeySeedBitLength returns the number of bits for the seed for key generation. +func (e Aes256CtsHmacSha96) GetKeySeedBitLength() int { + return e.GetKeyByteSize() * 8 +} + +// GetHashFunc returns the hash function for this etype. +func (e Aes256CtsHmacSha96) GetHashFunc() func() hash.Hash { + return sha1.New +} + +// GetMessageBlockByteSize returns the block size for the etype's messages. +func (e Aes256CtsHmacSha96) GetMessageBlockByteSize() int { + return 1 +} + +// GetDefaultStringToKeyParams returns the default key derivation parameters in string form. +func (e Aes256CtsHmacSha96) GetDefaultStringToKeyParams() string { + return "00001000" +} + +// GetConfounderByteSize returns the byte count for confounder to be used during cryptographic operations. +func (e Aes256CtsHmacSha96) GetConfounderByteSize() int { + return aes.BlockSize +} + +// GetHMACBitLength returns the bit count size of the integrity hash. +func (e Aes256CtsHmacSha96) GetHMACBitLength() int { + return 96 +} + +// GetCypherBlockBitLength returns the bit count size of the cypher block. +func (e Aes256CtsHmacSha96) GetCypherBlockBitLength() int { + return aes.BlockSize * 8 +} + +// StringToKey returns a key derived from the string provided. +func (e Aes256CtsHmacSha96) StringToKey(secret string, salt string, s2kparams string) ([]byte, error) { + return rfc3962.StringToKey(secret, salt, s2kparams, e) +} + +// RandomToKey returns a key from the bytes provided. +func (e Aes256CtsHmacSha96) RandomToKey(b []byte) []byte { + return rfc3961.RandomToKey(b) +} + +// EncryptData encrypts the data provided. +func (e Aes256CtsHmacSha96) EncryptData(key, data []byte) ([]byte, []byte, error) { + return rfc3962.EncryptData(key, data, e) +} + +// EncryptMessage encrypts the message provided and concatenates it with the integrity hash to create an encrypted message. +func (e Aes256CtsHmacSha96) EncryptMessage(key, message []byte, usage uint32) ([]byte, []byte, error) { + return rfc3962.EncryptMessage(key, message, usage, e) +} + +// DecryptData decrypts the data provided. +func (e Aes256CtsHmacSha96) DecryptData(key, data []byte) ([]byte, error) { + return rfc3962.DecryptData(key, data, e) +} + +// DecryptMessage decrypts the message provided and verifies the integrity of the message. +func (e Aes256CtsHmacSha96) DecryptMessage(key, ciphertext []byte, usage uint32) ([]byte, error) { + return rfc3962.DecryptMessage(key, ciphertext, usage, e) +} + +// DeriveKey derives a key from the protocol key based on the usage value. +func (e Aes256CtsHmacSha96) DeriveKey(protocolKey, usage []byte) ([]byte, error) { + return rfc3961.DeriveKey(protocolKey, usage, e) +} + +// DeriveRandom generates data needed for key generation. +func (e Aes256CtsHmacSha96) DeriveRandom(protocolKey, usage []byte) ([]byte, error) { + return rfc3961.DeriveRandom(protocolKey, usage, e) +} + +// VerifyIntegrity checks the integrity of the plaintext message. +func (e Aes256CtsHmacSha96) VerifyIntegrity(protocolKey, ct, pt []byte, usage uint32) bool { + return rfc3961.VerifyIntegrity(protocolKey, ct, pt, usage, e) +} + +// GetChecksumHash returns a keyed checksum hash of the bytes provided. +func (e Aes256CtsHmacSha96) GetChecksumHash(protocolKey, data []byte, usage uint32) ([]byte, error) { + return common.GetHash(data, protocolKey, common.GetUsageKc(usage), e) +} + +// VerifyChecksum compares the checksum of the message bytes is the same as the checksum provided. +func (e Aes256CtsHmacSha96) VerifyChecksum(protocolKey, data, chksum []byte, usage uint32) bool { + c, err := e.GetChecksumHash(protocolKey, data, usage) + if err != nil { + return false + } + return hmac.Equal(chksum, c) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes256-cts-hmac-sha384-192.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes256-cts-hmac-sha384-192.go new file mode 100644 index 0000000..562b078 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/aes256-cts-hmac-sha384-192.go @@ -0,0 +1,135 @@ +package crypto + +import ( + "crypto/aes" + "crypto/hmac" + "crypto/sha512" + "hash" + + "gopkg.in/jcmturner/gokrb5.v7/crypto/common" + "gopkg.in/jcmturner/gokrb5.v7/crypto/rfc8009" + "gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype" + "gopkg.in/jcmturner/gokrb5.v7/iana/etypeID" +) + +// RFC https://tools.ietf.org/html/rfc8009 + +// Aes256CtsHmacSha384192 implements Kerberos encryption type aes256-cts-hmac-sha384-192 +type Aes256CtsHmacSha384192 struct { +} + +// GetETypeID returns the EType ID number. +func (e Aes256CtsHmacSha384192) GetETypeID() int32 { + return etypeID.AES256_CTS_HMAC_SHA384_192 +} + +// GetHashID returns the checksum type ID number. +func (e Aes256CtsHmacSha384192) GetHashID() int32 { + return chksumtype.HMAC_SHA384_192_AES256 +} + +// GetKeyByteSize returns the number of bytes for key of this etype. +func (e Aes256CtsHmacSha384192) GetKeyByteSize() int { + return 192 / 8 +} + +// GetKeySeedBitLength returns the number of bits for the seed for key generation. +func (e Aes256CtsHmacSha384192) GetKeySeedBitLength() int { + return e.GetKeyByteSize() * 8 +} + +// GetHashFunc returns the hash function for this etype. +func (e Aes256CtsHmacSha384192) GetHashFunc() func() hash.Hash { + return sha512.New384 +} + +// GetMessageBlockByteSize returns the block size for the etype's messages. +func (e Aes256CtsHmacSha384192) GetMessageBlockByteSize() int { + return 1 +} + +// GetDefaultStringToKeyParams returns the default key derivation parameters in string form. +func (e Aes256CtsHmacSha384192) GetDefaultStringToKeyParams() string { + return "00008000" +} + +// GetConfounderByteSize returns the byte count for confounder to be used during cryptographic operations. +func (e Aes256CtsHmacSha384192) GetConfounderByteSize() int { + return aes.BlockSize +} + +// GetHMACBitLength returns the bit count size of the integrity hash. +func (e Aes256CtsHmacSha384192) GetHMACBitLength() int { + return 192 +} + +// GetCypherBlockBitLength returns the bit count size of the cypher block. +func (e Aes256CtsHmacSha384192) GetCypherBlockBitLength() int { + return aes.BlockSize * 8 +} + +// StringToKey returns a key derived from the string provided. +func (e Aes256CtsHmacSha384192) StringToKey(secret string, salt string, s2kparams string) ([]byte, error) { + saltp := rfc8009.GetSaltP(salt, "aes256-cts-hmac-sha384-192") + return rfc8009.StringToKey(secret, saltp, s2kparams, e) +} + +// RandomToKey returns a key from the bytes provided. +func (e Aes256CtsHmacSha384192) RandomToKey(b []byte) []byte { + return rfc8009.RandomToKey(b) +} + +// EncryptData encrypts the data provided. +func (e Aes256CtsHmacSha384192) EncryptData(key, data []byte) ([]byte, []byte, error) { + return rfc8009.EncryptData(key, data, e) +} + +// EncryptMessage encrypts the message provided and concatenates it with the integrity hash to create an encrypted message. +func (e Aes256CtsHmacSha384192) EncryptMessage(key, message []byte, usage uint32) ([]byte, []byte, error) { + return rfc8009.EncryptMessage(key, message, usage, e) +} + +// DecryptData decrypts the data provided. +func (e Aes256CtsHmacSha384192) DecryptData(key, data []byte) ([]byte, error) { + return rfc8009.DecryptData(key, data, e) +} + +// DecryptMessage decrypts the message provided and verifies the integrity of the message. +func (e Aes256CtsHmacSha384192) DecryptMessage(key, ciphertext []byte, usage uint32) ([]byte, error) { + return rfc8009.DecryptMessage(key, ciphertext, usage, e) +} + +// DeriveKey derives a key from the protocol key based on the usage value. +func (e Aes256CtsHmacSha384192) DeriveKey(protocolKey, usage []byte) ([]byte, error) { + return rfc8009.DeriveKey(protocolKey, usage, e), nil +} + +// DeriveRandom generates data needed for key generation. +func (e Aes256CtsHmacSha384192) DeriveRandom(protocolKey, usage []byte) ([]byte, error) { + return rfc8009.DeriveRandom(protocolKey, usage, e) +} + +// VerifyIntegrity checks the integrity of the ciphertext message. +// The HMAC is calculated over the cipher state concatenated with the +// AES output, instead of being calculated over the confounder and +// plaintext. This allows the message receiver to verify the +// integrity of the message before decrypting the message. +// Therefore the pt value to this interface method is not use. Pass any []byte. +func (e Aes256CtsHmacSha384192) VerifyIntegrity(protocolKey, ct, pt []byte, usage uint32) bool { + // We don't need ib just there for the interface + return rfc8009.VerifyIntegrity(protocolKey, ct, usage, e) +} + +// GetChecksumHash returns a keyed checksum hash of the bytes provided. +func (e Aes256CtsHmacSha384192) GetChecksumHash(protocolKey, data []byte, usage uint32) ([]byte, error) { + return common.GetHash(data, protocolKey, common.GetUsageKc(usage), e) +} + +// VerifyChecksum compares the checksum of the message bytes is the same as the checksum provided. +func (e Aes256CtsHmacSha384192) VerifyChecksum(protocolKey, data, chksum []byte, usage uint32) bool { + c, err := e.GetChecksumHash(protocolKey, data, usage) + if err != nil { + return false + } + return hmac.Equal(chksum, c) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/common/common.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/common/common.go new file mode 100644 index 0000000..96ae549 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/common/common.go @@ -0,0 +1,143 @@ +// Package common provides encryption methods common across encryption types +package common + +import ( + "bytes" + "crypto/hmac" + "encoding/binary" + "encoding/hex" + "errors" + "fmt" + + "gopkg.in/jcmturner/gokrb5.v7/crypto/etype" +) + +// ZeroPad pads bytes with zeros to nearest multiple of message size m. +func ZeroPad(b []byte, m int) ([]byte, error) { + if m <= 0 { + return nil, errors.New("Invalid message block size when padding") + } + if b == nil || len(b) == 0 { + return nil, errors.New("Data not valid to pad: Zero size") + } + if l := len(b) % m; l != 0 { + n := m - l + z := make([]byte, n) + b = append(b, z...) + } + return b, nil +} + +// PKCS7Pad pads bytes according to RFC 2315 to nearest multiple of message size m. +func PKCS7Pad(b []byte, m int) ([]byte, error) { + if m <= 0 { + return nil, errors.New("Invalid message block size when padding") + } + if b == nil || len(b) == 0 { + return nil, errors.New("Data not valid to pad: Zero size") + } + n := m - (len(b) % m) + pb := make([]byte, len(b)+n) + copy(pb, b) + copy(pb[len(b):], bytes.Repeat([]byte{byte(n)}, n)) + return pb, nil +} + +// PKCS7Unpad removes RFC 2315 padding from byes where message size is m. +func PKCS7Unpad(b []byte, m int) ([]byte, error) { + if m <= 0 { + return nil, errors.New("invalid message block size when unpadding") + } + if b == nil || len(b) == 0 { + return nil, errors.New("padded data not valid: Zero size") + } + if len(b)%m != 0 { + return nil, errors.New("padded data not valid: Not multiple of message block size") + } + c := b[len(b)-1] + n := int(c) + if n == 0 || n > len(b) { + return nil, errors.New("padded data not valid: Data may not have been padded") + } + for i := 0; i < n; i++ { + if b[len(b)-n+i] != c { + return nil, errors.New("padded data not valid") + } + } + return b[:len(b)-n], nil +} + +// GetHash generates the keyed hash value according to the etype's hash function. +func GetHash(pt, key []byte, usage []byte, etype etype.EType) ([]byte, error) { + k, err := etype.DeriveKey(key, usage) + if err != nil { + return nil, fmt.Errorf("unable to derive key for checksum: %v", err) + } + mac := hmac.New(etype.GetHashFunc(), k) + p := make([]byte, len(pt)) + copy(p, pt) + mac.Write(p) + return mac.Sum(nil)[:etype.GetHMACBitLength()/8], nil +} + +// GetChecksumHash returns a keyed checksum hash of the bytes provided. +func GetChecksumHash(b, key []byte, usage uint32, etype etype.EType) ([]byte, error) { + return GetHash(b, key, GetUsageKc(usage), etype) +} + +// GetIntegrityHash returns a keyed integrity hash of the bytes provided. +func GetIntegrityHash(b, key []byte, usage uint32, etype etype.EType) ([]byte, error) { + return GetHash(b, key, GetUsageKi(usage), etype) +} + +// VerifyChecksum compares the checksum of the msg bytes is the same as the checksum provided. +func VerifyChecksum(key, chksum, msg []byte, usage uint32, etype etype.EType) bool { + //The ciphertext output is the concatenation of the output of the basic + //encryption function E and a (possibly truncated) HMAC using the + //specified hash function H, both applied to the plaintext with a + //random confounder prefix and sufficient padding to bring it to a + //multiple of the message block size. When the HMAC is computed, the + //key is used in the protocol key form. + expectedMAC, _ := GetChecksumHash(msg, key, usage, etype) + return hmac.Equal(chksum, expectedMAC) +} + +// GetUsageKc returns the checksum key usage value for the usage number un. +// +// RFC 3961: The "well-known constant" used for the DK function is the key usage number, expressed as four octets in big-endian order, followed by one octet indicated below. +// +// Kc = DK(base-key, usage | 0x99); +func GetUsageKc(un uint32) []byte { + return getUsage(un, 0x99) +} + +// GetUsageKe returns the encryption key usage value for the usage number un +// +// RFC 3961: The "well-known constant" used for the DK function is the key usage number, expressed as four octets in big-endian order, followed by one octet indicated below. +// +// Ke = DK(base-key, usage | 0xAA); +func GetUsageKe(un uint32) []byte { + return getUsage(un, 0xAA) +} + +// GetUsageKi returns the integrity key usage value for the usage number un +// +// RFC 3961: The "well-known constant" used for the DK function is the key usage number, expressed as four octets in big-endian order, followed by one octet indicated below. +// +// Ki = DK(base-key, usage | 0x55); +func GetUsageKi(un uint32) []byte { + return getUsage(un, 0x55) +} + +func getUsage(un uint32, o byte) []byte { + var buf bytes.Buffer + binary.Write(&buf, binary.BigEndian, un) + return append(buf.Bytes(), o) +} + +// IterationsToS2Kparams converts the number of iterations as an integer to a string representation. +func IterationsToS2Kparams(i uint32) string { + b := make([]byte, 4, 4) + binary.BigEndian.PutUint32(b, i) + return hex.EncodeToString(b) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/crypto.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/crypto.go new file mode 100644 index 0000000..e04e968 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/crypto.go @@ -0,0 +1,175 @@ +// Package crypto implements cryptographic functions for Kerberos 5 implementation. +package crypto + +import ( + "encoding/hex" + "fmt" + + "gopkg.in/jcmturner/gokrb5.v7/crypto/etype" + "gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype" + "gopkg.in/jcmturner/gokrb5.v7/iana/etypeID" + "gopkg.in/jcmturner/gokrb5.v7/iana/patype" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +// GetEtype returns an instances of the required etype struct for the etype ID. +func GetEtype(id int32) (etype.EType, error) { + switch id { + case etypeID.AES128_CTS_HMAC_SHA1_96: + var et Aes128CtsHmacSha96 + return et, nil + case etypeID.AES256_CTS_HMAC_SHA1_96: + var et Aes256CtsHmacSha96 + return et, nil + case etypeID.AES128_CTS_HMAC_SHA256_128: + var et Aes128CtsHmacSha256128 + return et, nil + case etypeID.AES256_CTS_HMAC_SHA384_192: + var et Aes256CtsHmacSha384192 + return et, nil + case etypeID.DES3_CBC_SHA1_KD: + var et Des3CbcSha1Kd + return et, nil + case etypeID.RC4_HMAC: + var et RC4HMAC + return et, nil + default: + return nil, fmt.Errorf("unknown or unsupported EType: %d", id) + } +} + +// GetChksumEtype returns an instances of the required etype struct for the checksum ID. +func GetChksumEtype(id int32) (etype.EType, error) { + switch id { + case chksumtype.HMAC_SHA1_96_AES128: + var et Aes128CtsHmacSha96 + return et, nil + case chksumtype.HMAC_SHA1_96_AES256: + var et Aes256CtsHmacSha96 + return et, nil + case chksumtype.HMAC_SHA256_128_AES128: + var et Aes128CtsHmacSha256128 + return et, nil + case chksumtype.HMAC_SHA384_192_AES256: + var et Aes256CtsHmacSha384192 + return et, nil + case chksumtype.HMAC_SHA1_DES3_KD: + var et Des3CbcSha1Kd + return et, nil + case chksumtype.KERB_CHECKSUM_HMAC_MD5: + var et RC4HMAC + return et, nil + //case chksumtype.KERB_CHECKSUM_HMAC_MD5_UNSIGNED: + // var et RC4HMAC + // return et, nil + default: + return nil, fmt.Errorf("unknown or unsupported checksum type: %d", id) + } +} + +// GetKeyFromPassword generates an encryption key from the principal's password. +func GetKeyFromPassword(passwd string, cname types.PrincipalName, realm string, etypeID int32, pas types.PADataSequence) (types.EncryptionKey, etype.EType, error) { + var key types.EncryptionKey + et, err := GetEtype(etypeID) + if err != nil { + return key, et, fmt.Errorf("error getting encryption type: %v", err) + } + sk2p := et.GetDefaultStringToKeyParams() + var salt string + var paID int32 + for _, pa := range pas { + switch pa.PADataType { + case patype.PA_PW_SALT: + if paID > pa.PADataType { + continue + } + salt = string(pa.PADataValue) + case patype.PA_ETYPE_INFO: + if paID > pa.PADataType { + continue + } + var eti types.ETypeInfo + err := eti.Unmarshal(pa.PADataValue) + if err != nil { + return key, et, fmt.Errorf("error unmashaling PA Data to PA-ETYPE-INFO2: %v", err) + } + if etypeID != eti[0].EType { + et, err = GetEtype(eti[0].EType) + if err != nil { + return key, et, fmt.Errorf("error getting encryption type: %v", err) + } + } + salt = string(eti[0].Salt) + case patype.PA_ETYPE_INFO2: + if paID > pa.PADataType { + continue + } + var et2 types.ETypeInfo2 + err := et2.Unmarshal(pa.PADataValue) + if err != nil { + return key, et, fmt.Errorf("error unmashalling PA Data to PA-ETYPE-INFO2: %v", err) + } + if etypeID != et2[0].EType { + et, err = GetEtype(et2[0].EType) + if err != nil { + return key, et, fmt.Errorf("error getting encryption type: %v", err) + } + } + if len(et2[0].S2KParams) == 4 { + sk2p = hex.EncodeToString(et2[0].S2KParams) + } + salt = et2[0].Salt + } + } + if salt == "" { + salt = cname.GetSalt(realm) + } + k, err := et.StringToKey(passwd, salt, sk2p) + if err != nil { + return key, et, fmt.Errorf("error deriving key from string: %+v", err) + } + key = types.EncryptionKey{ + KeyType: etypeID, + KeyValue: k, + } + return key, et, nil +} + +// GetEncryptedData encrypts the data provided and returns and EncryptedData type. +// Pass a usage value of zero to use the key provided directly rather than deriving one. +func GetEncryptedData(plainBytes []byte, key types.EncryptionKey, usage uint32, kvno int) (types.EncryptedData, error) { + var ed types.EncryptedData + et, err := GetEtype(key.KeyType) + if err != nil { + return ed, fmt.Errorf("error getting etype: %v", err) + } + _, b, err := et.EncryptMessage(key.KeyValue, plainBytes, usage) + if err != nil { + return ed, err + } + + ed = types.EncryptedData{ + EType: key.KeyType, + Cipher: b, + KVNO: kvno, + } + return ed, nil +} + +// DecryptEncPart decrypts the EncryptedData. +func DecryptEncPart(ed types.EncryptedData, key types.EncryptionKey, usage uint32) ([]byte, error) { + return DecryptMessage(ed.Cipher, key, usage) +} + +// DecryptMessage decrypts the ciphertext and verifies the integrity. +func DecryptMessage(ciphertext []byte, key types.EncryptionKey, usage uint32) ([]byte, error) { + et, err := GetEtype(key.KeyType) + if err != nil { + return []byte{}, fmt.Errorf("error decrypting: %v", err) + } + b, err := et.DecryptMessage(key.KeyValue, ciphertext, usage) + if err != nil { + return nil, fmt.Errorf("error decrypting: %v", err) + } + return b, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/des3-cbc-sha1-kd.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/des3-cbc-sha1-kd.go new file mode 100644 index 0000000..db3a149 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/des3-cbc-sha1-kd.go @@ -0,0 +1,174 @@ +package crypto + +import ( + "crypto/des" + "crypto/hmac" + "crypto/sha1" + "errors" + "hash" + + "gopkg.in/jcmturner/gokrb5.v7/crypto/common" + "gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961" + "gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype" + "gopkg.in/jcmturner/gokrb5.v7/iana/etypeID" +) + +//RFC: 3961 Section 6.3 + +/* + des3-cbc-hmac-sha1-kd, hmac-sha1-des3-kd + ------------------------------------------------ + protocol key format 24 bytes, parity in low + bit of each + + key-generation seed 21 bytes + length + + hash function SHA-1 + + HMAC output size 160 bits + + message block size 8 bytes + + default string-to-key empty string + params + + encryption and triple-DES encrypt and + decryption functions decrypt, in outer-CBC + mode (cipher block size + 8 octets) + + key generation functions: + + random-to-key DES3random-to-key (see + below) + + string-to-key DES3string-to-key (see + below) + + The des3-cbc-hmac-sha1-kd encryption type is assigned the value + sixteen (16). The hmac-sha1-des3-kd checksum algorithm is assigned a + checksum type number of twelve (12)*/ + +// Des3CbcSha1Kd implements Kerberos encryption type des3-cbc-hmac-sha1-kd +type Des3CbcSha1Kd struct { +} + +// GetETypeID returns the EType ID number. +func (e Des3CbcSha1Kd) GetETypeID() int32 { + return etypeID.DES3_CBC_SHA1_KD +} + +// GetHashID returns the checksum type ID number. +func (e Des3CbcSha1Kd) GetHashID() int32 { + return chksumtype.HMAC_SHA1_DES3_KD +} + +// GetKeyByteSize returns the number of bytes for key of this etype. +func (e Des3CbcSha1Kd) GetKeyByteSize() int { + return 24 +} + +// GetKeySeedBitLength returns the number of bits for the seed for key generation. +func (e Des3CbcSha1Kd) GetKeySeedBitLength() int { + return 21 * 8 +} + +// GetHashFunc returns the hash function for this etype. +func (e Des3CbcSha1Kd) GetHashFunc() func() hash.Hash { + return sha1.New +} + +// GetMessageBlockByteSize returns the block size for the etype's messages. +func (e Des3CbcSha1Kd) GetMessageBlockByteSize() int { + //For traditional CBC mode with padding, it would be the underlying cipher's block size + return des.BlockSize +} + +// GetDefaultStringToKeyParams returns the default key derivation parameters in string form. +func (e Des3CbcSha1Kd) GetDefaultStringToKeyParams() string { + var s string + return s +} + +// GetConfounderByteSize returns the byte count for confounder to be used during cryptographic operations. +func (e Des3CbcSha1Kd) GetConfounderByteSize() int { + return des.BlockSize +} + +// GetHMACBitLength returns the bit count size of the integrity hash. +func (e Des3CbcSha1Kd) GetHMACBitLength() int { + return e.GetHashFunc()().Size() * 8 +} + +// GetCypherBlockBitLength returns the bit count size of the cypher block. +func (e Des3CbcSha1Kd) GetCypherBlockBitLength() int { + return des.BlockSize * 8 +} + +// StringToKey returns a key derived from the string provided. +func (e Des3CbcSha1Kd) StringToKey(secret string, salt string, s2kparams string) ([]byte, error) { + if s2kparams != "" { + return []byte{}, errors.New("s2kparams must be an empty string") + } + return rfc3961.DES3StringToKey(secret, salt, e) +} + +// RandomToKey returns a key from the bytes provided. +func (e Des3CbcSha1Kd) RandomToKey(b []byte) []byte { + return rfc3961.DES3RandomToKey(b) +} + +// DeriveRandom generates data needed for key generation. +func (e Des3CbcSha1Kd) DeriveRandom(protocolKey, usage []byte) ([]byte, error) { + r, err := rfc3961.DeriveRandom(protocolKey, usage, e) + return r, err +} + +// DeriveKey derives a key from the protocol key based on the usage value. +func (e Des3CbcSha1Kd) DeriveKey(protocolKey, usage []byte) ([]byte, error) { + r, err := e.DeriveRandom(protocolKey, usage) + if err != nil { + return nil, err + } + return e.RandomToKey(r), nil +} + +// EncryptData encrypts the data provided. +func (e Des3CbcSha1Kd) EncryptData(key, data []byte) ([]byte, []byte, error) { + return rfc3961.DES3EncryptData(key, data, e) +} + +// EncryptMessage encrypts the message provided and concatenates it with the integrity hash to create an encrypted message. +func (e Des3CbcSha1Kd) EncryptMessage(key, message []byte, usage uint32) ([]byte, []byte, error) { + return rfc3961.DES3EncryptMessage(key, message, usage, e) +} + +// DecryptData decrypts the data provided. +func (e Des3CbcSha1Kd) DecryptData(key, data []byte) ([]byte, error) { + return rfc3961.DES3DecryptData(key, data, e) +} + +// DecryptMessage decrypts the message provided and verifies the integrity of the message. +func (e Des3CbcSha1Kd) DecryptMessage(key, ciphertext []byte, usage uint32) ([]byte, error) { + return rfc3961.DES3DecryptMessage(key, ciphertext, usage, e) +} + +// VerifyIntegrity checks the integrity of the plaintext message. +func (e Des3CbcSha1Kd) VerifyIntegrity(protocolKey, ct, pt []byte, usage uint32) bool { + return rfc3961.VerifyIntegrity(protocolKey, ct, pt, usage, e) +} + +// GetChecksumHash returns a keyed checksum hash of the bytes provided. +func (e Des3CbcSha1Kd) GetChecksumHash(protocolKey, data []byte, usage uint32) ([]byte, error) { + return common.GetHash(data, protocolKey, common.GetUsageKc(usage), e) +} + +// VerifyChecksum compares the checksum of the message bytes is the same as the checksum provided. +func (e Des3CbcSha1Kd) VerifyChecksum(protocolKey, data, chksum []byte, usage uint32) bool { + c, err := e.GetChecksumHash(protocolKey, data, usage) + if err != nil { + return false + } + return hmac.Equal(chksum, c) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/etype/etype.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/etype/etype.go new file mode 100644 index 0000000..ee7510e --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/etype/etype.go @@ -0,0 +1,29 @@ +// Package etype provides the Kerberos Encryption Type interface +package etype + +import "hash" + +// EType is the interface defining the Encryption Type. +type EType interface { + GetETypeID() int32 + GetHashID() int32 + GetKeyByteSize() int + GetKeySeedBitLength() int // key-generation seed length, k + GetDefaultStringToKeyParams() string // default string-to-key parameters (s2kparams) + StringToKey(string, salt, s2kparams string) ([]byte, error) // string-to-key (UTF-8 string, UTF-8 string, opaque)->(protocol-key) + RandomToKey(b []byte) []byte // random-to-key (bitstring[K])->(protocol-key) + GetHMACBitLength() int // HMAC output size, h + GetMessageBlockByteSize() int // message block size, m + EncryptData(key, data []byte) ([]byte, []byte, error) // E function - encrypt (specific-key, state, octet string)->(state, octet string) + EncryptMessage(key, message []byte, usage uint32) ([]byte, []byte, error) + DecryptData(key, data []byte) ([]byte, error) // D function + DecryptMessage(key, ciphertext []byte, usage uint32) ([]byte, error) + GetCypherBlockBitLength() int // cipher block size, c + GetConfounderByteSize() int // This is the same as the cipher block size but in bytes. + DeriveKey(protocolKey, usage []byte) ([]byte, error) // DK key-derivation (protocol-key, integer)->(specific-key) + DeriveRandom(protocolKey, usage []byte) ([]byte, error) // DR pseudo-random (protocol-key, octet-string)->(octet-string) + VerifyIntegrity(protocolKey, ct, pt []byte, usage uint32) bool + GetChecksumHash(protocolKey, data []byte, usage uint32) ([]byte, error) + VerifyChecksum(protocolKey, data, chksum []byte, usage uint32) bool + GetHashFunc() func() hash.Hash +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rc4-hmac.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rc4-hmac.go new file mode 100644 index 0000000..9df55ee --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rc4-hmac.go @@ -0,0 +1,135 @@ +package crypto + +import ( + "bytes" + "crypto/hmac" + "crypto/md5" + "hash" + "io" + + "golang.org/x/crypto/md4" + "gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961" + "gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757" + "gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype" + "gopkg.in/jcmturner/gokrb5.v7/iana/etypeID" +) + +//http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/sun/security/krb5/internal/crypto/dk/ArcFourCrypto.java#ArcFourCrypto.encrypt%28byte%5B%5D%2Cint%2Cbyte%5B%5D%2Cbyte%5B%5D%2Cbyte%5B%5D%2Cint%2Cint%29 + +// RC4HMAC implements Kerberos encryption type aes256-cts-hmac-sha1-96 +type RC4HMAC struct { +} + +// GetETypeID returns the EType ID number. +func (e RC4HMAC) GetETypeID() int32 { + return etypeID.RC4_HMAC +} + +// GetHashID returns the checksum type ID number. +func (e RC4HMAC) GetHashID() int32 { + return chksumtype.KERB_CHECKSUM_HMAC_MD5 +} + +// GetKeyByteSize returns the number of bytes for key of this etype. +func (e RC4HMAC) GetKeyByteSize() int { + return 16 +} + +// GetKeySeedBitLength returns the number of bits for the seed for key generation. +func (e RC4HMAC) GetKeySeedBitLength() int { + return e.GetKeyByteSize() * 8 +} + +// GetHashFunc returns the hash function for this etype. +func (e RC4HMAC) GetHashFunc() func() hash.Hash { + return md5.New +} + +// GetMessageBlockByteSize returns the block size for the etype's messages. +func (e RC4HMAC) GetMessageBlockByteSize() int { + return 1 +} + +// GetDefaultStringToKeyParams returns the default key derivation parameters in string form. +func (e RC4HMAC) GetDefaultStringToKeyParams() string { + return "" +} + +// GetConfounderByteSize returns the byte count for confounder to be used during cryptographic operations. +func (e RC4HMAC) GetConfounderByteSize() int { + return 8 +} + +// GetHMACBitLength returns the bit count size of the integrity hash. +func (e RC4HMAC) GetHMACBitLength() int { + return md5.Size * 8 +} + +// GetCypherBlockBitLength returns the bit count size of the cypher block. +func (e RC4HMAC) GetCypherBlockBitLength() int { + return 8 // doesn't really apply +} + +// StringToKey returns a key derived from the string provided. +func (e RC4HMAC) StringToKey(secret string, salt string, s2kparams string) ([]byte, error) { + return rfc4757.StringToKey(secret) +} + +// RandomToKey returns a key from the bytes provided. +func (e RC4HMAC) RandomToKey(b []byte) []byte { + r := bytes.NewReader(b) + h := md4.New() + io.Copy(h, r) + return h.Sum(nil) +} + +// EncryptData encrypts the data provided. +func (e RC4HMAC) EncryptData(key, data []byte) ([]byte, []byte, error) { + b, err := rfc4757.EncryptData(key, data, e) + return []byte{}, b, err +} + +// EncryptMessage encrypts the message provided and concatenates it with the integrity hash to create an encrypted message. +func (e RC4HMAC) EncryptMessage(key, message []byte, usage uint32) ([]byte, []byte, error) { + b, err := rfc4757.EncryptMessage(key, message, usage, false, e) + return []byte{}, b, err +} + +// DecryptData decrypts the data provided. +func (e RC4HMAC) DecryptData(key, data []byte) ([]byte, error) { + return rfc4757.DecryptData(key, data, e) +} + +// DecryptMessage decrypts the message provided and verifies the integrity of the message. +func (e RC4HMAC) DecryptMessage(key, ciphertext []byte, usage uint32) ([]byte, error) { + return rfc4757.DecryptMessage(key, ciphertext, usage, false, e) +} + +// DeriveKey derives a key from the protocol key based on the usage value. +func (e RC4HMAC) DeriveKey(protocolKey, usage []byte) ([]byte, error) { + return rfc4757.HMAC(protocolKey, usage), nil +} + +// DeriveRandom generates data needed for key generation. +func (e RC4HMAC) DeriveRandom(protocolKey, usage []byte) ([]byte, error) { + return rfc3961.DeriveRandom(protocolKey, usage, e) +} + +// VerifyIntegrity checks the integrity of the plaintext message. +func (e RC4HMAC) VerifyIntegrity(protocolKey, ct, pt []byte, usage uint32) bool { + return rfc4757.VerifyIntegrity(protocolKey, pt, ct, e) +} + +// GetChecksumHash returns a keyed checksum hash of the bytes provided. +func (e RC4HMAC) GetChecksumHash(protocolKey, data []byte, usage uint32) ([]byte, error) { + return rfc4757.Checksum(protocolKey, usage, data) +} + +// VerifyChecksum compares the checksum of the message bytes is the same as the checksum provided. +func (e RC4HMAC) VerifyChecksum(protocolKey, data, chksum []byte, usage uint32) bool { + checksum, err := rfc4757.Checksum(protocolKey, usage, data) + if err != nil { + return false + } + return hmac.Equal(checksum, chksum) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/encryption.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/encryption.go new file mode 100644 index 0000000..6f550fa --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/encryption.go @@ -0,0 +1,125 @@ +// Package rfc3961 provides encryption and checksum methods as specified in RFC 3961 +package rfc3961 + +import ( + "crypto/cipher" + "crypto/des" + "crypto/hmac" + "crypto/rand" + "errors" + "fmt" + + "gopkg.in/jcmturner/gokrb5.v7/crypto/common" + "gopkg.in/jcmturner/gokrb5.v7/crypto/etype" +) + +// DES3EncryptData encrypts the data provided using DES3 and methods specific to the etype provided. +func DES3EncryptData(key, data []byte, e etype.EType) ([]byte, []byte, error) { + if len(key) != e.GetKeyByteSize() { + return nil, nil, fmt.Errorf("incorrect keysize: expected: %v actual: %v", e.GetKeyByteSize(), len(key)) + } + data, _ = common.ZeroPad(data, e.GetMessageBlockByteSize()) + + block, err := des.NewTripleDESCipher(key) + if err != nil { + return nil, nil, fmt.Errorf("error creating cipher: %v", err) + } + + //RFC 3961: initial cipher state All bits zero + ivz := make([]byte, des.BlockSize) + + ct := make([]byte, len(data)) + mode := cipher.NewCBCEncrypter(block, ivz) + mode.CryptBlocks(ct, data) + return ct[len(ct)-e.GetMessageBlockByteSize():], ct, nil +} + +// DES3EncryptMessage encrypts the message provided using DES3 and methods specific to the etype provided. +// The encrypted data is concatenated with its integrity hash to create an encrypted message. +func DES3EncryptMessage(key, message []byte, usage uint32, e etype.EType) ([]byte, []byte, error) { + //confounder + c := make([]byte, e.GetConfounderByteSize()) + _, err := rand.Read(c) + if err != nil { + return []byte{}, []byte{}, fmt.Errorf("could not generate random confounder: %v", err) + } + plainBytes := append(c, message...) + plainBytes, _ = common.ZeroPad(plainBytes, e.GetMessageBlockByteSize()) + + // Derive key for encryption from usage + var k []byte + if usage != 0 { + k, err = e.DeriveKey(key, common.GetUsageKe(usage)) + if err != nil { + return []byte{}, []byte{}, fmt.Errorf("error deriving key for encryption: %v", err) + } + } + + iv, b, err := e.EncryptData(k, plainBytes) + if err != nil { + return iv, b, fmt.Errorf("error encrypting data: %v", err) + } + + // Generate and append integrity hash + ih, err := common.GetIntegrityHash(plainBytes, key, usage, e) + if err != nil { + return iv, b, fmt.Errorf("error encrypting data: %v", err) + } + b = append(b, ih...) + return iv, b, nil +} + +// DES3DecryptData decrypts the data provided using DES3 and methods specific to the etype provided. +func DES3DecryptData(key, data []byte, e etype.EType) ([]byte, error) { + if len(key) != e.GetKeyByteSize() { + return []byte{}, fmt.Errorf("incorrect keysize: expected: %v actual: %v", e.GetKeyByteSize(), len(key)) + } + + if len(data) < des.BlockSize || len(data)%des.BlockSize != 0 { + return []byte{}, errors.New("ciphertext is not a multiple of the block size") + } + block, err := des.NewTripleDESCipher(key) + if err != nil { + return []byte{}, fmt.Errorf("error creating cipher: %v", err) + } + pt := make([]byte, len(data)) + ivz := make([]byte, des.BlockSize) + mode := cipher.NewCBCDecrypter(block, ivz) + mode.CryptBlocks(pt, data) + return pt, nil +} + +// DES3DecryptMessage decrypts the message provided using DES3 and methods specific to the etype provided. +// The integrity of the message is also verified. +func DES3DecryptMessage(key, ciphertext []byte, usage uint32, e etype.EType) ([]byte, error) { + //Derive the key + k, err := e.DeriveKey(key, common.GetUsageKe(usage)) + if err != nil { + return nil, fmt.Errorf("error deriving key: %v", err) + } + // Strip off the checksum from the end + b, err := e.DecryptData(k, ciphertext[:len(ciphertext)-e.GetHMACBitLength()/8]) + if err != nil { + return nil, fmt.Errorf("error decrypting: %v", err) + } + //Verify checksum + if !e.VerifyIntegrity(key, ciphertext, b, usage) { + return nil, errors.New("error decrypting: integrity verification failed") + } + //Remove the confounder bytes + return b[e.GetConfounderByteSize():], nil +} + +// VerifyIntegrity verifies the integrity of cipertext bytes ct. +func VerifyIntegrity(key, ct, pt []byte, usage uint32, etype etype.EType) bool { + //The ciphertext output is the concatenation of the output of the basic + //encryption function E and a (possibly truncated) HMAC using the + //specified hash function H, both applied to the plaintext with a + //random confounder prefix and sufficient padding to bring it to a + //multiple of the message block size. When the HMAC is computed, the + //key is used in the protocol key form. + h := make([]byte, etype.GetHMACBitLength()/8) + copy(h, ct[len(ct)-etype.GetHMACBitLength()/8:]) + expectedMAC, _ := common.GetIntegrityHash(pt, key, usage, etype) + return hmac.Equal(h, expectedMAC) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/keyDerivation.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/keyDerivation.go new file mode 100644 index 0000000..8c637a2 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/keyDerivation.go @@ -0,0 +1,178 @@ +package rfc3961 + +import ( + "bytes" + + "gopkg.in/jcmturner/gokrb5.v7/crypto/etype" +) + +const ( + prfconstant = "prf" +) + +// DeriveRandom implements the RFC 3961 defined function: DR(Key, Constant) = k-truncate(E(Key, Constant, initial-cipher-state)). +// +// key: base key or protocol key. Likely to be a key from a keytab file. +// +// usage: a constant. +// +// n: block size in bits (not bytes) - note if you use something like aes.BlockSize this is in bytes. +// +// k: key length / key seed length in bits. Eg. for AES256 this value is 256. +// +// e: the encryption etype function to use. +func DeriveRandom(key, usage []byte, e etype.EType) ([]byte, error) { + n := e.GetCypherBlockBitLength() + k := e.GetKeySeedBitLength() + //Ensure the usage constant is at least the size of the cypher block size. Pass it through the nfold algorithm that will "stretch" it if needs be. + nFoldUsage := Nfold(usage, n) + //k-truncate implemented by creating a byte array the size of k (k is in bits hence /8) + out := make([]byte, k/8) + + /*If the output of E is shorter than k bits, it is fed back into the encryption as many times as necessary. + The construct is as follows (where | indicates concatenation): + + K1 = E(Key, n-fold(Constant), initial-cipher-state) + K2 = E(Key, K1, initial-cipher-state) + K3 = E(Key, K2, initial-cipher-state) + K4 = ... + + DR(Key, Constant) = k-truncate(K1 | K2 | K3 | K4 ...)*/ + _, K, err := e.EncryptData(key, nFoldUsage) + if err != nil { + return out, err + } + for i := copy(out, K); i < len(out); { + _, K, _ = e.EncryptData(key, K) + i = i + copy(out[i:], K) + } + return out, nil +} + +// DeriveKey derives a key from the protocol key based on the usage and the etype's specific methods. +func DeriveKey(protocolKey, usage []byte, e etype.EType) ([]byte, error) { + r, err := e.DeriveRandom(protocolKey, usage) + if err != nil { + return nil, err + } + return e.RandomToKey(r), nil +} + +// RandomToKey returns a key from the bytes provided according to the definition in RFC 3961. +func RandomToKey(b []byte) []byte { + return b +} + +// DES3RandomToKey returns a key from the bytes provided according to the definition in RFC 3961 for DES3 etypes. +func DES3RandomToKey(b []byte) []byte { + r := fixWeakKey(stretch56Bits(b[:7])) + r2 := fixWeakKey(stretch56Bits(b[7:14])) + r = append(r, r2...) + r3 := fixWeakKey(stretch56Bits(b[14:21])) + r = append(r, r3...) + return r +} + +// DES3StringToKey returns a key derived from the string provided according to the definition in RFC 3961 for DES3 etypes. +func DES3StringToKey(secret, salt string, e etype.EType) ([]byte, error) { + s := secret + salt + tkey := e.RandomToKey(Nfold([]byte(s), e.GetKeySeedBitLength())) + return e.DeriveKey(tkey, []byte("kerberos")) +} + +// PseudoRandom function as defined in RFC 3961 +func PseudoRandom(key, b []byte, e etype.EType) ([]byte, error) { + h := e.GetHashFunc()() + h.Write(b) + tmp := h.Sum(nil)[:e.GetMessageBlockByteSize()] + k, err := e.DeriveKey(key, []byte(prfconstant)) + if err != nil { + return []byte{}, err + } + _, prf, err := e.EncryptData(k, tmp) + if err != nil { + return []byte{}, err + } + return prf, nil +} + +func stretch56Bits(b []byte) []byte { + d := make([]byte, len(b), len(b)) + copy(d, b) + var lb byte + for i, v := range d { + bv, nb := calcEvenParity(v) + d[i] = nb + if bv != 0 { + lb = lb | (1 << uint(i+1)) + } else { + lb = lb &^ (1 << uint(i+1)) + } + } + _, lb = calcEvenParity(lb) + d = append(d, lb) + return d +} + +func calcEvenParity(b byte) (uint8, uint8) { + lowestbit := b & 0x01 + // c counter of 1s in the first 7 bits of the byte + var c int + // Iterate over the highest 7 bits (hence p starts at 1 not zero) and count the 1s. + for p := 1; p < 8; p++ { + v := b & (1 << uint(p)) + if v != 0 { + c++ + } + } + if c%2 == 0 { + //Even number of 1s so set parity to 1 + b = b | 1 + } else { + //Odd number of 1s so set parity to 0 + b = b &^ 1 + } + return lowestbit, b +} + +func fixWeakKey(b []byte) []byte { + if weak(b) { + b[7] ^= 0xF0 + } + return b +} + +func weak(b []byte) bool { + // weak keys from https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-67r1.pdf + weakKeys := [4][]byte{ + {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}, + {0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE}, + {0xE0, 0xE0, 0xE0, 0xE0, 0xF1, 0xF1, 0xF1, 0xF1}, + {0x1F, 0x1F, 0x1F, 0x1F, 0x0E, 0x0E, 0x0E, 0x0E}, + } + semiWeakKeys := [12][]byte{ + {0x01, 0x1F, 0x01, 0x1F, 0x01, 0x0E, 0x01, 0x0E}, + {0x1F, 0x01, 0x1F, 0x01, 0x0E, 0x01, 0x0E, 0x01}, + {0x01, 0xE0, 0x01, 0xE0, 0x01, 0xF1, 0x01, 0xF1}, + {0xE0, 0x01, 0xE0, 0x01, 0xF1, 0x01, 0xF1, 0x01}, + {0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE}, + {0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01}, + {0x1F, 0xE0, 0x1F, 0xE0, 0x0E, 0xF1, 0x0E, 0xF1}, + {0xE0, 0x1F, 0xE0, 0x1F, 0xF1, 0x0E, 0xF1, 0x0E}, + {0x1F, 0xFE, 0x1F, 0xFE, 0x0E, 0xFE, 0x0E, 0xFE}, + {0xFE, 0x1F, 0xFE, 0x1F, 0xFE, 0x0E, 0xFE, 0x0E}, + {0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1, 0xFE}, + {0xFE, 0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1}, + } + for _, k := range weakKeys { + if bytes.Equal(b, k) { + return true + } + } + for _, k := range semiWeakKeys { + if bytes.Equal(b, k) { + return true + } + } + return false +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/nfold.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/nfold.go new file mode 100644 index 0000000..779d1c6 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961/nfold.go @@ -0,0 +1,128 @@ +package rfc3961 + +/* +Implementation of the n-fold algorithm as defined in RFC 3961. + +n-fold is an algorithm that takes m input bits and "stretches" them +to form n output bits with equal contribution from each input bit to +the output, as described in [Blumenthal96]: + +We first define a primitive called n-folding, which takes a +variable-length input block and produces a fixed-length output +sequence. The intent is to give each input bit approximately +equal weight in determining the value of each output bit. Note +that whenever we need to treat a string of octets as a number, the +assumed representation is Big-Endian -- Most Significant Byte +first. + +To n-fold a number X, replicate the input value to a length that +is the least common multiple of n and the length of X. Before +each repetition, the input is rotated to the right by 13 bit +positions. The successive n-bit chunks are added together using +1's-complement addition (that is, with end-around carry) to yield +a n-bit result.... +*/ + +/* Credits +This golang implementation of nfold used the following project for help with implementation detail. +Although their source is in java it was helpful as a reference implementation of the RFC. +You can find the source code of their open source project along with license information below. +We acknowledge and are grateful to these developers for their contributions to open source + +Project: Apache Directory (http://http://directory.apache.org/) +https://svn.apache.org/repos/asf/directory/apacheds/tags/1.5.1/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/crypto/encryption/NFold.java +License: http://www.apache.org/licenses/LICENSE-2.0 +*/ + +// Nfold expands the key to ensure it is not smaller than one cipher block. +// Defined in RFC 3961. +// +// m input bytes that will be "stretched" to the least common multiple of n bits and the bit length of m. +func Nfold(m []byte, n int) []byte { + k := len(m) * 8 + + //Get the lowest common multiple of the two bit sizes + lcm := lcm(n, k) + relicate := lcm / k + var sumBytes []byte + + for i := 0; i < relicate; i++ { + rotation := 13 * i + sumBytes = append(sumBytes, rotateRight(m, rotation)...) + } + + nfold := make([]byte, n/8) + sum := make([]byte, n/8) + for i := 0; i < lcm/n; i++ { + for j := 0; j < n/8; j++ { + sum[j] = sumBytes[j+(i*len(sum))] + } + nfold = onesComplementAddition(nfold, sum) + } + return nfold +} + +func onesComplementAddition(n1, n2 []byte) []byte { + numBits := len(n1) * 8 + out := make([]byte, numBits/8) + carry := 0 + for i := numBits - 1; i > -1; i-- { + n1b := getBit(&n1, i) + n2b := getBit(&n2, i) + s := n1b + n2b + carry + + if s == 0 || s == 1 { + setBit(&out, i, s) + carry = 0 + } else if s == 2 { + carry = 1 + } else if s == 3 { + setBit(&out, i, 1) + carry = 1 + } + } + if carry == 1 { + carryArray := make([]byte, len(n1)) + carryArray[len(carryArray)-1] = 1 + out = onesComplementAddition(out, carryArray) + } + return out +} + +func rotateRight(b []byte, step int) []byte { + out := make([]byte, len(b)) + bitLen := len(b) * 8 + for i := 0; i < bitLen; i++ { + v := getBit(&b, i) + setBit(&out, (i+step)%bitLen, v) + } + return out +} + +func lcm(x, y int) int { + return (x * y) / gcd(x, y) +} + +func gcd(x, y int) int { + for y != 0 { + x, y = y, x%y + } + return x +} + +func getBit(b *[]byte, p int) int { + pByte := p / 8 + pBit := uint(p % 8) + vByte := (*b)[pByte] + vInt := int(vByte >> (8 - (pBit + 1)) & 0x0001) + return vInt +} + +func setBit(b *[]byte, p, v int) { + pByte := p / 8 + pBit := uint(p % 8) + oldByte := (*b)[pByte] + var newByte byte + newByte = byte(v<<(8-(pBit+1))) | oldByte + (*b)[pByte] = newByte +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3962/encryption.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3962/encryption.go new file mode 100644 index 0000000..2be2fde --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3962/encryption.go @@ -0,0 +1,89 @@ +// Package rfc3962 provides encryption and checksum methods as specified in RFC 3962 +package rfc3962 + +import ( + "crypto/rand" + "errors" + "fmt" + + "gopkg.in/jcmturner/aescts.v1" + "gopkg.in/jcmturner/gokrb5.v7/crypto/common" + "gopkg.in/jcmturner/gokrb5.v7/crypto/etype" +) + +// EncryptData encrypts the data provided using methods specific to the etype provided as defined in RFC 3962. +func EncryptData(key, data []byte, e etype.EType) ([]byte, []byte, error) { + if len(key) != e.GetKeyByteSize() { + return []byte{}, []byte{}, fmt.Errorf("incorrect keysize: expected: %v actual: %v", e.GetKeyByteSize(), len(key)) + } + ivz := make([]byte, e.GetCypherBlockBitLength()/8) + return aescts.Encrypt(key, ivz, data) +} + +// EncryptMessage encrypts the message provided using the methods specific to the etype provided as defined in RFC 3962. +// The encrypted data is concatenated with its integrity hash to create an encrypted message. +func EncryptMessage(key, message []byte, usage uint32, e etype.EType) ([]byte, []byte, error) { + if len(key) != e.GetKeyByteSize() { + return []byte{}, []byte{}, fmt.Errorf("incorrect keysize: expected: %v actual: %v", e.GetKeyByteSize(), len(key)) + } + //confounder + c := make([]byte, e.GetConfounderByteSize()) + _, err := rand.Read(c) + if err != nil { + return []byte{}, []byte{}, fmt.Errorf("could not generate random confounder: %v", err) + } + plainBytes := append(c, message...) + + // Derive key for encryption from usage + var k []byte + if usage != 0 { + k, err = e.DeriveKey(key, common.GetUsageKe(usage)) + if err != nil { + return []byte{}, []byte{}, fmt.Errorf("error deriving key for encryption: %v", err) + } + } + + // Encrypt the data + iv, b, err := e.EncryptData(k, plainBytes) + if err != nil { + return iv, b, fmt.Errorf("error encrypting data: %v", err) + } + + // Generate and append integrity hash + ih, err := common.GetIntegrityHash(plainBytes, key, usage, e) + if err != nil { + return iv, b, fmt.Errorf("error encrypting data: %v", err) + } + b = append(b, ih...) + return iv, b, nil +} + +// DecryptData decrypts the data provided using the methods specific to the etype provided as defined in RFC 3962. +func DecryptData(key, data []byte, e etype.EType) ([]byte, error) { + if len(key) != e.GetKeyByteSize() { + return []byte{}, fmt.Errorf("incorrect keysize: expected: %v actual: %v", e.GetKeyByteSize(), len(key)) + } + ivz := make([]byte, e.GetCypherBlockBitLength()/8) + return aescts.Decrypt(key, ivz, data) +} + +// DecryptMessage decrypts the message provided using the methods specific to the etype provided as defined in RFC 3962. +// The integrity of the message is also verified. +func DecryptMessage(key, ciphertext []byte, usage uint32, e etype.EType) ([]byte, error) { + //Derive the key + k, err := e.DeriveKey(key, common.GetUsageKe(usage)) + if err != nil { + return nil, fmt.Errorf("error deriving key: %v", err) + } + // Strip off the checksum from the end + b, err := e.DecryptData(k, ciphertext[:len(ciphertext)-e.GetHMACBitLength()/8]) + if err != nil { + return nil, err + } + //Verify checksum + if !e.VerifyIntegrity(key, ciphertext, b, usage) { + return nil, errors.New("integrity verification failed") + } + //Remove the confounder bytes + return b[e.GetConfounderByteSize():], nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3962/keyDerivation.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3962/keyDerivation.go new file mode 100644 index 0000000..a5f45c1 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3962/keyDerivation.go @@ -0,0 +1,58 @@ +package rfc3962 + +import ( + "encoding/binary" + "encoding/hex" + "errors" + + "github.com/jcmturner/gofork/x/crypto/pbkdf2" + "gopkg.in/jcmturner/gokrb5.v7/crypto/etype" +) + +const ( + s2kParamsZero = 4294967296 +) + +// StringToKey returns a key derived from the string provided according to the definition in RFC 3961. +func StringToKey(secret, salt, s2kparams string, e etype.EType) ([]byte, error) { + i, err := S2KparamsToItertions(s2kparams) + if err != nil { + return nil, err + } + return StringToKeyIter(secret, salt, i, e) +} + +// StringToPBKDF2 generates an encryption key from a pass phrase and salt string using the PBKDF2 function from PKCS #5 v2.0 +func StringToPBKDF2(secret, salt string, iterations int64, e etype.EType) []byte { + return pbkdf2.Key64([]byte(secret), []byte(salt), iterations, int64(e.GetKeyByteSize()), e.GetHashFunc()) +} + +// StringToKeyIter returns a key derived from the string provided according to the definition in RFC 3961. +func StringToKeyIter(secret, salt string, iterations int64, e etype.EType) ([]byte, error) { + tkey := e.RandomToKey(StringToPBKDF2(secret, salt, iterations, e)) + return e.DeriveKey(tkey, []byte("kerberos")) +} + +// S2KparamsToItertions converts the string representation of iterations to an integer +func S2KparamsToItertions(s2kparams string) (int64, error) { + //process s2kparams string + //The parameter string is four octets indicating an unsigned + //number in big-endian order. This is the number of iterations to be + //performed. If the value is 00 00 00 00, the number of iterations to + //be performed is 4,294,967,296 (2**32). + var i uint32 + if len(s2kparams) != 8 { + return int64(s2kParamsZero), errors.New("invalid s2kparams length") + } + b, err := hex.DecodeString(s2kparams) + if err != nil { + return int64(s2kParamsZero), errors.New("invalid s2kparams, cannot decode string to bytes") + } + i = binary.BigEndian.Uint32(b) + //buf := bytes.NewBuffer(b) + //err = binary.Read(buf, binary.BigEndian, &i) + if err != nil { + return int64(s2kParamsZero), errors.New("invalid s2kparams, cannot convert to big endian int32") + } + return int64(i), nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/checksum.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/checksum.go new file mode 100644 index 0000000..45276e9 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/checksum.go @@ -0,0 +1,40 @@ +package rfc4757 + +import ( + "bytes" + "crypto/hmac" + "crypto/md5" + "io" +) + +// Checksum returns a hash of the data in accordance with RFC 4757 +func Checksum(key []byte, usage uint32, data []byte) ([]byte, error) { + // Create hashing key + s := append([]byte(`signaturekey`), byte(0x00)) //includes zero octet at end + mac := hmac.New(md5.New, key) + mac.Write(s) + Ksign := mac.Sum(nil) + + // Format data + tb := UsageToMSMsgType(usage) + p := append(tb, data...) + h := md5.New() + rb := bytes.NewReader(p) + _, err := io.Copy(h, rb) + if err != nil { + return []byte{}, err + } + tmp := h.Sum(nil) + + // Generate HMAC + mac = hmac.New(md5.New, Ksign) + mac.Write(tmp) + return mac.Sum(nil), nil +} + +// HMAC returns a keyed MD5 checksum of the data +func HMAC(key []byte, data []byte) []byte { + mac := hmac.New(md5.New, key) + mac.Write(data) + return mac.Sum(nil) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/encryption.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/encryption.go new file mode 100644 index 0000000..0ec8b99 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/encryption.go @@ -0,0 +1,80 @@ +// Package rfc4757 provides encryption and checksum methods as specified in RFC 4757 +package rfc4757 + +import ( + "crypto/hmac" + "crypto/rand" + "crypto/rc4" + "errors" + "fmt" + + "gopkg.in/jcmturner/gokrb5.v7/crypto/etype" +) + +// EncryptData encrypts the data provided using methods specific to the etype provided as defined in RFC 4757. +func EncryptData(key, data []byte, e etype.EType) ([]byte, error) { + if len(key) != e.GetKeyByteSize() { + return []byte{}, fmt.Errorf("incorrect keysize: expected: %v actual: %v", e.GetKeyByteSize(), len(key)) + } + rc4Cipher, err := rc4.NewCipher(key) + if err != nil { + return []byte{}, fmt.Errorf("error creating RC4 cipher: %v", err) + } + ed := make([]byte, len(data)) + copy(ed, data) + rc4Cipher.XORKeyStream(ed, ed) + rc4Cipher.Reset() + return ed, nil +} + +// DecryptData decrypts the data provided using the methods specific to the etype provided as defined in RFC 4757. +func DecryptData(key, data []byte, e etype.EType) ([]byte, error) { + return EncryptData(key, data, e) +} + +// EncryptMessage encrypts the message provided using the methods specific to the etype provided as defined in RFC 4757. +// The encrypted data is concatenated with its RC4 header containing integrity checksum and confounder to create an encrypted message. +func EncryptMessage(key, data []byte, usage uint32, export bool, e etype.EType) ([]byte, error) { + confounder := make([]byte, e.GetConfounderByteSize()) // size = 8 + _, err := rand.Read(confounder) + if err != nil { + return []byte{}, fmt.Errorf("error generating confounder: %v", err) + } + k1 := key + k2 := HMAC(k1, UsageToMSMsgType(usage)) + toenc := append(confounder, data...) + chksum := HMAC(k2, toenc) + k3 := HMAC(k2, chksum) + + ed, err := EncryptData(k3, toenc, e) + if err != nil { + return []byte{}, fmt.Errorf("error encrypting data: %v", err) + } + + msg := append(chksum, ed...) + return msg, nil +} + +// DecryptMessage decrypts the message provided using the methods specific to the etype provided as defined in RFC 4757. +// The integrity of the message is also verified. +func DecryptMessage(key, data []byte, usage uint32, export bool, e etype.EType) ([]byte, error) { + checksum := data[:e.GetHMACBitLength()/8] + ct := data[e.GetHMACBitLength()/8:] + _, k2, k3 := deriveKeys(key, checksum, usage, export) + + pt, err := DecryptData(k3, ct, e) + if err != nil { + return []byte{}, fmt.Errorf("error decrypting data: %v", err) + } + + if !VerifyIntegrity(k2, pt, data, e) { + return []byte{}, errors.New("integrity checksum incorrect") + } + return pt[e.GetConfounderByteSize():], nil +} + +// VerifyIntegrity checks the integrity checksum of the data matches that calculated from the decrypted data. +func VerifyIntegrity(key, pt, data []byte, e etype.EType) bool { + chksum := HMAC(key, pt) + return hmac.Equal(chksum, data[:e.GetHMACBitLength()/8]) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/keyDerivation.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/keyDerivation.go new file mode 100644 index 0000000..5e7ec48 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/keyDerivation.go @@ -0,0 +1,55 @@ +package rfc4757 + +import ( + "bytes" + "encoding/hex" + "errors" + "fmt" + "io" + + "golang.org/x/crypto/md4" +) + +// StringToKey returns a key derived from the string provided according to the definition in RFC 4757. +func StringToKey(secret string) ([]byte, error) { + b := make([]byte, len(secret)*2, len(secret)*2) + for i, r := range secret { + u := fmt.Sprintf("%04x", r) + c, err := hex.DecodeString(u) + if err != nil { + return []byte{}, errors.New("character could not be encoded") + } + // Swap round the two bytes to make little endian as we put into byte slice + b[2*i] = c[1] + b[2*i+1] = c[0] + } + r := bytes.NewReader(b) + h := md4.New() + _, err := io.Copy(h, r) + if err != nil { + return []byte{}, err + } + return h.Sum(nil), nil +} + +func deriveKeys(key, checksum []byte, usage uint32, export bool) (k1, k2, k3 []byte) { + //if export { + // L40 := make([]byte, 14, 14) + // copy(L40, []byte(`fortybits`)) + // k1 = HMAC(key, L40) + //} else { + // tb := MessageTypeBytes(usage) + // k1 = HMAC(key, tb) + //} + //k2 = k1[:16] + //if export { + // mask := []byte{0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB} + // copy(k1[7:16], mask) + //} + //k3 = HMAC(k1, checksum) + //return + k1 = key + k2 = HMAC(k1, UsageToMSMsgType(usage)) + k3 = HMAC(k2, checksum) + return +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/msgtype.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/msgtype.go new file mode 100644 index 0000000..068588d --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757/msgtype.go @@ -0,0 +1,20 @@ +package rfc4757 + +import "encoding/binary" + +// UsageToMSMsgType converts Kerberos key usage numbers to Microsoft message type encoded as a little-endian four byte slice. +func UsageToMSMsgType(usage uint32) []byte { + // Translate usage numbers to the Microsoft T numbers + switch usage { + case 3: + usage = 8 + case 9: + usage = 8 + case 23: + usage = 13 + } + // Now convert to bytes + tb := make([]byte, 4) // We force an int32 input so we can't go over 4 bytes + binary.PutUvarint(tb, uint64(usage)) + return tb +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc8009/encryption.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc8009/encryption.go new file mode 100644 index 0000000..86aae09 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc8009/encryption.go @@ -0,0 +1,128 @@ +// Package rfc8009 provides encryption and checksum methods as specified in RFC 8009 +package rfc8009 + +import ( + "crypto/aes" + "crypto/hmac" + "crypto/rand" + "errors" + "fmt" + + "gopkg.in/jcmturner/aescts.v1" + "gopkg.in/jcmturner/gokrb5.v7/crypto/common" + "gopkg.in/jcmturner/gokrb5.v7/crypto/etype" + "gopkg.in/jcmturner/gokrb5.v7/iana/etypeID" +) + +// EncryptData encrypts the data provided using methods specific to the etype provided as defined in RFC 8009. +func EncryptData(key, data []byte, e etype.EType) ([]byte, []byte, error) { + kl := e.GetKeyByteSize() + if e.GetETypeID() == etypeID.AES256_CTS_HMAC_SHA384_192 { + kl = 32 + } + if len(key) != kl { + return []byte{}, []byte{}, fmt.Errorf("incorrect keysize: expected: %v actual: %v", e.GetKeyByteSize(), len(key)) + } + ivz := make([]byte, aes.BlockSize) + return aescts.Encrypt(key, ivz, data) +} + +// EncryptMessage encrypts the message provided using the methods specific to the etype provided as defined in RFC 8009. +// The encrypted data is concatenated with its integrity hash to create an encrypted message. +func EncryptMessage(key, message []byte, usage uint32, e etype.EType) ([]byte, []byte, error) { + kl := e.GetKeyByteSize() + if e.GetETypeID() == etypeID.AES256_CTS_HMAC_SHA384_192 { + kl = 32 + } + if len(key) != kl { + return []byte{}, []byte{}, fmt.Errorf("incorrect keysize: expected: %v actual: %v", kl, len(key)) + } + if len(key) != e.GetKeyByteSize() { + } + //confounder + c := make([]byte, e.GetConfounderByteSize()) + _, err := rand.Read(c) + if err != nil { + return []byte{}, []byte{}, fmt.Errorf("could not generate random confounder: %v", err) + } + plainBytes := append(c, message...) + + // Derive key for encryption from usage + var k []byte + if usage != 0 { + k, err = e.DeriveKey(key, common.GetUsageKe(usage)) + if err != nil { + return []byte{}, []byte{}, fmt.Errorf("error deriving key for encryption: %v", err) + } + } + + // Encrypt the data + iv, b, err := e.EncryptData(k, plainBytes) + if err != nil { + return iv, b, fmt.Errorf("error encrypting data: %v", err) + } + + ivz := make([]byte, e.GetConfounderByteSize()) + ih, err := GetIntegityHash(ivz, b, key, usage, e) + if err != nil { + return iv, b, fmt.Errorf("error encrypting data: %v", err) + } + b = append(b, ih...) + return iv, b, nil +} + +// DecryptData decrypts the data provided using the methods specific to the etype provided as defined in RFC 8009. +func DecryptData(key, data []byte, e etype.EType) ([]byte, error) { + kl := e.GetKeyByteSize() + if e.GetETypeID() == etypeID.AES256_CTS_HMAC_SHA384_192 { + kl = 32 + } + if len(key) != kl { + return []byte{}, fmt.Errorf("incorrect keysize: expected: %v actual: %v", kl, len(key)) + } + ivz := make([]byte, aes.BlockSize) + return aescts.Decrypt(key, ivz, data) +} + +// DecryptMessage decrypts the message provided using the methods specific to the etype provided as defined in RFC 8009. +// The integrity of the message is also verified. +func DecryptMessage(key, ciphertext []byte, usage uint32, e etype.EType) ([]byte, error) { + //Derive the key + k, err := e.DeriveKey(key, common.GetUsageKe(usage)) + if err != nil { + return nil, fmt.Errorf("error deriving key: %v", err) + } + // Strip off the checksum from the end + b, err := e.DecryptData(k, ciphertext[:len(ciphertext)-e.GetHMACBitLength()/8]) + if err != nil { + return nil, err + } + //Verify checksum + if !e.VerifyIntegrity(key, ciphertext, b, usage) { + return nil, errors.New("integrity verification failed") + } + //Remove the confounder bytes + return b[e.GetConfounderByteSize():], nil +} + +// GetIntegityHash returns a keyed integrity hash of the bytes provided as defined in RFC 8009 +func GetIntegityHash(iv, c, key []byte, usage uint32, e etype.EType) ([]byte, error) { + // Generate and append integrity hash + // The HMAC is calculated over the cipher state concatenated with the + // AES output, instead of being calculated over the confounder and + // plaintext. This allows the message receiver to verify the + // integrity of the message before decrypting the message. + // H = HMAC(Ki, IV | C) + ib := append(iv, c...) + return common.GetIntegrityHash(ib, key, usage, e) +} + +// VerifyIntegrity verifies the integrity of cipertext bytes ct. +func VerifyIntegrity(key, ct []byte, usage uint32, etype etype.EType) bool { + h := make([]byte, etype.GetHMACBitLength()/8) + copy(h, ct[len(ct)-etype.GetHMACBitLength()/8:]) + ivz := make([]byte, etype.GetConfounderByteSize()) + ib := append(ivz, ct[:len(ct)-(etype.GetHMACBitLength()/8)]...) + expectedMAC, _ := common.GetIntegrityHash(ib, key, usage, etype) + return hmac.Equal(h, expectedMAC) +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc8009/keyDerivation.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc8009/keyDerivation.go new file mode 100644 index 0000000..90ced3b --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/crypto/rfc8009/keyDerivation.go @@ -0,0 +1,144 @@ +package rfc8009 + +import ( + "crypto/hmac" + "encoding/binary" + "encoding/hex" + "errors" + + "golang.org/x/crypto/pbkdf2" + "gopkg.in/jcmturner/gokrb5.v7/crypto/etype" + "gopkg.in/jcmturner/gokrb5.v7/iana/etypeID" +) + +const ( + s2kParamsZero = 32768 +) + +// DeriveRandom for key derivation as defined in RFC 8009 +func DeriveRandom(protocolKey, usage []byte, e etype.EType) ([]byte, error) { + h := e.GetHashFunc()() + return KDF_HMAC_SHA2(protocolKey, []byte("prf"), usage, h.Size(), e), nil +} + +// DeriveKey derives a key from the protocol key based on the usage and the etype's specific methods. +// +// https://tools.ietf.org/html/rfc8009#section-5 +// +// If the enctype is aes128-cts-hmac-sha256-128: +// Kc = KDF-HMAC-SHA2(base-key, usage | 0x99, 128) +// Ke = KDF-HMAC-SHA2(base-key, usage | 0xAA, 128) +// Ki = KDF-HMAC-SHA2(base-key, usage | 0x55, 128) +// +// If the enctype is aes256-cts-hmac-sha384-192: +// Kc = KDF-HMAC-SHA2(base-key, usage | 0x99, 192) +// Ke = KDF-HMAC-SHA2(base-key, usage | 0xAA, 256) +// Ki = KDF-HMAC-SHA2(base-key, usage | 0x55, 192) +func DeriveKey(protocolKey, label []byte, e etype.EType) []byte { + var context []byte + var kl int + // Key length is longer for aes256-cts-hmac-sha384-192 is it is a Ke or from StringToKey (where label is "kerberos") + if e.GetETypeID() == etypeID.AES256_CTS_HMAC_SHA384_192 { + switch label[len(label)-1] { + case 0x73: + // 0x73 is "s" so label could be kerberos meaning StringToKey so now check if the label is "kerberos" + kerblabel := []byte("kerberos") + if len(label) != len(kerblabel) { + break + } + for i, b := range label { + if b != kerblabel[i] { + kl = e.GetKeySeedBitLength() + break + } + } + if kl == 0 { + // This is StringToKey + kl = 256 + } + case 0xAA: + // This is a Ke + kl = 256 + } + } + if kl == 0 { + kl = e.GetKeySeedBitLength() + } + return e.RandomToKey(KDF_HMAC_SHA2(protocolKey, label, context, kl, e)) +} + +// RandomToKey returns a key from the bytes provided according to the definition in RFC 8009. +func RandomToKey(b []byte) []byte { + return b +} + +// StringToKey returns a key derived from the string provided according to the definition in RFC 8009. +func StringToKey(secret, salt, s2kparams string, e etype.EType) ([]byte, error) { + i, err := S2KparamsToItertions(s2kparams) + if err != nil { + return nil, err + } + return StringToKeyIter(secret, salt, i, e) +} + +// StringToKeyIter returns a key derived from the string provided according to the definition in RFC 8009. +func StringToKeyIter(secret, salt string, iterations int, e etype.EType) ([]byte, error) { + tkey := e.RandomToKey(StringToPBKDF2(secret, salt, iterations, e)) + return e.DeriveKey(tkey, []byte("kerberos")) +} + +// StringToPBKDF2 generates an encryption key from a pass phrase and salt string using the PBKDF2 function from PKCS #5 v2.0 +func StringToPBKDF2(secret, salt string, iterations int, e etype.EType) []byte { + kl := e.GetKeyByteSize() + if e.GetETypeID() == etypeID.AES256_CTS_HMAC_SHA384_192 { + kl = 32 + } + return pbkdf2.Key([]byte(secret), []byte(salt), iterations, kl, e.GetHashFunc()) +} + +// KDF_HMAC_SHA2 key derivation: https://tools.ietf.org/html/rfc8009#section-3 +func KDF_HMAC_SHA2(protocolKey, label, context []byte, kl int, e etype.EType) []byte { + //k: Length in bits of the key to be outputted, expressed in big-endian binary representation in 4 bytes. + k := make([]byte, 4, 4) + binary.BigEndian.PutUint32(k, uint32(kl)) + + c := make([]byte, 4, 4) + binary.BigEndian.PutUint32(c, uint32(1)) + c = append(c, label...) + c = append(c, byte(0)) + if len(context) > 0 { + c = append(c, context...) + } + c = append(c, k...) + + mac := hmac.New(e.GetHashFunc(), protocolKey) + mac.Write(c) + return mac.Sum(nil)[:(kl / 8)] +} + +// GetSaltP returns the salt value based on the etype name: https://tools.ietf.org/html/rfc8009#section-4 +func GetSaltP(salt, ename string) string { + b := []byte(ename) + b = append(b, byte(0)) + b = append(b, []byte(salt)...) + return string(b) +} + +// S2KparamsToItertions converts the string representation of iterations to an integer for RFC 8009. +func S2KparamsToItertions(s2kparams string) (int, error) { + var i uint32 + if len(s2kparams) != 8 { + return s2kParamsZero, errors.New("Invalid s2kparams length") + } + b, err := hex.DecodeString(s2kparams) + if err != nil { + return s2kParamsZero, errors.New("Invalid s2kparams, cannot decode string to bytes") + } + i = binary.BigEndian.Uint32(b) + //buf := bytes.NewBuffer(b) + //err = binary.Read(buf, binary.BigEndian, &i) + if err != nil { + return s2kParamsZero, errors.New("Invalid s2kparams, cannot convert to big endian int32") + } + return int(i), nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/MICToken.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/MICToken.go new file mode 100644 index 0000000..856412b --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/MICToken.go @@ -0,0 +1,202 @@ +package gssapi + +import ( + "bytes" + "crypto/hmac" + "encoding/binary" + "encoding/hex" + "errors" + "fmt" + + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +/* +From RFC 4121, section 4.2.6.1: + + Use of the GSS_GetMIC() call yields a token (referred as the MIC + token in this document), separate from the user data being protected, + which can be used to verify the integrity of that data as received. + The token has the following format: + + Octet no Name Description + -------------------------------------------------------------- + 0..1 TOK_ID Identification field. Tokens emitted by + GSS_GetMIC() contain the hex value 04 04 + expressed in big-endian order in this + field. + 2 Flags Attributes field, as described in section + 4.2.2. + 3..7 Filler Contains five octets of hex value FF. + 8..15 SND_SEQ Sequence number field in clear text, + expressed in big-endian order. + 16..last SGN_CKSUM Checksum of the "to-be-signed" data and + octet 0..15, as described in section 4.2.4. + + The Filler field is included in the checksum calculation for + simplicity. + +*/ + +const ( + // MICTokenFlagSentByAcceptor - this flag indicates the sender is the context acceptor. When not set, it indicates the sender is the context initiator + MICTokenFlagSentByAcceptor = 1 << iota + // MICTokenFlagSealed - this flag indicates confidentiality is provided for. It SHALL NOT be set in MIC tokens + MICTokenFlagSealed + // MICTokenFlagAcceptorSubkey - a subkey asserted by the context acceptor is used to protect the message + MICTokenFlagAcceptorSubkey +) + +const ( + micHdrLen = 16 // Length of the MIC Token's header +) + +// MICToken represents a GSS API MIC token, as defined in RFC 4121. +// It contains the header fields, the payload (this is not transmitted) and +// the checksum, and provides the logic for converting to/from bytes plus +// computing and verifying checksums +type MICToken struct { + // const GSS Token ID: 0x0404 + Flags byte // contains three flags: acceptor, sealed, acceptor subkey + // const Filler: 0xFF 0xFF 0xFF 0xFF 0xFF + SndSeqNum uint64 // sender's sequence number. big-endian + Payload []byte // your data! :) + Checksum []byte // checksum of { payload | header } +} + +// Return the 2 bytes identifying a GSS API MIC token +func getGSSMICTokenID() *[2]byte { + return &[2]byte{0x04, 0x04} +} + +// Return the filler bytes used in header +func fillerBytes() *[5]byte { + return &[5]byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF} +} + +// Marshal the MICToken into a byte slice. +// The payload should have been set and the checksum computed, otherwise an error is returned. +func (mt *MICToken) Marshal() ([]byte, error) { + if mt.Checksum == nil { + return nil, errors.New("checksum has not been set") + } + + bytes := make([]byte, micHdrLen+len(mt.Checksum)) + copy(bytes[0:micHdrLen], mt.getMICChecksumHeader()[:]) + copy(bytes[micHdrLen:], mt.Checksum) + + return bytes, nil +} + +// SetChecksum uses the passed encryption key and key usage to compute the checksum over the payload and +// the header, and sets the Checksum field of this MICToken. +// If the payload has not been set or the checksum has already been set, an error is returned. +func (mt *MICToken) SetChecksum(key types.EncryptionKey, keyUsage uint32) error { + if mt.Checksum != nil { + return errors.New("checksum has already been computed") + } + checksum, err := mt.checksum(key, keyUsage) + if err != nil { + return err + } + mt.Checksum = checksum + return nil +} + +// Compute and return the checksum of this token, computed using the passed key and key usage. +// Confirms to RFC 4121 in that the checksum will be computed over { body | header }. +// In the context of Kerberos MIC tokens, mostly keyusage GSSAPI_ACCEPTOR_SIGN (=23) +// and GSSAPI_INITIATOR_SIGN (=25) will be used. +// Note: This will NOT update the struct's Checksum field. +func (mt *MICToken) checksum(key types.EncryptionKey, keyUsage uint32) ([]byte, error) { + if mt.Payload == nil { + return nil, errors.New("cannot compute checksum with uninitialized payload") + } + d := make([]byte, micHdrLen+len(mt.Payload)) + copy(d[0:], mt.Payload) + copy(d[len(mt.Payload):], mt.getMICChecksumHeader()) + + encType, err := crypto.GetEtype(key.KeyType) + if err != nil { + return nil, err + } + return encType.GetChecksumHash(key.KeyValue, d, keyUsage) +} + +// Build a header suitable for a checksum computation +func (mt *MICToken) getMICChecksumHeader() []byte { + header := make([]byte, micHdrLen) + copy(header[0:2], getGSSMICTokenID()[:]) + header[2] = mt.Flags + copy(header[3:8], fillerBytes()[:]) + binary.BigEndian.PutUint64(header[8:16], mt.SndSeqNum) + return header +} + +// Verify computes the token's checksum with the provided key and usage, +// and compares it to the checksum present in the token. +// In case of any failure, (false, err) is returned, with err an explanatory error. +func (mt *MICToken) Verify(key types.EncryptionKey, keyUsage uint32) (bool, error) { + computed, err := mt.checksum(key, keyUsage) + if err != nil { + return false, err + } + if !hmac.Equal(computed, mt.Checksum) { + return false, fmt.Errorf( + "checksum mismatch. Computed: %s, Contained in token: %s", + hex.EncodeToString(computed), hex.EncodeToString(mt.Checksum)) + } + return true, nil +} + +// Unmarshal bytes into the corresponding MICToken. +// If expectFromAcceptor is true we expect the token to have been emitted by the gss acceptor, +// and will check the according flag, returning an error if the token does not match the expectation. +func (mt *MICToken) Unmarshal(b []byte, expectFromAcceptor bool) error { + if len(b) < micHdrLen { + return errors.New("bytes shorter than header length") + } + if !bytes.Equal(getGSSMICTokenID()[:], b[0:2]) { + return fmt.Errorf("wrong Token ID, Expected %s, was %s", + hex.EncodeToString(getGSSMICTokenID()[:]), + hex.EncodeToString(b[0:2])) + } + flags := b[2] + isFromAcceptor := flags&MICTokenFlagSentByAcceptor != 0 + if isFromAcceptor && !expectFromAcceptor { + return errors.New("unexpected acceptor flag is set: not expecting a token from the acceptor") + } + if !isFromAcceptor && expectFromAcceptor { + return errors.New("unexpected acceptor flag is not set: expecting a token from the acceptor, not in the initiator") + } + if !bytes.Equal(b[3:8], fillerBytes()[:]) { + return fmt.Errorf("unexpected filler bytes: expecting %s, was %s", + hex.EncodeToString(fillerBytes()[:]), + hex.EncodeToString(b[3:8])) + } + + mt.Flags = flags + mt.SndSeqNum = binary.BigEndian.Uint64(b[8:16]) + mt.Checksum = b[micHdrLen:] + return nil +} + +// NewInitiatorMICToken builds a new initiator token (acceptor flag will be set to 0) and computes the authenticated checksum. +// Other flags are set to 0. +// Note that in certain circumstances you may need to provide a sequence number that has been defined earlier. +// This is currently not supported. +func NewInitiatorMICToken(payload []byte, key types.EncryptionKey) (*MICToken, error) { + token := MICToken{ + Flags: 0x00, + SndSeqNum: 0, + Payload: payload, + } + + if err := token.SetChecksum(key, keyusage.GSSAPI_INITIATOR_SIGN); err != nil { + return nil, err + } + + return &token, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/README.md b/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/README.md new file mode 100644 index 0000000..8fdcf70 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/README.md @@ -0,0 +1,20 @@ +# Notes on GSS-API Negotiation Mechanism +https://tools.ietf.org/html/rfc4178 + +Client sends an initial negotiation message to the server which specifies the list of mechanisms +the client can support in order of decreasing preference. +This message is generated with the ``NewNegTokenInitKrb5`` method. +The message generated by this function specifies only a kerberos v5 mechanism is supported. + +The RFC states that this message can optionally contain the initial mechanism token +for the preferred mechanism (KRB5 in this case) of the client. The ``NewNegTokenInitKrb5`` +includes this in the message. + +The server side responds to this message with a one of four messages: + +| Message Type/State | Description | +|--------------------|-------------| +| accept-completed | indicates that the initiator-selected mechanism was acceptable to the target, and that the security mechanism token embedded in the first negotiation message was sufficient to complete the authentication | +| accept-incomplete | At least one more message is needed from the client to establish security context. | +| reject | Negotiation is being terminated. | +| request-mic | (this state can only be present in the first reply message from the target) indicates that the MIC token exchange is REQUIRED if per-message integrity services are available | \ No newline at end of file diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/contextFlags.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/contextFlags.go new file mode 100644 index 0000000..6634c6d --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/contextFlags.go @@ -0,0 +1,25 @@ +package gssapi + +import "github.com/jcmturner/gofork/encoding/asn1" + +// GSS-API context flags assigned numbers. +const ( + ContextFlagDeleg = 1 + ContextFlagMutual = 2 + ContextFlagReplay = 4 + ContextFlagSequence = 8 + ContextFlagConf = 16 + ContextFlagInteg = 32 + ContextFlagAnon = 64 +) + +// ContextFlags flags for GSSAPI +type ContextFlags asn1.BitString + +// NewContextFlags creates a new ContextFlags instance. +func NewContextFlags() ContextFlags { + var c ContextFlags + c.BitLength = 32 + c.Bytes = make([]byte, 4) + return c +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/gssapi.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/gssapi.go new file mode 100644 index 0000000..47754d7 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/gssapi.go @@ -0,0 +1,199 @@ +// Package gssapi implements Generic Security Services Application Program Interface required for SPNEGO kerberos authentication. +package gssapi + +import ( + "context" + "fmt" + + "github.com/jcmturner/gofork/encoding/asn1" +) + +// GSS-API OID names +const ( + // GSS-API OID names + OIDKRB5 OIDName = "KRB5" // MechType OID for Kerberos 5 + OIDMSLegacyKRB5 OIDName = "MSLegacyKRB5" // MechType OID for Kerberos 5 + OIDSPNEGO OIDName = "SPNEGO" +) + +// GSS-API status values +const ( + StatusBadBindings = 1 << iota + StatusBadMech + StatusBadName + StatusBadNameType + StatusBadStatus + StatusBadSig + StatusBadMIC + StatusContextExpired + StatusCredentialsExpired + StatusDefectiveCredential + StatusDefectiveToken + StatusFailure + StatusNoContext + StatusNoCred + StatusBadQOP + StatusUnauthorized + StatusUnavailable + StatusDuplicateElement + StatusNameNotMN + StatusComplete + StatusContinueNeeded + StatusDuplicateToken + StatusOldToken + StatusUnseqToken + StatusGapToken +) + +// ContextToken is an interface for a GSS-API context token. +type ContextToken interface { + Marshal() ([]byte, error) + Unmarshal(b []byte) error + Verify() (bool, Status) + Context() context.Context +} + +/* +CREDENTIAL MANAGEMENT + +GSS_Acquire_cred acquire credentials for use +GSS_Release_cred release credentials after use +GSS_Inquire_cred display information about credentials +GSS_Add_cred construct credentials incrementally +GSS_Inquire_cred_by_mech display per-mechanism credential information + +CONTEXT-LEVEL CALLS + +GSS_Init_sec_context initiate outbound security context +GSS_Accept_sec_context accept inbound security context +GSS_Delete_sec_context flush context when no longer needed +GSS_Process_context_token process received control token on context +GSS_Context_time indicate validity time remaining on context +GSS_Inquire_context display information about context +GSS_Wrap_size_limit determine GSS_Wrap token size limit +GSS_Export_sec_context transfer context to other process +GSS_Import_sec_context import transferred context + +PER-MESSAGE CALLS + +GSS_GetMIC apply integrity check, receive as token separate from message +GSS_VerifyMIC validate integrity check token along with message +GSS_Wrap sign, optionally encrypt, encapsulate +GSS_Unwrap decapsulate, decrypt if needed, validate integrity check + +SUPPORT CALLS + +GSS_Display_status translate status codes to printable form +GSS_Indicate_mechs indicate mech_types supported on local system +GSS_Compare_name compare two names for equality +GSS_Display_name translate name to printable form +GSS_Import_name convert printable name to normalized form +GSS_Release_name free storage of normalized-form name +GSS_Release_buffer free storage of general GSS-allocated object +GSS_Release_OID_set free storage of OID set object +GSS_Create_empty_OID_set create empty OID set +GSS_Add_OID_set_member add member to OID set +GSS_Test_OID_set_member test if OID is member of OID set +GSS_Inquire_names_for_mech indicate name types supported by mechanism +GSS_Inquire_mechs_for_name indicates mechanisms supporting name type +GSS_Canonicalize_name translate name to per-mechanism form +GSS_Export_name externalize per-mechanism name +GSS_Duplicate_name duplicate name object +*/ + +// Mechanism is the GSS-API interface for authentication mechanisms. +type Mechanism interface { + OID() asn1.ObjectIdentifier + AcquireCred() error // acquire credentials for use (eg. AS exchange for KRB5) + InitSecContext() (ContextToken, error) // initiate outbound security context (eg TGS exchange builds AP_REQ to go into ContextToken to send to service) + AcceptSecContext(ct ContextToken) (bool, context.Context, Status) // service verifies the token server side to establish a context + MIC() MICToken // apply integrity check, receive as token separate from message + VerifyMIC(mt MICToken) (bool, error) // validate integrity check token along with message + Wrap(msg []byte) WrapToken // sign, optionally encrypt, encapsulate + Unwrap(wt WrapToken) []byte // decapsulate, decrypt if needed, validate integrity check +} + +// OIDName is the type for defined GSS-API OIDs. +type OIDName string + +// OID returns the OID for the provided OID name. +func OID(o OIDName) asn1.ObjectIdentifier { + switch o { + case OIDSPNEGO: + return asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 2} + case OIDKRB5: + return asn1.ObjectIdentifier{1, 2, 840, 113554, 1, 2, 2} + case OIDMSLegacyKRB5: + return asn1.ObjectIdentifier{1, 2, 840, 48018, 1, 2, 2} + } + return asn1.ObjectIdentifier{} +} + +// Status is the GSS-API status and implements the error interface. +type Status struct { + Code int + Message string +} + +// Error returns the Status description. +func (s Status) Error() string { + var str string + switch s.Code { + case StatusBadBindings: + str = "channel binding mismatch" + case StatusBadMech: + str = "unsupported mechanism requested" + case StatusBadName: + str = "invalid name provided" + case StatusBadNameType: + str = "name of unsupported type provided" + case StatusBadStatus: + str = "invalid input status selector" + case StatusBadSig: + str = "token had invalid integrity check" + case StatusBadMIC: + str = "preferred alias for GSS_S_BAD_SIG" + case StatusContextExpired: + str = "specified security context expired" + case StatusCredentialsExpired: + str = "expired credentials detected" + case StatusDefectiveCredential: + str = "defective credential detected" + case StatusDefectiveToken: + str = "defective token detected" + case StatusFailure: + str = "failure, unspecified at GSS-API level" + case StatusNoContext: + str = "no valid security context specified" + case StatusNoCred: + str = "no valid credentials provided" + case StatusBadQOP: + str = "unsupported QOP valu" + case StatusUnauthorized: + str = "operation unauthorized" + case StatusUnavailable: + str = "operation unavailable" + case StatusDuplicateElement: + str = "duplicate credential element requested" + case StatusNameNotMN: + str = "name contains multi-mechanism elements" + case StatusComplete: + str = "normal completion" + case StatusContinueNeeded: + str = "continuation call to routine required" + case StatusDuplicateToken: + str = "duplicate per-message token detected" + case StatusOldToken: + str = "timed-out per-message token detected" + case StatusUnseqToken: + str = "reordered (early) per-message token detected" + case StatusGapToken: + str = "skipped predecessor token(s) detected" + default: + str = "unknown GSS-API error status" + } + if s.Message != "" { + return fmt.Sprintf("%s: %s", str, s.Message) + } + return str +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/wrapToken.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/wrapToken.go new file mode 100644 index 0000000..9dbf96b --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/gssapi/wrapToken.go @@ -0,0 +1,235 @@ +package gssapi + +import ( + "bytes" + "crypto/hmac" + "encoding/binary" + "encoding/hex" + "errors" + "fmt" + + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +/* +From RFC 4121, section 4.2.6.2: + + Use of the GSS_Wrap() call yields a token (referred as the Wrap token + in this document), which consists of a descriptive header, followed + by a body portion that contains either the input user data in + plaintext concatenated with the checksum, or the input user data + encrypted. The GSS_Wrap() token SHALL have the following format: + + Octet no Name Description + -------------------------------------------------------------- + 0..1 TOK_ID Identification field. Tokens emitted by + GSS_Wrap() contain the hex value 05 04 + expressed in big-endian order in this + field. + 2 Flags Attributes field, as described in section + 4.2.2. + 3 Filler Contains the hex value FF. + 4..5 EC Contains the "extra count" field, in big- + endian order as described in section 4.2.3. + 6..7 RRC Contains the "right rotation count" in big- + endian order, as described in section + 4.2.5. + 8..15 SndSeqNum Sequence number field in clear text, + expressed in big-endian order. + 16..last Data Encrypted data for Wrap tokens with + confidentiality, or plaintext data followed + by the checksum for Wrap tokens without + confidentiality, as described in section + 4.2.4. + +Quick notes: + - "EC" or "Extra Count" refers to the length of the checksum. + - "Flags" (complete details in section 4.2.2) is a set of bits: + - if bit 0 is set, it means the token was sent by the acceptor (generally the kerberized service). + - bit 1 indicates that the token's payload is encrypted + - bit 2 indicates if the message is protected using a subkey defined by the acceptor. + - When computing checksums, EC and RRC MUST be set to 0. + - Wrap Tokens are not ASN.1 encoded. +*/ +const ( + HdrLen = 16 // Length of the Wrap Token's header + FillerByte byte = 0xFF +) + +// WrapToken represents a GSS API Wrap token, as defined in RFC 4121. +// It contains the header fields, the payload and the checksum, and provides +// the logic for converting to/from bytes plus computing and verifying checksums +type WrapToken struct { + // const GSS Token ID: 0x0504 + Flags byte // contains three flags: acceptor, sealed, acceptor subkey + // const Filler: 0xFF + EC uint16 // checksum length. big-endian + RRC uint16 // right rotation count. big-endian + SndSeqNum uint64 // sender's sequence number. big-endian + Payload []byte // your data! :) + CheckSum []byte // authenticated checksum of { payload | header } +} + +// Return the 2 bytes identifying a GSS API Wrap token +func getGssWrapTokenId() *[2]byte { + return &[2]byte{0x05, 0x04} +} + +// Marshal the WrapToken into a byte slice. +// The payload should have been set and the checksum computed, otherwise an error is returned. +func (wt *WrapToken) Marshal() ([]byte, error) { + if wt.CheckSum == nil { + return nil, errors.New("checksum has not been set") + } + if wt.Payload == nil { + return nil, errors.New("payload has not been set") + } + + pldOffset := HdrLen // Offset of the payload in the token + chkSOffset := HdrLen + len(wt.Payload) // Offset of the checksum in the token + + bytes := make([]byte, chkSOffset+int(wt.EC)) + copy(bytes[0:], getGssWrapTokenId()[:]) + bytes[2] = wt.Flags + bytes[3] = FillerByte + binary.BigEndian.PutUint16(bytes[4:6], wt.EC) + binary.BigEndian.PutUint16(bytes[6:8], wt.RRC) + binary.BigEndian.PutUint64(bytes[8:16], wt.SndSeqNum) + copy(bytes[pldOffset:], wt.Payload) + copy(bytes[chkSOffset:], wt.CheckSum) + return bytes, nil +} + +// SetCheckSum uses the passed encryption key and key usage to compute the checksum over the payload and +// the header, and sets the CheckSum field of this WrapToken. +// If the payload has not been set or the checksum has already been set, an error is returned. +func (wt *WrapToken) SetCheckSum(key types.EncryptionKey, keyUsage uint32) error { + if wt.Payload == nil { + return errors.New("payload has not been set") + } + if wt.CheckSum != nil { + return errors.New("checksum has already been computed") + } + chkSum, cErr := wt.computeCheckSum(key, keyUsage) + if cErr != nil { + return cErr + } + wt.CheckSum = chkSum + return nil +} + +// ComputeCheckSum computes and returns the checksum of this token, computed using the passed key and key usage. +// Conforms to RFC 4121 in that the checksum will be computed over { body | header }, +// with the EC and RRC flags zeroed out. +// In the context of Kerberos Wrap tokens, mostly keyusage GSSAPI_ACCEPTOR_SEAL (=22) +// and GSSAPI_INITIATOR_SEAL (=24) will be used. +// Note: This will NOT update the struct's Checksum field. +func (wt *WrapToken) computeCheckSum(key types.EncryptionKey, keyUsage uint32) ([]byte, error) { + if wt.Payload == nil { + return nil, errors.New("cannot compute checksum with uninitialized payload") + } + // Build a slice containing { payload | header } + checksumMe := make([]byte, HdrLen+len(wt.Payload)) + copy(checksumMe[0:], wt.Payload) + copy(checksumMe[len(wt.Payload):], getChecksumHeader(wt.Flags, wt.SndSeqNum)) + + encType, err := crypto.GetEtype(key.KeyType) + if err != nil { + return nil, err + } + return encType.GetChecksumHash(key.KeyValue, checksumMe, keyUsage) +} + +// Build a header suitable for a checksum computation +func getChecksumHeader(flags byte, senderSeqNum uint64) []byte { + header := make([]byte, 16) + copy(header[0:], []byte{0x05, 0x04, flags, 0xFF, 0x00, 0x00, 0x00, 0x00}) + binary.BigEndian.PutUint64(header[8:], senderSeqNum) + return header +} + +// Verify computes the token's checksum with the provided key and usage, +// and compares it to the checksum present in the token. +// In case of any failure, (false, Err) is returned, with Err an explanatory error. +func (wt *WrapToken) Verify(key types.EncryptionKey, keyUsage uint32) (bool, error) { + computed, cErr := wt.computeCheckSum(key, keyUsage) + if cErr != nil { + return false, cErr + } + if !hmac.Equal(computed, wt.CheckSum) { + return false, fmt.Errorf( + "checksum mismatch. Computed: %s, Contained in token: %s", + hex.EncodeToString(computed), hex.EncodeToString(wt.CheckSum)) + } + return true, nil +} + +// Unmarshal bytes into the corresponding WrapToken. +// If expectFromAcceptor is true, we expect the token to have been emitted by the gss acceptor, +// and will check the according flag, returning an error if the token does not match the expectation. +func (wt *WrapToken) Unmarshal(b []byte, expectFromAcceptor bool) error { + // Check if we can read a whole header + if len(b) < 16 { + return errors.New("bytes shorter than header length") + } + // Is the Token ID correct? + if !bytes.Equal(getGssWrapTokenId()[:], b[0:2]) { + return fmt.Errorf("wrong Token ID. Expected %s, was %s", + hex.EncodeToString(getGssWrapTokenId()[:]), + hex.EncodeToString(b[0:2])) + } + // Check the acceptor flag + flags := b[2] + isFromAcceptor := flags&0x01 == 1 + if isFromAcceptor && !expectFromAcceptor { + return errors.New("unexpected acceptor flag is set: not expecting a token from the acceptor") + } + if !isFromAcceptor && expectFromAcceptor { + return errors.New("expected acceptor flag is not set: expecting a token from the acceptor, not the initiator") + } + // Check the filler byte + if b[3] != FillerByte { + return fmt.Errorf("unexpected filler byte: expecting 0xFF, was %s ", hex.EncodeToString(b[3:4])) + } + checksumL := binary.BigEndian.Uint16(b[4:6]) + // Sanity check on the checksum length + if int(checksumL) > len(b)-HdrLen { + return fmt.Errorf("inconsistent checksum length: %d bytes to parse, checksum length is %d", len(b), checksumL) + } + + wt.Flags = flags + wt.EC = checksumL + wt.RRC = binary.BigEndian.Uint16(b[6:8]) + wt.SndSeqNum = binary.BigEndian.Uint64(b[8:16]) + wt.Payload = b[16 : len(b)-int(checksumL)] + wt.CheckSum = b[len(b)-int(checksumL):] + return nil +} + +// NewInitiatorWrapToken builds a new initiator token (acceptor flag will be set to 0) and computes the authenticated checksum. +// Other flags are set to 0, and the RRC and sequence number are initialized to 0. +// Note that in certain circumstances you may need to provide a sequence number that has been defined earlier. +// This is currently not supported. +func NewInitiatorWrapToken(payload []byte, key types.EncryptionKey) (*WrapToken, error) { + encType, err := crypto.GetEtype(key.KeyType) + if err != nil { + return nil, err + } + + token := WrapToken{ + Flags: 0x00, // all zeroed out (this is a token sent by the initiator) + // Checksum size: length of output of the HMAC function, in bytes. + EC: uint16(encType.GetHMACBitLength() / 8), + RRC: 0, + SndSeqNum: 0, + Payload: payload, + } + + if err := token.SetCheckSum(key, keyusage.GSSAPI_INITIATOR_SEAL); err != nil { + return nil, err + } + + return &token, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/addrtype/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/addrtype/constants.go new file mode 100644 index 0000000..457b89d --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/addrtype/constants.go @@ -0,0 +1,15 @@ +// Package addrtype provides Address type assigned numbers. +package addrtype + +// Address type IDs. +const ( + IPv4 int32 = 2 + Directional int32 = 3 + ChaosNet int32 = 5 + XNS int32 = 6 + ISO int32 = 7 + DECNETPhaseIV int32 = 12 + AppleTalkDDP int32 = 16 + NetBios int32 = 20 + IPv6 int32 = 24 +) diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/adtype/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/adtype/constants.go new file mode 100644 index 0000000..e805b74 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/adtype/constants.go @@ -0,0 +1,23 @@ +// Package adtype provides Authenticator type assigned numbers. +package adtype + +// Authenticator type IDs. +const ( + ADIfRelevant int32 = 1 + ADIntendedForServer int32 = 2 + ADIntendedForApplicationClass int32 = 3 + ADKDCIssued int32 = 4 + ADAndOr int32 = 5 + ADMandatoryTicketExtensions int32 = 6 + ADInTicketExtensions int32 = 7 + ADMandatoryForKDC int32 = 8 + OSFDCE int32 = 64 + SESAME int32 = 65 + ADOSFDCEPKICertID int32 = 66 + ADAuthenticationStrength int32 = 70 + ADFXFastArmor int32 = 71 + ADFXFastUsed int32 = 72 + ADWin2KPAC int32 = 128 + ADEtypeNegotiation int32 = 129 + //Reserved values 9-63 +) diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag/constants.go new file mode 100644 index 0000000..d74cd60 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag/constants.go @@ -0,0 +1,24 @@ +// Package asnAppTag provides ASN1 application tag numbers. +package asnAppTag + +// ASN1 application tag numbers. +const ( + Ticket = 1 + Authenticator = 2 + EncTicketPart = 3 + ASREQ = 10 + TGSREQ = 12 + ASREP = 11 + TGSREP = 13 + APREQ = 14 + APREP = 15 + KRBSafe = 20 + KRBPriv = 21 + KRBCred = 22 + EncASRepPart = 25 + EncTGSRepPart = 26 + EncAPRepPart = 27 + EncKrbPrivPart = 28 + EncKrbCredPart = 29 + KRBError = 30 +) diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype/constants.go new file mode 100644 index 0000000..93db952 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype/constants.go @@ -0,0 +1,32 @@ +// Package chksumtype provides Kerberos 5 checksum type assigned numbers. +package chksumtype + +// Checksum type IDs. +const ( + //RESERVED : 0 + CRC32 int32 = 1 + RSA_MD4 int32 = 2 + RSA_MD4_DES int32 = 3 + DES_MAC int32 = 4 + DES_MAC_K int32 = 5 + RSA_MD4_DES_K int32 = 6 + RSA_MD5 int32 = 7 + RSA_MD5_DES int32 = 8 + RSA_MD5_DES3 int32 = 9 + SHA1_ID10 int32 = 10 + //UNASSIGNED : 11 + HMAC_SHA1_DES3_KD int32 = 12 + HMAC_SHA1_DES3 int32 = 13 + SHA1_ID14 int32 = 14 + HMAC_SHA1_96_AES128 int32 = 15 + HMAC_SHA1_96_AES256 int32 = 16 + CMAC_CAMELLIA128 int32 = 17 + CMAC_CAMELLIA256 int32 = 18 + HMAC_SHA256_128_AES128 int32 = 19 + HMAC_SHA384_192_AES256 int32 = 20 + //UNASSIGNED : 21-32770 + GSSAPI int32 = 32771 + //UNASSIGNED : 32772-2147483647 + KERB_CHECKSUM_HMAC_MD5_UNSIGNED uint32 = 4294967158 // 0xFFFFFF76 documentation says this is -138 but in an unsigned int this is 4294967158 + KERB_CHECKSUM_HMAC_MD5 int32 = -138 +) diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/constants.go new file mode 100644 index 0000000..0b8e916 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/constants.go @@ -0,0 +1,5 @@ +// Package iana provides Kerberos 5 assigned numbers. +package iana + +// PVNO is the Protocol Version Number. +const PVNO = 5 diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/errorcode/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/errorcode/constants.go new file mode 100644 index 0000000..fd756bc --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/errorcode/constants.go @@ -0,0 +1,155 @@ +// Package errorcode provides Kerberos 5 assigned error codes. +package errorcode + +import "fmt" + +// Kerberos error codes. +const ( + KDC_ERR_NONE int32 = 0 //No error + KDC_ERR_NAME_EXP int32 = 1 //Client's entry in database has expired + KDC_ERR_SERVICE_EXP int32 = 2 //Server's entry in database has expired + KDC_ERR_BAD_PVNO int32 = 3 //Requested protocol version number not supported + KDC_ERR_C_OLD_MAST_KVNO int32 = 4 //Client's key encrypted in old master key + KDC_ERR_S_OLD_MAST_KVNO int32 = 5 //Server's key encrypted in old master key + KDC_ERR_C_PRINCIPAL_UNKNOWN int32 = 6 //Client not found in Kerberos database + KDC_ERR_S_PRINCIPAL_UNKNOWN int32 = 7 //Server not found in Kerberos database + KDC_ERR_PRINCIPAL_NOT_UNIQUE int32 = 8 //Multiple principal entries in database + KDC_ERR_NULL_KEY int32 = 9 //The client or server has a null key + KDC_ERR_CANNOT_POSTDATE int32 = 10 //Ticket not eligible for postdating + KDC_ERR_NEVER_VALID int32 = 11 //Requested starttime is later than end time + KDC_ERR_POLICY int32 = 12 //KDC policy rejects request + KDC_ERR_BADOPTION int32 = 13 //KDC cannot accommodate requested option + KDC_ERR_ETYPE_NOSUPP int32 = 14 //KDC has no support for encryption type + KDC_ERR_SUMTYPE_NOSUPP int32 = 15 //KDC has no support for checksum type + KDC_ERR_PADATA_TYPE_NOSUPP int32 = 16 //KDC has no support for padata type + KDC_ERR_TRTYPE_NOSUPP int32 = 17 //KDC has no support for transited type + KDC_ERR_CLIENT_REVOKED int32 = 18 //Clients credentials have been revoked + KDC_ERR_SERVICE_REVOKED int32 = 19 //Credentials for server have been revoked + KDC_ERR_TGT_REVOKED int32 = 20 //TGT has been revoked + KDC_ERR_CLIENT_NOTYET int32 = 21 //Client not yet valid; try again later + KDC_ERR_SERVICE_NOTYET int32 = 22 //Server not yet valid; try again later + KDC_ERR_KEY_EXPIRED int32 = 23 //Password has expired; change password to reset + KDC_ERR_PREAUTH_FAILED int32 = 24 //Pre-authentication information was invalid + KDC_ERR_PREAUTH_REQUIRED int32 = 25 //Additional pre-authentication required + KDC_ERR_SERVER_NOMATCH int32 = 26 //Requested server and ticket don't match + KDC_ERR_MUST_USE_USER2USER int32 = 27 //Server principal valid for user2user only + KDC_ERR_PATH_NOT_ACCEPTED int32 = 28 //KDC Policy rejects transited path + KDC_ERR_SVC_UNAVAILABLE int32 = 29 //A service is not available + KRB_AP_ERR_BAD_INTEGRITY int32 = 31 //Integrity check on decrypted field failed + KRB_AP_ERR_TKT_EXPIRED int32 = 32 //Ticket expired + KRB_AP_ERR_TKT_NYV int32 = 33 //Ticket not yet valid + KRB_AP_ERR_REPEAT int32 = 34 //Request is a replay + KRB_AP_ERR_NOT_US int32 = 35 //The ticket isn't for us + KRB_AP_ERR_BADMATCH int32 = 36 //Ticket and authenticator don't match + KRB_AP_ERR_SKEW int32 = 37 //Clock skew too great + KRB_AP_ERR_BADADDR int32 = 38 //Incorrect net address + KRB_AP_ERR_BADVERSION int32 = 39 //Protocol version mismatch + KRB_AP_ERR_MSG_TYPE int32 = 40 //Invalid msg type + KRB_AP_ERR_MODIFIED int32 = 41 //Message stream modified + KRB_AP_ERR_BADORDER int32 = 42 //Message out of order + KRB_AP_ERR_BADKEYVER int32 = 44 //Specified version of key is not available + KRB_AP_ERR_NOKEY int32 = 45 //Service key not available + KRB_AP_ERR_MUT_FAIL int32 = 46 //Mutual authentication failed + KRB_AP_ERR_BADDIRECTION int32 = 47 //Incorrect message direction + KRB_AP_ERR_METHOD int32 = 48 //Alternative authentication method required + KRB_AP_ERR_BADSEQ int32 = 49 //Incorrect sequence number in message + KRB_AP_ERR_INAPP_CKSUM int32 = 50 //Inappropriate type of checksum in message + KRB_AP_PATH_NOT_ACCEPTED int32 = 51 //Policy rejects transited path + KRB_ERR_RESPONSE_TOO_BIG int32 = 52 //Response too big for UDP; retry with TCP + KRB_ERR_GENERIC int32 = 60 //Generic error (description in e-text) + KRB_ERR_FIELD_TOOLONG int32 = 61 //Field is too long for this implementation + KDC_ERROR_CLIENT_NOT_TRUSTED int32 = 62 //Reserved for PKINIT + KDC_ERROR_KDC_NOT_TRUSTED int32 = 63 //Reserved for PKINIT + KDC_ERROR_INVALID_SIG int32 = 64 //Reserved for PKINIT + KDC_ERR_KEY_TOO_WEAK int32 = 65 //Reserved for PKINIT + KDC_ERR_CERTIFICATE_MISMATCH int32 = 66 //Reserved for PKINIT + KRB_AP_ERR_NO_TGT int32 = 67 //No TGT available to validate USER-TO-USER + KDC_ERR_WRONG_REALM int32 = 68 //Reserved for future use + KRB_AP_ERR_USER_TO_USER_REQUIRED int32 = 69 //Ticket must be for USER-TO-USER + KDC_ERR_CANT_VERIFY_CERTIFICATE int32 = 70 //Reserved for PKINIT + KDC_ERR_INVALID_CERTIFICATE int32 = 71 //Reserved for PKINIT + KDC_ERR_REVOKED_CERTIFICATE int32 = 72 //Reserved for PKINIT + KDC_ERR_REVOCATION_STATUS_UNKNOWN int32 = 73 //Reserved for PKINIT + KDC_ERR_REVOCATION_STATUS_UNAVAILABLE int32 = 74 //Reserved for PKINIT + KDC_ERR_CLIENT_NAME_MISMATCH int32 = 75 //Reserved for PKINIT + KDC_ERR_KDC_NAME_MISMATCH int32 = 76 //Reserved for PKINIT +) + +// Lookup an error code description. +func Lookup(i int32) string { + if s, ok := errorcodeLookup[i]; ok { + return fmt.Sprintf("(%d) %s", i, s) + } + return fmt.Sprintf("Unknown ErrorCode %d", i) +} + +var errorcodeLookup = map[int32]string{ + KDC_ERR_NONE: "KDC_ERR_NONE No error", + KDC_ERR_NAME_EXP: "KDC_ERR_NAME_EXP Client's entry in database has expired", + KDC_ERR_SERVICE_EXP: "KDC_ERR_SERVICE_EXP Server's entry in database has expired", + KDC_ERR_BAD_PVNO: "KDC_ERR_BAD_PVNO Requested protocol version number not supported", + KDC_ERR_C_OLD_MAST_KVNO: "KDC_ERR_C_OLD_MAST_KVNO Client's key encrypted in old master key", + KDC_ERR_S_OLD_MAST_KVNO: "KDC_ERR_S_OLD_MAST_KVNO Server's key encrypted in old master key", + KDC_ERR_C_PRINCIPAL_UNKNOWN: "KDC_ERR_C_PRINCIPAL_UNKNOWN Client not found in Kerberos database", + KDC_ERR_S_PRINCIPAL_UNKNOWN: "KDC_ERR_S_PRINCIPAL_UNKNOWN Server not found in Kerberos database", + KDC_ERR_PRINCIPAL_NOT_UNIQUE: "KDC_ERR_PRINCIPAL_NOT_UNIQUE Multiple principal entries in database", + KDC_ERR_NULL_KEY: "KDC_ERR_NULL_KEY The client or server has a null key", + KDC_ERR_CANNOT_POSTDATE: "KDC_ERR_CANNOT_POSTDATE Ticket not eligible for postdating", + KDC_ERR_NEVER_VALID: "KDC_ERR_NEVER_VALID Requested starttime is later than end time", + KDC_ERR_POLICY: "KDC_ERR_POLICY KDC policy rejects request", + KDC_ERR_BADOPTION: "KDC_ERR_BADOPTION KDC cannot accommodate requested option", + KDC_ERR_ETYPE_NOSUPP: "KDC_ERR_ETYPE_NOSUPP KDC has no support for encryption type", + KDC_ERR_SUMTYPE_NOSUPP: "KDC_ERR_SUMTYPE_NOSUPP KDC has no support for checksum type", + KDC_ERR_PADATA_TYPE_NOSUPP: "KDC_ERR_PADATA_TYPE_NOSUPP KDC has no support for padata type", + KDC_ERR_TRTYPE_NOSUPP: "KDC_ERR_TRTYPE_NOSUPP KDC has no support for transited type", + KDC_ERR_CLIENT_REVOKED: "KDC_ERR_CLIENT_REVOKED Clients credentials have been revoked", + KDC_ERR_SERVICE_REVOKED: "KDC_ERR_SERVICE_REVOKED Credentials for server have been revoked", + KDC_ERR_TGT_REVOKED: "KDC_ERR_TGT_REVOKED TGT has been revoked", + KDC_ERR_CLIENT_NOTYET: "KDC_ERR_CLIENT_NOTYET Client not yet valid; try again later", + KDC_ERR_SERVICE_NOTYET: "KDC_ERR_SERVICE_NOTYET Server not yet valid; try again later", + KDC_ERR_KEY_EXPIRED: "KDC_ERR_KEY_EXPIRED Password has expired; change password to reset", + KDC_ERR_PREAUTH_FAILED: "KDC_ERR_PREAUTH_FAILED Pre-authentication information was invalid", + KDC_ERR_PREAUTH_REQUIRED: "KDC_ERR_PREAUTH_REQUIRED Additional pre-authentication required", + KDC_ERR_SERVER_NOMATCH: "KDC_ERR_SERVER_NOMATCH Requested server and ticket don't match", + KDC_ERR_MUST_USE_USER2USER: "KDC_ERR_MUST_USE_USER2USER Server principal valid for user2user only", + KDC_ERR_PATH_NOT_ACCEPTED: "KDC_ERR_PATH_NOT_ACCEPTED KDC Policy rejects transited path", + KDC_ERR_SVC_UNAVAILABLE: "KDC_ERR_SVC_UNAVAILABLE A service is not available", + KRB_AP_ERR_BAD_INTEGRITY: "KRB_AP_ERR_BAD_INTEGRITY Integrity check on decrypted field failed", + KRB_AP_ERR_TKT_EXPIRED: "KRB_AP_ERR_TKT_EXPIRED Ticket expired", + KRB_AP_ERR_TKT_NYV: "KRB_AP_ERR_TKT_NYV Ticket not yet valid", + KRB_AP_ERR_REPEAT: "KRB_AP_ERR_REPEAT Request is a replay", + KRB_AP_ERR_NOT_US: "KRB_AP_ERR_NOT_US The ticket isn't for us", + KRB_AP_ERR_BADMATCH: "KRB_AP_ERR_BADMATCH Ticket and authenticator don't match", + KRB_AP_ERR_SKEW: "KRB_AP_ERR_SKEW Clock skew too great", + KRB_AP_ERR_BADADDR: "KRB_AP_ERR_BADADDR Incorrect net address", + KRB_AP_ERR_BADVERSION: "KRB_AP_ERR_BADVERSION Protocol version mismatch", + KRB_AP_ERR_MSG_TYPE: "KRB_AP_ERR_MSG_TYPE Invalid msg type", + KRB_AP_ERR_MODIFIED: "KRB_AP_ERR_MODIFIED Message stream modified", + KRB_AP_ERR_BADORDER: "KRB_AP_ERR_BADORDER Message out of order", + KRB_AP_ERR_BADKEYVER: "KRB_AP_ERR_BADKEYVER Specified version of key is not available", + KRB_AP_ERR_NOKEY: "KRB_AP_ERR_NOKEY Service key not available", + KRB_AP_ERR_MUT_FAIL: "KRB_AP_ERR_MUT_FAIL Mutual authentication failed", + KRB_AP_ERR_BADDIRECTION: "KRB_AP_ERR_BADDIRECTION Incorrect message direction", + KRB_AP_ERR_METHOD: "KRB_AP_ERR_METHOD Alternative authentication method required", + KRB_AP_ERR_BADSEQ: "KRB_AP_ERR_BADSEQ Incorrect sequence number in message", + KRB_AP_ERR_INAPP_CKSUM: "KRB_AP_ERR_INAPP_CKSUM Inappropriate type of checksum in message", + KRB_AP_PATH_NOT_ACCEPTED: "KRB_AP_PATH_NOT_ACCEPTED Policy rejects transited path", + KRB_ERR_RESPONSE_TOO_BIG: "KRB_ERR_RESPONSE_TOO_BIG Response too big for UDP; retry with TCP", + KRB_ERR_GENERIC: "KRB_ERR_GENERIC Generic error (description in e-text)", + KRB_ERR_FIELD_TOOLONG: "KRB_ERR_FIELD_TOOLONG Field is too long for this implementation", + KDC_ERROR_CLIENT_NOT_TRUSTED: "KDC_ERROR_CLIENT_NOT_TRUSTED Reserved for PKINIT", + KDC_ERROR_KDC_NOT_TRUSTED: "KDC_ERROR_KDC_NOT_TRUSTED Reserved for PKINIT", + KDC_ERROR_INVALID_SIG: "KDC_ERROR_INVALID_SIG Reserved for PKINIT", + KDC_ERR_KEY_TOO_WEAK: "KDC_ERR_KEY_TOO_WEAK Reserved for PKINIT", + KDC_ERR_CERTIFICATE_MISMATCH: "KDC_ERR_CERTIFICATE_MISMATCH Reserved for PKINIT", + KRB_AP_ERR_NO_TGT: "KRB_AP_ERR_NO_TGT No TGT available to validate USER-TO-USER", + KDC_ERR_WRONG_REALM: "KDC_ERR_WRONG_REALM Reserved for future use", + KRB_AP_ERR_USER_TO_USER_REQUIRED: "KRB_AP_ERR_USER_TO_USER_REQUIRED Ticket must be for USER-TO-USER", + KDC_ERR_CANT_VERIFY_CERTIFICATE: "KDC_ERR_CANT_VERIFY_CERTIFICATE Reserved for PKINIT", + KDC_ERR_INVALID_CERTIFICATE: "KDC_ERR_INVALID_CERTIFICATE Reserved for PKINIT", + KDC_ERR_REVOKED_CERTIFICATE: "KDC_ERR_REVOKED_CERTIFICATE Reserved for PKINIT", + KDC_ERR_REVOCATION_STATUS_UNKNOWN: "KDC_ERR_REVOCATION_STATUS_UNKNOWN Reserved for PKINIT", + KDC_ERR_REVOCATION_STATUS_UNAVAILABLE: "KDC_ERR_REVOCATION_STATUS_UNAVAILABLE Reserved for PKINIT", + KDC_ERR_CLIENT_NAME_MISMATCH: "KDC_ERR_CLIENT_NAME_MISMATCH Reserved for PKINIT", + KDC_ERR_KDC_NAME_MISMATCH: "KDC_ERR_KDC_NAME_MISMATCH Reserved for PKINIT", +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/etypeID/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/etypeID/constants.go new file mode 100644 index 0000000..46a0d74 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/etypeID/constants.go @@ -0,0 +1,101 @@ +// Package etypeID provides Kerberos 5 encryption type assigned numbers. +package etypeID + +// Kerberos encryption type assigned numbers. +const ( + //RESERVED : 0 + DES_CBC_CRC int32 = 1 + DES_CBC_MD4 int32 = 2 + DES_CBC_MD5 int32 = 3 + DES_CBC_RAW int32 = 4 + DES3_CBC_MD5 int32 = 5 + DES3_CBC_RAW int32 = 6 + DES3_CBC_SHA1 int32 = 7 + DES_HMAC_SHA1 int32 = 8 + DSAWITHSHA1_CMSOID int32 = 9 + MD5WITHRSAENCRYPTION_CMSOID int32 = 10 + SHA1WITHRSAENCRYPTION_CMSOID int32 = 11 + RC2CBC_ENVOID int32 = 12 + RSAENCRYPTION_ENVOID int32 = 13 + RSAES_OAEP_ENV_OID int32 = 14 + DES_EDE3_CBC_ENV_OID int32 = 15 + DES3_CBC_SHA1_KD int32 = 16 + AES128_CTS_HMAC_SHA1_96 int32 = 17 + AES256_CTS_HMAC_SHA1_96 int32 = 18 + AES128_CTS_HMAC_SHA256_128 int32 = 19 + AES256_CTS_HMAC_SHA384_192 int32 = 20 + //UNASSIGNED : 21-22 + RC4_HMAC int32 = 23 + RC4_HMAC_EXP int32 = 24 + CAMELLIA128_CTS_CMAC int32 = 25 + CAMELLIA256_CTS_CMAC int32 = 26 + //UNASSIGNED : 27-64 + SUBKEY_KEYMATERIAL int32 = 65 + //UNASSIGNED : 66-2147483647 +) + +// ETypesByName is a map of EncType names to their assigned EncType number. +var ETypesByName = map[string]int32{ + "des-cbc-crc": DES_CBC_CRC, + "des-cbc-md4": DES_CBC_MD4, + "des-cbc-md5": DES_CBC_MD5, + "des-cbc-raw": DES_CBC_RAW, + "des3-cbc-md5": DES3_CBC_MD5, + "des3-cbc-raw": DES3_CBC_RAW, + "des3-cbc-sha1": DES3_CBC_SHA1, + "des3-hmac-sha1": DES_HMAC_SHA1, + "des3-cbc-sha1-kd": DES3_CBC_SHA1_KD, + "des-hmac-sha1": DES_HMAC_SHA1, + "dsaWithSHA1-CmsOID": DSAWITHSHA1_CMSOID, + "md5WithRSAEncryption-CmsOID": MD5WITHRSAENCRYPTION_CMSOID, + "sha1WithRSAEncryption-CmsOID": SHA1WITHRSAENCRYPTION_CMSOID, + "rc2CBC-EnvOID": RC2CBC_ENVOID, + "rsaEncryption-EnvOID": RSAENCRYPTION_ENVOID, + "rsaES-OAEP-ENV-OID": RSAES_OAEP_ENV_OID, + "des-ede3-cbc-Env-OID": DES_EDE3_CBC_ENV_OID, + "aes128-cts-hmac-sha1-96": AES128_CTS_HMAC_SHA1_96, + "aes128-cts": AES128_CTS_HMAC_SHA1_96, + "aes128-sha1": AES128_CTS_HMAC_SHA1_96, + "aes256-cts-hmac-sha1-96": AES256_CTS_HMAC_SHA1_96, + "aes256-cts": AES256_CTS_HMAC_SHA1_96, + "aes256-sha1": AES256_CTS_HMAC_SHA1_96, + "aes128-cts-hmac-sha256-128": AES128_CTS_HMAC_SHA256_128, + "aes128-sha2": AES128_CTS_HMAC_SHA256_128, + "aes256-cts-hmac-sha384-192": AES256_CTS_HMAC_SHA384_192, + "aes256-sha2": AES256_CTS_HMAC_SHA384_192, + "arcfour-hmac": RC4_HMAC, + "rc4-hmac": RC4_HMAC, + "arcfour-hmac-md5": RC4_HMAC, + "arcfour-hmac-exp": RC4_HMAC_EXP, + "rc4-hmac-exp": RC4_HMAC_EXP, + "arcfour-hmac-md5-exp": RC4_HMAC_EXP, + "camellia128-cts-cmac": CAMELLIA128_CTS_CMAC, + "camellia128-cts": CAMELLIA128_CTS_CMAC, + "camellia256-cts-cmac": CAMELLIA256_CTS_CMAC, + "camellia256-cts": CAMELLIA256_CTS_CMAC, + "subkey-keymaterial": SUBKEY_KEYMATERIAL, +} + +// EtypeSupported resolves the etype name string to the etype ID. +// If zero is returned the etype is not supported by gokrb5. +func EtypeSupported(etype string) int32 { + // Slice of supported enctype IDs + s := []int32{ + AES128_CTS_HMAC_SHA1_96, + AES256_CTS_HMAC_SHA1_96, + AES128_CTS_HMAC_SHA256_128, + AES256_CTS_HMAC_SHA384_192, + DES3_CBC_SHA1_KD, + RC4_HMAC, + } + id := ETypesByName[etype] + if id == 0 { + return id + } + for _, sid := range s { + if id == sid { + return id + } + } + return 0 +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/flags/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/flags/constants.go new file mode 100644 index 0000000..787801f --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/flags/constants.go @@ -0,0 +1,36 @@ +// Package flags provides Kerberos 5 flag assigned numbers. +package flags + +// Flag values for KRB5 messages and tickets. +const ( + Reserved = 0 + Forwardable = 1 + Forwarded = 2 + Proxiable = 3 + Proxy = 4 + AllowPostDate = 5 + MayPostDate = 5 + PostDated = 6 + Invalid = 7 + Renewable = 8 + Initial = 9 + PreAuthent = 10 + HWAuthent = 11 + OptHardwareAuth = 11 + RequestAnonymous = 12 + TransitedPolicyChecked = 12 + OKAsDelegate = 13 + EncPARep = 15 + Canonicalize = 15 + DisableTransitedCheck = 26 + RenewableOK = 27 + EncTktInSkey = 28 + Renew = 30 + Validate = 31 + + // AP Option Flags + // 0 Reserved for future use. + APOptionUseSessionKey = 1 + APOptionMutualRequired = 2 + // 3-31 Reserved for future use. +) diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/keyusage/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/keyusage/constants.go new file mode 100644 index 0000000..5b232d1 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/keyusage/constants.go @@ -0,0 +1,42 @@ +// Package keyusage provides Kerberos 5 key usage assigned numbers. +package keyusage + +// Key usage numbers. +const ( + AS_REQ_PA_ENC_TIMESTAMP = 1 + KDC_REP_TICKET = 2 + AS_REP_ENCPART = 3 + TGS_REQ_KDC_REQ_BODY_AUTHDATA_SESSION_KEY = 4 + TGS_REQ_KDC_REQ_BODY_AUTHDATA_SUB_KEY = 5 + TGS_REQ_PA_TGS_REQ_AP_REQ_AUTHENTICATOR_CHKSUM = 6 + TGS_REQ_PA_TGS_REQ_AP_REQ_AUTHENTICATOR = 7 + TGS_REP_ENCPART_SESSION_KEY = 8 + TGS_REP_ENCPART_AUTHENTICATOR_SUB_KEY = 9 + AP_REQ_AUTHENTICATOR_CHKSUM = 10 + AP_REQ_AUTHENTICATOR = 11 + AP_REP_ENCPART = 12 + KRB_PRIV_ENCPART = 13 + KRB_CRED_ENCPART = 14 + KRB_SAFE_CHKSUM = 15 + KERB_NON_KERB_SALT = 16 + KERB_NON_KERB_CKSUM_SALT = 17 + //18. Reserved for future use in Kerberos and related protocols. + AD_KDC_ISSUED_CHKSUM = 19 + //20-21. Reserved for future use in Kerberos and related protocols. + GSSAPI_ACCEPTOR_SEAL = 22 + GSSAPI_ACCEPTOR_SIGN = 23 + GSSAPI_INITIATOR_SEAL = 24 + GSSAPI_INITIATOR_SIGN = 25 + KEY_USAGE_FAST_REQ_CHKSUM = 50 + KEY_USAGE_FAST_ENC = 51 + KEY_USAGE_FAST_REP = 52 + KEY_USAGE_FAST_FINISHED = 53 + KEY_USAGE_ENC_CHALLENGE_CLIENT = 54 + KEY_USAGE_ENC_CHALLENGE_KDC = 55 + KEY_USAGE_AS_REQ = 56 + //26-511. Reserved for future use in Kerberos and related protocols. + //512-1023. Reserved for uses internal to a Kerberos implementation. + //1024. Encryption for application use in protocols that do not specify key usage values + //1025. Checksums for application use in protocols that do not specify key usage values + //1026-2047. Reserved for application use. +) diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/msgtype/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/msgtype/constants.go new file mode 100644 index 0000000..ad21810 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/msgtype/constants.go @@ -0,0 +1,18 @@ +// Package msgtype provides Kerberos 5 message type assigned numbers. +package msgtype + +// KRB message type IDs. +const ( + KRB_AS_REQ = 10 //Request for initial authentication + KRB_AS_REP = 11 //Response to KRB_AS_REQ request + KRB_TGS_REQ = 12 //Request for authentication based on TGT + KRB_TGS_REP = 13 //Response to KRB_TGS_REQ request + KRB_AP_REQ = 14 //Application request to server + KRB_AP_REP = 15 //Response to KRB_AP_REQ_MUTUAL + KRB_RESERVED16 = 16 //Reserved for user-to-user krb_tgt_request + KRB_RESERVED17 = 17 //Reserved for user-to-user krb_tgt_reply + KRB_SAFE = 20 // Safe (checksummed) application message + KRB_PRIV = 21 // Private (encrypted) application message + KRB_CRED = 22 //Private (encrypted) message to forward credentials + KRB_ERROR = 30 //Error response +) diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/nametype/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/nametype/constants.go new file mode 100644 index 0000000..c111a05 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/nametype/constants.go @@ -0,0 +1,15 @@ +// Package nametype provides Kerberos 5 principal name type numbers. +package nametype + +// Kerberos name type IDs. +const ( + KRB_NT_UNKNOWN int32 = 0 //Name type not known + KRB_NT_PRINCIPAL int32 = 1 //Just the name of the principal as in DCE, or for users + KRB_NT_SRV_INST int32 = 2 //Service and other unique instance (krbtgt) + KRB_NT_SRV_HST int32 = 3 //Service with host name as instance (telnet, rcommands) + KRB_NT_SRV_XHST int32 = 4 //Service with host as remaining components + KRB_NT_UID int32 = 5 //Unique ID + KRB_NT_X500_PRINCIPAL int32 = 6 //Encoded X.509 Distinguished name [RFC2253] + KRB_NT_SMTP_NAME int32 = 7 //Name in form of SMTP email name (e.g., user@example.com) + KRB_NT_ENTERPRISE int32 = 10 //Enterprise name; may be mapped to principal name +) diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/patype/constants.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/patype/constants.go new file mode 100644 index 0000000..aa04f63 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/iana/patype/constants.go @@ -0,0 +1,77 @@ +// Package patype provides Kerberos 5 pre-authentication type assigned numbers. +package patype + +// Kerberos pre-authentication type assigned numbers. +const ( + PA_TGS_REQ int32 = 1 + PA_ENC_TIMESTAMP int32 = 2 + PA_PW_SALT int32 = 3 + //RESERVED : 4 + PA_ENC_UNIX_TIME int32 = 5 + PA_SANDIA_SECUREID int32 = 6 + PA_SESAME int32 = 7 + PA_OSF_DCE int32 = 8 + PA_CYBERSAFE_SECUREID int32 = 9 + PA_AFS3_SALT int32 = 10 + PA_ETYPE_INFO int32 = 11 + PA_SAM_CHALLENGE int32 = 12 + PA_SAM_RESPONSE int32 = 13 + PA_PK_AS_REQ_OLD int32 = 14 + PA_PK_AS_REP_OLD int32 = 15 + PA_PK_AS_REQ int32 = 16 + PA_PK_AS_REP int32 = 17 + PA_PK_OCSP_RESPONSE int32 = 18 + PA_ETYPE_INFO2 int32 = 19 + PA_USE_SPECIFIED_KVNO int32 = 20 + PA_SVR_REFERRAL_INFO int32 = 20 + PA_SAM_REDIRECT int32 = 21 + PA_GET_FROM_TYPED_DATA int32 = 22 + TD_PADATA int32 = 22 + PA_SAM_ETYPE_INFO int32 = 23 + PA_ALT_PRINC int32 = 24 + PA_SERVER_REFERRAL int32 = 25 + //UNASSIGNED : 26-29 + PA_SAM_CHALLENGE2 int32 = 30 + PA_SAM_RESPONSE2 int32 = 31 + //UNASSIGNED : 32-40 + PA_EXTRA_TGT int32 = 41 + //UNASSIGNED : 42-100 + TD_PKINIT_CMS_CERTIFICATES int32 = 101 + TD_KRB_PRINCIPAL int32 = 102 + TD_KRB_REALM int32 = 103 + TD_TRUSTED_CERTIFIERS int32 = 104 + TD_CERTIFICATE_INDEX int32 = 105 + TD_APP_DEFINED_ERROR int32 = 106 + TD_REQ_NONCE int32 = 107 + TD_REQ_SEQ int32 = 108 + TD_DH_PARAMETERS int32 = 109 + //UNASSIGNED : 110 + TD_CMS_DIGEST_ALGORITHMS int32 = 111 + TD_CERT_DIGEST_ALGORITHMS int32 = 112 + //UNASSIGNED : 113-127 + PA_PAC_REQUEST int32 = 128 + PA_FOR_USER int32 = 129 + PA_FOR_X509_USER int32 = 130 + PA_FOR_CHECK_DUPS int32 = 131 + PA_AS_CHECKSUM int32 = 132 + PA_FX_COOKIE int32 = 133 + PA_AUTHENTICATION_SET int32 = 134 + PA_AUTH_SET_SELECTED int32 = 135 + PA_FX_FAST int32 = 136 + PA_FX_ERROR int32 = 137 + PA_ENCRYPTED_CHALLENGE int32 = 138 + //UNASSIGNED : 139-140 + PA_OTP_CHALLENGE int32 = 141 + PA_OTP_REQUEST int32 = 142 + PA_OTP_CONFIRM int32 = 143 + PA_OTP_PIN_CHANGE int32 = 144 + PA_EPAK_AS_REQ int32 = 145 + PA_EPAK_AS_REP int32 = 146 + PA_PKINIT_KX int32 = 147 + PA_PKU2U_NAME int32 = 148 + PA_REQ_ENC_PA_REP int32 = 149 + PA_AS_FRESHNESS int32 = 150 + //UNASSIGNED : 151-164 + PA_SUPPORTED_ETYPES int32 = 165 + PA_EXTENDED_ERROR int32 = 166 +) diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/changepasswddata.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/changepasswddata.go new file mode 100644 index 0000000..a3e2efd --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/changepasswddata.go @@ -0,0 +1,23 @@ +package kadmin + +import ( + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +// ChangePasswdData is the payload to a password change message. +type ChangePasswdData struct { + NewPasswd []byte `asn1:"explicit,tag:0"` + TargName types.PrincipalName `asn1:"explicit,optional,tag:1"` + TargRealm string `asn1:"generalstring,optional,explicit,tag:2"` +} + +// Marshal ChangePasswdData into a byte slice. +func (c *ChangePasswdData) Marshal() ([]byte, error) { + b, err := asn1.Marshal(*c) + if err != nil { + return []byte{}, err + } + //b = asn1tools.AddASNAppTag(b, asnAppTag.) + return b, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/message.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/message.go new file mode 100644 index 0000000..157fcad --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/message.go @@ -0,0 +1,114 @@ +package kadmin + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "math" + + "gopkg.in/jcmturner/gokrb5.v7/messages" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +const ( + verisonHex = "ff80" +) + +// Request message for changing password. +type Request struct { + APREQ messages.APReq + KRBPriv messages.KRBPriv +} + +// Reply message for a password change. +type Reply struct { + MessageLength int + Version int + APREPLength int + APREP messages.APRep + KRBPriv messages.KRBPriv + KRBError messages.KRBError + IsKRBError bool + ResultCode uint16 + Result string +} + +// Marshal a Request into a byte slice. +func (m *Request) Marshal() (b []byte, err error) { + b = []byte{255, 128} // protocol version number: contains the hex constant 0xff80 (big-endian integer). + ab, e := m.APREQ.Marshal() + if e != nil { + err = fmt.Errorf("error marshaling AP_REQ: %v", e) + return + } + if len(ab) > math.MaxUint16 { + err = errors.New("length of AP_REQ greater then max Uint16 size") + return + } + al := make([]byte, 2) + binary.BigEndian.PutUint16(al, uint16(len(ab))) + b = append(b, al...) + b = append(b, ab...) + pb, e := m.KRBPriv.Marshal() + if e != nil { + err = fmt.Errorf("error marshaling KRB_Priv: %v", e) + return + } + b = append(b, pb...) + if len(b)+2 > math.MaxUint16 { + err = errors.New("length of message greater then max Uint16 size") + return + } + ml := make([]byte, 2) + binary.BigEndian.PutUint16(ml, uint16(len(b)+2)) + b = append(ml, b...) + return +} + +// Unmarshal a byte slice into a Reply. +func (m *Reply) Unmarshal(b []byte) error { + m.MessageLength = int(binary.BigEndian.Uint16(b[0:2])) + m.Version = int(binary.BigEndian.Uint16(b[2:4])) + if m.Version != 1 { + return fmt.Errorf("kadmin reply has incorrect protocol version number: %d", m.Version) + } + m.APREPLength = int(binary.BigEndian.Uint16(b[4:6])) + if m.APREPLength != 0 { + err := m.APREP.Unmarshal(b[6 : 6+m.APREPLength]) + if err != nil { + return err + } + err = m.KRBPriv.Unmarshal(b[6+m.APREPLength : m.MessageLength]) + if err != nil { + return err + } + } else { + m.IsKRBError = true + m.KRBError.Unmarshal(b[6:m.MessageLength]) + m.ResultCode, m.Result = parseResponse(m.KRBError.EData) + } + return nil +} + +func parseResponse(b []byte) (c uint16, s string) { + c = binary.BigEndian.Uint16(b[0:2]) + buf := bytes.NewBuffer(b[2:]) + m := make([]byte, len(b)-2) + binary.Read(buf, binary.BigEndian, &m) + s = string(m) + return +} + +// Decrypt the encrypted part of the KRBError within the change password Reply. +func (m *Reply) Decrypt(key types.EncryptionKey) error { + if m.IsKRBError { + return m.KRBError + } + err := m.KRBPriv.DecryptEncPart(key) + if err != nil { + return err + } + m.ResultCode, m.Result = parseResponse(m.KRBPriv.DecryptedEncPart.UserData) + return nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/passwd.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/passwd.go new file mode 100644 index 0000000..2a7491a --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/kadmin/passwd.go @@ -0,0 +1,68 @@ +// Package kadmin provides Kerberos administration capabilities. +package kadmin + +import ( + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/messages" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +// ChangePasswdMsg generate a change password request and also return the key needed to decrypt the reply. +func ChangePasswdMsg(cname types.PrincipalName, realm, password string, tkt messages.Ticket, sessionKey types.EncryptionKey) (r Request, k types.EncryptionKey, err error) { + // Create change password data struct and marshal to bytes + chgpasswd := ChangePasswdData{ + NewPasswd: []byte(password), + TargName: cname, + TargRealm: realm, + } + chpwdb, err := chgpasswd.Marshal() + if err != nil { + err = krberror.Errorf(err, krberror.KRBMsgError, "error marshaling change passwd data") + return + } + + // Generate authenticator + auth, err := types.NewAuthenticator(realm, cname) + if err != nil { + err = krberror.Errorf(err, krberror.KRBMsgError, "error generating new authenticator") + return + } + etype, err := crypto.GetEtype(sessionKey.KeyType) + if err != nil { + err = krberror.Errorf(err, krberror.KRBMsgError, "error generating subkey etype") + return + } + err = auth.GenerateSeqNumberAndSubKey(etype.GetETypeID(), etype.GetKeyByteSize()) + if err != nil { + err = krberror.Errorf(err, krberror.KRBMsgError, "error generating subkey") + return + } + k = auth.SubKey + + // Generate AP_REQ + APreq, err := messages.NewAPReq(tkt, sessionKey, auth) + if err != nil { + return + } + + // Form the KRBPriv encpart data + kp := messages.EncKrbPrivPart{ + UserData: chpwdb, + Timestamp: auth.CTime, + Usec: auth.Cusec, + SequenceNumber: auth.SeqNumber, + } + kpriv := messages.NewKRBPriv(kp) + err = kpriv.EncryptEncPart(k) + if err != nil { + err = krberror.Errorf(err, krberror.EncryptingError, "error encrypting change passwd data") + return + } + + r = Request{ + APREQ: APreq, + KRBPriv: kpriv, + } + return +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/keytab/keytab.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/keytab/keytab.go new file mode 100644 index 0000000..22c0204 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/keytab/keytab.go @@ -0,0 +1,466 @@ +// Package keytab implements Kerberos keytabs: https://web.mit.edu/kerberos/krb5-devel/doc/formats/keytab_file_format.html. +package keytab + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + "io/ioutil" + "time" + "unsafe" + + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +const ( + keytabFirstByte byte = 05 +) + +// Keytab struct. +type Keytab struct { + version uint8 + Entries []entry +} + +// Keytab entry struct. +type entry struct { + Principal principal + Timestamp time.Time + KVNO8 uint8 + Key types.EncryptionKey + KVNO uint32 +} + +// Keytab entry principal struct. +type principal struct { + NumComponents int16 + Realm string + Components []string + NameType int32 +} + +// New creates new, empty Keytab type. +func New() *Keytab { + var e []entry + return &Keytab{ + version: 0, + Entries: e, + } +} + +// GetEncryptionKey returns the EncryptionKey from the Keytab for the newest entry with the required kvno, etype and matching principal. +func (kt *Keytab) GetEncryptionKey(princName types.PrincipalName, realm string, kvno int, etype int32) (types.EncryptionKey, error) { + //TODO (theme: KVNO from keytab) this function should return the kvno too + var key types.EncryptionKey + var t time.Time + for _, k := range kt.Entries { + if k.Principal.Realm == realm && len(k.Principal.Components) == len(princName.NameString) && + k.Key.KeyType == etype && + (k.KVNO == uint32(kvno) || kvno == 0) && + k.Timestamp.After(t) { + p := true + for i, n := range k.Principal.Components { + if princName.NameString[i] != n { + p = false + break + } + } + if p { + key = k.Key + t = k.Timestamp + } + } + } + if len(key.KeyValue) < 1 { + return key, fmt.Errorf("matching key not found in keytab. Looking for %v realm: %v kvno: %v etype: %v", princName.NameString, realm, kvno, etype) + } + return key, nil +} + +// Create a new Keytab entry. +func newKeytabEntry() entry { + var b []byte + return entry{ + Principal: newPrincipal(), + Timestamp: time.Time{}, + KVNO8: 0, + Key: types.EncryptionKey{ + KeyType: 0, + KeyValue: b, + }, + KVNO: 0, + } +} + +// Create a new principal. +func newPrincipal() principal { + var c []string + return principal{ + NumComponents: 0, + Realm: "", + Components: c, + NameType: 0, + } +} + +// Load a Keytab file into a Keytab type. +func Load(ktPath string) (*Keytab, error) { + kt := new(Keytab) + b, err := ioutil.ReadFile(ktPath) + if err != nil { + return kt, err + } + err = kt.Unmarshal(b) + return kt, err +} + +// Marshal keytab into byte slice +func (kt *Keytab) Marshal() ([]byte, error) { + b := []byte{keytabFirstByte, kt.version} + for _, e := range kt.Entries { + eb, err := e.marshal(int(kt.version)) + if err != nil { + return b, err + } + b = append(b, eb...) + } + return b, nil +} + +// Write the keytab bytes to io.Writer. +// Returns the number of bytes written +func (kt *Keytab) Write(w io.Writer) (int, error) { + b, err := kt.Marshal() + if err != nil { + return 0, fmt.Errorf("error marshaling keytab: %v", err) + } + return w.Write(b) +} + +// Unmarshal byte slice of Keytab data into Keytab type. +func (kt *Keytab) Unmarshal(b []byte) error { + if len(b) < 2 { + return fmt.Errorf("byte array is less than 2 bytes: %d", len(b)) + } + + //The first byte of the file always has the value 5 + if b[0] != keytabFirstByte { + return errors.New("invalid keytab data. First byte does not equal 5") + } + //Get keytab version + //The 2nd byte contains the version number (1 or 2) + kt.version = b[1] + if kt.version != 1 && kt.version != 2 { + return errors.New("invalid keytab data. Keytab version is neither 1 nor 2") + } + //Version 1 of the file format uses native byte order for integer representations. Version 2 always uses big-endian byte order + var endian binary.ByteOrder + endian = binary.BigEndian + if kt.version == 1 && isNativeEndianLittle() { + endian = binary.LittleEndian + } + /* + After the two-byte version indicator, the file contains a sequence of signed 32-bit record lengths followed by key records or holes. + A positive record length indicates a valid key entry whose size is equal to or less than the record length. + A negative length indicates a zero-filled hole whose size is the inverse of the length. + A length of 0 indicates the end of the file. + */ + // n tracks position in the byte array + n := 2 + l, err := readInt32(b, &n, &endian) + if err != nil { + return err + } + for l != 0 { + if l < 0 { + //Zero padded so skip over + l = l * -1 + n = n + int(l) + } else { + //fmt.Printf("Bytes for entry: %v\n", b[n:n+int(l)]) + if n < 0 { + return fmt.Errorf("%d can't be less than zero", n) + } + if n+int(l) > len(b) { + return fmt.Errorf("%s's length is less than %d", b, n+int(l)) + } + eb := b[n : n+int(l)] + n = n + int(l) + ke := newKeytabEntry() + // p keeps track as to where we are in the byte stream + var p int + var err error + parsePrincipal(eb, &p, kt, &ke, &endian) + ke.Timestamp, err = readTimestamp(eb, &p, &endian) + if err != nil { + return err + } + rei8, err := readInt8(eb, &p, &endian) + if err != nil { + return err + } + ke.KVNO8 = uint8(rei8) + rei16, err := readInt16(eb, &p, &endian) + if err != nil { + return err + } + ke.Key.KeyType = int32(rei16) + rei16, err = readInt16(eb, &p, &endian) + if err != nil { + return err + } + kl := int(rei16) + ke.Key.KeyValue, err = readBytes(eb, &p, kl, &endian) + if err != nil { + return err + } + //The 32-bit key version overrides the 8-bit key version. + // To determine if it is present, the implementation must check that at least 4 bytes remain in the record after the other fields are read, + // and that the value of the 32-bit integer contained in those bytes is non-zero. + if len(eb)-p >= 4 { + // The 32-bit key may be present + ri32, err := readInt32(eb, &p, &endian) + if err != nil { + return err + } + ke.KVNO = uint32(ri32) + } + if ke.KVNO == 0 { + // Handles if the value from the last 4 bytes was zero and also if there are not the 4 bytes present. Makes sense to put the same value here as KVNO8 + ke.KVNO = uint32(ke.KVNO8) + } + // Add the entry to the keytab + kt.Entries = append(kt.Entries, ke) + } + // Check if there are still 4 bytes left to read + // Also check that n is greater than zero + if n < 0 || n > len(b) || len(b[n:]) < 4 { + break + } + // Read the size of the next entry + l, err = readInt32(b, &n, &endian) + if err != nil { + return err + } + } + return nil +} + +func (e entry) marshal(v int) ([]byte, error) { + var b []byte + pb, err := e.Principal.marshal(v) + if err != nil { + return b, err + } + b = append(b, pb...) + + var endian binary.ByteOrder + endian = binary.BigEndian + if v == 1 && isNativeEndianLittle() { + endian = binary.LittleEndian + } + + t := make([]byte, 9) + endian.PutUint32(t[0:4], uint32(e.Timestamp.Unix())) + t[4] = e.KVNO8 + endian.PutUint16(t[5:7], uint16(e.Key.KeyType)) + endian.PutUint16(t[7:9], uint16(len(e.Key.KeyValue))) + b = append(b, t...) + + buf := new(bytes.Buffer) + err = binary.Write(buf, endian, e.Key.KeyValue) + if err != nil { + return b, err + } + b = append(b, buf.Bytes()...) + + t = make([]byte, 4) + endian.PutUint32(t, e.KVNO) + b = append(b, t...) + + // Add the length header + t = make([]byte, 4) + endian.PutUint32(t, uint32(len(b))) + b = append(t, b...) + return b, nil +} + +// Parse the Keytab bytes of a principal into a Keytab entry's principal. +func parsePrincipal(b []byte, p *int, kt *Keytab, ke *entry, e *binary.ByteOrder) error { + var err error + ke.Principal.NumComponents, err = readInt16(b, p, e) + if err != nil { + return err + } + if kt.version == 1 { + //In version 1 the number of components includes the realm. Minus 1 to make consistent with version 2 + ke.Principal.NumComponents-- + } + lenRealm, err := readInt16(b, p, e) + if err != nil { + return err + } + realmB, err := readBytes(b, p, int(lenRealm), e) + if err != nil { + return err + } + ke.Principal.Realm = string(realmB) + for i := 0; i < int(ke.Principal.NumComponents); i++ { + l, err := readInt16(b, p, e) + if err != nil { + return err + } + compB, err := readBytes(b, p, int(l), e) + if err != nil { + return err + } + ke.Principal.Components = append(ke.Principal.Components, string(compB)) + } + if kt.version != 1 { + //Name Type is omitted in version 1 + ke.Principal.NameType, err = readInt32(b, p, e) + if err != nil { + return err + } + } + return nil +} + +func (p principal) marshal(v int) ([]byte, error) { + //var b []byte + b := make([]byte, 2) + var endian binary.ByteOrder + endian = binary.BigEndian + if v == 1 && isNativeEndianLittle() { + endian = binary.LittleEndian + } + endian.PutUint16(b[0:], uint16(p.NumComponents)) + realm, err := marshalString(p.Realm, v) + if err != nil { + return b, err + } + b = append(b, realm...) + for _, c := range p.Components { + cb, err := marshalString(c, v) + if err != nil { + return b, err + } + b = append(b, cb...) + } + if v != 1 { + t := make([]byte, 4) + endian.PutUint32(t, uint32(p.NameType)) + b = append(b, t...) + } + return b, nil +} + +func marshalString(s string, v int) ([]byte, error) { + sb := []byte(s) + b := make([]byte, 2) + var endian binary.ByteOrder + endian = binary.BigEndian + if v == 1 && isNativeEndianLittle() { + endian = binary.LittleEndian + } + endian.PutUint16(b[0:], uint16(len(sb))) + buf := new(bytes.Buffer) + err := binary.Write(buf, endian, sb) + if err != nil { + return b, err + } + b = append(b, buf.Bytes()...) + return b, err +} + +// Read bytes representing a timestamp. +func readTimestamp(b []byte, p *int, e *binary.ByteOrder) (time.Time, error) { + i32, err := readInt32(b, p, e) + if err != nil { + return time.Time{}, err + } + return time.Unix(int64(i32), 0), nil +} + +// Read bytes representing an eight bit integer. +func readInt8(b []byte, p *int, e *binary.ByteOrder) (i int8, err error) { + if *p < 0 { + return 0, fmt.Errorf("%d cannot be less than zero", *p) + } + + if (*p + 1) > len(b) { + return 0, fmt.Errorf("%s's length is less than %d", b, *p+1) + } + buf := bytes.NewBuffer(b[*p : *p+1]) + binary.Read(buf, *e, &i) + *p++ + return +} + +// Read bytes representing a sixteen bit integer. +func readInt16(b []byte, p *int, e *binary.ByteOrder) (i int16, err error) { + if *p < 0 { + return 0, fmt.Errorf("%d cannot be less than zero", *p) + } + + if (*p + 2) > len(b) { + return 0, fmt.Errorf("%s's length is less than %d", b, *p+2) + } + + buf := bytes.NewBuffer(b[*p : *p+2]) + binary.Read(buf, *e, &i) + *p += 2 + return +} + +// Read bytes representing a thirty two bit integer. +func readInt32(b []byte, p *int, e *binary.ByteOrder) (i int32, err error) { + if *p < 0 { + return 0, fmt.Errorf("%d cannot be less than zero", *p) + } + + if (*p + 4) > len(b) { + return 0, fmt.Errorf("%s's length is less than %d", b, *p+4) + } + + buf := bytes.NewBuffer(b[*p : *p+4]) + binary.Read(buf, *e, &i) + *p += 4 + return +} + +func readBytes(b []byte, p *int, s int, e *binary.ByteOrder) ([]byte, error) { + if s < 0 { + return nil, fmt.Errorf("%d cannot be less than zero", s) + } + i := *p + s + if i > len(b) { + return nil, fmt.Errorf("%s's length is greater than %d", b, i) + } + buf := bytes.NewBuffer(b[*p:i]) + r := make([]byte, s) + if err := binary.Read(buf, *e, &r); err != nil { + return nil, err + } + *p += s + return r, nil +} + +func isNativeEndianLittle() bool { + var x = 0x012345678 + var p = unsafe.Pointer(&x) + var bp = (*[4]byte)(p) + + var endian bool + if 0x01 == bp[0] { + endian = false + } else if (0x78 & 0xff) == (bp[0] & 0xff) { + endian = true + } else { + // Default to big endian + endian = false + } + return endian +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/krberror/error.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/krberror/error.go new file mode 100644 index 0000000..d591bde --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/krberror/error.go @@ -0,0 +1,67 @@ +// Package krberror provides error type and functions for gokrb5. +package krberror + +import ( + "fmt" + "strings" +) + +// Error type descriptions. +const ( + separator = " < " + EncodingError = "Encoding_Error" + NetworkingError = "Networking_Error" + DecryptingError = "Decrypting_Error" + EncryptingError = "Encrypting_Error" + ChksumError = "Checksum_Error" + KRBMsgError = "KRBMessage_Handling_Error" + ConfigError = "Configuration_Error" + KDCError = "KDC_Error" +) + +// Krberror is an error type for gokrb5 +type Krberror struct { + RootCause string + EText []string +} + +// Error function to implement the error interface. +func (e Krberror) Error() string { + return fmt.Sprintf("[Root cause: %s] ", e.RootCause) + strings.Join(e.EText, separator) +} + +// Add another error statement to the error. +func (e *Krberror) Add(et string, s string) { + e.EText = append([]string{fmt.Sprintf("%s: %s", et, s)}, e.EText...) +} + +// NewKrberror creates a new instance of Krberror. +func NewKrberror(et, s string) Krberror { + return Krberror{ + RootCause: et, + EText: []string{s}, + } +} + +// Errorf appends to or creates a new Krberror. +func Errorf(err error, et, format string, a ...interface{}) Krberror { + if e, ok := err.(Krberror); ok { + e.Add(et, fmt.Sprintf(format, a...)) + return e + } + return NewErrorf(et, format+": %s", append(a, err)...) +} + +// NewErrorf creates a new Krberror from a formatted string. +func NewErrorf(et, format string, a ...interface{}) Krberror { + var s string + if len(a) > 0 { + s = fmt.Sprintf("%s: %s", et, fmt.Sprintf(format, a...)) + } else { + s = fmt.Sprintf("%s: %s", et, format) + } + return Krberror{ + RootCause: et, + EText: []string{s}, + } +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/APRep.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/APRep.go new file mode 100644 index 0000000..9c244f0 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/APRep.go @@ -0,0 +1,64 @@ +package messages + +import ( + "fmt" + "time" + + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag" + "gopkg.in/jcmturner/gokrb5.v7/iana/msgtype" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +/* +AP-REP ::= [APPLICATION 15] SEQUENCE { +pvno [0] INTEGER (5), +msg-type [1] INTEGER (15), +enc-part [2] EncryptedData -- EncAPRepPart +} + +EncAPRepPart ::= [APPLICATION 27] SEQUENCE { + ctime [0] KerberosTime, + cusec [1] Microseconds, + subkey [2] EncryptionKey OPTIONAL, + seq-number [3] UInt32 OPTIONAL +} +*/ + +// APRep implements RFC 4120 KRB_AP_REP: https://tools.ietf.org/html/rfc4120#section-5.5.2. +type APRep struct { + PVNO int `asn1:"explicit,tag:0"` + MsgType int `asn1:"explicit,tag:1"` + EncPart types.EncryptedData `asn1:"explicit,tag:2"` +} + +// EncAPRepPart is the encrypted part of KRB_AP_REP. +type EncAPRepPart struct { + CTime time.Time `asn1:"generalized,explicit,tag:0"` + Cusec int `asn1:"explicit,tag:1"` + Subkey types.EncryptionKey `asn1:"optional,explicit,tag:2"` + SequenceNumber int64 `asn1:"optional,explicit,tag:3"` +} + +// Unmarshal bytes b into the APRep struct. +func (a *APRep) Unmarshal(b []byte) error { + _, err := asn1.UnmarshalWithParams(b, a, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.APREP)) + if err != nil { + return processUnmarshalReplyError(b, err) + } + expectedMsgType := msgtype.KRB_AP_REP + if a.MsgType != expectedMsgType { + return krberror.NewErrorf(krberror.KRBMsgError, "message ID does not indicate a KRB_AP_REP. Expected: %v; Actual: %v", expectedMsgType, a.MsgType) + } + return nil +} + +// Unmarshal bytes b into the APRep encrypted part struct. +func (a *EncAPRepPart) Unmarshal(b []byte) error { + _, err := asn1.UnmarshalWithParams(b, a, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.EncAPRepPart)) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "AP_REP unmarshal error") + } + return nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/APReq.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/APReq.go new file mode 100644 index 0000000..e1ed4ae --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/APReq.go @@ -0,0 +1,220 @@ +package messages + +import ( + "fmt" + "time" + + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/asn1tools" + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/iana" + "gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag" + "gopkg.in/jcmturner/gokrb5.v7/iana/errorcode" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/iana/msgtype" + "gopkg.in/jcmturner/gokrb5.v7/keytab" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +/*AP-REQ ::= [APPLICATION 14] SEQUENCE { +pvno [0] INTEGER (5), +msg-type [1] INTEGER (14), +ap-options [2] APOptions, +ticket [3] Ticket, +authenticator [4] EncryptedData -- Authenticator +} + +APOptions ::= KerberosFlags +-- reserved(0), +-- use-session-key(1), +-- mutual-required(2)*/ + +type marshalAPReq struct { + PVNO int `asn1:"explicit,tag:0"` + MsgType int `asn1:"explicit,tag:1"` + APOptions asn1.BitString `asn1:"explicit,tag:2"` + // Ticket needs to be a raw value as it is wrapped in an APPLICATION tag + Ticket asn1.RawValue `asn1:"explicit,tag:3"` + EncryptedAuthenticator types.EncryptedData `asn1:"explicit,tag:4"` +} + +// APReq implements RFC 4120 KRB_AP_REQ: https://tools.ietf.org/html/rfc4120#section-5.5.1. +type APReq struct { + PVNO int `asn1:"explicit,tag:0"` + MsgType int `asn1:"explicit,tag:1"` + APOptions asn1.BitString `asn1:"explicit,tag:2"` + Ticket Ticket `asn1:"explicit,tag:3"` + EncryptedAuthenticator types.EncryptedData `asn1:"explicit,tag:4"` + Authenticator types.Authenticator `asn1:"optional"` +} + +// NewAPReq generates a new KRB_AP_REQ struct. +func NewAPReq(tkt Ticket, sessionKey types.EncryptionKey, auth types.Authenticator) (APReq, error) { + var a APReq + ed, err := encryptAuthenticator(auth, sessionKey, tkt) + if err != nil { + return a, krberror.Errorf(err, krberror.KRBMsgError, "error creating Authenticator for AP_REQ") + } + a = APReq{ + PVNO: iana.PVNO, + MsgType: msgtype.KRB_AP_REQ, + APOptions: types.NewKrbFlags(), + Ticket: tkt, + EncryptedAuthenticator: ed, + } + return a, nil +} + +// Encrypt Authenticator +func encryptAuthenticator(a types.Authenticator, sessionKey types.EncryptionKey, tkt Ticket) (types.EncryptedData, error) { + var ed types.EncryptedData + m, err := a.Marshal() + if err != nil { + return ed, krberror.Errorf(err, krberror.EncodingError, "marshaling error of EncryptedData form of Authenticator") + } + usage := authenticatorKeyUsage(tkt.SName) + ed, err = crypto.GetEncryptedData(m, sessionKey, uint32(usage), tkt.EncPart.KVNO) + if err != nil { + return ed, krberror.Errorf(err, krberror.EncryptingError, "error encrypting Authenticator") + } + return ed, nil +} + +// DecryptAuthenticator decrypts the Authenticator within the AP_REQ. +// sessionKey may simply be the key within the decrypted EncPart of the ticket within the AP_REQ. +func (a *APReq) DecryptAuthenticator(sessionKey types.EncryptionKey) error { + usage := authenticatorKeyUsage(a.Ticket.SName) + ab, e := crypto.DecryptEncPart(a.EncryptedAuthenticator, sessionKey, uint32(usage)) + if e != nil { + return fmt.Errorf("error decrypting authenticator: %v", e) + } + err := a.Authenticator.Unmarshal(ab) + if err != nil { + return fmt.Errorf("error unmarshaling authenticator: %v", err) + } + return nil +} + +func authenticatorKeyUsage(pn types.PrincipalName) int { + if pn.NameString[0] == "krbtgt" { + return keyusage.TGS_REQ_PA_TGS_REQ_AP_REQ_AUTHENTICATOR + } + return keyusage.AP_REQ_AUTHENTICATOR +} + +// Unmarshal bytes b into the APReq struct. +func (a *APReq) Unmarshal(b []byte) error { + var m marshalAPReq + _, err := asn1.UnmarshalWithParams(b, &m, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.APREQ)) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "unmarshal error of AP_REQ") + } + if m.MsgType != msgtype.KRB_AP_REQ { + return NewKRBError(types.PrincipalName{}, "", errorcode.KRB_AP_ERR_MSG_TYPE, errorcode.Lookup(errorcode.KRB_AP_ERR_MSG_TYPE)) + } + a.PVNO = m.PVNO + a.MsgType = m.MsgType + a.APOptions = m.APOptions + a.EncryptedAuthenticator = m.EncryptedAuthenticator + a.Ticket, err = unmarshalTicket(m.Ticket.Bytes) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "unmarshaling error of Ticket within AP_REQ") + } + return nil +} + +// Marshal APReq struct. +func (a *APReq) Marshal() ([]byte, error) { + m := marshalAPReq{ + PVNO: a.PVNO, + MsgType: a.MsgType, + APOptions: a.APOptions, + EncryptedAuthenticator: a.EncryptedAuthenticator, + } + var b []byte + b, err := a.Ticket.Marshal() + if err != nil { + return b, err + } + m.Ticket = asn1.RawValue{ + Class: asn1.ClassContextSpecific, + IsCompound: true, + Tag: 3, + Bytes: b, + } + mk, err := asn1.Marshal(m) + if err != nil { + return mk, krberror.Errorf(err, krberror.EncodingError, "marshaling error of AP_REQ") + } + mk = asn1tools.AddASNAppTag(mk, asnAppTag.APREQ) + return mk, nil +} + +// Verify an AP_REQ using service's keytab, spn and max acceptable clock skew duration. +// The service ticket encrypted part and authenticator will be decrypted as part of this operation. +func (a *APReq) Verify(kt *keytab.Keytab, d time.Duration, cAddr types.HostAddress) (bool, error) { + // Decrypt ticket's encrypted part with service key + //TODO decrypt with service's session key from its TGT is use-to-user. Need to figure out how to get TGT. + //if types.IsFlagSet(&a.APOptions, flags.APOptionUseSessionKey) { + // //If the USE-SESSION-KEY flag is set in the ap-options field, it indicates to + // //the server that user-to-user authentication is in use, and that the ticket + // //is encrypted in the session key from the server's TGT rather than in the server's secret key. + // err := a.Ticket.Decrypt(tgt.DecryptedEncPart.Key) + // if err != nil { + // return false, krberror.Errorf(err, krberror.DecryptingError, "error decrypting encpart of ticket provided using session key") + // } + //} else { + // // Because it is possible for the server to be registered in multiple + // // realms, with different keys in each, the srealm field in the + // // unencrypted portion of the ticket in the KRB_AP_REQ is used to + // // specify which secret key the server should use to decrypt that + // // ticket.The KRB_AP_ERR_NOKEY error code is returned if the server + // // doesn't have the proper key to decipher the ticket. + // // The ticket is decrypted using the version of the server's key + // // specified by the ticket. + // err := a.Ticket.DecryptEncPart(*kt, &a.Ticket.SName) + // if err != nil { + // return false, krberror.Errorf(err, krberror.DecryptingError, "error decrypting encpart of service ticket provided") + // } + //} + err := a.Ticket.DecryptEncPart(kt, &a.Ticket.SName) + if err != nil { + return false, krberror.Errorf(err, krberror.DecryptingError, "error decrypting encpart of service ticket provided") + } + + // Check time validity of ticket + ok, err := a.Ticket.Valid(d) + if err != nil || !ok { + return ok, err + } + + // Check client's address is listed in the client addresses in the ticket + if len(a.Ticket.DecryptedEncPart.CAddr) > 0 { + //The addresses in the ticket (if any) are then searched for an address matching the operating-system reported + //address of the client. If no match is found or the server insists on ticket addresses but none are present in + //the ticket, the KRB_AP_ERR_BADADDR error is returned. + if !types.HostAddressesContains(a.Ticket.DecryptedEncPart.CAddr, cAddr) { + return false, NewKRBError(a.Ticket.SName, a.Ticket.Realm, errorcode.KRB_AP_ERR_BADADDR, "client address not within the list contained in the service ticket") + } + } + + // Decrypt authenticator with session key from ticket's encrypted part + err = a.DecryptAuthenticator(a.Ticket.DecryptedEncPart.Key) + if err != nil { + return false, NewKRBError(a.Ticket.SName, a.Ticket.Realm, errorcode.KRB_AP_ERR_BAD_INTEGRITY, "could not decrypt authenticator") + } + + // Check CName in authenticator is the same as that in the ticket + if !a.Authenticator.CName.Equal(a.Ticket.DecryptedEncPart.CName) { + return false, NewKRBError(a.Ticket.SName, a.Ticket.Realm, errorcode.KRB_AP_ERR_BADMATCH, "CName in Authenticator does not match that in service ticket") + } + + // Check the clock skew between the client and the service server + ct := a.Authenticator.CTime.Add(time.Duration(a.Authenticator.Cusec) * time.Microsecond) + t := time.Now().UTC() + if t.Sub(ct) > d || ct.Sub(t) > d { + return false, NewKRBError(a.Ticket.SName, a.Ticket.Realm, errorcode.KRB_AP_ERR_SKEW, fmt.Sprintf("clock skew with client too large. greater than %v seconds", d)) + } + return true, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KDCRep.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KDCRep.go new file mode 100644 index 0000000..76c89c3 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KDCRep.go @@ -0,0 +1,312 @@ +package messages + +// Reference: https://www.ietf.org/rfc/rfc4120.txt +// Section: 5.4.2 + +import ( + "fmt" + "time" + + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/config" + "gopkg.in/jcmturner/gokrb5.v7/credentials" + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag" + "gopkg.in/jcmturner/gokrb5.v7/iana/flags" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/iana/msgtype" + "gopkg.in/jcmturner/gokrb5.v7/iana/patype" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +type marshalKDCRep struct { + PVNO int `asn1:"explicit,tag:0"` + MsgType int `asn1:"explicit,tag:1"` + PAData types.PADataSequence `asn1:"explicit,optional,tag:2"` + CRealm string `asn1:"generalstring,explicit,tag:3"` + CName types.PrincipalName `asn1:"explicit,tag:4"` + // Ticket needs to be a raw value as it is wrapped in an APPLICATION tag + Ticket asn1.RawValue `asn1:"explicit,tag:5"` + EncPart types.EncryptedData `asn1:"explicit,tag:6"` +} + +// KDCRepFields represents the KRB_KDC_REP fields. +type KDCRepFields struct { + PVNO int + MsgType int + PAData []types.PAData + CRealm string + CName types.PrincipalName + Ticket Ticket + EncPart types.EncryptedData + DecryptedEncPart EncKDCRepPart +} + +// ASRep implements RFC 4120 KRB_AS_REP: https://tools.ietf.org/html/rfc4120#section-5.4.2. +type ASRep struct { + KDCRepFields +} + +// TGSRep implements RFC 4120 KRB_TGS_REP: https://tools.ietf.org/html/rfc4120#section-5.4.2. +type TGSRep struct { + KDCRepFields +} + +// EncKDCRepPart is the encrypted part of KRB_KDC_REP. +type EncKDCRepPart struct { + Key types.EncryptionKey `asn1:"explicit,tag:0"` + LastReqs []LastReq `asn1:"explicit,tag:1"` + Nonce int `asn1:"explicit,tag:2"` + KeyExpiration time.Time `asn1:"generalized,explicit,optional,tag:3"` + Flags asn1.BitString `asn1:"explicit,tag:4"` + AuthTime time.Time `asn1:"generalized,explicit,tag:5"` + StartTime time.Time `asn1:"generalized,explicit,optional,tag:6"` + EndTime time.Time `asn1:"generalized,explicit,tag:7"` + RenewTill time.Time `asn1:"generalized,explicit,optional,tag:8"` + SRealm string `asn1:"generalstring,explicit,tag:9"` + SName types.PrincipalName `asn1:"explicit,tag:10"` + CAddr []types.HostAddress `asn1:"explicit,optional,tag:11"` + EncPAData types.PADataSequence `asn1:"explicit,optional,tag:12"` +} + +// LastReq part of KRB_KDC_REP. +type LastReq struct { + LRType int32 `asn1:"explicit,tag:0"` + LRValue time.Time `asn1:"generalized,explicit,tag:1"` +} + +// Unmarshal bytes b into the ASRep struct. +func (k *ASRep) Unmarshal(b []byte) error { + var m marshalKDCRep + _, err := asn1.UnmarshalWithParams(b, &m, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.ASREP)) + if err != nil { + return processUnmarshalReplyError(b, err) + } + if m.MsgType != msgtype.KRB_AS_REP { + return krberror.NewErrorf(krberror.KRBMsgError, "message ID does not indicate an AS_REP. Expected: %v; Actual: %v", msgtype.KRB_AS_REP, m.MsgType) + } + //Process the raw ticket within + tkt, err := unmarshalTicket(m.Ticket.Bytes) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error unmarshaling Ticket within AS_REP") + } + k.KDCRepFields = KDCRepFields{ + PVNO: m.PVNO, + MsgType: m.MsgType, + PAData: m.PAData, + CRealm: m.CRealm, + CName: m.CName, + Ticket: tkt, + EncPart: m.EncPart, + } + return nil +} + +// Unmarshal bytes b into the TGSRep struct. +func (k *TGSRep) Unmarshal(b []byte) error { + var m marshalKDCRep + _, err := asn1.UnmarshalWithParams(b, &m, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.TGSREP)) + if err != nil { + return processUnmarshalReplyError(b, err) + } + if m.MsgType != msgtype.KRB_TGS_REP { + return krberror.NewErrorf(krberror.KRBMsgError, "message ID does not indicate an TGS_REP. Expected: %v; Actual: %v", msgtype.KRB_TGS_REP, m.MsgType) + } + //Process the raw ticket within + tkt, err := unmarshalTicket(m.Ticket.Bytes) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error unmarshaling Ticket within TGS_REP") + } + k.KDCRepFields = KDCRepFields{ + PVNO: m.PVNO, + MsgType: m.MsgType, + PAData: m.PAData, + CRealm: m.CRealm, + CName: m.CName, + Ticket: tkt, + EncPart: m.EncPart, + } + return nil +} + +// Unmarshal bytes b into encrypted part of KRB_KDC_REP. +func (e *EncKDCRepPart) Unmarshal(b []byte) error { + _, err := asn1.UnmarshalWithParams(b, e, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.EncASRepPart)) + if err != nil { + // Try using tag 26 + /* Ref: RFC 4120 + Compatibility note: Some implementations unconditionally send an + encrypted EncTGSRepPart (application tag number 26) in this field + regardless of whether the reply is a AS-REP or a TGS-REP. In the + interest of compatibility, implementors MAY relax the check on the + tag number of the decrypted ENC-PART.*/ + _, err = asn1.UnmarshalWithParams(b, e, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.EncTGSRepPart)) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error unmarshaling encrypted part within KDC_REP") + } + } + return nil +} + +// DecryptEncPart decrypts the encrypted part of an AS_REP. +func (k *ASRep) DecryptEncPart(c *credentials.Credentials) (types.EncryptionKey, error) { + var key types.EncryptionKey + var err error + if c.HasKeytab() { + key, err = c.Keytab().GetEncryptionKey(k.CName, k.CRealm, k.EncPart.KVNO, k.EncPart.EType) + if err != nil { + return key, krberror.Errorf(err, krberror.DecryptingError, "error decrypting AS_REP encrypted part") + } + } + if c.HasPassword() { + key, _, err = crypto.GetKeyFromPassword(c.Password(), k.CName, k.CRealm, k.EncPart.EType, k.PAData) + if err != nil { + return key, krberror.Errorf(err, krberror.DecryptingError, "error decrypting AS_REP encrypted part") + } + } + if !c.HasKeytab() && !c.HasPassword() { + return key, krberror.NewErrorf(krberror.DecryptingError, "no secret available in credentials to perform decryption of AS_REP encrypted part") + } + b, err := crypto.DecryptEncPart(k.EncPart, key, keyusage.AS_REP_ENCPART) + if err != nil { + return key, krberror.Errorf(err, krberror.DecryptingError, "error decrypting AS_REP encrypted part") + } + var denc EncKDCRepPart + err = denc.Unmarshal(b) + if err != nil { + return key, krberror.Errorf(err, krberror.EncodingError, "error unmarshaling decrypted encpart of AS_REP") + } + k.DecryptedEncPart = denc + return key, nil +} + +// Verify checks the validity of AS_REP message. +func (k *ASRep) Verify(cfg *config.Config, creds *credentials.Credentials, asReq ASReq) (bool, error) { + //Ref RFC 4120 Section 3.1.5 + if k.CName.NameType != asReq.ReqBody.CName.NameType || k.CName.NameString == nil { + return false, krberror.NewErrorf(krberror.KRBMsgError, "CName in response does not match what was requested. Requested: %+v; Reply: %+v", asReq.ReqBody.CName, k.CName) + } + for i := range k.CName.NameString { + if k.CName.NameString[i] != asReq.ReqBody.CName.NameString[i] { + return false, krberror.NewErrorf(krberror.KRBMsgError, "CName in response does not match what was requested. Requested: %+v; Reply: %+v", asReq.ReqBody.CName, k.CName) + } + } + if k.CRealm != asReq.ReqBody.Realm { + return false, krberror.NewErrorf(krberror.KRBMsgError, "CRealm in response does not match what was requested. Requested: %s; Reply: %s", asReq.ReqBody.Realm, k.CRealm) + } + key, err := k.DecryptEncPart(creds) + if err != nil { + return false, krberror.Errorf(err, krberror.DecryptingError, "error decrypting EncPart of AS_REP") + } + if k.DecryptedEncPart.Nonce != asReq.ReqBody.Nonce { + return false, krberror.NewErrorf(krberror.KRBMsgError, "possible replay attack, nonce in response does not match that in request") + } + if k.DecryptedEncPart.SName.NameType != asReq.ReqBody.SName.NameType || k.DecryptedEncPart.SName.NameString == nil { + return false, krberror.NewErrorf(krberror.KRBMsgError, "SName in response does not match what was requested. Requested: %v; Reply: %v", asReq.ReqBody.SName, k.DecryptedEncPart.SName) + } + for i := range k.CName.NameString { + if k.DecryptedEncPart.SName.NameString[i] != asReq.ReqBody.SName.NameString[i] { + return false, krberror.NewErrorf(krberror.KRBMsgError, "SName in response does not match what was requested. Requested: %+v; Reply: %+v", asReq.ReqBody.SName, k.DecryptedEncPart.SName) + } + } + if k.DecryptedEncPart.SRealm != asReq.ReqBody.Realm { + return false, krberror.NewErrorf(krberror.KRBMsgError, "SRealm in response does not match what was requested. Requested: %s; Reply: %s", asReq.ReqBody.Realm, k.DecryptedEncPart.SRealm) + } + if len(asReq.ReqBody.Addresses) > 0 { + if !types.HostAddressesEqual(k.DecryptedEncPart.CAddr, asReq.ReqBody.Addresses) { + return false, krberror.NewErrorf(krberror.KRBMsgError, "addresses listed in the AS_REP does not match those listed in the AS_REQ") + } + } + t := time.Now().UTC() + if t.Sub(k.DecryptedEncPart.AuthTime) > cfg.LibDefaults.Clockskew || k.DecryptedEncPart.AuthTime.Sub(t) > cfg.LibDefaults.Clockskew { + return false, krberror.NewErrorf(krberror.KRBMsgError, "clock skew with KDC too large. Greater than %v seconds", cfg.LibDefaults.Clockskew.Seconds()) + } + // RFC 6806 https://tools.ietf.org/html/rfc6806.html#section-11 + if asReq.PAData.Contains(patype.PA_REQ_ENC_PA_REP) && types.IsFlagSet(&k.DecryptedEncPart.Flags, flags.EncPARep) { + if len(k.DecryptedEncPart.EncPAData) < 2 || !k.DecryptedEncPart.EncPAData.Contains(patype.PA_FX_FAST) { + return false, krberror.NewErrorf(krberror.KRBMsgError, "KDC did not respond appropriately to FAST negotiation") + } + for _, pa := range k.DecryptedEncPart.EncPAData { + if pa.PADataType == patype.PA_REQ_ENC_PA_REP { + var pafast types.PAReqEncPARep + err := pafast.Unmarshal(pa.PADataValue) + if err != nil { + return false, krberror.Errorf(err, krberror.EncodingError, "KDC FAST negotiation response error, could not unmarshal PA_REQ_ENC_PA_REP") + } + etype, err := crypto.GetChksumEtype(pafast.ChksumType) + if err != nil { + return false, krberror.Errorf(err, krberror.ChksumError, "KDC FAST negotiation response error") + } + ab, _ := asReq.Marshal() + if !etype.VerifyChecksum(key.KeyValue, ab, pafast.Chksum, keyusage.KEY_USAGE_AS_REQ) { + return false, krberror.Errorf(err, krberror.ChksumError, "KDC FAST negotiation response checksum invalid") + } + } + } + } + return true, nil +} + +// DecryptEncPart decrypts the encrypted part of an TGS_REP. +func (k *TGSRep) DecryptEncPart(key types.EncryptionKey) error { + b, err := crypto.DecryptEncPart(k.EncPart, key, keyusage.TGS_REP_ENCPART_SESSION_KEY) + if err != nil { + return krberror.Errorf(err, krberror.DecryptingError, "error decrypting TGS_REP EncPart") + } + var denc EncKDCRepPart + err = denc.Unmarshal(b) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error unmarshaling encrypted part") + } + k.DecryptedEncPart = denc + return nil +} + +// Verify checks the validity of the TGS_REP message. +func (k *TGSRep) Verify(cfg *config.Config, tgsReq TGSReq) (bool, error) { + if k.CName.NameType != tgsReq.ReqBody.CName.NameType || k.CName.NameString == nil { + return false, krberror.NewErrorf(krberror.KRBMsgError, "CName type in response does not match what was requested. Requested: %+v; Reply: %+v", tgsReq.ReqBody.CName, k.CName) + } + for i := range k.CName.NameString { + if k.CName.NameString[i] != tgsReq.ReqBody.CName.NameString[i] { + return false, krberror.NewErrorf(krberror.KRBMsgError, "CName in response does not match what was requested. Requested: %+v; Reply: %+v", tgsReq.ReqBody.CName, k.CName) + } + } + if k.Ticket.Realm != tgsReq.ReqBody.Realm { + return false, krberror.NewErrorf(krberror.KRBMsgError, "realm in response ticket does not match what was requested. Requested: %s; Reply: %s", tgsReq.ReqBody.Realm, k.Ticket.Realm) + } + if k.DecryptedEncPart.Nonce != tgsReq.ReqBody.Nonce { + return false, krberror.NewErrorf(krberror.KRBMsgError, "possible replay attack, nonce in response does not match that in request") + } + //if k.Ticket.SName.NameType != tgsReq.ReqBody.SName.NameType || k.Ticket.SName.NameString == nil { + // return false, krberror.NewErrorf(krberror.KRBMsgError, "SName in response ticket does not match what was requested. Requested: %v; Reply: %v", tgsReq.ReqBody.SName, k.Ticket.SName) + //} + //for i := range k.Ticket.SName.NameString { + // if k.Ticket.SName.NameString[i] != tgsReq.ReqBody.SName.NameString[i] { + // return false, krberror.NewErrorf(krberror.KRBMsgError, "SName in response ticket does not match what was requested. Requested: %+v; Reply: %+v", tgsReq.ReqBody.SName, k.Ticket.SName) + // } + //} + //if k.DecryptedEncPart.SName.NameType != tgsReq.ReqBody.SName.NameType || k.DecryptedEncPart.SName.NameString == nil { + // return false, krberror.NewErrorf(krberror.KRBMsgError, "SName in response does not match what was requested. Requested: %v; Reply: %v", tgsReq.ReqBody.SName, k.DecryptedEncPart.SName) + //} + //for i := range k.DecryptedEncPart.SName.NameString { + // if k.DecryptedEncPart.SName.NameString[i] != tgsReq.ReqBody.SName.NameString[i] { + // return false, krberror.NewErrorf(krberror.KRBMsgError, "SName in response does not match what was requested. Requested: %+v; Reply: %+v", tgsReq.ReqBody.SName, k.DecryptedEncPart.SName) + // } + //} + if k.DecryptedEncPart.SRealm != tgsReq.ReqBody.Realm { + return false, krberror.NewErrorf(krberror.KRBMsgError, "SRealm in response does not match what was requested. Requested: %s; Reply: %s", tgsReq.ReqBody.Realm, k.DecryptedEncPart.SRealm) + } + if len(k.DecryptedEncPart.CAddr) > 0 { + if !types.HostAddressesEqual(k.DecryptedEncPart.CAddr, tgsReq.ReqBody.Addresses) { + return false, krberror.NewErrorf(krberror.KRBMsgError, "addresses listed in the TGS_REP does not match those listed in the TGS_REQ") + } + } + if time.Since(k.DecryptedEncPart.StartTime) > cfg.LibDefaults.Clockskew || k.DecryptedEncPart.StartTime.Sub(time.Now().UTC()) > cfg.LibDefaults.Clockskew { + if time.Since(k.DecryptedEncPart.AuthTime) > cfg.LibDefaults.Clockskew || k.DecryptedEncPart.AuthTime.Sub(time.Now().UTC()) > cfg.LibDefaults.Clockskew { + return false, krberror.NewErrorf(krberror.KRBMsgError, "clock skew with KDC too large. Greater than %v seconds.", cfg.LibDefaults.Clockskew.Seconds()) + } + } + return true, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KDCReq.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KDCReq.go new file mode 100644 index 0000000..f75ddc4 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KDCReq.go @@ -0,0 +1,432 @@ +package messages + +// Reference: https://www.ietf.org/rfc/rfc4120.txt +// Section: 5.4.1 + +import ( + "crypto/rand" + "fmt" + "math" + "math/big" + "time" + + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/asn1tools" + "gopkg.in/jcmturner/gokrb5.v7/config" + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/iana" + "gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag" + "gopkg.in/jcmturner/gokrb5.v7/iana/flags" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/iana/msgtype" + "gopkg.in/jcmturner/gokrb5.v7/iana/nametype" + "gopkg.in/jcmturner/gokrb5.v7/iana/patype" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +type marshalKDCReq struct { + PVNO int `asn1:"explicit,tag:1"` + MsgType int `asn1:"explicit,tag:2"` + PAData types.PADataSequence `asn1:"explicit,optional,tag:3"` + ReqBody asn1.RawValue `asn1:"explicit,tag:4"` +} + +// KDCReqFields represents the KRB_KDC_REQ fields. +type KDCReqFields struct { + PVNO int + MsgType int + PAData types.PADataSequence + ReqBody KDCReqBody + Renewal bool +} + +// ASReq implements RFC 4120 KRB_AS_REQ: https://tools.ietf.org/html/rfc4120#section-5.4.1. +type ASReq struct { + KDCReqFields +} + +// TGSReq implements RFC 4120 KRB_TGS_REQ: https://tools.ietf.org/html/rfc4120#section-5.4.1. +type TGSReq struct { + KDCReqFields +} + +type marshalKDCReqBody struct { + KDCOptions asn1.BitString `asn1:"explicit,tag:0"` + CName types.PrincipalName `asn1:"explicit,optional,tag:1"` + Realm string `asn1:"generalstring,explicit,tag:2"` + SName types.PrincipalName `asn1:"explicit,optional,tag:3"` + From time.Time `asn1:"generalized,explicit,optional,tag:4"` + Till time.Time `asn1:"generalized,explicit,tag:5"` + RTime time.Time `asn1:"generalized,explicit,optional,tag:6"` + Nonce int `asn1:"explicit,tag:7"` + EType []int32 `asn1:"explicit,tag:8"` + Addresses []types.HostAddress `asn1:"explicit,optional,tag:9"` + EncAuthData types.EncryptedData `asn1:"explicit,optional,tag:10"` + // Ticket needs to be a raw value as it is wrapped in an APPLICATION tag + AdditionalTickets asn1.RawValue `asn1:"explicit,optional,tag:11"` +} + +// KDCReqBody implements the KRB_KDC_REQ request body. +type KDCReqBody struct { + KDCOptions asn1.BitString `asn1:"explicit,tag:0"` + CName types.PrincipalName `asn1:"explicit,optional,tag:1"` + Realm string `asn1:"generalstring,explicit,tag:2"` + SName types.PrincipalName `asn1:"explicit,optional,tag:3"` + From time.Time `asn1:"generalized,explicit,optional,tag:4"` + Till time.Time `asn1:"generalized,explicit,tag:5"` + RTime time.Time `asn1:"generalized,explicit,optional,tag:6"` + Nonce int `asn1:"explicit,tag:7"` + EType []int32 `asn1:"explicit,tag:8"` + Addresses []types.HostAddress `asn1:"explicit,optional,tag:9"` + EncAuthData types.EncryptedData `asn1:"explicit,optional,tag:10"` + AdditionalTickets []Ticket `asn1:"explicit,optional,tag:11"` +} + +// NewASReqForTGT generates a new KRB_AS_REQ struct for a TGT request. +func NewASReqForTGT(realm string, c *config.Config, cname types.PrincipalName) (ASReq, error) { + sname := types.PrincipalName{ + NameType: nametype.KRB_NT_SRV_INST, + NameString: []string{"krbtgt", realm}, + } + return NewASReq(realm, c, cname, sname) +} + +// NewASReqForChgPasswd generates a new KRB_AS_REQ struct for a change password request. +func NewASReqForChgPasswd(realm string, c *config.Config, cname types.PrincipalName) (ASReq, error) { + sname := types.PrincipalName{ + NameType: nametype.KRB_NT_PRINCIPAL, + NameString: []string{"kadmin", "changepw"}, + } + return NewASReq(realm, c, cname, sname) +} + +// NewASReq generates a new KRB_AS_REQ struct for a given SNAME. +func NewASReq(realm string, c *config.Config, cname, sname types.PrincipalName) (ASReq, error) { + nonce, err := rand.Int(rand.Reader, big.NewInt(math.MaxInt32)) + if err != nil { + return ASReq{}, err + } + t := time.Now().UTC() + // Copy the default options to make this thread safe + kopts := types.NewKrbFlags() + copy(kopts.Bytes, c.LibDefaults.KDCDefaultOptions.Bytes) + kopts.BitLength = c.LibDefaults.KDCDefaultOptions.BitLength + a := ASReq{ + KDCReqFields{ + PVNO: iana.PVNO, + MsgType: msgtype.KRB_AS_REQ, + PAData: types.PADataSequence{}, + ReqBody: KDCReqBody{ + KDCOptions: kopts, + Realm: realm, + CName: cname, + SName: sname, + Till: t.Add(c.LibDefaults.TicketLifetime), + Nonce: int(nonce.Int64()), + EType: c.LibDefaults.DefaultTktEnctypeIDs, + }, + }, + } + if c.LibDefaults.Forwardable { + types.SetFlag(&a.ReqBody.KDCOptions, flags.Forwardable) + } + if c.LibDefaults.Canonicalize { + types.SetFlag(&a.ReqBody.KDCOptions, flags.Canonicalize) + } + if c.LibDefaults.Proxiable { + types.SetFlag(&a.ReqBody.KDCOptions, flags.Proxiable) + } + if c.LibDefaults.RenewLifetime != 0 { + types.SetFlag(&a.ReqBody.KDCOptions, flags.Renewable) + a.ReqBody.RTime = t.Add(c.LibDefaults.RenewLifetime) + a.ReqBody.RTime = t.Add(time.Duration(48) * time.Hour) + } + if !c.LibDefaults.NoAddresses { + ha, err := types.LocalHostAddresses() + if err != nil { + return a, fmt.Errorf("could not get local addresses: %v", err) + } + ha = append(ha, types.HostAddressesFromNetIPs(c.LibDefaults.ExtraAddresses)...) + a.ReqBody.Addresses = ha + } + return a, nil +} + +// NewTGSReq generates a new KRB_TGS_REQ struct. +func NewTGSReq(cname types.PrincipalName, kdcRealm string, c *config.Config, tgt Ticket, sessionKey types.EncryptionKey, sname types.PrincipalName, renewal bool) (TGSReq, error) { + a, err := tgsReq(cname, sname, kdcRealm, renewal, c) + if err != nil { + return a, err + } + err = a.setPAData(tgt, sessionKey) + return a, err +} + +// NewUser2UserTGSReq returns a TGS-REQ suitable for user-to-user authentication (https://tools.ietf.org/html/rfc4120#section-3.7) +func NewUser2UserTGSReq(cname types.PrincipalName, kdcRealm string, c *config.Config, clientTGT Ticket, sessionKey types.EncryptionKey, sname types.PrincipalName, renewal bool, verifyingTGT Ticket) (TGSReq, error) { + a, err := tgsReq(cname, sname, kdcRealm, renewal, c) + if err != nil { + return a, err + } + a.ReqBody.AdditionalTickets = []Ticket{verifyingTGT} + types.SetFlag(&a.ReqBody.KDCOptions, flags.EncTktInSkey) + err = a.setPAData(clientTGT, sessionKey) + return a, err +} + +// tgsReq populates the fields for a TGS_REQ +func tgsReq(cname, sname types.PrincipalName, kdcRealm string, renewal bool, c *config.Config) (TGSReq, error) { + nonce, err := rand.Int(rand.Reader, big.NewInt(math.MaxInt32)) + if err != nil { + return TGSReq{}, err + } + t := time.Now().UTC() + k := KDCReqFields{ + PVNO: iana.PVNO, + MsgType: msgtype.KRB_TGS_REQ, + ReqBody: KDCReqBody{ + KDCOptions: types.NewKrbFlags(), + Realm: kdcRealm, + CName: cname, // Add the CName to make validation of the reply easier + SName: sname, + Till: t.Add(c.LibDefaults.TicketLifetime), + Nonce: int(nonce.Int64()), + EType: c.LibDefaults.DefaultTGSEnctypeIDs, + }, + Renewal: renewal, + } + if c.LibDefaults.Forwardable { + types.SetFlag(&k.ReqBody.KDCOptions, flags.Forwardable) + } + if c.LibDefaults.Canonicalize { + types.SetFlag(&k.ReqBody.KDCOptions, flags.Canonicalize) + } + if c.LibDefaults.Proxiable { + types.SetFlag(&k.ReqBody.KDCOptions, flags.Proxiable) + } + if c.LibDefaults.RenewLifetime > time.Duration(0) { + types.SetFlag(&k.ReqBody.KDCOptions, flags.Renewable) + k.ReqBody.RTime = t.Add(c.LibDefaults.RenewLifetime) + } + if !c.LibDefaults.NoAddresses { + ha, err := types.LocalHostAddresses() + if err != nil { + return TGSReq{}, fmt.Errorf("could not get local addresses: %v", err) + } + ha = append(ha, types.HostAddressesFromNetIPs(c.LibDefaults.ExtraAddresses)...) + k.ReqBody.Addresses = ha + } + if renewal { + types.SetFlag(&k.ReqBody.KDCOptions, flags.Renew) + types.SetFlag(&k.ReqBody.KDCOptions, flags.Renewable) + } + return TGSReq{ + k, + }, nil +} + +func (k *TGSReq) setPAData(tgt Ticket, sessionKey types.EncryptionKey) error { + // Marshal the request and calculate checksum + b, err := k.ReqBody.Marshal() + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error marshaling TGS_REQ body") + } + etype, err := crypto.GetEtype(sessionKey.KeyType) + if err != nil { + return krberror.Errorf(err, krberror.EncryptingError, "error getting etype to encrypt authenticator") + } + cb, err := etype.GetChecksumHash(sessionKey.KeyValue, b, keyusage.TGS_REQ_PA_TGS_REQ_AP_REQ_AUTHENTICATOR_CHKSUM) + if err != nil { + return krberror.Errorf(err, krberror.ChksumError, "error getting etype checksum hash") + } + + // Form PAData for TGS_REQ + // Create authenticator + auth, err := types.NewAuthenticator(tgt.Realm, k.ReqBody.CName) + if err != nil { + return krberror.Errorf(err, krberror.KRBMsgError, "error generating new authenticator") + } + auth.Cksum = types.Checksum{ + CksumType: etype.GetHashID(), + Checksum: cb, + } + // Create AP_REQ + apReq, err := NewAPReq(tgt, sessionKey, auth) + if err != nil { + return krberror.Errorf(err, krberror.KRBMsgError, "error generating new AP_REQ") + } + apb, err := apReq.Marshal() + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error marshaling AP_REQ for pre-authentication data") + } + k.PAData = types.PADataSequence{ + types.PAData{ + PADataType: patype.PA_TGS_REQ, + PADataValue: apb, + }, + } + return nil +} + +// Unmarshal bytes b into the ASReq struct. +func (k *ASReq) Unmarshal(b []byte) error { + var m marshalKDCReq + _, err := asn1.UnmarshalWithParams(b, &m, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.ASREQ)) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error unmarshaling AS_REQ") + } + expectedMsgType := msgtype.KRB_AS_REQ + if m.MsgType != expectedMsgType { + return krberror.NewErrorf(krberror.KRBMsgError, "message ID does not indicate a AS_REQ. Expected: %v; Actual: %v", expectedMsgType, m.MsgType) + } + var reqb KDCReqBody + err = reqb.Unmarshal(m.ReqBody.Bytes) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error processing AS_REQ body") + } + k.MsgType = m.MsgType + k.PAData = m.PAData + k.PVNO = m.PVNO + k.ReqBody = reqb + return nil +} + +// Unmarshal bytes b into the TGSReq struct. +func (k *TGSReq) Unmarshal(b []byte) error { + var m marshalKDCReq + _, err := asn1.UnmarshalWithParams(b, &m, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.TGSREQ)) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error unmarshaling TGS_REQ") + } + expectedMsgType := msgtype.KRB_TGS_REQ + if m.MsgType != expectedMsgType { + return krberror.NewErrorf(krberror.KRBMsgError, "message ID does not indicate a TGS_REQ. Expected: %v; Actual: %v", expectedMsgType, m.MsgType) + } + var reqb KDCReqBody + err = reqb.Unmarshal(m.ReqBody.Bytes) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error processing TGS_REQ body") + } + k.MsgType = m.MsgType + k.PAData = m.PAData + k.PVNO = m.PVNO + k.ReqBody = reqb + return nil +} + +// Unmarshal bytes b into the KRB_KDC_REQ body struct. +func (k *KDCReqBody) Unmarshal(b []byte) error { + var m marshalKDCReqBody + _, err := asn1.Unmarshal(b, &m) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error unmarshaling KDC_REQ body") + } + k.KDCOptions = m.KDCOptions + if len(k.KDCOptions.Bytes) < 4 { + tb := make([]byte, 4-len(k.KDCOptions.Bytes)) + k.KDCOptions.Bytes = append(tb, k.KDCOptions.Bytes...) + k.KDCOptions.BitLength = len(k.KDCOptions.Bytes) * 8 + } + k.CName = m.CName + k.Realm = m.Realm + k.SName = m.SName + k.From = m.From + k.Till = m.Till + k.RTime = m.RTime + k.Nonce = m.Nonce + k.EType = m.EType + k.Addresses = m.Addresses + k.EncAuthData = m.EncAuthData + if len(m.AdditionalTickets.Bytes) > 0 { + k.AdditionalTickets, err = unmarshalTicketsSequence(m.AdditionalTickets) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error unmarshaling additional tickets") + } + } + return nil +} + +// Marshal ASReq struct. +func (k *ASReq) Marshal() ([]byte, error) { + m := marshalKDCReq{ + PVNO: k.PVNO, + MsgType: k.MsgType, + PAData: k.PAData, + } + b, err := k.ReqBody.Marshal() + if err != nil { + var mk []byte + return mk, err + } + m.ReqBody = asn1.RawValue{ + Class: asn1.ClassContextSpecific, + IsCompound: true, + Tag: 4, + Bytes: b, + } + mk, err := asn1.Marshal(m) + if err != nil { + return mk, krberror.Errorf(err, krberror.EncodingError, "error marshaling AS_REQ") + } + mk = asn1tools.AddASNAppTag(mk, asnAppTag.ASREQ) + return mk, nil +} + +// Marshal TGSReq struct. +func (k *TGSReq) Marshal() ([]byte, error) { + m := marshalKDCReq{ + PVNO: k.PVNO, + MsgType: k.MsgType, + PAData: k.PAData, + } + b, err := k.ReqBody.Marshal() + if err != nil { + var mk []byte + return mk, err + } + m.ReqBody = asn1.RawValue{ + Class: asn1.ClassContextSpecific, + IsCompound: true, + Tag: 4, + Bytes: b, + } + mk, err := asn1.Marshal(m) + if err != nil { + return mk, krberror.Errorf(err, krberror.EncodingError, "error marshaling AS_REQ") + } + mk = asn1tools.AddASNAppTag(mk, asnAppTag.TGSREQ) + return mk, nil +} + +// Marshal KRB_KDC_REQ body struct. +func (k *KDCReqBody) Marshal() ([]byte, error) { + var b []byte + m := marshalKDCReqBody{ + KDCOptions: k.KDCOptions, + CName: k.CName, + Realm: k.Realm, + SName: k.SName, + From: k.From, + Till: k.Till, + RTime: k.RTime, + Nonce: k.Nonce, + EType: k.EType, + Addresses: k.Addresses, + EncAuthData: k.EncAuthData, + } + rawtkts, err := MarshalTicketSequence(k.AdditionalTickets) + if err != nil { + return b, krberror.Errorf(err, krberror.EncodingError, "error in marshaling KDC request body additional tickets") + } + //The asn1.rawValue needs the tag setting on it for where it is in the KDCReqBody + rawtkts.Tag = 11 + if len(rawtkts.Bytes) > 0 { + m.AdditionalTickets = rawtkts + } + b, err = asn1.Marshal(m) + if err != nil { + return b, krberror.Errorf(err, krberror.EncodingError, "error in marshaling KDC request body") + } + return b, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBCred.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBCred.go new file mode 100644 index 0000000..380cf80 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBCred.go @@ -0,0 +1,102 @@ +package messages + +import ( + "fmt" + "time" + + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/iana/msgtype" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +type marshalKRBCred struct { + PVNO int `asn1:"explicit,tag:0"` + MsgType int `asn1:"explicit,tag:1"` + Tickets asn1.RawValue `asn1:"explicit,tag:2"` + EncPart types.EncryptedData `asn1:"explicit,tag:3"` +} + +// KRBCred implements RFC 4120 KRB_CRED: https://tools.ietf.org/html/rfc4120#section-5.8.1. +type KRBCred struct { + PVNO int + MsgType int + Tickets []Ticket + EncPart types.EncryptedData + DecryptedEncPart EncKrbCredPart +} + +// EncKrbCredPart is the encrypted part of KRB_CRED. +type EncKrbCredPart struct { + TicketInfo []KrbCredInfo `asn1:"explicit,tag:0"` + Nouce int `asn1:"optional,explicit,tag:1"` + Timestamp time.Time `asn1:"generalized,optional,explicit,tag:2"` + Usec int `asn1:"optional,explicit,tag:3"` + SAddress types.HostAddress `asn1:"optional,explicit,tag:4"` + RAddress types.HostAddress `asn1:"optional,explicit,tag:5"` +} + +// KrbCredInfo is the KRB_CRED_INFO part of KRB_CRED. +type KrbCredInfo struct { + Key types.EncryptionKey `asn1:"explicit,tag:0"` + PRealm string `asn1:"generalstring,optional,explicit,tag:1"` + PName types.PrincipalName `asn1:"optional,explicit,tag:2"` + Flags asn1.BitString `asn1:"optional,explicit,tag:3"` + AuthTime time.Time `asn1:"generalized,optional,explicit,tag:4"` + StartTime time.Time `asn1:"generalized,optional,explicit,tag:5"` + EndTime time.Time `asn1:"generalized,optional,explicit,tag:6"` + RenewTill time.Time `asn1:"generalized,optional,explicit,tag:7"` + SRealm string `asn1:"optional,explicit,ia5,tag:8"` + SName types.PrincipalName `asn1:"optional,explicit,tag:9"` + CAddr types.HostAddresses `asn1:"optional,explicit,tag:10"` +} + +// Unmarshal bytes b into the KRBCred struct. +func (k *KRBCred) Unmarshal(b []byte) error { + var m marshalKRBCred + _, err := asn1.UnmarshalWithParams(b, &m, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.KRBCred)) + if err != nil { + return processUnmarshalReplyError(b, err) + } + expectedMsgType := msgtype.KRB_CRED + if m.MsgType != expectedMsgType { + return krberror.NewErrorf(krberror.KRBMsgError, "message ID does not indicate a KRB_CRED. Expected: %v; Actual: %v", expectedMsgType, m.MsgType) + } + k.PVNO = m.PVNO + k.MsgType = m.MsgType + k.EncPart = m.EncPart + if len(m.Tickets.Bytes) > 0 { + k.Tickets, err = unmarshalTicketsSequence(m.Tickets) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error unmarshaling tickets within KRB_CRED") + } + } + return nil +} + +// DecryptEncPart decrypts the encrypted part of a KRB_CRED. +func (k *KRBCred) DecryptEncPart(key types.EncryptionKey) error { + b, err := crypto.DecryptEncPart(k.EncPart, key, keyusage.KRB_CRED_ENCPART) + if err != nil { + return krberror.Errorf(err, krberror.DecryptingError, "error decrypting KRB_CRED EncPart") + } + var denc EncKrbCredPart + err = denc.Unmarshal(b) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error unmarshaling encrypted part of KRB_CRED") + } + k.DecryptedEncPart = denc + return nil +} + +// Unmarshal bytes b into the encrypted part of KRB_CRED. +func (k *EncKrbCredPart) Unmarshal(b []byte) error { + _, err := asn1.UnmarshalWithParams(b, k, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.EncKrbCredPart)) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "error unmarshaling EncKrbCredPart") + } + return nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBError.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBError.go new file mode 100644 index 0000000..5aa9def --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBError.go @@ -0,0 +1,83 @@ +// Package messages implements Kerberos 5 message types and methods. +package messages + +import ( + "fmt" + "time" + + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/iana" + "gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag" + "gopkg.in/jcmturner/gokrb5.v7/iana/errorcode" + "gopkg.in/jcmturner/gokrb5.v7/iana/msgtype" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +// KRBError implements RFC 4120 KRB_ERROR: https://tools.ietf.org/html/rfc4120#section-5.9.1. +type KRBError struct { + PVNO int `asn1:"explicit,tag:0"` + MsgType int `asn1:"explicit,tag:1"` + CTime time.Time `asn1:"generalized,optional,explicit,tag:2"` + Cusec int `asn1:"optional,explicit,tag:3"` + STime time.Time `asn1:"generalized,explicit,tag:4"` + Susec int `asn1:"explicit,tag:5"` + ErrorCode int32 `asn1:"explicit,tag:6"` + CRealm string `asn1:"generalstring,optional,explicit,tag:7"` + CName types.PrincipalName `asn1:"optional,explicit,tag:8"` + Realm string `asn1:"generalstring,explicit,tag:9"` + SName types.PrincipalName `asn1:"explicit,tag:10"` + EText string `asn1:"generalstring,optional,explicit,tag:11"` + EData []byte `asn1:"optional,explicit,tag:12"` +} + +// NewKRBError creates a new KRBError. +func NewKRBError(sname types.PrincipalName, realm string, code int32, etext string) KRBError { + t := time.Now().UTC() + return KRBError{ + PVNO: iana.PVNO, + MsgType: msgtype.KRB_ERROR, + STime: t, + Susec: int((t.UnixNano() / int64(time.Microsecond)) - (t.Unix() * 1e6)), + ErrorCode: code, + SName: sname, + Realm: realm, + EText: etext, + } +} + +// Unmarshal bytes b into the KRBError struct. +func (k *KRBError) Unmarshal(b []byte) error { + _, err := asn1.UnmarshalWithParams(b, k, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.KRBError)) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "KRB_ERROR unmarshal error") + } + expectedMsgType := msgtype.KRB_ERROR + if k.MsgType != expectedMsgType { + return krberror.NewErrorf(krberror.KRBMsgError, "message ID does not indicate a KRB_ERROR. Expected: %v; Actual: %v", expectedMsgType, k.MsgType) + } + return nil +} + +// Error method implementing error interface on KRBError struct. +func (k KRBError) Error() string { + etxt := fmt.Sprintf("KRB Error: %s", errorcode.Lookup(k.ErrorCode)) + if k.EText != "" { + etxt = fmt.Sprintf("%s - %s", etxt, k.EText) + } + return etxt +} + +func processUnmarshalReplyError(b []byte, err error) error { + switch err.(type) { + case asn1.StructuralError: + var krberr KRBError + tmperr := krberr.Unmarshal(b) + if tmperr != nil { + return krberror.Errorf(err, krberror.EncodingError, "failed to unmarshal KDC's reply") + } + return krberr + default: + return krberror.Errorf(err, krberror.EncodingError, "failed to unmarshal KDC's reply") + } +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBPriv.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBPriv.go new file mode 100644 index 0000000..ebc5d3d --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBPriv.go @@ -0,0 +1,108 @@ +package messages + +import ( + "fmt" + "time" + + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/asn1tools" + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/iana" + "gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/iana/msgtype" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +// KRBPriv implements RFC 4120 type: https://tools.ietf.org/html/rfc4120#section-5.7.1. +type KRBPriv struct { + PVNO int `asn1:"explicit,tag:0"` + MsgType int `asn1:"explicit,tag:1"` + EncPart types.EncryptedData `asn1:"explicit,tag:3"` + DecryptedEncPart EncKrbPrivPart `asn1:"optional,omitempty"` // Not part of ASN1 bytes so marked as optional so unmarshalling works +} + +// EncKrbPrivPart is the encrypted part of KRB_PRIV. +type EncKrbPrivPart struct { + UserData []byte `asn1:"explicit,tag:0"` + Timestamp time.Time `asn1:"generalized,optional,explicit,tag:1"` + Usec int `asn1:"optional,explicit,tag:2"` + SequenceNumber int64 `asn1:"optional,explicit,tag:3"` + SAddress types.HostAddress `asn1:"explicit,tag:4"` + RAddress types.HostAddress `asn1:"optional,explicit,tag:5"` +} + +// NewKRBPriv returns a new KRBPriv type. +func NewKRBPriv(part EncKrbPrivPart) KRBPriv { + return KRBPriv{ + PVNO: iana.PVNO, + MsgType: msgtype.KRB_PRIV, + DecryptedEncPart: part, + } +} + +// Unmarshal bytes b into the KRBPriv struct. +func (k *KRBPriv) Unmarshal(b []byte) error { + _, err := asn1.UnmarshalWithParams(b, k, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.KRBPriv)) + if err != nil { + return processUnmarshalReplyError(b, err) + } + expectedMsgType := msgtype.KRB_PRIV + if k.MsgType != expectedMsgType { + return krberror.NewErrorf(krberror.KRBMsgError, "message ID does not indicate a KRB_PRIV. Expected: %v; Actual: %v", expectedMsgType, k.MsgType) + } + return nil +} + +// Unmarshal bytes b into the EncKrbPrivPart struct. +func (k *EncKrbPrivPart) Unmarshal(b []byte) error { + _, err := asn1.UnmarshalWithParams(b, k, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.EncKrbPrivPart)) + if err != nil { + return krberror.Errorf(err, krberror.EncodingError, "KRB_PRIV unmarshal error") + } + return nil +} + +// Marshal the KRBPriv. +func (k *KRBPriv) Marshal() ([]byte, error) { + tk := KRBPriv{ + PVNO: k.PVNO, + MsgType: k.MsgType, + EncPart: k.EncPart, + } + b, err := asn1.Marshal(tk) + if err != nil { + return []byte{}, err + } + b = asn1tools.AddASNAppTag(b, asnAppTag.KRBPriv) + return b, nil +} + +// EncryptEncPart encrypts the DecryptedEncPart within the KRBPriv. +// Use to prepare for marshaling. +func (k *KRBPriv) EncryptEncPart(key types.EncryptionKey) error { + b, err := asn1.Marshal(k.DecryptedEncPart) + if err != nil { + return err + } + b = asn1tools.AddASNAppTag(b, asnAppTag.EncKrbPrivPart) + k.EncPart, err = crypto.GetEncryptedData(b, key, keyusage.KRB_PRIV_ENCPART, 1) + if err != nil { + return err + } + return nil +} + +// DecryptEncPart decrypts the encrypted part of the KRBPriv message. +func (k *KRBPriv) DecryptEncPart(key types.EncryptionKey) error { + b, err := crypto.DecryptEncPart(k.EncPart, key, keyusage.KRB_PRIV_ENCPART) + if err != nil { + return fmt.Errorf("error decrypting KRBPriv EncPart: %v", err) + } + err = k.DecryptedEncPart.Unmarshal(b) + if err != nil { + return fmt.Errorf("error unmarshaling encrypted part: %v", err) + } + return nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBSafe.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBSafe.go new file mode 100644 index 0000000..9c5acc1 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/KRBSafe.go @@ -0,0 +1,61 @@ +package messages + +import ( + "fmt" + "time" + + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag" + "gopkg.in/jcmturner/gokrb5.v7/iana/msgtype" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +/* +KRB-SAFE ::= [APPLICATION 20] SEQUENCE { + pvno [0] INTEGER (5), + msg-type [1] INTEGER (20), + safe-body [2] KRB-SAFE-BODY, + cksum [3] Checksum +} + +KRB-SAFE-BODY ::= SEQUENCE { + user-data [0] OCTET STRING, + timestamp [1] KerberosTime OPTIONAL, + usec [2] Microseconds OPTIONAL, + seq-number [3] UInt32 OPTIONAL, + s-address [4] HostAddress, + r-address [5] HostAddress OPTIONAL +} +*/ + +// KRBSafe implements RFC 4120 KRB_SAFE: https://tools.ietf.org/html/rfc4120#section-5.6.1. +type KRBSafe struct { + PVNO int `asn1:"explicit,tag:0"` + MsgType int `asn1:"explicit,tag:1"` + SafeBody KRBSafeBody `asn1:"explicit,tag:2"` + Cksum types.Checksum `asn1:"explicit,tag:3"` +} + +// KRBSafeBody implements the KRB_SAFE_BODY of KRB_SAFE. +type KRBSafeBody struct { + UserData []byte `asn1:"explicit,tag:0"` + Timestamp time.Time `asn1:"generalized,optional,explicit,tag:1"` + Usec int `asn1:"optional,explicit,tag:2"` + SequenceNumber int64 `asn1:"optional,explicit,tag:3"` + SAddress types.HostAddress `asn1:"explicit,tag:4"` + RAddress types.HostAddress `asn1:"optional,explicit,tag:5"` +} + +// Unmarshal bytes b into the KRBSafe struct. +func (s *KRBSafe) Unmarshal(b []byte) error { + _, err := asn1.UnmarshalWithParams(b, s, fmt.Sprintf("application,explicit,tag:%v", asnAppTag.KRBSafe)) + if err != nil { + return processUnmarshalReplyError(b, err) + } + expectedMsgType := msgtype.KRB_SAFE + if s.MsgType != expectedMsgType { + return krberror.NewErrorf(krberror.KRBMsgError, "message ID does not indicate a KRB_SAFE. Expected: %v; Actual: %v", expectedMsgType, s.MsgType) + } + return nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/Ticket.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/Ticket.go new file mode 100644 index 0000000..49664b8 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/messages/Ticket.go @@ -0,0 +1,265 @@ +package messages + +import ( + "crypto/rand" + "fmt" + "log" + "time" + + "github.com/jcmturner/gofork/encoding/asn1" + "gopkg.in/jcmturner/gokrb5.v7/asn1tools" + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/iana" + "gopkg.in/jcmturner/gokrb5.v7/iana/adtype" + "gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag" + "gopkg.in/jcmturner/gokrb5.v7/iana/errorcode" + "gopkg.in/jcmturner/gokrb5.v7/iana/flags" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/keytab" + "gopkg.in/jcmturner/gokrb5.v7/krberror" + "gopkg.in/jcmturner/gokrb5.v7/pac" + "gopkg.in/jcmturner/gokrb5.v7/types" +) + +// Reference: https://www.ietf.org/rfc/rfc4120.txt +// Section: 5.3 + +// Ticket implements the Kerberos ticket. +type Ticket struct { + TktVNO int `asn1:"explicit,tag:0"` + Realm string `asn1:"generalstring,explicit,tag:1"` + SName types.PrincipalName `asn1:"explicit,tag:2"` + EncPart types.EncryptedData `asn1:"explicit,tag:3"` + DecryptedEncPart EncTicketPart `asn1:"optional"` // Not part of ASN1 bytes so marked as optional so unmarshalling works +} + +// EncTicketPart is the encrypted part of the Ticket. +type EncTicketPart struct { + Flags asn1.BitString `asn1:"explicit,tag:0"` + Key types.EncryptionKey `asn1:"explicit,tag:1"` + CRealm string `asn1:"generalstring,explicit,tag:2"` + CName types.PrincipalName `asn1:"explicit,tag:3"` + Transited TransitedEncoding `asn1:"explicit,tag:4"` + AuthTime time.Time `asn1:"generalized,explicit,tag:5"` + StartTime time.Time `asn1:"generalized,explicit,optional,tag:6"` + EndTime time.Time `asn1:"generalized,explicit,tag:7"` + RenewTill time.Time `asn1:"generalized,explicit,optional,tag:8"` + CAddr types.HostAddresses `asn1:"explicit,optional,tag:9"` + AuthorizationData types.AuthorizationData `asn1:"explicit,optional,tag:10"` +} + +// TransitedEncoding part of the ticket's encrypted part. +type TransitedEncoding struct { + TRType int32 `asn1:"explicit,tag:0"` + Contents []byte `asn1:"explicit,tag:1"` +} + +// NewTicket creates a new Ticket instance. +func NewTicket(cname types.PrincipalName, crealm string, sname types.PrincipalName, srealm string, flags asn1.BitString, sktab *keytab.Keytab, eTypeID int32, kvno int, authTime, startTime, endTime, renewTill time.Time) (Ticket, types.EncryptionKey, error) { + etype, err := crypto.GetEtype(eTypeID) + if err != nil { + return Ticket{}, types.EncryptionKey{}, krberror.Errorf(err, krberror.EncryptingError, "error getting etype for new ticket") + } + ks := etype.GetKeyByteSize() + kv := make([]byte, ks, ks) + rand.Read(kv) + sessionKey := types.EncryptionKey{ + KeyType: eTypeID, + KeyValue: kv, + } + etp := EncTicketPart{ + Flags: flags, + Key: sessionKey, + CRealm: crealm, + CName: cname, + Transited: TransitedEncoding{}, + AuthTime: authTime, + StartTime: startTime, + EndTime: endTime, + RenewTill: renewTill, + } + b, err := asn1.Marshal(etp) + if err != nil { + return Ticket{}, types.EncryptionKey{}, krberror.Errorf(err, krberror.EncodingError, "error marshalling ticket encpart") + } + b = asn1tools.AddASNAppTag(b, asnAppTag.EncTicketPart) + skey, err := sktab.GetEncryptionKey(sname, srealm, kvno, eTypeID) + if err != nil { + return Ticket{}, types.EncryptionKey{}, krberror.Errorf(err, krberror.EncryptingError, "error getting encryption key for new ticket") + } + ed, err := crypto.GetEncryptedData(b, skey, keyusage.KDC_REP_TICKET, kvno) + if err != nil { + return Ticket{}, types.EncryptionKey{}, krberror.Errorf(err, krberror.EncryptingError, "error encrypting ticket encpart") + } + tkt := Ticket{ + TktVNO: iana.PVNO, + Realm: srealm, + SName: sname, + EncPart: ed, + } + return tkt, sessionKey, nil +} + +// Unmarshal bytes b into a Ticket struct. +func (t *Ticket) Unmarshal(b []byte) error { + _, err := asn1.UnmarshalWithParams(b, t, fmt.Sprintf("application,explicit,tag:%d", asnAppTag.Ticket)) + return err +} + +// Marshal the Ticket. +func (t *Ticket) Marshal() ([]byte, error) { + b, err := asn1.Marshal(*t) + if err != nil { + return nil, err + } + b = asn1tools.AddASNAppTag(b, asnAppTag.Ticket) + return b, nil +} + +// Unmarshal bytes b into the EncTicketPart struct. +func (t *EncTicketPart) Unmarshal(b []byte) error { + _, err := asn1.UnmarshalWithParams(b, t, fmt.Sprintf("application,explicit,tag:%d", asnAppTag.EncTicketPart)) + return err +} + +// unmarshalTicket returns a ticket from the bytes provided. +func unmarshalTicket(b []byte) (t Ticket, err error) { + err = t.Unmarshal(b) + return +} + +// UnmarshalTicketsSequence returns a slice of Tickets from a raw ASN1 value. +func unmarshalTicketsSequence(in asn1.RawValue) ([]Ticket, error) { + //This is a workaround to a asn1 decoding issue in golang - https://github.com/golang/go/issues/17321. It's not pretty I'm afraid + //We pull out raw values from the larger raw value (that is actually the data of the sequence of raw values) and track our position moving along the data. + b := in.Bytes + // Ignore the head of the asn1 stream (1 byte for tag and those for the length) as this is what tells us its a sequence but we're handling it ourselves + p := 1 + asn1tools.GetNumberBytesInLengthHeader(in.Bytes) + var tkts []Ticket + var raw asn1.RawValue + for p < (len(b)) { + _, err := asn1.UnmarshalWithParams(b[p:], &raw, fmt.Sprintf("application,tag:%d", asnAppTag.Ticket)) + if err != nil { + return nil, fmt.Errorf("unmarshaling sequence of tickets failed getting length of ticket: %v", err) + } + t, err := unmarshalTicket(b[p:]) + if err != nil { + return nil, fmt.Errorf("unmarshaling sequence of tickets failed: %v", err) + } + p += len(raw.FullBytes) + tkts = append(tkts, t) + } + MarshalTicketSequence(tkts) + return tkts, nil +} + +// MarshalTicketSequence marshals a slice of Tickets returning an ASN1 raw value containing the ticket sequence. +func MarshalTicketSequence(tkts []Ticket) (asn1.RawValue, error) { + raw := asn1.RawValue{ + Class: 2, + IsCompound: true, + } + if len(tkts) < 1 { + // There are no tickets to marshal + return raw, nil + } + var btkts []byte + for i, t := range tkts { + b, err := t.Marshal() + if err != nil { + return raw, fmt.Errorf("error marshaling ticket number %d in sequence of tickets", i+1) + } + btkts = append(btkts, b...) + } + // The ASN1 wrapping consists of 2 bytes: + // 1st byte -> Identifier Octet - In this case an OCTET STRING (ASN TAG + // 2nd byte -> The length (this will be the size indicated in the input bytes + 2 for the additional bytes we add here. + // Application Tag: + //| Byte: | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | + //| Value: | 0 | 1 | 1 | From the RFC spec 4120 | + //| Explanation | Defined by the ASN1 encoding rules for an application tag | A value of 1 indicates a constructed type | The ASN Application tag value | + btkts = append(asn1tools.MarshalLengthBytes(len(btkts)), btkts...) + btkts = append([]byte{byte(32 + asn1.TagSequence)}, btkts...) + raw.Bytes = btkts + // If we need to create the full bytes then identifier octet is "context-specific" = 128 + "constructed" + 32 + the wrapping explicit tag (11) + //fmt.Fprintf(os.Stderr, "mRaw fb: %v\n", raw.FullBytes) + return raw, nil +} + +// DecryptEncPart decrypts the encrypted part of the ticket. +// The sname argument can be used to specify which service principal's key should be used to decrypt the ticket. +// If nil is passed as the sname then the service principal specified within the ticket it used. +func (t *Ticket) DecryptEncPart(keytab *keytab.Keytab, sname *types.PrincipalName) error { + if sname == nil { + sname = &t.SName + } + key, err := keytab.GetEncryptionKey(*sname, t.Realm, t.EncPart.KVNO, t.EncPart.EType) + if err != nil { + return NewKRBError(t.SName, t.Realm, errorcode.KRB_AP_ERR_NOKEY, fmt.Sprintf("Could not get key from keytab: %v", err)) + } + return t.Decrypt(key) +} + +// Decrypt decrypts the encrypted part of the ticket using the key provided. +func (t *Ticket) Decrypt(key types.EncryptionKey) error { + b, err := crypto.DecryptEncPart(t.EncPart, key, keyusage.KDC_REP_TICKET) + if err != nil { + return fmt.Errorf("error decrypting Ticket EncPart: %v", err) + } + var denc EncTicketPart + err = denc.Unmarshal(b) + if err != nil { + return fmt.Errorf("error unmarshaling encrypted part: %v", err) + } + t.DecryptedEncPart = denc + return nil +} + +// GetPACType returns a Microsoft PAC that has been extracted from the ticket and processed. +func (t *Ticket) GetPACType(keytab *keytab.Keytab, sname *types.PrincipalName, l *log.Logger) (bool, pac.PACType, error) { + var isPAC bool + for _, ad := range t.DecryptedEncPart.AuthorizationData { + if ad.ADType == adtype.ADIfRelevant { + var ad2 types.AuthorizationData + err := ad2.Unmarshal(ad.ADData) + if err != nil { + l.Printf("PAC authorization data could not be unmarshaled: %v", err) + continue + } + if ad2[0].ADType == adtype.ADWin2KPAC { + isPAC = true + var p pac.PACType + err = p.Unmarshal(ad2[0].ADData) + if err != nil { + return isPAC, p, fmt.Errorf("error unmarshaling PAC: %v", err) + } + if sname == nil { + sname = &t.SName + } + key, err := keytab.GetEncryptionKey(*sname, t.Realm, t.EncPart.KVNO, t.EncPart.EType) + if err != nil { + return isPAC, p, NewKRBError(t.SName, t.Realm, errorcode.KRB_AP_ERR_NOKEY, fmt.Sprintf("Could not get key from keytab: %v", err)) + } + err = p.ProcessPACInfoBuffers(key, l) + return isPAC, p, err + } + } + } + return isPAC, pac.PACType{}, nil +} + +// Valid checks it the ticket is currently valid. Max duration passed endtime passed in as argument. +func (t *Ticket) Valid(d time.Duration) (bool, error) { + // Check for future tickets or invalid tickets + time := time.Now().UTC() + if t.DecryptedEncPart.StartTime.Sub(time) > d || types.IsFlagSet(&t.DecryptedEncPart.Flags, flags.Invalid) { + return false, NewKRBError(t.SName, t.Realm, errorcode.KRB_AP_ERR_TKT_NYV, "service ticket provided is not yet valid") + } + + // Check for expired ticket + if time.Sub(t.DecryptedEncPart.EndTime) > d { + return false, NewKRBError(t.SName, t.Realm, errorcode.KRB_AP_ERR_TKT_EXPIRED, "service ticket provided has expired") + } + + return true, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/client_claims.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/client_claims.go new file mode 100644 index 0000000..612979e --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/client_claims.go @@ -0,0 +1,33 @@ +package pac + +import ( + "bytes" + "fmt" + + "gopkg.in/jcmturner/rpc.v1/mstypes" + "gopkg.in/jcmturner/rpc.v1/ndr" +) + +// Claims reference: https://msdn.microsoft.com/en-us/library/hh553895.aspx + +// ClientClaimsInfo implements https://msdn.microsoft.com/en-us/library/hh536365.aspx +type ClientClaimsInfo struct { + ClaimsSetMetadata mstypes.ClaimsSetMetadata + ClaimsSet mstypes.ClaimsSet +} + +// Unmarshal bytes into the ClientClaimsInfo struct +func (k *ClientClaimsInfo) Unmarshal(b []byte) (err error) { + dec := ndr.NewDecoder(bytes.NewReader(b)) + m := new(mstypes.ClaimsSetMetadata) + err = dec.Decode(m) + if err != nil { + err = fmt.Errorf("error unmarshaling ClientClaimsInfo ClaimsSetMetadata: %v", err) + } + k.ClaimsSetMetadata = *m + k.ClaimsSet, err = k.ClaimsSetMetadata.ClaimsSet() + if err != nil { + err = fmt.Errorf("error unmarshaling ClientClaimsInfo ClaimsSet: %v", err) + } + return +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/client_info.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/client_info.go new file mode 100644 index 0000000..ad5212d --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/client_info.go @@ -0,0 +1,31 @@ +package pac + +import ( + "bytes" + + "gopkg.in/jcmturner/rpc.v1/mstypes" +) + +// ClientInfo implements https://msdn.microsoft.com/en-us/library/cc237951.aspx +type ClientInfo struct { + ClientID mstypes.FileTime // A FILETIME structure in little-endian format that contains the Kerberos initial ticket-granting ticket TGT authentication time + NameLength uint16 // An unsigned 16-bit integer in little-endian format that specifies the length, in bytes, of the Name field. + Name string // An array of 16-bit Unicode characters in little-endian format that contains the client's account name. +} + +// Unmarshal bytes into the ClientInfo struct +func (k *ClientInfo) Unmarshal(b []byte) (err error) { + //The PAC_CLIENT_INFO structure is a simple structure that is not NDR-encoded. + r := mstypes.NewReader(bytes.NewReader(b)) + + k.ClientID, err = r.FileTime() + if err != nil { + return + } + k.NameLength, err = r.Uint16() + if err != nil { + return + } + k.Name, err = r.UTF16String(int(k.NameLength)) + return +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/credentials_info.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/credentials_info.go new file mode 100644 index 0000000..a8c2c3c --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/credentials_info.go @@ -0,0 +1,86 @@ +package pac + +import ( + "bytes" + "errors" + "fmt" + + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/types" + "gopkg.in/jcmturner/rpc.v1/mstypes" + "gopkg.in/jcmturner/rpc.v1/ndr" +) + +// https://msdn.microsoft.com/en-us/library/cc237931.aspx + +// CredentialsInfo implements https://msdn.microsoft.com/en-us/library/cc237953.aspx +type CredentialsInfo struct { + Version uint32 // A 32-bit unsigned integer in little-endian format that defines the version. MUST be 0x00000000. + EType uint32 + PACCredentialDataEncrypted []byte // Key usage number for encryption: KERB_NON_KERB_SALT (16) + PACCredentialData CredentialData +} + +// Unmarshal bytes into the CredentialsInfo struct +func (c *CredentialsInfo) Unmarshal(b []byte, k types.EncryptionKey) (err error) { + //The CredentialsInfo structure is a simple structure that is not NDR-encoded. + r := mstypes.NewReader(bytes.NewReader(b)) + + c.Version, err = r.Uint32() + if err != nil { + return + } + if c.Version != 0 { + err = errors.New("credentials info version is not zero") + return + } + c.EType, err = r.Uint32() + if err != nil { + return + } + c.PACCredentialDataEncrypted, err = r.ReadBytes(len(b) - 8) + + err = c.DecryptEncPart(k) + if err != nil { + err = fmt.Errorf("error decrypting PAC Credentials Data: %v", err) + return + } + return +} + +// DecryptEncPart decrypts the encrypted part of the CredentialsInfo. +func (c *CredentialsInfo) DecryptEncPart(k types.EncryptionKey) error { + if k.KeyType != int32(c.EType) { + return fmt.Errorf("key provided is not the correct type. Type needed: %d, type provided: %d", c.EType, k.KeyType) + } + pt, err := crypto.DecryptMessage(c.PACCredentialDataEncrypted, k, keyusage.KERB_NON_KERB_SALT) + if err != nil { + return err + } + err = c.PACCredentialData.Unmarshal(pt) + if err != nil { + return err + } + return nil +} + +// CredentialData implements https://msdn.microsoft.com/en-us/library/cc237952.aspx +// This structure is encrypted prior to being encoded in any other structures. +// Encryption is performed by first serializing the data structure via Network Data Representation (NDR) encoding, as specified in [MS-RPCE]. +// Once serialized, the data is encrypted using the key and cryptographic system selected through the AS protocol and the KRB_AS_REP message +// Fields (for capturing this information) and cryptographic parameters are specified in PAC_CREDENTIAL_INFO (section 2.6.1). +type CredentialData struct { + CredentialCount uint32 + Credentials []SECPKGSupplementalCred // Size is the value of CredentialCount +} + +// Unmarshal converts the bytes provided into a CredentialData type. +func (c *CredentialData) Unmarshal(b []byte) (err error) { + dec := ndr.NewDecoder(bytes.NewReader(b)) + err = dec.Decode(c) + if err != nil { + err = fmt.Errorf("error unmarshaling KerbValidationInfo: %v", err) + } + return +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/device_claims.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/device_claims.go new file mode 100644 index 0000000..c2299bb --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/device_claims.go @@ -0,0 +1,33 @@ +package pac + +import ( + "bytes" + "fmt" + + "gopkg.in/jcmturner/rpc.v1/mstypes" + "gopkg.in/jcmturner/rpc.v1/ndr" +) + +// Claims reference: https://msdn.microsoft.com/en-us/library/hh553895.aspx + +// DeviceClaimsInfo implements https://msdn.microsoft.com/en-us/library/hh554226.aspx +type DeviceClaimsInfo struct { + ClaimsSetMetadata mstypes.ClaimsSetMetadata + ClaimsSet mstypes.ClaimsSet +} + +// Unmarshal bytes into the ClientClaimsInfo struct +func (k *DeviceClaimsInfo) Unmarshal(b []byte) (err error) { + dec := ndr.NewDecoder(bytes.NewReader(b)) + m := new(mstypes.ClaimsSetMetadata) + err = dec.Decode(m) + if err != nil { + err = fmt.Errorf("error unmarshaling ClientClaimsInfo ClaimsSetMetadata: %v", err) + } + k.ClaimsSetMetadata = *m + k.ClaimsSet, err = k.ClaimsSetMetadata.ClaimsSet() + if err != nil { + err = fmt.Errorf("error unmarshaling ClientClaimsInfo ClaimsSet: %v", err) + } + return +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/device_info.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/device_info.go new file mode 100644 index 0000000..51be207 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/device_info.go @@ -0,0 +1,32 @@ +package pac + +import ( + "bytes" + "fmt" + + "gopkg.in/jcmturner/rpc.v1/mstypes" + "gopkg.in/jcmturner/rpc.v1/ndr" +) + +// DeviceInfo implements https://msdn.microsoft.com/en-us/library/hh536402.aspx +type DeviceInfo struct { + UserID uint32 // A 32-bit unsigned integer that contains the RID of the account. If the UserId member equals 0x00000000, the first group SID in this member is the SID for this account. + PrimaryGroupID uint32 // A 32-bit unsigned integer that contains the RID for the primary group to which this account belongs. + AccountDomainID mstypes.RPCSID `ndr:"pointer"` // A SID structure that contains the SID for the domain of the account.This member is used in conjunction with the UserId, and GroupIds members to create the user and group SIDs for the client. + AccountGroupCount uint32 // A 32-bit unsigned integer that contains the number of groups within the account domain to which the account belongs + AccountGroupIDs []mstypes.GroupMembership `ndr:"pointer,conformant"` // A pointer to a list of GROUP_MEMBERSHIP (section 2.2.2) structures that contains the groups to which the account belongs in the account domain. The number of groups in this list MUST be equal to GroupCount. + SIDCount uint32 // A 32-bit unsigned integer that contains the total number of SIDs present in the ExtraSids member. + ExtraSIDs []mstypes.KerbSidAndAttributes `ndr:"pointer,conformant"` // A pointer to a list of KERB_SID_AND_ATTRIBUTES structures that contain a list of SIDs corresponding to groups not in domains. If the UserId member equals 0x00000000, the first group SID in this member is the SID for this account. + DomainGroupCount uint32 // A 32-bit unsigned integer that contains the number of domains with groups to which the account belongs. + DomainGroup []mstypes.DomainGroupMembership `ndr:"pointer,conformant"` // A pointer to a list of DOMAIN_GROUP_MEMBERSHIP structures (section 2.2.3) that contains the domains to which the account belongs to a group. The number of sets in this list MUST be equal to DomainCount. +} + +// Unmarshal bytes into the DeviceInfo struct +func (k *DeviceInfo) Unmarshal(b []byte) (err error) { + dec := ndr.NewDecoder(bytes.NewReader(b)) + err = dec.Decode(k) + if err != nil { + err = fmt.Errorf("error unmarshaling DeviceInfo: %v", err) + } + return +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/kerb_validation_info.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/kerb_validation_info.go new file mode 100644 index 0000000..9dd69d2 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/kerb_validation_info.go @@ -0,0 +1,115 @@ +// Package pac implements Microsoft Privilege Attribute Certificate (PAC) processing. +package pac + +import ( + "bytes" + "fmt" + + "gopkg.in/jcmturner/rpc.v1/mstypes" + "gopkg.in/jcmturner/rpc.v1/ndr" +) + +// KERB_VALIDATION_INFO flags. +const ( + USERFLAG_GUEST = 31 // Authentication was done via the GUEST account; no password was used. + USERFLAG_NO_ENCRYPTION_AVAILABLE = 30 // No encryption is available. + USERFLAG_LAN_MANAGER_KEY = 28 // LAN Manager key was used for authentication. + USERFLAG_SUB_AUTH = 25 // Sub-authentication used; session key came from the sub-authentication package. + USERFLAG_EXTRA_SIDS = 26 // Indicates that the ExtraSids field is populated and contains additional SIDs. + USERFLAG_MACHINE_ACCOUNT = 24 // Indicates that the account is a machine account. + USERFLAG_DC_NTLM2 = 23 // Indicates that the domain controller understands NTLMv2. + USERFLAG_RESOURCE_GROUPIDS = 22 // Indicates that the ResourceGroupIds field is populated. + USERFLAG_PROFILEPATH = 21 // Indicates that ProfilePath is populated. + USERFLAG_NTLM2_NTCHALLENGERESP = 20 // The NTLMv2 response from the NtChallengeResponseFields ([MS-NLMP] section 2.2.1.3) was used for authentication and session key generation. + USERFLAG_LM2_LMCHALLENGERESP = 19 // The LMv2 response from the LmChallengeResponseFields ([MS-NLMP] section 2.2.1.3) was used for authentication and session key generation. + USERFLAG_AUTH_LMCHALLENGERESP_KEY_NTCHALLENGERESP = 18 // The LMv2 response from the LmChallengeResponseFields ([MS-NLMP] section 2.2.1.3) was used for authentication and the NTLMv2 response from the NtChallengeResponseFields ([MS-NLMP] section 2.2.1.3) was used session key generation. +) + +// KerbValidationInfo implement https://msdn.microsoft.com/en-us/library/cc237948.aspx +// The KERB_VALIDATION_INFO structure defines the user's logon and authorization information +// provided by the DC. The KERB_VALIDATION_INFO structure is a subset of the +// NETLOGON_VALIDATION_SAM_INFO4 structure ([MS-NRPC] section 2.2.1.4.13). +// It is a subset due to historical reasons and to the use of the common Active Directory to generate this information. +// The KERB_VALIDATION_INFO structure is marshaled by RPC [MS-RPCE]. +type KerbValidationInfo struct { + LogOnTime mstypes.FileTime + LogOffTime mstypes.FileTime + KickOffTime mstypes.FileTime + PasswordLastSet mstypes.FileTime + PasswordCanChange mstypes.FileTime + PasswordMustChange mstypes.FileTime + EffectiveName mstypes.RPCUnicodeString + FullName mstypes.RPCUnicodeString + LogonScript mstypes.RPCUnicodeString + ProfilePath mstypes.RPCUnicodeString + HomeDirectory mstypes.RPCUnicodeString + HomeDirectoryDrive mstypes.RPCUnicodeString + LogonCount uint16 + BadPasswordCount uint16 + UserID uint32 + PrimaryGroupID uint32 + GroupCount uint32 + GroupIDs []mstypes.GroupMembership `ndr:"pointer,conformant"` + UserFlags uint32 + UserSessionKey mstypes.UserSessionKey + LogonServer mstypes.RPCUnicodeString + LogonDomainName mstypes.RPCUnicodeString + LogonDomainID mstypes.RPCSID `ndr:"pointer"` + Reserved1 [2]uint32 // Has 2 elements + UserAccountControl uint32 + SubAuthStatus uint32 + LastSuccessfulILogon mstypes.FileTime + LastFailedILogon mstypes.FileTime + FailedILogonCount uint32 + Reserved3 uint32 + SIDCount uint32 + ExtraSIDs []mstypes.KerbSidAndAttributes `ndr:"pointer,conformant"` + ResourceGroupDomainSID mstypes.RPCSID `ndr:"pointer"` + ResourceGroupCount uint32 + ResourceGroupIDs []mstypes.GroupMembership `ndr:"pointer,conformant"` +} + +// Unmarshal bytes into the DeviceInfo struct +func (k *KerbValidationInfo) Unmarshal(b []byte) (err error) { + dec := ndr.NewDecoder(bytes.NewReader(b)) + err = dec.Decode(k) + if err != nil { + err = fmt.Errorf("error unmarshaling KerbValidationInfo: %v", err) + } + return +} + +// GetGroupMembershipSIDs returns a slice of strings containing the group membership SIDs found in the PAC. +func (k *KerbValidationInfo) GetGroupMembershipSIDs() []string { + var g []string + lSID := k.LogonDomainID.String() + for i := range k.GroupIDs { + g = append(g, fmt.Sprintf("%s-%d", lSID, k.GroupIDs[i].RelativeID)) + } + for _, s := range k.ExtraSIDs { + var exists = false + for _, es := range g { + if es == s.SID.String() { + exists = true + break + } + } + if !exists { + g = append(g, s.SID.String()) + } + } + for _, r := range k.ResourceGroupIDs { + var exists = false + s := fmt.Sprintf("%s-%d", k.ResourceGroupDomainSID.String(), r.RelativeID) + for _, es := range g { + if es == s { + exists = true + break + } + } + if !exists { + g = append(g, s) + } + } + return g +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/pac_type.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/pac_type.go new file mode 100644 index 0000000..c73fd06 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/pac_type.go @@ -0,0 +1,251 @@ +package pac + +import ( + "bytes" + "errors" + "fmt" + "log" + + "gopkg.in/jcmturner/gokrb5.v7/crypto" + "gopkg.in/jcmturner/gokrb5.v7/iana/keyusage" + "gopkg.in/jcmturner/gokrb5.v7/types" + "gopkg.in/jcmturner/rpc.v1/mstypes" +) + +const ( + infoTypeKerbValidationInfo uint32 = 1 + infoTypeCredentials uint32 = 2 + infoTypePACServerSignatureData uint32 = 6 + infoTypePACKDCSignatureData uint32 = 7 + infoTypePACClientInfo uint32 = 10 + infoTypeS4UDelegationInfo uint32 = 11 + infoTypeUPNDNSInfo uint32 = 12 + infoTypePACClientClaimsInfo uint32 = 13 + infoTypePACDeviceInfo uint32 = 14 + infoTypePACDeviceClaimsInfo uint32 = 15 +) + +// PACType implements: https://msdn.microsoft.com/en-us/library/cc237950.aspx +type PACType struct { + CBuffers uint32 + Version uint32 + Buffers []InfoBuffer + Data []byte + KerbValidationInfo *KerbValidationInfo + CredentialsInfo *CredentialsInfo + ServerChecksum *SignatureData + KDCChecksum *SignatureData + ClientInfo *ClientInfo + S4UDelegationInfo *S4UDelegationInfo + UPNDNSInfo *UPNDNSInfo + ClientClaimsInfo *ClientClaimsInfo + DeviceInfo *DeviceInfo + DeviceClaimsInfo *DeviceClaimsInfo + ZeroSigData []byte +} + +// InfoBuffer implements the PAC Info Buffer: https://msdn.microsoft.com/en-us/library/cc237954.aspx +type InfoBuffer struct { + ULType uint32 // A 32-bit unsigned integer in little-endian format that describes the type of data present in the buffer contained at Offset. + CBBufferSize uint32 // A 32-bit unsigned integer in little-endian format that contains the size, in bytes, of the buffer in the PAC located at Offset. + Offset uint64 // A 64-bit unsigned integer in little-endian format that contains the offset to the beginning of the buffer, in bytes, from the beginning of the PACTYPE structure. The data offset MUST be a multiple of eight. The following sections specify the format of each type of element. +} + +// Unmarshal bytes into the PACType struct +func (pac *PACType) Unmarshal(b []byte) (err error) { + pac.Data = b + zb := make([]byte, len(b), len(b)) + copy(zb, b) + pac.ZeroSigData = zb + r := mstypes.NewReader(bytes.NewReader(b)) + pac.CBuffers, err = r.Uint32() + if err != nil { + return + } + pac.Version, err = r.Uint32() + if err != nil { + return + } + buf := make([]InfoBuffer, pac.CBuffers, pac.CBuffers) + for i := range buf { + buf[i].ULType, err = r.Uint32() + if err != nil { + return + } + buf[i].CBBufferSize, err = r.Uint32() + if err != nil { + return + } + buf[i].Offset, err = r.Uint64() + if err != nil { + return + } + } + pac.Buffers = buf + return nil +} + +// ProcessPACInfoBuffers processes the PAC Info Buffers. +// https://msdn.microsoft.com/en-us/library/cc237954.aspx +func (pac *PACType) ProcessPACInfoBuffers(key types.EncryptionKey, l *log.Logger) error { + for _, buf := range pac.Buffers { + p := make([]byte, buf.CBBufferSize, buf.CBBufferSize) + copy(p, pac.Data[int(buf.Offset):int(buf.Offset)+int(buf.CBBufferSize)]) + switch buf.ULType { + case infoTypeKerbValidationInfo: + if pac.KerbValidationInfo != nil { + //Must ignore subsequent buffers of this type + continue + } + var k KerbValidationInfo + err := k.Unmarshal(p) + if err != nil { + return fmt.Errorf("error processing KerbValidationInfo: %v", err) + } + pac.KerbValidationInfo = &k + case infoTypeCredentials: + // Currently PAC parsing is only useful on the service side in gokrb5 + // The CredentialsInfo are only useful when gokrb5 has implemented RFC4556 and only applied on the client side. + // Skipping CredentialsInfo - will be revisited under RFC4556 implementation. + continue + //if pac.CredentialsInfo != nil { + // //Must ignore subsequent buffers of this type + // continue + //} + //var k CredentialsInfo + //err := k.Unmarshal(p, key) // The encryption key used is the AS reply key only available to the client. + //if err != nil { + // return fmt.Errorf("error processing CredentialsInfo: %v", err) + //} + //pac.CredentialsInfo = &k + case infoTypePACServerSignatureData: + if pac.ServerChecksum != nil { + //Must ignore subsequent buffers of this type + continue + } + var k SignatureData + zb, err := k.Unmarshal(p) + copy(pac.ZeroSigData[int(buf.Offset):int(buf.Offset)+int(buf.CBBufferSize)], zb) + if err != nil { + return fmt.Errorf("error processing ServerChecksum: %v", err) + } + pac.ServerChecksum = &k + case infoTypePACKDCSignatureData: + if pac.KDCChecksum != nil { + //Must ignore subsequent buffers of this type + continue + } + var k SignatureData + zb, err := k.Unmarshal(p) + copy(pac.ZeroSigData[int(buf.Offset):int(buf.Offset)+int(buf.CBBufferSize)], zb) + if err != nil { + return fmt.Errorf("error processing KDCChecksum: %v", err) + } + pac.KDCChecksum = &k + case infoTypePACClientInfo: + if pac.ClientInfo != nil { + //Must ignore subsequent buffers of this type + continue + } + var k ClientInfo + err := k.Unmarshal(p) + if err != nil { + return fmt.Errorf("error processing ClientInfo: %v", err) + } + pac.ClientInfo = &k + case infoTypeS4UDelegationInfo: + if pac.S4UDelegationInfo != nil { + //Must ignore subsequent buffers of this type + continue + } + var k S4UDelegationInfo + err := k.Unmarshal(p) + if err != nil { + l.Printf("could not process S4U_DelegationInfo: %v", err) + continue + } + pac.S4UDelegationInfo = &k + case infoTypeUPNDNSInfo: + if pac.UPNDNSInfo != nil { + //Must ignore subsequent buffers of this type + continue + } + var k UPNDNSInfo + err := k.Unmarshal(p) + if err != nil { + l.Printf("could not process UPN_DNSInfo: %v", err) + continue + } + pac.UPNDNSInfo = &k + case infoTypePACClientClaimsInfo: + if pac.ClientClaimsInfo != nil || len(p) < 1 { + //Must ignore subsequent buffers of this type + continue + } + var k ClientClaimsInfo + err := k.Unmarshal(p) + if err != nil { + l.Printf("could not process ClientClaimsInfo: %v", err) + continue + } + pac.ClientClaimsInfo = &k + case infoTypePACDeviceInfo: + if pac.DeviceInfo != nil { + //Must ignore subsequent buffers of this type + continue + } + var k DeviceInfo + err := k.Unmarshal(p) + if err != nil { + l.Printf("could not process DeviceInfo: %v", err) + continue + } + pac.DeviceInfo = &k + case infoTypePACDeviceClaimsInfo: + if pac.DeviceClaimsInfo != nil { + //Must ignore subsequent buffers of this type + continue + } + var k DeviceClaimsInfo + err := k.Unmarshal(p) + if err != nil { + l.Printf("could not process DeviceClaimsInfo: %v", err) + continue + } + pac.DeviceClaimsInfo = &k + } + } + + if ok, err := pac.verify(key); !ok { + return err + } + + return nil +} + +func (pac *PACType) verify(key types.EncryptionKey) (bool, error) { + if pac.KerbValidationInfo == nil { + return false, errors.New("PAC Info Buffers does not contain a KerbValidationInfo") + } + if pac.ServerChecksum == nil { + return false, errors.New("PAC Info Buffers does not contain a ServerChecksum") + } + if pac.KDCChecksum == nil { + return false, errors.New("PAC Info Buffers does not contain a KDCChecksum") + } + if pac.ClientInfo == nil { + return false, errors.New("PAC Info Buffers does not contain a ClientInfo") + } + etype, err := crypto.GetChksumEtype(int32(pac.ServerChecksum.SignatureType)) + if err != nil { + return false, err + } + if ok := etype.VerifyChecksum(key.KeyValue, + pac.ZeroSigData, + pac.ServerChecksum.Signature, + keyusage.KERB_NON_KERB_CKSUM_SALT); !ok { + return false, errors.New("PAC service checksum verification failed") + } + + return true, nil +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/s4u_delegation_info.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/s4u_delegation_info.go new file mode 100644 index 0000000..614ee85 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/s4u_delegation_info.go @@ -0,0 +1,26 @@ +package pac + +import ( + "bytes" + "fmt" + + "gopkg.in/jcmturner/rpc.v1/mstypes" + "gopkg.in/jcmturner/rpc.v1/ndr" +) + +// S4UDelegationInfo implements https://msdn.microsoft.com/en-us/library/cc237944.aspx +type S4UDelegationInfo struct { + S4U2proxyTarget mstypes.RPCUnicodeString // The name of the principal to whom the application can forward the ticket. + TransitedListSize uint32 + S4UTransitedServices []mstypes.RPCUnicodeString `ndr:"pointer,conformant"` // List of all services that have been delegated through by this client and subsequent services or servers.. Size is value of TransitedListSize +} + +// Unmarshal bytes into the S4UDelegationInfo struct +func (k *S4UDelegationInfo) Unmarshal(b []byte) (err error) { + dec := ndr.NewDecoder(bytes.NewReader(b)) + err = dec.Decode(k) + if err != nil { + err = fmt.Errorf("error unmarshaling S4UDelegationInfo: %v", err) + } + return +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/signature_data.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/signature_data.go new file mode 100644 index 0000000..7e0fce1 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/signature_data.go @@ -0,0 +1,79 @@ +package pac + +import ( + "bytes" + + "gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype" + "gopkg.in/jcmturner/rpc.v1/mstypes" +) + +/* +https://msdn.microsoft.com/en-us/library/cc237955.aspx + +The Key Usage Value MUST be KERB_NON_KERB_CKSUM_SALT (17) [MS-KILE] (section 3.1.5.9). + +Server Signature (SignatureType = 0x00000006) +https://msdn.microsoft.com/en-us/library/cc237957.aspx +The KDC will use the long-term key that the KDC shares with the server, so that the server can verify this signature on receiving a PAC. +The server signature is a keyed hash [RFC4757] of the entire PAC message, with the Signature fields of both PAC_SIGNATURE_DATA structures set to zero. +The key used to protect the ciphertext part of the response is used. +The checksum type corresponds to the key unless the key is DES, in which case the KERB_CHECKSUM_HMAC_MD5 key is used. +The resulting hash value is then placed in the Signature field of the server's PAC_SIGNATURE_DATA structure. + +KDC Signature (SignatureType = 0x00000007) +https://msdn.microsoft.com/en-us/library/dd357117.aspx +The KDC will use KDC (krbtgt) key [RFC4120], so that other KDCs can verify this signature on receiving a PAC. +The KDC signature is a keyed hash [RFC4757] of the Server Signature field in the PAC message. +The cryptographic system that is used to calculate the checksum depends on which system the KDC supports, as defined below: +- Supports RC4-HMAC --> KERB_CHECKSUM_HMAC_MD5 +- Does not support RC4-HMAC and supports AES256 --> HMAC_SHA1_96_AES256 +- Does not support RC4-HMAC or AES256-CTS-HMAC-SHA1-96, and supports AES128-CTS-HMAC-SHA1-96 --> HMAC_SHA1_96_AES128 +- Does not support RC4-HMAC, AES128-CTS-HMAC-SHA1-96 or AES256-CTS-HMAC-SHA1-96 --> None. The checksum operation will fail. +*/ + +// SignatureData implements https://msdn.microsoft.com/en-us/library/cc237955.aspx +type SignatureData struct { + SignatureType uint32 // A 32-bit unsigned integer value in little-endian format that defines the cryptographic system used to calculate the checksum. This MUST be one of the following checksum types: KERB_CHECKSUM_HMAC_MD5 (signature size = 16), HMAC_SHA1_96_AES128 (signature size = 12), HMAC_SHA1_96_AES256 (signature size = 12). + Signature []byte // Size depends on the type. See comment above. + RODCIdentifier uint16 // A 16-bit unsigned integer value in little-endian format that contains the first 16 bits of the key version number ([MS-KILE] section 3.1.5.8) when the KDC is an RODC. When the KDC is not an RODC, this field does not exist. +} + +// Unmarshal bytes into the SignatureData struct +func (k *SignatureData) Unmarshal(b []byte) (rb []byte, err error) { + r := mstypes.NewReader(bytes.NewReader(b)) + + k.SignatureType, err = r.Uint32() + if err != nil { + return + } + + var c int + switch k.SignatureType { + case chksumtype.KERB_CHECKSUM_HMAC_MD5_UNSIGNED: + c = 16 + case uint32(chksumtype.HMAC_SHA1_96_AES128): + c = 12 + case uint32(chksumtype.HMAC_SHA1_96_AES256): + c = 12 + } + k.Signature, err = r.ReadBytes(c) + if err != nil { + return + } + + // When the KDC is not an Read Only Domain Controller (RODC), this field does not exist. + if len(b) >= 4+c+2 { + k.RODCIdentifier, err = r.Uint16() + if err != nil { + return + } + } + + // Create bytes with zeroed signature needed for checksum verification + rb = make([]byte, len(b), len(b)) + copy(rb, b) + z := make([]byte, len(b), len(b)) + copy(rb[4:4+c], z) + + return +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/supplemental_cred.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/supplemental_cred.go new file mode 100644 index 0000000..5f4f93c --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/pac/supplemental_cred.go @@ -0,0 +1,90 @@ +package pac + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + + "gopkg.in/jcmturner/rpc.v1/mstypes" + "gopkg.in/jcmturner/rpc.v1/ndr" +) + +const ( + // NTLMSupCredLMOWF indicates that the LM OWF member is present and valid. + NTLMSupCredLMOWF uint32 = 31 + // NTLMSupCredNTOWF indicates that the NT OWF member is present and valid. + NTLMSupCredNTOWF uint32 = 30 +) + +// NTLMSupplementalCred implements https://msdn.microsoft.com/en-us/library/cc237949.aspx +type NTLMSupplementalCred struct { + Version uint32 // A 32-bit unsigned integer that defines the credential version.This field MUST be 0x00000000. + Flags uint32 + LMPassword []byte // A 16-element array of unsigned 8-bit integers that define the LM OWF. The LMPassword member MUST be ignored if the L flag is not set in the Flags member. + NTPassword []byte // A 16-element array of unsigned 8-bit integers that define the NT OWF. The NTPassword member MUST be ignored if the N flag is not set in the Flags member. +} + +// Unmarshal converts the bytes provided into a NTLMSupplementalCred. +func (c *NTLMSupplementalCred) Unmarshal(b []byte) (err error) { + r := mstypes.NewReader(bytes.NewReader(b)) + c.Version, err = r.Uint32() + if err != nil { + return + } + if c.Version != 0 { + err = errors.New("NTLMSupplementalCred version is not zero") + return + } + c.Flags, err = r.Uint32() + if err != nil { + return + } + if isFlagSet(c.Flags, NTLMSupCredLMOWF) { + c.LMPassword, err = r.ReadBytes(16) + if err != nil { + return + } + } + if isFlagSet(c.Flags, NTLMSupCredNTOWF) { + c.NTPassword, err = r.ReadBytes(16) + if err != nil { + return + } + } + return +} + +// isFlagSet tests if a flag is set in the uint32 little endian flag +func isFlagSet(f uint32, i uint32) bool { + //Which byte? + b := int(i / 8) + //Which bit in byte + p := uint(7 - (int(i) - 8*b)) + fb := make([]byte, 4) + binary.LittleEndian.PutUint32(fb, f) + if fb[b]&(1<: +func GetHostAddress(s string) (HostAddress, error) { + var h HostAddress + cAddr, _, err := net.SplitHostPort(s) + if err != nil { + return h, fmt.Errorf("invalid format of client address: %v", err) + } + ip := net.ParseIP(cAddr) + var ht int32 + if ip.To4() != nil { + ht = addrtype.IPv4 + ip = ip.To4() + } else if ip.To16() != nil { + ht = addrtype.IPv6 + ip = ip.To16() + } else { + return h, fmt.Errorf("could not determine client's address types: %v", err) + } + h = HostAddress{ + AddrType: ht, + Address: ip, + } + return h, nil +} + +// GetAddress returns a string representation of the HostAddress. +func (h *HostAddress) GetAddress() (string, error) { + var b []byte + _, err := asn1.Unmarshal(h.Address, &b) + return string(b), err +} + +// LocalHostAddresses returns a HostAddresses struct for the local machines interface IP addresses. +func LocalHostAddresses() (ha HostAddresses, err error) { + ifs, err := net.Interfaces() + if err != nil { + return + } + for _, iface := range ifs { + if iface.Flags&net.FlagLoopback != 0 || iface.Flags&net.FlagUp == 0 { + // Interface is either loopback of not up + continue + } + addrs, err := iface.Addrs() + if err != nil { + continue + } + for _, addr := range addrs { + var ip net.IP + switch v := addr.(type) { + case *net.IPNet: + ip = v.IP + case *net.IPAddr: + ip = v.IP + } + var a HostAddress + if ip.To16() == nil { + //neither IPv4 or IPv6 + continue + } + if ip.To4() != nil { + //Is IPv4 + a.AddrType = addrtype.IPv4 + a.Address = ip.To4() + } else { + a.AddrType = addrtype.IPv6 + a.Address = ip.To16() + } + ha = append(ha, a) + } + } + return ha, nil +} + +// HostAddressesFromNetIPs returns a HostAddresses type from a slice of net.IP +func HostAddressesFromNetIPs(ips []net.IP) (ha HostAddresses) { + for _, ip := range ips { + ha = append(ha, HostAddressFromNetIP(ip)) + } + return ha +} + +// HostAddressFromNetIP returns a HostAddress type from a net.IP +func HostAddressFromNetIP(ip net.IP) HostAddress { + if ip.To4() != nil { + //Is IPv4 + return HostAddress{ + AddrType: addrtype.IPv4, + Address: ip.To4(), + } + } + return HostAddress{ + AddrType: addrtype.IPv6, + Address: ip.To16(), + } +} + +// HostAddressesEqual tests if two HostAddress slices are equal. +func HostAddressesEqual(h, a []HostAddress) bool { + if len(h) != len(a) { + return false + } + for _, e := range a { + var found bool + for _, i := range h { + if e.Equal(i) { + found = true + break + } + } + if !found { + return false + } + } + return true +} + +// HostAddressesContains tests if a HostAddress is contained in a HostAddress slice. +func HostAddressesContains(h []HostAddress, a HostAddress) bool { + for _, e := range h { + if e.Equal(a) { + return true + } + } + return false +} + +// Equal tests if the HostAddress is equal to another HostAddress provided. +func (h *HostAddress) Equal(a HostAddress) bool { + if h.AddrType != a.AddrType { + return false + } + return bytes.Equal(h.Address, a.Address) +} + +// Contains tests if a HostAddress is contained within the HostAddresses struct. +func (h *HostAddresses) Contains(a HostAddress) bool { + for _, e := range *h { + if e.Equal(a) { + return true + } + } + return false +} + +// Equal tests if a HostAddress slice is equal to the HostAddresses struct. +func (h *HostAddresses) Equal(a []HostAddress) bool { + if len(*h) != len(a) { + return false + } + for _, e := range a { + if !h.Contains(e) { + return false + } + } + return true +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/types/KerberosFlags.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/types/KerberosFlags.go new file mode 100644 index 0000000..bd75d5b --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/types/KerberosFlags.go @@ -0,0 +1,124 @@ +package types + +// Reference: https://www.ietf.org/rfc/rfc4120.txt +// Section: 5.2.8 + +import ( + "github.com/jcmturner/gofork/encoding/asn1" +) + +/* +KerberosFlags + +For several message types, a specific constrained bit string type, +KerberosFlags, is used. + +KerberosFlags ::= BIT STRING (SIZE (32..MAX)) +-- minimum number of bits shall be sent, +-- but no fewer than 32 + +Compatibility note: The following paragraphs describe a change from +the RFC 1510 description of bit strings that would result in +incompatility in the case of an implementation that strictly +conformed to ASN.1 DER and RFC 1510. + +ASN.1 bit strings have multiple uses. The simplest use of a bit +string is to contain a vector of bits, with no particular meaning +attached to individual bits. This vector of bits is not necessarily +a multiple of eight bits long. The use in Kerberos of a bit string +as a compact boolean vector wherein each element has a distinct +meaning poses some problems. The natural notation for a compact +boolean vector is the ASN.1 "NamedBit" notation, and the DER require +that encodings of a bit string using "NamedBit" notation exclude any +trailing zero bits. This truncation is easy to neglect, especially +given C language implementations that naturally choose to store +boolean vectors as 32-bit integers. + +For example, if the notation for KDCOptions were to include the +"NamedBit" notation, as in RFC 1510, and a KDCOptions value to be +encoded had only the "forwardable" (bit number one) bit set, the DER +encoding MUST include only two bits: the first reserved bit +("reserved", bit number zero, value zero) and the one-valued bit (bit +number one) for "forwardable". + +Most existing implementations of Kerberos unconditionally send 32 +bits on the wire when encoding bit strings used as boolean vectors. +This behavior violates the ASN.1 syntax used for flag values in RFC +1510, but it occurs on such a widely installed base that the protocol +description is being modified to accommodate it. + +Consequently, this document removes the "NamedBit" notations for +individual bits, relegating them to comments. The size constraint on +the KerberosFlags type requires that at least 32 bits be encoded at +all times, though a lenient implementation MAY choose to accept fewer +than 32 bits and to treat the missing bits as set to zero. + +Currently, no uses of KerberosFlags specify more than 32 bits' worth +of flags, although future revisions of this document may do so. When +more than 32 bits are to be transmitted in a KerberosFlags value, +future revisions to this document will likely specify that the +smallest number of bits needed to encode the highest-numbered one- +valued bit should be sent. This is somewhat similar to the DER +encoding of a bit string that is declared with the "NamedBit" +notation. +*/ + +// NewKrbFlags returns an ASN1 BitString struct of the right size for KrbFlags. +func NewKrbFlags() asn1.BitString { + f := asn1.BitString{} + f.Bytes = make([]byte, 4) + f.BitLength = len(f.Bytes) * 8 + return f +} + +// SetFlags sets the flags of an ASN1 BitString. +func SetFlags(f *asn1.BitString, j []int) { + for _, i := range j { + SetFlag(f, i) + } +} + +// SetFlag sets a flag in an ASN1 BitString. +func SetFlag(f *asn1.BitString, i int) { + for l := len(f.Bytes); l < 4; l++ { + (*f).Bytes = append((*f).Bytes, byte(0)) + (*f).BitLength = len((*f).Bytes) * 8 + } + //Which byte? + b := i / 8 + //Which bit in byte + p := uint(7 - (i - 8*b)) + (*f).Bytes[b] = (*f).Bytes[b] | (1 << p) +} + +// UnsetFlags unsets flags in an ASN1 BitString. +func UnsetFlags(f *asn1.BitString, j []int) { + for _, i := range j { + UnsetFlag(f, i) + } +} + +// UnsetFlag unsets a flag in an ASN1 BitString. +func UnsetFlag(f *asn1.BitString, i int) { + for l := len(f.Bytes); l < 4; l++ { + (*f).Bytes = append((*f).Bytes, byte(0)) + (*f).BitLength = len((*f).Bytes) * 8 + } + //Which byte? + b := i / 8 + //Which bit in byte + p := uint(7 - (i - 8*b)) + (*f).Bytes[b] = (*f).Bytes[b] &^ (1 << p) +} + +// IsFlagSet tests if a flag is set in the ASN1 BitString. +func IsFlagSet(f *asn1.BitString, i int) bool { + //Which byte? + b := i / 8 + //Which bit in byte + p := uint(7 - (i - 8*b)) + if (*f).Bytes[b]&(1</@ +// a PrincipalName type will be returned with the name type set to KRB_NT_PRINCIPAL(1) +// and the realm will be returned as a string. If the "@" suffix +// is not included in the SPN then the value of realm string returned will be "" +func ParseSPNString(spn string) (pn PrincipalName, realm string) { + if strings.Contains(spn, "@") { + s := strings.Split(spn, "@") + realm = s[len(s)-1] + spn = strings.TrimSuffix(spn, "@"+realm) + } + pn = NewPrincipalName(nametype.KRB_NT_PRINCIPAL, spn) + return +} diff --git a/vendor/gopkg.in/jcmturner/gokrb5.v7/types/TypedData.go b/vendor/gopkg.in/jcmturner/gokrb5.v7/types/TypedData.go new file mode 100644 index 0000000..19e9f49 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/gokrb5.v7/types/TypedData.go @@ -0,0 +1,18 @@ +package types + +import "github.com/jcmturner/gofork/encoding/asn1" + +// TypedData implements RFC 4120 type: https://tools.ietf.org/html/rfc4120#section-5.9.1 +type TypedData struct { + DataType int32 `asn1:"explicit,tag:0"` + DataValue []byte `asn1:"optional,explicit,tag:1"` +} + +// TypedDataSequence implements RFC 4120 type: https://tools.ietf.org/html/rfc4120#section-5.9.1 +type TypedDataSequence []TypedData + +// Unmarshal bytes into the TypedDataSequence. +func (a *TypedDataSequence) Unmarshal(b []byte) error { + _, err := asn1.Unmarshal(b, a) + return err +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/LICENSE b/vendor/gopkg.in/jcmturner/rpc.v1/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/claims.go b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/claims.go new file mode 100644 index 0000000..2b375da --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/claims.go @@ -0,0 +1,134 @@ +package mstypes + +import ( + "bytes" + "errors" + + "gopkg.in/jcmturner/rpc.v1/ndr" +) + +// Compression format assigned numbers. +const ( + CompressionFormatNone uint16 = 0 + CompressionFormatLZNT1 uint16 = 2 + CompressionFormatXPress uint16 = 3 + CompressionFormatXPressHuff uint16 = 4 +) + +// ClaimsSourceTypeAD https://msdn.microsoft.com/en-us/library/hh553809.aspx +const ClaimsSourceTypeAD uint16 = 1 + +// Claim Type assigned numbers +const ( + ClaimTypeIDInt64 uint16 = 1 + ClaimTypeIDUInt64 uint16 = 2 + ClaimTypeIDString uint16 = 3 + ClaimsTypeIDBoolean uint16 = 6 +) + +// ClaimsBlob implements https://msdn.microsoft.com/en-us/library/hh554119.aspx +type ClaimsBlob struct { + Size uint32 + EncodedBlob EncodedBlob +} + +// EncodedBlob are the bytes of the encoded Claims +type EncodedBlob []byte + +// Size returns the size of the bytes of the encoded Claims +func (b EncodedBlob) Size(c interface{}) int { + cb := c.(ClaimsBlob) + return int(cb.Size) +} + +// ClaimsSetMetadata implements https://msdn.microsoft.com/en-us/library/hh554073.aspx +type ClaimsSetMetadata struct { + ClaimsSetSize uint32 + ClaimsSetBytes []byte `ndr:"pointer,conformant"` + CompressionFormat uint16 // Enum see constants for options + UncompressedClaimsSetSize uint32 + ReservedType uint16 + ReservedFieldSize uint32 + ReservedField []byte `ndr:"pointer,conformant"` +} + +// ClaimsSet reads the ClaimsSet type from the NDR encoded ClaimsSetBytes in the ClaimsSetMetadata +func (m *ClaimsSetMetadata) ClaimsSet() (c ClaimsSet, err error) { + if len(m.ClaimsSetBytes) < 1 { + err = errors.New("no bytes available for ClaimsSet") + return + } + // TODO switch statement to decompress ClaimsSetBytes + if m.CompressionFormat != CompressionFormatNone { + err = errors.New("compressed ClaimsSet not currently supported") + return + } + dec := ndr.NewDecoder(bytes.NewReader(m.ClaimsSetBytes)) + err = dec.Decode(&c) + return +} + +// ClaimsSet implements https://msdn.microsoft.com/en-us/library/hh554122.aspx +type ClaimsSet struct { + ClaimsArrayCount uint32 + ClaimsArrays []ClaimsArray `ndr:"pointer,conformant"` + ReservedType uint16 + ReservedFieldSize uint32 + ReservedField []byte `ndr:"pointer,conformant"` +} + +// ClaimsArray implements https://msdn.microsoft.com/en-us/library/hh536458.aspx +type ClaimsArray struct { + ClaimsSourceType uint16 + ClaimsCount uint32 + ClaimEntries []ClaimEntry `ndr:"pointer,conformant"` +} + +// ClaimEntry is a NDR union that implements https://msdn.microsoft.com/en-us/library/hh536374.aspx +type ClaimEntry struct { + ID string `ndr:"pointer,conformant,varying"` + Type uint16 `ndr:"unionTag"` + TypeInt64 ClaimTypeInt64 `ndr:"unionField"` + TypeUInt64 ClaimTypeUInt64 `ndr:"unionField"` + TypeString ClaimTypeString `ndr:"unionField"` + TypeBool ClaimTypeBoolean `ndr:"unionField"` +} + +// SwitchFunc is the ClaimEntry union field selection function +func (u ClaimEntry) SwitchFunc(_ interface{}) string { + switch u.Type { + case ClaimTypeIDInt64: + return "TypeInt64" + case ClaimTypeIDUInt64: + return "TypeUInt64" + case ClaimTypeIDString: + return "TypeString" + case ClaimsTypeIDBoolean: + return "TypeBool" + } + return "" +} + +// ClaimTypeInt64 is a claim of type int64 +type ClaimTypeInt64 struct { + ValueCount uint32 + Value []int64 `ndr:"pointer,conformant"` +} + +// ClaimTypeUInt64 is a claim of type uint64 +type ClaimTypeUInt64 struct { + ValueCount uint32 + Value []uint64 `ndr:"pointer,conformant"` +} + +// ClaimTypeString is a claim of type string +type ClaimTypeString struct { + ValueCount uint32 + Value []LPWSTR `ndr:"pointer,conformant"` +} + +// ClaimTypeBoolean is a claim of type bool +type ClaimTypeBoolean struct { + ValueCount uint32 + Value []bool `ndr:"pointer,conformant"` +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/common.go b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/common.go new file mode 100644 index 0000000..62cac28 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/common.go @@ -0,0 +1,10 @@ +package mstypes + +// LPWSTR implements https://msdn.microsoft.com/en-us/library/cc230355.aspx +type LPWSTR struct { + Value string `ndr:"pointer,conformant,varying"` +} + +func (s *LPWSTR) String() string { + return s.Value +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/filetime.go b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/filetime.go new file mode 100644 index 0000000..5cc952f --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/filetime.go @@ -0,0 +1,52 @@ +// Package mstypes implements representations of Microsoft types +package mstypes + +import ( + "time" +) + +/* +FILETIME is a windows data structure. +Ref: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724284%28v=vs.85%29.aspx +It contains two parts that are 32bit integers: + dwLowDateTime + dwHighDateTime +We need to combine these two into one 64bit integer. +This gives the number of 100 nano second period from January 1, 1601, Coordinated Universal Time (UTC) +*/ + +const unixEpochDiff = 116444736000000000 + +// FileTime implements the Microsoft FILETIME type https://msdn.microsoft.com/en-us/library/cc230324.aspx +type FileTime struct { + LowDateTime uint32 + HighDateTime uint32 +} + +// Time return a golang Time type from the FileTime +func (ft FileTime) Time() time.Time { + ns := (ft.MSEpoch() - unixEpochDiff) * 100 + return time.Unix(0, int64(ns)).UTC() +} + +// MSEpoch returns the FileTime as a Microsoft epoch, the number of 100 nano second periods elapsed from January 1, 1601 UTC. +func (ft FileTime) MSEpoch() int64 { + return (int64(ft.HighDateTime) << 32) + int64(ft.LowDateTime) +} + +// Unix returns the FileTime as a Unix time, the number of seconds elapsed since January 1, 1970 UTC. +func (ft FileTime) Unix() int64 { + return (ft.MSEpoch() - unixEpochDiff) / 10000000 +} + +// GetFileTime returns a FileTime type from the provided Golang Time type. +func GetFileTime(t time.Time) FileTime { + ns := t.UnixNano() + fp := (ns / 100) + unixEpochDiff + hd := fp >> 32 + ld := fp - (hd << 32) + return FileTime{ + LowDateTime: uint32(ld), + HighDateTime: uint32(hd), + } +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/group_membership.go b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/group_membership.go new file mode 100644 index 0000000..7915137 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/group_membership.go @@ -0,0 +1,19 @@ +package mstypes + +// GroupMembership implements https://msdn.microsoft.com/en-us/library/cc237945.aspx +// RelativeID : A 32-bit unsigned integer that contains the RID of a particular group. +// The possible values for the Attributes flags are identical to those specified in KERB_SID_AND_ATTRIBUTES +type GroupMembership struct { + RelativeID uint32 + Attributes uint32 +} + +// DomainGroupMembership implements https://msdn.microsoft.com/en-us/library/hh536344.aspx +// DomainId: A SID structure that contains the SID for the domain.This member is used in conjunction with the GroupIds members to create group SIDs for the device. +// GroupCount: A 32-bit unsigned integer that contains the number of groups within the domain to which the account belongs. +// GroupIds: A pointer to a list of GROUP_MEMBERSHIP structures that contain the groups to which the account belongs in the domain. The number of groups in this list MUST be equal to GroupCount. +type DomainGroupMembership struct { + DomainID RPCSID `ndr:"pointer"` + GroupCount uint32 + GroupIDs []GroupMembership `ndr:"pointer,conformant"` // Size is value of GroupCount +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/kerb_sid_and_attributes.go b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/kerb_sid_and_attributes.go new file mode 100644 index 0000000..61ac39b --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/kerb_sid_and_attributes.go @@ -0,0 +1,23 @@ +package mstypes + +// Attributes of a security group membership and can be combined by using the bitwise OR operation. +// They are used by an access check mechanism to specify whether the membership is to be used in an access check decision. +const ( + SEGroupMandatory = 31 + SEGroupEnabledByDefault = 30 + SEGroupEnabled = 29 + SEGroupOwner = 28 + SEGroupResource = 2 + //All other bits MUST be set to zero and MUST be ignored on receipt. +) + +// KerbSidAndAttributes implements https://msdn.microsoft.com/en-us/library/cc237947.aspx +type KerbSidAndAttributes struct { + SID RPCSID `ndr:"pointer"` // A pointer to an RPC_SID structure. + Attributes uint32 +} + +// SetFlag sets a flag in a uint32 attribute value. +func SetFlag(a *uint32, i uint) { + *a = *a | (1 << (31 - i)) +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/reader.go b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/reader.go new file mode 100644 index 0000000..24495bc --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/reader.go @@ -0,0 +1,109 @@ +package mstypes + +import ( + "bufio" + "encoding/binary" + "fmt" + "io" +) + +// Byte sizes of primitive types +const ( + SizeBool = 1 + SizeChar = 1 + SizeUint8 = 1 + SizeUint16 = 2 + SizeUint32 = 4 + SizeUint64 = 8 + SizeEnum = 2 + SizeSingle = 4 + SizeDouble = 8 + SizePtr = 4 +) + +// Reader reads simple byte stream data into a Go representations +type Reader struct { + r *bufio.Reader // source of the data +} + +// NewReader creates a new instance of a simple Reader. +func NewReader(r io.Reader) *Reader { + reader := new(Reader) + reader.r = bufio.NewReader(r) + return reader +} + +func (r *Reader) Read(p []byte) (n int, err error) { + return r.r.Read(p) +} + +func (r *Reader) Uint8() (uint8, error) { + b, err := r.r.ReadByte() + if err != nil { + return uint8(0), err + } + return uint8(b), nil +} + +func (r *Reader) Uint16() (uint16, error) { + b, err := r.ReadBytes(SizeUint16) + if err != nil { + return uint16(0), err + } + return binary.LittleEndian.Uint16(b), nil +} + +func (r *Reader) Uint32() (uint32, error) { + b, err := r.ReadBytes(SizeUint32) + if err != nil { + return uint32(0), err + } + return binary.LittleEndian.Uint32(b), nil +} + +func (r *Reader) Uint64() (uint64, error) { + b, err := r.ReadBytes(SizeUint64) + if err != nil { + return uint64(0), err + } + return binary.LittleEndian.Uint64(b), nil +} + +func (r *Reader) FileTime() (f FileTime, err error) { + f.LowDateTime, err = r.Uint32() + if err != nil { + return + } + f.HighDateTime, err = r.Uint32() + if err != nil { + return + } + return +} + +// UTF16String returns a string that is UTF16 encoded in a byte slice. n is the number of bytes representing the string +func (r *Reader) UTF16String(n int) (str string, err error) { + //Length divided by 2 as each run is 16bits = 2bytes + s := make([]rune, n/2, n/2) + for i := 0; i < len(s); i++ { + var u uint16 + u, err = r.Uint16() + if err != nil { + return + } + s[i] = rune(u) + } + str = string(s) + return +} + +// readBytes returns a number of bytes from the NDR byte stream. +func (r *Reader) ReadBytes(n int) ([]byte, error) { + //TODO make this take an int64 as input to allow for larger values on all systems? + b := make([]byte, n, n) + m, err := r.r.Read(b) + if err != nil || m != n { + return b, fmt.Errorf("error reading bytes from stream: %v", err) + } + return b, nil +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/rpc_unicode_string.go b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/rpc_unicode_string.go new file mode 100644 index 0000000..4bf02e0 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/rpc_unicode_string.go @@ -0,0 +1,13 @@ +package mstypes + +// RPCUnicodeString implements https://msdn.microsoft.com/en-us/library/cc230365.aspx +type RPCUnicodeString struct { + Length uint16 // The length, in bytes, of the string pointed to by the Buffer member, not including the terminating null character if any. The length MUST be a multiple of 2. The length SHOULD equal the entire size of the Buffer, in which case there is no terminating null character. Any method that accesses this structure MUST use the Length specified instead of relying on the presence or absence of a null character. + MaximumLength uint16 // The maximum size, in bytes, of the string pointed to by Buffer. The size MUST be a multiple of 2. If not, the size MUST be decremented by 1 prior to use. This value MUST not be less than Length. + Value string `ndr:"pointer,conformant,varying"` +} + +// String returns the RPCUnicodeString string value +func (r *RPCUnicodeString) String() string { + return r.Value +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/sid.go b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/sid.go new file mode 100644 index 0000000..98a9c5a --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/sid.go @@ -0,0 +1,32 @@ +package mstypes + +import ( + "encoding/binary" + "encoding/hex" + "fmt" +) + +// RPCSID implements https://msdn.microsoft.com/en-us/library/cc230364.aspx +type RPCSID struct { + Revision uint8 // An 8-bit unsigned integer that specifies the revision level of the SID. This value MUST be set to 0x01. + SubAuthorityCount uint8 // An 8-bit unsigned integer that specifies the number of elements in the SubAuthority array. The maximum number of elements allowed is 15. + IdentifierAuthority [6]byte // An RPC_SID_IDENTIFIER_AUTHORITY structure that indicates the authority under which the SID was created. It describes the entity that created the SID. The Identifier Authority value {0,0,0,0,0,5} denotes SIDs created by the NT SID authority. + SubAuthority []uint32 `ndr:"conformant"` // A variable length array of unsigned 32-bit integers that uniquely identifies a principal relative to the IdentifierAuthority. Its length is determined by SubAuthorityCount. +} + +// String returns the string representation of the RPC_SID. +func (s *RPCSID) String() string { + var str string + b := append(make([]byte, 2, 2), s.IdentifierAuthority[:]...) + // For a strange reason this is read big endian: https://msdn.microsoft.com/en-us/library/dd302645.aspx + i := binary.BigEndian.Uint64(b) + if i >= 4294967296 { + str = fmt.Sprintf("S-1-0x%s", hex.EncodeToString(s.IdentifierAuthority[:])) + } else { + str = fmt.Sprintf("S-1-%d", i) + } + for _, sub := range s.SubAuthority { + str = fmt.Sprintf("%s-%d", str, sub) + } + return str +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/user_session_key.go b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/user_session_key.go new file mode 100644 index 0000000..fcf0a5d --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/mstypes/user_session_key.go @@ -0,0 +1,11 @@ +package mstypes + +// CypherBlock implements https://msdn.microsoft.com/en-us/library/cc237040.aspx +type CypherBlock struct { + Data [8]byte // size = 8 +} + +// UserSessionKey implements https://msdn.microsoft.com/en-us/library/cc237080.aspx +type UserSessionKey struct { + CypherBlock [2]CypherBlock // size = 2 +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/ndr/arrays.go b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/arrays.go new file mode 100644 index 0000000..5e2def2 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/arrays.go @@ -0,0 +1,413 @@ +package ndr + +import ( + "errors" + "fmt" + "reflect" + "strconv" +) + +// intFromTag returns an int that is a value in a struct tag key/value pair +func intFromTag(tag reflect.StructTag, key string) (int, error) { + ndrTag := parseTags(tag) + d := 1 + if n, ok := ndrTag.Map[key]; ok { + i, err := strconv.Atoi(n) + if err != nil { + return d, fmt.Errorf("invalid dimensions tag [%s]: %v", n, err) + } + d = i + } + return d, nil +} + +// parseDimensions returns the a slice of the size of each dimension and type of the member at the deepest level. +func parseDimensions(v reflect.Value) (l []int, tb reflect.Type) { + if v.Kind() == reflect.Ptr { + v = v.Elem() + } + t := v.Type() + if t.Kind() == reflect.Ptr { + t = t.Elem() + } + if t.Kind() != reflect.Array && t.Kind() != reflect.Slice { + return + } + l = append(l, v.Len()) + if t.Elem().Kind() == reflect.Array || t.Elem().Kind() == reflect.Slice { + // contains array or slice + var m []int + m, tb = parseDimensions(v.Index(0)) + l = append(l, m...) + } else { + tb = t.Elem() + } + return +} + +// sliceDimensions returns the count of dimensions a slice has. +func sliceDimensions(t reflect.Type) (d int, tb reflect.Type) { + if t.Kind() == reflect.Ptr { + t = t.Elem() + } + if t.Kind() == reflect.Slice { + d++ + var n int + n, tb = sliceDimensions(t.Elem()) + d += n + } else { + tb = t + } + return +} + +// makeSubSlices is a deep recursive creation/initialisation of multi-dimensional slices. +// Takes the reflect.Value of the 1st dimension and a slice of the lengths of the sub dimensions +func makeSubSlices(v reflect.Value, l []int) { + ty := v.Type().Elem() + if ty.Kind() != reflect.Slice { + return + } + for i := 0; i < v.Len(); i++ { + s := reflect.MakeSlice(ty, l[0], l[0]) + v.Index(i).Set(s) + // Are there more sub dimensions? + if len(l) > 1 { + makeSubSlices(v.Index(i), l[1:]) + } + } + return +} + +// multiDimensionalIndexPermutations returns all the permutations of the indexes of a multi-dimensional slice. +// The input is a slice of integers that indicates the max size/length of each dimension +func multiDimensionalIndexPermutations(l []int) (ps [][]int) { + z := make([]int, len(l), len(l)) // The zeros permutation + ps = append(ps, z) + // for each dimension, in reverse + for i := len(l) - 1; i >= 0; i-- { + ws := make([][]int, len(ps)) + copy(ws, ps) + //create a permutation for each of the iterations of the current dimension + for j := 1; j <= l[i]-1; j++ { + // For each existing permutation + for _, p := range ws { + np := make([]int, len(p), len(p)) + copy(np, p) + np[i] = j + ps = append(ps, np) + } + } + } + return +} + +// precedingMax reads off the next conformant max value +func (dec *Decoder) precedingMax() uint32 { + m := dec.conformantMax[0] + dec.conformantMax = dec.conformantMax[1:] + return m +} + +// fillFixedArray establishes if the fixed array is uni or multi dimensional and then fills it. +func (dec *Decoder) fillFixedArray(v reflect.Value, tag reflect.StructTag, def *[]deferedPtr) error { + l, t := parseDimensions(v) + if t.Kind() == reflect.String { + tag = reflect.StructTag(subStringArrayTag) + } + if len(l) < 1 { + return errors.New("could not establish dimensions of fixed array") + } + if len(l) == 1 { + err := dec.fillUniDimensionalFixedArray(v, tag, def) + if err != nil { + return fmt.Errorf("could not fill uni-dimensional fixed array: %v", err) + } + return nil + } + // Fixed array is multidimensional + ps := multiDimensionalIndexPermutations(l[:len(l)-1]) + for _, p := range ps { + // Get current multi-dimensional index to fill + a := v + for _, i := range p { + a = a.Index(i) + } + // fill with the last dimension array + err := dec.fillUniDimensionalFixedArray(a, tag, def) + if err != nil { + return fmt.Errorf("could not fill dimension %v of multi-dimensional fixed array: %v", p, err) + } + } + return nil +} + +// readUniDimensionalFixedArray reads an array (not slice) from the byte stream. +func (dec *Decoder) fillUniDimensionalFixedArray(v reflect.Value, tag reflect.StructTag, def *[]deferedPtr) error { + for i := 0; i < v.Len(); i++ { + err := dec.fill(v.Index(i), tag, def) + if err != nil { + return fmt.Errorf("could not fill index %d of fixed array: %v", i, err) + } + } + return nil +} + +// fillConformantArray establishes if the conformant array is uni or multi dimensional and then fills the slice. +func (dec *Decoder) fillConformantArray(v reflect.Value, tag reflect.StructTag, def *[]deferedPtr) error { + d, _ := sliceDimensions(v.Type()) + if d > 1 { + err := dec.fillMultiDimensionalConformantArray(v, d, tag, def) + if err != nil { + return err + } + } else { + err := dec.fillUniDimensionalConformantArray(v, tag, def) + if err != nil { + return err + } + } + return nil +} + +// fillUniDimensionalConformantArray fills the uni-dimensional slice value. +func (dec *Decoder) fillUniDimensionalConformantArray(v reflect.Value, tag reflect.StructTag, def *[]deferedPtr) error { + m := dec.precedingMax() + n := int(m) + a := reflect.MakeSlice(v.Type(), n, n) + for i := 0; i < n; i++ { + err := dec.fill(a.Index(i), tag, def) + if err != nil { + return fmt.Errorf("could not fill index %d of uni-dimensional conformant array: %v", i, err) + } + } + v.Set(a) + return nil +} + +// fillMultiDimensionalConformantArray fills the multi-dimensional slice value provided from conformant array data. +// The number of dimensions must be specified. This must be less than or equal to the dimensions in the slice for this +// method not to panic. +func (dec *Decoder) fillMultiDimensionalConformantArray(v reflect.Value, d int, tag reflect.StructTag, def *[]deferedPtr) error { + // Read the max size of each dimensions from the ndr stream + l := make([]int, d, d) + for i := range l { + l[i] = int(dec.precedingMax()) + } + // Initialise size of slices + // Initialise the size of the 1st dimension + ty := v.Type() + v.Set(reflect.MakeSlice(ty, l[0], l[0])) + // Initialise the size of the other dimensions recursively + makeSubSlices(v, l[1:]) + + // Get all permutations of the indexes and go through each and fill + ps := multiDimensionalIndexPermutations(l) + for _, p := range ps { + // Get current multi-dimensional index to fill + a := v + for _, i := range p { + a = a.Index(i) + } + err := dec.fill(a, tag, def) + if err != nil { + return fmt.Errorf("could not fill index %v of slice: %v", p, err) + } + } + return nil +} + +// fillVaryingArray establishes if the varying array is uni or multi dimensional and then fills the slice. +func (dec *Decoder) fillVaryingArray(v reflect.Value, tag reflect.StructTag, def *[]deferedPtr) error { + d, t := sliceDimensions(v.Type()) + if d > 1 { + err := dec.fillMultiDimensionalVaryingArray(v, t, d, tag, def) + if err != nil { + return err + } + } else { + err := dec.fillUniDimensionalVaryingArray(v, tag, def) + if err != nil { + return err + } + } + return nil +} + +// fillUniDimensionalVaryingArray fills the uni-dimensional slice value. +func (dec *Decoder) fillUniDimensionalVaryingArray(v reflect.Value, tag reflect.StructTag, def *[]deferedPtr) error { + o, err := dec.readUint32() + if err != nil { + return fmt.Errorf("could not read offset of uni-dimensional varying array: %v", err) + } + s, err := dec.readUint32() + if err != nil { + return fmt.Errorf("could not establish actual count of uni-dimensional varying array: %v", err) + } + t := v.Type() + // Total size of the array is the offset in the index being passed plus the actual count of elements being passed. + n := int(s + o) + a := reflect.MakeSlice(t, n, n) + // Populate the array starting at the offset specified + for i := int(o); i < n; i++ { + err := dec.fill(a.Index(i), tag, def) + if err != nil { + return fmt.Errorf("could not fill index %d of uni-dimensional varying array: %v", i, err) + } + } + v.Set(a) + return nil +} + +// fillMultiDimensionalVaryingArray fills the multi-dimensional slice value provided from varying array data. +// The number of dimensions must be specified. This must be less than or equal to the dimensions in the slice for this +// method not to panic. +func (dec *Decoder) fillMultiDimensionalVaryingArray(v reflect.Value, t reflect.Type, d int, tag reflect.StructTag, def *[]deferedPtr) error { + // Read the offset and actual count of each dimensions from the ndr stream + o := make([]int, d, d) + l := make([]int, d, d) + for i := range l { + off, err := dec.readUint32() + if err != nil { + return fmt.Errorf("could not read offset of dimension %d: %v", i+1, err) + } + o[i] = int(off) + s, err := dec.readUint32() + if err != nil { + return fmt.Errorf("could not read size of dimension %d: %v", i+1, err) + } + l[i] = int(s) + int(off) + } + // Initialise size of slices + // Initialise the size of the 1st dimension + ty := v.Type() + v.Set(reflect.MakeSlice(ty, l[0], l[0])) + // Initialise the size of the other dimensions recursively + makeSubSlices(v, l[1:]) + + // Get all permutations of the indexes and go through each and fill + ps := multiDimensionalIndexPermutations(l) + for _, p := range ps { + // Get current multi-dimensional index to fill + a := v + var os bool // should this permutation be skipped due to the offset of any of the dimensions? + for i, j := range p { + if j < o[i] { + os = true + break + } + a = a.Index(j) + } + if os { + // This permutation should be skipped as it is less than the offset for one of the dimensions. + continue + } + err := dec.fill(a, tag, def) + if err != nil { + return fmt.Errorf("could not fill index %v of slice: %v", p, err) + } + } + return nil +} + +// fillConformantVaryingArray establishes if the varying array is uni or multi dimensional and then fills the slice. +func (dec *Decoder) fillConformantVaryingArray(v reflect.Value, tag reflect.StructTag, def *[]deferedPtr) error { + d, t := sliceDimensions(v.Type()) + if d > 1 { + err := dec.fillMultiDimensionalConformantVaryingArray(v, t, d, tag, def) + if err != nil { + return err + } + } else { + err := dec.fillUniDimensionalConformantVaryingArray(v, tag, def) + if err != nil { + return err + } + } + return nil +} + +// fillUniDimensionalConformantVaryingArray fills the uni-dimensional slice value. +func (dec *Decoder) fillUniDimensionalConformantVaryingArray(v reflect.Value, tag reflect.StructTag, def *[]deferedPtr) error { + m := dec.precedingMax() + o, err := dec.readUint32() + if err != nil { + return fmt.Errorf("could not read offset of uni-dimensional conformant varying array: %v", err) + } + s, err := dec.readUint32() + if err != nil { + return fmt.Errorf("could not establish actual count of uni-dimensional conformant varying array: %v", err) + } + if m < o+s { + return errors.New("max count is less than the offset plus actual count") + } + t := v.Type() + n := int(s) + a := reflect.MakeSlice(t, n, n) + for i := int(o); i < n; i++ { + err := dec.fill(a.Index(i), tag, def) + if err != nil { + return fmt.Errorf("could not fill index %d of uni-dimensional conformant varying array: %v", i, err) + } + } + v.Set(a) + return nil +} + +// fillMultiDimensionalConformantVaryingArray fills the multi-dimensional slice value provided from conformant varying array data. +// The number of dimensions must be specified. This must be less than or equal to the dimensions in the slice for this +// method not to panic. +func (dec *Decoder) fillMultiDimensionalConformantVaryingArray(v reflect.Value, t reflect.Type, d int, tag reflect.StructTag, def *[]deferedPtr) error { + // Read the offset and actual count of each dimensions from the ndr stream + m := make([]int, d, d) + for i := range m { + m[i] = int(dec.precedingMax()) + } + o := make([]int, d, d) + l := make([]int, d, d) + for i := range l { + off, err := dec.readUint32() + if err != nil { + return fmt.Errorf("could not read offset of dimension %d: %v", i+1, err) + } + o[i] = int(off) + s, err := dec.readUint32() + if err != nil { + return fmt.Errorf("could not read actual count of dimension %d: %v", i+1, err) + } + if m[i] < int(s)+int(off) { + m[i] = int(s) + int(off) + } + l[i] = int(s) + } + // Initialise size of slices + // Initialise the size of the 1st dimension + ty := v.Type() + v.Set(reflect.MakeSlice(ty, m[0], m[0])) + // Initialise the size of the other dimensions recursively + makeSubSlices(v, m[1:]) + + // Get all permutations of the indexes and go through each and fill + ps := multiDimensionalIndexPermutations(m) + for _, p := range ps { + // Get current multi-dimensional index to fill + a := v + var os bool // should this permutation be skipped due to the offset of any of the dimensions or max is higher than the actual count being passed + for i, j := range p { + if j < o[i] || j >= l[i] { + os = true + break + } + a = a.Index(j) + } + if os { + // This permutation should be skipped as it is less than the offset for one of the dimensions. + continue + } + err := dec.fill(a, tag, def) + if err != nil { + return fmt.Errorf("could not fill index %v of slice: %v", p, err) + } + } + return nil +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/ndr/decoder.go b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/decoder.go new file mode 100644 index 0000000..6157b4e --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/decoder.go @@ -0,0 +1,393 @@ +// Package ndr provides the ability to unmarshal NDR encoded byte steams into Go data structures +package ndr + +import ( + "bufio" + "fmt" + "io" + "reflect" + "strings" +) + +// Struct tag values +const ( + TagConformant = "conformant" + TagVarying = "varying" + TagPointer = "pointer" + TagPipe = "pipe" +) + +// Decoder unmarshals NDR byte stream data into a Go struct representation +type Decoder struct { + r *bufio.Reader // source of the data + size int // initial size of bytes in buffer + ch CommonHeader // NDR common header + ph PrivateHeader // NDR private header + conformantMax []uint32 // conformant max values that were moved to the beginning of the structure + s interface{} // pointer to the structure being populated + current []string // keeps track of the current field being populated +} + +type deferedPtr struct { + v reflect.Value + tag reflect.StructTag +} + +// NewDecoder creates a new instance of a NDR Decoder. +func NewDecoder(r io.Reader) *Decoder { + dec := new(Decoder) + dec.r = bufio.NewReader(r) + dec.r.Peek(int(commonHeaderBytes)) // For some reason an operation is needed on the buffer to initialise it so Buffered() != 0 + dec.size = dec.r.Buffered() + return dec +} + +// Decode unmarshals the NDR encoded bytes into the pointer of a struct provided. +func (dec *Decoder) Decode(s interface{}) error { + dec.s = s + err := dec.readCommonHeader() + if err != nil { + return err + } + err = dec.readPrivateHeader() + if err != nil { + return err + } + _, err = dec.r.Discard(4) //The next 4 bytes are an RPC unique pointer referent. We just skip these. + if err != nil { + return Errorf("unable to process byte stream: %v", err) + } + + return dec.process(s, reflect.StructTag("")) +} + +func (dec *Decoder) process(s interface{}, tag reflect.StructTag) error { + // Scan for conformant fields as their max counts are moved to the beginning + // http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm#tagfcjh_37 + err := dec.scanConformantArrays(s, tag) + if err != nil { + return err + } + // Recursively fill the struct fields + var localDef []deferedPtr + err = dec.fill(s, tag, &localDef) + if err != nil { + return Errorf("could not decode: %v", err) + } + // Read any deferred referents associated with pointers + for _, p := range localDef { + err = dec.process(p.v, p.tag) + if err != nil { + return fmt.Errorf("could not decode deferred referent: %v", err) + } + } + return nil +} + +// scanConformantArrays scans the structure for embedded conformant fields and captures the maximum element counts for +// dimensions of the array that are moved to the beginning of the structure. +func (dec *Decoder) scanConformantArrays(s interface{}, tag reflect.StructTag) error { + err := dec.conformantScan(s, tag) + if err != nil { + return fmt.Errorf("failed to scan for embedded conformant arrays: %v", err) + } + for i := range dec.conformantMax { + dec.conformantMax[i], err = dec.readUint32() + if err != nil { + return fmt.Errorf("could not read preceding conformant max count index %d: %v", i, err) + } + } + return nil +} + +// conformantScan inspects the structure's fields for whether they are conformant. +func (dec *Decoder) conformantScan(s interface{}, tag reflect.StructTag) error { + ndrTag := parseTags(tag) + if ndrTag.HasValue(TagPointer) { + return nil + } + v := getReflectValue(s) + switch v.Kind() { + case reflect.Struct: + for i := 0; i < v.NumField(); i++ { + err := dec.conformantScan(v.Field(i), v.Type().Field(i).Tag) + if err != nil { + return err + } + } + case reflect.String: + if !ndrTag.HasValue(TagConformant) { + break + } + dec.conformantMax = append(dec.conformantMax, uint32(0)) + case reflect.Slice: + if !ndrTag.HasValue(TagConformant) { + break + } + d, t := sliceDimensions(v.Type()) + for i := 0; i < d; i++ { + dec.conformantMax = append(dec.conformantMax, uint32(0)) + } + // For string arrays there is a common max for the strings within the array. + if t.Kind() == reflect.String { + dec.conformantMax = append(dec.conformantMax, uint32(0)) + } + } + return nil +} + +func (dec *Decoder) isPointer(v reflect.Value, tag reflect.StructTag, def *[]deferedPtr) (bool, error) { + // Pointer so defer filling the referent + ndrTag := parseTags(tag) + if ndrTag.HasValue(TagPointer) { + p, err := dec.readUint32() + if err != nil { + return true, fmt.Errorf("could not read pointer: %v", err) + } + ndrTag.delete(TagPointer) + if p != 0 { + // if pointer is not zero add to the deferred items at end of stream + *def = append(*def, deferedPtr{v, ndrTag.StructTag()}) + } + return true, nil + } + return false, nil +} + +func getReflectValue(s interface{}) (v reflect.Value) { + if r, ok := s.(reflect.Value); ok { + v = r + } else { + if reflect.ValueOf(s).Kind() == reflect.Ptr { + v = reflect.ValueOf(s).Elem() + } + } + return +} + +// fill populates fields with values from the NDR byte stream. +func (dec *Decoder) fill(s interface{}, tag reflect.StructTag, localDef *[]deferedPtr) error { + v := getReflectValue(s) + + //// Pointer so defer filling the referent + ptr, err := dec.isPointer(v, tag, localDef) + if err != nil { + return fmt.Errorf("could not process struct field(%s): %v", strings.Join(dec.current, "/"), err) + } + if ptr { + return nil + } + + // Populate the value from the byte stream + switch v.Kind() { + case reflect.Struct: + dec.current = append(dec.current, v.Type().Name()) //Track the current field being filled + // in case struct is a union, track this and the selected union field for efficiency + var unionTag reflect.Value + var unionField string // field to fill if struct is a union + // Go through each field in the struct and recursively fill + for i := 0; i < v.NumField(); i++ { + fieldName := v.Type().Field(i).Name + dec.current = append(dec.current, fieldName) //Track the current field being filled + //fmt.Fprintf(os.Stderr, "DEBUG Decoding: %s\n", strings.Join(dec.current, "/")) + structTag := v.Type().Field(i).Tag + ndrTag := parseTags(structTag) + + // Union handling + if !unionTag.IsValid() { + // Is this field a union tag? + unionTag = dec.isUnion(v.Field(i), structTag) + } else { + // What is the selected field value of the union if we don't already know + if unionField == "" { + unionField, err = unionSelectedField(v, unionTag) + if err != nil { + return fmt.Errorf("could not determine selected union value field for %s with discriminat"+ + " tag %s: %v", v.Type().Name(), unionTag, err) + } + } + if ndrTag.HasValue(TagUnionField) && fieldName != unionField { + // is a union and this field has not been selected so will skip it. + dec.current = dec.current[:len(dec.current)-1] //This field has been skipped so remove it from the current field tracker + continue + } + } + + // Check if field is a pointer + if v.Field(i).Type().Implements(reflect.TypeOf(new(RawBytes)).Elem()) && + v.Field(i).Type().Kind() == reflect.Slice && v.Field(i).Type().Elem().Kind() == reflect.Uint8 { + //field is for rawbytes + structTag, err = addSizeToTag(v, v.Field(i), structTag) + if err != nil { + return fmt.Errorf("could not get rawbytes field(%s) size: %v", strings.Join(dec.current, "/"), err) + } + ptr, err := dec.isPointer(v.Field(i), structTag, localDef) + if err != nil { + return fmt.Errorf("could not process struct field(%s): %v", strings.Join(dec.current, "/"), err) + } + if !ptr { + err := dec.readRawBytes(v.Field(i), structTag) + if err != nil { + return fmt.Errorf("could not fill raw bytes struct field(%s): %v", strings.Join(dec.current, "/"), err) + } + } + } else { + err := dec.fill(v.Field(i), structTag, localDef) + if err != nil { + return fmt.Errorf("could not fill struct field(%s): %v", strings.Join(dec.current, "/"), err) + } + } + dec.current = dec.current[:len(dec.current)-1] //This field has been filled so remove it from the current field tracker + } + dec.current = dec.current[:len(dec.current)-1] //This field has been filled so remove it from the current field tracker + case reflect.Bool: + i, err := dec.readBool() + if err != nil { + return fmt.Errorf("could not fill %s: %v", v.Type().Name(), err) + } + v.Set(reflect.ValueOf(i)) + case reflect.Uint8: + i, err := dec.readUint8() + if err != nil { + return fmt.Errorf("could not fill %s: %v", v.Type().Name(), err) + } + v.Set(reflect.ValueOf(i)) + case reflect.Uint16: + i, err := dec.readUint16() + if err != nil { + return fmt.Errorf("could not fill %s: %v", v.Type().Name(), err) + } + v.Set(reflect.ValueOf(i)) + case reflect.Uint32: + i, err := dec.readUint32() + if err != nil { + return fmt.Errorf("could not fill %s: %v", v.Type().Name(), err) + } + v.Set(reflect.ValueOf(i)) + case reflect.Uint64: + i, err := dec.readUint64() + if err != nil { + return fmt.Errorf("could not fill %s: %v", v.Type().Name(), err) + } + v.Set(reflect.ValueOf(i)) + case reflect.Int8: + i, err := dec.readInt8() + if err != nil { + return fmt.Errorf("could not fill %s: %v", v.Type().Name(), err) + } + v.Set(reflect.ValueOf(i)) + case reflect.Int16: + i, err := dec.readInt16() + if err != nil { + return fmt.Errorf("could not fill %s: %v", v.Type().Name(), err) + } + v.Set(reflect.ValueOf(i)) + case reflect.Int32: + i, err := dec.readInt32() + if err != nil { + return fmt.Errorf("could not fill %s: %v", v.Type().Name(), err) + } + v.Set(reflect.ValueOf(i)) + case reflect.Int64: + i, err := dec.readInt64() + if err != nil { + return fmt.Errorf("could not fill %s: %v", v.Type().Name(), err) + } + v.Set(reflect.ValueOf(i)) + case reflect.String: + ndrTag := parseTags(tag) + conformant := ndrTag.HasValue(TagConformant) + // strings are always varying so this is assumed without an explicit tag + var s string + var err error + if conformant { + s, err = dec.readConformantVaryingString(localDef) + if err != nil { + return fmt.Errorf("could not fill with conformant varying string: %v", err) + } + } else { + s, err = dec.readVaryingString(localDef) + if err != nil { + return fmt.Errorf("could not fill with varying string: %v", err) + } + } + v.Set(reflect.ValueOf(s)) + case reflect.Float32: + i, err := dec.readFloat32() + if err != nil { + return fmt.Errorf("could not fill %v: %v", v.Type().Name(), err) + } + v.Set(reflect.ValueOf(i)) + case reflect.Float64: + i, err := dec.readFloat64() + if err != nil { + return fmt.Errorf("could not fill %v: %v", v.Type().Name(), err) + } + v.Set(reflect.ValueOf(i)) + case reflect.Array: + err := dec.fillFixedArray(v, tag, localDef) + if err != nil { + return err + } + case reflect.Slice: + if v.Type().Implements(reflect.TypeOf(new(RawBytes)).Elem()) && v.Type().Elem().Kind() == reflect.Uint8 { + //field is for rawbytes + err := dec.readRawBytes(v, tag) + if err != nil { + return fmt.Errorf("could not fill raw bytes struct field(%s): %v", strings.Join(dec.current, "/"), err) + } + break + } + ndrTag := parseTags(tag) + conformant := ndrTag.HasValue(TagConformant) + varying := ndrTag.HasValue(TagVarying) + if ndrTag.HasValue(TagPipe) { + err := dec.fillPipe(v, tag) + if err != nil { + return err + } + break + } + _, t := sliceDimensions(v.Type()) + if t.Kind() == reflect.String && !ndrTag.HasValue(subStringArrayValue) { + // String array + err := dec.readStringsArray(v, tag, localDef) + if err != nil { + return err + } + break + } + // varying is assumed as fixed arrays use the Go array type rather than slice + if conformant && varying { + err := dec.fillConformantVaryingArray(v, tag, localDef) + if err != nil { + return err + } + } else if !conformant && varying { + err := dec.fillVaryingArray(v, tag, localDef) + if err != nil { + return err + } + } else { + //default to conformant and not varying + err := dec.fillConformantArray(v, tag, localDef) + if err != nil { + return err + } + } + default: + return fmt.Errorf("unsupported type") + } + return nil +} + +// readBytes returns a number of bytes from the NDR byte stream. +func (dec *Decoder) readBytes(n int) ([]byte, error) { + //TODO make this take an int64 as input to allow for larger values on all systems? + b := make([]byte, n, n) + m, err := dec.r.Read(b) + if err != nil || m != n { + return b, fmt.Errorf("error reading bytes from stream: %v", err) + } + return b, nil +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/ndr/error.go b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/error.go new file mode 100644 index 0000000..9971194 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/error.go @@ -0,0 +1,18 @@ +package ndr + +import "fmt" + +// Malformed implements the error interface for malformed NDR encoding errors. +type Malformed struct { + EText string +} + +// Error implements the error interface on the Malformed struct. +func (e Malformed) Error() string { + return fmt.Sprintf("malformed NDR stream: %s", e.EText) +} + +// Errorf formats an error message into a malformed NDR error. +func Errorf(format string, a ...interface{}) Malformed { + return Malformed{EText: fmt.Sprintf(format, a...)} +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/ndr/header.go b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/header.go new file mode 100644 index 0000000..1970ddb --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/header.go @@ -0,0 +1,116 @@ +package ndr + +import ( + "encoding/binary" + "fmt" +) + +/* +Serialization Version 1 +https://msdn.microsoft.com/en-us/library/cc243563.aspx + +Common Header - https://msdn.microsoft.com/en-us/library/cc243890.aspx +8 bytes in total: +- First byte - Version: Must equal 1 +- Second byte - 1st 4 bits: Endianess (0=Big; 1=Little); 2nd 4 bits: Character Encoding (0=ASCII; 1=EBCDIC) +- 3rd - Floating point representation (This does not seem to be the case in examples for Microsoft test sources) +- 4th - Common Header Length: Must equal 8 +- 5th - 8th - Filler: MUST be set to 0xcccccccc on marshaling, and SHOULD be ignored during unmarshaling. + +Private Header - https://msdn.microsoft.com/en-us/library/cc243919.aspx +8 bytes in total: +- First 4 bytes - Indicates the length of a serialized top-level type in the octet stream. It MUST include the padding length and exclude the header itself. +- Second 4 bytes - Filler: MUST be set to 0 (zero) during marshaling, and SHOULD be ignored during unmarshaling. +*/ + +const ( + protocolVersion uint8 = 1 + commonHeaderBytes uint16 = 8 + bigEndian = 0 + littleEndian = 1 + ascii uint8 = 0 + ebcdic uint8 = 1 + ieee uint8 = 0 + vax uint8 = 1 + cray uint8 = 2 + ibm uint8 = 3 +) + +// CommonHeader implements the NDR common header: https://msdn.microsoft.com/en-us/library/cc243889.aspx +type CommonHeader struct { + Version uint8 + Endianness binary.ByteOrder + CharacterEncoding uint8 + FloatRepresentation uint8 + HeaderLength uint16 + Filler []byte +} + +// PrivateHeader implements the NDR private header: https://msdn.microsoft.com/en-us/library/cc243919.aspx +type PrivateHeader struct { + ObjectBufferLength uint32 + Filler []byte +} + +func (dec *Decoder) readCommonHeader() error { + // Version + vb, err := dec.r.ReadByte() + if err != nil { + return Malformed{EText: "could not read first byte of common header for version"} + } + dec.ch.Version = uint8(vb) + if dec.ch.Version != protocolVersion { + return Malformed{EText: fmt.Sprintf("byte stream does not indicate a RPC Type serialization of version %v", protocolVersion)} + } + // Read Endianness & Character Encoding + eb, err := dec.r.ReadByte() + if err != nil { + return Malformed{EText: "could not read second byte of common header for endianness"} + } + endian := int(eb >> 4 & 0xF) + if endian != 0 && endian != 1 { + return Malformed{EText: "common header does not indicate a valid endianness"} + } + dec.ch.CharacterEncoding = uint8(vb & 0xF) + if dec.ch.CharacterEncoding != 0 && dec.ch.CharacterEncoding != 1 { + return Malformed{EText: "common header does not indicate a valid character encoding"} + } + switch endian { + case littleEndian: + dec.ch.Endianness = binary.LittleEndian + case bigEndian: + dec.ch.Endianness = binary.BigEndian + } + // Common header length + lb, err := dec.readBytes(2) + if err != nil { + return Malformed{EText: fmt.Sprintf("could not read common header length: %v", err)} + } + dec.ch.HeaderLength = dec.ch.Endianness.Uint16(lb) + if dec.ch.HeaderLength != commonHeaderBytes { + return Malformed{EText: "common header does not indicate a valid length"} + } + // Filler bytes + dec.ch.Filler, err = dec.readBytes(4) + if err != nil { + return Malformed{EText: fmt.Sprintf("could not read common header filler: %v", err)} + } + return nil +} + +func (dec *Decoder) readPrivateHeader() error { + // The next 8 bytes after the common header comprise the RPC type marshalling private header for constructed types. + err := binary.Read(dec.r, dec.ch.Endianness, &dec.ph.ObjectBufferLength) + if err != nil { + return Malformed{EText: "could not read private header object buffer length"} + } + if dec.ph.ObjectBufferLength%8 != 0 { + return Malformed{EText: "object buffer length not a multiple of 8"} + } + // Filler bytes + dec.ph.Filler, err = dec.readBytes(4) + if err != nil { + return Malformed{EText: fmt.Sprintf("could not read private header filler: %v", err)} + } + return nil +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/ndr/pipe.go b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/pipe.go new file mode 100644 index 0000000..5fd27da --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/pipe.go @@ -0,0 +1,31 @@ +package ndr + +import ( + "fmt" + "reflect" +) + +func (dec *Decoder) fillPipe(v reflect.Value, tag reflect.StructTag) error { + s, err := dec.readUint32() // read element count of first chunk + if err != nil { + return err + } + a := reflect.MakeSlice(v.Type(), 0, 0) + c := reflect.MakeSlice(v.Type(), int(s), int(s)) + for s != 0 { + for i := 0; i < int(s); i++ { + err := dec.fill(c.Index(i), tag, &[]deferedPtr{}) + if err != nil { + return fmt.Errorf("could not fill element %d of pipe: %v", i, err) + } + } + s, err = dec.readUint32() // read element count of first chunk + if err != nil { + return err + } + a = reflect.AppendSlice(a, c) + c = reflect.MakeSlice(v.Type(), int(s), int(s)) + } + v.Set(a) + return nil +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/ndr/primitives.go b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/primitives.go new file mode 100644 index 0000000..7eb1d1a --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/primitives.go @@ -0,0 +1,211 @@ +package ndr + +import ( + "bytes" + "encoding/binary" + "math" +) + +// Byte sizes of primitive types +const ( + SizeBool = 1 + SizeChar = 1 + SizeUint8 = 1 + SizeUint16 = 2 + SizeUint32 = 4 + SizeUint64 = 8 + SizeEnum = 2 + SizeSingle = 4 + SizeDouble = 8 + SizePtr = 4 +) + +// Bool is an NDR Boolean which is a logical quantity that assumes one of two values: TRUE or FALSE. +// NDR represents a Boolean as one octet. +// It represents a value of FALSE as a zero octet, an octet in which every bit is reset. +// It represents a value of TRUE as a non-zero octet, an octet in which one or more bits are set. + +// Char is an NDR character. +// NDR represents a character as one octet. +// Characters have two representation formats: ASCII and EBCDIC. + +// USmall is an unsigned 8 bit integer + +// UShort is an unsigned 16 bit integer + +// ULong is an unsigned 32 bit integer + +// UHyper is an unsigned 64 bit integer + +// Small is an signed 8 bit integer + +// Short is an signed 16 bit integer + +// Long is an signed 32 bit integer + +// Hyper is an signed 64 bit integer + +// Enum is the NDR representation of enumerated types as signed short integers (2 octets) + +// Single is an NDR defined single-precision floating-point data type + +// Double is an NDR defined double-precision floating-point data type + +// readBool reads a byte representing a boolean. +// NDR represents a Boolean as one octet. +// It represents a value of FALSE as a zero octet, an octet in which every bit is reset. +// It represents a value of TRUE as a non-zero octet, an octet in which one or more bits are set. +func (dec *Decoder) readBool() (bool, error) { + i, err := dec.readUint8() + if err != nil { + return false, err + } + if i != 0 { + return true, nil + } + return false, nil +} + +// readChar reads bytes representing a 8bit ASCII integer cast to a rune. +func (dec *Decoder) readChar() (rune, error) { + var r rune + a, err := dec.readUint8() + if err != nil { + return r, err + } + return rune(a), nil +} + +// readUint8 reads bytes representing a 8bit unsigned integer. +func (dec *Decoder) readUint8() (uint8, error) { + b, err := dec.r.ReadByte() + if err != nil { + return uint8(0), err + } + return uint8(b), nil +} + +// readUint16 reads bytes representing a 16bit unsigned integer. +func (dec *Decoder) readUint16() (uint16, error) { + dec.ensureAlignment(SizeUint16) + b, err := dec.readBytes(SizeUint16) + if err != nil { + return uint16(0), err + } + return dec.ch.Endianness.Uint16(b), nil +} + +// readUint32 reads bytes representing a 32bit unsigned integer. +func (dec *Decoder) readUint32() (uint32, error) { + dec.ensureAlignment(SizeUint32) + b, err := dec.readBytes(SizeUint32) + if err != nil { + return uint32(0), err + } + return dec.ch.Endianness.Uint32(b), nil +} + +// readUint32 reads bytes representing a 32bit unsigned integer. +func (dec *Decoder) readUint64() (uint64, error) { + dec.ensureAlignment(SizeUint64) + b, err := dec.readBytes(SizeUint64) + if err != nil { + return uint64(0), err + } + return dec.ch.Endianness.Uint64(b), nil +} + +func (dec *Decoder) readInt8() (int8, error) { + dec.ensureAlignment(SizeUint8) + b, err := dec.readBytes(SizeUint8) + if err != nil { + return 0, err + } + var i int8 + buf := bytes.NewReader(b) + err = binary.Read(buf, dec.ch.Endianness, &i) + if err != nil { + return 0, err + } + return i, nil +} + +func (dec *Decoder) readInt16() (int16, error) { + dec.ensureAlignment(SizeUint16) + b, err := dec.readBytes(SizeUint16) + if err != nil { + return 0, err + } + var i int16 + buf := bytes.NewReader(b) + err = binary.Read(buf, dec.ch.Endianness, &i) + if err != nil { + return 0, err + } + return i, nil +} + +func (dec *Decoder) readInt32() (int32, error) { + dec.ensureAlignment(SizeUint32) + b, err := dec.readBytes(SizeUint32) + if err != nil { + return 0, err + } + var i int32 + buf := bytes.NewReader(b) + err = binary.Read(buf, dec.ch.Endianness, &i) + if err != nil { + return 0, err + } + return i, nil +} + +func (dec *Decoder) readInt64() (int64, error) { + dec.ensureAlignment(SizeUint64) + b, err := dec.readBytes(SizeUint64) + if err != nil { + return 0, err + } + var i int64 + buf := bytes.NewReader(b) + err = binary.Read(buf, dec.ch.Endianness, &i) + if err != nil { + return 0, err + } + return i, nil +} + +// https://en.wikipedia.org/wiki/IEEE_754-1985 +func (dec *Decoder) readFloat32() (f float32, err error) { + dec.ensureAlignment(SizeSingle) + b, err := dec.readBytes(SizeSingle) + if err != nil { + return + } + bits := dec.ch.Endianness.Uint32(b) + f = math.Float32frombits(bits) + return +} + +func (dec *Decoder) readFloat64() (f float64, err error) { + dec.ensureAlignment(SizeDouble) + b, err := dec.readBytes(SizeDouble) + if err != nil { + return + } + bits := dec.ch.Endianness.Uint64(b) + f = math.Float64frombits(bits) + return +} + +// NDR enforces NDR alignment of primitive data; that is, any primitive of size n octets is aligned at a octet stream +// index that is a multiple of n. (In this version of NDR, n is one of {1, 2, 4, 8}.) An octet stream index indicates +// the number of an octet in an octet stream when octets are numbered, beginning with 0, from the first octet in the +// stream. Where necessary, an alignment gap, consisting of octets of unspecified value, precedes the representation +// of a primitive. The gap is of the smallest size sufficient to align the primitive. +func (dec *Decoder) ensureAlignment(n int) { + p := dec.size - dec.r.Buffered() + if s := p % n; s != 0 { + dec.r.Discard(n - s) + } +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/ndr/rawbytes.go b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/rawbytes.go new file mode 100644 index 0000000..9ee59fb --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/rawbytes.go @@ -0,0 +1,61 @@ +package ndr + +import ( + "errors" + "fmt" + "reflect" + "strconv" +) + +// type MyBytes []byte +// implement RawBytes interface + +const ( + sizeMethod = "Size" +) + +// RawBytes interface should be implemented if reading just a number of bytes from the NDR stream +type RawBytes interface { + Size(interface{}) int +} + +func rawBytesSize(parent reflect.Value, v reflect.Value) (int, error) { + sf := v.MethodByName(sizeMethod) + if !sf.IsValid() { + return 0, fmt.Errorf("could not find a method called %s on the implementation of RawBytes", sizeMethod) + } + in := []reflect.Value{parent} + f := sf.Call(in) + if f[0].Kind() != reflect.Int { + return 0, errors.New("the RawBytes size function did not return an integer") + } + return int(f[0].Int()), nil +} + +func addSizeToTag(parent reflect.Value, v reflect.Value, tag reflect.StructTag) (reflect.StructTag, error) { + size, err := rawBytesSize(parent, v) + if err != nil { + return tag, err + } + ndrTag := parseTags(tag) + ndrTag.Map["size"] = strconv.Itoa(size) + return ndrTag.StructTag(), nil +} + +func (dec *Decoder) readRawBytes(v reflect.Value, tag reflect.StructTag) error { + ndrTag := parseTags(tag) + sizeStr, ok := ndrTag.Map["size"] + if !ok { + return errors.New("size tag not available") + } + size, err := strconv.Atoi(sizeStr) + if err != nil { + return fmt.Errorf("size not valid: %v", err) + } + b, err := dec.readBytes(size) + if err != nil { + return err + } + v.Set(reflect.ValueOf(b).Convert(v.Type())) + return nil +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/ndr/strings.go b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/strings.go new file mode 100644 index 0000000..b7a910b --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/strings.go @@ -0,0 +1,70 @@ +package ndr + +import ( + "fmt" + "reflect" +) + +const ( + subStringArrayTag = `ndr:"varying,X-subStringArray"` + subStringArrayValue = "X-subStringArray" +) + +func uint16SliceToString(a []uint16) string { + s := make([]rune, len(a), len(a)) + for i := range s { + s[i] = rune(a[i]) + } + if len(s) > 0 { + // Remove any null terminator + if s[len(s)-1] == rune(0) { + s = s[:len(s)-1] + } + } + return string(s) +} + +func (dec *Decoder) readVaryingString(def *[]deferedPtr) (string, error) { + a := new([]uint16) + v := reflect.ValueOf(a) + var t reflect.StructTag + err := dec.fillUniDimensionalVaryingArray(v.Elem(), t, def) + if err != nil { + return "", err + } + s := uint16SliceToString(*a) + return s, nil +} + +func (dec *Decoder) readConformantVaryingString(def *[]deferedPtr) (string, error) { + a := new([]uint16) + v := reflect.ValueOf(a) + var t reflect.StructTag + err := dec.fillUniDimensionalConformantVaryingArray(v.Elem(), t, def) + if err != nil { + return "", err + } + s := uint16SliceToString(*a) + return s, nil +} + +func (dec *Decoder) readStringsArray(v reflect.Value, tag reflect.StructTag, def *[]deferedPtr) error { + d, _ := sliceDimensions(v.Type()) + ndrTag := parseTags(tag) + var m []int + //var ms int + if ndrTag.HasValue(TagConformant) { + for i := 0; i < d; i++ { + m = append(m, int(dec.precedingMax())) + } + //common max size + _ = dec.precedingMax() + //ms = int(n) + } + tag = reflect.StructTag(subStringArrayTag) + err := dec.fillVaryingArray(v, tag, def) + if err != nil { + return fmt.Errorf("could not read string array: %v", err) + } + return nil +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/ndr/tags.go b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/tags.go new file mode 100644 index 0000000..01657e0 --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/tags.go @@ -0,0 +1,69 @@ +package ndr + +import ( + "fmt" + "reflect" + "strings" +) + +const ndrNameSpace = "ndr" + +type tags struct { + Values []string + Map map[string]string +} + +// parse the struct field tags and extract the ndr related ones. +// format of tag ndr:"value,key:value1,value2" +func parseTags(st reflect.StructTag) tags { + s := st.Get(ndrNameSpace) + t := tags{ + Values: []string{}, + Map: make(map[string]string), + } + if s != "" { + ndrTags := strings.Trim(s, `"`) + for _, tag := range strings.Split(ndrTags, ",") { + if strings.Contains(tag, ":") { + m := strings.SplitN(tag, ":", 2) + t.Map[m[0]] = m[1] + } else { + t.Values = append(t.Values, tag) + } + } + } + return t +} + +func appendTag(t reflect.StructTag, s string) reflect.StructTag { + ts := t.Get(ndrNameSpace) + ts = fmt.Sprintf(`%s"%s,%s"`, ndrNameSpace, ts, s) + return reflect.StructTag(ts) +} + +func (t *tags) StructTag() reflect.StructTag { + mv := t.Values + for key, val := range t.Map { + mv = append(mv, key+":"+val) + } + s := ndrNameSpace + ":" + `"` + strings.Join(mv, ",") + `"` + return reflect.StructTag(s) +} + +func (t *tags) delete(s string) { + for i, x := range t.Values { + if x == s { + t.Values = append(t.Values[:i], t.Values[i+1:]...) + } + } + delete(t.Map, s) +} + +func (t *tags) HasValue(s string) bool { + for _, v := range t.Values { + if v == s { + return true + } + } + return false +} diff --git a/vendor/gopkg.in/jcmturner/rpc.v1/ndr/union.go b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/union.go new file mode 100644 index 0000000..6a657fa --- /dev/null +++ b/vendor/gopkg.in/jcmturner/rpc.v1/ndr/union.go @@ -0,0 +1,57 @@ +package ndr + +import ( + "errors" + "fmt" + "reflect" +) + +// Union interface must be implemented by structs that will be unmarshaled into from the NDR byte stream union representation. +// The union's discriminating tag will be passed to the SwitchFunc method. +// The discriminating tag field must have the struct tag: `ndr:"unionTag"` +// If the union is encapsulated the discriminating tag field must have the struct tag: `ndr:"encapsulated"` +// The possible value fields that can be selected from must have the struct tag: `ndr:"unionField"` +type Union interface { + SwitchFunc(t interface{}) string +} + +// Union related constants such as struct tag values +const ( + unionSelectionFuncName = "SwitchFunc" + TagEncapsulated = "encapsulated" + TagUnionTag = "unionTag" + TagUnionField = "unionField" +) + +func (dec *Decoder) isUnion(field reflect.Value, tag reflect.StructTag) (r reflect.Value) { + ndrTag := parseTags(tag) + if !ndrTag.HasValue(TagUnionTag) { + return + } + r = field + // For a non-encapsulated union, the discriminant is marshalled into the transmitted data stream twice: once as the + // field or parameter, which is referenced by the switch_is construct, in the procedure argument list; and once as + // the first part of the union representation. + if !ndrTag.HasValue(TagEncapsulated) { + dec.r.Discard(int(r.Type().Size())) + } + return +} + +// unionSelectedField returns the field name of which of the union values to fill +func unionSelectedField(union, discriminant reflect.Value) (string, error) { + if !union.Type().Implements(reflect.TypeOf(new(Union)).Elem()) { + return "", errors.New("struct does not implement union interface") + } + args := []reflect.Value{discriminant} + // Call the SelectFunc of the union struct to find the name of the field to fill with the value selected. + sf := union.MethodByName(unionSelectionFuncName) + if !sf.IsValid() { + return "", fmt.Errorf("could not find a selection function called %s in the unions struct representation", unionSelectionFuncName) + } + f := sf.Call(args) + if f[0].Kind() != reflect.String || f[0].String() == "" { + return "", fmt.Errorf("the union select function did not return a string for the name of the field to fill") + } + return f[0].String(), nil +} diff --git a/vendor/modules.txt b/vendor/modules.txt new file mode 100644 index 0000000..382bbd8 --- /dev/null +++ b/vendor/modules.txt @@ -0,0 +1,144 @@ +# github.com/Shopify/sarama v1.26.1 +github.com/Shopify/sarama +# github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 +github.com/beorn7/perks/quantile +# github.com/davecgh/go-spew v1.1.1 +github.com/davecgh/go-spew/spew +# github.com/eapache/go-resiliency v1.2.0 +github.com/eapache/go-resiliency/breaker +# github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 +github.com/eapache/go-xerial-snappy +# github.com/eapache/queue v1.1.0 +github.com/eapache/queue +# github.com/golang/protobuf v1.0.0 +github.com/golang/protobuf/proto +github.com/golang/protobuf/protoc-gen-go/descriptor +github.com/golang/protobuf/ptypes +github.com/golang/protobuf/ptypes/any +github.com/golang/protobuf/ptypes/duration +github.com/golang/protobuf/ptypes/timestamp +# github.com/golang/snappy v0.0.1 +github.com/golang/snappy +# github.com/gorilla/mux v1.8.0 +github.com/gorilla/mux +# github.com/hashicorp/go-uuid v1.0.2 +github.com/hashicorp/go-uuid +# github.com/influxdata/influxdb v1.5.2 +github.com/influxdata/influxdb/client/v2 +github.com/influxdata/influxdb/models +github.com/influxdata/influxdb/pkg/escape +# github.com/jcmturner/gofork v1.0.0 +github.com/jcmturner/gofork/encoding/asn1 +github.com/jcmturner/gofork/x/crypto/pbkdf2 +# github.com/klauspost/compress v1.9.8 +github.com/klauspost/compress/fse +github.com/klauspost/compress/huff0 +github.com/klauspost/compress/snappy +github.com/klauspost/compress/zstd +github.com/klauspost/compress/zstd/internal/xxhash +# github.com/matttproud/golang_protobuf_extensions v1.0.0 +github.com/matttproud/golang_protobuf_extensions/pbutil +# github.com/pierrec/lz4 v2.4.1+incompatible +github.com/pierrec/lz4 +github.com/pierrec/lz4/internal/xxh32 +# github.com/prometheus/client_golang v0.8.0 +github.com/prometheus/client_golang/prometheus +github.com/prometheus/client_golang/prometheus/promhttp +# github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5 +github.com/prometheus/client_model/go +# github.com/prometheus/common v0.0.0-20180413074202-d0f7cd64bda4 +github.com/prometheus/common/expfmt +github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg +github.com/prometheus/common/model +# github.com/prometheus/procfs v0.0.0-20180408092902-8b1c2da0d56d +github.com/prometheus/procfs +github.com/prometheus/procfs/internal/util +github.com/prometheus/procfs/nfs +github.com/prometheus/procfs/xfs +# github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 +github.com/rcrowley/go-metrics +# github.com/spf13/pflag v1.0.1 +github.com/spf13/pflag +# golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72 +golang.org/x/crypto/md4 +golang.org/x/crypto/pbkdf2 +# golang.org/x/net v0.0.0-20210917221730-978cfadd31cf +golang.org/x/net/context +golang.org/x/net/http/httpguts +golang.org/x/net/http2 +golang.org/x/net/http2/hpack +golang.org/x/net/idna +golang.org/x/net/internal/socks +golang.org/x/net/internal/timeseries +golang.org/x/net/proxy +golang.org/x/net/trace +# golang.org/x/text v0.3.6 +golang.org/x/text/secure/bidirule +golang.org/x/text/transform +golang.org/x/text/unicode/bidi +golang.org/x/text/unicode/norm +# google.golang.org/genproto v0.0.0-20180413175816-7fd901a49ba6 +google.golang.org/genproto/googleapis/rpc/status +# google.golang.org/grpc v1.11.3 +google.golang.org/grpc +google.golang.org/grpc/balancer +google.golang.org/grpc/balancer/base +google.golang.org/grpc/balancer/roundrobin +google.golang.org/grpc/codes +google.golang.org/grpc/connectivity +google.golang.org/grpc/credentials +google.golang.org/grpc/encoding +google.golang.org/grpc/encoding/gzip +google.golang.org/grpc/encoding/proto +google.golang.org/grpc/grpclb/grpc_lb_v1/messages +google.golang.org/grpc/grpclog +google.golang.org/grpc/internal +google.golang.org/grpc/keepalive +google.golang.org/grpc/metadata +google.golang.org/grpc/naming +google.golang.org/grpc/peer +google.golang.org/grpc/resolver +google.golang.org/grpc/resolver/dns +google.golang.org/grpc/resolver/passthrough +google.golang.org/grpc/stats +google.golang.org/grpc/status +google.golang.org/grpc/tap +google.golang.org/grpc/transport +# gopkg.in/jcmturner/aescts.v1 v1.0.1 +gopkg.in/jcmturner/aescts.v1 +# gopkg.in/jcmturner/dnsutils.v1 v1.0.1 +gopkg.in/jcmturner/dnsutils.v1 +# gopkg.in/jcmturner/gokrb5.v7 v7.5.0 +gopkg.in/jcmturner/gokrb5.v7/asn1tools +gopkg.in/jcmturner/gokrb5.v7/client +gopkg.in/jcmturner/gokrb5.v7/config +gopkg.in/jcmturner/gokrb5.v7/credentials +gopkg.in/jcmturner/gokrb5.v7/crypto +gopkg.in/jcmturner/gokrb5.v7/crypto/common +gopkg.in/jcmturner/gokrb5.v7/crypto/etype +gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3961 +gopkg.in/jcmturner/gokrb5.v7/crypto/rfc3962 +gopkg.in/jcmturner/gokrb5.v7/crypto/rfc4757 +gopkg.in/jcmturner/gokrb5.v7/crypto/rfc8009 +gopkg.in/jcmturner/gokrb5.v7/gssapi +gopkg.in/jcmturner/gokrb5.v7/iana +gopkg.in/jcmturner/gokrb5.v7/iana/addrtype +gopkg.in/jcmturner/gokrb5.v7/iana/adtype +gopkg.in/jcmturner/gokrb5.v7/iana/asnAppTag +gopkg.in/jcmturner/gokrb5.v7/iana/chksumtype +gopkg.in/jcmturner/gokrb5.v7/iana/errorcode +gopkg.in/jcmturner/gokrb5.v7/iana/etypeID +gopkg.in/jcmturner/gokrb5.v7/iana/flags +gopkg.in/jcmturner/gokrb5.v7/iana/keyusage +gopkg.in/jcmturner/gokrb5.v7/iana/msgtype +gopkg.in/jcmturner/gokrb5.v7/iana/nametype +gopkg.in/jcmturner/gokrb5.v7/iana/patype +gopkg.in/jcmturner/gokrb5.v7/kadmin +gopkg.in/jcmturner/gokrb5.v7/keytab +gopkg.in/jcmturner/gokrb5.v7/krberror +gopkg.in/jcmturner/gokrb5.v7/messages +gopkg.in/jcmturner/gokrb5.v7/pac +gopkg.in/jcmturner/gokrb5.v7/types +# gopkg.in/jcmturner/rpc.v1 v1.1.0 +gopkg.in/jcmturner/rpc.v1/mstypes +gopkg.in/jcmturner/rpc.v1/ndr diff --git a/workers.go b/workers.go new file mode 100644 index 0000000..9220e5c --- /dev/null +++ b/workers.go @@ -0,0 +1,398 @@ +package main + +import ( + "fmt" + "log" + "os" + "os/signal" + "strconv" + "sync" + "syscall" + "time" + + "google.golang.org/grpc" +) + +// JCtx is JTIMON run time context +type JCtx struct { + config Config + file string + wg *sync.WaitGroup + influxCtx InfluxCtx + stats statsCtx + pExporter *jtimonPExporter + control chan os.Signal + running bool + alias *Alias + testMeta *os.File + testBytes *os.File + testExp *os.File + testRes *os.File + receivedSyncRsp bool +} + +// JWorkers holds worker +type JWorkers struct { + m map[string]*JWorker + wg sync.WaitGroup + mr int64 + files []string + fileList string + sigchan chan os.Signal + statusChan chan string +} + +// NewJWorkers to create new workers +func NewJWorkers(files []string, fileList string, mr int64) *JWorkers { + return &JWorkers{ + m: make(map[string]*JWorker), + mr: mr, + files: files, + fileList: fileList, + sigchan: make(chan os.Signal, 10), + statusChan: make(chan string, 1), + } +} + +// EndWorkers by sending them SIGINT +func (ws *JWorkers) EndWorkers() { + ws.sigchan <- os.Interrupt +} + +// SIGHUPWorkers for reconfig +func (ws *JWorkers) SIGHUPWorkers() { + ws.sigchan <- syscall.SIGHUP +} + +// StartWorkers to start all of the workers. +// - add all of workers +// - ask workers to start actual work i.e. send syscall.SIGCONT +// - start signal handler and max run handler go routines +func (ws *JWorkers) StartWorkers() { + ws.AddWorkers(ws.files) + for _, v := range ws.m { + v.signalch <- syscall.SIGCONT + } + go ws.signalHandler(ws.fileList) + go ws.maxRunHandler(ws.mr) +} + +// Wait for all the workers to finish +func (ws *JWorkers) Wait() { + ws.wg.Wait() +} + +// AddWorkers to add all the workers +func (ws *JWorkers) AddWorkers(files []string) { + for _, file := range files { + ws.AddWorker(file) + } +} + +// StartWorker is to start one worker +// - add worker +// - ask worker to start actual work i.e. send syscall.SIGCONT +func (ws *JWorkers) StartWorker(file string) { + ws.AddWorker(file) + for k, v := range ws.m { + if k == file { + v.signalch <- syscall.SIGCONT + return + } + } +} + +// AddWorker is to add new worker in set of (actually map of) workers +func (ws *JWorkers) AddWorker(file string) { + if w, err := NewJWorker(file, &ws.wg, ws.statusChan); err == nil { + ws.m[file] = w + ws.wg.Add(1) + } +} + +func (ws *JWorkers) maxRunHandler(maxRunTime int64) { + if maxRunTime > 0 { + // mr - Max run time in seconds + // Subscription is configured for a certain time period + // Once the time expires, interrupt worker go routines. + tickChan := time.NewTimer(time.Second * time.Duration(maxRunTime)).C + <-tickChan + for _, w := range ws.m { + w.signalch <- os.Interrupt + } + } +} + +func (ws *JWorkers) handleConfigChanges() { + // we support config changes through sighup only for config file list + // perform following on sighup: + // Add new worker if needed + // delete worker if not in new list + // otherwise, send sighup to worker to restart streaming with new config + if configfilelist, err := NewJTIMONConfigFilelist(ws.fileList); err == nil { + for _, file := range configfilelist.Filenames { + if w, ok := ws.m[file]; ok { + // signal to the worker if they are running. upon receiving sighup, + // the worker'd stop current streaming, parse new config and make new + // connection (grpc dial) to the device to get new streams of data + log.Printf("sending sighup to the worker for %v", file) + w.signalch <- syscall.SIGHUP + } else { + // new worker + log.Printf("adding a new worker for %v", file) + ws.StartWorker(file) + } + } + // handle deletions + for file, w := range ws.m { + if StringInSlice(file, configfilelist.Filenames) == false { + // kill the worker go routine and remove it from the map + log.Printf("deleting worker for %v", file) + w.signalch <- os.Interrupt + delete(ws.m, file) + } + } + } else { + log.Printf("error in parsing the new config file, continuing with older config") + } +} + +func (ws *JWorkers) signalHandler(configFileList string) { + sigchan := make(chan os.Signal, 10) + ws.sigchan = sigchan + // handle interrupt and sighup + signal.Notify(sigchan, os.Interrupt, syscall.SIGHUP) + for { + select { + case s := <-sigchan: + switch s { + case syscall.SIGHUP: + // propagate the signal to workers and continue waiting for signals + if len(ws.fileList) != 0 { + ws.handleConfigChanges() + } else { + // SIGHUP the workers spawned when --config option is used + for _, w := range ws.m { + w.signalch <- s + } + } + case os.Interrupt: + for _, w := range ws.m { + w.signalch <- s + } + return + } + case file := <-ws.statusChan: + // worker must have encountered error + log.Printf("Worker removed for %v", file) + delete(ws.m, file) + } + } +} + +// JWorker is one worker +type JWorker struct { + jctx *JCtx + signalch chan os.Signal +} + +// NewJWorker is to create new worker +func NewJWorker(file string, wg *sync.WaitGroup, wsChan chan string) (*JWorker, error) { + w := &JWorker{} + + signalch := make(chan os.Signal) + statusch := make(chan struct{}) + jctx := JCtx{ + file: file, + wg: wg, + pExporter: exporter, + stats: statsCtx{ + startTime: time.Now(), + }, + } + w.jctx = &jctx + w.signalch = signalch + + if *genTestData { + testSetup(&jctx) + } + + err := ConfigRead(&jctx, true, nil) + if err != nil { + log.Println(err) + return w, err + } + if alias, err := NewAlias(jctx.config.Alias); err == nil { + jctx.alias = alias + } + go func() { + for { + select { + case sig := <-signalch: + switch sig { + case os.Interrupt: + // we are asked to stop + printSummary(&jctx) + jLog(&jctx, fmt.Sprintf("Streaming for host %s will be stopped (SIGINT)", jctx.config.Host)) + if *genTestData { + testTearDown(&jctx) + } + jctx.wg.Done() + // let the downstream subscribe go routines know we are done and no need to restart + jctx.control <- os.Interrupt + logStop(&jctx) + return + case syscall.SIGHUP: + // handle SIGHUP if the streaming is happening. + // running will not be set when the connection is + // not establihsed and it is trying to connect. + // ConfigRead will re-parse the config and updates jctx so + // when we retry Dial, it will do it with updated config + restart := false + err := ConfigRead(&jctx, false, &restart) + if err != nil { + jLog(&jctx, fmt.Sprintln(err)) + } else if restart { + jctx.control <- syscall.SIGHUP + } else { + jLog(&jctx, fmt.Sprintf("config re-parse, data streaming has not started yet")) + } + case syscall.SIGCONT: + go work(&jctx, statusch) + } + case <-statusch: + // worker must have encountered error + printSummary(&jctx) + wsChan <- jctx.file + jctx.wg.Done() + logStop(&jctx) + return + + } + } + }() + return w, nil +} + +func work(jctx *JCtx, statusch chan struct{}) { + var ( + retry bool + opts []grpc.DialOption + tryGnmi bool + ) + + if jctx.config.Vendor.Gnmi != nil { + tryGnmi = true + } + +connect: + // Read the host-name and vendor from the config as they might be changed + vendor, err := getVendor(jctx, tryGnmi) + if err != nil { + jLog(jctx, fmt.Sprintf("%v", err)) + time.Sleep(10 * time.Second) + retry = true + goto connect + } + if opts, err = getGPRCDialOptions(jctx, vendor); err != nil { + jLog(jctx, fmt.Sprintf("%v", err)) + statusch <- struct{}{} + return + } + + hostname := jctx.config.Host + ":" + strconv.Itoa(jctx.config.Port) + if hostname == ":0" { + statusch <- struct{}{} + jLog(jctx, fmt.Sprintf("Not a valid host-name %s", hostname)) + return + } + + // Check signals + select { + case s := <-jctx.control: + switch s { + case os.Interrupt: + // we are done + jLog(jctx, fmt.Sprintf("Connection for %s has been interrupted", hostname)) + statusch <- struct{}{} + return + } + // Sighup need not be handled as the config is re-read for + // each connection attempt + default: + // No signal recieved, Continue the connection attempt + } + + if retry { + jLog(jctx, fmt.Sprintf("Reconnecting to %s", hostname)) + } else { + jLog(jctx, fmt.Sprintf("Connecting to %s", hostname)) + } + conn, err := grpc.Dial(hostname, opts...) + if err != nil { + jLog(jctx, fmt.Sprintf("[%s] could not dial: %v", jctx.config.Host, err)) + time.Sleep(10 * time.Second) + retry = true + goto connect + } + + // we are able to Dial grpc, now let's begin by sending LoginCheck + // if required. + if vendor.loginCheckRequired { + if err := vendor.sendLoginCheck(jctx, conn); err != nil { + jLog(jctx, fmt.Sprintf("%v", err)) + time.Sleep(10 * time.Second) + retry = true + conn.Close() + if jctx.config.Vendor.Gnmi != nil { + tryGnmi = true + } else { + tryGnmi = false + } + goto connect + } + } + + if vendor.subscribe == nil { + panic(fmt.Sprintf("could not found subscribe implementation for vendor %s", vendor.name)) + } + fmt.Println("Calling subscribe() :::", jctx.file) + code := vendor.subscribe(conn, jctx) + fmt.Println("Returns subscribe() :::", jctx.file, "CODE ::: ", code) + + // close the current connection and retry + conn.Close() + + switch code { + case SubRcSighupRestart: + jLog(jctx, fmt.Sprintf("sighup detected, reconnect with new config for worker %s", jctx.file)) + retry = true + if jctx.config.Vendor.Gnmi != nil { + tryGnmi = true + } else { + tryGnmi = false + } + goto connect + case SubRcRPCFailedNoRetry: + jLog(jctx, fmt.Sprintf("RPC failed and reconnecting with fallback RPC if available %s", jctx.file)) + retry = true + if tryGnmi { + tryGnmi = false // fallback to vendor mode + } + goto connect + case SubRcConnRetry: + jLog(jctx, fmt.Sprintf("subscribe returns, reconnecting after 10s for worker %s", jctx.file)) + time.Sleep(10 * time.Second) + retry = true + if jctx.config.Vendor.Gnmi != nil { + tryGnmi = true + } else { + tryGnmi = false + } + goto connect + case SubRcSighupNoRestart: + jLog(jctx, fmt.Sprintf("not reconnecting for worker %s", jctx.file)) + statusch <- struct{}{} + return + } +}